twilio-video 2.27.0 → 2.28.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/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@ The Twilio Programmable Video SDKs use [Semantic Versioning](http://www.semver.o
2
2
 
3
3
  **Version 1.x reached End of Life on September 8th, 2021.** See the changelog entry [here](https://www.twilio.com/changelog/end-of-life-complete-for-unsupported-versions-of-the-programmable-video-sdk). Support for the 1.x version ended on December 4th, 2020.
4
4
 
5
+ 2.28.0 (September 14, 2023)
6
+ ===========================
7
+
8
+ Bug Fixes
9
+ ---------
10
+
11
+ - Fixed a bug where a Chrome iOS 17 Participant's audio with Krisp Noise Cancellation did not recover after interacting with a system popup. (VIDEO-13012)
12
+ - Fixed a bug where a Chrome iOS 17 Participant's audio with Krisp Noise Cancellation did not recover after invoking Siri. (VIDEO-13013)
13
+
5
14
  2.27.0 (March 21, 2023)
6
15
  =======================
7
16
 
package/README.md CHANGED
@@ -74,7 +74,7 @@ Releases of twilio-video.js are hosted on a CDN, and you can include these
74
74
  directly in your web app using a <script> tag.
75
75
 
76
76
  ```html
77
- <script src="//sdk.twilio.com/js/video/releases/2.27.0/twilio-video.min.js"></script>
77
+ <script src="//sdk.twilio.com/js/video/releases/2.28.0/twilio-video.min.js"></script>
78
78
  ```
79
79
 
80
80
  Using this method, twilio-video.js will set a browser global:
@@ -1,4 +1,4 @@
1
- /*! twilio-video.js 2.27.0
1
+ /*! twilio-video.js 2.28.0
2
2
 
3
3
  The following license applies to all parts of this software except as
4
4
  documented below.
@@ -2627,7 +2627,9 @@ var LocalParticipant = /** @class */ (function (_super) {
2627
2627
  * @event LocalParticipant#trackPublicationFailed
2628
2628
  */
2629
2629
  /**
2630
- * A {@link LocalTrack} was successfully published.
2630
+ * A {@link LocalTrack} that was added using {@link LocalParticipant#publishTrack} was successfully published. This event
2631
+ * is not raised for {@link LocalTrack}s added in {@link ConnectOptions}<code>.tracks</code> or auto-created within
2632
+ * <a href="module-twilio-video.html#.connect__anchor"><code>{@link connect}</code></a>.
2631
2633
  * @param {LocalTrackPublication} publication - The resulting
2632
2634
  * {@link LocalTrackPublication} for the published {@link LocalTrack}
2633
2635
  * @event LocalParticipant#trackPublished
@@ -3593,7 +3595,7 @@ var __extends = (this && this.__extends) || (function () {
3593
3595
  })();
3594
3596
  var getUserMedia = require('../../webrtc').getUserMedia;
3595
3597
  var isIOS = require('../../util/browserdetection').isIOS;
3596
- var _a = require('../../util'), capitalize = _a.capitalize, defer = _a.defer, isUserMediaTrack = _a.isUserMediaTrack, waitForSometime = _a.waitForSometime, waitForEvent = _a.waitForEvent;
3598
+ var _a = require('../../util'), capitalize = _a.capitalize, defer = _a.defer, waitForSometime = _a.waitForSometime, waitForEvent = _a.waitForEvent;
3597
3599
  var ILLEGAL_INVOKE = require('../../util/constants').typeErrors.ILLEGAL_INVOKE;
3598
3600
  var detectSilentAudio = require('../../util/detectsilentaudio');
3599
3601
  var detectSilentVideo = require('../../util/detectsilentvideo');
@@ -3622,7 +3624,6 @@ function mixinLocalMediaTrack(AudioOrVideoTrack) {
3622
3624
  function LocalMediaTrack(mediaStreamTrack, options) {
3623
3625
  var _this = this;
3624
3626
  var workaroundWebKitBug1208516 = isIOS()
3625
- && isUserMediaTrack(mediaStreamTrack)
3626
3627
  && typeof document === 'object'
3627
3628
  && typeof document.addEventListener === 'function'
3628
3629
  && typeof document.visibilityState === 'string';
@@ -3668,6 +3669,9 @@ function mixinLocalMediaTrack(AudioOrVideoTrack) {
3668
3669
  _isCreatedByCreateLocalTracks: {
3669
3670
  value: options.isCreatedByCreateLocalTracks
3670
3671
  },
3672
+ _noiseCancellation: {
3673
+ value: options.noiseCancellation || null
3674
+ },
3671
3675
  _trackSender: {
3672
3676
  value: mediaTrackSender
3673
3677
  },
@@ -3856,9 +3860,16 @@ function mixinLocalMediaTrack(AudioOrVideoTrack) {
3856
3860
  * @returns {function} Clean up listeners attached by the workaround
3857
3861
  */
3858
3862
  function restartWhenInadvertentlyStopped(localMediaTrack) {
3859
- var log = localMediaTrack._log, kind = localMediaTrack.kind;
3860
- var detectSilence = { audio: detectSilentAudio, video: detectSilentVideo }[kind];
3861
- var el = localMediaTrack._dummyEl, mediaStreamTrack = localMediaTrack.mediaStreamTrack;
3863
+ var log = localMediaTrack._log, kind = localMediaTrack.kind, noiseCancellation = localMediaTrack._noiseCancellation;
3864
+ var detectSilence = {
3865
+ audio: detectSilentAudio,
3866
+ video: detectSilentVideo
3867
+ }[kind];
3868
+ var getSourceMediaStreamTrack = function () { return noiseCancellation
3869
+ ? noiseCancellation.sourceTrack
3870
+ : localMediaTrack.mediaStreamTrack; };
3871
+ var el = localMediaTrack._dummyEl;
3872
+ var mediaStreamTrack = getSourceMediaStreamTrack();
3862
3873
  var trackChangeInProgress = null;
3863
3874
  function checkSilence() {
3864
3875
  // The dummy element is paused, so play it and then detect silence.
@@ -3880,8 +3891,9 @@ function restartWhenInadvertentlyStopped(localMediaTrack) {
3880
3891
  });
3881
3892
  }
3882
3893
  function shouldReacquireTrack() {
3883
- var _workaroundWebKitBug1208516Cleanup = localMediaTrack._workaroundWebKitBug1208516Cleanup, isStopped = localMediaTrack.isStopped, muted = localMediaTrack.mediaStreamTrack.muted;
3894
+ var _workaroundWebKitBug1208516Cleanup = localMediaTrack._workaroundWebKitBug1208516Cleanup, isStopped = localMediaTrack.isStopped;
3884
3895
  var isInadvertentlyStopped = isStopped && !!_workaroundWebKitBug1208516Cleanup;
3896
+ var muted = getSourceMediaStreamTrack().muted;
3885
3897
  // NOTE(mmalavalli): Restart the LocalMediaTrack if:
3886
3898
  // 1. The app is foregrounded, and
3887
3899
  // 2. A restart is not already in progress, and
@@ -3902,7 +3914,7 @@ function restartWhenInadvertentlyStopped(localMediaTrack) {
3902
3914
  localMediaTrack._restart().finally(function () {
3903
3915
  el = localMediaTrack._dummyEl;
3904
3916
  removeMediaStreamTrackListeners();
3905
- mediaStreamTrack = localMediaTrack.mediaStreamTrack;
3917
+ mediaStreamTrack = getSourceMediaStreamTrack();
3906
3918
  addMediaStreamTrackListeners();
3907
3919
  trackChangeInProgress.resolve();
3908
3920
  trackChangeInProgress = null;
@@ -4146,7 +4158,6 @@ var isIOS = require('../../util/browserdetection').isIOS;
4146
4158
  var detectSilentVideo = require('../../util/detectsilentvideo');
4147
4159
  var mixinLocalMediaTrack = require('./localmediatrack');
4148
4160
  var VideoTrack = require('./videotrack');
4149
- var isUserMediaTrack = require('../../util').isUserMediaTrack;
4150
4161
  var LocalMediaVideoTrack = mixinLocalMediaTrack(VideoTrack);
4151
4162
  /**
4152
4163
  * A {@link LocalVideoTrack} is a {@link VideoTrack} representing video that
@@ -4180,7 +4191,6 @@ var LocalVideoTrack = /** @class */ (function (_super) {
4180
4191
  var _this = this;
4181
4192
  options = Object.assign({
4182
4193
  workaroundSilentLocalVideo: isIOS()
4183
- && isUserMediaTrack(mediaStreamTrack)
4184
4194
  && typeof document !== 'undefined'
4185
4195
  && typeof document.createElement === 'function'
4186
4196
  }, options);
@@ -4494,7 +4504,7 @@ function workaroundSilentLocalVideo(localVideoTrack, doc) {
4494
4504
  */
4495
4505
  module.exports = LocalVideoTrack;
4496
4506
 
4497
- },{"../../util":132,"../../util/browserdetection":123,"../../util/detectsilentvideo":127,"./localmediatrack":24,"./videotrack":43}],27:[function(require,module,exports){
4507
+ },{"../../util/browserdetection":123,"../../util/detectsilentvideo":127,"./localmediatrack":24,"./videotrack":43}],27:[function(require,module,exports){
4498
4508
  'use strict';
4499
4509
  var __extends = (this && this.__extends) || (function () {
4500
4510
  var extendStatics = function (d, b) {
@@ -22664,16 +22674,6 @@ function isChromeScreenShareTrack(track) {
22664
22674
  // we will check for label that starts with "screen:D" where D being a digit.
22665
22675
  return util.guessBrowser() === 'chrome' && track.kind === 'video' && 'displaySurface' in track.getSettings();
22666
22676
  }
22667
- /**
22668
- * returns true if given MediaStreamTrack is a user media track
22669
- * @private
22670
- * @param {MediaStreamTrack} track
22671
- * @returns {boolean}
22672
- */
22673
- function isUserMediaTrack(track) {
22674
- // NOTE(mpatwardhan): tracks obtained from getUserMedia have a deviceId in its settings.
22675
- return typeof track.getSettings().deviceId === 'string';
22676
- }
22677
22677
  /**
22678
22678
  * Returns a promise that resolve after timeoutMS have passed.
22679
22679
  * @param {number} timeoutMS - time to wait in milliseconds.
@@ -22729,7 +22729,6 @@ exports.trackPublicationClass = trackPublicationClass;
22729
22729
  exports.valueToJSON = valueToJSON;
22730
22730
  exports.withJitter = withJitter;
22731
22731
  exports.isChromeScreenShareTrack = isChromeScreenShareTrack;
22732
- exports.isUserMediaTrack = isUserMediaTrack;
22733
22732
  exports.waitForSometime = waitForSometime;
22734
22733
  exports.waitForEvent = waitForEvent;
22735
22734
 
@@ -30152,7 +30151,7 @@ module.exports={
30152
30151
  "name": "twilio-video",
30153
30152
  "title": "Twilio Video",
30154
30153
  "description": "Twilio Video JavaScript Library",
30155
- "version": "2.27.0",
30154
+ "version": "2.28.0",
30156
30155
  "homepage": "https://twilio.com",
30157
30156
  "author": "Mark Andrus Roberts <mroberts@twilio.com>",
30158
30157
  "contributors": [
@@ -30174,6 +30173,8 @@ module.exports={
30174
30173
  },
30175
30174
  "devDependencies": {
30176
30175
  "@babel/core": "^7.14.2",
30176
+ "@babel/plugin-proposal-class-properties": "^7.18.6",
30177
+ "@babel/plugin-proposal-object-rest-spread": "^7.20.7",
30177
30178
  "@babel/preset-env": "^7.14.2",
30178
30179
  "@babel/preset-typescript": "^7.13.0",
30179
30180
  "@types/express": "^4.11.0",