@webex/plugin-meetings 3.11.0-next.29 → 3.11.0-next.30

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.
Files changed (35) hide show
  1. package/dist/breakouts/breakout.js +1 -1
  2. package/dist/breakouts/index.js +1 -1
  3. package/dist/index.js +2 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/interceptors/constant.js +12 -0
  6. package/dist/interceptors/constant.js.map +1 -0
  7. package/dist/interceptors/dataChannelAuthToken.js +233 -0
  8. package/dist/interceptors/dataChannelAuthToken.js.map +1 -0
  9. package/dist/interceptors/index.js +7 -0
  10. package/dist/interceptors/index.js.map +1 -1
  11. package/dist/interpretation/index.js +1 -1
  12. package/dist/interpretation/siLanguage.js +1 -1
  13. package/dist/meeting/index.js +109 -26
  14. package/dist/meeting/index.js.map +1 -1
  15. package/dist/meeting/request.js +50 -0
  16. package/dist/meeting/request.js.map +1 -1
  17. package/dist/meeting/request.type.js.map +1 -1
  18. package/dist/types/interceptors/constant.d.ts +5 -0
  19. package/dist/types/interceptors/dataChannelAuthToken.d.ts +35 -0
  20. package/dist/types/interceptors/index.d.ts +2 -1
  21. package/dist/types/meeting/index.d.ts +19 -0
  22. package/dist/types/meeting/request.d.ts +16 -1
  23. package/dist/types/meeting/request.type.d.ts +5 -0
  24. package/dist/webinar/index.js +1 -1
  25. package/package.json +3 -3
  26. package/src/index.ts +6 -1
  27. package/src/interceptors/constant.ts +6 -0
  28. package/src/interceptors/dataChannelAuthToken.ts +142 -0
  29. package/src/interceptors/index.ts +2 -1
  30. package/src/meeting/index.ts +73 -3
  31. package/src/meeting/request.ts +42 -0
  32. package/src/meeting/request.type.ts +6 -0
  33. package/test/unit/spec/interceptors/dataChannelAuthToken.ts +141 -0
  34. package/test/unit/spec/meeting/index.js +250 -59
  35. package/test/unit/spec/meeting/request.js +64 -0
@@ -209,7 +209,7 @@ var Breakout = _webexCore.WebexPlugin.extend({
209
209
  sessionId: this.sessionId
210
210
  });
211
211
  },
212
- version: "3.11.0-next.29"
212
+ version: "3.11.0-next.30"
213
213
  });
214
214
  var _default = exports.default = Breakout;
215
215
  //# sourceMappingURL=breakout.js.map
@@ -1109,7 +1109,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
1109
1109
  this.trigger(_constants.BREAKOUTS.EVENTS.ASK_RETURN_TO_MAIN);
1110
1110
  }
1111
1111
  },
1112
- version: "3.11.0-next.29"
1112
+ version: "3.11.0-next.30"
1113
1113
  });
1114
1114
  var _default = exports.default = Breakouts;
1115
1115
  //# sourceMappingURL=index.js.map
package/dist/index.js CHANGED
@@ -248,7 +248,8 @@ function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var
248
248
  config: _config.default,
249
249
  interceptors: {
250
250
  LocusRetryStatusInterceptor: _interceptors.LocusRetryStatusInterceptor.create,
251
- LocusRouteTokenInterceptor: _interceptors.LocusRouteTokenInterceptor.create
251
+ LocusRouteTokenInterceptor: _interceptors.LocusRouteTokenInterceptor.create,
252
+ DataChannelAuthTokenInterceptor: _interceptors.DataChannelAuthTokenInterceptor.create
252
253
  }
253
254
  });
