@webex/plugin-meetings 3.10.0-next.25 → 3.10.0-next.26

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.10.0-next.25"
212
+ version: "3.10.0-next.26"
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.10.0-next.25"
1112
+ version: "3.10.0-next.26"
1113
1113
  });
1114
1114
  var _default = exports.default = Breakouts;
1115
1115
  //# sourceMappingURL=index.js.map
@@ -7,6 +7,7 @@ _Object$defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
9
  exports.default = void 0;
10
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
10
11
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
11
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
12
13
  var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
@@ -14,7 +15,6 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
14
15
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
15
16
  var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
16
17
  var _httpCore = require("@webex/http-core");
17
- var _lodash = require("lodash");
18
18
  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)); }
19
19
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } /*!
20
20
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
@@ -39,6 +39,16 @@ var LocusRouteTokenInterceptor = exports.default = /*#__PURE__*/function (_Inter
39
39
  return url === null || url === void 0 ? void 0 : (_url$match = url.match(LOCUS_ID_REGEX)) === null || _url$match === void 0 ? void 0 : _url$match[1];
40
40
  }
41
41
 
42
+ // Helper function to get header value case insensitively
43
+ }, {
44
+ key: "getHeader",
45
+ value: function getHeader(headers, name) {
46
+ var key = (0, _keys.default)(headers).find(function (k) {
47
+ return k.toLowerCase() === name.toLowerCase();
48
+ });
49
+ return key ? headers[key] : undefined;
50
+ }
51
+
42
52
  /**
43
53
  * @param {Object} options
44
54
  * @param {HttpResponse} response
@@ -49,8 +59,10 @@ var LocusRouteTokenInterceptor = exports.default = /*#__PURE__*/function (_Inter
49
59
  value: function onResponse(options, response) {
50
60
  var locusId = this.getLocusIdByRequestUrl(options.uri);
51
61
  if (locusId) {
52
- var hasRouteToken = (0, _lodash.has)(response.headers, X_CISCO_PART_ROUTE_TOKEN);
53
- var token = response.headers[X_CISCO_PART_ROUTE_TOKEN];
62
+ var hasRouteToken = (0, _keys.default)(response.headers).some(function (key) {
63
+ return key.toLowerCase() === X_CISCO_PART_ROUTE_TOKEN.toLowerCase();
64
+ });
65
+ var token = this.getHeader(response.headers, X_CISCO_PART_ROUTE_TOKEN);
54
66
  if (hasRouteToken) {
55
67
  this.updateToken(locusId, token);
56
68
  }
@@ -84,7 +96,11 @@ var LocusRouteTokenInterceptor = exports.default = /*#__PURE__*/function (_Inter
84
96
  }, {
85
97
  key: "updateToken",
86
98
  value: function updateToken(locusId, token) {
87
- ROUTE_TOKEN[locusId] = token;
99
+ if (token === 'null' || token === null) {
100
+ delete ROUTE_TOKEN[locusId];
101
+ } else {
102
+ ROUTE_TOKEN[locusId] = token;
103
+ }
88
104
  }
89
105
 
90
106
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["_httpCore","require","_lodash","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","apply","Boolean","prototype","valueOf","call","LOCUS_ID_REGEX","X_CISCO_PART_ROUTE_TOKEN","ROUTE_TOKEN","LocusRouteTokenInterceptor","exports","_Interceptor","_classCallCheck2","arguments","_inherits2","_createClass2","key","value","getLocusIdByRequestUrl","url","_url$match","match","onResponse","options","response","locusId","uri","hasRouteToken","has","headers","token","updateToken","_promise","resolve","onRequest","getToken","create","webex","Interceptor"],"sources":["locusRouteToken.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\nimport {has} from 'lodash';\n\nconst LOCUS_ID_REGEX = /\\/locus\\/api\\/v1\\/loci\\/([a-f0-9-]{36})/i;\nconst X_CISCO_PART_ROUTE_TOKEN = 'X-Cisco-Part-Route-Token';\nconst ROUTE_TOKEN = {};\n\n/**\n * @class LocusRouteTokenInterceptor\n */\nexport default class LocusRouteTokenInterceptor extends Interceptor {\n /**\n * @returns {LocusRouteTokenInterceptor}\n */\n static create() {\n // @ts-ignore\n return new LocusRouteTokenInterceptor({webex: this});\n }\n\n getLocusIdByRequestUrl(url: string) {\n return url?.match(LOCUS_ID_REGEX)?.[1];\n }\n\n /**\n * @param {Object} options\n * @param {HttpResponse} response\n * @returns {Promise<HttpResponse>}\n */\n onResponse(options, response) {\n const locusId = this.getLocusIdByRequestUrl(options.uri);\n if (locusId) {\n const hasRouteToken = has(response.headers, X_CISCO_PART_ROUTE_TOKEN);\n const token = response.headers[X_CISCO_PART_ROUTE_TOKEN];\n if (hasRouteToken) {\n this.updateToken(locusId, token);\n }\n }\n\n return Promise.resolve(response);\n }\n\n /**\n * @param {Object} options\n * @returns {Promise<Object>} options\n */\n onRequest(options) {\n const locusId = this.getLocusIdByRequestUrl(options.uri);\n if (locusId) {\n const token = this.getToken(locusId);\n if (token) {\n options.headers[X_CISCO_PART_ROUTE_TOKEN] = token;\n }\n }\n\n return Promise.resolve(options);\n }\n\n /**\n * Update the meeting route token\n * @param {string} locusId\n * @param {string} token\n * @returns {void}\n */\n updateToken(locusId, token) {\n ROUTE_TOKEN[locusId] = token;\n }\n\n /**\n * Get the meeting route token\n * @param {string} locusId\n * @returns {string|undefined}\n */\n getToken(locusId) {\n return ROUTE_TOKEN[locusId];\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_httpCore","require","_callSuper","t","o","e","_getPrototypeOf2","default","_possibleConstructorReturn2","_isNativeReflectConstruct","_Reflect$construct","constructor","apply","Boolean","prototype","valueOf","call","LOCUS_ID_REGEX","X_CISCO_PART_ROUTE_TOKEN","ROUTE_TOKEN","LocusRouteTokenInterceptor","exports","_Interceptor","_classCallCheck2","arguments","_inherits2","_createClass2","key","value","getLocusIdByRequestUrl","url","_url$match","match","getHeader","headers","name","_keys","find","k","toLowerCase","undefined","onResponse","options","response","locusId","uri","hasRouteToken","some","token","updateToken","_promise","resolve","onRequest","getToken","create","webex","Interceptor"],"sources":["locusRouteToken.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\nconst LOCUS_ID_REGEX = /\\/locus\\/api\\/v1\\/loci\\/([a-f0-9-]{36})/i;\nconst X_CISCO_PART_ROUTE_TOKEN = 'X-Cisco-Part-Route-Token';\nconst ROUTE_TOKEN = {};\n\n/**\n * @class LocusRouteTokenInterceptor\n */\nexport default class LocusRouteTokenInterceptor extends Interceptor {\n /**\n * @returns {LocusRouteTokenInterceptor}\n */\n static create() {\n // @ts-ignore\n return new LocusRouteTokenInterceptor({webex: this});\n }\n\n getLocusIdByRequestUrl(url: string) {\n return url?.match(LOCUS_ID_REGEX)?.[1];\n }\n\n // Helper function to get header value case insensitively\n 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 * @param {Object} options\n * @param {HttpResponse} response\n * @returns {Promise<HttpResponse>}\n */\n onResponse(options, response) {\n const locusId = this.getLocusIdByRequestUrl(options.uri);\n if (locusId) {\n const hasRouteToken = Object.keys(response.headers).some(\n (key) => key.toLowerCase() === X_CISCO_PART_ROUTE_TOKEN.toLowerCase()\n );\n const token = this.getHeader(response.headers, X_CISCO_PART_ROUTE_TOKEN);\n if (hasRouteToken) {\n this.updateToken(locusId, token);\n }\n }\n\n return Promise.resolve(response);\n }\n\n /**\n * @param {Object} options\n * @returns {Promise<Object>} options\n */\n onRequest(options) {\n const locusId = this.getLocusIdByRequestUrl(options.uri);\n if (locusId) {\n const token = this.getToken(locusId);\n if (token) {\n options.headers[X_CISCO_PART_ROUTE_TOKEN] = token;\n }\n }\n\n return Promise.resolve(options);\n }\n\n /**\n * Update the meeting route token\n * @param {string} locusId\n * @param {string} token\n * @returns {void}\n */\n updateToken(locusId, token) {\n if (token === 'null' || token === null) {\n delete ROUTE_TOKEN[locusId];\n } else {\n ROUTE_TOKEN[locusId] = token;\n }\n }\n\n /**\n * Get the meeting route token\n * @param {string} locusId\n * @returns {string|undefined}\n */\n getToken(locusId) {\n return ROUTE_TOKEN[locusId];\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -372,7 +372,7 @@ var SimultaneousInterpretation = _webexCore.WebexPlugin.extend({
372
372
  throw error;
373
373
  });
374
374
  },
375
- version: "3.10.0-next.25"
375
+ version: "3.10.0-next.26"
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.10.0-next.25"
21
+ version: "3.10.0-next.26"
22
22
  });
23
23
  var _default = exports.default = SILanguage;
24
24
  //# sourceMappingURL=siLanguage.js.map
@@ -11,6 +11,7 @@ export default class LocusRouteTokenInterceptor extends Interceptor {
11
11
  */
12
12
  static create(): LocusRouteTokenInterceptor;
13
13
  getLocusIdByRequestUrl(url: string): string;
14
+ getHeader(headers: Record<string, string>, name: string): string;
14
15
  /**
15
16
  * @param {Object} options
16
17
  * @param {HttpResponse} response
@@ -448,7 +448,7 @@ var Webinar = _webexCore.WebexPlugin.extend({
448
448
  }, _callee7);
449
449
  }))();
450
450
  },
451
- version: "3.10.0-next.25"
451
+ version: "3.10.0-next.26"
452
452
  });
453
453
  var _default = exports.default = Webinar;
454
454
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -93,5 +93,5 @@
93
93
  "//": [
94
94
  "TODO: upgrade jwt-decode when moving to node 18"
95
95
  ],
96
- "version": "3.10.0-next.25"
96
+ "version": "3.10.0-next.26"
97
97
  }
@@ -3,7 +3,6 @@
3
3
  */
4
4
 
5
5
  import {Interceptor} from '@webex/http-core';
6
- import {has} from 'lodash';
7
6
 
8
7
  const LOCUS_ID_REGEX = /\/locus\/api\/v1\/loci\/([a-f0-9-]{36})/i;
9
8
  const X_CISCO_PART_ROUTE_TOKEN = 'X-Cisco-Part-Route-Token';
@@ -25,6 +24,13 @@ export default class LocusRouteTokenInterceptor extends Interceptor {
25
24
  return url?.match(LOCUS_ID_REGEX)?.[1];
26
25
  }
27
26
 
27
+ // Helper function to get header value case insensitively
28
+ getHeader(headers: Record<string, string>, name: string) {
29
+ const key = Object.keys(headers).find((k) => k.toLowerCase() === name.toLowerCase());
30
+
31
+ return key ? headers[key] : undefined;
32
+ }
33
+
28
34
  /**
29
35
  * @param {Object} options
30
36
  * @param {HttpResponse} response
@@ -33,8 +39,10 @@ export default class LocusRouteTokenInterceptor extends Interceptor {
33
39
  onResponse(options, response) {
34
40
  const locusId = this.getLocusIdByRequestUrl(options.uri);
35
41
  if (locusId) {
36
- const hasRouteToken = has(response.headers, X_CISCO_PART_ROUTE_TOKEN);
37
- const token = response.headers[X_CISCO_PART_ROUTE_TOKEN];
42
+ const hasRouteToken = Object.keys(response.headers).some(
43
+ (key) => key.toLowerCase() === X_CISCO_PART_ROUTE_TOKEN.toLowerCase()
44
+ );
45
+ const token = this.getHeader(response.headers, X_CISCO_PART_ROUTE_TOKEN);
38
46
  if (hasRouteToken) {
39
47
  this.updateToken(locusId, token);
40
48
  }
@@ -66,7 +74,11 @@ export default class LocusRouteTokenInterceptor extends Interceptor {
66
74
  * @returns {void}
67
75
  */
68
76
  updateToken(locusId, token) {
69
- ROUTE_TOKEN[locusId] = token;
77
+ if (token === 'null' || token === null) {
78
+ delete ROUTE_TOKEN[locusId];
79
+ } else {
80
+ ROUTE_TOKEN[locusId] = token;
81
+ }
70
82
  }
71
83
 
72
84
  /**
@@ -54,6 +54,23 @@ describe('LocusRouteTokenInterceptor', () => {
54
54
  assert.equal(interceptor.getToken(TEST_LOCUS_ID), 'test-token');
55
55
  });
56
56
 
57
+ it('get route token case insensitively ', async () => {
58
+ const response = {
59
+ headers: {
60
+ ['x-cisco-part-route-token']: 'test-token',
61
+ },
62
+ };
63
+
64
+ const result = await interceptor.onResponse(
65
+ {
66
+ uri: `https://locus-test.webex.com/locus/api/v1/loci/${TEST_LOCUS_ID}/foo`,
67
+ },
68
+ response
69
+ );
70
+ assert.equal(result, response);
71
+ assert.equal(interceptor.getToken(TEST_LOCUS_ID), 'test-token');
72
+ });
73
+
57
74
  it('onResponse should not store token when header missing', async () => {
58
75
  interceptor.updateToken(TEST_LOCUS_ID);
59
76
  const response = {headers: {}};
@@ -84,4 +101,14 @@ describe('LocusRouteTokenInterceptor', () => {
84
101
  interceptor.updateToken(TEST_LOCUS_ID, 'abc456');
85
102
  assert.equal(interceptor.getToken(TEST_LOCUS_ID), 'abc456');
86
103
  });
104
+
105
+ it('should delete token when updateToken called with "null"', () => {
106
+ interceptor.updateToken(TEST_LOCUS_ID, 'null');
107
+ assert.isUndefined(interceptor.getToken(TEST_LOCUS_ID));
108
+ });
109
+
110
+ it('should delete token when updateToken called with null', () => {
111
+ interceptor.updateToken(TEST_LOCUS_ID, null);
112
+ assert.isUndefined(interceptor.getToken(TEST_LOCUS_ID));
113
+ });
87
114
  });