@livechat/customer-sdk 2.0.4 → 3.1.1
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.
- package/README.md +227 -121
- package/dist/customer-sdk.cjs.js +457 -277
- package/dist/customer-sdk.cjs.native.js +459 -279
- package/dist/customer-sdk.esm.js +427 -259
- package/dist/customer-sdk.js +760 -6442
- package/dist/customer-sdk.min.js +1 -1
- package/package.json +31 -26
package/dist/customer-sdk.esm.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import createAuth, { validateConfig } from '@livechat/customer-auth';
|
|
2
|
+
import mitt from '@livechat/mitt';
|
|
3
|
+
import { hasOwn, identity, toPairs, pickOwn, isObject, generateUniqueId, noop, pick, mapValues, keyBy, values, includes, isEmpty, numericSortBy, uniqBy, flatMap, last, stringCompare } from '@livechat/data-utils';
|
|
3
4
|
import { createStore, applyMiddleware } from 'redux';
|
|
4
5
|
import createSideEffectsMiddleware from '@livechat/side-effects-middleware';
|
|
5
|
-
import
|
|
6
|
+
import deferred from '@livechat/deferred';
|
|
6
7
|
import promiseTry from '@livechat/promise-try';
|
|
7
|
-
import
|
|
8
|
+
import createBackoff from '@livechat/backoff';
|
|
9
|
+
import storage from '@livechat/isomorphic-storage';
|
|
8
10
|
import unfetch from 'unfetch';
|
|
9
11
|
import { buildQueryString } from '@livechat/url-utils';
|
|
10
12
|
import createPlatformClient from '@livechat/platform-client';
|
|
11
|
-
import mitt from '@livechat/mitt';
|
|
12
13
|
import rawUploadFile from '@livechat/file-upload';
|
|
13
|
-
import createAuth, { validateConfig } from '@livechat/customer-auth';
|
|
14
14
|
|
|
15
15
|
function _extends() {
|
|
16
|
-
_extends = Object.assign
|
|
16
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
17
17
|
for (var i = 1; i < arguments.length; i++) {
|
|
18
18
|
var source = arguments[i];
|
|
19
19
|
|
|
@@ -26,7 +26,6 @@ function _extends() {
|
|
|
26
26
|
|
|
27
27
|
return target;
|
|
28
28
|
};
|
|
29
|
-
|
|
30
29
|
return _extends.apply(this, arguments);
|
|
31
30
|
}
|
|
32
31
|
|
|
@@ -90,11 +89,13 @@ var CONNECTION_LOST = 'CONNECTION_LOST';
|
|
|
90
89
|
var IDENTITY_MISMATCH = 'IDENTITY_MISMATCH';
|
|
91
90
|
var MISDIRECTED_CONNECTION = 'MISDIRECTED_CONNECTION';
|
|
92
91
|
var MISSING_CHAT_THREAD = 'MISSING_CHAT_THREAD';
|
|
92
|
+
var NO_CONNECTION = 'NO_CONNECTION';
|
|
93
93
|
var REQUEST_TIMEOUT = 'REQUEST_TIMEOUT';
|
|
94
|
-
var
|
|
94
|
+
var SDK_DESTROYED = 'SDK_DESTROYED';
|
|
95
|
+
var SERVICE_TEMPORARILY_UNAVAILABLE = 'SERVICE_TEMPORARILY_UNAVAILABLE';
|
|
96
|
+
var TOO_BIG_FILE = 'TOO_BIG_FILE';
|
|
95
97
|
|
|
96
98
|
var ACCEPT_GREETING = 'accept_greeting';
|
|
97
|
-
var ACTIVATE_CHAT = 'activate_chat';
|
|
98
99
|
var CANCEL_GREETING = 'cancel_greeting';
|
|
99
100
|
var CHECK_GOALS$1 = 'check_goals';
|
|
100
101
|
var DEACTIVATE_CHAT = 'deactivate_chat';
|
|
@@ -111,6 +112,7 @@ var LIST_GROUP_STATUSES = 'list_group_statuses';
|
|
|
111
112
|
var LIST_THREADS = 'list_threads';
|
|
112
113
|
var LOGIN = 'login';
|
|
113
114
|
var MARK_EVENTS_AS_SEEN = 'mark_events_as_seen';
|
|
115
|
+
var RESUME_CHAT = 'resume_chat';
|
|
114
116
|
var SEND_EVENT = 'send_event';
|
|
115
117
|
var SEND_RICH_MESSAGE_POSTBACK = 'send_rich_message_postback';
|
|
116
118
|
var SEND_SNEAK_PEEK = 'send_sneak_peek';
|
|
@@ -123,8 +125,6 @@ var UPDATE_EVENT_PROPERTIES = 'update_event_properties';
|
|
|
123
125
|
var UPDATE_THREAD_PROPERTIES = 'update_thread_properties';
|
|
124
126
|
var UPLOAD_FILE = 'upload_file';
|
|
125
127
|
|
|
126
|
-
var DESC = 'desc';
|
|
127
|
-
|
|
128
128
|
var createReducer = function createReducer(initialState, reducersMap) {
|
|
129
129
|
if (process.env.NODE_ENV !== 'development' && reducersMap[undefined]) {
|
|
130
130
|
// eslint-disable-next-line no-console
|
|
@@ -197,7 +197,7 @@ var getApiOrigin = function getApiOrigin(state) {
|
|
|
197
197
|
return "https://api" + regionPart + getEnvPart(state) + ".livechatinc.com";
|
|
198
198
|
};
|
|
199
199
|
var getServerUrl = function getServerUrl(state) {
|
|
200
|
-
return getApiOrigin(state) + "/v3.
|
|
200
|
+
return getApiOrigin(state) + "/v3.3/customer";
|
|
201
201
|
};
|
|
202
202
|
var createInitialState = function createInitialState(initialStateData) {
|
|
203
203
|
var _initialStateData$app = initialStateData.application,
|
|
@@ -219,7 +219,7 @@ var createInitialState = function createInitialState(initialStateData) {
|
|
|
219
219
|
return {
|
|
220
220
|
application: _extends({}, application, {
|
|
221
221
|
name: "customer_sdk",
|
|
222
|
-
version: "
|
|
222
|
+
version: "3.1.1"
|
|
223
223
|
}),
|
|
224
224
|
licenseId: licenseId,
|
|
225
225
|
env: env,
|
|
@@ -247,7 +247,6 @@ var createInitialState = function createInitialState(initialStateData) {
|
|
|
247
247
|
var removeStoredRequest = function removeStoredRequest(state, _ref2) {
|
|
248
248
|
var id = _ref2.id;
|
|
249
249
|
|
|
250
|
-
// eslint-disable-next-line no-unused-vars
|
|
251
250
|
var _state$requests = state.requests,
|
|
252
251
|
requests = _objectWithoutPropertiesLoose(_state$requests, [id].map(_toPropertyKey));
|
|
253
252
|
|
|
@@ -278,7 +277,7 @@ var createReducer$1 = (function (state) {
|
|
|
278
277
|
return setConnectionStatus(CONNECTED, state);
|
|
279
278
|
}, _createReducer[PAUSE_CONNECTION] = function (state) {
|
|
280
279
|
return setConnectionStatus(PAUSED, state);
|
|
281
|
-
}, _createReducer[REQUEST_FAILED] = removeStoredRequest, _createReducer[RESPONSE_RECEIVED] = removeStoredRequest, _createReducer[SEND_REQUEST] = function (state, _ref4) {
|
|
280
|
+
}, _createReducer[REQUEST_FAILED] = removeStoredRequest, _createReducer[RESPONSE_RECEIVED] = removeStoredRequest, _createReducer[PUSH_RESPONSE_RECEIVED] = removeStoredRequest, _createReducer[SEND_REQUEST] = function (state, _ref4) {
|
|
282
281
|
var _extends2;
|
|
283
282
|
|
|
284
283
|
var promise = _ref4.promise,
|
|
@@ -350,14 +349,21 @@ function createError(_ref) {
|
|
|
350
349
|
}
|
|
351
350
|
|
|
352
351
|
var ACCESS_TOKEN_EXPIRED = 'access_token_expired';
|
|
353
|
-
var CUSTOMER_BANNED = 'customer_banned';
|
|
352
|
+
var CUSTOMER_BANNED = 'customer_banned'; // customer tried reconnecting too many times after they received too_many_connections error
|
|
353
|
+
|
|
354
354
|
var CUSTOMER_TEMPORARILY_BLOCKED = 'customer_temporarily_blocked';
|
|
355
|
+
var LICENSE_EXPIRED = 'license_expired';
|
|
355
356
|
var LICENSE_NOT_FOUND = 'license_not_found';
|
|
356
357
|
var MISDIRECTED_CONNECTION$1 = 'misdirected_connection';
|
|
357
|
-
var PRODUCT_VERSION_CHANGED = 'product_version_changed';
|
|
358
|
+
var PRODUCT_VERSION_CHANGED = 'product_version_changed'; // the limit of connections per user host has been exceeded
|
|
359
|
+
// or rate limit for new connections has been hit
|
|
360
|
+
// (in 3.2 only the latter case, the first one is using `too_many_connections` to avoid breaking changes)
|
|
361
|
+
|
|
362
|
+
var SERVICE_TEMPORARILY_UNAVAILABLE$1 = 'service_temporarily_unavailable'; // the limit of those connections is per user
|
|
363
|
+
|
|
358
364
|
var TOO_MANY_CONNECTIONS = 'too_many_connections'; // the limit of unauthorized connections is per IP
|
|
359
365
|
|
|
360
|
-
var TOO_MANY_UNAUTHORIZED_CONNECTIONS
|
|
366
|
+
var TOO_MANY_UNAUTHORIZED_CONNECTIONS = 'too_many_unauthorized_connections';
|
|
361
367
|
var UNSUPPORTED_VERSION = 'unsupported_version';
|
|
362
368
|
|
|
363
369
|
var CHAT_DEACTIVATED = 'chat_deactivated';
|
|
@@ -386,11 +392,42 @@ var THREAD_PROPERTIES_UPDATED = 'thread_properties_updated';
|
|
|
386
392
|
var USER_ADDED_TO_CHAT = 'user_added_to_chat';
|
|
387
393
|
var USER_REMOVED_FROM_CHAT = 'user_removed_from_chat';
|
|
388
394
|
|
|
395
|
+
var serverPushActions = /*#__PURE__*/Object.freeze({
|
|
396
|
+
__proto__: null,
|
|
397
|
+
CHAT_DEACTIVATED: CHAT_DEACTIVATED,
|
|
398
|
+
CHAT_PROPERTIES_DELETED: CHAT_PROPERTIES_DELETED,
|
|
399
|
+
CHAT_PROPERTIES_UPDATED: CHAT_PROPERTIES_UPDATED,
|
|
400
|
+
CHAT_TRANSFERRED: CHAT_TRANSFERRED,
|
|
401
|
+
CUSTOMER_DISCONNECTED: CUSTOMER_DISCONNECTED,
|
|
402
|
+
CUSTOMER_PAGE_UPDATED: CUSTOMER_PAGE_UPDATED,
|
|
403
|
+
CUSTOMER_SIDE_STORAGE_UPDATED: CUSTOMER_SIDE_STORAGE_UPDATED,
|
|
404
|
+
CUSTOMER_UPDATED: CUSTOMER_UPDATED,
|
|
405
|
+
EVENT_PROPERTIES_DELETED: EVENT_PROPERTIES_DELETED,
|
|
406
|
+
EVENT_PROPERTIES_UPDATED: EVENT_PROPERTIES_UPDATED,
|
|
407
|
+
EVENT_UPDATED: EVENT_UPDATED,
|
|
408
|
+
EVENTS_MARKED_AS_SEEN: EVENTS_MARKED_AS_SEEN,
|
|
409
|
+
GREETING_ACCEPTED: GREETING_ACCEPTED,
|
|
410
|
+
GREETING_CANCELED: GREETING_CANCELED,
|
|
411
|
+
INCOMING_CHAT: INCOMING_CHAT,
|
|
412
|
+
INCOMING_EVENT: INCOMING_EVENT,
|
|
413
|
+
INCOMING_GREETING: INCOMING_GREETING,
|
|
414
|
+
INCOMING_MULTICAST: INCOMING_MULTICAST,
|
|
415
|
+
INCOMING_RICH_MESSAGE_POSTBACK: INCOMING_RICH_MESSAGE_POSTBACK,
|
|
416
|
+
INCOMING_TYPING_INDICATOR: INCOMING_TYPING_INDICATOR,
|
|
417
|
+
QUEUE_POSITION_UPDATED: QUEUE_POSITION_UPDATED,
|
|
418
|
+
THREAD_PROPERTIES_DELETED: THREAD_PROPERTIES_DELETED,
|
|
419
|
+
THREAD_PROPERTIES_UPDATED: THREAD_PROPERTIES_UPDATED,
|
|
420
|
+
USER_ADDED_TO_CHAT: USER_ADDED_TO_CHAT,
|
|
421
|
+
USER_REMOVED_FROM_CHAT: USER_REMOVED_FROM_CHAT
|
|
422
|
+
});
|
|
423
|
+
|
|
389
424
|
var FILE = 'file';
|
|
425
|
+
var FORM = 'form';
|
|
390
426
|
var FILLED_FORM = 'filled_form';
|
|
391
427
|
var MESSAGE = 'message';
|
|
392
428
|
var RICH_MESSAGE = 'rich_message';
|
|
393
429
|
var SYSTEM_MESSAGE = 'system_message';
|
|
430
|
+
var CUSTOM = 'custom';
|
|
394
431
|
|
|
395
432
|
var createEventBase = function createEventBase(event) {
|
|
396
433
|
var base = {};
|
|
@@ -434,7 +471,8 @@ var parseEvent = function parseEvent(event) {
|
|
|
434
471
|
{
|
|
435
472
|
var file = _extends({}, createEventBase(event), {
|
|
436
473
|
type: event.type,
|
|
437
|
-
url: event.url
|
|
474
|
+
url: event.url,
|
|
475
|
+
alternative_text: event.alternativeText
|
|
438
476
|
});
|
|
439
477
|
|
|
440
478
|
return file;
|
|
@@ -487,6 +525,19 @@ var parseEvent = function parseEvent(event) {
|
|
|
487
525
|
|
|
488
526
|
return systemMessage;
|
|
489
527
|
}
|
|
528
|
+
|
|
529
|
+
case CUSTOM:
|
|
530
|
+
{
|
|
531
|
+
var customEvent = _extends({}, createEventBase(event), {
|
|
532
|
+
type: event.type
|
|
533
|
+
});
|
|
534
|
+
|
|
535
|
+
if (event.content) {
|
|
536
|
+
customEvent.content = event.content;
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
return customEvent;
|
|
540
|
+
}
|
|
490
541
|
}
|
|
491
542
|
};
|
|
492
543
|
|
|
@@ -507,9 +558,12 @@ var parseThreadData = function parseThreadData(thread) {
|
|
|
507
558
|
};
|
|
508
559
|
|
|
509
560
|
var parseStartChatData = function parseStartChatData(_ref) {
|
|
510
|
-
var
|
|
561
|
+
var _ref$active = _ref.active,
|
|
562
|
+
active = _ref$active === void 0 ? true : _ref$active,
|
|
563
|
+
chat = _ref.chat,
|
|
511
564
|
continuous = _ref.continuous;
|
|
512
565
|
var data = {
|
|
566
|
+
active: active,
|
|
513
567
|
chat: {}
|
|
514
568
|
};
|
|
515
569
|
|
|
@@ -541,7 +595,7 @@ var parseStartChatData = function parseStartChatData(_ref) {
|
|
|
541
595
|
|
|
542
596
|
return data;
|
|
543
597
|
};
|
|
544
|
-
var
|
|
598
|
+
var parseResumeChatData = function parseResumeChatData(requestData) {
|
|
545
599
|
var data = parseStartChatData(requestData);
|
|
546
600
|
return _extends({}, data, {
|
|
547
601
|
chat: _extends({}, data.chat, {
|
|
@@ -582,6 +636,14 @@ var loginSuccess = function loginSuccess(payload) {
|
|
|
582
636
|
payload: payload
|
|
583
637
|
};
|
|
584
638
|
};
|
|
639
|
+
var pauseConnection = function pauseConnection(reason) {
|
|
640
|
+
return {
|
|
641
|
+
type: PAUSE_CONNECTION,
|
|
642
|
+
payload: {
|
|
643
|
+
reason: reason
|
|
644
|
+
}
|
|
645
|
+
};
|
|
646
|
+
};
|
|
585
647
|
var prefetchToken = function prefetchToken(fresh) {
|
|
586
648
|
if (fresh === void 0) {
|
|
587
649
|
fresh = false;
|
|
@@ -686,15 +748,15 @@ var getSideStorageKey = function getSideStorageKey(store) {
|
|
|
686
748
|
};
|
|
687
749
|
|
|
688
750
|
var getSideStorage = function getSideStorage(store) {
|
|
689
|
-
return storage.getItem(getSideStorageKey(store))
|
|
751
|
+
return storage.getItem(getSideStorageKey(store))["catch"](noop).then(function (sideStorage) {
|
|
690
752
|
return JSON.parse(sideStorage || '{}');
|
|
691
753
|
}) // shouldnt get triggered, just a defensive measure against malformed storage entries
|
|
692
|
-
|
|
754
|
+
["catch"](function () {
|
|
693
755
|
return {};
|
|
694
756
|
});
|
|
695
757
|
};
|
|
696
758
|
var saveSideStorage = function saveSideStorage(store, sideStorage) {
|
|
697
|
-
return storage.setItem(getSideStorageKey(store), JSON.stringify(sideStorage))
|
|
759
|
+
return storage.setItem(getSideStorageKey(store), JSON.stringify(sideStorage))["catch"](noop);
|
|
698
760
|
};
|
|
699
761
|
|
|
700
762
|
var taskChain = function taskChain(_ref, onSuccess, onError) {
|
|
@@ -748,18 +810,23 @@ function createLoginTask(auth, customerDataProvider) {
|
|
|
748
810
|
var store;
|
|
749
811
|
var sentPage = null;
|
|
750
812
|
var task;
|
|
751
|
-
var
|
|
813
|
+
var backoffConfig = {
|
|
752
814
|
min: 300,
|
|
753
815
|
max: 60000,
|
|
754
816
|
jitter: 0.3
|
|
755
|
-
}
|
|
817
|
+
};
|
|
818
|
+
var defaultBackoffStrategy = createBackoff(backoffConfig);
|
|
819
|
+
var slowerBackoffStrategy = createBackoff(_extends({}, backoffConfig, {
|
|
820
|
+
min: 1000
|
|
821
|
+
}));
|
|
822
|
+
var currentBackoffStrategy = defaultBackoffStrategy;
|
|
756
823
|
|
|
757
|
-
var destroy
|
|
824
|
+
var destroy$1 = function destroy$1(reason) {
|
|
758
825
|
return store.dispatch(destroy(reason));
|
|
759
826
|
};
|
|
760
827
|
|
|
761
|
-
var reconnect
|
|
762
|
-
return store.dispatch(reconnect(
|
|
828
|
+
var reconnect$1 = function reconnect$1() {
|
|
829
|
+
return store.dispatch(reconnect(currentBackoffStrategy.duration()));
|
|
763
830
|
};
|
|
764
831
|
|
|
765
832
|
var getTokenAndSideStorage = function getTokenAndSideStorage() {
|
|
@@ -782,7 +849,7 @@ function createLoginTask(auth, customerDataProvider) {
|
|
|
782
849
|
return [token, sideStorage];
|
|
783
850
|
};
|
|
784
851
|
|
|
785
|
-
var
|
|
852
|
+
var _sendLogin = function sendLogin(_ref3) {
|
|
786
853
|
var token = _ref3[0],
|
|
787
854
|
sideStorage = _ref3[1];
|
|
788
855
|
var state = store.getState();
|
|
@@ -829,71 +896,91 @@ function createLoginTask(auth, customerDataProvider) {
|
|
|
829
896
|
page = _store$getState.page;
|
|
830
897
|
|
|
831
898
|
if (sentPage !== page) {
|
|
832
|
-
sendLoginFlowRequest(store, UPDATE_CUSTOMER_PAGE$1, page)
|
|
899
|
+
sendLoginFlowRequest(store, UPDATE_CUSTOMER_PAGE$1, page)["catch"](noop);
|
|
833
900
|
}
|
|
834
901
|
|
|
835
902
|
sentPage = null;
|
|
836
903
|
};
|
|
837
904
|
|
|
838
|
-
return
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
905
|
+
return {
|
|
906
|
+
sendLogin: function sendLogin(_store) {
|
|
907
|
+
var _task;
|
|
908
|
+
|
|
909
|
+
// after switching to callbags, we should be able to use smth similar to redux-observable
|
|
910
|
+
// and thus just use store given to epic
|
|
911
|
+
store = _store;
|
|
912
|
+
(_task = task) == null ? void 0 : _task.cancel();
|
|
913
|
+
task = taskChain([getTokenAndSideStorage, dispatchSelfId, _sendLogin], function (loginResponse) {
|
|
914
|
+
task = null;
|
|
915
|
+
defaultBackoffStrategy.reset();
|
|
916
|
+
slowerBackoffStrategy.reset();
|
|
917
|
+
currentBackoffStrategy = defaultBackoffStrategy; // TODO: rethink if this should be handled by SDK consumer
|
|
918
|
+
|
|
919
|
+
updateCustomerPageIfNeeded();
|
|
920
|
+
store.dispatch(loginSuccess(loginResponse));
|
|
921
|
+
}, function (error) {
|
|
922
|
+
task = null;
|
|
923
|
+
|
|
924
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
925
|
+
console.error('[Customer SDK] Login flow has thrown code', error.code, 'with', error);
|
|
926
|
+
}
|
|
842
927
|
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
928
|
+
switch (error.code) {
|
|
929
|
+
case AUTHENTICATION:
|
|
930
|
+
auth.getFreshToken();
|
|
931
|
+
reconnect$1();
|
|
932
|
+
return;
|
|
846
933
|
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
934
|
+
case CONNECTION_LOST:
|
|
935
|
+
// this is connectivity problem, not a server error
|
|
936
|
+
// and is taken care of in socket module
|
|
937
|
+
// as it has its own backoff implementation
|
|
938
|
+
return;
|
|
850
939
|
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
855
|
-
console.error('[Customer SDK] Login flow has thrown code', error.code, 'with', error);
|
|
856
|
-
}
|
|
940
|
+
case MISDIRECTED_CONNECTION:
|
|
941
|
+
// socket gets reinitialized on this anyway, so just ignore it here
|
|
942
|
+
return;
|
|
857
943
|
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
auth
|
|
861
|
-
reconnect$$1();
|
|
862
|
-
return;
|
|
944
|
+
case SDK_DESTROYED:
|
|
945
|
+
return;
|
|
946
|
+
// those are auth errors, we should maybe export those constants from the auth package
|
|
863
947
|
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
948
|
+
case 'SSO_IDENTITY_EXCEPTION':
|
|
949
|
+
case 'SSO_OAUTH_EXCEPTION':
|
|
950
|
+
if (error.message === 'server_error' || error.message === 'temporarily_unavailable') {
|
|
951
|
+
reconnect$1();
|
|
952
|
+
return;
|
|
953
|
+
}
|
|
869
954
|
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
return;
|
|
873
|
-
// those are auth errors, we should maybe export those constants from the auth package
|
|
955
|
+
destroy$1(error.message);
|
|
956
|
+
return;
|
|
874
957
|
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
if (error.message === 'server_error' || error.message === 'temporarily_unavailable') {
|
|
878
|
-
reconnect$$1();
|
|
958
|
+
case USERS_LIMIT_REACHED:
|
|
959
|
+
store.dispatch(pauseConnection(error.code.toLowerCase()));
|
|
879
960
|
return;
|
|
880
|
-
}
|
|
881
961
|
|
|
882
|
-
|
|
883
|
-
|
|
962
|
+
case IDENTITY_MISMATCH:
|
|
963
|
+
case CUSTOMER_BANNED$1:
|
|
964
|
+
case WRONG_PRODUCT_VERSION:
|
|
965
|
+
destroy$1(error.code.toLowerCase());
|
|
966
|
+
return;
|
|
884
967
|
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
destroy$$1(error.code.toLowerCase());
|
|
890
|
-
return;
|
|
968
|
+
case SERVICE_TEMPORARILY_UNAVAILABLE:
|
|
969
|
+
currentBackoffStrategy = slowerBackoffStrategy;
|
|
970
|
+
reconnect$1();
|
|
971
|
+
return;
|
|
891
972
|
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
973
|
+
default:
|
|
974
|
+
reconnect$1();
|
|
975
|
+
return;
|
|
976
|
+
}
|
|
977
|
+
});
|
|
978
|
+
},
|
|
979
|
+
cancel: function cancel() {
|
|
980
|
+
var _task2;
|
|
981
|
+
|
|
982
|
+
(_task2 = task) == null ? void 0 : _task2.cancel();
|
|
983
|
+
}
|
|
897
984
|
};
|
|
898
985
|
}
|
|
899
986
|
|
|
@@ -915,8 +1002,6 @@ var checkGoals = function checkGoals(store, auth, sessionFields) {
|
|
|
915
1002
|
license_id: state.licenseId
|
|
916
1003
|
});
|
|
917
1004
|
var payload = {
|
|
918
|
-
// TODO: remove sending customer_fields once API releases their changes
|
|
919
|
-
customer_fields: sessionFields || {},
|
|
920
1005
|
session_fields: parseCustomerSessionFields(sessionFields || {}),
|
|
921
1006
|
group_id: state.groupId || 0,
|
|
922
1007
|
page_url: page.url
|
|
@@ -1017,13 +1102,15 @@ var parseImage = function parseImage(thread, image) {
|
|
|
1017
1102
|
width: image.width,
|
|
1018
1103
|
height: image.height,
|
|
1019
1104
|
thumbnails: {
|
|
1020
|
-
default: _extends({
|
|
1105
|
+
"default": _extends({
|
|
1021
1106
|
url: image.thumbnail_url
|
|
1022
1107
|
}, downsizeWithRatio(300, image)),
|
|
1023
1108
|
high: _extends({
|
|
1024
1109
|
url: image.thumbnail2x_url
|
|
1025
1110
|
}, downsizeWithRatio(600, image))
|
|
1026
1111
|
}
|
|
1112
|
+
}, image.alternative_text && {
|
|
1113
|
+
alternativeText: image.alternative_text
|
|
1027
1114
|
});
|
|
1028
1115
|
};
|
|
1029
1116
|
|
|
@@ -1039,6 +1126,14 @@ var parseFile = function parseFile(thread, file) {
|
|
|
1039
1126
|
name: file.name
|
|
1040
1127
|
});
|
|
1041
1128
|
};
|
|
1129
|
+
var parseForm = function parseForm(thread, form) {
|
|
1130
|
+
return _extends({}, parseCommonEventProps(thread, form), {
|
|
1131
|
+
authorId: 'system',
|
|
1132
|
+
type: FORM,
|
|
1133
|
+
formId: form.form_id,
|
|
1134
|
+
fields: form.fields
|
|
1135
|
+
});
|
|
1136
|
+
};
|
|
1042
1137
|
var parseFilledForm = function parseFilledForm(thread, filledForm) {
|
|
1043
1138
|
return _extends({}, parseCommonEventProps(thread, filledForm), {
|
|
1044
1139
|
type: FILLED_FORM,
|
|
@@ -1074,6 +1169,13 @@ var parseMessage = function parseMessage(thread, message) {
|
|
|
1074
1169
|
text: message.text
|
|
1075
1170
|
});
|
|
1076
1171
|
};
|
|
1172
|
+
var parseCustomEvent = function parseCustomEvent(thread, event) {
|
|
1173
|
+
return _extends({}, parseCommonEventProps(thread, event), {
|
|
1174
|
+
type: CUSTOM
|
|
1175
|
+
}, event.content && {
|
|
1176
|
+
content: event.content
|
|
1177
|
+
});
|
|
1178
|
+
};
|
|
1077
1179
|
|
|
1078
1180
|
var parseRichMessageElement = function parseRichMessageElement(element) {
|
|
1079
1181
|
var parsed = {};
|
|
@@ -1089,10 +1191,12 @@ var parseRichMessageElement = function parseRichMessageElement(element) {
|
|
|
1089
1191
|
if (element.image) {
|
|
1090
1192
|
// TODO: we should reuse parseImage here
|
|
1091
1193
|
var image = element.image;
|
|
1092
|
-
parsed.image = {
|
|
1194
|
+
parsed.image = _extends({
|
|
1093
1195
|
url: image.url,
|
|
1094
1196
|
name: image.name
|
|
1095
|
-
}
|
|
1197
|
+
}, image.alternative_text && {
|
|
1198
|
+
alternativeText: image.alternative_text
|
|
1199
|
+
});
|
|
1096
1200
|
}
|
|
1097
1201
|
|
|
1098
1202
|
if (element.buttons) {
|
|
@@ -1111,6 +1215,17 @@ var parseRichMessageElement = function parseRichMessageElement(element) {
|
|
|
1111
1215
|
};
|
|
1112
1216
|
}
|
|
1113
1217
|
|
|
1218
|
+
case 'cancel':
|
|
1219
|
+
{
|
|
1220
|
+
return {
|
|
1221
|
+
type: serverButton.type,
|
|
1222
|
+
text: serverButton.text,
|
|
1223
|
+
postbackId: serverButton.postback_id,
|
|
1224
|
+
userIds: serverButton.user_ids,
|
|
1225
|
+
role: serverButton.role || 'default'
|
|
1226
|
+
};
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1114
1229
|
case 'url':
|
|
1115
1230
|
{
|
|
1116
1231
|
var button = {
|
|
@@ -1198,6 +1313,9 @@ var parseEvent$1 = function parseEvent(thread, event) {
|
|
|
1198
1313
|
case FILE:
|
|
1199
1314
|
return parseFile(thread, event);
|
|
1200
1315
|
|
|
1316
|
+
case FORM:
|
|
1317
|
+
return parseForm(thread, event);
|
|
1318
|
+
|
|
1201
1319
|
case FILLED_FORM:
|
|
1202
1320
|
return parseFilledForm(thread, event);
|
|
1203
1321
|
|
|
@@ -1210,6 +1328,9 @@ var parseEvent$1 = function parseEvent(thread, event) {
|
|
|
1210
1328
|
case SYSTEM_MESSAGE:
|
|
1211
1329
|
return parseSystemMessage(thread, event);
|
|
1212
1330
|
|
|
1331
|
+
case CUSTOM:
|
|
1332
|
+
return parseCustomEvent(thread, event);
|
|
1333
|
+
|
|
1213
1334
|
default:
|
|
1214
1335
|
return null;
|
|
1215
1336
|
}
|
|
@@ -1221,6 +1342,7 @@ var parseGreeting = function parseGreeting(greeting) {
|
|
|
1221
1342
|
uniqueId: greeting.unique_id,
|
|
1222
1343
|
displayedFirstTime: greeting.displayed_first_time,
|
|
1223
1344
|
accepted: greeting.accepted || false,
|
|
1345
|
+
subtype: greeting.subtype || 'greeting',
|
|
1224
1346
|
// threadId is typed as nonoptional string but for greetings it doesn't exist
|
|
1225
1347
|
event: parseEvent$1(null, greeting.event),
|
|
1226
1348
|
agent: {
|
|
@@ -1277,13 +1399,12 @@ var parseThread = function parseThread(chatId, thread) {
|
|
|
1277
1399
|
queue: thread.queue ? parseQueue(thread.queue) : null
|
|
1278
1400
|
};
|
|
1279
1401
|
};
|
|
1280
|
-
var
|
|
1402
|
+
var parseChatCommon = function parseChatCommon(chat) {
|
|
1281
1403
|
return {
|
|
1282
1404
|
id: chat.id,
|
|
1283
1405
|
access: parseAccess(chat.access),
|
|
1284
1406
|
users: chat.users.map(parseChatUser),
|
|
1285
1407
|
properties: chat.properties || {},
|
|
1286
|
-
thread: parseThread(chat.id, chat.thread),
|
|
1287
1408
|
eventsSeenUpToMap: getEventsSeenUpToMap(chat.users)
|
|
1288
1409
|
};
|
|
1289
1410
|
};
|
|
@@ -1338,14 +1459,19 @@ var parseCustomer = function parseCustomer(customer) {
|
|
|
1338
1459
|
}
|
|
1339
1460
|
});
|
|
1340
1461
|
};
|
|
1341
|
-
var parsePredictedAgent = function parsePredictedAgent(
|
|
1462
|
+
var parsePredictedAgent = function parsePredictedAgent(payload) {
|
|
1463
|
+
var agent = payload.agent,
|
|
1464
|
+
queue = payload.queue;
|
|
1342
1465
|
return {
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1466
|
+
agent: {
|
|
1467
|
+
id: agent.id,
|
|
1468
|
+
type: AGENT,
|
|
1469
|
+
name: agent.name,
|
|
1470
|
+
avatar: agent.avatar,
|
|
1471
|
+
jobTitle: agent.job_title,
|
|
1472
|
+
isBot: agent.is_bot
|
|
1473
|
+
},
|
|
1474
|
+
queue: queue
|
|
1349
1475
|
};
|
|
1350
1476
|
};
|
|
1351
1477
|
var parseQueueUpdate = function parseQueueUpdate(queueUpdate) {
|
|
@@ -1411,7 +1537,7 @@ var updateStateIfNeeded = function updateStateIfNeeded(store, action) {
|
|
|
1411
1537
|
}
|
|
1412
1538
|
};
|
|
1413
1539
|
|
|
1414
|
-
var sendRequest$1 = function sendRequest
|
|
1540
|
+
var sendRequest$1 = function sendRequest(socket, _ref3) {
|
|
1415
1541
|
var _ref3$payload = _ref3.payload,
|
|
1416
1542
|
id = _ref3$payload.id,
|
|
1417
1543
|
request = _ref3$payload.request;
|
|
@@ -1420,7 +1546,31 @@ var sendRequest$1 = function sendRequest$$1(socket, _ref3) {
|
|
|
1420
1546
|
request_id: id
|
|
1421
1547
|
}, request);
|
|
1422
1548
|
|
|
1423
|
-
|
|
1549
|
+
switch (frame.action) {
|
|
1550
|
+
case LOGIN:
|
|
1551
|
+
{
|
|
1552
|
+
var upgradedPushes = [];
|
|
1553
|
+
socket.emit(_extends({}, frame, {
|
|
1554
|
+
version: '3.3',
|
|
1555
|
+
payload: _extends({}, frame.payload, {
|
|
1556
|
+
pushes: {
|
|
1557
|
+
// '3.4': upgradedPushes,
|
|
1558
|
+
'3.3': values(serverPushActions).filter(function (pushAction) {
|
|
1559
|
+
return (// `customer_disconnected` can be sent immediately after opening the connection, before it even received login request
|
|
1560
|
+
// therefore it's not possible to subscribe for a particular version of this push - the "connection version" is always used
|
|
1561
|
+
pushAction !== CUSTOMER_DISCONNECTED && !includes(pushAction, upgradedPushes)
|
|
1562
|
+
);
|
|
1563
|
+
})
|
|
1564
|
+
}
|
|
1565
|
+
})
|
|
1566
|
+
}));
|
|
1567
|
+
return;
|
|
1568
|
+
}
|
|
1569
|
+
|
|
1570
|
+
default:
|
|
1571
|
+
socket.emit(frame);
|
|
1572
|
+
return;
|
|
1573
|
+
}
|
|
1424
1574
|
};
|
|
1425
1575
|
|
|
1426
1576
|
var emitUsers = function emitUsers(emit, users) {
|
|
@@ -1521,10 +1671,11 @@ var handlePush = function handlePush(_ref5, _ref6) {
|
|
|
1521
1671
|
});
|
|
1522
1672
|
break;
|
|
1523
1673
|
|
|
1524
|
-
case
|
|
1674
|
+
case SERVICE_TEMPORARILY_UNAVAILABLE$1:
|
|
1675
|
+
case TOO_MANY_UNAUTHORIZED_CONNECTIONS:
|
|
1525
1676
|
// this should only really fail a `login` request - as it's the only one sent before authorization
|
|
1526
1677
|
// and login should reconnect on its own right now
|
|
1527
|
-
failAllRequests(store,
|
|
1678
|
+
failAllRequests(store, payload.payload.reason.toUpperCase());
|
|
1528
1679
|
break;
|
|
1529
1680
|
|
|
1530
1681
|
default:
|
|
@@ -1609,7 +1760,7 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1609
1760
|
emitter = _ref9.emitter,
|
|
1610
1761
|
socket = _ref9.socket;
|
|
1611
1762
|
var emit = emitter.emit;
|
|
1612
|
-
var
|
|
1763
|
+
var loginTask = createLoginTask(auth, customerDataProvider); // TODO: using Store type here is a lie, middleware only provides MiddlewareAPI here
|
|
1613
1764
|
|
|
1614
1765
|
return function (action, store) {
|
|
1615
1766
|
switch (action.type) {
|
|
@@ -1618,16 +1769,35 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1618
1769
|
return;
|
|
1619
1770
|
|
|
1620
1771
|
case CHECK_GOALS:
|
|
1621
|
-
checkGoals(store, auth, action.payload.sessionFields)
|
|
1772
|
+
checkGoals(store, auth, action.payload.sessionFields)["catch"](noop);
|
|
1622
1773
|
return;
|
|
1623
1774
|
|
|
1624
1775
|
case DESTROY:
|
|
1625
1776
|
{
|
|
1626
1777
|
var payload = action.payload;
|
|
1778
|
+
loginTask.cancel();
|
|
1627
1779
|
socket.destroy();
|
|
1628
1780
|
|
|
1629
|
-
|
|
1630
|
-
|
|
1781
|
+
switch (payload.reason) {
|
|
1782
|
+
case 'manual':
|
|
1783
|
+
failAllRequests(store, SDK_DESTROYED);
|
|
1784
|
+
break;
|
|
1785
|
+
|
|
1786
|
+
case CUSTOMER_BANNED:
|
|
1787
|
+
case LICENSE_EXPIRED:
|
|
1788
|
+
case PRODUCT_VERSION_CHANGED:
|
|
1789
|
+
// normalize those to CONNECTION_LOST as the handling on the consumer's side should be the same
|
|
1790
|
+
failAllRequests(store, CONNECTION_LOST);
|
|
1791
|
+
emit('disconnected', payload);
|
|
1792
|
+
break;
|
|
1793
|
+
|
|
1794
|
+
default:
|
|
1795
|
+
// in general those deestroys should only come either from login errors
|
|
1796
|
+
// or from customer_disconnected pushes that are sent immediately after connection
|
|
1797
|
+
// so this case would only be able to fail login requests but that wouldn't even be caught be a handler there
|
|
1798
|
+
// as we cancel the loginTask beforehand
|
|
1799
|
+
emit('disconnected', payload);
|
|
1800
|
+
break;
|
|
1631
1801
|
}
|
|
1632
1802
|
|
|
1633
1803
|
emitter.off();
|
|
@@ -1676,12 +1846,20 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1676
1846
|
}
|
|
1677
1847
|
|
|
1678
1848
|
case PAUSE_CONNECTION:
|
|
1679
|
-
|
|
1680
|
-
|
|
1849
|
+
{
|
|
1850
|
+
var _payload = action.payload;
|
|
1851
|
+
socket.disconnect();
|
|
1852
|
+
|
|
1853
|
+
if (_payload.reason !== 'manual') {
|
|
1854
|
+
emit('disconnected', _payload);
|
|
1855
|
+
}
|
|
1856
|
+
|
|
1857
|
+
return;
|
|
1858
|
+
}
|
|
1681
1859
|
|
|
1682
1860
|
case PREFETCH_TOKEN:
|
|
1683
1861
|
if (action.payload.fresh) {
|
|
1684
|
-
auth.getFreshToken()
|
|
1862
|
+
auth.getFreshToken()["catch"](noop);
|
|
1685
1863
|
return;
|
|
1686
1864
|
}
|
|
1687
1865
|
|
|
@@ -1702,7 +1880,7 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1702
1880
|
|
|
1703
1881
|
return auth.invalidate().then(auth.getFreshToken);
|
|
1704
1882
|
});
|
|
1705
|
-
})
|
|
1883
|
+
})["catch"](noop);
|
|
1706
1884
|
return;
|
|
1707
1885
|
|
|
1708
1886
|
case PUSH_RECEIVED:
|
|
@@ -1731,6 +1909,7 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1731
1909
|
return;
|
|
1732
1910
|
|
|
1733
1911
|
case RECONNECT:
|
|
1912
|
+
failAllRequests(store, CONNECTION_LOST);
|
|
1734
1913
|
socket.reconnect(action.payload.delay);
|
|
1735
1914
|
return;
|
|
1736
1915
|
|
|
@@ -1756,7 +1935,7 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1756
1935
|
|
|
1757
1936
|
if (isDestroyed(state)) {
|
|
1758
1937
|
failRequest(store, action, {
|
|
1759
|
-
code:
|
|
1938
|
+
code: SDK_DESTROYED,
|
|
1760
1939
|
message: 'SDK destroyed.'
|
|
1761
1940
|
});
|
|
1762
1941
|
return;
|
|
@@ -1764,7 +1943,7 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1764
1943
|
|
|
1765
1944
|
if (!isConnected(state) && action.payload.source !== 'login') {
|
|
1766
1945
|
failRequest(store, action, {
|
|
1767
|
-
code:
|
|
1946
|
+
code: NO_CONNECTION,
|
|
1768
1947
|
message: 'No connection.'
|
|
1769
1948
|
});
|
|
1770
1949
|
return;
|
|
@@ -1785,7 +1964,7 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1785
1964
|
return;
|
|
1786
1965
|
|
|
1787
1966
|
case SOCKET_CONNECTED:
|
|
1788
|
-
|
|
1967
|
+
loginTask.sendLogin(store);
|
|
1789
1968
|
return;
|
|
1790
1969
|
|
|
1791
1970
|
case SOCKET_RECOVERED:
|
|
@@ -1816,7 +1995,7 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1816
1995
|
return;
|
|
1817
1996
|
}
|
|
1818
1997
|
|
|
1819
|
-
sendRequestAction(store, sendRequest(UPDATE_CUSTOMER_PAGE$1, action.payload))
|
|
1998
|
+
sendRequestAction(store, sendRequest(UPDATE_CUSTOMER_PAGE$1, action.payload))["catch"](noop);
|
|
1820
1999
|
return;
|
|
1821
2000
|
|
|
1822
2001
|
default:
|
|
@@ -1842,10 +2021,12 @@ var createChatHistoryIterator = function createChatHistoryIterator(sdk, chatId)
|
|
|
1842
2021
|
switch (historyState.status) {
|
|
1843
2022
|
case 'idle':
|
|
1844
2023
|
historyState.status = 'fetching';
|
|
1845
|
-
sdk.listThreads({
|
|
2024
|
+
sdk.listThreads(historyState.nextPageId ? {
|
|
2025
|
+
chatId: chatId,
|
|
2026
|
+
pageId: historyState.nextPageId
|
|
2027
|
+
} : {
|
|
1846
2028
|
chatId: chatId,
|
|
1847
|
-
minEventsCount: HISTORY_EVENT_COUNT_TARGET
|
|
1848
|
-
pageId: historyState.nextPageId || undefined
|
|
2029
|
+
minEventsCount: HISTORY_EVENT_COUNT_TARGET
|
|
1849
2030
|
}).then(function (_ref) {
|
|
1850
2031
|
var threads = _ref.threads,
|
|
1851
2032
|
nextPageId = _ref.nextPageId;
|
|
@@ -1922,7 +2103,7 @@ var createChatHistoryIterator = function createChatHistoryIterator(sdk, chatId)
|
|
|
1922
2103
|
|
|
1923
2104
|
var initialize = function initialize(store, emitter) {
|
|
1924
2105
|
var state = store.getState();
|
|
1925
|
-
var url = getServerUrl(state) + "/rtm/
|
|
2106
|
+
var url = (getServerUrl(state) + "/rtm/ws").replace(/^https/, 'wss');
|
|
1926
2107
|
return createPlatformClient(url, {
|
|
1927
2108
|
query: {
|
|
1928
2109
|
license_id: state.licenseId
|
|
@@ -1993,16 +2174,14 @@ var parseCustomerPageUpdatedPush = function parseCustomerPageUpdatedPush(payload
|
|
|
1993
2174
|
return {
|
|
1994
2175
|
url: payload.url,
|
|
1995
2176
|
title: payload.title,
|
|
1996
|
-
|
|
2177
|
+
openedAt: payload.opened_at
|
|
1997
2178
|
};
|
|
1998
2179
|
};
|
|
1999
2180
|
|
|
2000
2181
|
var parseCustomerUpdatedPush = function parseCustomerUpdatedPush(payload) {
|
|
2001
|
-
return {
|
|
2002
|
-
|
|
2003
|
-
|
|
2004
|
-
}, parseCustomerOptionalProps(payload.customer))
|
|
2005
|
-
};
|
|
2182
|
+
return _extends({
|
|
2183
|
+
id: payload.id
|
|
2184
|
+
}, parseCustomerOptionalProps(payload));
|
|
2006
2185
|
};
|
|
2007
2186
|
|
|
2008
2187
|
var parseEventPropertiesDeletedPush = function parseEventPropertiesDeletedPush(payload) {
|
|
@@ -2047,12 +2226,17 @@ var parseGreetingAcceptedPush = function parseGreetingAcceptedPush(payload) {
|
|
|
2047
2226
|
};
|
|
2048
2227
|
|
|
2049
2228
|
var parseGetChatResponse = function parseGetChatResponse(payload) {
|
|
2050
|
-
return
|
|
2229
|
+
return _extends({}, parseChatCommon(payload), {
|
|
2230
|
+
thread: payload.thread ? parseThread(payload.id, payload.thread) : null
|
|
2231
|
+
});
|
|
2051
2232
|
};
|
|
2052
2233
|
|
|
2053
2234
|
var parseIncomingChatPush = function parseIncomingChatPush(payload) {
|
|
2235
|
+
var chat = payload.chat;
|
|
2054
2236
|
return {
|
|
2055
|
-
chat:
|
|
2237
|
+
chat: _extends({}, parseChatCommon(chat), {
|
|
2238
|
+
thread: parseThread(chat.id, chat.thread)
|
|
2239
|
+
})
|
|
2056
2240
|
};
|
|
2057
2241
|
};
|
|
2058
2242
|
|
|
@@ -2168,20 +2352,21 @@ var parseTicketFormFields = function parseTicketFormFields(fields) {
|
|
|
2168
2352
|
return parseFields(withFakeIds);
|
|
2169
2353
|
};
|
|
2170
2354
|
|
|
2355
|
+
var parseForm$1 = function parseForm(form) {
|
|
2356
|
+
var isTicketForm = !('id' in form.fields[0]);
|
|
2357
|
+
return {
|
|
2358
|
+
id: form.id,
|
|
2359
|
+
fields: isTicketForm ? parseTicketFormFields(form.fields) : parseFields(form.fields)
|
|
2360
|
+
};
|
|
2361
|
+
};
|
|
2362
|
+
|
|
2171
2363
|
var parseGetFormResponse = function parseGetFormResponse(payload) {
|
|
2172
2364
|
if (!payload.enabled) {
|
|
2173
2365
|
return payload;
|
|
2174
2366
|
}
|
|
2175
2367
|
|
|
2176
2368
|
return _extends({}, payload, {
|
|
2177
|
-
form:
|
|
2178
|
-
id: payload.form.id,
|
|
2179
|
-
fields: parseFields(payload.form.fields)
|
|
2180
|
-
} : {
|
|
2181
|
-
// TODO: should we fake id for this one?
|
|
2182
|
-
id: 'ticket',
|
|
2183
|
-
fields: parseTicketFormFields(payload.form.fields)
|
|
2184
|
-
}
|
|
2369
|
+
form: parseForm$1(payload.form)
|
|
2185
2370
|
});
|
|
2186
2371
|
};
|
|
2187
2372
|
|
|
@@ -2299,9 +2484,8 @@ var parseListThreadsResponse = function parseListThreadsResponse(request, payloa
|
|
|
2299
2484
|
|
|
2300
2485
|
var parseLoginResponse = function parseLoginResponse(payload) {
|
|
2301
2486
|
var dynamicConfig = payload.__priv_dynamic_config,
|
|
2302
|
-
chats = payload.chats
|
|
2303
|
-
|
|
2304
|
-
|
|
2487
|
+
chats = payload.chats,
|
|
2488
|
+
greeting = payload.greeting;
|
|
2305
2489
|
return _extends({
|
|
2306
2490
|
dynamicConfig: dynamicConfig,
|
|
2307
2491
|
customer: parseCustomer(payload.customer),
|
|
@@ -2471,19 +2655,6 @@ var parsePush = function parsePush(push) {
|
|
|
2471
2655
|
case USER_REMOVED_FROM_CHAT:
|
|
2472
2656
|
return {
|
|
2473
2657
|
action: push.action,
|
|
2474
|
-
payload: parseUserRemovedFromChatPush(push.payload) // TODO: remove those once we sync with the API on prod
|
|
2475
|
-
|
|
2476
|
-
};
|
|
2477
|
-
|
|
2478
|
-
case 'chat_user_added':
|
|
2479
|
-
return {
|
|
2480
|
-
action: USER_ADDED_TO_CHAT,
|
|
2481
|
-
payload: parseUserAddedToChatPush(push.payload)
|
|
2482
|
-
};
|
|
2483
|
-
|
|
2484
|
-
case 'chat_user_removed':
|
|
2485
|
-
return {
|
|
2486
|
-
action: USER_REMOVED_FROM_CHAT,
|
|
2487
2658
|
payload: parseUserRemovedFromChatPush(push.payload)
|
|
2488
2659
|
};
|
|
2489
2660
|
}
|
|
@@ -2731,8 +2902,7 @@ var socketListener = (function (store, socket) {
|
|
|
2731
2902
|
}
|
|
2732
2903
|
|
|
2733
2904
|
switch (message.action) {
|
|
2734
|
-
case
|
|
2735
|
-
case DEACTIVATE_CHAT:
|
|
2905
|
+
case RESUME_CHAT:
|
|
2736
2906
|
case SEND_EVENT:
|
|
2737
2907
|
case START_CHAT:
|
|
2738
2908
|
// those are requests with indirect responses
|
|
@@ -2746,7 +2916,6 @@ var socketListener = (function (store, socket) {
|
|
|
2746
2916
|
|
|
2747
2917
|
if ('request_id' in message) {
|
|
2748
2918
|
switch (message.action) {
|
|
2749
|
-
case CHAT_DEACTIVATED:
|
|
2750
2919
|
case INCOMING_CHAT:
|
|
2751
2920
|
case INCOMING_EVENT:
|
|
2752
2921
|
// those are acting as indirect responses
|
|
@@ -2986,7 +3155,7 @@ var validateFile = function validateFile(file) {
|
|
|
2986
3155
|
if (file.size > SIZE_LIMIT) {
|
|
2987
3156
|
throw createError({
|
|
2988
3157
|
message: "The file is too big (max size is " + formatBytes(SIZE_LIMIT) + ").",
|
|
2989
|
-
code:
|
|
3158
|
+
code: TOO_BIG_FILE
|
|
2990
3159
|
});
|
|
2991
3160
|
}
|
|
2992
3161
|
};
|
|
@@ -3083,7 +3252,7 @@ var log = function log(_ref) {
|
|
|
3083
3252
|
var message = {
|
|
3084
3253
|
event_name: eventName,
|
|
3085
3254
|
severity: 'Informational',
|
|
3086
|
-
sdkVersion: "
|
|
3255
|
+
sdkVersion: "3.1.1"
|
|
3087
3256
|
};
|
|
3088
3257
|
var body = {
|
|
3089
3258
|
licence_id: licenseId,
|
|
@@ -3115,11 +3284,13 @@ var createDebuggedMethods = function createDebuggedMethods(methods, prefix) {
|
|
|
3115
3284
|
|
|
3116
3285
|
var result = method.apply(void 0, args);
|
|
3117
3286
|
|
|
3118
|
-
if (result
|
|
3119
|
-
result.then(function (data) {
|
|
3287
|
+
if (typeof (result == null ? void 0 : result.then) === 'function') {
|
|
3288
|
+
return result.then(function (data) {
|
|
3120
3289
|
console.info(prefix + "." + methodName + "() <===", data);
|
|
3121
|
-
|
|
3290
|
+
return data;
|
|
3291
|
+
}, function (err) {
|
|
3122
3292
|
console.error(prefix + "." + methodName + "() <===", err);
|
|
3293
|
+
throw err;
|
|
3123
3294
|
});
|
|
3124
3295
|
}
|
|
3125
3296
|
|
|
@@ -3191,17 +3362,19 @@ var debug = (function (_sdk) {
|
|
|
3191
3362
|
|
|
3192
3363
|
(_console3 = console).info.apply(_console3, [logLabel + " ===>"].concat(args));
|
|
3193
3364
|
|
|
3194
|
-
|
|
3195
|
-
result.then(function (data) {
|
|
3365
|
+
return history.next().then(function (data) {
|
|
3196
3366
|
var _console4;
|
|
3197
3367
|
|
|
3198
3368
|
(_console4 = console).info.apply(_console4, [logLabel + " <==="].concat(args, [data]));
|
|
3199
|
-
|
|
3369
|
+
|
|
3370
|
+
return data;
|
|
3371
|
+
}, function (err) {
|
|
3200
3372
|
var _console5;
|
|
3201
3373
|
|
|
3202
3374
|
(_console5 = console).error.apply(_console5, [logLabel + " <==="].concat(args, [err]));
|
|
3375
|
+
|
|
3376
|
+
throw err;
|
|
3203
3377
|
});
|
|
3204
|
-
return result;
|
|
3205
3378
|
}
|
|
3206
3379
|
};
|
|
3207
3380
|
},
|
|
@@ -3236,14 +3409,15 @@ var init = function init(config, env) {
|
|
|
3236
3409
|
var _config$autoConnect = config.autoConnect,
|
|
3237
3410
|
autoConnect = _config$autoConnect === void 0 ? true : _config$autoConnect,
|
|
3238
3411
|
customerDataProvider = config.customerDataProvider,
|
|
3239
|
-
|
|
3412
|
+
identityProvider = config.identityProvider,
|
|
3413
|
+
instanceConfig = _objectWithoutPropertiesLoose(config, ["autoConnect", "customerDataProvider", "identityProvider"]);
|
|
3240
3414
|
|
|
3241
3415
|
var store = finalCreateStore(_extends({}, instanceConfig, {
|
|
3242
3416
|
env: env
|
|
3243
3417
|
}));
|
|
3244
3418
|
var emitter = mitt();
|
|
3245
3419
|
var socket = createSocketClient(store);
|
|
3246
|
-
var auth = createAuth(instanceConfig, env);
|
|
3420
|
+
var auth = typeof identityProvider === 'function' ? identityProvider() : createAuth(instanceConfig, env);
|
|
3247
3421
|
store.addSideEffectsHandler(createSideEffectsHandler({
|
|
3248
3422
|
emitter: emitter,
|
|
3249
3423
|
socket: socket,
|
|
@@ -3252,7 +3426,7 @@ var init = function init(config, env) {
|
|
|
3252
3426
|
}));
|
|
3253
3427
|
socketListener(store, socket);
|
|
3254
3428
|
|
|
3255
|
-
var sendRequestAction
|
|
3429
|
+
var sendRequestAction$1 = sendRequestAction.bind(null, store);
|
|
3256
3430
|
|
|
3257
3431
|
var startConnection = function startConnection() {
|
|
3258
3432
|
store.dispatch({
|
|
@@ -3264,23 +3438,15 @@ var init = function init(config, env) {
|
|
|
3264
3438
|
acceptGreeting: function acceptGreeting(_ref) {
|
|
3265
3439
|
var greetingId = _ref.greetingId,
|
|
3266
3440
|
uniqueId = _ref.uniqueId;
|
|
3267
|
-
return sendRequestAction
|
|
3441
|
+
return sendRequestAction$1(sendRequest(ACCEPT_GREETING, {
|
|
3268
3442
|
greeting_id: greetingId,
|
|
3269
3443
|
unique_id: uniqueId
|
|
3270
3444
|
}));
|
|
3271
3445
|
},
|
|
3272
|
-
activateChat: function activateChat(data) {
|
|
3273
|
-
log({
|
|
3274
|
-
env: env,
|
|
3275
|
-
licenseId: config.licenseId,
|
|
3276
|
-
eventName: 'chat_started'
|
|
3277
|
-
});
|
|
3278
|
-
return sendRequestAction$$1(sendRequest(ACTIVATE_CHAT, parseActivateChatData(data)));
|
|
3279
|
-
},
|
|
3280
3446
|
auth: auth,
|
|
3281
3447
|
cancelGreeting: function cancelGreeting(_ref2) {
|
|
3282
3448
|
var uniqueId = _ref2.uniqueId;
|
|
3283
|
-
return sendRequestAction
|
|
3449
|
+
return sendRequestAction$1(sendRequest(CANCEL_GREETING, {
|
|
3284
3450
|
unique_id: uniqueId
|
|
3285
3451
|
}));
|
|
3286
3452
|
},
|
|
@@ -3311,16 +3477,16 @@ var init = function init(config, env) {
|
|
|
3311
3477
|
},
|
|
3312
3478
|
connect: startConnection,
|
|
3313
3479
|
deactivateChat: function deactivateChat(_ref4) {
|
|
3314
|
-
var
|
|
3315
|
-
return sendRequestAction
|
|
3316
|
-
|
|
3480
|
+
var id = _ref4.id;
|
|
3481
|
+
return sendRequestAction$1(sendRequest(DEACTIVATE_CHAT, {
|
|
3482
|
+
id: id
|
|
3317
3483
|
}));
|
|
3318
3484
|
},
|
|
3319
3485
|
deleteChatProperties: function deleteChatProperties(_ref5) {
|
|
3320
|
-
var
|
|
3486
|
+
var id = _ref5.id,
|
|
3321
3487
|
properties = _ref5.properties;
|
|
3322
|
-
return sendRequestAction
|
|
3323
|
-
|
|
3488
|
+
return sendRequestAction$1(sendRequest(DELETE_CHAT_PROPERTIES, {
|
|
3489
|
+
id: id,
|
|
3324
3490
|
properties: properties
|
|
3325
3491
|
}));
|
|
3326
3492
|
},
|
|
@@ -3329,7 +3495,7 @@ var init = function init(config, env) {
|
|
|
3329
3495
|
threadId = _ref6.threadId,
|
|
3330
3496
|
eventId = _ref6.eventId,
|
|
3331
3497
|
properties = _ref6.properties;
|
|
3332
|
-
return sendRequestAction
|
|
3498
|
+
return sendRequestAction$1(sendRequest(DELETE_EVENT_PROPERTIES, {
|
|
3333
3499
|
chat_id: chatId,
|
|
3334
3500
|
thread_id: threadId,
|
|
3335
3501
|
event_id: eventId,
|
|
@@ -3340,24 +3506,22 @@ var init = function init(config, env) {
|
|
|
3340
3506
|
var chatId = _ref7.chatId,
|
|
3341
3507
|
threadId = _ref7.threadId,
|
|
3342
3508
|
properties = _ref7.properties;
|
|
3343
|
-
return sendRequestAction
|
|
3509
|
+
return sendRequestAction$1(sendRequest(DELETE_THREAD_PROPERTIES, {
|
|
3344
3510
|
chat_id: chatId,
|
|
3345
3511
|
thread_id: threadId,
|
|
3346
3512
|
properties: properties
|
|
3347
3513
|
}));
|
|
3348
3514
|
},
|
|
3349
|
-
destroy: function destroy
|
|
3515
|
+
destroy: function destroy$1() {
|
|
3350
3516
|
store.dispatch(destroy('manual'));
|
|
3351
3517
|
},
|
|
3352
3518
|
disconnect: function disconnect() {
|
|
3353
|
-
store.dispatch(
|
|
3354
|
-
type: PAUSE_CONNECTION
|
|
3355
|
-
});
|
|
3519
|
+
store.dispatch(pauseConnection('manual'));
|
|
3356
3520
|
},
|
|
3357
3521
|
getChat: function getChat(_ref8) {
|
|
3358
3522
|
var chatId = _ref8.chatId,
|
|
3359
3523
|
threadId = _ref8.threadId;
|
|
3360
|
-
return sendRequestAction
|
|
3524
|
+
return sendRequestAction$1(sendRequest(GET_CHAT, {
|
|
3361
3525
|
chat_id: chatId,
|
|
3362
3526
|
thread_id: threadId
|
|
3363
3527
|
}));
|
|
@@ -3367,12 +3531,12 @@ var init = function init(config, env) {
|
|
|
3367
3531
|
return createChatHistoryIterator(api, chatId);
|
|
3368
3532
|
},
|
|
3369
3533
|
getCustomer: function getCustomer() {
|
|
3370
|
-
return sendRequestAction
|
|
3534
|
+
return sendRequestAction$1(sendRequest(GET_CUSTOMER, {}));
|
|
3371
3535
|
},
|
|
3372
3536
|
getForm: function getForm(_ref10) {
|
|
3373
3537
|
var groupId = _ref10.groupId,
|
|
3374
3538
|
type = _ref10.type;
|
|
3375
|
-
return sendRequestAction
|
|
3539
|
+
return sendRequestAction$1(sendRequest(GET_FORM, {
|
|
3376
3540
|
group_id: groupId,
|
|
3377
3541
|
type: type
|
|
3378
3542
|
}));
|
|
@@ -3384,60 +3548,56 @@ var init = function init(config, env) {
|
|
|
3384
3548
|
|
|
3385
3549
|
var _params = params,
|
|
3386
3550
|
groupId = _params.groupId;
|
|
3387
|
-
return sendRequestAction
|
|
3551
|
+
return sendRequestAction$1(sendRequest(GET_PREDICTED_AGENT, typeof groupId === 'number' ? {
|
|
3388
3552
|
group_id: groupId
|
|
3389
3553
|
} : {}));
|
|
3390
3554
|
},
|
|
3391
3555
|
getUrlInfo: function getUrlInfo(_ref11) {
|
|
3392
3556
|
var url = _ref11.url;
|
|
3393
|
-
return sendRequestAction
|
|
3557
|
+
return sendRequestAction$1(sendRequest(GET_URL_INFO, {
|
|
3394
3558
|
url: url
|
|
3395
3559
|
}));
|
|
3396
3560
|
},
|
|
3397
|
-
listChats: function listChats(
|
|
3398
|
-
|
|
3399
|
-
|
|
3400
|
-
|
|
3401
|
-
pageId = _ref12.pageId;
|
|
3561
|
+
listChats: function listChats(params) {
|
|
3562
|
+
if (params === void 0) {
|
|
3563
|
+
params = {};
|
|
3564
|
+
}
|
|
3402
3565
|
|
|
3403
|
-
if (limit > CHATS_PAGINATION_MAX_LIMIT) {
|
|
3566
|
+
if ('limit' in params && typeof params.limit === 'number' && params.limit > CHATS_PAGINATION_MAX_LIMIT) {
|
|
3404
3567
|
return Promise.reject(new Error("Specified limit is too high (max " + CHATS_PAGINATION_MAX_LIMIT + ")."));
|
|
3405
3568
|
}
|
|
3406
3569
|
|
|
3407
|
-
return sendRequestAction
|
|
3408
|
-
limit: limit
|
|
3409
|
-
|
|
3570
|
+
return sendRequestAction$1(sendRequest(LIST_CHATS, params.pageId === undefined ? {
|
|
3571
|
+
limit: params.limit || 10
|
|
3572
|
+
} : {
|
|
3573
|
+
page_id: params.pageId
|
|
3410
3574
|
}));
|
|
3411
3575
|
},
|
|
3412
|
-
listGroupStatuses: function listGroupStatuses(
|
|
3413
|
-
var
|
|
3414
|
-
groupIds =
|
|
3576
|
+
listGroupStatuses: function listGroupStatuses(_temp) {
|
|
3577
|
+
var _ref12 = _temp === void 0 ? {} : _temp,
|
|
3578
|
+
groupIds = _ref12.groupIds;
|
|
3415
3579
|
|
|
3416
|
-
return sendRequestAction
|
|
3580
|
+
return sendRequestAction$1(sendRequest(LIST_GROUP_STATUSES, groupIds ? {
|
|
3417
3581
|
group_ids: groupIds
|
|
3418
3582
|
} : {
|
|
3419
3583
|
all: true
|
|
3420
3584
|
}));
|
|
3421
3585
|
},
|
|
3422
|
-
listThreads: function listThreads(
|
|
3423
|
-
|
|
3424
|
-
|
|
3425
|
-
|
|
3426
|
-
|
|
3427
|
-
|
|
3428
|
-
|
|
3429
|
-
|
|
3430
|
-
|
|
3431
|
-
sort_order: sortOrder,
|
|
3432
|
-
limit: limit,
|
|
3433
|
-
page_id: pageId,
|
|
3434
|
-
min_events_count: minEventsCount
|
|
3586
|
+
listThreads: function listThreads(params) {
|
|
3587
|
+
return sendRequestAction$1(sendRequest(LIST_THREADS, params.pageId === undefined ? {
|
|
3588
|
+
chat_id: params.chatId,
|
|
3589
|
+
sort_order: params.sortOrder,
|
|
3590
|
+
limit: params.limit,
|
|
3591
|
+
min_events_count: params.minEventsCount
|
|
3592
|
+
} : {
|
|
3593
|
+
chat_id: params.chatId,
|
|
3594
|
+
page_id: params.pageId
|
|
3435
3595
|
}));
|
|
3436
3596
|
},
|
|
3437
|
-
markEventsAsSeen: function markEventsAsSeen(
|
|
3438
|
-
var chatId =
|
|
3439
|
-
seenUpTo =
|
|
3440
|
-
return sendRequestAction
|
|
3597
|
+
markEventsAsSeen: function markEventsAsSeen(_ref13) {
|
|
3598
|
+
var chatId = _ref13.chatId,
|
|
3599
|
+
seenUpTo = _ref13.seenUpTo;
|
|
3600
|
+
return sendRequestAction$1(sendRequest(MARK_EVENTS_AS_SEEN, {
|
|
3441
3601
|
chat_id: chatId,
|
|
3442
3602
|
seen_up_to: seenUpTo
|
|
3443
3603
|
}));
|
|
@@ -3450,8 +3610,8 @@ var init = function init(config, env) {
|
|
|
3450
3610
|
rating = params.rating;
|
|
3451
3611
|
return api.listThreads({
|
|
3452
3612
|
chatId: chatId
|
|
3453
|
-
}).then(function (
|
|
3454
|
-
var threads =
|
|
3613
|
+
}).then(function (_ref14) {
|
|
3614
|
+
var threads = _ref14.threads;
|
|
3455
3615
|
|
|
3456
3616
|
if (!threads.length) {
|
|
3457
3617
|
throw createError({
|
|
@@ -3469,53 +3629,61 @@ var init = function init(config, env) {
|
|
|
3469
3629
|
});
|
|
3470
3630
|
});
|
|
3471
3631
|
},
|
|
3632
|
+
resumeChat: function resumeChat(data) {
|
|
3633
|
+
log({
|
|
3634
|
+
env: env,
|
|
3635
|
+
licenseId: config.licenseId,
|
|
3636
|
+
eventName: 'chat_started'
|
|
3637
|
+
});
|
|
3638
|
+
return sendRequestAction$1(sendRequest(RESUME_CHAT, parseResumeChatData(data)));
|
|
3639
|
+
},
|
|
3472
3640
|
sendEvent: function (_sendEvent) {
|
|
3473
|
-
function sendEvent
|
|
3641
|
+
function sendEvent(_x) {
|
|
3474
3642
|
return _sendEvent.apply(this, arguments);
|
|
3475
3643
|
}
|
|
3476
3644
|
|
|
3477
|
-
sendEvent
|
|
3645
|
+
sendEvent.toString = function () {
|
|
3478
3646
|
return _sendEvent.toString();
|
|
3479
3647
|
};
|
|
3480
3648
|
|
|
3481
|
-
return sendEvent
|
|
3649
|
+
return sendEvent;
|
|
3482
3650
|
}(function (params) {
|
|
3483
|
-
return sendRequestAction
|
|
3651
|
+
return sendRequestAction$1(sendEvent(params));
|
|
3484
3652
|
}),
|
|
3485
|
-
sendTicketForm: function sendTicketForm
|
|
3653
|
+
sendTicketForm: function sendTicketForm$1(options) {
|
|
3486
3654
|
return sendTicketForm(store, auth, options);
|
|
3487
3655
|
},
|
|
3488
|
-
sendRichMessagePostback: function sendRichMessagePostback(
|
|
3489
|
-
var chatId =
|
|
3490
|
-
threadId =
|
|
3491
|
-
eventId =
|
|
3492
|
-
postback =
|
|
3493
|
-
return sendRequestAction
|
|
3656
|
+
sendRichMessagePostback: function sendRichMessagePostback(_ref15) {
|
|
3657
|
+
var chatId = _ref15.chatId,
|
|
3658
|
+
threadId = _ref15.threadId,
|
|
3659
|
+
eventId = _ref15.eventId,
|
|
3660
|
+
postback = _ref15.postback;
|
|
3661
|
+
return sendRequestAction$1(sendRequest(SEND_RICH_MESSAGE_POSTBACK, {
|
|
3494
3662
|
chat_id: chatId,
|
|
3495
3663
|
event_id: eventId,
|
|
3496
3664
|
thread_id: threadId,
|
|
3497
3665
|
postback: postback
|
|
3498
3666
|
}));
|
|
3499
3667
|
},
|
|
3500
|
-
setCustomerSessionFields: function setCustomerSessionFields(
|
|
3501
|
-
var sessionFields =
|
|
3502
|
-
return sendRequestAction
|
|
3668
|
+
setCustomerSessionFields: function setCustomerSessionFields(_ref16) {
|
|
3669
|
+
var sessionFields = _ref16.sessionFields;
|
|
3670
|
+
return sendRequestAction$1(sendRequest(SET_CUSTOMER_SESSION_FIELDS, {
|
|
3503
3671
|
session_fields: parseCustomerSessionFields(sessionFields)
|
|
3504
3672
|
}));
|
|
3505
3673
|
},
|
|
3506
|
-
setSneakPeek: function setSneakPeek(
|
|
3507
|
-
var chatId =
|
|
3508
|
-
sneakPeekText =
|
|
3674
|
+
setSneakPeek: function setSneakPeek(_ref17) {
|
|
3675
|
+
var chatId = _ref17.chatId,
|
|
3676
|
+
sneakPeekText = _ref17.sneakPeekText;
|
|
3509
3677
|
var state = store.getState();
|
|
3510
3678
|
|
|
3511
3679
|
if (!isChatActive(state, chatId) || !isConnected(state)) {
|
|
3512
3680
|
return;
|
|
3513
3681
|
}
|
|
3514
3682
|
|
|
3515
|
-
sendRequestAction
|
|
3683
|
+
sendRequestAction$1(sendRequest(SEND_SNEAK_PEEK, {
|
|
3516
3684
|
chat_id: chatId,
|
|
3517
3685
|
sneak_peek_text: sneakPeekText
|
|
3518
|
-
}))
|
|
3686
|
+
}))["catch"](noop);
|
|
3519
3687
|
},
|
|
3520
3688
|
startChat: function startChat(data) {
|
|
3521
3689
|
if (data === void 0) {
|
|
@@ -3527,18 +3695,18 @@ var init = function init(config, env) {
|
|
|
3527
3695
|
licenseId: config.licenseId,
|
|
3528
3696
|
eventName: 'chat_started'
|
|
3529
3697
|
});
|
|
3530
|
-
return sendRequestAction
|
|
3698
|
+
return sendRequestAction$1(sendRequest(START_CHAT, parseStartChatData(data)));
|
|
3531
3699
|
},
|
|
3532
|
-
updateChatProperties: function updateChatProperties(
|
|
3533
|
-
var
|
|
3534
|
-
properties =
|
|
3535
|
-
return sendRequestAction
|
|
3536
|
-
|
|
3700
|
+
updateChatProperties: function updateChatProperties(_ref18) {
|
|
3701
|
+
var id = _ref18.id,
|
|
3702
|
+
properties = _ref18.properties;
|
|
3703
|
+
return sendRequestAction$1(sendRequest(UPDATE_CHAT_PROPERTIES, {
|
|
3704
|
+
id: id,
|
|
3537
3705
|
properties: properties
|
|
3538
3706
|
}));
|
|
3539
3707
|
},
|
|
3540
3708
|
updateCustomer: function updateCustomer(update) {
|
|
3541
|
-
return sendRequestAction
|
|
3709
|
+
return sendRequestAction$1(sendRequest(UPDATE_CUSTOMER, parseCustomerUpdate(update)));
|
|
3542
3710
|
},
|
|
3543
3711
|
updateCustomerPage: function updateCustomerPage(page) {
|
|
3544
3712
|
store.dispatch({
|
|
@@ -3546,29 +3714,29 @@ var init = function init(config, env) {
|
|
|
3546
3714
|
payload: pickOwn(['title', 'url'], page)
|
|
3547
3715
|
});
|
|
3548
3716
|
},
|
|
3549
|
-
updateEventProperties: function updateEventProperties(
|
|
3550
|
-
var chatId =
|
|
3551
|
-
threadId =
|
|
3552
|
-
eventId =
|
|
3553
|
-
properties =
|
|
3554
|
-
return sendRequestAction
|
|
3717
|
+
updateEventProperties: function updateEventProperties(_ref19) {
|
|
3718
|
+
var chatId = _ref19.chatId,
|
|
3719
|
+
threadId = _ref19.threadId,
|
|
3720
|
+
eventId = _ref19.eventId,
|
|
3721
|
+
properties = _ref19.properties;
|
|
3722
|
+
return sendRequestAction$1(sendRequest(UPDATE_EVENT_PROPERTIES, {
|
|
3555
3723
|
chat_id: chatId,
|
|
3556
3724
|
event_id: eventId,
|
|
3557
3725
|
thread_id: threadId,
|
|
3558
3726
|
properties: properties
|
|
3559
3727
|
}));
|
|
3560
3728
|
},
|
|
3561
|
-
updateThreadProperties: function updateThreadProperties(
|
|
3562
|
-
var chatId =
|
|
3563
|
-
threadId =
|
|
3564
|
-
properties =
|
|
3565
|
-
return sendRequestAction
|
|
3729
|
+
updateThreadProperties: function updateThreadProperties(_ref20) {
|
|
3730
|
+
var chatId = _ref20.chatId,
|
|
3731
|
+
threadId = _ref20.threadId,
|
|
3732
|
+
properties = _ref20.properties;
|
|
3733
|
+
return sendRequestAction$1(sendRequest(UPDATE_THREAD_PROPERTIES, {
|
|
3566
3734
|
chat_id: chatId,
|
|
3567
3735
|
thread_id: threadId,
|
|
3568
3736
|
properties: properties
|
|
3569
3737
|
}));
|
|
3570
3738
|
},
|
|
3571
|
-
uploadFile: function uploadFile
|
|
3739
|
+
uploadFile: function uploadFile$1(options) {
|
|
3572
3740
|
return uploadFile({
|
|
3573
3741
|
auth: auth,
|
|
3574
3742
|
store: store
|
|
@@ -3590,4 +3758,4 @@ var init = function init(config, env) {
|
|
|
3590
3758
|
return api;
|
|
3591
3759
|
};
|
|
3592
3760
|
|
|
3593
|
-
export {
|
|
3761
|
+
export { debug, init, parseCustomEvent, parseEvent$1 as parseEvent, parseFile, parseFilledForm, parseForm$1 as parseForm, parseGreeting, parseMessage, parseRichMessage, parseSystemMessage };
|