@webex/plugin-meetings 3.12.0-next.65 → 3.12.0-next.66

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.
@@ -19,18 +19,17 @@ var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"))
19
19
  var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
20
20
  var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
21
21
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
22
+ var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
22
23
  var _httpCore = require("@webex/http-core");
24
+ var _internalPluginLlm = _interopRequireDefault(require("@webex/internal-plugin-llm"));
23
25
  var _loggerProxy = _interopRequireDefault(require("../common/logs/logger-proxy"));
24
26
  var _constant = require("./constant");
25
27
  var _utils = require("./utils");
28
+ var _constants = require("../constants");
26
29
  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)); }
27
30
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /*!
28
31
  * Copyright (c) 2015-2026 Cisco Systems, Inc. See LICENSE file.
29
32
  */
30
- /*!
31
- * Copyright (c) 2015-2026 Cisco Systems, Inc. See LICENSE file.
32
- */
33
-
34
33
  var retryCountMap = new _map.default();
35
34
  /**
36
35
  * @class
@@ -102,7 +101,7 @@ var DataChannelAuthTokenInterceptor = exports.default = /*#__PURE__*/function (_
102
101
  }
103
102
  _context.prev = 3;
104
103
  _context.next = 4;
105
- return this._refreshDataChannelToken();
104
+ return this._refreshDataChannelToken(options.uri || options.url);
106
105
  case 4:
107
106
  newToken = _context.sent;
108
107
  options.headers[_constant.DATA_CHANNEL_AUTH_HEADER] = newToken;
@@ -203,7 +202,7 @@ var DataChannelAuthTokenInterceptor = exports.default = /*#__PURE__*/function (_
203
202
  key = _this2.getRetryKey(options);
204
203
  _context3.prev = 1;
205
204
  _context3.next = 2;
206
- return _this2._refreshDataChannelToken();
205
+ return _this2._refreshDataChannelToken(options.uri || options.url);
207
206
  case 2:
208
207
  newToken = _context3.sent;
209
208
  options.headers[_constant.DATA_CHANNEL_AUTH_HEADER] = newToken;
@@ -258,27 +257,88 @@ var DataChannelAuthTokenInterceptor = exports.default = /*#__PURE__*/function (_
258
257
  }
259
258
  return isDataChannelTokenEnabled;
260
259
  }(),
