@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.
Files changed (105) hide show
  1. package/dist/config.js +1 -11
  2. package/dist/config.js.map +1 -1
  3. package/dist/credentials-config.js +0 -20
  4. package/dist/credentials-config.js.map +1 -1
  5. package/dist/index.js +0 -76
  6. package/dist/index.js.map +1 -1
  7. package/dist/interceptors/auth.js +22 -55
  8. package/dist/interceptors/auth.js.map +1 -1
  9. package/dist/interceptors/default-options.js +0 -20
  10. package/dist/interceptors/default-options.js.map +1 -1
  11. package/dist/interceptors/embargo.js +0 -21
  12. package/dist/interceptors/embargo.js.map +1 -1
  13. package/dist/interceptors/network-timing.js +2 -21
  14. package/dist/interceptors/network-timing.js.map +1 -1
  15. package/dist/interceptors/payload-transformer.js +2 -22
  16. package/dist/interceptors/payload-transformer.js.map +1 -1
  17. package/dist/interceptors/rate-limit.js +21 -53
  18. package/dist/interceptors/rate-limit.js.map +1 -1
  19. package/dist/interceptors/redirect.js +4 -33
  20. package/dist/interceptors/redirect.js.map +1 -1
  21. package/dist/interceptors/request-event.js +3 -30
  22. package/dist/interceptors/request-event.js.map +1 -1
  23. package/dist/interceptors/request-logger.js +1 -30
  24. package/dist/interceptors/request-logger.js.map +1 -1
  25. package/dist/interceptors/request-timing.js +3 -22
  26. package/dist/interceptors/request-timing.js.map +1 -1
  27. package/dist/interceptors/response-logger.js +2 -31
  28. package/dist/interceptors/response-logger.js.map +1 -1
  29. package/dist/interceptors/user-agent.js +2 -29
  30. package/dist/interceptors/user-agent.js.map +1 -1
  31. package/dist/interceptors/webex-tracking-id.js +5 -28
  32. package/dist/interceptors/webex-tracking-id.js.map +1 -1
  33. package/dist/interceptors/webex-user-agent.js +5 -38
  34. package/dist/interceptors/webex-user-agent.js.map +1 -1
  35. package/dist/lib/batcher.js +3 -51
  36. package/dist/lib/batcher.js.map +1 -1
  37. package/dist/lib/credentials/credentials.js +44 -123
  38. package/dist/lib/credentials/credentials.js.map +1 -1
  39. package/dist/lib/credentials/grant-errors.js +0 -49
  40. package/dist/lib/credentials/grant-errors.js.map +1 -1
  41. package/dist/lib/credentials/index.js +1 -13
  42. package/dist/lib/credentials/index.js.map +1 -1
  43. package/dist/lib/credentials/scope.js +1 -7
  44. package/dist/lib/credentials/scope.js.map +1 -1
  45. package/dist/lib/credentials/token-collection.js +1 -7
  46. package/dist/lib/credentials/token-collection.js.map +1 -1
  47. package/dist/lib/credentials/token.js +29 -122
  48. package/dist/lib/credentials/token.js.map +1 -1
  49. package/dist/lib/page.js +12 -27
  50. package/dist/lib/page.js.map +1 -1
  51. package/dist/lib/services/constants.js +0 -2
  52. package/dist/lib/services/constants.js.map +1 -1
  53. package/dist/lib/services/index.js +1 -28
  54. package/dist/lib/services/index.js.map +1 -1
  55. package/dist/lib/services/interceptors/server-error.js +0 -21
  56. package/dist/lib/services/interceptors/server-error.js.map +1 -1
  57. package/dist/lib/services/interceptors/service.js +11 -33
  58. package/dist/lib/services/interceptors/service.js.map +1 -1
  59. package/dist/lib/services/metrics.js +0 -2
  60. package/dist/lib/services/metrics.js.map +1 -1
  61. package/dist/lib/services/service-catalog.js +10 -90
  62. package/dist/lib/services/service-catalog.js.map +1 -1
  63. package/dist/lib/services/service-fed-ramp.js +0 -2
  64. package/dist/lib/services/service-fed-ramp.js.map +1 -1
  65. package/dist/lib/services/service-host.js +41 -56
  66. package/dist/lib/services/service-host.js.map +1 -1
  67. package/dist/lib/services/service-registry.js +78 -90
  68. package/dist/lib/services/service-registry.js.map +1 -1
  69. package/dist/lib/services/service-state.js +3 -15
  70. package/dist/lib/services/service-state.js.map +1 -1
  71. package/dist/lib/services/service-url.js +4 -25
  72. package/dist/lib/services/service-url.js.map +1 -1
  73. package/dist/lib/services/services.js +116 -234
  74. package/dist/lib/services/services.js.map +1 -1
  75. package/dist/lib/stateless-webex-plugin.js +5 -28
  76. package/dist/lib/stateless-webex-plugin.js.map +1 -1
  77. package/dist/lib/storage/decorators.js +19 -62
  78. package/dist/lib/storage/decorators.js.map +1 -1
  79. package/dist/lib/storage/errors.js +0 -23
  80. package/dist/lib/storage/errors.js.map +1 -1
  81. package/dist/lib/storage/index.js +0 -14
  82. package/dist/lib/storage/index.js.map +1 -1
  83. package/dist/lib/storage/make-webex-plugin-store.js +11 -41
  84. package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
  85. package/dist/lib/storage/make-webex-store.js +8 -30
  86. package/dist/lib/storage/make-webex-store.js.map +1 -1
  87. package/dist/lib/storage/memory-store-adapter.js +1 -19
  88. package/dist/lib/storage/memory-store-adapter.js.map +1 -1
  89. package/dist/lib/webex-core-plugin-mixin.js +9 -29
  90. package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
  91. package/dist/lib/webex-http-error.js +1 -31
  92. package/dist/lib/webex-http-error.js.map +1 -1
  93. package/dist/lib/webex-internal-core-plugin-mixin.js +9 -29
  94. package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
  95. package/dist/lib/webex-plugin.js +6 -40
  96. package/dist/lib/webex-plugin.js.map +1 -1
  97. package/dist/plugins/logger.js +3 -17
  98. package/dist/plugins/logger.js.map +1 -1
  99. package/dist/webex-core.js +79 -203
  100. package/dist/webex-core.js.map +1 -1
  101. package/dist/webex-internal-core.js +0 -10
  102. package/dist/webex-internal-core.js.map +1 -1
  103. package/package.json +14 -14
  104. package/src/lib/credentials/credentials.js +19 -0
  105. 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
