@wazo/sdk 0.37.20 → 0.37.24

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 (147) hide show
  1. package/dist/wazo-sdk.js +6 -6
  2. package/esm/__tests__/api-client.test.js +91 -21
  3. package/esm/__tests__/web-rtc-client.test.js +214 -165
  4. package/esm/api/agentd.js +25 -2
  5. package/esm/api/amid.js +26 -3
  6. package/esm/api/application.js +25 -2
  7. package/esm/api/auth.js +25 -2
  8. package/esm/api/call-logd.js +34 -4
  9. package/esm/api/calld.js +35 -2
  10. package/esm/api/chatd.js +32 -2
  11. package/esm/api/confd.js +56 -9
  12. package/esm/api/ctid-ng.js +38 -5
  13. package/esm/api/dird.js +29 -3
  14. package/esm/api/webhookd.js +26 -3
  15. package/esm/api-client.js +91 -21
  16. package/esm/checker/Checker.js +241 -190
  17. package/esm/checker/checks/aor.js +91 -21
  18. package/esm/checker/checks/api.js +91 -21
  19. package/esm/checker/checks/index.js +231 -180
  20. package/esm/checker/checks/wazo-websocket.js +42 -17
  21. package/esm/checker/checks/webrtc-transport.js +214 -165
  22. package/esm/checker/checks/webrtc.js +214 -165
  23. package/esm/domain/AdHocAPIConference.js +91 -21
  24. package/esm/domain/Call.js +3 -0
  25. package/esm/domain/CallLog.js +8 -1
  26. package/esm/domain/ChatMessage.js +4 -0
  27. package/esm/domain/ChatRoom.js +3 -0
  28. package/esm/domain/Contact.js +4 -1
  29. package/esm/domain/Features.js +91 -21
  30. package/esm/domain/Meeting.js +28 -5
  31. package/esm/domain/Phone/CTIPhone.js +109 -35
  32. package/esm/domain/Phone/WebRTCPhone.js +159 -102
  33. package/esm/domain/Recording.js +3 -0
  34. package/esm/domain/Voicemail.js +3 -0
  35. package/esm/domain/__tests__/Call.test.js +3 -0
  36. package/esm/domain/__tests__/CallLog.test.js +8 -1
  37. package/esm/domain/__tests__/Contact.test.js +4 -1
  38. package/esm/domain/__tests__/Meeting.test.js +144 -0
  39. package/esm/domain/__tests__/Voicemail.test.js +3 -0
  40. package/esm/index.js +509 -414
  41. package/esm/lib/WazoSessionDescriptionHandler.js +26 -41
  42. package/esm/service/CallApi.js +91 -21
  43. package/esm/service/IssueReporter.js +26 -3
  44. package/esm/service/__tests__/IssueReporter.test.js +26 -3
  45. package/esm/service/getApiClient.js +91 -21
  46. package/esm/simple/Auth.js +499 -404
  47. package/esm/simple/Configuration.js +499 -404
  48. package/esm/simple/Directory.js +91 -21
  49. package/esm/simple/Phone.js +499 -404
  50. package/esm/simple/Websocket.js +45 -19
  51. package/esm/simple/index.js +503 -408
  52. package/esm/simple/room/LocalParticipant.js +503 -408
  53. package/esm/simple/room/Participant.js +503 -408
  54. package/esm/simple/room/RemoteParticipant.js +503 -408
  55. package/esm/simple/room/Room.js +504 -409
  56. package/esm/simple/room/SipRoom.js +503 -408
  57. package/esm/simple/room/Stream.js +503 -408
  58. package/esm/simple/room/__tests__/RemoteParticipant.test.js +503 -408
  59. package/esm/simple/utils.js +503 -408
  60. package/esm/types/WebSocketMessage.js +1 -1
  61. package/esm/utils/__tests__/api-requester.test.js +25 -2
  62. package/esm/utils/api-requester.js +25 -2
  63. package/esm/web-rtc-client.js +214 -165
  64. package/esm/websocket-client.js +43 -18
  65. package/lib/__tests__/api-client.test.js +91 -21
  66. package/lib/__tests__/web-rtc-client.test.js +214 -165
  67. package/lib/api/agentd.js +25 -2
  68. package/lib/api/amid.js +26 -3
  69. package/lib/api/application.js +25 -2
  70. package/lib/api/auth.js +25 -2
  71. package/lib/api/call-logd.js +34 -4
  72. package/lib/api/calld.js +35 -2
  73. package/lib/api/chatd.js +32 -2
  74. package/lib/api/confd.js +56 -9
  75. package/lib/api/ctid-ng.js +38 -5
  76. package/lib/api/dird.js +29 -3
  77. package/lib/api/webhookd.js +26 -3
  78. package/lib/api-client.js +91 -21
  79. package/lib/checker/Checker.js +241 -190
  80. package/lib/checker/checks/aor.js +91 -21
  81. package/lib/checker/checks/api.js +91 -21
  82. package/lib/checker/checks/index.js +231 -180
  83. package/lib/checker/checks/wazo-websocket.js +42 -17
  84. package/lib/checker/checks/webrtc-transport.js +214 -165
  85. package/lib/checker/checks/webrtc.js +214 -165
  86. package/lib/domain/AdHocAPIConference.js +91 -21
  87. package/lib/domain/Call.js +3 -0
  88. package/lib/domain/CallLog.js +8 -1
  89. package/lib/domain/ChatMessage.js +4 -0
  90. package/lib/domain/ChatRoom.js +3 -0
  91. package/lib/domain/Contact.js +4 -1
  92. package/lib/domain/Features.js +91 -21
  93. package/lib/domain/Meeting.js +32 -5
  94. package/lib/domain/Phone/CTIPhone.js +109 -35
  95. package/lib/domain/Phone/WebRTCPhone.js +159 -102
  96. package/lib/domain/Recording.js +3 -0
  97. package/lib/domain/Voicemail.js +3 -0
  98. package/lib/domain/__tests__/Call.test.js +3 -0
  99. package/lib/domain/__tests__/CallLog.test.js +8 -1
  100. package/lib/domain/__tests__/Contact.test.js +4 -1
  101. package/lib/domain/__tests__/Meeting.test.js +150 -0
  102. package/lib/domain/__tests__/Voicemail.test.js +3 -0
  103. package/lib/index.js +509 -414
  104. package/lib/lib/WazoSessionDescriptionHandler.js +26 -41
  105. package/lib/service/CallApi.js +91 -21
  106. package/lib/service/IssueReporter.js +26 -3
  107. package/lib/service/__tests__/IssueReporter.test.js +26 -3
  108. package/lib/service/getApiClient.js +91 -21
  109. package/lib/simple/Auth.js +499 -404
  110. package/lib/simple/Configuration.js +499 -404
  111. package/lib/simple/Directory.js +91 -21
  112. package/lib/simple/Phone.js +499 -404
  113. package/lib/simple/Websocket.js +45 -19
  114. package/lib/simple/index.js +503 -408
  115. package/lib/simple/room/LocalParticipant.js +503 -408
  116. package/lib/simple/room/Participant.js +503 -408
  117. package/lib/simple/room/RemoteParticipant.js +503 -408
  118. package/lib/simple/room/Room.js +504 -409
  119. package/lib/simple/room/SipRoom.js +503 -408
  120. package/lib/simple/room/Stream.js +503 -408
  121. package/lib/simple/room/__tests__/RemoteParticipant.test.js +503 -408
  122. package/lib/simple/utils.js +503 -408
  123. package/lib/types/WebSocketMessage.js +2 -0
  124. package/lib/utils/__tests__/api-requester.test.js +25 -2
  125. package/lib/utils/api-requester.js +25 -2
  126. package/lib/web-rtc-client.js +214 -165
  127. package/lib/websocket-client.js +43 -17
  128. package/package.json +1 -1
  129. package/src/api/confd.js +5 -2
  130. package/src/domain/Call.js +3 -0
  131. package/src/domain/CallLog.js +4 -0
  132. package/src/domain/ChatMessage.js +4 -0
  133. package/src/domain/ChatRoom.js +3 -0
  134. package/src/domain/Contact.js +3 -0
  135. package/src/domain/Meeting.js +28 -5
  136. package/src/domain/Phone/CTIPhone.js +4 -0
  137. package/src/domain/Phone/Phone.js +2 -0
  138. package/src/domain/Phone/WebRTCPhone.js +49 -15
  139. package/src/domain/Recording.js +3 -0
  140. package/src/domain/Voicemail.js +3 -0
  141. package/src/domain/__tests__/Meeting.test.js +50 -0
  142. package/src/lib/WazoSessionDescriptionHandler.js +1 -35
  143. package/src/service/IssueReporter.js +25 -2
  144. package/src/simple/Phone.js +5 -0
  145. package/src/types/WebSocketMessage.js +5 -1
  146. package/src/web-rtc-client.js +41 -24
  147. package/src/websocket-client.js +2 -0
