@webex/internal-media-core 2.20.3 → 2.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/index.js CHANGED
@@ -9221,6 +9221,43 @@ class MediaConnection extends EventEmitter$5 {
9221
9221
  });
9222
9222
  this.setupTransceiverListeners();
9223
9223
  }
9224
+ setPreferredMaxVideoBitrateKbps(bitrateKbps) {
9225
+ var _this = this;
9226
+ return _asyncToGenerator(function* () {
9227
+ var videoTransceiver = _this.transceivers.video;
9228
+ if (bitrateKbps === undefined || !videoTransceiver || !videoTransceiver.sender) {
9229
+ return;
9230
+ }
9231
+ var {
9232
+ sender
9233
+ } = videoTransceiver;
9234
+ if (!sender.track || sender.track.kind !== 'video') {
9235
+ _this.warn('setPreferredMaxVideoBitrateKbps()', 'sender track is not a video track');
9236
+ return;
9237
+ }
9238
+ if (!sender.getParameters || !sender.setParameters) {
9239
+ _this.warn('setPreferredMaxVideoBitrateKbps()', 'sender does not support getParameters or setParameters');
9240
+ return;
9241
+ }
9242
+ var parameters = sender.getParameters();
9243
+ if (!parameters.encodings) {
9244
+ parameters.encodings = [];
9245
+ }
9246
+ var bitrateBps = bitrateKbps * 1000;
9247
+ if (parameters.encodings.length === 0) {
9248
+ parameters.encodings.push({
9249
+ maxBitrate: bitrateBps
9250
+ });
9251
+ } else {
9252
+ if (parameters.encodings.length > 1) {
9253
+ _this.error('setPreferredMaxVideoBitrateKbps()', "Multiple encodings detected (".concat(parameters.encodings.length, "). Only setting bitrate on first encoding."));
9254
+ }
9255
+ parameters.encodings[0].maxBitrate = bitrateBps;
9256
+ }
9257
+ yield sender.setParameters(parameters);
9258
+ _this.log('setPreferredMaxVideoBitrateKbps()', "Successfully set max bitrate to ".concat(bitrateKbps, "kbps"));
9259
+ })();
9260
+ }
9224
9261
  initializeTransceivers(incomingOffer) {
9225
9262
  if (this.pc.getTransceivers().length > 0) {
9226
9263
  this.error('initiateOffer()', 'SDP negotiation already started');
@@ -9334,7 +9371,7 @@ class MediaConnection extends EventEmitter$5 {
9334
9371
  return this.pc.getStats();
9335
9372
  }
9336
9373
  getTransceiverStats() {
9337
- var _this = this;
9374
+ var _this2 = this;
9338
9375
  return _asyncToGenerator(function* () {
9339
9376
  var result = {
9340
9377
  audio: {
@@ -9355,7 +9392,7 @@ class MediaConnection extends EventEmitter$5 {
9355
9392
  }
9356
9393
  };
9357
9394
  var _loop = function* _loop(type) {
9358
- var transceiver = _this.transceivers[type];
9395
+ var transceiver = _this2.transceivers[type];
9359
9396
  if (transceiver) {
9360
9397
  yield transceiver.sender.getStats().then(statsReport => {
9361
9398
  var _transceiver$sender, _transceiver$sender$t;
@@ -9688,6 +9725,42 @@ class MediaConnection extends EventEmitter$5 {
9688
9725
  var _this$forceStatsRepor;
9689
9726
  (_this$forceStatsRepor = this.forceStatsReport) === null || _this$forceStatsRepor === void 0 ? void 0 : _this$forceStatsRepor.call(this);
9690
9727
  }
9728
+ updatePreferredBitrateKbps() {
9729
+ this.updatePreferredBitrateFromLocalVideoTrack();
9730
+ }
9731
+ updatePreferredBitrateFromLocalVideoTrack() {
9732
+ var _bitrateThresholds$fi, _bitrateThresholds$fi2;
9733
+ var videoTrack = this.localTracks.video;
9734
+ if (!videoTrack || !videoTrack.getSettings) {
9735
+ return;
9736
+ }
9737
+ var {
9738
+ width = 0,
9739
+ height = 0
9740
+ } = videoTrack.getSettings();
9741
+ var pixels = width * height;
9742
+ if (!pixels) {
9743
+ return;
9744
+ }
9745
+ var bitrateThresholds = [{
9746
+ maxPixels: 640 * 360,
9747
+ kbps: 800
9748
+ }, {
9749
+ maxPixels: 640 * 480,
9750
+ kbps: 1200
9751
+ }, {
9752
+ maxPixels: 1280 * 720,
9753
+ kbps: 2500
9754
+ }, {
9755
+ maxPixels: 1920 * 1080,
9756
+ kbps: 4000
9757
+ }];
9758
+ var kbps = (_bitrateThresholds$fi = (_bitrateThresholds$fi2 = bitrateThresholds.find(threshold => pixels <= threshold.maxPixels)) === null || _bitrateThresholds$fi2 === void 0 ? void 0 : _bitrateThresholds$fi2.kbps) !== null && _bitrateThresholds$fi !== void 0 ? _bitrateThresholds$fi : 4000;
9759
+ this.config.preferredMaxVideoBitrateKbps = kbps;
9760
+ this.setPreferredMaxVideoBitrateKbps(kbps).catch(error => {
9761
+ this.error('updatePreferredBitrateFromLocalVideoTrack()', "Failed to set preferred max video bitrate: ".concat(error.message));
9762
+ });
9763
+ }
9691
9764
  }
9692
9765
 
9693
9766
  /*
@@ -17770,6 +17843,9 @@ class RoapMediaConnection extends EventEmitter$5 {
17770
17843
  }
17771
17844
  return Promise.resolve();
17772
17845
  }
17846
+ updatePreferredBitrateKbps() {
17847
+ this.mediaConnection.updatePreferredBitrateKbps();
17848
+ }
17773
17849
  updateDirection(direction) {
17774
17850
  this.log('updateDirection()', "called with ".concat(JSON.stringify(direction)));
17775
17851
  var newOfferNeeded = this.mediaConnection.updateDirection(direction);
package/dist/esm/index.js CHANGED
@@ -9217,6 +9217,43 @@ class MediaConnection extends EventEmitter$5 {
9217
9217
  });
9218
9218
  this.setupTransceiverListeners();
9219
9219
  }
9220
+ setPreferredMaxVideoBitrateKbps(bitrateKbps) {
9221
+ var _this = this;
9222
+ return _asyncToGenerator(function* () {
9223
+ var videoTransceiver = _this.transceivers.video;
9224
+ if (bitrateKbps === undefined || !videoTransceiver || !videoTransceiver.sender) {
9225
+ return;
9226
+ }
9227
+ var {
9228
+ sender
9229
+ } = videoTransceiver;
9230
+ if (!sender.track || sender.track.kind !== 'video') {
9231
+ _this.warn('setPreferredMaxVideoBitrateKbps()', 'sender track is not a video track');
9232
+ return;
9233
+ }
9234
+ if (!sender.getParameters || !sender.setParameters) {
9235
+ _this.warn('setPreferredMaxVideoBitrateKbps()', 'sender does not support getParameters or setParameters');
9236
+ return;
9237
+ }
9238
+ var parameters = sender.getParameters();
9239
+ if (!parameters.encodings) {
9240
+ parameters.encodings = [];
9241
+ }
9242
+ var bitrateBps = bitrateKbps * 1000;
9243
+ if (parameters.encodings.length === 0) {
9244
+ parameters.encodings.push({
9245
+ maxBitrate: bitrateBps
9246
+ });
9247
+ } else {
9248
+ if (parameters.encodings.length > 1) {
9249
+ _this.error('setPreferredMaxVideoBitrateKbps()', "Multiple encodings detected (".concat(parameters.encodings.length, "). Only setting bitrate on first encoding."));
9250
+ }
9251
+ parameters.encodings[0].maxBitrate = bitrateBps;
9252
+ }
9253
+ yield sender.setParameters(parameters);
9254
+ _this.log('setPreferredMaxVideoBitrateKbps()', "Successfully set max bitrate to ".concat(bitrateKbps, "kbps"));
9255
+ })();
9256
+ }
9220
9257
  initializeTransceivers(incomingOffer) {
9221
9258
  if (this.pc.getTransceivers().length > 0) {
9222
9259
  this.error('initiateOffer()', 'SDP negotiation already started');
@@ -9330,7 +9367,7 @@ class MediaConnection extends EventEmitter$5 {
9330
9367
  return this.pc.getStats();
9331
9368
  }
9332
9369
  getTransceiverStats() {
9333
- var _this = this;
9370
+ var _this2 = this;
9334
9371
  return _asyncToGenerator(function* () {
9335
9372
  var result = {
9336
9373
  audio: {
@@ -9351,7 +9388,7 @@ class MediaConnection extends EventEmitter$5 {
9351
9388
  }
9352
9389
  };
9353
9390
  var _loop = function* _loop(type) {
9354
- var transceiver = _this.transceivers[type];
9391
+ var transceiver = _this2.transceivers[type];
9355
9392
  if (transceiver) {
9356
9393
  yield transceiver.sender.getStats().then(statsReport => {
9357
9394
  var _transceiver$sender, _transceiver$sender$t;
@@ -9684,6 +9721,42 @@ class MediaConnection extends EventEmitter$5 {
9684
9721
  var _this$forceStatsRepor;
9685
9722
  (_this$forceStatsRepor = this.forceStatsReport) === null || _this$forceStatsRepor === void 0 ? void 0 : _this$forceStatsRepor.call(this);
9686
9723
  }
9724
+ updatePreferredBitrateKbps() {
9725
+ this.updatePreferredBitrateFromLocalVideoTrack();
9726
+ }
9727
+ updatePreferredBitrateFromLocalVideoTrack() {
9728
+ var _bitrateThresholds$fi, _bitrateThresholds$fi2;
9729
+ var videoTrack = this.localTracks.video;
9730
+ if (!videoTrack || !videoTrack.getSettings) {
9731
+ return;
9732
+ }
9733
+ var {
9734
+ width = 0,
9735
+ height = 0
9736
+ } = videoTrack.getSettings();
9737
+ var pixels = width * height;
9738
+ if (!pixels) {
9739
+ return;
9740
+ }
9741
+ var bitrateThresholds = [{
9742
+ maxPixels: 640 * 360,
9743
+ kbps: 800
9744
+ }, {
9745
+ maxPixels: 640 * 480,
9746
+ kbps: 1200
9747
+ }, {
9748
+ maxPixels: 1280 * 720,
9749
+ kbps: 2500
9750
+ }, {
9751
+ maxPixels: 1920 * 1080,
9752
+ kbps: 4000
9753
+ }];
9754
+ var kbps = (_bitrateThresholds$fi = (_bitrateThresholds$fi2 = bitrateThresholds.find(threshold => pixels <= threshold.maxPixels)) === null || _bitrateThresholds$fi2 === void 0 ? void 0 : _bitrateThresholds$fi2.kbps) !== null && _bitrateThresholds$fi !== void 0 ? _bitrateThresholds$fi : 4000;
9755
+ this.config.preferredMaxVideoBitrateKbps = kbps;
9756
+ this.setPreferredMaxVideoBitrateKbps(kbps).catch(error => {
9757
+ this.error('updatePreferredBitrateFromLocalVideoTrack()', "Failed to set preferred max video bitrate: ".concat(error.message));
9758
+ });
9759
+ }
9687
9760
  }
9688
9761
 
9689
9762
  /*
@@ -17766,6 +17839,9 @@ class RoapMediaConnection extends EventEmitter$5 {
17766
17839
  }
17767
17840
  return Promise.resolve();
17768
17841
  }
17842
+ updatePreferredBitrateKbps() {
17843
+ this.mediaConnection.updatePreferredBitrateKbps();
17844
+ }
17769
17845
  updateDirection(direction) {
17770
17846
  this.log('updateDirection()', "called with ".concat(JSON.stringify(direction)));
17771
17847
  var newOfferNeeded = this.mediaConnection.updateDirection(direction);
@@ -36,6 +36,7 @@ export declare class MediaConnection extends EventEmitter<MediaConnectionEvents>
36
36
  private warn;
37
37
  private error;
38
38
  private createTransceivers;
39
+ setPreferredMaxVideoBitrateKbps(bitrateKbps: number): Promise<void>;
39
40
  initializeTransceivers(incomingOffer: boolean): void;
40
41
  close(): void;
41
42
  getConfig(): MediaConnectionConfig;
@@ -71,5 +72,7 @@ export declare class MediaConnection extends EventEmitter<MediaConnectionEvents>
71
72
  handleRemoteAnswer(sdp?: string): Promise<void>;
72
73
  private waitForIceCandidates;
73
74
  forceRtcMetricsCallback(): void;
75
+ updatePreferredBitrateKbps(): void;
76
+ private updatePreferredBitrateFromLocalVideoTrack;
74
77
  }
75
78
  //# sourceMappingURL=MediaConnection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MediaConnection.d.ts","sourceRoot":"","sources":["../../../src/MediaConnection/MediaConnection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MediaConnection.d.ts","sourceRoot":"","sources":["../../../src/MediaConnection/MediaConnection.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@ export declare class RoapMediaConnection extends EventEmitter<RoapEvents | Media
25
25
  private stopRoapSession;
26
26
  reconnect(iceServersPromise: RTCIceServer[] | Promise<RTCIceServer[]>, initiateOffer?: boolean): Promise<void>;
27
27
  updateLocalTracks(tracks: LocalTracks): Promise<void>;
28
+ updatePreferredBitrateKbps(): void;
28
29
  updateDirection(direction: MediaDirection): Promise<void>;
29
30
  updateRemoteQualityLevel(newValue?: RemoteQualityLevel): Promise<void>;
30
31
  update(options: MediaOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"RoapMediaConnection.d.ts","sourceRoot":"","sources":["../../../src/MediaConnection/RoapMediaConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EACL,WAAW,EAEX,cAAc,EACd,YAAY,EACZ,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAGL,WAAW,EAEX,eAAe,EACf,UAAU,EACV,qBAAqB,EACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAG7D,qBAAa,mBAAoB,SAAQ,YAAY,CAAC,UAAU,GAAG,qBAAqB,CAAC;IACvF,OAAO,CAAC,EAAE,CAAS;IAEnB,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,IAAI,CAAO;IAEnB,OAAO,CAAC,qBAAqB,CAAU;IAEvC,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,mBAAmB,CAAsB;gBAc/C,qBAAqB,EAAE,qBAAqB,EAC5C,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,MAAM,EAChB,eAAe,GAAE,eAA0B,EAC3C,aAAa,GAAE,aAAwB,EACvC,mBAAmB,GAAE,mBAA8B;IA2BrD,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,qBAAqB;IAiC7B,OAAO,CAAC,UAAU;IAoCX,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB9B,KAAK,IAAI,IAAI;IAQP,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjD,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,eAAe;IAiBV,SAAS,CACpB,iBAAiB,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,EAC3D,aAAa,UAAO,GACnB,OAAO,CAAC,IAAI,CAAC;IAgDT,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBrD,eAAe,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAczD,wBAAwB,CAAC,QAAQ,CAAC,EAAE,kBAAkB;IA4BtD,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB5C,sBAAsB,IAAI,sBAAsB;IAShD,qBAAqB,IAAI,qBAAqB;IAS9C,kBAAkB,IAAI,eAAe;IASrC,oBAAoB,IAAI,oBAAoB;IAM5C,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAMnC,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAoBhD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAazE,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAwB1D,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;CAG3B"}
1
+ {"version":3,"file":"RoapMediaConnection.d.ts","sourceRoot":"","sources":["../../../src/MediaConnection/RoapMediaConnection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EACL,WAAW,EAEX,cAAc,EACd,YAAY,EACZ,kBAAkB,EACnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAGL,WAAW,EAEX,eAAe,EACf,UAAU,EACV,qBAAqB,EACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAG7D,qBAAa,mBAAoB,SAAQ,YAAY,CAAC,UAAU,GAAG,qBAAqB,CAAC;IACvF,OAAO,CAAC,EAAE,CAAS;IAEnB,OAAO,CAAC,OAAO,CAAC,CAAS;IAEzB,OAAO,CAAC,eAAe,CAAkB;IAEzC,OAAO,CAAC,IAAI,CAAO;IAEnB,OAAO,CAAC,qBAAqB,CAAU;IAEvC,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,mBAAmB,CAAsB;gBAc/C,qBAAqB,EAAE,qBAAqB,EAC5C,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE,MAAM,EAChB,eAAe,GAAE,eAA0B,EAC3C,aAAa,GAAE,aAAwB,EACvC,mBAAmB,GAAE,mBAA8B;IA2BrD,OAAO,CAAC,GAAG;IAIX,OAAO,CAAC,KAAK;IAOb,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,qBAAqB;IAiC7B,OAAO,CAAC,UAAU;IAoCX,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB9B,KAAK,IAAI,IAAI;IAQP,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjD,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,eAAe;IAiBV,SAAS,CACpB,iBAAiB,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,EAC3D,aAAa,UAAO,GACnB,OAAO,CAAC,IAAI,CAAC;IAgDT,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrD,0BAA0B;IAY1B,eAAe,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAczD,wBAAwB,CAAC,QAAQ,CAAC,EAAE,kBAAkB;IA4BtD,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB5C,sBAAsB,IAAI,sBAAsB;IAShD,qBAAqB,IAAI,qBAAqB;IAS9C,kBAAkB,IAAI,eAAe;IASrC,oBAAoB,IAAI,oBAAoB;IAM5C,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAMnC,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAoBhD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAazE,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAwB1D,OAAO,CAAC,aAAa;IAIrB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,kBAAkB;CAG3B"}
@@ -19,6 +19,7 @@ export interface MediaConnectionConfig {
19
19
  requireH264?: boolean;
20
20
  iceCandidatesTimeout?: number;
21
21
  sdpMunging: SdpMungingConfig;
22
+ preferredMaxVideoBitrateKbps?: number;
22
23
  }
23
24
  export interface MultistreamConnectionConfig {
24
25
  iceServers: Array<RTCIceServer>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/MediaConnection/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAoE;IAC7F,gBAAgB,CAAC,EAAE,OAAO,CAAuE;IACjG,kBAAkB,CAAC,EAAE,OAAO,CAAoE;IAChG,eAAe,CAAC,EAAE;QAChB,KAAK,EAAE,MAAM,CAA6E;QAC1F,KAAK,EAAE,MAAM,CAA6E;KAC3F,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CACmE;IACxF,iBAAiB,CAAC,EAAE,MAAM,CAAqE;IAC/F,aAAa,CAAC,EAAE,OAAO,CACkC;IACzD,UAAU,CAAC,EAAE,OAAO,CAC4C;IAChE,SAAS,CAAC,EAAE,MAAM,CAEkD;IACpE,uBAAuB,CAAC,EAAE,OAAO,CACiC;CACnE;AAED,MAAM,WAAW,qBAAqB;IAEpC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,wBAAwB,EAAE,OAAO,CAmBM;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,gBAAgB,CAAC;CAC9B;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wCAAwC,CAAC,EAAE,OAAO,CAAC;IACnD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,iCAAiC,CAAC,EAAE,OAAO,CAAC;CAC7C"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/MediaConnection/config.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAoE;IAC7F,gBAAgB,CAAC,EAAE,OAAO,CAAuE;IACjG,kBAAkB,CAAC,EAAE,OAAO,CAAoE;IAChG,eAAe,CAAC,EAAE;QAChB,KAAK,EAAE,MAAM,CAA6E;QAC1F,KAAK,EAAE,MAAM,CAA6E;KAC3F,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CACmE;IACxF,iBAAiB,CAAC,EAAE,MAAM,CAAqE;IAC/F,aAAa,CAAC,EAAE,OAAO,CACkC;IACzD,UAAU,CAAC,EAAE,OAAO,CAC4C;IAChE,SAAS,CAAC,EAAE,MAAM,CAEkD;IACpE,uBAAuB,CAAC,EAAE,OAAO,CACiC;CACnE;AAED,MAAM,WAAW,qBAAqB;IAEpC,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,wBAAwB,EAAE,OAAO,CAmBM;IACvC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,4BAA4B,CAAC,EAAE,MAAM,CAAC;CACvC;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,YAAY,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,wCAAwC,CAAC,EAAE,OAAO,CAAC;IACnD,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,iCAAiC,CAAC,EAAE,OAAO,CAAC;CAC7C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/internal-media-core",
3
- "version": "2.20.3",
3
+ "version": "2.21.0",
4
4
  "files": [
5
5
  "dist/cjs",
6
6
  "dist/esm",