@opentok/client 2.28.6-alpha.1 → 2.28.6-alpha.11

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.
@@ -577,6 +577,7 @@ declare namespace OT {
577
577
  iceConfig?: IceConfig;
578
578
  ipWhitelist?: boolean;
579
579
  encryptionSecret?: string;
580
+ singlePeerConnection?: boolean;
580
581
  }
581
582
  ): Session;
582
583
 
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @license OpenTok.js 2.28.6 cfc9630
2
+ * @license OpenTok.js 2.28.6 6956622
3
3
  *
4
- * Copyright (c) 2010-2024 TokBox, Inc.
4
+ * Copyright (c) 2010-2025 TokBox, Inc.
5
5
  * Subject to the applicable Software Development Kit (SDK) License Agreement:
6
6
  * https://www.vonage.com/legal/communications-apis/terms-of-use/
7
7
  *
8
- * Date: Thu, 12 Dec 2024 15:37:43 GMT
8
+ * Date: Fri, 10 Jan 2025 12:03:33 GMT
9
9
  */
10
10
 
11
11
  (function webpackUniversalModuleDefinition(root, factory) {
@@ -3738,32 +3738,43 @@ function EventsFactory(deps) {
3738
3738
  };
3739
3739
 
3740
3740
  /**
3741
- * The Session object dispatches a cpuPerformanceChanged event when the CPU performance state has been changed
3742
- * The event will only be dispatched on Chromium browsers (Chrome 125+, Edge 125+, and Opera 111+).
3743
- * Events will not be dispatched after disconnecting from a Session, but will resume after reconnecting.
3744
- * This is a <b>beta</b> feature.
3741
+ * The Session object dispatches a <code>cpuPerformanceChanged</code> event
3742
+ * when the CPU performance state changes.
3743
+ * The event is only dispatched on Chromium browsers (Chrome 125+, Edge 125+, and Opera 111+).
3744
+ * Events are not dispatched after disconnecting from a session, but they resume after reconnecting.
3745
3745
  *
3746
- * @property {cpuPerformanceState} cpuPerformanceState The new cpuPerformanceState. The cpuPerformanceState can
3747
- * be one the following: "nominal", "fair", "serious", or "critical";
3746
+ * @property {String} cpuPerformanceState The new CPU performance state. The CPU performance state can
3747
+ * be one the following: "nominal", "fair", "serious", or "critical".
3748
+ * (See <a href="https://w3c.github.io/compute-pressure/#pressure-states">this W3C specification</a>.)
3748
3749
  *
3750
+ * @see <a href="Session.html#event:cpuPerformanceChanged">Session cpuPerformanceChanged event</a>
3751
+ * @class CpuPerformanceChangedEvent
3752
+ * @augments Event
3749
3753
  */
3750
- Events.CpuPerformanceChanged = function CpuPerformanceChanged(cpuPerformanceState) {
3754
+ Events.CpuPerformanceChangedEvent = function CpuPerformanceChangedEvent(cpuPerformanceState) {
3751
3755
  return new _Event4.default('cpuPerformanceChanged', false, {
3752
3756
  cpuPerformanceState
3753
3757
  });
3754
3758
  };
3755
3759
 
3756
3760
  /**
3757
- * The Subscriber object dispatches a qualityScoreChanged event when either the audio or video quality
3758
- * score has changed. The scores are a heuristic value representing the expected subscriber experience. The values
3759
- * range from 5 to 1, with the integer values corresponding to Excellent | Good | Fair | Poor | Bad.
3760
- * This is a <b>beta</b> feature.
3761
+ * The Subscriber object dispatches a <code>qualityScoreChanged</code>
3762
+ * event when either the audio or video quality score changes for the subscriber.
3763
+ * The scores are a heuristic value representing the expected subscriber experience.
3764
+ * The values are integers ranging from 1 to 5, with the values corresponding to
3765
+ * bad, poor, fair, good, and excellent.
3766
+ *
3767
+ * @class QualityScoreChangedEvent
3768
+ * @augments Event
3769
+ * @see <a href="Subscriber.html#event:qualityScoreChanged">Subscriber qualityScoreChanged event</a>
3761
3770
  *
3762
- * @property {QualityScore} qualityScore most recent quality score. The event contains
3763
- * a qualityScore object with optional audio and video properties.
3771
+ * @property {Object} qualityScore The current quality score for the subscriber.
3772
+ * The event contains two properties: <code>audioQualityScore</code>
3773
+ * and <code>videoQualityScore</code>. These properties are undefined if there
3774
+ * is either no audio or no video.
3764
3775
  *
3765
3776
  */
3766
- Events.QualityScoreChanged = function qualityScoreChanged(qualityScore) {
3777
+ Events.QualityScoreChangedEvent = function qualityScoreChanged(qualityScore) {
3767
3778
  return new _Event4.default('qualityScoreChanged', false, {
3768
3779
  qualityScore
3769
3780
  });
@@ -3798,7 +3809,6 @@ function EventsFactory(deps) {
3798
3809
  };
3799
3810
 
3800
3811
  /**
3801
- * This is a <b>beta</b> feature.
3802
3812
  * Defines an event object for the <code>mediaStreamAvailable</code> event dispatched by both
3803
3813
  * the Publisher and Subscriber objects. The Publisher and Subscriber objects both dispatch a <code>mediaStreamAvailable</code>
3804
3814
  * event when the MediaStream is available to be used in custom video elements. The Publisher and Subscriber objects should still be used to
@@ -3812,9 +3822,10 @@ function EventsFactory(deps) {
3812
3822
  * event</a>
3813
3823
  * @see <a href="Subscriber.html#event:mediaStreamAvailable">Subscriber mediaStreamAvailable
3814
3824
  * event</a>
3825
+ * @class MediaStreamAvailableEvent
3815
3826
  * @augments Event
3816
3827
  */
3817
- Events.MediaStreamAvailable = function MediaStreamAvailable(mediaStream) {
3828
+ Events.MediaStreamAvailableEvent = function MediaStreamAvailableEvent(mediaStream) {
3818
3829
  return new _Event4.default('mediaStreamAvailable', false, {
3819
3830
  mediaStream
3820
3831
  });
@@ -3896,9 +3907,7 @@ function EventsFactory(deps) {
3896
3907
  * setting the <code>videoDisabledDisplayMode</code> property, or you can set the
3897
3908
  * <code>videoDisabledDisplayMode</code> property when
3898
3909
  * calling the <code>OT.initPublisher()</code> method and setting the <code>style</code> property
3899
- * of the <code>properties</code> parameter.
3900
- * <p>
3901
- * This is a beta feature.</li>
3910
+ * of the <code>properties</code> parameter.</li>
3902
3911
  * </ul>
3903
3912
  * </li>
3904
3913
  *
@@ -3954,16 +3963,18 @@ function EventsFactory(deps) {
3954
3963
  };
3955
3964
 
3956
3965
  /**
3957
- * Dispatched when the audio input device is changed. This is a <b>beta</b> feature.
3966
+ * Dispatched when the audio input device is changed.
3958
3967
  *
3959
- * @property {Object} device The audio input device. Contains a deviceId and label.
3968
+ * <p> For more information, see <a href="https://tokbox.com/developer/guides/audio-video/js/#audioInputDeviceChanged">this documentation</a>.
3969
+ * @property {Object} device The audio input device.
3970
+ * This object has a <code>deviceId</code> property and a <code>label</code> property (both strings).
3960
3971
  *
3961
3972
  * @see <a href="Publisher.html#event:audioInputDeviceChanged">Publisher audioInputDeviceChanged event</a></p>
3962
3973
  * @see <a href="Publisher.html#setAudioSource">Publisher.setAudioSource()</a></p>
3963
- * @class AudioInputDeviceChanged
3974
+ * @class AudioInputDeviceChangedEvent
3964
3975
  * @augments Event
3965
3976
  */
3966
- Events.AudioInputDeviceChanged = function AudioInputDeviceChanged(device) {
3977
+ Events.AudioInputDeviceChangedEvent = function AudioInputDeviceChangedEvent(device) {
3967
3978
  return new _Event4.default(_eventNames.default.AUDIO_INPUT_DEVICE_CHANGED, false, {
3968
3979
  device
3969
3980
  });
@@ -8107,7 +8118,7 @@ const logging = (0, _log.default)('StaticConfig');
8107
8118
  */
8108
8119
 
8109
8120
  /** @type builtInConfig */
8110
- const builtInConfig = (0, _cloneDeep.default)({"version":"v2.28.6","buildHash":"cfc9630","minimumVersion":{"firefox":52,"chrome":49},"debug":false,"websiteURL":"http://www.tokbox.com","configURL":"https://config.opentok.com","ipWhitelistConfigURL":"","cdnURL":"","loggingURL":"https://hlg.tokbox.com/prod","apiURL":"https://anvil.opentok.com"});
8121
+ const builtInConfig = (0, _cloneDeep.default)({"version":"v2.28.6","buildHash":"6956622","minimumVersion":{"firefox":52,"chrome":49},"debug":false,"websiteURL":"http://www.tokbox.com","configURL":"https://config.opentok.com","ipWhitelistConfigURL":"","cdnURL":"","loggingURL":"https://hlg.tokbox.com/prod","apiURL":"https://anvil.opentok.com"});
8111
8122
  const whitelistAllowedRuntimeProperties = (0, _pick.default)(['apiURL', 'assetURL', 'cdnURL', 'sessionInfoOverrides', 'loggingURL']);
8112
8123
  const liveConfigMap = {
8113
8124
  apiUrl: 'apiURL',
@@ -18690,7 +18701,7 @@ function PublisherFactory(_ref) {
18690
18701
  }
18691
18702
  });
18692
18703
  widgetView.on('videoElementCreated', element => {
18693
- this.dispatchEvent(new Events.MediaStreamAvailable(webRTCStream));
18704
+ this.dispatchEvent(new Events.MediaStreamAvailableEvent(webRTCStream));
18694
18705
  const event = new Events.VideoElementCreatedEvent(element);
18695
18706
  this.dispatchEvent(event);
18696
18707
  });
@@ -19435,7 +19446,7 @@ function PublisherFactory(_ref) {
19435
19446
  * @param {function} callback (Optional) A function that takes in an <code><a href="Error.html">Error</a></code>
19436
19447
  * parameter. Upon successful completion of the method, this <code>error</code> parameter is undefined.
19437
19448
  * An error results if the publisher has no devices to provide the media stream or if the user media
19438
- * request is not supported. <i>Note:</i> this is a beta feature.
19449
+ * request is not supported.
19439
19450
  *
19440
19451
  * @see <a href="OT.html#initPublisher">OT.initPublisher()</a>
19441
19452
  * @see <a href="Stream.html#hasVideo">Stream.hasVideo</a>
@@ -22467,7 +22478,6 @@ function PublisherFactory(_ref) {
22467
22478
  * app from having access to the camera and microphone.
22468
22479
  * <p>
22469
22480
  * This event is also dispatched if the user removes the permissions after previously granting them.
22470
- * This is a beta feature.
22471
22481
  * <p>
22472
22482
  * <i>Note:</i> On macOS 10.15+ (Catalina), to publish a screen-sharing stream
22473
22483
  * the user must grant the browser access to the screen in macOS System Preferences &gt;
@@ -22490,7 +22500,6 @@ function PublisherFactory(_ref) {
22490
22500
  */
22491
22501
 
22492
22502
  /**
22493
- * This is a <b>beta</b> feature.
22494
22503
  * Dispatched when the MediaStream is available.
22495
22504
  * @see Event
22496
22505
  * @name mediaStreamAvailable
@@ -22510,11 +22519,8 @@ function PublisherFactory(_ref) {
22510
22519
  /**
22511
22520
  * Dispatched when the audio input device is changed.
22512
22521
  *
22513
- * <p>
22514
- * This is a beta feature.
22515
- *
22516
22522
  * @see Event
22517
- * @see AudioInputDeviceChanged
22523
+ * @see AudioInputDeviceChangedEvent
22518
22524
  * @name audioInputDeviceChanged
22519
22525
  * @event
22520
22526
  * @memberof Publisher
@@ -22622,8 +22628,6 @@ function PublisherFactory(_ref) {
22622
22628
  * <a href="OT.html#initPublisher">OT.initPublisher()</a>.)</li>
22623
22629
  *
22624
22630
  * </ul>
22625
- * <p>
22626
- * This is a beta feature.
22627
22631
  *
22628
22632
  * @see Event
22629
22633
  * @see <a href="Publisher.html#event:videoDisableWarning">videoDisableWarning</a> event
@@ -22645,8 +22649,6 @@ function PublisherFactory(_ref) {
22645
22649
  * <code>videoDisabledDisplayMode</code> property when calling the
22646
22650
  * <code>OT.initPublisher()</code> method and setting the <code>style</code> property
22647
22651
  * of the <code>properties</code> parameter.
22648
- * <p>
22649
- * This is a beta feature.
22650
22652
  *
22651
22653
  * @see Event
22652
22654
  * @see <a href="Publisher.html#event:videoDisabled">videoDisabled</a> event
@@ -22660,8 +22662,6 @@ function PublisherFactory(_ref) {
22660
22662
  * Dispatched when the Publisher determines that the stream quality has improved
22661
22663
  * to the point at which the video being disabled is not an immediate risk. This event is
22662
22664
  * dispatched after the Publisher object dispatches a <code>videoDisableWarning</code> event.
22663
- * <p>
22664
- * This is a beta feature.
22665
22665
  *
22666
22666
  * @see Event
22667
22667
  * @see <a href="Publisher.html#event:videoDisableWarning">videoDisableWarning</a> event
@@ -22696,9 +22696,6 @@ function PublisherFactory(_ref) {
22696
22696
  * Dispatched when the Publisher resumes sending video to the publisher
22697
22697
  * after video was previously disabled.
22698
22698
  *
22699
- * <p>
22700
- * This is a beta feature.
22701
- *
22702
22699
  * @see Event
22703
22700
  * @see <a href="Publisher.html#event:videoDisabled">videoDisabled</a> event
22704
22701
  * @name videoEnabled
@@ -52825,8 +52822,9 @@ function Analytics(_ref) {
52825
52822
  logging.debug('Failed to send ClientEvent, moving on to the next item.');
52826
52823
  }
52827
52824
  onComplete(err || undefined);
52828
- callback();
52829
52825
  });
52826
+ // Invoke the callback here to move on to the next item in the queue
52827
+ callback();
52830
52828
  });
52831
52829
  };
52832
52830
  const shouldThrottleError = (code, type, partnerId) => {
@@ -59462,7 +59460,7 @@ function SubscriberFactory(_ref2) {
59462
59460
  _session2 = _session, sessionInfo = _session2.sessionInfo;
59463
59461
  if (!_exposedWebRTCStream) {
59464
59462
  _exposedWebRTCStream = new MediaStream(webRTCStream);
59465
- _this.dispatchEvent(new Events.MediaStreamAvailable(_exposedWebRTCStream));
59463
+ _this.dispatchEvent(new Events.MediaStreamAvailableEvent(_exposedWebRTCStream));
59466
59464
  }
59467
59465
  _webRTCStream = webRTCStream;
59468
59466
 
@@ -59757,7 +59755,7 @@ function SubscriberFactory(_ref2) {
59757
59755
  }, _callee9);
59758
59756
  })), 2000);
59759
59757
  }
59760
- if (_widgetView) {
59758
+ if (_widgetView && sourceStreamId === _activeSourceStreamId) {
59761
59759
  _widgetView.loading(currentConnectionState !== _eventNames.default.SUBSCRIBER_CONNECTED);
59762
59760
  }
59763
59761
  logging.debug(`OT.Subscriber.connectionStateChanged to ${state}`);
@@ -62241,7 +62239,6 @@ function SubscriberFactory(_ref2) {
62241
62239
  */
62242
62240
 
62243
62241
  /**
62244
- * This is a <b>beta</b> feature.
62245
62242
  * Dispatched when the MediaStream is available.
62246
62243
  * @see Event
62247
62244
  * @name mediaStreamAvailable
@@ -62393,11 +62390,11 @@ function SubscriberFactory(_ref2) {
62393
62390
  * Dispatched when either the audio or video quality
62394
62391
  * score has changed. The scores are a heuristic value representing the expected subscriber experience. The values
62395
62392
  * range from 5 to 1, with the integer values corresponding to Excellent | Good | Fair | Poor | Bad.
62396
- * This is a <b>beta</b> feature.
62397
- * @name qualityScoreChanged
62393
+ *
62394
+ * @name qualityScoreChanged
62398
62395
  * @event
62399
62396
  * @memberof Subscriber
62400
- * @see qualityScoreChangedEvent
62397
+ * @see QualityScoreChangedEvent
62401
62398
  */
62402
62399
  return this;
62403
62400
  };
@@ -63534,8 +63531,6 @@ function initPublisherFactory(deps) {
63534
63531
  * <a href="Publisher.html#event:videoDisableWarning">videoDisableWarning</a>,
63535
63532
  * <a href="Publisher.html#event:videoDisableWarningLifted">videoDisableWarningLifted</a>, and
63536
63533
  * <a href="Publisher.html#event:videoEnabled">videoEnabled</a> events.
63537
- * <p>
63538
- * This is a beta feature.
63539
63534
  * </li>
63540
63535
  *
63541
63536
  * <li><code>subscriber</code> (Boolean) &mdash; Whether the stream will use the
@@ -63955,8 +63950,6 @@ function initPublisherFactory(deps) {
63955
63950
  * displayed video is disabled or at risk of being disabled due to poor stream quality),
63956
63951
  * <code>"off"</code> (do not display the icons), and <code>"on"</code> (display the
63957
63952
  * icons). The default setting is <code>"auto"</code>.
63958
- * <p>
63959
- * This is a beta feature.
63960
63953
  * </li>
63961
63954
  * </ul>
63962
63955
  * </li>
@@ -64422,7 +64415,7 @@ function SessionFactory(deps) {
64422
64415
  cpuPressureMonitor.initMonitoring(PressureObserver);
64423
64416
  cpuPressureMonitor.startMonitoring();
64424
64417
  cpuPressureMonitor.on('pressureMonitorEvent', newState => {
64425
- this.dispatchEvent(new Events.CpuPerformanceChanged(newState));
64418
+ this.dispatchEvent(new Events.CpuPerformanceChangedEvent(newState));
64426
64419
  });
64427
64420
  }
64428
64421
 
@@ -67263,6 +67256,16 @@ function SessionFactory(deps) {
67263
67256
  * of streams in a session</a>
67264
67257
  */
67265
67258
 
67259
+ /**
67260
+ * The CPU performance state has changed. This can be set to
67261
+ * one the following: "nominal", "fair", "serious", or "critical".
67262
+ *
67263
+ * @name cpuPerformanceChanged
67264
+ * @event
67265
+ * @memberof Session
67266
+ * @see CpuPerformanceChangedEvent
67267
+ */
67268
+
67266
67269
  /**
67267
67270
  * The client has connected to a Vonage Video API session. This event is dispatched asynchronously
67268
67271
  * in response to a successful call to the <code>connect()</code> method of a Session
@@ -67280,7 +67283,7 @@ function SessionFactory(deps) {
67280
67283
  /**
67281
67284
  * The client has disconnected from the session. This event may be dispatched asynchronously
67282
67285
  * in response to a successful call to the <code>disconnect()</code> method of the Session object.
67283
- * The event may also be dispatched if a session connection is lost inadvertantly, as in the case
67286
+ * The event may also be dispatched if a session connection is lost inadvertently, as in the case
67284
67287
  * of a lost network connection.
67285
67288
  * <p>
67286
67289
  * The default behavior is that all Subscriber objects are unsubscribed and removed from the
@@ -67429,7 +67432,7 @@ function SessionFactory(deps) {
67429
67432
  * console.log("Signal data: " + event.data);
67430
67433
  * });
67431
67434
  * </pre>
67432
- * <p>You can register for signals of a specfied type by adding an event handler for the
67435
+ * <p>You can register for signals of a specified type by adding an event handler for the
67433
67436
  * <code>signal:type</code> event (replacing <code>type</code> with the actual type string
67434
67437
  * to filter on).
67435
67438
  *
@@ -67453,7 +67456,7 @@ function SessionFactory(deps) {
67453
67456
  * </li>
67454
67457
  * </ul>
67455
67458
  * <p>
67456
- * You can register for signals of a specfied type by adding an event handler for the
67459
+ * You can register for signals of a specified type by adding an event handler for the
67457
67460
  * <code>signal:type</code> event (replacing <code>type</code> with the actual type string
67458
67461
  * to filter on). For example, the following code adds an event handler for signals of
67459
67462
  * type "foo":
@@ -69714,12 +69717,13 @@ OT.ArchiveEvent = Events.ArchiveEvent;
69714
69717
  OT.ArchiveUpdatedEvent = Events.ArchiveUpdatedEvent;
69715
69718
  OT.AudioLevelTransformer = _audio_level_transformer.default;
69716
69719
  OT.AudioLevelUpdatedEvent = Events.AudioLevelUpdatedEvent;
69717
- OT.AudioInputDeviceChanged = Events.AudioInputDeviceChanged;
69720
+ OT.AudioInputDeviceChangedEvent = Events.AudioInputDeviceChangedEvent;
69718
69721
  OT.Capabilities = _capabilities.default;
69719
69722
  OT.Chrome = _chrome.default;
69720
69723
  OT.Connection = _connection.default;
69721
69724
  OT.ConnectionCapabilities = OT.Connection.Capabilities;
69722
69725
  OT.ConnectionEvent = Events.ConnectionEvent;
69726
+ OT.CpuPerformanceChangedEvent = Events.CpuPerformanceChangedEvent;
69723
69727
  Object.keys(_logLevels.default).forEach(name => {
69724
69728
  OT[name.toUpperCase()] = _logLevels.default[name].priority;
69725
69729
  });
@@ -69757,6 +69761,7 @@ OT.HAS_REQUIREMENTS = 1;
69757
69761
  OT.IntervalRunner = _interval_runner.default;
69758
69762
  OT.IssueReportedEvent = Events.IssueReportedEvent;
69759
69763
  OT.MediaStoppedEvent = Events.MediaStoppedEvent;
69764
+ OT.MediaStreamAvailableEvent = Events.MediaStreamAvailableEvent;
69760
69765
  OT.Microphone = Microphone;
69761
69766
  OT.NOT_HAS_REQUIREMENTS = 0;
69762
69767
  OT.PeerConnection = PeerConnection;
@@ -95416,7 +95421,7 @@ const createMOSScoreHelper = () => ({
95416
95421
  if (previousVideoScore !== currentVideoScore || previousAudioScore !== currentAudioScore) {
95417
95422
  // Don't emit an empty object
95418
95423
  if (Object.keys(qualityScore).length > 0) {
95419
- subscriber.dispatchEvent(new Events.QualityScoreChanged(qualityScore));
95424
+ subscriber.dispatchEvent(new Events.QualityScoreChangedEvent(qualityScore));
95420
95425
  }
95421
95426
  }
95422
95427
  previousAudioScore = currentAudioScore;
@@ -97812,7 +97817,7 @@ var _default = function _default(deps) {
97812
97817
  _context.next = 9;
97813
97818
  return publisher.setAudioSource(device.deviceId);
97814
97819
  case 9:
97815
- publisher.dispatchEvent(Events.AudioInputDeviceChanged(device));
97820
+ publisher.dispatchEvent(Events.AudioInputDeviceChangedEvent(device));
97816
97821
  case 10:
97817
97822
  case "end":
97818
97823
  return _context.stop();
@@ -105224,6 +105229,12 @@ function initSessionFactory(deps) {
105224
105229
  * end-to-end encryption feature. See <a href="https://tokbox.com/developer/guides/end-to-end-encryption/">
105225
105230
  * the developer guide</a>.
105226
105231
  * </li>
105232
+ * <li><code>singlePeerConnection</code> &mdash; (Boolean) Enables the Single Peer Connection (SPC) feature.
105233
+ * SPC is a feature that encapsulates all subscriber connections to a single peer
105234
+ * connection. The benefits of enabling SPC include reduced OS resource consumption and improved rate control.
105235
+ * SPC is disabled by default. When disabled, the session will use Multiple Peer Connection (MPC), where a
105236
+ * separate peer connection is established between each endpoint.
105237
+ * </li>
105227
105238
  * </ul>
105228
105239
  *
105229
105240
  * @returns {Session} The session object through which all further interactions with