@webex/webex-core 3.12.0-llmrefactor.1 → 3.12.0-llmrefactor.10
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 +23 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/interceptors/catalog-url.js +87 -0
- package/dist/interceptors/catalog-url.js.map +1 -0
- package/dist/interceptors/payload-transformer.js +25 -4
- package/dist/interceptors/payload-transformer.js.map +1 -1
- package/dist/lib/batcher.js +1 -1
- package/dist/lib/credentials/credentials.js +56 -1
- package/dist/lib/credentials/credentials.js.map +1 -1
- package/dist/lib/credentials/token.js +1 -1
- package/dist/lib/services/service-catalog.js +102 -8
- package/dist/lib/services/service-catalog.js.map +1 -1
- package/dist/lib/services/services.js +74 -44
- package/dist/lib/services/services.js.map +1 -1
- package/dist/lib/services-v2/service-catalog.js +8 -1
- package/dist/lib/services-v2/service-catalog.js.map +1 -1
- package/dist/lib/services-v2/services-v2.js +76 -45
- package/dist/lib/services-v2/services-v2.js.map +1 -1
- package/dist/plugins/logger.js +1 -1
- package/dist/webex-core.js +11 -3
- package/dist/webex-core.js.map +1 -1
- package/package.json +12 -12
- package/src/config.js +25 -0
- package/src/index.js +1 -0
- package/src/interceptors/catalog-url.js +66 -0
- package/src/interceptors/payload-transformer.js +23 -1
- package/src/lib/credentials/credentials.js +43 -0
- package/src/lib/services/service-catalog.js +106 -6
- package/src/lib/services/services.js +65 -30
- package/src/lib/services-v2/service-catalog.ts +10 -1
- package/src/lib/services-v2/services-v2.ts +70 -30
- package/src/webex-core.js +8 -0
- package/test/integration/spec/services/services.js +148 -113
- package/test/integration/spec/services-v2/services-v2.js +134 -99
- package/test/unit/spec/credentials/credentials.js +114 -1
- package/test/unit/spec/interceptors/catalog-url.js +224 -0
- package/test/unit/spec/interceptors/payload-transformer.js +119 -1
- package/test/unit/spec/services/service-catalog.js +275 -0
- package/test/unit/spec/services/services.js +135 -2
- package/test/unit/spec/services-v2/service-catalog.ts +41 -0
- package/test/unit/spec/services-v2/services-v2.ts +158 -2
- package/test/unit/spec/webex-core.js +77 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ampersandState","_interopRequireDefault","require","_lodash","_serviceDetail","_domains","_createForOfIteratorHelper","r","e","t","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","_Array$from","test","Array","ServiceCatalog","AmpState","extend","namespace","props","serviceGroups","discovery","override","preauth","postauth","signin","status","ready","collecting","isReady","timestamp","allowedDomains","_getAllServiceDetails","serviceGroup","serviceDetails","concat","_toConsumableArray2","default","_getServiceDetail","clusterId","find","serviceDetail","id","_loadServiceDetails","_this","existingService","forEach","service","push","_unloadServiceDetails","_this2","splice","indexOf","clean","findClusterId","url","_allServiceDetails$fi","incomingUrlObj","URL","allServiceDetails","serviceUrls","_ref","host","_unused","undefined","findServiceFromClusterId","_ref2","arguments","serviceName","get","findServiceDetailFromUrl","_ref3","_iterator","_step","serviceUrl","startsWith","baseUrl","err","findAllowedDomain","matchAllowedDomain","getAllowedDomains","markFailedServiceUrl","serviceDetailWithFailedHost","failHost","setAllowedDomains","normalizeAllowedDomains","addAllowedDomains","newAllowedDomains","union","updateServiceGroups","_this3","currentServiceDetails","unusedServicesDetails","filter","every","_ref4","serviceObj","_serviceObj$serviceUr","sort","b","priority","ServiceDetail","trigger","waitForCatalog","timeout","_this4","_promise","resolve","reject","validatedTimeout","timeoutTimer","setTimeout","Error","once","clearTimeout","_default","exports"],"sources":["service-catalog.ts"],"sourcesContent":["import AmpState from 'ampersand-state';\n\nimport {union} from 'lodash';\nimport ServiceDetail from './service-detail';\nimport {IServiceDetail, ServiceGroup} from './types';\nimport {matchAllowedDomain, normalizeAllowedDomains} from '../domains';\n\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 timestamp: ['string', false, ''],\n allowedDomains: ['array', false, () => []],\n },\n\n /**\n * @private\n * Get all service details for a given service group or return all details if no group is specified.\n * @param {ServiceGroup} serviceGroup - The name of the service group to retrieve details for.\n * @returns {Array<IServiceDetail>} - An array of service details.\n */\n _getAllServiceDetails(serviceGroup?: ServiceGroup): Array<IServiceDetail> {\n const serviceDetails =\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 serviceDetails;\n },\n\n /**\n * @private\n * Search the service details array to locate a `ServiceDetails`\n * class object based on its id.\n * @param {string} clusterId\n * @param {ServiceGroup} [serviceGroup]\n * @returns {IServiceDetail}\n */\n _getServiceDetail(clusterId: string, serviceGroup?: ServiceGroup): IServiceDetail | undefined {\n const serviceDetails = this._getAllServiceDetails(serviceGroup);\n\n return serviceDetails.find((serviceDetail: IServiceDetail) => serviceDetail.id === clusterId);\n },\n\n /**\n * @private\n * Safely load one or more `ServiceDetail`s into this `ServiceCatalog` instance.\n * @param {ServiceGroup} serviceGroup\n * @param {Array<ServiceDetail>} serviceDetails\n * @returns {void}\n */\n _loadServiceDetails(serviceGroup: ServiceGroup, serviceDetails: Array<IServiceDetail>): void {\n // declare namespaces outside of loop\n let existingService: IServiceDetail | undefined;\n\n serviceDetails.forEach((service) => {\n existingService = this._getServiceDetail(service.id, serviceGroup);\n\n if (!existingService) {\n this.serviceGroups[serviceGroup].push(service);\n }\n });\n },\n\n /**\n * @private\n * Safely unload one or more `ServiceDetail`s into this `Services` instance\n * @param {ServiceGroup} serviceGroup\n * @param {Array<ServiceDetail>} serviceDetails\n * @returns {void}\n */\n _unloadServiceDetails(serviceGroup: ServiceGroup, serviceDetails: Array<IServiceDetail>): void {\n // declare namespaces outside of loop\n let existingService: IServiceDetail | undefined;\n\n serviceDetails?.forEach((service) => {\n existingService = this._getServiceDetail(service.id, serviceGroup);\n\n if (existingService) {\n this.serviceGroups[serviceGroup].splice(\n this.serviceGroups[serviceGroup].indexOf(existingService),\n 1\n );\n }\n });\n },\n\n /**\n * Clear all collected catalog data and reset catalog status.\n *\n * @returns {void}\n */\n clean(): void {\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 | undefined} - ClusterId of a given url\n */\n findClusterId(url: string): string | undefined {\n try {\n const incomingUrlObj = new URL(url);\n const allServiceDetails = this._getAllServiceDetails();\n\n return allServiceDetails.find((serviceDetail: IServiceDetail) =>\n serviceDetail.serviceUrls.find(({host}) => host === incomingUrlObj.host)\n )?.id;\n } catch {\n // If the URL is invalid or can't be found, return undefined\n return undefined;\n }\n },\n\n /**\n * Search over all service groups and return a service value from a provided\n * clusterId.\n * @param {object} params\n * @param {string} params.clusterId - clusterId of found service\n * @param {ServiceGroup} [params.serviceGroup] - specify service group\n * @returns {object} service\n * @returns {string} service.name\n * @returns {string} service.url\n */\n findServiceFromClusterId(\n {clusterId, serviceGroup} = {} as {clusterId: string; serviceGroup?: ServiceGroup}\n ): {name: string; url: string} | undefined {\n const serviceDetails = this._getServiceDetail(clusterId, serviceGroup);\n\n if (serviceDetails) {\n return {\n name: serviceDetails.serviceName,\n url: serviceDetails.get(),\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 {IServiceDetail} - ServiceDetail assocated with provided url\n */\n findServiceDetailFromUrl(url: string): IServiceDetail | undefined {\n const serviceDetails = this._getAllServiceDetails();\n\n return serviceDetails.find(({serviceUrls}) => {\n for (const serviceUrl of serviceUrls) {\n if (url.startsWith(serviceUrl.baseUrl)) {\n return true;\n }\n }\n\n return false;\n });\n },\n\n /**\n * Finds an allowed domain that matches a specific url. The url's hostname\n * must be the allowed domain itself or a subdomain of it.\n *\n * @param {string} url - The url to match the allowed domains against.\n * @returns {string} - The matching allowed domain.\n */\n findAllowedDomain(url: string): string {\n return matchAllowedDomain(url, this.allowedDomains);\n },\n\n /**\n * Get a service url from the current services list by name. Return undefined\n * if the service is not found.\n * @param {string} clusterId\n * @param {ServiceGroup} serviceGroup\n * @returns {string | undefined}\n */\n get(clusterId: string, serviceGroup?: ServiceGroup): string | undefined {\n const serviceDetail = this._getServiceDetail(clusterId, serviceGroup);\n\n return serviceDetail ? serviceDetail.get() : undefined;\n },\n\n /**\n * Get the current allowed domains list.\n *\n * @returns {Array<string>} - the current allowed domains list.\n */\n getAllowedDomains(): Array<string> {\n return [...this.allowedDomains];\n },\n\n /**\n * Mark a priority host service url as failed.\n * This will mark the host associated with the\n * `ServiceDetail` to be removed from the its\n * respective host array, and then return the next\n * viable host from the `ServiceDetail` host array,\n * or the `ServiceDetail` default url if no other priority\n * hosts are available, or if `noPriorityHosts` is set to\n * `true`.\n * @param {string} url\n * @returns {string}\n */\n markFailedServiceUrl(url: string): string | undefined {\n const serviceDetails = this._getAllServiceDetails();\n\n const serviceDetailWithFailedHost = serviceDetails.find((serviceDetail: IServiceDetail) =>\n serviceDetail.failHost(url)\n );\n\n // if we couldn't find the url we wanted to fail, return undefined\n if (!serviceDetailWithFailedHost) {\n return undefined;\n }\n\n return serviceDetailWithFailedHost.get();\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: Array<string>): void {\n this.allowedDomains = normalizeAllowedDomains(allowedDomains);\n },\n\n /**\n *\n * @param {Array<string>} newAllowedDomains - new allowed domains to add to existing set of allowed domains\n * @returns {void}\n */\n addAllowedDomains(newAllowedDomains: Array<string>): void {\n this.allowedDomains = union(this.allowedDomains, normalizeAllowedDomains(newAllowedDomains));\n },\n\n /**\n * Update the current list of `ServiceDetail`s against a provided\n * service hostmap.\n * @emits ServiceCatalog#preauthorized\n * @emits ServiceCatalog#postauthorized\n * @param {ServiceGroup} serviceGroup\n * @param {Array<IServiceDetail>} serviceDetails\n * @param {timestamp<string>} timestamp of the catalog\n * @returns {void}\n */\n updateServiceGroups(\n serviceGroup: ServiceGroup,\n serviceDetails: Array<IServiceDetail>,\n timestamp?: string\n ) {\n const currentServiceDetails = this.serviceGroups[serviceGroup];\n\n const unusedServicesDetails = currentServiceDetails?.filter((serviceDetail) =>\n serviceDetails?.every(({id}) => id !== serviceDetail.id)\n );\n\n this._unloadServiceDetails(serviceGroup, unusedServicesDetails);\n\n serviceDetails?.forEach((serviceObj) => {\n const serviceDetail = this._getServiceDetail(serviceObj.id, serviceGroup);\n serviceObj?.serviceUrls?.sort((a, b) => {\n if (a.priority < 0 && b.priority < 0) return 0;\n if (a.priority < 0) return 1;\n if (b.priority < 0) return -1;\n\n return a.priority - b.priority;\n });\n if (serviceDetail) {\n serviceDetail.serviceUrls = serviceObj.serviceUrls || [];\n } else {\n this._loadServiceDetails(serviceGroup, [new ServiceDetail(serviceObj)]);\n }\n });\n\n this.timestamp = timestamp;\n this.status[serviceGroup].ready = true;\n this.trigger(serviceGroup);\n },\n\n /**\n * Wait until the service catalog is available,\n * or reject after a timeout of 60 seconds.\n * @param {ServiceGroup} serviceGroup\n * @param {number} [timeout] - in seconds\n * @returns {Promise<void>}\n */\n waitForCatalog(serviceGroup: ServiceGroup, timeout?: number): Promise<void> {\n return new Promise<void>((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\nexport default ServiceCatalog;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_ampersandState","_interopRequireDefault","require","_lodash","_serviceDetail","_domains","_serviceCatalog","_createForOfIteratorHelper","r","e","t","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","return","_arrayLikeToArray","toString","slice","constructor","name","_Array$from","test","Array","ServiceCatalog","AmpState","extend","namespace","props","serviceGroups","discovery","override","preauth","postauth","signin","status","ready","collecting","isReady","timestamp","allowedDomains","_getAllServiceDetails","serviceGroup","serviceDetails","concat","_toConsumableArray2","default","_getServiceDetail","clusterId","find","serviceDetail","id","_loadServiceDetails","_this","existingService","forEach","service","push","_unloadServiceDetails","_this2","splice","indexOf","clean","findClusterId","url","_allServiceDetails$fi","incomingUrlObj","URL","allServiceDetails","serviceUrls","_ref","host","_unused","undefined","findServiceFromClusterId","_ref2","arguments","serviceName","get","findServiceDetailFromUrl","candidateUrl","_unused2","_ref3","_iterator","_step","serviceUrl","matchesParsedCatalogUrl","parseCatalogUrl","baseUrl","err","findAllowedDomain","matchAllowedDomain","getAllowedDomains","markFailedServiceUrl","serviceDetailWithFailedHost","failHost","setAllowedDomains","normalizeAllowedDomains","addAllowedDomains","newAllowedDomains","union","updateServiceGroups","_this3","currentServiceDetails","unusedServicesDetails","filter","every","_ref4","serviceObj","_serviceObj$serviceUr","sort","b","priority","ServiceDetail","trigger","waitForCatalog","timeout","_this4","_promise","resolve","reject","validatedTimeout","timeoutTimer","setTimeout","Error","once","clearTimeout","_default","exports"],"sources":["service-catalog.ts"],"sourcesContent":["import AmpState from 'ampersand-state';\n\nimport {union} from 'lodash';\nimport ServiceDetail from './service-detail';\nimport {IServiceDetail, ServiceGroup} from './types';\nimport {matchAllowedDomain, normalizeAllowedDomains} from '../domains';\nimport {matchesParsedCatalogUrl, parseCatalogUrl} from '../services/service-catalog';\n\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 timestamp: ['string', false, ''],\n allowedDomains: ['array', false, () => []],\n },\n\n /**\n * @private\n * Get all service details for a given service group or return all details if no group is specified.\n * @param {ServiceGroup} serviceGroup - The name of the service group to retrieve details for.\n * @returns {Array<IServiceDetail>} - An array of service details.\n */\n _getAllServiceDetails(serviceGroup?: ServiceGroup): Array<IServiceDetail> {\n const serviceDetails =\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 serviceDetails;\n },\n\n /**\n * @private\n * Search the service details array to locate a `ServiceDetails`\n * class object based on its id.\n * @param {string} clusterId\n * @param {ServiceGroup} [serviceGroup]\n * @returns {IServiceDetail}\n */\n _getServiceDetail(clusterId: string, serviceGroup?: ServiceGroup): IServiceDetail | undefined {\n const serviceDetails = this._getAllServiceDetails(serviceGroup);\n\n return serviceDetails.find((serviceDetail: IServiceDetail) => serviceDetail.id === clusterId);\n },\n\n /**\n * @private\n * Safely load one or more `ServiceDetail`s into this `ServiceCatalog` instance.\n * @param {ServiceGroup} serviceGroup\n * @param {Array<ServiceDetail>} serviceDetails\n * @returns {void}\n */\n _loadServiceDetails(serviceGroup: ServiceGroup, serviceDetails: Array<IServiceDetail>): void {\n // declare namespaces outside of loop\n let existingService: IServiceDetail | undefined;\n\n serviceDetails.forEach((service) => {\n existingService = this._getServiceDetail(service.id, serviceGroup);\n\n if (!existingService) {\n this.serviceGroups[serviceGroup].push(service);\n }\n });\n },\n\n /**\n * @private\n * Safely unload one or more `ServiceDetail`s into this `Services` instance\n * @param {ServiceGroup} serviceGroup\n * @param {Array<ServiceDetail>} serviceDetails\n * @returns {void}\n */\n _unloadServiceDetails(serviceGroup: ServiceGroup, serviceDetails: Array<IServiceDetail>): void {\n // declare namespaces outside of loop\n let existingService: IServiceDetail | undefined;\n\n serviceDetails?.forEach((service) => {\n existingService = this._getServiceDetail(service.id, serviceGroup);\n\n if (existingService) {\n this.serviceGroups[serviceGroup].splice(\n this.serviceGroups[serviceGroup].indexOf(existingService),\n 1\n );\n }\n });\n },\n\n /**\n * Clear all collected catalog data and reset catalog status.\n *\n * @returns {void}\n */\n clean(): void {\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 | undefined} - ClusterId of a given url\n */\n findClusterId(url: string): string | undefined {\n try {\n const incomingUrlObj = new URL(url);\n const allServiceDetails = this._getAllServiceDetails();\n\n return allServiceDetails.find((serviceDetail: IServiceDetail) =>\n serviceDetail.serviceUrls.find(({host}) => host === incomingUrlObj.host)\n )?.id;\n } catch {\n // If the URL is invalid or can't be found, return undefined\n return undefined;\n }\n },\n\n /**\n * Search over all service groups and return a service value from a provided\n * clusterId.\n * @param {object} params\n * @param {string} params.clusterId - clusterId of found service\n * @param {ServiceGroup} [params.serviceGroup] - specify service group\n * @returns {object} service\n * @returns {string} service.name\n * @returns {string} service.url\n */\n findServiceFromClusterId(\n {clusterId, serviceGroup} = {} as {clusterId: string; serviceGroup?: ServiceGroup}\n ): {name: string; url: string} | undefined {\n const serviceDetails = this._getServiceDetail(clusterId, serviceGroup);\n\n if (serviceDetails) {\n return {\n name: serviceDetails.serviceName,\n url: serviceDetails.get(),\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 {IServiceDetail} - ServiceDetail assocated with provided url\n */\n findServiceDetailFromUrl(url: string): IServiceDetail | undefined {\n const serviceDetails = this._getAllServiceDetails();\n\n let candidateUrl: URL;\n\n try {\n candidateUrl = new URL(url);\n } catch {\n return undefined;\n }\n\n return serviceDetails.find(({serviceUrls}) => {\n for (const serviceUrl of serviceUrls) {\n if (matchesParsedCatalogUrl(candidateUrl, parseCatalogUrl(serviceUrl.baseUrl))) {\n return true;\n }\n }\n\n return false;\n });\n },\n\n /**\n * Finds an allowed domain that matches a specific url. The url's hostname\n * must be the allowed domain itself or a subdomain of it.\n *\n * @param {string} url - The url to match the allowed domains against.\n * @returns {string} - The matching allowed domain.\n */\n findAllowedDomain(url: string): string {\n return matchAllowedDomain(url, this.allowedDomains);\n },\n\n /**\n * Get a service url from the current services list by name. Return undefined\n * if the service is not found.\n * @param {string} clusterId\n * @param {ServiceGroup} serviceGroup\n * @returns {string | undefined}\n */\n get(clusterId: string, serviceGroup?: ServiceGroup): string | undefined {\n const serviceDetail = this._getServiceDetail(clusterId, serviceGroup);\n\n return serviceDetail ? serviceDetail.get() : undefined;\n },\n\n /**\n * Get the current allowed domains list.\n *\n * @returns {Array<string>} - the current allowed domains list.\n */\n getAllowedDomains(): Array<string> {\n return [...this.allowedDomains];\n },\n\n /**\n * Mark a priority host service url as failed.\n * This will mark the host associated with the\n * `ServiceDetail` to be removed from the its\n * respective host array, and then return the next\n * viable host from the `ServiceDetail` host array,\n * or the `ServiceDetail` default url if no other priority\n * hosts are available, or if `noPriorityHosts` is set to\n * `true`.\n * @param {string} url\n * @returns {string}\n */\n markFailedServiceUrl(url: string): string | undefined {\n const serviceDetails = this._getAllServiceDetails();\n\n const serviceDetailWithFailedHost = serviceDetails.find((serviceDetail: IServiceDetail) =>\n serviceDetail.failHost(url)\n );\n\n // if we couldn't find the url we wanted to fail, return undefined\n if (!serviceDetailWithFailedHost) {\n return undefined;\n }\n\n return serviceDetailWithFailedHost.get();\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: Array<string>): void {\n this.allowedDomains = normalizeAllowedDomains(allowedDomains);\n },\n\n /**\n *\n * @param {Array<string>} newAllowedDomains - new allowed domains to add to existing set of allowed domains\n * @returns {void}\n */\n addAllowedDomains(newAllowedDomains: Array<string>): void {\n this.allowedDomains = union(this.allowedDomains, normalizeAllowedDomains(newAllowedDomains));\n },\n\n /**\n * Update the current list of `ServiceDetail`s against a provided\n * service hostmap.\n * @emits ServiceCatalog#preauthorized\n * @emits ServiceCatalog#postauthorized\n * @param {ServiceGroup} serviceGroup\n * @param {Array<IServiceDetail>} serviceDetails\n * @param {timestamp<string>} timestamp of the catalog\n * @returns {void}\n */\n updateServiceGroups(\n serviceGroup: ServiceGroup,\n serviceDetails: Array<IServiceDetail>,\n timestamp?: string\n ) {\n const currentServiceDetails = this.serviceGroups[serviceGroup];\n\n const unusedServicesDetails = currentServiceDetails?.filter((serviceDetail) =>\n serviceDetails?.every(({id}) => id !== serviceDetail.id)\n );\n\n this._unloadServiceDetails(serviceGroup, unusedServicesDetails);\n\n serviceDetails?.forEach((serviceObj) => {\n const serviceDetail = this._getServiceDetail(serviceObj.id, serviceGroup);\n serviceObj?.serviceUrls?.sort((a, b) => {\n if (a.priority < 0 && b.priority < 0) return 0;\n if (a.priority < 0) return 1;\n if (b.priority < 0) return -1;\n\n return a.priority - b.priority;\n });\n if (serviceDetail) {\n serviceDetail.serviceUrls = serviceObj.serviceUrls || [];\n } else {\n this._loadServiceDetails(serviceGroup, [new ServiceDetail(serviceObj)]);\n }\n });\n\n this.timestamp = timestamp;\n this.status[serviceGroup].ready = true;\n this.trigger(serviceGroup);\n },\n\n /**\n * Wait until the service catalog is available,\n * or reject after a timeout of 60 seconds.\n * @param {ServiceGroup} serviceGroup\n * @param {number} [timeout] - in seconds\n * @returns {Promise<void>}\n */\n waitForCatalog(serviceGroup: ServiceGroup, timeout?: number): Promise<void> {\n return new Promise<void>((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\nexport default ServiceCatalog;\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,eAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AAAqF,SAAAK,2BAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,yBAAAC,OAAA,IAAAH,CAAA,CAAAI,gBAAA,KAAAJ,CAAA,qBAAAE,CAAA,QAAAG,cAAA,CAAAL,CAAA,MAAAE,CAAA,GAAAI,2BAAA,CAAAN,CAAA,MAAAC,CAAA,IAAAD,CAAA,uBAAAA,CAAA,CAAAO,MAAA,IAAAL,CAAA,KAAAF,CAAA,GAAAE,CAAA,OAAAM,EAAA,MAAAC,CAAA,YAAAA,EAAA,eAAAC,CAAA,EAAAD,CAAA,EAAAE,CAAA,WAAAA,EAAA,WAAAH,EAAA,IAAAR,CAAA,CAAAO,MAAA,KAAAK,IAAA,WAAAA,IAAA,MAAAC,KAAA,EAAAb,CAAA,CAAAQ,EAAA,UAAAP,CAAA,WAAAA,EAAAD,CAAA,UAAAA,CAAA,KAAAc,CAAA,EAAAL,CAAA,gBAAAM,SAAA,iJAAAC,CAAA,EAAAC,CAAA,OAAAC,CAAA,gBAAAR,CAAA,WAAAA,EAAA,IAAAR,CAAA,GAAAA,CAAA,CAAAiB,IAAA,CAAAnB,CAAA,MAAAW,CAAA,WAAAA,EAAA,QAAAX,CAAA,GAAAE,CAAA,CAAAkB,IAAA,WAAAH,CAAA,GAAAjB,CAAA,CAAAY,IAAA,EAAAZ,CAAA,KAAAC,CAAA,WAAAA,EAAAD,CAAA,IAAAkB,CAAA,OAAAF,CAAA,GAAAhB,CAAA,KAAAc,CAAA,WAAAA,EAAA,UAAAG,CAAA,YAAAf,CAAA,CAAAmB,MAAA,IAAAnB,CAAA,CAAAmB,MAAA,oBAAAH,CAAA,QAAAF,CAAA;AAAA,SAAAV,4BAAAN,CAAA,EAAAiB,CAAA,QAAAjB,CAAA,2BAAAA,CAAA,SAAAsB,iBAAA,CAAAtB,CAAA,EAAAiB,CAAA,OAAAf,CAAA,MAAAqB,QAAA,CAAAJ,IAAA,CAAAnB,CAAA,EAAAwB,KAAA,6BAAAtB,CAAA,IAAAF,CAAA,CAAAyB,WAAA,KAAAvB,CAAA,GAAAF,CAAA,CAAAyB,WAAA,CAAAC,IAAA,aAAAxB,CAAA,cAAAA,CAAA,GAAAyB,WAAA,CAAA3B,CAAA,oBAAAE,CAAA,+CAAA0B,IAAA,CAAA1B,CAAA,IAAAoB,iBAAA,CAAAtB,CAAA,EAAAiB,CAAA;AAAA,SAAAK,kBAAAtB,CAAA,EAAAiB,CAAA,aAAAA,CAAA,IAAAA,CAAA,GAAAjB,CAAA,CAAAO,MAAA,MAAAU,CAAA,GAAAjB,CAAA,CAAAO,MAAA,YAAAN,CAAA,MAAAU,CAAA,GAAAkB,KAAA,CAAAZ,CAAA,GAAAhB,CAAA,GAAAgB,CAAA,EAAAhB,CAAA,IAAAU,CAAA,CAAAV,CAAA,IAAAD,CAAA,CAAAC,CAAA,UAAAU,CAAA;AAErF;AACA;AACA;AACA,IAAMmB,cAAc,GAAGC,uBAAQ,CAACC,MAAM,CAAC;EACrCC,SAAS,EAAE,gBAAgB;EAE3BC,KAAK,EAAE;IACLC,aAAa,EAAE,CACb,QAAQ,EACR,IAAI,EACJ;MAAA,OAAO;QACLC,SAAS,EAAE,EAAE;QACbC,QAAQ,EAAE,EAAE;QACZC,OAAO,EAAE,EAAE;QACXC,QAAQ,EAAE,EAAE;QACZC,MAAM,EAAE;MACV,CAAC;IAAA,CAAC,CACH;IACDC,MAAM,EAAE,CACN,QAAQ,EACR,IAAI,EACJ;MAAA,OAAO;QACLL,SAAS,EAAE;UACTM,KAAK,EAAE,KAAK;UACZC,UAAU,EAAE;QACd,CAAC;QACDN,QAAQ,EAAE;UACRK,KAAK,EAAE,KAAK;UACZC,UAAU,EAAE;QACd,CAAC;QACDL,OAAO,EAAE;UACPI,KAAK,EAAE,KAAK;UACZC,UAAU,EAAE;QACd,CAAC;QACDJ,QAAQ,EAAE;UACRG,KAAK,EAAE,KAAK;UACZC,UAAU,EAAE;QACd,CAAC;QACDH,MAAM,EAAE;UACNE,KAAK,EAAE,KAAK;UACZC,UAAU,EAAE;QACd;MACF,CAAC;IAAA,CAAC,CACH;IACDC,OAAO,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC;IAClCC,SAAS,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC;IAChCC,cAAc,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE;MAAA,OAAM,EAAE;IAAA;EAC3C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEC,qBAAqB,WAArBA,qBAAqBA,CAACC,YAA2B,EAAyB;IACxE,IAAMC,cAAc,GAClB,OAAOD,YAAY,KAAK,QAAQ,GAC5B,IAAI,CAACb,aAAa,CAACa,YAAY,CAAC,IAAI,EAAE,MAAAE,MAAA,KAAAC,mBAAA,CAAAC,OAAA,EAEjC,IAAI,CAACjB,aAAa,CAACE,QAAQ,OAAAc,mBAAA,CAAAC,OAAA,EAC3B,IAAI,CAACjB,aAAa,CAACI,QAAQ,OAAAY,mBAAA,CAAAC,OAAA,EAC3B,IAAI,CAACjB,aAAa,CAACK,MAAM,OAAAW,mBAAA,CAAAC,OAAA,EACzB,IAAI,CAACjB,aAAa,CAACG,OAAO,OAAAa,mBAAA,CAAAC,OAAA,EAC1B,IAAI,CAACjB,aAAa,CAACC,SAAS,EAChC;IAEP,OAAOa,cAAc;EACvB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEI,iBAAiB,WAAjBA,iBAAiBA,CAACC,SAAiB,EAAEN,YAA2B,EAA8B;IAC5F,IAAMC,cAAc,GAAG,IAAI,CAACF,qBAAqB,CAACC,YAAY,CAAC;IAE/D,OAAOC,cAAc,CAACM,IAAI,CAAC,UAACC,aAA6B;MAAA,OAAKA,aAAa,CAACC,EAAE,KAAKH,SAAS;IAAA,EAAC;EAC/F,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEI,mBAAmB,WAAnBA,mBAAmBA,CAACV,YAA0B,EAAEC,cAAqC,EAAQ;IAAA,IAAAU,KAAA;IAC3F;IACA,IAAIC,eAA2C;IAE/CX,cAAc,CAACY,OAAO,CAAC,UAACC,OAAO,EAAK;MAClCF,eAAe,GAAGD,KAAI,CAACN,iBAAiB,CAACS,OAAO,CAACL,EAAE,EAAET,YAAY,CAAC;MAElE,IAAI,CAACY,eAAe,EAAE;QACpBD,KAAI,CAACxB,aAAa,CAACa,YAAY,CAAC,CAACe,IAAI,CAACD,OAAO,CAAC;MAChD;IACF,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEE,qBAAqB,WAArBA,qBAAqBA,CAAChB,YAA0B,EAAEC,cAAqC,EAAQ;IAAA,IAAAgB,MAAA;IAC7F;IACA,IAAIL,eAA2C;IAE/CX,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEY,OAAO,CAAC,UAACC,OAAO,EAAK;MACnCF,eAAe,GAAGK,MAAI,CAACZ,iBAAiB,CAACS,OAAO,CAACL,EAAE,EAAET,YAAY,CAAC;MAElE,IAAIY,eAAe,EAAE;QACnBK,MAAI,CAAC9B,aAAa,CAACa,YAAY,CAAC,CAACkB,MAAM,CACrCD,MAAI,CAAC9B,aAAa,CAACa,YAAY,CAAC,CAACmB,OAAO,CAACP,eAAe,CAAC,EACzD,CACF,CAAC;MACH;IACF,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;EACEQ,KAAK,WAALA,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACjC,aAAa,CAACG,OAAO,CAAC/B,MAAM,GAAG,CAAC;IACrC,IAAI,CAAC4B,aAAa,CAACK,MAAM,CAACjC,MAAM,GAAG,CAAC;IACpC,IAAI,CAAC4B,aAAa,CAACI,QAAQ,CAAChC,MAAM,GAAG,CAAC;IACtC,IAAI,CAACkC,MAAM,CAACH,OAAO,GAAG;MAACI,KAAK,EAAE;IAAK,CAAC;IACpC,IAAI,CAACD,MAAM,CAACD,MAAM,GAAG;MAACE,KAAK,EAAE;IAAK,CAAC;IACnC,IAAI,CAACD,MAAM,CAACF,QAAQ,GAAG;MAACG,KAAK,EAAE;IAAK,CAAC;EACvC,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACE2B,aAAa,WAAbA,aAAaA,CAACC,GAAW,EAAsB;IAC7C,IAAI;MAAA,IAAAC,qBAAA;MACF,IAAMC,cAAc,GAAG,IAAIC,GAAG,CAACH,GAAG,CAAC;MACnC,IAAMI,iBAAiB,GAAG,IAAI,CAAC3B,qBAAqB,CAAC,CAAC;MAEtD,QAAAwB,qBAAA,GAAOG,iBAAiB,CAACnB,IAAI,CAAC,UAACC,aAA6B;QAAA,OAC1DA,aAAa,CAACmB,WAAW,CAACpB,IAAI,CAAC,UAAAqB,IAAA;UAAA,IAAEC,IAAI,GAAAD,IAAA,CAAJC,IAAI;UAAA,OAAMA,IAAI,KAAKL,cAAc,CAACK,IAAI;QAAA,EAAC;MAAA,CAC1E,CAAC,cAAAN,qBAAA,uBAFMA,qBAAA,CAEJd,EAAE;IACP,CAAC,CAAC,OAAAqB,OAAA,EAAM;MACN;MACA,OAAOC,SAAS;IAClB;EACF,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,wBAAwB,WAAxBA,wBAAwBA,CAAA,EAEmB;IAAA,IAAAC,KAAA,GAAAC,SAAA,CAAA3E,MAAA,QAAA2E,SAAA,QAAAH,SAAA,GAAAG,SAAA,MADb,CAAC,CAAC;MAA7B5B,SAAS,GAAA2B,KAAA,CAAT3B,SAAS;MAAEN,YAAY,GAAAiC,KAAA,CAAZjC,YAAY;IAExB,IAAMC,cAAc,GAAG,IAAI,CAACI,iBAAiB,CAACC,SAAS,EAAEN,YAAY,CAAC;IAEtE,IAAIC,cAAc,EAAE;MAClB,OAAO;QACLvB,IAAI,EAAEuB,cAAc,CAACkC,WAAW;QAChCb,GAAG,EAAErB,cAAc,CAACmC,GAAG,CAAC;MAC1B,CAAC;IACH;IAEA,OAAOL,SAAS;EAClB,CAAC;EAED;AACF;AACA;AACA;AACA;EACEM,wBAAwB,WAAxBA,wBAAwBA,CAACf,GAAW,EAA8B;IAChE,IAAMrB,cAAc,GAAG,IAAI,CAACF,qBAAqB,CAAC,CAAC;IAEnD,IAAIuC,YAAiB;IAErB,IAAI;MACFA,YAAY,GAAG,IAAIb,GAAG,CAACH,GAAG,CAAC;IAC7B,CAAC,CAAC,OAAAiB,QAAA,EAAM;MACN,OAAOR,SAAS;IAClB;IAEA,OAAO9B,cAAc,CAACM,IAAI,CAAC,UAAAiC,KAAA,EAAmB;MAAA,IAAjBb,WAAW,GAAAa,KAAA,CAAXb,WAAW;MAAA,IAAAc,SAAA,GAAA1F,0BAAA,CACb4E,WAAW;QAAAe,KAAA;MAAA;QAApC,KAAAD,SAAA,CAAA/E,CAAA,MAAAgF,KAAA,GAAAD,SAAA,CAAA9E,CAAA,IAAAC,IAAA,GAAsC;UAAA,IAA3B+E,UAAU,GAAAD,KAAA,CAAA7E,KAAA;UACnB,IAAI,IAAA+E,uCAAuB,EAACN,YAAY,EAAE,IAAAO,+BAAe,EAACF,UAAU,CAACG,OAAO,CAAC,CAAC,EAAE;YAC9E,OAAO,IAAI;UACb;QACF;MAAC,SAAAC,GAAA;QAAAN,SAAA,CAAAxF,CAAA,CAAA8F,GAAA;MAAA;QAAAN,SAAA,CAAA3E,CAAA;MAAA;MAED,OAAO,KAAK;IACd,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEkF,iBAAiB,WAAjBA,iBAAiBA,CAAC1B,GAAW,EAAU;IACrC,OAAO,IAAA2B,2BAAkB,EAAC3B,GAAG,EAAE,IAAI,CAACxB,cAAc,CAAC;EACrD,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEsC,GAAG,WAAHA,GAAGA,CAAC9B,SAAiB,EAAEN,YAA2B,EAAsB;IACtE,IAAMQ,aAAa,GAAG,IAAI,CAACH,iBAAiB,CAACC,SAAS,EAAEN,YAAY,CAAC;IAErE,OAAOQ,aAAa,GAAGA,aAAa,CAAC4B,GAAG,CAAC,CAAC,GAAGL,SAAS;EACxD,CAAC;EAED;AACF;AACA;AACA;AACA;EACEmB,iBAAiB,WAAjBA,iBAAiBA,CAAA,EAAkB;IACjC,WAAA/C,mBAAA,CAAAC,OAAA,EAAW,IAAI,CAACN,cAAc;EAChC,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEqD,oBAAoB,WAApBA,oBAAoBA,CAAC7B,GAAW,EAAsB;IACpD,IAAMrB,cAAc,GAAG,IAAI,CAACF,qBAAqB,CAAC,CAAC;IAEnD,IAAMqD,2BAA2B,GAAGnD,cAAc,CAACM,IAAI,CAAC,UAACC,aAA6B;MAAA,OACpFA,aAAa,CAAC6C,QAAQ,CAAC/B,GAAG,CAAC;IAAA,CAC7B,CAAC;;IAED;IACA,IAAI,CAAC8B,2BAA2B,EAAE;MAChC,OAAOrB,SAAS;IAClB;IAEA,OAAOqB,2BAA2B,CAAChB,GAAG,CAAC,CAAC;EAC1C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEkB,iBAAiB,WAAjBA,iBAAiBA,CAACxD,cAA6B,EAAQ;IACrD,IAAI,CAACA,cAAc,GAAG,IAAAyD,gCAAuB,EAACzD,cAAc,CAAC;EAC/D,CAAC;EAED;AACF;AACA;AACA;AACA;EACE0D,iBAAiB,WAAjBA,iBAAiBA,CAACC,iBAAgC,EAAQ;IACxD,IAAI,CAAC3D,cAAc,GAAG,IAAA4D,aAAK,EAAC,IAAI,CAAC5D,cAAc,EAAE,IAAAyD,gCAAuB,EAACE,iBAAiB,CAAC,CAAC;EAC9F,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEE,mBAAmB,WAAnBA,mBAAmBA,CACjB3D,YAA0B,EAC1BC,cAAqC,EACrCJ,SAAkB,EAClB;IAAA,IAAA+D,MAAA;IACA,IAAMC,qBAAqB,GAAG,IAAI,CAAC1E,aAAa,CAACa,YAAY,CAAC;IAE9D,IAAM8D,qBAAqB,GAAGD,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAEE,MAAM,CAAC,UAACvD,aAAa;MAAA,OACxEP,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAE+D,KAAK,CAAC,UAAAC,KAAA;QAAA,IAAExD,EAAE,GAAAwD,KAAA,CAAFxD,EAAE;QAAA,OAAMA,EAAE,KAAKD,aAAa,CAACC,EAAE;MAAA,EAAC;IAAA,CAC1D,CAAC;IAED,IAAI,CAACO,qBAAqB,CAAChB,YAAY,EAAE8D,qBAAqB,CAAC;IAE/D7D,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEY,OAAO,CAAC,UAACqD,UAAU,EAAK;MAAA,IAAAC,qBAAA;MACtC,IAAM3D,aAAa,GAAGoD,MAAI,CAACvD,iBAAiB,CAAC6D,UAAU,CAACzD,EAAE,EAAET,YAAY,CAAC;MACzEkE,UAAU,aAAVA,UAAU,wBAAAC,qBAAA,GAAVD,UAAU,CAAEvC,WAAW,cAAAwC,qBAAA,uBAAvBA,qBAAA,CAAyBC,IAAI,CAAC,UAACnG,CAAC,EAAEoG,CAAC,EAAK;QACtC,IAAIpG,CAAC,CAACqG,QAAQ,GAAG,CAAC,IAAID,CAAC,CAACC,QAAQ,GAAG,CAAC,EAAE,OAAO,CAAC;QAC9C,IAAIrG,CAAC,CAACqG,QAAQ,GAAG,CAAC,EAAE,OAAO,CAAC;QAC5B,IAAID,CAAC,CAACC,QAAQ,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;QAE7B,OAAOrG,CAAC,CAACqG,QAAQ,GAAGD,CAAC,CAACC,QAAQ;MAChC,CAAC,CAAC;MACF,IAAI9D,aAAa,EAAE;QACjBA,aAAa,CAACmB,WAAW,GAAGuC,UAAU,CAACvC,WAAW,IAAI,EAAE;MAC1D,CAAC,MAAM;QACLiC,MAAI,CAAClD,mBAAmB,CAACV,YAAY,EAAE,CAAC,IAAIuE,sBAAa,CAACL,UAAU,CAAC,CAAC,CAAC;MACzE;IACF,CAAC,CAAC;IAEF,IAAI,CAACrE,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACJ,MAAM,CAACO,YAAY,CAAC,CAACN,KAAK,GAAG,IAAI;IACtC,IAAI,CAAC8E,OAAO,CAACxE,YAAY,CAAC;EAC5B,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEyE,cAAc,WAAdA,cAAcA,CAACzE,YAA0B,EAAE0E,OAAgB,EAAiB;IAAA,IAAAC,MAAA;IAC1E,OAAO,IAAAC,QAAA,CAAAxE,OAAA,CAAkB,UAACyE,OAAO,EAAEC,MAAM,EAAK;MAC5C,IAAIH,MAAI,CAAClF,MAAM,CAACO,YAAY,CAAC,CAACN,KAAK,EAAE;QACnCmF,OAAO,CAAC,CAAC;MACX;MAEA,IAAME,gBAAgB,GAAG,OAAOL,OAAO,KAAK,QAAQ,IAAIA,OAAO,IAAI,CAAC,GAAGA,OAAO,GAAG,EAAE;MAEnF,IAAMM,YAAY,GAAGC,UAAU,CAC7B;QAAA,OACEH,MAAM,CACJ,IAAII,KAAK,iDAAAhF,MAAA,CACyCF,YAAY,0BAC9D,CACF,CAAC;MAAA,GACH+E,gBAAgB,GAAG,IACrB,CAAC;MAEDJ,MAAI,CAACQ,IAAI,CAACnF,YAAY,EAAE,YAAM;QAC5BoF,YAAY,CAACJ,YAAY,CAAC;QAC1BH,OAAO,CAAC,CAAC;MACX,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;AACF,CAAC,CAAC;AAAC,IAAAQ,QAAA,GAAAC,OAAA,CAAAlF,OAAA,GAEYtB,cAAc","ignoreList":[]}
|
|
@@ -29,6 +29,7 @@ var _metrics = _interopRequireDefault(require("../metrics"));
|
|
|
29
29
|
var _serviceCatalog = _interopRequireDefault(require("./service-catalog"));
|
|
30
30
|
var _serviceFedRamp = _interopRequireDefault(require("./service-fed-ramp"));
|
|
31
31
|
var _constants = require("../constants");
|
|
32
|
+
var _serviceCatalog2 = require("../services/service-catalog");
|
|
32
33
|
function ownKeys(e, r) { var t = _Object$keys2(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
33
34
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
34
35
|
var trailingSlashes = /(?:^\/)|(?:\/$)/;
|
|
@@ -933,7 +934,7 @@ var Services = _webexPlugin.default.extend({
|
|
|
933
934
|
}
|
|
934
935
|
var priorityUrl = service.get();
|
|
935
936
|
var defaultUrl = new URL(service.serviceUrls.find(function (serviceUrl) {
|
|
936
|
-
return
|
|
937
|
+
return (0, _serviceCatalog2.matchesCatalogUrl)(url, serviceUrl.baseUrl);
|
|
937
938
|
}).baseUrl).href;
|
|
938
939
|
return {
|
|
939
940
|
name: service.serviceName,
|
|
@@ -1218,9 +1219,11 @@ var Services = _webexPlugin.default.extend({
|
|
|
1218
1219
|
authorization: token
|
|
1219
1220
|
};
|
|
1220
1221
|
}
|
|
1221
|
-
|
|
1222
|
+
var sendRequest = function sendRequest() {
|
|
1222
1223
|
return _this1.request(requestObject);
|
|
1223
|
-
}
|
|
1224
|
+
};
|
|
1225
|
+
var responsePromise = this.webex.internal.newMetrics ? this.webex.internal.newMetrics.callDiagnosticLatencies.measureLatency(sendRequest, 'internal.get.u2c.time') : sendRequest();
|
|
1226
|
+
return responsePromise.then(function (_ref12) {
|
|
1224
1227
|
var body = _ref12.body;
|
|
1225
1228
|
return _this1._formatReceivedHostmap(body || {});
|
|
1226
1229
|
});
|
|
@@ -1375,6 +1378,26 @@ var Services = _webexPlugin.default.extend({
|
|
|
1375
1378
|
}, _callee3);
|
|
1376
1379
|
}))();
|
|
1377
1380
|
},
|
|
1381
|
+
/**
|
|
1382
|
+
* Build a promise that rejects once the catalog init timeout elapses. Race
|
|
1383
|
+
* this against catalog collection so a hung request never leaves
|
|
1384
|
+
* `services.ready` false forever - that would stall `webex.ready` and leave
|
|
1385
|
+
* consumers waiting on it indefinitely. Timeout is configurable via
|
|
1386
|
+
* `config.services.catalogInitTimeout` (defaults to 15s in config). Created
|
|
1387
|
+
* lazily so paths that skip catalog collection never schedule a stray timer.
|
|
1388
|
+
*
|
|
1389
|
+
* @private
|
|
1390
|
+
* @returns {Promise<never>}
|
|
1391
|
+
*/
|
|
1392
|
+
_makeInitTimeout: function _makeInitTimeout() {
|
|
1393
|
+
var _this$webex$config4, _this$webex$config4$s;
|
|
1394
|
+
var initTimeoutMs = (_this$webex$config4 = this.webex.config) === null || _this$webex$config4 === void 0 ? void 0 : (_this$webex$config4$s = _this$webex$config4.services) === null || _this$webex$config4$s === void 0 ? void 0 : _this$webex$config4$s.catalogInitTimeout;
|
|
1395
|
+
return new _promise.default(function (_, reject) {
|
|
1396
|
+
setTimeout(function () {
|
|
1397
|
+
return reject(new Error("services: init timed out after ".concat(initTimeoutMs, "ms")));
|
|
1398
|
+
}, initTimeoutMs);
|
|
1399
|
+
});
|
|
1400
|
+
},
|
|
1378
1401
|
/**
|
|
1379
1402
|
* Initializer
|
|
1380
1403
|
*
|
|
@@ -1423,7 +1446,7 @@ var Services = _webexPlugin.default.extend({
|
|
|
1423
1446
|
// wait for webex instance to be ready before attempting
|
|
1424
1447
|
// to update the service catalogs
|
|
1425
1448
|
this.listenToOnce(this.webex, 'ready', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
1426
|
-
var warmed, supertoken, email;
|
|
1449
|
+
var warmed, supertoken, _this14$webex$config, _this14$webex$config$, email;
|
|
1427
1450
|
return _regenerator.default.wrap(function (_context4) {
|
|
1428
1451
|
while (1) switch (_context4.prev = _context4.next) {
|
|
1429
1452
|
case 0:
|
|
@@ -1439,23 +1462,34 @@ var Services = _webexPlugin.default.extend({
|
|
|
1439
1462
|
return _context4.abrupt("return");
|
|
1440
1463
|
case 2:
|
|
1441
1464
|
supertoken = _this14.webex.credentials.supertoken; // Validate if the supertoken exists.
|
|
1442
|
-
if (supertoken && supertoken.access_token) {
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
_this14.initServiceCatalogs().catch(function (error) {
|
|
1446
|
-
_this14.initFailed = true;
|
|
1447
|
-
_this14.logger.error("services: failed to init initial services when credentials available, ".concat(error === null || error === void 0 ? void 0 : error.message));
|
|
1448
|
-
});
|
|
1449
|
-
} else {
|
|
1450
|
-
email = _this14.webex.config.email;
|
|
1451
|
-
_this14.collectPreauthCatalog(email ? {
|
|
1452
|
-
email: email
|
|
1453
|
-
} : undefined).catch(function (error) {
|
|
1454
|
-
_this14.initFailed = true;
|
|
1455
|
-
_this14.logger.error("services: failed to init initial services when no credentials available, ".concat(error === null || error === void 0 ? void 0 : error.message));
|
|
1456
|
-
});
|
|
1465
|
+
if (!(supertoken && supertoken.access_token)) {
|
|
1466
|
+
_context4.next = 3;
|
|
1467
|
+
break;
|
|
1457
1468
|
}
|
|
1469
|
+
// `initServiceCatalogs` marks the catalog ready internally once the
|
|
1470
|
+
// postauth catalog is collected.
|
|
1471
|
+
_this14.initServiceCatalogs().catch(function (error) {
|
|
1472
|
+
_this14.initFailed = true;
|
|
1473
|
+
_this14.logger.error("services: failed to init initial services when credentials available, ".concat(error === null || error === void 0 ? void 0 : error.message));
|
|
1474
|
+
});
|
|
1475
|
+
_context4.next = 5;
|
|
1476
|
+
break;
|
|
1458
1477
|
case 3:
|
|
1478
|
+
email = _this14.webex.config.email;
|
|
1479
|
+
if (!(((_this14$webex$config = _this14.webex.config) === null || _this14$webex$config === void 0 ? void 0 : (_this14$webex$config$ = _this14$webex$config.services) === null || _this14$webex$config$ === void 0 ? void 0 : _this14$webex$config$.skipPreauthCatalogOnUnauthenticated) === true)) {
|
|
1480
|
+
_context4.next = 4;
|
|
1481
|
+
break;
|
|
1482
|
+
}
|
|
1483
|
+
_this14.logger.info('services: skipping preauth catalog collection while unauthenticated as per the config');
|
|
1484
|
+
return _context4.abrupt("return");
|
|
1485
|
+
case 4:
|
|
1486
|
+
_this14.collectPreauthCatalog(email ? {
|
|
1487
|
+
email: email
|
|
1488
|
+
} : undefined).catch(function (error) {
|
|
1489
|
+
_this14.initFailed = true;
|
|
1490
|
+
_this14.logger.error("services: failed to init initial services when no credentials available, ".concat(error === null || error === void 0 ? void 0 : error.message));
|
|
1491
|
+
});
|
|
1492
|
+
case 5:
|
|
1459
1493
|
case "end":
|
|
1460
1494
|
return _context4.stop();
|
|
1461
1495
|
}
|
|
@@ -1478,8 +1512,7 @@ var Services = _webexPlugin.default.extend({
|
|
|
1478
1512
|
// catalogs. We listen for 'loaded' instead of 'ready' because `services.ready`
|
|
1479
1513
|
// now blocks `webex.ready` - listening to 'ready' would deadlock.
|
|
1480
1514
|
this.listenToOnce(this.webex, 'loaded', /*#__PURE__*/(0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee5() {
|
|
1481
|
-
var _this15$webex$config, _this15$webex$config
|
|
1482
|
-
var warmed, supertoken, initTimeoutMs, initServiceCatalogsTimeout, email;
|
|
1515
|
+
var warmed, supertoken, _this15$webex$config, _this15$webex$config$, email;
|
|
1483
1516
|
return _regenerator.default.wrap(function (_context5) {
|
|
1484
1517
|
while (1) switch (_context5.prev = _context5.next) {
|
|
1485
1518
|
case 0:
|
|
@@ -1497,38 +1530,19 @@ var Services = _webexPlugin.default.extend({
|
|
|
1497
1530
|
case 2:
|
|
1498
1531
|
return _context5.abrupt("return");
|
|
1499
1532
|
case 3:
|
|
1500
|
-
supertoken = _this15.webex.credentials.supertoken; //
|
|
1501
|
-
// `services.ready` false forever - that would stall `webex.ready` and
|
|
1502
|
-
// leave consumers waiting on it indefinitely. Timeout is configurable via
|
|
1503
|
-
// `config.services.catalogInitTimeout` (defaults to 15s in config).
|
|
1504
|
-
initTimeoutMs = (_this15$webex$config = _this15.webex.config) === null || _this15$webex$config === void 0 ? void 0 : (_this15$webex$config$ = _this15$webex$config.services) === null || _this15$webex$config$ === void 0 ? void 0 : _this15$webex$config$.catalogInitTimeout;
|
|
1505
|
-
initServiceCatalogsTimeout = new _promise.default(function (_, reject) {
|
|
1506
|
-
setTimeout(function () {
|
|
1507
|
-
return reject(new Error("services: init timed out after ".concat(initTimeoutMs, "ms")));
|
|
1508
|
-
}, initTimeoutMs);
|
|
1509
|
-
}); // Validate if the supertoken exists.
|
|
1533
|
+
supertoken = _this15.webex.credentials.supertoken; // Validate if the supertoken exists.
|
|
1510
1534
|
if (supertoken && supertoken.access_token) {
|
|
1511
1535
|
// `initServiceCatalogs` marks the catalog ready internally once the
|
|
1512
1536
|
// postauth catalog is collected - even if it loses the timeout race
|
|
1513
|
-
//
|
|
1514
|
-
_promise.default.race([_this15.initServiceCatalogs(),
|
|
1537
|
+
// below, so a slow fetch still eventually flips `catalog.isReady`.
|
|
1538
|
+
_promise.default.race([_this15.initServiceCatalogs(), _this15._makeInitTimeout()]).catch(function (error) {
|
|
1515
1539
|
_this15.initFailed = true;
|
|
1516
1540
|
_this15.logger.error("services: failed to init initial services when credentials available, ".concat(error === null || error === void 0 ? void 0 : error.message));
|
|
1517
1541
|
}).finally(function () {
|
|
1518
1542
|
return _this15._finalizeReady();
|
|
1519
1543
|
});
|
|
1520
1544
|
} else {
|
|
1521
|
-
email = _this15.webex.config.email;
|
|
1522
|
-
_promise.default.race([_this15.collectPreauthCatalog(email ? {
|
|
1523
|
-
email: email
|
|
1524
|
-
} : undefined), initServiceCatalogsTimeout]).catch(function (error) {
|
|
1525
|
-
_this15.initFailed = true;
|
|
1526
|
-
_this15.logger.error("services: failed to init initial services when no credentials available, ".concat(error === null || error === void 0 ? void 0 : error.message));
|
|
1527
|
-
}).finally(function () {
|
|
1528
|
-
return _this15._finalizeReady();
|
|
1529
|
-
});
|
|
1530
|
-
|
|
1531
|
-
// Handle fresh login: 'loaded' fires before OAuth completes, so listen
|
|
1545
|
+
email = _this15.webex.config.email; // Handle fresh login: 'loaded' fires before OAuth completes, so listen
|
|
1532
1546
|
// for `canAuthorize` flipping true and then collect the postauth catalog.
|
|
1533
1547
|
_this15.listenToOnce(_this15.webex, 'change:canAuthorize', function () {
|
|
1534
1548
|
if (_this15.webex.canAuthorize && !catalog.status.postauth.ready) {
|
|
@@ -1538,6 +1552,23 @@ var Services = _webexPlugin.default.extend({
|
|
|
1538
1552
|
});
|
|
1539
1553
|
}
|
|
1540
1554
|
});
|
|
1555
|
+
if (((_this15$webex$config = _this15.webex.config) === null || _this15$webex$config === void 0 ? void 0 : (_this15$webex$config$ = _this15$webex$config.services) === null || _this15$webex$config$ === void 0 ? void 0 : _this15$webex$config$.skipPreauthCatalogOnUnauthenticated) === true) {
|
|
1556
|
+
// Skip the preauth catalog fetch (it will be collected manually
|
|
1557
|
+
// later), but still finalize `services.ready` so `webex.ready` is not
|
|
1558
|
+
// stalled while unauthenticated. No timeout is created here so there
|
|
1559
|
+
// is no stray timer or unhandled rejection.
|
|
1560
|
+
_this15.logger.info('services: skipping preauth catalog collection while unauthenticated as per the config');
|
|
1561
|
+
_this15._finalizeReady();
|
|
1562
|
+
} else {
|
|
1563
|
+
_promise.default.race([_this15.collectPreauthCatalog(email ? {
|
|
1564
|
+
email: email
|
|
1565
|
+
} : undefined), _this15._makeInitTimeout()]).catch(function (error) {
|
|
1566
|
+
_this15.initFailed = true;
|
|
1567
|
+
_this15.logger.error("services: failed to init initial services when no credentials available, ".concat(error === null || error === void 0 ? void 0 : error.message));
|
|
1568
|
+
}).finally(function () {
|
|
1569
|
+
return _this15._finalizeReady();
|
|
1570
|
+
});
|
|
1571
|
+
}
|
|
1541
1572
|
}
|
|
1542
1573
|
case 4:
|
|
1543
1574
|
case "end":
|
|
@@ -1546,7 +1577,7 @@ var Services = _webexPlugin.default.extend({
|
|
|
1546
1577
|
}, _callee5);
|
|
1547
1578
|
})));
|
|
1548
1579
|
},
|
|
1549
|
-
version: "3.12.0-llmrefactor.
|
|
1580
|
+
version: "3.12.0-llmrefactor.10"
|
|
1550
1581
|
});
|
|
1551
1582
|
/* eslint-enable no-underscore-dangle */
|
|
1552
1583
|
var _default = exports.default = Services;
|