@webex/webex-core 3.10.0-next.2 → 3.10.0-next.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.
Files changed (106) hide show
  1. package/dist/config.js.map +1 -1
  2. package/dist/credentials-config.js.map +1 -1
  3. package/dist/index.js +1 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/interceptors/auth.js +6 -8
  6. package/dist/interceptors/auth.js.map +1 -1
  7. package/dist/interceptors/default-options.js +6 -8
  8. package/dist/interceptors/default-options.js.map +1 -1
  9. package/dist/interceptors/embargo.js +6 -8
  10. package/dist/interceptors/embargo.js.map +1 -1
  11. package/dist/interceptors/network-timing.js +6 -8
  12. package/dist/interceptors/network-timing.js.map +1 -1
  13. package/dist/interceptors/payload-transformer.js +6 -8
  14. package/dist/interceptors/payload-transformer.js.map +1 -1
  15. package/dist/interceptors/proxy.js +7 -10
  16. package/dist/interceptors/proxy.js.map +1 -1
  17. package/dist/interceptors/rate-limit.js +7 -10
  18. package/dist/interceptors/rate-limit.js.map +1 -1
  19. package/dist/interceptors/redirect.js +9 -8
  20. package/dist/interceptors/redirect.js.map +1 -1
  21. package/dist/interceptors/request-event.js +6 -8
  22. package/dist/interceptors/request-event.js.map +1 -1
  23. package/dist/interceptors/request-logger.js +6 -8
  24. package/dist/interceptors/request-logger.js.map +1 -1
  25. package/dist/interceptors/request-timing.js +6 -8
  26. package/dist/interceptors/request-timing.js.map +1 -1
  27. package/dist/interceptors/response-logger.js +6 -8
  28. package/dist/interceptors/response-logger.js.map +1 -1
  29. package/dist/interceptors/user-agent.js +8 -11
  30. package/dist/interceptors/user-agent.js.map +1 -1
  31. package/dist/interceptors/webex-tracking-id.js +6 -8
  32. package/dist/interceptors/webex-tracking-id.js.map +1 -1
  33. package/dist/interceptors/webex-user-agent.js +7 -10
  34. package/dist/interceptors/webex-user-agent.js.map +1 -1
  35. package/dist/lib/batcher.js +1 -1
  36. package/dist/lib/batcher.js.map +1 -1
  37. package/dist/lib/constants.js.map +1 -1
  38. package/dist/lib/credentials/credentials.js +4 -6
  39. package/dist/lib/credentials/credentials.js.map +1 -1
  40. package/dist/lib/credentials/grant-errors.js +18 -26
  41. package/dist/lib/credentials/grant-errors.js.map +1 -1
  42. package/dist/lib/credentials/index.js.map +1 -1
  43. package/dist/lib/credentials/scope.js.map +1 -1
  44. package/dist/lib/credentials/token-collection.js.map +1 -1
  45. package/dist/lib/credentials/token.js +5 -5
  46. package/dist/lib/credentials/token.js.map +1 -1
  47. package/dist/lib/interceptors/hostmap.js +6 -8
  48. package/dist/lib/interceptors/hostmap.js.map +1 -1
  49. package/dist/lib/interceptors/server-error.js +6 -8
  50. package/dist/lib/interceptors/server-error.js.map +1 -1
  51. package/dist/lib/interceptors/service.js +6 -8
  52. package/dist/lib/interceptors/service.js.map +1 -1
  53. package/dist/lib/metrics.js.map +1 -1
  54. package/dist/lib/page.js +5 -6
  55. package/dist/lib/page.js.map +1 -1
  56. package/dist/lib/services/index.js.map +1 -1
  57. package/dist/lib/services/service-catalog.js +3 -3
  58. package/dist/lib/services/service-catalog.js.map +1 -1
  59. package/dist/lib/services/service-fed-ramp.js.map +1 -1
  60. package/dist/lib/services/service-host.js +1 -2
  61. package/dist/lib/services/service-host.js.map +1 -1
  62. package/dist/lib/services/service-registry.js +1 -2
  63. package/dist/lib/services/service-registry.js.map +1 -1
  64. package/dist/lib/services/service-state.js +1 -2
  65. package/dist/lib/services/service-state.js.map +1 -1
  66. package/dist/lib/services/service-url.js.map +1 -1
  67. package/dist/lib/services/services.js +18 -19
  68. package/dist/lib/services/services.js.map +1 -1
  69. package/dist/lib/services-v2/index.js.map +1 -1
  70. package/dist/lib/services-v2/metrics.js.map +1 -1
  71. package/dist/lib/services-v2/service-catalog.js +7 -7
  72. package/dist/lib/services-v2/service-catalog.js.map +1 -1
  73. package/dist/lib/services-v2/service-detail.js.map +1 -1
  74. package/dist/lib/services-v2/service-fed-ramp.js.map +1 -1
  75. package/dist/lib/services-v2/services-v2.js +40 -41
  76. package/dist/lib/services-v2/services-v2.js.map +1 -1
  77. package/dist/lib/services-v2/types.js.map +1 -1
  78. package/dist/lib/stateless-webex-plugin.js +3 -4
  79. package/dist/lib/stateless-webex-plugin.js.map +1 -1
  80. package/dist/lib/storage/decorators.js.map +1 -1
  81. package/dist/lib/storage/errors.js +7 -9
  82. package/dist/lib/storage/errors.js.map +1 -1
  83. package/dist/lib/storage/index.js.map +1 -1
  84. package/dist/lib/storage/make-webex-plugin-store.js +14 -5
  85. package/dist/lib/storage/make-webex-plugin-store.js.map +1 -1
  86. package/dist/lib/storage/make-webex-store.js +13 -5
  87. package/dist/lib/storage/make-webex-store.js.map +1 -1
  88. package/dist/lib/storage/memory-store-adapter.js.map +1 -1
  89. package/dist/lib/webex-core-plugin-mixin.js.map +1 -1
  90. package/dist/lib/webex-http-error.js +8 -11
  91. package/dist/lib/webex-http-error.js.map +1 -1
  92. package/dist/lib/webex-internal-core-plugin-mixin.js.map +1 -1
  93. package/dist/lib/webex-plugin.js.map +1 -1
  94. package/dist/plugins/logger.js +1 -1
  95. package/dist/plugins/logger.js.map +1 -1
  96. package/dist/webex-core.js +11 -11
  97. package/dist/webex-core.js.map +1 -1
  98. package/dist/webex-internal-core.js.map +1 -1
  99. package/package.json +3 -3
  100. package/src/interceptors/redirect.js +4 -0
  101. package/src/lib/services-v2/service-catalog.ts +4 -4
  102. package/src/lib/services-v2/services-v2.ts +3 -3
  103. package/test/fixtures/host-catalog-v2.ts +1 -1
  104. package/test/integration/spec/services-v2/service-catalog.js +2 -2
  105. package/test/unit/spec/interceptors/redirect.js +98 -0
  106. package/test/unit/spec/services-v2/services-v2.ts +14 -0
