@webex/webex-core 3.0.0-bnr.4 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +6 -0
- package/babel.config.js +3 -0
- package/dist/config.js +1 -2
- package/dist/config.js.map +1 -1
- package/dist/credentials-config.js +1 -2
- 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 +4 -3
- package/dist/interceptors/auth.js.map +1 -1
- package/dist/interceptors/default-options.js +4 -3
- package/dist/interceptors/default-options.js.map +1 -1
- package/dist/interceptors/embargo.js +4 -3
- package/dist/interceptors/embargo.js.map +1 -1
- package/dist/interceptors/network-timing.js +4 -3
- package/dist/interceptors/network-timing.js.map +1 -1
- package/dist/interceptors/payload-transformer.js +4 -3
- package/dist/interceptors/payload-transformer.js.map +1 -1
- package/dist/interceptors/rate-limit.js +4 -3
- package/dist/interceptors/rate-limit.js.map +1 -1
- package/dist/interceptors/redirect.js +7 -6
- package/dist/interceptors/redirect.js.map +1 -1
- package/dist/interceptors/request-event.js +9 -8
- package/dist/interceptors/request-event.js.map +1 -1
- package/dist/interceptors/request-logger.js +12 -15
- package/dist/interceptors/request-logger.js.map +1 -1
- package/dist/interceptors/request-timing.js +4 -3
- 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 +8 -7
- package/dist/interceptors/user-agent.js.map +1 -1
- package/dist/interceptors/webex-tracking-id.js +4 -3
- package/dist/interceptors/webex-tracking-id.js.map +1 -1
- package/dist/interceptors/webex-user-agent.js +9 -8
- package/dist/interceptors/webex-user-agent.js.map +1 -1
- package/dist/lib/batcher.js +8 -5
- package/dist/lib/batcher.js.map +1 -1
- package/dist/lib/constants.js +13 -0
- package/dist/lib/constants.js.map +1 -0
- package/dist/lib/credentials/credentials.js +73 -35
- 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/index.js.map +1 -1
- package/dist/lib/credentials/scope.js +26 -5
- package/dist/lib/credentials/scope.js.map +1 -1
- package/dist/lib/credentials/token-collection.js +1 -2
- package/dist/lib/credentials/token-collection.js.map +1 -1
- package/dist/lib/credentials/token.js +14 -10
- package/dist/lib/credentials/token.js.map +1 -1
- package/dist/lib/page.js +1 -2
- package/dist/lib/page.js.map +1 -1
- package/dist/lib/services/constants.js +3 -6
- 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 +6 -5
- package/dist/lib/services/interceptors/server-error.js.map +1 -1
- package/dist/lib/services/interceptors/service.js +8 -5
- package/dist/lib/services/interceptors/service.js.map +1 -1
- package/dist/lib/services/metrics.js +1 -2
- 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 +1 -2
- package/dist/lib/services/service-fed-ramp.js.map +1 -1
- package/dist/lib/services/service-host.js +1 -2
- package/dist/lib/services/service-host.js.map +1 -1
- package/dist/lib/services/service-registry.js +3 -4
- package/dist/lib/services/service-registry.js.map +1 -1
- package/dist/lib/services/service-state.js +1 -2
- package/dist/lib/services/service-state.js.map +1 -1
- package/dist/lib/services/service-url.js +1 -2
- package/dist/lib/services/service-url.js.map +1 -1
- package/dist/lib/services/services.js +56 -13
- package/dist/lib/services/services.js.map +1 -1
- package/dist/lib/stateless-webex-plugin.js +1 -2
- package/dist/lib/stateless-webex-plugin.js.map +1 -1
- package/dist/lib/storage/decorators.js +18 -16
- 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/index.js.map +1 -1
- package/dist/lib/storage/make-webex-plugin-store.js +8 -10
- 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 +1 -2
- package/dist/lib/storage/memory-store-adapter.js.map +1 -1
- package/dist/lib/webex-core-plugin-mixin.js +13 -14
- package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-http-error.js +4 -3
- package/dist/lib/webex-http-error.js.map +1 -1
- package/dist/lib/webex-internal-core-plugin-mixin.js +13 -14
- package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-plugin.js +5 -8
- package/dist/lib/webex-plugin.js.map +1 -1
- package/dist/plugins/logger.js +2 -3
- package/dist/plugins/logger.js.map +1 -1
- package/dist/webex-core.js +37 -38
- package/dist/webex-core.js.map +1 -1
- package/dist/webex-internal-core.js +1 -2
- package/dist/webex-internal-core.js.map +1 -1
- package/jest.config.js +3 -0
- package/package.json +33 -17
- package/process +1 -0
- package/src/lib/constants.js +6 -0
- package/src/lib/credentials/credentials.js +82 -40
- package/src/lib/credentials/scope.js +24 -5
- package/src/lib/credentials/token.js +9 -1
- package/src/lib/services/interceptors/server-error.js +1 -1
- package/src/lib/services/interceptors/service.js +2 -2
- package/src/lib/services/service-catalog.js +3 -1
- package/src/lib/services/services.js +46 -0
- package/src/webex-core.js +13 -1
- package/test/integration/spec/credentials/credentials.js +6 -3
- package/test/integration/spec/unit-browser/auth.js +93 -0
- package/test/integration/spec/unit-browser/token.js +122 -0
- package/test/unit/spec/_setup.js +6 -0
- package/test/unit/spec/credentials/credentials.js +181 -24
- package/test/unit/spec/credentials/scope.js +80 -0
- package/test/unit/spec/credentials/token.js +11 -1
- package/test/unit/spec/interceptors/auth.js +4 -1
- package/test/unit/spec/interceptors/embargo.js +8 -8
- package/test/unit/spec/interceptors/webex-user-agent.js +6 -6
- package/test/unit/spec/lib/page.js +3 -3
- package/test/unit/spec/services/interceptors/server-error.js +5 -5
- package/test/unit/spec/services/interceptors/service.js +21 -14
- package/test/unit/spec/services/service-catalog.js +24 -12
- package/test/unit/spec/services/service-host.js +3 -3
- package/test/unit/spec/services/service-registry.js +34 -44
- package/test/unit/spec/services/service-state.js +1 -1
- package/test/unit/spec/services/service-url.js +2 -2
- package/test/unit/spec/services/services.js +10 -4
- package/test/unit/spec/webex-core.js +12 -2
- package/test/unit/spec/webex-internal-core.js +0 -10
- package/dist/types/config.d.ts +0 -39
- package/dist/types/credentials-config.d.ts +0 -2
- package/dist/types/index.d.ts +0 -24
- package/dist/types/interceptors/auth.d.ts +0 -43
- package/dist/types/interceptors/default-options.d.ts +0 -31
- package/dist/types/interceptors/embargo.d.ts +0 -16
- package/dist/types/interceptors/network-timing.d.ts +0 -30
- package/dist/types/interceptors/payload-transformer.d.ts +0 -30
- package/dist/types/interceptors/rate-limit.d.ts +0 -61
- package/dist/types/interceptors/redirect.d.ts +0 -22
- package/dist/types/interceptors/request-event.d.ts +0 -36
- package/dist/types/interceptors/request-logger.d.ts +0 -22
- package/dist/types/interceptors/request-timing.d.ts +0 -36
- package/dist/types/interceptors/response-logger.d.ts +0 -30
- package/dist/types/interceptors/user-agent.d.ts +0 -38
- package/dist/types/interceptors/webex-tracking-id.d.ts +0 -26
- package/dist/types/interceptors/webex-user-agent.d.ts +0 -22
- package/dist/types/lib/batcher.d.ts +0 -6
- package/dist/types/lib/credentials/credentials.d.ts +0 -5
- package/dist/types/lib/credentials/grant-errors.d.ts +0 -57
- package/dist/types/lib/credentials/index.d.ts +0 -4
- package/dist/types/lib/credentials/scope.d.ts +0 -16
- package/dist/types/lib/credentials/token-collection.d.ts +0 -2
- package/dist/types/lib/credentials/token.d.ts +0 -5
- package/dist/types/lib/page.d.ts +0 -76
- package/dist/types/lib/services/constants.d.ts +0 -6
- package/dist/types/lib/services/index.d.ts +0 -10
- package/dist/types/lib/services/interceptors/server-error.d.ts +0 -16
- package/dist/types/lib/services/interceptors/service.d.ts +0 -37
- package/dist/types/lib/services/metrics.d.ts +0 -4
- package/dist/types/lib/services/service-catalog.d.ts +0 -5
- package/dist/types/lib/services/service-fed-ramp.d.ts +0 -5
- package/dist/types/lib/services/service-host.d.ts +0 -217
- package/dist/types/lib/services/service-registry.d.ts +0 -271
- package/dist/types/lib/services/service-state.d.ts +0 -46
- package/dist/types/lib/services/service-url.d.ts +0 -5
- package/dist/types/lib/services/services.d.ts +0 -5
- package/dist/types/lib/stateless-webex-plugin.d.ts +0 -48
- package/dist/types/lib/storage/decorators.d.ts +0 -15
- package/dist/types/lib/storage/errors.d.ts +0 -10
- package/dist/types/lib/storage/index.d.ts +0 -5
- package/dist/types/lib/storage/make-webex-plugin-store.d.ts +0 -8
- package/dist/types/lib/storage/make-webex-store.d.ts +0 -48
- package/dist/types/lib/storage/memory-store-adapter.d.ts +0 -18
- package/dist/types/lib/webex-core-plugin-mixin.d.ts +0 -8
- package/dist/types/lib/webex-http-error.d.ts +0 -12
- package/dist/types/lib/webex-internal-core-plugin-mixin.d.ts +0 -8
- package/dist/types/lib/webex-plugin.d.ts +0 -5
- package/dist/types/plugins/logger.d.ts +0 -2
- package/dist/types/webex-core.d.ts +0 -31
- package/dist/types/webex-internal-core.d.ts +0 -7
package/.eslintrc.js
ADDED
package/babel.config.js
ADDED
package/dist/config.js
CHANGED
|
@@ -12,7 +12,7 @@ var _credentialsConfig = _interopRequireDefault(require("./credentials-config"))
|
|
|
12
12
|
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
13
13
|
*/
|
|
14
14
|
/* eslint camelcase: [0] */
|
|
15
|
-
var _default = {
|
|
15
|
+
var _default = exports.default = {
|
|
16
16
|
maxAppLevelRedirects: 10,
|
|
17
17
|
maxLocusRedirects: 5,
|
|
18
18
|
maxAuthenticationReplays: 1,
|
|
@@ -80,5 +80,4 @@ var _default = {
|
|
|
80
80
|
unboundedAdapter: _storage.MemoryStoreAdapter
|
|
81
81
|
}
|
|
82
82
|
};
|
|
83
|
-
exports.default = _default;
|
|
84
83
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["maxAppLevelRedirects","maxLocusRedirects","maxAuthenticationReplays","maxReconnectAttempts","onBeforeLogout","trackingIdPrefix","trackingIdSuffix","AlternateLogger","undefined","credentials","CredentialsConfig","fedramp","process","env","ENABLE_FEDRAMP","services","discovery","hydra","HYDRA_SERVICE_URL","u2c","U2C_SERVICE_URL","validateDomains","servicesNotNeedValidation","allowedDomains","device","preDiscoveryServices","hydraServiceUrl","metrics","type","payloadTransformer","predicates","transforms","storage","boundedAdapter","MemoryStoreAdapter","unboundedAdapter"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint camelcase: [0] */\n\nimport {MemoryStoreAdapter} from './lib/storage';\nimport CredentialsConfig from './credentials-config';\n\nexport default {\n maxAppLevelRedirects: 10,\n maxLocusRedirects: 5,\n maxAuthenticationReplays: 1,\n maxReconnectAttempts: 1,\n onBeforeLogout: [],\n trackingIdPrefix: 'webex-js-sdk',\n trackingIdSuffix: '',\n AlternateLogger: undefined,\n credentials: new CredentialsConfig(),\n fedramp: process.env.ENABLE_FEDRAMP || false,\n services: {\n /**\n * A list of services that are available prior to catalog collection.\n *\n * @type {Object}\n */\n discovery: {\n /**\n * The hydra discovery url.\n *\n * @type {string}\n */\n hydra: process.env.HYDRA_SERVICE_URL || 'https://api.ciscospark.com/v1',\n\n /**\n * The u2c discovery url\n *\n * @type {string}\n */\n u2c: process.env.U2C_SERVICE_URL || 'https://u2c.wbx2.com/u2c/api/v1',\n },\n\n /**\n * When true, considers all urls in `allowedDomains` as safe for auth tokens\n *\n * @type {boolean}\n */\n validateDomains: true,\n\n /**\n * services that don't need auth validation\n */\n\n servicesNotNeedValidation: ['webex-appapi-service'],\n\n /**\n * Contains a list of allowed domain host addresses.\n *\n * @type {Array<string>}\n */\n allowedDomains: [\n 'wbx2.com',\n 'ciscospark.com',\n 'webex.com',\n 'webexapis.com',\n 'broadcloudpbx.com',\n 'broadcloud.eu',\n 'broadcloud.com.au',\n 'broadcloudpbx.net',\n ],\n },\n device: {\n preDiscoveryServices: {\n hydra: process.env.HYDRA_SERVICE_URL || 'https://api.ciscospark.com/v1',\n hydraServiceUrl: process.env.HYDRA_SERVICE_URL || 'https://api.ciscospark.com/v1',\n },\n validateDomains: true,\n },\n metrics: {\n type: ['behavioral', 'operational'],\n },\n payloadTransformer: {\n predicates: [],\n transforms: [],\n },\n storage: {\n boundedAdapter: MemoryStoreAdapter,\n unboundedAdapter: MemoryStoreAdapter,\n },\n};\n"],"mappings":";;;;;;;;AAMA;AACA;AAPA;AACA;AACA;AAEA;AAAA,
|
|
1
|
+
{"version":3,"names":["_storage","require","_credentialsConfig","_interopRequireDefault","_default","exports","default","maxAppLevelRedirects","maxLocusRedirects","maxAuthenticationReplays","maxReconnectAttempts","onBeforeLogout","trackingIdPrefix","trackingIdSuffix","AlternateLogger","undefined","credentials","CredentialsConfig","fedramp","process","env","ENABLE_FEDRAMP","services","discovery","hydra","HYDRA_SERVICE_URL","u2c","U2C_SERVICE_URL","validateDomains","servicesNotNeedValidation","allowedDomains","device","preDiscoveryServices","hydraServiceUrl","metrics","type","payloadTransformer","predicates","transforms","storage","boundedAdapter","MemoryStoreAdapter","unboundedAdapter"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/* eslint camelcase: [0] */\n\nimport {MemoryStoreAdapter} from './lib/storage';\nimport CredentialsConfig from './credentials-config';\n\nexport default {\n maxAppLevelRedirects: 10,\n maxLocusRedirects: 5,\n maxAuthenticationReplays: 1,\n maxReconnectAttempts: 1,\n onBeforeLogout: [],\n trackingIdPrefix: 'webex-js-sdk',\n trackingIdSuffix: '',\n AlternateLogger: undefined,\n credentials: new CredentialsConfig(),\n fedramp: process.env.ENABLE_FEDRAMP || false,\n services: {\n /**\n * A list of services that are available prior to catalog collection.\n *\n * @type {Object}\n */\n discovery: {\n /**\n * The hydra discovery url.\n *\n * @type {string}\n */\n hydra: process.env.HYDRA_SERVICE_URL || 'https://api.ciscospark.com/v1',\n\n /**\n * The u2c discovery url\n *\n * @type {string}\n */\n u2c: process.env.U2C_SERVICE_URL || 'https://u2c.wbx2.com/u2c/api/v1',\n },\n\n /**\n * When true, considers all urls in `allowedDomains` as safe for auth tokens\n *\n * @type {boolean}\n */\n validateDomains: true,\n\n /**\n * services that don't need auth validation\n */\n\n servicesNotNeedValidation: ['webex-appapi-service'],\n\n /**\n * Contains a list of allowed domain host addresses.\n *\n * @type {Array<string>}\n */\n allowedDomains: [\n 'wbx2.com',\n 'ciscospark.com',\n 'webex.com',\n 'webexapis.com',\n 'broadcloudpbx.com',\n 'broadcloud.eu',\n 'broadcloud.com.au',\n 'broadcloudpbx.net',\n ],\n },\n device: {\n preDiscoveryServices: {\n hydra: process.env.HYDRA_SERVICE_URL || 'https://api.ciscospark.com/v1',\n hydraServiceUrl: process.env.HYDRA_SERVICE_URL || 'https://api.ciscospark.com/v1',\n },\n validateDomains: true,\n },\n metrics: {\n type: ['behavioral', 'operational'],\n },\n payloadTransformer: {\n predicates: [],\n transforms: [],\n },\n storage: {\n boundedAdapter: MemoryStoreAdapter,\n unboundedAdapter: MemoryStoreAdapter,\n },\n};\n"],"mappings":";;;;;;;;AAMA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAPA;AACA;AACA;AAEA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAKe;EACbC,oBAAoB,EAAE,EAAE;EACxBC,iBAAiB,EAAE,CAAC;EACpBC,wBAAwB,EAAE,CAAC;EAC3BC,oBAAoB,EAAE,CAAC;EACvBC,cAAc,EAAE,EAAE;EAClBC,gBAAgB,EAAE,cAAc;EAChCC,gBAAgB,EAAE,EAAE;EACpBC,eAAe,EAAEC,SAAS;EAC1BC,WAAW,EAAE,IAAIC,0BAAiB,CAAC,CAAC;EACpCC,OAAO,EAAEC,OAAO,CAACC,GAAG,CAACC,cAAc,IAAI,KAAK;EAC5CC,QAAQ,EAAE;IACR;AACJ;AACA;AACA;AACA;IACIC,SAAS,EAAE;MACT;AACN;AACA;AACA;AACA;MACMC,KAAK,EAAEL,OAAO,CAACC,GAAG,CAACK,iBAAiB,IAAI,+BAA+B;MAEvE;AACN;AACA;AACA;AACA;MACMC,GAAG,EAAEP,OAAO,CAACC,GAAG,CAACO,eAAe,IAAI;IACtC,CAAC;IAED;AACJ;AACA;AACA;AACA;IACIC,eAAe,EAAE,IAAI;IAErB;AACJ;AACA;;IAEIC,yBAAyB,EAAE,CAAC,sBAAsB,CAAC;IAEnD;AACJ;AACA;AACA;AACA;IACIC,cAAc,EAAE,CACd,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,mBAAmB;EAEvB,CAAC;EACDC,MAAM,EAAE;IACNC,oBAAoB,EAAE;MACpBR,KAAK,EAAEL,OAAO,CAACC,GAAG,CAACK,iBAAiB,IAAI,+BAA+B;MACvEQ,eAAe,EAAEd,OAAO,CAACC,GAAG,CAACK,iBAAiB,IAAI;IACpD,CAAC;IACDG,eAAe,EAAE;EACnB,CAAC;EACDM,OAAO,EAAE;IACPC,IAAI,EAAE,CAAC,YAAY,EAAE,aAAa;EACpC,CAAC;EACDC,kBAAkB,EAAE;IAClBC,UAAU,EAAE,EAAE;IACdC,UAAU,EAAE;EACd,CAAC;EACDC,OAAO,EAAE;IACPC,cAAc,EAAEC,2BAAkB;IAClCC,gBAAgB,EAAED;EACpB;AACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["CredentialsConfig","AmpState","extend","extraProperties","props","idbroker","url","process","env","IDBROKER_BASE_URL","identity","IDENTITY_BASE_URL","authorizationString","WEBEX_AUTHORIZATION_STRING","AUTHORIZATION_STRING","authorizeUrl","WEBEX_AUTHORIZE_URL","client_id","WEBEX_CLIENT_ID","COMMON_IDENTITY_CLIENT_ID","CLIENT_ID","client_secret","WEBEX_CLIENT_SECRET","COMMON_IDENTITY_CLIENT_SECRET","CLIENT_SECRET","redirect_uri","WEBEX_REDIRECT_URI","COMMON_IDENTITY_REDIRECT_URI","REDIRECT_URI","scope","WEBEX_SCOPE","WEBEX_SCOPES","COMMON_IDENTITY_SCOPE","SCOPE","cisService","derived","activationUrl","deps","fn","cache","generateOtpUrl","validateOtpUrl","tokenUrl","TOKEN_URL","revokeUrl","REVOKE_URL","logoutUrl","setPasswordUrl"],"sources":["credentials-config.js"],"sourcesContent":["import AmpState from 'ampersand-state';\n\n// The credentials config which includes the CI server info and derived\n// URL properties from them for the various CI services. The URL's\n// will be updated when the CI changes.\nconst CredentialsConfig = AmpState.extend({\n // we need to allow extra props for dynamic props like jwtRefreshCallback\n extraProperties: 'allow',\n\n props: {\n /**\n * The idbroker base host name\n * @returns {object}\n */\n idbroker: [\n 'object',\n false,\n () => ({\n url: process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com',\n }),\n ],\n\n /**\n * The identity base host name\n * @returns {object}\n */\n identity: [\n 'object',\n false,\n () => ({\n url: process.env.IDENTITY_BASE_URL || 'https://identity.webex.com',\n }),\n ],\n\n /**\n * This is the authorization url displayed on the\n * {@link developer portal|https://developer.webex.com}\n * @type {string}\n */\n authorizationString: [\n 'string',\n false,\n process.env.WEBEX_AUTHORIZATION_STRING || process.env.AUTHORIZATION_STRING,\n ],\n\n /**\n * Authorization URL which prompts for user's password. Inferred from\n * {@link config.credentials.authorizationString}. This config value will\n * be automatically set if `authorizationString` config value is specified.\n *\n * @type {string}\n */\n authorizeUrl: [\n 'string',\n false,\n process.env.WEBEX_AUTHORIZE_URL ||\n `${process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'}/idb/oauth2/v1/authorize`,\n ],\n\n /**\n * {@see https://tools.ietf.org/html/rfc6749#section-4.1.4}\n * @type {string}\n */\n client_id: [\n 'string',\n false,\n process.env.WEBEX_CLIENT_ID || process.env.COMMON_IDENTITY_CLIENT_ID || process.env.CLIENT_ID,\n ],\n\n /**\n * {@see https://tools.ietf.org/html/rfc6749#section-4.1.4}\n * @type {string}\n */\n client_secret: [\n 'string',\n false,\n process.env.WEBEX_CLIENT_SECRET ||\n process.env.COMMON_IDENTITY_CLIENT_SECRET ||\n process.env.CLIENT_SECRET,\n ],\n\n /**\n * {@see https://tools.ietf.org/html/rfc6749#section-4.1.4}\n * @type {string}\n */\n redirect_uri: [\n 'string',\n false,\n process.env.WEBEX_REDIRECT_URI ||\n process.env.COMMON_IDENTITY_REDIRECT_URI ||\n process.env.REDIRECT_URI,\n ],\n\n /**\n * {@see https://tools.ietf.org/html/rfc6749#section-4.1.4}\n * @type {string}\n */\n scope: [\n 'string',\n false,\n process.env.WEBEX_SCOPE ||\n process.env.WEBEX_SCOPES ||\n process.env.COMMON_IDENTITY_SCOPE ||\n process.env.SCOPE,\n ],\n\n /**\n * Controls the UI of the CI login page.\n * @private\n * @type {string}\n */\n cisService: ['string', false, 'webex'],\n },\n\n derived: {\n /**\n * User activation URL\n * {@link config.credentials.activationUrl}\n * @type {string}\n */\n activationUrl: {\n deps: ['idbroker.url'],\n fn() {\n return `${\n this.idbroker.url || 'https://idbroker.webex.com'\n }/idb/token/v1/actions/UserActivation/invoke`;\n },\n cache: false,\n },\n\n /**\n * Generate OTP URL\n * {@link config.credentials.generateOtpUrl}\n * @type {string}\n */\n generateOtpUrl: {\n deps: ['idbroker.url'],\n fn() {\n return `${\n this.idbroker.url || 'https://idbroker.webex.com'\n }/idb/token/v1/actions/UserOTP/Generate/invoke`;\n },\n cache: false,\n },\n\n /**\n * Validate OTP URL\n * {@link config.credentials.validateOtpUrl}\n * @type {string}\n */\n validateOtpUrl: {\n deps: ['idbroker.url'],\n fn() {\n return `${\n this.idbroker.url || 'https://idbroker.webex.com'\n }/idb/token/v1/actions/UserOTP/Validate/invoke`;\n },\n cache: false,\n },\n\n // TODO does hydra also have an access_token endpoint?\n /**\n * Token URL used for token refresh and auth code exchange\n * @type {string}\n */\n tokenUrl: {\n deps: ['idbroker.url'],\n fn() {\n return process.env.TOKEN_URL || `${this.idbroker.url}/idb/oauth2/v1/access_token`;\n },\n cache: false,\n },\n\n /**\n * URL to revoke token\n * @type {string}\n */\n revokeUrl: {\n deps: ['idbroker.url'],\n fn() {\n return process.env.REVOKE_URL || `${this.idbroker.url}/idb/oauth2/v1/revoke`;\n },\n cache: false,\n },\n\n /**\n * URL to load when the app logs out\n * @type {string}\n */\n logoutUrl: {\n deps: ['idbroker.url'],\n fn() {\n return `${this.idbroker.url}/idb/oauth2/v1/logout`;\n },\n cache: false,\n },\n\n /**\n * Set password URL\n * @type {string}\n */\n setPasswordUrl: {\n deps: ['identity.url'],\n fn() {\n return `${this.identity.url || 'https://identity.webex.com'}/identity/scim/v1/Users`;\n },\n cache: false,\n },\n },\n});\n\nexport default CredentialsConfig;\n"],"mappings":";;;;;;;;AAAA;AAEA;AACA;AACA;AACA,
|
|
1
|
+
{"version":3,"names":["_ampersandState","_interopRequireDefault","require","CredentialsConfig","AmpState","extend","extraProperties","props","idbroker","url","process","env","IDBROKER_BASE_URL","identity","IDENTITY_BASE_URL","authorizationString","WEBEX_AUTHORIZATION_STRING","AUTHORIZATION_STRING","authorizeUrl","WEBEX_AUTHORIZE_URL","concat","client_id","WEBEX_CLIENT_ID","COMMON_IDENTITY_CLIENT_ID","CLIENT_ID","client_secret","WEBEX_CLIENT_SECRET","COMMON_IDENTITY_CLIENT_SECRET","CLIENT_SECRET","redirect_uri","WEBEX_REDIRECT_URI","COMMON_IDENTITY_REDIRECT_URI","REDIRECT_URI","scope","WEBEX_SCOPE","WEBEX_SCOPES","COMMON_IDENTITY_SCOPE","SCOPE","cisService","derived","activationUrl","deps","fn","cache","generateOtpUrl","validateOtpUrl","tokenUrl","TOKEN_URL","revokeUrl","REVOKE_URL","logoutUrl","setPasswordUrl","_default","exports","default"],"sources":["credentials-config.js"],"sourcesContent":["import AmpState from 'ampersand-state';\n\n// The credentials config which includes the CI server info and derived\n// URL properties from them for the various CI services. The URL's\n// will be updated when the CI changes.\nconst CredentialsConfig = AmpState.extend({\n // we need to allow extra props for dynamic props like jwtRefreshCallback\n extraProperties: 'allow',\n\n props: {\n /**\n * The idbroker base host name\n * @returns {object}\n */\n idbroker: [\n 'object',\n false,\n () => ({\n url: process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com',\n }),\n ],\n\n /**\n * The identity base host name\n * @returns {object}\n */\n identity: [\n 'object',\n false,\n () => ({\n url: process.env.IDENTITY_BASE_URL || 'https://identity.webex.com',\n }),\n ],\n\n /**\n * This is the authorization url displayed on the\n * {@link developer portal|https://developer.webex.com}\n * @type {string}\n */\n authorizationString: [\n 'string',\n false,\n process.env.WEBEX_AUTHORIZATION_STRING || process.env.AUTHORIZATION_STRING,\n ],\n\n /**\n * Authorization URL which prompts for user's password. Inferred from\n * {@link config.credentials.authorizationString}. This config value will\n * be automatically set if `authorizationString` config value is specified.\n *\n * @type {string}\n */\n authorizeUrl: [\n 'string',\n false,\n process.env.WEBEX_AUTHORIZE_URL ||\n `${process.env.IDBROKER_BASE_URL || 'https://idbroker.webex.com'}/idb/oauth2/v1/authorize`,\n ],\n\n /**\n * {@see https://tools.ietf.org/html/rfc6749#section-4.1.4}\n * @type {string}\n */\n client_id: [\n 'string',\n false,\n process.env.WEBEX_CLIENT_ID || process.env.COMMON_IDENTITY_CLIENT_ID || process.env.CLIENT_ID,\n ],\n\n /**\n * {@see https://tools.ietf.org/html/rfc6749#section-4.1.4}\n * @type {string}\n */\n client_secret: [\n 'string',\n false,\n process.env.WEBEX_CLIENT_SECRET ||\n process.env.COMMON_IDENTITY_CLIENT_SECRET ||\n process.env.CLIENT_SECRET,\n ],\n\n /**\n * {@see https://tools.ietf.org/html/rfc6749#section-4.1.4}\n * @type {string}\n */\n redirect_uri: [\n 'string',\n false,\n process.env.WEBEX_REDIRECT_URI ||\n process.env.COMMON_IDENTITY_REDIRECT_URI ||\n process.env.REDIRECT_URI,\n ],\n\n /**\n * {@see https://tools.ietf.org/html/rfc6749#section-4.1.4}\n * @type {string}\n */\n scope: [\n 'string',\n false,\n process.env.WEBEX_SCOPE ||\n process.env.WEBEX_SCOPES ||\n process.env.COMMON_IDENTITY_SCOPE ||\n process.env.SCOPE,\n ],\n\n /**\n * Controls the UI of the CI login page.\n * @private\n * @type {string}\n */\n cisService: ['string', false, 'webex'],\n },\n\n derived: {\n /**\n * User activation URL\n * {@link config.credentials.activationUrl}\n * @type {string}\n */\n activationUrl: {\n deps: ['idbroker.url'],\n fn() {\n return `${\n this.idbroker.url || 'https://idbroker.webex.com'\n }/idb/token/v1/actions/UserActivation/invoke`;\n },\n cache: false,\n },\n\n /**\n * Generate OTP URL\n * {@link config.credentials.generateOtpUrl}\n * @type {string}\n */\n generateOtpUrl: {\n deps: ['idbroker.url'],\n fn() {\n return `${\n this.idbroker.url || 'https://idbroker.webex.com'\n }/idb/token/v1/actions/UserOTP/Generate/invoke`;\n },\n cache: false,\n },\n\n /**\n * Validate OTP URL\n * {@link config.credentials.validateOtpUrl}\n * @type {string}\n */\n validateOtpUrl: {\n deps: ['idbroker.url'],\n fn() {\n return `${\n this.idbroker.url || 'https://idbroker.webex.com'\n }/idb/token/v1/actions/UserOTP/Validate/invoke`;\n },\n cache: false,\n },\n\n // TODO does hydra also have an access_token endpoint?\n /**\n * Token URL used for token refresh and auth code exchange\n * @type {string}\n */\n tokenUrl: {\n deps: ['idbroker.url'],\n fn() {\n return process.env.TOKEN_URL || `${this.idbroker.url}/idb/oauth2/v1/access_token`;\n },\n cache: false,\n },\n\n /**\n * URL to revoke token\n * @type {string}\n */\n revokeUrl: {\n deps: ['idbroker.url'],\n fn() {\n return process.env.REVOKE_URL || `${this.idbroker.url}/idb/oauth2/v1/revoke`;\n },\n cache: false,\n },\n\n /**\n * URL to load when the app logs out\n * @type {string}\n */\n logoutUrl: {\n deps: ['idbroker.url'],\n fn() {\n return `${this.idbroker.url}/idb/oauth2/v1/logout`;\n },\n cache: false,\n },\n\n /**\n * Set password URL\n * @type {string}\n */\n setPasswordUrl: {\n deps: ['identity.url'],\n fn() {\n return `${this.identity.url || 'https://identity.webex.com'}/identity/scim/v1/Users`;\n },\n cache: false,\n },\n },\n});\n\nexport default CredentialsConfig;\n"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -297,6 +297,6 @@ var _defaultOptions = _interopRequireDefault(require("./interceptors/default-opt
|
|
|
297
297
|
var _batcher = _interopRequireDefault(require("./lib/batcher"));
|
|
298
298
|
var _page = _interopRequireDefault(require("./lib/page"));
|
|
299
299
|
var _config = _interopRequireDefault(require("./config"));
|
|
300
|
-
function _getRequireWildcardCache(
|
|
301
|
-
function _interopRequireWildcard(
|
|
300
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof _WeakMap) return null; var r = new _WeakMap(), t = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
301
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
302
302
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n *\n * Services is currently a part of webex-core due to how the contents of\n * the original internal-plugin-services needed to be accessed when webex-core\n * is initialized. As a plugin outside of webex-core, it would initialize after\n * credentials, causing all requests prior to its initialization to fail\n * federation requirements, and instead send requests to the environmentally-\n * assigned urls.\n */\n\nimport './plugins/logger';\nimport './lib/credentials';\nimport './lib/services';\n\nexport {Credentials, filterScope, grantErrors, sortScope, Token} from './lib/credentials';\n\nexport {\n constants as serviceConstants,\n ServiceCatalog,\n ServiceRegistry,\n ServiceState,\n ServiceInterceptor,\n ServerErrorInterceptor,\n Services,\n ServiceHost,\n ServiceUrl,\n} from './lib/services';\n\nexport {\n makeWebexStore,\n makeWebexPluginStore,\n MemoryStoreAdapter,\n NotFoundError,\n persist,\n StorageError,\n waitForValue,\n} from './lib/storage';\n\nexport {default, registerPlugin, registerInternalPlugin} from './webex-core';\n\nexport {default as WebexHttpError} from './lib/webex-http-error';\nexport {default as StatelessWebexPlugin} from './lib/stateless-webex-plugin';\nexport {default as WebexPlugin} from './lib/webex-plugin';\nexport {default as AuthInterceptor} from './interceptors/auth';\nexport {default as NetworkTimingInterceptor} from './interceptors/network-timing';\nexport {default as PayloadTransformerInterceptor} from './interceptors/payload-transformer';\nexport {default as RedirectInterceptor} from './interceptors/redirect';\nexport {default as ResponseLoggerInterceptor} from './interceptors/response-logger';\nexport {default as RequestEventInterceptor} from './interceptors/request-event';\nexport {default as RequestLoggerInterceptor} from './interceptors/request-logger';\nexport {default as RequestTimingInterceptor} from './interceptors/request-timing';\nexport {default as UserAgentInterceptor} from './interceptors/user-agent';\nexport {default as WebexTrackingIdInterceptor} from './interceptors/webex-tracking-id';\nexport {default as WebexUserAgentInterceptor} from './interceptors/webex-user-agent';\nexport {default as RateLimitInterceptor} from './interceptors/rate-limit';\nexport {default as EmbargoInterceptor} from './interceptors/embargo';\nexport {default as DefaultOptionsInterceptor} from './interceptors/default-options';\n\nexport {default as Batcher} from './lib/batcher';\nexport {default as Page} from './lib/page';\nexport {default as config} from './config';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"names":["require","_credentials","_services","_storage","_webexCore","_interopRequireWildcard","_webexHttpError","_interopRequireDefault","_statelessWebexPlugin","_webexPlugin","_auth","_networkTiming","_payloadTransformer","_redirect","_responseLogger","_requestEvent","_requestLogger","_requestTiming","_userAgent","_webexTrackingId","_webexUserAgent","_rateLimit","_embargo","_defaultOptions","_batcher","_page","_config","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n *\n * Services is currently a part of webex-core due to how the contents of\n * the original internal-plugin-services needed to be accessed when webex-core\n * is initialized. As a plugin outside of webex-core, it would initialize after\n * credentials, causing all requests prior to its initialization to fail\n * federation requirements, and instead send requests to the environmentally-\n * assigned urls.\n */\n\nimport './plugins/logger';\nimport './lib/credentials';\nimport './lib/services';\n\nexport {Credentials, filterScope, grantErrors, sortScope, Token} from './lib/credentials';\n\nexport {\n constants as serviceConstants,\n ServiceCatalog,\n ServiceRegistry,\n ServiceState,\n ServiceInterceptor,\n ServerErrorInterceptor,\n Services,\n ServiceHost,\n ServiceUrl,\n} from './lib/services';\n\nexport {\n makeWebexStore,\n makeWebexPluginStore,\n MemoryStoreAdapter,\n NotFoundError,\n persist,\n StorageError,\n waitForValue,\n} from './lib/storage';\n\nexport {default, registerPlugin, registerInternalPlugin} from './webex-core';\n\nexport {default as WebexHttpError} from './lib/webex-http-error';\nexport {default as StatelessWebexPlugin} from './lib/stateless-webex-plugin';\nexport {default as WebexPlugin} from './lib/webex-plugin';\nexport {default as AuthInterceptor} from './interceptors/auth';\nexport {default as NetworkTimingInterceptor} from './interceptors/network-timing';\nexport {default as PayloadTransformerInterceptor} from './interceptors/payload-transformer';\nexport {default as RedirectInterceptor} from './interceptors/redirect';\nexport {default as ResponseLoggerInterceptor} from './interceptors/response-logger';\nexport {default as RequestEventInterceptor} from './interceptors/request-event';\nexport {default as RequestLoggerInterceptor} from './interceptors/request-logger';\nexport {default as RequestTimingInterceptor} from './interceptors/request-timing';\nexport {default as UserAgentInterceptor} from './interceptors/user-agent';\nexport {default as WebexTrackingIdInterceptor} from './interceptors/webex-tracking-id';\nexport {default as WebexUserAgentInterceptor} from './interceptors/webex-user-agent';\nexport {default as RateLimitInterceptor} from './interceptors/rate-limit';\nexport {default as EmbargoInterceptor} from './interceptors/embargo';\nexport {default as DefaultOptionsInterceptor} from './interceptors/default-options';\n\nexport {default as Batcher} from './lib/batcher';\nexport {default as Page} from './lib/page';\nexport {default as config} from './config';\n"],"mappings":"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"}
|
|
@@ -16,11 +16,13 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
|
16
16
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
17
17
|
var _httpCore = require("@webex/http-core");
|
|
18
18
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
19
|
-
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
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /*!
|
|
20
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
21
|
+
*/
|
|
20
22
|
/**
|
|
21
23
|
* @class
|
|
22
24
|
*/
|
|
23
|
-
var AuthInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
25
|
+
var AuthInterceptor = exports.default = /*#__PURE__*/function (_Interceptor) {
|
|
24
26
|
(0, _inherits2.default)(AuthInterceptor, _Interceptor);
|
|
25
27
|
var _super = _createSuper(AuthInterceptor);
|
|
26
28
|
function AuthInterceptor() {
|
|
@@ -200,5 +202,4 @@ var AuthInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
200
202
|
}]);
|
|
201
203
|
return AuthInterceptor;
|
|
202
204
|
}(_httpCore.Interceptor);
|
|
203
|
-
exports.default = AuthInterceptor;
|
|
204
205
|
//# sourceMappingURL=auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["AuthInterceptor","options","headers","authorization","resolve","requiresCredentials","then","requires","webex","credentials","getUserToken","token","toString","addAuthHeader","internal","services","details","getServiceFromUrl","uri","name","resource","service","api","includes","validateDomains","hasAllowedDomains","isAllowedDomainUrl","waitForService","url","detectedUrl","catch","error","logger","warn","reason","shouldAttemptReauth","info","canRefresh","refresh","replay","reject","replayCount","config","maxAuthenticationReplays","Error","request","shouldRefreshAccessToken","statusCode","Interceptor"],"sources":["auth.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class AuthInterceptor extends Interceptor {\n /**\n * @returns {AuthInterceptor}\n */\n static create() {\n return new AuthInterceptor({webex: this});\n }\n\n /**\n * @see {@link Interceptor#onRequest}\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n options.headers = options.headers || {};\n\n // If Authorizations is already set, don't overwrite it\n if ('authorization' in options.headers || 'auth' in options) {\n // If Authorization is set to null, false, or undefined, delete it to\n // prevent a CORS preflight.\n if (!options.headers.authorization) {\n Reflect.deleteProperty(options.headers, 'authorization');\n }\n\n return Promise.resolve(options);\n }\n\n return this.requiresCredentials(options).then((requires) => {\n if (!requires) {\n return options;\n }\n\n return this.webex.credentials.getUserToken().then((token) => {\n options.headers.authorization = token.toString();\n\n return options;\n });\n });\n }\n\n /**\n * Determines if the provided options object needs an authorization header.\n *\n * @param {Object} options\n * @returns {Promise<boolean>}\n */\n requiresCredentials(options) {\n // Validate that authorization is necessary.\n if (options.addAuthHeader === false) {\n return Promise.resolve(false);\n }\n\n // Validate that the services plugin has been loaded before proceeding.\n if (!this.webex.internal.services) {\n return Promise.resolve(false);\n }\n\n // Destructure webex instance to isolate services plugin.\n const {services} = this.webex.internal;\n\n // Store the current service details if available and destructure details.\n const details = services.getServiceFromUrl(options.uri || '');\n const {name} = details || {};\n const {resource, uri} = options;\n const service = options.service || options.api;\n\n // Unique validation for the u2c service.\n if ((service && service === 'u2c') || (name && name === 'u2c')) {\n if ((resource && resource.includes('limited')) || (uri && uri.includes('limited'))) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n }\n\n // Validate that the allowed domains can be utilized.\n if (\n services.validateDomains &&\n services.hasAllowedDomains() &&\n uri &&\n services.isAllowedDomainUrl(uri)\n ) {\n return Promise.resolve(true);\n }\n\n // Perform an additional validation in case the service does not exist yet.\n return services\n .waitForService({name: service, url: uri})\n .then((detectedUrl) => {\n // Validate that the url exists in the catalog.\n if (services.getServiceFromUrl(detectedUrl)) {\n return true;\n }\n\n // Return false to indicate authentication is not required.\n return false;\n })\n .catch((error) => {\n this.webex.logger.warn(\n 'auth-interceptor: failed to validate service exists in catalog',\n error\n );\n\n return false;\n });\n }\n\n /**\n * @see {@link Interceptor#onResponseError}\n * @param {Object} options\n * @param {Error} reason\n * @returns {Object}\n */\n onResponseError(options, reason) {\n return this.shouldAttemptReauth(reason, options).then((shouldAttemptReauth) => {\n if (shouldAttemptReauth) {\n this.webex.logger.info('auth: received 401, attempting to reauthenticate');\n\n if (reason.options.headers) {\n Reflect.deleteProperty(reason.options.headers, 'authorization');\n }\n\n if (this.webex.credentials.canRefresh) {\n return this.webex.credentials.refresh().then(() => this.replay(options));\n }\n }\n\n return Promise.reject(reason);\n });\n }\n\n /**\n * Replays the request\n * @param {Object} options\n * @returns {Object}\n */\n replay(options) {\n if (options.replayCount) {\n options.replayCount += 1;\n } else {\n options.replayCount = 1;\n }\n\n if (options.replayCount > this.webex.config.maxAuthenticationReplays) {\n this.webex.logger.error(\n `auth: failed after ${this.webex.config.maxAuthenticationReplays} replay attempts`\n );\n\n return Promise.reject(\n new Error(`Failed after ${this.webex.config.maxAuthenticationReplays} replay attempts`)\n );\n }\n\n this.webex.logger.info(`auth: replaying request ${options.replayCount} time`);\n\n return this.webex.request(options);\n }\n\n /**\n * Indicates whether or not the current request should refresh its access\n * token in event of a 401\n * @param {Error} reason\n * @param {Object} options\n * @returns {Promise<boolean>}\n */\n shouldAttemptReauth(reason, options) {\n if (options && options.shouldRefreshAccessToken === false) {\n return Promise.resolve(false);\n }\n\n if (reason.statusCode === 401) {\n return Promise.resolve(true);\n }\n\n return Promise.resolve(false);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_httpCore","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","AuthInterceptor","exports","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onRequest","options","_this","headers","authorization","_deleteProperty","_promise","resolve","requiresCredentials","then","requires","webex","credentials","getUserToken","token","toString","_this2","addAuthHeader","internal","services","details","getServiceFromUrl","uri","_ref","name","resource","service","api","includes","validateDomains","hasAllowedDomains","isAllowedDomainUrl","waitForService","url","detectedUrl","catch","error","logger","warn","onResponseError","reason","_this3","shouldAttemptReauth","info","canRefresh","refresh","replay","reject","replayCount","config","maxAuthenticationReplays","concat","Error","request","shouldRefreshAccessToken","statusCode","create","Interceptor"],"sources":["auth.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class AuthInterceptor extends Interceptor {\n /**\n * @returns {AuthInterceptor}\n */\n static create() {\n return new AuthInterceptor({webex: this});\n }\n\n /**\n * @see {@link Interceptor#onRequest}\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n options.headers = options.headers || {};\n\n // If Authorizations is already set, don't overwrite it\n if ('authorization' in options.headers || 'auth' in options) {\n // If Authorization is set to null, false, or undefined, delete it to\n // prevent a CORS preflight.\n if (!options.headers.authorization) {\n Reflect.deleteProperty(options.headers, 'authorization');\n }\n\n return Promise.resolve(options);\n }\n\n return this.requiresCredentials(options).then((requires) => {\n if (!requires) {\n return options;\n }\n\n return this.webex.credentials.getUserToken().then((token) => {\n options.headers.authorization = token.toString();\n\n return options;\n });\n });\n }\n\n /**\n * Determines if the provided options object needs an authorization header.\n *\n * @param {Object} options\n * @returns {Promise<boolean>}\n */\n requiresCredentials(options) {\n // Validate that authorization is necessary.\n if (options.addAuthHeader === false) {\n return Promise.resolve(false);\n }\n\n // Validate that the services plugin has been loaded before proceeding.\n if (!this.webex.internal.services) {\n return Promise.resolve(false);\n }\n\n // Destructure webex instance to isolate services plugin.\n const {services} = this.webex.internal;\n\n // Store the current service details if available and destructure details.\n const details = services.getServiceFromUrl(options.uri || '');\n const {name} = details || {};\n const {resource, uri} = options;\n const service = options.service || options.api;\n\n // Unique validation for the u2c service.\n if ((service && service === 'u2c') || (name && name === 'u2c')) {\n if ((resource && resource.includes('limited')) || (uri && uri.includes('limited'))) {\n return Promise.resolve(false);\n }\n\n return Promise.resolve(true);\n }\n\n // Validate that the allowed domains can be utilized.\n if (\n services.validateDomains &&\n services.hasAllowedDomains() &&\n uri &&\n services.isAllowedDomainUrl(uri)\n ) {\n return Promise.resolve(true);\n }\n\n // Perform an additional validation in case the service does not exist yet.\n return services\n .waitForService({name: service, url: uri})\n .then((detectedUrl) => {\n // Validate that the url exists in the catalog.\n if (services.getServiceFromUrl(detectedUrl)) {\n return true;\n }\n\n // Return false to indicate authentication is not required.\n return false;\n })\n .catch((error) => {\n this.webex.logger.warn(\n 'auth-interceptor: failed to validate service exists in catalog',\n error\n );\n\n return false;\n });\n }\n\n /**\n * @see {@link Interceptor#onResponseError}\n * @param {Object} options\n * @param {Error} reason\n * @returns {Object}\n */\n onResponseError(options, reason) {\n return this.shouldAttemptReauth(reason, options).then((shouldAttemptReauth) => {\n if (shouldAttemptReauth) {\n this.webex.logger.info('auth: received 401, attempting to reauthenticate');\n\n if (reason.options.headers) {\n Reflect.deleteProperty(reason.options.headers, 'authorization');\n }\n\n if (this.webex.credentials.canRefresh) {\n return this.webex.credentials.refresh().then(() => this.replay(options));\n }\n }\n\n return Promise.reject(reason);\n });\n }\n\n /**\n * Replays the request\n * @param {Object} options\n * @returns {Object}\n */\n replay(options) {\n if (options.replayCount) {\n options.replayCount += 1;\n } else {\n options.replayCount = 1;\n }\n\n if (options.replayCount > this.webex.config.maxAuthenticationReplays) {\n this.webex.logger.error(\n `auth: failed after ${this.webex.config.maxAuthenticationReplays} replay attempts`\n );\n\n return Promise.reject(\n new Error(`Failed after ${this.webex.config.maxAuthenticationReplays} replay attempts`)\n );\n }\n\n this.webex.logger.info(`auth: replaying request ${options.replayCount} time`);\n\n return this.webex.request(options);\n }\n\n /**\n * Indicates whether or not the current request should refresh its access\n * token in event of a 401\n * @param {Error} reason\n * @param {Object} options\n * @returns {Promise<boolean>}\n */\n shouldAttemptReauth(reason, options) {\n if (options && options.shouldRefreshAccessToken === false) {\n return Promise.resolve(false);\n }\n\n if (reason.statusCode === 401) {\n return Promise.resolve(true);\n }\n\n return Promise.resolve(false);\n }\n}\n"],"mappings":"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"}
|
|
@@ -15,7 +15,9 @@ 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; } }
|
|
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
|
+
*/
|
|
19
21
|
/**
|
|
20
22
|
* Allows the user of the SDK to set default options that apply every http request made by the SDK
|
|
21
23
|
* For example a default timeout could be set for all requests like this :
|
|
@@ -35,7 +37,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_R
|
|
|
35
37
|
* }
|
|
36
38
|
* });
|
|
37
39
|
*/
|
|
38
|
-
var DefaultOptionsInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
40
|
+
var DefaultOptionsInterceptor = exports.default = /*#__PURE__*/function (_Interceptor) {
|
|
39
41
|
(0, _inherits2.default)(DefaultOptionsInterceptor, _Interceptor);
|
|
40
42
|
var _super = _createSuper(DefaultOptionsInterceptor);
|
|
41
43
|
function DefaultOptionsInterceptor() {
|
|
@@ -77,5 +79,4 @@ var DefaultOptionsInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
77
79
|
}]);
|
|
78
80
|
return DefaultOptionsInterceptor;
|
|
79
81
|
}(_httpCore.Interceptor);
|
|
80
|
-
exports.default = DefaultOptionsInterceptor;
|
|
81
82
|
//# sourceMappingURL=default-options.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DefaultOptionsInterceptor","options","defaultOptions","webex","config","defaultRequestOptions","
|
|
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","DefaultOptionsInterceptor","exports","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onRequest","options","defaultOptions","webex","config","defaultRequestOptions","_keys","forEach","includes","create","Interceptor"],"sources":["default-options.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * Allows the user of the SDK to set default options that apply every http request made by the SDK\n * For example a default timeout could be set for all requests like this :\n *\n * webex = WebexSdk.init({\n * credentials: {\n * supertoken: superToken\n * },\n * config: {\n * credentials: {\n * client_id,\n * client_secret\n * },\n * defaultRequestOptions: {\n * timeout: 15000\n * }\n * }\n * });\n */\nexport default class DefaultOptionsInterceptor extends Interceptor {\n /**\n * @returns {DefaultOptionsInterceptor}\n */\n static create() {\n return new DefaultOptionsInterceptor({webex: this});\n }\n\n /**\n * @see Interceptor#onRequest\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n const {defaultRequestOptions: defaultOptions} = this.webex.config;\n\n if (!defaultOptions) {\n return options;\n }\n\n Object.keys(defaultOptions).forEach((key) => {\n // don't override any existing option properties\n if (!Object.keys(options).includes(key)) {\n options[key] = defaultOptions[key];\n }\n });\n\n return options;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAIA,IAAAA,SAAA,GAAAC,OAAA;AAA6C,SAAAC,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA,sBAJ7C;AACA;AACA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAlBA,IAmBqBC,yBAAyB,GAAAC,OAAA,CAAAjB,OAAA,0BAAAkB,YAAA;EAAA,IAAAC,UAAA,CAAAnB,OAAA,EAAAgB,yBAAA,EAAAE,YAAA;EAAA,IAAAE,MAAA,GAAA3B,YAAA,CAAAuB,yBAAA;EAAA,SAAAA,0BAAA;IAAA,IAAAK,gBAAA,CAAArB,OAAA,QAAAgB,yBAAA;IAAA,OAAAI,MAAA,CAAAd,KAAA,OAAAD,SAAA;EAAA;EAAA,IAAAiB,aAAA,CAAAtB,OAAA,EAAAgB,yBAAA;IAAAO,GAAA;IAAAC,KAAA;IAQ5C;AACF;AACA;AACA;AACA;IACE,SAAAC,UAAUC,OAAO,EAAE;MACjB,IAA8BC,cAAc,GAAI,IAAI,CAACC,KAAK,CAACC,MAAM,CAA1DC,qBAAqB;MAE5B,IAAI,CAACH,cAAc,EAAE;QACnB,OAAOD,OAAO;MAChB;MAEA,IAAAK,KAAA,CAAA/B,OAAA,EAAY2B,cAAc,CAAC,CAACK,OAAO,CAAC,UAACT,GAAG,EAAK;QAC3C;QACA,IAAI,CAAC,IAAAQ,KAAA,CAAA/B,OAAA,EAAY0B,OAAO,CAAC,CAACO,QAAQ,CAACV,GAAG,CAAC,EAAE;UACvCG,OAAO,CAACH,GAAG,CAAC,GAAGI,cAAc,CAACJ,GAAG,CAAC;QACpC;MACF,CAAC,CAAC;MAEF,OAAOG,OAAO;IAChB;EAAC;IAAAH,GAAA;IAAAC,KAAA;IA3BD;AACF;AACA;IACE,SAAAU,OAAA,EAAgB;MACd,OAAO,IAAIlB,yBAAyB,CAAC;QAACY,KAAK,EAAE;MAAI,CAAC,CAAC;IACrD;EAAC;EAAA,OAAAZ,yBAAA;AAAA,EANoDmB,qBAAW"}
|
|
@@ -15,11 +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; } }
|
|
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
|
+
*/
|
|
19
21
|
/**
|
|
20
22
|
* @class
|
|
21
23
|
*/
|
|
22
|
-
var EmbargoInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
24
|
+
var EmbargoInterceptor = exports.default = /*#__PURE__*/function (_Interceptor) {
|
|
23
25
|
(0, _inherits2.default)(EmbargoInterceptor, _Interceptor);
|
|
24
26
|
var _super = _createSuper(EmbargoInterceptor);
|
|
25
27
|
function EmbargoInterceptor() {
|
|
@@ -62,5 +64,4 @@ var EmbargoInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
62
64
|
}]);
|
|
63
65
|
return EmbargoInterceptor;
|
|
64
66
|
}(_httpCore.Interceptor);
|
|
65
|
-
exports.default = EmbargoInterceptor;
|
|
66
67
|
//# sourceMappingURL=embargo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["EmbargoInterceptor","options","reason","statusCode","device","webex","internal","loggerMessage","join","clear","credentials","logger","info","reject","Interceptor"],"sources":["embargo.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class EmbargoInterceptor extends Interceptor {\n /**\n * @returns {EmbargoInterceptor}\n */\n static create() {\n /* eslint no-invalid-this: [0] */\n return new EmbargoInterceptor({webex: this});\n }\n\n /**\n * @see Interceptor#onResponseError\n * @param {Object} options\n * @param {Error} reason\n * @returns {Promise}\n */\n onResponseError(options, reason) {\n if (reason.statusCode === 451) {\n const {device} = this.webex.internal;\n const loggerMessage = [\n 'Received `HTTP 451 Unavailable For Legal Reasons`, ',\n 'discarding credentials and device registration',\n ].join('');\n\n if (device) {\n this.webex.internal.device.clear();\n }\n\n this.webex.credentials.clear();\n this.webex.logger.info(loggerMessage);\n }\n\n return Promise.reject(reason);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAIA;AAA6C;AAAA;
|
|
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","EmbargoInterceptor","exports","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onResponseError","options","reason","statusCode","device","webex","internal","loggerMessage","join","clear","credentials","logger","info","_promise","reject","create","Interceptor"],"sources":["embargo.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class EmbargoInterceptor extends Interceptor {\n /**\n * @returns {EmbargoInterceptor}\n */\n static create() {\n /* eslint no-invalid-this: [0] */\n return new EmbargoInterceptor({webex: this});\n }\n\n /**\n * @see Interceptor#onResponseError\n * @param {Object} options\n * @param {Error} reason\n * @returns {Promise}\n */\n onResponseError(options, reason) {\n if (reason.statusCode === 451) {\n const {device} = this.webex.internal;\n const loggerMessage = [\n 'Received `HTTP 451 Unavailable For Legal Reasons`, ',\n 'discarding credentials and device registration',\n ].join('');\n\n if (device) {\n this.webex.internal.device.clear();\n }\n\n this.webex.credentials.clear();\n this.webex.logger.info(loggerMessage);\n }\n\n return Promise.reject(reason);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAIA,IAAAA,SAAA,GAAAC,OAAA;AAA6C,SAAAC,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA,sBAJ7C;AACA;AACA;AAIA;AACA;AACA;AAFA,IAGqBC,kBAAkB,GAAAC,OAAA,CAAAjB,OAAA,0BAAAkB,YAAA;EAAA,IAAAC,UAAA,CAAAnB,OAAA,EAAAgB,kBAAA,EAAAE,YAAA;EAAA,IAAAE,MAAA,GAAA3B,YAAA,CAAAuB,kBAAA;EAAA,SAAAA,mBAAA;IAAA,IAAAK,gBAAA,CAAArB,OAAA,QAAAgB,kBAAA;IAAA,OAAAI,MAAA,CAAAd,KAAA,OAAAD,SAAA;EAAA;EAAA,IAAAiB,aAAA,CAAAtB,OAAA,EAAAgB,kBAAA;IAAAO,GAAA;IAAAC,KAAA;IASrC;AACF;AACA;AACA;AACA;AACA;IACE,SAAAC,gBAAgBC,OAAO,EAAEC,MAAM,EAAE;MAC/B,IAAIA,MAAM,CAACC,UAAU,KAAK,GAAG,EAAE;QAC7B,IAAOC,MAAM,GAAI,IAAI,CAACC,KAAK,CAACC,QAAQ,CAA7BF,MAAM;QACb,IAAMG,aAAa,GAAG,CACpB,qDAAqD,EACrD,gDAAgD,CACjD,CAACC,IAAI,CAAC,EAAE,CAAC;QAEV,IAAIJ,MAAM,EAAE;UACV,IAAI,CAACC,KAAK,CAACC,QAAQ,CAACF,MAAM,CAACK,KAAK,CAAC,CAAC;QACpC;QAEA,IAAI,CAACJ,KAAK,CAACK,WAAW,CAACD,KAAK,CAAC,CAAC;QAC9B,IAAI,CAACJ,KAAK,CAACM,MAAM,CAACC,IAAI,CAACL,aAAa,CAAC;MACvC;MAEA,OAAOM,QAAA,CAAAtC,OAAA,CAAQuC,MAAM,CAACZ,MAAM,CAAC;IAC/B;EAAC;IAAAJ,GAAA;IAAAC,KAAA;IA/BD;AACF;AACA;IACE,SAAAgB,OAAA,EAAgB;MACd;MACA,OAAO,IAAIxB,kBAAkB,CAAC;QAACc,KAAK,EAAE;MAAI,CAAC,CAAC;IAC9C;EAAC;EAAA,OAAAd,kBAAA;AAAA,EAP6CyB,qBAAW"}
|
|
@@ -16,11 +16,13 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
|
16
16
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
17
17
|
var _httpCore = require("@webex/http-core");
|
|
18
18
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
19
|
-
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
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } /*!
|
|
20
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
21
|
+
*/
|
|
20
22
|
/**
|
|
21
23
|
* @class
|
|
22
24
|
*/
|
|
23
|
-
var NetworkTimingInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
25
|
+
var NetworkTimingInterceptor = exports.default = /*#__PURE__*/function (_Interceptor) {
|
|
24
26
|
(0, _inherits2.default)(NetworkTimingInterceptor, _Interceptor);
|
|
25
27
|
var _super = _createSuper(NetworkTimingInterceptor);
|
|
26
28
|
function NetworkTimingInterceptor() {
|
|
@@ -79,5 +81,4 @@ var NetworkTimingInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
79
81
|
}]);
|
|
80
82
|
return NetworkTimingInterceptor;
|
|
81
83
|
}(_httpCore.Interceptor);
|
|
82
|
-
exports.default = NetworkTimingInterceptor;
|
|
83
84
|
//# sourceMappingURL=network-timing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NetworkTimingInterceptor","options","$timings","networkStart","response","networkEnd","reason","reject","Interceptor"],"sources":["network-timing.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class NetworkTimingInterceptor extends Interceptor {\n /**\n * @param {Object} options\n * @returns {NetworkTimingInterceptor}\n */\n static create(options) {\n return new NetworkTimingInterceptor(this, options);\n }\n\n /**\n * @see Interceptor#onRequest\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n options.$timings = options.$timings || {};\n options.$timings.networkStart = Date.now();\n\n return options;\n }\n\n /**\n * @see Interceptor#onResponse\n * @param {Object} options\n * @param {HttpResponse} response\n * @returns {Object}\n */\n onResponse(options, response) {\n options.$timings.networkEnd = Date.now();\n\n return response;\n }\n\n /**\n * @see Interceptor#onResponseError\n * @param {Object} options\n * @param {Error} reason\n * @returns {Object}\n */\n onResponseError(options, reason) {\n options.$timings.networkEnd = Date.now();\n\n return Promise.reject(reason);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAIA;AAA6C;AAAA;
|
|
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","NetworkTimingInterceptor","exports","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onRequest","options","$timings","networkStart","_now","onResponse","response","networkEnd","onResponseError","reason","_promise","reject","create","Interceptor"],"sources":["network-timing.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class NetworkTimingInterceptor extends Interceptor {\n /**\n * @param {Object} options\n * @returns {NetworkTimingInterceptor}\n */\n static create(options) {\n return new NetworkTimingInterceptor(this, options);\n }\n\n /**\n * @see Interceptor#onRequest\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n options.$timings = options.$timings || {};\n options.$timings.networkStart = Date.now();\n\n return options;\n }\n\n /**\n * @see Interceptor#onResponse\n * @param {Object} options\n * @param {HttpResponse} response\n * @returns {Object}\n */\n onResponse(options, response) {\n options.$timings.networkEnd = Date.now();\n\n return response;\n }\n\n /**\n * @see Interceptor#onResponseError\n * @param {Object} options\n * @param {Error} reason\n * @returns {Object}\n */\n onResponseError(options, reason) {\n options.$timings.networkEnd = Date.now();\n\n return Promise.reject(reason);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAIA,IAAAA,SAAA,GAAAC,OAAA;AAA6C,SAAAC,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA,sBAJ7C;AACA;AACA;AAIA;AACA;AACA;AAFA,IAGqBC,wBAAwB,GAAAC,OAAA,CAAAjB,OAAA,0BAAAkB,YAAA;EAAA,IAAAC,UAAA,CAAAnB,OAAA,EAAAgB,wBAAA,EAAAE,YAAA;EAAA,IAAAE,MAAA,GAAA3B,YAAA,CAAAuB,wBAAA;EAAA,SAAAA,yBAAA;IAAA,IAAAK,gBAAA,CAAArB,OAAA,QAAAgB,wBAAA;IAAA,OAAAI,MAAA,CAAAd,KAAA,OAAAD,SAAA;EAAA;EAAA,IAAAiB,aAAA,CAAAtB,OAAA,EAAAgB,wBAAA;IAAAO,GAAA;IAAAC,KAAA;IAS3C;AACF;AACA;AACA;AACA;IACE,SAAAC,UAAUC,OAAO,EAAE;MACjBA,OAAO,CAACC,QAAQ,GAAGD,OAAO,CAACC,QAAQ,IAAI,CAAC,CAAC;MACzCD,OAAO,CAACC,QAAQ,CAACC,YAAY,GAAG,IAAAC,IAAA,CAAA7B,OAAA,EAAS,CAAC;MAE1C,OAAO0B,OAAO;IAChB;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAH,GAAA;IAAAC,KAAA,EAMA,SAAAM,WAAWJ,OAAO,EAAEK,QAAQ,EAAE;MAC5BL,OAAO,CAACC,QAAQ,CAACK,UAAU,GAAG,IAAAH,IAAA,CAAA7B,OAAA,EAAS,CAAC;MAExC,OAAO+B,QAAQ;IACjB;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAR,GAAA;IAAAC,KAAA,EAMA,SAAAS,gBAAgBP,OAAO,EAAEQ,MAAM,EAAE;MAC/BR,OAAO,CAACC,QAAQ,CAACK,UAAU,GAAG,IAAAH,IAAA,CAAA7B,OAAA,EAAS,CAAC;MAExC,OAAOmC,QAAA,CAAAnC,OAAA,CAAQoC,MAAM,CAACF,MAAM,CAAC;IAC/B;EAAC;IAAAX,GAAA;IAAAC,KAAA;IA1CD;AACF;AACA;AACA;IACE,SAAAa,OAAcX,OAAO,EAAE;MACrB,OAAO,IAAIV,wBAAwB,CAAC,IAAI,EAAEU,OAAO,CAAC;IACpD;EAAC;EAAA,OAAAV,wBAAA;AAAA,EAPmDsB,qBAAW"}
|
|
@@ -15,11 +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; } }
|
|
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
|
+
*/
|
|
19
21
|
/**
|
|
20
22
|
* @class
|
|
21
23
|
*/
|
|
22
|
-
var PayloadTransformerInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
24
|
+
var PayloadTransformerInterceptor = exports.default = /*#__PURE__*/function (_Interceptor) {
|
|
23
25
|
(0, _inherits2.default)(PayloadTransformerInterceptor, _Interceptor);
|
|
24
26
|
var _super = _createSuper(PayloadTransformerInterceptor);
|
|
25
27
|
function PayloadTransformerInterceptor() {
|
|
@@ -84,5 +86,4 @@ var PayloadTransformerInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
84
86
|
}]);
|
|
85
87
|
return PayloadTransformerInterceptor;
|
|
86
88
|
}(_httpCore.Interceptor);
|
|
87
|
-
exports.default = PayloadTransformerInterceptor;
|
|
88
89
|
//# sourceMappingURL=payload-transformer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["PayloadTransformerInterceptor","options","noTransform","webex","transform","response","disableTransform","reason","then","r","reject","Interceptor"],"sources":["payload-transformer.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class PayloadTransformerInterceptor extends Interceptor {\n /**\n * @param {Object} options\n * @returns {PayloadTransformerInterceptor}\n */\n static create() {\n return new PayloadTransformerInterceptor({webex: this});\n }\n\n /**\n * @see Interceptor#onRequest\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n if (options.noTransform) {\n return options;\n }\n\n return this.webex.transform('outbound', options);\n }\n\n /**\n * @see Interceptor#onResponse\n * @param {Object} options\n * @param {HttpResponse} response\n * @returns {Object}\n */\n onResponse(options, response) {\n if (options.disableTransform) {\n return response;\n }\n\n return this.webex.transform('inbound', response);\n }\n\n /**\n * @see Interceptor#onResponseError\n * @param {Object} options\n * @param {Error} reason\n * @returns {Object}\n */\n onResponseError(options, reason) {\n return this.webex.transform('inbound', reason).then((r) => Promise.reject(r || reason));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAIA;AAA6C;AAAA;
|
|
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","PayloadTransformerInterceptor","exports","_Interceptor","_inherits2","_super","_classCallCheck2","_createClass2","key","value","onRequest","options","noTransform","webex","transform","onResponse","response","disableTransform","onResponseError","reason","then","r","_promise","reject","create","Interceptor"],"sources":["payload-transformer.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n/**\n * @class\n */\nexport default class PayloadTransformerInterceptor extends Interceptor {\n /**\n * @param {Object} options\n * @returns {PayloadTransformerInterceptor}\n */\n static create() {\n return new PayloadTransformerInterceptor({webex: this});\n }\n\n /**\n * @see Interceptor#onRequest\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n if (options.noTransform) {\n return options;\n }\n\n return this.webex.transform('outbound', options);\n }\n\n /**\n * @see Interceptor#onResponse\n * @param {Object} options\n * @param {HttpResponse} response\n * @returns {Object}\n */\n onResponse(options, response) {\n if (options.disableTransform) {\n return response;\n }\n\n return this.webex.transform('inbound', response);\n }\n\n /**\n * @see Interceptor#onResponseError\n * @param {Object} options\n * @param {Error} reason\n * @returns {Object}\n */\n onResponseError(options, reason) {\n return this.webex.transform('inbound', reason).then((r) => Promise.reject(r || reason));\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAIA,IAAAA,SAAA,GAAAC,OAAA;AAA6C,SAAAC,aAAAC,OAAA,QAAAC,yBAAA,GAAAC,yBAAA,oBAAAC,qBAAA,QAAAC,KAAA,OAAAC,gBAAA,CAAAC,OAAA,EAAAN,OAAA,GAAAO,MAAA,MAAAN,yBAAA,QAAAO,SAAA,OAAAH,gBAAA,CAAAC,OAAA,QAAAG,WAAA,EAAAF,MAAA,GAAAG,kBAAA,CAAAN,KAAA,EAAAO,SAAA,EAAAH,SAAA,YAAAD,MAAA,GAAAH,KAAA,CAAAQ,KAAA,OAAAD,SAAA,gBAAAE,2BAAA,CAAAP,OAAA,QAAAC,MAAA;AAAA,SAAAL,0BAAA,eAAAY,OAAA,qBAAAJ,kBAAA,oBAAAA,kBAAA,CAAAK,IAAA,2BAAAC,KAAA,oCAAAC,OAAA,CAAAC,SAAA,CAAAC,OAAA,CAAAC,IAAA,CAAAV,kBAAA,CAAAO,OAAA,8CAAAI,CAAA,sBAJ7C;AACA;AACA;AAIA;AACA;AACA;AAFA,IAGqBC,6BAA6B,GAAAC,OAAA,CAAAjB,OAAA,0BAAAkB,YAAA;EAAA,IAAAC,UAAA,CAAAnB,OAAA,EAAAgB,6BAAA,EAAAE,YAAA;EAAA,IAAAE,MAAA,GAAA3B,YAAA,CAAAuB,6BAAA;EAAA,SAAAA,8BAAA;IAAA,IAAAK,gBAAA,CAAArB,OAAA,QAAAgB,6BAAA;IAAA,OAAAI,MAAA,CAAAd,KAAA,OAAAD,SAAA;EAAA;EAAA,IAAAiB,aAAA,CAAAtB,OAAA,EAAAgB,6BAAA;IAAAO,GAAA;IAAAC,KAAA;IAShD;AACF;AACA;AACA;AACA;IACE,SAAAC,UAAUC,OAAO,EAAE;MACjB,IAAIA,OAAO,CAACC,WAAW,EAAE;QACvB,OAAOD,OAAO;MAChB;MAEA,OAAO,IAAI,CAACE,KAAK,CAACC,SAAS,CAAC,UAAU,EAAEH,OAAO,CAAC;IAClD;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAH,GAAA;IAAAC,KAAA,EAMA,SAAAM,WAAWJ,OAAO,EAAEK,QAAQ,EAAE;MAC5B,IAAIL,OAAO,CAACM,gBAAgB,EAAE;QAC5B,OAAOD,QAAQ;MACjB;MAEA,OAAO,IAAI,CAACH,KAAK,CAACC,SAAS,CAAC,SAAS,EAAEE,QAAQ,CAAC;IAClD;;IAEA;AACF;AACA;AACA;AACA;AACA;EALE;IAAAR,GAAA;IAAAC,KAAA,EAMA,SAAAS,gBAAgBP,OAAO,EAAEQ,MAAM,EAAE;MAC/B,OAAO,IAAI,CAACN,KAAK,CAACC,SAAS,CAAC,SAAS,EAAEK,MAAM,CAAC,CAACC,IAAI,CAAC,UAACC,CAAC;QAAA,OAAKC,QAAA,CAAArC,OAAA,CAAQsC,MAAM,CAACF,CAAC,IAAIF,MAAM,CAAC;MAAA,EAAC;IACzF;EAAC;IAAAX,GAAA;IAAAC,KAAA;IA3CD;AACF;AACA;AACA;IACE,SAAAe,OAAA,EAAgB;MACd,OAAO,IAAIvB,6BAA6B,CAAC;QAACY,KAAK,EAAE;MAAI,CAAC,CAAC;IACzD;EAAC;EAAA,OAAAZ,6BAAA;AAAA,EAPwDwB,qBAAW"}
|
|
@@ -18,7 +18,9 @@ var _map = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/map"))
|
|
|
18
18
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
19
19
|
var _httpCore = require("@webex/http-core");
|
|
20
20
|
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); }; }
|
|
21
|
-
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
|
+
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; } } /*!
|
|
22
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
23
|
+
*/
|
|
22
24
|
// contains the system time in milliseconds at which the retry after associated with a 429 expires
|
|
23
25
|
// mapped by the API name, e.g.: idbroker.webex.com/doStuff would be mapped as 'doStuff'
|
|
24
26
|
var rateLimitExpiryTime = new _weakMap.default();
|
|
@@ -29,7 +31,7 @@ var idBrokerRegex = /.*(idbroker|identity)(bts)?.ciscospark.com\/([^/]+)/;
|
|
|
29
31
|
/**
|
|
30
32
|
* @class
|
|
31
33
|
*/
|
|
32
|
-
var RateLimitInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
34
|
+
var RateLimitInterceptor = exports.default = /*#__PURE__*/function (_Interceptor) {
|
|
33
35
|
(0, _inherits2.default)(RateLimitInterceptor, _Interceptor);
|
|
34
36
|
var _super = _createSuper(RateLimitInterceptor);
|
|
35
37
|
/**
|
|
@@ -196,5 +198,4 @@ var RateLimitInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
196
198
|
}]);
|
|
197
199
|
return RateLimitInterceptor;
|
|
198
200
|
}(_httpCore.Interceptor);
|
|
199
|
-
exports.default = RateLimitInterceptor;
|
|
200
201
|
//# sourceMappingURL=rate-limit.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["rateLimitExpiryTime","idBrokerRegex","RateLimitInterceptor","args","set","options","isRateLimited","uri","reject","Error","resolve","reason","statusCode","includes","setRateLimitExpiry","extractRetryAfterTime","milliMultiplier","retryAfter","headers","apiName","getApiName","currTimeMilli","Date","getTime","expiry","dict","get","expiryTime","undefined","results","match","
|
|
1
|
+
{"version":3,"names":["_httpCore","require","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","rateLimitExpiryTime","_weakMap","idBrokerRegex","RateLimitInterceptor","exports","_Interceptor","_inherits2","_super","_this","_classCallCheck2","_len","length","args","Array","_key","concat","set","_assertThisInitialized2","_map","_createClass2","key","value","onRequest","options","isRateLimited","uri","_promise","reject","Error","resolve","onResponseError","reason","statusCode","includes","setRateLimitExpiry","extractRetryAfterTime","milliMultiplier","retryAfter","headers","apiName","getApiName","currTimeMilli","Date","getTime","expiry","dict","get","getRateLimitStatus","expiryTime","undefined","results","match","create","webex","Interceptor"],"sources":["rate-limit.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {Interceptor} from '@webex/http-core';\n\n// contains the system time in milliseconds at which the retry after associated with a 429 expires\n// mapped by the API name, e.g.: idbroker.webex.com/doStuff would be mapped as 'doStuff'\nconst rateLimitExpiryTime = new WeakMap();\n\n// extracts the common identity API being called\nconst idBrokerRegex = /.*(idbroker|identity)(bts)?.ciscospark.com\\/([^/]+)/;\n\n/**\n * @class\n */\nexport default class RateLimitInterceptor extends Interceptor {\n /**\n * @returns {RateLimitInterceptor}\n */\n static create() {\n return new RateLimitInterceptor({webex: this});\n }\n\n /**\n * constructor\n * @param {mixed} args\n * @returns {Exception}\n */\n constructor(...args) {\n super(...args);\n rateLimitExpiryTime.set(this, new Map());\n }\n\n /**\n * @see {@link Interceptor#onRequest}\n * @param {Object} options\n * @returns {Object}\n */\n onRequest(options) {\n if (this.isRateLimited(options.uri)) {\n return Promise.reject(new Error(`API rate limited ${options.uri}`));\n }\n\n return Promise.resolve(options);\n }\n\n /**\n * @see {@link Interceptor#onResponseError}\n * @param {Object} options\n * @param {Error} reason\n * @returns {Object}\n */\n onResponseError(options, reason) {\n if (\n reason.statusCode === 429 &&\n (options.uri.includes('idbroker') || options.uri.includes('identity'))\n ) {\n // set the retry after in the map, setting to milliseconds\n this.setRateLimitExpiry(options.uri, this.extractRetryAfterTime(options));\n }\n\n return Promise.reject(reason);\n }\n\n /**\n * @param {object} options associated with the request\n * @returns {number} retry after time in milliseconds\n */\n extractRetryAfterTime(options) {\n // 1S * 1K === 1MS\n const milliMultiplier = 1000;\n const retryAfter = options.headers['retry-after'] || null;\n\n // set 60 retry if no usable time defined\n if (retryAfter === null || retryAfter <= 0) {\n return 60 * milliMultiplier;\n }\n // set max to 3600 S (1 hour) if greater than 1 hour\n if (retryAfter > 3600) {\n return 3600 * milliMultiplier;\n }\n\n return retryAfter * milliMultiplier;\n }\n\n /**\n * Set the system time at which the rate limiting\n * will expire in the rateLimitExpiryTime map.\n * Assumes retryAfter is in milliseconds\n * @param {string} uri API issuing the rate limiting\n * @param {number} retryAfter milliseconds until rate limiting expires\n * @returns {bool} true is value was successfully set\n */\n setRateLimitExpiry(uri, retryAfter) {\n const apiName = this.getApiName(uri);\n\n if (!apiName) {\n return false;\n }\n\n const currTimeMilli = new Date().getTime();\n const expiry = currTimeMilli + retryAfter;\n const dict = rateLimitExpiryTime.get(this);\n\n return dict.set(apiName, expiry);\n }\n\n /**\n * returns true if the API is currently rate limited\n * @param {string} uri\n * @returns {Boolean} indicates whether or not the API is rate currently rate limited\n */\n getRateLimitStatus(uri) {\n const apiName = this.getApiName(uri);\n\n if (!apiName) {\n return false;\n }\n\n const currTimeMilli = new Date().getTime();\n const dict = rateLimitExpiryTime.get(this);\n const expiryTime = dict.get(apiName);\n\n // if no rate limit expiry has been registered in the map, return false.\n if (expiryTime === undefined) {\n return false;\n }\n\n // return true, indicating rate limiting, if the system time is less than the expiry time\n return currTimeMilli < dict.get(apiName);\n }\n\n /**\n * split the URI and returns the API name of idBroker\n * @param {string} uri\n * @returns {string}\n */\n getApiName(uri) {\n if (!uri) {\n return null;\n }\n\n const results = uri.match(idBrokerRegex);\n\n if (!results) {\n return null;\n }\n\n // group 0 = full match of URL, group 1 = identity or idbroker base\n // group 2 = api name\n return results[2];\n }\n\n /**\n * check URI against list of currently rate limited\n * URIs, and determines if retry-after\n * @param {String} uri pattern to check\n * @returns {bool}\n */\n isRateLimited(uri) {\n // determine if the URI is associated with a common identity API\n if (uri && (uri.includes('idbroker') || uri.includes('identity'))) {\n return this.getRateLimitStatus(uri);\n }\n\n return false;\n }\n}\n"],"mappings":"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"}
|
|
@@ -14,10 +14,12 @@ var _createClass2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpe
|
|
|
14
14
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/inherits"));
|
|
15
15
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/possibleConstructorReturn"));
|
|
16
16
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/getPrototypeOf"));
|
|
17
|
-
var
|
|
17
|
+
var _lodash = require("lodash");
|
|
18
18
|
var _httpCore = require("@webex/http-core");
|
|
19
19
|
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); }; }
|
|
20
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
20
|
+
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; } } /* eslint-disable prefer-destructuring */ /*!
|
|
21
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
22
|
+
*/
|
|
21
23
|
var requestHeaderName = 'cisco-no-http-redirect';
|
|
22
24
|
var responseHeaderName = 'cisco-location';
|
|
23
25
|
var LOCUS_REDIRECT_ERROR = 2000002;
|
|
@@ -25,7 +27,7 @@ var LOCUS_REDIRECT_ERROR = 2000002;
|
|
|
25
27
|
/**
|
|
26
28
|
* @class
|
|
27
29
|
*/
|
|
28
|
-
var RedirectInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
30
|
+
var RedirectInterceptor = exports.default = /*#__PURE__*/function (_Interceptor) {
|
|
29
31
|
(0, _inherits2.default)(RedirectInterceptor, _Interceptor);
|
|
30
32
|
var _super = _createSuper(RedirectInterceptor);
|
|
31
33
|
function RedirectInterceptor() {
|
|
@@ -72,7 +74,7 @@ var RedirectInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
72
74
|
value: function onResponse(options, response) {
|
|
73
75
|
/* eslint-disable no-else-return */
|
|
74
76
|
if (response.headers && response.headers[responseHeaderName]) {
|
|
75
|
-
options = (0,
|
|
77
|
+
options = (0, _lodash.clone)(options);
|
|
76
78
|
options.uri = response.headers[responseHeaderName];
|
|
77
79
|
options.$redirectCount += 1;
|
|
78
80
|
if (options.$redirectCount > this.webex.config.maxAppLevelRedirects) {
|
|
@@ -80,7 +82,7 @@ var RedirectInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
80
82
|
}
|
|
81
83
|
return this.webex.request(options);
|
|
82
84
|
} else if (response.headers && response.body && response.body.errorCode === LOCUS_REDIRECT_ERROR && response.body.location) {
|
|
83
|
-
options = (0,
|
|
85
|
+
options = (0, _lodash.clone)(options);
|
|
84
86
|
this.webex.logger.warn('redirect: url redirects needed from', options.uri);
|
|
85
87
|
if (response.options && response.options.qs) {
|
|
86
88
|
// for POST requests
|
|
@@ -115,5 +117,4 @@ var RedirectInterceptor = /*#__PURE__*/function (_Interceptor) {
|
|
|
115
117
|
}]);
|
|
116
118
|
return RedirectInterceptor;
|
|
117
119
|
}(_httpCore.Interceptor);
|
|
118
|
-
exports.default = RedirectInterceptor;
|
|
119
120
|
//# sourceMappingURL=redirect.js.map
|