260
+ // Route refresh by request URL in two steps:
261
+ // 1) Match active LLM sessions (supports non-default/multiple sessions)
262
+ // 2) If no session matches, resolve locusUrl and refresh via owning meeting
263
+ // If neither route matches, fall back to the default-session refresh.
261
264
  refreshDataChannelToken: function () {
262
- var _refreshDataChannelToken = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5() {
263
- var _yield$_this3$interna, body, _ref2, datachannelToken, dataChannelTokenType;
265
+ var _refreshDataChannelToken = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5(requestUrl) {
266
+ var _result, _meeting2, _this3$internal$llm$g3, _this3$internal$llm3;
267
+ var sessionId, meeting, _this3$internal$llm$g, _this3$internal$llm, _this3$internal$llm$g2, _this3$internal$llm2, locusUrl, _this3$meetings, _this3$meetings$getMe, _this3$meetings2, _this3$meetings2$getA, allMeetings, _meeting, _meeting$locusInfo, info, result, _result$body, datachannelToken, dataChannelTokenType, tokenStoreKey, ownerMeetingId;
264
268
  return _regenerator.default.wrap(function (_context5) {
265
269
  while (1) switch (_context5.prev = _context5.next) {
266
270
  case 0:
271
+ if (typeof requestUrl === 'string') {
272
+ // @ts-ignore
273
+ sessionId = (_this3$internal$llm$g = (_this3$internal$llm = _this3.internal.llm).getSessionIdByDatachannelUrl) === null || _this3$internal$llm$g === void 0 ? void 0 : _this3$internal$llm$g.call(_this3$internal$llm, requestUrl);
274
+ if (!sessionId) {
275
+ // @ts-ignore
276
+ locusUrl = (_this3$internal$llm$g2 = (_this3$internal$llm2 = _this3.internal.llm).getLocusUrlByDatachannelUrl) === null || _this3$internal$llm$g2 === void 0 ? void 0 : _this3$internal$llm$g2.call(_this3$internal$llm2, requestUrl);
277
+ if (locusUrl) {
278
+ // @ts-ignore
279
+ meeting = (_this3$meetings = _this3.meetings) === null || _this3$meetings === void 0 ? void 0 : (_this3$meetings$getMe = _this3$meetings.getMeetingByType) === null || _this3$meetings$getMe === void 0 ? void 0 : _this3$meetings$getMe.call(_this3$meetings, _constants.LOCUS_URL, locusUrl);
280
+ }
281
+ }
282
+ if (!meeting) {
283
+ // Fallback: registerAndConnect() pre-populates datachannelUrl in
284
+ // connections before calling register(), so getSessionIdByDatachannelUrl
285
+ // above should normally resolve. This scan covers any residual gap
286
+ // where connections are not yet populated (e.g. if setRefreshHandler
287
+ // is called on a session that has no connection entry at all).
288
+ // @ts-ignore
289
+ allMeetings = ((_this3$meetings2 = _this3.meetings) === null || _this3$meetings2 === void 0 ? void 0 : (_this3$meetings2$getA = _this3$meetings2.getAllMeetings) === null || _this3$meetings2$getA === void 0 ? void 0 : _this3$meetings2$getA.call(_this3$meetings2)) || {};
290
+ meeting = (0, _values.default)(allMeetings).find(function (activeMeeting) {
291
+ var _activeMeeting$locusI;
292
+ var info = (activeMeeting === null || activeMeeting === void 0 ? void 0 : (_activeMeeting$locusI = activeMeeting.locusInfo) === null || _activeMeeting$locusI === void 0 ? void 0 : _activeMeeting$locusI.info) || {};
293
+ return info.practiceSessionDatachannelUrl && _internalPluginLlm.default.matchesDatachannelRequestUrl(requestUrl, info.practiceSessionDatachannelUrl) || info.datachannelUrl && _internalPluginLlm.default.matchesDatachannelRequestUrl(requestUrl, info.datachannelUrl);
294
+ });
295
+ if (!sessionId) {
296
+ // @ts-ignore
297
+ info = ((_meeting = meeting) === null || _meeting === void 0 ? void 0 : (_meeting$locusInfo = _meeting.locusInfo) === null || _meeting$locusInfo === void 0 ? void 0 : _meeting$locusInfo.info) || {};
298
+ if (info.practiceSessionDatachannelUrl && _internalPluginLlm.default.matchesDatachannelRequestUrl(requestUrl, info.practiceSessionDatachannelUrl)) {
299
+ sessionId = _constants.LLM_PRACTICE_SESSION;
300
+ } else if (info.datachannelUrl && _internalPluginLlm.default.matchesDatachannelRequestUrl(requestUrl, info.datachannelUrl)) {
301
+ sessionId = _constants.LLM_DEFAULT_SESSION;
302
+ }
303
+ }
304
+ }
305
+ }
306
+ if (!meeting) {
307
+ _context5.next = 2;
308
+ break;
309
+ }
267
310
  _context5.next = 1;
268
- return _this3.internal.llm.refreshDataChannelToken();
311
+ return meeting.refreshDataChannelToken();
269
312
  case 1:
270
- _yield$_this3$interna = _context5.sent;
271
- body = _yield$_this3$interna.body;
272
- _ref2 = body !== null && body !== void 0 ? body : {}, datachannelToken = _ref2.datachannelToken, dataChannelTokenType = _ref2.dataChannelTokenType; // @ts-ignore
273
- _this3.internal.llm.setDatachannelToken(datachannelToken, dataChannelTokenType);
274
- return _context5.abrupt("return", datachannelToken);
313
+ result = _context5.sent;
314
+ _context5.next = 4;
315
+ break;
275
316
  case 2:
317
+ _context5.next = 3;
318
+ return _this3.internal.llm.refreshDataChannelToken(sessionId);
319
+ case 3:
320
+ result = _context5.sent;
321
+ case 4:
322
+ if ((_result = result) !== null && _result !== void 0 && _result.body) {
323
+ _context5.next = 5;
324
+ break;
325
+ }
326
+ throw new Error('DataChannel token refresh returned no payload');
327
+ case 5:
328
+ _result$body = result.body, datachannelToken = _result$body.datachannelToken, dataChannelTokenType = _result$body.dataChannelTokenType;
329
+ tokenStoreKey = dataChannelTokenType || sessionId;
330
+ ownerMeetingId =
331
+ // @ts-ignore
332
+ ((_meeting2 = meeting) === null || _meeting2 === void 0 ? void 0 : _meeting2.id) || ((_this3$internal$llm$g3 = (_this3$internal$llm3 = _this3.internal.llm).getOwnerMeetingId) === null || _this3$internal$llm$g3 === void 0 ? void 0 : _this3$internal$llm$g3.call(_this3$internal$llm3, tokenStoreKey)); // @ts-ignore
333
+ _this3.internal.llm.setDatachannelToken(datachannelToken, tokenStoreKey, ownerMeetingId);
334
+ return _context5.abrupt("return", datachannelToken);
335
+ case 6:
276
336
  case "end":
277
337
  return _context5.stop();
278
338
  }
279
339
  }, _callee5);
280
340
  }));