- options.headers = options.headers || {}; // If Authorizations is already set, don't overwrite it
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
- } // Validate that the services plugin has been loaded before proceeding.
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
- } // Destructure webex instance to isolate services plugin.
103
-
80
+ }
104
81
 
105
- var services = this.webex.internal.services; // Store the current service details if available and destructure details.
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
- name = _ref.name;
111
-
88
+ name = _ref.name;
112
89
  var resource = options.resource,
113
- uri = options.uri;
114
- var service = options.service || options.api; // Unique validation for the u2c service.
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
- } // Validate that the allowed domains can be utilized.
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
- } // Perform an additional validation in case the service does not exist yet.
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
- } // Return false to indicate authentication is not required.
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":"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"}
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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;;;;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACqBA,yB;;;;;;;;;;;;;IAQnB;AACF;AACA;AACA;AACA;IACE,mBAAUC,OAAV,EAAmB;MACjB,IAA8BC,cAA9B,GAAgD,KAAKC,KAAL,CAAWC,MAA3D,CAAOC,qBAAP;;MAEA,IAAI,CAACH,cAAL,EAAqB;QACnB,OAAOD,OAAP;MACD;;MAED,mBAAYC,cAAZ,EAA4BI,OAA5B,CAAoC,UAACC,GAAD,EAAS;QAC3C;QACA,IAAI,CAAC,mBAAYN,OAAZ,EAAqBO,QAArB,CAA8BD,GAA9B,CAAL,EAAyC;UACvCN,OAAO,CAACM,GAAD,CAAP,GAAeL,cAAc,CAACK,GAAD,CAA7B;QACD;MACF,CALD;MAOA,OAAON,OAAP;IACD;;;;IA3BD;AACF;AACA;IACE,kBAAgB;MACd,OAAO,IAAID,yBAAJ,CAA8B;QAACG,KAAK,EAAE;MAAR,CAA9B,CAAP;IACD;;;EANoDM,qB"}
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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;;;;;AAEA;AACA;AACA;IACqBA,kB;;;;;;;;;;;;;IASnB;AACF;AACA;AACA;AACA;AACA;IACE,yBAAgBC,OAAhB,EAAyBC,MAAzB,EAAiC;MAC/B,IAAIA,MAAM,CAACC,UAAP,KAAsB,GAA1B,EAA+B;QAC7B,IAAOC,MAAP,GAAiB,KAAKC,KAAL,CAAWC,QAA5B,CAAOF,MAAP;QACA,IAAMG,aAAa,GAAG,CACpB,qDADoB,EAEpB,gDAFoB,EAGpBC,IAHoB,CAGf,EAHe,CAAtB;;QAKA,IAAIJ,MAAJ,EAAY;UACV,KAAKC,KAAL,CAAWC,QAAX,CAAoBF,MAApB,CAA2BK,KAA3B;QACD;;QAED,KAAKJ,KAAL,CAAWK,WAAX,CAAuBD,KAAvB;QACA,KAAKJ,KAAL,CAAWM,MAAX,CAAkBC,IAAlB,CAAuBL,aAAvB;MACD;;MAED,OAAO,iBAAQM,MAAR,CAAeX,MAAf,CAAP;IACD;;;;IA/BD;AACF;AACA;IACE,kBAAgB;MACd;MACA,OAAO,IAAIF,kBAAJ,CAAuB;QAACK,KAAK,EAAE;MAAR,CAAvB,CAAP;IACD;;;EAP6CS,qB"}
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;;;;;;AAEA;AACA;AACA;IACqBA,wB;;;;;;;;;;;;;IASnB;AACF;AACA;AACA;AACA;IACE,mBAAUC,OAAV,EAAmB;MACjBA,OAAO,CAACC,QAAR,GAAmBD,OAAO,CAACC,QAAR,IAAoB,EAAvC;MACAD,OAAO,CAACC,QAAR,CAAiBC,YAAjB,GAAgC,mBAAhC;MAEA,OAAOF,OAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,oBAAWA,OAAX,EAAoBG,QAApB,EAA8B;MAC5BH,OAAO,CAACC,QAAR,CAAiBG,UAAjB,GAA8B,mBAA9B;MAEA,OAAOD,QAAP;IACD;IAED;AACF;AACA;AACA;AACA;AACA;;;;WACE,yBAAgBH,OAAhB,EAAyBK,MAAzB,EAAiC;MAC/BL,OAAO,CAACC,QAAR,CAAiBG,UAAjB,GAA8B,mBAA9B;MAEA,OAAO,iBAAQE,MAAR,CAAeD,MAAf,CAAP;IACD;;;;IA1CD;AACF;AACA;AACA;IACE,gBAAcL,OAAd,EAAuB;MACrB,OAAO,IAAID,wBAAJ,CAA6B,IAA7B,EAAmCC,OAAnC,CAAP;IACD;;;EAPmDO,qB"}
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"}