@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.
- package/dist/breakouts/breakout.js +1 -1
- package/dist/breakouts/index.js +1 -1
- package/dist/interceptors/locusRouteToken.js +20 -4
- package/dist/interceptors/locusRouteToken.js.map +1 -1
- package/dist/interpretation/index.js +1 -1
- package/dist/interpretation/siLanguage.js +1 -1
- package/dist/types/interceptors/locusRouteToken.d.ts +1 -0
- package/dist/webinar/index.js +1 -1
- package/package.json +1 -1
- package/src/interceptors/locusRouteToken.ts +16 -4
- package/test/unit/spec/interceptors/locusRouteToken.ts +27 -0
package/dist/breakouts/index.js
CHANGED
|
@@ -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.
|
|
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,
|
|
53
|
-
|
|
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
|
-
|
|
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","
|
|
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.
|
|
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.
|
|
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
|
package/dist/webinar/index.js
CHANGED
package/package.json
CHANGED
|
@@ -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 =
|
|
37
|
-
|
|
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
|
-
|
|
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
|
});
|