@whereby.com/media 1.29.0 → 1.30.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/LICENCE.md ADDED
@@ -0,0 +1,23 @@
1
+ ## MIT License
2
+
3
+ Copyright (c) 2024 Whereby AS (https://www.whereby.com)
4
+ Permission is hereby granted, free of charge, to any person
5
+ obtaining a copy of this software and associated documentation
6
+ files (the "Software"), to deal in the Software without
7
+ restriction, including without limitation the rights to use,
8
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the
10
+ Software is furnished to do so, subject to the following
11
+ conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
18
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
20
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
23
+ OTHER DEALINGS IN THE SOFTWARE.
package/dist/index.cjs CHANGED
@@ -115,7 +115,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
115
115
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
116
116
  PERFORMANCE OF THIS SOFTWARE.
117
117
  ***************************************************************************** */
118
- /* global Reflect, Promise, SuppressedError, Symbol */
118
+ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
119
119
 
120
120
 
121
121
  function __awaiter(thisArg, _arguments, P, generator) {
@@ -622,8 +622,8 @@ const removeNonUpdatedStats = (statsByView, time) => {
622
622
  }
623
623
  });
624
624
  };
625
- function collectStats(state, { logger, interval }, immediate) {
626
- return __awaiter(this, void 0, void 0, function* () {
625
+ function collectStats(state_1, _a, immediate_1) {
626
+ return __awaiter(this, arguments, void 0, function* (state, { logger, interval }, immediate) {
627
627
  const collectStatsBound = collectStats.bind(null, state, { interval, logger });
628
628
  try {
629
629
  const clients = state.getClients();
@@ -1983,9 +1983,9 @@ class Safari17 extends HandlerInterface_js.HandlerInterface {
1983
1983
  return this._pc.getStats();
1984
1984
  });
1985
1985
  }
1986
- send({ track, encodings, codecOptions, codec, onRtpSender }) {
1987
- var _a;
1988
- return __awaiter(this, void 0, void 0, function* () {
1986
+ send(_a) {
1987
+ return __awaiter(this, arguments, void 0, function* ({ track, encodings, codecOptions, codec, onRtpSender }) {
1988
+ var _b;
1989
1989
  this.assertNotClosed();
1990
1990
  this.assertSendDirection();
1991
1991
  logger$9.debug("send() [kind:%s, track.id:%s]", track.kind, track.id);
@@ -2033,7 +2033,7 @@ class Safari17 extends HandlerInterface_js.HandlerInterface {
2033
2033
  let offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
2034
2034
  if (!this._transportReady) {
2035
2035
  yield this.setupTransport({
2036
- localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : "client",
2036
+ localDtlsRole: (_b = this._forcedLocalDtlsRole) !== null && _b !== void 0 ? _b : "client",
2037
2037
  localSdpObject,
2038
2038
  });
2039
2039
  }
@@ -2209,9 +2209,9 @@ class Safari17 extends HandlerInterface_js.HandlerInterface {
2209
2209
  return transceiver.sender.getStats();
2210
2210
  });
2211
2211
  }
2212
- sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
2213
- var _a;
2214
- return __awaiter(this, void 0, void 0, function* () {
2212
+ sendDataChannel(_a) {
2213
+ return __awaiter(this, arguments, void 0, function* ({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
2214
+ var _b;
2215
2215
  this.assertNotClosed();
2216
2216
  this.assertSendDirection();
2217
2217
  const options = {
@@ -2231,7 +2231,7 @@ class Safari17 extends HandlerInterface_js.HandlerInterface {
2231
2231
  const offerMediaObject = localSdpObject.media.find((m) => m.type === "application");
2232
2232
  if (!this._transportReady) {
2233
2233
  yield this.setupTransport({
2234
- localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : "client",
2234
+ localDtlsRole: (_b = this._forcedLocalDtlsRole) !== null && _b !== void 0 ? _b : "client",
2235
2235
  localSdpObject,
2236
2236
  });
2237
2237
  }
@@ -2253,8 +2253,8 @@ class Safari17 extends HandlerInterface_js.HandlerInterface {
2253
2253
  });
2254
2254
  }
2255
2255
  receive(optionsList) {
2256
- var _a, _b;
2257
2256
  return __awaiter(this, void 0, void 0, function* () {
2257
+ var _a, _b;
2258
2258
  this.assertNotClosed();
2259
2259
  this.assertRecvDirection();
2260
2260
  const results = [];
@@ -2401,9 +2401,9 @@ class Safari17 extends HandlerInterface_js.HandlerInterface {
2401
2401
  return transceiver.receiver.getStats();
2402
2402
  });
2403
2403
  }
2404
- receiveDataChannel({ sctpStreamParameters, label, protocol, }) {
2405
- var _a;
2406
- return __awaiter(this, void 0, void 0, function* () {
2404
+ receiveDataChannel(_a) {
2405
+ return __awaiter(this, arguments, void 0, function* ({ sctpStreamParameters, label, protocol, }) {
2406
+ var _b;
2407
2407
  this.assertNotClosed();
2408
2408
  this.assertRecvDirection();
2409
2409
  const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
@@ -2426,7 +2426,7 @@ class Safari17 extends HandlerInterface_js.HandlerInterface {
2426
2426
  if (!this._transportReady) {
2427
2427
  const localSdpObject = sdpTransform__namespace.parse(answer.sdp);
2428
2428
  yield this.setupTransport({
2429
- localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : "client",
2429
+ localDtlsRole: (_b = this._forcedLocalDtlsRole) !== null && _b !== void 0 ? _b : "client",
2430
2430
  localSdpObject,
2431
2431
  });
2432
2432
  }
@@ -2437,8 +2437,8 @@ class Safari17 extends HandlerInterface_js.HandlerInterface {
2437
2437
  return { dataChannel };
2438
2438
  });
2439
2439
  }
2440
- setupTransport({ localDtlsRole, localSdpObject, }) {
2441
- return __awaiter(this, void 0, void 0, function* () {
2440
+ setupTransport(_a) {
2441
+ return __awaiter(this, arguments, void 0, function* ({ localDtlsRole, localSdpObject, }) {
2442
2442
  if (!localSdpObject) {
2443
2443
  localSdpObject = sdpTransform__namespace.parse(this._pc.localDescription.sdp);
2444
2444
  }
@@ -2747,8 +2747,8 @@ class ReconnectManager extends EventEmitter {
2747
2747
  socket.on(PROTOCOL_RESPONSES.SCREENSHARE_STOPPED, (payload) => this._onScreenshareChanged(payload, false));
2748
2748
  }
2749
2749
  _onRoomJoined(payload) {
2750
- var _a;
2751
2750
  return __awaiter(this, void 0, void 0, function* () {
2751
+ var _a;
2752
2752
  this.reconnectThresholdInMs = (payload.disconnectTimeout || 0) * 0.8;
2753
2753
  if (payload === null || payload === void 0 ? void 0 : payload.error) {
2754
2754
  this.emit(PROTOCOL_RESPONSES.ROOM_JOINED, payload);
@@ -5242,8 +5242,8 @@ class VegaRtcManager {
5242
5242
  this._emitToPWA(rtcManagerEvents.SFU_CONNECTION_CLOSED);
5243
5243
  }
5244
5244
  _join() {
5245
- var _a, _b;
5246
5245
  return __awaiter(this, void 0, void 0, function* () {
5246
+ var _a, _b;
5247
5247
  logger$3.info("join()");
5248
5248
  this._emitToPWA(rtcManagerEvents.SFU_CONNECTION_OPEN);
5249
5249
  try {
@@ -5276,8 +5276,8 @@ class VegaRtcManager {
5276
5276
  });
5277
5277
  }
5278
5278
  _createTransport(send) {
5279
- var _a;
5280
5279
  return __awaiter(this, void 0, void 0, function* () {
5280
+ var _a;
5281
5281
  const creator = send ? "createSendTransport" : "createRecvTransport";
5282
5282
  const transportOptions = yield this._vegaConnection.request("createTransport", {
5283
5283
  producing: send,
@@ -5332,7 +5332,7 @@ class VegaRtcManager {
5332
5332
  transport.removeListener("connectionstatechange", onConnectionStateListener);
5333
5333
  });
5334
5334
  if (send) {
5335
- transport === null || transport === void 0 ? void 0 : transport.on("produce", ({ kind, rtpParameters, appData, }, callback, errback) => __awaiter(this, void 0, void 0, function* () {
5335
+ transport === null || transport === void 0 ? void 0 : transport.on("produce", (_a, callback_1, errback_1) => __awaiter(this, [_a, callback_1, errback_1], void 0, function* ({ kind, rtpParameters, appData, }, callback, errback) {
5336
5336
  var _b;
5337
5337
  try {
5338
5338
  const { paused } = appData;
@@ -5349,10 +5349,10 @@ class VegaRtcManager {
5349
5349
  errback(error);
5350
5350
  }
5351
5351
  }));
5352
- transport === null || transport === void 0 ? void 0 : transport.on("producedata", ({ appData, sctpStreamParameters, }, callback, errback) => __awaiter(this, void 0, void 0, function* () {
5353
- var _c;
5352
+ transport === null || transport === void 0 ? void 0 : transport.on("producedata", (_a, callback_1, errback_1) => __awaiter(this, [_a, callback_1, errback_1], void 0, function* ({ appData, sctpStreamParameters, }, callback, errback) {
5353
+ var _b;
5354
5354
  try {
5355
- const { id } = yield ((_c = this._vegaConnection) === null || _c === void 0 ? void 0 : _c.request("produceData", {
5355
+ const { id } = yield ((_b = this._vegaConnection) === null || _b === void 0 ? void 0 : _b.request("produceData", {
5356
5356
  transportId: transport.id,
5357
5357
  sctpStreamParameters,
5358
5358
  appData,
@@ -5370,8 +5370,8 @@ class VegaRtcManager {
5370
5370
  }
5371
5371
  });
5372
5372
  }
5373
- _restartIce(transport, retried = 0) {
5374
- return __awaiter(this, void 0, void 0, function* () {
5373
+ _restartIce(transport_1) {
5374
+ return __awaiter(this, arguments, void 0, function* (transport, retried = 0) {
5375
5375
  if (!transport || !("closed" in transport) || !("connectionState" in transport)) {
5376
5376
  logger$3.info("_restartIce: No transport or property closed or connectionState!");
5377
5377
  return;
@@ -5525,8 +5525,8 @@ class VegaRtcManager {
5525
5525
  this._micScoreProducer = null;
5526
5526
  }
5527
5527
  _replaceMicTrack() {
5528
- var _a;
5529
5528
  return __awaiter(this, void 0, void 0, function* () {
5529
+ var _a;
5530
5530
  logger$3.info("_replaceMicTrack()");
5531
5531
  if (!this._micTrack || !this._micProducer || this._micProducer.closed)
5532
5532
  return;
@@ -5595,8 +5595,8 @@ class VegaRtcManager {
5595
5595
  }
5596
5596
  }
5597
5597
  _internalSendWebcam() {
5598
- var _a;
5599
5598
  return __awaiter(this, void 0, void 0, function* () {
5599
+ var _a;
5600
5600
  logger$3.info("_internalSendWebcam()");
5601
5601
  if (!this._sendTransport ||
5602
5602
  this._webcamProducer ||
@@ -5605,7 +5605,7 @@ class VegaRtcManager {
5605
5605
  return;
5606
5606
  }
5607
5607
  this._webcamProducerPromise = (() => __awaiter(this, void 0, void 0, function* () {
5608
- var _b;
5608
+ var _a;
5609
5609
  try {
5610
5610
  const currentPaused = this._webcamPaused;
5611
5611
  const producer = yield this._sendTransport.produce(Object.assign(Object.assign({ track: this._webcamTrack, disableTrackOnPause: false, stopTracks: false }, getMediaSettings("video", false, Object.assign(Object.assign({}, this._features), { vp9On: this._features.sfuVp9On }))), { appData: {
@@ -5627,7 +5627,7 @@ class VegaRtcManager {
5627
5627
  this._webcamProducerPromise = null;
5628
5628
  this._qualityMonitor.removeProducer(this._selfId, producer.id);
5629
5629
  });
5630
- if (this._webcamTrack && this._webcamTrack !== ((_b = this._webcamProducer) === null || _b === void 0 ? void 0 : _b.track)) {
5630
+ if (this._webcamTrack && this._webcamTrack !== ((_a = this._webcamProducer) === null || _a === void 0 ? void 0 : _a.track)) {
5631
5631
  this._webcamProducerPromise = null;
5632
5632
  this._replaceWebcamTrack();
5633
5633
  }
@@ -6229,11 +6229,11 @@ class VegaRtcManager {
6229
6229
  }
6230
6230
  });
6231
6231
  }
6232
- _onConsumerClosed({ consumerId, reason }) {
6233
- var _a;
6234
- return __awaiter(this, void 0, void 0, function* () {
6232
+ _onConsumerClosed(_a) {
6233
+ return __awaiter(this, arguments, void 0, function* ({ consumerId, reason }) {
6234
+ var _b;
6235
6235
  logger$3.info("_onConsumerClosed()", { consumerId, reason });
6236
- (_a = this._consumers.get(consumerId)) === null || _a === void 0 ? void 0 : _a.close();
6236
+ (_b = this._consumers.get(consumerId)) === null || _b === void 0 ? void 0 : _b.close();
6237
6237
  });
6238
6238
  }
6239
6239
  _onConsumerPaused({ consumerId }) {
@@ -6292,8 +6292,8 @@ class VegaRtcManager {
6292
6292
  this._syncIncomingStreamsWithPWA(clientId);
6293
6293
  });
6294
6294
  }
6295
- _onDataConsumerClosed({ dataConsumerId, reason }) {
6296
- return __awaiter(this, void 0, void 0, function* () {
6295
+ _onDataConsumerClosed(_a) {
6296
+ return __awaiter(this, arguments, void 0, function* ({ dataConsumerId, reason }) {
6297
6297
  logger$3.info("_onDataConsumerClosed()", { dataConsumerId, reason });
6298
6298
  const consumer = this._dataConsumers.get(dataConsumerId);
6299
6299
  consumer === null || consumer === void 0 ? void 0 : consumer.close();
@@ -6695,6 +6695,16 @@ const issueDetectors = [
6695
6695
  },
6696
6696
  noTrackStatsIssueDetector,
6697
6697
  dryTrackIssueDetector,
6698
+ {
6699
+ id: "denoiser-context-suspended",
6700
+ enabled: ({ client, kind }) => { var _a, _b; return client.isLocalClient && kind === "audio" && !!((_b = (_a = client.audio) === null || _a === void 0 ? void 0 : _a.track) === null || _b === void 0 ? void 0 : _b._denoiserCtx); },
6701
+ check: ({ track }) => {
6702
+ var _a;
6703
+ if (!track || !("_denoiserCtx" in track))
6704
+ return false;
6705
+ return ((_a = track._denoiserCtx) === null || _a === void 0 ? void 0 : _a.state) === "suspended";
6706
+ },
6707
+ },
6698
6708
  {
6699
6709
  id: "low-layer0-bitrate",
6700
6710
  enabled: ({ hasLiveTrack, ssrc0, kind, client }) => hasLiveTrack && kind === "video" && !!ssrc0 && !!(ssrc0 === null || ssrc0 === void 0 ? void 0 : ssrc0.height) && !client.isPresentation,
@@ -7333,8 +7343,8 @@ class BandwidthTester extends EventEmitter {
7333
7343
  this.emit("close");
7334
7344
  }
7335
7345
  _start() {
7336
- var _a, _b;
7337
7346
  return __awaiter(this, void 0, void 0, function* () {
7347
+ var _a, _b;
7338
7348
  logger$1.info("_start()");
7339
7349
  this._connectTime = Date.now() - this._startTime;
7340
7350
  if (this._connectTime > 5000) {
@@ -7386,8 +7396,8 @@ class BandwidthTester extends EventEmitter {
7386
7396
  });
7387
7397
  }
7388
7398
  _createTransport(send) {
7389
- var _a;
7390
7399
  return __awaiter(this, void 0, void 0, function* () {
7400
+ var _a;
7391
7401
  const creator = send ? "createSendTransport" : "createRecvTransport";
7392
7402
  const transportOptions = yield this._vegaConnection.request("createTransport", {
7393
7403
  producing: send,
@@ -7406,7 +7416,7 @@ class BandwidthTester extends EventEmitter {
7406
7416
  callback();
7407
7417
  });
7408
7418
  if (send) {
7409
- transport === null || transport === void 0 ? void 0 : transport.on("produce", ({ kind, rtpParameters, appData }, callback, errback) => __awaiter(this, void 0, void 0, function* () {
7419
+ transport === null || transport === void 0 ? void 0 : transport.on("produce", (_a, callback_1, errback_1) => __awaiter(this, [_a, callback_1, errback_1], void 0, function* ({ kind, rtpParameters, appData }, callback, errback) {
7410
7420
  try {
7411
7421
  const { paused } = appData;
7412
7422
  const { id } = yield this._vegaConnection.request("produce", {
@@ -7795,9 +7805,9 @@ function replaceTracksInStream(stream, newStream, only) {
7795
7805
  });
7796
7806
  return replacedTracks;
7797
7807
  }
7798
- function getStream(constraintOpt, { replaceStream, fallback = true } = {}) {
7799
- var _a;
7800
- return __awaiter(this, void 0, void 0, function* () {
7808
+ function getStream(constraintOpt_1) {
7809
+ return __awaiter(this, arguments, void 0, function* (constraintOpt, { replaceStream, fallback = true } = {}) {
7810
+ var _a;
7801
7811
  let error;
7802
7812
  let newConstraints;
7803
7813
  let retryConstraintOpt;
package/dist/index.d.cts CHANGED
@@ -66,7 +66,7 @@ type IssuesAndMetricsByView = {
66
66
  aggregated: IssuesAndMetricsAggregated;
67
67
  };
68
68
  declare const getIssuesAndMetrics: () => {
69
- [x: string]: IssuesAndMetrics | IssuesAndMetricsAggregated;
69
+ [clientId: string]: IssuesAndMetrics | IssuesAndMetricsAggregated;
70
70
  aggregated: IssuesAndMetricsAggregated;
71
71
  };
72
72
  declare function subscribeIssues(subscription: {
@@ -1808,4 +1808,5 @@ declare class RtcStream {
1808
1808
  static getTypeFromId(id: string): string;
1809
1809
  }
1810
1810
 
1811
- export { ADDITIONAL_SCREEN_SHARE_SETTINGS, ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9, AUDIO_SETTINGS, type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutConfig, type BreakoutGroupJoinedEvent, type BreakoutSessionUpdatedEvent, type CannotJoinUnclaimedRoomError, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Codec, type Credentials, type CustomMediaStreamTrack, EVENTS, type ForbiddenError, type ForbiddenErrorNames, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type HostPresenceControlsError, type IdentifyDeviceRequest, type InternalServerError, 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 MaxViewerLimitReachedError, type NewClientEvent, NoDevicesError, type OrganizationPlanExhaustedError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomConcurrencyControlsError, type RoomFullError, type RoomJoinedErrors, type RoomJoinedEvent, type RoomJoinedSuccess, type RoomKnockedEvent, type RoomLockedError, type RoomLockedEvent, type RoomMeetingTimeExhaustedError, type RoomMode, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SETTINGS_VP9, SCREEN_SHARE_SIMULCAST_SETTINGS, 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, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_KEY, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY, 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, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
1811
+ export { ADDITIONAL_SCREEN_SHARE_SETTINGS, ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SETTINGS_VP9, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_KEY, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
1812
+ export type { AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, CustomMediaStreamTrack, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, NewClientEvent, OrganizationPlanExhaustedError, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalKnocker, SignalRequests, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TrackStats, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, ViewStats, ssrcStats };
package/dist/index.d.mts CHANGED
@@ -66,7 +66,7 @@ type IssuesAndMetricsByView = {
66
66
  aggregated: IssuesAndMetricsAggregated;
67
67
  };
68
68
  declare const getIssuesAndMetrics: () => {
69
- [x: string]: IssuesAndMetrics | IssuesAndMetricsAggregated;
69
+ [clientId: string]: IssuesAndMetrics | IssuesAndMetricsAggregated;
70
70
  aggregated: IssuesAndMetricsAggregated;
71
71
  };
72
72
  declare function subscribeIssues(subscription: {
@@ -1808,4 +1808,5 @@ declare class RtcStream {
1808
1808
  static getTypeFromId(id: string): string;
1809
1809
  }
1810
1810
 
1811
- export { ADDITIONAL_SCREEN_SHARE_SETTINGS, ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9, AUDIO_SETTINGS, type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutConfig, type BreakoutGroupJoinedEvent, type BreakoutSessionUpdatedEvent, type CannotJoinUnclaimedRoomError, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Codec, type Credentials, type CustomMediaStreamTrack, EVENTS, type ForbiddenError, type ForbiddenErrorNames, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type HostPresenceControlsError, type IdentifyDeviceRequest, type InternalServerError, 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 MaxViewerLimitReachedError, type NewClientEvent, NoDevicesError, type OrganizationPlanExhaustedError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomConcurrencyControlsError, type RoomFullError, type RoomJoinedErrors, type RoomJoinedEvent, type RoomJoinedSuccess, type RoomKnockedEvent, type RoomLockedError, type RoomLockedEvent, type RoomMeetingTimeExhaustedError, type RoomMode, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SETTINGS_VP9, SCREEN_SHARE_SIMULCAST_SETTINGS, 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, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_KEY, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY, 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, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
1811
+ export { ADDITIONAL_SCREEN_SHARE_SETTINGS, ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SETTINGS_VP9, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_KEY, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
1812
+ export type { AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, CustomMediaStreamTrack, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, NewClientEvent, OrganizationPlanExhaustedError, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalKnocker, SignalRequests, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TrackStats, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, ViewStats, ssrcStats };
package/dist/index.d.ts CHANGED
@@ -66,7 +66,7 @@ type IssuesAndMetricsByView = {
66
66
  aggregated: IssuesAndMetricsAggregated;
67
67
  };
68
68
  declare const getIssuesAndMetrics: () => {
69
- [x: string]: IssuesAndMetrics | IssuesAndMetricsAggregated;
69
+ [clientId: string]: IssuesAndMetrics | IssuesAndMetricsAggregated;
70
70
  aggregated: IssuesAndMetricsAggregated;
71
71
  };
72
72
  declare function subscribeIssues(subscription: {
@@ -1808,4 +1808,5 @@ declare class RtcStream {
1808
1808
  static getTypeFromId(id: string): string;
1809
1809
  }
1810
1810
 
1811
- export { ADDITIONAL_SCREEN_SHARE_SETTINGS, ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9, AUDIO_SETTINGS, type AddSpotlightRequest, type AudioEnableRequest, type AudioEnableRequestedEvent, type AudioEnabledEvent, BandwidthTester, type BreakoutConfig, type BreakoutGroupJoinedEvent, type BreakoutSessionUpdatedEvent, type CannotJoinUnclaimedRoomError, type ChatMessage, type ClientKickedEvent, type ClientLeftEvent, type ClientMetadataPayload, type ClientMetadataReceivedEvent, type ClientRole, type ClientUnableToJoinEvent, type CloudRecordingStartedEvent, type Codec, type Credentials, type CustomMediaStreamTrack, EVENTS, type ForbiddenError, type ForbiddenErrorNames, type GetConstraintsOptions, type GetDeviceDataResult, type GetMediaConstraintsOptions, type GetStreamOptions, type GetStreamResult, type GetUpdatedDevicesResult, type HostPresenceControlsError, type IdentifyDeviceRequest, type InternalServerError, 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 MaxViewerLimitReachedError, type NewClientEvent, NoDevicesError, type OrganizationPlanExhaustedError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, type RemoveSpotlightRequest, type RoleName, type RoomConcurrencyControlsError, type RoomFullError, type RoomJoinedErrors, type RoomJoinedEvent, type RoomJoinedSuccess, type RoomKnockedEvent, type RoomLockedError, type RoomLockedEvent, type RoomMeetingTimeExhaustedError, type RoomMode, type RoomSessionEndedEvent, type RtcClientConnectionStatusChangedPayload, RtcEventNames, type RtcEvents, type RtcLocalStreamTrackAddedPayload, type RtcLocalStreamTrackRemovedPayload, type RtcManager, type RtcManagerCreatedPayload, RtcManagerDispatcher, RtcStream, type RtcStreamAddedPayload, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SETTINGS_VP9, SCREEN_SHARE_SIMULCAST_SETTINGS, 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, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_KEY, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY, 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, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, type ssrcStats, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
1811
+ export { ADDITIONAL_SCREEN_SHARE_SETTINGS, ADDITIONAL_SCREEN_SHARE_SETTINGS_VP9, AUDIO_SETTINGS, BandwidthTester, EVENTS, KNOCK_MESSAGES, KalmanFilter, Logger, MAXIMUM_TURN_BANDWIDTH, MAXIMUM_TURN_BANDWIDTH_UNLIMITED, MEDIA_JITTER_BUFFER_TARGET, NoDevicesError, P2pRtcManager, PROTOCOL_ERRORS, PROTOCOL_EVENTS, PROTOCOL_REQUESTS, PROTOCOL_RESPONSES, RELAY_MESSAGES, ReconnectManager, RtcEventNames, RtcManagerDispatcher, RtcStream, SCREEN_SHARE_SETTINGS, SCREEN_SHARE_SETTINGS_VP9, SCREEN_SHARE_SIMULCAST_SETTINGS, STREAM_TYPES, ServerSocket, Session, SfuV2Parser, TYPES, VIDEO_SETTINGS_HD, VIDEO_SETTINGS_SD, VIDEO_SETTINGS_VP9, VIDEO_SETTINGS_VP9_KEY, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH, VIDEO_SETTINGS_VP9_LOW_BANDWIDTH_KEY, VegaConnection, VegaMediaQualityMonitor, VegaRtcManager, addAbsCaptureTimeExtMap, addExtMap, assert, buildDeviceList, calculateStd, captureAudioSsrcMetrics, captureCandidatePairInfoMetrics, captureCommonSsrcMetrics, captureSsrcInfo, captureVideoSsrcMetrics, changeMediaDirection, cleanSdp, compareLocalDevices, createACFCalculator, createMicAnalyser, createWorker, deprioritizeH264, detectMicrophoneNotWorking, enumerate, external_stun_servers, filterMidExtension, filterMsidSemantic, fromLocation, generateByteString, getConstraints, getCurrentPeerConnections, getDeviceData, getDisplayMedia, getIssuesAndMetrics, getMediaConstraints, getMediaSettings, getMediasoupDevice, getNumFailedStatsReports, getNumFailedTrackSsrcLookups, getNumMissingTrackSsrcLookups, getPeerConnectionIndex, getStats, getStream, getUpdatedDevices, getUpdatedStats, getUserMedia, hasGetDisplayMedia, ipRegex, isMobile, isRelayed, maybeRejectNoH264, maybeTurnOnly, modifyMediaCapabilities, removePeerConnection, replaceSSRCs, replaceTracksInStream, _default as rtcManagerEvents, rtcStats, setClientProvider, setCodecPreferenceSDP, setPeerConnectionsForTests, setVideoBandwidthUsingSetParameters, sortCodecs, standardDeviation, startPerformanceMonitor, stopStreamTracks, subscribeIssues, subscribeStats, turnServerOverride, variance };
1812
+ export type { AddSpotlightRequest, AudioEnableRequest, AudioEnableRequestedEvent, AudioEnabledEvent, BreakoutConfig, BreakoutGroupJoinedEvent, BreakoutSessionUpdatedEvent, CannotJoinUnclaimedRoomError, ChatMessage, ClientKickedEvent, ClientLeftEvent, ClientMetadataPayload, ClientMetadataReceivedEvent, ClientRole, ClientUnableToJoinEvent, CloudRecordingStartedEvent, Codec, Credentials, CustomMediaStreamTrack, ForbiddenError, ForbiddenErrorNames, GetConstraintsOptions, GetDeviceDataResult, GetMediaConstraintsOptions, GetStreamOptions, GetStreamResult, GetUpdatedDevicesResult, HostPresenceControlsError, IdentifyDeviceRequest, InternalServerError, IssuesAndMetricsByView, JoinRoomRequest, KnockAcceptedEvent, KnockRejectedEvent, KnockRoomRequest, KnockerLeftEvent, LiveTranscriptionStartedEvent, LiveTranscriptionStoppedEvent, MaxViewerLimitReachedError, NewClientEvent, OrganizationPlanExhaustedError, RemoveSpotlightRequest, RoleName, RoomConcurrencyControlsError, RoomFullError, RoomJoinedErrors, RoomJoinedEvent, RoomJoinedSuccess, RoomKnockedEvent, RoomLockedError, RoomLockedEvent, RoomMeetingTimeExhaustedError, RoomMode, RoomSessionEndedEvent, RtcClientConnectionStatusChangedPayload, RtcEvents, RtcLocalStreamTrackAddedPayload, RtcLocalStreamTrackRemovedPayload, RtcManager, RtcManagerCreatedPayload, RtcStreamAddedPayload, ScreenshareStartedEvent, ScreenshareStoppedEvent, SendClientMetadataRequest, SignalClient, SignalEvents, SignalKnocker, SignalRequests, SocketConf, SocketManager, Spotlight, SpotlightAddedEvent, SpotlightRemovedEvent, StatsMonitorOptions, StatsMonitorState, StatsSubscription, TrackStats, TurnTransportProtocol, UpdatedDeviceInfo, UpdatedDevicesInfo, VideoEnableRequest, VideoEnableRequestedEvent, VideoEnabledEvent, ViewStats, ssrcStats };
package/dist/index.mjs CHANGED
@@ -90,7 +90,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
90
90
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
91
91
  PERFORMANCE OF THIS SOFTWARE.
92
92
  ***************************************************************************** */
93
- /* global Reflect, Promise, SuppressedError, Symbol */
93
+ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
94
94
 
95
95
 
96
96
  function __awaiter(thisArg, _arguments, P, generator) {
@@ -597,8 +597,8 @@ const removeNonUpdatedStats = (statsByView, time) => {
597
597
  }
598
598
  });
599
599
  };
600
- function collectStats(state, { logger, interval }, immediate) {
601
- return __awaiter(this, void 0, void 0, function* () {
600
+ function collectStats(state_1, _a, immediate_1) {
601
+ return __awaiter(this, arguments, void 0, function* (state, { logger, interval }, immediate) {
602
602
  const collectStatsBound = collectStats.bind(null, state, { interval, logger });
603
603
  try {
604
604
  const clients = state.getClients();
@@ -1958,9 +1958,9 @@ class Safari17 extends HandlerInterface {
1958
1958
  return this._pc.getStats();
1959
1959
  });
1960
1960
  }
1961
- send({ track, encodings, codecOptions, codec, onRtpSender }) {
1962
- var _a;
1963
- return __awaiter(this, void 0, void 0, function* () {
1961
+ send(_a) {
1962
+ return __awaiter(this, arguments, void 0, function* ({ track, encodings, codecOptions, codec, onRtpSender }) {
1963
+ var _b;
1964
1964
  this.assertNotClosed();
1965
1965
  this.assertSendDirection();
1966
1966
  logger$9.debug("send() [kind:%s, track.id:%s]", track.kind, track.id);
@@ -2008,7 +2008,7 @@ class Safari17 extends HandlerInterface {
2008
2008
  let offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
2009
2009
  if (!this._transportReady) {
2010
2010
  yield this.setupTransport({
2011
- localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : "client",
2011
+ localDtlsRole: (_b = this._forcedLocalDtlsRole) !== null && _b !== void 0 ? _b : "client",
2012
2012
  localSdpObject,
2013
2013
  });
2014
2014
  }
@@ -2184,9 +2184,9 @@ class Safari17 extends HandlerInterface {
2184
2184
  return transceiver.sender.getStats();
2185
2185
  });
2186
2186
  }
2187
- sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
2188
- var _a;
2189
- return __awaiter(this, void 0, void 0, function* () {
2187
+ sendDataChannel(_a) {
2188
+ return __awaiter(this, arguments, void 0, function* ({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
2189
+ var _b;
2190
2190
  this.assertNotClosed();
2191
2191
  this.assertSendDirection();
2192
2192
  const options = {
@@ -2206,7 +2206,7 @@ class Safari17 extends HandlerInterface {
2206
2206
  const offerMediaObject = localSdpObject.media.find((m) => m.type === "application");
2207
2207
  if (!this._transportReady) {
2208
2208
  yield this.setupTransport({
2209
- localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : "client",
2209
+ localDtlsRole: (_b = this._forcedLocalDtlsRole) !== null && _b !== void 0 ? _b : "client",
2210
2210
  localSdpObject,
2211
2211
  });
2212
2212
  }
@@ -2228,8 +2228,8 @@ class Safari17 extends HandlerInterface {
2228
2228
  });
2229
2229
  }
2230
2230
  receive(optionsList) {
2231
- var _a, _b;
2232
2231
  return __awaiter(this, void 0, void 0, function* () {
2232
+ var _a, _b;
2233
2233
  this.assertNotClosed();
2234
2234
  this.assertRecvDirection();
2235
2235
  const results = [];
@@ -2376,9 +2376,9 @@ class Safari17 extends HandlerInterface {
2376
2376
  return transceiver.receiver.getStats();
2377
2377
  });
2378
2378
  }
2379
- receiveDataChannel({ sctpStreamParameters, label, protocol, }) {
2380
- var _a;
2381
- return __awaiter(this, void 0, void 0, function* () {
2379
+ receiveDataChannel(_a) {
2380
+ return __awaiter(this, arguments, void 0, function* ({ sctpStreamParameters, label, protocol, }) {
2381
+ var _b;
2382
2382
  this.assertNotClosed();
2383
2383
  this.assertRecvDirection();
2384
2384
  const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
@@ -2401,7 +2401,7 @@ class Safari17 extends HandlerInterface {
2401
2401
  if (!this._transportReady) {
2402
2402
  const localSdpObject = sdpTransform.parse(answer.sdp);
2403
2403
  yield this.setupTransport({
2404
- localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : "client",
2404
+ localDtlsRole: (_b = this._forcedLocalDtlsRole) !== null && _b !== void 0 ? _b : "client",
2405
2405
  localSdpObject,
2406
2406
  });
2407
2407
  }
@@ -2412,8 +2412,8 @@ class Safari17 extends HandlerInterface {
2412
2412
  return { dataChannel };
2413
2413
  });
2414
2414
  }
2415
- setupTransport({ localDtlsRole, localSdpObject, }) {
2416
- return __awaiter(this, void 0, void 0, function* () {
2415
+ setupTransport(_a) {
2416
+ return __awaiter(this, arguments, void 0, function* ({ localDtlsRole, localSdpObject, }) {
2417
2417
  if (!localSdpObject) {
2418
2418
  localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
2419
2419
  }
@@ -2722,8 +2722,8 @@ class ReconnectManager extends EventEmitter {
2722
2722
  socket.on(PROTOCOL_RESPONSES.SCREENSHARE_STOPPED, (payload) => this._onScreenshareChanged(payload, false));
2723
2723
  }
2724
2724
  _onRoomJoined(payload) {
2725
- var _a;
2726
2725
  return __awaiter(this, void 0, void 0, function* () {
2726
+ var _a;
2727
2727
  this.reconnectThresholdInMs = (payload.disconnectTimeout || 0) * 0.8;
2728
2728
  if (payload === null || payload === void 0 ? void 0 : payload.error) {
2729
2729
  this.emit(PROTOCOL_RESPONSES.ROOM_JOINED, payload);
@@ -5217,8 +5217,8 @@ class VegaRtcManager {
5217
5217
  this._emitToPWA(rtcManagerEvents.SFU_CONNECTION_CLOSED);
5218
5218
  }
5219
5219
  _join() {
5220
- var _a, _b;
5221
5220
  return __awaiter(this, void 0, void 0, function* () {
5221
+ var _a, _b;
5222
5222
  logger$3.info("join()");
5223
5223
  this._emitToPWA(rtcManagerEvents.SFU_CONNECTION_OPEN);
5224
5224
  try {
@@ -5251,8 +5251,8 @@ class VegaRtcManager {
5251
5251
  });
5252
5252
  }
5253
5253
  _createTransport(send) {
5254
- var _a;
5255
5254
  return __awaiter(this, void 0, void 0, function* () {
5255
+ var _a;
5256
5256
  const creator = send ? "createSendTransport" : "createRecvTransport";
5257
5257
  const transportOptions = yield this._vegaConnection.request("createTransport", {
5258
5258
  producing: send,
@@ -5307,7 +5307,7 @@ class VegaRtcManager {
5307
5307
  transport.removeListener("connectionstatechange", onConnectionStateListener);
5308
5308
  });
5309
5309
  if (send) {
5310
- transport === null || transport === void 0 ? void 0 : transport.on("produce", ({ kind, rtpParameters, appData, }, callback, errback) => __awaiter(this, void 0, void 0, function* () {
5310
+ transport === null || transport === void 0 ? void 0 : transport.on("produce", (_a, callback_1, errback_1) => __awaiter(this, [_a, callback_1, errback_1], void 0, function* ({ kind, rtpParameters, appData, }, callback, errback) {
5311
5311
  var _b;
5312
5312
  try {
5313
5313
  const { paused } = appData;
@@ -5324,10 +5324,10 @@ class VegaRtcManager {
5324
5324
  errback(error);
5325
5325
  }
5326
5326
  }));
5327
- transport === null || transport === void 0 ? void 0 : transport.on("producedata", ({ appData, sctpStreamParameters, }, callback, errback) => __awaiter(this, void 0, void 0, function* () {
5328
- var _c;
5327
+ transport === null || transport === void 0 ? void 0 : transport.on("producedata", (_a, callback_1, errback_1) => __awaiter(this, [_a, callback_1, errback_1], void 0, function* ({ appData, sctpStreamParameters, }, callback, errback) {
5328
+ var _b;
5329
5329
  try {
5330
- const { id } = yield ((_c = this._vegaConnection) === null || _c === void 0 ? void 0 : _c.request("produceData", {
5330
+ const { id } = yield ((_b = this._vegaConnection) === null || _b === void 0 ? void 0 : _b.request("produceData", {
5331
5331
  transportId: transport.id,
5332
5332
  sctpStreamParameters,
5333
5333
  appData,
@@ -5345,8 +5345,8 @@ class VegaRtcManager {
5345
5345
  }
5346
5346
  });
5347
5347
  }
5348
- _restartIce(transport, retried = 0) {
5349
- return __awaiter(this, void 0, void 0, function* () {
5348
+ _restartIce(transport_1) {
5349
+ return __awaiter(this, arguments, void 0, function* (transport, retried = 0) {
5350
5350
  if (!transport || !("closed" in transport) || !("connectionState" in transport)) {
5351
5351
  logger$3.info("_restartIce: No transport or property closed or connectionState!");
5352
5352
  return;
@@ -5500,8 +5500,8 @@ class VegaRtcManager {
5500
5500
  this._micScoreProducer = null;
5501
5501
  }
5502
5502
  _replaceMicTrack() {
5503
- var _a;
5504
5503
  return __awaiter(this, void 0, void 0, function* () {
5504
+ var _a;
5505
5505
  logger$3.info("_replaceMicTrack()");
5506
5506
  if (!this._micTrack || !this._micProducer || this._micProducer.closed)
5507
5507
  return;
@@ -5570,8 +5570,8 @@ class VegaRtcManager {
5570
5570
  }
5571
5571
  }
5572
5572
  _internalSendWebcam() {
5573
- var _a;
5574
5573
  return __awaiter(this, void 0, void 0, function* () {
5574
+ var _a;
5575
5575
  logger$3.info("_internalSendWebcam()");
5576
5576
  if (!this._sendTransport ||
5577
5577
  this._webcamProducer ||
@@ -5580,7 +5580,7 @@ class VegaRtcManager {
5580
5580
  return;
5581
5581
  }
5582
5582
  this._webcamProducerPromise = (() => __awaiter(this, void 0, void 0, function* () {
5583
- var _b;
5583
+ var _a;
5584
5584
  try {
5585
5585
  const currentPaused = this._webcamPaused;
5586
5586
  const producer = yield this._sendTransport.produce(Object.assign(Object.assign({ track: this._webcamTrack, disableTrackOnPause: false, stopTracks: false }, getMediaSettings("video", false, Object.assign(Object.assign({}, this._features), { vp9On: this._features.sfuVp9On }))), { appData: {
@@ -5602,7 +5602,7 @@ class VegaRtcManager {
5602
5602
  this._webcamProducerPromise = null;
5603
5603
  this._qualityMonitor.removeProducer(this._selfId, producer.id);
5604
5604
  });
5605
- if (this._webcamTrack && this._webcamTrack !== ((_b = this._webcamProducer) === null || _b === void 0 ? void 0 : _b.track)) {
5605
+ if (this._webcamTrack && this._webcamTrack !== ((_a = this._webcamProducer) === null || _a === void 0 ? void 0 : _a.track)) {
5606
5606
  this._webcamProducerPromise = null;
5607
5607
  this._replaceWebcamTrack();
5608
5608
  }
@@ -6204,11 +6204,11 @@ class VegaRtcManager {
6204
6204
  }
6205
6205
  });
6206
6206
  }
6207
- _onConsumerClosed({ consumerId, reason }) {
6208
- var _a;
6209
- return __awaiter(this, void 0, void 0, function* () {
6207
+ _onConsumerClosed(_a) {
6208
+ return __awaiter(this, arguments, void 0, function* ({ consumerId, reason }) {
6209
+ var _b;
6210
6210
  logger$3.info("_onConsumerClosed()", { consumerId, reason });
6211
- (_a = this._consumers.get(consumerId)) === null || _a === void 0 ? void 0 : _a.close();
6211
+ (_b = this._consumers.get(consumerId)) === null || _b === void 0 ? void 0 : _b.close();
6212
6212
  });
6213
6213
  }
6214
6214
  _onConsumerPaused({ consumerId }) {
@@ -6267,8 +6267,8 @@ class VegaRtcManager {
6267
6267
  this._syncIncomingStreamsWithPWA(clientId);
6268
6268
  });
6269
6269
  }
6270
- _onDataConsumerClosed({ dataConsumerId, reason }) {
6271
- return __awaiter(this, void 0, void 0, function* () {
6270
+ _onDataConsumerClosed(_a) {
6271
+ return __awaiter(this, arguments, void 0, function* ({ dataConsumerId, reason }) {
6272
6272
  logger$3.info("_onDataConsumerClosed()", { dataConsumerId, reason });
6273
6273
  const consumer = this._dataConsumers.get(dataConsumerId);
6274
6274
  consumer === null || consumer === void 0 ? void 0 : consumer.close();
@@ -6670,6 +6670,16 @@ const issueDetectors = [
6670
6670
  },
6671
6671
  noTrackStatsIssueDetector,
6672
6672
  dryTrackIssueDetector,
6673
+ {
6674
+ id: "denoiser-context-suspended",
6675
+ enabled: ({ client, kind }) => { var _a, _b; return client.isLocalClient && kind === "audio" && !!((_b = (_a = client.audio) === null || _a === void 0 ? void 0 : _a.track) === null || _b === void 0 ? void 0 : _b._denoiserCtx); },
6676
+ check: ({ track }) => {
6677
+ var _a;
6678
+ if (!track || !("_denoiserCtx" in track))
6679
+ return false;
6680
+ return ((_a = track._denoiserCtx) === null || _a === void 0 ? void 0 : _a.state) === "suspended";
6681
+ },
6682
+ },
6673
6683
  {
6674
6684
  id: "low-layer0-bitrate",
6675
6685
  enabled: ({ hasLiveTrack, ssrc0, kind, client }) => hasLiveTrack && kind === "video" && !!ssrc0 && !!(ssrc0 === null || ssrc0 === void 0 ? void 0 : ssrc0.height) && !client.isPresentation,
@@ -7308,8 +7318,8 @@ class BandwidthTester extends EventEmitter {
7308
7318
  this.emit("close");
7309
7319
  }
7310
7320
  _start() {
7311
- var _a, _b;
7312
7321
  return __awaiter(this, void 0, void 0, function* () {
7322
+ var _a, _b;
7313
7323
  logger$1.info("_start()");
7314
7324
  this._connectTime = Date.now() - this._startTime;
7315
7325
  if (this._connectTime > 5000) {
@@ -7361,8 +7371,8 @@ class BandwidthTester extends EventEmitter {
7361
7371
  });
7362
7372
  }
7363
7373
  _createTransport(send) {
7364
- var _a;
7365
7374
  return __awaiter(this, void 0, void 0, function* () {
7375
+ var _a;
7366
7376
  const creator = send ? "createSendTransport" : "createRecvTransport";
7367
7377
  const transportOptions = yield this._vegaConnection.request("createTransport", {
7368
7378
  producing: send,
@@ -7381,7 +7391,7 @@ class BandwidthTester extends EventEmitter {
7381
7391
  callback();
7382
7392
  });
7383
7393
  if (send) {
7384
- transport === null || transport === void 0 ? void 0 : transport.on("produce", ({ kind, rtpParameters, appData }, callback, errback) => __awaiter(this, void 0, void 0, function* () {
7394
+ transport === null || transport === void 0 ? void 0 : transport.on("produce", (_a, callback_1, errback_1) => __awaiter(this, [_a, callback_1, errback_1], void 0, function* ({ kind, rtpParameters, appData }, callback, errback) {
7385
7395
  try {
7386
7396
  const { paused } = appData;
7387
7397
  const { id } = yield this._vegaConnection.request("produce", {
@@ -7770,9 +7780,9 @@ function replaceTracksInStream(stream, newStream, only) {
7770
7780
  });
7771
7781
  return replacedTracks;
7772
7782
  }
7773
- function getStream(constraintOpt, { replaceStream, fallback = true } = {}) {
7774
- var _a;
7775
- return __awaiter(this, void 0, void 0, function* () {
7783
+ function getStream(constraintOpt_1) {
7784
+ return __awaiter(this, arguments, void 0, function* (constraintOpt, { replaceStream, fallback = true } = {}) {
7785
+ var _a;
7776
7786
  let error;
7777
7787
  let newConstraints;
7778
7788
  let retryConstraintOpt;
@@ -90,7 +90,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
90
90
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
91
91
  PERFORMANCE OF THIS SOFTWARE.
92
92
  ***************************************************************************** */
93
- /* global Reflect, Promise, SuppressedError, Symbol */
93
+ /* global Reflect, Promise, SuppressedError, Symbol, Iterator */
94
94
 
95
95
 
96
96
  function __awaiter(thisArg, _arguments, P, generator) {
@@ -597,8 +597,8 @@ const removeNonUpdatedStats = (statsByView, time) => {
597
597
  }
598
598
  });
599
599
  };
600
- function collectStats(state, { logger, interval }, immediate) {
601
- return __awaiter(this, void 0, void 0, function* () {
600
+ function collectStats(state_1, _a, immediate_1) {
601
+ return __awaiter(this, arguments, void 0, function* (state, { logger, interval }, immediate) {
602
602
  const collectStatsBound = collectStats.bind(null, state, { interval, logger });
603
603
  try {
604
604
  const clients = state.getClients();
@@ -1958,9 +1958,9 @@ class Safari17 extends HandlerInterface {
1958
1958
  return this._pc.getStats();
1959
1959
  });
1960
1960
  }
1961
- send({ track, encodings, codecOptions, codec, onRtpSender }) {
1962
- var _a;
1963
- return __awaiter(this, void 0, void 0, function* () {
1961
+ send(_a) {
1962
+ return __awaiter(this, arguments, void 0, function* ({ track, encodings, codecOptions, codec, onRtpSender }) {
1963
+ var _b;
1964
1964
  this.assertNotClosed();
1965
1965
  this.assertSendDirection();
1966
1966
  logger$9.debug("send() [kind:%s, track.id:%s]", track.kind, track.id);
@@ -2008,7 +2008,7 @@ class Safari17 extends HandlerInterface {
2008
2008
  let offerMediaObject = localSdpObject.media[mediaSectionIdx.idx];
2009
2009
  if (!this._transportReady) {
2010
2010
  yield this.setupTransport({
2011
- localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : "client",
2011
+ localDtlsRole: (_b = this._forcedLocalDtlsRole) !== null && _b !== void 0 ? _b : "client",
2012
2012
  localSdpObject,
2013
2013
  });
2014
2014
  }
@@ -2184,9 +2184,9 @@ class Safari17 extends HandlerInterface {
2184
2184
  return transceiver.sender.getStats();
2185
2185
  });
2186
2186
  }
2187
- sendDataChannel({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
2188
- var _a;
2189
- return __awaiter(this, void 0, void 0, function* () {
2187
+ sendDataChannel(_a) {
2188
+ return __awaiter(this, arguments, void 0, function* ({ ordered, maxPacketLifeTime, maxRetransmits, label, protocol, }) {
2189
+ var _b;
2190
2190
  this.assertNotClosed();
2191
2191
  this.assertSendDirection();
2192
2192
  const options = {
@@ -2206,7 +2206,7 @@ class Safari17 extends HandlerInterface {
2206
2206
  const offerMediaObject = localSdpObject.media.find((m) => m.type === "application");
2207
2207
  if (!this._transportReady) {
2208
2208
  yield this.setupTransport({
2209
- localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : "client",
2209
+ localDtlsRole: (_b = this._forcedLocalDtlsRole) !== null && _b !== void 0 ? _b : "client",
2210
2210
  localSdpObject,
2211
2211
  });
2212
2212
  }
@@ -2228,8 +2228,8 @@ class Safari17 extends HandlerInterface {
2228
2228
  });
2229
2229
  }
2230
2230
  receive(optionsList) {
2231
- var _a, _b;
2232
2231
  return __awaiter(this, void 0, void 0, function* () {
2232
+ var _a, _b;
2233
2233
  this.assertNotClosed();
2234
2234
  this.assertRecvDirection();
2235
2235
  const results = [];
@@ -2376,9 +2376,9 @@ class Safari17 extends HandlerInterface {
2376
2376
  return transceiver.receiver.getStats();
2377
2377
  });
2378
2378
  }
2379
- receiveDataChannel({ sctpStreamParameters, label, protocol, }) {
2380
- var _a;
2381
- return __awaiter(this, void 0, void 0, function* () {
2379
+ receiveDataChannel(_a) {
2380
+ return __awaiter(this, arguments, void 0, function* ({ sctpStreamParameters, label, protocol, }) {
2381
+ var _b;
2382
2382
  this.assertNotClosed();
2383
2383
  this.assertRecvDirection();
2384
2384
  const { streamId, ordered, maxPacketLifeTime, maxRetransmits } = sctpStreamParameters;
@@ -2401,7 +2401,7 @@ class Safari17 extends HandlerInterface {
2401
2401
  if (!this._transportReady) {
2402
2402
  const localSdpObject = sdpTransform.parse(answer.sdp);
2403
2403
  yield this.setupTransport({
2404
- localDtlsRole: (_a = this._forcedLocalDtlsRole) !== null && _a !== void 0 ? _a : "client",
2404
+ localDtlsRole: (_b = this._forcedLocalDtlsRole) !== null && _b !== void 0 ? _b : "client",
2405
2405
  localSdpObject,
2406
2406
  });
2407
2407
  }
@@ -2412,8 +2412,8 @@ class Safari17 extends HandlerInterface {
2412
2412
  return { dataChannel };
2413
2413
  });
2414
2414
  }
2415
- setupTransport({ localDtlsRole, localSdpObject, }) {
2416
- return __awaiter(this, void 0, void 0, function* () {
2415
+ setupTransport(_a) {
2416
+ return __awaiter(this, arguments, void 0, function* ({ localDtlsRole, localSdpObject, }) {
2417
2417
  if (!localSdpObject) {
2418
2418
  localSdpObject = sdpTransform.parse(this._pc.localDescription.sdp);
2419
2419
  }
@@ -2722,8 +2722,8 @@ class ReconnectManager extends EventEmitter {
2722
2722
  socket.on(PROTOCOL_RESPONSES.SCREENSHARE_STOPPED, (payload) => this._onScreenshareChanged(payload, false));
2723
2723
  }
2724
2724
  _onRoomJoined(payload) {
2725
- var _a;
2726
2725
  return __awaiter(this, void 0, void 0, function* () {
2726
+ var _a;
2727
2727
  this.reconnectThresholdInMs = (payload.disconnectTimeout || 0) * 0.8;
2728
2728
  if (payload === null || payload === void 0 ? void 0 : payload.error) {
2729
2729
  this.emit(PROTOCOL_RESPONSES.ROOM_JOINED, payload);
@@ -5217,8 +5217,8 @@ class VegaRtcManager {
5217
5217
  this._emitToPWA(rtcManagerEvents.SFU_CONNECTION_CLOSED);
5218
5218
  }
5219
5219
  _join() {
5220
- var _a, _b;
5221
5220
  return __awaiter(this, void 0, void 0, function* () {
5221
+ var _a, _b;
5222
5222
  logger$3.info("join()");
5223
5223
  this._emitToPWA(rtcManagerEvents.SFU_CONNECTION_OPEN);
5224
5224
  try {
@@ -5251,8 +5251,8 @@ class VegaRtcManager {
5251
5251
  });
5252
5252
  }
5253
5253
  _createTransport(send) {
5254
- var _a;
5255
5254
  return __awaiter(this, void 0, void 0, function* () {
5255
+ var _a;
5256
5256
  const creator = send ? "createSendTransport" : "createRecvTransport";
5257
5257
  const transportOptions = yield this._vegaConnection.request("createTransport", {
5258
5258
  producing: send,
@@ -5307,7 +5307,7 @@ class VegaRtcManager {
5307
5307
  transport.removeListener("connectionstatechange", onConnectionStateListener);
5308
5308
  });
5309
5309
  if (send) {
5310
- transport === null || transport === void 0 ? void 0 : transport.on("produce", ({ kind, rtpParameters, appData, }, callback, errback) => __awaiter(this, void 0, void 0, function* () {
5310
+ transport === null || transport === void 0 ? void 0 : transport.on("produce", (_a, callback_1, errback_1) => __awaiter(this, [_a, callback_1, errback_1], void 0, function* ({ kind, rtpParameters, appData, }, callback, errback) {
5311
5311
  var _b;
5312
5312
  try {
5313
5313
  const { paused } = appData;
@@ -5324,10 +5324,10 @@ class VegaRtcManager {
5324
5324
  errback(error);
5325
5325
  }
5326
5326
  }));
5327
- transport === null || transport === void 0 ? void 0 : transport.on("producedata", ({ appData, sctpStreamParameters, }, callback, errback) => __awaiter(this, void 0, void 0, function* () {
5328
- var _c;
5327
+ transport === null || transport === void 0 ? void 0 : transport.on("producedata", (_a, callback_1, errback_1) => __awaiter(this, [_a, callback_1, errback_1], void 0, function* ({ appData, sctpStreamParameters, }, callback, errback) {
5328
+ var _b;
5329
5329
  try {
5330
- const { id } = yield ((_c = this._vegaConnection) === null || _c === void 0 ? void 0 : _c.request("produceData", {
5330
+ const { id } = yield ((_b = this._vegaConnection) === null || _b === void 0 ? void 0 : _b.request("produceData", {
5331
5331
  transportId: transport.id,
5332
5332
  sctpStreamParameters,
5333
5333
  appData,
@@ -5345,8 +5345,8 @@ class VegaRtcManager {
5345
5345
  }
5346
5346
  });
5347
5347
  }
5348
- _restartIce(transport, retried = 0) {
5349
- return __awaiter(this, void 0, void 0, function* () {
5348
+ _restartIce(transport_1) {
5349
+ return __awaiter(this, arguments, void 0, function* (transport, retried = 0) {
5350
5350
  if (!transport || !("closed" in transport) || !("connectionState" in transport)) {
5351
5351
  logger$3.info("_restartIce: No transport or property closed or connectionState!");
5352
5352
  return;
@@ -5500,8 +5500,8 @@ class VegaRtcManager {
5500
5500
  this._micScoreProducer = null;
5501
5501
  }
5502
5502
  _replaceMicTrack() {
5503
- var _a;
5504
5503
  return __awaiter(this, void 0, void 0, function* () {
5504
+ var _a;
5505
5505
  logger$3.info("_replaceMicTrack()");
5506
5506
  if (!this._micTrack || !this._micProducer || this._micProducer.closed)
5507
5507
  return;
@@ -5570,8 +5570,8 @@ class VegaRtcManager {
5570
5570
  }
5571
5571
  }
5572
5572
  _internalSendWebcam() {
5573
- var _a;
5574
5573
  return __awaiter(this, void 0, void 0, function* () {
5574
+ var _a;
5575
5575
  logger$3.info("_internalSendWebcam()");
5576
5576
  if (!this._sendTransport ||
5577
5577
  this._webcamProducer ||
@@ -5580,7 +5580,7 @@ class VegaRtcManager {
5580
5580
  return;
5581
5581
  }
5582
5582
  this._webcamProducerPromise = (() => __awaiter(this, void 0, void 0, function* () {
5583
- var _b;
5583
+ var _a;
5584
5584
  try {
5585
5585
  const currentPaused = this._webcamPaused;
5586
5586
  const producer = yield this._sendTransport.produce(Object.assign(Object.assign({ track: this._webcamTrack, disableTrackOnPause: false, stopTracks: false }, getMediaSettings("video", false, Object.assign(Object.assign({}, this._features), { vp9On: this._features.sfuVp9On }))), { appData: {
@@ -5602,7 +5602,7 @@ class VegaRtcManager {
5602
5602
  this._webcamProducerPromise = null;
5603
5603
  this._qualityMonitor.removeProducer(this._selfId, producer.id);
5604
5604
  });
5605
- if (this._webcamTrack && this._webcamTrack !== ((_b = this._webcamProducer) === null || _b === void 0 ? void 0 : _b.track)) {
5605
+ if (this._webcamTrack && this._webcamTrack !== ((_a = this._webcamProducer) === null || _a === void 0 ? void 0 : _a.track)) {
5606
5606
  this._webcamProducerPromise = null;
5607
5607
  this._replaceWebcamTrack();
5608
5608
  }
@@ -6204,11 +6204,11 @@ class VegaRtcManager {
6204
6204
  }
6205
6205
  });
6206
6206
  }
6207
- _onConsumerClosed({ consumerId, reason }) {
6208
- var _a;
6209
- return __awaiter(this, void 0, void 0, function* () {
6207
+ _onConsumerClosed(_a) {
6208
+ return __awaiter(this, arguments, void 0, function* ({ consumerId, reason }) {
6209
+ var _b;
6210
6210
  logger$3.info("_onConsumerClosed()", { consumerId, reason });
6211
- (_a = this._consumers.get(consumerId)) === null || _a === void 0 ? void 0 : _a.close();
6211
+ (_b = this._consumers.get(consumerId)) === null || _b === void 0 ? void 0 : _b.close();
6212
6212
  });
6213
6213
  }
6214
6214
  _onConsumerPaused({ consumerId }) {
@@ -6267,8 +6267,8 @@ class VegaRtcManager {
6267
6267
  this._syncIncomingStreamsWithPWA(clientId);
6268
6268
  });
6269
6269
  }
6270
- _onDataConsumerClosed({ dataConsumerId, reason }) {
6271
- return __awaiter(this, void 0, void 0, function* () {
6270
+ _onDataConsumerClosed(_a) {
6271
+ return __awaiter(this, arguments, void 0, function* ({ dataConsumerId, reason }) {
6272
6272
  logger$3.info("_onDataConsumerClosed()", { dataConsumerId, reason });
6273
6273
  const consumer = this._dataConsumers.get(dataConsumerId);
6274
6274
  consumer === null || consumer === void 0 ? void 0 : consumer.close();
@@ -6670,6 +6670,16 @@ const issueDetectors = [
6670
6670
  },
6671
6671
  noTrackStatsIssueDetector,
6672
6672
  dryTrackIssueDetector,
6673
+ {
6674
+ id: "denoiser-context-suspended",
6675
+ enabled: ({ client, kind }) => { var _a, _b; return client.isLocalClient && kind === "audio" && !!((_b = (_a = client.audio) === null || _a === void 0 ? void 0 : _a.track) === null || _b === void 0 ? void 0 : _b._denoiserCtx); },
6676
+ check: ({ track }) => {
6677
+ var _a;
6678
+ if (!track || !("_denoiserCtx" in track))
6679
+ return false;
6680
+ return ((_a = track._denoiserCtx) === null || _a === void 0 ? void 0 : _a.state) === "suspended";
6681
+ },
6682
+ },
6673
6683
  {
6674
6684
  id: "low-layer0-bitrate",
6675
6685
  enabled: ({ hasLiveTrack, ssrc0, kind, client }) => hasLiveTrack && kind === "video" && !!ssrc0 && !!(ssrc0 === null || ssrc0 === void 0 ? void 0 : ssrc0.height) && !client.isPresentation,
@@ -7308,8 +7318,8 @@ class BandwidthTester extends EventEmitter {
7308
7318
  this.emit("close");
7309
7319
  }
7310
7320
  _start() {
7311
- var _a, _b;
7312
7321
  return __awaiter(this, void 0, void 0, function* () {
7322
+ var _a, _b;
7313
7323
  logger$1.info("_start()");
7314
7324
  this._connectTime = Date.now() - this._startTime;
7315
7325
  if (this._connectTime > 5000) {
@@ -7361,8 +7371,8 @@ class BandwidthTester extends EventEmitter {
7361
7371
  });
7362
7372
  }
7363
7373
  _createTransport(send) {
7364
- var _a;
7365
7374
  return __awaiter(this, void 0, void 0, function* () {
7375
+ var _a;
7366
7376
  const creator = send ? "createSendTransport" : "createRecvTransport";
7367
7377
  const transportOptions = yield this._vegaConnection.request("createTransport", {
7368
7378
  producing: send,
@@ -7381,7 +7391,7 @@ class BandwidthTester extends EventEmitter {
7381
7391
  callback();
7382
7392
  });
7383
7393
  if (send) {
7384
- transport === null || transport === void 0 ? void 0 : transport.on("produce", ({ kind, rtpParameters, appData }, callback, errback) => __awaiter(this, void 0, void 0, function* () {
7394
+ transport === null || transport === void 0 ? void 0 : transport.on("produce", (_a, callback_1, errback_1) => __awaiter(this, [_a, callback_1, errback_1], void 0, function* ({ kind, rtpParameters, appData }, callback, errback) {
7385
7395
  try {
7386
7396
  const { paused } = appData;
7387
7397
  const { id } = yield this._vegaConnection.request("produce", {
@@ -7770,9 +7780,9 @@ function replaceTracksInStream(stream, newStream, only) {
7770
7780
  });
7771
7781
  return replacedTracks;
7772
7782
  }
7773
- function getStream(constraintOpt, { replaceStream, fallback = true } = {}) {
7774
- var _a;
7775
- return __awaiter(this, void 0, void 0, function* () {
7783
+ function getStream(constraintOpt_1) {
7784
+ return __awaiter(this, arguments, void 0, function* (constraintOpt, { replaceStream, fallback = true } = {}) {
7785
+ var _a;
7776
7786
  let error;
7777
7787
  let newConstraints;
7778
7788
  let retryConstraintOpt;
package/package.json CHANGED
@@ -1,77 +1,87 @@
1
1
  {
2
- "name": "@whereby.com/media",
3
- "description": "Media library for Whereby",
4
- "version": "1.29.0",
5
- "license": "MIT",
6
- "homepage": "https://github.com/whereby/sdk",
7
- "repository": {
8
- "type": "git",
9
- "url": "git+https://github.com/whereby/sdk.git"
10
- },
11
- "bugs": {
12
- "url": "https://github.com/whereby/sdk/issues"
13
- },
14
- "scripts": {
15
- "clean": "rimraf dist node_modules .turbo",
16
- "build": "rimraf dist && rollup -c rollup.config.js",
17
- "watch": "rimraf dist && rollup -w -c rollup.config.js",
18
- "test": "npm run test:lint && npm run test:unit",
19
- "test:unit": "jest",
20
- "test:lint": "eslint src tests",
21
- "test:unit:coverage": "jest --collectCoverage",
22
- "test:attw": "attw --pack . -f table",
23
- "format:fix": "prettier --write './**/*.{js,ts,yml,json}'",
24
- "format:check": "prettier --check './**/*.{js,ts,yml,json}'"
25
- },
26
- "publishConfig": {
27
- "access": "public"
28
- },
29
- "main": "dist/index.cjs",
30
- "module": "dist/legacy-esm.js",
31
- "types": "dist/index.d.ts",
32
- "exports": {
33
- ".": {
34
- "import": {
35
- "types": "./dist/index.d.mts",
36
- "default": "./dist/index.mjs"
37
- },
38
- "require": {
39
- "types": "./dist/index.d.cts",
40
- "default": "./dist/index.cjs"
41
- }
42
- }
43
- },
44
- "files": [
45
- "dist/**/*.js",
46
- "dist/**/*.mjs",
47
- "dist/**/*.cjs",
48
- "dist/**/*.d.ts",
49
- "dist/**/*.d.mts",
50
- "dist/**/*.d.cts"
51
- ],
52
- "dependencies": {
53
- "@types/ua-parser-js": "^0.7.39",
54
- "check-ip": "^1.1.1",
55
- "events": "^3.3.0",
56
- "ip-address": "^9.0.5",
57
- "mediasoup-client": "3.7.18",
58
- "rtcstats": "github:whereby/rtcstats#5.4.1",
59
- "sdp": "^3.2.0",
60
- "sdp-transform": "^2.14.2",
61
- "socket.io-client": "4.7.2",
62
- "typescript": "^5.3.3",
63
- "ua-parser-js": "^1.0.38",
64
- "uuid": "^9.0.1",
65
- "uuid-validate": "^0.0.3",
66
- "webrtc-adapter": "^9.0.1"
67
- },
68
- "devDependencies": {
69
- "@babel/core": "^7.23.2",
70
- "@babel/preset-env": "^7.23.2",
71
- "jest-websocket-mock": "^2.5.0",
72
- "process": "^0.11.10"
73
- },
74
- "engines": {
75
- "node": ">=16.0.0"
2
+ "name": "@whereby.com/media",
3
+ "description": "Media library for Whereby",
4
+ "version": "1.30.0",
5
+ "license": "MIT",
6
+ "homepage": "https://github.com/whereby/sdk",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/whereby/sdk.git"
10
+ },
11
+ "bugs": {
12
+ "url": "https://github.com/whereby/sdk/issues"
13
+ },
14
+ "publishConfig": {
15
+ "access": "public"
16
+ },
17
+ "main": "dist/index.cjs",
18
+ "module": "dist/legacy-esm.js",
19
+ "types": "dist/index.d.ts",
20
+ "exports": {
21
+ ".": {
22
+ "import": {
23
+ "types": "./dist/index.d.mts",
24
+ "default": "./dist/index.mjs"
25
+ },
26
+ "require": {
27
+ "types": "./dist/index.d.cts",
28
+ "default": "./dist/index.cjs"
29
+ }
76
30
  }
77
- }
31
+ },
32
+ "files": [
33
+ "dist/**/*.js",
34
+ "dist/**/*.mjs",
35
+ "dist/**/*.cjs",
36
+ "dist/**/*.d.ts",
37
+ "dist/**/*.d.mts",
38
+ "dist/**/*.d.cts"
39
+ ],
40
+ "dependencies": {
41
+ "@types/ua-parser-js": "^0.7.39",
42
+ "check-ip": "^1.1.1",
43
+ "events": "^3.3.0",
44
+ "ip-address": "^9.0.5",
45
+ "mediasoup-client": "3.7.18",
46
+ "rtcstats": "github:whereby/rtcstats#5.4.1",
47
+ "sdp": "^3.2.0",
48
+ "sdp-transform": "^2.14.2",
49
+ "socket.io-client": "4.7.2",
50
+ "ua-parser-js": "^1.0.38",
51
+ "uuid": "^9.0.1",
52
+ "uuid-validate": "^0.0.3",
53
+ "webrtc-adapter": "^9.0.1"
54
+ },
55
+ "devDependencies": {
56
+ "@babel/core": "^7.23.2",
57
+ "@babel/preset-env": "^7.23.2",
58
+ "@types/sdp-transform": "^2.4.9",
59
+ "@types/uuid-validate": "^0.0.3",
60
+ "jest-websocket-mock": "^2.5.0",
61
+ "process": "^0.11.10",
62
+ "eslint": "^9.29.0",
63
+ "prettier": "^3.5.3",
64
+ "typescript": "^5.8.3",
65
+ "@whereby.com/eslint-config": "0.1.0",
66
+ "@whereby.com/jest-config": "0.1.0",
67
+ "@whereby.com/prettier-config": "0.1.0",
68
+ "@whereby.com/rollup-config": "0.1.0",
69
+ "@whereby.com/tsconfig": "0.1.0"
70
+ },
71
+ "engines": {
72
+ "node": ">=16.0.0"
73
+ },
74
+ "prettier": "@whereby.com/prettier-config",
75
+ "scripts": {
76
+ "clean": "rimraf dist node_modules .turbo",
77
+ "build": "rimraf dist && rollup -c rollup.config.js",
78
+ "watch": "rimraf dist && rollup -w -c rollup.config.js",
79
+ "test": "npm run test:lint && npm run test:unit",
80
+ "test:unit": "jest",
81
+ "test:lint": "eslint src tests",
82
+ "test:unit:coverage": "jest --collectCoverage",
83
+ "test:attw": "attw --pack . -f table",
84
+ "format:fix": "prettier --write './**/*.{js,ts,yml,json}'",
85
+ "format:check": "prettier --check './**/*.{js,ts,yml,json}'"
86
+ }
87
+ }