@wazo/sdk 0.37.39 → 0.37.42

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 (73) hide show
  1. package/README.md +2 -1
  2. package/dist/wazo-sdk.js +2 -2
  3. package/esm/__tests__/api-client.test.js +33 -15
  4. package/esm/__tests__/web-rtc-client.test.js +39 -18
  5. package/esm/api/auth.js +4 -1
  6. package/esm/api/ctid-ng.js +2 -0
  7. package/esm/api-client.js +33 -15
  8. package/esm/checker/Checker.js +39 -18
  9. package/esm/checker/checks/aor.js +33 -15
  10. package/esm/checker/checks/api.js +33 -15
  11. package/esm/checker/checks/index.js +39 -18
  12. package/esm/checker/checks/webrtc-transport.js +39 -18
  13. package/esm/checker/checks/webrtc.js +39 -18
  14. package/esm/domain/AdHocAPIConference.js +42 -16
  15. package/esm/domain/Features.js +42 -16
  16. package/esm/domain/Phone/CTIPhone.js +42 -16
  17. package/esm/domain/Phone/WebRTCPhone.js +5 -3
  18. package/esm/index.js +77 -21
  19. package/esm/service/CallApi.js +42 -16
  20. package/esm/service/getApiClient.js +51 -17
  21. package/esm/simple/Auth.js +77 -21
  22. package/esm/simple/Configuration.js +77 -21
  23. package/esm/simple/Directory.js +42 -16
  24. package/esm/simple/Phone.js +77 -21
  25. package/esm/simple/index.js +77 -21
  26. package/esm/simple/room/LocalParticipant.js +77 -21
  27. package/esm/simple/room/Participant.js +77 -21
  28. package/esm/simple/room/RemoteParticipant.js +77 -21
  29. package/esm/simple/room/Room.js +77 -21
  30. package/esm/simple/room/SipRoom.js +77 -21
  31. package/esm/simple/room/Stream.js +77 -21
  32. package/esm/simple/room/__tests__/RemoteParticipant.test.js +77 -21
  33. package/esm/simple/utils.js +77 -21
  34. package/esm/web-rtc-client.js +39 -18
  35. package/lib/__tests__/api-client.test.js +33 -15
  36. package/lib/__tests__/web-rtc-client.test.js +39 -18
  37. package/lib/api/auth.js +4 -1
  38. package/lib/api/ctid-ng.js +2 -0
  39. package/lib/api-client.js +33 -15
  40. package/lib/checker/Checker.js +39 -18
  41. package/lib/checker/checks/aor.js +33 -15
  42. package/lib/checker/checks/api.js +33 -15
  43. package/lib/checker/checks/index.js +39 -18
  44. package/lib/checker/checks/webrtc-transport.js +39 -18
  45. package/lib/checker/checks/webrtc.js +39 -18
  46. package/lib/domain/AdHocAPIConference.js +42 -16
  47. package/lib/domain/Features.js +42 -16
  48. package/lib/domain/Phone/CTIPhone.js +42 -16
  49. package/lib/domain/Phone/WebRTCPhone.js +5 -3
  50. package/lib/index.js +77 -21
  51. package/lib/service/CallApi.js +42 -16
  52. package/lib/service/getApiClient.js +52 -16
  53. package/lib/simple/Auth.js +77 -21
  54. package/lib/simple/Configuration.js +77 -21
  55. package/lib/simple/Directory.js +42 -16
  56. package/lib/simple/Phone.js +77 -21
  57. package/lib/simple/index.js +77 -21
  58. package/lib/simple/room/LocalParticipant.js +77 -21
  59. package/lib/simple/room/Participant.js +77 -21
  60. package/lib/simple/room/RemoteParticipant.js +77 -21
  61. package/lib/simple/room/Room.js +77 -21
  62. package/lib/simple/room/SipRoom.js +77 -21
  63. package/lib/simple/room/Stream.js +77 -21
  64. package/lib/simple/room/__tests__/RemoteParticipant.test.js +77 -21
  65. package/lib/simple/utils.js +77 -21
  66. package/lib/web-rtc-client.js +39 -18
  67. package/package.json +1 -1
  68. package/src/api/auth.js +4 -1
  69. package/src/api-client.js +26 -13
  70. package/src/domain/Phone/WebRTCPhone.js +3 -3
  71. package/src/service/getApiClient.js +19 -1
  72. package/src/simple/Auth.js +21 -0
  73. package/src/web-rtc-client.js +7 -4
