@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.
Files changed (184) hide show
  1. package/dist/config.js +1 -11
  2. package/dist/config.js.map +1 -1
  3. package/dist/credentials-config.js +44 -64
  4. package/dist/credentials-config.js.map +1 -1
  5. package/dist/index.js +0 -76
  6. package/dist/index.js.map +1 -1
  7. package/dist/interceptors/auth.js +22 -55
  8. package/dist/interceptors/auth.js.map +1 -1
  9. package/dist/interceptors/default-options.js +0 -20
  10. package/dist/interceptors/default-options.js.map +1 -1
  11. package/dist/interceptors/embargo.js +0 -21
  12. package/dist/interceptors/embargo.js.map +1 -1
  13. package/dist/interceptors/network-timing.js +2 -21
  14. package/dist/interceptors/network-timing.js.map +1 -1
  15. package/dist/interceptors/payload-transformer.js +2 -22
  16. package/dist/interceptors/payload-transformer.js.map +1 -1
  17. package/dist/interceptors/rate-limit.js +25 -57
  18. package/dist/interceptors/rate-limit.js.map +1 -1
  19. package/dist/interceptors/redirect.js +4 -33
  20. package/dist/interceptors/redirect.js.map +1 -1
  21. package/dist/interceptors/request-event.js +3 -30
  22. package/dist/interceptors/request-event.js.map +1 -1
  23. package/dist/interceptors/request-logger.js +1 -30
  24. package/dist/interceptors/request-logger.js.map +1 -1
  25. package/dist/interceptors/request-timing.js +3 -22
  26. package/dist/interceptors/request-timing.js.map +1 -1
  27. package/dist/interceptors/response-logger.js +2 -31
  28. package/dist/interceptors/response-logger.js.map +1 -1
  29. package/dist/interceptors/user-agent.js +2 -29
  30. package/dist/interceptors/user-agent.js.map +1 -1
  31. package/dist/interceptors/webex-tracking-id.js +5 -28
  32. package/dist/interceptors/webex-tracking-id.js.map +1 -1
  33. package/dist/interceptors/webex-user-agent.js +5 -38
  34. package/dist/interceptors/webex-user-agent.js.map +1 -1
  35. package/dist/lib/batcher.js +3 -51
  36. package/dist/lib/batcher.js.map +1 -1
  37. package/dist/lib/credentials/credentials.js +39 -119
  38. package/dist/lib/credentials/credentials.js.map +1 -1
  39. package/dist/lib/credentials/grant-errors.js +0 -49
  40. package/dist/lib/credentials/grant-errors.js.map +1 -1
  41. package/dist/lib/credentials/index.js +1 -13
  42. package/dist/lib/credentials/index.js.map +1 -1
  43. package/dist/lib/credentials/scope.js +1 -7
  44. package/dist/lib/credentials/scope.js.map +1 -1
  45. package/dist/lib/credentials/token-collection.js +1 -7
  46. package/dist/lib/credentials/token-collection.js.map +1 -1
  47. package/dist/lib/credentials/token.js +39 -118
  48. package/dist/lib/credentials/token.js.map +1 -1
  49. package/dist/lib/page.js +13 -26
  50. package/dist/lib/page.js.map +1 -1
  51. package/dist/lib/services/constants.js +0 -2
  52. package/dist/lib/services/constants.js.map +1 -1
  53. package/dist/lib/services/index.js +1 -28
  54. package/dist/lib/services/index.js.map +1 -1
  55. package/dist/lib/services/interceptors/server-error.js +2 -23
  56. package/dist/lib/services/interceptors/server-error.js.map +1 -1
  57. package/dist/lib/services/interceptors/service.js +12 -34
  58. package/dist/lib/services/interceptors/service.js.map +1 -1
  59. package/dist/lib/services/metrics.js +0 -2
  60. package/dist/lib/services/metrics.js.map +1 -1
  61. package/dist/lib/services/service-catalog.js +10 -90
  62. package/dist/lib/services/service-catalog.js.map +1 -1
  63. package/dist/lib/services/service-fed-ramp.js +0 -2
  64. package/dist/lib/services/service-fed-ramp.js.map +1 -1
  65. package/dist/lib/services/service-host.js +47 -62
  66. package/dist/lib/services/service-host.js.map +1 -1
  67. package/dist/lib/services/service-registry.js +78 -90
  68. package/dist/lib/services/service-registry.js.map +1 -1
  69. package/dist/lib/services/service-state.js +3 -15
  70. package/dist/lib/services/service-state.js.map +1 -1
  71. package/dist/lib/services/service-url.js +4 -25
  72. package/dist/lib/services/service-url.js.map +1 -1
  73. package/dist/lib/services/services.js +122 -238
  74. package/dist/lib/services/services.js.map +1 -1
  75. package/dist/lib/stateless-webex-plugin.js +5 -28
  76. package/dist/lib/stateless-webex-plugin.js.map +1 -1
  77. package/dist/lib/storage/decorators.js +19 -62
  78. package/dist/lib/storage/decorators.js.map +1 -1
  79. package/dist/lib/storage/errors.js +0 -23
  80. package/dist/lib/storage/errors.js.map +1 -1
  81. package/dist/lib/storage/index.js +2 -16
  82. package/dist/lib/storage/index.js.map +1 -1
  83. package/dist/lib/storage/make-webex-plugin-store.js +11 -41
  84. package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
  85. package/dist/lib/storage/make-webex-store.js +8 -30
  86. package/dist/lib/storage/make-webex-store.js.map +1 -1
  87. package/dist/lib/storage/memory-store-adapter.js +1 -19
  88. package/dist/lib/storage/memory-store-adapter.js.map +1 -1
  89. package/dist/lib/webex-core-plugin-mixin.js +9 -29
  90. package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
  91. package/dist/lib/webex-http-error.js +1 -31
  92. package/dist/lib/webex-http-error.js.map +1 -1
  93. package/dist/lib/webex-internal-core-plugin-mixin.js +9 -29
  94. package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
  95. package/dist/lib/webex-plugin.js +6 -40
  96. package/dist/lib/webex-plugin.js.map +1 -1
  97. package/dist/plugins/logger.js +3 -17
  98. package/dist/plugins/logger.js.map +1 -1
  99. package/dist/webex-core.js +79 -203
  100. package/dist/webex-core.js.map +1 -1
  101. package/dist/webex-internal-core.js +0 -10
  102. package/dist/webex-internal-core.js.map +1 -1
  103. package/package.json +14 -14
  104. package/src/config.js +9 -11
  105. package/src/credentials-config.js +110 -72
  106. package/src/index.js +4 -14
  107. package/src/interceptors/auth.js +36 -37
  108. package/src/interceptors/default-options.js +0 -1
  109. package/src/interceptors/embargo.js +1 -1
  110. package/src/interceptors/payload-transformer.js +1 -2
  111. package/src/interceptors/rate-limit.js +8 -5
  112. package/src/interceptors/redirect.js +14 -8
  113. package/src/interceptors/request-event.js +4 -8
  114. package/src/interceptors/request-logger.js +8 -5
  115. package/src/interceptors/response-logger.js +11 -8
  116. package/src/interceptors/user-agent.js +1 -2
  117. package/src/interceptors/webex-user-agent.js +3 -9
  118. package/src/lib/batcher.js +70 -69
  119. package/src/lib/credentials/credentials.js +112 -122
  120. package/src/lib/credentials/grant-errors.js +6 -7
  121. package/src/lib/credentials/index.js +1 -4
  122. package/src/lib/credentials/scope.js +1 -4
  123. package/src/lib/credentials/token-collection.js +1 -1
  124. package/src/lib/credentials/token.js +86 -80
  125. package/src/lib/page.js +10 -11
  126. package/src/lib/services/constants.js +3 -13
  127. package/src/lib/services/index.js +2 -2
  128. package/src/lib/services/interceptors/server-error.js +12 -7
  129. package/src/lib/services/interceptors/service.js +6 -5
  130. package/src/lib/services/metrics.js +1 -1
  131. package/src/lib/services/service-catalog.js +110 -100
  132. package/src/lib/services/service-fed-ramp.js +1 -2
  133. package/src/lib/services/service-host.js +10 -17
  134. package/src/lib/services/service-registry.js +69 -96
  135. package/src/lib/services/service-state.js +4 -6
  136. package/src/lib/services/service-url.js +24 -23
  137. package/src/lib/services/services.js +260 -251
  138. package/src/lib/stateless-webex-plugin.js +4 -2
  139. package/src/lib/storage/decorators.js +68 -66
  140. package/src/lib/storage/index.js +4 -6
  141. package/src/lib/storage/make-webex-plugin-store.js +34 -21
  142. package/src/lib/storage/make-webex-store.js +6 -7
  143. package/src/lib/storage/memory-store-adapter.js +3 -3
  144. package/src/lib/webex-core-plugin-mixin.js +10 -7
  145. package/src/lib/webex-http-error.js +7 -8
  146. package/src/lib/webex-internal-core-plugin-mixin.js +9 -6
  147. package/src/lib/webex-plugin.js +41 -34
  148. package/src/plugins/logger.js +8 -3
  149. package/src/webex-core.js +185 -116
  150. package/src/webex-internal-core.js +15 -9
  151. package/test/integration/spec/credentials/credentials.js +26 -30
  152. package/test/integration/spec/credentials/token.js +36 -33
  153. package/test/integration/spec/services/service-catalog.js +177 -156
  154. package/test/integration/spec/services/services.js +313 -304
  155. package/test/integration/spec/webex-core.js +98 -86
  156. package/test/unit/spec/_setup.js +26 -18
  157. package/test/unit/spec/credentials/credentials.js +189 -154
  158. package/test/unit/spec/credentials/token.js +94 -76
  159. package/test/unit/spec/interceptors/auth.js +291 -243
  160. package/test/unit/spec/interceptors/default-options.js +36 -24
  161. package/test/unit/spec/interceptors/embargo.js +32 -27
  162. package/test/unit/spec/interceptors/network-timing.js +2 -2
  163. package/test/unit/spec/interceptors/payload-transformer.js +61 -52
  164. package/test/unit/spec/interceptors/rate-limit.js +104 -75
  165. package/test/unit/spec/interceptors/redirect.js +22 -20
  166. package/test/unit/spec/interceptors/request-timing.js +18 -22
  167. package/test/unit/spec/interceptors/user-agent.js +28 -16
  168. package/test/unit/spec/interceptors/webex-tracking-id.js +14 -8
  169. package/test/unit/spec/interceptors/webex-user-agent.js +83 -37
  170. package/test/unit/spec/lib/batcher.js +36 -32
  171. package/test/unit/spec/lib/page.js +36 -32
  172. package/test/unit/spec/lib/webex-plugin.js +1 -1
  173. package/test/unit/spec/services/interceptors/server-error.js +67 -90
  174. package/test/unit/spec/services/interceptors/service.js +17 -28
  175. package/test/unit/spec/services/service-catalog.js +19 -27
  176. package/test/unit/spec/services/service-host.js +29 -26
  177. package/test/unit/spec/services/service-registry.js +128 -170
  178. package/test/unit/spec/services/service-state.js +13 -22
  179. package/test/unit/spec/services/service-url.js +24 -43
  180. package/test/unit/spec/services/services.js +85 -41
  181. package/test/unit/spec/storage/persist.js +6 -9
  182. package/test/unit/spec/storage/wait-for-value.js +22 -21
  183. package/test/unit/spec/webex-core.js +78 -57
  184. 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(() => testUsers.create({count: 1})
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
- .then(() => {
110
- assert.isDefined(user.token.access_token);
111
- assert.isDefined(webex.credentials.supertoken.access_token);
112
- assert.notEqual(webex.credentials.supertoken.access_token, user.token.access_token);
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
- .then(() => {
136
- assert.isDefined(user.token.access_token);
137
- assert.isDefined(webex.credentials.supertoken.access_token);
138
- assert.notEqual(webex.credentials.supertoken.access_token, user.token.access_token);
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(() => testUsers.create({count: 1})
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.downscope('spark:kms')
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(() => assert.isRejected(webex.credentials.supertoken.downscope(allScope), /token: scope reduction requires a reduced scope/));
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
- .then((token2) => {
45
- assert.notEqual(token2.access_token, webex.credentials.supertoken.access_token);
46
- assert.equal(token2.refresh_token, webex.credentials.supertoken.refresh_token);
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
- .then((token2) => {
62
- assert.notEqual(token2.access_token, webex.credentials.supertoken.access_token);
63
- assert.equal(token2.refresh_token, webex.credentials.supertoken.refresh_token);
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('shows the token\'s scopes', () => {
74
+ it("shows the token's scopes", () => {
70
75
  webex = new WebexCore({credentials: user.token});
71
76
 
72
- return webex.credentials.supertoken.validate()
73
- .then((details) => {
74
- const detailScope = details.scope.sort();
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
- assert.sameMembers(detailScope, localScope);
78
- assert.lengthOf(detailScope, localScope.length);
79
- assert.equal(details.clientId, webex.credentials.config.client_id);
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
- .then(() => {
91
- assert.isUndefined(webex.credentials.supertoken.access_token);
92
- assert.isDefined(webex.credentials.supertoken.refresh_token);
93
- assert.isUndefined(webex.credentials.supertoken.expires_in);
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
  });