@webex/webex-core 3.3.1-next.2 → 3.3.1-next.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/dist/lib/batcher.js +1 -1
- package/dist/lib/credentials/credentials.js +1 -1
- package/dist/lib/credentials/token.js +1 -1
- package/dist/lib/services/service-catalog.js +21 -6
- package/dist/lib/services/service-catalog.js.map +1 -1
- package/dist/lib/services/services.js +1 -1
- package/dist/plugins/logger.js +1 -1
- package/dist/webex-core.js +2 -2
- package/package.json +13 -13
- package/src/lib/services/service-catalog.js +12 -4
- package/test/unit/spec/services/service-catalog.js +51 -1
package/dist/lib/batcher.js
CHANGED
|
@@ -286,7 +286,7 @@ var Batcher = _webexPlugin.default.extend({
|
|
|
286
286
|
fingerprintResponse: function fingerprintResponse(item) {
|
|
287
287
|
throw new Error('fingerprintResponse() must be implemented');
|
|
288
288
|
},
|
|
289
|
-
version: "3.3.1-next.
|
|
289
|
+
version: "3.3.1-next.4"
|
|
290
290
|
});
|
|
291
291
|
var _default2 = exports.default = Batcher;
|
|
292
292
|
//# sourceMappingURL=batcher.js.map
|
|
@@ -558,7 +558,7 @@ var Credentials = _webexPlugin.default.extend((_dec = (0, _common.oneFlight)({
|
|
|
558
558
|
this.refresh();
|
|
559
559
|
}
|
|
560
560
|
},
|
|
561
|
-
version: "3.3.1-next.
|
|
561
|
+
version: "3.3.1-next.4"
|
|
562
562
|
}, ((0, _applyDecoratedDescriptor2.default)(_obj, "getUserToken", [_dec, _dec2], (0, _getOwnPropertyDescriptor.default)(_obj, "getUserToken"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "initialize", [_dec3], (0, _getOwnPropertyDescriptor.default)(_obj, "initialize"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "invalidate", [_common.oneFlight, _dec4], (0, _getOwnPropertyDescriptor.default)(_obj, "invalidate"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "refresh", [_common.oneFlight, _dec5, _dec6], (0, _getOwnPropertyDescriptor.default)(_obj, "refresh"), _obj)), _obj)));
|
|
563
563
|
var _default = exports.default = Credentials;
|
|
564
564
|
//# sourceMappingURL=credentials.js.map
|
|
@@ -532,7 +532,7 @@ var Token = _webexPlugin.default.extend((_dec = (0, _common.oneFlight)({
|
|
|
532
532
|
return res.body;
|
|
533
533
|
});
|
|
534
534
|
},
|
|
535
|
-
version: "3.3.1-next.
|
|
535
|
+
version: "3.3.1-next.4"
|
|
536
536
|
}, ((0, _applyDecoratedDescriptor2.default)(_obj, "downscope", [_dec], (0, _getOwnPropertyDescriptor.default)(_obj, "downscope"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "refresh", [_common.oneFlight], (0, _getOwnPropertyDescriptor.default)(_obj, "refresh"), _obj), (0, _applyDecoratedDescriptor2.default)(_obj, "revoke", [_common.oneFlight], (0, _getOwnPropertyDescriptor.default)(_obj, "revoke"), _obj)), _obj)));
|
|
537
537
|
var _default = exports.default = Token;
|
|
538
538
|
//# sourceMappingURL=token.js.map
|
|
@@ -253,16 +253,31 @@ var ServiceCatalog = _ampersandState.default.extend({
|
|
|
253
253
|
* @returns {serviceUrl} - ServiceUrl assocated with provided url
|
|
254
254
|
*/
|
|
255
255
|
findServiceUrlFromUrl: function findServiceUrlFromUrl(url) {
|
|
256
|
-
var incomingUrlObj = _url.default.parse(url);
|
|
257
256
|
var serviceUrls = [].concat((0, _toConsumableArray2.default)(this.serviceGroups.discovery), (0, _toConsumableArray2.default)(this.serviceGroups.preauth), (0, _toConsumableArray2.default)(this.serviceGroups.signin), (0, _toConsumableArray2.default)(this.serviceGroups.postauth), (0, _toConsumableArray2.default)(this.serviceGroups.override));
|
|
258
257
|
return serviceUrls.find(function (serviceUrl) {
|
|
259
|
-
if
|
|
258
|
+
// Check to see if the URL we are checking starts with the default URL
|
|
259
|
+
if (url.startsWith(serviceUrl.defaultUrl)) {
|
|
260
260
|
return true;
|
|
261
261
|
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
262
|
+
|
|
263
|
+
// If not, we check to see if the alternate URLs match
|
|
264
|
+
// These are made by swapping the host of the default URL
|
|
265
|
+
// with that of an alternate host
|
|
266
|
+
var _iterator4 = _createForOfIteratorHelper(serviceUrl.hosts),
|
|
267
|
+
_step4;
|
|
268
|
+
try {
|
|
269
|
+
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
270
|
+
var host = _step4.value;
|
|
271
|
+
var alternateUrl = new URL(serviceUrl.defaultUrl);
|
|
272
|
+
alternateUrl.host = host.host;
|
|
273
|
+
if (url.startsWith(alternateUrl.toString())) {
|
|
274
|
+
return true;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
} catch (err) {
|
|
278
|
+
_iterator4.e(err);
|
|
279
|
+
} finally {
|
|
280
|
+
_iterator4.f();
|
|
266
281
|
}
|
|
267
282
|
return false;
|
|
268
283
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_url","_interopRequireDefault","require","_ampersandState","_lodash","_serviceUrl","ownKeys","e","r","t","_Object$keys3","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createForOfIteratorHelper","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","i","F","s","n","done","value","_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","key","_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","addAllowedDomains","newAllowedDomains","union","updateServiceUrls","serviceHostmap","_this4","currentServiceUrls","unusedUrls","every","item","serviceObj","ServiceUrl","trigger","waitForCatalog","timeout","_this5","_promise","resolve","reject","validatedTimeout","timeoutTimer","setTimeout","Error","once","clearTimeout","_default","exports"],"sources":["service-catalog.js"],"sourcesContent":["import Url from 'url';\n\nimport AmpState from 'ampersand-state';\n\nimport {union} from 'lodash';\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 *\n * @param {Array<string>} newAllowedDomains - new allowed domains to add to existing set of allowed domains\n * @returns {void}\n */\n addAllowedDomains(newAllowedDomains) {\n this.allowedDomains = union(this.allowedDomains, newAllowedDomains);\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 validatedTimeout = typeof timeout === 'number' && timeout >= 0 ? timeout : 60;\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 validatedTimeout * 1000\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
|
+
{"version":3,"names":["_url","_interopRequireDefault","require","_ampersandState","_lodash","_serviceUrl","ownKeys","e","r","t","_Object$keys3","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","_createForOfIteratorHelper","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","i","F","s","n","done","value","_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","key","_iterator","_step","defaultUrl","_iterator2","hosts","_step2","host","hostname","id","_iterator3","_step3","homeCluster","undefined","findServiceFromClusterId","_ref","clusterId","_ref$priorityHost","priorityHost","identifiedServiceUrl","get","findServiceUrlFromUrl","startsWith","_iterator4","_step4","alternateUrl","URL","findAllowedDomain","urlObj","allowedDomain","includes","getAllowedDomains","list","output","markFailedUrl","noPriorityHosts","_this3","failHost","setAllowedDomains","addAllowedDomains","newAllowedDomains","union","updateServiceUrls","serviceHostmap","_this4","currentServiceUrls","unusedUrls","every","item","serviceObj","ServiceUrl","trigger","waitForCatalog","timeout","_this5","_promise","resolve","reject","validatedTimeout","timeoutTimer","setTimeout","Error","once","clearTimeout","_default","exports"],"sources":["service-catalog.js"],"sourcesContent":["import Url from 'url';\n\nimport AmpState from 'ampersand-state';\n\nimport {union} from 'lodash';\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 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 // Check to see if the URL we are checking starts with the default URL\n if (url.startsWith(serviceUrl.defaultUrl)) {\n return true;\n }\n\n // If not, we check to see if the alternate URLs match\n // These are made by swapping the host of the default URL\n // with that of an alternate host\n for (const host of serviceUrl.hosts) {\n const alternateUrl = new URL(serviceUrl.defaultUrl);\n alternateUrl.host = host.host;\n\n if (url.startsWith(alternateUrl.toString())) {\n return true;\n }\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 *\n * @param {Array<string>} newAllowedDomains - new allowed domains to add to existing set of allowed domains\n * @returns {void}\n */\n addAllowedDomains(newAllowedDomains) {\n this.allowedDomains = union(this.allowedDomains, newAllowedDomains);\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 validatedTimeout = typeof timeout === 'number' && timeout >= 0 ? timeout : 60;\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 validatedTimeout * 1000\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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"}
|
package/dist/plugins/logger.js
CHANGED
|
@@ -57,7 +57,7 @@ var Logger = _webexPlugin.default.extend({
|
|
|
57
57
|
info: wrapConsoleMethod('info'),
|
|
58
58
|
debug: wrapConsoleMethod('debug'),
|
|
59
59
|
trace: wrapConsoleMethod('trace'),
|
|
60
|
-
version: "3.3.1-next.
|
|
60
|
+
version: "3.3.1-next.4"
|
|
61
61
|
});
|
|
62
62
|
(0, _webexCore.registerPlugin)('logger', Logger);
|
|
63
63
|
var _default = exports.default = Logger;
|
package/dist/webex-core.js
CHANGED
|
@@ -94,7 +94,7 @@ var MAX_FILE_SIZE_IN_MB = 2048;
|
|
|
94
94
|
* @class
|
|
95
95
|
*/
|
|
96
96
|
var WebexCore = _ampersandState.default.extend((_obj = {
|
|
97
|
-
version: "3.3.1-next.
|
|
97
|
+
version: "3.3.1-next.4",
|
|
98
98
|
children: {
|
|
99
99
|
internal: _webexInternalCore.default
|
|
100
100
|
},
|
|
@@ -636,7 +636,7 @@ var WebexCore = _ampersandState.default.extend((_obj = {
|
|
|
636
636
|
});
|
|
637
637
|
}
|
|
638
638
|
}, ((0, _applyDecoratedDescriptor2.default)(_obj, "_uploadPhaseUpload", [_common.retry], (0, _getOwnPropertyDescriptor.default)(_obj, "_uploadPhaseUpload"), _obj)), _obj));
|
|
639
|
-
WebexCore.version = "3.3.1-next.
|
|
639
|
+
WebexCore.version = "3.3.1-next.4";
|
|
640
640
|
(0, _webexInternalCorePluginMixin.default)(_webexInternalCore.default, _config.default, interceptors);
|
|
641
641
|
(0, _webexCorePluginMixin.default)(WebexCore, _config.default, interceptors);
|
|
642
642
|
var _default = exports.default = WebexCore;
|
package/package.json
CHANGED
|
@@ -35,12 +35,12 @@
|
|
|
35
35
|
"@webex/eslint-config-legacy": "0.0.0",
|
|
36
36
|
"@webex/jest-config-legacy": "0.0.0",
|
|
37
37
|
"@webex/legacy-tools": "0.0.0",
|
|
38
|
-
"@webex/test-helper-chai": "3.3.1-next.
|
|
39
|
-
"@webex/test-helper-make-local-url": "3.3.1-next.
|
|
40
|
-
"@webex/test-helper-mocha": "3.3.1-next.
|
|
41
|
-
"@webex/test-helper-mock-webex": "3.3.1-next.
|
|
42
|
-
"@webex/test-helper-refresh-callback": "3.3.1-next.
|
|
43
|
-
"@webex/test-helper-test-users": "3.3.1-next.
|
|
38
|
+
"@webex/test-helper-chai": "3.3.1-next.4",
|
|
39
|
+
"@webex/test-helper-make-local-url": "3.3.1-next.4",
|
|
40
|
+
"@webex/test-helper-mocha": "3.3.1-next.4",
|
|
41
|
+
"@webex/test-helper-mock-webex": "3.3.1-next.4",
|
|
42
|
+
"@webex/test-helper-refresh-callback": "3.3.1-next.4",
|
|
43
|
+
"@webex/test-helper-test-users": "3.3.1-next.4",
|
|
44
44
|
"chai": "^4.3.4",
|
|
45
45
|
"chai-as-promised": "^7.1.1",
|
|
46
46
|
"eslint": "^8.24.0",
|
|
@@ -48,12 +48,12 @@
|
|
|
48
48
|
"sinon": "^9.2.4"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"@webex/common": "3.3.1-next.
|
|
52
|
-
"@webex/common-timers": "3.3.1-next.
|
|
53
|
-
"@webex/http-core": "3.3.1-next.
|
|
54
|
-
"@webex/internal-plugin-device": "3.3.1-next.
|
|
55
|
-
"@webex/plugin-logger": "3.3.1-next.
|
|
56
|
-
"@webex/storage-adapter-spec": "3.3.1-next.
|
|
51
|
+
"@webex/common": "3.3.1-next.4",
|
|
52
|
+
"@webex/common-timers": "3.3.1-next.4",
|
|
53
|
+
"@webex/http-core": "3.3.1-next.4",
|
|
54
|
+
"@webex/internal-plugin-device": "3.3.1-next.4",
|
|
55
|
+
"@webex/plugin-logger": "3.3.1-next.4",
|
|
56
|
+
"@webex/storage-adapter-spec": "3.3.1-next.4",
|
|
57
57
|
"ampersand-collection": "^2.0.2",
|
|
58
58
|
"ampersand-events": "^2.0.2",
|
|
59
59
|
"ampersand-state": "^5.0.3",
|
|
@@ -73,5 +73,5 @@
|
|
|
73
73
|
"test:style": "eslint ./src/**/*.*",
|
|
74
74
|
"test:unit": "webex-legacy-tools test --unit --runner jest"
|
|
75
75
|
},
|
|
76
|
-
"version": "3.3.1-next.
|
|
76
|
+
"version": "3.3.1-next.4"
|
|
77
77
|
}
|
|
@@ -237,7 +237,6 @@ const ServiceCatalog = AmpState.extend({
|
|
|
237
237
|
* @returns {serviceUrl} - ServiceUrl assocated with provided url
|
|
238
238
|
*/
|
|
239
239
|
findServiceUrlFromUrl(url) {
|
|
240
|
-
const incomingUrlObj = Url.parse(url);
|
|
241
240
|
const serviceUrls = [
|
|
242
241
|
...this.serviceGroups.discovery,
|
|
243
242
|
...this.serviceGroups.preauth,
|
|
@@ -247,12 +246,21 @@ const ServiceCatalog = AmpState.extend({
|
|
|
247
246
|
];
|
|
248
247
|
|
|
249
248
|
return serviceUrls.find((serviceUrl) => {
|
|
250
|
-
if
|
|
249
|
+
// Check to see if the URL we are checking starts with the default URL
|
|
250
|
+
if (url.startsWith(serviceUrl.defaultUrl)) {
|
|
251
251
|
return true;
|
|
252
252
|
}
|
|
253
253
|
|
|
254
|
-
|
|
255
|
-
|
|
254
|
+
// If not, we check to see if the alternate URLs match
|
|
255
|
+
// These are made by swapping the host of the default URL
|
|
256
|
+
// with that of an alternate host
|
|
257
|
+
for (const host of serviceUrl.hosts) {
|
|
258
|
+
const alternateUrl = new URL(serviceUrl.defaultUrl);
|
|
259
|
+
alternateUrl.host = host.host;
|
|
260
|
+
|
|
261
|
+
if (url.startsWith(alternateUrl.toString())) {
|
|
262
|
+
return true;
|
|
263
|
+
}
|
|
256
264
|
}
|
|
257
265
|
|
|
258
266
|
return false;
|
|
@@ -13,7 +13,7 @@ describe('webex-core', () => {
|
|
|
13
13
|
let services;
|
|
14
14
|
let catalog;
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
beforeEach(() => {
|
|
17
17
|
webex = new MockWebex();
|
|
18
18
|
services = new Services(undefined, {parent: webex});
|
|
19
19
|
catalog = services._getCatalog();
|
|
@@ -201,6 +201,56 @@ describe('webex-core', () => {
|
|
|
201
201
|
assert.match(['example-a', 'example-b', 'example-c', 'example-e', 'example-f'], list);
|
|
202
202
|
});
|
|
203
203
|
});
|
|
204
|
+
|
|
205
|
+
describe('findServiceUrlFromUrl()', () => {
|
|
206
|
+
const otherService = {
|
|
207
|
+
defaultUrl: 'https://example.com/differentresource',
|
|
208
|
+
hosts: [{host: 'example1.com'}, {host: 'example2.com'}],
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
it.each([
|
|
212
|
+
'discovery',
|
|
213
|
+
'preauth',
|
|
214
|
+
'signin',
|
|
215
|
+
'postauth',
|
|
216
|
+
'override'
|
|
217
|
+
])('matches a default url correctly', (serviceGroup) => {
|
|
218
|
+
const url = 'https://example.com/resource/id';
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
const exampleService = {
|
|
222
|
+
defaultUrl: 'https://example.com/resource',
|
|
223
|
+
hosts: [{host: 'example1.com'}, {host: 'example2.com'}],
|
|
224
|
+
};
|
|
225
|
+
|
|
226
|
+
catalog.serviceGroups[serviceGroup].push(otherService, exampleService);
|
|
227
|
+
|
|
228
|
+
const service = catalog.findServiceUrlFromUrl(url);
|
|
229
|
+
|
|
230
|
+
assert.equal(service, exampleService);
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
it.each([
|
|
234
|
+
'discovery',
|
|
235
|
+
'preauth',
|
|
236
|
+
'signin',
|
|
237
|
+
'postauth',
|
|
238
|
+
'override'
|
|
239
|
+
])('matches an alternate host url', (serviceGroup) => {
|
|
240
|
+
const url = 'https://example2.com/resource/id';
|
|
241
|
+
|
|
242
|
+
const exampleService = {
|
|
243
|
+
defaultUrl: 'https://example.com/resource',
|
|
244
|
+
hosts: [{host: 'example1.com'}, {host: 'example2.com'}],
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
catalog.serviceGroups[serviceGroup].push(otherService, exampleService);
|
|
248
|
+
|
|
249
|
+
const service = catalog.findServiceUrlFromUrl(url);
|
|
250
|
+
|
|
251
|
+
assert.equal(service, exampleService);
|
|
252
|
+
});
|
|
253
|
+
});
|
|
204
254
|
});
|
|
205
255
|
});
|
|
206
256
|
/* eslint-enable no-underscore-dangle */
|