@@ -2265,9 +2265,12 @@ var authMethods = (client , baseUrl ) => ({
2265
2265
  expiration: expiration || DETAULT_EXPIRATION,
2266
2266
  refresh_token: refreshToken,
2267
2267
  client_id: client.clientId,
2268
- tenant_id: tenantId,
2269
2268
  };
2270
2269
 
2270
+ if (tenantId) {
2271
+ body.tenant_id = tenantId;
2272
+ }
2273
+
2271
2274
  const headers = {
2272
2275
  'Content-Type': 'application/json',
2273
2276
  ...(isMobile ? { 'Wazo-Session-Type': 'mobile' } : {}),
@@ -5415,6 +5418,7 @@ class ApiClient {
5415
5418
 
5416
5419
 
5417
5420
 
5421
+
5418
5422
 
5419
5423
 
5420
5424
 
@@ -5467,23 +5471,31 @@ class ApiClient {
5467
5471
  return null;
5468
5472
  }
5469
5473
 
5470
- const session = await this.auth.refreshToken(
5471
- this.refreshToken,
5472
- this.refreshBackend,
5473
- this.refreshExpiration,
5474
- this.isMobile,
5475
- this.refreshTenantId,
5476
- );
5474
+ try {
5475
+ const session = await this.auth.refreshToken(
5476
+ this.refreshToken,
5477
+ this.refreshBackend,
5478
+ this.refreshExpiration,
5479
+ this.isMobile,
5480
+ this.refreshTenantId,
5481
+ );
5477
5482
 
5478
- logger$a.info('token refreshed', { token: session.token });
5483
+ logger$a.info('token refreshed', { token: session.token });
5479
5484
 
5480
- if (this.onRefreshToken) {
5481
- this.onRefreshToken(session.token, session);
5482
- }
5485
+ if (this.onRefreshToken) {
5486
+ this.onRefreshToken(session.token, session);
5487
+ }
5483
5488
 
5484
- this.setToken(session.token);
5489
+ this.setToken(session.token);
5490
+
5491
+ return session.token;
5492
+ } catch (error) {
5493
+ logger$a.error('token refresh, error', error);
5485
5494
 
5486
- return session.token;
5495
+ if (this.onRefreshTokenError) {
5496
+ this.onRefreshTokenError(error);
5497
+ }
5498
+ }
5487
5499
  }
5488
5500
 
5489
5501
  setToken(token ) {
@@ -5506,6 +5518,10 @@ class ApiClient {
5506
5518
  this.onRefreshToken = onRefreshToken;
5507
5519
  }
5508
5520
 
5521
+ setOnRefreshTokenError(callback ) {
5522
+ this.onRefreshTokenError = callback;
5523
+ }
5524
+
5509
5525
  setRefreshExpiration(refreshExpiration ) {
5510
5526
  this.refreshExpiration = refreshExpiration;
5511
5527
  }
@@ -5541,7 +5557,9 @@ global.wazoClients = global.wazoClients || {};
5541
5557
  global.wazoClientId = global.wazoClientId || {};
5542
5558
  global.wazoClientToken = global.wazoClientToken || {};
5543
5559
  global.wazoRefreshToken = global.wazoRefreshToken || {};
5560
+ global.wazoRefreshTenantId = global.wazoRefreshTenantId || {};
5544
5561
  global.wazoOnRefreshToken = global.wazoOnRefreshToken || {};
5562
+ global.wazoOnRefreshTokenError = global.wazoOnRefreshTokenError || {};
5545
5563
  global.wazoRefreshExpiration = global.wazoRefreshExpiration || {};
5546
5564
  global.wazoRefreshBackend = global.wazoRefreshBackend || {};
5547
5565
  global.wazoIsMobile = global.wazoIsMobile || {};
@@ -5563,10 +5581,18 @@ const setRefreshToken = (newRefreshToken , forServer = null) =>
5563
5581
  global.wazoRefreshToken[forServer] = newRefreshToken;
5564
5582
  };
5565
5583
 
5584
+ const setRefreshTenantId = (refreshTenantId , forServer = null) => {
5585
+ global.wazoRefreshTenantId[forServer] = refreshTenantId;
5586
+ };
5587
+
5566
5588
  const setOnRefreshToken = (onRefreshToken , forServer = null) => {
5567
5589
  global.wazoOnRefreshToken[forServer] = onRefreshToken;
5568
5590
  };
5569
5591
 
5592
+ const setOnRefreshTokenError = (callback , forServer = null) => {
5593
+ global.wazoOnRefreshTokenError[forServer] = callback;
5594
+ };
5595
+
5570
5596
  const setRefreshExpiration = (refreshExpiration , forServer = null) => {
5571
5597
  global.wazoRefreshExpiration[forServer] = refreshExpiration;
5572
5598
  };
@@ -5585,12 +5611,20 @@ const fillClient = (apiClient ) => {
5585
5611
 
5586
5612
  apiClient.setRefreshToken(global.wazoRefreshToken[server] || global.wazoRefreshToken[null] || apiClient.refreshToken);
5587
5613
 
5614
+ apiClient.setRefreshTenantId(
5615
+ global.wazoRefreshTenantId[server] || global.wazoRefreshTenantId[null] || apiClient.refreshTenantId,
5616
+ );
5617
+
5588
5618
  apiClient.setFetchOptions(global.wazoFetchOptions[server] || global.wazoFetchOptions[null] || apiClient.fetchOptions);
5589
5619
 
5590
5620
  apiClient.setOnRefreshToken(
5591
5621
  global.wazoOnRefreshToken[server] || global.wazoOnRefreshToken[null] || apiClient.onRefreshToken,
5592
5622
  );
5593
5623
 
5624
+ apiClient.setOnRefreshTokenError(
5625
+ global.wazoOnRefreshTokenError[server] || global.wazoOnRefreshTokenError[null] || apiClient.onRefreshTokenError,
5626
+ );
5627
+
5594
5628
  apiClient.setRefreshExpiration(
5595
5629
  global.wazoRefreshExpiration[server] || global.wazoRefreshExpiration[null] || apiClient.refreshExpiration,
5596
5630
  );
@@ -5604,7 +5638,7 @@ const fillClient = (apiClient ) => {
5604
5638
  return apiClient;
5605
5639
  };
5606
5640
 
5607
- var getApiClient = (forServer ) => {
5641
+ var getApiClient = (forServer = null) => {
5608
5642
  const server = forServer || global.wazoCurrentServer || '';
5609
5643
  if (server in global.wazoClients) {
5610
5644
  return fillClient(global.wazoClients[server]);
@@ -8453,11 +8487,14 @@ class WebRTCClient extends Emitter {
8453
8487
  }
8454
8488
 
8455
8489
  async _disconnectTransport(force = false) {
8456
- if (force) {
8490
+ if (force && this.userAgent && this.userAgent.transport) {
8457
8491
  // Bypass sip.js state machine that prevent to close WS with the state `Connecting`
8458
8492
  this.userAgent.transport.disconnectResolve = () => {};
8459
- // eslint-disable-next-line
8460
- this.userAgent.transport._ws.close(1000);
8493
+
8494
+ if (this.userAgent.transport._ws) {
8495
+ this.userAgent.transport._ws.close(1000);
8496
+ }
8497
+
8461
8498
  return;
8462
8499
  }
8463
8500
 
@@ -9109,7 +9146,7 @@ class WebRTCPhone extends Emitter {
9109
9146
  // When stopping screenshare and we had video before that, we have to re-upgrade
9110
9147
  // When upgrading directly to screenshare (eg: we don't have a videoLocalStream to replace)
9111
9148
  // We have to downgrade to audio.
9112
- const screenshareStopped = this.currentScreenShare.sender && this.currentScreenShare.hadVideo;
9149
+ const screenshareStopped = this.currentScreenShare.hadVideo;
9113
9150
  const constraints = { audio: false, video: screenshareStopped };
9114
9151
 
9115
9152
  // We have to remove the video sender to be able to re-upgrade to video in `sendReinvite` below
@@ -9553,7 +9590,7 @@ class WebRTCPhone extends Emitter {
9553
9590
 
9554
9591
  logger$8.info('WebRTC hold sip session', { sipId: sipSession.id, hasVideo });
9555
9592
 
9556
- // Stop screenshre if needed
9593
+ // Stop screenshare if needed
9557
9594
  if (this.currentScreenShare && this.currentScreenShare.sipSessionId === sessionId) {
9558
9595
  this.lastScreenShare = this.currentScreenShare;
9559
9596
  await this.stopScreenSharing(false, callSession);
@@ -10315,7 +10352,7 @@ class WebRTCPhone extends Emitter {
10315
10352
  endTime: fromSession ? fromSession.endTime : null,
10316
10353
  answered: state === SessionState.Established,
10317
10354
  paused: this.client.isCallHeld(sipSession),
10318
- isCaller: 'incoming' in extra ? !extra.incoming : false,
10355
+ isCaller: fromSession ? fromSession.isCaller : ('incoming' in extra ? !extra.incoming : false),
10319
10356
  cameraEnabled: fromSession ? fromSession.isCameraEnabled() : this.client.hasVideo(sessionId),
10320
10357
  number,
10321
10358
  ringing: false,
@@ -13715,6 +13752,7 @@ class Auth {
13715
13752
 
13716
13753
 
13717
13754
 
13755
+
13718
13756
 
13719
13757
 
13720
13758
 
@@ -13752,6 +13790,14 @@ class Auth {
13752
13790
  this.onRefreshTokenCallback(token, session);
13753
13791
  }
13754
13792
  });
13793
+
13794
+ setOnRefreshTokenError(error => {
13795
+ logger.error('on refresh token error', error);
13796
+
13797
+ if (this.onRefreshTokenCallbackError) {
13798
+ this.onRefreshTokenCallbackError(error);
13799
+ }
13800
+ });
13755
13801
  }
13756
13802
 
13757
13803
  setFetchOptions(options ) {
@@ -13840,6 +13886,10 @@ class Auth {
13840
13886
  this.onRefreshTokenCallback = callback;
13841
13887
  }
13842
13888
 
13889
+ setOnRefreshTokenError(callback ) {
13890
+ this.onRefreshTokenCallbackError = callback;
13891
+ }
13892
+
13843
13893
  checkAuthorizations(session , authorizationName ) {
13844
13894
  if (!authorizationName) {
13845
13895
  return;
@@ -13872,6 +13922,12 @@ class Auth {
13872
13922
  setRefreshToken(refreshToken);
13873
13923
  }
13874
13924
 
13925
+ setRefreshTenantId(refreshTenantId ) {
13926
+ setRefreshTenantId(refreshTenantId);
13927
+
13928
+ getApiClient().setRefreshTenantId(refreshTenantId);
13929
+ }
13930
+
13875
13931
  forceRefreshToken() {
13876
13932
  getApiClient().forceRefreshToken();
13877
13933
  }
@@ -2265,9 +2265,12 @@ var authMethods = (client , baseUrl ) => ({
2265
2265
  expiration: expiration || DETAULT_EXPIRATION,
2266
2266
  refresh_token: refreshToken,
2267
2267
  client_id: client.clientId,
2268
- tenant_id: tenantId,
2269
2268
  };
2270
2269
 
2270
+ if (tenantId) {
2271
+ body.tenant_id = tenantId;
2272
+ }
2273
+
2271
2274
  const headers = {
2272
2275
  'Content-Type': 'application/json',
2273
2276
  ...(isMobile ? { 'Wazo-Session-Type': 'mobile' } : {}),
@@ -5415,6 +5418,7 @@ class ApiClient {
5415
5418
 
5416
5419
 
5417
5420
 
5421
+
5418
5422
 
5419
5423
 
5420
5424
 
@@ -5467,23 +5471,31 @@ class ApiClient {
5467
5471
  return null;
5468
5472
  }
5469
5473
 
5470
- const session = await this.auth.refreshToken(
5471
- this.refreshToken,
5472
- this.refreshBackend,
5473
- this.refreshExpiration,
5474
- this.isMobile,
5475
- this.refreshTenantId,
5476
- );
5474
+ try {
5475
+ const session = await this.auth.refreshToken(
5476
+ this.refreshToken,
5477
+ this.refreshBackend,
5478
+ this.refreshExpiration,
5479
+ this.isMobile,
5480
+ this.refreshTenantId,
5481
+ );
5477
5482
 
5478
- logger$a.info('token refreshed', { token: session.token });
5483
+ logger$a.info('token refreshed', { token: session.token });
5479
5484
 
5480
- if (this.onRefreshToken) {
5481
- this.onRefreshToken(session.token, session);
5482
- }
5485
+ if (this.onRefreshToken) {
5486
+ this.onRefreshToken(session.token, session);
5487
+ }
5483
5488
 
5484
- this.setToken(session.token);
5489
+ this.setToken(session.token);
5490
+
5491
+ return session.token;
5492
+ } catch (error) {
5493
+ logger$a.error('token refresh, error', error);
5485
5494
 
5486
- return session.token;
5495
+ if (this.onRefreshTokenError) {
5496
+ this.onRefreshTokenError(error);
5497
+ }
5498
+ }
5487
5499
  }
5488
5500
 
5489
5501
  setToken(token ) {
@@ -5506,6 +5518,10 @@ class ApiClient {
5506
5518
  this.onRefreshToken = onRefreshToken;
5507
5519
  }
5508
5520
 
5521
+ setOnRefreshTokenError(callback ) {
5522
+ this.onRefreshTokenError = callback;
5523
+ }
5524
+
5509
5525
  setRefreshExpiration(refreshExpiration ) {
5510
5526
  this.refreshExpiration = refreshExpiration;
5511
5527
  }
@@ -5541,7 +5557,9 @@ global.wazoClients = global.wazoClients || {};
5541
5557
  global.wazoClientId = global.wazoClientId || {};
5542
5558
  global.wazoClientToken = global.wazoClientToken || {};
5543
5559
  global.wazoRefreshToken = global.wazoRefreshToken || {};
5560
+ global.wazoRefreshTenantId = global.wazoRefreshTenantId || {};
5544
5561
  global.wazoOnRefreshToken = global.wazoOnRefreshToken || {};
5562
+ global.wazoOnRefreshTokenError = global.wazoOnRefreshTokenError || {};
5545
5563
  global.wazoRefreshExpiration = global.wazoRefreshExpiration || {};
5546
5564
  global.wazoRefreshBackend = global.wazoRefreshBackend || {};
5547
5565
  global.wazoIsMobile = global.wazoIsMobile || {};
@@ -5563,10 +5581,18 @@ const setRefreshToken = (newRefreshToken , forServer = null) =>
5563
5581
  global.wazoRefreshToken[forServer] = newRefreshToken;
5564
5582
  };
5565
5583
 
5584
+ const setRefreshTenantId = (refreshTenantId , forServer = null) => {
5585
+ global.wazoRefreshTenantId[forServer] = refreshTenantId;
5586
+ };
5587
+
5566
5588
  const setOnRefreshToken = (onRefreshToken , forServer = null) => {
5567
5589
  global.wazoOnRefreshToken[forServer] = onRefreshToken;
5568
5590
  };
5569
5591
 
5592
+ const setOnRefreshTokenError = (callback , forServer = null) => {
5593
+ global.wazoOnRefreshTokenError[forServer] = callback;
5594
+ };
5595
+
5570
5596
  const setRefreshExpiration = (refreshExpiration , forServer = null) => {
5571
5597
  global.wazoRefreshExpiration[forServer] = refreshExpiration;
5572
5598
  };
@@ -5585,12 +5611,20 @@ const fillClient = (apiClient ) => {
5585
5611
 
5586
5612
  apiClient.setRefreshToken(global.wazoRefreshToken[server] || global.wazoRefreshToken[null] || apiClient.refreshToken);
5587
5613
 
5614
+ apiClient.setRefreshTenantId(
5615
+ global.wazoRefreshTenantId[server] || global.wazoRefreshTenantId[null] || apiClient.refreshTenantId,
5616
+ );
5617
+
5588
5618
  apiClient.setFetchOptions(global.wazoFetchOptions[server] || global.wazoFetchOptions[null] || apiClient.fetchOptions);
5589
5619
 
5590
5620
  apiClient.setOnRefreshToken(
5591
5621
  global.wazoOnRefreshToken[server] || global.wazoOnRefreshToken[null] || apiClient.onRefreshToken,
5592
5622
  );
5593
5623
 
5624
+ apiClient.setOnRefreshTokenError(
5625
+ global.wazoOnRefreshTokenError[server] || global.wazoOnRefreshTokenError[null] || apiClient.onRefreshTokenError,
5626
+ );
5627
+
5594
5628
  apiClient.setRefreshExpiration(
5595
5629
  global.wazoRefreshExpiration[server] || global.wazoRefreshExpiration[null] || apiClient.refreshExpiration,
5596
5630
  );
@@ -5604,7 +5638,7 @@ const fillClient = (apiClient ) => {
5604
5638
  return apiClient;
5605
5639
  };
5606
5640
 
5607
- var getApiClient = (forServer ) => {
5641
+ var getApiClient = (forServer = null) => {
5608
5642
  const server = forServer || global.wazoCurrentServer || '';
5609
5643
  if (server in global.wazoClients) {
5610
5644
  return fillClient(global.wazoClients[server]);
@@ -8453,11 +8487,14 @@ class WebRTCClient extends Emitter {
8453
8487
  }
8454
8488
 
8455
8489
  async _disconnectTransport(force = false) {
8456
- if (force) {
8490
+ if (force && this.userAgent && this.userAgent.transport) {
8457
8491
  // Bypass sip.js state machine that prevent to close WS with the state `Connecting`
8458
8492
  this.userAgent.transport.disconnectResolve = () => {};
8459
- // eslint-disable-next-line
8460
- this.userAgent.transport._ws.close(1000);
8493
+
8494
+ if (this.userAgent.transport._ws) {
8495
+ this.userAgent.transport._ws.close(1000);
8496
+ }
8497
+
8461
8498
  return;
8462
8499
  }
8463
8500
 
@@ -9109,7 +9146,7 @@ class WebRTCPhone extends Emitter {
9109
9146
  // When stopping screenshare and we had video before that, we have to re-upgrade
9110
9147
  // When upgrading directly to screenshare (eg: we don't have a videoLocalStream to replace)
9111
9148
  // We have to downgrade to audio.
9112
- const screenshareStopped = this.currentScreenShare.sender && this.currentScreenShare.hadVideo;
9149
+ const screenshareStopped = this.currentScreenShare.hadVideo;
9113
9150
  const constraints = { audio: false, video: screenshareStopped };
9114
9151
 
9115
9152
  // We have to remove the video sender to be able to re-upgrade to video in `sendReinvite` below
@@ -9553,7 +9590,7 @@ class WebRTCPhone extends Emitter {
9553
9590
 
9554
9591
  logger$8.info('WebRTC hold sip session', { sipId: sipSession.id, hasVideo });
9555
9592
 
9556
- // Stop screenshre if needed
9593
+ // Stop screenshare if needed
9557
9594
  if (this.currentScreenShare && this.currentScreenShare.sipSessionId === sessionId) {
9558
9595
  this.lastScreenShare = this.currentScreenShare;
9559
9596
  await this.stopScreenSharing(false, callSession);
@@ -10315,7 +10352,7 @@ class WebRTCPhone extends Emitter {
10315
10352
  endTime: fromSession ? fromSession.endTime : null,
10316
10353
  answered: state === SessionState.Established,
10317
10354
  paused: this.client.isCallHeld(sipSession),
10318
- isCaller: 'incoming' in extra ? !extra.incoming : false,
10355
+ isCaller: fromSession ? fromSession.isCaller : ('incoming' in extra ? !extra.incoming : false),
10319
10356
  cameraEnabled: fromSession ? fromSession.isCameraEnabled() : this.client.hasVideo(sessionId),
10320
10357
  number,
10321
10358
  ringing: false,
@@ -13698,6 +13735,7 @@ class Auth {
13698
13735
 
13699
13736
 
13700
13737
 
13738
+
13701
13739
 
13702
13740
 
13703
13741
 
@@ -13735,6 +13773,14 @@ class Auth {
13735
13773
  this.onRefreshTokenCallback(token, session);
13736
13774
  }
13737
13775
  });
13776
+
13777
+ setOnRefreshTokenError(error => {
13778
+ logger.error('on refresh token error', error);
13779
+
13780
+ if (this.onRefreshTokenCallbackError) {
13781
+ this.onRefreshTokenCallbackError(error);
13782
+ }
13783
+ });
13738
13784
  }
13739
13785
 
13740
13786
  setFetchOptions(options ) {
@@ -13823,6 +13869,10 @@ class Auth {
13823
13869
  this.onRefreshTokenCallback = callback;
13824
13870
  }
13825
13871
 
13872
+ setOnRefreshTokenError(callback ) {
13873
+ this.onRefreshTokenCallbackError = callback;
13874
+ }
13875
+
13826
13876
  checkAuthorizations(session , authorizationName ) {
13827
13877
  if (!authorizationName) {
13828
13878
  return;
@@ -13855,6 +13905,12 @@ class Auth {
13855
13905
  setRefreshToken(refreshToken);
13856
13906
  }
13857
13907
 
13908
+ setRefreshTenantId(refreshTenantId ) {
13909
+ setRefreshTenantId(refreshTenantId);
13910
+
13911
+ getApiClient().setRefreshTenantId(refreshTenantId);
13912
+ }
13913
+
13858
13914
  forceRefreshToken() {
13859
13915
  getApiClient().forceRefreshToken();
13860
13916
  }
@@ -2245,9 +2245,12 @@ var authMethods = (client , baseUrl ) => ({
2245
2245
  expiration: expiration || DETAULT_EXPIRATION,
2246
2246
  refresh_token: refreshToken,
2247
2247
  client_id: client.clientId,
2248
- tenant_id: tenantId,
2249
2248
  };
2250
2249
 
2250
+ if (tenantId) {
2251
+ body.tenant_id = tenantId;
2252
+ }
2253
+
2251
2254
  const headers = {
2252
2255
  'Content-Type': 'application/json',
2253
2256
  ...(isMobile ? { 'Wazo-Session-Type': 'mobile' } : {}),
@@ -4566,6 +4569,7 @@ class ApiClient {
4566
4569
 
4567
4570
 
4568
4571
 
4572
+
4569
4573
 
4570
4574
 
4571
4575
 
@@ -4618,23 +4622,31 @@ class ApiClient {
4618
4622
  return null;
4619
4623
  }
4620
4624
 
4621
- const session = await this.auth.refreshToken(
4622
- this.refreshToken,
4623
- this.refreshBackend,
4624
- this.refreshExpiration,
4625
- this.isMobile,
4626
- this.refreshTenantId,
4627
- );
4628
-
4629
- logger.info('token refreshed', { token: session.token });
4625
+ try {
4626
+ const session = await this.auth.refreshToken(
4627
+ this.refreshToken,
4628
+ this.refreshBackend,
4629
+ this.refreshExpiration,
4630
+ this.isMobile,
4631
+ this.refreshTenantId,
4632
+ );
4633
+
4634
+ logger.info('token refreshed', { token: session.token });
4635
+
4636
+ if (this.onRefreshToken) {
4637
+ this.onRefreshToken(session.token, session);
4638
+ }
4630
4639
 
4631
- if (this.onRefreshToken) {
4632
- this.onRefreshToken(session.token, session);
4633
- }
4640
+ this.setToken(session.token);
4634
4641
 
4635
- this.setToken(session.token);
4642
+ return session.token;
4643
+ } catch (error) {
4644
+ logger.error('token refresh, error', error);
4636
4645
 
4637
- return session.token;
4646
+ if (this.onRefreshTokenError) {
4647
+ this.onRefreshTokenError(error);
4648
+ }
4649
+ }
4638
4650
  }
4639
4651
 
4640
4652
  setToken(token ) {
@@ -4657,6 +4669,10 @@ class ApiClient {
4657
4669
  this.onRefreshToken = onRefreshToken;
4658
4670
  }
4659
4671
 
4672
+ setOnRefreshTokenError(callback ) {
4673
+ this.onRefreshTokenError = callback;
4674
+ }
4675
+
4660
4676
  setRefreshExpiration(refreshExpiration ) {
4661
4677
  this.refreshExpiration = refreshExpiration;
4662
4678
  }
@@ -4692,7 +4708,9 @@ global.wazoClients = global.wazoClients || {};
4692
4708
  global.wazoClientId = global.wazoClientId || {};
4693
4709
  global.wazoClientToken = global.wazoClientToken || {};
4694
4710
  global.wazoRefreshToken = global.wazoRefreshToken || {};
4711
+ global.wazoRefreshTenantId = global.wazoRefreshTenantId || {};
4695
4712
  global.wazoOnRefreshToken = global.wazoOnRefreshToken || {};
4713
+ global.wazoOnRefreshTokenError = global.wazoOnRefreshTokenError || {};
4696
4714
  global.wazoRefreshExpiration = global.wazoRefreshExpiration || {};
4697
4715
  global.wazoRefreshBackend = global.wazoRefreshBackend || {};
4698
4716
  global.wazoIsMobile = global.wazoIsMobile || {};
@@ -4708,12 +4726,20 @@ const fillClient = (apiClient ) => {
4708
4726
 
4709
4727
  apiClient.setRefreshToken(global.wazoRefreshToken[server] || global.wazoRefreshToken[null] || apiClient.refreshToken);
4710
4728
 
4729
+ apiClient.setRefreshTenantId(
4730
+ global.wazoRefreshTenantId[server] || global.wazoRefreshTenantId[null] || apiClient.refreshTenantId,
4731
+ );
4732
+
4711
4733
  apiClient.setFetchOptions(global.wazoFetchOptions[server] || global.wazoFetchOptions[null] || apiClient.fetchOptions);
4712
4734
 
4713
4735
  apiClient.setOnRefreshToken(
4714
4736
  global.wazoOnRefreshToken[server] || global.wazoOnRefreshToken[null] || apiClient.onRefreshToken,
4715
4737
  );
4716
4738
 
4739
+ apiClient.setOnRefreshTokenError(
4740
+ global.wazoOnRefreshTokenError[server] || global.wazoOnRefreshTokenError[null] || apiClient.onRefreshTokenError,
4741
+ );
4742
+
4717
4743
  apiClient.setRefreshExpiration(
4718
4744
  global.wazoRefreshExpiration[server] || global.wazoRefreshExpiration[null] || apiClient.refreshExpiration,
4719
4745
  );
@@ -4727,7 +4753,7 @@ const fillClient = (apiClient ) => {
4727
4753
  return apiClient;
4728
4754
  };
4729
4755
 
4730
- var getApiClient = (forServer ) => {
4756
+ var getApiClient = (forServer = null) => {
4731
4757
  const server = forServer || global.wazoCurrentServer || '';
4732
4758
  if (server in global.wazoClients) {
4733
4759
  return fillClient(global.wazoClients[server]);