@@ -168,6 +168,104 @@ describe('webex-core', () => {
168
168
  uri: 'http://newlocus.example.com',
169
169
  });
170
170
  });
171
+
172
+ it('removes authorization header when redirecting preJoin request to webex-appapi-service', () => {
173
+ const response = {
174
+ statusCode: 404,
175
+ headers: {},
176
+ body: {
177
+ code: 404100,
178
+ data: {
179
+ siteFullUrl: 'newlocus.example.com'
180
+ },
181
+ },
182
+ };
183
+
184
+ const options = {
185
+ $redirectCount: 0,
186
+ uri: 'https://test.webex.com/meet/v1/preJoin',
187
+ resource: 'preJoin',
188
+ service: 'webex-appapi-service',
189
+ headers: {
190
+ authorization: 'Bearer token123',
191
+ },
192
+ };
193
+
194
+ interceptor.onResponse(options, response);
195
+ sinon.assert.calledWith(webex.request, sinon.match({
196
+ $redirectCount: 1,
197
+ uri: 'https://newlocus.example.com/meet/v1/preJoin',
198
+ resource: 'preJoin',
199
+ service: 'webex-appapi-service',
200
+ headers: {
201
+ authorization: false,
202
+ },
203
+ }));
204
+ });
205
+
206
+ it('keeps authorization header for non-preJoin requests on appapi redirect', () => {
207
+ const response = {
208
+ statusCode: 404,
209
+ headers: {},
210
+ body: {
211
+ code: 404100,
212
+ data: {
213
+ siteFullUrl: 'newlocus.example.com'
214
+ },
215
+ },
216
+ };
217
+
218
+ const options = {
219
+ $redirectCount: 0,
220
+ uri: 'https://test.webex.com/meet/v1/join',
221
+ resource: 'join',
222
+ service: 'webex-appapi-service',
223
+ headers: {
224
+ authorization: 'Bearer token123',
225
+ },
226
+ };
227
+
228
+ interceptor.onResponse(options, response);
229
+ sinon.assert.calledWith(webex.request, sinon.match({
230
+ $redirectCount: 1,
231
+ uri: 'https://newlocus.example.com/meet/v1/join',
232
+ headers: {
233
+ authorization: 'Bearer token123',
234
+ },
235
+ }));
236
+ });
237
+
238
+ it('keeps authorization header for preJoin requests to non-webex-appapi-service', () => {
239
+ const response = {
240
+ statusCode: 404,
241
+ headers: {},
242
+ body: {
243
+ code: 404100,
244
+ data: {
245
+ siteFullUrl: 'newlocus.example.com'
246
+ },
247
+ },
248
+ };
249
+
250
+ const options = {
251
+ $redirectCount: 0,
252
+ uri: 'https://test.webex.com/meet/v1/preJoin',
253
+ resource: 'preJoin',
254
+ service: 'other-service',
255
+ headers: {
256
+ authorization: 'Bearer token123',
257
+ },
258
+ };
259
+
260
+ interceptor.onResponse(options, response);
261
+ sinon.assert.calledWith(webex.request, sinon.match({
262
+ $redirectCount: 1,
263
+ uri: 'https://newlocus.example.com/meet/v1/preJoin',
264
+ headers: {
265
+ authorization: 'Bearer token123',
266
+ },
267
+ }));
268
+ });
171
269
  });
172
270
  });
173
271
  });
@@ -331,6 +331,20 @@ describe('webex-core', () => {
331
331
 
332
332
  assert.deepEqual(result, [{some: 'value'}]);
333
333
  });
334
+ it('updates the catalog with empty hostmap', async () => {
335
+ const serviceGroup = 'postauth';
336
+ const hostmap = {};
337
+
338
+ services._formatReceivedHostmap = sinon.stub().returns({services : undefined});
339
+
340
+ catalog.updateServiceGroups = sinon.stub().returns(Promise.resolve([{some: 'value'}]));
341
+
342
+ const result = await services.updateCatalog(serviceGroup, hostmap);
343
+
344
+ assert.calledWith(services._formatReceivedHostmap, hostmap);
345
+
346
+ assert.calledWith(catalog.updateServiceGroups, serviceGroup, undefined);
347
+ });
334
348
  });
335
349
 
336
350
  describe('#_fetchNewServiceHostmap()', () => {