@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
|
@@ -28,8 +28,8 @@ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol
|
|
|
28
28
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
29
29
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
30
30
|
/* eslint-disable no-underscore-dangle */
|
|
31
|
-
/**
|
|
32
|
-
* @class
|
|
31
|
+
/**
|
|
32
|
+
* @class
|
|
33
33
|
*/
|
|
34
34
|
var ServiceCatalog = _ampersandState.default.extend({
|
|
35
35
|
namespace: 'ServiceCatalog',
|
|
@@ -72,13 +72,13 @@ var ServiceCatalog = _ampersandState.default.extend({
|
|
|
72
72
|
return [];
|
|
73
73
|
}]
|
|
74
74
|
},
|
|
75
|
-
/**
|
|
76
|
-
* @private
|
|
77
|
-
* Search the service url array to locate a `ServiceUrl`
|
|
78
|
-
* class object based on its name.
|
|
79
|
-
* @param {string} name
|
|
80
|
-
* @param {string} [serviceGroup]
|
|
81
|
-
* @returns {ServiceUrl}
|
|
75
|
+
/**
|
|
76
|
+
* @private
|
|
77
|
+
* Search the service url array to locate a `ServiceUrl`
|
|
78
|
+
* class object based on its name.
|
|
79
|
+
* @param {string} name
|
|
80
|
+
* @param {string} [serviceGroup]
|
|
81
|
+
* @returns {ServiceUrl}
|
|
82
82
|
*/
|
|
83
83
|
_getUrl: function _getUrl(name, serviceGroup) {
|
|
84
84
|
var serviceUrls = typeof serviceGroup === 'string' ? this.serviceGroups[serviceGroup] || [] : [].concat((0, _toConsumableArray2.default)(this.serviceGroups.override), (0, _toConsumableArray2.default)(this.serviceGroups.postauth), (0, _toConsumableArray2.default)(this.serviceGroups.signin), (0, _toConsumableArray2.default)(this.serviceGroups.preauth), (0, _toConsumableArray2.default)(this.serviceGroups.discovery));
|
|
@@ -86,21 +86,21 @@ var ServiceCatalog = _ampersandState.default.extend({
|
|
|
86
86
|
return serviceUrl.name === name;
|
|
87
87
|
});
|
|
88
88
|
},
|
|
89
|
-
/**
|
|
90
|
-
* @private
|
|
91
|
-
* Generate an array of `ServiceUrl`s that is organized from highest auth
|
|
92
|
-
* level to lowest auth level.
|
|
93
|
-
* @returns {Array<ServiceUrl>} - array of `ServiceUrl`s
|
|
89
|
+
/**
|
|
90
|
+
* @private
|
|
91
|
+
* Generate an array of `ServiceUrl`s that is organized from highest auth
|
|
92
|
+
* level to lowest auth level.
|
|
93
|
+
* @returns {Array<ServiceUrl>} - array of `ServiceUrl`s
|
|
94
94
|
*/
|
|
95
95
|
_listServiceUrls: function _listServiceUrls() {
|
|
96
96
|
return [].concat((0, _toConsumableArray2.default)(this.serviceGroups.override), (0, _toConsumableArray2.default)(this.serviceGroups.postauth), (0, _toConsumableArray2.default)(this.serviceGroups.signin), (0, _toConsumableArray2.default)(this.serviceGroups.preauth), (0, _toConsumableArray2.default)(this.serviceGroups.discovery));
|
|
97
97
|
},
|
|
98
|
-
/**
|
|
99
|
-
* @private
|
|
100
|
-
* Safely load one or more `ServiceUrl`s into this `Services` instance.
|
|
101
|
-
* @param {string} serviceGroup
|
|
102
|
-
* @param {Array<ServiceUrl>} services
|
|
103
|
-
* @returns {Services}
|
|
98
|
+
/**
|
|
99
|
+
* @private
|
|
100
|
+
* Safely load one or more `ServiceUrl`s into this `Services` instance.
|
|
101
|
+
* @param {string} serviceGroup
|
|
102
|
+
* @param {Array<ServiceUrl>} services
|
|
103
|
+
* @returns {Services}
|
|
104
104
|
*/
|
|
105
105
|
_loadServiceUrls: function _loadServiceUrls(serviceGroup, services) {
|
|
106
106
|
var _this = this;
|
|
@@ -114,12 +114,12 @@ var ServiceCatalog = _ampersandState.default.extend({
|
|
|
114
114
|
});
|
|
115
115
|
return this;
|
|
116
116
|
},
|
|
117
|
-
/**
|
|
118
|
-
* @private
|
|
119
|
-
* Safely unload one or more `ServiceUrl`s into this `Services` instance
|
|
120
|
-
* @param {string} serviceGroup
|
|
121
|
-
* @param {Array<ServiceUrl>} services
|
|
122
|
-
* @returns {Services}
|
|
117
|
+
/**
|
|
118
|
+
* @private
|
|
119
|
+
* Safely unload one or more `ServiceUrl`s into this `Services` instance
|
|
120
|
+
* @param {string} serviceGroup
|
|
121
|
+
* @param {Array<ServiceUrl>} services
|
|
122
|
+
* @returns {Services}
|
|
123
123
|
*/
|
|
124
124
|
_unloadServiceUrls: function _unloadServiceUrls(serviceGroup, services) {
|
|
125
125
|
var _this2 = this;
|
|
@@ -133,10 +133,10 @@ var ServiceCatalog = _ampersandState.default.extend({
|
|
|
133
133
|
});
|
|
134
134
|
return this;
|
|
135
135
|
},
|
|
136
|
-
/**
|
|
137
|
-
* Clear all collected catalog data and reset catalog status.
|
|
138
|
-
*
|
|
139
|
-
* @returns {void}
|
|
136
|
+
/**
|
|
137
|
+
* Clear all collected catalog data and reset catalog status.
|
|
138
|
+
*
|
|
139
|
+
* @returns {void}
|
|
140
140
|
*/
|
|
141
141
|
clean: function clean() {
|
|
142
142
|
this.serviceGroups.preauth.length = 0;
|
|
@@ -152,11 +152,11 @@ var ServiceCatalog = _ampersandState.default.extend({
|
|
|
152
152
|
ready: false
|
|
153
153
|
};
|
|
154
154
|
},
|
|
155
|
-
/**
|
|
156
|
-
* Search over all service groups to find a cluster id based
|
|
157
|
-
* on a given url.
|
|
158
|
-
* @param {string} url - Must be parsable by `Url`
|
|
159
|
-
* @returns {string} - ClusterId of a given url
|
|
155
|
+
/**
|
|
156
|
+
* Search over all service groups to find a cluster id based
|
|
157
|
+
* on a given url.
|
|
158
|
+
* @param {string} url - Must be parsable by `Url`
|
|
159
|
+
* @returns {string} - ClusterId of a given url
|
|
160
160
|
*/
|
|
161
161
|
findClusterId: function findClusterId(url) {
|
|
162
162
|
var incomingUrlObj = _url.default.parse(url);
|
|
@@ -212,19 +212,19 @@ var ServiceCatalog = _ampersandState.default.extend({
|
|
|
212
212
|
}
|
|
213
213
|
return undefined;
|
|
214
214
|
},
|
|
215
|
-
/**
|
|
216
|
-
* Search over all service groups and return a service value from a provided
|
|
217
|
-
* clusterId. Currently, this method will return either a service name, or a
|
|
218
|
-
* service url depending on the `value` parameter. If the `value` parameter
|
|
219
|
-
* is set to `name`, it will return a service name to be utilized within the
|
|
220
|
-
* Services plugin methods.
|
|
221
|
-
* @param {object} params
|
|
222
|
-
* @param {string} params.clusterId - clusterId of found service
|
|
223
|
-
* @param {boolean} [params.priorityHost = true] - returns priority host url if true
|
|
224
|
-
* @param {string} [params.serviceGroup] - specify service group
|
|
225
|
-
* @returns {object} service
|
|
226
|
-
* @returns {string} service.name
|
|
227
|
-
* @returns {string} service.url
|
|
215
|
+
/**
|
|
216
|
+
* Search over all service groups and return a service value from a provided
|
|
217
|
+
* clusterId. Currently, this method will return either a service name, or a
|
|
218
|
+
* service url depending on the `value` parameter. If the `value` parameter
|
|
219
|
+
* is set to `name`, it will return a service name to be utilized within the
|
|
220
|
+
* Services plugin methods.
|
|
221
|
+
* @param {object} params
|
|
222
|
+
* @param {string} params.clusterId - clusterId of found service
|
|
223
|
+
* @param {boolean} [params.priorityHost = true] - returns priority host url if true
|
|
224
|
+
* @param {string} [params.serviceGroup] - specify service group
|
|
225
|
+
* @returns {object} service
|
|
226
|
+
* @returns {string} service.name
|
|
227
|
+
* @returns {string} service.url
|
|
228
228
|
*/
|
|
229
229
|
findServiceFromClusterId: function findServiceFromClusterId() {
|
|
230
230
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
@@ -246,10 +246,10 @@ var ServiceCatalog = _ampersandState.default.extend({
|
|
|
246
246
|
}
|
|
247
247
|
return undefined;
|
|
248
248
|
},
|
|
249
|
-
/**
|
|
250
|
-
* Find a service based on the provided url.
|
|
251
|
-
* @param {string} url - Must be parsable by `Url`
|
|
252
|
-
* @returns {serviceUrl} - ServiceUrl assocated with provided url
|
|
249
|
+
/**
|
|
250
|
+
* Find a service based on the provided url.
|
|
251
|
+
* @param {string} url - Must be parsable by `Url`
|
|
252
|
+
* @returns {serviceUrl} - ServiceUrl assocated with provided url
|
|
253
253
|
*/
|
|
254
254
|
findServiceUrlFromUrl: function findServiceUrlFromUrl(url) {
|
|
255
255
|
var incomingUrlObj = _url.default.parse(url);
|
|
@@ -266,11 +266,11 @@ var ServiceCatalog = _ampersandState.default.extend({
|
|
|
266
266
|
return false;
|
|
267
267
|
});
|
|
268
268
|
},
|
|
269
|
-
/**
|
|
270
|
-
* Finds an allowed domain that matches a specific url.
|
|
271
|
-
*
|
|
272
|
-
* @param {string} url - The url to match the allowed domains against.
|
|
273
|
-
* @returns {string} - The matching allowed domain.
|
|
269
|
+
/**
|
|
270
|
+
* Finds an allowed domain that matches a specific url.
|
|
271
|
+
*
|
|
272
|
+
* @param {string} url - The url to match the allowed domains against.
|
|
273
|
+
* @returns {string} - The matching allowed domain.
|
|
274
274
|
*/
|
|
275
275
|
findAllowedDomain: function findAllowedDomain(url) {
|
|
276
276
|
var urlObj = _url.default.parse(url);
|
|
@@ -281,31 +281,31 @@ var ServiceCatalog = _ampersandState.default.extend({
|
|
|
281
281
|
return urlObj.host.includes(allowedDomain);
|
|
282
282
|
});
|
|
283
283
|
},
|
|
284
|
-
/**
|
|
285
|
-
* Get a service url from the current services list by name.
|
|
286
|
-
* @param {string} name
|
|
287
|
-
* @param {boolean} priorityHost
|
|
288
|
-
* @param {string} serviceGroup
|
|
289
|
-
* @returns {string}
|
|
284
|
+
/**
|
|
285
|
+
* Get a service url from the current services list by name.
|
|
286
|
+
* @param {string} name
|
|
287
|
+
* @param {boolean} priorityHost
|
|
288
|
+
* @param {string} serviceGroup
|
|
289
|
+
* @returns {string}
|
|
290
290
|
*/
|
|
291
291
|
get: function get(name, priorityHost, serviceGroup) {
|
|
292
292
|
var serviceUrl = this._getUrl(name, serviceGroup);
|
|
293
293
|
return serviceUrl ? serviceUrl.get(priorityHost) : undefined;
|
|
294
294
|
},
|
|
295
|
-
/**
|
|
296
|
-
* Get the current allowed domains list.
|
|
297
|
-
*
|
|
298
|
-
* @returns {Array<string>} - the current allowed domains list.
|
|
295
|
+
/**
|
|
296
|
+
* Get the current allowed domains list.
|
|
297
|
+
*
|
|
298
|
+
* @returns {Array<string>} - the current allowed domains list.
|
|
299
299
|
*/
|
|
300
300
|
getAllowedDomains: function getAllowedDomains() {
|
|
301
301
|
return (0, _toConsumableArray2.default)(this.allowedDomains);
|
|
302
302
|
},
|
|
303
|
-
/**
|
|
304
|
-
* Creates an object where the keys are the service names
|
|
305
|
-
* and the values are the service urls.
|
|
306
|
-
* @param {boolean} priorityHost - use the highest priority if set to `true`
|
|
307
|
-
* @param {string} [serviceGroup]
|
|
308
|
-
* @returns {Record<string, string>}
|
|
303
|
+
/**
|
|
304
|
+
* Creates an object where the keys are the service names
|
|
305
|
+
* and the values are the service urls.
|
|
306
|
+
* @param {boolean} priorityHost - use the highest priority if set to `true`
|
|
307
|
+
* @param {string} [serviceGroup]
|
|
308
|
+
* @returns {Record<string, string>}
|
|
309
309
|
*/
|
|
310
310
|
list: function list(priorityHost, serviceGroup) {
|
|
311
311
|
var output = {};
|
|
@@ -317,18 +317,18 @@ var ServiceCatalog = _ampersandState.default.extend({
|
|
|
317
317
|
}
|
|
318
318
|
return output;
|
|
319
319
|
},
|
|
320
|
-
/**
|
|
321
|
-
* Mark a priority host service url as failed.
|
|
322
|
-
* This will mark the host associated with the
|
|
323
|
-
* `ServiceUrl` to be removed from the its
|
|
324
|
-
* respective host array, and then return the next
|
|
325
|
-
* viable host from the `ServiceUrls` host array,
|
|
326
|
-
* or the `ServiceUrls` default url if no other priority
|
|
327
|
-
* hosts are available, or if `noPriorityHosts` is set to
|
|
328
|
-
* `true`.
|
|
329
|
-
* @param {string} url
|
|
330
|
-
* @param {boolean} noPriorityHosts
|
|
331
|
-
* @returns {string}
|
|
320
|
+
/**
|
|
321
|
+
* Mark a priority host service url as failed.
|
|
322
|
+
* This will mark the host associated with the
|
|
323
|
+
* `ServiceUrl` to be removed from the its
|
|
324
|
+
* respective host array, and then return the next
|
|
325
|
+
* viable host from the `ServiceUrls` host array,
|
|
326
|
+
* or the `ServiceUrls` default url if no other priority
|
|
327
|
+
* hosts are available, or if `noPriorityHosts` is set to
|
|
328
|
+
* `true`.
|
|
329
|
+
* @param {string} url
|
|
330
|
+
* @param {boolean} noPriorityHosts
|
|
331
|
+
* @returns {string}
|
|
332
332
|
*/
|
|
333
333
|
markFailedUrl: function markFailedUrl(url, noPriorityHosts) {
|
|
334
334
|
var _this3 = this;
|
|
@@ -340,23 +340,23 @@ var ServiceCatalog = _ampersandState.default.extend({
|
|
|
340
340
|
}
|
|
341
341
|
return noPriorityHosts ? serviceUrl.get(false) : serviceUrl.get(true);
|
|
342
342
|
},
|
|
343
|
-
/**
|
|
344
|
-
* Set the allowed domains for the catalog.
|
|
345
|
-
*
|
|
346
|
-
* @param {Array<string>} allowedDomains - allowed domains to be assigned.
|
|
347
|
-
* @returns {void}
|
|
343
|
+
/**
|
|
344
|
+
* Set the allowed domains for the catalog.
|
|
345
|
+
*
|
|
346
|
+
* @param {Array<string>} allowedDomains - allowed domains to be assigned.
|
|
347
|
+
* @returns {void}
|
|
348
348
|
*/
|
|
349
349
|
setAllowedDomains: function setAllowedDomains(allowedDomains) {
|
|
350
350
|
this.allowedDomains = (0, _toConsumableArray2.default)(allowedDomains);
|
|
351
351
|
},
|
|
352
|
-
/**
|
|
353
|
-
* Update the current list of `ServiceUrl`s against a provided
|
|
354
|
-
* service hostmap.
|
|
355
|
-
* @emits ServiceCatalog#preauthorized
|
|
356
|
-
* @emits ServiceCatalog#postauthorized
|
|
357
|
-
* @param {string} serviceGroup
|
|
358
|
-
* @param {object} serviceHostmap
|
|
359
|
-
* @returns {Services}
|
|
352
|
+
/**
|
|
353
|
+
* Update the current list of `ServiceUrl`s against a provided
|
|
354
|
+
* service hostmap.
|
|
355
|
+
* @emits ServiceCatalog#preauthorized
|
|
356
|
+
* @emits ServiceCatalog#postauthorized
|
|
357
|
+
* @param {string} serviceGroup
|
|
358
|
+
* @param {object} serviceHostmap
|
|
359
|
+
* @returns {Services}
|
|
360
360
|
*/
|
|
361
361
|
updateServiceUrls: function updateServiceUrls(serviceGroup, serviceHostmap) {
|
|
362
362
|
var _this4 = this;
|
|
@@ -380,12 +380,12 @@ var ServiceCatalog = _ampersandState.default.extend({
|
|
|
380
380
|
this.trigger(serviceGroup);
|
|
381
381
|
return this;
|
|
382
382
|
},
|
|
383
|
-
/**
|
|
384
|
-
* Wait until the service catalog is available,
|
|
385
|
-
* or reject after a timeout of 60 seconds.
|
|
386
|
-
* @param {string} serviceGroup
|
|
387
|
-
* @param {number} [timeout] - in seconds
|
|
388
|
-
* @returns {Promise<void>}
|
|
383
|
+
/**
|
|
384
|
+
* Wait until the service catalog is available,
|
|
385
|
+
* or reject after a timeout of 60 seconds.
|
|
386
|
+
* @param {string} serviceGroup
|
|
387
|
+
* @param {number} [timeout] - in seconds
|
|
388
|
+
* @returns {Promise<void>}
|
|
389
389
|
*/
|
|
390
390
|
waitForCatalog: function waitForCatalog(serviceGroup, timeout) {
|
|
391
391
|
var _this5 = this;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_url","_interopRequireDefault","require","_ampersandState","_serviceUrl","ownKeys","object","enumerableOnly","keys","_Object$keys3","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","ServiceCatalog","AmpState","extend","namespace","props","serviceGroups","discovery","override","preauth","postauth","signin","status","ready","collecting","isReady","allowedDomains","_getUrl","serviceGroup","serviceUrls","concat","_toConsumableArray2","find","serviceUrl","_listServiceUrls","_loadServiceUrls","services","_this","existingService","service","_unloadServiceUrls","_this2","splice","indexOf","clean","findClusterId","url","incomingUrlObj","Url","parse","serviceUrlObj","_i","_Object$keys","_keys","_iterator","_step","defaultUrl","_iterator2","hosts","_step2","host","hostname","id","_iterator3","_step3","homeCluster","undefined","findServiceFromClusterId","_ref","clusterId","_ref$priorityHost","priorityHost","identifiedServiceUrl","get","findServiceUrlFromUrl","findAllowedDomain","urlObj","allowedDomain","includes","getAllowedDomains","list","output","markFailedUrl","noPriorityHosts","_this3","failHost","setAllowedDomains","updateServiceUrls","serviceHostmap","_this4","currentServiceUrls","unusedUrls","every","item","serviceObj","ServiceUrl","trigger","waitForCatalog","timeout","_this5","_promise","resolve","reject","timeoutTimer","setTimeout","Error","once","clearTimeout","_default","exports"],"sources":["service-catalog.js"],"sourcesContent":["import Url from 'url';\r\n\r\nimport AmpState from 'ampersand-state';\r\n\r\nimport ServiceUrl from './service-url';\r\n\r\n/* eslint-disable no-underscore-dangle */\r\n/**\r\n * @class\r\n */\r\nconst ServiceCatalog = AmpState.extend({\r\n namespace: 'ServiceCatalog',\r\n\r\n props: {\r\n serviceGroups: [\r\n 'object',\r\n true,\r\n () => ({\r\n discovery: [],\r\n override: [],\r\n preauth: [],\r\n postauth: [],\r\n signin: [],\r\n }),\r\n ],\r\n status: [\r\n 'object',\r\n true,\r\n () => ({\r\n discovery: {\r\n ready: false,\r\n collecting: false,\r\n },\r\n override: {\r\n ready: false,\r\n collecting: false,\r\n },\r\n preauth: {\r\n ready: false,\r\n collecting: false,\r\n },\r\n postauth: {\r\n ready: false,\r\n collecting: false,\r\n },\r\n signin: {\r\n ready: false,\r\n collecting: false,\r\n },\r\n }),\r\n ],\r\n isReady: ['boolean', false, false],\r\n allowedDomains: ['array', false, () => []],\r\n },\r\n\r\n /**\r\n * @private\r\n * Search the service url array to locate a `ServiceUrl`\r\n * class object based on its name.\r\n * @param {string} name\r\n * @param {string} [serviceGroup]\r\n * @returns {ServiceUrl}\r\n */\r\n _getUrl(name, serviceGroup) {\r\n const serviceUrls =\r\n typeof serviceGroup === 'string'\r\n ? this.serviceGroups[serviceGroup] || []\r\n : [\r\n ...this.serviceGroups.override,\r\n ...this.serviceGroups.postauth,\r\n ...this.serviceGroups.signin,\r\n ...this.serviceGroups.preauth,\r\n ...this.serviceGroups.discovery,\r\n ];\r\n\r\n return serviceUrls.find((serviceUrl) => serviceUrl.name === name);\r\n },\r\n\r\n /**\r\n * @private\r\n * Generate an array of `ServiceUrl`s that is organized from highest auth\r\n * level to lowest auth level.\r\n * @returns {Array<ServiceUrl>} - array of `ServiceUrl`s\r\n */\r\n _listServiceUrls() {\r\n return [\r\n ...this.serviceGroups.override,\r\n ...this.serviceGroups.postauth,\r\n ...this.serviceGroups.signin,\r\n ...this.serviceGroups.preauth,\r\n ...this.serviceGroups.discovery,\r\n ];\r\n },\r\n\r\n /**\r\n * @private\r\n * Safely load one or more `ServiceUrl`s into this `Services` instance.\r\n * @param {string} serviceGroup\r\n * @param {Array<ServiceUrl>} services\r\n * @returns {Services}\r\n */\r\n _loadServiceUrls(serviceGroup, services) {\r\n // declare namespaces outside of loop\r\n let existingService;\r\n\r\n services.forEach((service) => {\r\n existingService = this._getUrl(service.name, serviceGroup);\r\n\r\n if (!existingService) {\r\n this.serviceGroups[serviceGroup].push(service);\r\n }\r\n });\r\n\r\n return this;\r\n },\r\n\r\n /**\r\n * @private\r\n * Safely unload one or more `ServiceUrl`s into this `Services` instance\r\n * @param {string} serviceGroup\r\n * @param {Array<ServiceUrl>} services\r\n * @returns {Services}\r\n */\r\n _unloadServiceUrls(serviceGroup, services) {\r\n // declare namespaces outside of loop\r\n let existingService;\r\n\r\n services.forEach((service) => {\r\n existingService = this._getUrl(service.name, serviceGroup);\r\n\r\n if (existingService) {\r\n this.serviceGroups[serviceGroup].splice(\r\n this.serviceGroups[serviceGroup].indexOf(existingService),\r\n 1\r\n );\r\n }\r\n });\r\n\r\n return this;\r\n },\r\n\r\n /**\r\n * Clear all collected catalog data and reset catalog status.\r\n *\r\n * @returns {void}\r\n */\r\n clean() {\r\n this.serviceGroups.preauth.length = 0;\r\n this.serviceGroups.signin.length = 0;\r\n this.serviceGroups.postauth.length = 0;\r\n this.status.preauth = {ready: false};\r\n this.status.signin = {ready: false};\r\n this.status.postauth = {ready: false};\r\n },\r\n\r\n /**\r\n * Search over all service groups to find a cluster id based\r\n * on a given url.\r\n * @param {string} url - Must be parsable by `Url`\r\n * @returns {string} - ClusterId of a given url\r\n */\r\n findClusterId(url) {\r\n const incomingUrlObj = Url.parse(url);\r\n let serviceUrlObj;\r\n\r\n for (const key of Object.keys(this.serviceGroups)) {\r\n for (const service of this.serviceGroups[key]) {\r\n serviceUrlObj = Url.parse(service.defaultUrl);\r\n\r\n for (const host of service.hosts) {\r\n if (incomingUrlObj.hostname === host.host && host.id) {\r\n return host.id;\r\n }\r\n }\r\n\r\n if (serviceUrlObj.hostname === incomingUrlObj.hostname && service.hosts.length > 0) {\r\n // no exact match, so try to grab the first home cluster\r\n for (const host of service.hosts) {\r\n if (host.homeCluster) {\r\n return host.id;\r\n }\r\n }\r\n\r\n // no match found still, so return the first entry\r\n return service.hosts[0].id;\r\n }\r\n }\r\n }\r\n\r\n return undefined;\r\n },\r\n\r\n /**\r\n * Search over all service groups and return a service value from a provided\r\n * clusterId. Currently, this method will return either a service name, or a\r\n * service url depending on the `value` parameter. If the `value` parameter\r\n * is set to `name`, it will return a service name to be utilized within the\r\n * Services plugin methods.\r\n * @param {object} params\r\n * @param {string} params.clusterId - clusterId of found service\r\n * @param {boolean} [params.priorityHost = true] - returns priority host url if true\r\n * @param {string} [params.serviceGroup] - specify service group\r\n * @returns {object} service\r\n * @returns {string} service.name\r\n * @returns {string} service.url\r\n */\r\n findServiceFromClusterId({clusterId, priorityHost = true, serviceGroup} = {}) {\r\n const serviceUrls =\r\n typeof serviceGroup === 'string'\r\n ? this.serviceGroups[serviceGroup] || []\r\n : [\r\n ...this.serviceGroups.override,\r\n ...this.serviceGroups.postauth,\r\n ...this.serviceGroups.signin,\r\n ...this.serviceGroups.preauth,\r\n ...this.serviceGroups.discovery,\r\n ];\r\n\r\n const identifiedServiceUrl = serviceUrls.find((serviceUrl) =>\r\n serviceUrl.hosts.find((host) => host.id === clusterId)\r\n );\r\n\r\n if (identifiedServiceUrl) {\r\n return {\r\n name: identifiedServiceUrl.name,\r\n url: identifiedServiceUrl.get(priorityHost, clusterId),\r\n };\r\n }\r\n\r\n return undefined;\r\n },\r\n\r\n /**\r\n * Find a service based on the provided url.\r\n * @param {string} url - Must be parsable by `Url`\r\n * @returns {serviceUrl} - ServiceUrl assocated with provided url\r\n */\r\n findServiceUrlFromUrl(url) {\r\n const incomingUrlObj = Url.parse(url);\r\n const serviceUrls = [\r\n ...this.serviceGroups.discovery,\r\n ...this.serviceGroups.preauth,\r\n ...this.serviceGroups.signin,\r\n ...this.serviceGroups.postauth,\r\n ...this.serviceGroups.override,\r\n ];\r\n\r\n return serviceUrls.find((serviceUrl) => {\r\n if (incomingUrlObj.hostname === Url.parse(serviceUrl.defaultUrl).hostname) {\r\n return true;\r\n }\r\n\r\n if (serviceUrl.hosts.find((host) => host.host === incomingUrlObj.hostname)) {\r\n return true;\r\n }\r\n\r\n return false;\r\n });\r\n },\r\n\r\n /**\r\n * Finds an allowed domain that matches a specific url.\r\n *\r\n * @param {string} url - The url to match the allowed domains against.\r\n * @returns {string} - The matching allowed domain.\r\n */\r\n findAllowedDomain(url) {\r\n const urlObj = Url.parse(url);\r\n\r\n if (!urlObj.host) {\r\n return undefined;\r\n }\r\n\r\n return this.allowedDomains.find((allowedDomain) => urlObj.host.includes(allowedDomain));\r\n },\r\n\r\n /**\r\n * Get a service url from the current services list by name.\r\n * @param {string} name\r\n * @param {boolean} priorityHost\r\n * @param {string} serviceGroup\r\n * @returns {string}\r\n */\r\n get(name, priorityHost, serviceGroup) {\r\n const serviceUrl = this._getUrl(name, serviceGroup);\r\n\r\n return serviceUrl ? serviceUrl.get(priorityHost) : undefined;\r\n },\r\n\r\n /**\r\n * Get the current allowed domains list.\r\n *\r\n * @returns {Array<string>} - the current allowed domains list.\r\n */\r\n getAllowedDomains() {\r\n return [...this.allowedDomains];\r\n },\r\n\r\n /**\r\n * Creates an object where the keys are the service names\r\n * and the values are the service urls.\r\n * @param {boolean} priorityHost - use the highest priority if set to `true`\r\n * @param {string} [serviceGroup]\r\n * @returns {Record<string, string>}\r\n */\r\n list(priorityHost, serviceGroup) {\r\n const output = {};\r\n\r\n const serviceUrls =\r\n typeof serviceGroup === 'string'\r\n ? this.serviceGroups[serviceGroup] || []\r\n : [\r\n ...this.serviceGroups.discovery,\r\n ...this.serviceGroups.preauth,\r\n ...this.serviceGroups.signin,\r\n ...this.serviceGroups.postauth,\r\n ...this.serviceGroups.override,\r\n ];\r\n\r\n if (serviceUrls) {\r\n serviceUrls.forEach((serviceUrl) => {\r\n output[serviceUrl.name] = serviceUrl.get(priorityHost);\r\n });\r\n }\r\n\r\n return output;\r\n },\r\n\r\n /**\r\n * Mark a priority host service url as failed.\r\n * This will mark the host associated with the\r\n * `ServiceUrl` to be removed from the its\r\n * respective host array, and then return the next\r\n * viable host from the `ServiceUrls` host array,\r\n * or the `ServiceUrls` default url if no other priority\r\n * hosts are available, or if `noPriorityHosts` is set to\r\n * `true`.\r\n * @param {string} url\r\n * @param {boolean} noPriorityHosts\r\n * @returns {string}\r\n */\r\n markFailedUrl(url, noPriorityHosts) {\r\n const serviceUrl = this._getUrl(\r\n Object.keys(this.list()).find((key) => this._getUrl(key).failHost(url))\r\n );\r\n\r\n if (!serviceUrl) {\r\n return undefined;\r\n }\r\n\r\n return noPriorityHosts ? serviceUrl.get(false) : serviceUrl.get(true);\r\n },\r\n\r\n /**\r\n * Set the allowed domains for the catalog.\r\n *\r\n * @param {Array<string>} allowedDomains - allowed domains to be assigned.\r\n * @returns {void}\r\n */\r\n setAllowedDomains(allowedDomains) {\r\n this.allowedDomains = [...allowedDomains];\r\n },\r\n\r\n /**\r\n * Update the current list of `ServiceUrl`s against a provided\r\n * service hostmap.\r\n * @emits ServiceCatalog#preauthorized\r\n * @emits ServiceCatalog#postauthorized\r\n * @param {string} serviceGroup\r\n * @param {object} serviceHostmap\r\n * @returns {Services}\r\n */\r\n updateServiceUrls(serviceGroup, serviceHostmap) {\r\n const currentServiceUrls = this.serviceGroups[serviceGroup];\r\n\r\n const unusedUrls = currentServiceUrls.filter((serviceUrl) =>\r\n serviceHostmap.every((item) => item.name !== serviceUrl.name)\r\n );\r\n\r\n this._unloadServiceUrls(serviceGroup, unusedUrls);\r\n\r\n serviceHostmap.forEach((serviceObj) => {\r\n const service = this._getUrl(serviceObj.name, serviceGroup);\r\n\r\n if (service) {\r\n service.defaultUrl = serviceObj.defaultUrl;\r\n service.hosts = serviceObj.hosts || [];\r\n } else {\r\n this._loadServiceUrls(serviceGroup, [\r\n new ServiceUrl({\r\n ...serviceObj,\r\n }),\r\n ]);\r\n }\r\n });\r\n\r\n this.status[serviceGroup].ready = true;\r\n this.trigger(serviceGroup);\r\n\r\n return this;\r\n },\r\n\r\n /**\r\n * Wait until the service catalog is available,\r\n * or reject after a timeout of 60 seconds.\r\n * @param {string} serviceGroup\r\n * @param {number} [timeout] - in seconds\r\n * @returns {Promise<void>}\r\n */\r\n waitForCatalog(serviceGroup, timeout) {\r\n return new Promise((resolve, reject) => {\r\n if (this.status[serviceGroup].ready) {\r\n resolve();\r\n }\r\n\r\n const timeoutTimer = setTimeout(\r\n () =>\r\n reject(\r\n new Error(\r\n `services: timeout occured while waiting for '${serviceGroup}' catalog to populate`\r\n )\r\n ),\r\n timeout ? timeout * 1000 : 60000\r\n );\r\n\r\n this.once(serviceGroup, () => {\r\n clearTimeout(timeoutTimer);\r\n resolve();\r\n });\r\n });\r\n },\r\n});\r\n/* eslint-enable no-underscore-dangle */\r\n\r\nexport default ServiceCatalog;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_url","_interopRequireDefault","require","_ampersandState","_serviceUrl","ownKeys","object","enumerableOnly","keys","_Object$keys3","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","prototype","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","ServiceCatalog","AmpState","extend","namespace","props","serviceGroups","discovery","override","preauth","postauth","signin","status","ready","collecting","isReady","allowedDomains","_getUrl","serviceGroup","serviceUrls","concat","_toConsumableArray2","find","serviceUrl","_listServiceUrls","_loadServiceUrls","services","_this","existingService","service","_unloadServiceUrls","_this2","splice","indexOf","clean","findClusterId","url","incomingUrlObj","Url","parse","serviceUrlObj","_i","_Object$keys","_keys","_iterator","_step","defaultUrl","_iterator2","hosts","_step2","host","hostname","id","_iterator3","_step3","homeCluster","undefined","findServiceFromClusterId","_ref","clusterId","_ref$priorityHost","priorityHost","identifiedServiceUrl","get","findServiceUrlFromUrl","findAllowedDomain","urlObj","allowedDomain","includes","getAllowedDomains","list","output","markFailedUrl","noPriorityHosts","_this3","failHost","setAllowedDomains","updateServiceUrls","serviceHostmap","_this4","currentServiceUrls","unusedUrls","every","item","serviceObj","ServiceUrl","trigger","waitForCatalog","timeout","_this5","_promise","resolve","reject","timeoutTimer","setTimeout","Error","once","clearTimeout","_default","exports"],"sources":["service-catalog.js"],"sourcesContent":["import Url from 'url';\n\nimport AmpState from 'ampersand-state';\n\nimport ServiceUrl from './service-url';\n\n/* eslint-disable no-underscore-dangle */\n/**\n * @class\n */\nconst ServiceCatalog = AmpState.extend({\n namespace: 'ServiceCatalog',\n\n props: {\n serviceGroups: [\n 'object',\n true,\n () => ({\n discovery: [],\n override: [],\n preauth: [],\n postauth: [],\n signin: [],\n }),\n ],\n status: [\n 'object',\n true,\n () => ({\n discovery: {\n ready: false,\n collecting: false,\n },\n override: {\n ready: false,\n collecting: false,\n },\n preauth: {\n ready: false,\n collecting: false,\n },\n postauth: {\n ready: false,\n collecting: false,\n },\n signin: {\n ready: false,\n collecting: false,\n },\n }),\n ],\n isReady: ['boolean', false, false],\n allowedDomains: ['array', false, () => []],\n },\n\n /**\n * @private\n * Search the service url array to locate a `ServiceUrl`\n * class object based on its name.\n * @param {string} name\n * @param {string} [serviceGroup]\n * @returns {ServiceUrl}\n */\n _getUrl(name, serviceGroup) {\n const serviceUrls =\n typeof serviceGroup === 'string'\n ? this.serviceGroups[serviceGroup] || []\n : [\n ...this.serviceGroups.override,\n ...this.serviceGroups.postauth,\n ...this.serviceGroups.signin,\n ...this.serviceGroups.preauth,\n ...this.serviceGroups.discovery,\n ];\n\n return serviceUrls.find((serviceUrl) => serviceUrl.name === name);\n },\n\n /**\n * @private\n * Generate an array of `ServiceUrl`s that is organized from highest auth\n * level to lowest auth level.\n * @returns {Array<ServiceUrl>} - array of `ServiceUrl`s\n */\n _listServiceUrls() {\n return [\n ...this.serviceGroups.override,\n ...this.serviceGroups.postauth,\n ...this.serviceGroups.signin,\n ...this.serviceGroups.preauth,\n ...this.serviceGroups.discovery,\n ];\n },\n\n /**\n * @private\n * Safely load one or more `ServiceUrl`s into this `Services` instance.\n * @param {string} serviceGroup\n * @param {Array<ServiceUrl>} services\n * @returns {Services}\n */\n _loadServiceUrls(serviceGroup, services) {\n // declare namespaces outside of loop\n let existingService;\n\n services.forEach((service) => {\n existingService = this._getUrl(service.name, serviceGroup);\n\n if (!existingService) {\n this.serviceGroups[serviceGroup].push(service);\n }\n });\n\n return this;\n },\n\n /**\n * @private\n * Safely unload one or more `ServiceUrl`s into this `Services` instance\n * @param {string} serviceGroup\n * @param {Array<ServiceUrl>} services\n * @returns {Services}\n */\n _unloadServiceUrls(serviceGroup, services) {\n // declare namespaces outside of loop\n let existingService;\n\n services.forEach((service) => {\n existingService = this._getUrl(service.name, serviceGroup);\n\n if (existingService) {\n this.serviceGroups[serviceGroup].splice(\n this.serviceGroups[serviceGroup].indexOf(existingService),\n 1\n );\n }\n });\n\n return this;\n },\n\n /**\n * Clear all collected catalog data and reset catalog status.\n *\n * @returns {void}\n */\n clean() {\n this.serviceGroups.preauth.length = 0;\n this.serviceGroups.signin.length = 0;\n this.serviceGroups.postauth.length = 0;\n this.status.preauth = {ready: false};\n this.status.signin = {ready: false};\n this.status.postauth = {ready: false};\n },\n\n /**\n * Search over all service groups to find a cluster id based\n * on a given url.\n * @param {string} url - Must be parsable by `Url`\n * @returns {string} - ClusterId of a given url\n */\n findClusterId(url) {\n const incomingUrlObj = Url.parse(url);\n let serviceUrlObj;\n\n for (const key of Object.keys(this.serviceGroups)) {\n for (const service of this.serviceGroups[key]) {\n serviceUrlObj = Url.parse(service.defaultUrl);\n\n for (const host of service.hosts) {\n if (incomingUrlObj.hostname === host.host && host.id) {\n return host.id;\n }\n }\n\n if (serviceUrlObj.hostname === incomingUrlObj.hostname && service.hosts.length > 0) {\n // no exact match, so try to grab the first home cluster\n for (const host of service.hosts) {\n if (host.homeCluster) {\n return host.id;\n }\n }\n\n // no match found still, so return the first entry\n return service.hosts[0].id;\n }\n }\n }\n\n return undefined;\n },\n\n /**\n * Search over all service groups and return a service value from a provided\n * clusterId. Currently, this method will return either a service name, or a\n * service url depending on the `value` parameter. If the `value` parameter\n * is set to `name`, it will return a service name to be utilized within the\n * Services plugin methods.\n * @param {object} params\n * @param {string} params.clusterId - clusterId of found service\n * @param {boolean} [params.priorityHost = true] - returns priority host url if true\n * @param {string} [params.serviceGroup] - specify service group\n * @returns {object} service\n * @returns {string} service.name\n * @returns {string} service.url\n */\n findServiceFromClusterId({clusterId, priorityHost = true, serviceGroup} = {}) {\n const serviceUrls =\n typeof serviceGroup === 'string'\n ? this.serviceGroups[serviceGroup] || []\n : [\n ...this.serviceGroups.override,\n ...this.serviceGroups.postauth,\n ...this.serviceGroups.signin,\n ...this.serviceGroups.preauth,\n ...this.serviceGroups.discovery,\n ];\n\n const identifiedServiceUrl = serviceUrls.find((serviceUrl) =>\n serviceUrl.hosts.find((host) => host.id === clusterId)\n );\n\n if (identifiedServiceUrl) {\n return {\n name: identifiedServiceUrl.name,\n url: identifiedServiceUrl.get(priorityHost, clusterId),\n };\n }\n\n return undefined;\n },\n\n /**\n * Find a service based on the provided url.\n * @param {string} url - Must be parsable by `Url`\n * @returns {serviceUrl} - ServiceUrl assocated with provided url\n */\n findServiceUrlFromUrl(url) {\n const incomingUrlObj = Url.parse(url);\n const serviceUrls = [\n ...this.serviceGroups.discovery,\n ...this.serviceGroups.preauth,\n ...this.serviceGroups.signin,\n ...this.serviceGroups.postauth,\n ...this.serviceGroups.override,\n ];\n\n return serviceUrls.find((serviceUrl) => {\n if (incomingUrlObj.hostname === Url.parse(serviceUrl.defaultUrl).hostname) {\n return true;\n }\n\n if (serviceUrl.hosts.find((host) => host.host === incomingUrlObj.hostname)) {\n return true;\n }\n\n return false;\n });\n },\n\n /**\n * Finds an allowed domain that matches a specific url.\n *\n * @param {string} url - The url to match the allowed domains against.\n * @returns {string} - The matching allowed domain.\n */\n findAllowedDomain(url) {\n const urlObj = Url.parse(url);\n\n if (!urlObj.host) {\n return undefined;\n }\n\n return this.allowedDomains.find((allowedDomain) => urlObj.host.includes(allowedDomain));\n },\n\n /**\n * Get a service url from the current services list by name.\n * @param {string} name\n * @param {boolean} priorityHost\n * @param {string} serviceGroup\n * @returns {string}\n */\n get(name, priorityHost, serviceGroup) {\n const serviceUrl = this._getUrl(name, serviceGroup);\n\n return serviceUrl ? serviceUrl.get(priorityHost) : undefined;\n },\n\n /**\n * Get the current allowed domains list.\n *\n * @returns {Array<string>} - the current allowed domains list.\n */\n getAllowedDomains() {\n return [...this.allowedDomains];\n },\n\n /**\n * Creates an object where the keys are the service names\n * and the values are the service urls.\n * @param {boolean} priorityHost - use the highest priority if set to `true`\n * @param {string} [serviceGroup]\n * @returns {Record<string, string>}\n */\n list(priorityHost, serviceGroup) {\n const output = {};\n\n const serviceUrls =\n typeof serviceGroup === 'string'\n ? this.serviceGroups[serviceGroup] || []\n : [\n ...this.serviceGroups.discovery,\n ...this.serviceGroups.preauth,\n ...this.serviceGroups.signin,\n ...this.serviceGroups.postauth,\n ...this.serviceGroups.override,\n ];\n\n if (serviceUrls) {\n serviceUrls.forEach((serviceUrl) => {\n output[serviceUrl.name] = serviceUrl.get(priorityHost);\n });\n }\n\n return output;\n },\n\n /**\n * Mark a priority host service url as failed.\n * This will mark the host associated with the\n * `ServiceUrl` to be removed from the its\n * respective host array, and then return the next\n * viable host from the `ServiceUrls` host array,\n * or the `ServiceUrls` default url if no other priority\n * hosts are available, or if `noPriorityHosts` is set to\n * `true`.\n * @param {string} url\n * @param {boolean} noPriorityHosts\n * @returns {string}\n */\n markFailedUrl(url, noPriorityHosts) {\n const serviceUrl = this._getUrl(\n Object.keys(this.list()).find((key) => this._getUrl(key).failHost(url))\n );\n\n if (!serviceUrl) {\n return undefined;\n }\n\n return noPriorityHosts ? serviceUrl.get(false) : serviceUrl.get(true);\n },\n\n /**\n * Set the allowed domains for the catalog.\n *\n * @param {Array<string>} allowedDomains - allowed domains to be assigned.\n * @returns {void}\n */\n setAllowedDomains(allowedDomains) {\n this.allowedDomains = [...allowedDomains];\n },\n\n /**\n * Update the current list of `ServiceUrl`s against a provided\n * service hostmap.\n * @emits ServiceCatalog#preauthorized\n * @emits ServiceCatalog#postauthorized\n * @param {string} serviceGroup\n * @param {object} serviceHostmap\n * @returns {Services}\n */\n updateServiceUrls(serviceGroup, serviceHostmap) {\n const currentServiceUrls = this.serviceGroups[serviceGroup];\n\n const unusedUrls = currentServiceUrls.filter((serviceUrl) =>\n serviceHostmap.every((item) => item.name !== serviceUrl.name)\n );\n\n this._unloadServiceUrls(serviceGroup, unusedUrls);\n\n serviceHostmap.forEach((serviceObj) => {\n const service = this._getUrl(serviceObj.name, serviceGroup);\n\n if (service) {\n service.defaultUrl = serviceObj.defaultUrl;\n service.hosts = serviceObj.hosts || [];\n } else {\n this._loadServiceUrls(serviceGroup, [\n new ServiceUrl({\n ...serviceObj,\n }),\n ]);\n }\n });\n\n this.status[serviceGroup].ready = true;\n this.trigger(serviceGroup);\n\n return this;\n },\n\n /**\n * Wait until the service catalog is available,\n * or reject after a timeout of 60 seconds.\n * @param {string} serviceGroup\n * @param {number} [timeout] - in seconds\n * @returns {Promise<void>}\n */\n waitForCatalog(serviceGroup, timeout) {\n return new Promise((resolve, reject) => {\n if (this.status[serviceGroup].ready) {\n resolve();\n }\n\n const timeoutTimer = setTimeout(\n () =>\n reject(\n new Error(\n `services: timeout occured while waiting for '${serviceGroup}' catalog to populate`\n )\n ),\n timeout ? timeout * 1000 : 60000\n );\n\n this.once(serviceGroup, () => {\n clearTimeout(timeoutTimer);\n resolve();\n });\n });\n },\n});\n/* eslint-enable no-underscore-dangle */\n\nexport default ServiceCatalog;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["hydra","u2c","exports","default","_default"],"sources":["service-fed-ramp.js"],"sourcesContent":["export default {\
|
|
1
|
+
{"version":3,"names":["hydra","u2c","exports","default","_default"],"sources":["service-fed-ramp.js"],"sourcesContent":["export default {\n hydra: 'https://api-usgov.webex.com/v1',\n u2c: 'https://u2c.gov.ciscospark.com/u2c/api/v1',\n};\n"],"mappings":";;;;;;;eAAe;EACbA,KAAK,EAAE,gCAAgC;EACvCC,GAAG,EAAE;AACP,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAC,QAAA"}
|