@whereby.com/media 9.1.0 → 9.2.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/dist/index.cjs CHANGED
@@ -829,6 +829,7 @@ const PROTOCOL_RESPONSES = {
829
829
  BLOCK_ADDED: "block_added",
830
830
  BLOCK_REMOVED: "block_removed",
831
831
  CHAT_HISTORY_CLEARED: "chat_history_cleared",
832
+ CHAT_MESSAGE_REMOVED: "chat_message_removed",
832
833
  CLIENT_BLOCKED: "client_blocked",
833
834
  CLIENT_INVITED_AS_MEMBER: "client_invited_as_member",
834
835
  CLIENT_KICKED: "client_kicked",
@@ -2573,8 +2574,9 @@ class P2pRtcManager {
2573
2574
  isInitializedWith({ selfId, roomName, isSfu }) {
2574
2575
  return this._selfId === selfId && this._roomName === roomName && !isSfu;
2575
2576
  }
2576
- addCameraStream(stream, { beforeEffectTracks = [] } = { beforeEffectTracks: [] }) {
2577
+ addCameraStream(stream, { videoPaused, beforeEffectTracks = [] } = { beforeEffectTracks: [] }) {
2577
2578
  logger$6.info("addCameraStream: [stream.id: %s]", stream.id);
2579
+ this._webcamPaused = videoPaused;
2578
2580
  if (stream === this._localCameraStream) {
2579
2581
  return;
2580
2582
  }
@@ -3454,6 +3456,7 @@ class P2pRtcManager {
3454
3456
  stopOrResumeVideo(localStream, enable) {
3455
3457
  var _a;
3456
3458
  logger$6.info("stopOrResumeVideo() [enable: %s]", enable);
3459
+ this._webcamPaused = !enable;
3457
3460
  if (!["chrome", "safari"].includes(browserName$1)) {
3458
3461
  return;
3459
3462
  }
@@ -3487,6 +3490,10 @@ class P2pRtcManager {
3487
3490
  .getUserMedia({ video: constraints })
3488
3491
  .then((stream) => {
3489
3492
  const track = stream.getVideoTracks()[0];
3493
+ if (this._webcamPaused) {
3494
+ track.stop();
3495
+ return;
3496
+ }
3490
3497
  localStream.addTrack(track);
3491
3498
  this._monitorVideoTrack(track);
3492
3499
  this._emit(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
@@ -5520,6 +5527,10 @@ class VegaRtcManager {
5520
5527
  .getUserMedia({ video: constraints })
5521
5528
  .then((stream) => {
5522
5529
  const track = stream.getVideoTracks()[0];
5530
+ if (this._webcamPaused) {
5531
+ track.stop();
5532
+ return;
5533
+ }
5523
5534
  localStream.addTrack(track);
5524
5535
  this._monitorVideoTrack(track);
5525
5536
  this._emitToPWA(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
package/dist/index.d.cts CHANGED
@@ -844,12 +844,17 @@ interface ChatMessage {
844
844
  messageType: "text";
845
845
  roomName: string;
846
846
  senderId: string;
847
- sig: string;
847
+ sig?: string | null;
848
848
  text: string;
849
849
  timestamp: string;
850
850
  userId: string;
851
851
  breakoutGroup?: string;
852
852
  broadcast?: boolean;
853
+ parentId?: string;
854
+ }
855
+ interface ChatMessageRemoved {
856
+ id: string;
857
+ requestedByClientId: string;
853
858
  }
854
859
  interface CloudRecordingStartedEvent {
855
860
  error?: string;
@@ -1086,6 +1091,7 @@ interface SignalEvents {
1086
1091
  cloud_recording_started: CloudRecordingStartedEvent;
1087
1092
  cloud_recording_stopped: void;
1088
1093
  chat_message: ChatMessage;
1094
+ chat_message_removed: ChatMessageRemoved;
1089
1095
  connect: void;
1090
1096
  connect_error: void;
1091
1097
  device_identified: void;
@@ -1110,6 +1116,12 @@ interface SignalEvents {
1110
1116
  live_captions_started: void;
1111
1117
  live_captions_stopped: void;
1112
1118
  }
1119
+ interface ChatMessageRequest {
1120
+ text: string;
1121
+ parentId?: string;
1122
+ breakoutGroup?: string;
1123
+ broadcast?: boolean;
1124
+ }
1113
1125
  interface IdentifyDeviceRequest {
1114
1126
  deviceCredentials: Credentials;
1115
1127
  }
@@ -1154,9 +1166,7 @@ interface RemoveSpotlightRequest {
1154
1166
  }
1155
1167
  interface SignalRequests {
1156
1168
  add_spotlight: AddSpotlightRequest;
1157
- chat_message: {
1158
- text: string;
1159
- };
1169
+ chat_message: ChatMessageRequest;
1160
1170
  enable_audio: {
1161
1171
  enabled: boolean;
1162
1172
  };
@@ -1342,6 +1352,7 @@ declare const PROTOCOL_RESPONSES: {
1342
1352
  BLOCK_ADDED: string;
1343
1353
  BLOCK_REMOVED: string;
1344
1354
  CHAT_HISTORY_CLEARED: string;
1355
+ CHAT_MESSAGE_REMOVED: string;
1345
1356
  CLIENT_BLOCKED: string;
1346
1357
  CLIENT_INVITED_AS_MEMBER: string;
1347
1358
  CLIENT_KICKED: string;
@@ -1585,6 +1596,7 @@ declare class P2pRtcManager implements RtcManager {
1585
1596
  _closed: boolean;
1586
1597
  analytics: P2PAnalytics;
1587
1598
  _rtcStatsDisconnectTimeout?: ReturnType<typeof setTimeout>;
1599
+ _webcamPaused?: boolean;
1588
1600
  constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features }: RtcManagerOptions);
1589
1601
  numberOfPeerconnections(): number;
1590
1602
  isInitializedWith({ selfId, roomName, isSfu }: {
@@ -1592,7 +1604,7 @@ declare class P2pRtcManager implements RtcManager {
1592
1604
  roomName: string;
1593
1605
  isSfu: boolean;
1594
1606
  }): boolean;
1595
- addCameraStream(stream: MediaStream, { beforeEffectTracks }?: AddCameraStreamOptions): void;
1607
+ addCameraStream(stream: MediaStream, { videoPaused, beforeEffectTracks }?: AddCameraStreamOptions): void;
1596
1608
  _enableStopResumeVideoForBrowserSDK(stream: MediaStream): void;
1597
1609
  addScreenshareStream(stream: MediaStream): void;
1598
1610
  replaceTrack(oldTrack: MediaStreamTrack | null, newTrack: MediaStreamTrack): Promise<void | any[]>;
@@ -2030,4 +2042,4 @@ declare class VegaRtcManager implements RtcManager {
2030
2042
  }
2031
2043
 
2032
2044
  export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, issueDetectorOrMetricEnabled, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, variance };
2033
- export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, BuildDeviceListOptions, CannotJoinUnclaimedRoomError, ChatMessage, ClearableTimeout, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, ConnectionStatus, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, GetUserMediaAttempt, GetUserMediaAttemptOutcome, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, MediaPrefs, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaConnectionOptions, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
2045
+ export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, BuildDeviceListOptions, CannotJoinUnclaimedRoomError, ChatMessage, ChatMessageRemoved, ChatMessageRequest, ClearableTimeout, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, ConnectionStatus, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, GetUserMediaAttempt, GetUserMediaAttemptOutcome, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, MediaPrefs, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaConnectionOptions, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
package/dist/index.d.mts CHANGED
@@ -844,12 +844,17 @@ interface ChatMessage {
844
844
  messageType: "text";
845
845
  roomName: string;
846
846
  senderId: string;
847
- sig: string;
847
+ sig?: string | null;
848
848
  text: string;
849
849
  timestamp: string;
850
850
  userId: string;
851
851
  breakoutGroup?: string;
852
852
  broadcast?: boolean;
853
+ parentId?: string;
854
+ }
855
+ interface ChatMessageRemoved {
856
+ id: string;
857
+ requestedByClientId: string;
853
858
  }
854
859
  interface CloudRecordingStartedEvent {
855
860
  error?: string;
@@ -1086,6 +1091,7 @@ interface SignalEvents {
1086
1091
  cloud_recording_started: CloudRecordingStartedEvent;
1087
1092
  cloud_recording_stopped: void;
1088
1093
  chat_message: ChatMessage;
1094
+ chat_message_removed: ChatMessageRemoved;
1089
1095
  connect: void;
1090
1096
  connect_error: void;
1091
1097
  device_identified: void;
@@ -1110,6 +1116,12 @@ interface SignalEvents {
1110
1116
  live_captions_started: void;
1111
1117
  live_captions_stopped: void;
1112
1118
  }
1119
+ interface ChatMessageRequest {
1120
+ text: string;
1121
+ parentId?: string;
1122
+ breakoutGroup?: string;
1123
+ broadcast?: boolean;
1124
+ }
1113
1125
  interface IdentifyDeviceRequest {
1114
1126
  deviceCredentials: Credentials;
1115
1127
  }
@@ -1154,9 +1166,7 @@ interface RemoveSpotlightRequest {
1154
1166
  }
1155
1167
  interface SignalRequests {
1156
1168
  add_spotlight: AddSpotlightRequest;
1157
- chat_message: {
1158
- text: string;
1159
- };
1169
+ chat_message: ChatMessageRequest;
1160
1170
  enable_audio: {
1161
1171
  enabled: boolean;
1162
1172
  };
@@ -1342,6 +1352,7 @@ declare const PROTOCOL_RESPONSES: {
1342
1352
  BLOCK_ADDED: string;
1343
1353
  BLOCK_REMOVED: string;
1344
1354
  CHAT_HISTORY_CLEARED: string;
1355
+ CHAT_MESSAGE_REMOVED: string;
1345
1356
  CLIENT_BLOCKED: string;
1346
1357
  CLIENT_INVITED_AS_MEMBER: string;
1347
1358
  CLIENT_KICKED: string;
@@ -1585,6 +1596,7 @@ declare class P2pRtcManager implements RtcManager {
1585
1596
  _closed: boolean;
1586
1597
  analytics: P2PAnalytics;
1587
1598
  _rtcStatsDisconnectTimeout?: ReturnType<typeof setTimeout>;
1599
+ _webcamPaused?: boolean;
1588
1600
  constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features }: RtcManagerOptions);
1589
1601
  numberOfPeerconnections(): number;
1590
1602
  isInitializedWith({ selfId, roomName, isSfu }: {
@@ -1592,7 +1604,7 @@ declare class P2pRtcManager implements RtcManager {
1592
1604
  roomName: string;
1593
1605
  isSfu: boolean;
1594
1606
  }): boolean;
1595
- addCameraStream(stream: MediaStream, { beforeEffectTracks }?: AddCameraStreamOptions): void;
1607
+ addCameraStream(stream: MediaStream, { videoPaused, beforeEffectTracks }?: AddCameraStreamOptions): void;
1596
1608
  _enableStopResumeVideoForBrowserSDK(stream: MediaStream): void;
1597
1609
  addScreenshareStream(stream: MediaStream): void;
1598
1610
  replaceTrack(oldTrack: MediaStreamTrack | null, newTrack: MediaStreamTrack): Promise<void | any[]>;
@@ -2030,4 +2042,4 @@ declare class VegaRtcManager implements RtcManager {
2030
2042
  }
2031
2043
 
2032
2044
  export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, issueDetectorOrMetricEnabled, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, variance };
2033
- export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, BuildDeviceListOptions, CannotJoinUnclaimedRoomError, ChatMessage, ClearableTimeout, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, ConnectionStatus, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, GetUserMediaAttempt, GetUserMediaAttemptOutcome, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, MediaPrefs, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaConnectionOptions, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
2045
+ export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, BuildDeviceListOptions, CannotJoinUnclaimedRoomError, ChatMessage, ChatMessageRemoved, ChatMessageRequest, ClearableTimeout, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, ConnectionStatus, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, GetUserMediaAttempt, GetUserMediaAttemptOutcome, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, MediaPrefs, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaConnectionOptions, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
package/dist/index.d.ts CHANGED
@@ -844,12 +844,17 @@ interface ChatMessage {
844
844
  messageType: "text";
845
845
  roomName: string;
846
846
  senderId: string;
847
- sig: string;
847
+ sig?: string | null;
848
848
  text: string;
849
849
  timestamp: string;
850
850
  userId: string;
851
851
  breakoutGroup?: string;
852
852
  broadcast?: boolean;
853
+ parentId?: string;
854
+ }
855
+ interface ChatMessageRemoved {
856
+ id: string;
857
+ requestedByClientId: string;
853
858
  }
854
859
  interface CloudRecordingStartedEvent {
855
860
  error?: string;
@@ -1086,6 +1091,7 @@ interface SignalEvents {
1086
1091
  cloud_recording_started: CloudRecordingStartedEvent;
1087
1092
  cloud_recording_stopped: void;
1088
1093
  chat_message: ChatMessage;
1094
+ chat_message_removed: ChatMessageRemoved;
1089
1095
  connect: void;
1090
1096
  connect_error: void;
1091
1097
  device_identified: void;
@@ -1110,6 +1116,12 @@ interface SignalEvents {
1110
1116
  live_captions_started: void;
1111
1117
  live_captions_stopped: void;
1112
1118
  }
1119
+ interface ChatMessageRequest {
1120
+ text: string;
1121
+ parentId?: string;
1122
+ breakoutGroup?: string;
1123
+ broadcast?: boolean;
1124
+ }
1113
1125
  interface IdentifyDeviceRequest {
1114
1126
  deviceCredentials: Credentials;
1115
1127
  }
@@ -1154,9 +1166,7 @@ interface RemoveSpotlightRequest {
1154
1166
  }
1155
1167
  interface SignalRequests {
1156
1168
  add_spotlight: AddSpotlightRequest;
1157
- chat_message: {
1158
- text: string;
1159
- };
1169
+ chat_message: ChatMessageRequest;
1160
1170
  enable_audio: {
1161
1171
  enabled: boolean;
1162
1172
  };
@@ -1342,6 +1352,7 @@ declare const PROTOCOL_RESPONSES: {
1342
1352
  BLOCK_ADDED: string;
1343
1353
  BLOCK_REMOVED: string;
1344
1354
  CHAT_HISTORY_CLEARED: string;
1355
+ CHAT_MESSAGE_REMOVED: string;
1345
1356
  CLIENT_BLOCKED: string;
1346
1357
  CLIENT_INVITED_AS_MEMBER: string;
1347
1358
  CLIENT_KICKED: string;
@@ -1585,6 +1596,7 @@ declare class P2pRtcManager implements RtcManager {
1585
1596
  _closed: boolean;
1586
1597
  analytics: P2PAnalytics;
1587
1598
  _rtcStatsDisconnectTimeout?: ReturnType<typeof setTimeout>;
1599
+ _webcamPaused?: boolean;
1588
1600
  constructor({ selfId, room, emitter, serverSocket, webrtcProvider, features }: RtcManagerOptions);
1589
1601
  numberOfPeerconnections(): number;
1590
1602
  isInitializedWith({ selfId, roomName, isSfu }: {
@@ -1592,7 +1604,7 @@ declare class P2pRtcManager implements RtcManager {
1592
1604
  roomName: string;
1593
1605
  isSfu: boolean;
1594
1606
  }): boolean;
1595
- addCameraStream(stream: MediaStream, { beforeEffectTracks }?: AddCameraStreamOptions): void;
1607
+ addCameraStream(stream: MediaStream, { videoPaused, beforeEffectTracks }?: AddCameraStreamOptions): void;
1596
1608
  _enableStopResumeVideoForBrowserSDK(stream: MediaStream): void;
1597
1609
  addScreenshareStream(stream: MediaStream): void;
1598
1610
  replaceTrack(oldTrack: MediaStreamTrack | null, newTrack: MediaStreamTrack): Promise<void | any[]>;
@@ -2030,4 +2042,4 @@ declare class VegaRtcManager implements RtcManager {
2030
2042
  }
2031
2043
 
2032
2044
  export { ADDITIONAL_SCREEN_SHARE_SETTINGS, AUDIO_SETTINGS, BandwidthTester, CAMERA_STREAM_ID, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDeviceAsync, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, issueDetectorOrMetricEnabled, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, trackAnnotations, turnServerOverride, variance };
2033
- export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, BuildDeviceListOptions, CannotJoinUnclaimedRoomError, ChatMessage, ClearableTimeout, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, ConnectionStatus, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, GetUserMediaAttempt, GetUserMediaAttemptOutcome, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, MediaPrefs, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaConnectionOptions, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
2045
+ export type { AddCameraStreamOptions, AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, BuildDeviceListOptions, CannotJoinUnclaimedRoomError, ChatMessage, ChatMessageRemoved, ChatMessageRequest, ClearableTimeout, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, ConnectionStatus, Credentials, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, GetUserMediaAttempt, GetUserMediaAttemptOutcome, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, InvalidAssistantKeyError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, MediaPrefs, Metric, NewClientEvent, OrganizationAssistantNotEnabledError, OrganizationAssistantNotFoundError, OrganizationPlanExhaustedError, RemoveScreenshareStreamOptions, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomEmptyError, RoomFullError, RoomJoinPermissionDeniedError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEventEmitter, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcManagerOptions, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalIceCandidateMessage, SignalIceEndOfCandidatesMessage, SignalIceServer, SignalKnocker, SignalMediaServerConfig, SignalRTCSessionDescription, SignalReadyToReceiveOfferMessage, SignalRequests, SignalRoom, SignalSDPMessage, SignalSFUServer, SignalTurnServer, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TurnTransportProtocol, UniqueRoleAlreadyInRoomError, UpdatedDeviceInfo, UpdatedDevicesInfo, VegaConnectionOptions, VegaRtcManagerOptions, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, WebRTCProvider };
package/dist/index.mjs CHANGED
@@ -808,6 +808,7 @@ const PROTOCOL_RESPONSES = {
808
808
  BLOCK_ADDED: "block_added",
809
809
  BLOCK_REMOVED: "block_removed",
810
810
  CHAT_HISTORY_CLEARED: "chat_history_cleared",
811
+ CHAT_MESSAGE_REMOVED: "chat_message_removed",
811
812
  CLIENT_BLOCKED: "client_blocked",
812
813
  CLIENT_INVITED_AS_MEMBER: "client_invited_as_member",
813
814
  CLIENT_KICKED: "client_kicked",
@@ -2552,8 +2553,9 @@ class P2pRtcManager {
2552
2553
  isInitializedWith({ selfId, roomName, isSfu }) {
2553
2554
  return this._selfId === selfId && this._roomName === roomName && !isSfu;
2554
2555
  }
2555
- addCameraStream(stream, { beforeEffectTracks = [] } = { beforeEffectTracks: [] }) {
2556
+ addCameraStream(stream, { videoPaused, beforeEffectTracks = [] } = { beforeEffectTracks: [] }) {
2556
2557
  logger$6.info("addCameraStream: [stream.id: %s]", stream.id);
2558
+ this._webcamPaused = videoPaused;
2557
2559
  if (stream === this._localCameraStream) {
2558
2560
  return;
2559
2561
  }
@@ -3433,6 +3435,7 @@ class P2pRtcManager {
3433
3435
  stopOrResumeVideo(localStream, enable) {
3434
3436
  var _a;
3435
3437
  logger$6.info("stopOrResumeVideo() [enable: %s]", enable);
3438
+ this._webcamPaused = !enable;
3436
3439
  if (!["chrome", "safari"].includes(browserName$1)) {
3437
3440
  return;
3438
3441
  }
@@ -3466,6 +3469,10 @@ class P2pRtcManager {
3466
3469
  .getUserMedia({ video: constraints })
3467
3470
  .then((stream) => {
3468
3471
  const track = stream.getVideoTracks()[0];
3472
+ if (this._webcamPaused) {
3473
+ track.stop();
3474
+ return;
3475
+ }
3469
3476
  localStream.addTrack(track);
3470
3477
  this._monitorVideoTrack(track);
3471
3478
  this._emit(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
@@ -5499,6 +5506,10 @@ class VegaRtcManager {
5499
5506
  .getUserMedia({ video: constraints })
5500
5507
  .then((stream) => {
5501
5508
  const track = stream.getVideoTracks()[0];
5509
+ if (this._webcamPaused) {
5510
+ track.stop();
5511
+ return;
5512
+ }
5502
5513
  localStream.addTrack(track);
5503
5514
  this._monitorVideoTrack(track);
5504
5515
  this._emitToPWA(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
@@ -808,6 +808,7 @@ const PROTOCOL_RESPONSES = {
808
808
  BLOCK_ADDED: "block_added",
809
809
  BLOCK_REMOVED: "block_removed",
810
810
  CHAT_HISTORY_CLEARED: "chat_history_cleared",
811
+ CHAT_MESSAGE_REMOVED: "chat_message_removed",
811
812
  CLIENT_BLOCKED: "client_blocked",
812
813
  CLIENT_INVITED_AS_MEMBER: "client_invited_as_member",
813
814
  CLIENT_KICKED: "client_kicked",
@@ -2552,8 +2553,9 @@ class P2pRtcManager {
2552
2553
  isInitializedWith({ selfId, roomName, isSfu }) {
2553
2554
  return this._selfId === selfId && this._roomName === roomName && !isSfu;
2554
2555
  }
2555
- addCameraStream(stream, { beforeEffectTracks = [] } = { beforeEffectTracks: [] }) {
2556
+ addCameraStream(stream, { videoPaused, beforeEffectTracks = [] } = { beforeEffectTracks: [] }) {
2556
2557
  logger$6.info("addCameraStream: [stream.id: %s]", stream.id);
2558
+ this._webcamPaused = videoPaused;
2557
2559
  if (stream === this._localCameraStream) {
2558
2560
  return;
2559
2561
  }
@@ -3433,6 +3435,7 @@ class P2pRtcManager {
3433
3435
  stopOrResumeVideo(localStream, enable) {
3434
3436
  var _a;
3435
3437
  logger$6.info("stopOrResumeVideo() [enable: %s]", enable);
3438
+ this._webcamPaused = !enable;
3436
3439
  if (!["chrome", "safari"].includes(browserName$1)) {
3437
3440
  return;
3438
3441
  }
@@ -3466,6 +3469,10 @@ class P2pRtcManager {
3466
3469
  .getUserMedia({ video: constraints })
3467
3470
  .then((stream) => {
3468
3471
  const track = stream.getVideoTracks()[0];
3472
+ if (this._webcamPaused) {
3473
+ track.stop();
3474
+ return;
3475
+ }
3469
3476
  localStream.addTrack(track);
3470
3477
  this._monitorVideoTrack(track);
3471
3478
  this._emit(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
@@ -5499,6 +5506,10 @@ class VegaRtcManager {
5499
5506
  .getUserMedia({ video: constraints })
5500
5507
  .then((stream) => {
5501
5508
  const track = stream.getVideoTracks()[0];
5509
+ if (this._webcamPaused) {
5510
+ track.stop();
5511
+ return;
5512
+ }
5502
5513
  localStream.addTrack(track);
5503
5514
  this._monitorVideoTrack(track);
5504
5515
  this._emitToPWA(EVENTS.LOCAL_STREAM_TRACK_ADDED, {
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": "9.1.0",
4
+ "version": "9.2.0",
5
5
  "license": "MIT",
6
6
  "homepage": "https://github.com/whereby/sdk",
7
7
  "repository": {
@@ -61,11 +61,11 @@
61
61
  "prettier": "^3.5.3",
62
62
  "process": "^0.11.10",
63
63
  "typescript": "^5.8.3",
64
- "@whereby.com/eslint-config": "0.1.0",
65
64
  "@whereby.com/jest-config": "0.1.0",
66
65
  "@whereby.com/prettier-config": "0.1.0",
67
66
  "@whereby.com/rollup-config": "0.1.1",
68
- "@whereby.com/tsconfig": "0.1.0"
67
+ "@whereby.com/tsconfig": "0.1.0",
68
+ "@whereby.com/eslint-config": "0.1.0"
69
69
  },
70
70
  "engines": {
71
71
  "node": ">=24.0.0"