@wazo/sdk 0.39.5 → 0.39.7

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 (44) hide show
  1. package/dist/wazo-sdk.js +3 -3
  2. package/esm/__tests__/api-client.test.js +4 -6
  3. package/esm/api/dird.js +2 -2
  4. package/esm/domain/Contact.js +0 -20
  5. package/esm/domain/Session.js +8 -4
  6. package/esm/domain/__tests__/Session.test.js +1 -0
  7. package/esm/types/api/dird.d.ts +1 -1
  8. package/esm/types/api/dird.d.ts.map +1 -1
  9. package/esm/types/domain/Contact.d.ts +0 -14
  10. package/esm/types/domain/Contact.d.ts.map +1 -1
  11. package/esm/types/domain/Session.d.ts +4 -2
  12. package/esm/types/domain/Session.d.ts.map +1 -1
  13. package/esm/types/utils/api-requester.d.ts.map +1 -1
  14. package/esm/types/web-rtc-client.d.ts +2 -2
  15. package/esm/types/web-rtc-client.d.ts.map +1 -1
  16. package/esm/utils/__tests__/api-requester.test.js +3 -5
  17. package/esm/utils/api-requester.js +3 -4
  18. package/esm/web-rtc-client.js +13 -9
  19. package/lib/__tests__/api-client.test.js +4 -6
  20. package/lib/api/dird.js +2 -2
  21. package/lib/domain/Contact.js +0 -20
  22. package/lib/domain/Session.js +7 -3
  23. package/lib/domain/__tests__/Session.test.js +1 -0
  24. package/lib/types/api/dird.d.ts +1 -1
  25. package/lib/types/api/dird.d.ts.map +1 -1
  26. package/lib/types/domain/Contact.d.ts +0 -14
  27. package/lib/types/domain/Contact.d.ts.map +1 -1
  28. package/lib/types/domain/Session.d.ts +4 -2
  29. package/lib/types/domain/Session.d.ts.map +1 -1
  30. package/lib/types/utils/api-requester.d.ts.map +1 -1
  31. package/lib/types/web-rtc-client.d.ts +2 -2
  32. package/lib/types/web-rtc-client.d.ts.map +1 -1
  33. package/lib/utils/__tests__/api-requester.test.js +3 -5
  34. package/lib/utils/api-requester.js +1 -1
  35. package/lib/web-rtc-client.js +13 -9
  36. package/package.json +1 -1
  37. package/src/__tests__/api-client.test.ts +4 -7
  38. package/src/api/dird.ts +10 -3
  39. package/src/domain/Contact.ts +1 -34
  40. package/src/domain/Session.ts +11 -4
  41. package/src/domain/__tests__/Session.test.ts +1 -0
  42. package/src/utils/__tests__/api-requester.test.ts +3 -6
  43. package/src/utils/api-requester.ts +3 -4
  44. package/src/web-rtc-client.ts +13 -9
@@ -1,5 +1,3 @@
1
- import { AbortController } from 'node-abort-controller';
2
-
3
1
  import ApiRequester from '../api-requester';
4
2
 
5
3
  const server = 'localhost';
@@ -16,7 +14,6 @@ const headers = {
16
14
  'Content-Type': 'application/json',
17
15
  'X-Auth-Token': token,
18
16
  };
19
- const controller = new AbortController();
20
17
 
