@webex/webex-core 2.59.3-next.1 → 2.59.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.js +6 -6
- package/README.md +79 -79
- package/babel.config.js +3 -3
- package/dist/config.js +24 -24
- package/dist/config.js.map +1 -1
- package/dist/credentials-config.js +56 -56
- package/dist/credentials-config.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/interceptors/auth.js +28 -28
- package/dist/interceptors/auth.js.map +1 -1
- package/dist/interceptors/default-options.js +24 -24
- package/dist/interceptors/default-options.js.map +1 -1
- package/dist/interceptors/embargo.js +9 -9
- package/dist/interceptors/embargo.js.map +1 -1
- package/dist/interceptors/network-timing.js +19 -19
- package/dist/interceptors/network-timing.js.map +1 -1
- package/dist/interceptors/payload-transformer.js +19 -19
- package/dist/interceptors/payload-transformer.js.map +1 -1
- package/dist/interceptors/rate-limit.js +40 -40
- package/dist/interceptors/rate-limit.js.map +1 -1
- package/dist/interceptors/redirect.js +13 -13
- package/dist/interceptors/redirect.js.map +1 -1
- package/dist/interceptors/request-event.js +23 -23
- package/dist/interceptors/request-event.js.map +1 -1
- package/dist/interceptors/request-logger.js +13 -13
- package/dist/interceptors/request-logger.js.map +1 -1
- package/dist/interceptors/request-timing.js +23 -23
- package/dist/interceptors/request-timing.js.map +1 -1
- package/dist/interceptors/response-logger.js +19 -19
- package/dist/interceptors/response-logger.js.map +1 -1
- package/dist/interceptors/user-agent.js +29 -29
- package/dist/interceptors/user-agent.js.map +1 -1
- package/dist/interceptors/webex-tracking-id.js +15 -15
- package/dist/interceptors/webex-tracking-id.js.map +1 -1
- package/dist/interceptors/webex-user-agent.js +13 -13
- package/dist/interceptors/webex-user-agent.js.map +1 -1
- package/dist/lib/batcher.js +83 -83
- package/dist/lib/batcher.js.map +1 -1
- package/dist/lib/credentials/credentials.js +103 -103
- package/dist/lib/credentials/credentials.js.map +1 -1
- package/dist/lib/credentials/grant-errors.js +17 -17
- package/dist/lib/credentials/grant-errors.js.map +1 -1
- package/dist/lib/credentials/index.js +2 -2
- package/dist/lib/credentials/index.js.map +1 -1
- package/dist/lib/credentials/scope.js +11 -11
- package/dist/lib/credentials/scope.js.map +1 -1
- package/dist/lib/credentials/token-collection.js +2 -2
- package/dist/lib/credentials/token-collection.js.map +1 -1
- package/dist/lib/credentials/token.js +145 -145
- package/dist/lib/credentials/token.js.map +1 -1
- package/dist/lib/page.js +49 -49
- package/dist/lib/page.js.map +1 -1
- package/dist/lib/services/constants.js.map +1 -1
- package/dist/lib/services/index.js +2 -2
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/interceptors/server-error.js +9 -9
- package/dist/lib/services/interceptors/server-error.js.map +1 -1
- package/dist/lib/services/interceptors/service.js +24 -24
- package/dist/lib/services/interceptors/service.js.map +1 -1
- package/dist/lib/services/metrics.js.map +1 -1
- package/dist/lib/services/service-catalog.js +104 -104
- package/dist/lib/services/service-catalog.js.map +1 -1
- package/dist/lib/services/service-fed-ramp.js.map +1 -1
- package/dist/lib/services/service-host.js +134 -134
- package/dist/lib/services/service-host.js.map +1 -1
- package/dist/lib/services/service-registry.js +175 -175
- package/dist/lib/services/service-registry.js.map +1 -1
- package/dist/lib/services/service-state.js +38 -38
- package/dist/lib/services/service-state.js.map +1 -1
- package/dist/lib/services/service-url.js +31 -31
- package/dist/lib/services/service-url.js.map +1 -1
- package/dist/lib/services/services.js +245 -245
- package/dist/lib/services/services.js.map +1 -1
- package/dist/lib/stateless-webex-plugin.js +28 -28
- package/dist/lib/stateless-webex-plugin.js.map +1 -1
- package/dist/lib/storage/decorators.js +27 -27
- package/dist/lib/storage/decorators.js.map +1 -1
- package/dist/lib/storage/errors.js +4 -4
- package/dist/lib/storage/errors.js.map +1 -1
- package/dist/lib/storage/index.js.map +1 -1
- package/dist/lib/storage/make-webex-plugin-store.js +44 -44
- package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
- package/dist/lib/storage/make-webex-store.js +40 -40
- package/dist/lib/storage/make-webex-store.js.map +1 -1
- package/dist/lib/storage/memory-store-adapter.js +9 -9
- package/dist/lib/storage/memory-store-adapter.js.map +1 -1
- package/dist/lib/webex-core-plugin-mixin.js +13 -13
- package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-http-error.js +9 -9
- package/dist/lib/webex-http-error.js.map +1 -1
- package/dist/lib/webex-internal-core-plugin-mixin.js +13 -13
- package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-plugin.js +36 -36
- package/dist/lib/webex-plugin.js.map +1 -1
- package/dist/plugins/logger.js +9 -9
- package/dist/plugins/logger.js.map +1 -1
- package/dist/webex-core.js +104 -104
- package/dist/webex-core.js.map +1 -1
- package/dist/webex-internal-core.js +12 -12
- package/dist/webex-internal-core.js.map +1 -1
- package/jest.config.js +3 -3
- package/package.json +19 -20
- package/process +1 -1
- package/src/config.js +90 -90
- package/src/credentials-config.js +212 -212
- package/src/index.js +62 -62
- package/src/interceptors/auth.js +186 -186
- package/src/interceptors/default-options.js +55 -55
- package/src/interceptors/embargo.js +43 -43
- package/src/interceptors/network-timing.js +54 -54
- package/src/interceptors/payload-transformer.js +55 -55
- package/src/interceptors/rate-limit.js +169 -169
- package/src/interceptors/redirect.js +106 -106
- package/src/interceptors/request-event.js +93 -93
- package/src/interceptors/request-logger.js +78 -78
- package/src/interceptors/request-timing.js +65 -65
- package/src/interceptors/response-logger.js +98 -98
- package/src/interceptors/user-agent.js +77 -77
- package/src/interceptors/webex-tracking-id.js +73 -73
- package/src/interceptors/webex-user-agent.js +79 -79
- package/src/lib/batcher.js +307 -307
- package/src/lib/credentials/credentials.js +552 -552
- package/src/lib/credentials/grant-errors.js +92 -92
- package/src/lib/credentials/index.js +16 -16
- package/src/lib/credentials/scope.js +34 -34
- package/src/lib/credentials/token-collection.js +17 -17
- package/src/lib/credentials/token.js +559 -559
- package/src/lib/page.js +159 -159
- package/src/lib/services/constants.js +9 -9
- package/src/lib/services/index.js +26 -26
- package/src/lib/services/interceptors/server-error.js +48 -48
- package/src/lib/services/interceptors/service.js +101 -101
- package/src/lib/services/metrics.js +4 -4
- package/src/lib/services/service-catalog.js +435 -435
- package/src/lib/services/service-fed-ramp.js +4 -4
- package/src/lib/services/service-host.js +267 -267
- package/src/lib/services/service-registry.js +465 -465
- package/src/lib/services/service-state.js +78 -78
- package/src/lib/services/service-url.js +124 -124
- package/src/lib/services/services.js +1018 -1018
- package/src/lib/stateless-webex-plugin.js +98 -98
- package/src/lib/storage/decorators.js +220 -220
- package/src/lib/storage/errors.js +15 -15
- package/src/lib/storage/index.js +10 -10
- package/src/lib/storage/make-webex-plugin-store.js +211 -211
- package/src/lib/storage/make-webex-store.js +140 -140
- package/src/lib/storage/memory-store-adapter.js +79 -79
- package/src/lib/webex-core-plugin-mixin.js +114 -114
- package/src/lib/webex-http-error.js +61 -61
- package/src/lib/webex-internal-core-plugin-mixin.js +107 -107
- package/src/lib/webex-plugin.js +222 -222
- package/src/plugins/logger.js +60 -60
- package/src/webex-core.js +745 -745
- package/src/webex-internal-core.js +46 -46
- package/test/integration/spec/credentials/credentials.js +139 -139
- package/test/integration/spec/credentials/token.js +102 -102
- package/test/integration/spec/services/service-catalog.js +838 -838
- package/test/integration/spec/services/services.js +1221 -1221
- package/test/integration/spec/webex-core.js +178 -178
- package/test/unit/spec/_setup.js +44 -44
- package/test/unit/spec/credentials/credentials.js +1017 -1017
- package/test/unit/spec/credentials/token.js +441 -441
- package/test/unit/spec/interceptors/auth.js +521 -521
- package/test/unit/spec/interceptors/default-options.js +84 -84
- package/test/unit/spec/interceptors/embargo.js +144 -144
- package/test/unit/spec/interceptors/network-timing.js +49 -49
- package/test/unit/spec/interceptors/payload-transformer.js +155 -155
- package/test/unit/spec/interceptors/rate-limit.js +302 -302
- package/test/unit/spec/interceptors/redirect.js +102 -102
- package/test/unit/spec/interceptors/request-timing.js +92 -92
- package/test/unit/spec/interceptors/user-agent.js +76 -76
- package/test/unit/spec/interceptors/webex-tracking-id.js +76 -76
- package/test/unit/spec/interceptors/webex-user-agent.js +159 -159
- package/test/unit/spec/lib/batcher.js +330 -330
- package/test/unit/spec/lib/page.js +148 -148
- package/test/unit/spec/lib/webex-plugin.js +48 -48
- package/test/unit/spec/services/interceptors/server-error.js +204 -204
- package/test/unit/spec/services/interceptors/service.js +188 -188
- package/test/unit/spec/services/service-catalog.js +194 -194
- package/test/unit/spec/services/service-host.js +260 -260
- package/test/unit/spec/services/service-registry.js +747 -747
- package/test/unit/spec/services/service-state.js +60 -60
- package/test/unit/spec/services/service-url.js +258 -258
- package/test/unit/spec/services/services.js +348 -348
- package/test/unit/spec/storage/persist.js +50 -50
- package/test/unit/spec/storage/storage-adapter.js +12 -12
- package/test/unit/spec/storage/wait-for-value.js +81 -81
- package/test/unit/spec/webex-core.js +253 -253
- package/test/unit/spec/webex-internal-core.js +91 -91
|
@@ -1,101 +1,101 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import {Interceptor} from '@webex/http-core';
|
|
6
|
-
|
|
7
|
-
const trailingSlashes = /(?:^\/)|(?:\/$)/;
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* @class
|
|
11
|
-
*/
|
|
12
|
-
export default class ServiceInterceptor extends Interceptor {
|
|
13
|
-
/**
|
|
14
|
-
* @returns {ServiceInterceptor}
|
|
15
|
-
*/
|
|
16
|
-
static create() {
|
|
17
|
-
/* eslint no-invalid-this: [0] */
|
|
18
|
-
return new ServiceInterceptor({webex: this});
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/* eslint-disable no-param-reassign */
|
|
22
|
-
/**
|
|
23
|
-
* @see Interceptor#onRequest
|
|
24
|
-
* @param {Object} options - The request PTO.
|
|
25
|
-
* @returns {Object} - The mutated request PTO.
|
|
26
|
-
*/
|
|
27
|
-
onRequest(options) {
|
|
28
|
-
// Validate that the PTO includes a uri property.
|
|
29
|
-
if (options.uri) {
|
|
30
|
-
return options;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// Normalize and validate the PTO.
|
|
34
|
-
this.normalizeOptions(options);
|
|
35
|
-
this.validateOptions(options);
|
|
36
|
-
|
|
37
|
-
// Destructure commonly referenced namespaces.
|
|
38
|
-
const {services} = this.webex.internal;
|
|
39
|
-
const {service, resource} = options;
|
|
40
|
-
|
|
41
|
-
// Attempt to collect the service url.
|
|
42
|
-
return services
|
|
43
|
-
.waitForService({name: service})
|
|
44
|
-
.then((serviceUrl) => {
|
|
45
|
-
// Generate the combined service url and resource.
|
|
46
|
-
options.uri = this.generateUri(serviceUrl, resource);
|
|
47
|
-
|
|
48
|
-
return options;
|
|
49
|
-
})
|
|
50
|
-
.catch(() =>
|
|
51
|
-
Promise.reject(new Error(`service-interceptor: '${service}' is not a known service`))
|
|
52
|
-
);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/* eslint-disable class-methods-use-this */
|
|
56
|
-
/**
|
|
57
|
-
* Generate a usable request uri string from a service url and a resouce.
|
|
58
|
-
*
|
|
59
|
-
* @param {string} serviceUrl - The service url.
|
|
60
|
-
* @param {string} [resource] - The resouce to be appended to the service url.
|
|
61
|
-
* @returns {string} - The combined service url and resource.
|
|
62
|
-
*/
|
|
63
|
-
generateUri(serviceUrl, resource = '') {
|
|
64
|
-
const formattedService = serviceUrl.replace(trailingSlashes, '');
|
|
65
|
-
const formattedResource = resource.replace(trailingSlashes, '');
|
|
66
|
-
|
|
67
|
-
return `${formattedService}/${formattedResource}`;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Normalizes request options relative to service identification.
|
|
72
|
-
*
|
|
73
|
-
* @param {Object} options - The request PTO.
|
|
74
|
-
* @returns {Object} - The mutated request PTO.
|
|
75
|
-
*/
|
|
76
|
-
normalizeOptions(options) {
|
|
77
|
-
// Validate if the api property is used.
|
|
78
|
-
if (options.api) {
|
|
79
|
-
// Assign the service property the value of the api property if necessary.
|
|
80
|
-
options.service = options.service || options.api;
|
|
81
|
-
delete options.api;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Validates that the appropriate options for this interceptor are present.
|
|
87
|
-
*
|
|
88
|
-
* @param {Object} options - The request PTO.
|
|
89
|
-
* @returns {Object} - The mutated request PTO.
|
|
90
|
-
*/
|
|
91
|
-
validateOptions(options) {
|
|
92
|
-
if (!options.resource) {
|
|
93
|
-
throw new Error('a `resource` parameter is required');
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
if (!options.service) {
|
|
97
|
-
throw new Error("a valid 'service' parameter is required");
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
/* eslint-enable class-methods-use-this, no-param-reassign */
|
|
101
|
-
}
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import {Interceptor} from '@webex/http-core';
|
|
6
|
+
|
|
7
|
+
const trailingSlashes = /(?:^\/)|(?:\/$)/;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @class
|
|
11
|
+
*/
|
|
12
|
+
export default class ServiceInterceptor extends Interceptor {
|
|
13
|
+
/**
|
|
14
|
+
* @returns {ServiceInterceptor}
|
|
15
|
+
*/
|
|
16
|
+
static create() {
|
|
17
|
+
/* eslint no-invalid-this: [0] */
|
|
18
|
+
return new ServiceInterceptor({webex: this});
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/* eslint-disable no-param-reassign */
|
|
22
|
+
/**
|
|
23
|
+
* @see Interceptor#onRequest
|
|
24
|
+
* @param {Object} options - The request PTO.
|
|
25
|
+
* @returns {Object} - The mutated request PTO.
|
|
26
|
+
*/
|
|
27
|
+
onRequest(options) {
|
|
28
|
+
// Validate that the PTO includes a uri property.
|
|
29
|
+
if (options.uri) {
|
|
30
|
+
return options;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Normalize and validate the PTO.
|
|
34
|
+
this.normalizeOptions(options);
|
|
35
|
+
this.validateOptions(options);
|
|
36
|
+
|
|
37
|
+
// Destructure commonly referenced namespaces.
|
|
38
|
+
const {services} = this.webex.internal;
|
|
39
|
+
const {service, resource} = options;
|
|
40
|
+
|
|
41
|
+
// Attempt to collect the service url.
|
|
42
|
+
return services
|
|
43
|
+
.waitForService({name: service})
|
|
44
|
+
.then((serviceUrl) => {
|
|
45
|
+
// Generate the combined service url and resource.
|
|
46
|
+
options.uri = this.generateUri(serviceUrl, resource);
|
|
47
|
+
|
|
48
|
+
return options;
|
|
49
|
+
})
|
|
50
|
+
.catch(() =>
|
|
51
|
+
Promise.reject(new Error(`service-interceptor: '${service}' is not a known service`))
|
|
52
|
+
);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/* eslint-disable class-methods-use-this */
|
|
56
|
+
/**
|
|
57
|
+
* Generate a usable request uri string from a service url and a resouce.
|
|
58
|
+
*
|
|
59
|
+
* @param {string} serviceUrl - The service url.
|
|
60
|
+
* @param {string} [resource] - The resouce to be appended to the service url.
|
|
61
|
+
* @returns {string} - The combined service url and resource.
|
|
62
|
+
*/
|
|
63
|
+
generateUri(serviceUrl, resource = '') {
|
|
64
|
+
const formattedService = serviceUrl.replace(trailingSlashes, '');
|
|
65
|
+
const formattedResource = resource.replace(trailingSlashes, '');
|
|
66
|
+
|
|
67
|
+
return `${formattedService}/${formattedResource}`;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Normalizes request options relative to service identification.
|
|
72
|
+
*
|
|
73
|
+
* @param {Object} options - The request PTO.
|
|
74
|
+
* @returns {Object} - The mutated request PTO.
|
|
75
|
+
*/
|
|
76
|
+
normalizeOptions(options) {
|
|
77
|
+
// Validate if the api property is used.
|
|
78
|
+
if (options.api) {
|
|
79
|
+
// Assign the service property the value of the api property if necessary.
|
|
80
|
+
options.service = options.service || options.api;
|
|
81
|
+
delete options.api;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Validates that the appropriate options for this interceptor are present.
|
|
87
|
+
*
|
|
88
|
+
* @param {Object} options - The request PTO.
|
|
89
|
+
* @returns {Object} - The mutated request PTO.
|
|
90
|
+
*/
|
|
91
|
+
validateOptions(options) {
|
|
92
|
+
if (!options.resource) {
|
|
93
|
+
throw new Error('a `resource` parameter is required');
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (!options.service) {
|
|
97
|
+
throw new Error("a valid 'service' parameter is required");
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/* eslint-enable class-methods-use-this, no-param-reassign */
|
|
101
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Metrics for service catalog
|
|
2
|
-
export default {
|
|
3
|
-
JS_SDK_SERVICE_NOT_FOUND: 'JS_SDK_SERVICE_NOT_FOUND',
|
|
4
|
-
};
|
|
1
|
+
// Metrics for service catalog
|
|
2
|
+
export default {
|
|
3
|
+
JS_SDK_SERVICE_NOT_FOUND: 'JS_SDK_SERVICE_NOT_FOUND',
|
|
4
|
+
};
|