@webex/webex-core 2.59.3-next.1 → 2.59.4
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/.eslintrc.js +6 -6
- package/README.md +79 -79
- package/babel.config.js +3 -3
- package/dist/config.js +24 -24
- package/dist/config.js.map +1 -1
- package/dist/credentials-config.js +56 -56
- package/dist/credentials-config.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interceptors/auth.js +28 -28
- package/dist/interceptors/auth.js.map +1 -1
- package/dist/interceptors/default-options.js +24 -24
- package/dist/interceptors/default-options.js.map +1 -1
- package/dist/interceptors/embargo.js +9 -9
- package/dist/interceptors/embargo.js.map +1 -1
- package/dist/interceptors/network-timing.js +19 -19
- package/dist/interceptors/network-timing.js.map +1 -1
- package/dist/interceptors/payload-transformer.js +19 -19
- package/dist/interceptors/payload-transformer.js.map +1 -1
- package/dist/interceptors/rate-limit.js +40 -40
- package/dist/interceptors/rate-limit.js.map +1 -1
- package/dist/interceptors/redirect.js +13 -13
- package/dist/interceptors/redirect.js.map +1 -1
- package/dist/interceptors/request-event.js +23 -23
- package/dist/interceptors/request-event.js.map +1 -1
- package/dist/interceptors/request-logger.js +13 -13
- package/dist/interceptors/request-logger.js.map +1 -1
- package/dist/interceptors/request-timing.js +23 -23
- package/dist/interceptors/request-timing.js.map +1 -1
- package/dist/interceptors/response-logger.js +19 -19
- package/dist/interceptors/response-logger.js.map +1 -1
- package/dist/interceptors/user-agent.js +29 -29
- package/dist/interceptors/user-agent.js.map +1 -1
- package/dist/interceptors/webex-tracking-id.js +15 -15
- package/dist/interceptors/webex-tracking-id.js.map +1 -1
- package/dist/interceptors/webex-user-agent.js +13 -13
- package/dist/interceptors/webex-user-agent.js.map +1 -1
- package/dist/lib/batcher.js +83 -83
- package/dist/lib/batcher.js.map +1 -1
- package/dist/lib/credentials/credentials.js +103 -103
- package/dist/lib/credentials/credentials.js.map +1 -1
- package/dist/lib/credentials/grant-errors.js +17 -17
- package/dist/lib/credentials/grant-errors.js.map +1 -1
- package/dist/lib/credentials/index.js +2 -2
- package/dist/lib/credentials/index.js.map +1 -1
- package/dist/lib/credentials/scope.js +11 -11
- package/dist/lib/credentials/scope.js.map +1 -1
- package/dist/lib/credentials/token-collection.js +2 -2
- package/dist/lib/credentials/token-collection.js.map +1 -1
- package/dist/lib/credentials/token.js +145 -145
- package/dist/lib/credentials/token.js.map +1 -1
- package/dist/lib/page.js +49 -49
- package/dist/lib/page.js.map +1 -1
- package/dist/lib/services/constants.js.map +1 -1
- package/dist/lib/services/index.js +2 -2
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/interceptors/server-error.js +9 -9
- package/dist/lib/services/interceptors/server-error.js.map +1 -1
- package/dist/lib/services/interceptors/service.js +24 -24
- package/dist/lib/services/interceptors/service.js.map +1 -1
- package/dist/lib/services/metrics.js.map +1 -1
- package/dist/lib/services/service-catalog.js +104 -104
- package/dist/lib/services/service-catalog.js.map +1 -1
- package/dist/lib/services/service-fed-ramp.js.map +1 -1
- package/dist/lib/services/service-host.js +134 -134
- package/dist/lib/services/service-host.js.map +1 -1
- package/dist/lib/services/service-registry.js +175 -175
- package/dist/lib/services/service-registry.js.map +1 -1
- package/dist/lib/services/service-state.js +38 -38
- package/dist/lib/services/service-state.js.map +1 -1
- package/dist/lib/services/service-url.js +31 -31
- package/dist/lib/services/service-url.js.map +1 -1
- package/dist/lib/services/services.js +245 -245
- package/dist/lib/services/services.js.map +1 -1
- package/dist/lib/stateless-webex-plugin.js +28 -28
- package/dist/lib/stateless-webex-plugin.js.map +1 -1
- package/dist/lib/storage/decorators.js +27 -27
- package/dist/lib/storage/decorators.js.map +1 -1
- package/dist/lib/storage/errors.js +4 -4
- package/dist/lib/storage/errors.js.map +1 -1
- package/dist/lib/storage/index.js.map +1 -1
- package/dist/lib/storage/make-webex-plugin-store.js +44 -44
- package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
- package/dist/lib/storage/make-webex-store.js +40 -40
- package/dist/lib/storage/make-webex-store.js.map +1 -1
- package/dist/lib/storage/memory-store-adapter.js +9 -9
- package/dist/lib/storage/memory-store-adapter.js.map +1 -1
- package/dist/lib/webex-core-plugin-mixin.js +13 -13
- package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-http-error.js +9 -9
- package/dist/lib/webex-http-error.js.map +1 -1
- package/dist/lib/webex-internal-core-plugin-mixin.js +13 -13
- package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-plugin.js +36 -36
- package/dist/lib/webex-plugin.js.map +1 -1
- package/dist/plugins/logger.js +9 -9
- package/dist/plugins/logger.js.map +1 -1
- package/dist/webex-core.js +104 -104
- package/dist/webex-core.js.map +1 -1
- package/dist/webex-internal-core.js +12 -12
- package/dist/webex-internal-core.js.map +1 -1
- package/jest.config.js +3 -3
- package/package.json +19 -20
- package/process +1 -1
- package/src/config.js +90 -90
- package/src/credentials-config.js +212 -212
- package/src/index.js +62 -62
- package/src/interceptors/auth.js +186 -186
- package/src/interceptors/default-options.js +55 -55
- package/src/interceptors/embargo.js +43 -43
- package/src/interceptors/network-timing.js +54 -54
- package/src/interceptors/payload-transformer.js +55 -55
- package/src/interceptors/rate-limit.js +169 -169
- package/src/interceptors/redirect.js +106 -106
- package/src/interceptors/request-event.js +93 -93
- package/src/interceptors/request-logger.js +78 -78
- package/src/interceptors/request-timing.js +65 -65
- package/src/interceptors/response-logger.js +98 -98
- package/src/interceptors/user-agent.js +77 -77
- package/src/interceptors/webex-tracking-id.js +73 -73
- package/src/interceptors/webex-user-agent.js +79 -79
- package/src/lib/batcher.js +307 -307
- package/src/lib/credentials/credentials.js +552 -552
- package/src/lib/credentials/grant-errors.js +92 -92
- package/src/lib/credentials/index.js +16 -16
- package/src/lib/credentials/scope.js +34 -34
- package/src/lib/credentials/token-collection.js +17 -17
- package/src/lib/credentials/token.js +559 -559
- package/src/lib/page.js +159 -159
- package/src/lib/services/constants.js +9 -9
- package/src/lib/services/index.js +26 -26
- package/src/lib/services/interceptors/server-error.js +48 -48
- package/src/lib/services/interceptors/service.js +101 -101
- package/src/lib/services/metrics.js +4 -4
- package/src/lib/services/service-catalog.js +435 -435
- package/src/lib/services/service-fed-ramp.js +4 -4
- package/src/lib/services/service-host.js +267 -267
- package/src/lib/services/service-registry.js +465 -465
- package/src/lib/services/service-state.js +78 -78
- package/src/lib/services/service-url.js +124 -124
- package/src/lib/services/services.js +1018 -1018
- package/src/lib/stateless-webex-plugin.js +98 -98
- package/src/lib/storage/decorators.js +220 -220
- package/src/lib/storage/errors.js +15 -15
- package/src/lib/storage/index.js +10 -10
- package/src/lib/storage/make-webex-plugin-store.js +211 -211
- package/src/lib/storage/make-webex-store.js +140 -140
- package/src/lib/storage/memory-store-adapter.js +79 -79
- package/src/lib/webex-core-plugin-mixin.js +114 -114
- package/src/lib/webex-http-error.js +61 -61
- package/src/lib/webex-internal-core-plugin-mixin.js +107 -107
- package/src/lib/webex-plugin.js +222 -222
- package/src/plugins/logger.js +60 -60
- package/src/webex-core.js +745 -745
- package/src/webex-internal-core.js +46 -46
- package/test/integration/spec/credentials/credentials.js +139 -139
- package/test/integration/spec/credentials/token.js +102 -102
- package/test/integration/spec/services/service-catalog.js +838 -838
- package/test/integration/spec/services/services.js +1221 -1221
- package/test/integration/spec/webex-core.js +178 -178
- package/test/unit/spec/_setup.js +44 -44
- package/test/unit/spec/credentials/credentials.js +1017 -1017
- package/test/unit/spec/credentials/token.js +441 -441
- package/test/unit/spec/interceptors/auth.js +521 -521
- package/test/unit/spec/interceptors/default-options.js +84 -84
- package/test/unit/spec/interceptors/embargo.js +144 -144
- package/test/unit/spec/interceptors/network-timing.js +49 -49
- package/test/unit/spec/interceptors/payload-transformer.js +155 -155
- package/test/unit/spec/interceptors/rate-limit.js +302 -302
- package/test/unit/spec/interceptors/redirect.js +102 -102
- package/test/unit/spec/interceptors/request-timing.js +92 -92
- package/test/unit/spec/interceptors/user-agent.js +76 -76
- package/test/unit/spec/interceptors/webex-tracking-id.js +76 -76
- package/test/unit/spec/interceptors/webex-user-agent.js +159 -159
- package/test/unit/spec/lib/batcher.js +330 -330
- package/test/unit/spec/lib/page.js +148 -148
- package/test/unit/spec/lib/webex-plugin.js +48 -48
- package/test/unit/spec/services/interceptors/server-error.js +204 -204
- package/test/unit/spec/services/interceptors/service.js +188 -188
- package/test/unit/spec/services/service-catalog.js +194 -194
- package/test/unit/spec/services/service-host.js +260 -260
- package/test/unit/spec/services/service-registry.js +747 -747
- package/test/unit/spec/services/service-state.js +60 -60
- package/test/unit/spec/services/service-url.js +258 -258
- package/test/unit/spec/services/services.js +348 -348
- package/test/unit/spec/storage/persist.js +50 -50
- package/test/unit/spec/storage/storage-adapter.js +12 -12
- package/test/unit/spec/storage/wait-for-value.js +81 -81
- package/test/unit/spec/webex-core.js +253 -253
- package/test/unit/spec/webex-internal-core.js +91 -91
|
@@ -26,16 +26,16 @@ var rateLimitExpiryTime = new _weakMap.default();
|
|
|
26
26
|
// extracts the common identity API being called
|
|
27
27
|
var idBrokerRegex = /.*(idbroker|identity)(bts)?.ciscospark.com\/([^/]+)/;
|
|
28
28
|
|
|
29
|
-
/**
|
|
30
|
-
* @class
|
|
29
|
+
/**
|
|
30
|
+
* @class
|
|
31
31
|
*/
|
|
32
32
|
var RateLimitInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
33
33
|
(0, _inherits2.default)(RateLimitInterceptor, _Interceptor);
|
|
34
34
|
var _super = _createSuper(RateLimitInterceptor);
|
|
35
|
-
/**
|
|
36
|
-
* constructor
|
|
37
|
-
* @param {mixed} args
|
|
38
|
-
* @returns {Exception}
|
|
35
|
+
/**
|
|
36
|
+
* constructor
|
|
37
|
+
* @param {mixed} args
|
|
38
|
+
* @returns {Exception}
|
|
39
39
|
*/
|
|
40
40
|
function RateLimitInterceptor() {
|
|
41
41
|
var _this;
|
|
@@ -48,10 +48,10 @@ var RateLimitInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
48
48
|
return _this;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
/**
|
|
52
|
-
* @see {@link Interceptor#onRequest}
|
|
53
|
-
* @param {Object} options
|
|
54
|
-
* @returns {Object}
|
|
51
|
+
/**
|
|
52
|
+
* @see {@link Interceptor#onRequest}
|
|
53
|
+
* @param {Object} options
|
|
54
|
+
* @returns {Object}
|
|
55
55
|
*/
|
|
56
56
|
(0, _createClass2.default)(RateLimitInterceptor, [{
|
|
57
57
|
key: "onRequest",
|
|
@@ -62,11 +62,11 @@ var RateLimitInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
62
62
|
return _promise.default.resolve(options);
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
-
/**
|
|
66
|
-
* @see {@link Interceptor#onResponseError}
|
|
67
|
-
* @param {Object} options
|
|
68
|
-
* @param {Error} reason
|
|
69
|
-
* @returns {Object}
|
|
65
|
+
/**
|
|
66
|
+
* @see {@link Interceptor#onResponseError}
|
|
67
|
+
* @param {Object} options
|
|
68
|
+
* @param {Error} reason
|
|
69
|
+
* @returns {Object}
|
|
70
70
|
*/
|
|
71
71
|
}, {
|
|
72
72
|
key: "onResponseError",
|
|
@@ -78,9 +78,9 @@ var RateLimitInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
78
78
|
return _promise.default.reject(reason);
|
|
79
79
|
}
|
|
80
80
|
|
|
81
|
-
/**
|
|
82
|
-
* @param {object} options associated with the request
|
|
83
|
-
* @returns {number} retry after time in milliseconds
|
|
81
|
+
/**
|
|
82
|
+
* @param {object} options associated with the request
|
|
83
|
+
* @returns {number} retry after time in milliseconds
|
|
84
84
|
*/
|
|
85
85
|
}, {
|
|
86
86
|
key: "extractRetryAfterTime",
|
|
@@ -100,13 +100,13 @@ var RateLimitInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
100
100
|
return retryAfter * milliMultiplier;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
/**
|
|
104
|
-
* Set the system time at which the rate limiting
|
|
105
|
-
* will expire in the rateLimitExpiryTime map.
|
|
106
|
-
* Assumes retryAfter is in milliseconds
|
|
107
|
-
* @param {string} uri API issuing the rate limiting
|
|
108
|
-
* @param {number} retryAfter milliseconds until rate limiting expires
|
|
109
|
-
* @returns {bool} true is value was successfully set
|
|
103
|
+
/**
|
|
104
|
+
* Set the system time at which the rate limiting
|
|
105
|
+
* will expire in the rateLimitExpiryTime map.
|
|
106
|
+
* Assumes retryAfter is in milliseconds
|
|
107
|
+
* @param {string} uri API issuing the rate limiting
|
|
108
|
+
* @param {number} retryAfter milliseconds until rate limiting expires
|
|
109
|
+
* @returns {bool} true is value was successfully set
|
|
110
110
|
*/
|
|
111
111
|
}, {
|
|
112
112
|
key: "setRateLimitExpiry",
|
|
@@ -121,10 +121,10 @@ var RateLimitInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
121
121
|
return dict.set(apiName, expiry);
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
-
/**
|
|
125
|
-
* returns true if the API is currently rate limited
|
|
126
|
-
* @param {string} uri
|
|
127
|
-
* @returns {Boolean} indicates whether or not the API is rate currently rate limited
|
|
124
|
+
/**
|
|
125
|
+
* returns true if the API is currently rate limited
|
|
126
|
+
* @param {string} uri
|
|
127
|
+
* @returns {Boolean} indicates whether or not the API is rate currently rate limited
|
|
128
128
|
*/
|
|
129
129
|
}, {
|
|
130
130
|
key: "getRateLimitStatus",
|
|
@@ -146,10 +146,10 @@ var RateLimitInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
146
146
|
return currTimeMilli < dict.get(apiName);
|
|
147
147
|
}
|
|
148
148
|
|
|
149
|
-
/**
|
|
150
|
-
* split the URI and returns the API name of idBroker
|
|
151
|
-
* @param {string} uri
|
|
152
|
-
* @returns {string}
|
|
149
|
+
/**
|
|
150
|
+
* split the URI and returns the API name of idBroker
|
|
151
|
+
* @param {string} uri
|
|
152
|
+
* @returns {string}
|
|
153
153
|
*/
|
|
154
154
|
}, {
|
|
155
155
|
key: "getApiName",
|
|
@@ -167,11 +167,11 @@ var RateLimitInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
167
167
|
return results[2];
|
|
168
168
|
}
|
|
169
169
|
|
|
170
|
-
/**
|
|
171
|
-
* check URI against list of currently rate limited
|
|
172
|
-
* URIs, and determines if retry-after
|
|
173
|
-
* @param {String} uri pattern to check
|
|
174
|
-
* @returns {bool}
|
|
170
|
+
/**
|
|
171
|
+
* check URI against list of currently rate limited
|
|
172
|
+
* URIs, and determines if retry-after
|
|
173
|
+
* @param {String} uri pattern to check
|
|
174
|
+
* @returns {bool}
|
|
175
175
|
*/
|
|
176
176
|
}, {
|
|
177
177
|
key: "isRateLimited",
|
|
@@ -185,8 +185,8 @@ var RateLimitInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
185
185
|
}], [{
|
|
186
186
|
key: "create",
|
|
187
187
|
value:
|
|
188
|
-
/**
|
|
189
|
-
* @returns {RateLimitInterceptor}
|
|
188
|
+
/**
|
|
189
|
+
* @returns {RateLimitInterceptor}
|
|
190
190
|
*/
|
|
191
191
|
function create() {
|
|
192
192
|
return new RateLimitInterceptor({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_httpCore","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","rateLimitExpiryTime","_weakMap","idBrokerRegex","RateLimitInterceptor","_Interceptor","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","set","_assertThisInitialized2","_map","_createClass2","key","value","onRequest","options","isRateLimited","uri","_promise","reject","Error","resolve","onResponseError","reason","statusCode","includes","setRateLimitExpiry","extractRetryAfterTime","milliMultiplier","retryAfter","headers","apiName","getApiName","currTimeMilli","Date","getTime","expiry","dict","get","getRateLimitStatus","expiryTime","undefined","results","match","create","webex","Interceptor","exports"],"sources":["rate-limit.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport {Interceptor} from '@webex/http-core';\r\n\r\n// contains the system time in milliseconds at which the retry after associated with a 429 expires\r\n// mapped by the API name, e.g.: idbroker.webex.com/doStuff would be mapped as 'doStuff'\r\nconst rateLimitExpiryTime = new WeakMap();\r\n\r\n// extracts the common identity API being called\r\nconst idBrokerRegex = /.*(idbroker|identity)(bts)?.ciscospark.com\\/([^/]+)/;\r\n\r\n/**\r\n * @class\r\n */\r\nexport default class RateLimitInterceptor extends Interceptor {\r\n /**\r\n * @returns {RateLimitInterceptor}\r\n */\r\n static create() {\r\n return new RateLimitInterceptor({webex: this});\r\n }\r\n\r\n /**\r\n * constructor\r\n * @param {mixed} args\r\n * @returns {Exception}\r\n */\r\n constructor(...args) {\r\n super(...args);\r\n rateLimitExpiryTime.set(this, new Map());\r\n }\r\n\r\n /**\r\n * @see {@link Interceptor#onRequest}\r\n * @param {Object} options\r\n * @returns {Object}\r\n */\r\n onRequest(options) {\r\n if (this.isRateLimited(options.uri)) {\r\n return Promise.reject(new Error(`API rate limited ${options.uri}`));\r\n }\r\n\r\n return Promise.resolve(options);\r\n }\r\n\r\n /**\r\n * @see {@link Interceptor#onResponseError}\r\n * @param {Object} options\r\n * @param {Error} reason\r\n * @returns {Object}\r\n */\r\n onResponseError(options, reason) {\r\n if (\r\n reason.statusCode === 429 &&\r\n (options.uri.includes('idbroker') || options.uri.includes('identity'))\r\n ) {\r\n // set the retry after in the map, setting to milliseconds\r\n this.setRateLimitExpiry(options.uri, this.extractRetryAfterTime(options));\r\n }\r\n\r\n return Promise.reject(reason);\r\n }\r\n\r\n /**\r\n * @param {object} options associated with the request\r\n * @returns {number} retry after time in milliseconds\r\n */\r\n extractRetryAfterTime(options) {\r\n // 1S * 1K === 1MS\r\n const milliMultiplier = 1000;\r\n const retryAfter = options.headers['retry-after'] || null;\r\n\r\n // set 60 retry if no usable time defined\r\n if (retryAfter === null || retryAfter <= 0) {\r\n return 60 * milliMultiplier;\r\n }\r\n // set max to 3600 S (1 hour) if greater than 1 hour\r\n if (retryAfter > 3600) {\r\n return 3600 * milliMultiplier;\r\n }\r\n\r\n return retryAfter * milliMultiplier;\r\n }\r\n\r\n /**\r\n * Set the system time at which the rate limiting\r\n * will expire in the rateLimitExpiryTime map.\r\n * Assumes retryAfter is in milliseconds\r\n * @param {string} uri API issuing the rate limiting\r\n * @param {number} retryAfter milliseconds until rate limiting expires\r\n * @returns {bool} true is value was successfully set\r\n */\r\n setRateLimitExpiry(uri, retryAfter) {\r\n const apiName = this.getApiName(uri);\r\n\r\n if (!apiName) {\r\n return false;\r\n }\r\n\r\n const currTimeMilli = new Date().getTime();\r\n const expiry = currTimeMilli + retryAfter;\r\n const dict = rateLimitExpiryTime.get(this);\r\n\r\n return dict.set(apiName, expiry);\r\n }\r\n\r\n /**\r\n * returns true if the API is currently rate limited\r\n * @param {string} uri\r\n * @returns {Boolean} indicates whether or not the API is rate currently rate limited\r\n */\r\n getRateLimitStatus(uri) {\r\n const apiName = this.getApiName(uri);\r\n\r\n if (!apiName) {\r\n return false;\r\n }\r\n\r\n const currTimeMilli = new Date().getTime();\r\n const dict = rateLimitExpiryTime.get(this);\r\n const expiryTime = dict.get(apiName);\r\n\r\n // if no rate limit expiry has been registered in the map, return false.\r\n if (expiryTime === undefined) {\r\n return false;\r\n }\r\n\r\n // return true, indicating rate limiting, if the system time is less than the expiry time\r\n return currTimeMilli < dict.get(apiName);\r\n }\r\n\r\n /**\r\n * split the URI and returns the API name of idBroker\r\n * @param {string} uri\r\n * @returns {string}\r\n */\r\n getApiName(uri) {\r\n if (!uri) {\r\n return null;\r\n }\r\n\r\n const results = uri.match(idBrokerRegex);\r\n\r\n if (!results) {\r\n return null;\r\n }\r\n\r\n // group 0 = full match of URL, group 1 = identity or idbroker base\r\n // group 2 = api name\r\n return results[2];\r\n }\r\n\r\n /**\r\n * check URI against list of currently rate limited\r\n * URIs, and determines if retry-after\r\n * @param {String} uri pattern to check\r\n * @returns {bool}\r\n */\r\n isRateLimited(uri) {\r\n // determine if the URI is associated with a common identity API\r\n if (uri && (uri.includes('idbroker') || uri.includes('identity'))) {\r\n return this.getRateLimitStatus(uri);\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_httpCore","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","rateLimitExpiryTime","_weakMap","idBrokerRegex","RateLimitInterceptor","_Interceptor","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","set","_assertThisInitialized2","_map","_createClass2","key","value","onRequest","options","isRateLimited","uri","_promise","reject","Error","resolve","onResponseError","reason","statusCode","includes","setRateLimitExpiry","extractRetryAfterTime","milliMultiplier","retryAfter","headers","apiName","getApiName","currTimeMilli","Date","getTime","expiry","dict","get","getRateLimitStatus","expiryTime","undefined","results","match","create","webex","Interceptor","exports"],"sources":["rate-limit.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n// contains the system time in milliseconds at which the retry after associated with a 429 expires\n// mapped by the API name, e.g.: idbroker.webex.com/doStuff would be mapped as 'doStuff'\nconst rateLimitExpiryTime = new WeakMap();\n\n// extracts the common identity API being called\nconst idBrokerRegex = /.*(idbroker|identity)(bts)?.ciscospark.com\\/([^/]+)/;\n\n/**\n * @class\n */\nexport default class RateLimitInterceptor extends Interceptor {\n /**\n * @returns {RateLimitInterceptor}\n */\n static create() {\n return new RateLimitInterceptor({webex: this});\n }\n\n /**\n * constructor\n * @param {mixed} args\n * @returns {Exception}\n */\n constructor(...args) {\n super(...args);\n rateLimitExpiryTime.set(this, new Map());\n }\n\n /**\n * @see {@link Interceptor#onRequest}\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n if (this.isRateLimited(options.uri)) {\n return Promise.reject(new Error(`API rate limited ${options.uri}`));\n }\n\n return Promise.resolve(options);\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 if (\n reason.statusCode === 429 &&\n (options.uri.includes('idbroker') || options.uri.includes('identity'))\n ) {\n // set the retry after in the map, setting to milliseconds\n this.setRateLimitExpiry(options.uri, this.extractRetryAfterTime(options));\n }\n\n return Promise.reject(reason);\n }\n\n /**\n * @param {object} options associated with the request\n * @returns {number} retry after time in milliseconds\n */\n extractRetryAfterTime(options) {\n // 1S * 1K === 1MS\n const milliMultiplier = 1000;\n const retryAfter = options.headers['retry-after'] || null;\n\n // set 60 retry if no usable time defined\n if (retryAfter === null || retryAfter <= 0) {\n return 60 * milliMultiplier;\n }\n // set max to 3600 S (1 hour) if greater than 1 hour\n if (retryAfter > 3600) {\n return 3600 * milliMultiplier;\n }\n\n return retryAfter * milliMultiplier;\n }\n\n /**\n * Set the system time at which the rate limiting\n * will expire in the rateLimitExpiryTime map.\n * Assumes retryAfter is in milliseconds\n * @param {string} uri API issuing the rate limiting\n * @param {number} retryAfter milliseconds until rate limiting expires\n * @returns {bool} true is value was successfully set\n */\n setRateLimitExpiry(uri, retryAfter) {\n const apiName = this.getApiName(uri);\n\n if (!apiName) {\n return false;\n }\n\n const currTimeMilli = new Date().getTime();\n const expiry = currTimeMilli + retryAfter;\n const dict = rateLimitExpiryTime.get(this);\n\n return dict.set(apiName, expiry);\n }\n\n /**\n * returns true if the API is currently rate limited\n * @param {string} uri\n * @returns {Boolean} indicates whether or not the API is rate currently rate limited\n */\n getRateLimitStatus(uri) {\n const apiName = this.getApiName(uri);\n\n if (!apiName) {\n return false;\n }\n\n const currTimeMilli = new Date().getTime();\n const dict = rateLimitExpiryTime.get(this);\n const expiryTime = dict.get(apiName);\n\n // if no rate limit expiry has been registered in the map, return false.\n if (expiryTime === undefined) {\n return false;\n }\n\n // return true, indicating rate limiting, if the system time is less than the expiry time\n return currTimeMilli < dict.get(apiName);\n }\n\n /**\n * split the URI and returns the API name of idBroker\n * @param {string} uri\n * @returns {string}\n */\n getApiName(uri) {\n if (!uri) {\n return null;\n }\n\n const results = uri.match(idBrokerRegex);\n\n if (!results) {\n return null;\n }\n\n // group 0 = full match of URL, group 1 = identity or idbroker base\n // group 2 = api name\n return results[2];\n }\n\n /**\n * check URI against list of currently rate limited\n * URIs, and determines if retry-after\n * @param {String} uri pattern to check\n * @returns {bool}\n */\n isRateLimited(uri) {\n // determine if the URI is associated with a common identity API\n if (uri && (uri.includes('idbroker') || uri.includes('identity'))) {\n return this.getRateLimitStatus(uri);\n }\n\n return false;\n }\n}\n"],"mappings":"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"}
|
|
@@ -22,8 +22,8 @@ var requestHeaderName = 'cisco-no-http-redirect';
|
|
|
22
22
|
var responseHeaderName = 'cisco-location';
|
|
23
23
|
var LOCUS_REDIRECT_ERROR = 2000002;
|
|
24
24
|
|
|
25
|
-
/**
|
|
26
|
-
* @class
|
|
25
|
+
/**
|
|
26
|
+
* @class
|
|
27
27
|
*/
|
|
28
28
|
var RedirectInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
29
29
|
(0, _inherits2.default)(RedirectInterceptor, _Interceptor);
|
|
@@ -35,10 +35,10 @@ var RedirectInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
35
35
|
(0, _createClass2.default)(RedirectInterceptor, [{
|
|
36
36
|
key: "onRequest",
|
|
37
37
|
value:
|
|
38
|
-
/**
|
|
39
|
-
* @see Interceptor#onRequest
|
|
40
|
-
* @param {Object} options
|
|
41
|
-
* @returns {Object}
|
|
38
|
+
/**
|
|
39
|
+
* @see Interceptor#onRequest
|
|
40
|
+
* @param {Object} options
|
|
41
|
+
* @returns {Object}
|
|
42
42
|
*/
|
|
43
43
|
function onRequest(options) {
|
|
44
44
|
if (options && options.uri && typeof options.uri === 'string') {
|
|
@@ -61,11 +61,11 @@ var RedirectInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
61
61
|
return options;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
/**
|
|
65
|
-
* @see Interceptor#onResponse
|
|
66
|
-
* @param {Object} options
|
|
67
|
-
* @param {HttpResponse} response
|
|
68
|
-
* @returns {Object}
|
|
64
|
+
/**
|
|
65
|
+
* @see Interceptor#onResponse
|
|
66
|
+
* @param {Object} options
|
|
67
|
+
* @param {HttpResponse} response
|
|
68
|
+
* @returns {Object}
|
|
69
69
|
*/
|
|
70
70
|
}, {
|
|
71
71
|
key: "onResponse",
|
|
@@ -104,8 +104,8 @@ var RedirectInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
104
104
|
}], [{
|
|
105
105
|
key: "create",
|
|
106
106
|
value:
|
|
107
|
-
/**
|
|
108
|
-
* @returns {RedirectInterceptor}
|
|
107
|
+
/**
|
|
108
|
+
* @returns {RedirectInterceptor}
|
|
109
109
|
*/
|
|
110
110
|
function create() {
|
|
111
111
|
return new RedirectInterceptor({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_httpCore","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","requestHeaderName","responseHeaderName","LOCUS_REDIRECT_ERROR","RedirectInterceptor","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onRequest","options","uri","includes","webex","config","credentials","samlUrl","tokenUrl","authorizeUrl","headers","_deleteProperty","$redirectCount","onResponse","response","_clone2","maxAppLevelRedirects","_promise","reject","Error","request","body","errorCode","location","logger","warn","qs","newUrl","split","maxLocusRedirects","create","Interceptor","exports"],"sources":["redirect.js"],"sourcesContent":["/* eslint-disable prefer-destructuring */\
|
|
1
|
+
{"version":3,"names":["_httpCore","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","requestHeaderName","responseHeaderName","LOCUS_REDIRECT_ERROR","RedirectInterceptor","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onRequest","options","uri","includes","webex","config","credentials","samlUrl","tokenUrl","authorizeUrl","headers","_deleteProperty","$redirectCount","onResponse","response","_clone2","maxAppLevelRedirects","_promise","reject","Error","request","body","errorCode","location","logger","warn","qs","newUrl","split","maxLocusRedirects","create","Interceptor","exports"],"sources":["redirect.js"],"sourcesContent":["/* eslint-disable prefer-destructuring */\n\n/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {clone} from 'lodash';\nimport {Interceptor} from '@webex/http-core';\n\nconst requestHeaderName = 'cisco-no-http-redirect';\nconst responseHeaderName = 'cisco-location';\nconst LOCUS_REDIRECT_ERROR = 2000002;\n\n/**\n * @class\n */\nexport default class RedirectInterceptor extends Interceptor {\n /**\n * @returns {RedirectInterceptor}\n */\n static create() {\n return new RedirectInterceptor({webex: this});\n }\n\n /**\n * @see Interceptor#onRequest\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n if (options && options.uri && typeof options.uri === 'string') {\n if (\n options.uri.includes('https://idbroker') ||\n options.uri.includes(this.webex.config.credentials.samlUrl) ||\n options.uri.includes(this.webex.config.credentials.tokenUrl) ||\n options.uri.includes(this.webex.config.credentials.authorizeUrl)\n ) {\n return options;\n }\n }\n\n // If cisco-no-http-redirect is already set, don't overwrite it\n if (requestHeaderName in options.headers) {\n // If cisco-no-http-redirect is set to null, false, or undefined, delete\n // it to prevent a CORS preflight.\n if (!options.headers[requestHeaderName]) {\n Reflect.deleteProperty(options.headers, requestHeaderName);\n }\n\n return options;\n }\n options.headers[requestHeaderName] = true;\n options.$redirectCount = options.$redirectCount || 0;\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 /* eslint-disable no-else-return */\n if (response.headers && response.headers[responseHeaderName]) {\n options = clone(options);\n options.uri = response.headers[responseHeaderName];\n options.$redirectCount += 1;\n if (options.$redirectCount > this.webex.config.maxAppLevelRedirects) {\n return Promise.reject(new Error('Maximum redirects exceeded'));\n }\n\n return this.webex.request(options);\n } else if (\n response.headers &&\n response.body &&\n response.body.errorCode === LOCUS_REDIRECT_ERROR &&\n response.body.location\n ) {\n options = clone(options);\n\n this.webex.logger.warn('redirect: url redirects needed from', options.uri);\n if (response.options && response.options.qs) {\n // for POST requests\n const newUrl = response.body.location.split('?');\n\n options.uri = newUrl[0]; // params are already present in the qs\n } else {\n // for GET requests\n options.uri = response.body.location;\n }\n\n this.webex.logger.warn('redirect: url redirects needed to', options.uri);\n options.$redirectCount += 1;\n if (options.$redirectCount > this.webex.config.maxLocusRedirects) {\n return Promise.reject(new Error('Maximum redirects exceeded'));\n }\n\n return this.webex.request(options);\n }\n /* eslint-enable no-else-return */\n\n return response;\n }\n}\n"],"mappings":"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"}
|
|
@@ -17,8 +17,8 @@ var _get2 = _interopRequireDefault(require("lodash/get"));
|
|
|
17
17
|
var _httpCore = require("@webex/http-core");
|
|
18
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); }; }
|
|
19
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; } }
|
|
20
|
-
/**
|
|
21
|
-
* @class
|
|
20
|
+
/**
|
|
21
|
+
* @class
|
|
22
22
|
*/
|
|
23
23
|
var RequestEventInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
24
24
|
(0, _inherits2.default)(RequestEventInterceptor, _Interceptor);
|
|
@@ -30,10 +30,10 @@ var RequestEventInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
30
30
|
(0, _createClass2.default)(RequestEventInterceptor, [{
|
|
31
31
|
key: "onRequest",
|
|
32
32
|
value:
|
|
33
|
-
/**
|
|
34
|
-
* @see Interceptor#onRequest
|
|
35
|
-
* @param {Object} options
|
|
36
|
-
* @returns {Object}
|
|
33
|
+
/**
|
|
34
|
+
* @see Interceptor#onRequest
|
|
35
|
+
* @param {Object} options
|
|
36
|
+
* @returns {Object}
|
|
37
37
|
*/
|
|
38
38
|
function onRequest(options) {
|
|
39
39
|
var logger = (0, _get2.default)(this, 'webex.logger', console);
|
|
@@ -45,11 +45,11 @@ var RequestEventInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
45
45
|
return _promise.default.resolve(options);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
/**
|
|
49
|
-
* @see Interceptor#onRequest
|
|
50
|
-
* @param {Object} options
|
|
51
|
-
* @param {Error} reason
|
|
52
|
-
* @returns {Object}
|
|
48
|
+
/**
|
|
49
|
+
* @see Interceptor#onRequest
|
|
50
|
+
* @param {Object} options
|
|
51
|
+
* @param {Error} reason
|
|
52
|
+
* @returns {Object}
|
|
53
53
|
*/
|
|
54
54
|
}, {
|
|
55
55
|
key: "onRequestError",
|
|
@@ -66,11 +66,11 @@ var RequestEventInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
66
66
|
return _promise.default.reject(reason);
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
/**
|
|
70
|
-
* @see Interceptor#onResponse
|
|
71
|
-
* @param {Object} options
|
|
72
|
-
* @param {HttpResponse} response
|
|
73
|
-
* @returns {Object}
|
|
69
|
+
/**
|
|
70
|
+
* @see Interceptor#onResponse
|
|
71
|
+
* @param {Object} options
|
|
72
|
+
* @param {HttpResponse} response
|
|
73
|
+
* @returns {Object}
|
|
74
74
|
*/
|
|
75
75
|
}, {
|
|
76
76
|
key: "onResponse",
|
|
@@ -84,11 +84,11 @@ var RequestEventInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
84
84
|
return _promise.default.resolve(response);
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
/**
|
|
88
|
-
* @see Interceptor#onResponseError
|
|
89
|
-
* @param {Object} options
|
|
90
|
-
* @param {Error} reason
|
|
91
|
-
* @returns {Object}
|
|
87
|
+
/**
|
|
88
|
+
* @see Interceptor#onResponseError
|
|
89
|
+
* @param {Object} options
|
|
90
|
+
* @param {Error} reason
|
|
91
|
+
* @returns {Object}
|
|
92
92
|
*/
|
|
93
93
|
}, {
|
|
94
94
|
key: "onResponseError",
|
|
@@ -105,8 +105,8 @@ var RequestEventInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
105
105
|
}], [{
|
|
106
106
|
key: "create",
|
|
107
107
|
value:
|
|
108
|
-
/**
|
|
109
|
-
* @returns {RequestEventInterceptor}
|
|
108
|
+
/**
|
|
109
|
+
* @returns {RequestEventInterceptor}
|
|
110
110
|
*/
|
|
111
111
|
function create() {
|
|
112
112
|
return new RequestEventInterceptor({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_httpCore","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","RequestEventInterceptor","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onRequest","options","logger","_get2","console","webex","trigger","error","warn","_promise","resolve","onRequestError","reason","reject","onResponse","response","onResponseError","create","Interceptor","exports"],"sources":["request-event.js"],"sourcesContent":["/*!\
|
|
1
|
+
{"version":3,"names":["_httpCore","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","RequestEventInterceptor","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onRequest","options","logger","_get2","console","webex","trigger","error","warn","_promise","resolve","onRequestError","reason","reject","onResponse","response","onResponseError","create","Interceptor","exports"],"sources":["request-event.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {get} from 'lodash';\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class RequestEventInterceptor extends Interceptor {\n /**\n * @returns {RequestEventInterceptor}\n */\n static create() {\n return new RequestEventInterceptor({webex: this});\n }\n\n /**\n * @see Interceptor#onRequest\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n const logger = get(this, 'webex.logger', console);\n\n try {\n this.webex.trigger('request:start', options);\n } catch (error) {\n logger.warn('event handler for request:start failed ', error);\n }\n\n return Promise.resolve(options);\n }\n\n /**\n * @see Interceptor#onRequest\n * @param {Object} options\n * @param {Error} reason\n * @returns {Object}\n */\n onRequestError(options, reason) {\n // We need to do the normal onRequest logging, but then log how the request\n // failed since the response logger won't be called.\n const logger = get(this, 'webex.logger', console);\n\n try {\n this.webex.trigger('request:end', options, reason);\n this.webex.trigger('request:failure', options, reason);\n } catch (error) {\n logger.warn('event handler for request:end failed ', error);\n }\n\n return Promise.reject(reason);\n }\n\n /**\n * @see Interceptor#onResponse\n * @param {Object} options\n * @param {HttpResponse} response\n * @returns {Object}\n */\n onResponse(options, response) {\n const logger = get(this, 'webex.logger', console);\n\n try {\n this.webex.trigger('request:success', response.options, response);\n } catch (error) {\n logger.warn('event handler for request:success failed ', error);\n }\n\n return Promise.resolve(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 const logger = get(this, 'webex.logger', console);\n\n try {\n this.webex.trigger('request:end', options, reason);\n this.webex.trigger('request:failure', options, reason);\n } catch (error) {\n logger.warn('event handler for request:failure failed ', error);\n }\n\n return Promise.reject(reason);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAKA,IAAAA,SAAA,GAAAC,OAAA;AAA6C,SAAAC,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAE7C;AACA;AACA;AAFA,IAGqBC,uBAAuB,0BAAAC,YAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,uBAAA,EAAAC,YAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,uBAAA;EAAA,SAAAA,wBAAA;IAAA,IAAAI,gBAAA,CAAApB,OAAA,QAAAgB,uBAAA;IAAA,OAAAG,MAAA,CAAAb,KAAA,OAAAD,SAAA;EAAA;EAAA,IAAAgB,aAAA,CAAArB,OAAA,EAAAgB,uBAAA;IAAAM,GAAA;IAAAC,KAAA;IAQ1C;AACF;AACA;AACA;AACA;IACE,SAAAC,UAAUC,OAAO,EAAE;MACjB,IAAMC,MAAM,GAAG,IAAAC,KAAA,CAAA3B,OAAA,EAAI,IAAI,EAAE,cAAc,EAAE4B,OAAO,CAAC;MAEjD,IAAI;QACF,IAAI,CAACC,KAAK,CAACC,OAAO,CAAC,eAAe,EAAEL,OAAO,CAAC;MAC9C,CAAC,CAAC,OAAOM,KAAK,EAAE;QACdL,MAAM,CAACM,IAAI,CAAC,yCAAyC,EAAED,KAAK,CAAC;MAC/D;MAEA,OAAOE,QAAA,CAAAjC,OAAA,CAAQkC,OAAO,CAACT,OAAO,CAAC;IACjC;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAH,GAAA;IAAAC,KAAA,EAMA,SAAAY,eAAeV,OAAO,EAAEW,MAAM,EAAE;MAC9B;MACA;MACA,IAAMV,MAAM,GAAG,IAAAC,KAAA,CAAA3B,OAAA,EAAI,IAAI,EAAE,cAAc,EAAE4B,OAAO,CAAC;MAEjD,IAAI;QACF,IAAI,CAACC,KAAK,CAACC,OAAO,CAAC,aAAa,EAAEL,OAAO,EAAEW,MAAM,CAAC;QAClD,IAAI,CAACP,KAAK,CAACC,OAAO,CAAC,iBAAiB,EAAEL,OAAO,EAAEW,MAAM,CAAC;MACxD,CAAC,CAAC,OAAOL,KAAK,EAAE;QACdL,MAAM,CAACM,IAAI,CAAC,uCAAuC,EAAED,KAAK,CAAC;MAC7D;MAEA,OAAOE,QAAA,CAAAjC,OAAA,CAAQqC,MAAM,CAACD,MAAM,CAAC;IAC/B;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAd,GAAA;IAAAC,KAAA,EAMA,SAAAe,WAAWb,OAAO,EAAEc,QAAQ,EAAE;MAC5B,IAAMb,MAAM,GAAG,IAAAC,KAAA,CAAA3B,OAAA,EAAI,IAAI,EAAE,cAAc,EAAE4B,OAAO,CAAC;MAEjD,IAAI;QACF,IAAI,CAACC,KAAK,CAACC,OAAO,CAAC,iBAAiB,EAAES,QAAQ,CAACd,OAAO,EAAEc,QAAQ,CAAC;MACnE,CAAC,CAAC,OAAOR,KAAK,EAAE;QACdL,MAAM,CAACM,IAAI,CAAC,2CAA2C,EAAED,KAAK,CAAC;MACjE;MAEA,OAAOE,QAAA,CAAAjC,OAAA,CAAQkC,OAAO,CAACK,QAAQ,CAAC;IAClC;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAjB,GAAA;IAAAC,KAAA,EAMA,SAAAiB,gBAAgBf,OAAO,EAAEW,MAAM,EAAE;MAC/B,IAAMV,MAAM,GAAG,IAAAC,KAAA,CAAA3B,OAAA,EAAI,IAAI,EAAE,cAAc,EAAE4B,OAAO,CAAC;MAEjD,IAAI;QACF,IAAI,CAACC,KAAK,CAACC,OAAO,CAAC,aAAa,EAAEL,OAAO,EAAEW,MAAM,CAAC;QAClD,IAAI,CAACP,KAAK,CAACC,OAAO,CAAC,iBAAiB,EAAEL,OAAO,EAAEW,MAAM,CAAC;MACxD,CAAC,CAAC,OAAOL,KAAK,EAAE;QACdL,MAAM,CAACM,IAAI,CAAC,2CAA2C,EAAED,KAAK,CAAC;MACjE;MAEA,OAAOE,QAAA,CAAAjC,OAAA,CAAQqC,MAAM,CAACD,MAAM,CAAC;IAC/B;EAAC;IAAAd,GAAA;IAAAC,KAAA;IAhFD;AACF;AACA;IACE,SAAAkB,OAAA,EAAgB;MACd,OAAO,IAAIzB,uBAAuB,CAAC;QAACa,KAAK,EAAE;MAAI,CAAC,CAAC;IACnD;EAAC;EAAA,OAAAb,uBAAA;AAAA,EANkD0B,qBAAW;AAAAC,OAAA,CAAA3C,OAAA,GAAAgB,uBAAA"}
|
|
@@ -22,8 +22,8 @@ var _util = _interopRequireDefault(require("util"));
|
|
|
22
22
|
var _httpCore = require("@webex/http-core");
|
|
23
23
|
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); }; }
|
|
24
24
|
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; } }
|
|
25
|
-
/**
|
|
26
|
-
* @class
|
|
25
|
+
/**
|
|
26
|
+
* @class
|
|
27
27
|
*/
|
|
28
28
|
var RequestLoggerInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
29
29
|
(0, _inherits2.default)(RequestLoggerInterceptor, _Interceptor);
|
|
@@ -35,10 +35,10 @@ var RequestLoggerInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
35
35
|
(0, _createClass2.default)(RequestLoggerInterceptor, [{
|
|
36
36
|
key: "onRequest",
|
|
37
37
|
value:
|
|
38
|
-
/**
|
|
39
|
-
* @see Interceptor#onRequest
|
|
40
|
-
* @param {Object} options
|
|
41
|
-
* @returns {Object}
|
|
38
|
+
/**
|
|
39
|
+
* @see Interceptor#onRequest
|
|
40
|
+
* @param {Object} options
|
|
41
|
+
* @returns {Object}
|
|
42
42
|
*/
|
|
43
43
|
function onRequest(options) {
|
|
44
44
|
var logger = (0, _get2.default)(this, 'webex.logger', console);
|
|
@@ -71,11 +71,11 @@ var RequestLoggerInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
71
71
|
return _promise.default.resolve(options);
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
/**
|
|
75
|
-
* @see Interceptor#onRequest
|
|
76
|
-
* @param {Object} options
|
|
77
|
-
* @param {Error} reason
|
|
78
|
-
* @returns {Object}
|
|
74
|
+
/**
|
|
75
|
+
* @see Interceptor#onRequest
|
|
76
|
+
* @param {Object} options
|
|
77
|
+
* @param {Error} reason
|
|
78
|
+
* @returns {Object}
|
|
79
79
|
*/
|
|
80
80
|
}, {
|
|
81
81
|
key: "onRequestError",
|
|
@@ -91,8 +91,8 @@ var RequestLoggerInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
91
91
|
}], [{
|
|
92
92
|
key: "create",
|
|
93
93
|
value:
|
|
94
|
-
/**
|
|
95
|
-
* @returns {RequestLoggerInterceptor}
|
|
94
|
+
/**
|
|
95
|
+
* @returns {RequestLoggerInterceptor}
|
|
96
96
|
*/
|
|
97
97
|
function create() {
|
|
98
98
|
return new RequestLoggerInterceptor({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_util","_interopRequireDefault","require","_httpCore","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","RequestLoggerInterceptor","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onRequest","options","logger","_get2","console","info","method","uri","_has2","now","Date","process","env","ENABLE_VERBOSE_NETWORK_LOGGING","getTime","toISOString","body","length","_isArray2","_isString2","util","inspect","_omit2","depth","warn","_promise","resolve","onRequestError","reason","error","stack","reject","create","webex","Interceptor","exports"],"sources":["request-logger.js"],"sourcesContent":["/*!\
|
|
1
|
+
{"version":3,"names":["_util","_interopRequireDefault","require","_httpCore","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","RequestLoggerInterceptor","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onRequest","options","logger","_get2","console","info","method","uri","_has2","now","Date","process","env","ENABLE_VERBOSE_NETWORK_LOGGING","getTime","toISOString","body","length","_isArray2","_isString2","util","inspect","_omit2","depth","warn","_promise","resolve","onRequestError","reason","error","stack","reject","create","webex","Interceptor","exports"],"sources":["request-logger.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport util from 'util';\n\nimport {get, has, isArray, isString, omit} from 'lodash';\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class RequestLoggerInterceptor extends Interceptor {\n /**\n * @returns {RequestLoggerInterceptor}\n */\n static create() {\n return new RequestLoggerInterceptor({webex: this});\n }\n\n /**\n * @see Interceptor#onRequest\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n const logger = get(this, 'webex.logger', console);\n\n logger.info('/**********************************************************************\\\\ ');\n logger.info('Request:', options.method || 'GET', options.uri);\n logger.info('WEBEX_TRACKINGID: ', get(options, 'headers.trackingid'));\n /* istanbul ignore next */\n if (has(options, 'headers.x-trans-id')) {\n logger.info('X-Trans-ID: ', get(options, 'headers.x-trans-id'));\n }\n const now = new Date();\n\n if (process.env.ENABLE_VERBOSE_NETWORK_LOGGING) {\n logger.info('timestamp (start): ', now.getTime(), now.toISOString());\n try {\n // Determine if body is a buffer without relying on Buffer to avoid\n // node/browser conflicts.\n if (\n options.body &&\n options.body.length &&\n !isArray(options.body) &&\n !isString(options.body)\n ) {\n logger.info('Request Options:', util.inspect(omit(options, 'body'), {depth: null}));\n } else {\n logger.info('Request Options:', util.inspect(options, {depth: null}));\n }\n } catch (e) {\n logger.warn('Could not stringify request options:', e);\n }\n }\n\n return Promise.resolve(options);\n }\n\n /**\n * @see Interceptor#onRequest\n * @param {Object} options\n * @param {Error} reason\n * @returns {Object}\n */\n onRequestError(options, reason) {\n // We need to do the normal onRequest logging, but then log how the request\n // failed since the response logger won't be called.\n this.onRequest(options);\n const logger = get(this, 'webex.logger', console);\n\n logger.error('Request Failed: ', reason.stack);\n logger.info('\\\\**********************************************************************/');\n\n return Promise.reject(reason);\n }\n}\n"],"mappings":"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"}
|
|
@@ -17,8 +17,8 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
|
|
|
17
17
|
var _httpCore = require("@webex/http-core");
|
|
18
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); }; }
|
|
19
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; } }
|
|
20
|
-
/**
|
|
21
|
-
* @class
|
|
20
|
+
/**
|
|
21
|
+
* @class
|
|
22
22
|
*/
|
|
23
23
|
var RequestTimingInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
24
24
|
(0, _inherits2.default)(RequestTimingInterceptor, _Interceptor);
|
|
@@ -30,10 +30,10 @@ var RequestTimingInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
30
30
|
(0, _createClass2.default)(RequestTimingInterceptor, [{
|
|
31
31
|
key: "onRequest",
|
|
32
32
|
value:
|
|
33
|
-
/**
|
|
34
|
-
* @see Interceptor#onRequest
|
|
35
|
-
* @param {Object} options
|
|
36
|
-
* @returns {Object}
|
|
33
|
+
/**
|
|
34
|
+
* @see Interceptor#onRequest
|
|
35
|
+
* @param {Object} options
|
|
36
|
+
* @returns {Object}
|
|
37
37
|
*/
|
|
38
38
|
function onRequest(options) {
|
|
39
39
|
options.$timings = options.$timings || {};
|
|
@@ -41,10 +41,10 @@ var RequestTimingInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
41
41
|
return options;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
/**
|
|
45
|
-
* @see Interceptor#onRequestError
|
|
46
|
-
* @param {Object} options
|
|
47
|
-
* @returns {Object}
|
|
44
|
+
/**
|
|
45
|
+
* @see Interceptor#onRequestError
|
|
46
|
+
* @param {Object} options
|
|
47
|
+
* @returns {Object}
|
|
48
48
|
*/
|
|
49
49
|
}, {
|
|
50
50
|
key: "onRequestError",
|
|
@@ -53,11 +53,11 @@ var RequestTimingInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
53
53
|
return _promise.default.reject(options);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
/**
|
|
57
|
-
* @see Interceptor#onResponse
|
|
58
|
-
* @param {Object} options
|
|
59
|
-
* @param {HttpResponse} response
|
|
60
|
-
* @returns {Object}
|
|
56
|
+
/**
|
|
57
|
+
* @see Interceptor#onResponse
|
|
58
|
+
* @param {Object} options
|
|
59
|
+
* @param {HttpResponse} response
|
|
60
|
+
* @returns {Object}
|
|
61
61
|
*/
|
|
62
62
|
}, {
|
|
63
63
|
key: "onResponse",
|
|
@@ -66,11 +66,11 @@ var RequestTimingInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
66
66
|
return _promise.default.resolve(response);
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
/**
|
|
70
|
-
* @see Interceptor#onResponseError
|
|
71
|
-
* @param {Object} options
|
|
72
|
-
* @param {Error} reason
|
|
73
|
-
* @returns {Object}
|
|
69
|
+
/**
|
|
70
|
+
* @see Interceptor#onResponseError
|
|
71
|
+
* @param {Object} options
|
|
72
|
+
* @param {Error} reason
|
|
73
|
+
* @returns {Object}
|
|
74
74
|
*/
|
|
75
75
|
}, {
|
|
76
76
|
key: "onResponseError",
|
|
@@ -81,9 +81,9 @@ var RequestTimingInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
81
81
|
}], [{
|
|
82
82
|
key: "create",
|
|
83
83
|
value:
|
|
84
|
-
/**
|
|
85
|
-
* @param {Object} options
|
|
86
|
-
* @returns {RequestTimingInterceptor}
|
|
84
|
+
/**
|
|
85
|
+
* @param {Object} options
|
|
86
|
+
* @returns {RequestTimingInterceptor}
|
|
87
87
|
*/
|
|
88
88
|
function create(options) {
|
|
89
89
|
return new RequestTimingInterceptor(this, options);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_httpCore","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","RequestTimingInterceptor","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onRequest","options","$timings","requestStart","_now","onRequestError","requestEnd","requestFail","_promise","reject","onResponse","response","resolve","onResponseError","reason","create","Interceptor","exports"],"sources":["request-timing.js"],"sourcesContent":["/*!\
|
|
1
|
+
{"version":3,"names":["_httpCore","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","RequestTimingInterceptor","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onRequest","options","$timings","requestStart","_now","onRequestError","requestEnd","requestFail","_promise","reject","onResponse","response","resolve","onResponseError","reason","create","Interceptor","exports"],"sources":["request-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 RequestTimingInterceptor extends Interceptor {\n /**\n * @param {Object} options\n * @returns {RequestTimingInterceptor}\n */\n static create(options) {\n return new RequestTimingInterceptor(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.requestStart = Date.now();\n\n return options;\n }\n\n /**\n * @see Interceptor#onRequestError\n * @param {Object} options\n * @returns {Object}\n */\n onRequestError(options) {\n options.$timings.requestEnd = options.$timings.requestFail = Date.now();\n\n return Promise.reject(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.requestEnd = Date.now();\n\n return Promise.resolve(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.requestEnd = options.$timings.requestFail = Date.now();\n\n return Promise.reject(reason);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAIA,IAAAA,SAAA,GAAAC,OAAA;AAA6C,SAAAC,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA;AAE7C;AACA;AACA;AAFA,IAGqBC,wBAAwB,0BAAAC,YAAA;EAAA,IAAAC,UAAA,CAAAlB,OAAA,EAAAgB,wBAAA,EAAAC,YAAA;EAAA,IAAAE,MAAA,GAAA1B,YAAA,CAAAuB,wBAAA;EAAA,SAAAA,yBAAA;IAAA,IAAAI,gBAAA,CAAApB,OAAA,QAAAgB,wBAAA;IAAA,OAAAG,MAAA,CAAAb,KAAA,OAAAD,SAAA;EAAA;EAAA,IAAAgB,aAAA,CAAArB,OAAA,EAAAgB,wBAAA;IAAAM,GAAA;IAAAC,KAAA;IAS3C;AACF;AACA;AACA;AACA;IACE,SAAAC,UAAUC,OAAO,EAAE;MACjBA,OAAO,CAACC,QAAQ,GAAGD,OAAO,CAACC,QAAQ,IAAI,CAAC,CAAC;MACzCD,OAAO,CAACC,QAAQ,CAACC,YAAY,GAAG,IAAAC,IAAA,CAAA5B,OAAA,GAAU;MAE1C,OAAOyB,OAAO;IAChB;;IAEA;AACF;AACA;AACA;AACA;EAJE;IAAAH,GAAA;IAAAC,KAAA,EAKA,SAAAM,eAAeJ,OAAO,EAAE;MACtBA,OAAO,CAACC,QAAQ,CAACI,UAAU,GAAGL,OAAO,CAACC,QAAQ,CAACK,WAAW,GAAG,IAAAH,IAAA,CAAA5B,OAAA,GAAU;MAEvE,OAAOgC,QAAA,CAAAhC,OAAA,CAAQiC,MAAM,CAACR,OAAO,CAAC;IAChC;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAH,GAAA;IAAAC,KAAA,EAMA,SAAAW,WAAWT,OAAO,EAAEU,QAAQ,EAAE;MAC5BV,OAAO,CAACC,QAAQ,CAACI,UAAU,GAAG,IAAAF,IAAA,CAAA5B,OAAA,GAAU;MAExC,OAAOgC,QAAA,CAAAhC,OAAA,CAAQoC,OAAO,CAACD,QAAQ,CAAC;IAClC;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAb,GAAA;IAAAC,KAAA,EAMA,SAAAc,gBAAgBZ,OAAO,EAAEa,MAAM,EAAE;MAC/Bb,OAAO,CAACC,QAAQ,CAACI,UAAU,GAAGL,OAAO,CAACC,QAAQ,CAACK,WAAW,GAAG,IAAAH,IAAA,CAAA5B,OAAA,GAAU;MAEvE,OAAOgC,QAAA,CAAAhC,OAAA,CAAQiC,MAAM,CAACK,MAAM,CAAC;IAC/B;EAAC;IAAAhB,GAAA;IAAAC,KAAA;IArDD;AACF;AACA;AACA;IACE,SAAAgB,OAAcd,OAAO,EAAE;MACrB,OAAO,IAAIT,wBAAwB,CAAC,IAAI,EAAES,OAAO,CAAC;IACpD;EAAC;EAAA,OAAAT,wBAAA;AAAA,EAPmDwB,qBAAW;AAAAC,OAAA,CAAAzC,OAAA,GAAAgB,wBAAA"}
|