@wazo/sdk 0.41.1 → 0.42.0-rc.0

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/dist/wazo-sdk.js +42 -41913
  2. package/esm/__tests__/api-client.test.js +15 -5
  3. package/esm/api/confd.js +2 -0
  4. package/esm/domain/CallerID.js +24 -0
  5. package/esm/domain/Features.js +7 -1
  6. package/esm/index.js +1 -0
  7. package/esm/service/__tests__/IssueReporter.test.js +5 -1
  8. package/esm/types/api/confd.d.ts +2 -0
  9. package/esm/types/api/confd.d.ts.map +1 -1
  10. package/esm/types/domain/CallerID.d.ts +22 -0
  11. package/esm/types/domain/CallerID.d.ts.map +1 -0
  12. package/esm/types/domain/Features.d.ts +2 -0
  13. package/esm/types/domain/Features.d.ts.map +1 -1
  14. package/esm/types/index.d.ts +1 -0
  15. package/esm/types/index.d.ts.map +1 -1
  16. package/esm/types/service/getApiClient.d.ts.map +1 -1
  17. package/esm/types/simple/index.d.ts +2 -0
  18. package/esm/types/simple/index.d.ts.map +1 -1
  19. package/esm/types/utils/PhoneNumberUtil.d.ts +5 -6
  20. package/esm/types/utils/PhoneNumberUtil.d.ts.map +1 -1
  21. package/esm/types/utils/array.d.ts.map +1 -1
  22. package/esm/utils/PhoneNumberUtil.js +27 -19
  23. package/esm/utils/__tests__/PhoneNumberUtil.test.js +23 -6
  24. package/esm/utils/__tests__/api-requester.test.js +19 -15
  25. package/esm/web-rtc-client.js +1 -1
  26. package/esm/websocket-client.js +1 -1
  27. package/lib/__tests__/api-client.test.js +15 -5
  28. package/lib/api/confd.js +2 -0
  29. package/lib/checker/Checker.js +2 -2
  30. package/lib/domain/CallerID.js +27 -0
  31. package/lib/domain/Features.js +6 -1
  32. package/lib/domain/Phone/WebRTCPhone.js +12 -12
  33. package/lib/index.js +4 -2
  34. package/lib/service/CallApi.js +4 -4
  35. package/lib/service/__tests__/IssueReporter.test.js +5 -1
  36. package/lib/simple/Auth.js +5 -5
  37. package/lib/simple/Phone.js +9 -9
  38. package/lib/simple/room/Participant.js +2 -2
  39. package/lib/simple/room/Room.js +8 -8
  40. package/lib/simple/room/SipRoom.js +2 -2
  41. package/lib/simple/utils.js +1 -1
  42. package/lib/types/api/confd.d.ts +2 -0
  43. package/lib/types/api/confd.d.ts.map +1 -1
  44. package/lib/types/domain/CallerID.d.ts +22 -0
  45. package/lib/types/domain/CallerID.d.ts.map +1 -0
  46. package/lib/types/domain/Features.d.ts +2 -0
  47. package/lib/types/domain/Features.d.ts.map +1 -1
  48. package/lib/types/index.d.ts +1 -0
  49. package/lib/types/index.d.ts.map +1 -1
  50. package/lib/types/service/getApiClient.d.ts.map +1 -1
  51. package/lib/types/simple/index.d.ts +2 -0
  52. package/lib/types/simple/index.d.ts.map +1 -1
  53. package/lib/types/utils/PhoneNumberUtil.d.ts +5 -6
  54. package/lib/types/utils/PhoneNumberUtil.d.ts.map +1 -1
  55. package/lib/types/utils/array.d.ts.map +1 -1
  56. package/lib/utils/PhoneNumberUtil.js +28 -25
  57. package/lib/utils/__tests__/PhoneNumberUtil.test.js +22 -5
  58. package/lib/utils/__tests__/api-requester.test.js +19 -15
  59. package/lib/utils/api-requester.js +2 -2
  60. package/lib/web-rtc-client.js +23 -27
  61. package/lib/websocket-client.js +1 -1
  62. package/package.json +23 -21
  63. package/src/__tests__/api-client.test.ts +15 -5
  64. package/src/api/confd.ts +3 -0
  65. package/src/domain/CallerID.ts +49 -0
  66. package/src/domain/Features.ts +9 -1
  67. package/src/index.ts +1 -0
  68. package/src/service/__tests__/IssueReporter.test.ts +5 -1
  69. package/src/utils/PhoneNumberUtil.ts +31 -24
  70. package/src/utils/__tests__/PhoneNumberUtil.test.ts +31 -6
  71. package/src/utils/__tests__/api-requester.test.ts +20 -16
  72. package/src/web-rtc-client.ts +1 -1
  73. package/src/websocket-client.ts +1 -1
