@webex/webex-core 2.60.1-next.9 → 2.60.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config.js +2 -1
- package/dist/config.js.map +1 -1
- package/dist/credentials-config.js +2 -1
- package/dist/credentials-config.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/interceptors/auth.js +3 -4
- package/dist/interceptors/auth.js.map +1 -1
- package/dist/interceptors/default-options.js +3 -4
- package/dist/interceptors/default-options.js.map +1 -1
- package/dist/interceptors/embargo.js +3 -4
- package/dist/interceptors/embargo.js.map +1 -1
- package/dist/interceptors/network-timing.js +3 -4
- package/dist/interceptors/network-timing.js.map +1 -1
- package/dist/interceptors/payload-transformer.js +3 -4
- package/dist/interceptors/payload-transformer.js.map +1 -1
- package/dist/interceptors/rate-limit.js +3 -4
- package/dist/interceptors/rate-limit.js.map +1 -1
- package/dist/interceptors/redirect.js +6 -7
- package/dist/interceptors/redirect.js.map +1 -1
- package/dist/interceptors/request-event.js +8 -9
- package/dist/interceptors/request-event.js.map +1 -1
- package/dist/interceptors/request-logger.js +15 -12
- package/dist/interceptors/request-logger.js.map +1 -1
- package/dist/interceptors/request-timing.js +3 -4
- package/dist/interceptors/request-timing.js.map +1 -1
- package/dist/interceptors/response-logger.js +10 -10
- package/dist/interceptors/response-logger.js.map +1 -1
- package/dist/interceptors/user-agent.js +7 -8
- package/dist/interceptors/user-agent.js.map +1 -1
- package/dist/interceptors/webex-tracking-id.js +3 -4
- package/dist/interceptors/webex-tracking-id.js.map +1 -1
- package/dist/interceptors/webex-user-agent.js +8 -9
- package/dist/interceptors/webex-user-agent.js.map +1 -1
- package/dist/lib/batcher.js +5 -8
- package/dist/lib/batcher.js.map +1 -1
- package/dist/lib/credentials/credentials.js +35 -73
- package/dist/lib/credentials/credentials.js.map +1 -1
- package/dist/lib/credentials/grant-errors.js +5 -5
- package/dist/lib/credentials/grant-errors.js.map +1 -1
- package/dist/lib/credentials/scope.js +5 -26
- package/dist/lib/credentials/scope.js.map +1 -1
- package/dist/lib/credentials/token-collection.js +2 -1
- package/dist/lib/credentials/token-collection.js.map +1 -1
- package/dist/lib/credentials/token.js +10 -14
- package/dist/lib/credentials/token.js.map +1 -1
- package/dist/lib/page.js +2 -1
- package/dist/lib/page.js.map +1 -1
- package/dist/lib/services/constants.js +6 -3
- 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 +3 -4
- package/dist/lib/services/interceptors/server-error.js.map +1 -1
- package/dist/lib/services/interceptors/service.js +5 -8
- package/dist/lib/services/interceptors/service.js.map +1 -1
- package/dist/lib/services/metrics.js +2 -1
- package/dist/lib/services/metrics.js.map +1 -1
- package/dist/lib/services/service-catalog.js +5 -5
- package/dist/lib/services/service-catalog.js.map +1 -1
- package/dist/lib/services/service-fed-ramp.js +2 -1
- package/dist/lib/services/service-fed-ramp.js.map +1 -1
- package/dist/lib/services/service-host.js +2 -1
- package/dist/lib/services/service-host.js.map +1 -1
- package/dist/lib/services/service-registry.js +4 -3
- package/dist/lib/services/service-registry.js.map +1 -1
- package/dist/lib/services/service-state.js +2 -1
- package/dist/lib/services/service-state.js.map +1 -1
- package/dist/lib/services/service-url.js +2 -1
- package/dist/lib/services/service-url.js.map +1 -1
- package/dist/lib/services/services.js +9 -7
- package/dist/lib/services/services.js.map +1 -1
- package/dist/lib/stateless-webex-plugin.js +2 -1
- package/dist/lib/stateless-webex-plugin.js.map +1 -1
- package/dist/lib/storage/decorators.js +16 -18
- package/dist/lib/storage/decorators.js.map +1 -1
- package/dist/lib/storage/errors.js +5 -5
- package/dist/lib/storage/errors.js.map +1 -1
- package/dist/lib/storage/make-webex-plugin-store.js +10 -8
- package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
- package/dist/lib/storage/make-webex-store.js.map +1 -1
- package/dist/lib/storage/memory-store-adapter.js +2 -1
- package/dist/lib/storage/memory-store-adapter.js.map +1 -1
- package/dist/lib/webex-core-plugin-mixin.js +14 -13
- package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-http-error.js +3 -4
- package/dist/lib/webex-http-error.js.map +1 -1
- package/dist/lib/webex-internal-core-plugin-mixin.js +14 -13
- package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-plugin.js +8 -5
- package/dist/lib/webex-plugin.js.map +1 -1
- package/dist/plugins/logger.js +3 -2
- package/dist/plugins/logger.js.map +1 -1
- package/dist/webex-core.js +38 -37
- package/dist/webex-core.js.map +1 -1
- package/dist/webex-internal-core.js +2 -1
- package/dist/webex-internal-core.js.map +1 -1
- package/package.json +20 -21
- package/src/lib/credentials/credentials.js +40 -82
- package/src/lib/credentials/scope.js +5 -24
- package/src/lib/credentials/token.js +1 -9
- package/src/lib/services/interceptors/service.js +2 -2
- package/src/lib/services/service-catalog.js +1 -3
- package/src/lib/services/services.js +0 -1
- package/src/webex-core.js +1 -13
- package/test/unit/spec/credentials/credentials.js +13 -169
- package/test/unit/spec/credentials/token.js +1 -11
- package/test/unit/spec/interceptors/auth.js +0 -3
- package/test/unit/spec/interceptors/webex-user-agent.js +6 -6
- package/test/unit/spec/services/interceptors/service.js +3 -9
- package/test/unit/spec/webex-core.js +0 -12
- package/dist/lib/constants.js +0 -13
- package/dist/lib/constants.js.map +0 -1
- package/src/lib/constants.js +0 -6
- package/test/unit/spec/credentials/scope.js +0 -80
|
@@ -15,15 +15,13 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
|
15
15
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
16
16
|
var _httpCore = require("@webex/http-core");
|
|
17
17
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
18
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
19
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
20
|
-
*/
|
|
18
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
21
19
|
var trailingSlashes = /(?:^\/)|(?:\/$)/;
|
|
22
20
|
|
|
23
21
|
/**
|
|
24
22
|
* @class
|
|
25
23
|
*/
|
|
26
|
-
var ServiceInterceptor =
|
|
24
|
+
var ServiceInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
27
25
|
(0, _inherits2.default)(ServiceInterceptor, _Interceptor);
|
|
28
26
|
var _super = _createSuper(ServiceInterceptor);
|
|
29
27
|
function ServiceInterceptor() {
|
|
@@ -52,13 +50,11 @@ var ServiceInterceptor = exports.default = /*#__PURE__*/function (_Interceptor)
|
|
|
52
50
|
// Destructure commonly referenced namespaces.
|
|
53
51
|
var services = this.webex.internal.services;
|
|
54
52
|
var service = options.service,
|
|
55
|
-
resource = options.resource
|
|
56
|
-
waitForServiceTimeout = options.waitForServiceTimeout;
|
|
53
|
+
resource = options.resource;
|
|
57
54
|
|
|
58
55
|
// Attempt to collect the service url.
|
|
59
56
|
return services.waitForService({
|
|
60
|
-
name: service
|
|
61
|
-
timeout: waitForServiceTimeout
|
|
57
|
+
name: service
|
|
62
58
|
}).then(function (serviceUrl) {
|
|
63
59
|
// Generate the combined service url and resource.
|
|
64
60
|
options.uri = _this.generateUri(serviceUrl, resource);
|
|
@@ -134,4 +130,5 @@ var ServiceInterceptor = exports.default = /*#__PURE__*/function (_Interceptor)
|
|
|
134
130
|
}]);
|
|
135
131
|
return ServiceInterceptor;
|
|
136
132
|
}(_httpCore.Interceptor);
|
|
133
|
+
exports.default = ServiceInterceptor;
|
|
137
134
|
//# sourceMappingURL=service.js.map
|
|
@@ -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","trailingSlashes","ServiceInterceptor","
|
|
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","trailingSlashes","ServiceInterceptor","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onRequest","options","_this","uri","normalizeOptions","validateOptions","services","webex","internal","service","resource","waitForService","name","then","serviceUrl","generateUri","catch","_promise","reject","Error","concat","length","undefined","formattedService","replace","formattedResource","api","create","Interceptor","exports"],"sources":["service.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\nconst trailingSlashes = /(?:^\\/)|(?:\\/$)/;\n\n/**\n * @class\n */\nexport default class ServiceInterceptor extends Interceptor {\n /**\n * @returns {ServiceInterceptor}\n */\n static create() {\n /* eslint no-invalid-this: [0] */\n return new ServiceInterceptor({webex: this});\n }\n\n /* eslint-disable no-param-reassign */\n /**\n * @see Interceptor#onRequest\n * @param {Object} options - The request PTO.\n * @returns {Object} - The mutated request PTO.\n */\n onRequest(options) {\n // Validate that the PTO includes a uri property.\n if (options.uri) {\n return options;\n }\n\n // Normalize and validate the PTO.\n this.normalizeOptions(options);\n this.validateOptions(options);\n\n // Destructure commonly referenced namespaces.\n const {services} = this.webex.internal;\n const {service, resource} = options;\n\n // Attempt to collect the service url.\n return services\n .waitForService({name: service})\n .then((serviceUrl) => {\n // Generate the combined service url and resource.\n options.uri = this.generateUri(serviceUrl, resource);\n\n return options;\n })\n .catch(() =>\n Promise.reject(new Error(`service-interceptor: '${service}' is not a known service`))\n );\n }\n\n /* eslint-disable class-methods-use-this */\n /**\n * Generate a usable request uri string from a service url and a resouce.\n *\n * @param {string} serviceUrl - The service url.\n * @param {string} [resource] - The resouce to be appended to the service url.\n * @returns {string} - The combined service url and resource.\n */\n generateUri(serviceUrl, resource = '') {\n const formattedService = serviceUrl.replace(trailingSlashes, '');\n const formattedResource = resource.replace(trailingSlashes, '');\n\n return `${formattedService}/${formattedResource}`;\n }\n\n /**\n * Normalizes request options relative to service identification.\n *\n * @param {Object} options - The request PTO.\n * @returns {Object} - The mutated request PTO.\n */\n normalizeOptions(options) {\n // Validate if the api property is used.\n if (options.api) {\n // Assign the service property the value of the api property if necessary.\n options.service = options.service || options.api;\n delete options.api;\n }\n }\n\n /**\n * Validates that the appropriate options for this interceptor are present.\n *\n * @param {Object} options - The request PTO.\n * @returns {Object} - The mutated request PTO.\n */\n validateOptions(options) {\n if (!options.resource) {\n throw new Error('a `resource` parameter is required');\n }\n\n if (!options.service) {\n throw new Error(\"a valid 'service' parameter is required\");\n }\n }\n /* eslint-enable class-methods-use-this, no-param-reassign */\n}\n"],"mappings":"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"}
|
|
@@ -6,7 +6,8 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
// Metrics for service catalog
|
|
9
|
-
var _default =
|
|
9
|
+
var _default = {
|
|
10
10
|
JS_SDK_SERVICE_NOT_FOUND: 'JS_SDK_SERVICE_NOT_FOUND'
|
|
11
11
|
};
|
|
12
|
+
exports.default = _default;
|
|
12
13
|
//# sourceMappingURL=metrics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_default","
|
|
1
|
+
{"version":3,"names":["_default","JS_SDK_SERVICE_NOT_FOUND","exports","default"],"sources":["metrics.js"],"sourcesContent":["// Metrics for service catalog\nexport default {\n JS_SDK_SERVICE_NOT_FOUND: 'JS_SDK_SERVICE_NOT_FOUND',\n};\n"],"mappings":";;;;;;;AAAA;AAAA,IAAAA,QAAA,GACe;EACbC,wBAAwB,EAAE;AAC5B,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAH,QAAA"}
|
|
@@ -22,8 +22,8 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs2
|
|
|
22
22
|
var _url = _interopRequireDefault(require("url"));
|
|
23
23
|
var _ampersandState = _interopRequireDefault(require("ampersand-state"));
|
|
24
24
|
var _serviceUrl = _interopRequireDefault(require("./service-url"));
|
|
25
|
-
function ownKeys(
|
|
26
|
-
function _objectSpread(
|
|
25
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys3(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
26
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
27
27
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
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; }
|
|
@@ -393,10 +393,9 @@ var ServiceCatalog = _ampersandState.default.extend({
|
|
|
393
393
|
if (_this5.status[serviceGroup].ready) {
|
|
394
394
|
resolve();
|
|
395
395
|
}
|
|
396
|
-
var validatedTimeout = typeof timeout === 'number' && timeout >= 0 ? timeout : 60;
|
|
397
396
|
var timeoutTimer = setTimeout(function () {
|
|
398
397
|
return reject(new Error("services: timeout occured while waiting for '".concat(serviceGroup, "' catalog to populate")));
|
|
399
|
-
},
|
|
398
|
+
}, timeout ? timeout * 1000 : 60000);
|
|
400
399
|
_this5.once(serviceGroup, function () {
|
|
401
400
|
clearTimeout(timeoutTimer);
|
|
402
401
|
resolve();
|
|
@@ -405,5 +404,6 @@ var ServiceCatalog = _ampersandState.default.extend({
|
|
|
405
404
|
}
|
|
406
405
|
});
|
|
407
406
|
/* eslint-enable no-underscore-dangle */
|
|
408
|
-
var _default =
|
|
407
|
+
var _default = ServiceCatalog;
|
|
408
|
+
exports.default = _default;
|
|
409
409
|
//# sourceMappingURL=service-catalog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_url","_interopRequireDefault","require","_ampersandState","_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","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 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 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","_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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"}
|
|
@@ -5,8 +5,9 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var _default =
|
|
8
|
+
var _default = {
|
|
9
9
|
hydra: 'https://api-usgov.webex.com/v1',
|
|
10
10
|
u2c: 'https://u2c.gov.ciscospark.com/u2c/api/v1'
|
|
11
11
|
};
|
|
12
|
+
exports.default = _default;
|
|
12
13
|
//# sourceMappingURL=service-fed-ramp.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["hydra","u2c"],"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":";;;;;;;
|
|
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"}
|
|
@@ -33,7 +33,7 @@ var _constants = require("./constants");
|
|
|
33
33
|
* @class
|
|
34
34
|
* @classdesc - Manages a single service host and its associated data.
|
|
35
35
|
*/
|
|
36
|
-
var ServiceHost =
|
|
36
|
+
var ServiceHost = /*#__PURE__*/function () {
|
|
37
37
|
/**
|
|
38
38
|
* Generate a new {@link ServiceHost}.
|
|
39
39
|
*
|
|
@@ -297,4 +297,5 @@ var ServiceHost = exports.default = /*#__PURE__*/function () {
|
|
|
297
297
|
}]);
|
|
298
298
|
return ServiceHost;
|
|
299
299
|
}();
|
|
300
|
+
exports.default = ServiceHost;
|
|
300
301
|
//# sourceMappingURL=service-host.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_url","_interopRequireDefault","require","_constants","ServiceHost","exports","default","pto","_classCallCheck2","validate","catalog","defaultUri","hostGroup","id","priority","uri","failed","replaced","_createClass2","key","get","includes","split","urlObj","Url","parse","host","concat","port","format","value","setStatus","_ref","undefined","polyGenerate","_ref2","name","url","_ref3","throwError","msg","Error","SERVICE_CATALOGS","length"],"sources":["service-host.js"],"sourcesContent":["import Url from 'url';\n\nimport {SERVICE_CATALOGS} from './constants';\n\n/**\n * The parameter transfer object for {@link ServiceHost#constructor}.\n *\n * @typedef {Object} ServiceHostConstructorPTO\n * @property {string} ServiceHostConstructorPTO.catalog - The host's catalog.\n * @property {string} ServiceHostConstructorPTO.defaultUri - The host's default.\n * @property {string} ServiceHostConstructorPTO.hostGroup - The host's group.\n * @property {string} ServiceHostConstructorPTO.id - The host's clusterId.\n * @property {number} ServiceHostConstructorPTO.priority - The host's priority.\n * @property {string} ServiceHostConstructorPTO.uri - The host's uri.\n */\n\n/**\n * The parameter transfer object for {@link ServiceHost#polyGenerate}.\n *\n * @typedef {Object} ServiceHostPolyGeneratePTO\n * @property {string} ServiceHostPolyGeneratePTO.catalog - The target catalog.\n * @property {string} ServiceHostPolyGeneratePTO.name - The service name.\n * @property {string} ServiceHostPolyGeneratePTO.url - The service url.\n */\n\n/**\n * @class\n * @classdesc - Manages a single service host and its associated data.\n */\nexport default class ServiceHost {\n /**\n * Generate a new {@link ServiceHost}.\n *\n * @public\n * @constructor\n * @memberof ServiceHost\n * @param {ServiceHostConstructorPTO} pto\n */\n constructor(pto) {\n // Validate the parameter transfer object.\n ServiceHost.validate(pto);\n\n // Map the parameter transfer object to the class object.\n /**\n * The catalog name that the {@link ServiceHost} is associated with.\n *\n * @instance\n * @type {string}\n * @public\n * @memberof ServiceHost\n */\n this.catalog = pto.catalog;\n\n /**\n * The default URI for the {@link ServiceHost}.\n *\n * @instance\n * @type {string}\n * @public\n * @memberof ServiceHost\n */\n this.default = pto.defaultUri;\n\n /**\n * The host group that the {@link ServiceHost} is associated with.\n *\n * @instance\n * @type {string}\n * @public\n * @memberof ServiceHost\n */\n this.hostGroup = pto.hostGroup;\n\n /**\n * The cluster ID of the {@link ServiceHost}.\n *\n * @instance\n * @type {string}\n * @public\n * @memberof ServiceHost\n */\n this.id = pto.id;\n\n /**\n * The priority value of the {@link ServiceHost}. The lower the number, the\n * higher the priority.\n *\n * @instance\n * @type {number}\n * @public\n * @memberof ServiceHost\n */\n this.priority = pto.priority;\n\n /**\n * The host uri of the {@link ServiceHost}.\n *\n * @instance\n * @type {string}\n * @public\n * @memberof ServiceHost\n */\n this.uri = pto.uri;\n\n // Generate flags.\n /**\n * If the {@link ServiceHost} is marked as failed.\n *\n * @instance\n * @type {boolean}\n * @protected\n * @memberof ServiceHost\n */\n this.failed = false;\n\n /**\n * If the {@link ServiceHost} is marked as replaced.\n *\n * @instance\n * @type {boolean}\n * @protected\n * @memberof ServiceHost\n */\n this.replaced = false;\n }\n\n /**\n * If the {@link ServiceHost} is in an active state.\n *\n * @public\n * @memberof ServiceHost\n * @type {boolean} - `true` if the service is active and usable.\n */\n get active() {\n // Validate that the `ServiceHost` was not marked as failed or replaced.\n return !this.failed && !this.replaced;\n }\n\n /**\n * If the host is local to the user's cluster.\n *\n * @public\n * @memberof ServiceHost\n * @type {boolean} - If the host is local.\n */\n get local() {\n return this.default.includes(this.hostGroup);\n }\n\n /**\n * The service value.\n *\n * @public\n * @memberof ServiceHost\n * @type {string} - The service value.\n */\n get service() {\n return this.id.split(':')[3];\n }\n\n /**\n * The formatted url for the host.\n *\n * @public\n * @memberof ServiceHost\n * @type {string} - The service url.\n */\n get url() {\n // Generate a url object from the default url.\n const urlObj = Url.parse(this.default);\n\n // Format the host of the generated url object.\n urlObj.host = `${this.uri}${urlObj.port ? `:${urlObj.port}` : ''}`;\n\n // Assign the formatted url to this.\n return Url.format(urlObj);\n }\n\n /**\n * Set one or more of the status properties of the class object.\n *\n * @public\n * @memberof ServiceHost\n * @param {Object} pto - The parameter transfer object.\n * @property {boolean} [pto.failed] - The failed status to set.\n * @property {boolean} [pto.replaced] - the replaced status to set.\n * @returns {this}\n */\n setStatus({failed, replaced}) {\n if (failed !== undefined) {\n this.failed = failed;\n }\n\n if (replaced !== undefined) {\n this.replaced = replaced;\n }\n\n return this;\n }\n\n /**\n * Generate a service host using only a catalog, name, and URL.\n *\n * @public\n * @static\n * @memberof ServiceHost\n * @param {ServiceHostPolyGeneratePTO} pto\n * @returns {ServiceHost} - The generated service host.\n */\n static polyGenerate({catalog, name, url}) {\n return new ServiceHost({\n catalog,\n defaultUri: url,\n hostGroup: Url.parse(url).host,\n id: name ? `poly-head:poly-group:poly-cluster:${name}` : undefined,\n priority: 1,\n uri: Url.parse(url).host,\n });\n }\n\n /**\n * Validate that a constructor parameter transfer object is valid.\n *\n * @public\n * @static\n * @memberof ServiceHost\n * @param {ServiceHostConstructorPTO} pto\n * @throws - If the parameter transfer object is not valid.\n * @returns {undefined}\n */\n static validate({catalog, defaultUri, hostGroup, id, priority, uri}) {\n // Generate error-throwing method.\n const throwError = (msg) => {\n throw new Error(`service-host: invalid constructor parameters, ${msg}`);\n };\n\n // Validate the catalog property.\n if (!SERVICE_CATALOGS.includes(catalog)) {\n throwError(\"'catalog' must be a string\");\n }\n\n // Validate the `defaultUri` property.\n if (typeof defaultUri !== 'string') {\n throwError(\"'defaultUri' must be a string\");\n }\n\n // Validate the `hostGroup` property.\n if (typeof hostGroup !== 'string') {\n throwError(\"'hostGroup' must be a string\");\n }\n\n // Validate the `id` property.\n if (typeof id !== 'string' || id.split(':').length !== 4) {\n throwError(\"'id' must be a string that contains 3 ':' characters\");\n }\n\n // Validate the `priority` property.\n if (typeof priority !== 'number') {\n throwError(\"'priority' must be a number\");\n }\n\n // Validate the `uri` property.\n if (typeof uri !== 'string') {\n throwError(\"'uri' must be a string\");\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_url","_interopRequireDefault","require","_constants","ServiceHost","pto","_classCallCheck2","default","validate","catalog","defaultUri","hostGroup","id","priority","uri","failed","replaced","_createClass2","key","get","includes","split","urlObj","Url","parse","host","concat","port","format","value","setStatus","_ref","undefined","polyGenerate","_ref2","name","url","_ref3","throwError","msg","Error","SERVICE_CATALOGS","length","exports"],"sources":["service-host.js"],"sourcesContent":["import Url from 'url';\n\nimport {SERVICE_CATALOGS} from './constants';\n\n/**\n * The parameter transfer object for {@link ServiceHost#constructor}.\n *\n * @typedef {Object} ServiceHostConstructorPTO\n * @property {string} ServiceHostConstructorPTO.catalog - The host's catalog.\n * @property {string} ServiceHostConstructorPTO.defaultUri - The host's default.\n * @property {string} ServiceHostConstructorPTO.hostGroup - The host's group.\n * @property {string} ServiceHostConstructorPTO.id - The host's clusterId.\n * @property {number} ServiceHostConstructorPTO.priority - The host's priority.\n * @property {string} ServiceHostConstructorPTO.uri - The host's uri.\n */\n\n/**\n * The parameter transfer object for {@link ServiceHost#polyGenerate}.\n *\n * @typedef {Object} ServiceHostPolyGeneratePTO\n * @property {string} ServiceHostPolyGeneratePTO.catalog - The target catalog.\n * @property {string} ServiceHostPolyGeneratePTO.name - The service name.\n * @property {string} ServiceHostPolyGeneratePTO.url - The service url.\n */\n\n/**\n * @class\n * @classdesc - Manages a single service host and its associated data.\n */\nexport default class ServiceHost {\n /**\n * Generate a new {@link ServiceHost}.\n *\n * @public\n * @constructor\n * @memberof ServiceHost\n * @param {ServiceHostConstructorPTO} pto\n */\n constructor(pto) {\n // Validate the parameter transfer object.\n ServiceHost.validate(pto);\n\n // Map the parameter transfer object to the class object.\n /**\n * The catalog name that the {@link ServiceHost} is associated with.\n *\n * @instance\n * @type {string}\n * @public\n * @memberof ServiceHost\n */\n this.catalog = pto.catalog;\n\n /**\n * The default URI for the {@link ServiceHost}.\n *\n * @instance\n * @type {string}\n * @public\n * @memberof ServiceHost\n */\n this.default = pto.defaultUri;\n\n /**\n * The host group that the {@link ServiceHost} is associated with.\n *\n * @instance\n * @type {string}\n * @public\n * @memberof ServiceHost\n */\n this.hostGroup = pto.hostGroup;\n\n /**\n * The cluster ID of the {@link ServiceHost}.\n *\n * @instance\n * @type {string}\n * @public\n * @memberof ServiceHost\n */\n this.id = pto.id;\n\n /**\n * The priority value of the {@link ServiceHost}. The lower the number, the\n * higher the priority.\n *\n * @instance\n * @type {number}\n * @public\n * @memberof ServiceHost\n */\n this.priority = pto.priority;\n\n /**\n * The host uri of the {@link ServiceHost}.\n *\n * @instance\n * @type {string}\n * @public\n * @memberof ServiceHost\n */\n this.uri = pto.uri;\n\n // Generate flags.\n /**\n * If the {@link ServiceHost} is marked as failed.\n *\n * @instance\n * @type {boolean}\n * @protected\n * @memberof ServiceHost\n */\n this.failed = false;\n\n /**\n * If the {@link ServiceHost} is marked as replaced.\n *\n * @instance\n * @type {boolean}\n * @protected\n * @memberof ServiceHost\n */\n this.replaced = false;\n }\n\n /**\n * If the {@link ServiceHost} is in an active state.\n *\n * @public\n * @memberof ServiceHost\n * @type {boolean} - `true` if the service is active and usable.\n */\n get active() {\n // Validate that the `ServiceHost` was not marked as failed or replaced.\n return !this.failed && !this.replaced;\n }\n\n /**\n * If the host is local to the user's cluster.\n *\n * @public\n * @memberof ServiceHost\n * @type {boolean} - If the host is local.\n */\n get local() {\n return this.default.includes(this.hostGroup);\n }\n\n /**\n * The service value.\n *\n * @public\n * @memberof ServiceHost\n * @type {string} - The service value.\n */\n get service() {\n return this.id.split(':')[3];\n }\n\n /**\n * The formatted url for the host.\n *\n * @public\n * @memberof ServiceHost\n * @type {string} - The service url.\n */\n get url() {\n // Generate a url object from the default url.\n const urlObj = Url.parse(this.default);\n\n // Format the host of the generated url object.\n urlObj.host = `${this.uri}${urlObj.port ? `:${urlObj.port}` : ''}`;\n\n // Assign the formatted url to this.\n return Url.format(urlObj);\n }\n\n /**\n * Set one or more of the status properties of the class object.\n *\n * @public\n * @memberof ServiceHost\n * @param {Object} pto - The parameter transfer object.\n * @property {boolean} [pto.failed] - The failed status to set.\n * @property {boolean} [pto.replaced] - the replaced status to set.\n * @returns {this}\n */\n setStatus({failed, replaced}) {\n if (failed !== undefined) {\n this.failed = failed;\n }\n\n if (replaced !== undefined) {\n this.replaced = replaced;\n }\n\n return this;\n }\n\n /**\n * Generate a service host using only a catalog, name, and URL.\n *\n * @public\n * @static\n * @memberof ServiceHost\n * @param {ServiceHostPolyGeneratePTO} pto\n * @returns {ServiceHost} - The generated service host.\n */\n static polyGenerate({catalog, name, url}) {\n return new ServiceHost({\n catalog,\n defaultUri: url,\n hostGroup: Url.parse(url).host,\n id: name ? `poly-head:poly-group:poly-cluster:${name}` : undefined,\n priority: 1,\n uri: Url.parse(url).host,\n });\n }\n\n /**\n * Validate that a constructor parameter transfer object is valid.\n *\n * @public\n * @static\n * @memberof ServiceHost\n * @param {ServiceHostConstructorPTO} pto\n * @throws - If the parameter transfer object is not valid.\n * @returns {undefined}\n */\n static validate({catalog, defaultUri, hostGroup, id, priority, uri}) {\n // Generate error-throwing method.\n const throwError = (msg) => {\n throw new Error(`service-host: invalid constructor parameters, ${msg}`);\n };\n\n // Validate the catalog property.\n if (!SERVICE_CATALOGS.includes(catalog)) {\n throwError(\"'catalog' must be a string\");\n }\n\n // Validate the `defaultUri` property.\n if (typeof defaultUri !== 'string') {\n throwError(\"'defaultUri' must be a string\");\n }\n\n // Validate the `hostGroup` property.\n if (typeof hostGroup !== 'string') {\n throwError(\"'hostGroup' must be a string\");\n }\n\n // Validate the `id` property.\n if (typeof id !== 'string' || id.split(':').length !== 4) {\n throwError(\"'id' must be a string that contains 3 ':' characters\");\n }\n\n // Validate the `priority` property.\n if (typeof priority !== 'number') {\n throwError(\"'priority' must be a number\");\n }\n\n // Validate the `uri` property.\n if (typeof uri !== 'string') {\n throwError(\"'uri' must be a string\");\n }\n }\n}\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAHA,IAIqBE,WAAW;EAC9B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,SAAAA,YAAYC,GAAG,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAH,WAAA;IACf;IACAA,WAAW,CAACI,QAAQ,CAACH,GAAG,CAAC;;IAEzB;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACI,OAAO,GAAGJ,GAAG,CAACI,OAAO;;IAE1B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACF,OAAO,GAAGF,GAAG,CAACK,UAAU;;IAE7B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,SAAS,GAAGN,GAAG,CAACM,SAAS;;IAE9B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,EAAE,GAAGP,GAAG,CAACO,EAAE;;IAEhB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,QAAQ,GAAGR,GAAG,CAACQ,QAAQ;;IAE5B;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,GAAG,GAAGT,GAAG,CAACS,GAAG;;IAElB;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,MAAM,GAAG,KAAK;;IAEnB;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;IACI,IAAI,CAACC,QAAQ,GAAG,KAAK;EACvB;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EANE,IAAAC,aAAA,CAAAV,OAAA,EAAAH,WAAA;IAAAc,GAAA;IAAAC,GAAA,EAOA,SAAAA,IAAA,EAAa;MACX;MACA,OAAO,CAAC,IAAI,CAACJ,MAAM,IAAI,CAAC,IA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"}
|
|
@@ -19,8 +19,8 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime-corejs2/he
|
|
|
19
19
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/createClass"));
|
|
20
20
|
var _constants = require("./constants");
|
|
21
21
|
var _serviceHost = _interopRequireDefault(require("./service-host"));
|
|
22
|
-
function ownKeys(
|
|
23
|
-
function _objectSpread(
|
|
22
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys2(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
23
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
24
24
|
/**
|
|
25
25
|
* The parameter transfer object for {@link ServiceRegistry#mapRemoteCatalog}.
|
|
26
26
|
* This object is shaped to match the object returned from the **U2C** service.
|
|
@@ -50,7 +50,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
50
50
|
* @class
|
|
51
51
|
* @classdesc - Manages a collection of {@link ServiceHost} class objects.
|
|
52
52
|
*/
|
|
53
|
-
var ServiceRegistry =
|
|
53
|
+
var ServiceRegistry = /*#__PURE__*/function () {
|
|
54
54
|
/**
|
|
55
55
|
* Generate a new {@link ServiceHost}.
|
|
56
56
|
*
|
|
@@ -531,4 +531,5 @@ var ServiceRegistry = exports.default = /*#__PURE__*/function () {
|
|
|
531
531
|
}]);
|
|
532
532
|
return ServiceRegistry;
|
|
533
533
|
}();
|
|
534
|
+
exports.default = ServiceRegistry;
|
|
534
535
|
//# sourceMappingURL=service-registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_constants","require","_serviceHost","_interopRequireDefault","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","ServiceRegistry","exports","_classCallCheck2","hosts","_createClass2","key","get","find","active","local","priority","reduce","map","host","hostReference","service","url","value","clear","removing","includes","failed","failing","setStatus","filterActive","_toConsumableArray2","filterCatalog","catalog","undefined","catalogs","_isArray","catalogId","mapCatalogName","id","type","SERVICE_CATALOGS_ENUM_TYPES","STRING","filterCluster","cluster","clusters","filterLocal","filterPriority","filteredHosts","currentHost","foundHost","hostGroup","foundHostCatalogPriority","NUMBER","currentHostCatalogPriority","splice","indexOf","filterService","services","filterUrl","urls","_this","_ref","load","_this$hosts","validHosts","loadableHost","ServiceHost","replaced","replacing","reset","resetting","_ref2","SERVICE_CATALOGS","mapRemoteCatalog","_ref3","hostCatalog","serviceLinks","catalogIndex","Error","concat","_keys","output","defaultUri","split","uri"],"sources":["service-registry.js"],"sourcesContent":["import {SERVICE_CATALOGS, SERVICE_CATALOGS_ENUM_TYPES} from './constants';\nimport ServiceHost from './service-host';\n\n/**\n * The parameter transfer object for {@link ServiceRegistry#mapRemoteCatalog}.\n * This object is shaped to match the object returned from the **U2C** service.\n *\n * @typedef {Record<string, string>} RSL\n * @typedef {Record<string, Array<Record<string, number | string>>>} RHC\n *\n * @typedef {Object} MapRemoteCatalogPTO\n * @property {string} MapRemoteCatalogPTO.catalog - Service catalog name.\n * @property {RSL} MapRemoteCatalogPTO.serviceLinks - Service links.\n * @property {RHC} MapRemoteCatalogPTO.hostCatalog - Service host catalog.\n */\n\n/**\n * Service manipulation filter object for retrieving services within the\n * {@link ServiceRegistry} class.\n *\n * @typedef {Object} HostFilter\n * @property {boolean} [HostFilter.active] - Active state to filter.\n * @property {Array<string> | string} [HostFilter.catalog] - Catalogs to filter.\n * @property {Array<string> | string} [HostFilter.cluster] - Clusters to filter.\n * @property {boolean} [HostFilter.local] - Filter to the user's home cluster.\n * @property {boolean} [HostFilter.priority] - Filter for the highest priority.\n * @property {Array<string> | string} [HostFilter.service] - Services to filter.\n * @property {Array<string> | string} [HostFilter.url] - URL to filter.\n */\n\n/**\n * @class\n * @classdesc - Manages a collection of {@link ServiceHost} class objects.\n */\nexport default class ServiceRegistry {\n /**\n * Generate a new {@link ServiceHost}.\n *\n * @public\n * @constructor\n * @memberof ServiceHost\n */\n constructor() {\n /**\n * The collection of managed {@link ServiceHost}s.\n *\n * @instance\n * @type {Array<ServiceHost>}\n * @private\n * @memberof ServiceRegistry\n */\n this.hosts = [];\n }\n\n /**\n * An active, local, and priority mapped record of the current\n * {@link ServiceCatalog#hosts}.\n *\n * @public\n * @memberof ServiceCatalog\n * @type {Record<string, string>}\n */\n get map() {\n // Get a list of active, local, and priority-mapped hosts.\n return this.find({\n active: true,\n local: true,\n priority: true,\n }).reduce((map, host) => {\n // Generate a new object to assign the existing map.\n const hostReference = {};\n\n // Assign the key:value pair for the service and url.\n hostReference[host.service] = host.url;\n\n // Assign the reference to the map and return.\n return {...map, ...hostReference};\n }, {});\n }\n\n /**\n * Removes a collection of {@link ServiceHost} class objects from the\n * {@link ServiceRegistry#hosts} array based on the provided\n * {@link HostFilter}.\n *\n * @public\n * @memberof ServiceRegistry\n * @param {HostFilter} filter - The inclusive filter for hosts to remove.\n * @returns {Array<ServiceHost>} - The removed {@link ServiceHost}s.\n */\n clear(filter) {\n // Collect a list of hosts to remove based on the provided filter.\n const removing = this.find(filter);\n\n // Remove the hosts from the array.\n this.hosts = this.hosts.filter((host) => !removing.includes(host));\n\n // Return the removed hosts.\n return removing;\n }\n\n /**\n * Mark a collection of {@link ServiceHost} class objects from the\n * {@link ServiceRegistry#hosts} array as failed based on the provided\n * {@link HostFilter}.\n *\n * @public\n * @memberof ServiceRegistry\n * @param {HostFilter} filter - The inclusive filter for hosts to mark failed.\n * @returns {Array<ServiceHost>} - The {@link ServiceHost}s marked failed.\n */\n failed(filter) {\n // Collect a list of hosts to mark as failed based on the provided filter.\n const failing = this.find(filter);\n\n // Mark the hosts from the array as failed.\n failing.forEach((host) => {\n host.setStatus({failed: true});\n });\n\n // Return the marked hosts.\n return failing;\n }\n\n /**\n * Filter the {@link ServiceRegistry#hosts} array against their active states.\n *\n * @private\n * @memberof ServiceRegistry\n * @param {boolean} [active] - Filter for the host state.\n * @returns {Array<ServiceHost>} - The filtered host array.\n */\n filterActive(active) {\n // Filter the host array if the active requirement is true.\n return typeof active === 'boolean'\n ? this.hosts.filter((host) => host.active === active)\n : [...this.hosts];\n }\n\n /**\n * Filter the {@link ServiceRegistry#hosts} array against their assigned\n * catalog values.\n *\n * @private\n * @memberof ServiceRegistry\n * @param {Array<string> | string} [catalog] - Catalogs to filter.\n * @returns {Array<ServiceHost>} - The filtered host array.\n */\n filterCatalog(catalog = []) {\n // Generate a catalog names array based on the provided catalog param.\n const catalogs = (Array.isArray(catalog) ? catalog : [catalog]).map(\n (catalogId) =>\n ServiceRegistry.mapCatalogName({\n id: catalogId,\n type: SERVICE_CATALOGS_ENUM_TYPES.STRING,\n }) || catalogId\n );\n\n // Filter the host array against the catalog names array.\n return catalogs.length > 0\n ? this.hosts.filter((host) => catalogs.includes(host.catalog))\n : [...this.hosts];\n }\n\n /**\n * Filter the {@link ServiceRegistry#hosts} array against their assigned\n * cluster values.\n *\n * @private\n * @memberof ServiceRegistry\n * @param {Array<string> | string} [cluster] - Clusters to filter for.\n * @returns {Array<ServiceHost>} - The filtered host array.\n */\n filterCluster(cluster = []) {\n // Generate an array of clusters regardless of parameter type.\n const clusters = Array.isArray(cluster) ? cluster : [cluster];\n\n // Filter the host array against the provided clusters.\n return clusters.length > 0\n ? this.hosts.filter((host) => clusters.includes(host.id))\n : [...this.hosts];\n }\n\n /**\n * Filter the {@link ServiceRegistry#hosts} array against their location in\n * reference to the authenticated user.\n *\n * @private\n * @memberof ServiceRegistry\n * @param {boolean} [local] - Filter for the host location.\n * @returns {Array<ServiceHost>} - The filtered host array.\n */\n filterLocal(local) {\n return typeof local === 'boolean'\n ? this.hosts.filter((host) => host.local === local)\n : [...this.hosts];\n }\n\n /**\n * Filter the {@link ServiceRegistry#hosts} array for the highest priority\n * hosts for each specific service.\n *\n * @private\n * @memberof ServiceRegistry\n * @param {boolean} [priority] - Filter for the highest priority\n * @returns {Array<ServiceHost>} - The filtered host array.\n */\n filterPriority(priority) {\n return priority\n ? this.hosts.reduce((filteredHosts, currentHost) => {\n // Validate that the current host is not active.\n if (!currentHost.active) {\n return filteredHosts;\n }\n\n // Determine if the filtered hosts array contains a host from the same\n // host group.\n const foundHost = filteredHosts.find((host) => host.hostGroup === currentHost.hostGroup);\n\n // Validate if a host was found.\n if (!foundHost) {\n filteredHosts.push(currentHost);\n\n return filteredHosts;\n }\n\n // Map the found host's catalog to its priority value.\n const foundHostCatalogPriority = ServiceRegistry.mapCatalogName({\n id: foundHost.catalog,\n type: SERVICE_CATALOGS_ENUM_TYPES.NUMBER,\n });\n\n // Map the current host's catalog to its priority value.\n const currentHostCatalogPriority = ServiceRegistry.mapCatalogName({\n id: currentHost.catalog,\n type: SERVICE_CATALOGS_ENUM_TYPES.NUMBER,\n });\n\n // Validate if the found host has a lower priority than the current\n // host.\n if (\n foundHostCatalogPriority < currentHostCatalogPriority ||\n foundHost.priority < currentHost.priority\n ) {\n filteredHosts.splice(filteredHosts.indexOf(foundHost, 1));\n filteredHosts.push(currentHost);\n }\n\n return filteredHosts;\n }, [])\n : [...this.hosts];\n }\n\n /**\n * Filter the {@link ServiceRegistry#hosts} array for hosts with a specified\n * set of service names.\n *\n * @private\n * @memberof ServiceRegistry\n * @param {Array<string> | string} [service] - Services to filter.\n * @returns {Array<ServiceHost>} - The filtered host array.\n */\n filterService(service = []) {\n // Generate an array of services regardless of parameter type.\n const services = Array.isArray(service) ? service : [service];\n\n // Filter the host array against the provided services.\n return services.length > 0\n ? this.hosts.filter((host) => services.includes(host.service))\n : [...this.hosts];\n }\n\n /**\n * Filter the {@link ServiceRegistry#hosts} array for hosts with a specified\n * set of URLs.\n *\n * @private\n * @memberof ServiceRegistry\n * @param {Array<string> | string} [url] - URL to filter.\n * @returns {Array<ServiceHost>} - The filter host array.\n */\n filterUrl(url = []) {\n // Generate an array of URLs regardless of the parameter type.\n const urls = Array.isArray(url) ? url : [url];\n\n // Filter the host array against the provided URLs.\n return urls.length > 0 ? this.hosts.filter((host) => urls.includes(host.url)) : [...this.hosts];\n }\n\n /**\n * Get an array of {@link ServiceHost}s based on a provided\n * {@link HostFilter} from the {@link ServiceRegistry#hosts} array.\n *\n * @public\n * @memberof ServiceRegistry\n * @param {HostFilter} [filter] - The inclusive filter for hosts to find.\n * @returns {Array<ServiceHost>} - The filtered hosts.\n */\n find({active, catalog, cluster, local, priority, service, url} = {}) {\n return this.hosts.filter(\n (host) =>\n this.filterActive(active).includes(host) &&\n this.filterCatalog(catalog).includes(host) &&\n this.filterCluster(cluster).includes(host) &&\n this.filterLocal(local).includes(host) &&\n this.filterPriority(priority).includes(host) &&\n this.filterService(service).includes(host) &&\n this.filterUrl(url).includes(host)\n );\n }\n\n /**\n * Load a formatted array of {@link ServiceHost} constructor parameter\n * transfer objects as instances of {@link ServiceHost} class objects to the\n * {@link ServiceRegistry#hosts} array.\n *\n * @public\n * @memberof ServiceRegistry\n * @param {Array<ServiceHost.ConstructorPTO>} hosts\n * @returns {this}\n */\n load(hosts = []) {\n // Validate that the provided hosts are eligible to be loaded.\n const validHosts = hosts.filter(\n (host) =>\n !!ServiceRegistry.mapCatalogName({\n id: host.catalog,\n type: SERVICE_CATALOGS_ENUM_TYPES.STRING,\n })\n );\n\n // Load the eligible hosts.\n this.hosts.push(...validHosts.map((loadableHost) => new ServiceHost(loadableHost)));\n\n return this;\n }\n\n /**\n * Mark a collection of {@link ServiceHost} class objects from the\n * {@link ServiceRegistry#hosts} array as replaced based on the provided\n * {@link HostFilter}.\n *\n * @public\n * @memberof ServiceRegistry\n * @param {HostFilter} filter - The inclusive filter to mark replaced.\n * @returns {Array<ServiceHost>} - The {@link ServiceHost}s marked replaced.\n */\n replaced(filter) {\n // Collect a list of hosts to mark as replaced based on the provided filter.\n const replacing = this.find(filter);\n\n // Mark the hosts from the array as replaced.\n replacing.forEach((host) => {\n host.setStatus({replaced: true});\n });\n\n // Return the marked hosts.\n return replacing;\n }\n\n /**\n * Reset the failed status of a collection of {@link ServiceHost} class\n * objects from the {@link ServiceRegistry#hosts} array based on the provided\n * {@link HostFilter}.\n *\n * @public\n * @memberof ServiceRegistry\n * @param {HostFilter} filter - The inclusive filter of hosts to reset.\n * @returns {Array<ServiceHost>} - The {@link ServiceHost}s that reset.\n */\n reset(filter) {\n // Collect a list of hosts to mark as replaced based on the provided filter.\n const resetting = this.find(filter);\n\n // Mark the hosts from the array as replaced.\n resetting.forEach((host) => {\n host.setStatus({failed: false});\n });\n\n // Return the marked hosts.\n return resetting;\n }\n\n /**\n * Convert a {@link SERVICE_CATALOGS} identifier or value to its associated\n * idenfier or value.\n *\n * @public\n * @static\n * @memberof ServiceRegistry\n * @param {Object} pto - The parameter transfer object.\n * @property {string | number} pto.id - The identifier to convert in the enum.\n * @property {SERVICE_CATALOGS_ENUM_TYPES} pto.type - The desired output.\n * @returns {string|number} - The matching enum value or index.\n */\n static mapCatalogName({id, type}) {\n // Validate that the id is a number.\n if (typeof id === 'number') {\n // Validate that the desired type is a number.\n if (type === SERVICE_CATALOGS_ENUM_TYPES.NUMBER) {\n return SERVICE_CATALOGS[id] !== undefined ? id : undefined;\n }\n\n // Validate that the desired type is a string.\n if (type === SERVICE_CATALOGS_ENUM_TYPES.STRING) {\n return SERVICE_CATALOGS[id];\n }\n }\n\n // Validate that the id is a string.\n if (typeof id === 'string') {\n // Validate that the desired type is a string.\n if (type === SERVICE_CATALOGS_ENUM_TYPES.STRING) {\n return SERVICE_CATALOGS.includes(id) ? id : undefined;\n }\n\n // Validate that the desired type is a number.\n if (type === SERVICE_CATALOGS_ENUM_TYPES.NUMBER) {\n return SERVICE_CATALOGS.includes(id) ? SERVICE_CATALOGS.indexOf(id) : undefined;\n }\n }\n\n return undefined;\n }\n\n /**\n * Generate a formatted array based on the object received from the **U2C**\n * service for usage in the {@link ServiceRegistry#load} method.\n *\n * @public\n * @static\n * @memberof ServiceRegistry\n * @param {MapRemoteCatalogPTO} pto - The parameter transfer object.\n * @throws - If the target catalog does not exist.\n * @returns {Array<ServiceHost#ServiceHostConstructorPTO>}\n */\n static mapRemoteCatalog({catalog, hostCatalog, serviceLinks}) {\n // Collect the service catalog name if needed.\n const catalogIndex = ServiceRegistry.mapCatalogName({\n id: catalog,\n type: SERVICE_CATALOGS_ENUM_TYPES.STRING,\n });\n\n // Validate that the target catalog exists.\n if (!SERVICE_CATALOGS.includes(catalogIndex)) {\n throw new Error(`service-catalogs: '${catalog}' is not a valid catalog`);\n }\n\n // Map the remote catalog to a mountable host array.\n return Object.keys(hostCatalog).reduce((output, key) => {\n output.push(\n ...hostCatalog[key].map((host) => ({\n catalog: catalogIndex,\n defaultUri: serviceLinks[host.id.split(':')[3]],\n hostGroup: key,\n id: host.id,\n priority: host.priority,\n uri: host.host,\n }))\n );\n\n return output;\n }, []);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_constants","require","_serviceHost","_interopRequireDefault","ownKeys","object","enumerableOnly","keys","_Object$keys2","_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","ServiceRegistry","_classCallCheck2","hosts","_createClass2","get","find","active","local","priority","reduce","map","host","hostReference","service","url","value","clear","removing","includes","failed","failing","setStatus","filterActive","_toConsumableArray2","filterCatalog","catalog","undefined","catalogs","_isArray","catalogId","mapCatalogName","id","type","SERVICE_CATALOGS_ENUM_TYPES","STRING","filterCluster","cluster","clusters","filterLocal","filterPriority","filteredHosts","currentHost","foundHost","hostGroup","foundHostCatalogPriority","NUMBER","currentHostCatalogPriority","splice","indexOf","filterService","services","filterUrl","urls","_this","_ref","load","_this$hosts","validHosts","loadableHost","ServiceHost","replaced","replacing","reset","resetting","_ref2","SERVICE_CATALOGS","mapRemoteCatalog","_ref3","hostCatalog","serviceLinks","catalogIndex","Error","concat","_keys","output","defaultUri","split","uri","exports"],"sources":["service-registry.js"],"sourcesContent":["import {SERVICE_CATALOGS, SERVICE_CATALOGS_ENUM_TYPES} from './constants';\nimport ServiceHost from './service-host';\n\n/**\n * The parameter transfer object for {@link ServiceRegistry#mapRemoteCatalog}.\n * This object is shaped to match the object returned from the **U2C** service.\n *\n * @typedef {Record<string, string>} RSL\n * @typedef {Record<string, Array<Record<string, number | string>>>} RHC\n *\n * @typedef {Object} MapRemoteCatalogPTO\n * @property {string} MapRemoteCatalogPTO.catalog - Service catalog name.\n * @property {RSL} MapRemoteCatalogPTO.serviceLinks - Service links.\n * @property {RHC} MapRemoteCatalogPTO.hostCatalog - Service host catalog.\n */\n\n/**\n * Service manipulation filter object for retrieving services within the\n * {@link ServiceRegistry} class.\n *\n * @typedef {Object} HostFilter\n * @property {boolean} [HostFilter.active] - Active state to filter.\n * @property {Array<string> | string} [HostFilter.catalog] - Catalogs to filter.\n * @property {Array<string> | string} [HostFilter.cluster] - Clusters to filter.\n * @property {boolean} [HostFilter.local] - Filter to the user's home cluster.\n * @property {boolean} [HostFilter.priority] - Filter for the highest priority.\n * @property {Array<string> | string} [HostFilter.service] - Services to filter.\n * @property {Array<string> | string} [HostFilter.url] - URL to filter.\n */\n\n/**\n * @class\n * @classdesc - Manages a collection of {@link ServiceHost} class objects.\n */\nexport default class ServiceRegistry {\n /**\n * Generate a new {@link ServiceHost}.\n *\n * @public\n * @constructor\n * @memberof ServiceHost\n */\n constructor() {\n /**\n * The collection of managed {@link ServiceHost}s.\n *\n * @instance\n * @type {Array<ServiceHost>}\n * @private\n * @memberof ServiceRegistry\n */\n this.hosts = [];\n }\n\n /**\n * An active, local, and priority mapped record of the current\n * {@link ServiceCatalog#hosts}.\n *\n * @public\n * @memberof ServiceCatalog\n * @type {Record<string, string>}\n */\n get map() {\n // Get a list of active, local, and priority-mapped hosts.\n return this.find({\n active: true,\n local: true,\n priority: true,\n }).reduce((map, host) => {\n // Generate a new object to assign the existing map.\n const hostReference = {};\n\n // Assign the key:value pair for the service and url.\n hostReference[host.service] = host.url;\n\n // Assign the reference to the map and return.\n return {...map, ...hostReference};\n }, {});\n }\n\n /**\n * Removes a collection of {@link ServiceHost} class objects from the\n * {@link ServiceRegistry#hosts} array based on the provided\n * {@link HostFilter}.\n *\n * @public\n * @memberof ServiceRegistry\n * @param {HostFilter} filter - The inclusive filter for hosts to remove.\n * @returns {Array<ServiceHost>} - The removed {@link ServiceHost}s.\n */\n clear(filter) {\n // Collect a list of hosts to remove based on the provided filter.\n const removing = this.find(filter);\n\n // Remove the hosts from the array.\n this.hosts = this.hosts.filter((host) => !removing.includes(host));\n\n // Return the removed hosts.\n return removing;\n }\n\n /**\n * Mark a collection of {@link ServiceHost} class objects from the\n * {@link ServiceRegistry#hosts} array as failed based on the provided\n * {@link HostFilter}.\n *\n * @public\n * @memberof ServiceRegistry\n * @param {HostFilter} filter - The inclusive filter for hosts to mark failed.\n * @returns {Array<ServiceHost>} - The {@link ServiceHost}s marked failed.\n */\n failed(filter) {\n // Collect a list of hosts to mark as failed based on the provided filter.\n const failing = this.find(filter);\n\n // Mark the hosts from the array as failed.\n failing.forEach((host) => {\n host.setStatus({failed: true});\n });\n\n // Return the marked hosts.\n return failing;\n }\n\n /**\n * Filter the {@link ServiceRegistry#hosts} array against their active states.\n *\n * @private\n * @memberof ServiceRegistry\n * @param {boolean} [active] - Filter for the host state.\n * @returns {Array<ServiceHost>} - The filtered host array.\n */\n filterActive(active) {\n // Filter the host array if the active requirement is true.\n return typeof active === 'boolean'\n ? this.hosts.filter((host) => host.active === active)\n : [...this.hosts];\n }\n\n /**\n * Filter the {@link ServiceRegistry#hosts} array against their assigned\n * catalog values.\n *\n * @private\n * @memberof ServiceRegistry\n * @param {Array<string> | string} [catalog] - Catalogs to filter.\n * @returns {Array<ServiceHost>} - The filtered host array.\n */\n filterCatalog(catalog = []) {\n // Generate a catalog names array based on the provided catalog param.\n const catalogs = (Array.isArray(catalog) ? catalog : [catalog]).map(\n (catalogId) =>\n ServiceRegistry.mapCatalogName({\n id: catalogId,\n type: SERVICE_CATALOGS_ENUM_TYPES.STRING,\n }) || catalogId\n );\n\n // Filter the host array against the catalog names array.\n return catalogs.length > 0\n ? this.hosts.filter((host) => catalogs.includes(host.catalog))\n : [...this.hosts];\n }\n\n /**\n * Filter the {@link ServiceRegistry#hosts} array against their assigned\n * cluster values.\n *\n * @private\n * @memberof ServiceRegistry\n * @param {Array<string> | string} [cluster] - Clusters to filter for.\n * @returns {Array<ServiceHost>} - The filtered host array.\n */\n filterCluster(cluster = []) {\n // Generate an array of clusters regardless of parameter type.\n const clusters = Array.isArray(cluster) ? cluster : [cluster];\n\n // Filter the host array against the provided clusters.\n return clusters.length > 0\n ? this.hosts.filter((host) => clusters.includes(host.id))\n : [...this.hosts];\n }\n\n /**\n * Filter the {@link ServiceRegistry#hosts} array against their location in\n * reference to the authenticated user.\n *\n * @private\n * @memberof ServiceRegistry\n * @param {boolean} [local] - Filter for the host location.\n * @returns {Array<ServiceHost>} - The filtered host array.\n */\n filterLocal(local) {\n return typeof local === 'boolean'\n ? this.hosts.filter((host) => host.local === local)\n : [...this.hosts];\n }\n\n /**\n * Filter the {@link ServiceRegistry#hosts} array for the highest priority\n * hosts for each specific service.\n *\n * @private\n * @memberof ServiceRegistry\n * @param {boolean} [priority] - Filter for the highest priority\n * @returns {Array<ServiceHost>} - The filtered host array.\n */\n filterPriority(priority) {\n return priority\n ? this.hosts.reduce((filteredHosts, currentHost) => {\n // Validate that the current host is not active.\n if (!currentHost.active) {\n return filteredHosts;\n }\n\n // Determine if the filtered hosts array contains a host from the same\n // host group.\n const foundHost = filteredHosts.find((host) => host.hostGroup === currentHost.hostGroup);\n\n // Validate if a host was found.\n if (!foundHost) {\n filteredHosts.push(currentHost);\n\n return filteredHosts;\n }\n\n // Map the found host's catalog to its priority value.\n const foundHostCatalogPriority = ServiceRegistry.mapCatalogName({\n id: foundHost.catalog,\n type: SERVICE_CATALOGS_ENUM_TYPES.NUMBER,\n });\n\n // Map the current host's catalog to its priority value.\n const currentHostCatalogPriority = ServiceRegistry.mapCatalogName({\n id: currentHost.catalog,\n type: SERVICE_CATALOGS_ENUM_TYPES.NUMBER,\n });\n\n // Validate if the found host has a lower priority than the current\n // host.\n if (\n foundHostCatalogPriority < currentHostCatalogPriority ||\n foundHost.priority < currentHost.priority\n ) {\n filteredHosts.splice(filteredHosts.indexOf(foundHost, 1));\n filteredHosts.push(currentHost);\n }\n\n return filteredHosts;\n }, [])\n : [...this.hosts];\n }\n\n /**\n * Filter the {@link ServiceRegistry#hosts} array for hosts with a specified\n * set of service names.\n *\n * @private\n * @memberof ServiceRegistry\n * @param {Array<string> | string} [service] - Services to filter.\n * @returns {Array<ServiceHost>} - The filtered host array.\n */\n filterService(service = []) {\n // Generate an array of services regardless of parameter type.\n const services = Array.isArray(service) ? service : [service];\n\n // Filter the host array against the provided services.\n return services.length > 0\n ? this.hosts.filter((host) => services.includes(host.service))\n : [...this.hosts];\n }\n\n /**\n * Filter the {@link ServiceRegistry#hosts} array for hosts with a specified\n * set of URLs.\n *\n * @private\n * @memberof ServiceRegistry\n * @param {Array<string> | string} [url] - URL to filter.\n * @returns {Array<ServiceHost>} - The filter host array.\n */\n filterUrl(url = []) {\n // Generate an array of URLs regardless of the parameter type.\n const urls = Array.isArray(url) ? url : [url];\n\n // Filter the host array against the provided URLs.\n return urls.length > 0 ? this.hosts.filter((host) => urls.includes(host.url)) : [...this.hosts];\n }\n\n /**\n * Get an array of {@link ServiceHost}s based on a provided\n * {@link HostFilter} from the {@link ServiceRegistry#hosts} array.\n *\n * @public\n * @memberof ServiceRegistry\n * @param {HostFilter} [filter] - The inclusive filter for hosts to find.\n * @returns {Array<ServiceHost>} - The filtered hosts.\n */\n find({active, catalog, cluster, local, priority, service, url} = {}) {\n return this.hosts.filter(\n (host) =>\n this.filterActive(active).includes(host) &&\n this.filterCatalog(catalog).includes(host) &&\n this.filterCluster(cluster).includes(host) &&\n this.filterLocal(local).includes(host) &&\n this.filterPriority(priority).includes(host) &&\n this.filterService(service).includes(host) &&\n this.filterUrl(url).includes(host)\n );\n }\n\n /**\n * Load a formatted array of {@link ServiceHost} constructor parameter\n * transfer objects as instances of {@link ServiceHost} class objects to the\n * {@link ServiceRegistry#hosts} array.\n *\n * @public\n * @memberof ServiceRegistry\n * @param {Array<ServiceHost.ConstructorPTO>} hosts\n * @returns {this}\n */\n load(hosts = []) {\n // Validate that the provided hosts are eligible to be loaded.\n const validHosts = hosts.filter(\n (host) =>\n !!ServiceRegistry.mapCatalogName({\n id: host.catalog,\n type: SERVICE_CATALOGS_ENUM_TYPES.STRING,\n })\n );\n\n // Load the eligible hosts.\n this.hosts.push(...validHosts.map((loadableHost) => new ServiceHost(loadableHost)));\n\n return this;\n }\n\n /**\n * Mark a collection of {@link ServiceHost} class objects from the\n * {@link ServiceRegistry#hosts} array as replaced based on the provided\n * {@link HostFilter}.\n *\n * @public\n * @memberof ServiceRegistry\n * @param {HostFilter} filter - The inclusive filter to mark replaced.\n * @returns {Array<ServiceHost>} - The {@link ServiceHost}s marked replaced.\n */\n replaced(filter) {\n // Collect a list of hosts to mark as replaced based on the provided filter.\n const replacing = this.find(filter);\n\n // Mark the hosts from the array as replaced.\n replacing.forEach((host) => {\n host.setStatus({replaced: true});\n });\n\n // Return the marked hosts.\n return replacing;\n }\n\n /**\n * Reset the failed status of a collection of {@link ServiceHost} class\n * objects from the {@link ServiceRegistry#hosts} array based on the provided\n * {@link HostFilter}.\n *\n * @public\n * @memberof ServiceRegistry\n * @param {HostFilter} filter - The inclusive filter of hosts to reset.\n * @returns {Array<ServiceHost>} - The {@link ServiceHost}s that reset.\n */\n reset(filter) {\n // Collect a list of hosts to mark as replaced based on the provided filter.\n const resetting = this.find(filter);\n\n // Mark the hosts from the array as replaced.\n resetting.forEach((host) => {\n host.setStatus({failed: false});\n });\n\n // Return the marked hosts.\n return resetting;\n }\n\n /**\n * Convert a {@link SERVICE_CATALOGS} identifier or value to its associated\n * idenfier or value.\n *\n * @public\n * @static\n * @memberof ServiceRegistry\n * @param {Object} pto - The parameter transfer object.\n * @property {string | number} pto.id - The identifier to convert in the enum.\n * @property {SERVICE_CATALOGS_ENUM_TYPES} pto.type - The desired output.\n * @returns {string|number} - The matching enum value or index.\n */\n static mapCatalogName({id, type}) {\n // Validate that the id is a number.\n if (typeof id === 'number') {\n // Validate that the desired type is a number.\n if (type === SERVICE_CATALOGS_ENUM_TYPES.NUMBER) {\n return SERVICE_CATALOGS[id] !== undefined ? id : undefined;\n }\n\n // Validate that the desired type is a string.\n if (type === SERVICE_CATALOGS_ENUM_TYPES.STRING) {\n return SERVICE_CATALOGS[id];\n }\n }\n\n // Validate that the id is a string.\n if (typeof id === 'string') {\n // Validate that the desired type is a string.\n if (type === SERVICE_CATALOGS_ENUM_TYPES.STRING) {\n return SERVICE_CATALOGS.includes(id) ? id : undefined;\n }\n\n // Validate that the desired type is a number.\n if (type === SERVICE_CATALOGS_ENUM_TYPES.NUMBER) {\n return SERVICE_CATALOGS.includes(id) ? SERVICE_CATALOGS.indexOf(id) : undefined;\n }\n }\n\n return undefined;\n }\n\n /**\n * Generate a formatted array based on the object received from the **U2C**\n * service for usage in the {@link ServiceRegistry#load} method.\n *\n * @public\n * @static\n * @memberof ServiceRegistry\n * @param {MapRemoteCatalogPTO} pto - The parameter transfer object.\n * @throws - If the target catalog does not exist.\n * @returns {Array<ServiceHost#ServiceHostConstructorPTO>}\n */\n static mapRemoteCatalog({catalog, hostCatalog, serviceLinks}) {\n // Collect the service catalog name if needed.\n const catalogIndex = ServiceRegistry.mapCatalogName({\n id: catalog,\n type: SERVICE_CATALOGS_ENUM_TYPES.STRING,\n });\n\n // Validate that the target catalog exists.\n if (!SERVICE_CATALOGS.includes(catalogIndex)) {\n throw new Error(`service-catalogs: '${catalog}' is not a valid catalog`);\n }\n\n // Map the remote catalog to a mountable host array.\n return Object.keys(hostCatalog).reduce((output, key) => {\n output.push(\n ...hostCatalog[key].map((host) => ({\n catalog: catalogIndex,\n defaultUri: serviceLinks[host.id.split(':')[3]],\n hostGroup: key,\n id: host.id,\n priority: host.priority,\n uri: host.host,\n }))\n );\n\n return output;\n }, []);\n }\n}\n"],"mappings":"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"}
|
|
@@ -20,7 +20,7 @@ var _constants = require("./constants");
|
|
|
20
20
|
* @class
|
|
21
21
|
* @classdesc - Manages the state of the service catalogs for a webex instance.
|
|
22
22
|
*/
|
|
23
|
-
var ServiceState =
|
|
23
|
+
var ServiceState = /*#__PURE__*/function () {
|
|
24
24
|
/**
|
|
25
25
|
* Generate a new {@link ServiceState}.
|
|
26
26
|
*
|
|
@@ -94,4 +94,5 @@ var ServiceState = exports.default = /*#__PURE__*/function () {
|
|
|
94
94
|
}]);
|
|
95
95
|
return ServiceState;
|
|
96
96
|
}();
|
|
97
|
+
exports.default = ServiceState;
|
|
97
98
|
//# sourceMappingURL=service-state.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_constants","require","ServiceState","
|
|
1
|
+
{"version":3,"names":["_constants","require","ServiceState","_this","_classCallCheck2","default","SERVICE_CATALOGS","forEach","catalog","generateCatalogState","_createClass2","key","value","setCollecting","collecting","setReady","ready","exports"],"sources":["service-state.js"],"sourcesContent":["import {SERVICE_CATALOGS} from './constants';\n\n/**\n * The state of a specific catalog to be used by {@link ServiceState}.\n *\n * @typedef {Record<string, boolean>} CatalogState\n * @property {boolean} CatalogState.collecting - If the catalog is collecting.\n * @property {boolean} CatalogState.ready - If the catalog is ready.\n */\n\n/**\n * @class\n * @classdesc - Manages the state of the service catalogs for a webex instance.\n */\nexport default class ServiceState {\n /**\n * Generate a new {@link ServiceState}.\n *\n * @public\n * @constructor\n * @memberof ServiceState\n */\n constructor() {\n // Iterate over the possible catalog names and generate their states.\n SERVICE_CATALOGS.forEach((catalog) => {\n this[catalog] = ServiceState.generateCatalogState();\n });\n }\n\n /**\n * Set a catalog to be collecting or not.\n *\n * @public\n * @memberof ServiceState\n * @param {string} catalog - Catalog to target.\n * @param {boolean} collecting - If the target is collecting or not.\n * @returns {undefined}\n */\n setCollecting(catalog, collecting) {\n // Validate that the catalog state exists.\n if (this[catalog]) {\n // Set the 'collecting' status of the catalog state.\n this[catalog].collecting = collecting;\n }\n }\n\n /**\n * Set a catalog to be ready or not.\n *\n * @public\n * @memberof ServiceState\n * @param {string} catalog - Catalog to target.\n * @param {boolean} ready - If the target is ready or not.\n * @returns {undefined}\n */\n setReady(catalog, ready) {\n // Validate that the catalog state exists.\n if (this[catalog]) {\n // Set the 'ready' status of the catalog state.\n this[catalog].ready = ready;\n }\n }\n\n /**\n * Generate a {@link CatalogState}.\n *\n * @public\n * @static\n * @memberof ServiceState\n * @returns {CatalogState} - The generated {@link CatalogState}.\n */\n static generateCatalogState() {\n return {\n collecting: false,\n ready: false,\n };\n }\n}\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAHA,IAIqBC,YAAY;EAC/B;AACF;AACA;AACA;AACA;AACA;AACA;EACE,SAAAA,aAAA,EAAc;IAAA,IAAAC,KAAA;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAH,YAAA;IACZ;IACAI,2BAAgB,CAACC,OAAO,CAAC,UAACC,OAAO,EAAK;MACpCL,KAAI,CAACK,OAAO,CAAC,GAAGN,YAAY,CAACO,oBAAoB,EAAE;IACrD,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EARE,IAAAC,aAAA,CAAAL,OAAA,EAAAH,YAAA;IAAAS,GAAA;IAAAC,KAAA,EASA,SAAAC,cAAcL,OAAO,EAAEM,UAAU,EAAE;MACjC;MACA,IAAI,IAAI,CAACN,OAAO,CAAC,EAAE;QACjB;QACA,IAAI,CAACA,OAAO,CAAC,CAACM,UAAU,GAAGA,UAAU;MACvC;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EARE;IAAAH,GAAA;IAAAC,KAAA,EASA,SAAAG,SAASP,OAAO,EAAEQ,KAAK,EAAE;MACvB;MACA,IAAI,IAAI,CAACR,OAAO,CAAC,EAAE;QACjB;QACA,IAAI,CAACA,OAAO,CAAC,CAACQ,KAAK,GAAGA,KAAK;MAC7B;IACF;;IAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EAPE;IAAAL,GAAA;IAAAC,KAAA,EAQA,SAAAH,qBAAA,EAA8B;MAC5B,OAAO;QACLK,UAAU,EAAE,KAAK;QACjBE,KAAK,EAAE;MACT,CAAC;IACH;EAAC;EAAA,OAAAd,YAAA;AAAA;AAAAe,OAAA,CAAAZ,OAAA,GAAAH,YAAA"}
|
|
@@ -115,5 +115,6 @@ var ServiceUrl = _ampersandState.default.extend({
|
|
|
115
115
|
}
|
|
116
116
|
});
|
|
117
117
|
/* eslint-enable no-underscore-dangle */
|
|
118
|
-
var _default =
|
|
118
|
+
var _default = ServiceUrl;
|
|
119
|
+
exports.default = _default;
|
|
119
120
|
//# sourceMappingURL=service-url.js.map
|