@livechat/customer-sdk 4.0.1 → 4.0.2

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
@@ -89,6 +89,10 @@ Other optional configuration parameters are also available:
89
89
  | redirectUri | string | | Optional; should only be used inside ReactNative, this is the URI which your webview is redirected to after authorization. |
90
90
  | customerDataProvider | () => CustomerData | | Optional; should only be used if you need to send customer data during login. In general, [`updateCustomer()`](#updateCustomer) should be prefered for sending customer data. |
91
91
  | identityProvider | () => CustomerAuth | | Optional; allows for providing own instance of the CustomerAuth object which contains the customer access token handlers. See [Custom Identity Provider](https://developers.livechat.com/docs/extending-chat-widget/custom-identity-provider) for more information. |
92
+ | page | object | | Optional; customer page information. |
93
+ | page.url | string | | Optional; customer page url. |
94
+ | page.title | string | | Optional; customer page title. |
95
+ | referrer | string | | Optional; page referrer |
92
96
 
93
97
  CustomerData:
94
98
 
@@ -2130,7 +2134,13 @@ customerSDK.on('disconnected', ({ reason }) => {
2130
2134
 
2131
2135
  # Changelog
2132
2136
 
2133
- ## [v4.0.0] - 2023-09-19
2137
+ ## [v4.0.2] - 2023-11-02
2138
+
2139
+ ### Added
2140
+
2141
+ - Extend init function types with page and referrer.
2142
+
2143
+ ## [v4.0.1] - 2023-09-19
2134
2144
 
2135
2145
  ### Added
2136
2146
 
@@ -232,7 +232,7 @@ var createInitialState = function createInitialState(initialStateData) {
232
232
  return {
233
233
  application: _extends({}, application, {
234
234
  name: "customer_sdk",
235
- version: "4.0.1"
235
+ version: "4.0.2"
236
236
  }),
237
237
  organizationId: organizationId,
238
238
  env: env,
@@ -2816,6 +2816,7 @@ var makeGraylogRequest = function makeGraylogRequest(url, body) {
2816
2816
  });
2817
2817
  };
2818
2818
 
2819
+ // eslint-disable-next-line local/no-livechat-package-direct-file-import
2819
2820
  /**
2820
2821
  * Logs event to Graylog with provided config data.
2821
2822
  * Logging request is fired only when all of those conditions are true:
@@ -2832,7 +2833,7 @@ var log = function log(_ref) {
2832
2833
  var message = {
2833
2834
  event_name: eventName,
2834
2835
  severity: 'Informational',
2835
- sdkVersion: "4.0.1"
2836
+ sdkVersion: "4.0.2"
2836
2837
  };
2837
2838
  var body = {
2838
2839
  organizationId: organizationId,
@@ -232,7 +232,7 @@ var createInitialState = function createInitialState(initialStateData) {
232
232
  return {
233
233
  application: _extends({}, application, {
234
234
  name: "customer_sdk",
235
- version: "4.0.1"
235
+ version: "4.0.2"
236
236
  }),
237
237
  organizationId: organizationId,
238
238
  env: env,
@@ -2816,6 +2816,7 @@ var makeGraylogRequest = function makeGraylogRequest(url, body) {
2816
2816
  })["catch"](dataUtils.noop);
2817
2817
  };
2818
2818
 
2819
+ // eslint-disable-next-line local/no-livechat-package-direct-file-import
2819
2820
  /**
2820
2821
  * Logs event to Graylog with provided config data.
2821
2822
  * Logging request is fired only when all of those conditions are true:
@@ -2832,7 +2833,7 @@ var log = function log(_ref) {
2832
2833
  var message = {
2833
2834
  event_name: eventName,
2834
2835
  severity: 'Informational',
2835
- sdkVersion: "4.0.1"
2836
+ sdkVersion: "4.0.2"
2836
2837
  };
2837
2838
  var body = {
2838
2839
  organizationId: organizationId,
@@ -217,7 +217,7 @@ var createInitialState = function createInitialState(initialStateData) {
217
217
  return {
218
218
  application: _extends({}, application, {
219
219
  name: "customer_sdk",
220
- version: "4.0.1"
220
+ version: "4.0.2"
221
221
  }),
222
222
  organizationId: organizationId,
223
223
  env: env,
@@ -2801,6 +2801,7 @@ var makeGraylogRequest = function makeGraylogRequest(url, body) {
2801
2801
  });
2802
2802
  };
2803
2803
 
2804
+ // eslint-disable-next-line local/no-livechat-package-direct-file-import
2804
2805
  /**
2805
2806
  * Logs event to Graylog with provided config data.
2806
2807
  * Logging request is fired only when all of those conditions are true:
@@ -2817,7 +2818,7 @@ var log = function log(_ref) {
2817
2818
  var message = {
2818
2819
  event_name: eventName,
2819
2820
  severity: 'Informational',
2820
- sdkVersion: "4.0.1"
2821
+ sdkVersion: "4.0.2"
2821
2822
  };
2822
2823
  var body = {
2823
2824
  organizationId: organizationId,
@@ -1331,7 +1331,7 @@
1331
1331
  return {
1332
1332
  application: _extends({}, application, {
1333
1333
  name: "customer_sdk",
1334
- version: "4.0.1"
1334
+ version: "4.0.2"
1335
1335
  }),
1336
1336
  organizationId: organizationId,
1337
1337
  env: env,
@@ -4206,6 +4206,7 @@
4206
4206
  });
4207
4207
  };
4208
4208
 
4209
+ // eslint-disable-next-line local/no-livechat-package-direct-file-import
4209
4210
  /**
4210
4211
  * Logs event to Graylog with provided config data.
4211
4212
  * Logging request is fired only when all of those conditions are true:
@@ -4222,7 +4223,7 @@
4222
4223
  var message = {
4223
4224
  event_name: eventName,
4224
4225
  severity: 'Informational',
4225
- sdkVersion: "4.0.1"
4226
+ sdkVersion: "4.0.2"
4226
4227
  };
4227
4228
  var body = {
4228
4229
  organizationId: organizationId,
@@ -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)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function n(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;a.length>r;r++)0>t.indexOf(n=a[r])&&(o[n]=e[n]);return o}function r(e){var t=function(e,t){if("object"!=typeof e||null===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)}}}(),c=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?!1:(t.removeItem(o),!0)}catch(e){return!1}}()?window.localStorage:i,u=function(e,t){return new Promise((function(n){return n(c.setItem(e,t))}))},s=function(e){return new Promise((function(t){return t(c.getItem(e))}))},d=function(e){return new Promise((function(t){return t(c.removeItem(e))}))},p={}.hasOwnProperty;function l(e,t){return p.call(t,e)}function f(e,t){var n;return(n=[]).concat.apply(n,t.map(e))}function _(e){return Array.isArray(e)}function h(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 v(e,t){return h(t).reduce((function(n,r){return n[r]=e(t[r]),n}),{})}function y(e){return e}function g(e){var t=Math.random().toString(36).substring(2);return l(t,e)?g(e):t}function m(e,t){return-1!==t.indexOf(e)}function I(){}function E(e){return h(e).map((function(t){return e[t]}))}function T(e,t){return e.reduce((function(e,n){return e[n]=t[n],e}),{})}function O(e,t){return e.reduce((function(e,n){return l(n,t)&&(e[n]=t[n]),e}),{})}function b(e){return h(e).map((function(t){return[t,e[t]]}))}function S(e,t){return e===t?0:t>e?-1:1}var N=function(e){return b(e).map((function(e){return e.map(encodeURIComponent).join("=")})).join("&")},w=/[^:]+:\/\/[^(/|?)\s]+/,C=function(e){return e.replace(/\w/g,"$&[\\r\\n\\t]*")},R=(RegExp("^[\0-]*("+C("javascript")+"|"+C("data")+"):","i"),/^((http(s)?:)?\/\/)/);function P(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 A="https://accounts.livechatinc.com",D=function(e){var t=e.code,n=Error(e.message);return n.code=t,n},k=function(e,t){return P(""+function(e,t){return""+("production"===t?A:A.replace("accounts.","accounts."+t+"."))+function(e){return e.uniqueGroups?"/v2/customer/"+e.organizationId+"/"+e.groupId+"/token":"/v2/customer/token"}(e)}(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(w),(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 D({code:"SSO_IDENTITY_EXCEPTION",message:e.identity_exception});if("oauth_exception"in e)throw D({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},U=function(e){if("string"!=typeof e.organizationId||"string"!=typeof e.clientId)throw Error("You need to pass valid configuration object: { organizationId, clientId }.")},x=function(e,t,n){U(e);var r=e.tokenStoragePrefix||"@@lc_auth_token:",o=""+r+t+(e.uniqueGroups?":"+e.groupId:""),a=""+r+e.organizationId+(e.uniqueGroups?":"+e.groupId:""),i=null,c=null,p=s(o).then((function(e){null!==p&&(p=null,e?u(a,e).then((function(){d(o).then((function(){c=JSON.parse(e)}))})):d(o).then((function(){return s(a).then((function(e){e&&(c=JSON.parse(e))}))})))})),l=function(){return i=k(e,n).then((function(e){return i=null,u(a,JSON.stringify(e)),c=e,e}),(function(e){throw i=null,e}))};return{getFreshToken:l,getToken:function e(){return i||(c&&!function(e){var t=e.creationDate,n=e.expiresIn;return Date.now()>=t+n}(c)?Promise.resolve(c):p?p.then(e):l())},hasToken:function e(){return p?p.then(e):Promise.resolve(!!c)},invalidate:function(){return c=null,p=null,d(a)}}};var j=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,["all"]);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)}))}})},L="change_region",M="check_goals",q="destroy",G="fail_all_requests",H="login_success",F="pause_connection",z="prefetch_token",V="push_received",Y="push_response_received",B="reconnect",J="request_failed",K="response_received",X="send_request",Q="set_chat_active",W="set_self_id",Z="socket_connected",$="socket_disconnected",ee="socket_recovered",te="socket_unstable",ne="start_connection",re="update_customer_page",oe="CONNECTION_LOST",ae="IDENTITY_MISMATCH",ie="MISDIRECTED_CONNECTION",ce="MISSING_CHAT_THREAD",ue="SDK_DESTROYED",se="accept_greeting",de="cancel_greeting",pe="delete_chat_properties",le="delete_event_properties",fe="delete_thread_properties",_e="get_chat",he="get_customer",ve="get_form",ye="get_predicted_agent",ge="get_url_info",me="list_chats",Ie="list_group_statuses",Ee="list_threads",Te="login",Oe="mark_events_as_seen",be="resume_chat",Se="send_event",Ne="send_rich_message_postback",we="send_sneak_peek",Ce="set_customer_session_fields",Re="start_chat",Pe="update_chat_properties",Ae="update_customer",De="update_customer_page",ke="update_event_properties",Ue="update_thread_properties";var xe=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")()),je=function(){return Math.random().toString(36).substring(7).split("").join(".")},Le={INIT:"@@redux/INIT"+je(),REPLACE:"@@redux/REPLACE"+je(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+je()}};function Me(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}function qe(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(qe)(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(!Me(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}function f(e){if("function"!=typeof e)throw Error("Expected the nextReducer to be a function.");o=e,l({type:Le.REPLACE})}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)}}})[xe]=function(){return this},e}return l({type:Le.INIT}),(r={dispatch:l,subscribe:p,getState:d,replaceReducer:f})[xe]=_,r}function Ge(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function He(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 Fe(e){for(var t=1;arguments.length>t;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?He(n,!0).forEach((function(t){Ge(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):He(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ze(){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 Ve(){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 Fe({},n,{dispatch:r=ze.apply(void 0,a)(n.dispatch)})}}}var Ye=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=0==(1&Math.floor(10*t))?e-r:e+r}return 0|Math.min(e,o)},reset:function(){c=0}}};function Be(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e}var Je="connected",Ke="destroyed",Xe="disconnected",Qe="paused",We="reconnecting",Ze=Object.freeze({__proto__:null,CONNECTED:Je,DESTROYED:Ke,DISCONNECTED:Xe,PAUSED:Qe,RECONNECTING:We}),$e="agent",et="customer",tt=Object.freeze({__proto__:null,AGENT:$e,CUSTOMER:et}),nt=function(e){return e.connection.status},rt=function(e,t){return e.requests[t]},ot=function(e){return e.users.self.id},at=function(e,t){var n=e.chats[t];return!!n&&n.active},it=function(e){return nt(e)===Je},ct=function(e){return function(e){var t=e.region;return"https://api"+(t?"-"+t:"")+function(e){var t=e.env;return"feaf6c0e-9f43-48ff-9ad0-8e24e0350932"===e.organizationId?".staging":"production"===t?"":"."+t}(e)+".livechatinc.com"}(e)+"/v3.5/customer"},ut=function(e,o){return t({},e,{requests:n(e.requests,[o.id].map(r))})},st=function(e,n){return t({},n,{connection:t({},n.connection,{status:e})})},dt=function(e){var n,r,o;return r=e,(n={}).change_region=function(e,n){return t({},e,{region:n.region})},n.destroy=function(e){return st(Ke,e)},n.login_success=function(e){return st(Je,e)},n.pause_connection=function(e){return st(Qe,e)},n.request_failed=ut,n.response_received=ut,n.push_response_received=ut,n.send_request=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.set_chat_active=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.set_self_id=function(e,n){return t({},e,{users:t({},e.users,{self:t({},e.users.self,{id:n.id})})})},n.socket_disconnected=function(e){var n=nt(e);return t({},st(n===Xe?Xe:We,e),{requests:{}})},n.update_customer_page=function(e,n){return t({},e,{page:t({},e.page,n)})},(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),l(t.type,o)?o[t.type](e,t.payload):e}};function pt(e){var n=y,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=qe(dt(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.uniqueGroups,_=void 0!==f&&f,h=e.mobile,v=void 0!==h&&h;return{application:t({},void 0===n?{}:n,{name:"customer_sdk",version:"4.0.1"}),organizationId:r,env:i,groupId:a,chats:{},connection:{status:Xe},page:u,region:d,referrer:l,requests:{},users:{self:{id:null,type:et},others:{}},uniqueGroups:_,mobile:v}}(e)),n(Ve(r)));return o.addSideEffectsHandler=r.add,o}function lt(e){var t=e.code,n=Error(e.message);return n.code=t,n}var ft="access_token_expired",_t="customer_banned",ht="customer_temporarily_blocked",vt="license_expired",yt="license_not_found",gt="misdirected_connection",mt="product_version_changed",It="service_temporarily_unavailable",Et="too_many_connections",Tt="too_many_unauthorized_connections",Ot="unsupported_version",bt="logged_out_remotely",St=Object.freeze({__proto__:null,ACCESS_TOKEN_EXPIRED:ft,CONNECTION_TIMEOUT:"connection_timeout",CUSTOMER_BANNED:_t,CUSTOMER_TEMPORARILY_BLOCKED:ht,INACTIVITY_TIMEOUT:"inactivity_timeout",INTERNAL_ERROR:"internal_error",LICENSE_EXPIRED:vt,LICENSE_NOT_FOUND:yt,MISDIRECTED_CONNECTION:gt,PRODUCT_VERSION_CHANGED:mt,SERVICE_TEMPORARILY_UNAVAILABLE:It,TOO_MANY_CONNECTIONS:Et,TOO_MANY_UNAUTHORIZED_CONNECTIONS:Tt,UNSUPPORTED_VERSION:Ot,LOGGED_OUT_REMOTELY:bt}),Nt="chat_deactivated",wt="chat_properties_deleted",Ct="chat_properties_updated",Rt="chat_transferred",Pt="customer_disconnected",At="customer_page_updated",Dt="customer_side_storage_updated",kt="customer_updated",Ut="event_properties_deleted",xt="event_properties_updated",jt="event_updated",Lt="events_marked_as_seen",Mt="greeting_accepted",qt="greeting_canceled",Gt="groups_status_updated",Ht="incoming_chat",Ft="incoming_event",zt="incoming_greeting",Vt="incoming_multicast",Yt="incoming_rich_message_postback",Bt="incoming_typing_indicator",Jt="queue_position_updated",Kt="thread_properties_deleted",Xt="thread_properties_updated",Qt="user_added_to_chat",Wt="user_removed_from_chat",Zt=Object.freeze({__proto__:null,CHAT_DEACTIVATED:Nt,CHAT_PROPERTIES_DELETED:wt,CHAT_PROPERTIES_UPDATED:Ct,CHAT_TRANSFERRED:Rt,CUSTOMER_DISCONNECTED:Pt,CUSTOMER_PAGE_UPDATED:At,CUSTOMER_SIDE_STORAGE_UPDATED:Dt,CUSTOMER_UPDATED:kt,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:Ht,INCOMING_EVENT:Ft,INCOMING_GREETING:zt,INCOMING_MULTICAST:Vt,INCOMING_RICH_MESSAGE_POSTBACK:Yt,INCOMING_TYPING_INDICATOR:Bt,QUEUE_POSITION_UPDATED:Jt,THREAD_PROPERTIES_DELETED:Kt,THREAD_PROPERTIES_UPDATED:Xt,USER_ADDED_TO_CHAT:Qt,USER_REMOVED_FROM_CHAT:Wt}),$t="file",en="form",tn="filled_form",nn="message",rn="rich_message",on="system_message",an="custom",cn=Object.freeze({__proto__:null,FILE:$t,FORM:en,FILLED_FORM:tn,MESSAGE:nn,RICH_MESSAGE:rn,SYSTEM_MESSAGE:on,CUSTOM:an}),un=function(e){var t,n={};return"string"==typeof e.customId&&(n.custom_id=e.customId),"object"!=typeof(t=e.properties)||null===t||_(t)||(n.properties=e.properties),n},sn=function(e){switch(e.type){case nn:var r=t({},un(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 $t:return t({},un(e),{type:e.type,url:e.url,alternative_text:e.alternativeText});case tn:return t({},un(e),{type:e.type,form_id:e.formId,fields:e.fields.map((function(e){switch(e.type){case"group_chooser":if(!e.answer)return e;var r=e.answer,o=r.groupId;return t({},e,{answer:t({},n(r,["groupId"]),{group_id:o})});default:return e}}))});case on:var o=t({},un(e),{type:e.type,text:e.text,system_message_type:e.systemMessageType});return e.recipients&&(o.recipients=e.recipients),o;case an:var a=t({},un(e),{type:e.type});return e.content&&(a.content=e.content),a}},dn=function(e){var t=e.active,n=e.chat,r=e.continuous,o={active:void 0===t||t,chat:{}};if("boolean"==typeof r&&(o.continuous=r),!n)return o;var a=n.access,i=n.thread,c=n.properties;return a&&a.groupIds&&(o.chat.access={group_ids:a.groupIds}),c&&(o.chat.properties=c),i&&(o.chat.thread=function(e){var t={},n=e.events,r=e.properties;return n&&(t.events=n.map(sn)),r&&(t.properties=r),t}(i)),o},pn=function(e){return b(e).map((function(e){var t;return(t={})[e[0]]=e[1],t}))},ln=function(e){var t=O(["avatar","name","email"],e);return e.sessionFields&&(t.session_fields=pn(e.sessionFields)),t},fn=function(e){return{type:q,payload:{reason:e}}},_n=function(e){return{type:F,payload:{reason:e}}},hn=function(e){return void 0===e&&(e=!1),{type:z,payload:{fresh:e}}},vn=function(e){return{type:B,payload:{delay:e}}},yn=function(e,n,r){return{type:X,payload:t({request:{action:e,payload:n}},r&&{source:r})}},gn=function(e,t){return{type:Q,payload:{id:e,active:t}}},mn=function(e){return{type:W,payload:{id:e}}},In=function(e,t){t.payload.id=g(e.getState().requests);var n=Be(),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},En="AUTHENTICATION",Tn="CUSTOMER_BANNED",On="USERS_LIMIT_REACHED",bn="WRONG_PRODUCT_VERSION",Sn=Object.freeze({__proto__:null,AUTHENTICATION:En,AUTHORIZATION:"AUTHORIZATION",CHAT_ALREADY_ACTIVE:"CHAT_ALREADY_ACTIVE",CHAT_LIMIT_REACHED:"CHAT_LIMIT_REACHED",CUSTOMER_BANNED:Tn,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:On,VALIDATION:"VALIDATION",WRONG_PRODUCT_VERSION:bn}),Nn=function(e){var t=e.getState();return"side_storage_"+t.organizationId+(t.uniqueGroups?":"+t.groupId:"")},wn=function(e,t){var n=function(e,t){var n=e.getState();return"side_storage_"+t+(n.uniqueGroups?":"+n.groupId:"")}(e,t),r=Nn(e);return s(n).catch(I).then((function(e){return e?u(r,e).catch(I).then((function(){return d(n).catch(I).then((function(){return JSON.parse(e)})).catch(I)})):s(r).catch(I).then((function(e){return JSON.parse(e||"{}")})).catch(I)})).catch(I)},Cn=function(e,t,n){var r=e.slice(0),o=!1;return function e(a){var i,c=r.shift();(i=function(){return c(a)},new Promise((function(e){e(i())}))).then((function(n){o||(r.length?e(n):t(n))}),(function(e){o||n(e)}))}(),{cancel:function(){o=!0}}},Rn=function(e,t,n){return In(e,yn(t,n,"login"))};function Pn(e,n,r){var o,a,i=null,c={min:300,max:6e4,jitter:.3},u=Ye(c),s=Ye(t({},c,{min:1e3})),d=u,p=function(e){return o.dispatch(fn(e))},l=function(){return o.dispatch(vn(d.duration()))},f=function(){return Promise.all([e.getToken(),wn(o,r)])},_=function(e){var t=e[0],n=e[1],r=ot(o.getState());if(null===r)o.dispatch(mn(t.entityId));else if(r!==t.entityId){var a=Error("Identity has changed.");throw a.code=ae,a}return[t,n]},h=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={token:r.tokenType+" "+r.accessToken,customer:"function"==typeof n?ln(n()):{},customer_side_storage:a,is_mobile:l,application:T(["name","version"],u)};return"number"==typeof s&&(f.group_id=s),u.channelType&&(f.application.channel_type=u.channelType),null!==d&&(i=d,f.customer_page=d),null!==p&&(f.referrer=p),Promise.race([Rn(o,Te,f),(t=15e3,new Promise((function(e){setTimeout(e,t)}))).then((function(){return Promise.reject(lt({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))}))])};return{sendLogin:function(t){var n;o=t,null==(n=a)||n.cancel(),a=Cn([f,_,h],(function(e){var t;a=null,u.reset(),s.reset(),d=u,t=o.getState().page,i!==t&&Rn(o,De,t).catch(I),i=null,o.dispatch({type:H,payload:e})}),(function(t){switch(a=null,t.code){case En:return e.getFreshToken(),void l();case oe:case ie:case ue:return;case"SSO_IDENTITY_EXCEPTION":case"SSO_OAUTH_EXCEPTION":return"server_error"===t.message||"temporarily_unavailable"===t.message?void l():void p(t.message);case On:return void o.dispatch(_n(t.code.toLowerCase()));case ae:case Tn:case bn:return void p(t.code.toLowerCase());case"SERVICE_TEMPORARILY_UNAVAILABLE":return d=s,void l();default:return void l()}}))},cancel:function(){var e;null==(e=a)||e.cancel()}}}var An,Dn=function(e,t){var n=e.dispatch,r=function(e){return e.requests}((0,e.getState)());n({type:G,payload:{rejects:Object.keys(r).map((function(e){return r[e].reject})),reason:t}})},kn=function(e,t,n){var r=t.payload.id;(0,e.dispatch)({type:J,payload:{id:r,reject:(0,e.getState)().requests[r].reject,error:n}})},Un=Object.freeze({success:!0}),xn=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},jn=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},Ln=function(e,n){return void 0!==n.width&&void 0!==n.height?function(e,n){return t({},xn(e,n),{type:$t,contentType:n.content_type,url:n.url,name:n.name,width:n.width,height:n.height,thumbnails:{default:t({url:n.thumbnail_url},jn(300,n)),high:t({url:n.thumbnail2x_url},jn(600,n))}},n.alternative_text&&{alternativeText:n.alternative_text})}(e,n):t({},xn(e,n),{type:$t,contentType:n.content_type,url:n.url,name:n.name})},Mn=function(e,r){return t({},xn(e,r),{type:tn,formId:r.form_id,fields:r.fields.map((function(e){switch(e.type){case"group_chooser":if(!e.answer)return e;var r=e.answer,o=r.group_id;return t({},e,{answer:t({},n(r,["group_id"]),{groupId:o})});default:return e}}))})},qn=function(e,n){return t({},xn(e,n),{type:nn,text:n.text})},Gn=function(e,n){return t({},xn(e,n),{type:an},n.content&&{content:n.content})},Hn=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.buttons&&(n.buttons=e.buttons.map((function(e){switch(e.type){case"message":case"phone":return{type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"};case"cancel":return{type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"};case"url":var t={type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"};return e.target&&(t.target=e.target),t;case"webview":var n={type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"};return"string"==typeof e.webview_height&&(n.webviewHeight=e.webview_height),n;default:return{text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"}}}))),n},Fn=function(e,n){switch(n.template_id){case"cards":case"quick_replies":case"sticker":return t({},xn(e,n),{type:rn,template:n.template_id,elements:n.elements.map(Hn)});default:return null}},zn=function(e,n){var r=t({},xn(e,t({},n,{author_id:"system"})),{type:on,text:n.text,systemMessageType:n.system_message_type});return n.text_vars&&(r.textVars=n.text_vars),r},Vn=function(e,n){switch(n.type){case $t:return Ln(e,n);case en:return function(e,n){return t({},xn(e,n),{authorId:"system",type:en,formId:n.form_id,fields:n.fields})}(e,n);case tn:return Mn(e,n);case nn:return qn(e,n);case rn:return Fn(e,n);case on:return zn(e,n);case an:return Gn(e,n);default:return null}},Yn=function(e){return{id:e.id,addon:e.addon||null,uniqueId:e.unique_id,displayedFirstTime:e.displayed_first_time,accepted:e.accepted||!1,subtype:e.subtype||"greeting",event:Vn(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}}},Bn=function(e){return void 0===e&&(e={}),e.group_ids?{groupIds:e.group_ids}:{}},Jn=function(e){return v((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},Kn=function(e,t){var n=t.properties||{};return{id:t.id,chatId:e,active:t.active,access:Bn(t.access),createdAt:t.created_at,userIds:t.user_ids,events:t.events.map((function(e){return Vn(t.id,e)})).filter(Boolean),properties:n,previousThreadId:t.previous_thread_id||null,nextThreadId:t.next_thread_id||null,queue:t.queue?tr(t.queue):null}},Xn=function(e){return{id:e.id,access:Bn(e.access),users:e.users.map(nr),properties:e.properties||{},eventsSeenUpToMap:Jn(e.users)}},Qn=function(e){var t=O(["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},Wn=function(e){var n=Qn(e);return t({id:e.id,type:et},n,{sessionFields:n.sessionFields||{}})},Zn=function(e){var n=e.statistics;return t({},Wn(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}})},$n=function(e){var t=e.agent;return{agent:{id:t.id,type:$e,name:t.name,avatar:t.avatar,jobTitle:t.job_title,isBot:t.is_bot},queue:e.queue}},er=function(e){return{position:e.position,waitTime:e.wait_time}},tr=function(e){return t({},er(e),{queuedAt:e.queued_at})},nr=function(e){return e.type===et?t({},Wn(r=e),{present:r.present}):{id:(n=e).id,type:$e,name:n.name,avatar:n.avatar,jobTitle:n.job_title,present:n.present};var n,r},rr=((An={}).CONNECTION_LOST="Connection lost.",An.MISDIRECTED_CONNECTION="Connected to wrong region.",An),or=function(e,t){var n=e.getState();switch(t.type){case Y:case V:switch(t.payload.action){case Nt:return void e.dispatch(gn(t.payload.payload.chatId,!1));case Ht:return void e.dispatch(gn(t.payload.payload.chat.id,!0));default:return}case K:switch(t.payload.action){case me:return void t.payload.payload.chatsSummary.filter((function(e){var t=e.active;return at(n,e.id)!==t})).forEach((function(t){e.dispatch(gn(t.id,t.active))}));default:return}}},ar=function(e,t){t.forEach((function(t){if("present"in t){var r=n(t,["present"]);e("user_data",r)}else if(t.type!==et)e("user_data",t);else{var o=n(t,["statistics"]);e("user_data",o)}}))},ir=function(e,t){var n=e.emit,r=e.store,o=t.payload;switch(o.action){case Xt:return o.payload.properties.lc2&&"queue_pos"in o.payload.properties.lc2&&n(Jt,{chatId:o.payload.chatId,threadId:o.payload.threadId,queue:{position:o.payload.properties.lc2.queue_pos,waitTime:o.payload.properties.lc2.queue_waiting_time}}),void n("thread_properties_updated",o.payload);case Dt:return void function(e,t){u(Nn(e),JSON.stringify(t)).catch(I)}(r,o.payload.customer_side_storage);case Pt:switch(o.payload.reason){case ft:r.dispatch(hn(!0)),r.dispatch(vn(100)),n("disconnected",o.payload);break;case _t:case ht:case yt:case mt:case Et:case Ot:case bt:r.dispatch(fn(o.payload.reason));break;case gt:Dn(r,ie),r.dispatch({type:L,payload:o.payload.data});break;case It:case Tt:Dn(r,o.payload.reason.toUpperCase());break;default:r.dispatch(vn(100)),n("disconnected",o.payload)}return;case Gt:return void n("availability_updated",{availability:"offline"===o.payload.groups[0].status?"offline":"online"});case Ht:return ar(n,o.payload.chat.users),void n(o.action,o.payload);case Ft:if(null===o.payload.event)return;return void n(o.action,o.payload);case Bt:return void n(o.action,o.payload);case Qt:return ar(n,[o.payload.user]),void n(o.action,o.payload);default:return void n(o.action,o.payload)}},cr=function(e,t){var n=e.emit,r=t.payload;switch(r.action){case Nt:return void r.resolve(Un);case _e:return ar(n,r.payload.users),void r.resolve(r.payload);case Ht:return ar(n,r.payload.chat.users),void r.resolve(r.payload);case Ft:return void r.resolve(r.payload.event);case me:return ar(n,r.payload.users),void r.resolve(r.payload);default:return void r.resolve(r.payload)}},ur=function(e){var n=e.auth,r=e.emitter,o=e.socket,a=r.emit,i=Pn(n,e.customerDataProvider,e.licenseId);return function(e,c){switch(e.type){case L:return void o.reinitialize();case M:return void function(e,t,n){return t.getToken().then((function(t){var r=e.getState();null===ot(r)&&e.dispatch(mn(t.entityId));var o=r.page;if(o&&o.url){var a=N({organization_id:r.organizationId}),i={session_fields:pn(n||{}),group_id:r.groupId||0,page_url:o.url};return P(ct(r)+"/action/check_goals?"+a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:t.tokenType+" "+t.accessToken},body:JSON.stringify(i)}).then((function(){}))}}))}(c,n,e.payload.sessionFields).catch(I);case q:var u=e.payload;switch(i.cancel(),o.destroy(),u.reason){case"manual":Dn(c,ue);break;case _t:case vt:case mt:case bt:Dn(c,oe),a("disconnected",u);break;default:a("disconnected",u)}return void r.off();case G:var s=e.payload,d=s.reason,p={message:rr[d],code:d};return void s.rejects.forEach((function(e){e(lt(p))}));case H:var l=e.payload,f=l.dynamicConfig,_=l.chats,h=l.greeting,v=t({customer:l.customer,availability:l.availability},h&&{greeting:h});return Object.defineProperty(v,"__unsafeDynamicConfig",{value:f}),Object.defineProperty(v,"__unsafeChats",{value:_}),void a("connected",v);case F:var y=e.payload;return o.disconnect(),void("manual"!==y.reason&&a("disconnected",y));case z:return e.payload.fresh?void n.getFreshToken().catch(I):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(I);case V:return e.payload.action===Pt||or(c,e),void ir({emit:a,store:c},e);case Y:return or(c,e),void cr({emit:a},e);case B:return Dn(c,oe),void o.reconnect(e.payload.delay);case J:var g=e.payload;return void(0,g.reject)(lt(g.error));case K:return or(c,e),void cr({emit:a},e);case X:var T=c.getState();return function(e){return nt(e)===Ke}(T)?void kn(c,e,{code:ue,message:"SDK destroyed."}):it(T)||"login"===e.payload.source?void function(e,n){var r=n.payload,o=t({request_id:r.id},r.request);switch(o.action){case Te:var a=[];return void e.emit(t({},o,{version:"3.5",payload:t({},o.payload,{pushes:{3.5:E(Zt).filter((function(e){return e!==Pt&&!m(e,a)}))}})}));default:e.emit(o)}}(o,e):void kn(c,e,{code:"NO_CONNECTION",message:"No connection."});case W:return void a("customer_id",e.payload.id);case $:return void a("disconnected",{reason:"connection_lost"});case Z:return void i.sendLogin(c);case ee:if(!it(c.getState()))return;return void a("connection_recovered");case te:if(!it(c.getState()))return;return void a("connection_unstable");case ne:return o.connect(),void c.dispatch(hn());case re:if(!it(c.getState()))return;return void In(c,yn(De,e.payload)).catch(I);default:return}}},sr=function(e,t){var n,r=(void 0===t?{}:t).query,o=N(void 0===r?{}:r),a=o?e+"?"+o:e,i=j(),c=Ye({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}},dr=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?j():d,l=sr(e,{query:s}),f=(o=I,{cancel:function(){clearTimeout(r),o=I},check:function(){var e=Be();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})},pr=function(e,t){var n=e.getState(),r=(ct(n)+"/rtm/ws").replace(/^https/,"wss");return dr(r,{query:{organization_id:n.organizationId},emitter:t})},lr=function(e){return{chatId:e.chat_id,properties:e.properties}},fr=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?tr(e.queue):null};return t({},n,"manual"===e.reason?{reason:e.reason,requesterId:e.requester_id}:{reason:e.reason})},_r=function(e){return{url:e.url,title:e.title,openedAt:e.opened_at}},hr=function(e){return t({id:e.id},Qn(e))},vr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},yr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},gr=function(e){var t=e.thread_id;return{chatId:e.chat_id,threadId:t,event:Vn(t,e.event)}},mr=function(e){return{chatId:e.chat_id,userId:e.user_id,seenUpTo:e.seen_up_to}},Ir=function(e){return{uniqueId:e.unique_id}},Er=function(e){var n=e.chat;return{chat:t({},Xn(n),{thread:Kn(n.id,n.thread)})}},Tr=function(e){return{chatId:e.chat_id,event:Vn(e.thread_id,e.event)}},Or=function(e){return Yn(e)},br=function(e){return{userId:e.user_id,chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,postback:e.postback}},Sr=function(e){var t=e.typing_indicator;return{chatId:e.chat_id,typingIndicator:{authorId:t.author_id,isTyping:t.is_typing}}},Nr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,queue:er(e.queue)}},wr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},Cr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},Rr=function(e){return{chatId:e.chat_id,user:nr(e.user),present:e.user.present}},Pr=function(e){return{chatId:e.chat_id,userId:e.user_id}},Ar=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,["group_id"]),{groupId:r})}))});case"rating":var r=e.comment_label;return t({},n(e,["comment_label"]),{commentLabel:r});default:return e}}))},Dr=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+""})})),Ar(r)):Ar(e.fields)}},kr=function(e){return e.enabled?t({},e,{form:Dr(e.form)}):e},Ur=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(R,""),e.image_width&&e.image_height&&(t.imageWidth=e.image_width,t.imageHeight=e.image_height)),t},xr=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:Bn(e.access),properties:a,users:i.map(nr),lastThreadId:n||null,lastThreadCreatedAt:t||null,eventsSeenUpToMap:Jn(i)};if(!r)return c;c.lastEventsPerType=v((function(e){return Vn(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?S(e.event.created_at,t.event.created_at):S(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)},(_(a)?[].concat(a):E(a)).sort((function(e,t){return i(e)-i(t)}))),totalChats:e.total_chats,users:(t=function(e){return e.id},n=f((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},Lr=function(e,t){return{threads:t.threads.map((function(t){return Kn(e.payload.chat_id,t)})),previousPageId:t.previous_page_id||null,nextPageId:t.next_page_id||null}},Mr=function(e){var n,r,o=e.__priv_dynamic_config,a=e.chats,i=e.greeting;return t({dynamicConfig:o,customer:Zn(e.customer),availability:(n=o,r=n.online_groups_ids,r&&m(n.customer_groups.monitoring.id,r)?"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:Yn(i)})},qr=function(e){switch(e.action){case Nt:return{action:e.action,payload:{chatId:e.payload.chat_id}};case wt:return{action:e.action,payload:(t=e.payload,{chatId:t.chat_id,properties:t.properties})};case Ct:return{action:e.action,payload:lr(e.payload)};case Rt:return{action:e.action,payload:fr(e.payload)};case Dt:case Pt:return{action:e.action,payload:e.payload};case At:return{action:e.action,payload:_r(e.payload)};case kt:return{action:e.action,payload:hr(e.payload)};case Ut:return{action:e.action,payload:vr(e.payload)};case xt:return{action:e.action,payload:yr(e.payload)};case jt:return{action:e.action,payload:gr(e.payload)};case Lt:return{action:e.action,payload:mr(e.payload)};case Mt:case qt:return{action:e.action,payload:Ir(e.payload)};case Gt:return{action:e.action,payload:e.payload};case Ht:return{action:e.action,payload:Er(e.payload)};case Ft:return{action:e.action,payload:Tr(e.payload)};case zt:return{action:e.action,payload:Or(e.payload)};case Vt:return{action:e.action,payload:e.payload};case Yt:return{action:e.action,payload:br(e.payload)};case Bt:return{action:e.action,payload:Sr(e.payload)};case Jt:return{action:e.action,payload:Nr(e.payload)};case Kt:return{action:e.action,payload:wr(e.payload)};case Xt:return{action:e.action,payload:Cr(e.payload)};case Qt:return{action:e.action,payload:Rr(e.payload)};case Wt:return{action:e.action,payload:Pr(e.payload)}}var t},Gr=function(e,n){var r=e.dispatch,o=n.request_id,a=rt((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 se:case de:case pe:case le:case fe:return{action:o.action,payload:Un};case _e:return{action:o.action,payload:(n=o.payload,t({},Xn(n),{thread:n.thread?Kn(n.id,n.thread):null}))};case he:return{action:o.action,payload:Zn(o.payload)};case ve:return{action:o.action,payload:kr(o.payload)};case ye:return{action:o.action,payload:$n(o.payload)};case ge:return{action:o.action,payload:Ur(o.payload)};case me:return{action:o.action,payload:xr(o.payload)};case Ie:return{action:o.action,payload:jr(o.payload)};case Ee:return{action:o.action,payload:Lr(r,o.payload)};case Te:return{action:o.action,payload:Mr(o.payload)};case Oe:case we:case Ce:case Ne:case Pe:case Ae:case De:case ke:case Ue:return{action:o.action,payload:Un}}}({request:a.request,response:n});r({type:K,payload:t({id:o,promise:i,resolve:c},u)})},Hr=function(e,n){var r=e.dispatch;return n.on("connect",(function(){r({type:Z})})),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=rt((0,e.getState)(),o);r({type:J,payload:{id:o,reject:i.reject,error:(n=a.error,{code:n.type.toUpperCase(),message:n.message})}})}(e,n);switch(n.action){case be:case Se:case Re:return;default:return void Gr(e,n)}}if("request_id"in n)switch(n.action){case Ht:case Ft:return void function(e,n){var r=e.dispatch,o=n.request_id,a=rt((0,e.getState)(),o),i=a.promise,c=a.resolve,u=qr(n);r({type:Y,payload:t({id:o,promise:i,resolve:c},u)})}(e,n)}!function(e,t){var n=qr(t);n&&e.dispatch({type:V,payload:n})}(e,n)})),n.on("disconnect",(function(){Dn(e,oe),nt(e.getState())===Je&&e.dispatch({type:$})})),n.on("connection_unstable",(function(){r({type:te})})),n.on("connection_recovered",(function(){r({type:ee})})),n.off},Fr="UPLOAD_FAILED",zr=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=Fr,t.response=e,r(t)}else n(e)},d.onerror=function(){var e=Error("Upload failed.");e.code=Fr,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()}}},Vr=1048576,Yr=10485760,Br=function(e,t){if(void 0===t&&(t=2),1024>e)return e+" b";var n=e/1024;if(Vr>e)return n.toFixed(t)+" kb";var r=n/1024;return 1073741824>e?r.toFixed(t)+" MB":(r/1024).toFixed(t)+" GB"},Jr=function(e,t){var n,r=e.auth,o=e.store,a=t.file,i=t.onProgress,c=!1;return{promise:new Promise((function(e,t){!function(e){if(e.size>Yr)throw lt({message:"The file is too big (max size is "+Br(Yr)+").",code:"TOO_BIG_FILE"})}(a);var u=o.getState(),s=N({organization_id:u.organizationId}),d=ct(u)+"/action/upload_file?"+s,p={file:a};r.getToken().then((function(r){c?t(Error("Upload cancelled.")):(n=zr(d,p,{headers:{Authorization:r.tokenType+" "+r.accessToken},onProgress:i})).promise.then(e,(function(e){if(e.response){var n=e.response.error;t(lt({message:n.message,code:n.type.toUpperCase()}))}else t(e)}))}))})),cancel:function(){c||(c=!0,n&&n.cancel())}}},Kr=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:"4.0.1"})};return function(e,t){return new Promise((function(n){var r=new Image;r.src=e+"?"+t,r.onerror=I,r.onload=function(){return n()}}))}("https://queue.livechatinc.com/logs",N(r))},Xr="LISTENER_IDENTITY",Qr={},Wr=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}),{})},Zr=function(e,t,n){if(void 0===n.LISTENER_IDENTITY&&Object.defineProperty(n,Xr,{value:{}}),n.LISTENER_IDENTITY[t])return Qr[n.LISTENER_IDENTITY[t]];var r=function(r){console.info("."+e+'("'+t+'") <===',r),n(r)},o=g(Qr);return n.LISTENER_IDENTITY[t]=o,Qr[o]=r,r},$r=Object.freeze({__proto__:null,ASC:"asc",DESC:"desc"});e.connectionStatuses=Ze,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,["on","once","off","getChatHistory","auth"]),d=Wr(s);return Object.freeze(t({auth:Object.freeze(Wr(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.LISTENER_IDENTITY&&(n=Qr[t.LISTENER_IDENTITY[e]]);i(e,n)},on:function(e,t){o(e,Zr("on",e,t))},once:function(e,t){a(e,Zr("once",e,t))}}))},e.eventTypes=cn,e.init=function(e,r,o){void 0===r&&(r="production"),U(e);var a=e.autoConnect,i=void 0===a||a,c=e.customerDataProvider,u=e.identityProvider,s=n(e,["autoConnect","customerDataProvider","identityProvider"]),d=pt(t({},s,{env:r})),p=j(),l=function(e){var n=j(),r=pr(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=pr(e,n)).connect()}})}(d),f="function"==typeof u?u():x(s,o,r);d.addSideEffectsHandler(ur({emitter:p,socket:l,auth:f,customerDataProvider:c,licenseId:o})),Hr(d,l);var _=In.bind(null,d),h=function(){d.dispatch({type:ne})},v=Object.freeze({acceptGreeting:function(e){return _(yn(se,{greeting_id:e.greetingId,unique_id:e.uniqueId}))},auth:f,cancelGreeting:function(e){return _(yn(de,{unique_id:e.uniqueId}))},cancelRate:function(e){var t=e.chatId,n=e.properties,r=void 0===n?["score"]:n;return v.listThreads({chatId:t}).then((function(e){var n=e.threads;if(!n.length)throw lt({message:'There is no thread in "'+t+'".',code:ce});return v.deleteThreadProperties({chatId:t,threadId:n[0].id,properties:{rating:r}})}))},connect:h,deactivateChat:function(e){return _(yn("deactivate_chat",{id:e.id}))},deleteChatProperties:function(e){return _(yn(pe,{id:e.id,properties:e.properties}))},deleteEventProperties:function(e){return _(yn(le,{chat_id:e.chatId,thread_id:e.threadId,event_id:e.eventId,properties:e.properties}))},deleteThreadProperties:function(e){return _(yn(fe,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},destroy:function(){d.dispatch(fn("manual"))},disconnect:function(){d.dispatch(_n("manual"))},getChat:function(e){return _(yn(_e,{chat_id:e.chatId,thread_id:e.threadId}))},getChatHistory:function(e){return function(e,t){var n={status:"idle",queuedTasks:[],nextPageId:null},r=function r(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)}))}}(v,e.chatId)},getCustomer:function(){return _(yn(he,{}))},getForm:function(e){return _(yn(ve,{group_id:e.groupId,type:e.type}))},getPredictedAgent:function(e){void 0===e&&(e={});var t=e.groupId;return _(yn(ye,"number"==typeof t?{group_id:t}:{}))},getUrlInfo:function(e){return _(yn(ge,{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).")):_(yn(me,void 0===e.pageId?{limit:e.limit||10}:{page_id:e.pageId}))},listGroupStatuses:function(e){var t=(void 0===e?{}:e).groupIds;return _(yn(Ie,t?{group_ids:t}:{all:!0}))},listThreads:function(e){return _(yn(Ee,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 _(yn(Oe,{chat_id:e.chatId,seen_up_to:e.seenUpTo}))},on:p.on,once:p.once,off:p.off,rateChat:function(e){var t=e.chatId,n=e.rating;return v.listThreads({chatId:t}).then((function(e){var r=e.threads;if(!r.length)throw lt({message:'There is no thread in "'+t+'".',code:ce});return v.updateThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:n}})}))},resumeChat:function(n){return Kr({env:r,organizationId:e.organizationId,eventName:"chat_started"}),_(yn(be,function(e){var n=dn(e);return t({},n,{chat:t({},n.chat,{id:e.chat.id})})}(n)))},sendEvent:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(e){return _(function(e){var t=e.attachToLastThread,n={chat_id:e.chatId,event:sn(e.event)};return t&&(n.attach_to_last_thread=!0),yn(Se,n)}(e))})),sendRichMessagePostback:function(e){return _(yn(Ne,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,postback:e.postback}))},setCustomerSessionFields:function(e){return _(yn(Ce,{session_fields:pn(e.sessionFields)}))},setSneakPeek:function(e){var t=e.chatId,n=e.sneakPeekText,r=d.getState();at(r,t)&&it(r)&&_(yn(we,{chat_id:t,sneak_peek_text:n})).catch(I)},startChat:function(t){return void 0===t&&(t={}),Kr({env:r,organizationId:e.organizationId,eventName:"chat_started"}),_(yn(Re,dn(t)))},updateChatProperties:function(e){return _(yn(Pe,{id:e.id,properties:e.properties}))},updateCustomer:function(e){return _(yn(Ae,ln(e)))},updateCustomerPage:function(e){d.dispatch({type:re,payload:O(["title","url"],e)})},updateEventProperties:function(e){return _(yn(ke,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,properties:e.properties}))},updateThreadProperties:function(e){return _(yn(Ue,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},uploadFile:function(e){return Jr({auth:f,store:d},e)}});return i?h():d.dispatch({type:M,payload:{sessionFields:"function"==typeof c?c().sessionFields:{}}}),v},e.parseCustomEvent=Gn,e.parseEvent=Vn,e.parseFile=Ln,e.parseFilledForm=Mn,e.parseForm=Dr,e.parseGreeting=Yn,e.parseMessage=qn,e.parseRichMessage=Fn,e.parseSystemMessage=zn,e.serverDisconnectionReasons=St,e.serverErrorCodes=Sn,e.serverPushActions=Zt,e.sortOrders=$r,e.userTypes=tt,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)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function n(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;a.length>r;r++)0>t.indexOf(n=a[r])&&(o[n]=e[n]);return o}function r(e){var t=function(e,t){if("object"!=typeof e||null===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)}}}(),c=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?!1:(t.removeItem(o),!0)}catch(e){return!1}}()?window.localStorage:i,u=function(e,t){return new Promise((function(n){return n(c.setItem(e,t))}))},s=function(e){return new Promise((function(t){return t(c.getItem(e))}))},d=function(e){return new Promise((function(t){return t(c.removeItem(e))}))},p={}.hasOwnProperty;function l(e,t){return p.call(t,e)}function f(e,t){var n;return(n=[]).concat.apply(n,t.map(e))}function _(e){return Array.isArray(e)}function h(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 v(e,t){return h(t).reduce((function(n,r){return n[r]=e(t[r]),n}),{})}function y(e){return e}function g(e){var t=Math.random().toString(36).substring(2);return l(t,e)?g(e):t}function m(e,t){return-1!==t.indexOf(e)}function I(){}function E(e){return h(e).map((function(t){return e[t]}))}function T(e,t){return e.reduce((function(e,n){return e[n]=t[n],e}),{})}function O(e,t){return e.reduce((function(e,n){return l(n,t)&&(e[n]=t[n]),e}),{})}function b(e){return h(e).map((function(t){return[t,e[t]]}))}function S(e,t){return e===t?0:t>e?-1:1}var N=function(e){return b(e).map((function(e){return e.map(encodeURIComponent).join("=")})).join("&")},w=/[^:]+:\/\/[^(/|?)\s]+/,C=function(e){return e.replace(/\w/g,"$&[\\r\\n\\t]*")},R=(RegExp("^[\0-]*("+C("javascript")+"|"+C("data")+"):","i"),/^((http(s)?:)?\/\/)/);function P(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 A="https://accounts.livechatinc.com",D=function(e){var t=e.code,n=Error(e.message);return n.code=t,n},k=function(e,t){return P(""+function(e,t){return""+("production"===t?A:A.replace("accounts.","accounts."+t+"."))+function(e){return e.uniqueGroups?"/v2/customer/"+e.organizationId+"/"+e.groupId+"/token":"/v2/customer/token"}(e)}(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(w),(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 D({code:"SSO_IDENTITY_EXCEPTION",message:e.identity_exception});if("oauth_exception"in e)throw D({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},U=function(e){if("string"!=typeof e.organizationId||"string"!=typeof e.clientId)throw Error("You need to pass valid configuration object: { organizationId, clientId }.")},x=function(e,t,n){U(e);var r=e.tokenStoragePrefix||"@@lc_auth_token:",o=""+r+t+(e.uniqueGroups?":"+e.groupId:""),a=""+r+e.organizationId+(e.uniqueGroups?":"+e.groupId:""),i=null,c=null,p=s(o).then((function(e){null!==p&&(p=null,e?u(a,e).then((function(){d(o).then((function(){c=JSON.parse(e)}))})):d(o).then((function(){return s(a).then((function(e){e&&(c=JSON.parse(e))}))})))})),l=function(){return i=k(e,n).then((function(e){return i=null,u(a,JSON.stringify(e)),c=e,e}),(function(e){throw i=null,e}))};return{getFreshToken:l,getToken:function e(){return i||(c&&!function(e){var t=e.creationDate,n=e.expiresIn;return Date.now()>=t+n}(c)?Promise.resolve(c):p?p.then(e):l())},hasToken:function e(){return p?p.then(e):Promise.resolve(!!c)},invalidate:function(){return c=null,p=null,d(a)}}};var j=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,["all"]);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)}))}})},L="change_region",M="check_goals",q="destroy",G="fail_all_requests",H="login_success",F="pause_connection",z="prefetch_token",V="push_received",Y="push_response_received",B="reconnect",J="request_failed",K="response_received",X="send_request",Q="set_chat_active",W="set_self_id",Z="socket_connected",$="socket_disconnected",ee="socket_recovered",te="socket_unstable",ne="start_connection",re="update_customer_page",oe="CONNECTION_LOST",ae="IDENTITY_MISMATCH",ie="MISDIRECTED_CONNECTION",ce="MISSING_CHAT_THREAD",ue="SDK_DESTROYED",se="accept_greeting",de="cancel_greeting",pe="delete_chat_properties",le="delete_event_properties",fe="delete_thread_properties",_e="get_chat",he="get_customer",ve="get_form",ye="get_predicted_agent",ge="get_url_info",me="list_chats",Ie="list_group_statuses",Ee="list_threads",Te="login",Oe="mark_events_as_seen",be="resume_chat",Se="send_event",Ne="send_rich_message_postback",we="send_sneak_peek",Ce="set_customer_session_fields",Re="start_chat",Pe="update_chat_properties",Ae="update_customer",De="update_customer_page",ke="update_event_properties",Ue="update_thread_properties";var xe=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")()),je=function(){return Math.random().toString(36).substring(7).split("").join(".")},Le={INIT:"@@redux/INIT"+je(),REPLACE:"@@redux/REPLACE"+je(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+je()}};function Me(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}function qe(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(qe)(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(!Me(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}function f(e){if("function"!=typeof e)throw Error("Expected the nextReducer to be a function.");o=e,l({type:Le.REPLACE})}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)}}})[xe]=function(){return this},e}return l({type:Le.INIT}),(r={dispatch:l,subscribe:p,getState:d,replaceReducer:f})[xe]=_,r}function Ge(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function He(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 Fe(e){for(var t=1;arguments.length>t;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?He(n,!0).forEach((function(t){Ge(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):He(n).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ze(){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 Ve(){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 Fe({},n,{dispatch:r=ze.apply(void 0,a)(n.dispatch)})}}}var Ye=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=0==(1&Math.floor(10*t))?e-r:e+r}return 0|Math.min(e,o)},reset:function(){c=0}}};function Be(){var e={};return e.promise=new Promise((function(t,n){e.resolve=t,e.reject=n})),e}var Je="connected",Ke="destroyed",Xe="disconnected",Qe="paused",We="reconnecting",Ze=Object.freeze({__proto__:null,CONNECTED:Je,DESTROYED:Ke,DISCONNECTED:Xe,PAUSED:Qe,RECONNECTING:We}),$e="agent",et="customer",tt=Object.freeze({__proto__:null,AGENT:$e,CUSTOMER:et}),nt=function(e){return e.connection.status},rt=function(e,t){return e.requests[t]},ot=function(e){return e.users.self.id},at=function(e,t){var n=e.chats[t];return!!n&&n.active},it=function(e){return nt(e)===Je},ct=function(e){return function(e){var t=e.region;return"https://api"+(t?"-"+t:"")+function(e){var t=e.env;return"feaf6c0e-9f43-48ff-9ad0-8e24e0350932"===e.organizationId?".staging":"production"===t?"":"."+t}(e)+".livechatinc.com"}(e)+"/v3.5/customer"},ut=function(e,o){return t({},e,{requests:n(e.requests,[o.id].map(r))})},st=function(e,n){return t({},n,{connection:t({},n.connection,{status:e})})},dt=function(e){var n,r,o;return r=e,(n={}).change_region=function(e,n){return t({},e,{region:n.region})},n.destroy=function(e){return st(Ke,e)},n.login_success=function(e){return st(Je,e)},n.pause_connection=function(e){return st(Qe,e)},n.request_failed=ut,n.response_received=ut,n.push_response_received=ut,n.send_request=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.set_chat_active=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.set_self_id=function(e,n){return t({},e,{users:t({},e.users,{self:t({},e.users.self,{id:n.id})})})},n.socket_disconnected=function(e){var n=nt(e);return t({},st(n===Xe?Xe:We,e),{requests:{}})},n.update_customer_page=function(e,n){return t({},e,{page:t({},e.page,n)})},(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),l(t.type,o)?o[t.type](e,t.payload):e}};function pt(e){var n=y,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=qe(dt(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.uniqueGroups,_=void 0!==f&&f,h=e.mobile,v=void 0!==h&&h;return{application:t({},void 0===n?{}:n,{name:"customer_sdk",version:"4.0.2"}),organizationId:r,env:i,groupId:a,chats:{},connection:{status:Xe},page:u,region:d,referrer:l,requests:{},users:{self:{id:null,type:et},others:{}},uniqueGroups:_,mobile:v}}(e)),n(Ve(r)));return o.addSideEffectsHandler=r.add,o}function lt(e){var t=e.code,n=Error(e.message);return n.code=t,n}var ft="access_token_expired",_t="customer_banned",ht="customer_temporarily_blocked",vt="license_expired",yt="license_not_found",gt="misdirected_connection",mt="product_version_changed",It="service_temporarily_unavailable",Et="too_many_connections",Tt="too_many_unauthorized_connections",Ot="unsupported_version",bt="logged_out_remotely",St=Object.freeze({__proto__:null,ACCESS_TOKEN_EXPIRED:ft,CONNECTION_TIMEOUT:"connection_timeout",CUSTOMER_BANNED:_t,CUSTOMER_TEMPORARILY_BLOCKED:ht,INACTIVITY_TIMEOUT:"inactivity_timeout",INTERNAL_ERROR:"internal_error",LICENSE_EXPIRED:vt,LICENSE_NOT_FOUND:yt,MISDIRECTED_CONNECTION:gt,PRODUCT_VERSION_CHANGED:mt,SERVICE_TEMPORARILY_UNAVAILABLE:It,TOO_MANY_CONNECTIONS:Et,TOO_MANY_UNAUTHORIZED_CONNECTIONS:Tt,UNSUPPORTED_VERSION:Ot,LOGGED_OUT_REMOTELY:bt}),Nt="chat_deactivated",wt="chat_properties_deleted",Ct="chat_properties_updated",Rt="chat_transferred",Pt="customer_disconnected",At="customer_page_updated",Dt="customer_side_storage_updated",kt="customer_updated",Ut="event_properties_deleted",xt="event_properties_updated",jt="event_updated",Lt="events_marked_as_seen",Mt="greeting_accepted",qt="greeting_canceled",Gt="groups_status_updated",Ht="incoming_chat",Ft="incoming_event",zt="incoming_greeting",Vt="incoming_multicast",Yt="incoming_rich_message_postback",Bt="incoming_typing_indicator",Jt="queue_position_updated",Kt="thread_properties_deleted",Xt="thread_properties_updated",Qt="user_added_to_chat",Wt="user_removed_from_chat",Zt=Object.freeze({__proto__:null,CHAT_DEACTIVATED:Nt,CHAT_PROPERTIES_DELETED:wt,CHAT_PROPERTIES_UPDATED:Ct,CHAT_TRANSFERRED:Rt,CUSTOMER_DISCONNECTED:Pt,CUSTOMER_PAGE_UPDATED:At,CUSTOMER_SIDE_STORAGE_UPDATED:Dt,CUSTOMER_UPDATED:kt,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:Ht,INCOMING_EVENT:Ft,INCOMING_GREETING:zt,INCOMING_MULTICAST:Vt,INCOMING_RICH_MESSAGE_POSTBACK:Yt,INCOMING_TYPING_INDICATOR:Bt,QUEUE_POSITION_UPDATED:Jt,THREAD_PROPERTIES_DELETED:Kt,THREAD_PROPERTIES_UPDATED:Xt,USER_ADDED_TO_CHAT:Qt,USER_REMOVED_FROM_CHAT:Wt}),$t="file",en="form",tn="filled_form",nn="message",rn="rich_message",on="system_message",an="custom",cn=Object.freeze({__proto__:null,FILE:$t,FORM:en,FILLED_FORM:tn,MESSAGE:nn,RICH_MESSAGE:rn,SYSTEM_MESSAGE:on,CUSTOM:an}),un=function(e){var t,n={};return"string"==typeof e.customId&&(n.custom_id=e.customId),"object"!=typeof(t=e.properties)||null===t||_(t)||(n.properties=e.properties),n},sn=function(e){switch(e.type){case nn:var r=t({},un(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 $t:return t({},un(e),{type:e.type,url:e.url,alternative_text:e.alternativeText});case tn:return t({},un(e),{type:e.type,form_id:e.formId,fields:e.fields.map((function(e){switch(e.type){case"group_chooser":if(!e.answer)return e;var r=e.answer,o=r.groupId;return t({},e,{answer:t({},n(r,["groupId"]),{group_id:o})});default:return e}}))});case on:var o=t({},un(e),{type:e.type,text:e.text,system_message_type:e.systemMessageType});return e.recipients&&(o.recipients=e.recipients),o;case an:var a=t({},un(e),{type:e.type});return e.content&&(a.content=e.content),a}},dn=function(e){var t=e.active,n=e.chat,r=e.continuous,o={active:void 0===t||t,chat:{}};if("boolean"==typeof r&&(o.continuous=r),!n)return o;var a=n.access,i=n.thread,c=n.properties;return a&&a.groupIds&&(o.chat.access={group_ids:a.groupIds}),c&&(o.chat.properties=c),i&&(o.chat.thread=function(e){var t={},n=e.events,r=e.properties;return n&&(t.events=n.map(sn)),r&&(t.properties=r),t}(i)),o},pn=function(e){return b(e).map((function(e){var t;return(t={})[e[0]]=e[1],t}))},ln=function(e){var t=O(["avatar","name","email"],e);return e.sessionFields&&(t.session_fields=pn(e.sessionFields)),t},fn=function(e){return{type:q,payload:{reason:e}}},_n=function(e){return{type:F,payload:{reason:e}}},hn=function(e){return void 0===e&&(e=!1),{type:z,payload:{fresh:e}}},vn=function(e){return{type:B,payload:{delay:e}}},yn=function(e,n,r){return{type:X,payload:t({request:{action:e,payload:n}},r&&{source:r})}},gn=function(e,t){return{type:Q,payload:{id:e,active:t}}},mn=function(e){return{type:W,payload:{id:e}}},In=function(e,t){t.payload.id=g(e.getState().requests);var n=Be(),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},En="AUTHENTICATION",Tn="CUSTOMER_BANNED",On="USERS_LIMIT_REACHED",bn="WRONG_PRODUCT_VERSION",Sn=Object.freeze({__proto__:null,AUTHENTICATION:En,AUTHORIZATION:"AUTHORIZATION",CHAT_ALREADY_ACTIVE:"CHAT_ALREADY_ACTIVE",CHAT_LIMIT_REACHED:"CHAT_LIMIT_REACHED",CUSTOMER_BANNED:Tn,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:On,VALIDATION:"VALIDATION",WRONG_PRODUCT_VERSION:bn}),Nn=function(e){var t=e.getState();return"side_storage_"+t.organizationId+(t.uniqueGroups?":"+t.groupId:"")},wn=function(e,t){var n=function(e,t){var n=e.getState();return"side_storage_"+t+(n.uniqueGroups?":"+n.groupId:"")}(e,t),r=Nn(e);return s(n).catch(I).then((function(e){return e?u(r,e).catch(I).then((function(){return d(n).catch(I).then((function(){return JSON.parse(e)})).catch(I)})):s(r).catch(I).then((function(e){return JSON.parse(e||"{}")})).catch(I)})).catch(I)},Cn=function(e,t,n){var r=e.slice(0),o=!1;return function e(a){var i,c=r.shift();(i=function(){return c(a)},new Promise((function(e){e(i())}))).then((function(n){o||(r.length?e(n):t(n))}),(function(e){o||n(e)}))}(),{cancel:function(){o=!0}}},Rn=function(e,t,n){return In(e,yn(t,n,"login"))};function Pn(e,n,r){var o,a,i=null,c={min:300,max:6e4,jitter:.3},u=Ye(c),s=Ye(t({},c,{min:1e3})),d=u,p=function(e){return o.dispatch(fn(e))},l=function(){return o.dispatch(vn(d.duration()))},f=function(){return Promise.all([e.getToken(),wn(o,r)])},_=function(e){var t=e[0],n=e[1],r=ot(o.getState());if(null===r)o.dispatch(mn(t.entityId));else if(r!==t.entityId){var a=Error("Identity has changed.");throw a.code=ae,a}return[t,n]},h=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={token:r.tokenType+" "+r.accessToken,customer:"function"==typeof n?ln(n()):{},customer_side_storage:a,is_mobile:l,application:T(["name","version"],u)};return"number"==typeof s&&(f.group_id=s),u.channelType&&(f.application.channel_type=u.channelType),null!==d&&(i=d,f.customer_page=d),null!==p&&(f.referrer=p),Promise.race([Rn(o,Te,f),(t=15e3,new Promise((function(e){setTimeout(e,t)}))).then((function(){return Promise.reject(lt({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))}))])};return{sendLogin:function(t){var n;o=t,null==(n=a)||n.cancel(),a=Cn([f,_,h],(function(e){var t;a=null,u.reset(),s.reset(),d=u,t=o.getState().page,i!==t&&Rn(o,De,t).catch(I),i=null,o.dispatch({type:H,payload:e})}),(function(t){switch(a=null,t.code){case En:return e.getFreshToken(),void l();case oe:case ie:case ue:return;case"SSO_IDENTITY_EXCEPTION":case"SSO_OAUTH_EXCEPTION":return"server_error"===t.message||"temporarily_unavailable"===t.message?void l():void p(t.message);case On:return void o.dispatch(_n(t.code.toLowerCase()));case ae:case Tn:case bn:return void p(t.code.toLowerCase());case"SERVICE_TEMPORARILY_UNAVAILABLE":return d=s,void l();default:return void l()}}))},cancel:function(){var e;null==(e=a)||e.cancel()}}}var An,Dn=function(e,t){var n=e.dispatch,r=function(e){return e.requests}((0,e.getState)());n({type:G,payload:{rejects:Object.keys(r).map((function(e){return r[e].reject})),reason:t}})},kn=function(e,t,n){var r=t.payload.id;(0,e.dispatch)({type:J,payload:{id:r,reject:(0,e.getState)().requests[r].reject,error:n}})},Un=Object.freeze({success:!0}),xn=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},jn=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},Ln=function(e,n){return void 0!==n.width&&void 0!==n.height?function(e,n){return t({},xn(e,n),{type:$t,contentType:n.content_type,url:n.url,name:n.name,width:n.width,height:n.height,thumbnails:{default:t({url:n.thumbnail_url},jn(300,n)),high:t({url:n.thumbnail2x_url},jn(600,n))}},n.alternative_text&&{alternativeText:n.alternative_text})}(e,n):t({},xn(e,n),{type:$t,contentType:n.content_type,url:n.url,name:n.name})},Mn=function(e,r){return t({},xn(e,r),{type:tn,formId:r.form_id,fields:r.fields.map((function(e){switch(e.type){case"group_chooser":if(!e.answer)return e;var r=e.answer,o=r.group_id;return t({},e,{answer:t({},n(r,["group_id"]),{groupId:o})});default:return e}}))})},qn=function(e,n){return t({},xn(e,n),{type:nn,text:n.text})},Gn=function(e,n){return t({},xn(e,n),{type:an},n.content&&{content:n.content})},Hn=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.buttons&&(n.buttons=e.buttons.map((function(e){switch(e.type){case"message":case"phone":return{type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"};case"cancel":return{type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"};case"url":var t={type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"};return e.target&&(t.target=e.target),t;case"webview":var n={type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"};return"string"==typeof e.webview_height&&(n.webviewHeight=e.webview_height),n;default:return{text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"}}}))),n},Fn=function(e,n){switch(n.template_id){case"cards":case"quick_replies":case"sticker":return t({},xn(e,n),{type:rn,template:n.template_id,elements:n.elements.map(Hn)});default:return null}},zn=function(e,n){var r=t({},xn(e,t({},n,{author_id:"system"})),{type:on,text:n.text,systemMessageType:n.system_message_type});return n.text_vars&&(r.textVars=n.text_vars),r},Vn=function(e,n){switch(n.type){case $t:return Ln(e,n);case en:return function(e,n){return t({},xn(e,n),{authorId:"system",type:en,formId:n.form_id,fields:n.fields})}(e,n);case tn:return Mn(e,n);case nn:return qn(e,n);case rn:return Fn(e,n);case on:return zn(e,n);case an:return Gn(e,n);default:return null}},Yn=function(e){return{id:e.id,addon:e.addon||null,uniqueId:e.unique_id,displayedFirstTime:e.displayed_first_time,accepted:e.accepted||!1,subtype:e.subtype||"greeting",event:Vn(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}}},Bn=function(e){return void 0===e&&(e={}),e.group_ids?{groupIds:e.group_ids}:{}},Jn=function(e){return v((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},Kn=function(e,t){var n=t.properties||{};return{id:t.id,chatId:e,active:t.active,access:Bn(t.access),createdAt:t.created_at,userIds:t.user_ids,events:t.events.map((function(e){return Vn(t.id,e)})).filter(Boolean),properties:n,previousThreadId:t.previous_thread_id||null,nextThreadId:t.next_thread_id||null,queue:t.queue?tr(t.queue):null}},Xn=function(e){return{id:e.id,access:Bn(e.access),users:e.users.map(nr),properties:e.properties||{},eventsSeenUpToMap:Jn(e.users)}},Qn=function(e){var t=O(["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},Wn=function(e){var n=Qn(e);return t({id:e.id,type:et},n,{sessionFields:n.sessionFields||{}})},Zn=function(e){var n=e.statistics;return t({},Wn(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}})},$n=function(e){var t=e.agent;return{agent:{id:t.id,type:$e,name:t.name,avatar:t.avatar,jobTitle:t.job_title,isBot:t.is_bot},queue:e.queue}},er=function(e){return{position:e.position,waitTime:e.wait_time}},tr=function(e){return t({},er(e),{queuedAt:e.queued_at})},nr=function(e){return e.type===et?t({},Wn(r=e),{present:r.present}):{id:(n=e).id,type:$e,name:n.name,avatar:n.avatar,jobTitle:n.job_title,present:n.present};var n,r},rr=((An={}).CONNECTION_LOST="Connection lost.",An.MISDIRECTED_CONNECTION="Connected to wrong region.",An),or=function(e,t){var n=e.getState();switch(t.type){case Y:case V:switch(t.payload.action){case Nt:return void e.dispatch(gn(t.payload.payload.chatId,!1));case Ht:return void e.dispatch(gn(t.payload.payload.chat.id,!0));default:return}case K:switch(t.payload.action){case me:return void t.payload.payload.chatsSummary.filter((function(e){var t=e.active;return at(n,e.id)!==t})).forEach((function(t){e.dispatch(gn(t.id,t.active))}));default:return}}},ar=function(e,t){t.forEach((function(t){if("present"in t){var r=n(t,["present"]);e("user_data",r)}else if(t.type!==et)e("user_data",t);else{var o=n(t,["statistics"]);e("user_data",o)}}))},ir=function(e,t){var n=e.emit,r=e.store,o=t.payload;switch(o.action){case Xt:return o.payload.properties.lc2&&"queue_pos"in o.payload.properties.lc2&&n(Jt,{chatId:o.payload.chatId,threadId:o.payload.threadId,queue:{position:o.payload.properties.lc2.queue_pos,waitTime:o.payload.properties.lc2.queue_waiting_time}}),void n("thread_properties_updated",o.payload);case Dt:return void function(e,t){u(Nn(e),JSON.stringify(t)).catch(I)}(r,o.payload.customer_side_storage);case Pt:switch(o.payload.reason){case ft:r.dispatch(hn(!0)),r.dispatch(vn(100)),n("disconnected",o.payload);break;case _t:case ht:case yt:case mt:case Et:case Ot:case bt:r.dispatch(fn(o.payload.reason));break;case gt:Dn(r,ie),r.dispatch({type:L,payload:o.payload.data});break;case It:case Tt:Dn(r,o.payload.reason.toUpperCase());break;default:r.dispatch(vn(100)),n("disconnected",o.payload)}return;case Gt:return void n("availability_updated",{availability:"offline"===o.payload.groups[0].status?"offline":"online"});case Ht:return ar(n,o.payload.chat.users),void n(o.action,o.payload);case Ft:if(null===o.payload.event)return;return void n(o.action,o.payload);case Bt:return void n(o.action,o.payload);case Qt:return ar(n,[o.payload.user]),void n(o.action,o.payload);default:return void n(o.action,o.payload)}},cr=function(e,t){var n=e.emit,r=t.payload;switch(r.action){case Nt:return void r.resolve(Un);case _e:return ar(n,r.payload.users),void r.resolve(r.payload);case Ht:return ar(n,r.payload.chat.users),void r.resolve(r.payload);case Ft:return void r.resolve(r.payload.event);case me:return ar(n,r.payload.users),void r.resolve(r.payload);default:return void r.resolve(r.payload)}},ur=function(e){var n=e.auth,r=e.emitter,o=e.socket,a=r.emit,i=Pn(n,e.customerDataProvider,e.licenseId);return function(e,c){switch(e.type){case L:return void o.reinitialize();case M:return void function(e,t,n){return t.getToken().then((function(t){var r=e.getState();null===ot(r)&&e.dispatch(mn(t.entityId));var o=r.page;if(o&&o.url){var a=N({organization_id:r.organizationId}),i={session_fields:pn(n||{}),group_id:r.groupId||0,page_url:o.url};return P(ct(r)+"/action/check_goals?"+a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:t.tokenType+" "+t.accessToken},body:JSON.stringify(i)}).then((function(){}))}}))}(c,n,e.payload.sessionFields).catch(I);case q:var u=e.payload;switch(i.cancel(),o.destroy(),u.reason){case"manual":Dn(c,ue);break;case _t:case vt:case mt:case bt:Dn(c,oe),a("disconnected",u);break;default:a("disconnected",u)}return void r.off();case G:var s=e.payload,d=s.reason,p={message:rr[d],code:d};return void s.rejects.forEach((function(e){e(lt(p))}));case H:var l=e.payload,f=l.dynamicConfig,_=l.chats,h=l.greeting,v=t({customer:l.customer,availability:l.availability},h&&{greeting:h});return Object.defineProperty(v,"__unsafeDynamicConfig",{value:f}),Object.defineProperty(v,"__unsafeChats",{value:_}),void a("connected",v);case F:var y=e.payload;return o.disconnect(),void("manual"!==y.reason&&a("disconnected",y));case z:return e.payload.fresh?void n.getFreshToken().catch(I):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(I);case V:return e.payload.action===Pt||or(c,e),void ir({emit:a,store:c},e);case Y:return or(c,e),void cr({emit:a},e);case B:return Dn(c,oe),void o.reconnect(e.payload.delay);case J:var g=e.payload;return void(0,g.reject)(lt(g.error));case K:return or(c,e),void cr({emit:a},e);case X:var T=c.getState();return function(e){return nt(e)===Ke}(T)?void kn(c,e,{code:ue,message:"SDK destroyed."}):it(T)||"login"===e.payload.source?void function(e,n){var r=n.payload,o=t({request_id:r.id},r.request);switch(o.action){case Te:var a=[];return void e.emit(t({},o,{version:"3.5",payload:t({},o.payload,{pushes:{3.5:E(Zt).filter((function(e){return e!==Pt&&!m(e,a)}))}})}));default:e.emit(o)}}(o,e):void kn(c,e,{code:"NO_CONNECTION",message:"No connection."});case W:return void a("customer_id",e.payload.id);case $:return void a("disconnected",{reason:"connection_lost"});case Z:return void i.sendLogin(c);case ee:if(!it(c.getState()))return;return void a("connection_recovered");case te:if(!it(c.getState()))return;return void a("connection_unstable");case ne:return o.connect(),void c.dispatch(hn());case re:if(!it(c.getState()))return;return void In(c,yn(De,e.payload)).catch(I);default:return}}},sr=function(e,t){var n,r=(void 0===t?{}:t).query,o=N(void 0===r?{}:r),a=o?e+"?"+o:e,i=j(),c=Ye({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}},dr=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?j():d,l=sr(e,{query:s}),f=(o=I,{cancel:function(){clearTimeout(r),o=I},check:function(){var e=Be();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})},pr=function(e,t){var n=e.getState(),r=(ct(n)+"/rtm/ws").replace(/^https/,"wss");return dr(r,{query:{organization_id:n.organizationId},emitter:t})},lr=function(e){return{chatId:e.chat_id,properties:e.properties}},fr=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?tr(e.queue):null};return t({},n,"manual"===e.reason?{reason:e.reason,requesterId:e.requester_id}:{reason:e.reason})},_r=function(e){return{url:e.url,title:e.title,openedAt:e.opened_at}},hr=function(e){return t({id:e.id},Qn(e))},vr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},yr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},gr=function(e){var t=e.thread_id;return{chatId:e.chat_id,threadId:t,event:Vn(t,e.event)}},mr=function(e){return{chatId:e.chat_id,userId:e.user_id,seenUpTo:e.seen_up_to}},Ir=function(e){return{uniqueId:e.unique_id}},Er=function(e){var n=e.chat;return{chat:t({},Xn(n),{thread:Kn(n.id,n.thread)})}},Tr=function(e){return{chatId:e.chat_id,event:Vn(e.thread_id,e.event)}},Or=function(e){return Yn(e)},br=function(e){return{userId:e.user_id,chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,postback:e.postback}},Sr=function(e){var t=e.typing_indicator;return{chatId:e.chat_id,typingIndicator:{authorId:t.author_id,isTyping:t.is_typing}}},Nr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,queue:er(e.queue)}},wr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},Cr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},Rr=function(e){return{chatId:e.chat_id,user:nr(e.user),present:e.user.present}},Pr=function(e){return{chatId:e.chat_id,userId:e.user_id}},Ar=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,["group_id"]),{groupId:r})}))});case"rating":var r=e.comment_label;return t({},n(e,["comment_label"]),{commentLabel:r});default:return e}}))},Dr=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+""})})),Ar(r)):Ar(e.fields)}},kr=function(e){return e.enabled?t({},e,{form:Dr(e.form)}):e},Ur=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(R,""),e.image_width&&e.image_height&&(t.imageWidth=e.image_width,t.imageHeight=e.image_height)),t},xr=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:Bn(e.access),properties:a,users:i.map(nr),lastThreadId:n||null,lastThreadCreatedAt:t||null,eventsSeenUpToMap:Jn(i)};if(!r)return c;c.lastEventsPerType=v((function(e){return Vn(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?S(e.event.created_at,t.event.created_at):S(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)},(_(a)?[].concat(a):E(a)).sort((function(e,t){return i(e)-i(t)}))),totalChats:e.total_chats,users:(t=function(e){return e.id},n=f((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},Lr=function(e,t){return{threads:t.threads.map((function(t){return Kn(e.payload.chat_id,t)})),previousPageId:t.previous_page_id||null,nextPageId:t.next_page_id||null}},Mr=function(e){var n,r,o=e.__priv_dynamic_config,a=e.chats,i=e.greeting;return t({dynamicConfig:o,customer:Zn(e.customer),availability:(n=o,r=n.online_groups_ids,r&&m(n.customer_groups.monitoring.id,r)?"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:Yn(i)})},qr=function(e){switch(e.action){case Nt:return{action:e.action,payload:{chatId:e.payload.chat_id}};case wt:return{action:e.action,payload:(t=e.payload,{chatId:t.chat_id,properties:t.properties})};case Ct:return{action:e.action,payload:lr(e.payload)};case Rt:return{action:e.action,payload:fr(e.payload)};case Dt:case Pt:return{action:e.action,payload:e.payload};case At:return{action:e.action,payload:_r(e.payload)};case kt:return{action:e.action,payload:hr(e.payload)};case Ut:return{action:e.action,payload:vr(e.payload)};case xt:return{action:e.action,payload:yr(e.payload)};case jt:return{action:e.action,payload:gr(e.payload)};case Lt:return{action:e.action,payload:mr(e.payload)};case Mt:case qt:return{action:e.action,payload:Ir(e.payload)};case Gt:return{action:e.action,payload:e.payload};case Ht:return{action:e.action,payload:Er(e.payload)};case Ft:return{action:e.action,payload:Tr(e.payload)};case zt:return{action:e.action,payload:Or(e.payload)};case Vt:return{action:e.action,payload:e.payload};case Yt:return{action:e.action,payload:br(e.payload)};case Bt:return{action:e.action,payload:Sr(e.payload)};case Jt:return{action:e.action,payload:Nr(e.payload)};case Kt:return{action:e.action,payload:wr(e.payload)};case Xt:return{action:e.action,payload:Cr(e.payload)};case Qt:return{action:e.action,payload:Rr(e.payload)};case Wt:return{action:e.action,payload:Pr(e.payload)}}var t},Gr=function(e,n){var r=e.dispatch,o=n.request_id,a=rt((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 se:case de:case pe:case le:case fe:return{action:o.action,payload:Un};case _e:return{action:o.action,payload:(n=o.payload,t({},Xn(n),{thread:n.thread?Kn(n.id,n.thread):null}))};case he:return{action:o.action,payload:Zn(o.payload)};case ve:return{action:o.action,payload:kr(o.payload)};case ye:return{action:o.action,payload:$n(o.payload)};case ge:return{action:o.action,payload:Ur(o.payload)};case me:return{action:o.action,payload:xr(o.payload)};case Ie:return{action:o.action,payload:jr(o.payload)};case Ee:return{action:o.action,payload:Lr(r,o.payload)};case Te:return{action:o.action,payload:Mr(o.payload)};case Oe:case we:case Ce:case Ne:case Pe:case Ae:case De:case ke:case Ue:return{action:o.action,payload:Un}}}({request:a.request,response:n});r({type:K,payload:t({id:o,promise:i,resolve:c},u)})},Hr=function(e,n){var r=e.dispatch;return n.on("connect",(function(){r({type:Z})})),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=rt((0,e.getState)(),o);r({type:J,payload:{id:o,reject:i.reject,error:(n=a.error,{code:n.type.toUpperCase(),message:n.message})}})}(e,n);switch(n.action){case be:case Se:case Re:return;default:return void Gr(e,n)}}if("request_id"in n)switch(n.action){case Ht:case Ft:return void function(e,n){var r=e.dispatch,o=n.request_id,a=rt((0,e.getState)(),o),i=a.promise,c=a.resolve,u=qr(n);r({type:Y,payload:t({id:o,promise:i,resolve:c},u)})}(e,n)}!function(e,t){var n=qr(t);n&&e.dispatch({type:V,payload:n})}(e,n)})),n.on("disconnect",(function(){Dn(e,oe),nt(e.getState())===Je&&e.dispatch({type:$})})),n.on("connection_unstable",(function(){r({type:te})})),n.on("connection_recovered",(function(){r({type:ee})})),n.off},Fr="UPLOAD_FAILED",zr=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=Fr,t.response=e,r(t)}else n(e)},d.onerror=function(){var e=Error("Upload failed.");e.code=Fr,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()}}},Vr=1048576,Yr=10485760,Br=function(e,t){if(void 0===t&&(t=2),1024>e)return e+" b";var n=e/1024;if(Vr>e)return n.toFixed(t)+" kb";var r=n/1024;return 1073741824>e?r.toFixed(t)+" MB":(r/1024).toFixed(t)+" GB"},Jr=function(e,t){var n,r=e.auth,o=e.store,a=t.file,i=t.onProgress,c=!1;return{promise:new Promise((function(e,t){!function(e){if(e.size>Yr)throw lt({message:"The file is too big (max size is "+Br(Yr)+").",code:"TOO_BIG_FILE"})}(a);var u=o.getState(),s=N({organization_id:u.organizationId}),d=ct(u)+"/action/upload_file?"+s,p={file:a};r.getToken().then((function(r){c?t(Error("Upload cancelled.")):(n=zr(d,p,{headers:{Authorization:r.tokenType+" "+r.accessToken},onProgress:i})).promise.then(e,(function(e){if(e.response){var n=e.response.error;t(lt({message:n.message,code:n.type.toUpperCase()}))}else t(e)}))}))})),cancel:function(){c||(c=!0,n&&n.cancel())}}},Kr=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:"4.0.2"})};return function(e,t){return new Promise((function(n){var r=new Image;r.src=e+"?"+t,r.onerror=I,r.onload=function(){return n()}}))}("https://queue.livechatinc.com/logs",N(r))},Xr="LISTENER_IDENTITY",Qr={},Wr=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}),{})},Zr=function(e,t,n){if(void 0===n.LISTENER_IDENTITY&&Object.defineProperty(n,Xr,{value:{}}),n.LISTENER_IDENTITY[t])return Qr[n.LISTENER_IDENTITY[t]];var r=function(r){console.info("."+e+'("'+t+'") <===',r),n(r)},o=g(Qr);return n.LISTENER_IDENTITY[t]=o,Qr[o]=r,r},$r=Object.freeze({__proto__:null,ASC:"asc",DESC:"desc"});e.connectionStatuses=Ze,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,["on","once","off","getChatHistory","auth"]),d=Wr(s);return Object.freeze(t({auth:Object.freeze(Wr(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.LISTENER_IDENTITY&&(n=Qr[t.LISTENER_IDENTITY[e]]);i(e,n)},on:function(e,t){o(e,Zr("on",e,t))},once:function(e,t){a(e,Zr("once",e,t))}}))},e.eventTypes=cn,e.init=function(e,r,o){void 0===r&&(r="production"),U(e);var a=e.autoConnect,i=void 0===a||a,c=e.customerDataProvider,u=e.identityProvider,s=n(e,["autoConnect","customerDataProvider","identityProvider"]),d=pt(t({},s,{env:r})),p=j(),l=function(e){var n=j(),r=pr(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=pr(e,n)).connect()}})}(d),f="function"==typeof u?u():x(s,o,r);d.addSideEffectsHandler(ur({emitter:p,socket:l,auth:f,customerDataProvider:c,licenseId:o})),Hr(d,l);var _=In.bind(null,d),h=function(){d.dispatch({type:ne})},v=Object.freeze({acceptGreeting:function(e){return _(yn(se,{greeting_id:e.greetingId,unique_id:e.uniqueId}))},auth:f,cancelGreeting:function(e){return _(yn(de,{unique_id:e.uniqueId}))},cancelRate:function(e){var t=e.chatId,n=e.properties,r=void 0===n?["score"]:n;return v.listThreads({chatId:t}).then((function(e){var n=e.threads;if(!n.length)throw lt({message:'There is no thread in "'+t+'".',code:ce});return v.deleteThreadProperties({chatId:t,threadId:n[0].id,properties:{rating:r}})}))},connect:h,deactivateChat:function(e){return _(yn("deactivate_chat",{id:e.id}))},deleteChatProperties:function(e){return _(yn(pe,{id:e.id,properties:e.properties}))},deleteEventProperties:function(e){return _(yn(le,{chat_id:e.chatId,thread_id:e.threadId,event_id:e.eventId,properties:e.properties}))},deleteThreadProperties:function(e){return _(yn(fe,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},destroy:function(){d.dispatch(fn("manual"))},disconnect:function(){d.dispatch(_n("manual"))},getChat:function(e){return _(yn(_e,{chat_id:e.chatId,thread_id:e.threadId}))},getChatHistory:function(e){return function(e,t){var n={status:"idle",queuedTasks:[],nextPageId:null},r=function r(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)}))}}(v,e.chatId)},getCustomer:function(){return _(yn(he,{}))},getForm:function(e){return _(yn(ve,{group_id:e.groupId,type:e.type}))},getPredictedAgent:function(e){void 0===e&&(e={});var t=e.groupId;return _(yn(ye,"number"==typeof t?{group_id:t}:{}))},getUrlInfo:function(e){return _(yn(ge,{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).")):_(yn(me,void 0===e.pageId?{limit:e.limit||10}:{page_id:e.pageId}))},listGroupStatuses:function(e){var t=(void 0===e?{}:e).groupIds;return _(yn(Ie,t?{group_ids:t}:{all:!0}))},listThreads:function(e){return _(yn(Ee,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 _(yn(Oe,{chat_id:e.chatId,seen_up_to:e.seenUpTo}))},on:p.on,once:p.once,off:p.off,rateChat:function(e){var t=e.chatId,n=e.rating;return v.listThreads({chatId:t}).then((function(e){var r=e.threads;if(!r.length)throw lt({message:'There is no thread in "'+t+'".',code:ce});return v.updateThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:n}})}))},resumeChat:function(n){return Kr({env:r,organizationId:e.organizationId,eventName:"chat_started"}),_(yn(be,function(e){var n=dn(e);return t({},n,{chat:t({},n.chat,{id:e.chat.id})})}(n)))},sendEvent:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}((function(e){return _(function(e){var t=e.attachToLastThread,n={chat_id:e.chatId,event:sn(e.event)};return t&&(n.attach_to_last_thread=!0),yn(Se,n)}(e))})),sendRichMessagePostback:function(e){return _(yn(Ne,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,postback:e.postback}))},setCustomerSessionFields:function(e){return _(yn(Ce,{session_fields:pn(e.sessionFields)}))},setSneakPeek:function(e){var t=e.chatId,n=e.sneakPeekText,r=d.getState();at(r,t)&&it(r)&&_(yn(we,{chat_id:t,sneak_peek_text:n})).catch(I)},startChat:function(t){return void 0===t&&(t={}),Kr({env:r,organizationId:e.organizationId,eventName:"chat_started"}),_(yn(Re,dn(t)))},updateChatProperties:function(e){return _(yn(Pe,{id:e.id,properties:e.properties}))},updateCustomer:function(e){return _(yn(Ae,ln(e)))},updateCustomerPage:function(e){d.dispatch({type:re,payload:O(["title","url"],e)})},updateEventProperties:function(e){return _(yn(ke,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,properties:e.properties}))},updateThreadProperties:function(e){return _(yn(Ue,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},uploadFile:function(e){return Jr({auth:f,store:d},e)}});return i?h():d.dispatch({type:M,payload:{sessionFields:"function"==typeof c?c().sessionFields:{}}}),v},e.parseCustomEvent=Gn,e.parseEvent=Vn,e.parseFile=Ln,e.parseFilledForm=Mn,e.parseForm=Dr,e.parseGreeting=Yn,e.parseMessage=qn,e.parseRichMessage=Fn,e.parseSystemMessage=zn,e.serverDisconnectionReasons=St,e.serverErrorCodes=Sn,e.serverPushActions=Zt,e.sortOrders=$r,e.userTypes=tt,Object.defineProperty(e,"__esModule",{value:!0})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livechat/customer-sdk",
3
- "version": "4.0.1",
3
+ "version": "4.0.2",
4
4
  "description": "SDK for connecting to LiveChat as a customer",
5
5
  "contributors": [
6
6
  "Konrad Kruk <k.kruk@livechatinc.com>",
@@ -1,11 +1,10 @@
1
1
  import { CustomerAuth } from '@livechat/customer-auth';
2
2
  import { Store } from './types';
3
3
  import * as clientEntities from './types/clientEntities';
4
- declare const sendTicketForm: (store: Store, auth: CustomerAuth, { filledForm, groupId, licenseId, timeZone, }: {
4
+ declare const sendTicketForm: (store: Store, auth: CustomerAuth, { filledForm, groupId, timeZone, }: {
5
5
  filledForm: Extract<clientEntities.RequestBodyEvent, {
6
6
  type: 'filled_form';
7
7
  }>;
8
- licenseId: number;
9
8
  groupId?: number | undefined;
10
9
  timeZone?: string | undefined;
11
10
  }) => Promise<{