@@ -43,7 +43,7 @@ const isMobile = () => typeof navigator !== 'undefined' && navigator.product ===
43
43
 
44
44
  /* */
45
45
 
46
- IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
46
+ const logger = IssueReporter$1 ? IssueReporter$1.loggerFor('api') : console;
47
47
 
48
48
  // Use a function here to be able to mock it in tests
49
49
  const realFetch = () => {
@@ -129,6 +129,7 @@ class IssueReporter {
129
129
 
130
130
 
131
131
 
132
+
132
133
 
133
134
  constructor() {
134
135
  addLevelsTo(this);
@@ -140,12 +141,17 @@ class IssueReporter {
140
141
  this.bufferTimeout = null;
141
142
  this._boundProcessBuffer = this._processBuffer.bind(this);
142
143
  this._boundParseLoggerBody = this._parseLoggerBody.bind(this);
144
+ this._callback = null;
143
145
  }
144
146
 
145
147
  init() {
146
148
  this._catchConsole();
147
149
  }
148
150
 
151
+ setCallback(cb ) {
152
+ this._callback = cb;
153
+ }
154
+
149
155
  configureRemoteClient(configuration = { tag: 'wazo-sdk', host: null, port: null, level: null, extra: {} }) {
150
156
  this.remoteClientConfiguration = configuration;
151
157
  }
@@ -181,6 +187,7 @@ class IssueReporter {
181
187
 
182
188
  // Handle category label
183
189
  let category = null;
190
+ let skipSendToRemote = false;
184
191
  let extra = {};
185
192
  if (args[0].indexOf(CATEGORY_PREFIX) === 0) {
186
193
  category = args[0].split('=')[1];
@@ -196,6 +203,7 @@ class IssueReporter {
196
203
  errorMessage: lastArg.message,
197
204
  errorStack: lastArg.stack,
198
205
  errorType: lastArg.constructor.name,
206
+ skipSendToRemote: lastArg.skipSendToRemote,
199
207
  };
200
208
  } else {
201
209
  extra = lastArg;
@@ -204,6 +212,11 @@ class IssueReporter {
204
212
  args.splice(1, 1);
205
213
  }
206
214
 
215
+ if (extra.skipSendToRemote) {
216
+ skipSendToRemote = true;
217
+ delete extra.skipSendToRemote;
218
+ }
219
+
207
220
  const date = moment__default['default']().format('YYYY-MM-DD HH:mm:ss.SSS');
208
221
  const message = args.join(', ');
209
222
  let consoleMessage = message;
@@ -224,7 +237,13 @@ class IssueReporter {
224
237
  const oldMethod = this.oldConsoleMethods[consoleLevel] || this.oldConsoleMethods.log;
225
238
  oldMethod.apply(oldMethod, [date, consoleMessage]);
226
239
 
227
- this._sendToRemoteLogger(level, { date, message, category, ...extra });
240
+ if (this._callback) {
241
+ this._callback(level, consoleMessage);
242
+ }
243
+
244
+ if (!skipSendToRemote) {
245
+ this._sendToRemoteLogger(level, { date, message, category, ...extra });
246
+ }
228
247
  }
229
248
 
230
249
  logRequest(url , options , response , start ) {
@@ -369,7 +388,11 @@ class IssueReporter {
369
388
  },
370
389
  // $FlowFixMe
371
390
  body,
372
- }).catch(() => {
391
+ }).catch((e ) => {
392
+ // $FlowFixMe
393
+ e.skipSendToRemote = true;
394
+ this.log('error', this._makeCategory('grafana'), 'Sending log to grafana, error', e);
395
+
373
396
  setTimeout(() => {
374
397
  if (isArray) {
375
398
  payload = payload.map(message => {
@@ -500,7 +523,7 @@ class Heartbeat {
500
523
 
501
524
  //
502
525
 
503
- const SOCKET_EVENTS$1 = {
526
+ const SOCKET_EVENTS = {
504
527
  ON_OPEN: 'onopen',
505
528
  ON_MESSAGE: 'onmessage',
506
529
  ON_ERROR: 'onerror',
@@ -586,6 +609,7 @@ const AGENT_PAUSED = 'agent_paused';
586
609
  const AGENT_UNPAUSED = 'agent_unpaused';
587
610
  const CONFERENCE_ADHOC_PARTICIPANT_LEFT = 'conference_adhoc_participant_left';
588
611
  const CONFERENCE_ADHOC_DELETED = 'conference_adhoc_deleted';
612
+ const MEETING_USER_PROGRESS = 'meeting_user_progress';
589
613
 
590
614
  const BLACKLIST_EVENTS = [
591
615
  CHAT_MESSAGE_SENT,
@@ -652,16 +676,16 @@ class WebSocketClient extends Emitter {
652
676
 
653
677
  this.socket.onopen = () => {
654
678
  logger$1.info('on Wazo WS open', { method: 'connect', host: this.host });
655
- this.eventEmitter.emit(SOCKET_EVENTS$1.ON_OPEN);
679
+ this.eventEmitter.emit(SOCKET_EVENTS.ON_OPEN);
656
680
  };
657
681
 
658
682
  this.socket.onerror = event => {
659
683
  logger$1.error('on Wazo WS error', event.target);
660
- this.eventEmitter.emit(SOCKET_EVENTS$1.ON_ERROR, event);
684
+ this.eventEmitter.emit(SOCKET_EVENTS.ON_ERROR, event);
661
685
  };
662
686
 
663
687
  this.socket.onmessage = (event ) => {
664
- this.eventEmitter.emit(SOCKET_EVENTS$1.ON_MESSAGE, event.data);
688
+ this.eventEmitter.emit(SOCKET_EVENTS.ON_MESSAGE, event.data);
665
689
 
666
690
  const message = JSON.parse(typeof event.data === 'string' ? event.data : '{}');
667
691
  let { name } = message;
@@ -694,11 +718,11 @@ class WebSocketClient extends Emitter {
694
718
  token: this.token,
695
719
  });
696
720
  this.initialized = false;
697
- this.eventEmitter.emit(SOCKET_EVENTS$1.ON_CLOSE, event);
721
+ this.eventEmitter.emit(SOCKET_EVENTS.ON_CLOSE, event);
698
722
 
699
723
  switch (event.code) {
700
724
  case 4002:
701
- this.eventEmitter.emit(SOCKET_EVENTS$1.ON_AUTH_FAILED);
725
+ this.eventEmitter.emit(SOCKET_EVENTS.ON_AUTH_FAILED);
702
726
  break;
703
727
  }
704
728
  };
@@ -814,7 +838,7 @@ class WebSocketClient extends Emitter {
814
838
  break;
815
839
  case 'start':
816
840
  this.initialized = true;
817
- this.eventEmitter.emit(SOCKET_EVENTS$1.INITIALIZED);
841
+ this.eventEmitter.emit(SOCKET_EVENTS.INITIALIZED);
818
842
  break;
819
843
  default:
820
844
  this.eventEmitter.emit('message', message);
@@ -861,7 +885,7 @@ class WebSocketClient extends Emitter {
861
885
  logger$1.log('heartbeat timed out', { host: this.host, token: this.token });
862
886
 
863
887
  this.close();
864
- this.eventEmitter.emit(SOCKET_EVENTS$1.ON_CLOSE, new Error('Websocket ping failure.'));
888
+ this.eventEmitter.emit(SOCKET_EVENTS.ON_CLOSE, new Error('Websocket ping failure.'));
865
889
 
866
890
  if (this.onHeartBeatTimeout) {
867
891
  this.onHeartBeatTimeout();
@@ -936,11 +960,12 @@ WebSocketClient.eventLists = [
936
960
  AGENT_UNPAUSED,
937
961
  CONFERENCE_ADHOC_PARTICIPANT_LEFT,
938
962
  CONFERENCE_ADHOC_DELETED,
963
+ MEETING_USER_PROGRESS,
939
964
  ];
940
965
 
941
966
  var WebSocketClient$1 = /*#__PURE__*/Object.freeze({
942
967
  __proto__: null,
943
- SOCKET_EVENTS: SOCKET_EVENTS$1,
968
+ SOCKET_EVENTS: SOCKET_EVENTS,
944
969
  AUTH_SESSION_EXPIRE_SOON: AUTH_SESSION_EXPIRE_SOON,
945
970
  FAVORITE_ADDED: FAVORITE_ADDED,
946
971
  FAVORITE_DELETED: FAVORITE_DELETED,
@@ -1006,16 +1031,17 @@ var WebSocketClient$1 = /*#__PURE__*/Object.freeze({
1006
1031
  AGENT_UNPAUSED: AGENT_UNPAUSED,
1007
1032
  CONFERENCE_ADHOC_PARTICIPANT_LEFT: CONFERENCE_ADHOC_PARTICIPANT_LEFT,
1008
1033
  CONFERENCE_ADHOC_DELETED: CONFERENCE_ADHOC_DELETED,
1034
+ MEETING_USER_PROGRESS: MEETING_USER_PROGRESS,
1009
1035
  HEARTBEAT_ENGINE_VERSION: HEARTBEAT_ENGINE_VERSION,
1010
1036
  'default': WebSocketClient
1011
1037
  });
1012
1038
 
1013
1039
  //
1014
1040
 
1015
- const { SOCKET_EVENTS, ...OTHER_EVENTS } = WebSocketClient$1;
1016
- const ALL_EVENTS = [...Object.values(SOCKET_EVENTS), ...Object.values(OTHER_EVENTS)];
1041
+ const { SOCKET_EVENTS: SOCKET_EVENTS$1, ...OTHER_EVENTS } = WebSocketClient$1;
1042
+ const ALL_EVENTS = [...Object.values(SOCKET_EVENTS$1), ...Object.values(OTHER_EVENTS)];
1017
1043
 
1018
- const logger = IssueReporter$1.loggerFor('simple-ws-client');
1044
+ const logger$2 = IssueReporter$1.loggerFor('simple-ws-client');
1019
1045
 
1020
1046
  class Websocket extends Emitter {
1021
1047
 
@@ -1029,9 +1055,9 @@ class Websocket extends Emitter {
1029
1055
  // $FlowFixMe
1030
1056
  this[key] = OTHER_EVENTS[key];
1031
1057
  });
1032
- Object.keys(SOCKET_EVENTS).forEach(key => {
1058
+ Object.keys(SOCKET_EVENTS$1).forEach(key => {
1033
1059
  // $FlowFixMe
1034
- this[key] = SOCKET_EVENTS[key];
1060
+ this[key] = SOCKET_EVENTS$1[key];
1035
1061
  });
1036
1062
  this.eventLists = WebSocketClient.eventLists;
1037
1063
 
@@ -1039,7 +1065,7 @@ class Websocket extends Emitter {
1039
1065
  }
1040
1066
 
1041
1067
  open(host , session ) {
1042
- logger.info('open simple WebSocket', { host, token: session.token });
1068
+ logger$2.info('open simple WebSocket', { host, token: session.token });
1043
1069
  this.ws = new WebSocketClient(
1044
1070
  {
1045
1071
  host,
@@ -1067,7 +1093,7 @@ class Websocket extends Emitter {
1067
1093
  }
1068
1094
 
1069
1095
  updateToken(token ) {
1070
- logger.info('update token via simple Websocket', { token, ws: !!this.ws });
1096
+ logger$2.info('update token via simple Websocket', { token, ws: !!this.ws });
1071
1097
 
1072
1098
  if (!this.ws) {
1073
1099
  return;