@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
package/src/lib/page.js
CHANGED
|
@@ -1,159 +1,159 @@
|
|
|
1
|
-
/* eslint-disable no-constructor-return */
|
|
2
|
-
|
|
3
|
-
/*!
|
|
4
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
const itemsMap = new WeakMap();
|
|
8
|
-
const linksMap = new WeakMap();
|
|
9
|
-
const webexsMap = new WeakMap();
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @class Page
|
|
13
|
-
*/
|
|
14
|
-
export default class Page {
|
|
15
|
-
/**
|
|
16
|
-
* @type {Array}
|
|
17
|
-
*/
|
|
18
|
-
get items() {
|
|
19
|
-
return itemsMap.get(this);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* @type {number}
|
|
24
|
-
*/
|
|
25
|
-
get length() {
|
|
26
|
-
return this.items.length;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* @private
|
|
31
|
-
* @type {Object}
|
|
32
|
-
*/
|
|
33
|
-
get links() {
|
|
34
|
-
return linksMap.get(this);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* @private
|
|
39
|
-
* @type {ProxyWebex}
|
|
40
|
-
*/
|
|
41
|
-
get webex() {
|
|
42
|
-
return webexsMap.get(this);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* @constructs {Page}
|
|
47
|
-
* @param {HttpResponse} res
|
|
48
|
-
* @param {ProxyWebex} webex
|
|
49
|
-
* @returns {Page}
|
|
50
|
-
*/
|
|
51
|
-
constructor(res, webex) {
|
|
52
|
-
itemsMap.set(this, res.body.items);
|
|
53
|
-
linksMap.set(this, Page.parseLinkHeaders(res.headers.link));
|
|
54
|
-
webexsMap.set(this, webex);
|
|
55
|
-
|
|
56
|
-
return this;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Separate a single link header string into an actionable object
|
|
61
|
-
* @param {string} linkHeaders
|
|
62
|
-
* @private
|
|
63
|
-
* @returns {Object}
|
|
64
|
-
*/
|
|
65
|
-
static parseLinkHeaders(linkHeaders) {
|
|
66
|
-
if (!linkHeaders) {
|
|
67
|
-
return {};
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
linkHeaders = Array.isArray(linkHeaders) ? linkHeaders : [linkHeaders];
|
|
71
|
-
|
|
72
|
-
return linkHeaders.reduce((links, linkHeader) => {
|
|
73
|
-
linkHeader = linkHeader.split(';');
|
|
74
|
-
const link = linkHeader[0].replace('<', '').replace('>', '');
|
|
75
|
-
const rel = linkHeader[1].split('=')[1].replace(/"/g, '');
|
|
76
|
-
|
|
77
|
-
links[rel] = link;
|
|
78
|
-
|
|
79
|
-
return links;
|
|
80
|
-
}, {});
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* Get next page
|
|
85
|
-
* @returns {Function}
|
|
86
|
-
*/
|
|
87
|
-
next() {
|
|
88
|
-
return this.getLink('next');
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Indicates if there's another page
|
|
93
|
-
* @returns {Boolean}
|
|
94
|
-
*/
|
|
95
|
-
hasNext() {
|
|
96
|
-
return this.hasLink('next');
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Get previous page
|
|
101
|
-
* @returns {Page}
|
|
102
|
-
*/
|
|
103
|
-
previous() {
|
|
104
|
-
return this.getLink('previous');
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* Indicates if there is a previous Page
|
|
109
|
-
* @returns {Boolean}
|
|
110
|
-
*/
|
|
111
|
-
hasPrevious() {
|
|
112
|
-
return this.hasLink('previous');
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Retrieves the `Page` at url specified by `link`
|
|
117
|
-
* @param {string} link Specifies which link header to return
|
|
118
|
-
* @private
|
|
119
|
-
* @returns {Promise<Page>}
|
|
120
|
-
*/
|
|
121
|
-
getLink(link) {
|
|
122
|
-
return this.webex
|
|
123
|
-
.request({
|
|
124
|
-
uri: this.links[link],
|
|
125
|
-
})
|
|
126
|
-
.then((res) => new Page(res, this.webex));
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* Indicates if the specified link is in the link header
|
|
131
|
-
* @param {string} link
|
|
132
|
-
* @private
|
|
133
|
-
* @returns {Boolean}
|
|
134
|
-
*/
|
|
135
|
-
hasLink(link) {
|
|
136
|
-
return Boolean(this.links[link]);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Iterator
|
|
141
|
-
* @returns {Object}
|
|
142
|
-
*/
|
|
143
|
-
[Symbol.iterator]() {
|
|
144
|
-
let i = -1;
|
|
145
|
-
|
|
146
|
-
return {
|
|
147
|
-
next: () => {
|
|
148
|
-
i += 1;
|
|
149
|
-
if (i < this.length) {
|
|
150
|
-
return {
|
|
151
|
-
value: this.items[i],
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
return {done: true};
|
|
156
|
-
},
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
}
|
|
1
|
+
/* eslint-disable no-constructor-return */
|
|
2
|
+
|
|
3
|
+
/*!
|
|
4
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
const itemsMap = new WeakMap();
|
|
8
|
+
const linksMap = new WeakMap();
|
|
9
|
+
const webexsMap = new WeakMap();
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* @class Page
|
|
13
|
+
*/
|
|
14
|
+
export default class Page {
|
|
15
|
+
/**
|
|
16
|
+
* @type {Array}
|
|
17
|
+
*/
|
|
18
|
+
get items() {
|
|
19
|
+
return itemsMap.get(this);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @type {number}
|
|
24
|
+
*/
|
|
25
|
+
get length() {
|
|
26
|
+
return this.items.length;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* @private
|
|
31
|
+
* @type {Object}
|
|
32
|
+
*/
|
|
33
|
+
get links() {
|
|
34
|
+
return linksMap.get(this);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @private
|
|
39
|
+
* @type {ProxyWebex}
|
|
40
|
+
*/
|
|
41
|
+
get webex() {
|
|
42
|
+
return webexsMap.get(this);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* @constructs {Page}
|
|
47
|
+
* @param {HttpResponse} res
|
|
48
|
+
* @param {ProxyWebex} webex
|
|
49
|
+
* @returns {Page}
|
|
50
|
+
*/
|
|
51
|
+
constructor(res, webex) {
|
|
52
|
+
itemsMap.set(this, res.body.items);
|
|
53
|
+
linksMap.set(this, Page.parseLinkHeaders(res.headers.link));
|
|
54
|
+
webexsMap.set(this, webex);
|
|
55
|
+
|
|
56
|
+
return this;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Separate a single link header string into an actionable object
|
|
61
|
+
* @param {string} linkHeaders
|
|
62
|
+
* @private
|
|
63
|
+
* @returns {Object}
|
|
64
|
+
*/
|
|
65
|
+
static parseLinkHeaders(linkHeaders) {
|
|
66
|
+
if (!linkHeaders) {
|
|
67
|
+
return {};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
linkHeaders = Array.isArray(linkHeaders) ? linkHeaders : [linkHeaders];
|
|
71
|
+
|
|
72
|
+
return linkHeaders.reduce((links, linkHeader) => {
|
|
73
|
+
linkHeader = linkHeader.split(';');
|
|
74
|
+
const link = linkHeader[0].replace('<', '').replace('>', '');
|
|
75
|
+
const rel = linkHeader[1].split('=')[1].replace(/"/g, '');
|
|
76
|
+
|
|
77
|
+
links[rel] = link;
|
|
78
|
+
|
|
79
|
+
return links;
|
|
80
|
+
}, {});
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Get next page
|
|
85
|
+
* @returns {Function}
|
|
86
|
+
*/
|
|
87
|
+
next() {
|
|
88
|
+
return this.getLink('next');
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Indicates if there's another page
|
|
93
|
+
* @returns {Boolean}
|
|
94
|
+
*/
|
|
95
|
+
hasNext() {
|
|
96
|
+
return this.hasLink('next');
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Get previous page
|
|
101
|
+
* @returns {Page}
|
|
102
|
+
*/
|
|
103
|
+
previous() {
|
|
104
|
+
return this.getLink('previous');
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Indicates if there is a previous Page
|
|
109
|
+
* @returns {Boolean}
|
|
110
|
+
*/
|
|
111
|
+
hasPrevious() {
|
|
112
|
+
return this.hasLink('previous');
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Retrieves the `Page` at url specified by `link`
|
|
117
|
+
* @param {string} link Specifies which link header to return
|
|
118
|
+
* @private
|
|
119
|
+
* @returns {Promise<Page>}
|
|
120
|
+
*/
|
|
121
|
+
getLink(link) {
|
|
122
|
+
return this.webex
|
|
123
|
+
.request({
|
|
124
|
+
uri: this.links[link],
|
|
125
|
+
})
|
|
126
|
+
.then((res) => new Page(res, this.webex));
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/**
|
|
130
|
+
* Indicates if the specified link is in the link header
|
|
131
|
+
* @param {string} link
|
|
132
|
+
* @private
|
|
133
|
+
* @returns {Boolean}
|
|
134
|
+
*/
|
|
135
|
+
hasLink(link) {
|
|
136
|
+
return Boolean(this.links[link]);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Iterator
|
|
141
|
+
* @returns {Object}
|
|
142
|
+
*/
|
|
143
|
+
[Symbol.iterator]() {
|
|
144
|
+
let i = -1;
|
|
145
|
+
|
|
146
|
+
return {
|
|
147
|
+
next: () => {
|
|
148
|
+
i += 1;
|
|
149
|
+
if (i < this.length) {
|
|
150
|
+
return {
|
|
151
|
+
value: this.items[i],
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
return {done: true};
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
const NAMESPACE = 'services';
|
|
2
|
-
const SERVICE_CATALOGS = ['discovery', 'limited', 'signin', 'postauth', 'custom'];
|
|
3
|
-
|
|
4
|
-
const SERVICE_CATALOGS_ENUM_TYPES = {
|
|
5
|
-
STRING: 'SERVICE_CATALOGS_ENUM_TYPES_STRING',
|
|
6
|
-
NUMBER: 'SERVICE_CATALOGS_ENUM_TYPES_NUMBER',
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
export {SERVICE_CATALOGS_ENUM_TYPES, NAMESPACE, SERVICE_CATALOGS};
|
|
1
|
+
const NAMESPACE = 'services';
|
|
2
|
+
const SERVICE_CATALOGS = ['discovery', 'limited', 'signin', 'postauth', 'custom'];
|
|
3
|
+
|
|
4
|
+
const SERVICE_CATALOGS_ENUM_TYPES = {
|
|
5
|
+
STRING: 'SERVICE_CATALOGS_ENUM_TYPES_STRING',
|
|
6
|
+
NUMBER: 'SERVICE_CATALOGS_ENUM_TYPES_NUMBER',
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export {SERVICE_CATALOGS_ENUM_TYPES, NAMESPACE, SERVICE_CATALOGS};
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
-
*/
|
|
4
|
-
import {registerInternalPlugin} from '../../webex-core';
|
|
5
|
-
|
|
6
|
-
import * as constants from './constants';
|
|
7
|
-
import Services from './services';
|
|
8
|
-
import ServerErrorInterceptor from './interceptors/server-error';
|
|
9
|
-
import ServiceInterceptor from './interceptors/service';
|
|
10
|
-
|
|
11
|
-
registerInternalPlugin('services', Services, {
|
|
12
|
-
interceptors: {
|
|
13
|
-
ServiceInterceptor: ServiceInterceptor.create,
|
|
14
|
-
ServerErrorInterceptor: ServerErrorInterceptor.create,
|
|
15
|
-
},
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
export {constants};
|
|
19
|
-
export {default as ServiceInterceptor} from './interceptors/service';
|
|
20
|
-
export {default as ServerErrorInterceptor} from './interceptors/server-error';
|
|
21
|
-
export {default as Services} from './services';
|
|
22
|
-
export {default as ServiceCatalog} from './service-catalog';
|
|
23
|
-
export {default as ServiceRegistry} from './service-registry';
|
|
24
|
-
export {default as ServiceState} from './service-state';
|
|
25
|
-
export {default as ServiceHost} from './service-host';
|
|
26
|
-
export {default as ServiceUrl} from './service-url';
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
+
*/
|
|
4
|
+
import {registerInternalPlugin} from '../../webex-core';
|
|
5
|
+
|
|
6
|
+
import * as constants from './constants';
|
|
7
|
+
import Services from './services';
|
|
8
|
+
import ServerErrorInterceptor from './interceptors/server-error';
|
|
9
|
+
import ServiceInterceptor from './interceptors/service';
|
|
10
|
+
|
|
11
|
+
registerInternalPlugin('services', Services, {
|
|
12
|
+
interceptors: {
|
|
13
|
+
ServiceInterceptor: ServiceInterceptor.create,
|
|
14
|
+
ServerErrorInterceptor: ServerErrorInterceptor.create,
|
|
15
|
+
},
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
export {constants};
|
|
19
|
+
export {default as ServiceInterceptor} from './interceptors/service';
|
|
20
|
+
export {default as ServerErrorInterceptor} from './interceptors/server-error';
|
|
21
|
+
export {default as Services} from './services';
|
|
22
|
+
export {default as ServiceCatalog} from './service-catalog';
|
|
23
|
+
export {default as ServiceRegistry} from './service-registry';
|
|
24
|
+
export {default as ServiceState} from './service-state';
|
|
25
|
+
export {default as ServiceHost} from './service-host';
|
|
26
|
+
export {default as ServiceUrl} from './service-url';
|
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import {Interceptor} from '@webex/http-core';
|
|
6
|
-
import WebexHttpError from '../../webex-http-error';
|
|
7
|
-
/**
|
|
8
|
-
* Changes server url when it fails
|
|
9
|
-
*/
|
|
10
|
-
export default class ServerErrorInterceptor extends Interceptor {
|
|
11
|
-
/**
|
|
12
|
-
* @returns {HAMessagingInterceptor}
|
|
13
|
-
*/
|
|
14
|
-
static create() {
|
|
15
|
-
// eslint-disable-next-line no-invalid-this
|
|
16
|
-
return new ServerErrorInterceptor({webex: this});
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* @see Interceptor#onResponseError
|
|
21
|
-
* @param {Object} options
|
|
22
|
-
* @param {Object} reason
|
|
23
|
-
* @returns {Object}
|
|
24
|
-
*/
|
|
25
|
-
onResponseError(options, reason) {
|
|
26
|
-
if (
|
|
27
|
-
(reason instanceof WebexHttpError.InternalServerError ||
|
|
28
|
-
reason instanceof WebexHttpError.BadGateway ||
|
|
29
|
-
reason instanceof WebexHttpError.ServiceUnavailable) &&
|
|
30
|
-
options.uri
|
|
31
|
-
) {
|
|
32
|
-
const feature = this.webex.internal.device.features.developer.get('web-high-availability');
|
|
33
|
-
|
|
34
|
-
if (feature && feature.value) {
|
|
35
|
-
this.webex.internal.metrics.submitClientMetrics('web-ha', {
|
|
36
|
-
fields: {success: false},
|
|
37
|
-
tags: {action: 'failed', error: reason.message, url: options.uri},
|
|
38
|
-
});
|
|
39
|
-
|
|
40
|
-
return Promise.resolve(this.webex.internal.services.markFailedUrl(options.uri)).then(() =>
|
|
41
|
-
Promise.reject(reason)
|
|
42
|
-
);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return Promise.reject(reason);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import {Interceptor} from '@webex/http-core';
|
|
6
|
+
import WebexHttpError from '../../webex-http-error';
|
|
7
|
+
/**
|
|
8
|
+
* Changes server url when it fails
|
|
9
|
+
*/
|
|
10
|
+
export default class ServerErrorInterceptor extends Interceptor {
|
|
11
|
+
/**
|
|
12
|
+
* @returns {HAMessagingInterceptor}
|
|
13
|
+
*/
|
|
14
|
+
static create() {
|
|
15
|
+
// eslint-disable-next-line no-invalid-this
|
|
16
|
+
return new ServerErrorInterceptor({webex: this});
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @see Interceptor#onResponseError
|
|
21
|
+
* @param {Object} options
|
|
22
|
+
* @param {Object} reason
|
|
23
|
+
* @returns {Object}
|
|
24
|
+
*/
|
|
25
|
+
onResponseError(options, reason) {
|
|
26
|
+
if (
|
|
27
|
+
(reason instanceof WebexHttpError.InternalServerError ||
|
|
28
|
+
reason instanceof WebexHttpError.BadGateway ||
|
|
29
|
+
reason instanceof WebexHttpError.ServiceUnavailable) &&
|
|
30
|
+
options.uri
|
|
31
|
+
) {
|
|
32
|
+
const feature = this.webex.internal.device.features.developer.get('web-high-availability');
|
|
33
|
+
|
|
34
|
+
if (feature && feature.value) {
|
|
35
|
+
this.webex.internal.metrics.submitClientMetrics('web-ha', {
|
|
36
|
+
fields: {success: false},
|
|
37
|
+
tags: {action: 'failed', error: reason.message, url: options.uri},
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
return Promise.resolve(this.webex.internal.services.markFailedUrl(options.uri)).then(() =>
|
|
41
|
+
Promise.reject(reason)
|
|
42
|
+
);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return Promise.reject(reason);
|
|
47
|
+
}
|
|
48
|
+
}
|