281
- function refreshDataChannelToken() {
341
+ function refreshDataChannelToken(_x4) {
282
342
  return _refreshDataChannelToken.apply(this, arguments);
283
343
  }
284
344
  return refreshDataChannelToken;
@@ -1 +1 @@
1
- {"version":3,"names":["_httpCore","require","_loggerProxy","_interopRequireDefault","_constant","_utils","_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","_onRequest","_asyncToGenerator2","_regenerator","mark","_callee","token","enabled","newToken","_t","wrap","_context","prev","next","DATA_CHANNEL_AUTH_HEADER","sent","abrupt","isJwtTokenExpired","LoggerProxy","logger","warn","message","stop","onRequest","_x","arguments","_onResponseError","_callee2","reason","retryCount","_context2","_promise","reject","statusCode","get","MAX_RETRY","error","delete","set","refreshTokenAndRetryWithDelay","onResponseError","_x2","_x3","_this2","resolve","setTimeout","_callee3","res","msg","err","_t2","_context3","webex","request","String","Error","original","RETRY_INTERVAL","create","_this3","_callee4","_context4","internal","llm","_callee5","_yield$_this3$interna","body","_ref2","datachannelToken","dataChannelTokenType","_context5","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';\nimport {isJwtTokenExpired} from './utils';\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 * Intercepts outgoing requests and refreshes the Data-Channel-Auth-Token\n * if the current JWT token is expired before the request is sent.\n *\n * @param {Object} options - The original request options.\n * @returns {Promise<Object>} Updated request options with refreshed token if needed.\n */\n async onRequest(options) {\n const token = this.getHeader(options.headers, DATA_CHANNEL_AUTH_HEADER);\n const enabled = await this._isDataChannelTokenEnabled();\n\n if (!token || !enabled) {\n return options;\n }\n\n if (isJwtTokenExpired(token)) {\n try {\n const newToken = await this._refreshDataChannelToken();\n options.headers[DATA_CHANNEL_AUTH_HEADER] = newToken;\n } catch (e) {\n LoggerProxy.logger.warn(`DataChannelAuthTokenInterceptor: refresh failed: ${e.message}`);\n }\n }\n\n return options;\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":[]}
1
+ {"version":3,"names":["_httpCore","require","_internalPluginLlm","_interopRequireDefault","_loggerProxy","_constant","_utils","_constants","_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","_onRequest","_asyncToGenerator2","_regenerator","mark","_callee","token","enabled","newToken","_t","wrap","_context","prev","next","DATA_CHANNEL_AUTH_HEADER","sent","abrupt","isJwtTokenExpired","uri","url","LoggerProxy","logger","warn","message","stop","onRequest","_x","arguments","_onResponseError","_callee2","reason","retryCount","_context2","_promise","reject","statusCode","get","MAX_RETRY","error","delete","set","refreshTokenAndRetryWithDelay","onResponseError","_x2","_x3","_this2","resolve","setTimeout","_callee3","res","msg","err","_t2","_context3","webex","request","String","Error","original","RETRY_INTERVAL","create","_this3","_callee4","_context4","internal","llm","_callee5","requestUrl","_result","_meeting2","_this3$internal$llm$g3","_this3$internal$llm3","sessionId","meeting","_this3$internal$llm$g","_this3$internal$llm","_this3$internal$llm$g2","_this3$internal$llm2","locusUrl","_this3$meetings","_this3$meetings$getMe","_this3$meetings2","_this3$meetings2$getA","allMeetings","_meeting","_meeting$locusInfo","info","result","_result$body","datachannelToken","dataChannelTokenType","tokenStoreKey","ownerMeetingId","_context5","getSessionIdByDatachannelUrl","getLocusUrlByDatachannelUrl","meetings","getMeetingByType","LOCUS_URL","getAllMeetings","_values","activeMeeting","_activeMeeting$locusI","locusInfo","practiceSessionDatachannelUrl","LLMChannel","matchesDatachannelRequestUrl","datachannelUrl","LLM_PRACTICE_SESSION","LLM_DEFAULT_SESSION","body","id","getOwnerMeetingId","setDatachannelToken","_x4","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 LLMChannel from '@webex/internal-plugin-llm';\nimport LoggerProxy from '../common/logs/logger-proxy';\nimport {DATA_CHANNEL_AUTH_HEADER, MAX_RETRY, RETRY_INTERVAL, RETRY_KEY} from './constant';\nimport {isJwtTokenExpired} from './utils';\nimport {LLM_DEFAULT_SESSION, LLM_PRACTICE_SESSION, LOCUS_URL} from '../constants';\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: (requestUrl?: string) => 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 // Route refresh by request URL in two steps:\n // 1) Match active LLM sessions (supports non-default/multiple sessions)\n // 2) If no session matches, resolve locusUrl and refresh via owning meeting\n // If neither route matches, fall back to the default-session refresh.\n refreshDataChannelToken: async (requestUrl?: string) => {\n let sessionId;\n let meeting;\n\n if (typeof requestUrl === 'string') {\n // @ts-ignore\n sessionId = this.internal.llm.getSessionIdByDatachannelUrl?.(requestUrl);\n\n if (!sessionId) {\n // @ts-ignore\n const locusUrl = this.internal.llm.getLocusUrlByDatachannelUrl?.(requestUrl);\n\n if (locusUrl) {\n // @ts-ignore\n meeting = this.meetings?.getMeetingByType?.(LOCUS_URL, locusUrl);\n }\n }\n\n if (!meeting) {\n // Fallback: registerAndConnect() pre-populates datachannelUrl in\n // connections before calling register(), so getSessionIdByDatachannelUrl\n // above should normally resolve. This scan covers any residual gap\n // where connections are not yet populated (e.g. if setRefreshHandler\n // is called on a session that has no connection entry at all).\n // @ts-ignore\n const allMeetings = this.meetings?.getAllMeetings?.() || {};\n\n meeting = Object.values(allMeetings).find((activeMeeting: any) => {\n const info = activeMeeting?.locusInfo?.info || {};\n\n return (\n (info.practiceSessionDatachannelUrl &&\n LLMChannel.matchesDatachannelRequestUrl(\n requestUrl,\n info.practiceSessionDatachannelUrl\n )) ||\n (info.datachannelUrl &&\n LLMChannel.matchesDatachannelRequestUrl(requestUrl, info.datachannelUrl))\n );\n });\n\n if (!sessionId) {\n // @ts-ignore\n const info = meeting?.locusInfo?.info || {};\n\n if (\n info.practiceSessionDatachannelUrl &&\n LLMChannel.matchesDatachannelRequestUrl(\n requestUrl,\n info.practiceSessionDatachannelUrl\n )\n ) {\n sessionId = LLM_PRACTICE_SESSION;\n } else if (\n info.datachannelUrl &&\n LLMChannel.matchesDatachannelRequestUrl(requestUrl, info.datachannelUrl)\n ) {\n sessionId = LLM_DEFAULT_SESSION;\n }\n }\n }\n }\n\n let result;\n if (meeting) {\n result = await meeting.refreshDataChannelToken();\n } else {\n // @ts-ignore\n result = await this.internal.llm.refreshDataChannelToken(sessionId);\n }\n\n if (!result?.body) {\n throw new Error('DataChannel token refresh returned no payload');\n }\n const {datachannelToken, dataChannelTokenType} = result.body;\n const tokenStoreKey = dataChannelTokenType || sessionId;\n const ownerMeetingId =\n // @ts-ignore\n meeting?.id || this.internal.llm.getOwnerMeetingId?.(tokenStoreKey);\n // @ts-ignore\n this.internal.llm.setDatachannelToken(datachannelToken, tokenStoreKey, ownerMeetingId);\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 * Intercepts outgoing requests and refreshes the Data-Channel-Auth-Token\n * if the current JWT token is expired before the request is sent.\n *\n * @param {Object} options - The original request options.\n * @returns {Promise<Object>} Updated request options with refreshed token if needed.\n */\n async onRequest(options) {\n const token = this.getHeader(options.headers, DATA_CHANNEL_AUTH_HEADER);\n const enabled = await this._isDataChannelTokenEnabled();\n\n if (!token || !enabled) {\n return options;\n }\n\n if (isJwtTokenExpired(token)) {\n try {\n const newToken = await this._refreshDataChannelToken(options.uri || options.url);\n options.headers[DATA_CHANNEL_AUTH_HEADER] = newToken;\n } catch (e) {\n LoggerProxy.logger.warn(`DataChannelAuthTokenInterceptor: refresh failed: ${e.message}`);\n }\n }\n\n return options;\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(options.uri || options.url);\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":[]}
@@ -381,7 +381,7 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
381
381
  throw error;
382
382
  });
383
383
  },
384
- version: "3.12.0-next.65"
384
+ version: "3.12.0-next.66"
385
385
  });
386
386
  var _default = exports.default = SimultaneousInterpretation;
387
387
  //# 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.12.0-next.65"
21
+ version: "3.12.0-next.66"
22
22
  });
23
23
  var _default = exports.default = SILanguage;
24
24
  //# sourceMappingURL=siLanguage.js.map