@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
|
@@ -2,25 +2,35 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
var createAuth = require('@livechat/customer-auth');
|
|
6
|
+
var mitt = require('@livechat/mitt');
|
|
7
7
|
var dataUtils = require('@livechat/data-utils');
|
|
8
|
-
var deferred = _interopDefault(require('@livechat/deferred'));
|
|
9
8
|
var redux = require('redux');
|
|
10
|
-
var createSideEffectsMiddleware =
|
|
11
|
-
var
|
|
12
|
-
var promiseTry =
|
|
13
|
-
var
|
|
14
|
-
var
|
|
9
|
+
var createSideEffectsMiddleware = require('@livechat/side-effects-middleware');
|
|
10
|
+
var deferred = require('@livechat/deferred');
|
|
11
|
+
var promiseTry = require('@livechat/promise-try');
|
|
12
|
+
var createBackoff = require('@livechat/backoff');
|
|
13
|
+
var storage = require('@livechat/isomorphic-storage');
|
|
14
|
+
var unfetch = require('unfetch');
|
|
15
15
|
var urlUtils = require('@livechat/url-utils');
|
|
16
|
-
var createPlatformClient =
|
|
17
|
-
var
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
var createPlatformClient = require('@livechat/platform-client');
|
|
17
|
+
var rawUploadFile = require('@livechat/file-upload');
|
|
18
|
+
|
|
19
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
20
|
+
|
|
21
|
+
var createAuth__default = /*#__PURE__*/_interopDefaultLegacy(createAuth);
|
|
22
|
+
var mitt__default = /*#__PURE__*/_interopDefaultLegacy(mitt);
|
|
23
|
+
var createSideEffectsMiddleware__default = /*#__PURE__*/_interopDefaultLegacy(createSideEffectsMiddleware);
|
|
24
|
+
var deferred__default = /*#__PURE__*/_interopDefaultLegacy(deferred);
|
|
25
|
+
var promiseTry__default = /*#__PURE__*/_interopDefaultLegacy(promiseTry);
|
|
26
|
+
var createBackoff__default = /*#__PURE__*/_interopDefaultLegacy(createBackoff);
|
|
27
|
+
var storage__default = /*#__PURE__*/_interopDefaultLegacy(storage);
|
|
28
|
+
var unfetch__default = /*#__PURE__*/_interopDefaultLegacy(unfetch);
|
|
29
|
+
var createPlatformClient__default = /*#__PURE__*/_interopDefaultLegacy(createPlatformClient);
|
|
30
|
+
var rawUploadFile__default = /*#__PURE__*/_interopDefaultLegacy(rawUploadFile);
|
|
21
31
|
|
|
22
32
|
function _extends() {
|
|
23
|
-
_extends = Object.assign
|
|
33
|
+
_extends = Object.assign ? Object.assign.bind() : function (target) {
|
|
24
34
|
for (var i = 1; i < arguments.length; i++) {
|
|
25
35
|
var source = arguments[i];
|
|
26
36
|
|
|
@@ -33,7 +43,6 @@ function _extends() {
|
|
|
33
43
|
|
|
34
44
|
return target;
|
|
35
45
|
};
|
|
36
|
-
|
|
37
46
|
return _extends.apply(this, arguments);
|
|
38
47
|
}
|
|
39
48
|
|
|
@@ -97,11 +106,13 @@ var CONNECTION_LOST = 'CONNECTION_LOST';
|
|
|
97
106
|
var IDENTITY_MISMATCH = 'IDENTITY_MISMATCH';
|
|
98
107
|
var MISDIRECTED_CONNECTION = 'MISDIRECTED_CONNECTION';
|
|
99
108
|
var MISSING_CHAT_THREAD = 'MISSING_CHAT_THREAD';
|
|
109
|
+
var NO_CONNECTION = 'NO_CONNECTION';
|
|
100
110
|
var REQUEST_TIMEOUT = 'REQUEST_TIMEOUT';
|
|
101
|
-
var
|
|
111
|
+
var SDK_DESTROYED = 'SDK_DESTROYED';
|
|
112
|
+
var SERVICE_TEMPORARILY_UNAVAILABLE = 'SERVICE_TEMPORARILY_UNAVAILABLE';
|
|
113
|
+
var TOO_BIG_FILE = 'TOO_BIG_FILE';
|
|
102
114
|
|
|
103
115
|
var ACCEPT_GREETING = 'accept_greeting';
|
|
104
|
-
var ACTIVATE_CHAT = 'activate_chat';
|
|
105
116
|
var CANCEL_GREETING = 'cancel_greeting';
|
|
106
117
|
var CHECK_GOALS$1 = 'check_goals';
|
|
107
118
|
var DEACTIVATE_CHAT = 'deactivate_chat';
|
|
@@ -118,6 +129,7 @@ var LIST_GROUP_STATUSES = 'list_group_statuses';
|
|
|
118
129
|
var LIST_THREADS = 'list_threads';
|
|
119
130
|
var LOGIN = 'login';
|
|
120
131
|
var MARK_EVENTS_AS_SEEN = 'mark_events_as_seen';
|
|
132
|
+
var RESUME_CHAT = 'resume_chat';
|
|
121
133
|
var SEND_EVENT = 'send_event';
|
|
122
134
|
var SEND_RICH_MESSAGE_POSTBACK = 'send_rich_message_postback';
|
|
123
135
|
var SEND_SNEAK_PEEK = 'send_sneak_peek';
|
|
@@ -130,8 +142,6 @@ var UPDATE_EVENT_PROPERTIES = 'update_event_properties';
|
|
|
130
142
|
var UPDATE_THREAD_PROPERTIES = 'update_thread_properties';
|
|
131
143
|
var UPLOAD_FILE = 'upload_file';
|
|
132
144
|
|
|
133
|
-
var DESC = 'desc';
|
|
134
|
-
|
|
135
145
|
var createReducer = function createReducer(initialState, reducersMap) {
|
|
136
146
|
if (process.env.NODE_ENV !== 'development' && reducersMap[undefined]) {
|
|
137
147
|
// eslint-disable-next-line no-console
|
|
@@ -204,7 +214,7 @@ var getApiOrigin = function getApiOrigin(state) {
|
|
|
204
214
|
return "https://api" + regionPart + getEnvPart(state) + ".livechatinc.com";
|
|
205
215
|
};
|
|
206
216
|
var getServerUrl = function getServerUrl(state) {
|
|
207
|
-
return getApiOrigin(state) + "/v3.
|
|
217
|
+
return getApiOrigin(state) + "/v3.3/customer";
|
|
208
218
|
};
|
|
209
219
|
var createInitialState = function createInitialState(initialStateData) {
|
|
210
220
|
var _initialStateData$app = initialStateData.application,
|
|
@@ -226,7 +236,7 @@ var createInitialState = function createInitialState(initialStateData) {
|
|
|
226
236
|
return {
|
|
227
237
|
application: _extends({}, application, {
|
|
228
238
|
name: "customer_sdk",
|
|
229
|
-
version: "
|
|
239
|
+
version: "3.1.1"
|
|
230
240
|
}),
|
|
231
241
|
licenseId: licenseId,
|
|
232
242
|
env: env,
|
|
@@ -254,7 +264,6 @@ var createInitialState = function createInitialState(initialStateData) {
|
|
|
254
264
|
var removeStoredRequest = function removeStoredRequest(state, _ref2) {
|
|
255
265
|
var id = _ref2.id;
|
|
256
266
|
|
|
257
|
-
// eslint-disable-next-line no-unused-vars
|
|
258
267
|
var _state$requests = state.requests,
|
|
259
268
|
requests = _objectWithoutPropertiesLoose(_state$requests, [id].map(_toPropertyKey));
|
|
260
269
|
|
|
@@ -285,7 +294,7 @@ var createReducer$1 = (function (state) {
|
|
|
285
294
|
return setConnectionStatus(CONNECTED, state);
|
|
286
295
|
}, _createReducer[PAUSE_CONNECTION] = function (state) {
|
|
287
296
|
return setConnectionStatus(PAUSED, state);
|
|
288
|
-
}, _createReducer[REQUEST_FAILED] = removeStoredRequest, _createReducer[RESPONSE_RECEIVED] = removeStoredRequest, _createReducer[SEND_REQUEST] = function (state, _ref4) {
|
|
297
|
+
}, _createReducer[REQUEST_FAILED] = removeStoredRequest, _createReducer[RESPONSE_RECEIVED] = removeStoredRequest, _createReducer[PUSH_RESPONSE_RECEIVED] = removeStoredRequest, _createReducer[SEND_REQUEST] = function (state, _ref4) {
|
|
289
298
|
var _extends2;
|
|
290
299
|
|
|
291
300
|
var promise = _ref4.promise,
|
|
@@ -342,7 +351,7 @@ function finalCreateStore(initialStateData) {
|
|
|
342
351
|
var compose = process.env.NODE_ENV === 'development' && typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({
|
|
343
352
|
name: '@livechat/customer-sdk'
|
|
344
353
|
}) : dataUtils.identity;
|
|
345
|
-
var sideEffectsMiddleware =
|
|
354
|
+
var sideEffectsMiddleware = createSideEffectsMiddleware__default['default']();
|
|
346
355
|
var store = redux.createStore(createReducer$1(createInitialState(initialStateData)), compose(redux.applyMiddleware(sideEffectsMiddleware)));
|
|
347
356
|
store.addSideEffectsHandler = sideEffectsMiddleware.add;
|
|
348
357
|
return store;
|
|
@@ -357,14 +366,21 @@ function createError(_ref) {
|
|
|
357
366
|
}
|
|
358
367
|
|
|
359
368
|
var ACCESS_TOKEN_EXPIRED = 'access_token_expired';
|
|
360
|
-
var CUSTOMER_BANNED = 'customer_banned';
|
|
369
|
+
var CUSTOMER_BANNED = 'customer_banned'; // customer tried reconnecting too many times after they received too_many_connections error
|
|
370
|
+
|
|
361
371
|
var CUSTOMER_TEMPORARILY_BLOCKED = 'customer_temporarily_blocked';
|
|
372
|
+
var LICENSE_EXPIRED = 'license_expired';
|
|
362
373
|
var LICENSE_NOT_FOUND = 'license_not_found';
|
|
363
374
|
var MISDIRECTED_CONNECTION$1 = 'misdirected_connection';
|
|
364
|
-
var PRODUCT_VERSION_CHANGED = 'product_version_changed';
|
|
375
|
+
var PRODUCT_VERSION_CHANGED = 'product_version_changed'; // the limit of connections per user host has been exceeded
|
|
376
|
+
// or rate limit for new connections has been hit
|
|
377
|
+
// (in 3.2 only the latter case, the first one is using `too_many_connections` to avoid breaking changes)
|
|
378
|
+
|
|
379
|
+
var SERVICE_TEMPORARILY_UNAVAILABLE$1 = 'service_temporarily_unavailable'; // the limit of those connections is per user
|
|
380
|
+
|
|
365
381
|
var TOO_MANY_CONNECTIONS = 'too_many_connections'; // the limit of unauthorized connections is per IP
|
|
366
382
|
|
|
367
|
-
var TOO_MANY_UNAUTHORIZED_CONNECTIONS
|
|
383
|
+
var TOO_MANY_UNAUTHORIZED_CONNECTIONS = 'too_many_unauthorized_connections';
|
|
368
384
|
var UNSUPPORTED_VERSION = 'unsupported_version';
|
|
369
385
|
|
|
370
386
|
var CHAT_DEACTIVATED = 'chat_deactivated';
|
|
@@ -393,11 +409,42 @@ var THREAD_PROPERTIES_UPDATED = 'thread_properties_updated';
|
|
|
393
409
|
var USER_ADDED_TO_CHAT = 'user_added_to_chat';
|
|
394
410
|
var USER_REMOVED_FROM_CHAT = 'user_removed_from_chat';
|
|
395
411
|
|
|
412
|
+
var serverPushActions = /*#__PURE__*/Object.freeze({
|
|
413
|
+
__proto__: null,
|
|
414
|
+
CHAT_DEACTIVATED: CHAT_DEACTIVATED,
|
|
415
|
+
CHAT_PROPERTIES_DELETED: CHAT_PROPERTIES_DELETED,
|
|
416
|
+
CHAT_PROPERTIES_UPDATED: CHAT_PROPERTIES_UPDATED,
|
|
417
|
+
CHAT_TRANSFERRED: CHAT_TRANSFERRED,
|
|
418
|
+
CUSTOMER_DISCONNECTED: CUSTOMER_DISCONNECTED,
|
|
419
|
+
CUSTOMER_PAGE_UPDATED: CUSTOMER_PAGE_UPDATED,
|
|
420
|
+
CUSTOMER_SIDE_STORAGE_UPDATED: CUSTOMER_SIDE_STORAGE_UPDATED,
|
|
421
|
+
CUSTOMER_UPDATED: CUSTOMER_UPDATED,
|
|
422
|
+
EVENT_PROPERTIES_DELETED: EVENT_PROPERTIES_DELETED,
|
|
423
|
+
EVENT_PROPERTIES_UPDATED: EVENT_PROPERTIES_UPDATED,
|
|
424
|
+
EVENT_UPDATED: EVENT_UPDATED,
|
|
425
|
+
EVENTS_MARKED_AS_SEEN: EVENTS_MARKED_AS_SEEN,
|
|
426
|
+
GREETING_ACCEPTED: GREETING_ACCEPTED,
|
|
427
|
+
GREETING_CANCELED: GREETING_CANCELED,
|
|
428
|
+
INCOMING_CHAT: INCOMING_CHAT,
|
|
429
|
+
INCOMING_EVENT: INCOMING_EVENT,
|
|
430
|
+
INCOMING_GREETING: INCOMING_GREETING,
|
|
431
|
+
INCOMING_MULTICAST: INCOMING_MULTICAST,
|
|
432
|
+
INCOMING_RICH_MESSAGE_POSTBACK: INCOMING_RICH_MESSAGE_POSTBACK,
|
|
433
|
+
INCOMING_TYPING_INDICATOR: INCOMING_TYPING_INDICATOR,
|
|
434
|
+
QUEUE_POSITION_UPDATED: QUEUE_POSITION_UPDATED,
|
|
435
|
+
THREAD_PROPERTIES_DELETED: THREAD_PROPERTIES_DELETED,
|
|
436
|
+
THREAD_PROPERTIES_UPDATED: THREAD_PROPERTIES_UPDATED,
|
|
437
|
+
USER_ADDED_TO_CHAT: USER_ADDED_TO_CHAT,
|
|
438
|
+
USER_REMOVED_FROM_CHAT: USER_REMOVED_FROM_CHAT
|
|
439
|
+
});
|
|
440
|
+
|
|
396
441
|
var FILE = 'file';
|
|
442
|
+
var FORM = 'form';
|
|
397
443
|
var FILLED_FORM = 'filled_form';
|
|
398
444
|
var MESSAGE = 'message';
|
|
399
445
|
var RICH_MESSAGE = 'rich_message';
|
|
400
446
|
var SYSTEM_MESSAGE = 'system_message';
|
|
447
|
+
var CUSTOM = 'custom';
|
|
401
448
|
|
|
402
449
|
var createEventBase = function createEventBase(event) {
|
|
403
450
|
var base = {};
|
|
@@ -441,7 +488,8 @@ var parseEvent = function parseEvent(event) {
|
|
|
441
488
|
{
|
|
442
489
|
var file = _extends({}, createEventBase(event), {
|
|
443
490
|
type: event.type,
|
|
444
|
-
url: event.url
|
|
491
|
+
url: event.url,
|
|
492
|
+
alternative_text: event.alternativeText
|
|
445
493
|
});
|
|
446
494
|
|
|
447
495
|
return file;
|
|
@@ -494,6 +542,19 @@ var parseEvent = function parseEvent(event) {
|
|
|
494
542
|
|
|
495
543
|
return systemMessage;
|
|
496
544
|
}
|
|
545
|
+
|
|
546
|
+
case CUSTOM:
|
|
547
|
+
{
|
|
548
|
+
var customEvent = _extends({}, createEventBase(event), {
|
|
549
|
+
type: event.type
|
|
550
|
+
});
|
|
551
|
+
|
|
552
|
+
if (event.content) {
|
|
553
|
+
customEvent.content = event.content;
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
return customEvent;
|
|
557
|
+
}
|
|
497
558
|
}
|
|
498
559
|
};
|
|
499
560
|
|
|
@@ -514,9 +575,12 @@ var parseThreadData = function parseThreadData(thread) {
|
|
|
514
575
|
};
|
|
515
576
|
|
|
516
577
|
var parseStartChatData = function parseStartChatData(_ref) {
|
|
517
|
-
var
|
|
578
|
+
var _ref$active = _ref.active,
|
|
579
|
+
active = _ref$active === void 0 ? true : _ref$active,
|
|
580
|
+
chat = _ref.chat,
|
|
518
581
|
continuous = _ref.continuous;
|
|
519
582
|
var data = {
|
|
583
|
+
active: active,
|
|
520
584
|
chat: {}
|
|
521
585
|
};
|
|
522
586
|
|
|
@@ -548,7 +612,7 @@ var parseStartChatData = function parseStartChatData(_ref) {
|
|
|
548
612
|
|
|
549
613
|
return data;
|
|
550
614
|
};
|
|
551
|
-
var
|
|
615
|
+
var parseResumeChatData = function parseResumeChatData(requestData) {
|
|
552
616
|
var data = parseStartChatData(requestData);
|
|
553
617
|
return _extends({}, data, {
|
|
554
618
|
chat: _extends({}, data.chat, {
|
|
@@ -589,6 +653,14 @@ var loginSuccess = function loginSuccess(payload) {
|
|
|
589
653
|
payload: payload
|
|
590
654
|
};
|
|
591
655
|
};
|
|
656
|
+
var pauseConnection = function pauseConnection(reason) {
|
|
657
|
+
return {
|
|
658
|
+
type: PAUSE_CONNECTION,
|
|
659
|
+
payload: {
|
|
660
|
+
reason: reason
|
|
661
|
+
}
|
|
662
|
+
};
|
|
663
|
+
};
|
|
592
664
|
var prefetchToken = function prefetchToken(fresh) {
|
|
593
665
|
if (fresh === void 0) {
|
|
594
666
|
fresh = false;
|
|
@@ -666,7 +738,7 @@ var socketDisconnected = function socketDisconnected() {
|
|
|
666
738
|
var sendRequestAction = function sendRequestAction(store, action) {
|
|
667
739
|
action.payload.id = dataUtils.generateUniqueId(store.getState().requests);
|
|
668
740
|
|
|
669
|
-
var _deferred =
|
|
741
|
+
var _deferred = deferred__default['default'](),
|
|
670
742
|
resolve = _deferred.resolve,
|
|
671
743
|
reject = _deferred.reject,
|
|
672
744
|
promise = _deferred.promise;
|
|
@@ -693,15 +765,15 @@ var getSideStorageKey = function getSideStorageKey(store) {
|
|
|
693
765
|
};
|
|
694
766
|
|
|
695
767
|
var getSideStorage = function getSideStorage(store) {
|
|
696
|
-
return
|
|
768
|
+
return storage__default['default'].getItem(getSideStorageKey(store))["catch"](dataUtils.noop).then(function (sideStorage) {
|
|
697
769
|
return JSON.parse(sideStorage || '{}');
|
|
698
770
|
}) // shouldnt get triggered, just a defensive measure against malformed storage entries
|
|
699
|
-
|
|
771
|
+
["catch"](function () {
|
|
700
772
|
return {};
|
|
701
773
|
});
|
|
702
774
|
};
|
|
703
775
|
var saveSideStorage = function saveSideStorage(store, sideStorage) {
|
|
704
|
-
return
|
|
776
|
+
return storage__default['default'].setItem(getSideStorageKey(store), JSON.stringify(sideStorage))["catch"](dataUtils.noop);
|
|
705
777
|
};
|
|
706
778
|
|
|
707
779
|
var taskChain = function taskChain(_ref, onSuccess, onError) {
|
|
@@ -711,7 +783,7 @@ var taskChain = function taskChain(_ref, onSuccess, onError) {
|
|
|
711
783
|
|
|
712
784
|
var next = function next(intermediateResult) {
|
|
713
785
|
var step = steps.shift();
|
|
714
|
-
|
|
786
|
+
promiseTry__default['default'](function () {
|
|
715
787
|
return step(intermediateResult);
|
|
716
788
|
}).then(function (result) {
|
|
717
789
|
if (cancelled) {
|
|
@@ -755,18 +827,23 @@ function createLoginTask(auth, customerDataProvider) {
|
|
|
755
827
|
var store;
|
|
756
828
|
var sentPage = null;
|
|
757
829
|
var task;
|
|
758
|
-
var
|
|
830
|
+
var backoffConfig = {
|
|
759
831
|
min: 300,
|
|
760
832
|
max: 60000,
|
|
761
833
|
jitter: 0.3
|
|
762
|
-
}
|
|
834
|
+
};
|
|
835
|
+
var defaultBackoffStrategy = createBackoff__default['default'](backoffConfig);
|
|
836
|
+
var slowerBackoffStrategy = createBackoff__default['default'](_extends({}, backoffConfig, {
|
|
837
|
+
min: 1000
|
|
838
|
+
}));
|
|
839
|
+
var currentBackoffStrategy = defaultBackoffStrategy;
|
|
763
840
|
|
|
764
|
-
var destroy
|
|
841
|
+
var destroy$1 = function destroy$1(reason) {
|
|
765
842
|
return store.dispatch(destroy(reason));
|
|
766
843
|
};
|
|
767
844
|
|
|
768
|
-
var reconnect
|
|
769
|
-
return store.dispatch(reconnect(
|
|
845
|
+
var reconnect$1 = function reconnect$1() {
|
|
846
|
+
return store.dispatch(reconnect(currentBackoffStrategy.duration()));
|
|
770
847
|
};
|
|
771
848
|
|
|
772
849
|
var getTokenAndSideStorage = function getTokenAndSideStorage() {
|
|
@@ -789,7 +866,7 @@ function createLoginTask(auth, customerDataProvider) {
|
|
|
789
866
|
return [token, sideStorage];
|
|
790
867
|
};
|
|
791
868
|
|
|
792
|
-
var
|
|
869
|
+
var _sendLogin = function sendLogin(_ref3) {
|
|
793
870
|
var token = _ref3[0],
|
|
794
871
|
sideStorage = _ref3[1];
|
|
795
872
|
var state = store.getState();
|
|
@@ -836,71 +913,91 @@ function createLoginTask(auth, customerDataProvider) {
|
|
|
836
913
|
page = _store$getState.page;
|
|
837
914
|
|
|
838
915
|
if (sentPage !== page) {
|
|
839
|
-
sendLoginFlowRequest(store, UPDATE_CUSTOMER_PAGE$1, page)
|
|
916
|
+
sendLoginFlowRequest(store, UPDATE_CUSTOMER_PAGE$1, page)["catch"](dataUtils.noop);
|
|
840
917
|
}
|
|
841
918
|
|
|
842
919
|
sentPage = null;
|
|
843
920
|
};
|
|
844
921
|
|
|
845
|
-
return
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
922
|
+
return {
|
|
923
|
+
sendLogin: function sendLogin(_store) {
|
|
924
|
+
var _task;
|
|
925
|
+
|
|
926
|
+
// after switching to callbags, we should be able to use smth similar to redux-observable
|
|
927
|
+
// and thus just use store given to epic
|
|
928
|
+
store = _store;
|
|
929
|
+
(_task = task) == null ? void 0 : _task.cancel();
|
|
930
|
+
task = taskChain([getTokenAndSideStorage, dispatchSelfId, _sendLogin], function (loginResponse) {
|
|
931
|
+
task = null;
|
|
932
|
+
defaultBackoffStrategy.reset();
|
|
933
|
+
slowerBackoffStrategy.reset();
|
|
934
|
+
currentBackoffStrategy = defaultBackoffStrategy; // TODO: rethink if this should be handled by SDK consumer
|
|
935
|
+
|
|
936
|
+
updateCustomerPageIfNeeded();
|
|
937
|
+
store.dispatch(loginSuccess(loginResponse));
|
|
938
|
+
}, function (error) {
|
|
939
|
+
task = null;
|
|
940
|
+
|
|
941
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
942
|
+
console.error('[Customer SDK] Login flow has thrown code', error.code, 'with', error);
|
|
943
|
+
}
|
|
849
944
|
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
945
|
+
switch (error.code) {
|
|
946
|
+
case AUTHENTICATION:
|
|
947
|
+
auth.getFreshToken();
|
|
948
|
+
reconnect$1();
|
|
949
|
+
return;
|
|
853
950
|
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
951
|
+
case CONNECTION_LOST:
|
|
952
|
+
// this is connectivity problem, not a server error
|
|
953
|
+
// and is taken care of in socket module
|
|
954
|
+
// as it has its own backoff implementation
|
|
955
|
+
return;
|
|
857
956
|
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
862
|
-
console.error('[Customer SDK] Login flow has thrown code', error.code, 'with', error);
|
|
863
|
-
}
|
|
957
|
+
case MISDIRECTED_CONNECTION:
|
|
958
|
+
// socket gets reinitialized on this anyway, so just ignore it here
|
|
959
|
+
return;
|
|
864
960
|
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
auth
|
|
868
|
-
reconnect$$1();
|
|
869
|
-
return;
|
|
961
|
+
case SDK_DESTROYED:
|
|
962
|
+
return;
|
|
963
|
+
// those are auth errors, we should maybe export those constants from the auth package
|
|
870
964
|
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
965
|
+
case 'SSO_IDENTITY_EXCEPTION':
|
|
966
|
+
case 'SSO_OAUTH_EXCEPTION':
|
|
967
|
+
if (error.message === 'server_error' || error.message === 'temporarily_unavailable') {
|
|
968
|
+
reconnect$1();
|
|
969
|
+
return;
|
|
970
|
+
}
|
|
876
971
|
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
return;
|
|
880
|
-
// those are auth errors, we should maybe export those constants from the auth package
|
|
972
|
+
destroy$1(error.message);
|
|
973
|
+
return;
|
|
881
974
|
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
if (error.message === 'server_error' || error.message === 'temporarily_unavailable') {
|
|
885
|
-
reconnect$$1();
|
|
975
|
+
case USERS_LIMIT_REACHED:
|
|
976
|
+
store.dispatch(pauseConnection(error.code.toLowerCase()));
|
|
886
977
|
return;
|
|
887
|
-
}
|
|
888
978
|
|
|
889
|
-
|
|
890
|
-
|
|
979
|
+
case IDENTITY_MISMATCH:
|
|
980
|
+
case CUSTOMER_BANNED$1:
|
|
981
|
+
case WRONG_PRODUCT_VERSION:
|
|
982
|
+
destroy$1(error.code.toLowerCase());
|
|
983
|
+
return;
|
|
891
984
|
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
destroy$$1(error.code.toLowerCase());
|
|
897
|
-
return;
|
|
985
|
+
case SERVICE_TEMPORARILY_UNAVAILABLE:
|
|
986
|
+
currentBackoffStrategy = slowerBackoffStrategy;
|
|
987
|
+
reconnect$1();
|
|
988
|
+
return;
|
|
898
989
|
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
990
|
+
default:
|
|
991
|
+
reconnect$1();
|
|
992
|
+
return;
|
|
993
|
+
}
|
|
994
|
+
});
|
|
995
|
+
},
|
|
996
|
+
cancel: function cancel() {
|
|
997
|
+
var _task2;
|
|
998
|
+
|
|
999
|
+
(_task2 = task) == null ? void 0 : _task2.cancel();
|
|
1000
|
+
}
|
|
904
1001
|
};
|
|
905
1002
|
}
|
|
906
1003
|
|
|
@@ -922,13 +1019,11 @@ var checkGoals = function checkGoals(store, auth, sessionFields) {
|
|
|
922
1019
|
license_id: state.licenseId
|
|
923
1020
|
});
|
|
924
1021
|
var payload = {
|
|
925
|
-
// TODO: remove sending customer_fields once API releases their changes
|
|
926
|
-
customer_fields: sessionFields || {},
|
|
927
1022
|
session_fields: parseCustomerSessionFields(sessionFields || {}),
|
|
928
1023
|
group_id: state.groupId || 0,
|
|
929
1024
|
page_url: page.url
|
|
930
1025
|
};
|
|
931
|
-
return
|
|
1026
|
+
return unfetch__default['default'](getServerUrl(state) + "/action/" + CHECK_GOALS$1 + "?" + query, {
|
|
932
1027
|
method: 'POST',
|
|
933
1028
|
headers: {
|
|
934
1029
|
'Content-Type': 'application/json',
|
|
@@ -1024,13 +1119,15 @@ var parseImage = function parseImage(thread, image) {
|
|
|
1024
1119
|
width: image.width,
|
|
1025
1120
|
height: image.height,
|
|
1026
1121
|
thumbnails: {
|
|
1027
|
-
default: _extends({
|
|
1122
|
+
"default": _extends({
|
|
1028
1123
|
url: image.thumbnail_url
|
|
1029
1124
|
}, downsizeWithRatio(300, image)),
|
|
1030
1125
|
high: _extends({
|
|
1031
1126
|
url: image.thumbnail2x_url
|
|
1032
1127
|
}, downsizeWithRatio(600, image))
|
|
1033
1128
|
}
|
|
1129
|
+
}, image.alternative_text && {
|
|
1130
|
+
alternativeText: image.alternative_text
|
|
1034
1131
|
});
|
|
1035
1132
|
};
|
|
1036
1133
|
|
|
@@ -1046,6 +1143,14 @@ var parseFile = function parseFile(thread, file) {
|
|
|
1046
1143
|
name: file.name
|
|
1047
1144
|
});
|
|
1048
1145
|
};
|
|
1146
|
+
var parseForm = function parseForm(thread, form) {
|
|
1147
|
+
return _extends({}, parseCommonEventProps(thread, form), {
|
|
1148
|
+
authorId: 'system',
|
|
1149
|
+
type: FORM,
|
|
1150
|
+
formId: form.form_id,
|
|
1151
|
+
fields: form.fields
|
|
1152
|
+
});
|
|
1153
|
+
};
|
|
1049
1154
|
var parseFilledForm = function parseFilledForm(thread, filledForm) {
|
|
1050
1155
|
return _extends({}, parseCommonEventProps(thread, filledForm), {
|
|
1051
1156
|
type: FILLED_FORM,
|
|
@@ -1081,6 +1186,13 @@ var parseMessage = function parseMessage(thread, message) {
|
|
|
1081
1186
|
text: message.text
|
|
1082
1187
|
});
|
|
1083
1188
|
};
|
|
1189
|
+
var parseCustomEvent = function parseCustomEvent(thread, event) {
|
|
1190
|
+
return _extends({}, parseCommonEventProps(thread, event), {
|
|
1191
|
+
type: CUSTOM
|
|
1192
|
+
}, event.content && {
|
|
1193
|
+
content: event.content
|
|
1194
|
+
});
|
|
1195
|
+
};
|
|
1084
1196
|
|
|
1085
1197
|
var parseRichMessageElement = function parseRichMessageElement(element) {
|
|
1086
1198
|
var parsed = {};
|
|
@@ -1096,10 +1208,12 @@ var parseRichMessageElement = function parseRichMessageElement(element) {
|
|
|
1096
1208
|
if (element.image) {
|
|
1097
1209
|
// TODO: we should reuse parseImage here
|
|
1098
1210
|
var image = element.image;
|
|
1099
|
-
parsed.image = {
|
|
1211
|
+
parsed.image = _extends({
|
|
1100
1212
|
url: image.url,
|
|
1101
1213
|
name: image.name
|
|
1102
|
-
}
|
|
1214
|
+
}, image.alternative_text && {
|
|
1215
|
+
alternativeText: image.alternative_text
|
|
1216
|
+
});
|
|
1103
1217
|
}
|
|
1104
1218
|
|
|
1105
1219
|
if (element.buttons) {
|
|
@@ -1118,6 +1232,17 @@ var parseRichMessageElement = function parseRichMessageElement(element) {
|
|
|
1118
1232
|
};
|
|
1119
1233
|
}
|
|
1120
1234
|
|
|
1235
|
+
case 'cancel':
|
|
1236
|
+
{
|
|
1237
|
+
return {
|
|
1238
|
+
type: serverButton.type,
|
|
1239
|
+
text: serverButton.text,
|
|
1240
|
+
postbackId: serverButton.postback_id,
|
|
1241
|
+
userIds: serverButton.user_ids,
|
|
1242
|
+
role: serverButton.role || 'default'
|
|
1243
|
+
};
|
|
1244
|
+
}
|
|
1245
|
+
|
|
1121
1246
|
case 'url':
|
|
1122
1247
|
{
|
|
1123
1248
|
var button = {
|
|
@@ -1205,6 +1330,9 @@ var parseEvent$1 = function parseEvent(thread, event) {
|
|
|
1205
1330
|
case FILE:
|
|
1206
1331
|
return parseFile(thread, event);
|
|
1207
1332
|
|
|
1333
|
+
case FORM:
|
|
1334
|
+
return parseForm(thread, event);
|
|
1335
|
+
|
|
1208
1336
|
case FILLED_FORM:
|
|
1209
1337
|
return parseFilledForm(thread, event);
|
|
1210
1338
|
|
|
@@ -1217,6 +1345,9 @@ var parseEvent$1 = function parseEvent(thread, event) {
|
|
|
1217
1345
|
case SYSTEM_MESSAGE:
|
|
1218
1346
|
return parseSystemMessage(thread, event);
|
|
1219
1347
|
|
|
1348
|
+
case CUSTOM:
|
|
1349
|
+
return parseCustomEvent(thread, event);
|
|
1350
|
+
|
|
1220
1351
|
default:
|
|
1221
1352
|
return null;
|
|
1222
1353
|
}
|
|
@@ -1228,6 +1359,7 @@ var parseGreeting = function parseGreeting(greeting) {
|
|
|
1228
1359
|
uniqueId: greeting.unique_id,
|
|
1229
1360
|
displayedFirstTime: greeting.displayed_first_time,
|
|
1230
1361
|
accepted: greeting.accepted || false,
|
|
1362
|
+
subtype: greeting.subtype || 'greeting',
|
|
1231
1363
|
// threadId is typed as nonoptional string but for greetings it doesn't exist
|
|
1232
1364
|
event: parseEvent$1(null, greeting.event),
|
|
1233
1365
|
agent: {
|
|
@@ -1284,13 +1416,12 @@ var parseThread = function parseThread(chatId, thread) {
|
|
|
1284
1416
|
queue: thread.queue ? parseQueue(thread.queue) : null
|
|
1285
1417
|
};
|
|
1286
1418
|
};
|
|
1287
|
-
var
|
|
1419
|
+
var parseChatCommon = function parseChatCommon(chat) {
|
|
1288
1420
|
return {
|
|
1289
1421
|
id: chat.id,
|
|
1290
1422
|
access: parseAccess(chat.access),
|
|
1291
1423
|
users: chat.users.map(parseChatUser),
|
|
1292
1424
|
properties: chat.properties || {},
|
|
1293
|
-
thread: parseThread(chat.id, chat.thread),
|
|
1294
1425
|
eventsSeenUpToMap: getEventsSeenUpToMap(chat.users)
|
|
1295
1426
|
};
|
|
1296
1427
|
};
|
|
@@ -1345,14 +1476,19 @@ var parseCustomer = function parseCustomer(customer) {
|
|
|
1345
1476
|
}
|
|
1346
1477
|
});
|
|
1347
1478
|
};
|
|
1348
|
-
var parsePredictedAgent = function parsePredictedAgent(
|
|
1479
|
+
var parsePredictedAgent = function parsePredictedAgent(payload) {
|
|
1480
|
+
var agent = payload.agent,
|
|
1481
|
+
queue = payload.queue;
|
|
1349
1482
|
return {
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1483
|
+
agent: {
|
|
1484
|
+
id: agent.id,
|
|
1485
|
+
type: AGENT,
|
|
1486
|
+
name: agent.name,
|
|
1487
|
+
avatar: agent.avatar,
|
|
1488
|
+
jobTitle: agent.job_title,
|
|
1489
|
+
isBot: agent.is_bot
|
|
1490
|
+
},
|
|
1491
|
+
queue: queue
|
|
1356
1492
|
};
|
|
1357
1493
|
};
|
|
1358
1494
|
var parseQueueUpdate = function parseQueueUpdate(queueUpdate) {
|
|
@@ -1418,7 +1554,7 @@ var updateStateIfNeeded = function updateStateIfNeeded(store, action) {
|
|
|
1418
1554
|
}
|
|
1419
1555
|
};
|
|
1420
1556
|
|
|
1421
|
-
var sendRequest$1 = function sendRequest
|
|
1557
|
+
var sendRequest$1 = function sendRequest(socket, _ref3) {
|
|
1422
1558
|
var _ref3$payload = _ref3.payload,
|
|
1423
1559
|
id = _ref3$payload.id,
|
|
1424
1560
|
request = _ref3$payload.request;
|
|
@@ -1427,7 +1563,31 @@ var sendRequest$1 = function sendRequest$$1(socket, _ref3) {
|
|
|
1427
1563
|
request_id: id
|
|
1428
1564
|
}, request);
|
|
1429
1565
|
|
|
1430
|
-
|
|
1566
|
+
switch (frame.action) {
|
|
1567
|
+
case LOGIN:
|
|
1568
|
+
{
|
|
1569
|
+
var upgradedPushes = [];
|
|
1570
|
+
socket.emit(_extends({}, frame, {
|
|
1571
|
+
version: '3.3',
|
|
1572
|
+
payload: _extends({}, frame.payload, {
|
|
1573
|
+
pushes: {
|
|
1574
|
+
// '3.4': upgradedPushes,
|
|
1575
|
+
'3.3': dataUtils.values(serverPushActions).filter(function (pushAction) {
|
|
1576
|
+
return (// `customer_disconnected` can be sent immediately after opening the connection, before it even received login request
|
|
1577
|
+
// therefore it's not possible to subscribe for a particular version of this push - the "connection version" is always used
|
|
1578
|
+
pushAction !== CUSTOMER_DISCONNECTED && !dataUtils.includes(pushAction, upgradedPushes)
|
|
1579
|
+
);
|
|
1580
|
+
})
|
|
1581
|
+
}
|
|
1582
|
+
})
|
|
1583
|
+
}));
|
|
1584
|
+
return;
|
|
1585
|
+
}
|
|
1586
|
+
|
|
1587
|
+
default:
|
|
1588
|
+
socket.emit(frame);
|
|
1589
|
+
return;
|
|
1590
|
+
}
|
|
1431
1591
|
};
|
|
1432
1592
|
|
|
1433
1593
|
var emitUsers = function emitUsers(emit, users) {
|
|
@@ -1528,10 +1688,11 @@ var handlePush = function handlePush(_ref5, _ref6) {
|
|
|
1528
1688
|
});
|
|
1529
1689
|
break;
|
|
1530
1690
|
|
|
1531
|
-
case
|
|
1691
|
+
case SERVICE_TEMPORARILY_UNAVAILABLE$1:
|
|
1692
|
+
case TOO_MANY_UNAUTHORIZED_CONNECTIONS:
|
|
1532
1693
|
// this should only really fail a `login` request - as it's the only one sent before authorization
|
|
1533
1694
|
// and login should reconnect on its own right now
|
|
1534
|
-
failAllRequests(store,
|
|
1695
|
+
failAllRequests(store, payload.payload.reason.toUpperCase());
|
|
1535
1696
|
break;
|
|
1536
1697
|
|
|
1537
1698
|
default:
|
|
@@ -1616,7 +1777,7 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1616
1777
|
emitter = _ref9.emitter,
|
|
1617
1778
|
socket = _ref9.socket;
|
|
1618
1779
|
var emit = emitter.emit;
|
|
1619
|
-
var
|
|
1780
|
+
var loginTask = createLoginTask(auth, customerDataProvider); // TODO: using Store type here is a lie, middleware only provides MiddlewareAPI here
|
|
1620
1781
|
|
|
1621
1782
|
return function (action, store) {
|
|
1622
1783
|
switch (action.type) {
|
|
@@ -1625,16 +1786,35 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1625
1786
|
return;
|
|
1626
1787
|
|
|
1627
1788
|
case CHECK_GOALS:
|
|
1628
|
-
checkGoals(store, auth, action.payload.sessionFields)
|
|
1789
|
+
checkGoals(store, auth, action.payload.sessionFields)["catch"](dataUtils.noop);
|
|
1629
1790
|
return;
|
|
1630
1791
|
|
|
1631
1792
|
case DESTROY:
|
|
1632
1793
|
{
|
|
1633
1794
|
var payload = action.payload;
|
|
1795
|
+
loginTask.cancel();
|
|
1634
1796
|
socket.destroy();
|
|
1635
1797
|
|
|
1636
|
-
|
|
1637
|
-
|
|
1798
|
+
switch (payload.reason) {
|
|
1799
|
+
case 'manual':
|
|
1800
|
+
failAllRequests(store, SDK_DESTROYED);
|
|
1801
|
+
break;
|
|
1802
|
+
|
|
1803
|
+
case CUSTOMER_BANNED:
|
|
1804
|
+
case LICENSE_EXPIRED:
|
|
1805
|
+
case PRODUCT_VERSION_CHANGED:
|
|
1806
|
+
// normalize those to CONNECTION_LOST as the handling on the consumer's side should be the same
|
|
1807
|
+
failAllRequests(store, CONNECTION_LOST);
|
|
1808
|
+
emit('disconnected', payload);
|
|
1809
|
+
break;
|
|
1810
|
+
|
|
1811
|
+
default:
|
|
1812
|
+
// in general those deestroys should only come either from login errors
|
|
1813
|
+
// or from customer_disconnected pushes that are sent immediately after connection
|
|
1814
|
+
// so this case would only be able to fail login requests but that wouldn't even be caught be a handler there
|
|
1815
|
+
// as we cancel the loginTask beforehand
|
|
1816
|
+
emit('disconnected', payload);
|
|
1817
|
+
break;
|
|
1638
1818
|
}
|
|
1639
1819
|
|
|
1640
1820
|
emitter.off();
|
|
@@ -1683,12 +1863,20 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1683
1863
|
}
|
|
1684
1864
|
|
|
1685
1865
|
case PAUSE_CONNECTION:
|
|
1686
|
-
|
|
1687
|
-
|
|
1866
|
+
{
|
|
1867
|
+
var _payload = action.payload;
|
|
1868
|
+
socket.disconnect();
|
|
1869
|
+
|
|
1870
|
+
if (_payload.reason !== 'manual') {
|
|
1871
|
+
emit('disconnected', _payload);
|
|
1872
|
+
}
|
|
1873
|
+
|
|
1874
|
+
return;
|
|
1875
|
+
}
|
|
1688
1876
|
|
|
1689
1877
|
case PREFETCH_TOKEN:
|
|
1690
1878
|
if (action.payload.fresh) {
|
|
1691
|
-
auth.getFreshToken()
|
|
1879
|
+
auth.getFreshToken()["catch"](dataUtils.noop);
|
|
1692
1880
|
return;
|
|
1693
1881
|
}
|
|
1694
1882
|
|
|
@@ -1709,7 +1897,7 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1709
1897
|
|
|
1710
1898
|
return auth.invalidate().then(auth.getFreshToken);
|
|
1711
1899
|
});
|
|
1712
|
-
})
|
|
1900
|
+
})["catch"](dataUtils.noop);
|
|
1713
1901
|
return;
|
|
1714
1902
|
|
|
1715
1903
|
case PUSH_RECEIVED:
|
|
@@ -1738,6 +1926,7 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1738
1926
|
return;
|
|
1739
1927
|
|
|
1740
1928
|
case RECONNECT:
|
|
1929
|
+
failAllRequests(store, CONNECTION_LOST);
|
|
1741
1930
|
socket.reconnect(action.payload.delay);
|
|
1742
1931
|
return;
|
|
1743
1932
|
|
|
@@ -1763,7 +1952,7 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1763
1952
|
|
|
1764
1953
|
if (isDestroyed(state)) {
|
|
1765
1954
|
failRequest(store, action, {
|
|
1766
|
-
code:
|
|
1955
|
+
code: SDK_DESTROYED,
|
|
1767
1956
|
message: 'SDK destroyed.'
|
|
1768
1957
|
});
|
|
1769
1958
|
return;
|
|
@@ -1771,7 +1960,7 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1771
1960
|
|
|
1772
1961
|
if (!isConnected(state) && action.payload.source !== 'login') {
|
|
1773
1962
|
failRequest(store, action, {
|
|
1774
|
-
code:
|
|
1963
|
+
code: NO_CONNECTION,
|
|
1775
1964
|
message: 'No connection.'
|
|
1776
1965
|
});
|
|
1777
1966
|
return;
|
|
@@ -1792,7 +1981,7 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1792
1981
|
return;
|
|
1793
1982
|
|
|
1794
1983
|
case SOCKET_CONNECTED:
|
|
1795
|
-
|
|
1984
|
+
loginTask.sendLogin(store);
|
|
1796
1985
|
return;
|
|
1797
1986
|
|
|
1798
1987
|
case SOCKET_RECOVERED:
|
|
@@ -1823,7 +2012,7 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1823
2012
|
return;
|
|
1824
2013
|
}
|
|
1825
2014
|
|
|
1826
|
-
sendRequestAction(store, sendRequest(UPDATE_CUSTOMER_PAGE$1, action.payload))
|
|
2015
|
+
sendRequestAction(store, sendRequest(UPDATE_CUSTOMER_PAGE$1, action.payload))["catch"](dataUtils.noop);
|
|
1827
2016
|
return;
|
|
1828
2017
|
|
|
1829
2018
|
default:
|
|
@@ -1849,10 +2038,12 @@ var createChatHistoryIterator = function createChatHistoryIterator(sdk, chatId)
|
|
|
1849
2038
|
switch (historyState.status) {
|
|
1850
2039
|
case 'idle':
|
|
1851
2040
|
historyState.status = 'fetching';
|
|
1852
|
-
sdk.listThreads({
|
|
2041
|
+
sdk.listThreads(historyState.nextPageId ? {
|
|
2042
|
+
chatId: chatId,
|
|
2043
|
+
pageId: historyState.nextPageId
|
|
2044
|
+
} : {
|
|
1853
2045
|
chatId: chatId,
|
|
1854
|
-
minEventsCount: HISTORY_EVENT_COUNT_TARGET
|
|
1855
|
-
pageId: historyState.nextPageId || undefined
|
|
2046
|
+
minEventsCount: HISTORY_EVENT_COUNT_TARGET
|
|
1856
2047
|
}).then(function (_ref) {
|
|
1857
2048
|
var threads = _ref.threads,
|
|
1858
2049
|
nextPageId = _ref.nextPageId;
|
|
@@ -1929,8 +2120,8 @@ var createChatHistoryIterator = function createChatHistoryIterator(sdk, chatId)
|
|
|
1929
2120
|
|
|
1930
2121
|
var initialize = function initialize(store, emitter) {
|
|
1931
2122
|
var state = store.getState();
|
|
1932
|
-
var url = getServerUrl(state) + "/rtm/
|
|
1933
|
-
return
|
|
2123
|
+
var url = (getServerUrl(state) + "/rtm/ws").replace(/^https/, 'wss');
|
|
2124
|
+
return createPlatformClient__default['default'](url, {
|
|
1934
2125
|
query: {
|
|
1935
2126
|
license_id: state.licenseId
|
|
1936
2127
|
},
|
|
@@ -1939,7 +2130,7 @@ var initialize = function initialize(store, emitter) {
|
|
|
1939
2130
|
};
|
|
1940
2131
|
|
|
1941
2132
|
var createSocketClient = function createSocketClient(store) {
|
|
1942
|
-
var emitter =
|
|
2133
|
+
var emitter = mitt__default['default']();
|
|
1943
2134
|
var client = initialize(store, emitter);
|
|
1944
2135
|
return _extends({}, Object.keys(client).reduce(function (proxy, method) {
|
|
1945
2136
|
proxy[method] = function () {
|
|
@@ -2000,16 +2191,14 @@ var parseCustomerPageUpdatedPush = function parseCustomerPageUpdatedPush(payload
|
|
|
2000
2191
|
return {
|
|
2001
2192
|
url: payload.url,
|
|
2002
2193
|
title: payload.title,
|
|
2003
|
-
|
|
2194
|
+
openedAt: payload.opened_at
|
|
2004
2195
|
};
|
|
2005
2196
|
};
|
|
2006
2197
|
|
|
2007
2198
|
var parseCustomerUpdatedPush = function parseCustomerUpdatedPush(payload) {
|
|
2008
|
-
return {
|
|
2009
|
-
|
|
2010
|
-
|
|
2011
|
-
}, parseCustomerOptionalProps(payload.customer))
|
|
2012
|
-
};
|
|
2199
|
+
return _extends({
|
|
2200
|
+
id: payload.id
|
|
2201
|
+
}, parseCustomerOptionalProps(payload));
|
|
2013
2202
|
};
|
|
2014
2203
|
|
|
2015
2204
|
var parseEventPropertiesDeletedPush = function parseEventPropertiesDeletedPush(payload) {
|
|
@@ -2054,12 +2243,17 @@ var parseGreetingAcceptedPush = function parseGreetingAcceptedPush(payload) {
|
|
|
2054
2243
|
};
|
|
2055
2244
|
|
|
2056
2245
|
var parseGetChatResponse = function parseGetChatResponse(payload) {
|
|
2057
|
-
return
|
|
2246
|
+
return _extends({}, parseChatCommon(payload), {
|
|
2247
|
+
thread: payload.thread ? parseThread(payload.id, payload.thread) : null
|
|
2248
|
+
});
|
|
2058
2249
|
};
|
|
2059
2250
|
|
|
2060
2251
|
var parseIncomingChatPush = function parseIncomingChatPush(payload) {
|
|
2252
|
+
var chat = payload.chat;
|
|
2061
2253
|
return {
|
|
2062
|
-
chat:
|
|
2254
|
+
chat: _extends({}, parseChatCommon(chat), {
|
|
2255
|
+
thread: parseThread(chat.id, chat.thread)
|
|
2256
|
+
})
|
|
2063
2257
|
};
|
|
2064
2258
|
};
|
|
2065
2259
|
|
|
@@ -2175,20 +2369,21 @@ var parseTicketFormFields = function parseTicketFormFields(fields) {
|
|
|
2175
2369
|
return parseFields(withFakeIds);
|
|
2176
2370
|
};
|
|
2177
2371
|
|
|
2372
|
+
var parseForm$1 = function parseForm(form) {
|
|
2373
|
+
var isTicketForm = !('id' in form.fields[0]);
|
|
2374
|
+
return {
|
|
2375
|
+
id: form.id,
|
|
2376
|
+
fields: isTicketForm ? parseTicketFormFields(form.fields) : parseFields(form.fields)
|
|
2377
|
+
};
|
|
2378
|
+
};
|
|
2379
|
+
|
|
2178
2380
|
var parseGetFormResponse = function parseGetFormResponse(payload) {
|
|
2179
2381
|
if (!payload.enabled) {
|
|
2180
2382
|
return payload;
|
|
2181
2383
|
}
|
|
2182
2384
|
|
|
2183
2385
|
return _extends({}, payload, {
|
|
2184
|
-
form:
|
|
2185
|
-
id: payload.form.id,
|
|
2186
|
-
fields: parseFields(payload.form.fields)
|
|
2187
|
-
} : {
|
|
2188
|
-
// TODO: should we fake id for this one?
|
|
2189
|
-
id: 'ticket',
|
|
2190
|
-
fields: parseTicketFormFields(payload.form.fields)
|
|
2191
|
-
}
|
|
2386
|
+
form: parseForm$1(payload.form)
|
|
2192
2387
|
});
|
|
2193
2388
|
};
|
|
2194
2389
|
|
|
@@ -2306,9 +2501,8 @@ var parseListThreadsResponse = function parseListThreadsResponse(request, payloa
|
|
|
2306
2501
|
|
|
2307
2502
|
var parseLoginResponse = function parseLoginResponse(payload) {
|
|
2308
2503
|
var dynamicConfig = payload.__priv_dynamic_config,
|
|
2309
|
-
chats = payload.chats
|
|
2310
|
-
|
|
2311
|
-
|
|
2504
|
+
chats = payload.chats,
|
|
2505
|
+
greeting = payload.greeting;
|
|
2312
2506
|
return _extends({
|
|
2313
2507
|
dynamicConfig: dynamicConfig,
|
|
2314
2508
|
customer: parseCustomer(payload.customer),
|
|
@@ -2478,19 +2672,6 @@ var parsePush = function parsePush(push) {
|
|
|
2478
2672
|
case USER_REMOVED_FROM_CHAT:
|
|
2479
2673
|
return {
|
|
2480
2674
|
action: push.action,
|
|
2481
|
-
payload: parseUserRemovedFromChatPush(push.payload) // TODO: remove those once we sync with the API on prod
|
|
2482
|
-
|
|
2483
|
-
};
|
|
2484
|
-
|
|
2485
|
-
case 'chat_user_added':
|
|
2486
|
-
return {
|
|
2487
|
-
action: USER_ADDED_TO_CHAT,
|
|
2488
|
-
payload: parseUserAddedToChatPush(push.payload)
|
|
2489
|
-
};
|
|
2490
|
-
|
|
2491
|
-
case 'chat_user_removed':
|
|
2492
|
-
return {
|
|
2493
|
-
action: USER_REMOVED_FROM_CHAT,
|
|
2494
2675
|
payload: parseUserRemovedFromChatPush(push.payload)
|
|
2495
2676
|
};
|
|
2496
2677
|
}
|
|
@@ -2738,8 +2919,7 @@ var socketListener = (function (store, socket) {
|
|
|
2738
2919
|
}
|
|
2739
2920
|
|
|
2740
2921
|
switch (message.action) {
|
|
2741
|
-
case
|
|
2742
|
-
case DEACTIVATE_CHAT:
|
|
2922
|
+
case RESUME_CHAT:
|
|
2743
2923
|
case SEND_EVENT:
|
|
2744
2924
|
case START_CHAT:
|
|
2745
2925
|
// those are requests with indirect responses
|
|
@@ -2753,7 +2933,6 @@ var socketListener = (function (store, socket) {
|
|
|
2753
2933
|
|
|
2754
2934
|
if ('request_id' in message) {
|
|
2755
2935
|
switch (message.action) {
|
|
2756
|
-
case CHAT_DEACTIVATED:
|
|
2757
2936
|
case INCOMING_CHAT:
|
|
2758
2937
|
case INCOMING_EVENT:
|
|
2759
2938
|
// those are acting as indirect responses
|
|
@@ -2914,7 +3093,7 @@ var sendTicketForm = function sendTicketForm(store, auth, _ref2) {
|
|
|
2914
3093
|
groupId: groupId,
|
|
2915
3094
|
timeZone: timeZone
|
|
2916
3095
|
});
|
|
2917
|
-
return
|
|
3096
|
+
return unfetch__default['default'](url, {
|
|
2918
3097
|
method: 'POST',
|
|
2919
3098
|
headers: {
|
|
2920
3099
|
'Content-Type': 'application/json'
|
|
@@ -2993,7 +3172,7 @@ var validateFile = function validateFile(file) {
|
|
|
2993
3172
|
if (file.size > SIZE_LIMIT) {
|
|
2994
3173
|
throw createError({
|
|
2995
3174
|
message: "The file is too big (max size is " + formatBytes(SIZE_LIMIT) + ").",
|
|
2996
|
-
code:
|
|
3175
|
+
code: TOO_BIG_FILE
|
|
2997
3176
|
});
|
|
2998
3177
|
}
|
|
2999
3178
|
};
|
|
@@ -3021,7 +3200,7 @@ var uploadFile = function uploadFile(_ref, _ref2) {
|
|
|
3021
3200
|
return;
|
|
3022
3201
|
}
|
|
3023
3202
|
|
|
3024
|
-
upload =
|
|
3203
|
+
upload = rawUploadFile__default['default'](url, payload, {
|
|
3025
3204
|
headers: {
|
|
3026
3205
|
Authorization: token.tokenType + " " + token.accessToken
|
|
3027
3206
|
},
|
|
@@ -3061,14 +3240,14 @@ var uploadFile = function uploadFile(_ref, _ref2) {
|
|
|
3061
3240
|
};
|
|
3062
3241
|
|
|
3063
3242
|
var makeGraylogRequest = function makeGraylogRequest(url, body) {
|
|
3064
|
-
return
|
|
3243
|
+
return unfetch__default['default'](url, {
|
|
3065
3244
|
body: body,
|
|
3066
3245
|
method: 'POST',
|
|
3067
3246
|
headers: {
|
|
3068
3247
|
Accept: '*/*',
|
|
3069
3248
|
'Content-Type': 'application/x-www-form-urlencoded'
|
|
3070
3249
|
}
|
|
3071
|
-
})
|
|
3250
|
+
})["catch"](dataUtils.noop);
|
|
3072
3251
|
};
|
|
3073
3252
|
|
|
3074
3253
|
/**
|
|
@@ -3089,7 +3268,7 @@ var log = function log(_ref) {
|
|
|
3089
3268
|
var message = {
|
|
3090
3269
|
event_name: eventName,
|
|
3091
3270
|
severity: 'Informational',
|
|
3092
|
-
sdkVersion: "
|
|
3271
|
+
sdkVersion: "3.1.1"
|
|
3093
3272
|
};
|
|
3094
3273
|
var body = {
|
|
3095
3274
|
licence_id: licenseId,
|
|
@@ -3121,11 +3300,13 @@ var createDebuggedMethods = function createDebuggedMethods(methods, prefix) {
|
|
|
3121
3300
|
|
|
3122
3301
|
var result = method.apply(void 0, args);
|
|
3123
3302
|
|
|
3124
|
-
if (result
|
|
3125
|
-
result.then(function (data) {
|
|
3303
|
+
if (typeof (result == null ? void 0 : result.then) === 'function') {
|
|
3304
|
+
return result.then(function (data) {
|
|
3126
3305
|
console.info(prefix + "." + methodName + "() <===", data);
|
|
3127
|
-
|
|
3306
|
+
return data;
|
|
3307
|
+
}, function (err) {
|
|
3128
3308
|
console.error(prefix + "." + methodName + "() <===", err);
|
|
3309
|
+
throw err;
|
|
3129
3310
|
});
|
|
3130
3311
|
}
|
|
3131
3312
|
|
|
@@ -3197,17 +3378,19 @@ var debug = (function (_sdk) {
|
|
|
3197
3378
|
|
|
3198
3379
|
(_console3 = console).info.apply(_console3, [logLabel + " ===>"].concat(args));
|
|
3199
3380
|
|
|
3200
|
-
|
|
3201
|
-
result.then(function (data) {
|
|
3381
|
+
return history.next().then(function (data) {
|
|
3202
3382
|
var _console4;
|
|
3203
3383
|
|
|
3204
3384
|
(_console4 = console).info.apply(_console4, [logLabel + " <==="].concat(args, [data]));
|
|
3205
|
-
|
|
3385
|
+
|
|
3386
|
+
return data;
|
|
3387
|
+
}, function (err) {
|
|
3206
3388
|
var _console5;
|
|
3207
3389
|
|
|
3208
3390
|
(_console5 = console).error.apply(_console5, [logLabel + " <==="].concat(args, [err]));
|
|
3391
|
+
|
|
3392
|
+
throw err;
|
|
3209
3393
|
});
|
|
3210
|
-
return result;
|
|
3211
3394
|
}
|
|
3212
3395
|
};
|
|
3213
3396
|
},
|
|
@@ -3242,14 +3425,15 @@ var init = function init(config, env) {
|
|
|
3242
3425
|
var _config$autoConnect = config.autoConnect,
|
|
3243
3426
|
autoConnect = _config$autoConnect === void 0 ? true : _config$autoConnect,
|
|
3244
3427
|
customerDataProvider = config.customerDataProvider,
|
|
3245
|
-
|
|
3428
|
+
identityProvider = config.identityProvider,
|
|
3429
|
+
instanceConfig = _objectWithoutPropertiesLoose(config, ["autoConnect", "customerDataProvider", "identityProvider"]);
|
|
3246
3430
|
|
|
3247
3431
|
var store = finalCreateStore(_extends({}, instanceConfig, {
|
|
3248
3432
|
env: env
|
|
3249
3433
|
}));
|
|
3250
|
-
var emitter =
|
|
3434
|
+
var emitter = mitt__default['default']();
|
|
3251
3435
|
var socket = createSocketClient(store);
|
|
3252
|
-
var auth = createAuth__default(instanceConfig, env);
|
|
3436
|
+
var auth = typeof identityProvider === 'function' ? identityProvider() : createAuth__default['default'](instanceConfig, env);
|
|
3253
3437
|
store.addSideEffectsHandler(createSideEffectsHandler({
|
|
3254
3438
|
emitter: emitter,
|
|
3255
3439
|
socket: socket,
|
|
@@ -3258,7 +3442,7 @@ var init = function init(config, env) {
|
|
|
3258
3442
|
}));
|
|
3259
3443
|
socketListener(store, socket);
|
|
3260
3444
|
|
|
3261
|
-
var sendRequestAction
|
|
3445
|
+
var sendRequestAction$1 = sendRequestAction.bind(null, store);
|
|
3262
3446
|
|
|
3263
3447
|
var startConnection = function startConnection() {
|
|
3264
3448
|
store.dispatch({
|
|
@@ -3270,23 +3454,15 @@ var init = function init(config, env) {
|
|
|
3270
3454
|
acceptGreeting: function acceptGreeting(_ref) {
|
|
3271
3455
|
var greetingId = _ref.greetingId,
|
|
3272
3456
|
uniqueId = _ref.uniqueId;
|
|
3273
|
-
return sendRequestAction
|
|
3457
|
+
return sendRequestAction$1(sendRequest(ACCEPT_GREETING, {
|
|
3274
3458
|
greeting_id: greetingId,
|
|
3275
3459
|
unique_id: uniqueId
|
|
3276
3460
|
}));
|
|
3277
3461
|
},
|
|
3278
|
-
activateChat: function activateChat(data) {
|
|
3279
|
-
log({
|
|
3280
|
-
env: env,
|
|
3281
|
-
licenseId: config.licenseId,
|
|
3282
|
-
eventName: 'chat_started'
|
|
3283
|
-
});
|
|
3284
|
-
return sendRequestAction$$1(sendRequest(ACTIVATE_CHAT, parseActivateChatData(data)));
|
|
3285
|
-
},
|
|
3286
3462
|
auth: auth,
|
|
3287
3463
|
cancelGreeting: function cancelGreeting(_ref2) {
|
|
3288
3464
|
var uniqueId = _ref2.uniqueId;
|
|
3289
|
-
return sendRequestAction
|
|
3465
|
+
return sendRequestAction$1(sendRequest(CANCEL_GREETING, {
|
|
3290
3466
|
unique_id: uniqueId
|
|
3291
3467
|
}));
|
|
3292
3468
|
},
|
|
@@ -3317,16 +3493,16 @@ var init = function init(config, env) {
|
|
|
3317
3493
|
},
|
|
3318
3494
|
connect: startConnection,
|
|
3319
3495
|
deactivateChat: function deactivateChat(_ref4) {
|
|
3320
|
-
var
|
|
3321
|
-
return sendRequestAction
|
|
3322
|
-
|
|
3496
|
+
var id = _ref4.id;
|
|
3497
|
+
return sendRequestAction$1(sendRequest(DEACTIVATE_CHAT, {
|
|
3498
|
+
id: id
|
|
3323
3499
|
}));
|
|
3324
3500
|
},
|
|
3325
3501
|
deleteChatProperties: function deleteChatProperties(_ref5) {
|
|
3326
|
-
var
|
|
3502
|
+
var id = _ref5.id,
|
|
3327
3503
|
properties = _ref5.properties;
|
|
3328
|
-
return sendRequestAction
|
|
3329
|
-
|
|
3504
|
+
return sendRequestAction$1(sendRequest(DELETE_CHAT_PROPERTIES, {
|
|
3505
|
+
id: id,
|
|
3330
3506
|
properties: properties
|
|
3331
3507
|
}));
|
|
3332
3508
|
},
|
|
@@ -3335,7 +3511,7 @@ var init = function init(config, env) {
|
|
|
3335
3511
|
threadId = _ref6.threadId,
|
|
3336
3512
|
eventId = _ref6.eventId,
|
|
3337
3513
|
properties = _ref6.properties;
|
|
3338
|
-
return sendRequestAction
|
|
3514
|
+
return sendRequestAction$1(sendRequest(DELETE_EVENT_PROPERTIES, {
|
|
3339
3515
|
chat_id: chatId,
|
|
3340
3516
|
thread_id: threadId,
|
|
3341
3517
|
event_id: eventId,
|
|
@@ -3346,24 +3522,22 @@ var init = function init(config, env) {
|
|
|
3346
3522
|
var chatId = _ref7.chatId,
|
|
3347
3523
|
threadId = _ref7.threadId,
|
|
3348
3524
|
properties = _ref7.properties;
|
|
3349
|
-
return sendRequestAction
|
|
3525
|
+
return sendRequestAction$1(sendRequest(DELETE_THREAD_PROPERTIES, {
|
|
3350
3526
|
chat_id: chatId,
|
|
3351
3527
|
thread_id: threadId,
|
|
3352
3528
|
properties: properties
|
|
3353
3529
|
}));
|
|
3354
3530
|
},
|
|
3355
|
-
destroy: function destroy
|
|
3531
|
+
destroy: function destroy$1() {
|
|
3356
3532
|
store.dispatch(destroy('manual'));
|
|
3357
3533
|
},
|
|
3358
3534
|
disconnect: function disconnect() {
|
|
3359
|
-
store.dispatch(
|
|
3360
|
-
type: PAUSE_CONNECTION
|
|
3361
|
-
});
|
|
3535
|
+
store.dispatch(pauseConnection('manual'));
|
|
3362
3536
|
},
|
|
3363
3537
|
getChat: function getChat(_ref8) {
|
|
3364
3538
|
var chatId = _ref8.chatId,
|
|
3365
3539
|
threadId = _ref8.threadId;
|
|
3366
|
-
return sendRequestAction
|
|
3540
|
+
return sendRequestAction$1(sendRequest(GET_CHAT, {
|
|
3367
3541
|
chat_id: chatId,
|
|
3368
3542
|
thread_id: threadId
|
|
3369
3543
|
}));
|
|
@@ -3373,12 +3547,12 @@ var init = function init(config, env) {
|
|
|
3373
3547
|
return createChatHistoryIterator(api, chatId);
|
|
3374
3548
|
},
|
|
3375
3549
|
getCustomer: function getCustomer() {
|
|
3376
|
-
return sendRequestAction
|
|
3550
|
+
return sendRequestAction$1(sendRequest(GET_CUSTOMER, {}));
|
|
3377
3551
|
},
|
|
3378
3552
|
getForm: function getForm(_ref10) {
|
|
3379
3553
|
var groupId = _ref10.groupId,
|
|
3380
3554
|
type = _ref10.type;
|
|
3381
|
-
return sendRequestAction
|
|
3555
|
+
return sendRequestAction$1(sendRequest(GET_FORM, {
|
|
3382
3556
|
group_id: groupId,
|
|
3383
3557
|
type: type
|
|
3384
3558
|
}));
|
|
@@ -3390,60 +3564,56 @@ var init = function init(config, env) {
|
|
|
3390
3564
|
|
|
3391
3565
|
var _params = params,
|
|
3392
3566
|
groupId = _params.groupId;
|
|
3393
|
-
return sendRequestAction
|
|
3567
|
+
return sendRequestAction$1(sendRequest(GET_PREDICTED_AGENT, typeof groupId === 'number' ? {
|
|
3394
3568
|
group_id: groupId
|
|
3395
3569
|
} : {}));
|
|
3396
3570
|
},
|
|
3397
3571
|
getUrlInfo: function getUrlInfo(_ref11) {
|
|
3398
3572
|
var url = _ref11.url;
|
|
3399
|
-
return sendRequestAction
|
|
3573
|
+
return sendRequestAction$1(sendRequest(GET_URL_INFO, {
|
|
3400
3574
|
url: url
|
|
3401
3575
|
}));
|
|
3402
3576
|
},
|
|
3403
|
-
listChats: function listChats(
|
|
3404
|
-
|
|
3405
|
-
|
|
3406
|
-
|
|
3407
|
-
pageId = _ref12.pageId;
|
|
3577
|
+
listChats: function listChats(params) {
|
|
3578
|
+
if (params === void 0) {
|
|
3579
|
+
params = {};
|
|
3580
|
+
}
|
|
3408
3581
|
|
|
3409
|
-
if (limit > CHATS_PAGINATION_MAX_LIMIT) {
|
|
3582
|
+
if ('limit' in params && typeof params.limit === 'number' && params.limit > CHATS_PAGINATION_MAX_LIMIT) {
|
|
3410
3583
|
return Promise.reject(new Error("Specified limit is too high (max " + CHATS_PAGINATION_MAX_LIMIT + ")."));
|
|
3411
3584
|
}
|
|
3412
3585
|
|
|
3413
|
-
return sendRequestAction
|
|
3414
|
-
limit: limit
|
|
3415
|
-
|
|
3586
|
+
return sendRequestAction$1(sendRequest(LIST_CHATS, params.pageId === undefined ? {
|
|
3587
|
+
limit: params.limit || 10
|
|
3588
|
+
} : {
|
|
3589
|
+
page_id: params.pageId
|
|
3416
3590
|
}));
|
|
3417
3591
|
},
|
|
3418
|
-
listGroupStatuses: function listGroupStatuses(
|
|
3419
|
-
var
|
|
3420
|
-
groupIds =
|
|
3592
|
+
listGroupStatuses: function listGroupStatuses(_temp) {
|
|
3593
|
+
var _ref12 = _temp === void 0 ? {} : _temp,
|
|
3594
|
+
groupIds = _ref12.groupIds;
|
|
3421
3595
|
|
|
3422
|
-
return sendRequestAction
|
|
3596
|
+
return sendRequestAction$1(sendRequest(LIST_GROUP_STATUSES, groupIds ? {
|
|
3423
3597
|
group_ids: groupIds
|
|
3424
3598
|
} : {
|
|
3425
3599
|
all: true
|
|
3426
3600
|
}));
|
|
3427
3601
|
},
|
|
3428
|
-
listThreads: function listThreads(
|
|
3429
|
-
|
|
3430
|
-
|
|
3431
|
-
|
|
3432
|
-
|
|
3433
|
-
|
|
3434
|
-
|
|
3435
|
-
|
|
3436
|
-
|
|
3437
|
-
sort_order: sortOrder,
|
|
3438
|
-
limit: limit,
|
|
3439
|
-
page_id: pageId,
|
|
3440
|
-
min_events_count: minEventsCount
|
|
3602
|
+
listThreads: function listThreads(params) {
|
|
3603
|
+
return sendRequestAction$1(sendRequest(LIST_THREADS, params.pageId === undefined ? {
|
|
3604
|
+
chat_id: params.chatId,
|
|
3605
|
+
sort_order: params.sortOrder,
|
|
3606
|
+
limit: params.limit,
|
|
3607
|
+
min_events_count: params.minEventsCount
|
|
3608
|
+
} : {
|
|
3609
|
+
chat_id: params.chatId,
|
|
3610
|
+
page_id: params.pageId
|
|
3441
3611
|
}));
|
|
3442
3612
|
},
|
|
3443
|
-
markEventsAsSeen: function markEventsAsSeen(
|
|
3444
|
-
var chatId =
|
|
3445
|
-
seenUpTo =
|
|
3446
|
-
return sendRequestAction
|
|
3613
|
+
markEventsAsSeen: function markEventsAsSeen(_ref13) {
|
|
3614
|
+
var chatId = _ref13.chatId,
|
|
3615
|
+
seenUpTo = _ref13.seenUpTo;
|
|
3616
|
+
return sendRequestAction$1(sendRequest(MARK_EVENTS_AS_SEEN, {
|
|
3447
3617
|
chat_id: chatId,
|
|
3448
3618
|
seen_up_to: seenUpTo
|
|
3449
3619
|
}));
|
|
@@ -3456,8 +3626,8 @@ var init = function init(config, env) {
|
|
|
3456
3626
|
rating = params.rating;
|
|
3457
3627
|
return api.listThreads({
|
|
3458
3628
|
chatId: chatId
|
|
3459
|
-
}).then(function (
|
|
3460
|
-
var threads =
|
|
3629
|
+
}).then(function (_ref14) {
|
|
3630
|
+
var threads = _ref14.threads;
|
|
3461
3631
|
|
|
3462
3632
|
if (!threads.length) {
|
|
3463
3633
|
throw createError({
|
|
@@ -3475,53 +3645,61 @@ var init = function init(config, env) {
|
|
|
3475
3645
|
});
|
|
3476
3646
|
});
|
|
3477
3647
|
},
|
|
3648
|
+
resumeChat: function resumeChat(data) {
|
|
3649
|
+
log({
|
|
3650
|
+
env: env,
|
|
3651
|
+
licenseId: config.licenseId,
|
|
3652
|
+
eventName: 'chat_started'
|
|
3653
|
+
});
|
|
3654
|
+
return sendRequestAction$1(sendRequest(RESUME_CHAT, parseResumeChatData(data)));
|
|
3655
|
+
},
|
|
3478
3656
|
sendEvent: function (_sendEvent) {
|
|
3479
|
-
function sendEvent
|
|
3657
|
+
function sendEvent(_x) {
|
|
3480
3658
|
return _sendEvent.apply(this, arguments);
|
|
3481
3659
|
}
|
|
3482
3660
|
|
|
3483
|
-
sendEvent
|
|
3661
|
+
sendEvent.toString = function () {
|
|
3484
3662
|
return _sendEvent.toString();
|
|
3485
3663
|
};
|
|
3486
3664
|
|
|
3487
|
-
return sendEvent
|
|
3665
|
+
return sendEvent;
|
|
3488
3666
|
}(function (params) {
|
|
3489
|
-
return sendRequestAction
|
|
3667
|
+
return sendRequestAction$1(sendEvent(params));
|
|
3490
3668
|
}),
|
|
3491
|
-
sendTicketForm: function sendTicketForm
|
|
3669
|
+
sendTicketForm: function sendTicketForm$1(options) {
|
|
3492
3670
|
return sendTicketForm(store, auth, options);
|
|
3493
3671
|
},
|
|
3494
|
-
sendRichMessagePostback: function sendRichMessagePostback(
|
|
3495
|
-
var chatId =
|
|
3496
|
-
threadId =
|
|
3497
|
-
eventId =
|
|
3498
|
-
postback =
|
|
3499
|
-
return sendRequestAction
|
|
3672
|
+
sendRichMessagePostback: function sendRichMessagePostback(_ref15) {
|
|
3673
|
+
var chatId = _ref15.chatId,
|
|
3674
|
+
threadId = _ref15.threadId,
|
|
3675
|
+
eventId = _ref15.eventId,
|
|
3676
|
+
postback = _ref15.postback;
|
|
3677
|
+
return sendRequestAction$1(sendRequest(SEND_RICH_MESSAGE_POSTBACK, {
|
|
3500
3678
|
chat_id: chatId,
|
|
3501
3679
|
event_id: eventId,
|
|
3502
3680
|
thread_id: threadId,
|
|
3503
3681
|
postback: postback
|
|
3504
3682
|
}));
|
|
3505
3683
|
},
|
|
3506
|
-
setCustomerSessionFields: function setCustomerSessionFields(
|
|
3507
|
-
var sessionFields =
|
|
3508
|
-
return sendRequestAction
|
|
3684
|
+
setCustomerSessionFields: function setCustomerSessionFields(_ref16) {
|
|
3685
|
+
var sessionFields = _ref16.sessionFields;
|
|
3686
|
+
return sendRequestAction$1(sendRequest(SET_CUSTOMER_SESSION_FIELDS, {
|
|
3509
3687
|
session_fields: parseCustomerSessionFields(sessionFields)
|
|
3510
3688
|
}));
|
|
3511
3689
|
},
|
|
3512
|
-
setSneakPeek: function setSneakPeek(
|
|
3513
|
-
var chatId =
|
|
3514
|
-
sneakPeekText =
|
|
3690
|
+
setSneakPeek: function setSneakPeek(_ref17) {
|
|
3691
|
+
var chatId = _ref17.chatId,
|
|
3692
|
+
sneakPeekText = _ref17.sneakPeekText;
|
|
3515
3693
|
var state = store.getState();
|
|
3516
3694
|
|
|
3517
3695
|
if (!isChatActive(state, chatId) || !isConnected(state)) {
|
|
3518
3696
|
return;
|
|
3519
3697
|
}
|
|
3520
3698
|
|
|
3521
|
-
sendRequestAction
|
|
3699
|
+
sendRequestAction$1(sendRequest(SEND_SNEAK_PEEK, {
|
|
3522
3700
|
chat_id: chatId,
|
|
3523
3701
|
sneak_peek_text: sneakPeekText
|
|
3524
|
-
}))
|
|
3702
|
+
}))["catch"](dataUtils.noop);
|
|
3525
3703
|
},
|
|
3526
3704
|
startChat: function startChat(data) {
|
|
3527
3705
|
if (data === void 0) {
|
|
@@ -3533,18 +3711,18 @@ var init = function init(config, env) {
|
|
|
3533
3711
|
licenseId: config.licenseId,
|
|
3534
3712
|
eventName: 'chat_started'
|
|
3535
3713
|
});
|
|
3536
|
-
return sendRequestAction
|
|
3714
|
+
return sendRequestAction$1(sendRequest(START_CHAT, parseStartChatData(data)));
|
|
3537
3715
|
},
|
|
3538
|
-
updateChatProperties: function updateChatProperties(
|
|
3539
|
-
var
|
|
3540
|
-
properties =
|
|
3541
|
-
return sendRequestAction
|
|
3542
|
-
|
|
3716
|
+
updateChatProperties: function updateChatProperties(_ref18) {
|
|
3717
|
+
var id = _ref18.id,
|
|
3718
|
+
properties = _ref18.properties;
|
|
3719
|
+
return sendRequestAction$1(sendRequest(UPDATE_CHAT_PROPERTIES, {
|
|
3720
|
+
id: id,
|
|
3543
3721
|
properties: properties
|
|
3544
3722
|
}));
|
|
3545
3723
|
},
|
|
3546
3724
|
updateCustomer: function updateCustomer(update) {
|
|
3547
|
-
return sendRequestAction
|
|
3725
|
+
return sendRequestAction$1(sendRequest(UPDATE_CUSTOMER, parseCustomerUpdate(update)));
|
|
3548
3726
|
},
|
|
3549
3727
|
updateCustomerPage: function updateCustomerPage(page) {
|
|
3550
3728
|
store.dispatch({
|
|
@@ -3552,29 +3730,29 @@ var init = function init(config, env) {
|
|
|
3552
3730
|
payload: dataUtils.pickOwn(['title', 'url'], page)
|
|
3553
3731
|
});
|
|
3554
3732
|
},
|
|
3555
|
-
updateEventProperties: function updateEventProperties(
|
|
3556
|
-
var chatId =
|
|
3557
|
-
threadId =
|
|
3558
|
-
eventId =
|
|
3559
|
-
properties =
|
|
3560
|
-
return sendRequestAction
|
|
3733
|
+
updateEventProperties: function updateEventProperties(_ref19) {
|
|
3734
|
+
var chatId = _ref19.chatId,
|
|
3735
|
+
threadId = _ref19.threadId,
|
|
3736
|
+
eventId = _ref19.eventId,
|
|
3737
|
+
properties = _ref19.properties;
|
|
3738
|
+
return sendRequestAction$1(sendRequest(UPDATE_EVENT_PROPERTIES, {
|
|
3561
3739
|
chat_id: chatId,
|
|
3562
3740
|
event_id: eventId,
|
|
3563
3741
|
thread_id: threadId,
|
|
3564
3742
|
properties: properties
|
|
3565
3743
|
}));
|
|
3566
3744
|
},
|
|
3567
|
-
updateThreadProperties: function updateThreadProperties(
|
|
3568
|
-
var chatId =
|
|
3569
|
-
threadId =
|
|
3570
|
-
properties =
|
|
3571
|
-
return sendRequestAction
|
|
3745
|
+
updateThreadProperties: function updateThreadProperties(_ref20) {
|
|
3746
|
+
var chatId = _ref20.chatId,
|
|
3747
|
+
threadId = _ref20.threadId,
|
|
3748
|
+
properties = _ref20.properties;
|
|
3749
|
+
return sendRequestAction$1(sendRequest(UPDATE_THREAD_PROPERTIES, {
|
|
3572
3750
|
chat_id: chatId,
|
|
3573
3751
|
thread_id: threadId,
|
|
3574
3752
|
properties: properties
|
|
3575
3753
|
}));
|
|
3576
3754
|
},
|
|
3577
|
-
uploadFile: function uploadFile
|
|
3755
|
+
uploadFile: function uploadFile$1(options) {
|
|
3578
3756
|
return uploadFile({
|
|
3579
3757
|
auth: auth,
|
|
3580
3758
|
store: store
|
|
@@ -3596,12 +3774,14 @@ var init = function init(config, env) {
|
|
|
3596
3774
|
return api;
|
|
3597
3775
|
};
|
|
3598
3776
|
|
|
3599
|
-
exports.init = init;
|
|
3600
3777
|
exports.debug = debug;
|
|
3778
|
+
exports.init = init;
|
|
3779
|
+
exports.parseCustomEvent = parseCustomEvent;
|
|
3780
|
+
exports.parseEvent = parseEvent$1;
|
|
3601
3781
|
exports.parseFile = parseFile;
|
|
3602
3782
|
exports.parseFilledForm = parseFilledForm;
|
|
3783
|
+
exports.parseForm = parseForm$1;
|
|
3784
|
+
exports.parseGreeting = parseGreeting;
|
|
3603
3785
|
exports.parseMessage = parseMessage;
|
|
3604
3786
|
exports.parseRichMessage = parseRichMessage;
|
|
3605
3787
|
exports.parseSystemMessage = parseSystemMessage;
|
|
3606
|
-
exports.parseEvent = parseEvent$1;
|
|
3607
|
-
exports.parseGreeting = parseGreeting;
|