21
18
  describe('Generating query string', () => {
22
19
  it('should generate a simple query string from an object', () => {
@@ -103,7 +100,7 @@ describe('Calling fetch', () => {
103
100
  expect(global.fetch).toBeCalledWith(url, {
104
101
  method: 'get',
105
102
  body: null,
106
- signal: controller.signal,
103
+ signal: expect.any(Object),
107
104
  headers: {},
108
105
  agent: null,
109
106
  });
@@ -148,14 +145,14 @@ describe('With a refresh token', () => {
148
145
  expect(global.fetch).toHaveBeenNthCalledWith(1, url, {
149
146
  method: 'get',
150
147
  body: null,
151
- signal: controller.signal,
148
+ signal: expect.any(Object),
152
149
  headers,
153
150
  agent: null,
154
151
  });
155
152
  expect(global.fetch).toHaveBeenNthCalledWith(2, url, {
156
153
  method: 'get',
157
154
  body: null,
158
- signal: controller.signal,
155
+ signal: expect.any(Object),
159
156
  headers: updatedHeaders,
160
157
  agent: null,
161
158
  });
@@ -5,7 +5,7 @@
5
5
 
6
6
  /* eslint-disable import/no-dynamic-require */
7
7
  import { Base64 } from 'js-base64';
8
- import { AbortController } from 'node-abort-controller';
8
+ import { AbortController as NodeAbortController } from 'node-abort-controller';
9
9
 
10
10
  import BadResponse from '../domain/BadResponse';
11
11
  import ServerError from '../domain/ServerError';
@@ -171,9 +171,8 @@ export default class ApiRequester {
171
171
  const isHead = method === 'head';
172
172
  const hasEmptyResponse = method === 'delete' || isHead;
173
173
  const newParse = hasEmptyResponse ? ApiRequester.successResponseParser : parse;
174
- const fetchOptions = { ...(this.fetchOptions || {}),
175
- };
176
- const controller = new AbortController();
174
+ const fetchOptions = { ...(this.fetchOptions || {}) };
175
+ const controller = typeof AbortController !== 'undefined' ? new AbortController() : new NodeAbortController();
177
176
  const extraHeaders = fetchOptions.headers || {};
178
177
  delete fetchOptions.headers;
179
178
  const options = {
@@ -1493,14 +1493,14 @@ export default class WebRTCClient extends Emitter {
1493
1493
  wasMuted,
1494
1494
  shouldDoScreenSharing,
1495
1495
  });
1496
- this.updateRemoteStream(this.getSipSessionId(sipSession));
1496
+ this.updateRemoteStream(this.getSipSessionId(sipSession), false);
1497
1497
 
1498
1498
  if (wasMuted) {
1499
1499
  this.mute(sipSession);
1500
1500
  }
1501
1501
 
1502
1502
  // @ts-ignore
1503
- this._onAccepted(sipSession, response.session, false);
1503
+ this._onAccepted(sipSession, response.session, false, false);
1504
1504
 
1505
1505
  if (shouldDoScreenSharing) {
1506
1506
  this.eventEmitter.emit(ON_SCREEN_SHARING_REINVITE, sipSession, response, desktop);
@@ -1775,7 +1775,7 @@ export default class WebRTCClient extends Emitter {
1775
1775
  this._setupMedias(sipSession, newStream);
1776
1776
  }
1777
1777
 
1778
- updateRemoteStream(sessionId: string): void {
1778
+ updateRemoteStream(sessionId: string, allTracks = true): void {
1779
1779
  const remoteStream = this.getRemoteStream(sessionId);
1780
1780
  const pc = this.getPeerConnection(sessionId);
1781
1781
  logger.info('Updating remote stream', {
@@ -1788,13 +1788,17 @@ export default class WebRTCClient extends Emitter {
1788
1788
  return;
1789
1789
  }
1790
1790
 
1791
- remoteStream.getVideoTracks().forEach(track => {
1792
- remoteStream.removeTrack(track);
1791
+ remoteStream.getTracks().forEach(track => {
1792
+ if (allTracks || track.kind === 'video') {
1793
+ remoteStream.removeTrack(track);
1794
+ }
1793
1795
  });
1794
1796
 
1795
1797
  if (pc.getReceivers) {
1796
1798
  pc.getReceivers().forEach((receiver: any) => {
1797
- remoteStream.addTrack(receiver.track);
1799
+ if (allTracks || receiver.track.kind === 'video') {
1800
+ remoteStream.addTrack(receiver.track);
1801
+ }
1798
1802
  });
1799
1803
  }
1800
1804
  }
@@ -2164,7 +2168,7 @@ export default class WebRTCClient extends Emitter {
2164
2168
  session.outgoingInviteRequest.message.body.body = request.body;
2165
2169
  }
2166
2170
 
2167
- this.updateRemoteStream(sipSessionId);
2171
+ this.updateRemoteStream(sipSessionId, false);
2168
2172
 
2169
2173
  this._setupMedias(session);
2170
2174
 
@@ -2183,7 +2187,7 @@ export default class WebRTCClient extends Emitter {
2183
2187
  this.eventEmitter.emit(ON_EARLY_MEDIA, session);
2184
2188
  }
2185
2189
 
2186
- _onAccepted(session: Inviter | Invitation, sessionDialog?: SessionDialog, withEvent = true): void {
2190
+ _onAccepted(session: Inviter | Invitation, sessionDialog?: SessionDialog, withEvent = true, initAllTracks = true): void {
2187
2191
  logger.info('on call accepted', {
2188
2192
  id: session.id,
2189
2193
  clientId: this.clientId,
@@ -2194,7 +2198,7 @@ export default class WebRTCClient extends Emitter {
2194
2198
 
2195
2199
  this._setupMedias(session);
2196
2200
 
2197
- this.updateRemoteStream(this.getSipSessionId(session));
2201
+ this.updateRemoteStream(this.getSipSessionId(session), initAllTracks);
2198
2202
  // @ts-ignore
2199
2203
  const pc = session.sessionDescriptionHandler?.peerConnection;
2200
2204