@webex/webex-core
Version:
Plugin handling for Cisco Webex
101 lines (97 loc) • 5.15 kB
JavaScript
;
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
_Object$defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/assertThisInitialized"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
var _weakMap = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/weak-map"));
var _deleteProperty = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/delete-property"));
var _common = require("@webex/common");
var _httpCore = require("@webex/http-core");
var _lodash = require("lodash");
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /*!
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
*/
var strings = new _weakMap.default();
/**
* @class
*/
var WebexUserAgentInterceptor = exports.default = /*#__PURE__*/function (_Interceptor) {
(0, _inherits2.default)(WebexUserAgentInterceptor, _Interceptor);
var _super = _createSuper(WebexUserAgentInterceptor);
/**
* @param {Object} [options={}]
* @param {WebexCore} [options.webex]
* @private
* @returns {WebexUserAgentInterceptor}
*/
function WebexUserAgentInterceptor() {
var _this;
var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
(0, _classCallCheck2.default)(this, WebexUserAgentInterceptor);
var libName = (0, _lodash.get)(options, 'webex.webex', false) ? 'webex' : 'webex-js-sdk';
var libVersion = (0, _lodash.get)(options, 'webex.version', 'development');
_this = _super.call(this, options);
strings.set((0, _assertThisInitialized2.default)(_this), "".concat(libName, "/").concat(libVersion, " (").concat(_common.inBrowser ? 'web' : 'node', ")"));
return _this;
}
/**
* @returns {WebexUserAgentInterceptor}
*/
(0, _createClass2.default)(WebexUserAgentInterceptor, [{
key: "onRequest",
value:
/**
* @see Interceptor#onRequest
* @param {Object} options
* @returns {Object}
*/
function onRequest(options) {
var _this$webex$config, _this$webex;
options.headers = options.headers || {};
var _ref = (_this$webex$config = (_this$webex = this.webex) === null || _this$webex === void 0 ? void 0 : _this$webex.config) !== null && _this$webex$config !== void 0 ? _this$webex$config : {},
appName = _ref.appName,
appVersion = _ref.appVersion,
appPlatform = _ref.appPlatform;
var sparkUserAgent = "".concat(strings.get(this));
if (appName) {
sparkUserAgent += " ".concat(appName, "/").concat(appVersion !== null && appVersion !== void 0 ? appVersion : '0.0');
}
if (appPlatform) {
sparkUserAgent += " ".concat(appPlatform);
}
if (options.uri && options.uri.includes('https://idbroker')) {
return options;
}
if (options.uri && (options.uri.includes(this.webex.config.credentials.samlUrl) || options.uri.includes(this.webex.config.credentials.tokenUrl) || options.uri.includes(this.webex.config.credentials.authorizeUrl))) {
return options;
}
if ('spark-user-agent' in options.headers) {
if (!options.headers['spark-user-agent']) {
(0, _deleteProperty.default)(options.headers, 'spark-user-agent');
}
return options;
}
options.headers['spark-user-agent'] = sparkUserAgent;
return options;
}
}], [{
key: "create",
value: function create() {
return new WebexUserAgentInterceptor({
webex: this
});
}
}]);
return WebexUserAgentInterceptor;
}(_httpCore.Interceptor);
//# sourceMappingURL=webex-user-agent.js.map