@@ -1,4 +1,4 @@
1
- import { getDisplayableNumber, getCallableNumber } from '../PhoneNumberUtil';
1
+ import { getDisplayableNumber, getCallableNumber, guessParsePhoneNumber } from '../PhoneNumberUtil';
2
2
 
3
3
  describe('Formatting phone numbers', () => {
4
4
  it('should not format all phone numbers', () => {
@@ -8,30 +8,34 @@ describe('Formatting phone numbers', () => {
8
8
  expect(getDisplayableNumber('#23445433', 'DE')).toBe('#23445433');
9
9
  expect(getDisplayableNumber('0080510', 'FR')).toBe('0080510');
10
10
  });
11
+
11
12
  it('should format real phone numbers', () => {
12
13
  expect(getDisplayableNumber('+33675456545', 'FR')).toBe('06 75 45 65 45');
13
14
  expect(getDisplayableNumber('0675456545', 'FR')).toBe('06 75 45 65 45');
14
15
  expect(getDisplayableNumber('+33675456545', 'US')).toBe('+33 6 75 45 65 45');
15
- expect(getDisplayableNumber('0675456545', 'US')).toBe('+1 0675456545');
16
+ expect(getDisplayableNumber('0675456545', 'US')).toBe('+33 6 75 45 65 45');
16
17
  expect(getDisplayableNumber('4188884356', 'US')).toBe('(418) 888-4356');
17
18
  });
19
+
18
20
  it('should format real phone numbers when typing', () => {
19
21
  expect(getDisplayableNumber('+3367545', 'FR', true)).toBe('+33 6 75 45');
20
22
  expect(getDisplayableNumber('067545', 'FR', true)).toBe('06 75 45');
21
23
  expect(getDisplayableNumber('+3367545', 'US', true)).toBe('+33 6 75 45');
22
24
  expect(getDisplayableNumber('067545', 'US', true)).toBe('067545');
23
- expect(getDisplayableNumber('418808', 'US', true)).toBe('418-808');
25
+ expect(getDisplayableNumber('418808', 'US', true)).toBe('(418) 808');
24
26
  });
27
+
25
28
  it('should use the international number if the country number is different from the given country', () => {
26
- expect(getDisplayableNumber('00201005803648', 'FR')).toBe('+20 100 580 3648');
27
- expect(getDisplayableNumber('+14188004554', 'FR')).toBe('+1 418-800-4554');
28
- expect(getDisplayableNumber('00201005803648', 'EG')).toBe('0100 580 3648');
29
+ expect(getDisplayableNumber('00201005803648', 'FR')).toBe('+20 10 05803648');
30
+ expect(getDisplayableNumber('+14188004554', 'FR')).toBe('+1 418 800 4554');
31
+ expect(getDisplayableNumber('00201005803648', 'EG')).toBe('010 05803648');
29
32
  expect(getDisplayableNumber('0634543450', 'FR')).toBe('06 34 54 34 50');
30
33
  expect(getDisplayableNumber('4188034302', 'US')).toBe('(418) 803-4302');
31
34
  expect(getDisplayableNumber('8775863230', 'CA')).toBe('(877) 586-3230');
32
35
  expect(getDisplayableNumber('8775863230', 'US')).toBe('(877) 586-3230');
33
36
  });
34
37
  });
38
+
35
39
  describe('getCallableNumber', () => {
36
40
  it('works with a country', () => {
37
41
  expect(getCallableNumber('+33 6 75 45 12 34', 'FR')).toBe('0675451234');
@@ -43,6 +47,7 @@ describe('getCallableNumber', () => {
43
47
  expect(getCallableNumber('*10', 'US')).toBe('*10');
44
48
  expect(getCallableNumber('9000', 'US')).toBe('9000');
45
49
  });
50
+
46
51
  it('works without a country', () => {
47
52
  expect(getCallableNumber('06 75 45')).toBe('067545');
48
53
  expect(getCallableNumber('067-545')).toBe('067545');
@@ -52,3 +57,23 @@ describe('getCallableNumber', () => {
52
57
  expect(getCallableNumber('9000')).toBe('9000');
53
58
  });
54
59
  });
60
+
61
+ describe('guessParsePhoneNumber', () => {
62
+ it('should guess with default countries', () => {
63
+ const parsedNumber = guessParsePhoneNumber('0675456545');
64
+ expect(parsedNumber?.country).toBe('FR');
65
+ expect(parsedNumber?.isValid()).toBe(true);
66
+ });
67
+
68
+ it('should guess with specified countries', () => {
69
+ const parsedNumber = guessParsePhoneNumber('752097514', undefined, ['JP']);
70
+ expect(parsedNumber?.country).toBe('JP');
71
+ expect(parsedNumber?.isValid()).toBe(true);
72
+ });
73
+
74
+ it('should used use defaultCountry has guesser', () => {
75
+ const parsedNumber = guessParsePhoneNumber('752097514', 'JP', []);
76
+ expect(parsedNumber?.country).toBe('JP');
77
+ expect(parsedNumber?.isValid()).toBe(true);
78
+ });
79
+ });
@@ -79,12 +79,14 @@ describe('Retrieving headers', () => {
79
79
  });
80
80
  describe('Calling fetch', () => {
81
81
  it('should call fetch without body but query string in get method', async () => {
82
- global.fetch = jest.fn(() => Promise.resolve({
83
- json: () => Promise.resolve({}),
84
- headers: {
85
- get: () => '',
86
- },
87
- })) as any;
82
+ Object.defineProperty(global, 'fetch', {
83
+ value: jest.fn(() => Promise.resolve({
84
+ json: () => Promise.resolve({}),
85
+ headers: {
86
+ get: () => '',
87
+ },
88
+ }) as any),
89
+ });
88
90
 
89
91
  await new ApiRequester({
90
92
  server,
@@ -107,17 +109,19 @@ describe('Calling fetch', () => {
107
109
  describe('With a refresh token', () => {
108
110
  it('should retry the call with a new token', async () => {
109
111
  let calls = 0;
112
+ Object.defineProperty(global, 'fetch', {
113
+ value: jest.fn(() => {
114
+ calls++;
115
+ return Promise.resolve({
116
+ headers: {
117
+ get: () => 'application/json',
118
+ },
119
+ status: calls === 1 ? 401 : 200,
120
+ json: () => Promise.resolve({}),
121
+ } as any);
122
+ }),
123
+ });
110
124
 
111
- global.fetch = jest.fn(() => {
112
- calls++;
113
- return Promise.resolve({
114
- headers: {
115
- get: () => 'application/json',
116
- },
117
- status: calls === 1 ? 401 : 200,
118
- json: () => Promise.resolve({}),
119
- });
120
- }) as any;
121
125
  const requester = new ApiRequester({
122
126
  server,
123
127
  agent: null,
@@ -565,7 +565,7 @@ export default class WebRTCClient extends Emitter {
565
565
  audioOnly,
566
566
  },
567
567
  earlyMedia: true,
568
- options,
568
+ ...options,
569
569
  };
570
570
 
571
571
  if (audioOnly) {
@@ -277,7 +277,7 @@ class WebSocketClient extends Emitter {
277
277
  return;
278
278
  }
279
279
 
280
- this.socket.close();
280
+ this.socket.close(1000);
281
281
  this.initialized = false;
282
282
 
283
283
  if (force) {