@livechat/customer-sdk 5.0.0 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -101,6 +101,7 @@ CustomerData:
101
101
  | ------------- | ------ | ---------------- |
102
102
  | name | string | Optional |
103
103
  | email | string | Optional |
104
+ | phoneNumber | string | Optional |
104
105
  | sessionFields | object | Key: value pairs |
105
106
 
106
107
  CustomerAuth:
@@ -1217,6 +1218,7 @@ Updates the specified Customer properties and fields.
1217
1218
  const properties = {
1218
1219
  name: 'John Doe',
1219
1220
  email: 'john.doe@example.com',
1221
+ phoneNumber: '+1234567890',
1220
1222
  sessionFields: {
1221
1223
  custom_property: 'BasketValue=10usd',
1222
1224
  any_key_is_ok: 'sample custom field',
@@ -1232,6 +1234,7 @@ Parameters:
1232
1234
  | properties | | |
1233
1235
  | properties.name | string | Optional |
1234
1236
  | properties.email | string | Optional |
1237
+ | properties.phoneNumber | string | Optional |
1235
1238
  | properties.sessionFields | object | Optional; custom fields with string values |
1236
1239
 
1237
1240
  ### Errors
@@ -1242,6 +1245,8 @@ Parameters:
1242
1245
 
1243
1246
  Updates information about the Customer page using the provided page object.
1244
1247
 
1248
+ If the page URL change triggers a group reassignment via routing rules, the [`availability_updated`](#availability_updated) event will be emitted with the new group's availability status.
1249
+
1245
1250
  ```js
1246
1251
  const page = {
1247
1252
  url: 'https://developers.livechat.com/',
@@ -2256,6 +2261,18 @@ customerSDK.on('disconnected', ({ reason }) => {
2256
2261
 
2257
2262
  # Changelog
2258
2263
 
2264
+ ## [v5.1.0] - 2026-07-21
2265
+
2266
+ ### Added
2267
+
2268
+ - Support for `phoneNumber` property in the `customer` object.
2269
+
2270
+ ## [v5.0.1] - 2026-07-16
2271
+
2272
+ ### Fixed
2273
+
2274
+ - Fixed missing environment variable injection in the unpkg build.
2275
+
2259
2276
  ## [v5.0.0] - 2026-05-12
2260
2277
 
2261
2278
  ### Added
@@ -244,6 +244,9 @@ var parseCustomerSessionFields$1 = function parseCustomerSessionFields(sessionFi
244
244
  };
245
245
  var parseCustomerUpdate = function parseCustomerUpdate(update) {
246
246
  var result = dataUtils.pickOwn(['avatar', 'name', 'email'], update);
247
+ if (update.phoneNumber) {
248
+ result.phone_number = update.phoneNumber;
249
+ }
247
250
  if (update.sessionFields) {
248
251
  result.session_fields = parseCustomerSessionFields$1(update.sessionFields);
249
252
  }
@@ -790,7 +793,7 @@ var createInitialState = function createInitialState(initialStateData) {
790
793
  return {
791
794
  application: _extends({}, application, {
792
795
  name: "customer_sdk",
793
- version: "5.0.0"
796
+ version: "5.1.0"
794
797
  }),
795
798
  organizationId: organizationId,
796
799
  env: env,
@@ -944,7 +947,7 @@ var log = function log(_ref) {
944
947
  var message = {
945
948
  event_name: eventName,
946
949
  severity: 'Informational',
947
- sdkVersion: "5.0.0"
950
+ sdkVersion: "5.1.0"
948
951
  };
949
952
  var body = {
950
953
  organizationId: organizationId,
@@ -1439,6 +1442,9 @@ var parseChatAgent = function parseChatAgent(agent) {
1439
1442
  };
1440
1443
  var parseCustomerOptionalProps = function parseCustomerOptionalProps(customerProps) {
1441
1444
  var optionalProps = dataUtils.pickOwn(['avatar', 'email', 'name'], customerProps);
1445
+ if ('phone_number' in customerProps) {
1446
+ optionalProps.phoneNumber = customerProps.phone_number;
1447
+ }
1442
1448
  if (customerProps.session_fields) {
1443
1449
  optionalProps.sessionFields = parseCustomerSessionFields(customerProps.session_fields);
1444
1450
  }
@@ -2198,7 +2204,17 @@ var createSideEffectsHandler = (function (_ref8) {
2198
2204
  if (!isConnected(store.getState())) {
2199
2205
  return;
2200
2206
  }
2201
- sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload))["catch"](dataUtils.noop);
2207
+ sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload)).then(function (response) {
2208
+ var _response$groups;
2209
+ if (response != null && (_response$groups = response.groups) != null && _response$groups.length) {
2210
+ var _response$groups2 = response.groups,
2211
+ group = _response$groups2[0];
2212
+ var _availability = parseGroupStatus(group.status);
2213
+ emit('availability_updated', {
2214
+ availability: _availability
2215
+ });
2216
+ }
2217
+ })["catch"](dataUtils.noop);
2202
2218
  return;
2203
2219
  case IDENTITY_CHANGED:
2204
2220
  emit('identity_changed', action.payload);
@@ -2758,6 +2774,7 @@ var parsePush = function parsePush(push) {
2758
2774
  }
2759
2775
  };
2760
2776
  var parseResponse = function parseResponse(_ref6) {
2777
+ var _response$payload;
2761
2778
  var request = _ref6.request,
2762
2779
  response = _ref6.response;
2763
2780
  switch (response.action) {
@@ -2869,7 +2886,9 @@ var parseResponse = function parseResponse(_ref6) {
2869
2886
  case UPDATE_CUSTOMER_PAGE:
2870
2887
  return {
2871
2888
  action: response.action,
2872
- payload: SUCCESS
2889
+ payload: _extends({}, SUCCESS, {
2890
+ groups: (_response$payload = response.payload) == null ? void 0 : _response$payload.groups
2891
+ })
2873
2892
  };
2874
2893
  case UPDATE_EVENT_PROPERTIES:
2875
2894
  return {
@@ -244,6 +244,9 @@ var parseCustomerSessionFields$1 = function parseCustomerSessionFields(sessionFi
244
244
  };
245
245
  var parseCustomerUpdate = function parseCustomerUpdate(update) {
246
246
  var result = dataUtils.pickOwn(['avatar', 'name', 'email'], update);
247
+ if (update.phoneNumber) {
248
+ result.phone_number = update.phoneNumber;
249
+ }
247
250
  if (update.sessionFields) {
248
251
  result.session_fields = parseCustomerSessionFields$1(update.sessionFields);
249
252
  }
@@ -790,7 +793,7 @@ var createInitialState = function createInitialState(initialStateData) {
790
793
  return {
791
794
  application: _extends({}, application, {
792
795
  name: "customer_sdk",
793
- version: "5.0.0"
796
+ version: "5.1.0"
794
797
  }),
795
798
  organizationId: organizationId,
796
799
  env: env,
@@ -944,7 +947,7 @@ var log = function log(_ref) {
944
947
  var message = {
945
948
  event_name: eventName,
946
949
  severity: 'Informational',
947
- sdkVersion: "5.0.0"
950
+ sdkVersion: "5.1.0"
948
951
  };
949
952
  var body = {
950
953
  organizationId: organizationId,
@@ -1439,6 +1442,9 @@ var parseChatAgent = function parseChatAgent(agent) {
1439
1442
  };
1440
1443
  var parseCustomerOptionalProps = function parseCustomerOptionalProps(customerProps) {
1441
1444
  var optionalProps = dataUtils.pickOwn(['avatar', 'email', 'name'], customerProps);
1445
+ if ('phone_number' in customerProps) {
1446
+ optionalProps.phoneNumber = customerProps.phone_number;
1447
+ }
1442
1448
  if (customerProps.session_fields) {
1443
1449
  optionalProps.sessionFields = parseCustomerSessionFields(customerProps.session_fields);
1444
1450
  }
@@ -2198,7 +2204,17 @@ var createSideEffectsHandler = (function (_ref8) {
2198
2204
  if (!isConnected(store.getState())) {
2199
2205
  return;
2200
2206
  }
2201
- sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload))["catch"](dataUtils.noop);
2207
+ sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload)).then(function (response) {
2208
+ var _response$groups;
2209
+ if (response != null && (_response$groups = response.groups) != null && _response$groups.length) {
2210
+ var _response$groups2 = response.groups,
2211
+ group = _response$groups2[0];
2212
+ var _availability = parseGroupStatus(group.status);
2213
+ emit('availability_updated', {
2214
+ availability: _availability
2215
+ });
2216
+ }
2217
+ })["catch"](dataUtils.noop);
2202
2218
  return;
2203
2219
  case IDENTITY_CHANGED:
2204
2220
  emit('identity_changed', action.payload);
@@ -2758,6 +2774,7 @@ var parsePush = function parsePush(push) {
2758
2774
  }
2759
2775
  };
2760
2776
  var parseResponse = function parseResponse(_ref6) {
2777
+ var _response$payload;
2761
2778
  var request = _ref6.request,
2762
2779
  response = _ref6.response;
2763
2780
  switch (response.action) {
@@ -2869,7 +2886,9 @@ var parseResponse = function parseResponse(_ref6) {
2869
2886
  case UPDATE_CUSTOMER_PAGE:
2870
2887
  return {
2871
2888
  action: response.action,
2872
- payload: SUCCESS
2889
+ payload: _extends({}, SUCCESS, {
2890
+ groups: (_response$payload = response.payload) == null ? void 0 : _response$payload.groups
2891
+ })
2873
2892
  };
2874
2893
  case UPDATE_EVENT_PROPERTIES:
2875
2894
  return {
@@ -230,6 +230,9 @@ var parseCustomerSessionFields$1 = function parseCustomerSessionFields(sessionFi
230
230
  };
231
231
  var parseCustomerUpdate = function parseCustomerUpdate(update) {
232
232
  var result = pickOwn(['avatar', 'name', 'email'], update);
233
+ if (update.phoneNumber) {
234
+ result.phone_number = update.phoneNumber;
235
+ }
233
236
  if (update.sessionFields) {
234
237
  result.session_fields = parseCustomerSessionFields$1(update.sessionFields);
235
238
  }
@@ -776,7 +779,7 @@ var createInitialState = function createInitialState(initialStateData) {
776
779
  return {
777
780
  application: _extends({}, application, {
778
781
  name: "customer_sdk",
779
- version: "5.0.0"
782
+ version: "5.1.0"
780
783
  }),
781
784
  organizationId: organizationId,
782
785
  env: env,
@@ -930,7 +933,7 @@ var log = function log(_ref) {
930
933
  var message = {
931
934
  event_name: eventName,
932
935
  severity: 'Informational',
933
- sdkVersion: "5.0.0"
936
+ sdkVersion: "5.1.0"
934
937
  };
935
938
  var body = {
936
939
  organizationId: organizationId,
@@ -1425,6 +1428,9 @@ var parseChatAgent = function parseChatAgent(agent) {
1425
1428
  };
1426
1429
  var parseCustomerOptionalProps = function parseCustomerOptionalProps(customerProps) {
1427
1430
  var optionalProps = pickOwn(['avatar', 'email', 'name'], customerProps);
1431
+ if ('phone_number' in customerProps) {
1432
+ optionalProps.phoneNumber = customerProps.phone_number;
1433
+ }
1428
1434
  if (customerProps.session_fields) {
1429
1435
  optionalProps.sessionFields = parseCustomerSessionFields(customerProps.session_fields);
1430
1436
  }
@@ -2184,7 +2190,17 @@ var createSideEffectsHandler = (function (_ref8) {
2184
2190
  if (!isConnected(store.getState())) {
2185
2191
  return;
2186
2192
  }
2187
- sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload))["catch"](noop);
2193
+ sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload)).then(function (response) {
2194
+ var _response$groups;
2195
+ if (response != null && (_response$groups = response.groups) != null && _response$groups.length) {
2196
+ var _response$groups2 = response.groups,
2197
+ group = _response$groups2[0];
2198
+ var _availability = parseGroupStatus(group.status);
2199
+ emit('availability_updated', {
2200
+ availability: _availability
2201
+ });
2202
+ }
2203
+ })["catch"](noop);
2188
2204
  return;
2189
2205
  case IDENTITY_CHANGED:
2190
2206
  emit('identity_changed', action.payload);
@@ -2744,6 +2760,7 @@ var parsePush = function parsePush(push) {
2744
2760
  }
2745
2761
  };
2746
2762
  var parseResponse = function parseResponse(_ref6) {
2763
+ var _response$payload;
2747
2764
  var request = _ref6.request,
2748
2765
  response = _ref6.response;
2749
2766
  switch (response.action) {
@@ -2855,7 +2872,9 @@ var parseResponse = function parseResponse(_ref6) {
2855
2872
  case UPDATE_CUSTOMER_PAGE:
2856
2873
  return {
2857
2874
  action: response.action,
2858
- payload: SUCCESS
2875
+ payload: _extends({}, SUCCESS, {
2876
+ groups: (_response$payload = response.payload) == null ? void 0 : _response$payload.groups
2877
+ })
2859
2878
  };
2860
2879
  case UPDATE_EVENT_PROPERTIES:
2861
2880
  return {
@@ -478,7 +478,7 @@
478
478
  });
479
479
  }
480
480
 
481
- var ACCOUNTS_URL = process.env.PUBLIC_ACCOUNTS_URL;
481
+ var ACCOUNTS_URL = "https://accounts.livechatinc.com";
482
482
  var buildPath = function buildPath(_ref) {
483
483
  var uniqueGroups = _ref.uniqueGroups,
484
484
  organizationId = _ref.organizationId,
@@ -558,7 +558,7 @@
558
558
  var configEnv = config.env;
559
559
  var env = configEnv && ['labs', 'staging'].includes(configEnv) ? configEnv : 'production';
560
560
  var storage = createAsyncStorage(parentStorage);
561
- var tokenStoragePrefix = config.tokenStoragePrefix || process.env.PUBLIC_TOKEN_STORAGE_PREFIX;
561
+ var tokenStoragePrefix = config.tokenStoragePrefix || "@@lc_auth_token:";
562
562
  var cacheKey = "" + tokenStoragePrefix + config.organizationId + (config.uniqueGroups ? ":" + config.groupId : '');
563
563
  var pendingTokenRequest = null;
564
564
  var cachedToken = null;
@@ -824,6 +824,9 @@
824
824
  };
825
825
  var parseCustomerUpdate = function parseCustomerUpdate(update) {
826
826
  var result = pickOwn(['avatar', 'name', 'email'], update);
827
+ if (update.phoneNumber) {
828
+ result.phone_number = update.phoneNumber;
829
+ }
827
830
  if (update.sessionFields) {
828
831
  result.session_fields = parseCustomerSessionFields$1(update.sessionFields);
829
832
  }
@@ -1894,7 +1897,7 @@
1894
1897
  return {
1895
1898
  application: _extends({}, application, {
1896
1899
  name: "customer_sdk",
1897
- version: "5.0.0"
1900
+ version: "5.1.0"
1898
1901
  }),
1899
1902
  organizationId: organizationId,
1900
1903
  env: env,
@@ -2048,7 +2051,7 @@
2048
2051
  var message = {
2049
2052
  event_name: eventName,
2050
2053
  severity: 'Informational',
2051
- sdkVersion: "5.0.0"
2054
+ sdkVersion: "5.1.0"
2052
2055
  };
2053
2056
  var body = {
2054
2057
  organizationId: organizationId,
@@ -2543,6 +2546,9 @@
2543
2546
  };
2544
2547
  var parseCustomerOptionalProps = function parseCustomerOptionalProps(customerProps) {
2545
2548
  var optionalProps = pickOwn(['avatar', 'email', 'name'], customerProps);
2549
+ if ('phone_number' in customerProps) {
2550
+ optionalProps.phoneNumber = customerProps.phone_number;
2551
+ }
2546
2552
  if (customerProps.session_fields) {
2547
2553
  optionalProps.sessionFields = parseCustomerSessionFields(customerProps.session_fields);
2548
2554
  }
@@ -3302,7 +3308,17 @@
3302
3308
  if (!isConnected(store.getState())) {
3303
3309
  return;
3304
3310
  }
3305
- sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload))["catch"](noop);
3311
+ sendRequestAction(store, sendRequest$1(UPDATE_CUSTOMER_PAGE, action.payload)).then(function (response) {
3312
+ var _response$groups;
3313
+ if (response != null && (_response$groups = response.groups) != null && _response$groups.length) {
3314
+ var _response$groups2 = response.groups,
3315
+ group = _response$groups2[0];
3316
+ var _availability = parseGroupStatus(group.status);
3317
+ emit('availability_updated', {
3318
+ availability: _availability
3319
+ });
3320
+ }
3321
+ })["catch"](noop);
3306
3322
  return;
3307
3323
  case IDENTITY_CHANGED:
3308
3324
  emit('identity_changed', action.payload);
@@ -4086,6 +4102,7 @@
4086
4102
  }
4087
4103
  };
4088
4104
  var parseResponse = function parseResponse(_ref6) {
4105
+ var _response$payload;
4089
4106
  var request = _ref6.request,
4090
4107
  response = _ref6.response;
4091
4108
  switch (response.action) {
@@ -4197,7 +4214,9 @@
4197
4214
  case UPDATE_CUSTOMER_PAGE:
4198
4215
  return {
4199
4216
  action: response.action,
4200
- payload: SUCCESS
4217
+ payload: _extends({}, SUCCESS, {
4218
+ groups: (_response$payload = response.payload) == null ? void 0 : _response$payload.groups
4219
+ })
4201
4220
  };
4202
4221
  case UPDATE_EVENT_PROPERTIES:
4203
4222
  return {
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).CustomerSDK={})}(this,function(e){"use strict";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;arguments.length>t;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.apply(null,arguments)}function n(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}function r(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}var o="__test_storage_support__",a="@@test",i=function(){var e=Object.create(null);return{getItem:function(t){var n=e[t];return"string"==typeof n?n:null},setItem:function(t,n){e[t]=n},removeItem:function(t){delete e[t]},clear:function(){e=Object.create(null)}}}();function c(e){try{return window.localStorage}catch(t){return"SecurityError"===t.name&&e?e:function(e){void 0===e&&(e="local");try{var t="session"===e?window.sessionStorage:window.localStorage;return t.setItem(o,a),t.getItem(o)===a&&(t.removeItem(o),!0)}catch(e){return!1}}()?window.localStorage:i}}function u(e){var t=c(e);return{setItem:function(e,n){return new Promise(function(r){return r(t.setItem(e,n))})},getItem:function(e){return new Promise(function(n){return n(t.getItem(e))})},removeItem:function(e){return new Promise(function(n){return n(t.removeItem(e))})}}}u();var s={}.hasOwnProperty;function d(e,t){return s.call(t,e)}function p(e,t){var n;return(n=[]).concat.apply(n,t.map(e))}function l(e){return Array.isArray(e)}function f(e){if("keys"in Object&&"function"==typeof Object.keys)return Object.keys(e);var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t}function _(e,t){return f(t).reduce(function(n,r){return n[r]=e(t[r]),n},{})}function h(e){return e}function v(e){var t=Math.random().toString(36).substring(2);return d(t,e)?v(e):t}function y(){}function g(e){return f(e).map(function(t){return e[t]})}function m(e,t){return e.reduce(function(e,n){return e[n]=t[n],e},{})}function I(e,t){return e.reduce(function(e,n){return d(n,t)&&(e[n]=t[n]),e},{})}function E(e){return f(e).map(function(t){return[t,e[t]]})}function T(e,t){return e===t?0:t>e?-1:1}var b=function(e){return E(e).map(function(e){return e.map(encodeURIComponent).join("=")}).join("&")},O=/[^:]+:\/\/[^(/|?)\s]+/,S=function(e){return e.replace(/\w/g,"$&[\\r\\n\\t]*")};RegExp("^[\0-]*("+S("javascript")+"|"+S("data")+"):","i");var N=/^((http(s)?:)?\/\/)/;function C(e,t){return t=t||{},new Promise(function(n,r){var o=new XMLHttpRequest,a=[],i=[],c={},u=function(){return{ok:2==(o.status/100|0),statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:u,headers:{keys:function(){return a},entries:function(){return i},get:function(e){return c[e.toLowerCase()]},has:function(e){return e.toLowerCase()in c}}}};for(var s in o.open(t.method||"get",e,!0),o.onload=function(){o.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,t,n){a.push(t=t.toLowerCase()),i.push([t,n]),c[t]=c[t]?c[t]+","+n:n}),n(u())},o.onerror=r,o.withCredentials="include"==t.credentials,t.headers)o.setRequestHeader(s,t.headers[s]);o.send(t.body||null)})}var w=process.env.PUBLIC_ACCOUNTS_URL,P=function(e){var t=e.code,n=Error(e.message);return n.code=t,n},R=function(e,t){return C(""+function(e,t){var n="production"===t?w:w.replace("accounts.","accounts."+t+"."),r=function(e){return e.uniqueGroups?"/v2/customer/"+e.organizationId+"/"+e.groupId+"/token":"/v2/customer/token"}(e);return""+n+r}(e,t),{method:"POST",credentials:"include",body:JSON.stringify({response_type:"token",grant_type:"cookie",client_id:e.clientId,organization_id:e.organizationId,redirect_uri:(n=window.location+"",r=n.match(O),(r&&r[0])+window.location.pathname)})}).then(function(e){return e.json()}).then(function(t){return function(e,t){if("identity_exception"in e)throw P({code:"SSO_IDENTITY_EXCEPTION",message:e.identity_exception});if("oauth_exception"in e)throw P({code:"SSO_OAUTH_EXCEPTION",message:e.oauth_exception});return{accessToken:e.access_token,entityId:e.entity_id,expiresIn:1e3*e.expires_in,tokenType:e.token_type,creationDate:Date.now(),organizationId:t}}(t,e.organizationId)});var n,r},A=function(e){if("string"!=typeof e.organizationId||"string"!=typeof e.clientId)throw Error("You need to pass valid configuration object: { organizationId, clientId }.")},k=function(e,t){A(e);var n=e.env,r=n&&["labs","staging"].includes(n)?n:"production",o=u(t),a=""+(e.tokenStoragePrefix||process.env.PUBLIC_TOKEN_STORAGE_PREFIX)+e.organizationId+(e.uniqueGroups?":"+e.groupId:""),i=null,c=null,s=o.getItem(a).then(function(e){null!==s&&(s=null,e&&(c=JSON.parse(e)))}),d=function(){return i=R(e,r).then(function(e){return i=null,o.setItem(a,JSON.stringify(e)),c=e,e},function(e){throw i=null,e})},p=function(){return i||(c&&!function(e){var t=e.creationDate,n=e.expiresIn;return Date.now()>=t+n}(c)?Promise.resolve(c):s?s.then(p):d())},l=function(){return s?s.then(l):Promise.resolve(!!c)};return{getFreshToken:d,getToken:p,hasToken:l,invalidate:function(){return c=null,s=null,o.removeItem(a)}}};var D=["all"],U=function(){var e,r={all:e=e||new Map,on:function(t,n){var r=e.get(t);r?r.push(n):e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&(n?r.splice(r.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map(function(e){e(n)}),(r=e.get("*"))&&r.slice().map(function(e){e(t,n)})}},o=r.all,a=n(r,D);return t({},a,{off:function(e,t){e?a.off(e,t):o.clear()},once:function(e,t){a.on(e,function n(r,o){a.off(e,n),t(r,o)})}})},x="file",j="form",L="filled_form",M="message",q="rich_message",G="system_message",F="custom",H=Object.freeze({__proto__:null,FILE:x,FORM:j,FILLED_FORM:L,MESSAGE:M,RICH_MESSAGE:q,SYSTEM_MESSAGE:G,CUSTOM:F}),z=["groupId"],V=function(e){var t,n={};return"string"==typeof e.customId&&(n.custom_id=e.customId),"object"!=typeof(t=e.properties)||null===t||l(t)||(n.properties=e.properties),n},B=function(e){switch(e.type){case M:var r=t({},V(e),{type:e.type,text:e.text});return e.postback&&(r.postback={id:e.postback.id,thread_id:e.postback.threadId,event_id:e.postback.eventId,type:e.postback.type,value:e.postback.value}),r;case x:return t({},V(e),{type:e.type,url:e.url,alternative_text:e.alternativeText});case L:return t({},V(e),{type:e.type,form_id:e.formId},e.formType&&{form_type:e.formType},{fields:e.fields.map(function(e){if("group_chooser"===e.type){if(!e.answer)return e;var r=e.answer,o=r.groupId;return t({},e,{answer:t({},n(r,z),{group_id:o})})}return e})});case G:var o=t({},V(e),{type:e.type,text:e.text,system_message_type:e.systemMessageType});return e.recipients&&(o.recipients=e.recipients),o;case F:var a=t({},V(e),{type:e.type});return e.content&&(a.content=e.content),a}},Y=function(e){var t=e.active,n=e.chat,r=e.welcomeMessageId,o=e.continuous,a={active:void 0===t||t,chat:{}};if("boolean"==typeof o&&(a.continuous=o),r&&"string"==typeof r&&(a.welcome_message_id=r),!n)return a;var i=n.access,c=n.thread,u=n.properties;return i&&i.groupIds&&(a.chat.access={group_ids:i.groupIds}),u&&(a.chat.properties=u),c&&(a.chat.thread=function(e){var t={},n=e.events,r=e.properties;return n&&(t.events=n.map(B)),r&&(t.properties=r),t}(c)),a},J=function(e){return E(e).map(function(e){var t;return(t={})[e[0]]=e[1],t})},K=function(e){var t=I(["avatar","name","email"],e);return e.sessionFields&&(t.session_fields=J(e.sessionFields)),"boolean"==typeof e.nameIsDefault&&(t.name_is_default=e.nameIsDefault),t},X="change_region",W="check_goals",Q="destroy",Z="fail_all_requests",$="login_success",ee="pause_connection",te="prefetch_token",ne="push_received",re="push_response_received",oe="reconnect",ae="request_failed",ie="response_received",ce="send_request",ue="set_chat_active",se="set_self_id",de="socket_connected",pe="socket_disconnected",le="socket_recovered",fe="socket_unstable",_e="start_connection",he="update_customer_page",ve="clear_sensitive_session_state",ye="identity_changed",ge="accept_greeting",me="cancel_greeting",Ie="delete_chat_properties",Ee="delete_event_properties",Te="delete_thread_properties",be="get_chat",Oe="get_customer",Se="get_form",Ne="get_url_info",Ce="list_chats",we="list_group_statuses",Pe="list_threads",Re="login",Ae="mark_events_as_seen",ke="request_welcome_message",De="resume_chat",Ue="send_event",xe="send_greeting_button_clicked",je="send_rich_message_postback",Le="send_sneak_peek",Me="set_customer_session_fields",qe="start_chat",Ge="update_chat_properties",Fe="update_customer",He="update_customer_page",ze="update_event_properties",Ve="update_thread_properties",Be=function(e){return{type:Q,payload:{reason:e}}},Ye=function(e){return{type:ee,payload:{reason:e}}},Je=function(e){return void 0===e&&(e=!1),{type:te,payload:{fresh:e}}},Ke=function(e){return{type:oe,payload:{delay:e}}},Xe=function(e,n,r){return{type:ce,payload:t({request:{action:e,payload:n}},r&&{source:r})}},We=function(e,t){return{type:ue,payload:{id:e,active:t}}},Qe=function(e){return{type:se,payload:{id:e}}},Ze="CONNECTION_LOST",$e="MISDIRECTED_CONNECTION",et="MISSING_CHAT_THREAD",tt="SDK_DESTROYED",nt="connected",rt="destroyed",ot="disconnected",at="paused",it="reconnecting",ct=Object.freeze({__proto__:null,CONNECTED:nt,DESTROYED:rt,DISCONNECTED:ot,PAUSED:at,RECONNECTING:it}),ut="access_token_expired",st="customer_banned",dt="customer_temporarily_blocked",pt="license_expired",lt="license_not_found",ft="misdirected_connection",_t="product_version_changed",ht="service_temporarily_unavailable",vt="too_many_connections",yt="too_many_unauthorized_connections",gt="unsupported_version",mt="logged_out_remotely",It=Object.freeze({__proto__:null,ACCESS_TOKEN_EXPIRED:ut,CONNECTION_TIMEOUT:"connection_timeout",CUSTOMER_BANNED:st,CUSTOMER_TEMPORARILY_BLOCKED:dt,INACTIVITY_TIMEOUT:"inactivity_timeout",INTERNAL_ERROR:"internal_error",LICENSE_EXPIRED:pt,LICENSE_NOT_FOUND:lt,MISDIRECTED_CONNECTION:ft,PRODUCT_VERSION_CHANGED:_t,SERVICE_TEMPORARILY_UNAVAILABLE:ht,TOO_MANY_CONNECTIONS:vt,TOO_MANY_UNAUTHORIZED_CONNECTIONS:yt,UNSUPPORTED_VERSION:gt,LOGGED_OUT_REMOTELY:mt}),Et="AUTHENTICATION",Tt="CUSTOMER_BANNED",bt="USERS_LIMIT_REACHED",Ot="WRONG_PRODUCT_VERSION",St=Object.freeze({__proto__:null,AUTHENTICATION:Et,AUTHORIZATION:"AUTHORIZATION",CHAT_ALREADY_ACTIVE:"CHAT_ALREADY_ACTIVE",CHAT_LIMIT_REACHED:"CHAT_LIMIT_REACHED",CUSTOMER_BANNED:Tt,CUSTOMER_SESSION_FIELDS_LIMIT_REACHED:"CUSTOMER_SESSION_FIELDS_LIMIT_REACHED",ENTITY_TOO_LARGE:"ENTITY_TOO_LARGE",GREETING_NOT_FOUND:"GREETING_NOT_FOUND",GROUP_OFFLINE:"GROUP_OFFLINE",GROUPS_OFFLINE:"GROUPS_OFFLINE",GROUP_NOT_FOUND:"GROUP_NOT_FOUND",GROUP_UNAVAILABLE:"GROUP_UNAVAILABLE",INTERNAL:"INTERNAL",LICENSE_EXPIRED:"LICENSE_EXPIRED",MISDIRECTED_REQUEST:"MISDIRECTED_REQUEST",PENDING_REQUESTS_LIMIT_REACHED:"PENDING_REQUESTS_LIMIT_REACHED",REQUEST_TIMEOUT:"REQUEST_TIMEOUT",SERVICE_UNAVAILABLE:"SERVICE_UNAVAILABLE",UNSUPPORTED_VERSION:"UNSUPPORTED_VERSION",USERS_LIMIT_REACHED:bt,VALIDATION:"VALIDATION",WRONG_PRODUCT_VERSION:Ot}),Nt="chat_deactivated",Ct="chat_properties_deleted",wt="chat_properties_updated",Pt="chat_transferred",Rt="customer_disconnected",At="customer_side_storage_updated",kt="customer_updated",Dt="event_properties_deleted",Ut="event_properties_updated",xt="event_updated",jt="events_marked_as_seen",Lt="greeting_accepted",Mt="greeting_canceled",qt="groups_status_updated",Gt="incoming_chat",Ft="incoming_event",Ht="incoming_greeting",zt="incoming_multicast",Vt="incoming_rich_message_postback",Bt="incoming_typing_indicator",Yt="incoming_welcome_message",Jt="queue_position_updated",Kt="thread_properties_deleted",Xt="thread_properties_updated",Wt="user_added_to_chat",Qt="user_removed_from_chat",Zt="incoming_thinking_indicator",$t="incoming_event_preview",en=Object.freeze({__proto__:null,CHAT_DEACTIVATED:Nt,CHAT_PROPERTIES_DELETED:Ct,CHAT_PROPERTIES_UPDATED:wt,CHAT_TRANSFERRED:Pt,CUSTOMER_DISCONNECTED:Rt,CUSTOMER_SIDE_STORAGE_UPDATED:At,CUSTOMER_UPDATED:kt,EVENT_PROPERTIES_DELETED:Dt,EVENT_PROPERTIES_UPDATED:Ut,EVENT_UPDATED:xt,EVENTS_MARKED_AS_SEEN:jt,GREETING_ACCEPTED:Lt,GREETING_CANCELED:Mt,GROUPS_STATUS_UPDATED:qt,INCOMING_CHAT:Gt,INCOMING_EVENT:Ft,INCOMING_GREETING:Ht,INCOMING_MULTICAST:zt,INCOMING_RICH_MESSAGE_POSTBACK:Vt,INCOMING_TYPING_INDICATOR:Bt,INCOMING_WELCOME_MESSAGE:Yt,QUEUE_POSITION_UPDATED:Jt,THREAD_PROPERTIES_DELETED:Kt,THREAD_PROPERTIES_UPDATED:Xt,USER_ADDED_TO_CHAT:Wt,USER_REMOVED_FROM_CHAT:Qt,INCOMING_THINKING_INDICATOR:Zt,INCOMING_EVENT_PREVIEW:$t}),tn=Object.freeze({__proto__:null,ASC:"asc",DESC:"desc"}),nn="agent",rn="customer",on=Object.freeze({__proto__:null,AGENT:nn,CUSTOMER:rn});function an(e){var t=e.code,n=Error(e.message);return n.code=t,n}var cn=function(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof module?module:Function("return this")()),un=function(){return Math.random().toString(36).substring(7).split("").join(".")},sn={INIT:"@@redux/INIT"+un(),REPLACE:"@@redux/REPLACE"+un(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+un()}};function dn(e,t,n){var r;if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw Error("Expected the enhancer to be a function.");return n(dn)(e,t)}if("function"!=typeof e)throw Error("Expected the reducer to be a function.");var o=e,a=t,i=[],c=i,u=!1;function s(){c===i&&(c=i.slice())}function d(){if(u)throw Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return a}function p(e){if("function"!=typeof e)throw Error("Expected the listener to be a function.");if(u)throw Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");var t=!0;return s(),c.push(e),function(){if(t){if(u)throw Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");t=!1,s();var n=c.indexOf(e);c.splice(n,1)}}}function l(e){if(!function(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}(e))throw Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(u)throw Error("Reducers may not dispatch actions.");try{u=!0,a=o(a,e)}finally{u=!1}for(var t=i=c,n=0;t.length>n;n++){(0,t[n])()}return e}return l({type:sn.INIT}),(r={dispatch:l,subscribe:p,getState:d,replaceReducer:function(e){if("function"!=typeof e)throw Error("Expected the nextReducer to be a function.");o=e,l({type:sn.REPLACE})}})[cn]=function(){var e,t=p;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(d())}return n(),{unsubscribe:t(n)}}})[cn]=function(){return this},e},r}function pn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ln(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n}function fn(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce(function(e,t){return function(){return e(t.apply(void 0,arguments))}})}function _n(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},o={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},a=t.map(function(e){return e(o)});return function(e){for(var t=1;arguments.length>t;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ln(n,!0).forEach(function(t){pn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ln(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},n,{dispatch:r=fn.apply(void 0,a)(n.dispatch)})}}}var hn=function(e){var t=e.min,n=void 0===t?1e3:t,r=e.max,o=void 0===r?5e3:r,a=e.jitter,i=void 0===a?.5:a,c=0;return{duration:function(){var e=n*Math.pow(2,c++);if(i){var t=Math.random(),r=Math.floor(t*i*e);e=1&Math.floor(10*t)?e+r:e-r}return 0|Math.min(e,o)},reset:function(){c=0}}};function vn(){var e={};return e.promise=new Promise(function(t,n){e.resolve=t,e.reject=n}),e}var yn=function(e){return e.connection.status},gn=function(e,t){return e.requests[t]},mn=function(e){return e.users.self.id},In=function(e,t){var n=e.chats[t];return!!n&&n.active},En=function(e){return yn(e)===nt},Tn=function(e){var t;return{"x-region":null!=(t=e.region)?t:""}},bn=function(e){return function(e){return"https://api"+function(e){var t=e.env;return"production"===t?"":"."+t}(e)+".livechatinc.com"}(e)+"/v3.6/customer"},On=function(e,o){return t({},e,{requests:n(e.requests,[o.id].map(r))})},Sn=function(e,n){return t({},n,{connection:t({},n.connection,{status:e})})},Nn=function(e){var n,r,o;return r=e,(n={})[X]=function(e,n){return t({},e,{region:n.region})},n[Q]=function(e){return Sn(rt,e)},n[$]=function(e){return Sn(nt,e)},n[ee]=function(e){return Sn(at,e)},n[ae]=On,n[ie]=On,n[re]=On,n[ce]=function(e,n){var r,o=n.id;return t({},e,{requests:t({},e.requests,(r={},r[o]={id:o,promise:n.promise,resolve:n.resolve,reject:n.reject,request:n.request},r))})},n[ue]=function(e,n){var r,o=n.id;return t({},e,{chats:t({},e.chats,(r={},r[o]=t({},e.chats[o],{active:n.active}),r))})},n[se]=function(e,n){return t({},e,{users:t({},e.users,{self:t({},e.users.self,{id:n.id})})})},n[pe]=function(e){var n=yn(e);return t({},Sn(n===ot?ot:it,e),{requests:{}})},n[he]=function(e,n){return t({},e,{page:t({},e.page,n)})},n[ve]=function(e){return t({},e,{chats:{},users:{self:{id:null,type:rn},others:{}},requests:{}})},n[ye]=function(e){return e},(o=n)[void 0]&&console.warn("Reducer contains an 'undefined' action type.\nHave you misspelled a constant?"),function(e,t){return void 0===e&&(e=r),d(t.type,o)?o[t.type](e,t.payload):e}};function Cn(e){var n=h,r=function(){var e=[],t=function(t){return function(n){return function(r){var o=n(r);return e.forEach(function(e){e(r,t)}),o}}};return t.add=function(t){e.push(t)},t}(),o=dn(Nn(function(e){var n=e.application,r=e.organizationId,o=e.groupId,a=void 0===o?null:o,i=e.env,c=e.page,u=void 0===c?null:c,s=e.region,d=void 0===s?null:s,p=e.referrer,l=void 0===p?null:p,f=e.tabId,_=void 0===f?null:f,h=e.uniqueGroups,v=void 0!==h&&h,y=e.mobile,g=void 0!==y&&y;return{application:t({},void 0===n?{}:n,{name:"customer_sdk",version:"5.0.0"}),organizationId:r,env:i,groupId:a,chats:{},connection:{status:ot},page:u,region:d,referrer:l,tabId:_,requests:{},users:{self:{id:null,type:rn},others:{}},uniqueGroups:v,mobile:g}}(e)),n(_n(r)));return o.addSideEffectsHandler=r.add,o}var wn=function(e){var t=e.organizationId,n=e.eventName;if("production"!==e.env)return Promise.resolve();var r={organizationId:t,event_id:"chat_widget_customer_sdk",message:JSON.stringify({event_name:n,severity:"Informational",sdkVersion:"5.0.0"})};return function(e,t){return new Promise(function(n){var r=new Image;r.src=e+"?"+t,r.onerror=y,r.onload=function(){return n()}})}("https://applog.livechatinc.com/logs",b(r))},Pn=function(e,t){t.payload.id=v(e.getState().requests);var n=vn(),r=n.resolve,o=n.reject,a=n.promise;return t.payload.promise=a,t.payload.resolve=r,t.payload.reject=o,e.dispatch(t),a},Rn=Object.freeze({success:!0}),An=["group_id"],kn=function(e,t){var n={id:t.id,authorId:t.author_id,createdAt:t.created_at,threadId:e,properties:t.properties||{}};return void 0!==t.custom_id&&(n.customId=t.custom_id),n},Dn=function(e,t){var n,r,o,a,i;t.height>t.width?(r="height",o="width",a=t.height,i=t.width):(r="width",o="height",a=t.width,i=t.height);var c=e/a;return(n={})[r]=Math.ceil(Math.min(a,e)),n[o]=Math.ceil(Math.min(c*i,i)),n},Un=function(e,n){return void 0!==n.width&&void 0!==n.height?function(e,n){return t({},kn(e,n),{type:x,contentType:n.content_type,url:n.url,name:n.name,width:n.width,height:n.height,thumbnails:{default:t({url:n.thumbnail_url},Dn(300,n)),high:t({url:n.thumbnail2x_url},Dn(600,n))}},n.alternative_text&&{alternativeText:n.alternative_text})}(e,n):t({},kn(e,n),{type:x,contentType:n.content_type,url:n.url,name:n.name})},xn=function(e,r){return t({},kn(e,r),{type:L,formId:r.form_id},r.form_type&&{formType:r.form_type},{fields:r.fields.map(function(e){if("group_chooser"===e.type){if(!e.answer)return e;var r=e.answer,o=r.group_id;return t({},e,{answer:t({},n(r,An),{groupId:o})})}return e})})},jn=function(e,n){return t({},kn(e,n),{type:M,text:n.text})},Ln=function(e,n){return t({},kn(e,n),{type:F},n.content&&{content:n.content})},Mn=function(e){var n={};if("string"==typeof e.title&&(n.title=e.title),"string"==typeof e.subtitle&&(n.subtitle=e.subtitle),e.image){var r=e.image;n.image=t({url:r.url,name:r.name},r.alternative_text&&{alternativeText:r.alternative_text})}return e.ecommerce&&(n.ecommerce=t({productId:e.ecommerce.product_id,viewType:e.ecommerce.view_type},"string"==typeof e.ecommerce.label&&{label:e.ecommerce.label},Array.isArray(e.ecommerce.options)&&{options:e.ecommerce.options.map(function(e){return t({label:e.label,optionId:e.option_id},void 0!==e.price&&{price:e.price},void 0!==e.regular_price&&{regularPrice:e.regular_price},void 0!==e.max_price&&{maxPrice:e.max_price},void 0!==e.currency&&{currency:e.currency},"string"==typeof e.color&&{color:e.color},e.image_url&&t({imageUrl:e.image_url},"string"==typeof e.image_thumbnail_url&&{imageThumbnailUrl:e.image_thumbnail_url}),"boolean"==typeof e.available&&{available:e.available},"boolean"==typeof e.selected&&{selected:e.selected})})},Array.isArray(e.ecommerce.addons)&&{addons:e.ecommerce.addons.map(function(e){return"price_range"===e.addon_type?t({addonType:e.addon_type},void 0!==e.range_from&&{rangeFrom:e.range_from},void 0!==e.range_to&&{rangeTo:e.range_to},"string"==typeof e.currency&&{currency:e.currency}):{addonType:e.addon_type}})})),e.buttons&&(n.buttons=e.buttons.map(function(e){switch(e.type){case"message":case"add_to_cart":case"show_gallery":case"copy":case"phone":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});case"cancel":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});case"url":var n=t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});return e.target&&(n.target=e.target),n;case"open_external":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id},e.target&&{target:e.target});case"webview":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});default:return t({text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"},e.button_id&&{buttonId:e.button_id})}})),n},qn=function(e,n){switch(n.template_id){case"cards":case"quick_replies":case"sticker":case"ecommerce":return t({},kn(e,n),{type:q,template:n.template_id,elements:n.elements.map(Mn)});default:return null}},Gn=function(e,n){var r=t({},kn(e,t({},n,{author_id:"system"})),{type:G,text:n.text,systemMessageType:n.system_message_type});return n.text_vars&&(r.textVars=n.text_vars),r},Fn=function(e,n){switch(n.type){case x:return Un(e,n);case j:return function(e,n){return t({},kn(e,n),{authorId:"system",type:j,formId:n.form_id},n.form_type&&{formType:n.form_type},{fields:n.fields})}(e,n);case L:return xn(e,n);case M:return jn(e,n);case q:return qn(e,n);case G:return Gn(e,n);case F:return Ln(e,n);default:return null}},Hn=function(e){return{id:e.id,addon:e.addon||null,uniqueId:e.unique_id,displayedFirstTime:e.displayed_first_time,isExitIntent:e.is_exit_intent,accepted:e.accepted||!1,subtype:e.subtype||"greeting",event:Fn(null,e.event),agent:{id:e.agent.id,name:e.agent.name,avatar:e.agent.avatar,jobTitle:e.agent.job_title,isBot:e.agent.is_bot||!1}}},zn=function(e){return void 0===e&&(e={}),e.group_ids?{groupIds:e.group_ids}:{}},Vn=function(e){return _(function(e){return e.events_seen_up_to?e.events_seen_up_to:null},(t="id",e.reduce(function(e,n){return e[n[t]]=n,e},{})));var t},Bn=function(e,t){var n=t.properties||{};return{id:t.id,chatId:e,active:t.active,access:zn(t.access),createdAt:t.created_at,userIds:t.user_ids,events:t.events.map(function(e){return Fn(t.id,e)}).filter(Boolean),properties:n,previousThreadId:t.previous_thread_id||null,nextThreadId:t.next_thread_id||null,queue:t.queue?Qn(t.queue):null}},Yn=function(e){return{id:e.id,access:zn(e.access),users:e.users.map(Zn),properties:e.properties||{},eventsSeenUpToMap:Vn(e.users)}},Jn=function(e){var t=I(["avatar","email","name"],e);return e.session_fields&&(t.sessionFields=e.session_fields.reduce(function(e,t){var n=Object.keys(t)[0];return e[n]=t[n],e},{})),t},Kn=function(e){var n=Jn(e);return t({id:e.id,type:rn},n,{sessionFields:n.sessionFields||{}})},Xn=function(e){var n=e.statistics;return t({},Kn(e),{statistics:{chatsCount:n.chats_count,threadsCount:n.threads_count,visitsCount:n.visits_count,pageViewsCount:n.page_views_count,greetingsShownCount:n.greetings_shown_count,greetingsAcceptedCount:n.greetings_accepted_count}})},Wn=function(e){return{position:e.position,waitTime:e.wait_time}},Qn=function(e){return t({},Wn(e),{queuedAt:e.queued_at})},Zn=function(e){return e.type===rn?t({},Kn(r=e),{present:r.present}):{id:(n=e).id,type:nn,name:n.name,avatar:n.avatar,jobTitle:n.job_title,present:n.present};var n,r},$n=function(e){var t=e.getState();return"side_storage_"+t.organizationId+(t.uniqueGroups?":"+t.groupId:"")},er=function(e,t){var n=u(t),r=$n(e);return n.getItem(r).catch(y).then(function(e){return JSON.parse(e||"{}")}).catch(y)},tr=function(e,t){var n=e.dispatch,r=function(e){return e.requests}((0,e.getState)());n({type:Z,payload:{rejects:Object.keys(r).map(function(e){return r[e].reject}),reason:t}})},nr=function(e,t,n){var r=t.payload.id;(0,e.dispatch)({type:ae,payload:{id:r,reject:(0,e.getState)().requests[r].reject,error:n}})},rr=function(e,t,n){var r=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);t>n;n++)r[n]=e[n];return r}(e).slice(0),o=!1,a=function(e){var i,c=r.shift();(i=function(){return c(e)},new Promise(function(e){e(i())})).then(function(e){o||(r.length?a(e):t(e))},function(e){o||n(e)})};return a(),{cancel:function(){o=!0}}},or=function(e,t,n){return Pn(e,Xe(t,n,"login"))};function ar(e,n,r){var o,a,i=null,c={min:300,max:6e4,jitter:.3},s=hn(c),d=hn(t({},c,{min:1e3})),p=s,l=function(e){return o.dispatch(Be(e))},f=function(){return o.dispatch(Ke(p.duration()))},_=function(){return Promise.all([e.getToken(),er(o,r)])},h=function(e){var t=e[0],n=e[1],a=mn(o.getState());if(null===a)o.dispatch(Qe(t.entityId));else if(a!==t.entityId)return r&&function(e,t){u(t).removeItem($n(e)).catch(y)}(o,r),o.dispatch({type:ve}),o.dispatch(Qe(t.entityId)),o.dispatch({type:ye,payload:{previousId:a,newId:t.entityId}}),[t,{}];return[t,n]},v=function(e){var t,r=e[0],a=e[1],c=o.getState(),u=c.application,s=c.groupId,d=c.page,p=c.referrer,l=c.mobile,f=c.tabId,_={token:r.tokenType+" "+r.accessToken,customer:"function"==typeof n?K(n()):{},customer_side_storage:a,is_mobile:l,application:m(["name","version"],u)};return"number"==typeof s&&(_.group_id=s),u.channelType&&(_.application.channel_type=u.channelType),null!==d&&(i=d,_.customer_page=d),null!==p&&(_.referrer=p),null!==f&&(_.tab_id=f),Promise.race([or(o,Re,_),(t=15e3,new Promise(function(e){setTimeout(e,t)})).then(function(){return Promise.reject(an({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))})])};return{sendLogin:function(t){var n;o=t,null==(n=a)||n.cancel(),a=rr([_,h,v],function(e){var t;a=null,s.reset(),d.reset(),p=s,t=o.getState().page,i!==t&&or(o,He,t).catch(y),i=null,o.dispatch({type:$,payload:e})},function(t){switch(a=null,t.code){case Et:return e.getFreshToken(),void f();case Ze:case $e:case tt:return;case"SSO_IDENTITY_EXCEPTION":case"SSO_OAUTH_EXCEPTION":return"server_error"===t.message||"temporarily_unavailable"===t.message?void f():void l(t.message);case bt:return void o.dispatch(Ye(t.code.toLowerCase()));case Tt:case Ot:return void l(t.code.toLowerCase());case"SERVICE_TEMPORARILY_UNAVAILABLE":return p=d,void f();default:return void f()}})},cancel:function(){var e;null==(e=a)||e.cancel()}}}var ir,cr=["present"],ur=["statistics"],sr=((ir={})[Ze]="Connection lost.",ir[$e]="Connected to wrong region.",ir),dr=function(e,t){var n=e.getState();switch(t.type){case re:case ne:switch(t.payload.action){case Nt:return void e.dispatch(We(t.payload.payload.chatId,!1));case Gt:return void e.dispatch(We(t.payload.payload.chat.id,!0));default:return}case ie:return t.payload.action===Ce?void t.payload.payload.chatsSummary.filter(function(e){var t=e.active;return In(n,e.id)!==t}).forEach(function(t){e.dispatch(We(t.id,t.active))}):void 0}},pr=function(e,t){t.forEach(function(t){if("present"in t){var r=n(t,cr);e("user_data",r)}else if(t.type!==rn)e("user_data",t);else{var o=n(t,ur);e("user_data",o)}})},lr=function(e,t,n){var r=e.emit,o=e.store,a=t.payload;switch(a.action){case Xt:return a.payload.properties.lc2&&"queue_pos"in a.payload.properties.lc2&&r(Jt,{chatId:a.payload.chatId,threadId:a.payload.threadId,queue:{position:a.payload.properties.lc2.queue_pos,waitTime:a.payload.properties.lc2.queue_waiting_time}}),void r("thread_properties_updated",a.payload);case At:return void function(e,t,n){u(n).setItem($n(e),JSON.stringify(t)).catch(y)}(o,a.payload.customer_side_storage,n);case Rt:switch(a.payload.reason){case ut:o.dispatch(Je(!0)),o.dispatch(Ke(100)),r("disconnected",a.payload);break;case st:case dt:case lt:case _t:case vt:case gt:case mt:o.dispatch(Be(a.payload.reason));break;case ft:tr(o,$e),o.dispatch({type:X,payload:a.payload.data});break;case ht:case yt:tr(o,a.payload.reason.toUpperCase());break;default:o.dispatch(Ke(100)),r("disconnected",a.payload)}return;case qt:return void r("availability_updated",{availability:"offline"===a.payload.groups[0].status?"offline":"online"});case Gt:return pr(r,a.payload.chat.users),void r(a.action,a.payload);case Ft:if(null===a.payload.event)return;return void r(a.action,a.payload);case Bt:case Zt:case $t:return void r(a.action,a.payload);case Wt:return pr(r,[a.payload.user]),void r(a.action,a.payload);default:return void r(a.action,a.payload)}},fr=function(e,t){var n=e.emit,r=t.payload;switch(r.action){case Nt:return void r.resolve(Rn);case be:return pr(n,r.payload.users),void r.resolve(r.payload);case Gt:return pr(n,r.payload.chat.users),void r.resolve(r.payload);case Ft:return void r.resolve(r.payload.event);case Ce:return pr(n,r.payload.users),void r.resolve(r.payload);default:return void r.resolve(r.payload)}},_r=function(e){var n=e.auth,r=e.emitter,o=e.socket,a=e.parentStorage,i=r.emit,c=ar(n,e.customerDataProvider,a);return function(e,u){switch(e.type){case X:return void o.reinitialize();case W:return void function(e,n,r){return n.getToken().then(function(n){var o=e.getState();null===mn(o)&&e.dispatch(Qe(n.entityId));var a=o.page;if(a&&a.url){var i=b(t({organization_id:o.organizationId},Tn(o))),c={session_fields:J(r||{}),group_id:o.groupId||0,page_url:a.url};return C(bn(o)+"/action/check_goals?"+i,{method:"POST",headers:{"Content-Type":"application/json",Authorization:n.tokenType+" "+n.accessToken},body:JSON.stringify(c)}).then(function(){})}})}(u,n,e.payload.sessionFields).catch(y);case Q:var s=e.payload;switch(c.cancel(),o.destroy(),s.reason){case"manual":tr(u,tt);break;case st:case pt:case _t:case mt:tr(u,Ze),i("disconnected",s);break;default:i("disconnected",s)}return void r.off();case Z:var d=e.payload,p=d.reason,l={message:sr[p],code:p};return void d.rejects.forEach(function(e){e(an(l))});case $:var f=e.payload,_=f.dynamicConfig,h=f.chats,v=f.greeting,m=t({customer:f.customer,availability:f.availability},v&&{greeting:v});return Object.defineProperty(m,"__unsafeDynamicConfig",{value:_}),Object.defineProperty(m,"__unsafeChats",{value:h}),void i("connected",m);case ee:var I=e.payload;return o.disconnect(),void("manual"!==I.reason&&i("disconnected",I));case te:return e.payload.fresh?void n.getFreshToken().catch(y):void n.hasToken().then(function(e){return e?n.getToken().then(function(e){if(36e5>=e.creationDate+e.expiresIn-Date.now())return n.invalidate().then(n.getFreshToken)}):n.getToken()}).catch(y);case ne:return e.payload.action===Rt||dr(u,e),void lr({emit:i,store:u},e,a);case re:return dr(u,e),void fr({emit:i},e);case oe:return tr(u,Ze),void o.reconnect(e.payload.delay);case ae:var E=e.payload;return void(0,E.reject)(an(E.error));case ie:return dr(u,e),void fr({emit:i},e);case ce:var T=u.getState();return function(e){return yn(e)===rt}(T)?void nr(u,e,{code:tt,message:"SDK destroyed."}):En(T)||"login"===e.payload.source?void function(e,n){var r=n.payload,o=t({request_id:r.id},r.request);if(o.action!==Re)e.emit(o);else{var a={3.6:g(en).filter(function(e){return e!==Rt})};e.emit(t({},o,{version:"3.6",payload:t({},o.payload,{pushes:a})}))}}(o,e):void nr(u,e,{code:"NO_CONNECTION",message:"No connection."});case se:return void i("customer_id",e.payload.id);case pe:return void i("disconnected",{reason:"connection_lost"});case de:return void c.sendLogin(u);case le:if(!En(u.getState()))return;return void i("connection_recovered");case fe:if(!En(u.getState()))return;return void i("connection_unstable");case _e:return o.connect(),void u.dispatch(Je());case he:if(!En(u.getState()))return;return void Pn(u,Xe(He,e.payload)).catch(y);case ye:return void i("identity_changed",e.payload);default:return}}},hr=function(e,t){var n,r=(void 0===t?{}:t).query,o=b(void 0===r?{}:r),a=o?e+"?"+o:e,i=U(),c=hn({min:1e3,max:5e3,jitter:.5}),u=3,s=null,d=function(){u=1,c.reset(),i.emit("connect")},p=function(){f(),h(),i.emit("disconnect")},l=function(e){i.emit("message",e.data)},f=function(){var e;(clearTimeout(n),u=3,s)&&((e=s).removeEventListener("open",d),e.removeEventListener("close",p),e.removeEventListener("message",l),s.close(),s=null)},_=function(){var e;u=0,s=new WebSocket(a),(e=s).addEventListener("open",d),e.addEventListener("close",p),e.addEventListener("message",l)},h=function(e){void 0===e&&(e=c.duration()),f(),0!==e?n=setTimeout(_,e):_()};return{connect:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(){if(3!==u)throw Error("Socket is already open or connecting.");clearTimeout(n),_()}),destroy:function(){i.off(),f()},disconnect:f,reconnect:h,emit:function(e){if(1!==u)throw Error("Socket is not connected.");s.send(e)},getReadyState:function(){return u},on:i.on,off:i.off}},vr=function(e,n){var r,o,a,i,c=void 0===n?{}:n,u=c.query,s=void 0===u?{}:u,d=c.emitter,p=void 0===d?U():d,l=hr(e,{query:s}),f=(o=y,{cancel:function(){clearTimeout(r),o=y},check:function(){var e=vn();return o=e.resolve,r=setTimeout(function(){var t=Error("Timeout.");t.code="TIMEOUT",e.reject(t)},2e3),e.promise},resolve:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(){clearTimeout(r),o()})}),_=function(){return 1===l.getReadyState()},h=function(){f.cancel()};return a=l,i=p,["connect","disconnect"].forEach(function(e){a.on(e,function(t){i.emit(e,t)})}),l.on("disconnect",h),l.on("message",function(e){f.resolve();var t=JSON.parse(e);p.emit("message",t)}),"undefined"!=typeof window&&void 0!==window.addEventListener&&(window.addEventListener("online",function(){_()&&f.check().then(function(){f.cancel(),p.emit("connection_recovered")},function(e){if(f.cancel(),"TIMEOUT"!==e.code)throw e;l.reconnect()})}),window.addEventListener("offline",function(){f.cancel(),_()&&p.emit("connection_unstable")})),t({},l,{destroy:function(){h(),l.destroy()},disconnect:function(){h(),l.disconnect()},reconnect:function(e){h(),l.reconnect(e)},emit:function(e){l.emit(JSON.stringify(e))},on:p.on,off:p.off})},yr=function(e,n){var r=e.getState(),o=(bn(r)+"/rtm/ws").replace(/^https/,"wss");return vr(o,{query:t({organization_id:r.organizationId},Tn(r)),emitter:n})},gr=["group_id"],mr=["comment_label"],Ir=function(e){return{chatId:e.chat_id,properties:e.properties}},Er=function(e){var n={chatId:e.chat_id,threadId:e.thread_id,transferredTo:t({},e.transferred_to.agent_ids&&{agentIds:e.transferred_to.agent_ids},e.transferred_to.group_ids&&{groupIds:e.transferred_to.group_ids}),queue:e.queue?Qn(e.queue):null};return t({},n,"manual"===e.reason?{reason:e.reason,requesterId:e.requester_id}:{reason:e.reason})},Tr=function(e){return t({id:e.id},Jn(e))},br=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},Or=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},Sr=function(e){var t=e.thread_id;return{chatId:e.chat_id,threadId:t,event:Fn(t,e.event)}},Nr=function(e){return{chatId:e.chat_id,userId:e.user_id,seenUpTo:e.seen_up_to}},Cr=function(e){return{uniqueId:e.unique_id}},wr=function(e){var n=e.chat;return{chat:t({},Yn(n),{thread:Bn(n.id,n.thread)})}},Pr=function(e){return{chatId:e.chat_id,event:Fn(e.thread_id,e.event)}},Rr=function(e){return Hn(e)},Ar=function(e){return{userId:e.user_id,chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,postback:e.postback}},kr=function(e){var t=e.typing_indicator;return{chatId:e.chat_id,typingIndicator:{authorId:t.author_id,isTyping:t.is_typing}}},Dr=function(e){var n=e.custom_id,r=e.title,o=e.description;return t({chatId:e.chat_id,threadId:e.thread_id,authorId:e.author_id,sentAt:e.sent_at},n&&{customId:n},r&&{title:r},o&&{description:o})},Ur=function(e){return{chatId:e.chat_id,threadId:e.thread_id,event:Fn(e.thread_id,e.event)}},xr=function(e){return{id:e.id,event:Fn(null,e.event)}},jr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,queue:Wn(e.queue)}},Lr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},Mr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},qr=function(e){return{chatId:e.chat_id,user:Zn(e.user),present:e.user.present}},Gr=function(e){return{chatId:e.chat_id,userId:e.user_id,reason:e.reason}},Fr=function(e){return e.map(function(e){switch(e.type){case"group_chooser":return t({},e,{options:e.options.map(function(e){var r=e.group_id;return t({},n(e,gr),{groupId:r})})});case"rating":var r=e.comment_label;return t({},n(e,mr),{commentLabel:r});default:return e}})},Hr=function(e){var n,r;return{id:e.id,fields:!("id"in e.fields[0])?(n=e.fields,r=n.map(function(e,n){return t({},e,{id:n+""})}),Fr(r)):Fr(e.fields)}},zr=function(e){return e.enabled?t({},e,{form:Hr(e.form)}):e},Vr=function(e){var t={url:e.url};return e.title&&(t.title=e.title),e.description&&(t.description=e.description),e.image_url&&(t.imageUrl="https://"+e.image_url.replace(N,""),e.image_width&&e.image_height&&(t.imageWidth=e.image_width,t.imageHeight=e.image_height)),t},Br=function(e){var t=e.predicted_agent;return{id:e.id,predictedAgent:{id:t.id,type:t.type,name:t.name,avatar:t.avatar,jobTitle:t.job_title,isBot:t.is_bot,botType:t.bot_type},queue:e.queue}},Yr=function(e){var t,n,r,o,a,i,c=e.chats_summary.map(function(e){var t=e.last_thread_created_at,n=e.last_thread_id,r=e.last_event_per_type,o=e.properties,a=void 0===o?{}:o,i=e.users,c={id:e.id,active:e.active,access:zn(e.access),properties:a,users:i.map(Zn),lastThreadId:n||null,lastThreadCreatedAt:t||null,eventsSeenUpToMap:Vn(i)};if(!r)return c;c.lastEventsPerType=_(function(e){return Fn(e.thread_id,e.event)},r);var u,s=r,d=Object.keys(s).map(function(e){return s[e]}),p=(u=d.sort(function(e,t){return e.thread_id===t.thread_id?T(e.event.created_at,t.event.created_at):T(e.thread_created_at,t.thread_created_at)})).length>0?u[u.length-1]:void 0;return p&&c.lastEventsPerType&&(c.lastEvent=c.lastEventsPerType[p.event.type]),c});return{chatsSummary:(o=function(e){var t,n=e.lastEvent;return-1*(null!=(t=void 0!==n?n.timestamp:e.order)?t:0)},a=c,i="function"==typeof o?o:function(e){return function(e,t){for(var n="string"==typeof e?e.split("."):e,r=0,o=t;o&&n.length>r;)o=o[n[r++]];return o}(o,e)},(l(a)?[].concat(a):g(a)).sort(function(e,t){return i(e)-i(t)})),totalChats:e.total_chats,users:(t=function(e){return e.id},n=p(function(e){return e.users},c),r=[],n.filter(function(e){var n=t(e);return-1===r.indexOf(n)&&(r.push(n),!0)})),previousPageId:e.previous_page_id||null,nextPageId:e.next_page_id||null}},Jr=function(e){return e.groups_status},Kr=function(e,t){return{threads:t.threads.map(function(t){return Bn(e.payload.chat_id,t)}),previousPageId:t.previous_page_id||null,nextPageId:t.next_page_id||null}},Xr=function(e){var n,r,o=e.__priv_dynamic_config,a=e.chats,i=e.greeting;return t({dynamicConfig:o,customer:Xn(e.customer),availability:(n=o,r=n.online_groups_ids,r&&-1!==r.indexOf(n.customer_groups.monitoring.id)?"online":"offline"),chats:a.map(function(t){return{id:t.chat_id,active:"has_active_thread"in t?t.has_active_thread:e.has_active_thread,hasUnreadEvents:t.has_unread_events}})},i&&{greeting:Hn(i)})},Wr=function(e){switch(e.action){case Nt:return{action:e.action,payload:{chatId:e.payload.chat_id}};case Ct:return{action:e.action,payload:(t=e.payload,{chatId:t.chat_id,properties:t.properties})};case wt:return{action:e.action,payload:Ir(e.payload)};case Pt:return{action:e.action,payload:Er(e.payload)};case At:case Rt:return{action:e.action,payload:e.payload};case kt:return{action:e.action,payload:Tr(e.payload)};case Dt:return{action:e.action,payload:br(e.payload)};case Ut:return{action:e.action,payload:Or(e.payload)};case xt:return{action:e.action,payload:Sr(e.payload)};case jt:return{action:e.action,payload:Nr(e.payload)};case Lt:case Mt:return{action:e.action,payload:Cr(e.payload)};case qt:return{action:e.action,payload:e.payload};case Gt:return{action:e.action,payload:wr(e.payload)};case Ft:return{action:e.action,payload:Pr(e.payload)};case Ht:return{action:e.action,payload:Rr(e.payload)};case zt:return{action:e.action,payload:e.payload};case Vt:return{action:e.action,payload:Ar(e.payload)};case Bt:return{action:e.action,payload:kr(e.payload)};case Zt:return{action:e.action,payload:Dr(e.payload)};case $t:return{action:e.action,payload:Ur(e.payload)};case Yt:return{action:e.action,payload:xr(e.payload)};case Jt:return{action:e.action,payload:jr(e.payload)};case Kt:return{action:e.action,payload:Lr(e.payload)};case Xt:return{action:e.action,payload:Mr(e.payload)};case Wt:return{action:e.action,payload:qr(e.payload)};case Qt:return{action:e.action,payload:Gr(e.payload)}}var t},Qr=function(e,n){var r=e.dispatch,o=n.request_id,a=gn((0,e.getState)(),o),i=a.promise,c=a.resolve,u=function(e){var n,r=e.request,o=e.response;switch(o.action){case ge:case me:case Ie:case Ee:case Te:return{action:o.action,payload:Rn};case be:return{action:o.action,payload:(n=o.payload,t({},Yn(n),{thread:n.thread?Bn(n.id,n.thread):null}))};case Oe:return{action:o.action,payload:Xn(o.payload)};case Se:return{action:o.action,payload:zr(o.payload)};case Ne:return{action:o.action,payload:Vr(o.payload)};case Ce:return{action:o.action,payload:Yr(o.payload)};case we:return{action:o.action,payload:Jr(o.payload)};case Pe:return{action:o.action,payload:Kr(r,o.payload)};case Re:return{action:o.action,payload:Xr(o.payload)};case Ae:return{action:o.action,payload:Rn};case ke:return{action:o.action,payload:Br(o.payload)};case Le:case Me:case xe:case je:case Ge:case Fe:case He:case ze:case Ve:return{action:o.action,payload:Rn}}}({request:a.request,response:n});r({type:ie,payload:t({id:o,promise:i,resolve:c},u)})},Zr=function(e,n){var r=e.dispatch;return n.on("connect",function(){r({type:de})}),n.on("message",function(n){if("response"===n.type){if(!n.success)return void function(e,t){var n,r=e.dispatch,o=t.request_id,a=t.payload,i=gn((0,e.getState)(),o);r({type:ae,payload:{id:o,reject:i.reject,error:(n=a.error,{code:n.type.toUpperCase(),message:n.message})}})}(e,n);switch(n.action){case De:case Ue:case qe:return;default:return void Qr(e,n)}}if("request_id"in n)switch(n.action){case Gt:case Ft:return void function(e,n){var r=e.dispatch,o=n.request_id,a=gn((0,e.getState)(),o),i=a.promise,c=a.resolve,u=Wr(n);r({type:re,payload:t({id:o,promise:i,resolve:c},u)})}(e,n)}!function(e,t){var n=Wr(t);n&&e.dispatch({type:ne,payload:n})}(e,n)}),n.on("disconnect",function(){tr(e,Ze),yn(e.getState())===nt&&e.dispatch({type:pe})}),n.on("connection_unstable",function(){r({type:fe})}),n.on("connection_recovered",function(){r({type:le})}),n.off},$r="UPLOAD_FAILED",eo=function(e,t,n){var r=void 0===n?{}:n,o=r.headers,a=r.method,i=void 0===a?"POST":a,c=r.onProgress,u=r.withCredentials,s=void 0!==u&&u,d=new XMLHttpRequest;return{promise:new Promise(function(n,r){var a,u;"function"==typeof c&&(d.upload.onprogress=function(e){c(e.loaded/e.total)}),d.onload=function(){var e;try{e=JSON.parse(d.response)}catch(t){e=d.response}if(200>d.status||d.status>=300){var t=Error("Upload failed.");t.code=$r,t.response=e,r(t)}else n(e)},d.onerror=function(){var e=Error("Upload failed.");e.code=$r,r(e)},d.onabort=function(){var e=Error("Upload canceled.");e.code="UPLOAD_CANCELED",r(e)},d.open(i,e),d.withCredentials=s,o&&Object.keys(o).forEach(function(e){return d.setRequestHeader(e,o[e])}),d.send((a=t,u=new FormData,Object.keys(a).forEach(function(e){return u.append(e,a[e])}),u))}),cancel:function(){d.abort()}}},to=1048576,no=10485760,ro=function(e,t){if(void 0===t&&(t=2),1024>e)return e+" b";var n=e/1024;if(to>e)return n.toFixed(t)+" kb";var r=n/1024;return 1073741824>e?r.toFixed(t)+" MB":(r/1024).toFixed(t)+" GB"},oo=function(e,n){var r,o=e.auth,a=e.store,i=n.file,c=n.onProgress,u=!1;return{promise:new Promise(function(e,n){!function(e){if(e.size>no)throw an({message:"The file is too big (max size is "+ro(no)+").",code:"TOO_BIG_FILE"})}(i);var s=a.getState(),d=b(t({organization_id:s.organizationId},Tn(s))),p=bn(s)+"/action/upload_file?"+d,l={file:i};o.getToken().then(function(t){u?n(Error("Upload cancelled.")):(r=eo(p,l,{headers:{Authorization:t.tokenType+" "+t.accessToken},onProgress:c})).promise.then(e,function(e){if(e.response){var t=e.response.error;n(an({message:t.message,code:t.type.toUpperCase()}))}else n(e)})})}),cancel:function(){u||(u=!0,r&&r.cancel())}}},ao=["on","once","off","getChatHistory","auth"],io="LISTENER_IDENTITY",co={},uo=function(e,t){void 0===t&&(t="");var n=Object.keys(e);return n.map(function(n){var r=e[n];return function(){for(var e,o=arguments.length,a=Array(o),i=0;o>i;i++)a[i]=arguments[i];(e=console).info.apply(e,[t+"."+n+"() ===>"].concat(a));var c=r.apply(void 0,a);return"function"==typeof(null==c?void 0:c.then)?c.then(function(e){return console.info(t+"."+n+"() <===",e),e},function(e){throw console.error(t+"."+n+"() <===",e),e}):c}}).reduce(function(e,t,r){return e[n[r]]=t,e},{})},so=function(e,t,n){if(void 0===n[io]&&Object.defineProperty(n,io,{value:{}}),n[io][t])return co[n[io][t]];var r=function(r){console.info("."+e+'("'+t+'") <===',r),n(r)},o=v(co);return n[io][t]=o,co[o]=r,r},po=["autoConnect","customerDataProvider","identityProvider","parentStorage","env"];e.connectionStatuses=ct,e.debug=function(e){var r=e;console.warn("You probably do not want to use debug(customerSDK) in your production environment.");var o=r.on,a=r.once,i=r.off,c=r.getChatHistory,u=r.auth,s=n(r,ao),d=uo(s);return Object.freeze(t({auth:Object.freeze(uo(u,".auth"))},d,{getChatHistory:function(){for(var e,t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];(e=console).info.apply(e,[".getChatHistory()"].concat(n));var o=c.apply(void 0,n),a="history.next()";return{next:function(){var e;return(e=console).info.apply(e,[a+" ===>"].concat(n)),o.next().then(function(e){var t;return(t=console).info.apply(t,[a+" <==="].concat(n,[e])),e},function(e){var t;throw(t=console).error.apply(t,[a+" <==="].concat(n,[e])),e})}}},off:function(e,t){console.info('.off("'+e+'", '+(t.name||"anonymous")+")");var n=t;void 0!==t[io]&&(n=co[t[io][e]]);i(e,n)},on:function(e,t){o(e,so("on",e,t))},once:function(e,t){a(e,so("once",e,t))}}))},e.eventTypes=H,e.init=function(e){A(e);var r=e.autoConnect,o=void 0===r||r,a=e.customerDataProvider,i=e.identityProvider,c=e.parentStorage,u=e.env,s=n(e,po),d=u&&["labs","staging"].includes(u)?u:"production",p=Cn(t({},s,{env:d})),l=U(),f=function(e){var n=U(),r=yr(e,n);return t({},Object.keys(r).reduce(function(e,t){return e[t]=function(){var e;return(e=r)[t].apply(e,arguments)},e},{}),{reinitialize:function(){r.disconnect(),(r=yr(e,n)).connect()}})}(p),_="function"==typeof i,h=_?i():k(t({},s,{env:d}),c);p.addSideEffectsHandler(_r({emitter:l,socket:f,auth:h,customerDataProvider:a,parentStorage:c,hasCustomIdentityProvider:_})),Zr(p,f);var v=Pn.bind(null,p),g=function(){p.dispatch({type:_e})},m=Object.freeze({acceptGreeting:function(e){return v(Xe(ge,{greeting_id:e.greetingId,unique_id:e.uniqueId}))},auth:h,cancelGreeting:function(e){return v(Xe(me,{unique_id:e.uniqueId}))},cancelRate:function(e){var t=e.chatId,n=e.properties,r=void 0===n?["score"]:n;return m.listThreads({chatId:t}).then(function(e){var n=e.threads;if(!n.length)throw an({message:'There is no thread in "'+t+'".',code:et});return m.deleteThreadProperties({chatId:t,threadId:n[0].id,properties:{rating:r}})})},connect:g,deactivateChat:function(e){return v(Xe("deactivate_chat",{id:e.id}))},deleteChatProperties:function(e){return v(Xe(Ie,{id:e.id,properties:e.properties}))},deleteEventProperties:function(e){return v(Xe(Ee,{chat_id:e.chatId,thread_id:e.threadId,event_id:e.eventId,properties:e.properties}))},deleteThreadProperties:function(e){return v(Xe(Te,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},destroy:function(){p.dispatch(Be("manual"))},disconnect:function(){p.dispatch(Ye("manual"))},getChat:function(e){return v(Xe(be,{chat_id:e.chatId,thread_id:e.threadId}))},getChatHistory:function(e){return function(e,t){var n={status:"idle",queuedTasks:[],nextPageId:null},r=function(e){function t(t,n){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(o,a){switch(n.status){case"idle":return n.status="fetching",void e.listThreads(n.nextPageId?{chatId:t,pageId:n.nextPageId}:{chatId:t,minEventsCount:25}).then(function(e){var t=e.threads;n.nextPageId=e.nextPageId,n.nextPageId?(n.status="idle",o({value:{threads:[].concat(t).reverse()},done:!1})):(n.status="done",o({value:{threads:[].concat(t).reverse()},done:!0}));var a=n.queuedTasks.shift();a&&r(a.resolve,a.reject)},function(e){var t=n.queuedTasks;n.status="idle",n.queuedTasks=[],a(e),t.forEach(function(t){return t.reject(e)})});case"fetching":return void n.queuedTasks.push({resolve:o,reject:a});case"done":return void o({value:void 0,done:!0})}});return{next:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(){return new Promise(r)})}}(m,e.chatId)},getCustomer:function(){return v(Xe(Oe,{}))},getForm:function(e){return v(Xe(Se,{group_id:e.groupId,type:e.type}))},getUrlInfo:function(e){return v(Xe(Ne,{url:e.url}))},listChats:function(e){return void 0===e&&(e={}),"limit"in e&&"number"==typeof e.limit&&e.limit>25?Promise.reject(Error("Specified limit is too high (max 25).")):v(Xe(Ce,void 0===e.pageId?{limit:e.limit||10}:{page_id:e.pageId}))},listGroupStatuses:function(e){var t=(void 0===e?{}:e).groupIds;return v(Xe(we,t?{group_ids:t}:{all:!0}))},listThreads:function(e){return v(Xe(Pe,void 0===e.pageId?{chat_id:e.chatId,sort_order:e.sortOrder,limit:e.limit,min_events_count:e.minEventsCount}:{chat_id:e.chatId,page_id:e.pageId}))},markEventsAsSeen:function(e){return v(Xe(Ae,{chat_id:e.chatId,seen_up_to:e.seenUpTo}))},on:l.on,once:l.once,off:l.off,rateChat:function(e){var t=e.chatId,n=e.rating;return m.listThreads({chatId:t}).then(function(e){var r=e.threads;if(!r.length)throw an({message:'There is no thread in "'+t+'".',code:et});return m.updateThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:n}})})},requestWelcomeMessage:function(e){var t=(void 0===e?{}:e).id;return v(Xe(ke,t?{id:t}:{}))},resumeChat:function(n){return wn({env:d,organizationId:e.organizationId,eventName:"chat_started"}),v(Xe(De,function(e){var n=Y(e);return t({},n,{chat:t({},n.chat,{id:e.chat.id})})}(n)))},sendEvent:function(e){return v(function(e){var t=e.attachToLastThread,n={chat_id:e.chatId,event:B(e.event)};return t&&(n.attach_to_last_thread=!0),Xe(Ue,n)}(e))},sendGreetingButtonClicked:function(e){return function(e,n){var r=e.store,o=n.greetingUniqueId,a=n.buttonId;return e.auth.getToken().then(function(e){var n=r.getState(),i=b(t({organization_id:n.organizationId},Tn(n))),c=bn(n)+"/action/"+xe+"?"+i;return fetch(c,{method:"POST",headers:{"Content-Type":"application/json",Authorization:e.tokenType+" "+e.accessToken},body:JSON.stringify({greeting_unique_id:o,button_id:a}),keepalive:!0}).then(y)})}({auth:h,store:p},e)},sendCustomerActions:function(e){return function(e,n){var r=e.store,o=n.actions;return e.auth.getToken().then(function(e){var n=r.getState(),a=b(t({organization_id:n.organizationId},Tn(n))),i=bn(n)+"/action/send_customer_actions?"+a;return fetch(i,{method:"POST",headers:{"Content-Type":"application/json",Authorization:e.tokenType+" "+e.accessToken},body:JSON.stringify({actions:o}),keepalive:!0}).then(y)})}({auth:h,store:p},e)},sendRichMessagePostback:function(e){return v(Xe(je,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,postback:e.postback}))},setCustomerSessionFields:function(e){return v(Xe(Me,{session_fields:J(e.sessionFields)}))},setSneakPeek:function(e){var t=e.chatId,n=e.sneakPeekText,r=p.getState();In(r,t)&&En(r)&&v(Xe(Le,{chat_id:t,sneak_peek_text:n})).catch(y)},startChat:function(t){return void 0===t&&(t={}),wn({env:d,organizationId:e.organizationId,eventName:"chat_started"}),v(Xe(qe,Y(t)))},updateChatProperties:function(e){return v(Xe(Ge,{id:e.id,properties:e.properties}))},updateCustomer:function(e){return v(Xe(Fe,K(e)))},updateCustomerPage:function(e){p.dispatch({type:he,payload:I(["title","url"],e)})},updateEventProperties:function(e){return v(Xe(ze,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,properties:e.properties}))},updateThreadProperties:function(e){return v(Xe(Ve,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},uploadFile:function(e){return oo({auth:h,store:p},e)}});return o?g():p.dispatch({type:W,payload:{sessionFields:"function"==typeof a?a().sessionFields:{}}}),m},e.parseCustomEvent=Ln,e.parseEvent=Fn,e.parseFile=Un,e.parseFilledForm=xn,e.parseForm=Hr,e.parseGreeting=Hn,e.parseMessage=jn,e.parseRichMessage=qn,e.parseSystemMessage=Gn,e.serverDisconnectionReasons=It,e.serverErrorCodes=St,e.serverPushActions=en,e.sortOrders=tn,e.userTypes=on,Object.defineProperty(e,"__esModule",{value:!0})});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).CustomerSDK={})}(this,function(e){"use strict";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;arguments.length>t;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.apply(null,arguments)}function n(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}function r(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}var o="__test_storage_support__",a="@@test",i=function(){var e=Object.create(null);return{getItem:function(t){var n=e[t];return"string"==typeof n?n:null},setItem:function(t,n){e[t]=n},removeItem:function(t){delete e[t]},clear:function(){e=Object.create(null)}}}();function c(e){try{return window.localStorage}catch(t){return"SecurityError"===t.name&&e?e:function(e){void 0===e&&(e="local");try{var t="session"===e?window.sessionStorage:window.localStorage;return t.setItem(o,a),t.getItem(o)===a&&(t.removeItem(o),!0)}catch(e){return!1}}()?window.localStorage:i}}function u(e){var t=c(e);return{setItem:function(e,n){return new Promise(function(r){return r(t.setItem(e,n))})},getItem:function(e){return new Promise(function(n){return n(t.getItem(e))})},removeItem:function(e){return new Promise(function(n){return n(t.removeItem(e))})}}}u();var s={}.hasOwnProperty;function d(e,t){return s.call(t,e)}function p(e,t){var n;return(n=[]).concat.apply(n,t.map(e))}function l(e){return Array.isArray(e)}function f(e){if("keys"in Object&&"function"==typeof Object.keys)return Object.keys(e);var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t}function _(e,t){return f(t).reduce(function(n,r){return n[r]=e(t[r]),n},{})}function h(e){return e}function v(e){var t=Math.random().toString(36).substring(2);return d(t,e)?v(e):t}function y(){}function g(e){return f(e).map(function(t){return e[t]})}function m(e,t){return e.reduce(function(e,n){return e[n]=t[n],e},{})}function I(e,t){return e.reduce(function(e,n){return d(n,t)&&(e[n]=t[n]),e},{})}function E(e){return f(e).map(function(t){return[t,e[t]]})}function T(e,t){return e===t?0:t>e?-1:1}var b=function(e){return E(e).map(function(e){return e.map(encodeURIComponent).join("=")}).join("&")},O=/[^:]+:\/\/[^(/|?)\s]+/,S=function(e){return e.replace(/\w/g,"$&[\\r\\n\\t]*")};RegExp("^[\0-]*("+S("javascript")+"|"+S("data")+"):","i");var N=/^((http(s)?:)?\/\/)/;function C(e,t){return t=t||{},new Promise(function(n,r){var o=new XMLHttpRequest,a=[],i=[],c={},u=function(){return{ok:2==(o.status/100|0),statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:u,headers:{keys:function(){return a},entries:function(){return i},get:function(e){return c[e.toLowerCase()]},has:function(e){return e.toLowerCase()in c}}}};for(var s in o.open(t.method||"get",e,!0),o.onload=function(){o.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,t,n){a.push(t=t.toLowerCase()),i.push([t,n]),c[t]=c[t]?c[t]+","+n:n}),n(u())},o.onerror=r,o.withCredentials="include"==t.credentials,t.headers)o.setRequestHeader(s,t.headers[s]);o.send(t.body||null)})}var w="https://accounts.livechatinc.com",P=function(e){var t=e.code,n=Error(e.message);return n.code=t,n},R=function(e,t){return C(""+function(e,t){var n="production"===t?w:w.replace("accounts.","accounts."+t+"."),r=function(e){return e.uniqueGroups?"/v2/customer/"+e.organizationId+"/"+e.groupId+"/token":"/v2/customer/token"}(e);return""+n+r}(e,t),{method:"POST",credentials:"include",body:JSON.stringify({response_type:"token",grant_type:"cookie",client_id:e.clientId,organization_id:e.organizationId,redirect_uri:(n=window.location+"",r=n.match(O),(r&&r[0])+window.location.pathname)})}).then(function(e){return e.json()}).then(function(t){return function(e,t){if("identity_exception"in e)throw P({code:"SSO_IDENTITY_EXCEPTION",message:e.identity_exception});if("oauth_exception"in e)throw P({code:"SSO_OAUTH_EXCEPTION",message:e.oauth_exception});return{accessToken:e.access_token,entityId:e.entity_id,expiresIn:1e3*e.expires_in,tokenType:e.token_type,creationDate:Date.now(),organizationId:t}}(t,e.organizationId)});var n,r},A=function(e){if("string"!=typeof e.organizationId||"string"!=typeof e.clientId)throw Error("You need to pass valid configuration object: { organizationId, clientId }.")},k=function(e,t){A(e);var n=e.env,r=n&&["labs","staging"].includes(n)?n:"production",o=u(t),a=""+(e.tokenStoragePrefix||"@@lc_auth_token:")+e.organizationId+(e.uniqueGroups?":"+e.groupId:""),i=null,c=null,s=o.getItem(a).then(function(e){null!==s&&(s=null,e&&(c=JSON.parse(e)))}),d=function(){return i=R(e,r).then(function(e){return i=null,o.setItem(a,JSON.stringify(e)),c=e,e},function(e){throw i=null,e})},p=function(){return i||(c&&!function(e){var t=e.creationDate,n=e.expiresIn;return Date.now()>=t+n}(c)?Promise.resolve(c):s?s.then(p):d())},l=function(){return s?s.then(l):Promise.resolve(!!c)};return{getFreshToken:d,getToken:p,hasToken:l,invalidate:function(){return c=null,s=null,o.removeItem(a)}}};var D=["all"],x=function(){var e,r={all:e=e||new Map,on:function(t,n){var r=e.get(t);r?r.push(n):e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&(n?r.splice(r.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map(function(e){e(n)}),(r=e.get("*"))&&r.slice().map(function(e){e(t,n)})}},o=r.all,a=n(r,D);return t({},a,{off:function(e,t){e?a.off(e,t):o.clear()},once:function(e,t){a.on(e,function n(r,o){a.off(e,n),t(r,o)})}})},U="file",j="form",L="filled_form",M="message",q="rich_message",G="system_message",F="custom",H=Object.freeze({__proto__:null,FILE:U,FORM:j,FILLED_FORM:L,MESSAGE:M,RICH_MESSAGE:q,SYSTEM_MESSAGE:G,CUSTOM:F}),z=["groupId"],V=function(e){var t,n={};return"string"==typeof e.customId&&(n.custom_id=e.customId),"object"!=typeof(t=e.properties)||null===t||l(t)||(n.properties=e.properties),n},Y=function(e){switch(e.type){case M:var r=t({},V(e),{type:e.type,text:e.text});return e.postback&&(r.postback={id:e.postback.id,thread_id:e.postback.threadId,event_id:e.postback.eventId,type:e.postback.type,value:e.postback.value}),r;case U:return t({},V(e),{type:e.type,url:e.url,alternative_text:e.alternativeText});case L:return t({},V(e),{type:e.type,form_id:e.formId},e.formType&&{form_type:e.formType},{fields:e.fields.map(function(e){if("group_chooser"===e.type){if(!e.answer)return e;var r=e.answer,o=r.groupId;return t({},e,{answer:t({},n(r,z),{group_id:o})})}return e})});case G:var o=t({},V(e),{type:e.type,text:e.text,system_message_type:e.systemMessageType});return e.recipients&&(o.recipients=e.recipients),o;case F:var a=t({},V(e),{type:e.type});return e.content&&(a.content=e.content),a}},B=function(e){var t=e.active,n=e.chat,r=e.welcomeMessageId,o=e.continuous,a={active:void 0===t||t,chat:{}};if("boolean"==typeof o&&(a.continuous=o),r&&"string"==typeof r&&(a.welcome_message_id=r),!n)return a;var i=n.access,c=n.thread,u=n.properties;return i&&i.groupIds&&(a.chat.access={group_ids:i.groupIds}),u&&(a.chat.properties=u),c&&(a.chat.thread=function(e){var t={},n=e.events,r=e.properties;return n&&(t.events=n.map(Y)),r&&(t.properties=r),t}(c)),a},J=function(e){return E(e).map(function(e){var t;return(t={})[e[0]]=e[1],t})},K=function(e){var t=I(["avatar","name","email"],e);return e.phoneNumber&&(t.phone_number=e.phoneNumber),e.sessionFields&&(t.session_fields=J(e.sessionFields)),"boolean"==typeof e.nameIsDefault&&(t.name_is_default=e.nameIsDefault),t},X="change_region",W="check_goals",Q="destroy",Z="fail_all_requests",$="login_success",ee="pause_connection",te="prefetch_token",ne="push_received",re="push_response_received",oe="reconnect",ae="request_failed",ie="response_received",ce="send_request",ue="set_chat_active",se="set_self_id",de="socket_connected",pe="socket_disconnected",le="socket_recovered",fe="socket_unstable",_e="start_connection",he="update_customer_page",ve="clear_sensitive_session_state",ye="identity_changed",ge="accept_greeting",me="cancel_greeting",Ie="delete_chat_properties",Ee="delete_event_properties",Te="delete_thread_properties",be="get_chat",Oe="get_customer",Se="get_form",Ne="get_url_info",Ce="list_chats",we="list_group_statuses",Pe="list_threads",Re="login",Ae="mark_events_as_seen",ke="request_welcome_message",De="resume_chat",xe="send_event",Ue="send_greeting_button_clicked",je="send_rich_message_postback",Le="send_sneak_peek",Me="set_customer_session_fields",qe="start_chat",Ge="update_chat_properties",Fe="update_customer",He="update_customer_page",ze="update_event_properties",Ve="update_thread_properties",Ye=function(e){return{type:Q,payload:{reason:e}}},Be=function(e){return{type:ee,payload:{reason:e}}},Je=function(e){return void 0===e&&(e=!1),{type:te,payload:{fresh:e}}},Ke=function(e){return{type:oe,payload:{delay:e}}},Xe=function(e,n,r){return{type:ce,payload:t({request:{action:e,payload:n}},r&&{source:r})}},We=function(e,t){return{type:ue,payload:{id:e,active:t}}},Qe=function(e){return{type:se,payload:{id:e}}},Ze="CONNECTION_LOST",$e="MISDIRECTED_CONNECTION",et="MISSING_CHAT_THREAD",tt="SDK_DESTROYED",nt="connected",rt="destroyed",ot="disconnected",at="paused",it="reconnecting",ct=Object.freeze({__proto__:null,CONNECTED:nt,DESTROYED:rt,DISCONNECTED:ot,PAUSED:at,RECONNECTING:it}),ut="access_token_expired",st="customer_banned",dt="customer_temporarily_blocked",pt="license_expired",lt="license_not_found",ft="misdirected_connection",_t="product_version_changed",ht="service_temporarily_unavailable",vt="too_many_connections",yt="too_many_unauthorized_connections",gt="unsupported_version",mt="logged_out_remotely",It=Object.freeze({__proto__:null,ACCESS_TOKEN_EXPIRED:ut,CONNECTION_TIMEOUT:"connection_timeout",CUSTOMER_BANNED:st,CUSTOMER_TEMPORARILY_BLOCKED:dt,INACTIVITY_TIMEOUT:"inactivity_timeout",INTERNAL_ERROR:"internal_error",LICENSE_EXPIRED:pt,LICENSE_NOT_FOUND:lt,MISDIRECTED_CONNECTION:ft,PRODUCT_VERSION_CHANGED:_t,SERVICE_TEMPORARILY_UNAVAILABLE:ht,TOO_MANY_CONNECTIONS:vt,TOO_MANY_UNAUTHORIZED_CONNECTIONS:yt,UNSUPPORTED_VERSION:gt,LOGGED_OUT_REMOTELY:mt}),Et="AUTHENTICATION",Tt="CUSTOMER_BANNED",bt="USERS_LIMIT_REACHED",Ot="WRONG_PRODUCT_VERSION",St=Object.freeze({__proto__:null,AUTHENTICATION:Et,AUTHORIZATION:"AUTHORIZATION",CHAT_ALREADY_ACTIVE:"CHAT_ALREADY_ACTIVE",CHAT_LIMIT_REACHED:"CHAT_LIMIT_REACHED",CUSTOMER_BANNED:Tt,CUSTOMER_SESSION_FIELDS_LIMIT_REACHED:"CUSTOMER_SESSION_FIELDS_LIMIT_REACHED",ENTITY_TOO_LARGE:"ENTITY_TOO_LARGE",GREETING_NOT_FOUND:"GREETING_NOT_FOUND",GROUP_OFFLINE:"GROUP_OFFLINE",GROUPS_OFFLINE:"GROUPS_OFFLINE",GROUP_NOT_FOUND:"GROUP_NOT_FOUND",GROUP_UNAVAILABLE:"GROUP_UNAVAILABLE",INTERNAL:"INTERNAL",LICENSE_EXPIRED:"LICENSE_EXPIRED",MISDIRECTED_REQUEST:"MISDIRECTED_REQUEST",PENDING_REQUESTS_LIMIT_REACHED:"PENDING_REQUESTS_LIMIT_REACHED",REQUEST_TIMEOUT:"REQUEST_TIMEOUT",SERVICE_UNAVAILABLE:"SERVICE_UNAVAILABLE",UNSUPPORTED_VERSION:"UNSUPPORTED_VERSION",USERS_LIMIT_REACHED:bt,VALIDATION:"VALIDATION",WRONG_PRODUCT_VERSION:Ot}),Nt="chat_deactivated",Ct="chat_properties_deleted",wt="chat_properties_updated",Pt="chat_transferred",Rt="customer_disconnected",At="customer_side_storage_updated",kt="customer_updated",Dt="event_properties_deleted",xt="event_properties_updated",Ut="event_updated",jt="events_marked_as_seen",Lt="greeting_accepted",Mt="greeting_canceled",qt="groups_status_updated",Gt="incoming_chat",Ft="incoming_event",Ht="incoming_greeting",zt="incoming_multicast",Vt="incoming_rich_message_postback",Yt="incoming_typing_indicator",Bt="incoming_welcome_message",Jt="queue_position_updated",Kt="thread_properties_deleted",Xt="thread_properties_updated",Wt="user_added_to_chat",Qt="user_removed_from_chat",Zt="incoming_thinking_indicator",$t="incoming_event_preview",en=Object.freeze({__proto__:null,CHAT_DEACTIVATED:Nt,CHAT_PROPERTIES_DELETED:Ct,CHAT_PROPERTIES_UPDATED:wt,CHAT_TRANSFERRED:Pt,CUSTOMER_DISCONNECTED:Rt,CUSTOMER_SIDE_STORAGE_UPDATED:At,CUSTOMER_UPDATED:kt,EVENT_PROPERTIES_DELETED:Dt,EVENT_PROPERTIES_UPDATED:xt,EVENT_UPDATED:Ut,EVENTS_MARKED_AS_SEEN:jt,GREETING_ACCEPTED:Lt,GREETING_CANCELED:Mt,GROUPS_STATUS_UPDATED:qt,INCOMING_CHAT:Gt,INCOMING_EVENT:Ft,INCOMING_GREETING:Ht,INCOMING_MULTICAST:zt,INCOMING_RICH_MESSAGE_POSTBACK:Vt,INCOMING_TYPING_INDICATOR:Yt,INCOMING_WELCOME_MESSAGE:Bt,QUEUE_POSITION_UPDATED:Jt,THREAD_PROPERTIES_DELETED:Kt,THREAD_PROPERTIES_UPDATED:Xt,USER_ADDED_TO_CHAT:Wt,USER_REMOVED_FROM_CHAT:Qt,INCOMING_THINKING_INDICATOR:Zt,INCOMING_EVENT_PREVIEW:$t}),tn=Object.freeze({__proto__:null,ASC:"asc",DESC:"desc"}),nn="agent",rn="customer",on=Object.freeze({__proto__:null,AGENT:nn,CUSTOMER:rn});function an(e){var t=e.code,n=Error(e.message);return n.code=t,n}var cn=function(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof module?module:Function("return this")()),un=function(){return Math.random().toString(36).substring(7).split("").join(".")},sn={INIT:"@@redux/INIT"+un(),REPLACE:"@@redux/REPLACE"+un(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+un()}};function dn(e,t,n){var r;if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw Error("Expected the enhancer to be a function.");return n(dn)(e,t)}if("function"!=typeof e)throw Error("Expected the reducer to be a function.");var o=e,a=t,i=[],c=i,u=!1;function s(){c===i&&(c=i.slice())}function d(){if(u)throw Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return a}function p(e){if("function"!=typeof e)throw Error("Expected the listener to be a function.");if(u)throw Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");var t=!0;return s(),c.push(e),function(){if(t){if(u)throw Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");t=!1,s();var n=c.indexOf(e);c.splice(n,1)}}}function l(e){if(!function(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}(e))throw Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(u)throw Error("Reducers may not dispatch actions.");try{u=!0,a=o(a,e)}finally{u=!1}for(var t=i=c,n=0;t.length>n;n++){(0,t[n])()}return e}return l({type:sn.INIT}),(r={dispatch:l,subscribe:p,getState:d,replaceReducer:function(e){if("function"!=typeof e)throw Error("Expected the nextReducer to be a function.");o=e,l({type:sn.REPLACE})}})[cn]=function(){var e,t=p;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(d())}return n(),{unsubscribe:t(n)}}})[cn]=function(){return this},e},r}function pn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ln(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n}function fn(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce(function(e,t){return function(){return e(t.apply(void 0,arguments))}})}function _n(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},o={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},a=t.map(function(e){return e(o)});return function(e){for(var t=1;arguments.length>t;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ln(n,!0).forEach(function(t){pn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ln(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},n,{dispatch:r=fn.apply(void 0,a)(n.dispatch)})}}}var hn=function(e){var t=e.min,n=void 0===t?1e3:t,r=e.max,o=void 0===r?5e3:r,a=e.jitter,i=void 0===a?.5:a,c=0;return{duration:function(){var e=n*Math.pow(2,c++);if(i){var t=Math.random(),r=Math.floor(t*i*e);e=1&Math.floor(10*t)?e+r:e-r}return 0|Math.min(e,o)},reset:function(){c=0}}};function vn(){var e={};return e.promise=new Promise(function(t,n){e.resolve=t,e.reject=n}),e}var yn=function(e){return e.connection.status},gn=function(e,t){return e.requests[t]},mn=function(e){return e.users.self.id},In=function(e,t){var n=e.chats[t];return!!n&&n.active},En=function(e){return yn(e)===nt},Tn=function(e){var t;return{"x-region":null!=(t=e.region)?t:""}},bn=function(e){return function(e){return"https://api"+function(e){var t=e.env;return"production"===t?"":"."+t}(e)+".livechatinc.com"}(e)+"/v3.6/customer"},On=function(e,o){return t({},e,{requests:n(e.requests,[o.id].map(r))})},Sn=function(e,n){return t({},n,{connection:t({},n.connection,{status:e})})},Nn=function(e){var n,r,o;return r=e,(n={})[X]=function(e,n){return t({},e,{region:n.region})},n[Q]=function(e){return Sn(rt,e)},n[$]=function(e){return Sn(nt,e)},n[ee]=function(e){return Sn(at,e)},n[ae]=On,n[ie]=On,n[re]=On,n[ce]=function(e,n){var r,o=n.id;return t({},e,{requests:t({},e.requests,(r={},r[o]={id:o,promise:n.promise,resolve:n.resolve,reject:n.reject,request:n.request},r))})},n[ue]=function(e,n){var r,o=n.id;return t({},e,{chats:t({},e.chats,(r={},r[o]=t({},e.chats[o],{active:n.active}),r))})},n[se]=function(e,n){return t({},e,{users:t({},e.users,{self:t({},e.users.self,{id:n.id})})})},n[pe]=function(e){var n=yn(e);return t({},Sn(n===ot?ot:it,e),{requests:{}})},n[he]=function(e,n){return t({},e,{page:t({},e.page,n)})},n[ve]=function(e){return t({},e,{chats:{},users:{self:{id:null,type:rn},others:{}},requests:{}})},n[ye]=function(e){return e},(o=n)[void 0]&&console.warn("Reducer contains an 'undefined' action type.\nHave you misspelled a constant?"),function(e,t){return void 0===e&&(e=r),d(t.type,o)?o[t.type](e,t.payload):e}};function Cn(e){var n=h,r=function(){var e=[],t=function(t){return function(n){return function(r){var o=n(r);return e.forEach(function(e){e(r,t)}),o}}};return t.add=function(t){e.push(t)},t}(),o=dn(Nn(function(e){var n=e.application,r=e.organizationId,o=e.groupId,a=void 0===o?null:o,i=e.env,c=e.page,u=void 0===c?null:c,s=e.region,d=void 0===s?null:s,p=e.referrer,l=void 0===p?null:p,f=e.tabId,_=void 0===f?null:f,h=e.uniqueGroups,v=void 0!==h&&h,y=e.mobile,g=void 0!==y&&y;return{application:t({},void 0===n?{}:n,{name:"customer_sdk",version:"5.1.0"}),organizationId:r,env:i,groupId:a,chats:{},connection:{status:ot},page:u,region:d,referrer:l,tabId:_,requests:{},users:{self:{id:null,type:rn},others:{}},uniqueGroups:v,mobile:g}}(e)),n(_n(r)));return o.addSideEffectsHandler=r.add,o}var wn=function(e){var t=e.organizationId,n=e.eventName;if("production"!==e.env)return Promise.resolve();var r={organizationId:t,event_id:"chat_widget_customer_sdk",message:JSON.stringify({event_name:n,severity:"Informational",sdkVersion:"5.1.0"})};return function(e,t){return new Promise(function(n){var r=new Image;r.src=e+"?"+t,r.onerror=y,r.onload=function(){return n()}})}("https://applog.livechatinc.com/logs",b(r))},Pn=function(e,t){t.payload.id=v(e.getState().requests);var n=vn(),r=n.resolve,o=n.reject,a=n.promise;return t.payload.promise=a,t.payload.resolve=r,t.payload.reject=o,e.dispatch(t),a},Rn=Object.freeze({success:!0}),An=["group_id"],kn=function(e,t){var n={id:t.id,authorId:t.author_id,createdAt:t.created_at,threadId:e,properties:t.properties||{}};return void 0!==t.custom_id&&(n.customId=t.custom_id),n},Dn=function(e,t){var n,r,o,a,i;t.height>t.width?(r="height",o="width",a=t.height,i=t.width):(r="width",o="height",a=t.width,i=t.height);var c=e/a;return(n={})[r]=Math.ceil(Math.min(a,e)),n[o]=Math.ceil(Math.min(c*i,i)),n},xn=function(e,n){return void 0!==n.width&&void 0!==n.height?function(e,n){return t({},kn(e,n),{type:U,contentType:n.content_type,url:n.url,name:n.name,width:n.width,height:n.height,thumbnails:{default:t({url:n.thumbnail_url},Dn(300,n)),high:t({url:n.thumbnail2x_url},Dn(600,n))}},n.alternative_text&&{alternativeText:n.alternative_text})}(e,n):t({},kn(e,n),{type:U,contentType:n.content_type,url:n.url,name:n.name})},Un=function(e,r){return t({},kn(e,r),{type:L,formId:r.form_id},r.form_type&&{formType:r.form_type},{fields:r.fields.map(function(e){if("group_chooser"===e.type){if(!e.answer)return e;var r=e.answer,o=r.group_id;return t({},e,{answer:t({},n(r,An),{groupId:o})})}return e})})},jn=function(e,n){return t({},kn(e,n),{type:M,text:n.text})},Ln=function(e,n){return t({},kn(e,n),{type:F},n.content&&{content:n.content})},Mn=function(e){var n={};if("string"==typeof e.title&&(n.title=e.title),"string"==typeof e.subtitle&&(n.subtitle=e.subtitle),e.image){var r=e.image;n.image=t({url:r.url,name:r.name},r.alternative_text&&{alternativeText:r.alternative_text})}return e.ecommerce&&(n.ecommerce=t({productId:e.ecommerce.product_id,viewType:e.ecommerce.view_type},"string"==typeof e.ecommerce.label&&{label:e.ecommerce.label},Array.isArray(e.ecommerce.options)&&{options:e.ecommerce.options.map(function(e){return t({label:e.label,optionId:e.option_id},void 0!==e.price&&{price:e.price},void 0!==e.regular_price&&{regularPrice:e.regular_price},void 0!==e.max_price&&{maxPrice:e.max_price},void 0!==e.currency&&{currency:e.currency},"string"==typeof e.color&&{color:e.color},e.image_url&&t({imageUrl:e.image_url},"string"==typeof e.image_thumbnail_url&&{imageThumbnailUrl:e.image_thumbnail_url}),"boolean"==typeof e.available&&{available:e.available},"boolean"==typeof e.selected&&{selected:e.selected})})},Array.isArray(e.ecommerce.addons)&&{addons:e.ecommerce.addons.map(function(e){return"price_range"===e.addon_type?t({addonType:e.addon_type},void 0!==e.range_from&&{rangeFrom:e.range_from},void 0!==e.range_to&&{rangeTo:e.range_to},"string"==typeof e.currency&&{currency:e.currency}):{addonType:e.addon_type}})})),e.buttons&&(n.buttons=e.buttons.map(function(e){switch(e.type){case"message":case"add_to_cart":case"show_gallery":case"copy":case"phone":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});case"cancel":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});case"url":var n=t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});return e.target&&(n.target=e.target),n;case"open_external":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id},e.target&&{target:e.target});case"webview":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});default:return t({text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"},e.button_id&&{buttonId:e.button_id})}})),n},qn=function(e,n){switch(n.template_id){case"cards":case"quick_replies":case"sticker":case"ecommerce":return t({},kn(e,n),{type:q,template:n.template_id,elements:n.elements.map(Mn)});default:return null}},Gn=function(e,n){var r=t({},kn(e,t({},n,{author_id:"system"})),{type:G,text:n.text,systemMessageType:n.system_message_type});return n.text_vars&&(r.textVars=n.text_vars),r},Fn=function(e,n){switch(n.type){case U:return xn(e,n);case j:return function(e,n){return t({},kn(e,n),{authorId:"system",type:j,formId:n.form_id},n.form_type&&{formType:n.form_type},{fields:n.fields})}(e,n);case L:return Un(e,n);case M:return jn(e,n);case q:return qn(e,n);case G:return Gn(e,n);case F:return Ln(e,n);default:return null}},Hn=function(e){return{id:e.id,addon:e.addon||null,uniqueId:e.unique_id,displayedFirstTime:e.displayed_first_time,isExitIntent:e.is_exit_intent,accepted:e.accepted||!1,subtype:e.subtype||"greeting",event:Fn(null,e.event),agent:{id:e.agent.id,name:e.agent.name,avatar:e.agent.avatar,jobTitle:e.agent.job_title,isBot:e.agent.is_bot||!1}}},zn=function(e){return void 0===e&&(e={}),e.group_ids?{groupIds:e.group_ids}:{}},Vn=function(e){return _(function(e){return e.events_seen_up_to?e.events_seen_up_to:null},(t="id",e.reduce(function(e,n){return e[n[t]]=n,e},{})));var t},Yn=function(e,t){var n=t.properties||{};return{id:t.id,chatId:e,active:t.active,access:zn(t.access),createdAt:t.created_at,userIds:t.user_ids,events:t.events.map(function(e){return Fn(t.id,e)}).filter(Boolean),properties:n,previousThreadId:t.previous_thread_id||null,nextThreadId:t.next_thread_id||null,queue:t.queue?Qn(t.queue):null}},Bn=function(e){return{id:e.id,access:zn(e.access),users:e.users.map(Zn),properties:e.properties||{},eventsSeenUpToMap:Vn(e.users)}},Jn=function(e){var t=I(["avatar","email","name"],e);return"phone_number"in e&&(t.phoneNumber=e.phone_number),e.session_fields&&(t.sessionFields=e.session_fields.reduce(function(e,t){var n=Object.keys(t)[0];return e[n]=t[n],e},{})),t},Kn=function(e){var n=Jn(e);return t({id:e.id,type:rn},n,{sessionFields:n.sessionFields||{}})},Xn=function(e){var n=e.statistics;return t({},Kn(e),{statistics:{chatsCount:n.chats_count,threadsCount:n.threads_count,visitsCount:n.visits_count,pageViewsCount:n.page_views_count,greetingsShownCount:n.greetings_shown_count,greetingsAcceptedCount:n.greetings_accepted_count}})},Wn=function(e){return{position:e.position,waitTime:e.wait_time}},Qn=function(e){return t({},Wn(e),{queuedAt:e.queued_at})},Zn=function(e){return e.type===rn?t({},Kn(r=e),{present:r.present}):{id:(n=e).id,type:nn,name:n.name,avatar:n.avatar,jobTitle:n.job_title,present:n.present};var n,r},$n=function(e){return"offline"===e?"offline":"online"},er=function(e){var t=e.getState();return"side_storage_"+t.organizationId+(t.uniqueGroups?":"+t.groupId:"")},tr=function(e,t){var n=u(t),r=er(e);return n.getItem(r).catch(y).then(function(e){return JSON.parse(e||"{}")}).catch(y)},nr=function(e,t){var n=e.dispatch,r=function(e){return e.requests}((0,e.getState)());n({type:Z,payload:{rejects:Object.keys(r).map(function(e){return r[e].reject}),reason:t}})},rr=function(e,t,n){var r=t.payload.id;(0,e.dispatch)({type:ae,payload:{id:r,reject:(0,e.getState)().requests[r].reject,error:n}})},or=function(e,t,n){var r=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);t>n;n++)r[n]=e[n];return r}(e).slice(0),o=!1,a=function(e){var i,c=r.shift();(i=function(){return c(e)},new Promise(function(e){e(i())})).then(function(e){o||(r.length?a(e):t(e))},function(e){o||n(e)})};return a(),{cancel:function(){o=!0}}},ar=function(e,t,n){return Pn(e,Xe(t,n,"login"))};function ir(e,n,r){var o,a,i=null,c={min:300,max:6e4,jitter:.3},s=hn(c),d=hn(t({},c,{min:1e3})),p=s,l=function(e){return o.dispatch(Ye(e))},f=function(){return o.dispatch(Ke(p.duration()))},_=function(){return Promise.all([e.getToken(),tr(o,r)])},h=function(e){var t=e[0],n=e[1],a=mn(o.getState());if(null===a)o.dispatch(Qe(t.entityId));else if(a!==t.entityId)return r&&function(e,t){u(t).removeItem(er(e)).catch(y)}(o,r),o.dispatch({type:ve}),o.dispatch(Qe(t.entityId)),o.dispatch({type:ye,payload:{previousId:a,newId:t.entityId}}),[t,{}];return[t,n]},v=function(e){var t,r=e[0],a=e[1],c=o.getState(),u=c.application,s=c.groupId,d=c.page,p=c.referrer,l=c.mobile,f=c.tabId,_={token:r.tokenType+" "+r.accessToken,customer:"function"==typeof n?K(n()):{},customer_side_storage:a,is_mobile:l,application:m(["name","version"],u)};return"number"==typeof s&&(_.group_id=s),u.channelType&&(_.application.channel_type=u.channelType),null!==d&&(i=d,_.customer_page=d),null!==p&&(_.referrer=p),null!==f&&(_.tab_id=f),Promise.race([ar(o,Re,_),(t=15e3,new Promise(function(e){setTimeout(e,t)})).then(function(){return Promise.reject(an({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))})])};return{sendLogin:function(t){var n;o=t,null==(n=a)||n.cancel(),a=or([_,h,v],function(e){var t;a=null,s.reset(),d.reset(),p=s,t=o.getState().page,i!==t&&ar(o,He,t).catch(y),i=null,o.dispatch({type:$,payload:e})},function(t){switch(a=null,t.code){case Et:return e.getFreshToken(),void f();case Ze:case $e:case tt:return;case"SSO_IDENTITY_EXCEPTION":case"SSO_OAUTH_EXCEPTION":return"server_error"===t.message||"temporarily_unavailable"===t.message?void f():void l(t.message);case bt:return void o.dispatch(Be(t.code.toLowerCase()));case Tt:case Ot:return void l(t.code.toLowerCase());case"SERVICE_TEMPORARILY_UNAVAILABLE":return p=d,void f();default:return void f()}})},cancel:function(){var e;null==(e=a)||e.cancel()}}}var cr,ur=["present"],sr=["statistics"],dr=((cr={})[Ze]="Connection lost.",cr[$e]="Connected to wrong region.",cr),pr=function(e,t){var n=e.getState();switch(t.type){case re:case ne:switch(t.payload.action){case Nt:return void e.dispatch(We(t.payload.payload.chatId,!1));case Gt:return void e.dispatch(We(t.payload.payload.chat.id,!0));default:return}case ie:return t.payload.action===Ce?void t.payload.payload.chatsSummary.filter(function(e){var t=e.active;return In(n,e.id)!==t}).forEach(function(t){e.dispatch(We(t.id,t.active))}):void 0}},lr=function(e,t){t.forEach(function(t){if("present"in t){var r=n(t,ur);e("user_data",r)}else if(t.type!==rn)e("user_data",t);else{var o=n(t,sr);e("user_data",o)}})},fr=function(e,t,n){var r=e.emit,o=e.store,a=t.payload;switch(a.action){case Xt:return a.payload.properties.lc2&&"queue_pos"in a.payload.properties.lc2&&r(Jt,{chatId:a.payload.chatId,threadId:a.payload.threadId,queue:{position:a.payload.properties.lc2.queue_pos,waitTime:a.payload.properties.lc2.queue_waiting_time}}),void r("thread_properties_updated",a.payload);case At:return void function(e,t,n){u(n).setItem(er(e),JSON.stringify(t)).catch(y)}(o,a.payload.customer_side_storage,n);case Rt:switch(a.payload.reason){case ut:o.dispatch(Je(!0)),o.dispatch(Ke(100)),r("disconnected",a.payload);break;case st:case dt:case lt:case _t:case vt:case gt:case mt:o.dispatch(Ye(a.payload.reason));break;case ft:nr(o,$e),o.dispatch({type:X,payload:a.payload.data});break;case ht:case yt:nr(o,a.payload.reason.toUpperCase());break;default:o.dispatch(Ke(100)),r("disconnected",a.payload)}return;case qt:return void r("availability_updated",{availability:$n(a.payload.groups[0].status)});case Gt:return lr(r,a.payload.chat.users),void r(a.action,a.payload);case Ft:if(null===a.payload.event)return;return void r(a.action,a.payload);case Yt:case Zt:case $t:return void r(a.action,a.payload);case Wt:return lr(r,[a.payload.user]),void r(a.action,a.payload);default:return void r(a.action,a.payload)}},_r=function(e,t){var n=e.emit,r=t.payload;switch(r.action){case Nt:return void r.resolve(Rn);case be:return lr(n,r.payload.users),void r.resolve(r.payload);case Gt:return lr(n,r.payload.chat.users),void r.resolve(r.payload);case Ft:return void r.resolve(r.payload.event);case Ce:return lr(n,r.payload.users),void r.resolve(r.payload);default:return void r.resolve(r.payload)}},hr=function(e){var n=e.auth,r=e.emitter,o=e.socket,a=e.parentStorage,i=r.emit,c=ir(n,e.customerDataProvider,a);return function(e,u){switch(e.type){case X:return void o.reinitialize();case W:return void function(e,n,r){return n.getToken().then(function(n){var o=e.getState();null===mn(o)&&e.dispatch(Qe(n.entityId));var a=o.page;if(a&&a.url){var i=b(t({organization_id:o.organizationId},Tn(o))),c={session_fields:J(r||{}),group_id:o.groupId||0,page_url:a.url};return C(bn(o)+"/action/check_goals?"+i,{method:"POST",headers:{"Content-Type":"application/json",Authorization:n.tokenType+" "+n.accessToken},body:JSON.stringify(c)}).then(function(){})}})}(u,n,e.payload.sessionFields).catch(y);case Q:var s=e.payload;switch(c.cancel(),o.destroy(),s.reason){case"manual":nr(u,tt);break;case st:case pt:case _t:case mt:nr(u,Ze),i("disconnected",s);break;default:i("disconnected",s)}return void r.off();case Z:var d=e.payload,p=d.reason,l={message:dr[p],code:p};return void d.rejects.forEach(function(e){e(an(l))});case $:var f=e.payload,_=f.dynamicConfig,h=f.chats,v=f.greeting,m=t({customer:f.customer,availability:f.availability},v&&{greeting:v});return Object.defineProperty(m,"__unsafeDynamicConfig",{value:_}),Object.defineProperty(m,"__unsafeChats",{value:h}),void i("connected",m);case ee:var I=e.payload;return o.disconnect(),void("manual"!==I.reason&&i("disconnected",I));case te:return e.payload.fresh?void n.getFreshToken().catch(y):void n.hasToken().then(function(e){return e?n.getToken().then(function(e){if(36e5>=e.creationDate+e.expiresIn-Date.now())return n.invalidate().then(n.getFreshToken)}):n.getToken()}).catch(y);case ne:return e.payload.action===Rt||pr(u,e),void fr({emit:i,store:u},e,a);case re:return pr(u,e),void _r({emit:i},e);case oe:return nr(u,Ze),void o.reconnect(e.payload.delay);case ae:var E=e.payload;return void(0,E.reject)(an(E.error));case ie:return pr(u,e),void _r({emit:i},e);case ce:var T=u.getState();return function(e){return yn(e)===rt}(T)?void rr(u,e,{code:tt,message:"SDK destroyed."}):En(T)||"login"===e.payload.source?void function(e,n){var r=n.payload,o=t({request_id:r.id},r.request);if(o.action!==Re)e.emit(o);else{var a={3.6:g(en).filter(function(e){return e!==Rt})};e.emit(t({},o,{version:"3.6",payload:t({},o.payload,{pushes:a})}))}}(o,e):void rr(u,e,{code:"NO_CONNECTION",message:"No connection."});case se:return void i("customer_id",e.payload.id);case pe:return void i("disconnected",{reason:"connection_lost"});case de:return void c.sendLogin(u);case le:if(!En(u.getState()))return;return void i("connection_recovered");case fe:if(!En(u.getState()))return;return void i("connection_unstable");case _e:return o.connect(),void u.dispatch(Je());case he:if(!En(u.getState()))return;return void Pn(u,Xe(He,e.payload)).then(function(e){var t;if(null!=e&&null!=(t=e.groups)&&t.length){var n=$n(e.groups[0].status);i("availability_updated",{availability:n})}}).catch(y);case ye:return void i("identity_changed",e.payload);default:return}}},vr=function(e,t){var n,r=(void 0===t?{}:t).query,o=b(void 0===r?{}:r),a=o?e+"?"+o:e,i=x(),c=hn({min:1e3,max:5e3,jitter:.5}),u=3,s=null,d=function(){u=1,c.reset(),i.emit("connect")},p=function(){f(),h(),i.emit("disconnect")},l=function(e){i.emit("message",e.data)},f=function(){var e;(clearTimeout(n),u=3,s)&&((e=s).removeEventListener("open",d),e.removeEventListener("close",p),e.removeEventListener("message",l),s.close(),s=null)},_=function(){var e;u=0,s=new WebSocket(a),(e=s).addEventListener("open",d),e.addEventListener("close",p),e.addEventListener("message",l)},h=function(e){void 0===e&&(e=c.duration()),f(),0!==e?n=setTimeout(_,e):_()};return{connect:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(){if(3!==u)throw Error("Socket is already open or connecting.");clearTimeout(n),_()}),destroy:function(){i.off(),f()},disconnect:f,reconnect:h,emit:function(e){if(1!==u)throw Error("Socket is not connected.");s.send(e)},getReadyState:function(){return u},on:i.on,off:i.off}},yr=function(e,n){var r,o,a,i,c=void 0===n?{}:n,u=c.query,s=void 0===u?{}:u,d=c.emitter,p=void 0===d?x():d,l=vr(e,{query:s}),f=(o=y,{cancel:function(){clearTimeout(r),o=y},check:function(){var e=vn();return o=e.resolve,r=setTimeout(function(){var t=Error("Timeout.");t.code="TIMEOUT",e.reject(t)},2e3),e.promise},resolve:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(){clearTimeout(r),o()})}),_=function(){return 1===l.getReadyState()},h=function(){f.cancel()};return a=l,i=p,["connect","disconnect"].forEach(function(e){a.on(e,function(t){i.emit(e,t)})}),l.on("disconnect",h),l.on("message",function(e){f.resolve();var t=JSON.parse(e);p.emit("message",t)}),"undefined"!=typeof window&&void 0!==window.addEventListener&&(window.addEventListener("online",function(){_()&&f.check().then(function(){f.cancel(),p.emit("connection_recovered")},function(e){if(f.cancel(),"TIMEOUT"!==e.code)throw e;l.reconnect()})}),window.addEventListener("offline",function(){f.cancel(),_()&&p.emit("connection_unstable")})),t({},l,{destroy:function(){h(),l.destroy()},disconnect:function(){h(),l.disconnect()},reconnect:function(e){h(),l.reconnect(e)},emit:function(e){l.emit(JSON.stringify(e))},on:p.on,off:p.off})},gr=function(e,n){var r=e.getState(),o=(bn(r)+"/rtm/ws").replace(/^https/,"wss");return yr(o,{query:t({organization_id:r.organizationId},Tn(r)),emitter:n})},mr=["group_id"],Ir=["comment_label"],Er=function(e){return{chatId:e.chat_id,properties:e.properties}},Tr=function(e){var n={chatId:e.chat_id,threadId:e.thread_id,transferredTo:t({},e.transferred_to.agent_ids&&{agentIds:e.transferred_to.agent_ids},e.transferred_to.group_ids&&{groupIds:e.transferred_to.group_ids}),queue:e.queue?Qn(e.queue):null};return t({},n,"manual"===e.reason?{reason:e.reason,requesterId:e.requester_id}:{reason:e.reason})},br=function(e){return t({id:e.id},Jn(e))},Or=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},Sr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},Nr=function(e){var t=e.thread_id;return{chatId:e.chat_id,threadId:t,event:Fn(t,e.event)}},Cr=function(e){return{chatId:e.chat_id,userId:e.user_id,seenUpTo:e.seen_up_to}},wr=function(e){return{uniqueId:e.unique_id}},Pr=function(e){var n=e.chat;return{chat:t({},Bn(n),{thread:Yn(n.id,n.thread)})}},Rr=function(e){return{chatId:e.chat_id,event:Fn(e.thread_id,e.event)}},Ar=function(e){return Hn(e)},kr=function(e){return{userId:e.user_id,chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,postback:e.postback}},Dr=function(e){var t=e.typing_indicator;return{chatId:e.chat_id,typingIndicator:{authorId:t.author_id,isTyping:t.is_typing}}},xr=function(e){var n=e.custom_id,r=e.title,o=e.description;return t({chatId:e.chat_id,threadId:e.thread_id,authorId:e.author_id,sentAt:e.sent_at},n&&{customId:n},r&&{title:r},o&&{description:o})},Ur=function(e){return{chatId:e.chat_id,threadId:e.thread_id,event:Fn(e.thread_id,e.event)}},jr=function(e){return{id:e.id,event:Fn(null,e.event)}},Lr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,queue:Wn(e.queue)}},Mr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},qr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},Gr=function(e){return{chatId:e.chat_id,user:Zn(e.user),present:e.user.present}},Fr=function(e){return{chatId:e.chat_id,userId:e.user_id,reason:e.reason}},Hr=function(e){return e.map(function(e){switch(e.type){case"group_chooser":return t({},e,{options:e.options.map(function(e){var r=e.group_id;return t({},n(e,mr),{groupId:r})})});case"rating":var r=e.comment_label;return t({},n(e,Ir),{commentLabel:r});default:return e}})},zr=function(e){var n,r;return{id:e.id,fields:!("id"in e.fields[0])?(n=e.fields,r=n.map(function(e,n){return t({},e,{id:n+""})}),Hr(r)):Hr(e.fields)}},Vr=function(e){return e.enabled?t({},e,{form:zr(e.form)}):e},Yr=function(e){var t={url:e.url};return e.title&&(t.title=e.title),e.description&&(t.description=e.description),e.image_url&&(t.imageUrl="https://"+e.image_url.replace(N,""),e.image_width&&e.image_height&&(t.imageWidth=e.image_width,t.imageHeight=e.image_height)),t},Br=function(e){var t=e.predicted_agent;return{id:e.id,predictedAgent:{id:t.id,type:t.type,name:t.name,avatar:t.avatar,jobTitle:t.job_title,isBot:t.is_bot,botType:t.bot_type},queue:e.queue}},Jr=function(e){var t,n,r,o,a,i,c=e.chats_summary.map(function(e){var t=e.last_thread_created_at,n=e.last_thread_id,r=e.last_event_per_type,o=e.properties,a=void 0===o?{}:o,i=e.users,c={id:e.id,active:e.active,access:zn(e.access),properties:a,users:i.map(Zn),lastThreadId:n||null,lastThreadCreatedAt:t||null,eventsSeenUpToMap:Vn(i)};if(!r)return c;c.lastEventsPerType=_(function(e){return Fn(e.thread_id,e.event)},r);var u,s=r,d=Object.keys(s).map(function(e){return s[e]}),p=(u=d.sort(function(e,t){return e.thread_id===t.thread_id?T(e.event.created_at,t.event.created_at):T(e.thread_created_at,t.thread_created_at)})).length>0?u[u.length-1]:void 0;return p&&c.lastEventsPerType&&(c.lastEvent=c.lastEventsPerType[p.event.type]),c});return{chatsSummary:(o=function(e){var t,n=e.lastEvent;return-1*(null!=(t=void 0!==n?n.timestamp:e.order)?t:0)},a=c,i="function"==typeof o?o:function(e){return function(e,t){for(var n="string"==typeof e?e.split("."):e,r=0,o=t;o&&n.length>r;)o=o[n[r++]];return o}(o,e)},(l(a)?[].concat(a):g(a)).sort(function(e,t){return i(e)-i(t)})),totalChats:e.total_chats,users:(t=function(e){return e.id},n=p(function(e){return e.users},c),r=[],n.filter(function(e){var n=t(e);return-1===r.indexOf(n)&&(r.push(n),!0)})),previousPageId:e.previous_page_id||null,nextPageId:e.next_page_id||null}},Kr=function(e){return e.groups_status},Xr=function(e,t){return{threads:t.threads.map(function(t){return Yn(e.payload.chat_id,t)}),previousPageId:t.previous_page_id||null,nextPageId:t.next_page_id||null}},Wr=function(e){var n,r,o=e.__priv_dynamic_config,a=e.chats,i=e.greeting;return t({dynamicConfig:o,customer:Xn(e.customer),availability:(n=o,r=n.online_groups_ids,r&&-1!==r.indexOf(n.customer_groups.monitoring.id)?"online":"offline"),chats:a.map(function(t){return{id:t.chat_id,active:"has_active_thread"in t?t.has_active_thread:e.has_active_thread,hasUnreadEvents:t.has_unread_events}})},i&&{greeting:Hn(i)})},Qr=function(e){switch(e.action){case Nt:return{action:e.action,payload:{chatId:e.payload.chat_id}};case Ct:return{action:e.action,payload:(t=e.payload,{chatId:t.chat_id,properties:t.properties})};case wt:return{action:e.action,payload:Er(e.payload)};case Pt:return{action:e.action,payload:Tr(e.payload)};case At:case Rt:return{action:e.action,payload:e.payload};case kt:return{action:e.action,payload:br(e.payload)};case Dt:return{action:e.action,payload:Or(e.payload)};case xt:return{action:e.action,payload:Sr(e.payload)};case Ut:return{action:e.action,payload:Nr(e.payload)};case jt:return{action:e.action,payload:Cr(e.payload)};case Lt:case Mt:return{action:e.action,payload:wr(e.payload)};case qt:return{action:e.action,payload:e.payload};case Gt:return{action:e.action,payload:Pr(e.payload)};case Ft:return{action:e.action,payload:Rr(e.payload)};case Ht:return{action:e.action,payload:Ar(e.payload)};case zt:return{action:e.action,payload:e.payload};case Vt:return{action:e.action,payload:kr(e.payload)};case Yt:return{action:e.action,payload:Dr(e.payload)};case Zt:return{action:e.action,payload:xr(e.payload)};case $t:return{action:e.action,payload:Ur(e.payload)};case Bt:return{action:e.action,payload:jr(e.payload)};case Jt:return{action:e.action,payload:Lr(e.payload)};case Kt:return{action:e.action,payload:Mr(e.payload)};case Xt:return{action:e.action,payload:qr(e.payload)};case Wt:return{action:e.action,payload:Gr(e.payload)};case Qt:return{action:e.action,payload:Fr(e.payload)}}var t},Zr=function(e,n){var r=e.dispatch,o=n.request_id,a=gn((0,e.getState)(),o),i=a.promise,c=a.resolve,u=function(e){var n,r,o=e.request,a=e.response;switch(a.action){case ge:case me:case Ie:case Ee:case Te:return{action:a.action,payload:Rn};case be:return{action:a.action,payload:(r=a.payload,t({},Bn(r),{thread:r.thread?Yn(r.id,r.thread):null}))};case Oe:return{action:a.action,payload:Xn(a.payload)};case Se:return{action:a.action,payload:Vr(a.payload)};case Ne:return{action:a.action,payload:Yr(a.payload)};case Ce:return{action:a.action,payload:Jr(a.payload)};case we:return{action:a.action,payload:Kr(a.payload)};case Pe:return{action:a.action,payload:Xr(o,a.payload)};case Re:return{action:a.action,payload:Wr(a.payload)};case Ae:return{action:a.action,payload:Rn};case ke:return{action:a.action,payload:Br(a.payload)};case Le:case Me:case Ue:case je:case Ge:case Fe:return{action:a.action,payload:Rn};case He:return{action:a.action,payload:t({},Rn,{groups:null==(n=a.payload)?void 0:n.groups})};case ze:case Ve:return{action:a.action,payload:Rn}}}({request:a.request,response:n});r({type:ie,payload:t({id:o,promise:i,resolve:c},u)})},$r=function(e,n){var r=e.dispatch;return n.on("connect",function(){r({type:de})}),n.on("message",function(n){if("response"===n.type){if(!n.success)return void function(e,t){var n,r=e.dispatch,o=t.request_id,a=t.payload,i=gn((0,e.getState)(),o);r({type:ae,payload:{id:o,reject:i.reject,error:(n=a.error,{code:n.type.toUpperCase(),message:n.message})}})}(e,n);switch(n.action){case De:case xe:case qe:return;default:return void Zr(e,n)}}if("request_id"in n)switch(n.action){case Gt:case Ft:return void function(e,n){var r=e.dispatch,o=n.request_id,a=gn((0,e.getState)(),o),i=a.promise,c=a.resolve,u=Qr(n);r({type:re,payload:t({id:o,promise:i,resolve:c},u)})}(e,n)}!function(e,t){var n=Qr(t);n&&e.dispatch({type:ne,payload:n})}(e,n)}),n.on("disconnect",function(){nr(e,Ze),yn(e.getState())===nt&&e.dispatch({type:pe})}),n.on("connection_unstable",function(){r({type:fe})}),n.on("connection_recovered",function(){r({type:le})}),n.off},eo="UPLOAD_FAILED",to=function(e,t,n){var r=void 0===n?{}:n,o=r.headers,a=r.method,i=void 0===a?"POST":a,c=r.onProgress,u=r.withCredentials,s=void 0!==u&&u,d=new XMLHttpRequest;return{promise:new Promise(function(n,r){var a,u;"function"==typeof c&&(d.upload.onprogress=function(e){c(e.loaded/e.total)}),d.onload=function(){var e;try{e=JSON.parse(d.response)}catch(t){e=d.response}if(200>d.status||d.status>=300){var t=Error("Upload failed.");t.code=eo,t.response=e,r(t)}else n(e)},d.onerror=function(){var e=Error("Upload failed.");e.code=eo,r(e)},d.onabort=function(){var e=Error("Upload canceled.");e.code="UPLOAD_CANCELED",r(e)},d.open(i,e),d.withCredentials=s,o&&Object.keys(o).forEach(function(e){return d.setRequestHeader(e,o[e])}),d.send((a=t,u=new FormData,Object.keys(a).forEach(function(e){return u.append(e,a[e])}),u))}),cancel:function(){d.abort()}}},no=1048576,ro=10485760,oo=function(e,t){if(void 0===t&&(t=2),1024>e)return e+" b";var n=e/1024;if(no>e)return n.toFixed(t)+" kb";var r=n/1024;return 1073741824>e?r.toFixed(t)+" MB":(r/1024).toFixed(t)+" GB"},ao=function(e,n){var r,o=e.auth,a=e.store,i=n.file,c=n.onProgress,u=!1;return{promise:new Promise(function(e,n){!function(e){if(e.size>ro)throw an({message:"The file is too big (max size is "+oo(ro)+").",code:"TOO_BIG_FILE"})}(i);var s=a.getState(),d=b(t({organization_id:s.organizationId},Tn(s))),p=bn(s)+"/action/upload_file?"+d,l={file:i};o.getToken().then(function(t){u?n(Error("Upload cancelled.")):(r=to(p,l,{headers:{Authorization:t.tokenType+" "+t.accessToken},onProgress:c})).promise.then(e,function(e){if(e.response){var t=e.response.error;n(an({message:t.message,code:t.type.toUpperCase()}))}else n(e)})})}),cancel:function(){u||(u=!0,r&&r.cancel())}}},io=["on","once","off","getChatHistory","auth"],co="LISTENER_IDENTITY",uo={},so=function(e,t){void 0===t&&(t="");var n=Object.keys(e);return n.map(function(n){var r=e[n];return function(){for(var e,o=arguments.length,a=Array(o),i=0;o>i;i++)a[i]=arguments[i];(e=console).info.apply(e,[t+"."+n+"() ===>"].concat(a));var c=r.apply(void 0,a);return"function"==typeof(null==c?void 0:c.then)?c.then(function(e){return console.info(t+"."+n+"() <===",e),e},function(e){throw console.error(t+"."+n+"() <===",e),e}):c}}).reduce(function(e,t,r){return e[n[r]]=t,e},{})},po=function(e,t,n){if(void 0===n[co]&&Object.defineProperty(n,co,{value:{}}),n[co][t])return uo[n[co][t]];var r=function(r){console.info("."+e+'("'+t+'") <===',r),n(r)},o=v(uo);return n[co][t]=o,uo[o]=r,r},lo=["autoConnect","customerDataProvider","identityProvider","parentStorage","env"];e.connectionStatuses=ct,e.debug=function(e){var r=e;console.warn("You probably do not want to use debug(customerSDK) in your production environment.");var o=r.on,a=r.once,i=r.off,c=r.getChatHistory,u=r.auth,s=n(r,io),d=so(s);return Object.freeze(t({auth:Object.freeze(so(u,".auth"))},d,{getChatHistory:function(){for(var e,t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];(e=console).info.apply(e,[".getChatHistory()"].concat(n));var o=c.apply(void 0,n),a="history.next()";return{next:function(){var e;return(e=console).info.apply(e,[a+" ===>"].concat(n)),o.next().then(function(e){var t;return(t=console).info.apply(t,[a+" <==="].concat(n,[e])),e},function(e){var t;throw(t=console).error.apply(t,[a+" <==="].concat(n,[e])),e})}}},off:function(e,t){console.info('.off("'+e+'", '+(t.name||"anonymous")+")");var n=t;void 0!==t[co]&&(n=uo[t[co][e]]);i(e,n)},on:function(e,t){o(e,po("on",e,t))},once:function(e,t){a(e,po("once",e,t))}}))},e.eventTypes=H,e.init=function(e){A(e);var r=e.autoConnect,o=void 0===r||r,a=e.customerDataProvider,i=e.identityProvider,c=e.parentStorage,u=e.env,s=n(e,lo),d=u&&["labs","staging"].includes(u)?u:"production",p=Cn(t({},s,{env:d})),l=x(),f=function(e){var n=x(),r=gr(e,n);return t({},Object.keys(r).reduce(function(e,t){return e[t]=function(){var e;return(e=r)[t].apply(e,arguments)},e},{}),{reinitialize:function(){r.disconnect(),(r=gr(e,n)).connect()}})}(p),_="function"==typeof i,h=_?i():k(t({},s,{env:d}),c);p.addSideEffectsHandler(hr({emitter:l,socket:f,auth:h,customerDataProvider:a,parentStorage:c,hasCustomIdentityProvider:_})),$r(p,f);var v=Pn.bind(null,p),g=function(){p.dispatch({type:_e})},m=Object.freeze({acceptGreeting:function(e){return v(Xe(ge,{greeting_id:e.greetingId,unique_id:e.uniqueId}))},auth:h,cancelGreeting:function(e){return v(Xe(me,{unique_id:e.uniqueId}))},cancelRate:function(e){var t=e.chatId,n=e.properties,r=void 0===n?["score"]:n;return m.listThreads({chatId:t}).then(function(e){var n=e.threads;if(!n.length)throw an({message:'There is no thread in "'+t+'".',code:et});return m.deleteThreadProperties({chatId:t,threadId:n[0].id,properties:{rating:r}})})},connect:g,deactivateChat:function(e){return v(Xe("deactivate_chat",{id:e.id}))},deleteChatProperties:function(e){return v(Xe(Ie,{id:e.id,properties:e.properties}))},deleteEventProperties:function(e){return v(Xe(Ee,{chat_id:e.chatId,thread_id:e.threadId,event_id:e.eventId,properties:e.properties}))},deleteThreadProperties:function(e){return v(Xe(Te,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},destroy:function(){p.dispatch(Ye("manual"))},disconnect:function(){p.dispatch(Be("manual"))},getChat:function(e){return v(Xe(be,{chat_id:e.chatId,thread_id:e.threadId}))},getChatHistory:function(e){return function(e,t){var n={status:"idle",queuedTasks:[],nextPageId:null},r=function(e){function t(t,n){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(o,a){switch(n.status){case"idle":return n.status="fetching",void e.listThreads(n.nextPageId?{chatId:t,pageId:n.nextPageId}:{chatId:t,minEventsCount:25}).then(function(e){var t=e.threads;n.nextPageId=e.nextPageId,n.nextPageId?(n.status="idle",o({value:{threads:[].concat(t).reverse()},done:!1})):(n.status="done",o({value:{threads:[].concat(t).reverse()},done:!0}));var a=n.queuedTasks.shift();a&&r(a.resolve,a.reject)},function(e){var t=n.queuedTasks;n.status="idle",n.queuedTasks=[],a(e),t.forEach(function(t){return t.reject(e)})});case"fetching":return void n.queuedTasks.push({resolve:o,reject:a});case"done":return void o({value:void 0,done:!0})}});return{next:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(){return new Promise(r)})}}(m,e.chatId)},getCustomer:function(){return v(Xe(Oe,{}))},getForm:function(e){return v(Xe(Se,{group_id:e.groupId,type:e.type}))},getUrlInfo:function(e){return v(Xe(Ne,{url:e.url}))},listChats:function(e){return void 0===e&&(e={}),"limit"in e&&"number"==typeof e.limit&&e.limit>25?Promise.reject(Error("Specified limit is too high (max 25).")):v(Xe(Ce,void 0===e.pageId?{limit:e.limit||10}:{page_id:e.pageId}))},listGroupStatuses:function(e){var t=(void 0===e?{}:e).groupIds;return v(Xe(we,t?{group_ids:t}:{all:!0}))},listThreads:function(e){return v(Xe(Pe,void 0===e.pageId?{chat_id:e.chatId,sort_order:e.sortOrder,limit:e.limit,min_events_count:e.minEventsCount}:{chat_id:e.chatId,page_id:e.pageId}))},markEventsAsSeen:function(e){return v(Xe(Ae,{chat_id:e.chatId,seen_up_to:e.seenUpTo}))},on:l.on,once:l.once,off:l.off,rateChat:function(e){var t=e.chatId,n=e.rating;return m.listThreads({chatId:t}).then(function(e){var r=e.threads;if(!r.length)throw an({message:'There is no thread in "'+t+'".',code:et});return m.updateThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:n}})})},requestWelcomeMessage:function(e){var t=(void 0===e?{}:e).id;return v(Xe(ke,t?{id:t}:{}))},resumeChat:function(n){return wn({env:d,organizationId:e.organizationId,eventName:"chat_started"}),v(Xe(De,function(e){var n=B(e);return t({},n,{chat:t({},n.chat,{id:e.chat.id})})}(n)))},sendEvent:function(e){return v(function(e){var t=e.attachToLastThread,n={chat_id:e.chatId,event:Y(e.event)};return t&&(n.attach_to_last_thread=!0),Xe(xe,n)}(e))},sendGreetingButtonClicked:function(e){return function(e,n){var r=e.store,o=n.greetingUniqueId,a=n.buttonId;return e.auth.getToken().then(function(e){var n=r.getState(),i=b(t({organization_id:n.organizationId},Tn(n))),c=bn(n)+"/action/"+Ue+"?"+i;return fetch(c,{method:"POST",headers:{"Content-Type":"application/json",Authorization:e.tokenType+" "+e.accessToken},body:JSON.stringify({greeting_unique_id:o,button_id:a}),keepalive:!0}).then(y)})}({auth:h,store:p},e)},sendCustomerActions:function(e){return function(e,n){var r=e.store,o=n.actions;return e.auth.getToken().then(function(e){var n=r.getState(),a=b(t({organization_id:n.organizationId},Tn(n))),i=bn(n)+"/action/send_customer_actions?"+a;return fetch(i,{method:"POST",headers:{"Content-Type":"application/json",Authorization:e.tokenType+" "+e.accessToken},body:JSON.stringify({actions:o}),keepalive:!0}).then(y)})}({auth:h,store:p},e)},sendRichMessagePostback:function(e){return v(Xe(je,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,postback:e.postback}))},setCustomerSessionFields:function(e){return v(Xe(Me,{session_fields:J(e.sessionFields)}))},setSneakPeek:function(e){var t=e.chatId,n=e.sneakPeekText,r=p.getState();In(r,t)&&En(r)&&v(Xe(Le,{chat_id:t,sneak_peek_text:n})).catch(y)},startChat:function(t){return void 0===t&&(t={}),wn({env:d,organizationId:e.organizationId,eventName:"chat_started"}),v(Xe(qe,B(t)))},updateChatProperties:function(e){return v(Xe(Ge,{id:e.id,properties:e.properties}))},updateCustomer:function(e){return v(Xe(Fe,K(e)))},updateCustomerPage:function(e){p.dispatch({type:he,payload:I(["title","url"],e)})},updateEventProperties:function(e){return v(Xe(ze,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,properties:e.properties}))},updateThreadProperties:function(e){return v(Xe(Ve,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},uploadFile:function(e){return ao({auth:h,store:p},e)}});return o?g():p.dispatch({type:W,payload:{sessionFields:"function"==typeof a?a().sessionFields:{}}}),m},e.parseCustomEvent=Ln,e.parseEvent=Fn,e.parseFile=xn,e.parseFilledForm=Un,e.parseForm=zr,e.parseGreeting=Hn,e.parseMessage=jn,e.parseRichMessage=qn,e.parseSystemMessage=Gn,e.serverDisconnectionReasons=It,e.serverErrorCodes=St,e.serverPushActions=en,e.sortOrders=tn,e.userTypes=on,Object.defineProperty(e,"__esModule",{value:!0})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livechat/customer-sdk",
3
- "version": "5.0.0",
3
+ "version": "5.1.0",
4
4
  "description": "SDK for connecting to LiveChat as a customer",
5
5
  "contributors": [
6
6
  "Konrad Kruk <k.kruk@livechatinc.com>",
@@ -36,7 +36,7 @@
36
36
  "unfetch": "^4.2.0"
37
37
  },
38
38
  "devDependencies": {
39
- "@babel/core": "7.28.5",
39
+ "@babel/core": "7.29.6",
40
40
  "@babel/preset-env": "7.28.5",
41
41
  "@babel/preset-typescript": "7.28.5",
42
42
  "@livechat/customer-api-fake": "*",
@@ -402,9 +402,10 @@ export declare const parseResponse: ({ request, response, }: {
402
402
  }>;
403
403
  } | {
404
404
  action: "update_customer_page";
405
- payload: Readonly<{
406
- readonly success: true;
407
- }>;
405
+ payload: {
406
+ groups: never;
407
+ success: true;
408
+ };
408
409
  } | {
409
410
  action: "update_event_properties";
410
411
  payload: Readonly<{