@webex/webex-core 3.0.0-beta.2 → 3.0.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config.js +1 -11
- package/dist/config.js.map +1 -1
- package/dist/credentials-config.js +44 -64
- package/dist/credentials-config.js.map +1 -1
- package/dist/index.js +0 -76
- package/dist/index.js.map +1 -1
- package/dist/interceptors/auth.js +22 -55
- package/dist/interceptors/auth.js.map +1 -1
- package/dist/interceptors/default-options.js +0 -20
- package/dist/interceptors/default-options.js.map +1 -1
- package/dist/interceptors/embargo.js +0 -21
- package/dist/interceptors/embargo.js.map +1 -1
- package/dist/interceptors/network-timing.js +2 -21
- package/dist/interceptors/network-timing.js.map +1 -1
- package/dist/interceptors/payload-transformer.js +2 -22
- package/dist/interceptors/payload-transformer.js.map +1 -1
- package/dist/interceptors/rate-limit.js +25 -57
- package/dist/interceptors/rate-limit.js.map +1 -1
- package/dist/interceptors/redirect.js +4 -33
- package/dist/interceptors/redirect.js.map +1 -1
- package/dist/interceptors/request-event.js +3 -30
- package/dist/interceptors/request-event.js.map +1 -1
- package/dist/interceptors/request-logger.js +1 -30
- package/dist/interceptors/request-logger.js.map +1 -1
- package/dist/interceptors/request-timing.js +3 -22
- package/dist/interceptors/request-timing.js.map +1 -1
- package/dist/interceptors/response-logger.js +2 -31
- package/dist/interceptors/response-logger.js.map +1 -1
- package/dist/interceptors/user-agent.js +2 -29
- package/dist/interceptors/user-agent.js.map +1 -1
- package/dist/interceptors/webex-tracking-id.js +5 -28
- package/dist/interceptors/webex-tracking-id.js.map +1 -1
- package/dist/interceptors/webex-user-agent.js +5 -38
- package/dist/interceptors/webex-user-agent.js.map +1 -1
- package/dist/lib/batcher.js +3 -51
- package/dist/lib/batcher.js.map +1 -1
- package/dist/lib/credentials/credentials.js +39 -119
- package/dist/lib/credentials/credentials.js.map +1 -1
- package/dist/lib/credentials/grant-errors.js +0 -49
- package/dist/lib/credentials/grant-errors.js.map +1 -1
- package/dist/lib/credentials/index.js +1 -13
- package/dist/lib/credentials/index.js.map +1 -1
- package/dist/lib/credentials/scope.js +1 -7
- package/dist/lib/credentials/scope.js.map +1 -1
- package/dist/lib/credentials/token-collection.js +1 -7
- package/dist/lib/credentials/token-collection.js.map +1 -1
- package/dist/lib/credentials/token.js +39 -118
- package/dist/lib/credentials/token.js.map +1 -1
- package/dist/lib/page.js +13 -26
- package/dist/lib/page.js.map +1 -1
- package/dist/lib/services/constants.js +0 -2
- package/dist/lib/services/constants.js.map +1 -1
- package/dist/lib/services/index.js +1 -28
- package/dist/lib/services/index.js.map +1 -1
- package/dist/lib/services/interceptors/server-error.js +2 -23
- package/dist/lib/services/interceptors/server-error.js.map +1 -1
- package/dist/lib/services/interceptors/service.js +12 -34
- package/dist/lib/services/interceptors/service.js.map +1 -1
- package/dist/lib/services/metrics.js +0 -2
- package/dist/lib/services/metrics.js.map +1 -1
- package/dist/lib/services/service-catalog.js +10 -90
- package/dist/lib/services/service-catalog.js.map +1 -1
- package/dist/lib/services/service-fed-ramp.js +0 -2
- package/dist/lib/services/service-fed-ramp.js.map +1 -1
- package/dist/lib/services/service-host.js +47 -62
- package/dist/lib/services/service-host.js.map +1 -1
- package/dist/lib/services/service-registry.js +78 -90
- package/dist/lib/services/service-registry.js.map +1 -1
- package/dist/lib/services/service-state.js +3 -15
- package/dist/lib/services/service-state.js.map +1 -1
- package/dist/lib/services/service-url.js +4 -25
- package/dist/lib/services/service-url.js.map +1 -1
- package/dist/lib/services/services.js +122 -238
- package/dist/lib/services/services.js.map +1 -1
- package/dist/lib/stateless-webex-plugin.js +5 -28
- package/dist/lib/stateless-webex-plugin.js.map +1 -1
- package/dist/lib/storage/decorators.js +19 -62
- package/dist/lib/storage/decorators.js.map +1 -1
- package/dist/lib/storage/errors.js +0 -23
- package/dist/lib/storage/errors.js.map +1 -1
- package/dist/lib/storage/index.js +2 -16
- package/dist/lib/storage/index.js.map +1 -1
- package/dist/lib/storage/make-webex-plugin-store.js +11 -41
- package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
- package/dist/lib/storage/make-webex-store.js +8 -30
- package/dist/lib/storage/make-webex-store.js.map +1 -1
- package/dist/lib/storage/memory-store-adapter.js +1 -19
- package/dist/lib/storage/memory-store-adapter.js.map +1 -1
- package/dist/lib/webex-core-plugin-mixin.js +9 -29
- package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-http-error.js +1 -31
- package/dist/lib/webex-http-error.js.map +1 -1
- package/dist/lib/webex-internal-core-plugin-mixin.js +9 -29
- package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
- package/dist/lib/webex-plugin.js +6 -40
- package/dist/lib/webex-plugin.js.map +1 -1
- package/dist/plugins/logger.js +3 -17
- package/dist/plugins/logger.js.map +1 -1
- package/dist/webex-core.js +79 -203
- package/dist/webex-core.js.map +1 -1
- package/dist/webex-internal-core.js +0 -10
- package/dist/webex-internal-core.js.map +1 -1
- package/package.json +14 -14
- package/src/config.js +9 -11
- package/src/credentials-config.js +110 -72
- package/src/index.js +4 -14
- package/src/interceptors/auth.js +36 -37
- package/src/interceptors/default-options.js +0 -1
- package/src/interceptors/embargo.js +1 -1
- package/src/interceptors/payload-transformer.js +1 -2
- package/src/interceptors/rate-limit.js +8 -5
- package/src/interceptors/redirect.js +14 -8
- package/src/interceptors/request-event.js +4 -8
- package/src/interceptors/request-logger.js +8 -5
- package/src/interceptors/response-logger.js +11 -8
- package/src/interceptors/user-agent.js +1 -2
- package/src/interceptors/webex-user-agent.js +3 -9
- package/src/lib/batcher.js +70 -69
- package/src/lib/credentials/credentials.js +112 -122
- package/src/lib/credentials/grant-errors.js +6 -7
- package/src/lib/credentials/index.js +1 -4
- package/src/lib/credentials/scope.js +1 -4
- package/src/lib/credentials/token-collection.js +1 -1
- package/src/lib/credentials/token.js +86 -80
- package/src/lib/page.js +10 -11
- package/src/lib/services/constants.js +3 -13
- package/src/lib/services/index.js +2 -2
- package/src/lib/services/interceptors/server-error.js +12 -7
- package/src/lib/services/interceptors/service.js +6 -5
- package/src/lib/services/metrics.js +1 -1
- package/src/lib/services/service-catalog.js +110 -100
- package/src/lib/services/service-fed-ramp.js +1 -2
- package/src/lib/services/service-host.js +10 -17
- package/src/lib/services/service-registry.js +69 -96
- package/src/lib/services/service-state.js +4 -6
- package/src/lib/services/service-url.js +24 -23
- package/src/lib/services/services.js +260 -251
- package/src/lib/stateless-webex-plugin.js +4 -2
- package/src/lib/storage/decorators.js +68 -66
- package/src/lib/storage/index.js +4 -6
- package/src/lib/storage/make-webex-plugin-store.js +34 -21
- package/src/lib/storage/make-webex-store.js +6 -7
- package/src/lib/storage/memory-store-adapter.js +3 -3
- package/src/lib/webex-core-plugin-mixin.js +10 -7
- package/src/lib/webex-http-error.js +7 -8
- package/src/lib/webex-internal-core-plugin-mixin.js +9 -6
- package/src/lib/webex-plugin.js +41 -34
- package/src/plugins/logger.js +8 -3
- package/src/webex-core.js +185 -116
- package/src/webex-internal-core.js +15 -9
- package/test/integration/spec/credentials/credentials.js +26 -30
- package/test/integration/spec/credentials/token.js +36 -33
- package/test/integration/spec/services/service-catalog.js +177 -156
- package/test/integration/spec/services/services.js +313 -304
- package/test/integration/spec/webex-core.js +98 -86
- package/test/unit/spec/_setup.js +26 -18
- package/test/unit/spec/credentials/credentials.js +189 -154
- package/test/unit/spec/credentials/token.js +94 -76
- package/test/unit/spec/interceptors/auth.js +291 -243
- package/test/unit/spec/interceptors/default-options.js +36 -24
- package/test/unit/spec/interceptors/embargo.js +32 -27
- package/test/unit/spec/interceptors/network-timing.js +2 -2
- package/test/unit/spec/interceptors/payload-transformer.js +61 -52
- package/test/unit/spec/interceptors/rate-limit.js +104 -75
- package/test/unit/spec/interceptors/redirect.js +22 -20
- package/test/unit/spec/interceptors/request-timing.js +18 -22
- package/test/unit/spec/interceptors/user-agent.js +28 -16
- package/test/unit/spec/interceptors/webex-tracking-id.js +14 -8
- package/test/unit/spec/interceptors/webex-user-agent.js +83 -37
- package/test/unit/spec/lib/batcher.js +36 -32
- package/test/unit/spec/lib/page.js +36 -32
- package/test/unit/spec/lib/webex-plugin.js +1 -1
- package/test/unit/spec/services/interceptors/server-error.js +67 -90
- package/test/unit/spec/services/interceptors/service.js +17 -28
- package/test/unit/spec/services/service-catalog.js +19 -27
- package/test/unit/spec/services/service-host.js +29 -26
- package/test/unit/spec/services/service-registry.js +128 -170
- package/test/unit/spec/services/service-state.js +13 -22
- package/test/unit/spec/services/service-url.js +24 -43
- package/test/unit/spec/services/services.js +85 -41
- package/test/unit/spec/storage/persist.js +6 -9
- package/test/unit/spec/storage/wait-for-value.js +22 -21
- package/test/unit/spec/webex-core.js +78 -57
- package/test/unit/spec/webex-internal-core.js +56 -31
|
@@ -14,10 +14,11 @@ describe('webex-core', () => {
|
|
|
14
14
|
describe('Credentials', () => {
|
|
15
15
|
let user;
|
|
16
16
|
|
|
17
|
-
before(() =>
|
|
18
|
-
.then(([u]) => {
|
|
17
|
+
before(() =>
|
|
18
|
+
testUsers.create({count: 1}).then(([u]) => {
|
|
19
19
|
user = u;
|
|
20
|
-
})
|
|
20
|
+
})
|
|
21
|
+
);
|
|
21
22
|
|
|
22
23
|
describe('#config', () => {
|
|
23
24
|
let webex;
|
|
@@ -28,15 +29,12 @@ describe('webex-core', () => {
|
|
|
28
29
|
webex = new WebexCore({
|
|
29
30
|
config: {
|
|
30
31
|
credentials: {
|
|
31
|
-
authorizationString: `${authorizeUrl}?example=value
|
|
32
|
-
}
|
|
33
|
-
}
|
|
32
|
+
authorizationString: `${authorizeUrl}?example=value`,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
34
35
|
});
|
|
35
36
|
|
|
36
|
-
assert.equal(
|
|
37
|
-
webex.config.credentials.authorizeUrl,
|
|
38
|
-
authorizeUrl
|
|
39
|
-
);
|
|
37
|
+
assert.equal(webex.config.credentials.authorizeUrl, authorizeUrl);
|
|
40
38
|
});
|
|
41
39
|
});
|
|
42
40
|
|
|
@@ -46,7 +44,7 @@ describe('webex-core', () => {
|
|
|
46
44
|
|
|
47
45
|
beforeEach('generate the webex instance', () => {
|
|
48
46
|
webex = new WebexCore({
|
|
49
|
-
credentials: user.token
|
|
47
|
+
credentials: user.token,
|
|
50
48
|
});
|
|
51
49
|
|
|
52
50
|
credentials = webex.credentials;
|
|
@@ -65,7 +63,7 @@ describe('webex-core', () => {
|
|
|
65
63
|
|
|
66
64
|
beforeEach('generate a JWT and Webex Instance', () => {
|
|
67
65
|
webex = new WebexCore({
|
|
68
|
-
credentials: user.token
|
|
66
|
+
credentials: user.token,
|
|
69
67
|
});
|
|
70
68
|
|
|
71
69
|
credentials = webex.credentials;
|
|
@@ -85,7 +83,7 @@ describe('webex-core', () => {
|
|
|
85
83
|
|
|
86
84
|
beforeEach('define webex', () => {
|
|
87
85
|
webex = new WebexCore({
|
|
88
|
-
credentials: user.token
|
|
86
|
+
credentials: user.token,
|
|
89
87
|
});
|
|
90
88
|
|
|
91
89
|
credentials = webex.credentials;
|
|
@@ -102,20 +100,19 @@ describe('webex-core', () => {
|
|
|
102
100
|
describe('#refresh()', () => {
|
|
103
101
|
nodeOnly(it)('refreshes an access token', () => {
|
|
104
102
|
const webex = new WebexCore({
|
|
105
|
-
credentials: user.token
|
|
103
|
+
credentials: user.token,
|
|
106
104
|
});
|
|
107
105
|
|
|
108
|
-
return webex.credentials.refresh()
|
|
109
|
-
.
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
});
|
|
106
|
+
return webex.credentials.refresh().then(() => {
|
|
107
|
+
assert.isDefined(user.token.access_token);
|
|
108
|
+
assert.isDefined(webex.credentials.supertoken.access_token);
|
|
109
|
+
assert.notEqual(webex.credentials.supertoken.access_token, user.token.access_token);
|
|
110
|
+
});
|
|
114
111
|
});
|
|
115
112
|
|
|
116
113
|
browserOnly(it)('throws without a refresh callback', () => {
|
|
117
114
|
const webex = new WebexCore({
|
|
118
|
-
credentials: user.token
|
|
115
|
+
credentials: user.token,
|
|
119
116
|
});
|
|
120
117
|
|
|
121
118
|
return assert.isRejected(webex.credentials.refresh());
|
|
@@ -126,17 +123,16 @@ describe('webex-core', () => {
|
|
|
126
123
|
credentials: user.token,
|
|
127
124
|
config: {
|
|
128
125
|
credentials: {
|
|
129
|
-
refreshCallback
|
|
130
|
-
}
|
|
131
|
-
}
|
|
126
|
+
refreshCallback,
|
|
127
|
+
},
|
|
128
|
+
},
|
|
132
129
|
});
|
|
133
130
|
|
|
134
|
-
return webex.credentials.refresh()
|
|
135
|
-
.
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
});
|
|
131
|
+
return webex.credentials.refresh().then(() => {
|
|
132
|
+
assert.isDefined(user.token.access_token);
|
|
133
|
+
assert.isDefined(webex.credentials.supertoken.access_token);
|
|
134
|
+
assert.notEqual(webex.credentials.supertoken.access_token, user.token.access_token);
|
|
135
|
+
});
|
|
140
136
|
});
|
|
141
137
|
});
|
|
142
138
|
});
|
|
@@ -15,10 +15,11 @@ describe('webex-core', () => {
|
|
|
15
15
|
describe('Token', () => {
|
|
16
16
|
let webex, user;
|
|
17
17
|
|
|
18
|
-
before(() =>
|
|
19
|
-
.then(([u]) => {
|
|
18
|
+
before(() =>
|
|
19
|
+
testUsers.create({count: 1}).then(([u]) => {
|
|
20
20
|
user = u;
|
|
21
|
-
})
|
|
21
|
+
})
|
|
22
|
+
);
|
|
22
23
|
|
|
23
24
|
describe('#downscope()', () => {
|
|
24
25
|
it('retrieves an access token with a subset of scopes', () => {
|
|
@@ -26,13 +27,19 @@ describe('webex-core', () => {
|
|
|
26
27
|
const allScope = webex.credentials.config.scope;
|
|
27
28
|
const apiScope = filterScope('spark:kms', allScope);
|
|
28
29
|
|
|
29
|
-
return webex.credentials.supertoken
|
|
30
|
+
return webex.credentials.supertoken
|
|
31
|
+
.downscope('spark:kms')
|
|
30
32
|
.then((downscopedToken) => downscopedToken.validate())
|
|
31
33
|
.then((details) => assert.deepEqual(details.scope, ['spark:kms']))
|
|
32
34
|
.then(() => webex.credentials.supertoken.downscope(apiScope))
|
|
33
35
|
.then((downscopedToken) => downscopedToken.validate())
|
|
34
36
|
.then((details) => assert.sameMembers(details.scope, apiScope.split(' ')))
|
|
35
|
-
.then(() =>
|
|
37
|
+
.then(() =>
|
|
38
|
+
assert.isRejected(
|
|
39
|
+
webex.credentials.supertoken.downscope(allScope),
|
|
40
|
+
/token: scope reduction requires a reduced scope/
|
|
41
|
+
)
|
|
42
|
+
);
|
|
36
43
|
});
|
|
37
44
|
});
|
|
38
45
|
|
|
@@ -40,11 +47,10 @@ describe('webex-core', () => {
|
|
|
40
47
|
nodeOnly(it)('refreshes the token, returning a new Token instance', () => {
|
|
41
48
|
webex = new WebexCore({credentials: user.token});
|
|
42
49
|
|
|
43
|
-
return webex.credentials.supertoken.refresh()
|
|
44
|
-
.
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
});
|
|
50
|
+
return webex.credentials.supertoken.refresh().then((token2) => {
|
|
51
|
+
assert.notEqual(token2.access_token, webex.credentials.supertoken.access_token);
|
|
52
|
+
assert.equal(token2.refresh_token, webex.credentials.supertoken.refresh_token);
|
|
53
|
+
});
|
|
48
54
|
});
|
|
49
55
|
|
|
50
56
|
browserOnly(it)('refreshes the token, returning a new Token instance', () => {
|
|
@@ -52,32 +58,30 @@ describe('webex-core', () => {
|
|
|
52
58
|
credentials: user.token,
|
|
53
59
|
config: {
|
|
54
60
|
credentials: {
|
|
55
|
-
refreshCallback
|
|
56
|
-
}
|
|
57
|
-
}
|
|
61
|
+
refreshCallback,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
58
64
|
});
|
|
59
65
|
|
|
60
|
-
return webex.credentials.supertoken.refresh()
|
|
61
|
-
.
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
});
|
|
66
|
+
return webex.credentials.supertoken.refresh().then((token2) => {
|
|
67
|
+
assert.notEqual(token2.access_token, webex.credentials.supertoken.access_token);
|
|
68
|
+
assert.equal(token2.refresh_token, webex.credentials.supertoken.refresh_token);
|
|
69
|
+
});
|
|
65
70
|
});
|
|
66
71
|
});
|
|
67
72
|
|
|
68
73
|
describe('#validate()', () => {
|
|
69
|
-
it(
|
|
74
|
+
it("shows the token's scopes", () => {
|
|
70
75
|
webex = new WebexCore({credentials: user.token});
|
|
71
76
|
|
|
72
|
-
return webex.credentials.supertoken.validate()
|
|
73
|
-
.
|
|
74
|
-
|
|
75
|
-
const localScope = webex.credentials.config.scope.split(' ').sort();
|
|
77
|
+
return webex.credentials.supertoken.validate().then((details) => {
|
|
78
|
+
const detailScope = details.scope.sort();
|
|
79
|
+
const localScope = webex.credentials.config.scope.split(' ').sort();
|
|
76
80
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
+
assert.sameMembers(detailScope, localScope);
|
|
82
|
+
assert.lengthOf(detailScope, localScope.length);
|
|
83
|
+
assert.equal(details.clientId, webex.credentials.config.client_id);
|
|
84
|
+
});
|
|
81
85
|
});
|
|
82
86
|
});
|
|
83
87
|
|
|
@@ -86,12 +90,11 @@ describe('webex-core', () => {
|
|
|
86
90
|
it('revokes the token', () => {
|
|
87
91
|
webex = new WebexCore({credentials: user.token});
|
|
88
92
|
|
|
89
|
-
return webex.credentials.supertoken.revoke()
|
|
90
|
-
.
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
});
|
|
93
|
+
return webex.credentials.supertoken.revoke().then(() => {
|
|
94
|
+
assert.isUndefined(webex.credentials.supertoken.access_token);
|
|
95
|
+
assert.isDefined(webex.credentials.supertoken.refresh_token);
|
|
96
|
+
assert.isUndefined(webex.credentials.supertoken.expires_in);
|
|
97
|
+
});
|
|
95
98
|
});
|
|
96
99
|
});
|
|
97
100
|
});
|