@livechat/customer-sdk 3.1.3 → 3.1.5
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 +10 -18
- package/dist/customer-sdk.cjs.js +48 -68
- package/dist/customer-sdk.cjs.native.js +48 -68
- package/dist/customer-sdk.esm.js +45 -67
- package/dist/customer-sdk.js +215 -347
- package/dist/customer-sdk.min.js +1 -1
- package/package.json +6 -5
- package/types/createStore.d.ts +1 -1
- package/types/graylog/index.d.ts +2 -2
- package/types/index.d.ts +3 -9
- package/types/sendTicketForm.d.ts +1 -2
- package/types/serverFrameParser.d.ts +1 -1
- package/types/sideEffects/index.d.ts +1 -2
- package/types/sideStorage.d.ts +2 -2
- package/types/socketListener.d.ts +1 -4
- package/types/types/clientEntities.d.ts +0 -2
- package/types/types/serverEntities.d.ts +0 -1
- package/types/types/state.d.ts +2 -2
- package/types/constants/organizationIds.d.ts +0 -2
|
@@ -7,7 +7,8 @@ var mitt = require('@livechat/mitt');
|
|
|
7
7
|
var dataUtils = require('@livechat/data-utils');
|
|
8
8
|
var redux = require('redux');
|
|
9
9
|
var createSideEffectsMiddleware = require('@livechat/side-effects-middleware');
|
|
10
|
-
var
|
|
10
|
+
var deferred = require('@livechat/deferred');
|
|
11
|
+
var promiseTry = require('@livechat/promise-try');
|
|
11
12
|
var createBackoff = require('@livechat/backoff');
|
|
12
13
|
var storage = require('@livechat/isomorphic-storage');
|
|
13
14
|
var unfetch = require('unfetch');
|
|
@@ -20,6 +21,8 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
20
21
|
var createAuth__default = /*#__PURE__*/_interopDefaultLegacy(createAuth);
|
|
21
22
|
var mitt__default = /*#__PURE__*/_interopDefaultLegacy(mitt);
|
|
22
23
|
var createSideEffectsMiddleware__default = /*#__PURE__*/_interopDefaultLegacy(createSideEffectsMiddleware);
|
|
24
|
+
var deferred__default = /*#__PURE__*/_interopDefaultLegacy(deferred);
|
|
25
|
+
var promiseTry__default = /*#__PURE__*/_interopDefaultLegacy(promiseTry);
|
|
23
26
|
var createBackoff__default = /*#__PURE__*/_interopDefaultLegacy(createBackoff);
|
|
24
27
|
var storage__default = /*#__PURE__*/_interopDefaultLegacy(storage);
|
|
25
28
|
var unfetch__default = /*#__PURE__*/_interopDefaultLegacy(unfetch);
|
|
@@ -154,8 +157,6 @@ var RECONNECTING = 'reconnecting';
|
|
|
154
157
|
var AGENT = 'agent';
|
|
155
158
|
var CUSTOMER = 'customer';
|
|
156
159
|
|
|
157
|
-
var LIVECHAT_ORGANIZATION_ID = 'feaf6c0e-9f43-48ff-9ad0-8e24e0350932';
|
|
158
|
-
|
|
159
160
|
var getAllRequests = function getAllRequests(state) {
|
|
160
161
|
return state.requests;
|
|
161
162
|
};
|
|
@@ -179,9 +180,9 @@ var isDestroyed = function isDestroyed(state) {
|
|
|
179
180
|
return getConnectionStatus(state) === DESTROYED;
|
|
180
181
|
};
|
|
181
182
|
var getEnvPart = function getEnvPart(_ref) {
|
|
182
|
-
var
|
|
183
|
+
var licenseId = _ref.licenseId,
|
|
183
184
|
env = _ref.env;
|
|
184
|
-
if (
|
|
185
|
+
if (licenseId === 1520) {
|
|
185
186
|
return '.staging';
|
|
186
187
|
}
|
|
187
188
|
if (env === 'production') {
|
|
@@ -195,12 +196,12 @@ var getApiOrigin = function getApiOrigin(state) {
|
|
|
195
196
|
return "https://api" + regionPart + getEnvPart(state) + ".livechatinc.com";
|
|
196
197
|
};
|
|
197
198
|
var getServerUrl = function getServerUrl(state) {
|
|
198
|
-
return getApiOrigin(state) + "/v3.
|
|
199
|
+
return getApiOrigin(state) + "/v3.3/customer";
|
|
199
200
|
};
|
|
200
201
|
var createInitialState = function createInitialState(initialStateData) {
|
|
201
202
|
var _initialStateData$app = initialStateData.application,
|
|
202
203
|
application = _initialStateData$app === void 0 ? {} : _initialStateData$app,
|
|
203
|
-
|
|
204
|
+
licenseId = initialStateData.licenseId,
|
|
204
205
|
_initialStateData$gro = initialStateData.groupId,
|
|
205
206
|
groupId = _initialStateData$gro === void 0 ? null : _initialStateData$gro,
|
|
206
207
|
env = initialStateData.env,
|
|
@@ -217,9 +218,9 @@ var createInitialState = function createInitialState(initialStateData) {
|
|
|
217
218
|
return {
|
|
218
219
|
application: _extends({}, application, {
|
|
219
220
|
name: "customer_sdk",
|
|
220
|
-
version: "3.1.
|
|
221
|
+
version: "3.1.5"
|
|
221
222
|
}),
|
|
222
|
-
|
|
223
|
+
licenseId: licenseId,
|
|
223
224
|
env: env,
|
|
224
225
|
groupId: groupId,
|
|
225
226
|
chats: {},
|
|
@@ -673,10 +674,10 @@ var socketDisconnected = function socketDisconnected() {
|
|
|
673
674
|
// TODO: this thing is not really well typed and should be improved
|
|
674
675
|
var sendRequestAction = function sendRequestAction(store, action) {
|
|
675
676
|
action.payload.id = dataUtils.generateUniqueId(store.getState().requests);
|
|
676
|
-
var
|
|
677
|
-
resolve =
|
|
678
|
-
reject =
|
|
679
|
-
promise =
|
|
677
|
+
var _deferred = deferred__default['default'](),
|
|
678
|
+
resolve = _deferred.resolve,
|
|
679
|
+
reject = _deferred.reject,
|
|
680
|
+
promise = _deferred.promise;
|
|
680
681
|
action.payload.promise = promise;
|
|
681
682
|
action.payload.resolve = resolve;
|
|
682
683
|
action.payload.reject = reject;
|
|
@@ -689,39 +690,24 @@ var CUSTOMER_BANNED$1 = 'CUSTOMER_BANNED';
|
|
|
689
690
|
var USERS_LIMIT_REACHED = 'USERS_LIMIT_REACHED';
|
|
690
691
|
var WRONG_PRODUCT_VERSION = 'WRONG_PRODUCT_VERSION';
|
|
691
692
|
|
|
692
|
-
var
|
|
693
|
+
var getSideStorageKey = function getSideStorageKey(store) {
|
|
693
694
|
var _store$getState = store.getState(),
|
|
695
|
+
licenseId = _store$getState.licenseId,
|
|
694
696
|
groupId = _store$getState.groupId,
|
|
695
697
|
uniqueGroups = _store$getState.uniqueGroups;
|
|
696
698
|
return "side_storage_" + licenseId + (uniqueGroups ? ":" + groupId : '');
|
|
697
699
|
};
|
|
698
|
-
var
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
groupId = _store$getState2.groupId,
|
|
702
|
-
uniqueGroups = _store$getState2.uniqueGroups;
|
|
703
|
-
return "side_storage_" + organizationId + (uniqueGroups ? ":" + groupId : '');
|
|
704
|
-
};
|
|
705
|
-
var getSideStorage = function getSideStorage(store, licenseId) {
|
|
706
|
-
var sideStorageLicenseKey = getSideStorageKeyByLicense(store, licenseId);
|
|
707
|
-
var sideStorageOrganizationKey = getSideStorageKeyByOrganization(store);
|
|
708
|
-
return storage__default['default'].getItem(sideStorageLicenseKey)["catch"](dataUtils.noop).then(function (sideStorage) {
|
|
709
|
-
if (!sideStorage) {
|
|
710
|
-
return storage__default['default'].getItem(sideStorageOrganizationKey)["catch"](dataUtils.noop).then(function (organizationSideStorage) {
|
|
711
|
-
return JSON.parse(organizationSideStorage || '{}');
|
|
712
|
-
})["catch"](dataUtils.noop);
|
|
713
|
-
}
|
|
714
|
-
return storage__default['default'].setItem(sideStorageOrganizationKey, sideStorage)["catch"](dataUtils.noop).then(function () {
|
|
715
|
-
return storage__default['default'].removeItem(sideStorageLicenseKey)["catch"](dataUtils.noop).then(function () {
|
|
716
|
-
return JSON.parse(sideStorage);
|
|
717
|
-
})["catch"](dataUtils.noop);
|
|
718
|
-
});
|
|
700
|
+
var getSideStorage = function getSideStorage(store) {
|
|
701
|
+
return storage__default['default'].getItem(getSideStorageKey(store))["catch"](dataUtils.noop).then(function (sideStorage) {
|
|
702
|
+
return JSON.parse(sideStorage || '{}');
|
|
719
703
|
})
|
|
720
704
|
// shouldnt get triggered, just a defensive measure against malformed storage entries
|
|
721
|
-
["catch"](
|
|
705
|
+
["catch"](function () {
|
|
706
|
+
return {};
|
|
707
|
+
});
|
|
722
708
|
};
|
|
723
709
|
var saveSideStorage = function saveSideStorage(store, sideStorage) {
|
|
724
|
-
storage__default['default'].setItem(
|
|
710
|
+
return storage__default['default'].setItem(getSideStorageKey(store), JSON.stringify(sideStorage))["catch"](dataUtils.noop);
|
|
725
711
|
};
|
|
726
712
|
|
|
727
713
|
var taskChain = function taskChain(_ref, onSuccess, onError) {
|
|
@@ -729,7 +715,7 @@ var taskChain = function taskChain(_ref, onSuccess, onError) {
|
|
|
729
715
|
var cancelled = false;
|
|
730
716
|
var next = function next(intermediateResult) {
|
|
731
717
|
var step = steps.shift();
|
|
732
|
-
|
|
718
|
+
promiseTry__default['default'](function () {
|
|
733
719
|
return step(intermediateResult);
|
|
734
720
|
}).then(function (result) {
|
|
735
721
|
if (cancelled) {
|
|
@@ -762,7 +748,7 @@ var delay = function delay(ms) {
|
|
|
762
748
|
setTimeout(resolve, ms);
|
|
763
749
|
});
|
|
764
750
|
};
|
|
765
|
-
function createLoginTask(auth, customerDataProvider
|
|
751
|
+
function createLoginTask(auth, customerDataProvider) {
|
|
766
752
|
var store;
|
|
767
753
|
var sentPage = null;
|
|
768
754
|
var task;
|
|
@@ -783,7 +769,7 @@ function createLoginTask(auth, customerDataProvider, licenseId) {
|
|
|
783
769
|
return store.dispatch(reconnect(currentBackoffStrategy.duration()));
|
|
784
770
|
};
|
|
785
771
|
var getTokenAndSideStorage = function getTokenAndSideStorage() {
|
|
786
|
-
return Promise.all([auth.getToken(), getSideStorage(store
|
|
772
|
+
return Promise.all([auth.getToken(), getSideStorage(store)]);
|
|
787
773
|
};
|
|
788
774
|
var dispatchSelfId = function dispatchSelfId(_ref2) {
|
|
789
775
|
var token = _ref2[0],
|
|
@@ -923,7 +909,7 @@ var checkGoals = function checkGoals(store, auth, sessionFields) {
|
|
|
923
909
|
return;
|
|
924
910
|
}
|
|
925
911
|
var query = urlUtils.buildQueryString({
|
|
926
|
-
|
|
912
|
+
license_id: state.licenseId
|
|
927
913
|
});
|
|
928
914
|
var payload = {
|
|
929
915
|
session_fields: parseCustomerSessionFields(sessionFields || {}),
|
|
@@ -1422,11 +1408,11 @@ var sendRequest$1 = function sendRequest(socket, _ref3) {
|
|
|
1422
1408
|
{
|
|
1423
1409
|
var upgradedPushes = [];
|
|
1424
1410
|
socket.emit(_extends({}, frame, {
|
|
1425
|
-
version: '3.
|
|
1411
|
+
version: '3.3',
|
|
1426
1412
|
payload: _extends({}, frame.payload, {
|
|
1427
1413
|
pushes: {
|
|
1428
|
-
// '3.
|
|
1429
|
-
'3.
|
|
1414
|
+
// '3.4': upgradedPushes,
|
|
1415
|
+
'3.3': dataUtils.values(serverPushActions).filter(function (pushAction) {
|
|
1430
1416
|
return (
|
|
1431
1417
|
// `customer_disconnected` can be sent immediately after opening the connection, before it even received login request
|
|
1432
1418
|
// therefore it's not possible to subscribe for a particular version of this push - the "connection version" is always used
|
|
@@ -1596,10 +1582,9 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1596
1582
|
var auth = _ref9.auth,
|
|
1597
1583
|
customerDataProvider = _ref9.customerDataProvider,
|
|
1598
1584
|
emitter = _ref9.emitter,
|
|
1599
|
-
socket = _ref9.socket
|
|
1600
|
-
licenseId = _ref9.licenseId;
|
|
1585
|
+
socket = _ref9.socket;
|
|
1601
1586
|
var emit = emitter.emit;
|
|
1602
|
-
var loginTask = createLoginTask(auth, customerDataProvider
|
|
1587
|
+
var loginTask = createLoginTask(auth, customerDataProvider);
|
|
1603
1588
|
|
|
1604
1589
|
// TODO: using Store type here is a lie, middleware only provides MiddlewareAPI here
|
|
1605
1590
|
return function (action, store) {
|
|
@@ -1896,7 +1881,7 @@ var initialize = function initialize(store, emitter) {
|
|
|
1896
1881
|
var url = (getServerUrl(state) + "/rtm/ws").replace(/^https/, 'wss');
|
|
1897
1882
|
return createPlatformClient__default['default'](url, {
|
|
1898
1883
|
query: {
|
|
1899
|
-
|
|
1884
|
+
license_id: state.licenseId
|
|
1900
1885
|
},
|
|
1901
1886
|
emitter: emitter
|
|
1902
1887
|
});
|
|
@@ -2188,17 +2173,16 @@ var parseListChatsResponse = function parseListChatsResponse(payload) {
|
|
|
2188
2173
|
var lastEventSummary = dataUtils.last(lastEventSummariesArray.sort(function (eventSummaryA, eventSummaryB) {
|
|
2189
2174
|
return eventSummaryA.thread_id === eventSummaryB.thread_id ? dataUtils.stringCompare(eventSummaryA.event.created_at, eventSummaryB.event.created_at) : dataUtils.stringCompare(eventSummaryA.thread_created_at, eventSummaryB.thread_created_at);
|
|
2190
2175
|
}));
|
|
2191
|
-
if (lastEventSummary
|
|
2176
|
+
if (lastEventSummary) {
|
|
2192
2177
|
chatSummary.lastEvent = chatSummary.lastEventsPerType[lastEventSummary.event.type];
|
|
2193
2178
|
}
|
|
2194
2179
|
return chatSummary;
|
|
2195
2180
|
});
|
|
2196
2181
|
return {
|
|
2197
2182
|
chatsSummary: dataUtils.numericSortBy(function (_ref4) {
|
|
2198
|
-
var _ref5;
|
|
2199
2183
|
var lastEvent = _ref4.lastEvent,
|
|
2200
2184
|
order = _ref4.order;
|
|
2201
|
-
return -1 * (
|
|
2185
|
+
return -1 * (lastEvent !== undefined ? lastEvent.timestamp : order);
|
|
2202
2186
|
}, chatsSummary),
|
|
2203
2187
|
totalChats: payload.total_chats,
|
|
2204
2188
|
users: dataUtils.uniqBy(function (user) {
|
|
@@ -2375,9 +2359,9 @@ var parsePush = function parsePush(push) {
|
|
|
2375
2359
|
};
|
|
2376
2360
|
}
|
|
2377
2361
|
};
|
|
2378
|
-
var parseResponse = function parseResponse(
|
|
2379
|
-
var request =
|
|
2380
|
-
response =
|
|
2362
|
+
var parseResponse = function parseResponse(_ref5) {
|
|
2363
|
+
var request = _ref5.request,
|
|
2364
|
+
response = _ref5.response;
|
|
2381
2365
|
switch (response.action) {
|
|
2382
2366
|
case ACCEPT_GREETING:
|
|
2383
2367
|
return {
|
|
@@ -2631,10 +2615,9 @@ var createTicketBody = function createTicketBody(state, _ref) {
|
|
|
2631
2615
|
customerId = _ref.customerId,
|
|
2632
2616
|
_ref$groupId = _ref.groupId,
|
|
2633
2617
|
groupId = _ref$groupId === void 0 ? state.groupId : _ref$groupId,
|
|
2634
|
-
licenseId = _ref.licenseId,
|
|
2635
2618
|
timeZone = _ref.timeZone;
|
|
2636
2619
|
var ticketBody = _extends({
|
|
2637
|
-
licence_id: licenseId,
|
|
2620
|
+
licence_id: state.licenseId,
|
|
2638
2621
|
ticket_message: '',
|
|
2639
2622
|
offline_message: '',
|
|
2640
2623
|
visitor_id: customerId,
|
|
@@ -2714,7 +2697,6 @@ var createTicketBody = function createTicketBody(state, _ref) {
|
|
|
2714
2697
|
var sendTicketForm = function sendTicketForm(store, auth, _ref2) {
|
|
2715
2698
|
var filledForm = _ref2.filledForm,
|
|
2716
2699
|
groupId = _ref2.groupId,
|
|
2717
|
-
licenseId = _ref2.licenseId,
|
|
2718
2700
|
timeZone = _ref2.timeZone;
|
|
2719
2701
|
return auth.getToken().then(function (token) {
|
|
2720
2702
|
var state = store.getState();
|
|
@@ -2726,7 +2708,6 @@ var sendTicketForm = function sendTicketForm(store, auth, _ref2) {
|
|
|
2726
2708
|
fields: filledForm.fields,
|
|
2727
2709
|
customerId: token.entityId,
|
|
2728
2710
|
groupId: groupId,
|
|
2729
|
-
licenseId: licenseId,
|
|
2730
2711
|
timeZone: timeZone
|
|
2731
2712
|
});
|
|
2732
2713
|
return unfetch__default['default'](url, {
|
|
@@ -2811,7 +2792,7 @@ var uploadFile = function uploadFile(_ref, _ref2) {
|
|
|
2811
2792
|
validateFile(file);
|
|
2812
2793
|
var state = store.getState();
|
|
2813
2794
|
var query = urlUtils.buildQueryString({
|
|
2814
|
-
|
|
2795
|
+
license_id: state.licenseId
|
|
2815
2796
|
});
|
|
2816
2797
|
var url = getServerUrl(state) + "/action/" + UPLOAD_FILE + "?" + query;
|
|
2817
2798
|
var payload = {
|
|
@@ -2877,7 +2858,7 @@ var makeGraylogRequest = function makeGraylogRequest(url, body) {
|
|
|
2877
2858
|
*/
|
|
2878
2859
|
var log = function log(_ref) {
|
|
2879
2860
|
var env = _ref.env,
|
|
2880
|
-
|
|
2861
|
+
licenseId = _ref.licenseId,
|
|
2881
2862
|
eventName = _ref.eventName;
|
|
2882
2863
|
if (env !== 'production' || "customer_sdk" !== 'customer_sdk') {
|
|
2883
2864
|
return Promise.resolve();
|
|
@@ -2885,10 +2866,10 @@ var log = function log(_ref) {
|
|
|
2885
2866
|
var message = {
|
|
2886
2867
|
event_name: eventName,
|
|
2887
2868
|
severity: 'Informational',
|
|
2888
|
-
sdkVersion: "3.1.
|
|
2869
|
+
sdkVersion: "3.1.5"
|
|
2889
2870
|
};
|
|
2890
2871
|
var body = {
|
|
2891
|
-
|
|
2872
|
+
licence_id: licenseId,
|
|
2892
2873
|
event_id: 'chat_widget_customer_sdk',
|
|
2893
2874
|
message: JSON.stringify(message)
|
|
2894
2875
|
};
|
|
@@ -3006,7 +2987,7 @@ var debug = (function (_sdk) {
|
|
|
3006
2987
|
});
|
|
3007
2988
|
|
|
3008
2989
|
var CHATS_PAGINATION_MAX_LIMIT = 25;
|
|
3009
|
-
var init = function init(config, env
|
|
2990
|
+
var init = function init(config, env) {
|
|
3010
2991
|
if (env === void 0) {
|
|
3011
2992
|
env = 'production';
|
|
3012
2993
|
}
|
|
@@ -3021,13 +3002,12 @@ var init = function init(config, env, licenseId) {
|
|
|
3021
3002
|
}));
|
|
3022
3003
|
var emitter = mitt__default['default']();
|
|
3023
3004
|
var socket = createSocketClient(store);
|
|
3024
|
-
var auth = typeof identityProvider === 'function' ? identityProvider() : createAuth__default['default'](instanceConfig,
|
|
3005
|
+
var auth = typeof identityProvider === 'function' ? identityProvider() : createAuth__default['default'](instanceConfig, env);
|
|
3025
3006
|
store.addSideEffectsHandler(createSideEffectsHandler({
|
|
3026
3007
|
emitter: emitter,
|
|
3027
3008
|
socket: socket,
|
|
3028
3009
|
auth: auth,
|
|
3029
|
-
customerDataProvider: customerDataProvider
|
|
3030
|
-
licenseId: licenseId
|
|
3010
|
+
customerDataProvider: customerDataProvider
|
|
3031
3011
|
}));
|
|
3032
3012
|
socketListener(store, socket);
|
|
3033
3013
|
var sendRequestAction$1 = sendRequestAction.bind(null, store);
|
|
@@ -3226,7 +3206,7 @@ var init = function init(config, env, licenseId) {
|
|
|
3226
3206
|
resumeChat: function resumeChat(data) {
|
|
3227
3207
|
log({
|
|
3228
3208
|
env: env,
|
|
3229
|
-
|
|
3209
|
+
licenseId: config.licenseId,
|
|
3230
3210
|
eventName: 'chat_started'
|
|
3231
3211
|
});
|
|
3232
3212
|
return sendRequestAction$1(sendRequest(RESUME_CHAT, parseResumeChatData(data)));
|
|
@@ -3281,7 +3261,7 @@ var init = function init(config, env, licenseId) {
|
|
|
3281
3261
|
}
|
|
3282
3262
|
log({
|
|
3283
3263
|
env: env,
|
|
3284
|
-
|
|
3264
|
+
licenseId: config.licenseId,
|
|
3285
3265
|
eventName: 'chat_started'
|
|
3286
3266
|
});
|
|
3287
3267
|
return sendRequestAction$1(sendRequest(START_CHAT, parseStartChatData(data)));
|
package/dist/customer-sdk.esm.js
CHANGED
|
@@ -3,7 +3,8 @@ import mitt from '@livechat/mitt';
|
|
|
3
3
|
import { hasOwn, identity, toPairs, pickOwn, isObject, generateUniqueId, noop, pick, mapValues, keyBy, values, includes, isEmpty, numericSortBy, uniqBy, flatMap, last, stringCompare } from '@livechat/data-utils';
|
|
4
4
|
import { createStore, applyMiddleware } from 'redux';
|
|
5
5
|
import createSideEffectsMiddleware from '@livechat/side-effects-middleware';
|
|
6
|
-
import
|
|
6
|
+
import deferred from '@livechat/deferred';
|
|
7
|
+
import promiseTry from '@livechat/promise-try';
|
|
7
8
|
import createBackoff from '@livechat/backoff';
|
|
8
9
|
import storage from '@livechat/isomorphic-storage';
|
|
9
10
|
import unfetch from 'unfetch';
|
|
@@ -139,8 +140,6 @@ var RECONNECTING = 'reconnecting';
|
|
|
139
140
|
var AGENT = 'agent';
|
|
140
141
|
var CUSTOMER = 'customer';
|
|
141
142
|
|
|
142
|
-
var LIVECHAT_ORGANIZATION_ID = 'feaf6c0e-9f43-48ff-9ad0-8e24e0350932';
|
|
143
|
-
|
|
144
143
|
var getAllRequests = function getAllRequests(state) {
|
|
145
144
|
return state.requests;
|
|
146
145
|
};
|
|
@@ -164,9 +163,9 @@ var isDestroyed = function isDestroyed(state) {
|
|
|
164
163
|
return getConnectionStatus(state) === DESTROYED;
|
|
165
164
|
};
|
|
166
165
|
var getEnvPart = function getEnvPart(_ref) {
|
|
167
|
-
var
|
|
166
|
+
var licenseId = _ref.licenseId,
|
|
168
167
|
env = _ref.env;
|
|
169
|
-
if (
|
|
168
|
+
if (licenseId === 1520) {
|
|
170
169
|
return '.staging';
|
|
171
170
|
}
|
|
172
171
|
if (env === 'production') {
|
|
@@ -180,12 +179,12 @@ var getApiOrigin = function getApiOrigin(state) {
|
|
|
180
179
|
return "https://api" + regionPart + getEnvPart(state) + ".livechatinc.com";
|
|
181
180
|
};
|
|
182
181
|
var getServerUrl = function getServerUrl(state) {
|
|
183
|
-
return getApiOrigin(state) + "/v3.
|
|
182
|
+
return getApiOrigin(state) + "/v3.3/customer";
|
|
184
183
|
};
|
|
185
184
|
var createInitialState = function createInitialState(initialStateData) {
|
|
186
185
|
var _initialStateData$app = initialStateData.application,
|
|
187
186
|
application = _initialStateData$app === void 0 ? {} : _initialStateData$app,
|
|
188
|
-
|
|
187
|
+
licenseId = initialStateData.licenseId,
|
|
189
188
|
_initialStateData$gro = initialStateData.groupId,
|
|
190
189
|
groupId = _initialStateData$gro === void 0 ? null : _initialStateData$gro,
|
|
191
190
|
env = initialStateData.env,
|
|
@@ -202,9 +201,9 @@ var createInitialState = function createInitialState(initialStateData) {
|
|
|
202
201
|
return {
|
|
203
202
|
application: _extends({}, application, {
|
|
204
203
|
name: "customer_sdk",
|
|
205
|
-
version: "3.1.
|
|
204
|
+
version: "3.1.5"
|
|
206
205
|
}),
|
|
207
|
-
|
|
206
|
+
licenseId: licenseId,
|
|
208
207
|
env: env,
|
|
209
208
|
groupId: groupId,
|
|
210
209
|
chats: {},
|
|
@@ -658,10 +657,10 @@ var socketDisconnected = function socketDisconnected() {
|
|
|
658
657
|
// TODO: this thing is not really well typed and should be improved
|
|
659
658
|
var sendRequestAction = function sendRequestAction(store, action) {
|
|
660
659
|
action.payload.id = generateUniqueId(store.getState().requests);
|
|
661
|
-
var
|
|
662
|
-
resolve =
|
|
663
|
-
reject =
|
|
664
|
-
promise =
|
|
660
|
+
var _deferred = deferred(),
|
|
661
|
+
resolve = _deferred.resolve,
|
|
662
|
+
reject = _deferred.reject,
|
|
663
|
+
promise = _deferred.promise;
|
|
665
664
|
action.payload.promise = promise;
|
|
666
665
|
action.payload.resolve = resolve;
|
|
667
666
|
action.payload.reject = reject;
|
|
@@ -674,39 +673,24 @@ var CUSTOMER_BANNED$1 = 'CUSTOMER_BANNED';
|
|
|
674
673
|
var USERS_LIMIT_REACHED = 'USERS_LIMIT_REACHED';
|
|
675
674
|
var WRONG_PRODUCT_VERSION = 'WRONG_PRODUCT_VERSION';
|
|
676
675
|
|
|
677
|
-
var
|
|
676
|
+
var getSideStorageKey = function getSideStorageKey(store) {
|
|
678
677
|
var _store$getState = store.getState(),
|
|
678
|
+
licenseId = _store$getState.licenseId,
|
|
679
679
|
groupId = _store$getState.groupId,
|
|
680
680
|
uniqueGroups = _store$getState.uniqueGroups;
|
|
681
681
|
return "side_storage_" + licenseId + (uniqueGroups ? ":" + groupId : '');
|
|
682
682
|
};
|
|
683
|
-
var
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
groupId = _store$getState2.groupId,
|
|
687
|
-
uniqueGroups = _store$getState2.uniqueGroups;
|
|
688
|
-
return "side_storage_" + organizationId + (uniqueGroups ? ":" + groupId : '');
|
|
689
|
-
};
|
|
690
|
-
var getSideStorage = function getSideStorage(store, licenseId) {
|
|
691
|
-
var sideStorageLicenseKey = getSideStorageKeyByLicense(store, licenseId);
|
|
692
|
-
var sideStorageOrganizationKey = getSideStorageKeyByOrganization(store);
|
|
693
|
-
return storage.getItem(sideStorageLicenseKey)["catch"](noop).then(function (sideStorage) {
|
|
694
|
-
if (!sideStorage) {
|
|
695
|
-
return storage.getItem(sideStorageOrganizationKey)["catch"](noop).then(function (organizationSideStorage) {
|
|
696
|
-
return JSON.parse(organizationSideStorage || '{}');
|
|
697
|
-
})["catch"](noop);
|
|
698
|
-
}
|
|
699
|
-
return storage.setItem(sideStorageOrganizationKey, sideStorage)["catch"](noop).then(function () {
|
|
700
|
-
return storage.removeItem(sideStorageLicenseKey)["catch"](noop).then(function () {
|
|
701
|
-
return JSON.parse(sideStorage);
|
|
702
|
-
})["catch"](noop);
|
|
703
|
-
});
|
|
683
|
+
var getSideStorage = function getSideStorage(store) {
|
|
684
|
+
return storage.getItem(getSideStorageKey(store))["catch"](noop).then(function (sideStorage) {
|
|
685
|
+
return JSON.parse(sideStorage || '{}');
|
|
704
686
|
})
|
|
705
687
|
// shouldnt get triggered, just a defensive measure against malformed storage entries
|
|
706
|
-
["catch"](
|
|
688
|
+
["catch"](function () {
|
|
689
|
+
return {};
|
|
690
|
+
});
|
|
707
691
|
};
|
|
708
692
|
var saveSideStorage = function saveSideStorage(store, sideStorage) {
|
|
709
|
-
storage.setItem(
|
|
693
|
+
return storage.setItem(getSideStorageKey(store), JSON.stringify(sideStorage))["catch"](noop);
|
|
710
694
|
};
|
|
711
695
|
|
|
712
696
|
var taskChain = function taskChain(_ref, onSuccess, onError) {
|
|
@@ -747,7 +731,7 @@ var delay = function delay(ms) {
|
|
|
747
731
|
setTimeout(resolve, ms);
|
|
748
732
|
});
|
|
749
733
|
};
|
|
750
|
-
function createLoginTask(auth, customerDataProvider
|
|
734
|
+
function createLoginTask(auth, customerDataProvider) {
|
|
751
735
|
var store;
|
|
752
736
|
var sentPage = null;
|
|
753
737
|
var task;
|
|
@@ -768,7 +752,7 @@ function createLoginTask(auth, customerDataProvider, licenseId) {
|
|
|
768
752
|
return store.dispatch(reconnect(currentBackoffStrategy.duration()));
|
|
769
753
|
};
|
|
770
754
|
var getTokenAndSideStorage = function getTokenAndSideStorage() {
|
|
771
|
-
return Promise.all([auth.getToken(), getSideStorage(store
|
|
755
|
+
return Promise.all([auth.getToken(), getSideStorage(store)]);
|
|
772
756
|
};
|
|
773
757
|
var dispatchSelfId = function dispatchSelfId(_ref2) {
|
|
774
758
|
var token = _ref2[0],
|
|
@@ -908,7 +892,7 @@ var checkGoals = function checkGoals(store, auth, sessionFields) {
|
|
|
908
892
|
return;
|
|
909
893
|
}
|
|
910
894
|
var query = buildQueryString({
|
|
911
|
-
|
|
895
|
+
license_id: state.licenseId
|
|
912
896
|
});
|
|
913
897
|
var payload = {
|
|
914
898
|
session_fields: parseCustomerSessionFields(sessionFields || {}),
|
|
@@ -1407,11 +1391,11 @@ var sendRequest$1 = function sendRequest(socket, _ref3) {
|
|
|
1407
1391
|
{
|
|
1408
1392
|
var upgradedPushes = [];
|
|
1409
1393
|
socket.emit(_extends({}, frame, {
|
|
1410
|
-
version: '3.
|
|
1394
|
+
version: '3.3',
|
|
1411
1395
|
payload: _extends({}, frame.payload, {
|
|
1412
1396
|
pushes: {
|
|
1413
|
-
// '3.
|
|
1414
|
-
'3.
|
|
1397
|
+
// '3.4': upgradedPushes,
|
|
1398
|
+
'3.3': values(serverPushActions).filter(function (pushAction) {
|
|
1415
1399
|
return (
|
|
1416
1400
|
// `customer_disconnected` can be sent immediately after opening the connection, before it even received login request
|
|
1417
1401
|
// therefore it's not possible to subscribe for a particular version of this push - the "connection version" is always used
|
|
@@ -1581,10 +1565,9 @@ var createSideEffectsHandler = (function (_ref9) {
|
|
|
1581
1565
|
var auth = _ref9.auth,
|
|
1582
1566
|
customerDataProvider = _ref9.customerDataProvider,
|
|
1583
1567
|
emitter = _ref9.emitter,
|
|
1584
|
-
socket = _ref9.socket
|
|
1585
|
-
licenseId = _ref9.licenseId;
|
|
1568
|
+
socket = _ref9.socket;
|
|
1586
1569
|
var emit = emitter.emit;
|
|
1587
|
-
var loginTask = createLoginTask(auth, customerDataProvider
|
|
1570
|
+
var loginTask = createLoginTask(auth, customerDataProvider);
|
|
1588
1571
|
|
|
1589
1572
|
// TODO: using Store type here is a lie, middleware only provides MiddlewareAPI here
|
|
1590
1573
|
return function (action, store) {
|
|
@@ -1881,7 +1864,7 @@ var initialize = function initialize(store, emitter) {
|
|
|
1881
1864
|
var url = (getServerUrl(state) + "/rtm/ws").replace(/^https/, 'wss');
|
|
1882
1865
|
return createPlatformClient(url, {
|
|
1883
1866
|
query: {
|
|
1884
|
-
|
|
1867
|
+
license_id: state.licenseId
|
|
1885
1868
|
},
|
|
1886
1869
|
emitter: emitter
|
|
1887
1870
|
});
|
|
@@ -2173,17 +2156,16 @@ var parseListChatsResponse = function parseListChatsResponse(payload) {
|
|
|
2173
2156
|
var lastEventSummary = last(lastEventSummariesArray.sort(function (eventSummaryA, eventSummaryB) {
|
|
2174
2157
|
return eventSummaryA.thread_id === eventSummaryB.thread_id ? stringCompare(eventSummaryA.event.created_at, eventSummaryB.event.created_at) : stringCompare(eventSummaryA.thread_created_at, eventSummaryB.thread_created_at);
|
|
2175
2158
|
}));
|
|
2176
|
-
if (lastEventSummary
|
|
2159
|
+
if (lastEventSummary) {
|
|
2177
2160
|
chatSummary.lastEvent = chatSummary.lastEventsPerType[lastEventSummary.event.type];
|
|
2178
2161
|
}
|
|
2179
2162
|
return chatSummary;
|
|
2180
2163
|
});
|
|
2181
2164
|
return {
|
|
2182
2165
|
chatsSummary: numericSortBy(function (_ref4) {
|
|
2183
|
-
var _ref5;
|
|
2184
2166
|
var lastEvent = _ref4.lastEvent,
|
|
2185
2167
|
order = _ref4.order;
|
|
2186
|
-
return -1 * (
|
|
2168
|
+
return -1 * (lastEvent !== undefined ? lastEvent.timestamp : order);
|
|
2187
2169
|
}, chatsSummary),
|
|
2188
2170
|
totalChats: payload.total_chats,
|
|
2189
2171
|
users: uniqBy(function (user) {
|
|
@@ -2360,9 +2342,9 @@ var parsePush = function parsePush(push) {
|
|
|
2360
2342
|
};
|
|
2361
2343
|
}
|
|
2362
2344
|
};
|
|
2363
|
-
var parseResponse = function parseResponse(
|
|
2364
|
-
var request =
|
|
2365
|
-
response =
|
|
2345
|
+
var parseResponse = function parseResponse(_ref5) {
|
|
2346
|
+
var request = _ref5.request,
|
|
2347
|
+
response = _ref5.response;
|
|
2366
2348
|
switch (response.action) {
|
|
2367
2349
|
case ACCEPT_GREETING:
|
|
2368
2350
|
return {
|
|
@@ -2616,10 +2598,9 @@ var createTicketBody = function createTicketBody(state, _ref) {
|
|
|
2616
2598
|
customerId = _ref.customerId,
|
|
2617
2599
|
_ref$groupId = _ref.groupId,
|
|
2618
2600
|
groupId = _ref$groupId === void 0 ? state.groupId : _ref$groupId,
|
|
2619
|
-
licenseId = _ref.licenseId,
|
|
2620
2601
|
timeZone = _ref.timeZone;
|
|
2621
2602
|
var ticketBody = _extends({
|
|
2622
|
-
licence_id: licenseId,
|
|
2603
|
+
licence_id: state.licenseId,
|
|
2623
2604
|
ticket_message: '',
|
|
2624
2605
|
offline_message: '',
|
|
2625
2606
|
visitor_id: customerId,
|
|
@@ -2699,7 +2680,6 @@ var createTicketBody = function createTicketBody(state, _ref) {
|
|
|
2699
2680
|
var sendTicketForm = function sendTicketForm(store, auth, _ref2) {
|
|
2700
2681
|
var filledForm = _ref2.filledForm,
|
|
2701
2682
|
groupId = _ref2.groupId,
|
|
2702
|
-
licenseId = _ref2.licenseId,
|
|
2703
2683
|
timeZone = _ref2.timeZone;
|
|
2704
2684
|
return auth.getToken().then(function (token) {
|
|
2705
2685
|
var state = store.getState();
|
|
@@ -2711,7 +2691,6 @@ var sendTicketForm = function sendTicketForm(store, auth, _ref2) {
|
|
|
2711
2691
|
fields: filledForm.fields,
|
|
2712
2692
|
customerId: token.entityId,
|
|
2713
2693
|
groupId: groupId,
|
|
2714
|
-
licenseId: licenseId,
|
|
2715
2694
|
timeZone: timeZone
|
|
2716
2695
|
});
|
|
2717
2696
|
return unfetch(url, {
|
|
@@ -2796,7 +2775,7 @@ var uploadFile = function uploadFile(_ref, _ref2) {
|
|
|
2796
2775
|
validateFile(file);
|
|
2797
2776
|
var state = store.getState();
|
|
2798
2777
|
var query = buildQueryString({
|
|
2799
|
-
|
|
2778
|
+
license_id: state.licenseId
|
|
2800
2779
|
});
|
|
2801
2780
|
var url = getServerUrl(state) + "/action/" + UPLOAD_FILE + "?" + query;
|
|
2802
2781
|
var payload = {
|
|
@@ -2862,7 +2841,7 @@ var makeGraylogRequest = function makeGraylogRequest(url, body) {
|
|
|
2862
2841
|
*/
|
|
2863
2842
|
var log = function log(_ref) {
|
|
2864
2843
|
var env = _ref.env,
|
|
2865
|
-
|
|
2844
|
+
licenseId = _ref.licenseId,
|
|
2866
2845
|
eventName = _ref.eventName;
|
|
2867
2846
|
if (env !== 'production' || "customer_sdk" !== 'customer_sdk') {
|
|
2868
2847
|
return Promise.resolve();
|
|
@@ -2870,10 +2849,10 @@ var log = function log(_ref) {
|
|
|
2870
2849
|
var message = {
|
|
2871
2850
|
event_name: eventName,
|
|
2872
2851
|
severity: 'Informational',
|
|
2873
|
-
sdkVersion: "3.1.
|
|
2852
|
+
sdkVersion: "3.1.5"
|
|
2874
2853
|
};
|
|
2875
2854
|
var body = {
|
|
2876
|
-
|
|
2855
|
+
licence_id: licenseId,
|
|
2877
2856
|
event_id: 'chat_widget_customer_sdk',
|
|
2878
2857
|
message: JSON.stringify(message)
|
|
2879
2858
|
};
|
|
@@ -2991,7 +2970,7 @@ var debug = (function (_sdk) {
|
|
|
2991
2970
|
});
|
|
2992
2971
|
|
|
2993
2972
|
var CHATS_PAGINATION_MAX_LIMIT = 25;
|
|
2994
|
-
var init = function init(config, env
|
|
2973
|
+
var init = function init(config, env) {
|
|
2995
2974
|
if (env === void 0) {
|
|
2996
2975
|
env = 'production';
|
|
2997
2976
|
}
|
|
@@ -3006,13 +2985,12 @@ var init = function init(config, env, licenseId) {
|
|
|
3006
2985
|
}));
|
|
3007
2986
|
var emitter = mitt();
|
|
3008
2987
|
var socket = createSocketClient(store);
|
|
3009
|
-
var auth = typeof identityProvider === 'function' ? identityProvider() : createAuth(instanceConfig,
|
|
2988
|
+
var auth = typeof identityProvider === 'function' ? identityProvider() : createAuth(instanceConfig, env);
|
|
3010
2989
|
store.addSideEffectsHandler(createSideEffectsHandler({
|
|
3011
2990
|
emitter: emitter,
|
|
3012
2991
|
socket: socket,
|
|
3013
2992
|
auth: auth,
|
|
3014
|
-
customerDataProvider: customerDataProvider
|
|
3015
|
-
licenseId: licenseId
|
|
2993
|
+
customerDataProvider: customerDataProvider
|
|
3016
2994
|
}));
|
|
3017
2995
|
socketListener(store, socket);
|
|
3018
2996
|
var sendRequestAction$1 = sendRequestAction.bind(null, store);
|
|
@@ -3211,7 +3189,7 @@ var init = function init(config, env, licenseId) {
|
|
|
3211
3189
|
resumeChat: function resumeChat(data) {
|
|
3212
3190
|
log({
|
|
3213
3191
|
env: env,
|
|
3214
|
-
|
|
3192
|
+
licenseId: config.licenseId,
|
|
3215
3193
|
eventName: 'chat_started'
|
|
3216
3194
|
});
|
|
3217
3195
|
return sendRequestAction$1(sendRequest(RESUME_CHAT, parseResumeChatData(data)));
|
|
@@ -3266,7 +3244,7 @@ var init = function init(config, env, licenseId) {
|
|
|
3266
3244
|
}
|
|
3267
3245
|
log({
|
|
3268
3246
|
env: env,
|
|
3269
|
-
|
|
3247
|
+
licenseId: config.licenseId,
|
|
3270
3248
|
eventName: 'chat_started'
|
|
3271
3249
|
});
|
|
3272
3250
|
return sendRequestAction$1(sendRequest(START_CHAT, parseStartChatData(data)));
|