@livechat/customer-sdk 4.0.2 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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.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})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).CustomerSDK={})}(this,function(e){"use strict";function t(){return t=Object.assign?Object.assign.bind():function(e){for(var t=1;arguments.length>t;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},t.apply(null,arguments)}function n(e,t){if(null==e)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;n[r]=e[r]}return n}function r(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,t||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}var o="__test_storage_support__",a="@@test",i=function(){var e=Object.create(null);return{getItem:function(t){var n=e[t];return"string"==typeof n?n:null},setItem:function(t,n){e[t]=n},removeItem:function(t){delete e[t]},clear:function(){e=Object.create(null)}}}();function c(e){try{return window.localStorage}catch(t){return"SecurityError"===t.name&&e?e:function(e){void 0===e&&(e="local");try{var t="session"===e?window.sessionStorage:window.localStorage;return t.setItem(o,a),t.getItem(o)===a&&(t.removeItem(o),!0)}catch(e){return!1}}()?window.localStorage:i}}function u(e){var t=c(e);return{setItem:function(e,n){return new Promise(function(r){return r(t.setItem(e,n))})},getItem:function(e){return new Promise(function(n){return n(t.getItem(e))})},removeItem:function(e){return new Promise(function(n){return n(t.removeItem(e))})}}}u();var s={}.hasOwnProperty;function d(e,t){return s.call(t,e)}function p(e,t){var n;return(n=[]).concat.apply(n,t.map(e))}function l(e){return Array.isArray(e)}function f(e){if("keys"in Object&&"function"==typeof Object.keys)return Object.keys(e);var t=[];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t}function _(e,t){return f(t).reduce(function(n,r){return n[r]=e(t[r]),n},{})}function h(e){return e}function v(e){var t=Math.random().toString(36).substring(2);return d(t,e)?v(e):t}function y(){}function g(e){return f(e).map(function(t){return e[t]})}function m(e,t){return e.reduce(function(e,n){return e[n]=t[n],e},{})}function I(e,t){return e.reduce(function(e,n){return d(n,t)&&(e[n]=t[n]),e},{})}function E(e){return f(e).map(function(t){return[t,e[t]]})}function T(e,t){return e===t?0:t>e?-1:1}var b=function(e){return E(e).map(function(e){return e.map(encodeURIComponent).join("=")}).join("&")},O=/[^:]+:\/\/[^(/|?)\s]+/,S=function(e){return e.replace(/\w/g,"$&[\\r\\n\\t]*")};RegExp("^[\0-]*("+S("javascript")+"|"+S("data")+"):","i");var N=/^((http(s)?:)?\/\/)/;function C(e,t){return t=t||{},new Promise(function(n,r){var o=new XMLHttpRequest,a=[],i=[],c={},u=function(){return{ok:2==(o.status/100|0),statusText:o.statusText,status:o.status,url:o.responseURL,text:function(){return Promise.resolve(o.responseText)},json:function(){return Promise.resolve(o.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([o.response]))},clone:u,headers:{keys:function(){return a},entries:function(){return i},get:function(e){return c[e.toLowerCase()]},has:function(e){return e.toLowerCase()in c}}}};for(var s in o.open(t.method||"get",e,!0),o.onload=function(){o.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(e,t,n){a.push(t=t.toLowerCase()),i.push([t,n]),c[t]=c[t]?c[t]+","+n:n}),n(u())},o.onerror=r,o.withCredentials="include"==t.credentials,t.headers)o.setRequestHeader(s,t.headers[s]);o.send(t.body||null)})}var w=process.env.PUBLIC_ACCOUNTS_URL,P=function(e){var t=e.code,n=Error(e.message);return n.code=t,n},R=function(e,t){return C(""+function(e,t){var n="production"===t?w:w.replace("accounts.","accounts."+t+"."),r=function(e){return e.uniqueGroups?"/v2/customer/"+e.organizationId+"/"+e.groupId+"/token":"/v2/customer/token"}(e);return""+n+r}(e,t),{method:"POST",credentials:"include",body:JSON.stringify({response_type:"token",grant_type:"cookie",client_id:e.clientId,organization_id:e.organizationId,redirect_uri:(n=window.location+"",r=n.match(O),(r&&r[0])+window.location.pathname)})}).then(function(e){return e.json()}).then(function(t){return function(e,t){if("identity_exception"in e)throw P({code:"SSO_IDENTITY_EXCEPTION",message:e.identity_exception});if("oauth_exception"in e)throw P({code:"SSO_OAUTH_EXCEPTION",message:e.oauth_exception});return{accessToken:e.access_token,entityId:e.entity_id,expiresIn:1e3*e.expires_in,tokenType:e.token_type,creationDate:Date.now(),organizationId:t}}(t,e.organizationId)});var n,r},A=function(e){if("string"!=typeof e.organizationId||"string"!=typeof e.clientId)throw Error("You need to pass valid configuration object: { organizationId, clientId }.")},k=function(e,t){A(e);var n=e.env,r=n&&["labs","staging"].includes(n)?n:"production",o=u(t),a=""+(e.tokenStoragePrefix||process.env.PUBLIC_TOKEN_STORAGE_PREFIX)+e.organizationId+(e.uniqueGroups?":"+e.groupId:""),i=null,c=null,s=o.getItem(a).then(function(e){null!==s&&(s=null,e&&(c=JSON.parse(e)))}),d=function(){return i=R(e,r).then(function(e){return i=null,o.setItem(a,JSON.stringify(e)),c=e,e},function(e){throw i=null,e})},p=function(){return i||(c&&!function(e){var t=e.creationDate,n=e.expiresIn;return Date.now()>=t+n}(c)?Promise.resolve(c):s?s.then(p):d())},l=function(){return s?s.then(l):Promise.resolve(!!c)};return{getFreshToken:d,getToken:p,hasToken:l,invalidate:function(){return c=null,s=null,o.removeItem(a)}}};var D=["all"],U=function(){var e,r={all:e=e||new Map,on:function(t,n){var r=e.get(t);r?r.push(n):e.set(t,[n])},off:function(t,n){var r=e.get(t);r&&(n?r.splice(r.indexOf(n)>>>0,1):e.set(t,[]))},emit:function(t,n){var r=e.get(t);r&&r.slice().map(function(e){e(n)}),(r=e.get("*"))&&r.slice().map(function(e){e(t,n)})}},o=r.all,a=n(r,D);return t({},a,{off:function(e,t){e?a.off(e,t):o.clear()},once:function(e,t){a.on(e,function n(r,o){a.off(e,n),t(r,o)})}})},x="file",j="form",L="filled_form",M="message",q="rich_message",G="system_message",F="custom",H=Object.freeze({__proto__:null,FILE:x,FORM:j,FILLED_FORM:L,MESSAGE:M,RICH_MESSAGE:q,SYSTEM_MESSAGE:G,CUSTOM:F}),z=["groupId"],V=function(e){var t,n={};return"string"==typeof e.customId&&(n.custom_id=e.customId),"object"!=typeof(t=e.properties)||null===t||l(t)||(n.properties=e.properties),n},B=function(e){switch(e.type){case M:var r=t({},V(e),{type:e.type,text:e.text});return e.postback&&(r.postback={id:e.postback.id,thread_id:e.postback.threadId,event_id:e.postback.eventId,type:e.postback.type,value:e.postback.value}),r;case x:return t({},V(e),{type:e.type,url:e.url,alternative_text:e.alternativeText});case L:return t({},V(e),{type:e.type,form_id:e.formId},e.formType&&{form_type:e.formType},{fields:e.fields.map(function(e){if("group_chooser"===e.type){if(!e.answer)return e;var r=e.answer,o=r.groupId;return t({},e,{answer:t({},n(r,z),{group_id:o})})}return e})});case G:var o=t({},V(e),{type:e.type,text:e.text,system_message_type:e.systemMessageType});return e.recipients&&(o.recipients=e.recipients),o;case F:var a=t({},V(e),{type:e.type});return e.content&&(a.content=e.content),a}},Y=function(e){var t=e.active,n=e.chat,r=e.welcomeMessageId,o=e.continuous,a={active:void 0===t||t,chat:{}};if("boolean"==typeof o&&(a.continuous=o),r&&"string"==typeof r&&(a.welcome_message_id=r),!n)return a;var i=n.access,c=n.thread,u=n.properties;return i&&i.groupIds&&(a.chat.access={group_ids:i.groupIds}),u&&(a.chat.properties=u),c&&(a.chat.thread=function(e){var t={},n=e.events,r=e.properties;return n&&(t.events=n.map(B)),r&&(t.properties=r),t}(c)),a},J=function(e){return E(e).map(function(e){var t;return(t={})[e[0]]=e[1],t})},K=function(e){var t=I(["avatar","name","email"],e);return e.sessionFields&&(t.session_fields=J(e.sessionFields)),"boolean"==typeof e.nameIsDefault&&(t.name_is_default=e.nameIsDefault),t},X="change_region",W="check_goals",Q="destroy",Z="fail_all_requests",$="login_success",ee="pause_connection",te="prefetch_token",ne="push_received",re="push_response_received",oe="reconnect",ae="request_failed",ie="response_received",ce="send_request",ue="set_chat_active",se="set_self_id",de="socket_connected",pe="socket_disconnected",le="socket_recovered",fe="socket_unstable",_e="start_connection",he="update_customer_page",ve="clear_sensitive_session_state",ye="identity_changed",ge="accept_greeting",me="cancel_greeting",Ie="delete_chat_properties",Ee="delete_event_properties",Te="delete_thread_properties",be="get_chat",Oe="get_customer",Se="get_form",Ne="get_url_info",Ce="list_chats",we="list_group_statuses",Pe="list_threads",Re="login",Ae="mark_events_as_seen",ke="request_welcome_message",De="resume_chat",Ue="send_event",xe="send_greeting_button_clicked",je="send_rich_message_postback",Le="send_sneak_peek",Me="set_customer_session_fields",qe="start_chat",Ge="update_chat_properties",Fe="update_customer",He="update_customer_page",ze="update_event_properties",Ve="update_thread_properties",Be=function(e){return{type:Q,payload:{reason:e}}},Ye=function(e){return{type:ee,payload:{reason:e}}},Je=function(e){return void 0===e&&(e=!1),{type:te,payload:{fresh:e}}},Ke=function(e){return{type:oe,payload:{delay:e}}},Xe=function(e,n,r){return{type:ce,payload:t({request:{action:e,payload:n}},r&&{source:r})}},We=function(e,t){return{type:ue,payload:{id:e,active:t}}},Qe=function(e){return{type:se,payload:{id:e}}},Ze="CONNECTION_LOST",$e="MISDIRECTED_CONNECTION",et="MISSING_CHAT_THREAD",tt="SDK_DESTROYED",nt="connected",rt="destroyed",ot="disconnected",at="paused",it="reconnecting",ct=Object.freeze({__proto__:null,CONNECTED:nt,DESTROYED:rt,DISCONNECTED:ot,PAUSED:at,RECONNECTING:it}),ut="access_token_expired",st="customer_banned",dt="customer_temporarily_blocked",pt="license_expired",lt="license_not_found",ft="misdirected_connection",_t="product_version_changed",ht="service_temporarily_unavailable",vt="too_many_connections",yt="too_many_unauthorized_connections",gt="unsupported_version",mt="logged_out_remotely",It=Object.freeze({__proto__:null,ACCESS_TOKEN_EXPIRED:ut,CONNECTION_TIMEOUT:"connection_timeout",CUSTOMER_BANNED:st,CUSTOMER_TEMPORARILY_BLOCKED:dt,INACTIVITY_TIMEOUT:"inactivity_timeout",INTERNAL_ERROR:"internal_error",LICENSE_EXPIRED:pt,LICENSE_NOT_FOUND:lt,MISDIRECTED_CONNECTION:ft,PRODUCT_VERSION_CHANGED:_t,SERVICE_TEMPORARILY_UNAVAILABLE:ht,TOO_MANY_CONNECTIONS:vt,TOO_MANY_UNAUTHORIZED_CONNECTIONS:yt,UNSUPPORTED_VERSION:gt,LOGGED_OUT_REMOTELY:mt}),Et="AUTHENTICATION",Tt="CUSTOMER_BANNED",bt="USERS_LIMIT_REACHED",Ot="WRONG_PRODUCT_VERSION",St=Object.freeze({__proto__:null,AUTHENTICATION:Et,AUTHORIZATION:"AUTHORIZATION",CHAT_ALREADY_ACTIVE:"CHAT_ALREADY_ACTIVE",CHAT_LIMIT_REACHED:"CHAT_LIMIT_REACHED",CUSTOMER_BANNED:Tt,CUSTOMER_SESSION_FIELDS_LIMIT_REACHED:"CUSTOMER_SESSION_FIELDS_LIMIT_REACHED",ENTITY_TOO_LARGE:"ENTITY_TOO_LARGE",GREETING_NOT_FOUND:"GREETING_NOT_FOUND",GROUP_OFFLINE:"GROUP_OFFLINE",GROUPS_OFFLINE:"GROUPS_OFFLINE",GROUP_NOT_FOUND:"GROUP_NOT_FOUND",GROUP_UNAVAILABLE:"GROUP_UNAVAILABLE",INTERNAL:"INTERNAL",LICENSE_EXPIRED:"LICENSE_EXPIRED",MISDIRECTED_REQUEST:"MISDIRECTED_REQUEST",PENDING_REQUESTS_LIMIT_REACHED:"PENDING_REQUESTS_LIMIT_REACHED",REQUEST_TIMEOUT:"REQUEST_TIMEOUT",SERVICE_UNAVAILABLE:"SERVICE_UNAVAILABLE",UNSUPPORTED_VERSION:"UNSUPPORTED_VERSION",USERS_LIMIT_REACHED:bt,VALIDATION:"VALIDATION",WRONG_PRODUCT_VERSION:Ot}),Nt="chat_deactivated",Ct="chat_properties_deleted",wt="chat_properties_updated",Pt="chat_transferred",Rt="customer_disconnected",At="customer_side_storage_updated",kt="customer_updated",Dt="event_properties_deleted",Ut="event_properties_updated",xt="event_updated",jt="events_marked_as_seen",Lt="greeting_accepted",Mt="greeting_canceled",qt="groups_status_updated",Gt="incoming_chat",Ft="incoming_event",Ht="incoming_greeting",zt="incoming_multicast",Vt="incoming_rich_message_postback",Bt="incoming_typing_indicator",Yt="incoming_welcome_message",Jt="queue_position_updated",Kt="thread_properties_deleted",Xt="thread_properties_updated",Wt="user_added_to_chat",Qt="user_removed_from_chat",Zt="incoming_thinking_indicator",$t="incoming_event_preview",en=Object.freeze({__proto__:null,CHAT_DEACTIVATED:Nt,CHAT_PROPERTIES_DELETED:Ct,CHAT_PROPERTIES_UPDATED:wt,CHAT_TRANSFERRED:Pt,CUSTOMER_DISCONNECTED:Rt,CUSTOMER_SIDE_STORAGE_UPDATED:At,CUSTOMER_UPDATED:kt,EVENT_PROPERTIES_DELETED:Dt,EVENT_PROPERTIES_UPDATED:Ut,EVENT_UPDATED:xt,EVENTS_MARKED_AS_SEEN:jt,GREETING_ACCEPTED:Lt,GREETING_CANCELED:Mt,GROUPS_STATUS_UPDATED:qt,INCOMING_CHAT:Gt,INCOMING_EVENT:Ft,INCOMING_GREETING:Ht,INCOMING_MULTICAST:zt,INCOMING_RICH_MESSAGE_POSTBACK:Vt,INCOMING_TYPING_INDICATOR:Bt,INCOMING_WELCOME_MESSAGE:Yt,QUEUE_POSITION_UPDATED:Jt,THREAD_PROPERTIES_DELETED:Kt,THREAD_PROPERTIES_UPDATED:Xt,USER_ADDED_TO_CHAT:Wt,USER_REMOVED_FROM_CHAT:Qt,INCOMING_THINKING_INDICATOR:Zt,INCOMING_EVENT_PREVIEW:$t}),tn=Object.freeze({__proto__:null,ASC:"asc",DESC:"desc"}),nn="agent",rn="customer",on=Object.freeze({__proto__:null,AGENT:nn,CUSTOMER:rn});function an(e){var t=e.code,n=Error(e.message);return n.code=t,n}var cn=function(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}("undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof module?module:Function("return this")()),un=function(){return Math.random().toString(36).substring(7).split("").join(".")},sn={INIT:"@@redux/INIT"+un(),REPLACE:"@@redux/REPLACE"+un(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+un()}};function dn(e,t,n){var r;if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw Error("It looks like you are passing several store enhancers to createStore(). This is not supported. Instead, compose them together to a single function.");if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw Error("Expected the enhancer to be a function.");return n(dn)(e,t)}if("function"!=typeof e)throw Error("Expected the reducer to be a function.");var o=e,a=t,i=[],c=i,u=!1;function s(){c===i&&(c=i.slice())}function d(){if(u)throw Error("You may not call store.getState() while the reducer is executing. The reducer has already received the state as an argument. Pass it down from the top reducer instead of reading it from the store.");return a}function p(e){if("function"!=typeof e)throw Error("Expected the listener to be a function.");if(u)throw Error("You may not call store.subscribe() while the reducer is executing. If you would like to be notified after the store has been updated, subscribe from a component and invoke store.getState() in the callback to access the latest state. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");var t=!0;return s(),c.push(e),function(){if(t){if(u)throw Error("You may not unsubscribe from a store listener while the reducer is executing. See https://redux.js.org/api-reference/store#subscribe(listener) for more details.");t=!1,s();var n=c.indexOf(e);c.splice(n,1)}}}function l(e){if(!function(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}(e))throw Error("Actions must be plain objects. Use custom middleware for async actions.");if(void 0===e.type)throw Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(u)throw Error("Reducers may not dispatch actions.");try{u=!0,a=o(a,e)}finally{u=!1}for(var t=i=c,n=0;t.length>n;n++){(0,t[n])()}return e}return l({type:sn.INIT}),(r={dispatch:l,subscribe:p,getState:d,replaceReducer:function(e){if("function"!=typeof e)throw Error("Expected the nextReducer to be a function.");o=e,l({type:sn.REPLACE})}})[cn]=function(){var e,t=p;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new TypeError("Expected the observer to be an object.");function n(){e.next&&e.next(d())}return n(),{unsubscribe:t(n)}}})[cn]=function(){return this},e},r}function pn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ln(e,t){var n=Object.keys(e);return Object.getOwnPropertySymbols&&n.push.apply(n,Object.getOwnPropertySymbols(e)),t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n}function fn(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce(function(e,t){return function(){return e(t.apply(void 0,arguments))}})}function _n(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw Error("Dispatching while constructing your middleware is not allowed. Other middleware would not be applied to this dispatch.")},o={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},a=t.map(function(e){return e(o)});return function(e){for(var t=1;arguments.length>t;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ln(n,!0).forEach(function(t){pn(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ln(n).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}({},n,{dispatch:r=fn.apply(void 0,a)(n.dispatch)})}}}var hn=function(e){var t=e.min,n=void 0===t?1e3:t,r=e.max,o=void 0===r?5e3:r,a=e.jitter,i=void 0===a?.5:a,c=0;return{duration:function(){var e=n*Math.pow(2,c++);if(i){var t=Math.random(),r=Math.floor(t*i*e);e=1&Math.floor(10*t)?e+r:e-r}return 0|Math.min(e,o)},reset:function(){c=0}}};function vn(){var e={};return e.promise=new Promise(function(t,n){e.resolve=t,e.reject=n}),e}var yn=function(e){return e.connection.status},gn=function(e,t){return e.requests[t]},mn=function(e){return e.users.self.id},In=function(e,t){var n=e.chats[t];return!!n&&n.active},En=function(e){return yn(e)===nt},Tn=function(e){var t;return{"x-region":null!=(t=e.region)?t:""}},bn=function(e){return function(e){return"https://api"+function(e){var t=e.env;return"production"===t?"":"."+t}(e)+".livechatinc.com"}(e)+"/v3.6/customer"},On=function(e,o){return t({},e,{requests:n(e.requests,[o.id].map(r))})},Sn=function(e,n){return t({},n,{connection:t({},n.connection,{status:e})})},Nn=function(e){var n,r,o;return r=e,(n={})[X]=function(e,n){return t({},e,{region:n.region})},n[Q]=function(e){return Sn(rt,e)},n[$]=function(e){return Sn(nt,e)},n[ee]=function(e){return Sn(at,e)},n[ae]=On,n[ie]=On,n[re]=On,n[ce]=function(e,n){var r,o=n.id;return t({},e,{requests:t({},e.requests,(r={},r[o]={id:o,promise:n.promise,resolve:n.resolve,reject:n.reject,request:n.request},r))})},n[ue]=function(e,n){var r,o=n.id;return t({},e,{chats:t({},e.chats,(r={},r[o]=t({},e.chats[o],{active:n.active}),r))})},n[se]=function(e,n){return t({},e,{users:t({},e.users,{self:t({},e.users.self,{id:n.id})})})},n[pe]=function(e){var n=yn(e);return t({},Sn(n===ot?ot:it,e),{requests:{}})},n[he]=function(e,n){return t({},e,{page:t({},e.page,n)})},n[ve]=function(e){return t({},e,{chats:{},users:{self:{id:null,type:rn},others:{}},requests:{}})},n[ye]=function(e){return e},(o=n)[void 0]&&console.warn("Reducer contains an 'undefined' action type.\nHave you misspelled a constant?"),function(e,t){return void 0===e&&(e=r),d(t.type,o)?o[t.type](e,t.payload):e}};function Cn(e){var n=h,r=function(){var e=[],t=function(t){return function(n){return function(r){var o=n(r);return e.forEach(function(e){e(r,t)}),o}}};return t.add=function(t){e.push(t)},t}(),o=dn(Nn(function(e){var n=e.application,r=e.organizationId,o=e.groupId,a=void 0===o?null:o,i=e.env,c=e.page,u=void 0===c?null:c,s=e.region,d=void 0===s?null:s,p=e.referrer,l=void 0===p?null:p,f=e.tabId,_=void 0===f?null:f,h=e.uniqueGroups,v=void 0!==h&&h,y=e.mobile,g=void 0!==y&&y;return{application:t({},void 0===n?{}:n,{name:"customer_sdk",version:"5.0.0"}),organizationId:r,env:i,groupId:a,chats:{},connection:{status:ot},page:u,region:d,referrer:l,tabId:_,requests:{},users:{self:{id:null,type:rn},others:{}},uniqueGroups:v,mobile:g}}(e)),n(_n(r)));return o.addSideEffectsHandler=r.add,o}var wn=function(e){var t=e.organizationId,n=e.eventName;if("production"!==e.env)return Promise.resolve();var r={organizationId:t,event_id:"chat_widget_customer_sdk",message:JSON.stringify({event_name:n,severity:"Informational",sdkVersion:"5.0.0"})};return function(e,t){return new Promise(function(n){var r=new Image;r.src=e+"?"+t,r.onerror=y,r.onload=function(){return n()}})}("https://applog.livechatinc.com/logs",b(r))},Pn=function(e,t){t.payload.id=v(e.getState().requests);var n=vn(),r=n.resolve,o=n.reject,a=n.promise;return t.payload.promise=a,t.payload.resolve=r,t.payload.reject=o,e.dispatch(t),a},Rn=Object.freeze({success:!0}),An=["group_id"],kn=function(e,t){var n={id:t.id,authorId:t.author_id,createdAt:t.created_at,threadId:e,properties:t.properties||{}};return void 0!==t.custom_id&&(n.customId=t.custom_id),n},Dn=function(e,t){var n,r,o,a,i;t.height>t.width?(r="height",o="width",a=t.height,i=t.width):(r="width",o="height",a=t.width,i=t.height);var c=e/a;return(n={})[r]=Math.ceil(Math.min(a,e)),n[o]=Math.ceil(Math.min(c*i,i)),n},Un=function(e,n){return void 0!==n.width&&void 0!==n.height?function(e,n){return t({},kn(e,n),{type:x,contentType:n.content_type,url:n.url,name:n.name,width:n.width,height:n.height,thumbnails:{default:t({url:n.thumbnail_url},Dn(300,n)),high:t({url:n.thumbnail2x_url},Dn(600,n))}},n.alternative_text&&{alternativeText:n.alternative_text})}(e,n):t({},kn(e,n),{type:x,contentType:n.content_type,url:n.url,name:n.name})},xn=function(e,r){return t({},kn(e,r),{type:L,formId:r.form_id},r.form_type&&{formType:r.form_type},{fields:r.fields.map(function(e){if("group_chooser"===e.type){if(!e.answer)return e;var r=e.answer,o=r.group_id;return t({},e,{answer:t({},n(r,An),{groupId:o})})}return e})})},jn=function(e,n){return t({},kn(e,n),{type:M,text:n.text})},Ln=function(e,n){return t({},kn(e,n),{type:F},n.content&&{content:n.content})},Mn=function(e){var n={};if("string"==typeof e.title&&(n.title=e.title),"string"==typeof e.subtitle&&(n.subtitle=e.subtitle),e.image){var r=e.image;n.image=t({url:r.url,name:r.name},r.alternative_text&&{alternativeText:r.alternative_text})}return e.ecommerce&&(n.ecommerce=t({productId:e.ecommerce.product_id,viewType:e.ecommerce.view_type},"string"==typeof e.ecommerce.label&&{label:e.ecommerce.label},Array.isArray(e.ecommerce.options)&&{options:e.ecommerce.options.map(function(e){return t({label:e.label,optionId:e.option_id},void 0!==e.price&&{price:e.price},void 0!==e.regular_price&&{regularPrice:e.regular_price},void 0!==e.max_price&&{maxPrice:e.max_price},void 0!==e.currency&&{currency:e.currency},"string"==typeof e.color&&{color:e.color},e.image_url&&t({imageUrl:e.image_url},"string"==typeof e.image_thumbnail_url&&{imageThumbnailUrl:e.image_thumbnail_url}),"boolean"==typeof e.available&&{available:e.available},"boolean"==typeof e.selected&&{selected:e.selected})})},Array.isArray(e.ecommerce.addons)&&{addons:e.ecommerce.addons.map(function(e){return"price_range"===e.addon_type?t({addonType:e.addon_type},void 0!==e.range_from&&{rangeFrom:e.range_from},void 0!==e.range_to&&{rangeTo:e.range_to},"string"==typeof e.currency&&{currency:e.currency}):{addonType:e.addon_type}})})),e.buttons&&(n.buttons=e.buttons.map(function(e){switch(e.type){case"message":case"add_to_cart":case"show_gallery":case"copy":case"phone":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});case"cancel":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});case"url":var n=t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});return e.target&&(n.target=e.target),n;case"open_external":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id},e.target&&{target:e.target});case"webview":return t({type:e.type,text:e.text,postbackId:e.postback_id,userIds:e.user_ids,value:e.value,role:e.role||"default"},e.button_id&&{buttonId:e.button_id});default:return t({text:e.text,postbackId:e.postback_id,userIds:e.user_ids,role:e.role||"default"},e.button_id&&{buttonId:e.button_id})}})),n},qn=function(e,n){switch(n.template_id){case"cards":case"quick_replies":case"sticker":case"ecommerce":return t({},kn(e,n),{type:q,template:n.template_id,elements:n.elements.map(Mn)});default:return null}},Gn=function(e,n){var r=t({},kn(e,t({},n,{author_id:"system"})),{type:G,text:n.text,systemMessageType:n.system_message_type});return n.text_vars&&(r.textVars=n.text_vars),r},Fn=function(e,n){switch(n.type){case x:return Un(e,n);case j:return function(e,n){return t({},kn(e,n),{authorId:"system",type:j,formId:n.form_id},n.form_type&&{formType:n.form_type},{fields:n.fields})}(e,n);case L:return xn(e,n);case M:return jn(e,n);case q:return qn(e,n);case G:return Gn(e,n);case F:return Ln(e,n);default:return null}},Hn=function(e){return{id:e.id,addon:e.addon||null,uniqueId:e.unique_id,displayedFirstTime:e.displayed_first_time,isExitIntent:e.is_exit_intent,accepted:e.accepted||!1,subtype:e.subtype||"greeting",event:Fn(null,e.event),agent:{id:e.agent.id,name:e.agent.name,avatar:e.agent.avatar,jobTitle:e.agent.job_title,isBot:e.agent.is_bot||!1}}},zn=function(e){return void 0===e&&(e={}),e.group_ids?{groupIds:e.group_ids}:{}},Vn=function(e){return _(function(e){return e.events_seen_up_to?e.events_seen_up_to:null},(t="id",e.reduce(function(e,n){return e[n[t]]=n,e},{})));var t},Bn=function(e,t){var n=t.properties||{};return{id:t.id,chatId:e,active:t.active,access:zn(t.access),createdAt:t.created_at,userIds:t.user_ids,events:t.events.map(function(e){return Fn(t.id,e)}).filter(Boolean),properties:n,previousThreadId:t.previous_thread_id||null,nextThreadId:t.next_thread_id||null,queue:t.queue?Qn(t.queue):null}},Yn=function(e){return{id:e.id,access:zn(e.access),users:e.users.map(Zn),properties:e.properties||{},eventsSeenUpToMap:Vn(e.users)}},Jn=function(e){var t=I(["avatar","email","name"],e);return e.session_fields&&(t.sessionFields=e.session_fields.reduce(function(e,t){var n=Object.keys(t)[0];return e[n]=t[n],e},{})),t},Kn=function(e){var n=Jn(e);return t({id:e.id,type:rn},n,{sessionFields:n.sessionFields||{}})},Xn=function(e){var n=e.statistics;return t({},Kn(e),{statistics:{chatsCount:n.chats_count,threadsCount:n.threads_count,visitsCount:n.visits_count,pageViewsCount:n.page_views_count,greetingsShownCount:n.greetings_shown_count,greetingsAcceptedCount:n.greetings_accepted_count}})},Wn=function(e){return{position:e.position,waitTime:e.wait_time}},Qn=function(e){return t({},Wn(e),{queuedAt:e.queued_at})},Zn=function(e){return e.type===rn?t({},Kn(r=e),{present:r.present}):{id:(n=e).id,type:nn,name:n.name,avatar:n.avatar,jobTitle:n.job_title,present:n.present};var n,r},$n=function(e){var t=e.getState();return"side_storage_"+t.organizationId+(t.uniqueGroups?":"+t.groupId:"")},er=function(e,t){var n=u(t),r=$n(e);return n.getItem(r).catch(y).then(function(e){return JSON.parse(e||"{}")}).catch(y)},tr=function(e,t){var n=e.dispatch,r=function(e){return e.requests}((0,e.getState)());n({type:Z,payload:{rejects:Object.keys(r).map(function(e){return r[e].reject}),reason:t}})},nr=function(e,t,n){var r=t.payload.id;(0,e.dispatch)({type:ae,payload:{id:r,reject:(0,e.getState)().requests[r].reject,error:n}})},rr=function(e,t,n){var r=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);t>n;n++)r[n]=e[n];return r}(e).slice(0),o=!1,a=function(e){var i,c=r.shift();(i=function(){return c(e)},new Promise(function(e){e(i())})).then(function(e){o||(r.length?a(e):t(e))},function(e){o||n(e)})};return a(),{cancel:function(){o=!0}}},or=function(e,t,n){return Pn(e,Xe(t,n,"login"))};function ar(e,n,r){var o,a,i=null,c={min:300,max:6e4,jitter:.3},s=hn(c),d=hn(t({},c,{min:1e3})),p=s,l=function(e){return o.dispatch(Be(e))},f=function(){return o.dispatch(Ke(p.duration()))},_=function(){return Promise.all([e.getToken(),er(o,r)])},h=function(e){var t=e[0],n=e[1],a=mn(o.getState());if(null===a)o.dispatch(Qe(t.entityId));else if(a!==t.entityId)return r&&function(e,t){u(t).removeItem($n(e)).catch(y)}(o,r),o.dispatch({type:ve}),o.dispatch(Qe(t.entityId)),o.dispatch({type:ye,payload:{previousId:a,newId:t.entityId}}),[t,{}];return[t,n]},v=function(e){var t,r=e[0],a=e[1],c=o.getState(),u=c.application,s=c.groupId,d=c.page,p=c.referrer,l=c.mobile,f=c.tabId,_={token:r.tokenType+" "+r.accessToken,customer:"function"==typeof n?K(n()):{},customer_side_storage:a,is_mobile:l,application:m(["name","version"],u)};return"number"==typeof s&&(_.group_id=s),u.channelType&&(_.application.channel_type=u.channelType),null!==d&&(i=d,_.customer_page=d),null!==p&&(_.referrer=p),null!==f&&(_.tab_id=f),Promise.race([or(o,Re,_),(t=15e3,new Promise(function(e){setTimeout(e,t)})).then(function(){return Promise.reject(an({message:"Request timed out.",code:"REQUEST_TIMEOUT"}))})])};return{sendLogin:function(t){var n;o=t,null==(n=a)||n.cancel(),a=rr([_,h,v],function(e){var t;a=null,s.reset(),d.reset(),p=s,t=o.getState().page,i!==t&&or(o,He,t).catch(y),i=null,o.dispatch({type:$,payload:e})},function(t){switch(a=null,t.code){case Et:return e.getFreshToken(),void f();case Ze:case $e:case tt:return;case"SSO_IDENTITY_EXCEPTION":case"SSO_OAUTH_EXCEPTION":return"server_error"===t.message||"temporarily_unavailable"===t.message?void f():void l(t.message);case bt:return void o.dispatch(Ye(t.code.toLowerCase()));case Tt:case Ot:return void l(t.code.toLowerCase());case"SERVICE_TEMPORARILY_UNAVAILABLE":return p=d,void f();default:return void f()}})},cancel:function(){var e;null==(e=a)||e.cancel()}}}var ir,cr=["present"],ur=["statistics"],sr=((ir={})[Ze]="Connection lost.",ir[$e]="Connected to wrong region.",ir),dr=function(e,t){var n=e.getState();switch(t.type){case re:case ne:switch(t.payload.action){case Nt:return void e.dispatch(We(t.payload.payload.chatId,!1));case Gt:return void e.dispatch(We(t.payload.payload.chat.id,!0));default:return}case ie:return t.payload.action===Ce?void t.payload.payload.chatsSummary.filter(function(e){var t=e.active;return In(n,e.id)!==t}).forEach(function(t){e.dispatch(We(t.id,t.active))}):void 0}},pr=function(e,t){t.forEach(function(t){if("present"in t){var r=n(t,cr);e("user_data",r)}else if(t.type!==rn)e("user_data",t);else{var o=n(t,ur);e("user_data",o)}})},lr=function(e,t,n){var r=e.emit,o=e.store,a=t.payload;switch(a.action){case Xt:return a.payload.properties.lc2&&"queue_pos"in a.payload.properties.lc2&&r(Jt,{chatId:a.payload.chatId,threadId:a.payload.threadId,queue:{position:a.payload.properties.lc2.queue_pos,waitTime:a.payload.properties.lc2.queue_waiting_time}}),void r("thread_properties_updated",a.payload);case At:return void function(e,t,n){u(n).setItem($n(e),JSON.stringify(t)).catch(y)}(o,a.payload.customer_side_storage,n);case Rt:switch(a.payload.reason){case ut:o.dispatch(Je(!0)),o.dispatch(Ke(100)),r("disconnected",a.payload);break;case st:case dt:case lt:case _t:case vt:case gt:case mt:o.dispatch(Be(a.payload.reason));break;case ft:tr(o,$e),o.dispatch({type:X,payload:a.payload.data});break;case ht:case yt:tr(o,a.payload.reason.toUpperCase());break;default:o.dispatch(Ke(100)),r("disconnected",a.payload)}return;case qt:return void r("availability_updated",{availability:"offline"===a.payload.groups[0].status?"offline":"online"});case Gt:return pr(r,a.payload.chat.users),void r(a.action,a.payload);case Ft:if(null===a.payload.event)return;return void r(a.action,a.payload);case Bt:case Zt:case $t:return void r(a.action,a.payload);case Wt:return pr(r,[a.payload.user]),void r(a.action,a.payload);default:return void r(a.action,a.payload)}},fr=function(e,t){var n=e.emit,r=t.payload;switch(r.action){case Nt:return void r.resolve(Rn);case be:return pr(n,r.payload.users),void r.resolve(r.payload);case Gt:return pr(n,r.payload.chat.users),void r.resolve(r.payload);case Ft:return void r.resolve(r.payload.event);case Ce:return pr(n,r.payload.users),void r.resolve(r.payload);default:return void r.resolve(r.payload)}},_r=function(e){var n=e.auth,r=e.emitter,o=e.socket,a=e.parentStorage,i=r.emit,c=ar(n,e.customerDataProvider,a);return function(e,u){switch(e.type){case X:return void o.reinitialize();case W:return void function(e,n,r){return n.getToken().then(function(n){var o=e.getState();null===mn(o)&&e.dispatch(Qe(n.entityId));var a=o.page;if(a&&a.url){var i=b(t({organization_id:o.organizationId},Tn(o))),c={session_fields:J(r||{}),group_id:o.groupId||0,page_url:a.url};return C(bn(o)+"/action/check_goals?"+i,{method:"POST",headers:{"Content-Type":"application/json",Authorization:n.tokenType+" "+n.accessToken},body:JSON.stringify(c)}).then(function(){})}})}(u,n,e.payload.sessionFields).catch(y);case Q:var s=e.payload;switch(c.cancel(),o.destroy(),s.reason){case"manual":tr(u,tt);break;case st:case pt:case _t:case mt:tr(u,Ze),i("disconnected",s);break;default:i("disconnected",s)}return void r.off();case Z:var d=e.payload,p=d.reason,l={message:sr[p],code:p};return void d.rejects.forEach(function(e){e(an(l))});case $:var f=e.payload,_=f.dynamicConfig,h=f.chats,v=f.greeting,m=t({customer:f.customer,availability:f.availability},v&&{greeting:v});return Object.defineProperty(m,"__unsafeDynamicConfig",{value:_}),Object.defineProperty(m,"__unsafeChats",{value:h}),void i("connected",m);case ee:var I=e.payload;return o.disconnect(),void("manual"!==I.reason&&i("disconnected",I));case te:return e.payload.fresh?void n.getFreshToken().catch(y):void n.hasToken().then(function(e){return e?n.getToken().then(function(e){if(36e5>=e.creationDate+e.expiresIn-Date.now())return n.invalidate().then(n.getFreshToken)}):n.getToken()}).catch(y);case ne:return e.payload.action===Rt||dr(u,e),void lr({emit:i,store:u},e,a);case re:return dr(u,e),void fr({emit:i},e);case oe:return tr(u,Ze),void o.reconnect(e.payload.delay);case ae:var E=e.payload;return void(0,E.reject)(an(E.error));case ie:return dr(u,e),void fr({emit:i},e);case ce:var T=u.getState();return function(e){return yn(e)===rt}(T)?void nr(u,e,{code:tt,message:"SDK destroyed."}):En(T)||"login"===e.payload.source?void function(e,n){var r=n.payload,o=t({request_id:r.id},r.request);if(o.action!==Re)e.emit(o);else{var a={3.6:g(en).filter(function(e){return e!==Rt})};e.emit(t({},o,{version:"3.6",payload:t({},o.payload,{pushes:a})}))}}(o,e):void nr(u,e,{code:"NO_CONNECTION",message:"No connection."});case se:return void i("customer_id",e.payload.id);case pe:return void i("disconnected",{reason:"connection_lost"});case de:return void c.sendLogin(u);case le:if(!En(u.getState()))return;return void i("connection_recovered");case fe:if(!En(u.getState()))return;return void i("connection_unstable");case _e:return o.connect(),void u.dispatch(Je());case he:if(!En(u.getState()))return;return void Pn(u,Xe(He,e.payload)).catch(y);case ye:return void i("identity_changed",e.payload);default:return}}},hr=function(e,t){var n,r=(void 0===t?{}:t).query,o=b(void 0===r?{}:r),a=o?e+"?"+o:e,i=U(),c=hn({min:1e3,max:5e3,jitter:.5}),u=3,s=null,d=function(){u=1,c.reset(),i.emit("connect")},p=function(){f(),h(),i.emit("disconnect")},l=function(e){i.emit("message",e.data)},f=function(){var e;(clearTimeout(n),u=3,s)&&((e=s).removeEventListener("open",d),e.removeEventListener("close",p),e.removeEventListener("message",l),s.close(),s=null)},_=function(){var e;u=0,s=new WebSocket(a),(e=s).addEventListener("open",d),e.addEventListener("close",p),e.addEventListener("message",l)},h=function(e){void 0===e&&(e=c.duration()),f(),0!==e?n=setTimeout(_,e):_()};return{connect:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(){if(3!==u)throw Error("Socket is already open or connecting.");clearTimeout(n),_()}),destroy:function(){i.off(),f()},disconnect:f,reconnect:h,emit:function(e){if(1!==u)throw Error("Socket is not connected.");s.send(e)},getReadyState:function(){return u},on:i.on,off:i.off}},vr=function(e,n){var r,o,a,i,c=void 0===n?{}:n,u=c.query,s=void 0===u?{}:u,d=c.emitter,p=void 0===d?U():d,l=hr(e,{query:s}),f=(o=y,{cancel:function(){clearTimeout(r),o=y},check:function(){var e=vn();return o=e.resolve,r=setTimeout(function(){var t=Error("Timeout.");t.code="TIMEOUT",e.reject(t)},2e3),e.promise},resolve:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(){clearTimeout(r),o()})}),_=function(){return 1===l.getReadyState()},h=function(){f.cancel()};return a=l,i=p,["connect","disconnect"].forEach(function(e){a.on(e,function(t){i.emit(e,t)})}),l.on("disconnect",h),l.on("message",function(e){f.resolve();var t=JSON.parse(e);p.emit("message",t)}),"undefined"!=typeof window&&void 0!==window.addEventListener&&(window.addEventListener("online",function(){_()&&f.check().then(function(){f.cancel(),p.emit("connection_recovered")},function(e){if(f.cancel(),"TIMEOUT"!==e.code)throw e;l.reconnect()})}),window.addEventListener("offline",function(){f.cancel(),_()&&p.emit("connection_unstable")})),t({},l,{destroy:function(){h(),l.destroy()},disconnect:function(){h(),l.disconnect()},reconnect:function(e){h(),l.reconnect(e)},emit:function(e){l.emit(JSON.stringify(e))},on:p.on,off:p.off})},yr=function(e,n){var r=e.getState(),o=(bn(r)+"/rtm/ws").replace(/^https/,"wss");return vr(o,{query:t({organization_id:r.organizationId},Tn(r)),emitter:n})},gr=["group_id"],mr=["comment_label"],Ir=function(e){return{chatId:e.chat_id,properties:e.properties}},Er=function(e){var n={chatId:e.chat_id,threadId:e.thread_id,transferredTo:t({},e.transferred_to.agent_ids&&{agentIds:e.transferred_to.agent_ids},e.transferred_to.group_ids&&{groupIds:e.transferred_to.group_ids}),queue:e.queue?Qn(e.queue):null};return t({},n,"manual"===e.reason?{reason:e.reason,requesterId:e.requester_id}:{reason:e.reason})},Tr=function(e){return t({id:e.id},Jn(e))},br=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},Or=function(e){return{chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,properties:e.properties}},Sr=function(e){var t=e.thread_id;return{chatId:e.chat_id,threadId:t,event:Fn(t,e.event)}},Nr=function(e){return{chatId:e.chat_id,userId:e.user_id,seenUpTo:e.seen_up_to}},Cr=function(e){return{uniqueId:e.unique_id}},wr=function(e){var n=e.chat;return{chat:t({},Yn(n),{thread:Bn(n.id,n.thread)})}},Pr=function(e){return{chatId:e.chat_id,event:Fn(e.thread_id,e.event)}},Rr=function(e){return Hn(e)},Ar=function(e){return{userId:e.user_id,chatId:e.chat_id,threadId:e.thread_id,eventId:e.event_id,postback:e.postback}},kr=function(e){var t=e.typing_indicator;return{chatId:e.chat_id,typingIndicator:{authorId:t.author_id,isTyping:t.is_typing}}},Dr=function(e){var n=e.custom_id,r=e.title,o=e.description;return t({chatId:e.chat_id,threadId:e.thread_id,authorId:e.author_id,sentAt:e.sent_at},n&&{customId:n},r&&{title:r},o&&{description:o})},Ur=function(e){return{chatId:e.chat_id,threadId:e.thread_id,event:Fn(e.thread_id,e.event)}},xr=function(e){return{id:e.id,event:Fn(null,e.event)}},jr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,queue:Wn(e.queue)}},Lr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},Mr=function(e){return{chatId:e.chat_id,threadId:e.thread_id,properties:e.properties}},qr=function(e){return{chatId:e.chat_id,user:Zn(e.user),present:e.user.present}},Gr=function(e){return{chatId:e.chat_id,userId:e.user_id,reason:e.reason}},Fr=function(e){return e.map(function(e){switch(e.type){case"group_chooser":return t({},e,{options:e.options.map(function(e){var r=e.group_id;return t({},n(e,gr),{groupId:r})})});case"rating":var r=e.comment_label;return t({},n(e,mr),{commentLabel:r});default:return e}})},Hr=function(e){var n,r;return{id:e.id,fields:!("id"in e.fields[0])?(n=e.fields,r=n.map(function(e,n){return t({},e,{id:n+""})}),Fr(r)):Fr(e.fields)}},zr=function(e){return e.enabled?t({},e,{form:Hr(e.form)}):e},Vr=function(e){var t={url:e.url};return e.title&&(t.title=e.title),e.description&&(t.description=e.description),e.image_url&&(t.imageUrl="https://"+e.image_url.replace(N,""),e.image_width&&e.image_height&&(t.imageWidth=e.image_width,t.imageHeight=e.image_height)),t},Br=function(e){var t=e.predicted_agent;return{id:e.id,predictedAgent:{id:t.id,type:t.type,name:t.name,avatar:t.avatar,jobTitle:t.job_title,isBot:t.is_bot,botType:t.bot_type},queue:e.queue}},Yr=function(e){var t,n,r,o,a,i,c=e.chats_summary.map(function(e){var t=e.last_thread_created_at,n=e.last_thread_id,r=e.last_event_per_type,o=e.properties,a=void 0===o?{}:o,i=e.users,c={id:e.id,active:e.active,access:zn(e.access),properties:a,users:i.map(Zn),lastThreadId:n||null,lastThreadCreatedAt:t||null,eventsSeenUpToMap:Vn(i)};if(!r)return c;c.lastEventsPerType=_(function(e){return Fn(e.thread_id,e.event)},r);var u,s=r,d=Object.keys(s).map(function(e){return s[e]}),p=(u=d.sort(function(e,t){return e.thread_id===t.thread_id?T(e.event.created_at,t.event.created_at):T(e.thread_created_at,t.thread_created_at)})).length>0?u[u.length-1]:void 0;return p&&c.lastEventsPerType&&(c.lastEvent=c.lastEventsPerType[p.event.type]),c});return{chatsSummary:(o=function(e){var t,n=e.lastEvent;return-1*(null!=(t=void 0!==n?n.timestamp:e.order)?t:0)},a=c,i="function"==typeof o?o:function(e){return function(e,t){for(var n="string"==typeof e?e.split("."):e,r=0,o=t;o&&n.length>r;)o=o[n[r++]];return o}(o,e)},(l(a)?[].concat(a):g(a)).sort(function(e,t){return i(e)-i(t)})),totalChats:e.total_chats,users:(t=function(e){return e.id},n=p(function(e){return e.users},c),r=[],n.filter(function(e){var n=t(e);return-1===r.indexOf(n)&&(r.push(n),!0)})),previousPageId:e.previous_page_id||null,nextPageId:e.next_page_id||null}},Jr=function(e){return e.groups_status},Kr=function(e,t){return{threads:t.threads.map(function(t){return Bn(e.payload.chat_id,t)}),previousPageId:t.previous_page_id||null,nextPageId:t.next_page_id||null}},Xr=function(e){var n,r,o=e.__priv_dynamic_config,a=e.chats,i=e.greeting;return t({dynamicConfig:o,customer:Xn(e.customer),availability:(n=o,r=n.online_groups_ids,r&&-1!==r.indexOf(n.customer_groups.monitoring.id)?"online":"offline"),chats:a.map(function(t){return{id:t.chat_id,active:"has_active_thread"in t?t.has_active_thread:e.has_active_thread,hasUnreadEvents:t.has_unread_events}})},i&&{greeting:Hn(i)})},Wr=function(e){switch(e.action){case Nt:return{action:e.action,payload:{chatId:e.payload.chat_id}};case Ct:return{action:e.action,payload:(t=e.payload,{chatId:t.chat_id,properties:t.properties})};case wt:return{action:e.action,payload:Ir(e.payload)};case Pt:return{action:e.action,payload:Er(e.payload)};case At:case Rt:return{action:e.action,payload:e.payload};case kt:return{action:e.action,payload:Tr(e.payload)};case Dt:return{action:e.action,payload:br(e.payload)};case Ut:return{action:e.action,payload:Or(e.payload)};case xt:return{action:e.action,payload:Sr(e.payload)};case jt:return{action:e.action,payload:Nr(e.payload)};case Lt:case Mt:return{action:e.action,payload:Cr(e.payload)};case qt:return{action:e.action,payload:e.payload};case Gt:return{action:e.action,payload:wr(e.payload)};case Ft:return{action:e.action,payload:Pr(e.payload)};case Ht:return{action:e.action,payload:Rr(e.payload)};case zt:return{action:e.action,payload:e.payload};case Vt:return{action:e.action,payload:Ar(e.payload)};case Bt:return{action:e.action,payload:kr(e.payload)};case Zt:return{action:e.action,payload:Dr(e.payload)};case $t:return{action:e.action,payload:Ur(e.payload)};case Yt:return{action:e.action,payload:xr(e.payload)};case Jt:return{action:e.action,payload:jr(e.payload)};case Kt:return{action:e.action,payload:Lr(e.payload)};case Xt:return{action:e.action,payload:Mr(e.payload)};case Wt:return{action:e.action,payload:qr(e.payload)};case Qt:return{action:e.action,payload:Gr(e.payload)}}var t},Qr=function(e,n){var r=e.dispatch,o=n.request_id,a=gn((0,e.getState)(),o),i=a.promise,c=a.resolve,u=function(e){var n,r=e.request,o=e.response;switch(o.action){case ge:case me:case Ie:case Ee:case Te:return{action:o.action,payload:Rn};case be:return{action:o.action,payload:(n=o.payload,t({},Yn(n),{thread:n.thread?Bn(n.id,n.thread):null}))};case Oe:return{action:o.action,payload:Xn(o.payload)};case Se:return{action:o.action,payload:zr(o.payload)};case Ne:return{action:o.action,payload:Vr(o.payload)};case Ce:return{action:o.action,payload:Yr(o.payload)};case we:return{action:o.action,payload:Jr(o.payload)};case Pe:return{action:o.action,payload:Kr(r,o.payload)};case Re:return{action:o.action,payload:Xr(o.payload)};case Ae:return{action:o.action,payload:Rn};case ke:return{action:o.action,payload:Br(o.payload)};case Le:case Me:case xe:case je:case Ge:case Fe:case He:case ze:case Ve:return{action:o.action,payload:Rn}}}({request:a.request,response:n});r({type:ie,payload:t({id:o,promise:i,resolve:c},u)})},Zr=function(e,n){var r=e.dispatch;return n.on("connect",function(){r({type:de})}),n.on("message",function(n){if("response"===n.type){if(!n.success)return void function(e,t){var n,r=e.dispatch,o=t.request_id,a=t.payload,i=gn((0,e.getState)(),o);r({type:ae,payload:{id:o,reject:i.reject,error:(n=a.error,{code:n.type.toUpperCase(),message:n.message})}})}(e,n);switch(n.action){case De:case Ue:case qe:return;default:return void Qr(e,n)}}if("request_id"in n)switch(n.action){case Gt:case Ft:return void function(e,n){var r=e.dispatch,o=n.request_id,a=gn((0,e.getState)(),o),i=a.promise,c=a.resolve,u=Wr(n);r({type:re,payload:t({id:o,promise:i,resolve:c},u)})}(e,n)}!function(e,t){var n=Wr(t);n&&e.dispatch({type:ne,payload:n})}(e,n)}),n.on("disconnect",function(){tr(e,Ze),yn(e.getState())===nt&&e.dispatch({type:pe})}),n.on("connection_unstable",function(){r({type:fe})}),n.on("connection_recovered",function(){r({type:le})}),n.off},$r="UPLOAD_FAILED",eo=function(e,t,n){var r=void 0===n?{}:n,o=r.headers,a=r.method,i=void 0===a?"POST":a,c=r.onProgress,u=r.withCredentials,s=void 0!==u&&u,d=new XMLHttpRequest;return{promise:new Promise(function(n,r){var a,u;"function"==typeof c&&(d.upload.onprogress=function(e){c(e.loaded/e.total)}),d.onload=function(){var e;try{e=JSON.parse(d.response)}catch(t){e=d.response}if(200>d.status||d.status>=300){var t=Error("Upload failed.");t.code=$r,t.response=e,r(t)}else n(e)},d.onerror=function(){var e=Error("Upload failed.");e.code=$r,r(e)},d.onabort=function(){var e=Error("Upload canceled.");e.code="UPLOAD_CANCELED",r(e)},d.open(i,e),d.withCredentials=s,o&&Object.keys(o).forEach(function(e){return d.setRequestHeader(e,o[e])}),d.send((a=t,u=new FormData,Object.keys(a).forEach(function(e){return u.append(e,a[e])}),u))}),cancel:function(){d.abort()}}},to=1048576,no=10485760,ro=function(e,t){if(void 0===t&&(t=2),1024>e)return e+" b";var n=e/1024;if(to>e)return n.toFixed(t)+" kb";var r=n/1024;return 1073741824>e?r.toFixed(t)+" MB":(r/1024).toFixed(t)+" GB"},oo=function(e,n){var r,o=e.auth,a=e.store,i=n.file,c=n.onProgress,u=!1;return{promise:new Promise(function(e,n){!function(e){if(e.size>no)throw an({message:"The file is too big (max size is "+ro(no)+").",code:"TOO_BIG_FILE"})}(i);var s=a.getState(),d=b(t({organization_id:s.organizationId},Tn(s))),p=bn(s)+"/action/upload_file?"+d,l={file:i};o.getToken().then(function(t){u?n(Error("Upload cancelled.")):(r=eo(p,l,{headers:{Authorization:t.tokenType+" "+t.accessToken},onProgress:c})).promise.then(e,function(e){if(e.response){var t=e.response.error;n(an({message:t.message,code:t.type.toUpperCase()}))}else n(e)})})}),cancel:function(){u||(u=!0,r&&r.cancel())}}},ao=["on","once","off","getChatHistory","auth"],io="LISTENER_IDENTITY",co={},uo=function(e,t){void 0===t&&(t="");var n=Object.keys(e);return n.map(function(n){var r=e[n];return function(){for(var e,o=arguments.length,a=Array(o),i=0;o>i;i++)a[i]=arguments[i];(e=console).info.apply(e,[t+"."+n+"() ===>"].concat(a));var c=r.apply(void 0,a);return"function"==typeof(null==c?void 0:c.then)?c.then(function(e){return console.info(t+"."+n+"() <===",e),e},function(e){throw console.error(t+"."+n+"() <===",e),e}):c}}).reduce(function(e,t,r){return e[n[r]]=t,e},{})},so=function(e,t,n){if(void 0===n[io]&&Object.defineProperty(n,io,{value:{}}),n[io][t])return co[n[io][t]];var r=function(r){console.info("."+e+'("'+t+'") <===',r),n(r)},o=v(co);return n[io][t]=o,co[o]=r,r},po=["autoConnect","customerDataProvider","identityProvider","parentStorage","env"];e.connectionStatuses=ct,e.debug=function(e){var r=e;console.warn("You probably do not want to use debug(customerSDK) in your production environment.");var o=r.on,a=r.once,i=r.off,c=r.getChatHistory,u=r.auth,s=n(r,ao),d=uo(s);return Object.freeze(t({auth:Object.freeze(uo(u,".auth"))},d,{getChatHistory:function(){for(var e,t=arguments.length,n=Array(t),r=0;t>r;r++)n[r]=arguments[r];(e=console).info.apply(e,[".getChatHistory()"].concat(n));var o=c.apply(void 0,n),a="history.next()";return{next:function(){var e;return(e=console).info.apply(e,[a+" ===>"].concat(n)),o.next().then(function(e){var t;return(t=console).info.apply(t,[a+" <==="].concat(n,[e])),e},function(e){var t;throw(t=console).error.apply(t,[a+" <==="].concat(n,[e])),e})}}},off:function(e,t){console.info('.off("'+e+'", '+(t.name||"anonymous")+")");var n=t;void 0!==t[io]&&(n=co[t[io][e]]);i(e,n)},on:function(e,t){o(e,so("on",e,t))},once:function(e,t){a(e,so("once",e,t))}}))},e.eventTypes=H,e.init=function(e){A(e);var r=e.autoConnect,o=void 0===r||r,a=e.customerDataProvider,i=e.identityProvider,c=e.parentStorage,u=e.env,s=n(e,po),d=u&&["labs","staging"].includes(u)?u:"production",p=Cn(t({},s,{env:d})),l=U(),f=function(e){var n=U(),r=yr(e,n);return t({},Object.keys(r).reduce(function(e,t){return e[t]=function(){var e;return(e=r)[t].apply(e,arguments)},e},{}),{reinitialize:function(){r.disconnect(),(r=yr(e,n)).connect()}})}(p),_="function"==typeof i,h=_?i():k(t({},s,{env:d}),c);p.addSideEffectsHandler(_r({emitter:l,socket:f,auth:h,customerDataProvider:a,parentStorage:c,hasCustomIdentityProvider:_})),Zr(p,f);var v=Pn.bind(null,p),g=function(){p.dispatch({type:_e})},m=Object.freeze({acceptGreeting:function(e){return v(Xe(ge,{greeting_id:e.greetingId,unique_id:e.uniqueId}))},auth:h,cancelGreeting:function(e){return v(Xe(me,{unique_id:e.uniqueId}))},cancelRate:function(e){var t=e.chatId,n=e.properties,r=void 0===n?["score"]:n;return m.listThreads({chatId:t}).then(function(e){var n=e.threads;if(!n.length)throw an({message:'There is no thread in "'+t+'".',code:et});return m.deleteThreadProperties({chatId:t,threadId:n[0].id,properties:{rating:r}})})},connect:g,deactivateChat:function(e){return v(Xe("deactivate_chat",{id:e.id}))},deleteChatProperties:function(e){return v(Xe(Ie,{id:e.id,properties:e.properties}))},deleteEventProperties:function(e){return v(Xe(Ee,{chat_id:e.chatId,thread_id:e.threadId,event_id:e.eventId,properties:e.properties}))},deleteThreadProperties:function(e){return v(Xe(Te,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},destroy:function(){p.dispatch(Be("manual"))},disconnect:function(){p.dispatch(Ye("manual"))},getChat:function(e){return v(Xe(be,{chat_id:e.chatId,thread_id:e.threadId}))},getChatHistory:function(e){return function(e,t){var n={status:"idle",queuedTasks:[],nextPageId:null},r=function(e){function t(t,n){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(o,a){switch(n.status){case"idle":return n.status="fetching",void e.listThreads(n.nextPageId?{chatId:t,pageId:n.nextPageId}:{chatId:t,minEventsCount:25}).then(function(e){var t=e.threads;n.nextPageId=e.nextPageId,n.nextPageId?(n.status="idle",o({value:{threads:[].concat(t).reverse()},done:!1})):(n.status="done",o({value:{threads:[].concat(t).reverse()},done:!0}));var a=n.queuedTasks.shift();a&&r(a.resolve,a.reject)},function(e){var t=n.queuedTasks;n.status="idle",n.queuedTasks=[],a(e),t.forEach(function(t){return t.reject(e)})});case"fetching":return void n.queuedTasks.push({resolve:o,reject:a});case"done":return void o({value:void 0,done:!0})}});return{next:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return""+e},t}(function(){return new Promise(r)})}}(m,e.chatId)},getCustomer:function(){return v(Xe(Oe,{}))},getForm:function(e){return v(Xe(Se,{group_id:e.groupId,type:e.type}))},getUrlInfo:function(e){return v(Xe(Ne,{url:e.url}))},listChats:function(e){return void 0===e&&(e={}),"limit"in e&&"number"==typeof e.limit&&e.limit>25?Promise.reject(Error("Specified limit is too high (max 25).")):v(Xe(Ce,void 0===e.pageId?{limit:e.limit||10}:{page_id:e.pageId}))},listGroupStatuses:function(e){var t=(void 0===e?{}:e).groupIds;return v(Xe(we,t?{group_ids:t}:{all:!0}))},listThreads:function(e){return v(Xe(Pe,void 0===e.pageId?{chat_id:e.chatId,sort_order:e.sortOrder,limit:e.limit,min_events_count:e.minEventsCount}:{chat_id:e.chatId,page_id:e.pageId}))},markEventsAsSeen:function(e){return v(Xe(Ae,{chat_id:e.chatId,seen_up_to:e.seenUpTo}))},on:l.on,once:l.once,off:l.off,rateChat:function(e){var t=e.chatId,n=e.rating;return m.listThreads({chatId:t}).then(function(e){var r=e.threads;if(!r.length)throw an({message:'There is no thread in "'+t+'".',code:et});return m.updateThreadProperties({chatId:t,threadId:r[0].id,properties:{rating:n}})})},requestWelcomeMessage:function(e){var t=(void 0===e?{}:e).id;return v(Xe(ke,t?{id:t}:{}))},resumeChat:function(n){return wn({env:d,organizationId:e.organizationId,eventName:"chat_started"}),v(Xe(De,function(e){var n=Y(e);return t({},n,{chat:t({},n.chat,{id:e.chat.id})})}(n)))},sendEvent:function(e){return v(function(e){var t=e.attachToLastThread,n={chat_id:e.chatId,event:B(e.event)};return t&&(n.attach_to_last_thread=!0),Xe(Ue,n)}(e))},sendGreetingButtonClicked:function(e){return function(e,n){var r=e.store,o=n.greetingUniqueId,a=n.buttonId;return e.auth.getToken().then(function(e){var n=r.getState(),i=b(t({organization_id:n.organizationId},Tn(n))),c=bn(n)+"/action/"+xe+"?"+i;return fetch(c,{method:"POST",headers:{"Content-Type":"application/json",Authorization:e.tokenType+" "+e.accessToken},body:JSON.stringify({greeting_unique_id:o,button_id:a}),keepalive:!0}).then(y)})}({auth:h,store:p},e)},sendCustomerActions:function(e){return function(e,n){var r=e.store,o=n.actions;return e.auth.getToken().then(function(e){var n=r.getState(),a=b(t({organization_id:n.organizationId},Tn(n))),i=bn(n)+"/action/send_customer_actions?"+a;return fetch(i,{method:"POST",headers:{"Content-Type":"application/json",Authorization:e.tokenType+" "+e.accessToken},body:JSON.stringify({actions:o}),keepalive:!0}).then(y)})}({auth:h,store:p},e)},sendRichMessagePostback:function(e){return v(Xe(je,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,postback:e.postback}))},setCustomerSessionFields:function(e){return v(Xe(Me,{session_fields:J(e.sessionFields)}))},setSneakPeek:function(e){var t=e.chatId,n=e.sneakPeekText,r=p.getState();In(r,t)&&En(r)&&v(Xe(Le,{chat_id:t,sneak_peek_text:n})).catch(y)},startChat:function(t){return void 0===t&&(t={}),wn({env:d,organizationId:e.organizationId,eventName:"chat_started"}),v(Xe(qe,Y(t)))},updateChatProperties:function(e){return v(Xe(Ge,{id:e.id,properties:e.properties}))},updateCustomer:function(e){return v(Xe(Fe,K(e)))},updateCustomerPage:function(e){p.dispatch({type:he,payload:I(["title","url"],e)})},updateEventProperties:function(e){return v(Xe(ze,{chat_id:e.chatId,event_id:e.eventId,thread_id:e.threadId,properties:e.properties}))},updateThreadProperties:function(e){return v(Xe(Ve,{chat_id:e.chatId,thread_id:e.threadId,properties:e.properties}))},uploadFile:function(e){return oo({auth:h,store:p},e)}});return o?g():p.dispatch({type:W,payload:{sessionFields:"function"==typeof a?a().sessionFields:{}}}),m},e.parseCustomEvent=Ln,e.parseEvent=Fn,e.parseFile=Un,e.parseFilledForm=xn,e.parseForm=Hr,e.parseGreeting=Hn,e.parseMessage=jn,e.parseRichMessage=qn,e.parseSystemMessage=Gn,e.serverDisconnectionReasons=It,e.serverErrorCodes=St,e.serverPushActions=en,e.sortOrders=tn,e.userTypes=on,Object.defineProperty(e,"__esModule",{value:!0})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@livechat/customer-sdk",
3
- "version": "4.0.2",
3
+ "version": "5.0.0",
4
4
  "description": "SDK for connecting to LiveChat as a customer",
5
5
  "contributors": [
6
6
  "Konrad Kruk <k.kruk@livechatinc.com>",
@@ -22,10 +22,10 @@
22
22
  ],
23
23
  "dependencies": {
24
24
  "@livechat/backoff": "^0.1.0",
25
- "@livechat/customer-auth": "^1.0.0",
25
+ "@livechat/customer-auth": "^2.0.0",
26
26
  "@livechat/data-utils": "^1.0.3",
27
27
  "@livechat/file-upload": "^0.3.0",
28
- "@livechat/isomorphic-storage": "^0.1.0",
28
+ "@livechat/isomorphic-storage": "^1.0.0",
29
29
  "@livechat/mitt": "^0.1.3",
30
30
  "@livechat/platform-client": "^0.3.2",
31
31
  "@livechat/promise-utils": "^1.0.1",
@@ -36,27 +36,24 @@
36
36
  "unfetch": "^4.2.0"
37
37
  },
38
38
  "devDependencies": {
39
- "@babel/core": "7.20.7",
40
- "@babel/plugin-proposal-class-properties": "^7.10.4",
41
- "@babel/plugin-syntax-dynamic-import": "^7.8.3",
42
- "@babel/preset-env": "^7.10.4",
43
- "@babel/preset-typescript": "^7.18.6",
39
+ "@babel/core": "7.28.5",
40
+ "@babel/preset-env": "7.28.5",
41
+ "@babel/preset-typescript": "7.28.5",
44
42
  "@livechat/customer-api-fake": "*",
45
- "@rollup/plugin-alias": "^3.1.1",
46
- "@rollup/plugin-babel": "^5.2.1",
47
- "@rollup/plugin-commonjs": "^15.0.0",
43
+ "@rollup/plugin-alias": "^3.1.9",
44
+ "@rollup/plugin-babel": "6.1.0",
45
+ "@rollup/plugin-commonjs": "^15.1.0",
48
46
  "@rollup/plugin-node-resolve": "^9.0.0",
49
- "@rollup/plugin-replace": "^2.3.3",
47
+ "@rollup/plugin-replace": "^2.4.2",
48
+ "@rollup/plugin-terser": "^1.0.0",
50
49
  "babel-jest": "^26.6.0",
51
50
  "cross-env": "^5.0.0",
52
51
  "front-matter": "^2.2.0",
53
52
  "jest": "26.6.0",
54
- "lerna-alias": "3.0.3-0",
55
- "lodash": "^4.17.4",
53
+ "lodash": "^4.18.1",
56
54
  "rimraf": "^2.6.1",
57
- "rollup": "^2.27.1",
58
- "rollup-plugin-dotenv": "^0.3.0",
59
- "rollup-plugin-terser": "^7.0.2"
55
+ "rollup": "^2.79.2",
56
+ "rollup-plugin-dotenv": "^0.5.1"
60
57
  },
61
58
  "scripts": {
62
59
  "docs:concat": "node scripts/concatDocs.js",
@@ -65,6 +62,7 @@
65
62
  "test": "jest",
66
63
  "example": "npm run start --prefix example",
67
64
  "prepare": "npm run build",
65
+ "prepublishOnly": "../../scripts/prepublish-package.sh",
68
66
  "precommit": "npm run docs:concat && git --git-dir ../../.git --work-tree ../../ add README.md",
69
67
  "//prepublish": "echo 'The code in this package connects to the very latest dev Customer API (unstable). It should not be published to npm. If you want to publish a new version you should checkout on the commit that has been used to publish the latest version of this package, apply your changes there and publish from there.' && exit 1 && npm test"
70
68
  }
@@ -1,12 +1,12 @@
1
1
  import * as Actions from './types/actions';
2
- import { Request } from './types/frames';
3
2
  import { RequestBodyEvent } from './types/clientEntities';
3
+ import { Request } from './types/frames';
4
4
  export declare const destroy: (reason: string) => Actions.DestroyAction;
5
5
  export declare const loginSuccess: (payload: Actions.LoginSuccessAction['payload']) => Actions.LoginSuccessAction;
6
6
  export declare const pauseConnection: (reason: string) => Actions.PauseConnectionAction;
7
7
  export declare const prefetchToken: (fresh?: boolean) => Actions.PrefetchTokenAction;
8
8
  export declare const reconnect: (delay: number) => Actions.ReconnectAction;
9
- export declare const sendRequest: <A extends "accept_greeting" | "cancel_greeting" | "deactivate_chat" | "delete_chat_properties" | "delete_event_properties" | "delete_thread_properties" | "get_chat" | "get_customer" | "get_form" | "get_predicted_agent" | "get_url_info" | "list_chats" | "list_group_statuses" | "list_threads" | "login" | "mark_events_as_seen" | "resume_chat" | "send_event" | "send_rich_message_postback" | "send_sneak_peek" | "set_customer_session_fields" | "start_chat" | "update_chat_properties" | "update_customer" | "update_customer_page" | "update_event_properties" | "update_thread_properties">(action: A, payload: (Extract<{
9
+ export declare const sendRequest: <A extends "update_customer_page" | "accept_greeting" | "cancel_greeting" | "deactivate_chat" | "delete_chat_properties" | "delete_event_properties" | "delete_thread_properties" | "get_chat" | "get_customer" | "get_form" | "get_url_info" | "list_chats" | "list_group_statuses" | "list_threads" | "login" | "mark_events_as_seen" | "request_welcome_message" | "resume_chat" | "send_event" | "send_greeting_button_clicked" | "send_rich_message_postback" | "send_sneak_peek" | "set_customer_session_fields" | "start_chat" | "update_chat_properties" | "update_customer" | "update_event_properties" | "update_thread_properties">(action: A, payload: (Extract<{
10
10
  request_id: string;
11
11
  version?: string | undefined;
12
12
  action: "accept_greeting";
@@ -96,15 +96,6 @@ export declare const sendRequest: <A extends "accept_greeting" | "cancel_greetin
96
96
  };
97
97
  }, {
98
98
  action: A;
99
- }> | Extract<{
100
- request_id: string;
101
- version?: string | undefined;
102
- action: "get_predicted_agent";
103
- payload: {
104
- group_id?: number | undefined;
105
- };
106
- }, {
107
- action: A;
108
99
  }> | Extract<{
109
100
  request_id: string;
110
101
  version?: string | undefined;
@@ -168,6 +159,7 @@ export declare const sendRequest: <A extends "accept_greeting" | "cancel_greetin
168
159
  is_mobile?: boolean | undefined;
169
160
  group_id?: number | undefined;
170
161
  referrer?: string | undefined;
162
+ tab_id?: string | undefined;
171
163
  pushes?: Record<string, readonly import("./types").SubscribablePush[]> | undefined;
172
164
  };
173
165
  }, {
@@ -182,6 +174,15 @@ export declare const sendRequest: <A extends "accept_greeting" | "cancel_greetin
182
174
  };
183
175
  }, {
184
176
  action: A;
177
+ }> | Extract<{
178
+ request_id: string;
179
+ version?: string | undefined;
180
+ action: "request_welcome_message";
181
+ payload: {
182
+ id?: string | undefined;
183
+ };
184
+ }, {
185
+ action: A;
185
186
  }> | Extract<{
186
187
  request_id: string;
187
188
  version?: string | undefined;
@@ -212,6 +213,16 @@ export declare const sendRequest: <A extends "accept_greeting" | "cancel_greetin
212
213
  };
213
214
  }, {
214
215
  action: A;
216
+ }> | Extract<{
217
+ request_id: string;
218
+ version?: string | undefined;
219
+ action: "send_greeting_button_clicked";
220
+ payload: {
221
+ greeting_unique_id: string;
222
+ button_id: string;
223
+ };
224
+ }, {
225
+ action: A;
215
226
  }> | Extract<{
216
227
  request_id: string;
217
228
  version?: string | undefined;
@@ -328,4 +339,9 @@ export declare const sendEvent: ({ chatId, event, attachToLastThread, }: {
328
339
  export declare const setChatActive: (id: string, active: boolean) => Actions.SetChatActiveAction;
329
340
  export declare const setSelfId: (id: string) => Actions.SetSelfIdAction;
330
341
  export declare const socketDisconnected: () => Actions.SocketDisconnectedAction;
342
+ export declare const clearSensitiveSessionState: () => Actions.ClearSensitiveSessionStateAction;
343
+ export declare const identityChanged: (payload: {
344
+ previousId: string;
345
+ newId: string;
346
+ }) => Actions.IdentityChangedAction;
331
347
  //# sourceMappingURL=actions.d.ts.map
@@ -13,6 +13,7 @@ type RequestBodyChat = {
13
13
  export type RequestBodyStartChatData = Any.Compute<{
14
14
  active?: boolean;
15
15
  continuous?: boolean;
16
+ welcomeMessageId?: string;
16
17
  } & {
17
18
  chat?: Any.Compute<RequestBodyChat>;
18
19
  }>;
@@ -29,6 +30,7 @@ type ChatActivationThreadData = {
29
30
  properties?: serverEntities.Properties;
30
31
  };
31
32
  type ChatActivationData = {
33
+ welcome_message_id?: string;
32
34
  active?: boolean;
33
35
  continuous?: boolean;
34
36
  chat: {
@@ -38,7 +40,7 @@ type ChatActivationData = {
38
40
  };
39
41
  };
40
42
  export declare const parseEvent: (event: clientEntities.RequestBodyEvent) => serverEntities.RequestBodyEvent;
41
- export declare const parseStartChatData: ({ active, chat, continuous, }: RequestBodyStartChatData) => ChatActivationData;
43
+ export declare const parseStartChatData: ({ active, chat, welcomeMessageId, continuous, }: RequestBodyStartChatData) => ChatActivationData;
42
44
  export declare const parseResumeChatData: (requestData: RequestBodyResumeChatData) => {
43
45
  chat: {
44
46
  id: string;
@@ -46,6 +48,7 @@ export declare const parseResumeChatData: (requestData: RequestBodyResumeChatDat
46
48
  thread?: ChatActivationThreadData | undefined;
47
49
  properties?: serverEntities.Properties | undefined;
48
50
  };
51
+ welcome_message_id?: string | undefined;
49
52
  active?: boolean | undefined;
50
53
  continuous?: boolean | undefined;
51
54
  };
@@ -1,5 +1,4 @@
1
1
  export declare const CONNECTION_LOST = "CONNECTION_LOST";
2
- export declare const IDENTITY_MISMATCH = "IDENTITY_MISMATCH";
3
2
  export declare const MISDIRECTED_CONNECTION = "MISDIRECTED_CONNECTION";
4
3
  export declare const MISSING_CHAT_THREAD = "MISSING_CHAT_THREAD";
5
4
  export declare const NO_CONNECTION = "NO_CONNECTION";
@@ -1,2 +1,2 @@
1
- export declare const LIVECHAT_ORGANIZATION_ID = "feaf6c0e-9f43-48ff-9ad0-8e24e0350932";
1
+ export declare const LIVECHAT_ORGANIZATION_ID = "4c8c0751-837f-4a11-928e-047b2d095307";
2
2
  //# sourceMappingURL=organizationIds.d.ts.map
@@ -20,4 +20,6 @@ export declare const SOCKET_RECOVERED = "socket_recovered";
20
20
  export declare const SOCKET_UNSTABLE = "socket_unstable";
21
21
  export declare const START_CONNECTION = "start_connection";
22
22
  export declare const UPDATE_CUSTOMER_PAGE = "update_customer_page";
23
+ export declare const CLEAR_SENSITIVE_SESSION_STATE = "clear_sensitive_session_state";
24
+ export declare const IDENTITY_CHANGED = "identity_changed";
23
25
  //# sourceMappingURL=reduxActions.d.ts.map
@@ -3,7 +3,6 @@ export declare const CHAT_PROPERTIES_DELETED = "chat_properties_deleted";
3
3
  export declare const CHAT_PROPERTIES_UPDATED = "chat_properties_updated";
4
4
  export declare const CHAT_TRANSFERRED = "chat_transferred";
5
5
  export declare const CUSTOMER_DISCONNECTED = "customer_disconnected";
6
- export declare const CUSTOMER_PAGE_UPDATED = "customer_page_updated";
7
6
  export declare const CUSTOMER_SIDE_STORAGE_UPDATED = "customer_side_storage_updated";
8
7
  export declare const CUSTOMER_UPDATED = "customer_updated";
9
8
  export declare const EVENT_PROPERTIES_DELETED = "event_properties_deleted";
@@ -19,9 +18,12 @@ export declare const INCOMING_GREETING = "incoming_greeting";
19
18
  export declare const INCOMING_MULTICAST = "incoming_multicast";
20
19
  export declare const INCOMING_RICH_MESSAGE_POSTBACK = "incoming_rich_message_postback";
21
20
  export declare const INCOMING_TYPING_INDICATOR = "incoming_typing_indicator";
21
+ export declare const INCOMING_WELCOME_MESSAGE = "incoming_welcome_message";
22
22
  export declare const QUEUE_POSITION_UPDATED = "queue_position_updated";
23
23
  export declare const THREAD_PROPERTIES_DELETED = "thread_properties_deleted";
24
24
  export declare const THREAD_PROPERTIES_UPDATED = "thread_properties_updated";
25
25
  export declare const USER_ADDED_TO_CHAT = "user_added_to_chat";
26
26
  export declare const USER_REMOVED_FROM_CHAT = "user_removed_from_chat";
27
+ export declare const INCOMING_THINKING_INDICATOR = "incoming_thinking_indicator";
28
+ export declare const INCOMING_EVENT_PREVIEW = "incoming_event_preview";
27
29
  //# sourceMappingURL=serverPushActions.d.ts.map
@@ -8,15 +8,17 @@ export declare const DELETE_THREAD_PROPERTIES = "delete_thread_properties";
8
8
  export declare const GET_CHAT = "get_chat";
9
9
  export declare const GET_CUSTOMER = "get_customer";
10
10
  export declare const GET_FORM = "get_form";
11
- export declare const GET_PREDICTED_AGENT = "get_predicted_agent";
12
11
  export declare const GET_URL_INFO = "get_url_info";
13
12
  export declare const LIST_CHATS = "list_chats";
14
13
  export declare const LIST_GROUP_STATUSES = "list_group_statuses";
15
14
  export declare const LIST_THREADS = "list_threads";
16
15
  export declare const LOGIN = "login";
17
16
  export declare const MARK_EVENTS_AS_SEEN = "mark_events_as_seen";
17
+ export declare const REQUEST_WELCOME_MESSAGE = "request_welcome_message";
18
18
  export declare const RESUME_CHAT = "resume_chat";
19
19
  export declare const SEND_EVENT = "send_event";
20
+ export declare const SEND_GREETING_BUTTON_CLICKED = "send_greeting_button_clicked";
21
+ export declare const SEND_CUSTOMER_ACTIONS = "send_customer_actions";
20
22
  export declare const SEND_RICH_MESSAGE_POSTBACK = "send_rich_message_postback";
21
23
  export declare const SEND_SNEAK_PEEK = "send_sneak_peek";
22
24
  export declare const SET_CUSTOMER_SESSION_FIELDS = "set_customer_session_fields";
@@ -1,4 +1,4 @@
1
- import { Env } from '@livechat/customer-auth/src/types';
1
+ import type { Env } from '@livechat/customer-auth/src/types';
2
2
  export type Config = {
3
3
  env: Env;
4
4
  organizationId: string;
@@ -8,7 +8,7 @@ export type Config = {
8
8
  * Logs event to Graylog with provided config data.
9
9
  * Logging request is fired only when all of those conditions are true:
10
10
  * 1. package is used in lc production environment
11
- * 2. package is used standalone because only then process.env.CUSTOMER_SDK_PACKAGE_NAME will be set to customer_sdk
11
+ * 2. package is used standalone because only then process.env.PUBLIC_CUSTOMER_SDK_PACKAGE_NAME will be set to customer_sdk
12
12
  */
13
13
  export declare const log: ({ env, organizationId, eventName }: Config) => Promise<void>;
14
14
  //# sourceMappingURL=index.d.ts.map
package/types/index.d.ts CHANGED
@@ -1,9 +1,4 @@
1
- import { UploadFileOptions } from './uploadFile';
2
1
  import * as actions from './actions';
3
- import { RequestBodyResumeChatData, RequestBodyStartChatData } from './clientDataParsers';
4
- import { Config, Env, Page, SortOrder } from './types';
5
- import * as clientEntities from './types/clientEntities';
6
- export { default as debug } from './debug';
7
2
  import * as connectionStatuses from './constants/connectionStatuses';
8
3
  import * as eventTypes from './constants/eventTypes';
9
4
  import * as serverDisconnectionReasons from './constants/serverDisconnectionReasons';
@@ -11,13 +6,21 @@ import * as serverErrorCodes from './constants/serverErrorCodes';
11
6
  import * as serverPushActions from './constants/serverPushActions';
12
7
  import * as sortOrders from './constants/sortOrders';
13
8
  import * as userTypes from './constants/userTypes';
9
+ import * as clientEntities from './types/clientEntities';
10
+ import { RequestBodyResumeChatData, RequestBodyStartChatData } from './clientDataParsers';
11
+ import { SendCustomerActionsOptions } from './sendCustomerActions';
12
+ import { SendGreetingButtonClickedOptions } from './sendGreetingButtonClicked';
13
+ import { Config, Page, SortOrder } from './types';
14
+ import { UploadFileOptions } from './uploadFile';
15
+ export { default as debug } from './debug';
14
16
  export { connectionStatuses, eventTypes, serverDisconnectionReasons, serverErrorCodes, serverPushActions, sortOrders, userTypes, };
15
17
  export * from './types/clientEntities';
16
18
  export type { CustomerSessionFields, CustomerData, CustomerDataProvider, IdentityProvider, Config, ConnectionStatus, Page, SortOrder, SubscribablePush, } from './types/index';
17
19
  export type { CustomerAuth, CustomerAuthToken } from '@livechat/customer-auth';
20
+ export type { SendCustomerActionsAction, SendCustomerActionsOptions } from './sendCustomerActions';
18
21
  export * from './serverEventParser';
19
22
  export { parseForm } from './serverFrameParser';
20
- export declare const init: (config: Config, env: Env | undefined, licenseId: number) => Readonly<{
23
+ export declare const init: (config: Config) => Readonly<{
21
24
  acceptGreeting({ greetingId, uniqueId }: {
22
25
  greetingId: number;
23
26
  uniqueId: string;
@@ -107,9 +110,6 @@ export declare const init: (config: Config, env: Env | undefined, licenseId: num
107
110
  };
108
111
  enabled: true;
109
112
  }>;
110
- getPredictedAgent(params?: {
111
- groupId?: number;
112
- }): Promise<clientEntities.PredictedAgent>;
113
113
  getUrlInfo({ url }: {
114
114
  url: string;
115
115
  }): Promise<clientEntities.UrlInfo>;
@@ -193,8 +193,26 @@ export declare const init: (config: Config, env: Env | undefined, licenseId: num
193
193
  }): Promise<Readonly<{
194
194
  readonly success: true;
195
195
  }>>;
196
+ requestWelcomeMessage({ id }?: {
197
+ id?: string | undefined;
198
+ }): Promise<{
199
+ id: string;
200
+ predictedAgent: {
201
+ type: "agent";
202
+ id: string;
203
+ name: string;
204
+ avatar: string;
205
+ jobTitle: string;
206
+ isBot: boolean;
207
+ } & {
208
+ botType: "chatbot" | "ai_agent";
209
+ };
210
+ queue: boolean;
211
+ }>;
196
212
  resumeChat(data: RequestBodyResumeChatData): Promise<clientEntities.IncomingChat>;
197
213
  sendEvent(params: Parameters<typeof actions.sendEvent>[0]): Promise<clientEntities.Event>;
214
+ sendGreetingButtonClicked(options: SendGreetingButtonClickedOptions): Promise<void>;
215
+ sendCustomerActions(options: SendCustomerActionsOptions): Promise<void>;
198
216
  sendRichMessagePostback({ chatId, threadId, eventId, postback, }: {
199
217
  chatId: string;
200
218
  threadId: string;