@webex/webex-core 3.0.0-beta.15 → 3.0.0-beta.151
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/config.js +1 -11
- package/dist/config.js.map +1 -1
- package/dist/credentials-config.js +0 -20
- package/dist/credentials-config.js.map +1 -1
- package/dist/index.js +0 -76
- package/dist/index.js.map +1 -1
- package/dist/interceptors/auth.js +22 -55
- package/dist/interceptors/auth.js.map +1 -1
- package/dist/interceptors/default-options.js +0 -20
- package/dist/interceptors/default-options.js.map +1 -1
- package/dist/interceptors/embargo.js +0 -21
- package/dist/interceptors/embargo.js.map +1 -1
- package/dist/interceptors/network-timing.js +2 -21
- package/dist/interceptors/network-timing.js.map +1 -1
- package/dist/interceptors/payload-transformer.js +2 -22
- package/dist/interceptors/payload-transformer.js.map +1 -1
- package/dist/interceptors/rate-limit.js +21 -53
- package/dist/interceptors/rate-limit.js.map +1 -1
- package/dist/interceptors/redirect.js +4 -33
- package/dist/interceptors/redirect.js.map +1 -1
- package/dist/interceptors/request-event.js +3 -30
- package/dist/interceptors/request-event.js.map +1 -1
- package/dist/interceptors/request-logger.js +1 -30
- package/dist/interceptors/request-logger.js.map +1 -1
- package/dist/interceptors/request-timing.js +3 -22
- package/dist/interceptors/request-timing.js.map +1 -1
- package/dist/interceptors/response-logger.js +2 -31
- package/dist/interceptors/response-logger.js.map +1 -1
- package/dist/interceptors/user-agent.js +2 -29
- package/dist/interceptors/user-agent.js.map +1 -1
- package/dist/interceptors/webex-tracking-id.js +5 -28
- package/dist/interceptors/webex-tracking-id.js.map +1 -1
- package/dist/interceptors/webex-user-agent.js +5 -38
- package/dist/interceptors/webex-user-agent.js.map +1 -1
- package/dist/lib/batcher.js +3 -51
- package/dist/lib/batcher.js.map +1 -1
- package/dist/lib/credentials/credentials.js +44 -123
- package/dist/lib/credentials/credentials.js.map +1 -1
- package/dist/lib/credentials/grant-errors.js +0 -49
- package/dist/lib/credentials/grant-errors.js.map +1 -1
- package/dist/lib/credentials/index.js +1 -13
- package/dist/lib/credentials/index.js.map +1 -1
- package/dist/lib/credentials/scope.js +1 -7
- package/dist/lib/credentials/scope.js.map +1 -1
- package/dist/lib/credentials/token-collection.js +1 -7
- package/dist/lib/credentials/token-collection.js.map +1 -1
- package/dist/lib/credentials/token.js +29 -122
- package/dist/lib/credentials/token.js.map +1 -1
- package/dist/lib/page.js +12 -27
- package/dist/lib/page.js.map +1 -1
- package/dist/lib/services/constants.js +0 -2
- package/dist/lib/services/constants.js.map +1 -1
- package/dist/lib/services/index.js +1 -28
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/interceptors/server-error.js +0 -21
- package/dist/lib/services/interceptors/server-error.js.map +1 -1
- package/dist/lib/services/interceptors/service.js +11 -33
- package/dist/lib/services/interceptors/service.js.map +1 -1
- package/dist/lib/services/metrics.js +0 -2
- package/dist/lib/services/metrics.js.map +1 -1
- package/dist/lib/services/service-catalog.js +10 -90
- package/dist/lib/services/service-catalog.js.map +1 -1
- package/dist/lib/services/service-fed-ramp.js +0 -2
- package/dist/lib/services/service-fed-ramp.js.map +1 -1
- package/dist/lib/services/service-host.js +41 -56
- package/dist/lib/services/service-host.js.map +1 -1
- package/dist/lib/services/service-registry.js +78 -90
- package/dist/lib/services/service-registry.js.map +1 -1
- package/dist/lib/services/service-state.js +3 -15
- package/dist/lib/services/service-state.js.map +1 -1
- package/dist/lib/services/service-url.js +4 -25
- package/dist/lib/services/service-url.js.map +1 -1
- package/dist/lib/services/services.js +116 -234
- package/dist/lib/services/services.js.map +1 -1
- package/dist/lib/stateless-webex-plugin.js +5 -28
- package/dist/lib/stateless-webex-plugin.js.map +1 -1
- package/dist/lib/storage/decorators.js +19 -62
- package/dist/lib/storage/decorators.js.map +1 -1
- package/dist/lib/storage/errors.js +0 -23
- package/dist/lib/storage/errors.js.map +1 -1
- package/dist/lib/storage/index.js +0 -14
- package/dist/lib/storage/index.js.map +1 -1
- package/dist/lib/storage/make-webex-plugin-store.js +11 -41
- package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
- package/dist/lib/storage/make-webex-store.js +8 -30
- package/dist/lib/storage/make-webex-store.js.map +1 -1
- package/dist/lib/storage/memory-store-adapter.js +1 -19
- package/dist/lib/storage/memory-store-adapter.js.map +1 -1
- package/dist/lib/webex-core-plugin-mixin.js +9 -29
- package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-http-error.js +1 -31
- package/dist/lib/webex-http-error.js.map +1 -1
- package/dist/lib/webex-internal-core-plugin-mixin.js +9 -29
- package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-plugin.js +6 -40
- package/dist/lib/webex-plugin.js.map +1 -1
- package/dist/plugins/logger.js +3 -17
- package/dist/plugins/logger.js.map +1 -1
- package/dist/webex-core.js +79 -203
- package/dist/webex-core.js.map +1 -1
- package/dist/webex-internal-core.js +0 -10
- package/dist/webex-internal-core.js.map +1 -1
- package/package.json +14 -14
- package/src/lib/credentials/credentials.js +19 -0
- package/test/unit/spec/credentials/credentials.js +28 -0
|
@@ -1,50 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
4
|
-
|
|
5
4
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
6
|
-
|
|
7
5
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
8
|
-
|
|
9
6
|
_Object$defineProperty(exports, "__esModule", {
|
|
10
7
|
value: true
|
|
11
8
|
});
|
|
12
|
-
|
|
13
9
|
exports.default = void 0;
|
|
14
|
-
|
|
15
10
|
var _deleteProperty = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/delete-property"));
|
|
16
|
-
|
|
17
11
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
18
|
-
|
|
19
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
20
|
-
|
|
21
13
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
22
|
-
|
|
23
14
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
24
|
-
|
|
25
15
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
26
|
-
|
|
27
16
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
28
|
-
|
|
29
17
|
var _httpCore = require("@webex/http-core");
|
|
30
|
-
|
|
31
18
|
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); }; }
|
|
32
|
-
|
|
33
19
|
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; } }
|
|
34
|
-
|
|
35
20
|
/**
|
|
36
21
|
* @class
|
|
37
22
|
*/
|
|
38
23
|
var AuthInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
39
24
|
(0, _inherits2.default)(AuthInterceptor, _Interceptor);
|
|
40
|
-
|
|
41
25
|
var _super = _createSuper(AuthInterceptor);
|
|
42
|
-
|
|
43
26
|
function AuthInterceptor() {
|
|
44
27
|
(0, _classCallCheck2.default)(this, AuthInterceptor);
|
|
45
28
|
return _super.apply(this, arguments);
|
|
46
29
|
}
|
|
47
|
-
|
|
48
30
|
(0, _createClass2.default)(AuthInterceptor, [{
|
|
49
31
|
key: "onRequest",
|
|
50
32
|
value:
|
|
@@ -55,78 +37,73 @@ var AuthInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
55
37
|
*/
|
|
56
38
|
function onRequest(options) {
|
|
57
39
|
var _this = this;
|
|
40
|
+
options.headers = options.headers || {};
|
|
58
41
|
|
|
59
|
-
|
|
60
|
-
|
|
42
|
+
// If Authorizations is already set, don't overwrite it
|
|
61
43
|
if ('authorization' in options.headers || 'auth' in options) {
|
|
62
44
|
// If Authorization is set to null, false, or undefined, delete it to
|
|
63
45
|
// prevent a CORS preflight.
|
|
64
46
|
if (!options.headers.authorization) {
|
|
65
47
|
(0, _deleteProperty.default)(options.headers, 'authorization');
|
|
66
48
|
}
|
|
67
|
-
|
|
68
49
|
return _promise.default.resolve(options);
|
|
69
50
|
}
|
|
70
|
-
|
|
71
51
|
return this.requiresCredentials(options).then(function (requires) {
|
|
72
52
|
if (!requires) {
|
|
73
53
|
return options;
|
|
74
54
|
}
|
|
75
|
-
|
|
76
55
|
return _this.webex.credentials.getUserToken().then(function (token) {
|
|
77
56
|
options.headers.authorization = token.toString();
|
|
78
57
|
return options;
|
|
79
58
|
});
|
|
80
59
|
});
|
|
81
60
|
}
|
|
61
|
+
|
|
82
62
|
/**
|
|
83
63
|
* Determines if the provided options object needs an authorization header.
|
|
84
64
|
*
|
|
85
65
|
* @param {Object} options
|
|
86
66
|
* @returns {Promise<boolean>}
|
|
87
67
|
*/
|
|
88
|
-
|
|
89
68
|
}, {
|
|
90
69
|
key: "requiresCredentials",
|
|
91
70
|
value: function requiresCredentials(options) {
|
|
92
71
|
var _this2 = this;
|
|
93
|
-
|
|
94
72
|
// Validate that authorization is necessary.
|
|
95
73
|
if (options.addAuthHeader === false) {
|
|
96
74
|
return _promise.default.resolve(false);
|
|
97
|
-
}
|
|
98
|
-
|
|
75
|
+
}
|
|
99
76
|
|
|
77
|
+
// Validate that the services plugin has been loaded before proceeding.
|
|
100
78
|
if (!this.webex.internal.services) {
|
|
101
79
|
return _promise.default.resolve(false);
|
|
102
|
-
}
|
|
103
|
-
|
|
80
|
+
}
|
|
104
81
|
|
|
105
|
-
|
|
82
|
+
// Destructure webex instance to isolate services plugin.
|
|
83
|
+
var services = this.webex.internal.services;
|
|
106
84
|
|
|
85
|
+
// Store the current service details if available and destructure details.
|
|
107
86
|
var details = services.getServiceFromUrl(options.uri || '');
|
|
108
|
-
|
|
109
87
|
var _ref = details || {},
|
|
110
|
-
|
|
111
|
-
|
|
88
|
+
name = _ref.name;
|
|
112
89
|
var resource = options.resource,
|
|
113
|
-
|
|
114
|
-
var service = options.service || options.api;
|
|
90
|
+
uri = options.uri;
|
|
91
|
+
var service = options.service || options.api;
|
|
115
92
|
|
|
93
|
+
// Unique validation for the u2c service.
|
|
116
94
|
if (service && service === 'u2c' || name && name === 'u2c') {
|
|
117
95
|
if (resource && resource.includes('limited') || uri && uri.includes('limited')) {
|
|
118
96
|
return _promise.default.resolve(false);
|
|
119
97
|
}
|
|
120
|
-
|
|
121
98
|
return _promise.default.resolve(true);
|
|
122
|
-
}
|
|
123
|
-
|
|
99
|
+
}
|
|
124
100
|
|
|
101
|
+
// Validate that the allowed domains can be utilized.
|
|
125
102
|
if (services.validateDomains && services.hasAllowedDomains() && uri && services.isAllowedDomainUrl(uri)) {
|
|
126
103
|
return _promise.default.resolve(true);
|
|
127
|
-
}
|
|
128
|
-
|
|
104
|
+
}
|
|
129
105
|
|
|
106
|
+
// Perform an additional validation in case the service does not exist yet.
|
|
130
107
|
return services.waitForService({
|
|
131
108
|
name: service,
|
|
132
109
|
url: uri
|
|
@@ -134,52 +111,47 @@ var AuthInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
134
111
|
// Validate that the url exists in the catalog.
|
|
135
112
|
if (services.getServiceFromUrl(detectedUrl)) {
|
|
136
113
|
return true;
|
|
137
|
-
}
|
|
138
|
-
|
|
114
|
+
}
|
|
139
115
|
|
|
116
|
+
// Return false to indicate authentication is not required.
|
|
140
117
|
return false;
|
|
141
118
|
}).catch(function (error) {
|
|
142
119
|
_this2.webex.logger.warn('auth-interceptor: failed to validate service exists in catalog', error);
|
|
143
|
-
|
|
144
120
|
return false;
|
|
145
121
|
});
|
|
146
122
|
}
|
|
123
|
+
|
|
147
124
|
/**
|
|
148
125
|
* @see {@link Interceptor#onResponseError}
|
|
149
126
|
* @param {Object} options
|
|
150
127
|
* @param {Error} reason
|
|
151
128
|
* @returns {Object}
|
|
152
129
|
*/
|
|
153
|
-
|
|
154
130
|
}, {
|
|
155
131
|
key: "onResponseError",
|
|
156
132
|
value: function onResponseError(options, reason) {
|
|
157
133
|
var _this3 = this;
|
|
158
|
-
|
|
159
134
|
return this.shouldAttemptReauth(reason, options).then(function (shouldAttemptReauth) {
|
|
160
135
|
if (shouldAttemptReauth) {
|
|
161
136
|
_this3.webex.logger.info('auth: received 401, attempting to reauthenticate');
|
|
162
|
-
|
|
163
137
|
if (reason.options.headers) {
|
|
164
138
|
(0, _deleteProperty.default)(reason.options.headers, 'authorization');
|
|
165
139
|
}
|
|
166
|
-
|
|
167
140
|
if (_this3.webex.credentials.canRefresh) {
|
|
168
141
|
return _this3.webex.credentials.refresh().then(function () {
|
|
169
142
|
return _this3.replay(options);
|
|
170
143
|
});
|
|
171
144
|
}
|
|
172
145
|
}
|
|
173
|
-
|
|
174
146
|
return _promise.default.reject(reason);
|
|
175
147
|
});
|
|
176
148
|
}
|
|
149
|
+
|
|
177
150
|
/**
|
|
178
151
|
* Replays the request
|
|
179
152
|
* @param {Object} options
|
|
180
153
|
* @returns {Object}
|
|
181
154
|
*/
|
|
182
|
-
|
|
183
155
|
}, {
|
|
184
156
|
key: "replay",
|
|
185
157
|
value: function replay(options) {
|
|
@@ -188,15 +160,14 @@ var AuthInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
188
160
|
} else {
|
|
189
161
|
options.replayCount = 1;
|
|
190
162
|
}
|
|
191
|
-
|
|
192
163
|
if (options.replayCount > this.webex.config.maxAuthenticationReplays) {
|
|
193
164
|
this.webex.logger.error("auth: failed after ".concat(this.webex.config.maxAuthenticationReplays, " replay attempts"));
|
|
194
165
|
return _promise.default.reject(new Error("Failed after ".concat(this.webex.config.maxAuthenticationReplays, " replay attempts")));
|
|
195
166
|
}
|
|
196
|
-
|
|
197
167
|
this.webex.logger.info("auth: replaying request ".concat(options.replayCount, " time"));
|
|
198
168
|
return this.webex.request(options);
|
|
199
169
|
}
|
|
170
|
+
|
|
200
171
|
/**
|
|
201
172
|
* Indicates whether or not the current request should refresh its access
|
|
202
173
|
* token in event of a 401
|
|
@@ -204,18 +175,15 @@ var AuthInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
204
175
|
* @param {Object} options
|
|
205
176
|
* @returns {Promise<boolean>}
|
|
206
177
|
*/
|
|
207
|
-
|
|
208
178
|
}, {
|
|
209
179
|
key: "shouldAttemptReauth",
|
|
210
180
|
value: function shouldAttemptReauth(reason, options) {
|
|
211
181
|
if (options && options.shouldRefreshAccessToken === false) {
|
|
212
182
|
return _promise.default.resolve(false);
|
|
213
183
|
}
|
|
214
|
-
|
|
215
184
|
if (reason.statusCode === 401) {
|
|
216
185
|
return _promise.default.resolve(true);
|
|
217
186
|
}
|
|
218
|
-
|
|
219
187
|
return _promise.default.resolve(false);
|
|
220
188
|
}
|
|
221
189
|
}], [{
|
|
@@ -232,6 +200,5 @@ var AuthInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
232
200
|
}]);
|
|
233
201
|
return AuthInterceptor;
|
|
234
202
|
}(_httpCore.Interceptor);
|
|
235
|
-
|
|
236
203
|
exports.default = AuthInterceptor;
|
|
237
204
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AuthInterceptor","options","headers","authorization","resolve","requiresCredentials","then","requires","webex","credentials","getUserToken","token","toString","addAuthHeader","internal","services","details","getServiceFromUrl","uri","name","resource","service","api","includes","validateDomains","hasAllowedDomains","isAllowedDomainUrl","waitForService","url","detectedUrl","catch","error","logger","warn","reason","shouldAttemptReauth","info","canRefresh","refresh","replay","reject","replayCount","config","maxAuthenticationReplays","Error","request","shouldRefreshAccessToken","statusCode","Interceptor"],"sources":["auth.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class AuthInterceptor extends Interceptor {\n /**\n * @returns {AuthInterceptor}\n */\n static create() {\n return new AuthInterceptor({webex: this});\n }\n\n /**\n * @see {@link Interceptor#onRequest}\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n options.headers = options.headers || {};\n\n // If Authorizations is already set, don't overwrite it\n if ('authorization' in options.headers || 'auth' in options) {\n // If Authorization is set to null, false, or undefined, delete it to\n // prevent a CORS preflight.\n if (!options.headers.authorization) {\n Reflect.deleteProperty(options.headers, 'authorization');\n }\n\n return Promise.resolve(options);\n }\n\n return this.requiresCredentials(options).then((requires) => {\n if (!requires) {\n return options;\n }\n\n return this.webex.credentials.getUserToken().then((token) => {\n options.headers.authorization = token.toString();\n\n return options;\n });\n });\n }\n\n /**\n * Determines if the provided options object needs an authorization header.\n *\n * @param {Object} options\n * @returns {Promise<boolean>}\n */\n requiresCredentials(options) {\n // Validate that authorization is necessary.\n if (options.addAuthHeader === false) {\n return Promise.resolve(false);\n }\n\n // Validate that the services plugin has been loaded before proceeding.\n if (!this.webex.internal.services) {\n return Promise.resolve(false);\n }\n\n // Destructure webex instance to isolate services plugin.\n const {services} = this.webex.internal;\n\n // Store the current service details if available and destructure details.\n const details = services.getServiceFromUrl(options.uri || '');\n const {name} = details || {};\n const {resource, uri} = options;\n const service = options.service || options.api;\n\n // Unique validation for the u2c service.\n if ((service && service === 'u2c') || (name && name === 'u2c')) {\n if ((resource && resource.includes('limited')) || (uri && uri.includes('limited'))) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n }\n\n // Validate that the allowed domains can be utilized.\n if (\n services.validateDomains &&\n services.hasAllowedDomains() &&\n uri &&\n services.isAllowedDomainUrl(uri)\n ) {\n return Promise.resolve(true);\n }\n\n // Perform an additional validation in case the service does not exist yet.\n return services\n .waitForService({name: service, url: uri})\n .then((detectedUrl) => {\n // Validate that the url exists in the catalog.\n if (services.getServiceFromUrl(detectedUrl)) {\n return true;\n }\n\n // Return false to indicate authentication is not required.\n return false;\n })\n .catch((error) => {\n this.webex.logger.warn(\n 'auth-interceptor: failed to validate service exists in catalog',\n error\n );\n\n return false;\n });\n }\n\n /**\n * @see {@link Interceptor#onResponseError}\n * @param {Object} options\n * @param {Error} reason\n * @returns {Object}\n */\n onResponseError(options, reason) {\n return this.shouldAttemptReauth(reason, options).then((shouldAttemptReauth) => {\n if (shouldAttemptReauth) {\n this.webex.logger.info('auth: received 401, attempting to reauthenticate');\n\n if (reason.options.headers) {\n Reflect.deleteProperty(reason.options.headers, 'authorization');\n }\n\n if (this.webex.credentials.canRefresh) {\n return this.webex.credentials.refresh().then(() => this.replay(options));\n }\n }\n\n return Promise.reject(reason);\n });\n }\n\n /**\n * Replays the request\n * @param {Object} options\n * @returns {Object}\n */\n replay(options) {\n if (options.replayCount) {\n options.replayCount += 1;\n } else {\n options.replayCount = 1;\n }\n\n if (options.replayCount > this.webex.config.maxAuthenticationReplays) {\n this.webex.logger.error(\n `auth: failed after ${this.webex.config.maxAuthenticationReplays} replay attempts`\n );\n\n return Promise.reject(\n new Error(`Failed after ${this.webex.config.maxAuthenticationReplays} replay attempts`)\n );\n }\n\n this.webex.logger.info(`auth: replaying request ${options.replayCount} time`);\n\n return this.webex.request(options);\n }\n\n /**\n * Indicates whether or not the current request should refresh its access\n * token in event of a 401\n * @param {Error} reason\n * @param {Object} options\n * @returns {Promise<boolean>}\n */\n shouldAttemptReauth(reason, options) {\n if (options && options.shouldRefreshAccessToken === false) {\n return Promise.resolve(false);\n }\n\n if (reason.statusCode === 401) {\n return Promise.resolve(true);\n }\n\n return Promise.resolve(false);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["AuthInterceptor","options","headers","authorization","resolve","requiresCredentials","then","requires","webex","credentials","getUserToken","token","toString","addAuthHeader","internal","services","details","getServiceFromUrl","uri","name","resource","service","api","includes","validateDomains","hasAllowedDomains","isAllowedDomainUrl","waitForService","url","detectedUrl","catch","error","logger","warn","reason","shouldAttemptReauth","info","canRefresh","refresh","replay","reject","replayCount","config","maxAuthenticationReplays","Error","request","shouldRefreshAccessToken","statusCode","Interceptor"],"sources":["auth.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class AuthInterceptor extends Interceptor {\n /**\n * @returns {AuthInterceptor}\n */\n static create() {\n return new AuthInterceptor({webex: this});\n }\n\n /**\n * @see {@link Interceptor#onRequest}\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n options.headers = options.headers || {};\n\n // If Authorizations is already set, don't overwrite it\n if ('authorization' in options.headers || 'auth' in options) {\n // If Authorization is set to null, false, or undefined, delete it to\n // prevent a CORS preflight.\n if (!options.headers.authorization) {\n Reflect.deleteProperty(options.headers, 'authorization');\n }\n\n return Promise.resolve(options);\n }\n\n return this.requiresCredentials(options).then((requires) => {\n if (!requires) {\n return options;\n }\n\n return this.webex.credentials.getUserToken().then((token) => {\n options.headers.authorization = token.toString();\n\n return options;\n });\n });\n }\n\n /**\n * Determines if the provided options object needs an authorization header.\n *\n * @param {Object} options\n * @returns {Promise<boolean>}\n */\n requiresCredentials(options) {\n // Validate that authorization is necessary.\n if (options.addAuthHeader === false) {\n return Promise.resolve(false);\n }\n\n // Validate that the services plugin has been loaded before proceeding.\n if (!this.webex.internal.services) {\n return Promise.resolve(false);\n }\n\n // Destructure webex instance to isolate services plugin.\n const {services} = this.webex.internal;\n\n // Store the current service details if available and destructure details.\n const details = services.getServiceFromUrl(options.uri || '');\n const {name} = details || {};\n const {resource, uri} = options;\n const service = options.service || options.api;\n\n // Unique validation for the u2c service.\n if ((service && service === 'u2c') || (name && name === 'u2c')) {\n if ((resource && resource.includes('limited')) || (uri && uri.includes('limited'))) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n }\n\n // Validate that the allowed domains can be utilized.\n if (\n services.validateDomains &&\n services.hasAllowedDomains() &&\n uri &&\n services.isAllowedDomainUrl(uri)\n ) {\n return Promise.resolve(true);\n }\n\n // Perform an additional validation in case the service does not exist yet.\n return services\n .waitForService({name: service, url: uri})\n .then((detectedUrl) => {\n // Validate that the url exists in the catalog.\n if (services.getServiceFromUrl(detectedUrl)) {\n return true;\n }\n\n // Return false to indicate authentication is not required.\n return false;\n })\n .catch((error) => {\n this.webex.logger.warn(\n 'auth-interceptor: failed to validate service exists in catalog',\n error\n );\n\n return false;\n });\n }\n\n /**\n * @see {@link Interceptor#onResponseError}\n * @param {Object} options\n * @param {Error} reason\n * @returns {Object}\n */\n onResponseError(options, reason) {\n return this.shouldAttemptReauth(reason, options).then((shouldAttemptReauth) => {\n if (shouldAttemptReauth) {\n this.webex.logger.info('auth: received 401, attempting to reauthenticate');\n\n if (reason.options.headers) {\n Reflect.deleteProperty(reason.options.headers, 'authorization');\n }\n\n if (this.webex.credentials.canRefresh) {\n return this.webex.credentials.refresh().then(() => this.replay(options));\n }\n }\n\n return Promise.reject(reason);\n });\n }\n\n /**\n * Replays the request\n * @param {Object} options\n * @returns {Object}\n */\n replay(options) {\n if (options.replayCount) {\n options.replayCount += 1;\n } else {\n options.replayCount = 1;\n }\n\n if (options.replayCount > this.webex.config.maxAuthenticationReplays) {\n this.webex.logger.error(\n `auth: failed after ${this.webex.config.maxAuthenticationReplays} replay attempts`\n );\n\n return Promise.reject(\n new Error(`Failed after ${this.webex.config.maxAuthenticationReplays} replay attempts`)\n );\n }\n\n this.webex.logger.info(`auth: replaying request ${options.replayCount} time`);\n\n return this.webex.request(options);\n }\n\n /**\n * Indicates whether or not the current request should refresh its access\n * token in event of a 401\n * @param {Error} reason\n * @param {Object} options\n * @returns {Promise<boolean>}\n */\n shouldAttemptReauth(reason, options) {\n if (options && options.shouldRefreshAccessToken === false) {\n return Promise.resolve(false);\n }\n\n if (reason.statusCode === 401) {\n return Promise.resolve(true);\n }\n\n return Promise.resolve(false);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,35 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
4
|
-
|
|
5
4
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
6
|
-
|
|
7
5
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
8
|
-
|
|
9
6
|
_Object$defineProperty(exports, "__esModule", {
|
|
10
7
|
value: true
|
|
11
8
|
});
|
|
12
|
-
|
|
13
9
|
exports.default = void 0;
|
|
14
|
-
|
|
15
10
|
var _keys = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/keys"));
|
|
16
|
-
|
|
17
11
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
18
|
-
|
|
19
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
20
|
-
|
|
21
13
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
22
|
-
|
|
23
14
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
24
|
-
|
|
25
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
26
|
-
|
|
27
16
|
var _httpCore = require("@webex/http-core");
|
|
28
|
-
|
|
29
17
|
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); }; }
|
|
30
|
-
|
|
31
18
|
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; } }
|
|
32
|
-
|
|
33
19
|
/**
|
|
34
20
|
* Allows the user of the SDK to set default options that apply every http request made by the SDK
|
|
35
21
|
* For example a default timeout could be set for all requests like this :
|
|
@@ -51,14 +37,11 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_R
|
|
|
51
37
|
*/
|
|
52
38
|
var DefaultOptionsInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
53
39
|
(0, _inherits2.default)(DefaultOptionsInterceptor, _Interceptor);
|
|
54
|
-
|
|
55
40
|
var _super = _createSuper(DefaultOptionsInterceptor);
|
|
56
|
-
|
|
57
41
|
function DefaultOptionsInterceptor() {
|
|
58
42
|
(0, _classCallCheck2.default)(this, DefaultOptionsInterceptor);
|
|
59
43
|
return _super.apply(this, arguments);
|
|
60
44
|
}
|
|
61
|
-
|
|
62
45
|
(0, _createClass2.default)(DefaultOptionsInterceptor, [{
|
|
63
46
|
key: "onRequest",
|
|
64
47
|
value:
|
|
@@ -69,11 +52,9 @@ var DefaultOptionsInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
69
52
|
*/
|
|
70
53
|
function onRequest(options) {
|
|
71
54
|
var defaultOptions = this.webex.config.defaultRequestOptions;
|
|
72
|
-
|
|
73
55
|
if (!defaultOptions) {
|
|
74
56
|
return options;
|
|
75
57
|
}
|
|
76
|
-
|
|
77
58
|
(0, _keys.default)(defaultOptions).forEach(function (key) {
|
|
78
59
|
// don't override any existing option properties
|
|
79
60
|
if (!(0, _keys.default)(options).includes(key)) {
|
|
@@ -96,6 +77,5 @@ var DefaultOptionsInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
96
77
|
}]);
|
|
97
78
|
return DefaultOptionsInterceptor;
|
|
98
79
|
}(_httpCore.Interceptor);
|
|
99
|
-
|
|
100
80
|
exports.default = DefaultOptionsInterceptor;
|
|
101
81
|
//# sourceMappingURL=default-options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DefaultOptionsInterceptor","options","defaultOptions","webex","config","defaultRequestOptions","forEach","key","includes","Interceptor"],"sources":["default-options.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * Allows the user of the SDK to set default options that apply every http request made by the SDK\n * For example a default timeout could be set for all requests like this :\n *\n * webex = WebexSdk.init({\n * credentials: {\n * supertoken: superToken\n * },\n * config: {\n * credentials: {\n * client_id,\n * client_secret\n * },\n * defaultRequestOptions: {\n * timeout: 15000\n * }\n * }\n * });\n */\nexport default class DefaultOptionsInterceptor extends Interceptor {\n /**\n * @returns {DefaultOptionsInterceptor}\n */\n static create() {\n return new DefaultOptionsInterceptor({webex: this});\n }\n\n /**\n * @see Interceptor#onRequest\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n const {defaultRequestOptions: defaultOptions} = this.webex.config;\n\n if (!defaultOptions) {\n return options;\n }\n\n Object.keys(defaultOptions).forEach((key) => {\n // don't override any existing option properties\n if (!Object.keys(options).includes(key)) {\n options[key] = defaultOptions[key];\n }\n });\n\n return options;\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["DefaultOptionsInterceptor","options","defaultOptions","webex","config","defaultRequestOptions","forEach","key","includes","Interceptor"],"sources":["default-options.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * Allows the user of the SDK to set default options that apply every http request made by the SDK\n * For example a default timeout could be set for all requests like this :\n *\n * webex = WebexSdk.init({\n * credentials: {\n * supertoken: superToken\n * },\n * config: {\n * credentials: {\n * client_id,\n * client_secret\n * },\n * defaultRequestOptions: {\n * timeout: 15000\n * }\n * }\n * });\n */\nexport default class DefaultOptionsInterceptor extends Interceptor {\n /**\n * @returns {DefaultOptionsInterceptor}\n */\n static create() {\n return new DefaultOptionsInterceptor({webex: this});\n }\n\n /**\n * @see Interceptor#onRequest\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n const {defaultRequestOptions: defaultOptions} = this.webex.config;\n\n if (!defaultOptions) {\n return options;\n }\n\n Object.keys(defaultOptions).forEach((key) => {\n // don't override any existing option properties\n if (!Object.keys(options).includes(key)) {\n options[key] = defaultOptions[key];\n }\n });\n\n return options;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAIA;AAA6C;AAAA;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlBA,IAmBqBA,yBAAyB;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAQ5C;AACF;AACA;AACA;AACA;IACE,mBAAUC,OAAO,EAAE;MACjB,IAA8BC,cAAc,GAAI,IAAI,CAACC,KAAK,CAACC,MAAM,CAA1DC,qBAAqB;MAE5B,IAAI,CAACH,cAAc,EAAE;QACnB,OAAOD,OAAO;MAChB;MAEA,mBAAYC,cAAc,CAAC,CAACI,OAAO,CAAC,UAACC,GAAG,EAAK;QAC3C;QACA,IAAI,CAAC,mBAAYN,OAAO,CAAC,CAACO,QAAQ,CAACD,GAAG,CAAC,EAAE;UACvCN,OAAO,CAACM,GAAG,CAAC,GAAGL,cAAc,CAACK,GAAG,CAAC;QACpC;MACF,CAAC,CAAC;MAEF,OAAON,OAAO;IAChB;EAAC;IAAA;IAAA;IA3BD;AACF;AACA;IACE,kBAAgB;MACd,OAAO,IAAID,yBAAyB,CAAC;QAACG,KAAK,EAAE;MAAI,CAAC,CAAC;IACrD;EAAC;EAAA;AAAA,EANoDM,qBAAW;AAAA"}
|
|
@@ -1,48 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
4
|
-
|
|
5
4
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
6
|
-
|
|
7
5
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
8
|
-
|
|
9
6
|
_Object$defineProperty(exports, "__esModule", {
|
|
10
7
|
value: true
|
|
11
8
|
});
|
|
12
|
-
|
|
13
9
|
exports.default = void 0;
|
|
14
|
-
|
|
15
10
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
16
|
-
|
|
17
11
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
18
|
-
|
|
19
12
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
20
|
-
|
|
21
13
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
22
|
-
|
|
23
14
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
24
|
-
|
|
25
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
26
|
-
|
|
27
16
|
var _httpCore = require("@webex/http-core");
|
|
28
|
-
|
|
29
17
|
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); }; }
|
|
30
|
-
|
|
31
18
|
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; } }
|
|
32
|
-
|
|
33
19
|
/**
|
|
34
20
|
* @class
|
|
35
21
|
*/
|
|
36
22
|
var EmbargoInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
37
23
|
(0, _inherits2.default)(EmbargoInterceptor, _Interceptor);
|
|
38
|
-
|
|
39
24
|
var _super = _createSuper(EmbargoInterceptor);
|
|
40
|
-
|
|
41
25
|
function EmbargoInterceptor() {
|
|
42
26
|
(0, _classCallCheck2.default)(this, EmbargoInterceptor);
|
|
43
27
|
return _super.apply(this, arguments);
|
|
44
28
|
}
|
|
45
|
-
|
|
46
29
|
(0, _createClass2.default)(EmbargoInterceptor, [{
|
|
47
30
|
key: "onResponseError",
|
|
48
31
|
value:
|
|
@@ -56,15 +39,12 @@ var EmbargoInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
56
39
|
if (reason.statusCode === 451) {
|
|
57
40
|
var device = this.webex.internal.device;
|
|
58
41
|
var loggerMessage = ['Received `HTTP 451 Unavailable For Legal Reasons`, ', 'discarding credentials and device registration'].join('');
|
|
59
|
-
|
|
60
42
|
if (device) {
|
|
61
43
|
this.webex.internal.device.clear();
|
|
62
44
|
}
|
|
63
|
-
|
|
64
45
|
this.webex.credentials.clear();
|
|
65
46
|
this.webex.logger.info(loggerMessage);
|
|
66
47
|
}
|
|
67
|
-
|
|
68
48
|
return _promise.default.reject(reason);
|
|
69
49
|
}
|
|
70
50
|
}], [{
|
|
@@ -82,6 +62,5 @@ var EmbargoInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
82
62
|
}]);
|
|
83
63
|
return EmbargoInterceptor;
|
|
84
64
|
}(_httpCore.Interceptor);
|
|
85
|
-
|
|
86
65
|
exports.default = EmbargoInterceptor;
|
|
87
66
|
//# sourceMappingURL=embargo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EmbargoInterceptor","options","reason","statusCode","device","webex","internal","loggerMessage","join","clear","credentials","logger","info","reject","Interceptor"],"sources":["embargo.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class EmbargoInterceptor extends Interceptor {\n /**\n * @returns {EmbargoInterceptor}\n */\n static create() {\n /* eslint no-invalid-this: [0] */\n return new EmbargoInterceptor({webex: this});\n }\n\n /**\n * @see Interceptor#onResponseError\n * @param {Object} options\n * @param {Error} reason\n * @returns {Promise}\n */\n onResponseError(options, reason) {\n if (reason.statusCode === 451) {\n const {device} = this.webex.internal;\n const loggerMessage = [\n 'Received `HTTP 451 Unavailable For Legal Reasons`, ',\n 'discarding credentials and device registration',\n ].join('');\n\n if (device) {\n this.webex.internal.device.clear();\n }\n\n this.webex.credentials.clear();\n this.webex.logger.info(loggerMessage);\n }\n\n return Promise.reject(reason);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["EmbargoInterceptor","options","reason","statusCode","device","webex","internal","loggerMessage","join","clear","credentials","logger","info","reject","Interceptor"],"sources":["embargo.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class EmbargoInterceptor extends Interceptor {\n /**\n * @returns {EmbargoInterceptor}\n */\n static create() {\n /* eslint no-invalid-this: [0] */\n return new EmbargoInterceptor({webex: this});\n }\n\n /**\n * @see Interceptor#onResponseError\n * @param {Object} options\n * @param {Error} reason\n * @returns {Promise}\n */\n onResponseError(options, reason) {\n if (reason.statusCode === 451) {\n const {device} = this.webex.internal;\n const loggerMessage = [\n 'Received `HTTP 451 Unavailable For Legal Reasons`, ',\n 'discarding credentials and device registration',\n ].join('');\n\n if (device) {\n this.webex.internal.device.clear();\n }\n\n this.webex.credentials.clear();\n this.webex.logger.info(loggerMessage);\n }\n\n return Promise.reject(reason);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAIA;AAA6C;AAAA;AAE7C;AACA;AACA;AAFA,IAGqBA,kBAAkB;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IASrC;AACF;AACA;AACA;AACA;AACA;IACE,yBAAgBC,OAAO,EAAEC,MAAM,EAAE;MAC/B,IAAIA,MAAM,CAACC,UAAU,KAAK,GAAG,EAAE;QAC7B,IAAOC,MAAM,GAAI,IAAI,CAACC,KAAK,CAACC,QAAQ,CAA7BF,MAAM;QACb,IAAMG,aAAa,GAAG,CACpB,qDAAqD,EACrD,gDAAgD,CACjD,CAACC,IAAI,CAAC,EAAE,CAAC;QAEV,IAAIJ,MAAM,EAAE;UACV,IAAI,CAACC,KAAK,CAACC,QAAQ,CAACF,MAAM,CAACK,KAAK,EAAE;QACpC;QAEA,IAAI,CAACJ,KAAK,CAACK,WAAW,CAACD,KAAK,EAAE;QAC9B,IAAI,CAACJ,KAAK,CAACM,MAAM,CAACC,IAAI,CAACL,aAAa,CAAC;MACvC;MAEA,OAAO,iBAAQM,MAAM,CAACX,MAAM,CAAC;IAC/B;EAAC;IAAA;IAAA;IA/BD;AACF;AACA;IACE,kBAAgB;MACd;MACA,OAAO,IAAIF,kBAAkB,CAAC;QAACK,KAAK,EAAE;MAAI,CAAC,CAAC;IAC9C;EAAC;EAAA;AAAA,EAP6CS,qBAAW;AAAA"}
|
|
@@ -1,50 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _Reflect$construct = require("@babel/runtime-corejs2/core-js/reflect/construct");
|
|
4
|
-
|
|
5
4
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
6
|
-
|
|
7
5
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
8
|
-
|
|
9
6
|
_Object$defineProperty(exports, "__esModule", {
|
|
10
7
|
value: true
|
|
11
8
|
});
|
|
12
|
-
|
|
13
9
|
exports.default = void 0;
|
|
14
|
-
|
|
15
10
|
var _now = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/date/now"));
|
|
16
|
-
|
|
17
11
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
18
|
-
|
|
19
12
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/classCallCheck"));
|
|
20
|
-
|
|
21
13
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
22
|
-
|
|
23
14
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
24
|
-
|
|
25
15
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
26
|
-
|
|
27
16
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
28
|
-
|
|
29
17
|
var _httpCore = require("@webex/http-core");
|
|
30
|
-
|
|
31
18
|
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); }; }
|
|
32
|
-
|
|
33
19
|
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; } }
|
|
34
|
-
|
|
35
20
|
/**
|
|
36
21
|
* @class
|
|
37
22
|
*/
|
|
38
23
|
var NetworkTimingInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
39
24
|
(0, _inherits2.default)(NetworkTimingInterceptor, _Interceptor);
|
|
40
|
-
|
|
41
25
|
var _super = _createSuper(NetworkTimingInterceptor);
|
|
42
|
-
|
|
43
26
|
function NetworkTimingInterceptor() {
|
|
44
27
|
(0, _classCallCheck2.default)(this, NetworkTimingInterceptor);
|
|
45
28
|
return _super.apply(this, arguments);
|
|
46
29
|
}
|
|
47
|
-
|
|
48
30
|
(0, _createClass2.default)(NetworkTimingInterceptor, [{
|
|
49
31
|
key: "onRequest",
|
|
50
32
|
value:
|
|
@@ -58,26 +40,26 @@ var NetworkTimingInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
58
40
|
options.$timings.networkStart = (0, _now.default)();
|
|
59
41
|
return options;
|
|
60
42
|
}
|
|
43
|
+
|
|
61
44
|
/**
|
|
62
45
|
* @see Interceptor#onResponse
|
|
63
46
|
* @param {Object} options
|
|
64
47
|
* @param {HttpResponse} response
|
|
65
48
|
* @returns {Object}
|
|
66
49
|
*/
|
|
67
|
-
|
|
68
50
|
}, {
|
|
69
51
|
key: "onResponse",
|
|
70
52
|
value: function onResponse(options, response) {
|
|
71
53
|
options.$timings.networkEnd = (0, _now.default)();
|
|
72
54
|
return response;
|
|
73
55
|
}
|
|
56
|
+
|
|
74
57
|
/**
|
|
75
58
|
* @see Interceptor#onResponseError
|
|
76
59
|
* @param {Object} options
|
|
77
60
|
* @param {Error} reason
|
|
78
61
|
* @returns {Object}
|
|
79
62
|
*/
|
|
80
|
-
|
|
81
63
|
}, {
|
|
82
64
|
key: "onResponseError",
|
|
83
65
|
value: function onResponseError(options, reason) {
|
|
@@ -97,6 +79,5 @@ var NetworkTimingInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
97
79
|
}]);
|
|
98
80
|
return NetworkTimingInterceptor;
|
|
99
81
|
}(_httpCore.Interceptor);
|
|
100
|
-
|
|
101
82
|
exports.default = NetworkTimingInterceptor;
|
|
102
83
|
//# sourceMappingURL=network-timing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NetworkTimingInterceptor","options","$timings","networkStart","response","networkEnd","reason","reject","Interceptor"],"sources":["network-timing.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class NetworkTimingInterceptor extends Interceptor {\n /**\n * @param {Object} options\n * @returns {NetworkTimingInterceptor}\n */\n static create(options) {\n return new NetworkTimingInterceptor(this, options);\n }\n\n /**\n * @see Interceptor#onRequest\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n options.$timings = options.$timings || {};\n options.$timings.networkStart = Date.now();\n\n return options;\n }\n\n /**\n * @see Interceptor#onResponse\n * @param {Object} options\n * @param {HttpResponse} response\n * @returns {Object}\n */\n onResponse(options, response) {\n options.$timings.networkEnd = Date.now();\n\n return response;\n }\n\n /**\n * @see Interceptor#onResponseError\n * @param {Object} options\n * @param {Error} reason\n * @returns {Object}\n */\n onResponseError(options, reason) {\n options.$timings.networkEnd = Date.now();\n\n return Promise.reject(reason);\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"names":["NetworkTimingInterceptor","options","$timings","networkStart","response","networkEnd","reason","reject","Interceptor"],"sources":["network-timing.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class NetworkTimingInterceptor extends Interceptor {\n /**\n * @param {Object} options\n * @returns {NetworkTimingInterceptor}\n */\n static create(options) {\n return new NetworkTimingInterceptor(this, options);\n }\n\n /**\n * @see Interceptor#onRequest\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n options.$timings = options.$timings || {};\n options.$timings.networkStart = Date.now();\n\n return options;\n }\n\n /**\n * @see Interceptor#onResponse\n * @param {Object} options\n * @param {HttpResponse} response\n * @returns {Object}\n */\n onResponse(options, response) {\n options.$timings.networkEnd = Date.now();\n\n return response;\n }\n\n /**\n * @see Interceptor#onResponseError\n * @param {Object} options\n * @param {Error} reason\n * @returns {Object}\n */\n onResponseError(options, reason) {\n options.$timings.networkEnd = Date.now();\n\n return Promise.reject(reason);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAIA;AAA6C;AAAA;AAE7C;AACA;AACA;AAFA,IAGqBA,wBAAwB;EAAA;EAAA;EAAA;IAAA;IAAA;EAAA;EAAA;IAAA;IAAA;IAS3C;AACF;AACA;AACA;AACA;IACE,mBAAUC,OAAO,EAAE;MACjBA,OAAO,CAACC,QAAQ,GAAGD,OAAO,CAACC,QAAQ,IAAI,CAAC,CAAC;MACzCD,OAAO,CAACC,QAAQ,CAACC,YAAY,GAAG,mBAAU;MAE1C,OAAOF,OAAO;IAChB;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA;IAAA,OAMA,oBAAWA,OAAO,EAAEG,QAAQ,EAAE;MAC5BH,OAAO,CAACC,QAAQ,CAACG,UAAU,GAAG,mBAAU;MAExC,OAAOD,QAAQ;IACjB;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAA;IAAA,OAMA,yBAAgBH,OAAO,EAAEK,MAAM,EAAE;MAC/BL,OAAO,CAACC,QAAQ,CAACG,UAAU,GAAG,mBAAU;MAExC,OAAO,iBAAQE,MAAM,CAACD,MAAM,CAAC;IAC/B;EAAC;IAAA;IAAA;IA1CD;AACF;AACA;AACA;IACE,gBAAcL,OAAO,EAAE;MACrB,OAAO,IAAID,wBAAwB,CAAC,IAAI,EAAEC,OAAO,CAAC;IACpD;EAAC;EAAA;AAAA,EAPmDO,qBAAW;AAAA"}
|