@webex/plugin-meetings 3.0.0-beta.335 → 3.0.0-beta.336

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.
@@ -209,7 +209,7 @@ var Breakout = _webexCore.WebexPlugin.extend({
209
209
  sessionId: this.sessionId
210
210
  });
211
211
  },
212
- version: "3.0.0-beta.335"
212
+ version: "3.0.0-beta.336"
213
213
  });
214
214
  var _default = Breakout;
215
215
  exports.default = _default;
@@ -1041,7 +1041,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
1041
1041
  this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
1042
1042
  }
1043
1043
  },
1044
- version: "3.0.0-beta.335"
1044
+ version: "3.0.0-beta.336"
1045
1045
  });
1046
1046
  var _default = Breakouts;
1047
1047
  exports.default = _default;
@@ -359,7 +359,7 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
359
359
  throw error;
360
360
  });
361
361
  },
362
- version: "3.0.0-beta.335"
362
+ version: "3.0.0-beta.336"
363
363
  });
364
364
  var _default = SimultaneousInterpretation;
365
365
  exports.default = _default;
@@ -18,7 +18,7 @@ var SILanguage = _webexCore.WebexPlugin.extend({
18
18
  languageCode: 'number',
19
19
  languageName: 'string'
20
20
  },
21
- version: "3.0.0-beta.335"
21
+ version: "3.0.0-beta.336"
22
22
  });
23
23
  var _default = SILanguage;
24
24
  exports.default = _default;
@@ -481,6 +481,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
481
481
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "meetingState", void 0);
482
482
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "permissionToken", void 0);
483
483
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "permissionTokenPayload", void 0);
484
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "permissionTokenReceivedLocalTime", void 0);
484
485
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "resourceId", void 0);
485
486
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "resourceUrl", void 0);
486
487
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "selfId", void 0);
@@ -3822,6 +3823,7 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
3822
3823
  key: "setPermissionTokenPayload",
3823
3824
  value: function setPermissionTokenPayload(permissionToken) {
3824
3825
  this.permissionTokenPayload = _jsonwebtoken.default.decode(permissionToken);
3826
+ this.permissionTokenReceivedLocalTime = new Date().getTime();
3825
3827
  }
3826
3828
 
3827
3829
  /**
@@ -7659,7 +7661,10 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7659
7661
  * Gets permission token expiry information including timeLeft, expiryTime, currentTime
7660
7662
  * (from the time the function has been fired)
7661
7663
  *
7662
- * @returns {object} containing timeLeft, expiryTime, currentTime
7664
+ * @returns {object} permissionTokenExpiryInfo
7665
+ * @returns {number} permissionTokenExpiryInfo.timeLeft The time left for token to expire
7666
+ * @returns {number} permissionTokenExpiryInfo.expiryTime The expiry time of permission token from the server
7667
+ * @returns {number} permissionTokenExpiryInfo.currentTime The current time of the local machine
7663
7668
  */
7664
7669
  }, {
7665
7670
  key: "getPermissionTokenExpiryInfo",
@@ -7667,19 +7672,21 @@ var Meeting = /*#__PURE__*/function (_StatelessWebexPlugin) {
7667
7672
  if (!this.permissionTokenPayload) {
7668
7673
  return undefined;
7669
7674
  }
7670
- var permissionTokenExpValue = Number(this.permissionTokenPayload.exp);
7675
+ var permissionTokenExpiryFromServer = Number(this.permissionTokenPayload.exp);
7676
+ var permissionTokenIssuedTimeFromServer = Number(this.permissionTokenPayload.iat);
7677
+ var shiftInTime = this.permissionTokenReceivedLocalTime - permissionTokenIssuedTimeFromServer;
7671
7678
 
7672
7679
  // using new Date instead of Date.now() to allow for accurate unit testing
7673
7680
  // https://github.com/sinonjs/fake-timers/issues/321
7674
- var now = new Date().getTime();
7681
+ var currentTime = new Date().getTime();
7675
7682
 
7676
- // substract current time from the permissionTokenExp
7677
- // (permissionTokenExp is a epoch timestamp, not a time to live duration)
7678
- var timeLeft = (permissionTokenExpValue - now) / 1000;
7683
+ // adjusted time is calculated in case your machine time is wrong
7684
+ var adjustedCurrentTime = currentTime - shiftInTime;
7685
+ var timeLeft = (permissionTokenExpiryFromServer - adjustedCurrentTime) / 1000;
7679
7686
  return {
7680
7687
  timeLeft: timeLeft,
7681
- expiryTime: permissionTokenExpValue,
7682
- currentTime: now
7688
+ expiryTime: permissionTokenExpiryFromServer,
7689
+ currentTime: currentTime
7683
7690
  };
7684
7691
  }
7685
7692