254
255
  var _default = exports.default = _meetings.default;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_meetings","_interopRequireDefault","_config","_interceptors","_captchaError","_intentToJoin","_passwordError","_permission","_joinWebinarError","_reclaimHostRoleErrors","_meeting","_utilv","_joinMeeting","_webexErrors","_mediaHelpers","_CONSTANTS","_interopRequireWildcard","exports","CONSTANTS","_REACTIONS","REACTIONS","_sdkAnnotationTypes","sdkAnnotationTypes","_MeetingInfoV","MeetingInfoV2","_remoteMedia","_triggerProxy","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","registerPlugin","Meetings","config","interceptors","LocusRetryStatusInterceptor","create","LocusRouteTokenInterceptor","_default"],"sources":["index.ts"],"sourcesContent":["/* eslint-env browser */\nimport {registerPlugin} from '@webex/webex-core';\n\nimport Meetings from './meetings';\nimport config from './config';\nimport {LocusRetryStatusInterceptor, LocusRouteTokenInterceptor} from './interceptors';\nimport CaptchaError from './common/errors/captcha-error';\nimport IntentToJoinError from './common/errors/intent-to-join';\nimport PasswordError from './common/errors/password-error';\nimport PermissionError from './common/errors/permission';\nimport JoinWebinarError from './common/errors/join-webinar-error';\nimport {\n ReclaimHostEmptyWrongKeyError,\n ReclaimHostIsHostAlreadyError,\n ReclaimHostNotAllowedError,\n ReclaimHostNotSupportedError,\n} from './common/errors/reclaim-host-role-errors';\nimport Meeting from './meeting';\nimport MeetingInfoUtil from './meeting-info/utilv2';\nimport JoinMeetingError from './common/errors/join-meeting';\nimport {SdpResponseTimeoutError} from './common/errors/webex-errors';\n\nregisterPlugin('meetings', Meetings, {\n config,\n interceptors: {\n LocusRetryStatusInterceptor: LocusRetryStatusInterceptor.create,\n LocusRouteTokenInterceptor: LocusRouteTokenInterceptor.create,\n },\n});\n\nexport {\n LocalStream,\n LocalDisplayStream,\n LocalSystemAudioStream,\n LocalStreamEventNames,\n StreamEventNames,\n RemoteStreamEventNames,\n type ServerMuteReason,\n LocalMicrophoneStreamEventNames,\n LocalCameraStreamEventNames,\n LocalMicrophoneStream,\n LocalCameraStream,\n createMicrophoneStream,\n createCameraStream,\n createCameraAndMicrophoneStreams,\n createDisplayStream,\n createDisplayStreamWithAudio,\n createDisplayMedia,\n FacingMode,\n DisplaySurface,\n PresetCameraConstraints,\n type VideoContentHint,\n type StreamState,\n} from '@webex/media-helpers';\n\nexport default Meetings;\n\nexport * as CONSTANTS from './constants';\nexport * as REACTIONS from './reactions/reactions';\nexport * as sdkAnnotationTypes from './annotation/annotation.types';\nexport * as MeetingInfoV2 from './meeting-info/meeting-info-v2';\nexport {type Reaction} from './reactions/reactions.type';\n\nexport {\n CaptchaError,\n IntentToJoinError,\n JoinMeetingError,\n PasswordError,\n PermissionError,\n ReclaimHostIsHostAlreadyError,\n ReclaimHostNotAllowedError,\n ReclaimHostNotSupportedError,\n ReclaimHostEmptyWrongKeyError,\n Meeting,\n MeetingInfoUtil,\n JoinWebinarError,\n SdpResponseTimeoutError,\n};\n\nexport {RemoteMedia} from './multistream/remoteMedia';\n\nexport {default as TriggerProxy} from './common/events/trigger-proxy';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_webexCore","require","_meetings","_interopRequireDefault","_config","_interceptors","_captchaError","_intentToJoin","_passwordError","_permission","_joinWebinarError","_reclaimHostRoleErrors","_meeting","_utilv","_joinMeeting","_webexErrors","_mediaHelpers","_CONSTANTS","_interopRequireWildcard","exports","CONSTANTS","_REACTIONS","REACTIONS","_sdkAnnotationTypes","sdkAnnotationTypes","_MeetingInfoV","MeetingInfoV2","_remoteMedia","_triggerProxy","e","t","_WeakMap","r","n","__esModule","o","i","f","__proto__","default","_typeof","has","get","set","_t","hasOwnProperty","call","_Object$defineProperty","_Object$getOwnPropertyDescriptor","registerPlugin","Meetings","config","interceptors","LocusRetryStatusInterceptor","create","LocusRouteTokenInterceptor","DataChannelAuthTokenInterceptor","_default"],"sources":["index.ts"],"sourcesContent":["/* eslint-env browser */\nimport {registerPlugin} from '@webex/webex-core';\n\nimport Meetings from './meetings';\nimport config from './config';\nimport {\n LocusRetryStatusInterceptor,\n LocusRouteTokenInterceptor,\n DataChannelAuthTokenInterceptor,\n} from './interceptors';\nimport CaptchaError from './common/errors/captcha-error';\nimport IntentToJoinError from './common/errors/intent-to-join';\nimport PasswordError from './common/errors/password-error';\nimport PermissionError from './common/errors/permission';\nimport JoinWebinarError from './common/errors/join-webinar-error';\nimport {\n ReclaimHostEmptyWrongKeyError,\n ReclaimHostIsHostAlreadyError,\n ReclaimHostNotAllowedError,\n ReclaimHostNotSupportedError,\n} from './common/errors/reclaim-host-role-errors';\nimport Meeting from './meeting';\nimport MeetingInfoUtil from './meeting-info/utilv2';\nimport JoinMeetingError from './common/errors/join-meeting';\nimport {SdpResponseTimeoutError} from './common/errors/webex-errors';\n\nregisterPlugin('meetings', Meetings, {\n config,\n interceptors: {\n LocusRetryStatusInterceptor: LocusRetryStatusInterceptor.create,\n LocusRouteTokenInterceptor: LocusRouteTokenInterceptor.create,\n DataChannelAuthTokenInterceptor: DataChannelAuthTokenInterceptor.create,\n },\n});\n\nexport {\n LocalStream,\n LocalDisplayStream,\n LocalSystemAudioStream,\n LocalStreamEventNames,\n StreamEventNames,\n RemoteStreamEventNames,\n type ServerMuteReason,\n LocalMicrophoneStreamEventNames,\n LocalCameraStreamEventNames,\n LocalMicrophoneStream,\n LocalCameraStream,\n createMicrophoneStream,\n createCameraStream,\n createCameraAndMicrophoneStreams,\n createDisplayStream,\n createDisplayStreamWithAudio,\n createDisplayMedia,\n FacingMode,\n DisplaySurface,\n PresetCameraConstraints,\n type VideoContentHint,\n type StreamState,\n} from '@webex/media-helpers';\n\nexport default Meetings;\n\nexport * as CONSTANTS from './constants';\nexport * as REACTIONS from './reactions/reactions';\nexport * as sdkAnnotationTypes from './annotation/annotation.types';\nexport * as MeetingInfoV2 from './meeting-info/meeting-info-v2';\nexport {type Reaction} from './reactions/reactions.type';\n\nexport {\n CaptchaError,\n IntentToJoinError,\n JoinMeetingError,\n PasswordError,\n PermissionError,\n ReclaimHostIsHostAlreadyError,\n ReclaimHostNotAllowedError,\n ReclaimHostNotSupportedError,\n ReclaimHostEmptyWrongKeyError,\n Meeting,\n MeetingInfoUtil,\n JoinWebinarError,\n SdpResponseTimeoutError,\n};\n\nexport {RemoteMedia} from './multistream/remoteMedia';\n\nexport {default as TriggerProxy} from './common/events/trigger-proxy';\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.RETRY_KEY = exports.RETRY_INTERVAL = exports.MAX_RETRY = exports.DATA_CHANNEL_AUTH_HEADER = void 0;
8
+ var DATA_CHANNEL_AUTH_HEADER = exports.DATA_CHANNEL_AUTH_HEADER = 'Data-Channel-Auth-Token';
9
+ var MAX_RETRY = exports.MAX_RETRY = 1;
10
+ var RETRY_INTERVAL = exports.RETRY_INTERVAL = 2000;
11
+ var RETRY_KEY = exports.RETRY_KEY = '_dcRetryKey';
12
+ //# sourceMappingURL=constant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DATA_CHANNEL_AUTH_HEADER","exports","MAX_RETRY","RETRY_INTERVAL","RETRY_KEY"],"sources":["constant.ts"],"sourcesContent":["const DATA_CHANNEL_AUTH_HEADER = 'Data-Channel-Auth-Token';\nconst MAX_RETRY = 1;\nconst RETRY_INTERVAL = 2000;\nconst RETRY_KEY = '_dcRetryKey';\n\nexport {DATA_CHANNEL_AUTH_HEADER, MAX_RETRY, RETRY_INTERVAL, RETRY_KEY};\n"],"mappings":";;;;;;;AAAA,IAAMA,wBAAwB,GAAAC,OAAA,CAAAD,wBAAA,GAAG,yBAAyB;AAC1D,IAAME,SAAS,GAAAD,OAAA,CAAAC,SAAA,GAAG,CAAC;AACnB,IAAMC,cAAc,GAAAF,OAAA,CAAAE,cAAA,GAAG,IAAI;AAC3B,IAAMC,SAAS,GAAAH,OAAA,CAAAG,SAAA,GAAG,aAAa","ignoreList":[]}
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+
3
+ var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
4
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
5
+ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
6
+ _Object$defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.default = void 0;
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
11
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
12
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
13
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
14
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
15
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
16
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
18
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
19
+ var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
20
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
21
+ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
22
+ var _httpCore = require("@webex/http-core");
23
+ var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
24
+ var _constant = require("./constant");
25
+ function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? _Reflect$construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }
26
+ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /*!
27
+ * Copyright (c) 2015-2026 Cisco Systems, Inc. See LICENSE file.
28
+ */
29
+ /*!
30
+ * Copyright (c) 2015-2026 Cisco Systems, Inc. See LICENSE file.
31
+ */
32
+
33
+ var retryCountMap = new _map.default();
34
+ /**
35
+ * @class
36
+ */
37
+ var DataChannelAuthTokenInterceptor = exports.default = /*#__PURE__*/function (_Interceptor) {
38
+ function DataChannelAuthTokenInterceptor(options) {
39
+ var _this;
40
+ (0, _classCallCheck2.default)(this, DataChannelAuthTokenInterceptor);
41
+ _this = _callSuper(this, DataChannelAuthTokenInterceptor, [options]);
42
+ (0, _defineProperty2.default)(_this, "_refreshDataChannelToken", void 0);
43
+ (0, _defineProperty2.default)(_this, "_isDataChannelTokenEnabled", void 0);
44
+ _this._refreshDataChannelToken = options.refreshDataChannelToken;
45
+ _this._isDataChannelTokenEnabled = options.isDataChannelTokenEnabled;
46
+ return _this;
47
+ }
48
+
49
+ /**
50
+ * @returns {DataChannelAuthTokenInterceptor}
51
+ */
52
+ (0, _inherits2.default)(DataChannelAuthTokenInterceptor, _Interceptor);
53
+ return (0, _createClass2.default)(DataChannelAuthTokenInterceptor, [{
54
+ key: "getRetryKey",
55
+ value: function getRetryKey(options) {
56
+ if (!options[_constant.RETRY_KEY]) {
57
+ options[_constant.RETRY_KEY] = "".concat((0, _now.default)(), "-").concat(Math.random());
58
+ }
59
+ return options[_constant.RETRY_KEY];
60
+ }
61
+
62
+ // Helper function to get header value case insensitively
63
+ }, {
64
+ key: "getHeader",
65
+ value: function getHeader(headers, name) {
66
+ var key = (0, _keys.default)(headers).find(function (k) {
67
+ return k.toLowerCase() === name.toLowerCase();
68
+ });
69
+ return key ? headers[key] : undefined;
70
+ }
71
+
72
+ /**
73
+ * Intercept responses and, on 401/403 with `Data-Channel-Auth-Token` header,
74
+ * attempt to refresh the data channel token and retry the original request once.
75
+ *
76
+ * @param {Object} options
77
+ * @param {Object} reason
78
+ * @returns {Promise<HttpResponse>}
79
+ */
80
+ }, {
81
+ key: "onResponseError",
82
+ value: (function () {
83
+ var _onResponseError = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(options, reason) {
84
+ var token, enabled, key, retryCount;
85
+ return _regenerator.default.wrap(function (_context) {
86
+ while (1) switch (_context.prev = _context.next) {
87
+ case 0:
88
+ token = this.getHeader(options.headers, _constant.DATA_CHANNEL_AUTH_HEADER);
89
+ _context.next = 1;
90
+ return this._isDataChannelTokenEnabled();
91
+ case 1:
92
+ enabled = _context.sent;
93
+ if (!(!token || !enabled)) {
94
+ _context.next = 2;
95
+ break;
96
+ }
97
+ return _context.abrupt("return", _promise.default.reject(reason));
98
+ case 2:
99
+ if (!(reason.statusCode !== 401 && reason.statusCode !== 403)) {
100
+ _context.next = 3;
101
+ break;
102
+ }
103
+ return _context.abrupt("return", _promise.default.reject(reason));
104
+ case 3:
105
+ key = this.getRetryKey(options);
106
+ retryCount = retryCountMap.get(key) || 0;
107
+ if (!(retryCount >= _constant.MAX_RETRY)) {
108
+ _context.next = 4;
109
+ break;
110
+ }
111
+ _loggerProxy.default.logger.error("data channel token refresh exceeded max retry (".concat(_constant.MAX_RETRY, ")"));
112
+ retryCountMap.delete(key);
113
+ return _context.abrupt("return", _promise.default.reject(reason));
114
+ case 4:
115
+ retryCountMap.set(key, retryCount + 1);
116
+ return _context.abrupt("return", this.refreshTokenAndRetryWithDelay(options));
117
+ case 5:
118
+ case "end":
119
+ return _context.stop();
120
+ }
121
+ }, _callee, this);
122
+ }));
123
+ function onResponseError(_x, _x2) {
124
+ return _onResponseError.apply(this, arguments);
125
+ }
126
+ return onResponseError;
127
+ }()
128
+ /**
129
+ * Retry the failed data channel request after a delay.
130
+ * Refreshes the Data-Channel-Auth-Token and re-sends the original request.
131
+ *
132
+ * @param {Object} options - Original request options.
133
+ * @returns {Promise<HttpResponse>} - Resolves on successful retry.
134
+ */
135
+ )
136
+ }, {
137
+ key: "refreshTokenAndRetryWithDelay",
138
+ value: function refreshTokenAndRetryWithDelay(options) {
139
+ var _this2 = this;
140
+ return new _promise.default(function (resolve, reject) {
141
+ setTimeout(/*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2() {
142
+ var key, newToken, res, msg, err, _t;
143
+ return _regenerator.default.wrap(function (_context2) {
144
+ while (1) switch (_context2.prev = _context2.next) {
145
+ case 0:
146
+ key = _this2.getRetryKey(options);
147
+ _context2.prev = 1;
148
+ _context2.next = 2;
149
+ return _this2._refreshDataChannelToken();
150
+ case 2:
151
+ newToken = _context2.sent;
152
+ options.headers[_constant.DATA_CHANNEL_AUTH_HEADER] = newToken;
153
+
154
+ // @ts-ignore
155
+ _context2.next = 3;
156
+ return _this2.webex.request(options);
157
+ case 3:
158
+ res = _context2.sent;
159
+ retryCountMap.delete(key);
160
+ resolve(res);
161
+ _context2.next = 5;
162
+ break;
163
+ case 4:
164
+ _context2.prev = 4;
165
+ _t = _context2["catch"](1);
166
+ retryCountMap.delete(key);
167
+ msg = (_t === null || _t === void 0 ? void 0 : _t.message) || String(_t);
168
+ err = new Error("DataChannel token refresh failed: ".concat(msg));
169
+ err.statusCode = _t === null || _t === void 0 ? void 0 : _t.statusCode;
170
+ err.original = _t;
171
+ reject(err);
172
+ case 5:
173
+ case "end":
174
+ return _context2.stop();
175
+ }
176
+ }, _callee2, null, [[1, 4]]);
177
+ })), _constant.RETRY_INTERVAL);
178
+ });
179
+ }
180
+ }], [{
181
+ key: "create",
182
+ value: function create() {
183
+ var _this3 = this;
184
+ // @ts-ignore
185
+ return new DataChannelAuthTokenInterceptor({
186
+ webex: this,
187
+ isDataChannelTokenEnabled: function () {
188
+ var _isDataChannelTokenEnabled = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3() {
189
+ return _regenerator.default.wrap(function (_context3) {
190
+ while (1) switch (_context3.prev = _context3.next) {
191
+ case 0:
192
+ return _context3.abrupt("return", _this3.internal.llm.isDataChannelTokenEnabled());
193
+ case 1:
194
+ case "end":
195
+ return _context3.stop();
196
+ }
197
+ }, _callee3);
198
+ }));
199
+ function isDataChannelTokenEnabled() {
200
+ return _isDataChannelTokenEnabled.apply(this, arguments);
201
+ }
202
+ return isDataChannelTokenEnabled;
203
+ }(),
204
+ refreshDataChannelToken: function () {
205
+ var _refreshDataChannelToken = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
206
+ var _yield$_this3$interna, body, _ref2, datachannelToken, dataChannelTokenType;
207
+ return _regenerator.default.wrap(function (_context4) {
208
+ while (1) switch (_context4.prev = _context4.next) {
209
+ case 0:
210
+ _context4.next = 1;
211
+ return _this3.internal.llm.refreshDataChannelToken();
212
+ case 1:
213
+ _yield$_this3$interna = _context4.sent;
214
+ body = _yield$_this3$interna.body;
215
+ _ref2 = body !== null && body !== void 0 ? body : {}, datachannelToken = _ref2.datachannelToken, dataChannelTokenType = _ref2.dataChannelTokenType; // @ts-ignore
216
+ _this3.internal.llm.setDatachannelToken(datachannelToken, dataChannelTokenType);
217
+ return _context4.abrupt("return", datachannelToken);
218
+ case 2:
219
+ case "end":
220
+ return _context4.stop();
221
+ }
222
+ }, _callee4);
223
+ }));
224
+ function refreshDataChannelToken() {
225
+ return _refreshDataChannelToken.apply(this, arguments);
226
+ }
227
+ return refreshDataChannelToken;
228
+ }()
229
+ });
230
+ }
231
+ }]);
232
+ }(_httpCore.Interceptor);
233
+ //# sourceMappingURL=dataChannelAuthToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_httpCore","require","_loggerProxy","_interopRequireDefault","_constant","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","apply","Boolean","prototype","valueOf","call","retryCountMap","_map","DataChannelAuthTokenInterceptor","exports","_Interceptor","options","_this","_classCallCheck2","_defineProperty2","_refreshDataChannelToken","refreshDataChannelToken","_isDataChannelTokenEnabled","isDataChannelTokenEnabled","_inherits2","_createClass2","key","value","getRetryKey","RETRY_KEY","concat","_now","Math","random","getHeader","headers","name","_keys","find","k","toLowerCase","undefined","_onResponseError","_asyncToGenerator2","_regenerator","mark","_callee","reason","token","enabled","retryCount","wrap","_context","prev","next","DATA_CHANNEL_AUTH_HEADER","sent","abrupt","_promise","reject","statusCode","get","MAX_RETRY","LoggerProxy","logger","error","delete","set","refreshTokenAndRetryWithDelay","stop","onResponseError","_x","_x2","arguments","_this2","resolve","setTimeout","_callee2","newToken","res","msg","err","_t","_context2","webex","request","message","String","Error","original","RETRY_INTERVAL","create","_this3","_callee3","_context3","internal","llm","_callee4","_yield$_this3$interna","body","_ref2","datachannelToken","dataChannelTokenType","_context4","setDatachannelToken","Interceptor"],"sources":["dataChannelAuthToken.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2026 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {DATA_CHANNEL_AUTH_HEADER, MAX_RETRY, RETRY_INTERVAL, RETRY_KEY} from './constant';\n\n/*!\n * Copyright (c) 2015-2026 Cisco Systems, Inc. See LICENSE file.\n */\n\nconst retryCountMap = new Map();\ninterface HttpLikeError extends Error {\n statusCode?: number;\n original?: any;\n}\n/**\n * @class\n */\nexport default class DataChannelAuthTokenInterceptor extends Interceptor {\n private _refreshDataChannelToken: () => Promise<string>;\n private _isDataChannelTokenEnabled: () => Promise<boolean>;\n constructor(options) {\n super(options);\n\n this._refreshDataChannelToken = options.refreshDataChannelToken;\n this._isDataChannelTokenEnabled = options.isDataChannelTokenEnabled;\n }\n\n /**\n * @returns {DataChannelAuthTokenInterceptor}\n */\n static create() {\n // @ts-ignore\n return new DataChannelAuthTokenInterceptor({\n webex: this,\n\n isDataChannelTokenEnabled: async () => {\n // @ts-ignore\n return this.internal.llm.isDataChannelTokenEnabled();\n },\n\n refreshDataChannelToken: async () => {\n // @ts-ignore\n const {body} = await this.internal.llm.refreshDataChannelToken();\n const {datachannelToken, dataChannelTokenType} = body ?? {};\n\n // @ts-ignore\n this.internal.llm.setDatachannelToken(datachannelToken, dataChannelTokenType);\n\n return datachannelToken;\n },\n });\n }\n\n private getRetryKey(options) {\n if (!options[RETRY_KEY]) {\n options[RETRY_KEY] = `${Date.now()}-${Math.random()}`;\n }\n\n return options[RETRY_KEY];\n }\n\n // Helper function to get header value case insensitively\n private getHeader(headers: Record<string, string>, name: string) {\n const key = Object.keys(headers).find((k) => k.toLowerCase() === name.toLowerCase());\n\n return key ? headers[key] : undefined;\n }\n\n /**\n * Intercept responses and, on 401/403 with `Data-Channel-Auth-Token` header,\n * attempt to refresh the data channel token and retry the original request once.\n *\n * @param {Object} options\n * @param {Object} reason\n * @returns {Promise<HttpResponse>}\n */\n async onResponseError(options, reason) {\n const token = this.getHeader(options.headers, DATA_CHANNEL_AUTH_HEADER);\n const enabled = await this._isDataChannelTokenEnabled();\n\n if (!token || !enabled) {\n return Promise.reject(reason);\n }\n\n if (reason.statusCode !== 401 && reason.statusCode !== 403) {\n return Promise.reject(reason);\n }\n\n const key = this.getRetryKey(options);\n const retryCount = retryCountMap.get(key) || 0;\n\n if (retryCount >= MAX_RETRY) {\n LoggerProxy.logger.error(`data channel token refresh exceeded max retry (${MAX_RETRY})`);\n retryCountMap.delete(key);\n\n return Promise.reject(reason);\n }\n\n retryCountMap.set(key, retryCount + 1);\n\n return this.refreshTokenAndRetryWithDelay(options);\n }\n\n /**\n * Retry the failed data channel request after a delay.\n * Refreshes the Data-Channel-Auth-Token and re-sends the original request.\n *\n * @param {Object} options - Original request options.\n * @returns {Promise<HttpResponse>} - Resolves on successful retry.\n */\n refreshTokenAndRetryWithDelay(options) {\n return new Promise((resolve, reject) => {\n setTimeout(async () => {\n const key = this.getRetryKey(options);\n try {\n const newToken = await this._refreshDataChannelToken();\n\n options.headers[DATA_CHANNEL_AUTH_HEADER] = newToken;\n\n // @ts-ignore\n const res = await this.webex.request(options);\n retryCountMap.delete(key);\n\n resolve(res);\n } catch (e) {\n retryCountMap.delete(key);\n\n const msg = e?.message || String(e);\n\n const err: HttpLikeError = new Error(`DataChannel token refresh failed: ${msg}`);\n err.statusCode = e?.statusCode;\n err.original = e;\n\n reject(err);\n }\n }, RETRY_INTERVAL);\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,12 @@ var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequ
5
5
  _Object$defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ _Object$defineProperty(exports, "DataChannelAuthTokenInterceptor", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _dataChannelAuthToken.default;
12
+ }
13
+ });
8
14
  _Object$defineProperty(exports, "LocusRetryStatusInterceptor", {
9
15
  enumerable: true,
10
16
  get: function get() {
@@ -19,4 +25,5 @@ _Object$defineProperty(exports, "LocusRouteTokenInterceptor", {
19
25
  });
20
26
  var _locusRetry = _interopRequireDefault(require("./locusRetry"));
21
27
  var _locusRouteToken = _interopRequireDefault(require("./locusRouteToken"));
28
+ var _dataChannelAuthToken = _interopRequireDefault(require("./dataChannelAuthToken"));
22
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_locusRetry","_interopRequireDefault","require","_locusRouteToken"],"sources":["index.ts"],"sourcesContent":["import LocusRetryStatusInterceptor from './locusRetry';\nimport LocusRouteTokenInterceptor from './locusRouteToken';\n\nexport {LocusRetryStatusInterceptor, LocusRouteTokenInterceptor};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_locusRetry","_interopRequireDefault","require","_locusRouteToken","_dataChannelAuthToken"],"sources":["index.ts"],"sourcesContent":["import LocusRetryStatusInterceptor from './locusRetry';\nimport LocusRouteTokenInterceptor from './locusRouteToken';\nimport DataChannelAuthTokenInterceptor from './dataChannelAuthToken';\n\nexport {LocusRetryStatusInterceptor, LocusRouteTokenInterceptor, DataChannelAuthTokenInterceptor};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,qBAAA,GAAAH,sBAAA,CAAAC,OAAA","ignoreList":[]}
@@ -372,7 +372,7 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
372
372
  throw error;
373
373
  });
374
374
  },
375
- version: "3.11.0-next.29"
375
+ version: "3.11.0-next.30"
376
376
  });
377
377
  var _default = exports.default = SimultaneousInterpretation;
378
378
  //# sourceMappingURL=index.js.map
@@ -18,7 +18,7 @@ var SILanguage = _webexCore.WebexPlugin.extend({
18
18
  languageCode: 'number',
19
19
  languageName: 'string'
20
20
  },
21
- version: "3.11.0-next.29"
21
+ version: "3.11.0-next.30"
22
22
  });
23
23
  var _default = exports.default = SILanguage;
24
24
  //# sourceMappingURL=siLanguage.js.map
@@ -23,6 +23,7 @@ var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/pr
23
23
  var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"));
24
24
  var _isNan = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/number/is-nan"));
25
25
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
26
+ var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
26
27
  var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
27
28
  var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/typeof"));
28
29
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
@@ -40,6 +41,7 @@ var _common = require("@webex/common");
40
41
  var _commonTimers = require("@webex/common-timers");
41
42
  var _internalPluginMetrics = require("@webex/internal-plugin-metrics");
42
43
  var _internalMediaCore = require("@webex/internal-media-core");
44
+ var _internalPluginLlm = require("@webex/internal-plugin-llm");
43
45
  var _mediaHelpers = require("@webex/media-helpers");
44
46
  var _internalPluginVoicea = require("@webex/internal-plugin-voicea");
45
47
  var _webCapabilities = require("@webex/web-capabilities");
@@ -3956,6 +3958,10 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
3956
3958
  _this14.recordingController.setLocusUrl(_this14.locusUrl);
3957
3959
  _this14.controlsOptionsManager.setLocusUrl(_this14.locusUrl, !!isMainLocus);
3958
3960
  _this14.webinar.locusUrlUpdate(url);
3961
+ // @ts-ignore
3962
+ _this14.webex.internal.llm.setRefreshHandler(function () {
3963
+ return _this14.refreshDataChannelToken();
3964
+ });
3959
3965
  _triggerProxy.default.trigger(_this14, {
3960
3966
  file: 'meeting/index',
3961
3967
  function: 'setUpLocusSelfListener'
@@ -6574,14 +6580,25 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6574
6580
  value: (function () {
6575
6581
  var _updateLLMConnection = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee18() {
6576
6582
  var _this36 = this;
6577
- var _this$locusInfo7, url, _this$locusInfo7$info, _this$locusInfo7$info2, datachannelUrl, practiceSessionDatachannelUrl, isJoined, dataChannelUrl;
6583
+ var _ref36, _ref36$url, url, _ref36$info, _ref36$info2, _ref36$info2$datachan, datachannelUrl, _ref36$info2$practice, practiceSessionDatachannelUrl, _ref36$self, _ref36$self2, _ref36$self2$datachan, datachannelToken, _ref36$self2$practice, practiceSessionDatachannelToken, isJoined, dataChannelTokenType, isPracticeSession, currentToken, locusToken, finalToken, dataChannelUrl;
6578
6584
  return _regenerator.default.wrap(function (_context18) {
6579
6585
  while (1) switch (_context18.prev = _context18.next) {
6580
6586
  case 0:
6581
6587
  // @ts-ignore - Fix type
6582
- _this$locusInfo7 = this.locusInfo, url = _this$locusInfo7.url, _this$locusInfo7$info = _this$locusInfo7.info, _this$locusInfo7$info2 = _this$locusInfo7$info === void 0 ? {} : _this$locusInfo7$info, datachannelUrl = _this$locusInfo7$info2.datachannelUrl, practiceSessionDatachannelUrl = _this$locusInfo7$info2.practiceSessionDatachannelUrl;
6583
- isJoined = this.isJoined(); // webinar panelist should use new data channel in practice session
6584
- dataChannelUrl = this.webinar.isJoinPracticeSessionDataChannel() && practiceSessionDatachannelUrl ? practiceSessionDatachannelUrl : datachannelUrl; // @ts-ignore - Fix type
6588
+ _ref36 = this.locusInfo || {}, _ref36$url = _ref36.url, url = _ref36$url === void 0 ? undefined : _ref36$url, _ref36$info = _ref36.info, _ref36$info2 = _ref36$info === void 0 ? {} : _ref36$info, _ref36$info2$datachan = _ref36$info2.datachannelUrl, datachannelUrl = _ref36$info2$datachan === void 0 ? undefined : _ref36$info2$datachan, _ref36$info2$practice = _ref36$info2.practiceSessionDatachannelUrl, practiceSessionDatachannelUrl = _ref36$info2$practice === void 0 ? undefined : _ref36$info2$practice, _ref36$self = _ref36.self, _ref36$self2 = _ref36$self === void 0 ? {} : _ref36$self, _ref36$self2$datachan = _ref36$self2.datachannelToken, datachannelToken = _ref36$self2$datachan === void 0 ? undefined : _ref36$self2$datachan, _ref36$self2$practice = _ref36$self2.practiceSessionDatachannelToken, practiceSessionDatachannelToken = _ref36$self2$practice === void 0 ? undefined : _ref36$self2$practice;
6589
+ isJoined = this.isJoined();
6590
+ dataChannelTokenType = this.getDataChannelTokenType();
6591
+ isPracticeSession = dataChannelTokenType === _internalPluginLlm.DataChannelTokenType.PracticeSession; // @ts-ignore
6592
+ currentToken = this.webex.internal.llm.getDatachannelToken(dataChannelTokenType);
6593
+ locusToken = isPracticeSession ? practiceSessionDatachannelToken : datachannelToken;
6594
+ finalToken = currentToken !== null && currentToken !== void 0 ? currentToken : locusToken;
6595
+ if (!currentToken && locusToken) {
6596
+ // @ts-ignore
6597
+ this.webex.internal.llm.setDatachannelToken(locusToken, dataChannelTokenType);
6598
+ }
6599
+
6600
+ // webinar panelist should use new data channel in practice session
6601
+ dataChannelUrl = isPracticeSession && practiceSessionDatachannelUrl ? practiceSessionDatachannelUrl : datachannelUrl; // @ts-ignore - Fix type
6585
6602
  if (!this.webex.internal.llm.isConnected()) {
6586
6603
  _context18.next = 3;
6587
6604
  break;
@@ -6614,7 +6631,7 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
6614
6631
  }
6615
6632
  return _context18.abrupt("return", undefined);
6616
6633
  case 4:
6617
- return _context18.abrupt("return", this.webex.internal.llm.registerAndConnect(url, dataChannelUrl).then(function (registerAndConnectResult) {
6634
+ return _context18.abrupt("return", this.webex.internal.llm.registerAndConnect(url, dataChannelUrl, finalToken).then(function (registerAndConnectResult) {
6618
6635
  // @ts-ignore - Fix type
6619
6636
  _this36.webex.internal.llm.off('event:relay.event', _this36.processRelayEvent);
6620
6637
  // @ts-ignore - Fix type
@@ -9135,8 +9152,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
9135
9152
  * @memberof Meeting
9136
9153
  */
9137
9154
  function sendReaction(reactionType, skinToneType) {
9138
- var _this$locusInfo8, _this$locusInfo8$cont, _this$locusInfo8$cont2;
9139
- var reactionChannelUrl = (_this$locusInfo8 = this.locusInfo) === null || _this$locusInfo8 === void 0 ? void 0 : (_this$locusInfo8$cont = _this$locusInfo8.controls) === null || _this$locusInfo8$cont === void 0 ? void 0 : (_this$locusInfo8$cont2 = _this$locusInfo8$cont.reactions) === null || _this$locusInfo8$cont2 === void 0 ? void 0 : _this$locusInfo8$cont2.reactionChannelUrl;
9155
+ var _this$locusInfo7, _this$locusInfo7$cont, _this$locusInfo7$cont2;
9156
+ var reactionChannelUrl = (_this$locusInfo7 = this.locusInfo) === null || _this$locusInfo7 === void 0 ? void 0 : (_this$locusInfo7$cont = _this$locusInfo7.controls) === null || _this$locusInfo7$cont === void 0 ? void 0 : (_this$locusInfo7$cont2 = _this$locusInfo7$cont.reactions) === null || _this$locusInfo7$cont2 === void 0 ? void 0 : _this$locusInfo7$cont2.reactionChannelUrl;
9140
9157
  var participantId = this.members.selfId;
9141
9158
  var reactionData = _reactions.Reactions[reactionType];
9142
9159
  if (!reactionData) {
@@ -9166,12 +9183,12 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
9166
9183
  */
9167
9184
  }, {
9168
9185
  key: "extendMeeting",
9169
- value: function extendMeeting(_ref37) {
9170
- var meetingPolicyUrl = _ref37.meetingPolicyUrl,
9171
- meetingInstanceId = _ref37.meetingInstanceId,
9172
- participantId = _ref37.participantId,
9173
- _ref37$extensionMinut = _ref37.extensionMinutes,
9174
- extensionMinutes = _ref37$extensionMinut === void 0 ? 30 : _ref37$extensionMinut;
9186
+ value: function extendMeeting(_ref38) {
9187
+ var meetingPolicyUrl = _ref38.meetingPolicyUrl,
9188
+ meetingInstanceId = _ref38.meetingInstanceId,
9189
+ participantId = _ref38.participantId,
9190
+ _ref38$extensionMinut = _ref38.extensionMinutes,
9191
+ extensionMinutes = _ref38$extensionMinut === void 0 ? 30 : _ref38$extensionMinut;
9175
9192
  if (!meetingInstanceId || !participantId) {
9176
9193
  return _promise.default.reject(new Error('Missing meetingInstanceId or participantId'));
9177
9194
  }
@@ -9197,8 +9214,8 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
9197
9214
  }, {
9198
9215
  key: "toggleReactions",
9199
9216
  value: function toggleReactions(enable) {
9200
- var _this$locusInfo9, _this$locusInfo9$cont, _this$locusInfo9$cont2;
9201
- var isEnabled = (_this$locusInfo9 = this.locusInfo) === null || _this$locusInfo9 === void 0 ? void 0 : (_this$locusInfo9$cont = _this$locusInfo9.controls) === null || _this$locusInfo9$cont === void 0 ? void 0 : (_this$locusInfo9$cont2 = _this$locusInfo9$cont.reactions) === null || _this$locusInfo9$cont2 === void 0 ? void 0 : _this$locusInfo9$cont2.enabled;
9217
+ var _this$locusInfo8, _this$locusInfo8$cont, _this$locusInfo8$cont2;
9218
+ var isEnabled = (_this$locusInfo8 = this.locusInfo) === null || _this$locusInfo8 === void 0 ? void 0 : (_this$locusInfo8$cont = _this$locusInfo8.controls) === null || _this$locusInfo8$cont === void 0 ? void 0 : (_this$locusInfo8$cont2 = _this$locusInfo8$cont.reactions) === null || _this$locusInfo8$cont2 === void 0 ? void 0 : _this$locusInfo8$cont2.enabled;
9202
9219
  if (isEnabled && enable || !isEnabled && !enable) {
9203
9220
  return _promise.default.resolve("Reactions are already ".concat(isEnabled ? 'enabled' : 'disabled', "."));
9204
9221
  }
@@ -9785,17 +9802,17 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
9785
9802
  }, {
9786
9803
  key: "setStage",
9787
9804
  value: function setStage() {
9788
- var _ref38 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
9789
- _ref38$activeSpeakerP = _ref38.activeSpeakerProportion,
9790
- activeSpeakerProportion = _ref38$activeSpeakerP === void 0 ? 0.5 : _ref38$activeSpeakerP,
9791
- customBackground = _ref38.customBackground,
9792
- customLogo = _ref38.customLogo,
9793
- customNameLabel = _ref38.customNameLabel,
9794
- importantParticipants = _ref38.importantParticipants,
9795
- _ref38$lockAttendeeVi = _ref38.lockAttendeeViewOnStage,
9796
- lockAttendeeViewOnStage = _ref38$lockAttendeeVi === void 0 ? false : _ref38$lockAttendeeVi,
9797
- _ref38$showActiveSpea = _ref38.showActiveSpeaker,
9798
- showActiveSpeaker = _ref38$showActiveSpea === void 0 ? false : _ref38$showActiveSpea;
9805
+ var _ref39 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
9806
+ _ref39$activeSpeakerP = _ref39.activeSpeakerProportion,
9807
+ activeSpeakerProportion = _ref39$activeSpeakerP === void 0 ? 0.5 : _ref39$activeSpeakerP,
9808
+ customBackground = _ref39.customBackground,
9809
+ customLogo = _ref39.customLogo,
9810
+ customNameLabel = _ref39.customNameLabel,
9811
+ importantParticipants = _ref39.importantParticipants,
9812
+ _ref39$lockAttendeeVi = _ref39.lockAttendeeViewOnStage,
9813
+ lockAttendeeViewOnStage = _ref39$lockAttendeeVi === void 0 ? false : _ref39$lockAttendeeVi,
9814
+ _ref39$showActiveSpea = _ref39.showActiveSpeaker,
9815
+ showActiveSpeaker = _ref39$showActiveSpea === void 0 ? false : _ref39$showActiveSpea;
9799
9816
  var videoLayout = {
9800
9817
  overrideDefault: true,
9801
9818
  lockAttendeeViewOnStageOnly: lockAttendeeViewOnStage,
@@ -9891,6 +9908,72 @@ var Meeting = exports.default = /*#__PURE__*/function (_StatelessWebexPlugin) {
9891
9908
  value: function cancelSipCallOut(participantId) {
9892
9909
  return this.meetingRequest.cancelSipCallOut(participantId);
9893
9910
  }
9911
+
9912
+ /**
9913
+ * Method to get new data
9914
+ * @returns {Promise}
9915
+ */
9916
+ }, {
9917
+ key: "refreshDataChannelToken",
9918
+ value: (function () {
9919
+ var _refreshDataChannelToken = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee41() {
9920
+ var isPracticeSession, dataChannelTokenType, res, msg, err, _t34;
9921
+ return _regenerator.default.wrap(function (_context41) {
9922
+ while (1) switch (_context41.prev = _context41.next) {
9923
+ case 0:
9924
+ isPracticeSession = this.webinar.isJoinPracticeSessionDataChannel();
9925
+ dataChannelTokenType = this.getDataChannelTokenType();
9926
+ _context41.prev = 1;
9927
+ _context41.next = 2;
9928
+ return this.meetingRequest.fetchDatachannelToken({
9929
+ locusUrl: this.locusUrl,
9930
+ requestingParticipantId: this.members.selfId,
9931
+ isPracticeSession: isPracticeSession
9932
+ });
9933
+ case 2:
9934
+ res = _context41.sent;
9935
+ return _context41.abrupt("return", {
9936
+ body: {
9937
+ datachannelToken: res.body.datachannelToken,
9938
+ dataChannelTokenType: dataChannelTokenType
9939
+ }
9940
+ });
9941
+ case 3:
9942
+ _context41.prev = 3;
9943
+ _t34 = _context41["catch"](1);
9944
+ msg = (_t34 === null || _t34 === void 0 ? void 0 : _t34.message) || String(_t34);
9945
+ err = (0, _assign.default)(new Error("Failed to refresh data channel token: ".concat(msg)), {
9946
+ statusCode: _t34 === null || _t34 === void 0 ? void 0 : _t34.statusCode,
9947
+ original: _t34
9948
+ });
9949
+ throw err;
9950
+ case 4:
9951
+ case "end":
9952
+ return _context41.stop();
9953
+ }
9954
+ }, _callee41, this, [[1, 3]]);
9955
+ }));
9956
+ function refreshDataChannelToken() {
9957
+ return _refreshDataChannelToken.apply(this, arguments);
9958
+ }
9959
+ return refreshDataChannelToken;
9960
+ }()
9961
+ /**
9962
+ * Determines the current data channel token type based on the meeting state.
9963
+ *
9964
+ * variant should be used when connecting to the LLM data channel.
9965
+ *
9966
+ * @returns {DataChannelTokenType} The token type representing the current session mode.
9967
+ */
9968
+ )
9969
+ }, {
9970
+ key: "getDataChannelTokenType",
9971
+ value: function getDataChannelTokenType() {
9972
+ if (this.webinar.isJoinPracticeSessionDataChannel()) {
9973
+ return _internalPluginLlm.DataChannelTokenType.PracticeSession;
9974
+ }
9975
+ return _internalPluginLlm.DataChannelTokenType.Default;
9976
+ }
9894
9977
  }]);
9895
9978
  }(_webexCore.StatelessWebexPlugin);
9896
9979
  //# sourceMappingURL=index.js.map