robodialog 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -0
- package/dist/index.d.ts +59 -0
- package/dist/index.html +93 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/index.umd.cjs +2 -0
- package/dist/index.umd.cjs.map +1 -0
- package/dist/widget.js +105 -0
- package/dist/widget.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget.js","sources":["../node_modules/preact/dist/preact.module.js","../node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","../node_modules/preact/hooks/dist/hooks.module.js","../src/hooks/common.ts","../src/hooks/localStorage.ts","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../src/lib/axios.ts","../node_modules/property-expr/index.js","../node_modules/tiny-case/index.js","../node_modules/toposort/index.js","../node_modules/yup/index.esm.js","../src/services/validations/helper.ts","../src/services/validations/live.ts","../src/services/live.ts","../src/services/validations/conversation.ts","../src/services/conversation.ts","../src/components/icons.tsx","../src/assets/logo.png","../src/hooks/date.ts","../src/services/validations/message.ts","../src/services/message.ts","../src/services/asset.ts","../src/services/validations/review.ts","../src/services/review.ts","../src/hooks/sseParser.ts","../src/utils/constant.ts","../src/components/functionsHelper.ts","../node_modules/marked/lib/marked.esm.js","../src/components/htmlHelper.tsx","../node_modules/preact/compat/dist/compat.module.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/cjs/react-is.development.js","../node_modules/react-is/index.js","../node_modules/object-assign/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/lib/has.js","../node_modules/prop-types/checkPropTypes.js","../node_modules/prop-types/factoryWithTypeCheckers.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/clsx/dist/clsx.js","../node_modules/react-draggable/build/cjs/utils/shims.js","../node_modules/react-draggable/build/cjs/utils/getPrefix.js","../node_modules/react-draggable/build/cjs/utils/domFns.js","../node_modules/react-draggable/build/cjs/utils/positionFns.js","../node_modules/react-draggable/build/cjs/utils/log.js","../node_modules/react-draggable/build/cjs/DraggableCore.js","../node_modules/react-draggable/build/cjs/Draggable.js","../node_modules/react-draggable/build/cjs/cjs.js","../src/components/streamingChatMessage.tsx","../src/components/Toast.tsx","../src/hooks/useToast.tsx","../src/main/chat.tsx","../src/utils/console.ts","../node_modules/centrifuge/build/index.mjs","../src/main/ChatbotWidget.tsx","../src/embed.tsx"],"sourcesContent":["var n,l,u,t,i,r,o,e,f,c,s,a,h,p={},v=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,w=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function g(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return m(l,e,i,r,null)}function m(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function b(){return{current:null}}function k(n){return n.children}function x(n,l){this.props=n,this.context=l}function S(n,l){if(null==l)return n.__?S(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?S(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!$.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)($)}function $(){for(var n,u,t,r,o,f,c,s=1;i.length;)i.length>s&&i.sort(e),n=i.shift(),s=i.length,n.__d&&(t=void 0,r=void 0,o=(r=(u=n).__v).__e,f=[],c=[],u.__P&&((t=d({},r)).__v=r.__v+1,l.vnode&&l.vnode(t),O(u.__P,t,r,u.__n,u.__P.namespaceURI,32&r.__u?[o]:null,f,null==o?S(r):o,!!(32&r.__u),c),t.__v=r.__v,t.__.__k[t.__i]=t,N(f,t,c),r.__e=r.__=null,t.__e!=o&&C(t)));$.__r=0}function I(n,l,u,t,i,r,o,e,f,c,s){var a,h,y,w,d,g,_,m=t&&t.__k||v,b=l.length;for(f=P(u,l,m,f,b),a=0;a<b;a++)null!=(y=u.__k[a])&&(h=-1==y.__i?p:m[y.__i]||p,y.__i=a,g=O(n,y,h,i,r,o,e,f,c,s),w=y.__e,y.ref&&h.ref!=y.ref&&(h.ref&&B(h.ref,null,y),s.push(y.ref,y.__c||w,y)),null==d&&null!=w&&(d=w),(_=!!(4&y.__u))||h.__k===y.__k?f=A(y,f,n,_):\"function\"==typeof y.type&&void 0!==g?f=g:w&&(f=w.nextSibling),y.__u&=-7);return u.__e=d,f}function P(n,l,u,t,i){var r,o,e,f,c,s=u.length,a=s,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?o=n.__k[r]=m(null,o,null,null,null):w(o)?o=n.__k[r]=m(k,{children:o},null,null,null):null==o.constructor&&o.__b>0?o=n.__k[r]=m(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):n.__k[r]=o,f=r+h,o.__=n,o.__b=n.__b+1,-1!=(c=o.__i=L(o,u,f,a))&&(a--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>s?h--:i<s&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(a)for(r=0;r<s;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=S(e)),D(e,e));return t}function A(n,l,u,t){var i,r;if(\"function\"==typeof n.type){for(i=n.__k,r=0;i&&r<i.length;r++)i[r]&&(i[r].__=n,l=A(i[r],l,u,t));return l}n.__e!=l&&(t&&(l&&n.type&&!l.parentNode&&(l=S(n)),u.insertBefore(n.__e,l||null)),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(w(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i,r,o,e=n.key,f=n.type,c=l[u],s=null!=c&&0==(2&c.__u);if(null===c&&null==e||s&&e==c.key&&f==c.type)return u;if(t>(s?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;)if(null!=(c=l[o=i>=0?i--:r++])&&0==(2&c.__u)&&e==c.key&&f==c.type)return o;return-1}function T(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||y.test(l)?u:u+\"px\"}function j(n,l,u,t,i){var r,o;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||T(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(f,\"$1\")),o=l.toLowerCase(),l=o in n||\"onFocusOut\"==l||\"onFocusIn\"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u.u=t.u:(u.u=c,n.addEventListener(l,r?a:s,r)):n.removeEventListener(l,r?a:s,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function F(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=c++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function O(n,u,t,i,r,o,e,f,c,s){var a,h,p,v,y,_,m,b,S,C,M,$,P,A,H,L,T,j=u.type;if(null!=u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof j)try{if(b=u.props,S=\"prototype\"in j&&j.prototype.render,C=(a=j.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,t.__c?m=(h=u.__c=t.__c).__=h.__E:(S?u.__c=h=new j(b,M):(u.__c=h=new x(b,M),h.constructor=j,h.render=E),C&&C.sub(h),h.state||(h.state={}),h.__n=i,p=h.__d=!0,h.__h=[],h._sb=[]),S&&null==h.__s&&(h.__s=h.state),S&&null!=j.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=d({},h.__s)),d(h.__s,j.getDerivedStateFromProps(b,h.__s))),v=h.props,y=h.state,h.__v=u,p)S&&null==j.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),S&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(S&&null==j.getDerivedStateFromProps&&b!==v&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(b,M),u.__v==t.__v||!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(b,h.__s,M)){for(u.__v!=t.__v&&(h.props=b,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),$=0;$<h._sb.length;$++)h.__h.push(h._sb[$]);h._sb=[],h.__h.length&&e.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(b,h.__s,M),S&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(v,y,_)})}if(h.context=M,h.props=b,h.__P=n,h.__e=!1,P=l.__r,A=0,S){for(h.state=h.__s,h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++A<25);h.state=h.__s,null!=h.getChildContext&&(i=d(d({},i),h.getChildContext())),S&&!p&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(v,y)),L=a,null!=a&&a.type===k&&null==a.key&&(L=V(a.props.children)),f=I(n,w(L)?L:[L],u,t,i,r,o,e,f,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&e.push(h),m&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=o)if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;o[o.indexOf(f)]=null,u.__e=f}else{for(T=o.length;T--;)g(o[T]);z(u)}else u.__e=t.__e,u.__k=t.__k,n.then||z(u);l.__e(n,u,t)}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=q(t.__e,u,t,i,r,o,e,c,s);return(a=l.diffed)&&a(u),128&u.__u?void 0:f}function z(n){n&&n.__c&&(n.__c.__e=!0),n&&n.__k&&n.__k.forEach(z)}function N(n,u,t){for(var i=0;i<t.length;i++)B(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function V(n){return\"object\"!=typeof n||null==n||n.__b&&n.__b>0?n:w(n)?n.map(V):d({},n)}function q(u,t,i,r,o,e,f,c,s){var a,h,v,y,d,_,m,b=i.props||p,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(a=0;a<e.length;a++)if((d=e[a])&&\"setAttribute\"in d==!!x&&(x?d.localName==x:3==d.nodeType)){u=d,e[a]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)b===k||c&&u.data==k||(u.data=k);else{if(e=e&&n.call(u.childNodes),!c&&null!=e)for(b={},a=0;a<u.attributes.length;a++)b[(d=u.attributes[a]).name]=d.value;for(a in b)if(d=b[a],\"children\"==a);else if(\"dangerouslySetInnerHTML\"==a)v=d;else if(!(a in k)){if(\"value\"==a&&\"defaultValue\"in k||\"checked\"==a&&\"defaultChecked\"in k)continue;j(u,a,null,d,o)}for(a in k)d=k[a],\"children\"==a?y=d:\"dangerouslySetInnerHTML\"==a?h=d:\"value\"==a?_=d:\"checked\"==a?m=d:c&&\"function\"!=typeof d||b[a]===d||j(u,a,d,b[a],o);if(h)c||v&&(h.__html==v.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(v&&(u.innerHTML=\"\"),I(\"template\"==t.type?u.content:u,w(y)?y:[y],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&S(i,0),c,s),null!=e)for(a=e.length;a--;)g(e[a]);c||(a=\"value\",\"progress\"==x&&null==_?u.removeAttribute(\"value\"):null!=_&&(_!==u[a]||\"progress\"==x&&!_||\"option\"==x&&_!=b[a])&&j(u,a,_,b[a],o),a=\"checked\",null!=m&&m!=u[a]&&j(u,a,m,b[a],o))}return u}function B(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function D(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||B(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&D(i[r],u,t||\"function\"!=typeof n.type);t||g(n.__e),n.__c=n.__=n.__e=void 0}function E(n,l,u){return this.constructor(n,u)}function G(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],O(t,u=(!r&&i||t).__k=_(k,null,[u]),o||p,p,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),N(e,u,f)}function J(n,l){G(n,l,J)}function K(l,u,t){var i,r,o,e,f=d({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),m(l.type,f,i||l.key,r||l.ref,null)}function Q(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+h++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=v.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},x.prototype.render=k,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},$.__r=0,f=/(PointerCapture)$|Capture$/i,c=0,s=F(!1),a=F(!0),h=0;export{x as Component,k as Fragment,K as cloneElement,Q as createContext,_ as createElement,b as createRef,_ as h,J as hydrate,t as isValidElement,l as options,G as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\""\";break;case 38:f=\"&\";break;case 60:f=\"<\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(t=function(r){return null!==r&&\"object\"==typeof r&&\"function\"==typeof r.valueOf?r.valueOf():r}(t),\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),s=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(s=\"px;\"),i=i+l+\":\"+a+s}}return e+'=\"'+n(i)+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(\"\"+t)+'\"'}function s(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=s(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,s as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function p(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,h(D,n)}function h(n,u,i){var o=p(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=o.__c.props!==n;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c&&c.call(this,n,t,r)||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=p(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=p(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=p(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=p(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=p(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=p(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,35);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,h as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n","/**\r\n * Generates a semi-random ID\r\n */\r\nexport const getRandomId = (): string => {\r\n const timestamp = Date.now();\r\n const randomPart = Math.random().toString(36).substring(2, 7);\r\n return `${randomPart}_${timestamp}`;\r\n};\r\n\r\n/**\r\n * Replaces {placeholders} inside a string\r\n * Supports res.nested[0].values\r\n */\r\nexport const replacePlaceholdersFromString = (\r\n template: string,\r\n values: Record<string, unknown>,\r\n resValues: Record<string, unknown> = {}\r\n): string => {\r\n return template.replace(/\\{([^}]+)\\}/g, (_, placeholder: string) => {\r\n if (placeholder.startsWith(\"res.\")) {\r\n const properties = placeholder\r\n .slice(4)\r\n .split(/\\.|\\[(\\d+)\\]/)\r\n .filter(Boolean);\r\n\r\n let value: any = resValues;\r\n\r\n for (const prop of properties) {\r\n if (value && value[prop] !== undefined) {\r\n value = value[prop];\r\n } else {\r\n return \"\";\r\n }\r\n }\r\n\r\n return String(value ?? \"\");\r\n }\r\n\r\n return String(values[placeholder] ?? \"\");\r\n });\r\n};\r\n\r\nexport function transformMediaUrl(\r\n url: string,\r\n size: number\r\n): string {\r\n const base = \"https://media.robodialog.com/t/\";\r\n\r\n if (!url.startsWith(base)) {\r\n return url; // leave untouched if it's not our media URL\r\n }\r\n\r\n const rest = url.slice(base.length);\r\n return `${base}w_${size},h_${size}/${rest}`;\r\n}","export const saveToLocalStorage = <T>(key: string, data: T): void => {\r\n const stringifiedData = JSON.stringify(data);\r\n localStorage.setItem(key, stringifiedData);\r\n};\r\n\r\nexport const getFromLocalStorage = <T>(key: string): T | null => {\r\n if (typeof window === \"undefined\") return null;\r\n const data = localStorage.getItem(key);\r\n return data ? (JSON.parse(data) as T) : null;\r\n};","'use strict';\n\n/**\n * Create a bound version of a function with a specified `this` context\n *\n * @param {Function} fn - The function to bind\n * @param {*} thisArg - The value to be passed as the `this` parameter\n * @returns {Function} A new function that will call the original function with the specified `this` context\n */\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);\n}\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n if (isBuffer(obj)){\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless, skipUndefined} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n const msg = error && error.message ? error.message : 'Error';\n\n // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)\n const errCode = code == null && error ? error.code : code;\n AxiosError.call(axiosError, msg, errCode, config, request, response);\n\n // Chain the original error on the standard field; non-enumerable to avoid JSON noise\n if (error && axiosError.cause == null) {\n Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });\n }\n\n axiosError.name = (error && error.name) || 'Error';\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {void}\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, this.parseReviver);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {}, dest, key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[key = entry[0]] = (dest = obj[key]) ?\n (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite)\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n getSetCookie() {\n return this.get(\"set-cookie\") || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure, sameSite) {\n if (typeof document === 'undefined') return;\n\n const cookie = [`${name}=${encodeURIComponent(value)}`];\n\n if (utils.isNumber(expires)) {\n cookie.push(`expires=${new Date(expires).toUTCString()}`);\n }\n if (utils.isString(path)) {\n cookie.push(`path=${path}`);\n }\n if (utils.isString(domain)) {\n cookie.push(`domain=${domain}`);\n }\n if (secure === true) {\n cookie.push('secure');\n }\n if (utils.isString(sameSite)) {\n cookie.push(`SameSite=${sameSite}`);\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n if (typeof document === 'undefined') return null;\n const match = document.cookie.match(new RegExp('(?:^|; )' + name + '=([^;]*)'));\n return match ? decodeURIComponent(match[1]) : null;\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000, '/');\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b, prop) => mergeDeepProperties(headersToObject(a), headersToObject(b), prop, true)\n };\n\n utils.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n } \n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n \n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n Request, Response\n}))(utils.global);\n\nconst {\n ReadableStream, TextEncoder\n} = utils.global;\n\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst factory = (env) => {\n env = utils.merge.call({\n skipUndefined: true\n }, globalFetchAPI, env);\n\n const {fetch: envFetch, Request, Response} = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n );\n\n const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n };\n\n isFetchSupported && ((() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n })());\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n }\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n }\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request = null;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && \"credentials\" in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n }\n}\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = (config && config.env) || {};\n const {fetch, Request, Response} = env;\n const seeds = [\n Request, Response, fetch\n ];\n\n let len = seeds.length, i = len,\n seed, target, map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, target = (i ? new Map() : factory(env)))\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\n/**\n * Known adapters mapping.\n * Provides environment-specific adapters for Axios:\n * - `http` for Node.js\n * - `xhr` for browsers\n * - `fetch` for fetch API-based requests\n * \n * @type {Object<string, Function|Object>}\n */\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n }\n};\n\n// Assign adapter names for easier debugging and identification\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', { value });\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', { value });\n }\n});\n\n/**\n * Render a rejection reason string for unknown or unsupported adapters\n * \n * @param {string} reason\n * @returns {string}\n */\nconst renderReason = (reason) => `- ${reason}`;\n\n/**\n * Check if the adapter is resolved (function, null, or false)\n * \n * @param {Function|null|false} adapter\n * @returns {boolean}\n */\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\n/**\n * Get the first suitable adapter from the provided list.\n * Tries each adapter in order until a supported one is found.\n * Throws an AxiosError if no adapter is suitable.\n * \n * @param {Array<string|Function>|string|Function} adapters - Adapter(s) by name or function.\n * @param {Object} config - Axios request configuration\n * @throws {AxiosError} If no suitable adapter is available\n * @returns {Function} The resolved adapter function\n */\nfunction getAdapter(adapters, config) {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const { length } = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n}\n\n/**\n * Exports Axios adapters and utility to resolve an adapter\n */\nexport default {\n /**\n * Resolve an adapter from a list of adapter names or functions.\n * @type {Function}\n */\n getAdapter,\n\n /**\n * Exposes all known adapters\n * @type {Object<string, Function|Object>}\n */\n adapters: knownAdapters\n};\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","export const VERSION = \"1.13.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n WebServerIsDown: 521,\n ConnectionTimedOut: 522,\n OriginIsUnreachable: 523,\n TimeoutOccurred: 524,\n SslHandshakeFailed: 525,\n InvalidSslCertificate: 526,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\n","import axios from \"axios\";\r\n\r\n// export const API_URL = \"https://api.robodialog.com\"\r\nexport const API_URL = \"http://localhost:4500\";\r\nexport const SOCKET_URL = \"wss://realtime.robodialog.com/connection/websocket\";\r\nexport const API_BASE_URL = API_URL + \"/api/v1\";\r\n\r\nexport const axiosInstance = axios.create({\r\n baseURL: API_BASE_URL,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n});","/**\n * Based on Kendo UI Core expression code <https://github.com/telerik/kendo-ui-core#license-information>\n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","const reWords = /[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['’](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['’](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['’](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+|(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*/g\n\nconst words = (str) => str.match(reWords) || []\n\nconst upperFirst = (str) => str[0].toUpperCase() + str.slice(1)\n\nconst join = (str, d) => words(str).join(d).toLowerCase()\n\nconst camelCase = (str) =>\n words(str).reduce(\n (acc, next) =>\n `${acc}${\n !acc\n ? next.toLowerCase()\n : next[0].toUpperCase() + next.slice(1).toLowerCase()\n }`,\n '',\n )\n\nconst pascalCase = (str) => upperFirst(camelCase(str))\n\nconst snakeCase = (str) => join(str, '_')\n\nconst kebabCase = (str) => join(str, '-')\n\nconst sentenceCase = (str) => upperFirst(join(str, ' '))\n\nconst titleCase = (str) => words(str).map(upperFirst).join(' ')\n\nmodule.exports = {\n words,\n upperFirst,\n camelCase,\n pascalCase,\n snakeCase,\n kebabCase,\n sentenceCase,\n titleCase,\n}\n","\n/**\n * Topological sorting function\n *\n * @param {Array} edges\n * @returns {Array}\n */\n\nmodule.exports = function(edges) {\n return toposort(uniqueNodes(edges), edges)\n}\n\nmodule.exports.array = toposort\n\nfunction toposort(nodes, edges) {\n var cursor = nodes.length\n , sorted = new Array(cursor)\n , visited = {}\n , i = cursor\n // Better data structures make algorithm much faster.\n , outgoingEdges = makeOutgoingEdges(edges)\n , nodesHash = makeNodesHash(nodes)\n\n // check for unknown nodes\n edges.forEach(function(edge) {\n if (!nodesHash.has(edge[0]) || !nodesHash.has(edge[1])) {\n throw new Error('Unknown node. There is an unknown node in the supplied edges.')\n }\n })\n\n while (i--) {\n if (!visited[i]) visit(nodes[i], i, new Set())\n }\n\n return sorted\n\n function visit(node, i, predecessors) {\n if(predecessors.has(node)) {\n var nodeRep\n try {\n nodeRep = \", node was:\" + JSON.stringify(node)\n } catch(e) {\n nodeRep = \"\"\n }\n throw new Error('Cyclic dependency' + nodeRep)\n }\n\n if (!nodesHash.has(node)) {\n throw new Error('Found unknown node. Make sure to provided all involved nodes. Unknown node: '+JSON.stringify(node))\n }\n\n if (visited[i]) return;\n visited[i] = true\n\n var outgoing = outgoingEdges.get(node) || new Set()\n outgoing = Array.from(outgoing)\n\n if (i = outgoing.length) {\n predecessors.add(node)\n do {\n var child = outgoing[--i]\n visit(child, nodesHash.get(child), predecessors)\n } while (i)\n predecessors.delete(node)\n }\n\n sorted[--cursor] = node\n }\n}\n\nfunction uniqueNodes(arr){\n var res = new Set()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n res.add(edge[0])\n res.add(edge[1])\n }\n return Array.from(res)\n}\n\nfunction makeOutgoingEdges(arr){\n var edges = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n var edge = arr[i]\n if (!edges.has(edge[0])) edges.set(edge[0], new Set())\n if (!edges.has(edge[1])) edges.set(edge[1], new Set())\n edges.get(edge[0]).add(edge[1])\n }\n return edges\n}\n\nfunction makeNodesHash(arr){\n var res = new Map()\n for (var i = 0, len = arr.length; i < len; i++) {\n res.set(arr[i], i)\n }\n return res\n}\n","import { getter, forEach, split, normalizePath, join } from 'property-expr';\nimport { camelCase, snakeCase } from 'tiny-case';\nimport toposort from 'toposort';\n\nconst toString = Object.prototype.toString;\nconst errorToString = Error.prototype.toString;\nconst regExpToString = RegExp.prototype.toString;\nconst symbolToString = typeof Symbol !== 'undefined' ? Symbol.prototype.toString : () => '';\nconst SYMBOL_REGEXP = /^Symbol\\((.*)\\)(.*)$/;\nfunction printNumber(val) {\n if (val != +val) return 'NaN';\n const isNegativeZero = val === 0 && 1 / val < 0;\n return isNegativeZero ? '-0' : '' + val;\n}\nfunction printSimpleValue(val, quoteStrings = false) {\n if (val == null || val === true || val === false) return '' + val;\n const typeOf = typeof val;\n if (typeOf === 'number') return printNumber(val);\n if (typeOf === 'string') return quoteStrings ? `\"${val}\"` : val;\n if (typeOf === 'function') return '[Function ' + (val.name || 'anonymous') + ']';\n if (typeOf === 'symbol') return symbolToString.call(val).replace(SYMBOL_REGEXP, 'Symbol($1)');\n const tag = toString.call(val).slice(8, -1);\n if (tag === 'Date') return isNaN(val.getTime()) ? '' + val : val.toISOString(val);\n if (tag === 'Error' || val instanceof Error) return '[' + errorToString.call(val) + ']';\n if (tag === 'RegExp') return regExpToString.call(val);\n return null;\n}\nfunction printValue(value, quoteStrings) {\n let result = printSimpleValue(value, quoteStrings);\n if (result !== null) return result;\n return JSON.stringify(value, function (key, value) {\n let result = printSimpleValue(this[key], quoteStrings);\n if (result !== null) return result;\n return value;\n }, 2);\n}\n\nfunction toArray(value) {\n return value == null ? [] : [].concat(value);\n}\n\nlet _Symbol$toStringTag, _Symbol$hasInstance, _Symbol$toStringTag2;\nlet strReg = /\\$\\{\\s*(\\w+)\\s*\\}/g;\n_Symbol$toStringTag = Symbol.toStringTag;\nclass ValidationErrorNoStack {\n constructor(errorOrErrors, value, field, type) {\n this.name = void 0;\n this.message = void 0;\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.params = void 0;\n this.errors = void 0;\n this.inner = void 0;\n this[_Symbol$toStringTag] = 'Error';\n this.name = 'ValidationError';\n this.value = value;\n this.path = field;\n this.type = type;\n this.errors = [];\n this.inner = [];\n toArray(errorOrErrors).forEach(err => {\n if (ValidationError.isError(err)) {\n this.errors.push(...err.errors);\n const innerErrors = err.inner.length ? err.inner : [err];\n this.inner.push(...innerErrors);\n } else {\n this.errors.push(err);\n }\n });\n this.message = this.errors.length > 1 ? `${this.errors.length} errors occurred` : this.errors[0];\n }\n}\n_Symbol$hasInstance = Symbol.hasInstance;\n_Symbol$toStringTag2 = Symbol.toStringTag;\nclass ValidationError extends Error {\n static formatError(message, params) {\n // Attempt to make the path more friendly for error message interpolation.\n const path = params.label || params.path || 'this';\n // Store the original path under `originalPath` so it isn't lost to custom\n // message functions; e.g., ones provided in `setLocale()` calls.\n params = Object.assign({}, params, {\n path,\n originalPath: params.path\n });\n if (typeof message === 'string') return message.replace(strReg, (_, key) => printValue(params[key]));\n if (typeof message === 'function') return message(params);\n return message;\n }\n static isError(err) {\n return err && err.name === 'ValidationError';\n }\n constructor(errorOrErrors, value, field, type, disableStack) {\n const errorNoStack = new ValidationErrorNoStack(errorOrErrors, value, field, type);\n if (disableStack) {\n return errorNoStack;\n }\n super();\n this.value = void 0;\n this.path = void 0;\n this.type = void 0;\n this.params = void 0;\n this.errors = [];\n this.inner = [];\n this[_Symbol$toStringTag2] = 'Error';\n this.name = errorNoStack.name;\n this.message = errorNoStack.message;\n this.type = errorNoStack.type;\n this.value = errorNoStack.value;\n this.path = errorNoStack.path;\n this.errors = errorNoStack.errors;\n this.inner = errorNoStack.inner;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ValidationError);\n }\n }\n static [_Symbol$hasInstance](inst) {\n return ValidationErrorNoStack[Symbol.hasInstance](inst) || super[Symbol.hasInstance](inst);\n }\n}\n\nlet mixed = {\n default: '${path} is invalid',\n required: '${path} is a required field',\n defined: '${path} must be defined',\n notNull: '${path} cannot be null',\n oneOf: '${path} must be one of the following values: ${values}',\n notOneOf: '${path} must not be one of the following values: ${values}',\n notType: ({\n path,\n type,\n value,\n originalValue\n }) => {\n const castMsg = originalValue != null && originalValue !== value ? ` (cast from the value \\`${printValue(originalValue, true)}\\`).` : '.';\n return type !== 'mixed' ? `${path} must be a \\`${type}\\` type, ` + `but the final value was: \\`${printValue(value, true)}\\`` + castMsg : `${path} must match the configured type. ` + `The validated value was: \\`${printValue(value, true)}\\`` + castMsg;\n }\n};\nlet string = {\n length: '${path} must be exactly ${length} characters',\n min: '${path} must be at least ${min} characters',\n max: '${path} must be at most ${max} characters',\n matches: '${path} must match the following: \"${regex}\"',\n email: '${path} must be a valid email',\n url: '${path} must be a valid URL',\n uuid: '${path} must be a valid UUID',\n datetime: '${path} must be a valid ISO date-time',\n datetime_precision: '${path} must be a valid ISO date-time with a sub-second precision of exactly ${precision} digits',\n datetime_offset: '${path} must be a valid ISO date-time with UTC \"Z\" timezone',\n trim: '${path} must be a trimmed string',\n lowercase: '${path} must be a lowercase string',\n uppercase: '${path} must be a upper case string'\n};\nlet number = {\n min: '${path} must be greater than or equal to ${min}',\n max: '${path} must be less than or equal to ${max}',\n lessThan: '${path} must be less than ${less}',\n moreThan: '${path} must be greater than ${more}',\n positive: '${path} must be a positive number',\n negative: '${path} must be a negative number',\n integer: '${path} must be an integer'\n};\nlet date = {\n min: '${path} field must be later than ${min}',\n max: '${path} field must be at earlier than ${max}'\n};\nlet boolean = {\n isValue: '${path} field must be ${value}'\n};\nlet object = {\n noUnknown: '${path} field has unspecified keys: ${unknown}',\n exact: '${path} object contains unknown properties: ${properties}'\n};\nlet array = {\n min: '${path} field must have at least ${min} items',\n max: '${path} field must have less than or equal to ${max} items',\n length: '${path} must have ${length} items'\n};\nlet tuple = {\n notType: params => {\n const {\n path,\n value,\n spec\n } = params;\n const typeLen = spec.types.length;\n if (Array.isArray(value)) {\n if (value.length < typeLen) return `${path} tuple value has too few items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n if (value.length > typeLen) return `${path} tuple value has too many items, expected a length of ${typeLen} but got ${value.length} for value: \\`${printValue(value, true)}\\``;\n }\n return ValidationError.formatError(mixed.notType, params);\n }\n};\nvar locale = Object.assign(Object.create(null), {\n mixed,\n string,\n number,\n date,\n object,\n array,\n boolean,\n tuple\n});\n\nconst isSchema = obj => obj && obj.__isYupSchema__;\n\nclass Condition {\n static fromOptions(refs, config) {\n if (!config.then && !config.otherwise) throw new TypeError('either `then:` or `otherwise:` is required for `when()` conditions');\n let {\n is,\n then,\n otherwise\n } = config;\n let check = typeof is === 'function' ? is : (...values) => values.every(value => value === is);\n return new Condition(refs, (values, schema) => {\n var _branch;\n let branch = check(...values) ? then : otherwise;\n return (_branch = branch == null ? void 0 : branch(schema)) != null ? _branch : schema;\n });\n }\n constructor(refs, builder) {\n this.fn = void 0;\n this.refs = refs;\n this.refs = refs;\n this.fn = builder;\n }\n resolve(base, options) {\n let values = this.refs.map(ref =>\n // TODO: ? operator here?\n ref.getValue(options == null ? void 0 : options.value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context));\n let schema = this.fn(values, base, options);\n if (schema === undefined ||\n // @ts-ignore this can be base\n schema === base) {\n return base;\n }\n if (!isSchema(schema)) throw new TypeError('conditions must return a schema object');\n return schema.resolve(options);\n }\n}\n\nconst prefixes = {\n context: '$',\n value: '.'\n};\nfunction create$9(key, options) {\n return new Reference(key, options);\n}\nclass Reference {\n constructor(key, options = {}) {\n this.key = void 0;\n this.isContext = void 0;\n this.isValue = void 0;\n this.isSibling = void 0;\n this.path = void 0;\n this.getter = void 0;\n this.map = void 0;\n if (typeof key !== 'string') throw new TypeError('ref must be a string, got: ' + key);\n this.key = key.trim();\n if (key === '') throw new TypeError('ref must be a non-empty string');\n this.isContext = this.key[0] === prefixes.context;\n this.isValue = this.key[0] === prefixes.value;\n this.isSibling = !this.isContext && !this.isValue;\n let prefix = this.isContext ? prefixes.context : this.isValue ? prefixes.value : '';\n this.path = this.key.slice(prefix.length);\n this.getter = this.path && getter(this.path, true);\n this.map = options.map;\n }\n getValue(value, parent, context) {\n let result = this.isContext ? context : this.isValue ? value : parent;\n if (this.getter) result = this.getter(result || {});\n if (this.map) result = this.map(result);\n return result;\n }\n\n /**\n *\n * @param {*} value\n * @param {Object} options\n * @param {Object=} options.context\n * @param {Object=} options.parent\n */\n cast(value, options) {\n return this.getValue(value, options == null ? void 0 : options.parent, options == null ? void 0 : options.context);\n }\n resolve() {\n return this;\n }\n describe() {\n return {\n type: 'ref',\n key: this.key\n };\n }\n toString() {\n return `Ref(${this.key})`;\n }\n static isRef(value) {\n return value && value.__isYupRef;\n }\n}\n\n// @ts-ignore\nReference.prototype.__isYupRef = true;\n\nconst isAbsent = value => value == null;\n\nfunction createValidation(config) {\n function validate({\n value,\n path = '',\n options,\n originalValue,\n schema\n }, panic, next) {\n const {\n name,\n test,\n params,\n message,\n skipAbsent\n } = config;\n let {\n parent,\n context,\n abortEarly = schema.spec.abortEarly,\n disableStackTrace = schema.spec.disableStackTrace\n } = options;\n const resolveOptions = {\n value,\n parent,\n context\n };\n function createError(overrides = {}) {\n const nextParams = resolveParams(Object.assign({\n value,\n originalValue,\n label: schema.spec.label,\n path: overrides.path || path,\n spec: schema.spec,\n disableStackTrace: overrides.disableStackTrace || disableStackTrace\n }, params, overrides.params), resolveOptions);\n const error = new ValidationError(ValidationError.formatError(overrides.message || message, nextParams), value, nextParams.path, overrides.type || name, nextParams.disableStackTrace);\n error.params = nextParams;\n return error;\n }\n const invalid = abortEarly ? panic : next;\n let ctx = {\n path,\n parent,\n type: name,\n from: options.from,\n createError,\n resolve(item) {\n return resolveMaybeRef(item, resolveOptions);\n },\n options,\n originalValue,\n schema\n };\n const handleResult = validOrError => {\n if (ValidationError.isError(validOrError)) invalid(validOrError);else if (!validOrError) invalid(createError());else next(null);\n };\n const handleError = err => {\n if (ValidationError.isError(err)) invalid(err);else panic(err);\n };\n const shouldSkip = skipAbsent && isAbsent(value);\n if (shouldSkip) {\n return handleResult(true);\n }\n let result;\n try {\n var _result;\n result = test.call(ctx, value, ctx);\n if (typeof ((_result = result) == null ? void 0 : _result.then) === 'function') {\n if (options.sync) {\n throw new Error(`Validation test of type: \"${ctx.type}\" returned a Promise during a synchronous validate. ` + `This test will finish after the validate call has returned`);\n }\n return Promise.resolve(result).then(handleResult, handleError);\n }\n } catch (err) {\n handleError(err);\n return;\n }\n handleResult(result);\n }\n validate.OPTIONS = config;\n return validate;\n}\n\n// Warning: mutates the input\nfunction resolveParams(params, options) {\n if (!params) return params;\n for (const key of Object.keys(params)) {\n params[key] = resolveMaybeRef(params[key], options);\n }\n return params;\n}\nfunction resolveMaybeRef(item, options) {\n return Reference.isRef(item) ? item.getValue(options.value, options.parent, options.context) : item;\n}\n\nfunction getIn(schema, path, value, context = value) {\n let parent, lastPart, lastPartDebug;\n\n // root path: ''\n if (!path) return {\n parent,\n parentPath: path,\n schema\n };\n forEach(path, (_part, isBracket, isArray) => {\n let part = isBracket ? _part.slice(1, _part.length - 1) : _part;\n schema = schema.resolve({\n context,\n parent,\n value\n });\n let isTuple = schema.type === 'tuple';\n let idx = isArray ? parseInt(part, 10) : 0;\n if (schema.innerType || isTuple) {\n if (isTuple && !isArray) throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part \"${lastPartDebug}\" must contain an index to the tuple element, e.g. \"${lastPartDebug}[0]\"`);\n if (value && idx >= value.length) {\n throw new Error(`Yup.reach cannot resolve an array item at index: ${_part}, in the path: ${path}. ` + `because there is no value at that index. `);\n }\n parent = value;\n value = value && value[idx];\n schema = isTuple ? schema.spec.types[idx] : schema.innerType;\n }\n\n // sometimes the array index part of a path doesn't exist: \"nested.arr.child\"\n // in these cases the current part is the next schema and should be processed\n // in this iteration. For cases where the index signature is included this\n // check will fail and we'll handle the `child` part on the next iteration like normal\n if (!isArray) {\n if (!schema.fields || !schema.fields[part]) throw new Error(`The schema does not contain the path: ${path}. ` + `(failed at: ${lastPartDebug} which is a type: \"${schema.type}\")`);\n parent = value;\n value = value && value[part];\n schema = schema.fields[part];\n }\n lastPart = part;\n lastPartDebug = isBracket ? '[' + _part + ']' : '.' + _part;\n });\n return {\n schema,\n parent,\n parentPath: lastPart\n };\n}\nfunction reach(obj, path, value, context) {\n return getIn(obj, path, value, context).schema;\n}\n\nclass ReferenceSet extends Set {\n describe() {\n const description = [];\n for (const item of this.values()) {\n description.push(Reference.isRef(item) ? item.describe() : item);\n }\n return description;\n }\n resolveAll(resolve) {\n let result = [];\n for (const item of this.values()) {\n result.push(resolve(item));\n }\n return result;\n }\n clone() {\n return new ReferenceSet(this.values());\n }\n merge(newItems, removeItems) {\n const next = this.clone();\n newItems.forEach(value => next.add(value));\n removeItems.forEach(value => next.delete(value));\n return next;\n }\n}\n\n// tweaked from https://github.com/Kelin2025/nanoclone/blob/0abeb7635bda9b68ef2277093f76dbe3bf3948e1/src/index.js\nfunction clone(src, seen = new Map()) {\n if (isSchema(src) || !src || typeof src !== 'object') return src;\n if (seen.has(src)) return seen.get(src);\n let copy;\n if (src instanceof Date) {\n // Date\n copy = new Date(src.getTime());\n seen.set(src, copy);\n } else if (src instanceof RegExp) {\n // RegExp\n copy = new RegExp(src);\n seen.set(src, copy);\n } else if (Array.isArray(src)) {\n // Array\n copy = new Array(src.length);\n seen.set(src, copy);\n for (let i = 0; i < src.length; i++) copy[i] = clone(src[i], seen);\n } else if (src instanceof Map) {\n // Map\n copy = new Map();\n seen.set(src, copy);\n for (const [k, v] of src.entries()) copy.set(k, clone(v, seen));\n } else if (src instanceof Set) {\n // Set\n copy = new Set();\n seen.set(src, copy);\n for (const v of src) copy.add(clone(v, seen));\n } else if (src instanceof Object) {\n // Object\n copy = {};\n seen.set(src, copy);\n for (const [k, v] of Object.entries(src)) copy[k] = clone(v, seen);\n } else {\n throw Error(`Unable to clone ${src}`);\n }\n return copy;\n}\n\n/**\n * Copied from @standard-schema/spec to avoid having a dependency on it.\n * https://github.com/standard-schema/standard-schema/blob/main/packages/spec/src/index.ts\n */\n\nfunction createStandardPath(path) {\n if (!(path != null && path.length)) {\n return undefined;\n }\n\n // Array to store the final path segments\n const segments = [];\n // Buffer for building the current segment\n let currentSegment = '';\n // Track if we're inside square brackets (array/property access)\n let inBrackets = false;\n // Track if we're inside quotes (for property names with special chars)\n let inQuotes = false;\n for (let i = 0; i < path.length; i++) {\n const char = path[i];\n if (char === '[' && !inQuotes) {\n // When entering brackets, push any accumulated segment after splitting on dots\n if (currentSegment) {\n segments.push(...currentSegment.split('.').filter(Boolean));\n currentSegment = '';\n }\n inBrackets = true;\n continue;\n }\n if (char === ']' && !inQuotes) {\n if (currentSegment) {\n // Handle numeric indices (e.g. arr[0])\n if (/^\\d+$/.test(currentSegment)) {\n segments.push(currentSegment);\n } else {\n // Handle quoted property names (e.g. obj[\"foo.bar\"])\n segments.push(currentSegment.replace(/^\"|\"$/g, ''));\n }\n currentSegment = '';\n }\n inBrackets = false;\n continue;\n }\n if (char === '\"') {\n // Toggle quote state for handling quoted property names\n inQuotes = !inQuotes;\n continue;\n }\n if (char === '.' && !inBrackets && !inQuotes) {\n // On dots outside brackets/quotes, push current segment\n if (currentSegment) {\n segments.push(currentSegment);\n currentSegment = '';\n }\n continue;\n }\n currentSegment += char;\n }\n\n // Push any remaining segment after splitting on dots\n if (currentSegment) {\n segments.push(...currentSegment.split('.').filter(Boolean));\n }\n return segments;\n}\nfunction createStandardIssues(error, parentPath) {\n const path = parentPath ? `${parentPath}.${error.path}` : error.path;\n return error.errors.map(err => ({\n message: err,\n path: createStandardPath(path)\n }));\n}\nfunction issuesFromValidationError(error, parentPath) {\n var _error$inner;\n if (!((_error$inner = error.inner) != null && _error$inner.length) && error.errors.length) {\n return createStandardIssues(error, parentPath);\n }\n const path = parentPath ? `${parentPath}.${error.path}` : error.path;\n return error.inner.flatMap(err => issuesFromValidationError(err, path));\n}\n\n// If `CustomSchemaMeta` isn't extended with any keys, we'll fall back to a\n// loose Record definition allowing free form usage.\nclass Schema {\n constructor(options) {\n this.type = void 0;\n this.deps = [];\n this.tests = void 0;\n this.transforms = void 0;\n this.conditions = [];\n this._mutate = void 0;\n this.internalTests = {};\n this._whitelist = new ReferenceSet();\n this._blacklist = new ReferenceSet();\n this.exclusiveTests = Object.create(null);\n this._typeCheck = void 0;\n this.spec = void 0;\n this.tests = [];\n this.transforms = [];\n this.withMutation(() => {\n this.typeError(mixed.notType);\n });\n this.type = options.type;\n this._typeCheck = options.check;\n this.spec = Object.assign({\n strip: false,\n strict: false,\n abortEarly: true,\n recursive: true,\n disableStackTrace: false,\n nullable: false,\n optional: true,\n coerce: true\n }, options == null ? void 0 : options.spec);\n this.withMutation(s => {\n s.nonNullable();\n });\n }\n\n // TODO: remove\n get _type() {\n return this.type;\n }\n clone(spec) {\n if (this._mutate) {\n if (spec) Object.assign(this.spec, spec);\n return this;\n }\n\n // if the nested value is a schema we can skip cloning, since\n // they are already immutable\n const next = Object.create(Object.getPrototypeOf(this));\n\n // @ts-expect-error this is readonly\n next.type = this.type;\n next._typeCheck = this._typeCheck;\n next._whitelist = this._whitelist.clone();\n next._blacklist = this._blacklist.clone();\n next.internalTests = Object.assign({}, this.internalTests);\n next.exclusiveTests = Object.assign({}, this.exclusiveTests);\n\n // @ts-expect-error this is readonly\n next.deps = [...this.deps];\n next.conditions = [...this.conditions];\n next.tests = [...this.tests];\n next.transforms = [...this.transforms];\n next.spec = clone(Object.assign({}, this.spec, spec));\n return next;\n }\n label(label) {\n let next = this.clone();\n next.spec.label = label;\n return next;\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n withMutation(fn) {\n let before = this._mutate;\n this._mutate = true;\n let result = fn(this);\n this._mutate = before;\n return result;\n }\n concat(schema) {\n if (!schema || schema === this) return this;\n if (schema.type !== this.type && this.type !== 'mixed') throw new TypeError(`You cannot \\`concat()\\` schema's of different types: ${this.type} and ${schema.type}`);\n let base = this;\n let combined = schema.clone();\n const mergedSpec = Object.assign({}, base.spec, combined.spec);\n combined.spec = mergedSpec;\n combined.internalTests = Object.assign({}, base.internalTests, combined.internalTests);\n\n // manually merge the blacklist/whitelist (the other `schema` takes\n // precedence in case of conflicts)\n combined._whitelist = base._whitelist.merge(schema._whitelist, schema._blacklist);\n combined._blacklist = base._blacklist.merge(schema._blacklist, schema._whitelist);\n\n // start with the current tests\n combined.tests = base.tests;\n combined.exclusiveTests = base.exclusiveTests;\n\n // manually add the new tests to ensure\n // the deduping logic is consistent\n combined.withMutation(next => {\n schema.tests.forEach(fn => {\n next.test(fn.OPTIONS);\n });\n });\n combined.transforms = [...base.transforms, ...combined.transforms];\n return combined;\n }\n isType(v) {\n if (v == null) {\n if (this.spec.nullable && v === null) return true;\n if (this.spec.optional && v === undefined) return true;\n return false;\n }\n return this._typeCheck(v);\n }\n resolve(options) {\n let schema = this;\n if (schema.conditions.length) {\n let conditions = schema.conditions;\n schema = schema.clone();\n schema.conditions = [];\n schema = conditions.reduce((prevSchema, condition) => condition.resolve(prevSchema, options), schema);\n schema = schema.resolve(options);\n }\n return schema;\n }\n resolveOptions(options) {\n var _options$strict, _options$abortEarly, _options$recursive, _options$disableStack;\n return Object.assign({}, options, {\n from: options.from || [],\n strict: (_options$strict = options.strict) != null ? _options$strict : this.spec.strict,\n abortEarly: (_options$abortEarly = options.abortEarly) != null ? _options$abortEarly : this.spec.abortEarly,\n recursive: (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive,\n disableStackTrace: (_options$disableStack = options.disableStackTrace) != null ? _options$disableStack : this.spec.disableStackTrace\n });\n }\n\n /**\n * Run the configured transform pipeline over an input value.\n */\n\n cast(value, options = {}) {\n let resolvedSchema = this.resolve(Object.assign({}, options, {\n value\n // parent: options.parent,\n // context: options.context,\n }));\n\n let allowOptionality = options.assert === 'ignore-optionality';\n let result = resolvedSchema._cast(value, options);\n if (options.assert !== false && !resolvedSchema.isType(result)) {\n if (allowOptionality && isAbsent(result)) {\n return result;\n }\n let formattedValue = printValue(value);\n let formattedResult = printValue(result);\n throw new TypeError(`The value of ${options.path || 'field'} could not be cast to a value ` + `that satisfies the schema type: \"${resolvedSchema.type}\". \\n\\n` + `attempted value: ${formattedValue} \\n` + (formattedResult !== formattedValue ? `result of cast: ${formattedResult}` : ''));\n }\n return result;\n }\n _cast(rawValue, options) {\n let value = rawValue === undefined ? rawValue : this.transforms.reduce((prevValue, fn) => fn.call(this, prevValue, rawValue, this, options), rawValue);\n if (value === undefined) {\n value = this.getDefault(options);\n }\n return value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n path,\n originalValue = _value,\n strict = this.spec.strict\n } = options;\n let value = _value;\n if (!strict) {\n value = this._cast(value, Object.assign({\n assert: false\n }, options));\n }\n let initialTests = [];\n for (let test of Object.values(this.internalTests)) {\n if (test) initialTests.push(test);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: initialTests\n }, panic, initialErrors => {\n // even if we aren't ending early we can't proceed further if the types aren't correct\n if (initialErrors.length) {\n return next(initialErrors, value);\n }\n this.runTests({\n path,\n value,\n originalValue,\n options,\n tests: this.tests\n }, panic, next);\n });\n }\n\n /**\n * Executes a set of validations, either schema, produced Tests or a nested\n * schema validate result.\n */\n runTests(runOptions, panic, next) {\n let fired = false;\n let {\n tests,\n value,\n originalValue,\n path,\n options\n } = runOptions;\n let panicOnce = arg => {\n if (fired) return;\n fired = true;\n panic(arg, value);\n };\n let nextOnce = arg => {\n if (fired) return;\n fired = true;\n next(arg, value);\n };\n let count = tests.length;\n let nestedErrors = [];\n if (!count) return nextOnce([]);\n let args = {\n value,\n originalValue,\n path,\n options,\n schema: this\n };\n for (let i = 0; i < tests.length; i++) {\n const test = tests[i];\n test(args, panicOnce, function finishTestRun(err) {\n if (err) {\n Array.isArray(err) ? nestedErrors.push(...err) : nestedErrors.push(err);\n }\n if (--count <= 0) {\n nextOnce(nestedErrors);\n }\n });\n }\n }\n asNestedTest({\n key,\n index,\n parent,\n parentPath,\n originalParent,\n options\n }) {\n const k = key != null ? key : index;\n if (k == null) {\n throw TypeError('Must include `key` or `index` for nested validations');\n }\n const isIndex = typeof k === 'number';\n let value = parent[k];\n const testOptions = Object.assign({}, options, {\n // Nested validations fields are always strict:\n // 1. parent isn't strict so the casting will also have cast inner values\n // 2. parent is strict in which case the nested values weren't cast either\n strict: true,\n parent,\n value,\n originalValue: originalParent[k],\n // FIXME: tests depend on `index` being passed around deeply,\n // we should not let the options.key/index bleed through\n key: undefined,\n // index: undefined,\n [isIndex ? 'index' : 'key']: k,\n path: isIndex || k.includes('.') ? `${parentPath || ''}[${isIndex ? k : `\"${k}\"`}]` : (parentPath ? `${parentPath}.` : '') + key\n });\n return (_, panic, next) => this.resolve(testOptions)._validate(value, testOptions, panic, next);\n }\n validate(value, options) {\n var _options$disableStack2;\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let disableStackTrace = (_options$disableStack2 = options == null ? void 0 : options.disableStackTrace) != null ? _options$disableStack2 : schema.spec.disableStackTrace;\n return new Promise((resolve, reject) => schema._validate(value, options, (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n reject(error);\n }, (errors, validated) => {\n if (errors.length) reject(new ValidationError(errors, validated, undefined, undefined, disableStackTrace));else resolve(validated);\n }));\n }\n validateSync(value, options) {\n var _options$disableStack3;\n let schema = this.resolve(Object.assign({}, options, {\n value\n }));\n let result;\n let disableStackTrace = (_options$disableStack3 = options == null ? void 0 : options.disableStackTrace) != null ? _options$disableStack3 : schema.spec.disableStackTrace;\n schema._validate(value, Object.assign({}, options, {\n sync: true\n }), (error, parsed) => {\n if (ValidationError.isError(error)) error.value = parsed;\n throw error;\n }, (errors, validated) => {\n if (errors.length) throw new ValidationError(errors, value, undefined, undefined, disableStackTrace);\n result = validated;\n });\n return result;\n }\n isValid(value, options) {\n return this.validate(value, options).then(() => true, err => {\n if (ValidationError.isError(err)) return false;\n throw err;\n });\n }\n isValidSync(value, options) {\n try {\n this.validateSync(value, options);\n return true;\n } catch (err) {\n if (ValidationError.isError(err)) return false;\n throw err;\n }\n }\n _getDefault(options) {\n let defaultValue = this.spec.default;\n if (defaultValue == null) {\n return defaultValue;\n }\n return typeof defaultValue === 'function' ? defaultValue.call(this, options) : clone(defaultValue);\n }\n getDefault(options\n // If schema is defaulted we know it's at least not undefined\n ) {\n let schema = this.resolve(options || {});\n return schema._getDefault(options);\n }\n default(def) {\n if (arguments.length === 0) {\n return this._getDefault();\n }\n let next = this.clone({\n default: def\n });\n return next;\n }\n strict(isStrict = true) {\n return this.clone({\n strict: isStrict\n });\n }\n nullability(nullable, message) {\n const next = this.clone({\n nullable\n });\n next.internalTests.nullable = createValidation({\n message,\n name: 'nullable',\n test(value) {\n return value === null ? this.schema.spec.nullable : true;\n }\n });\n return next;\n }\n optionality(optional, message) {\n const next = this.clone({\n optional\n });\n next.internalTests.optionality = createValidation({\n message,\n name: 'optionality',\n test(value) {\n return value === undefined ? this.schema.spec.optional : true;\n }\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n defined(message = mixed.defined) {\n return this.optionality(false, message);\n }\n nullable() {\n return this.nullability(true);\n }\n nonNullable(message = mixed.notNull) {\n return this.nullability(false, message);\n }\n required(message = mixed.required) {\n return this.clone().withMutation(next => next.nonNullable(message).defined(message));\n }\n notRequired() {\n return this.clone().withMutation(next => next.nullable().optional());\n }\n transform(fn) {\n let next = this.clone();\n next.transforms.push(fn);\n return next;\n }\n\n /**\n * Adds a test function to the schema's queue of tests.\n * tests can be exclusive or non-exclusive.\n *\n * - exclusive tests, will replace any existing tests of the same name.\n * - non-exclusive: can be stacked\n *\n * If a non-exclusive test is added to a schema with an exclusive test of the same name\n * the exclusive test is removed and further tests of the same name will be stacked.\n *\n * If an exclusive test is added to a schema with non-exclusive tests of the same name\n * the previous tests are removed and further tests of the same name will replace each other.\n */\n\n test(...args) {\n let opts;\n if (args.length === 1) {\n if (typeof args[0] === 'function') {\n opts = {\n test: args[0]\n };\n } else {\n opts = args[0];\n }\n } else if (args.length === 2) {\n opts = {\n name: args[0],\n test: args[1]\n };\n } else {\n opts = {\n name: args[0],\n message: args[1],\n test: args[2]\n };\n }\n if (opts.message === undefined) opts.message = mixed.default;\n if (typeof opts.test !== 'function') throw new TypeError('`test` is a required parameters');\n let next = this.clone();\n let validate = createValidation(opts);\n let isExclusive = opts.exclusive || opts.name && next.exclusiveTests[opts.name] === true;\n if (opts.exclusive) {\n if (!opts.name) throw new TypeError('Exclusive tests must provide a unique `name` identifying the test');\n }\n if (opts.name) next.exclusiveTests[opts.name] = !!opts.exclusive;\n next.tests = next.tests.filter(fn => {\n if (fn.OPTIONS.name === opts.name) {\n if (isExclusive) return false;\n if (fn.OPTIONS.test === validate.OPTIONS.test) return false;\n }\n return true;\n });\n next.tests.push(validate);\n return next;\n }\n when(keys, options) {\n if (!Array.isArray(keys) && typeof keys !== 'string') {\n options = keys;\n keys = '.';\n }\n let next = this.clone();\n let deps = toArray(keys).map(key => new Reference(key));\n deps.forEach(dep => {\n // @ts-ignore readonly array\n if (dep.isSibling) next.deps.push(dep.key);\n });\n next.conditions.push(typeof options === 'function' ? new Condition(deps, options) : Condition.fromOptions(deps, options));\n return next;\n }\n typeError(message) {\n let next = this.clone();\n next.internalTests.typeError = createValidation({\n message,\n name: 'typeError',\n skipAbsent: true,\n test(value) {\n if (!this.schema._typeCheck(value)) return this.createError({\n params: {\n type: this.schema.type\n }\n });\n return true;\n }\n });\n return next;\n }\n oneOf(enums, message = mixed.oneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._whitelist.add(val);\n next._blacklist.delete(val);\n });\n next.internalTests.whiteList = createValidation({\n message,\n name: 'oneOf',\n skipAbsent: true,\n test(value) {\n let valids = this.schema._whitelist;\n let resolved = valids.resolveAll(this.resolve);\n return resolved.includes(value) ? true : this.createError({\n params: {\n values: Array.from(valids).join(', '),\n resolved\n }\n });\n }\n });\n return next;\n }\n notOneOf(enums, message = mixed.notOneOf) {\n let next = this.clone();\n enums.forEach(val => {\n next._blacklist.add(val);\n next._whitelist.delete(val);\n });\n next.internalTests.blacklist = createValidation({\n message,\n name: 'notOneOf',\n test(value) {\n let invalids = this.schema._blacklist;\n let resolved = invalids.resolveAll(this.resolve);\n if (resolved.includes(value)) return this.createError({\n params: {\n values: Array.from(invalids).join(', '),\n resolved\n }\n });\n return true;\n }\n });\n return next;\n }\n strip(strip = true) {\n let next = this.clone();\n next.spec.strip = strip;\n return next;\n }\n\n /**\n * Return a serialized description of the schema including validations, flags, types etc.\n *\n * @param options Provide any needed context for resolving runtime schema alterations (lazy, when conditions, etc).\n */\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const {\n label,\n meta,\n optional,\n nullable\n } = next.spec;\n const description = {\n meta,\n label,\n optional,\n nullable,\n default: next.getDefault(options),\n type: next.type,\n oneOf: next._whitelist.describe(),\n notOneOf: next._blacklist.describe(),\n tests: next.tests.filter((n, idx, list) => list.findIndex(c => c.OPTIONS.name === n.OPTIONS.name) === idx).map(fn => {\n const params = fn.OPTIONS.params && options ? resolveParams(Object.assign({}, fn.OPTIONS.params), options) : fn.OPTIONS.params;\n return {\n name: fn.OPTIONS.name,\n params\n };\n })\n };\n return description;\n }\n get ['~standard']() {\n const schema = this;\n const standard = {\n version: 1,\n vendor: 'yup',\n async validate(value) {\n try {\n const result = await schema.validate(value, {\n abortEarly: false\n });\n return {\n value: result\n };\n } catch (err) {\n if (err instanceof ValidationError) {\n return {\n issues: issuesFromValidationError(err)\n };\n }\n throw err;\n }\n }\n };\n return standard;\n }\n}\n// @ts-expect-error\nSchema.prototype.__isYupSchema__ = true;\nfor (const method of ['validate', 'validateSync']) Schema.prototype[`${method}At`] = function (path, value, options = {}) {\n const {\n parent,\n parentPath,\n schema\n } = getIn(this, path, value, options.context);\n return schema[method](parent && parent[parentPath], Object.assign({}, options, {\n parent,\n path\n }));\n};\nfor (const alias of ['equals', 'is']) Schema.prototype[alias] = Schema.prototype.oneOf;\nfor (const alias of ['not', 'nope']) Schema.prototype[alias] = Schema.prototype.notOneOf;\n\nconst returnsTrue = () => true;\nfunction create$8(spec) {\n return new MixedSchema(spec);\n}\nclass MixedSchema extends Schema {\n constructor(spec) {\n super(typeof spec === 'function' ? {\n type: 'mixed',\n check: spec\n } : Object.assign({\n type: 'mixed',\n check: returnsTrue\n }, spec));\n }\n}\ncreate$8.prototype = MixedSchema.prototype;\n\nfunction create$7() {\n return new BooleanSchema();\n}\nclass BooleanSchema extends Schema {\n constructor() {\n super({\n type: 'boolean',\n check(v) {\n if (v instanceof Boolean) v = v.valueOf();\n return typeof v === 'boolean';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw) => {\n if (this.spec.coerce && !this.isType(value)) {\n if (/^(true|1)$/i.test(String(value))) return true;\n if (/^(false|0)$/i.test(String(value))) return false;\n }\n return value;\n });\n });\n }\n isTrue(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'true'\n },\n test(value) {\n return isAbsent(value) || value === true;\n }\n });\n }\n isFalse(message = boolean.isValue) {\n return this.test({\n message,\n name: 'is-value',\n exclusive: true,\n params: {\n value: 'false'\n },\n test(value) {\n return isAbsent(value) || value === false;\n }\n });\n }\n default(def) {\n return super.default(def);\n }\n defined(msg) {\n return super.defined(msg);\n }\n optional() {\n return super.optional();\n }\n required(msg) {\n return super.required(msg);\n }\n notRequired() {\n return super.notRequired();\n }\n nullable() {\n return super.nullable();\n }\n nonNullable(msg) {\n return super.nonNullable(msg);\n }\n strip(v) {\n return super.strip(v);\n }\n}\ncreate$7.prototype = BooleanSchema.prototype;\n\n/**\n * This file is a modified version of the file from the following repository:\n * Date.parse with progressive enhancement for ISO 8601 <https://github.com/csnover/js-iso8601>\n * NON-CONFORMANT EDITION.\n * © 2011 Colin Snover <http://zetafleet.com>\n * Released under MIT license.\n */\n\n// prettier-ignore\n// 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm\nconst isoReg = /^(\\d{4}|[+-]\\d{6})(?:-?(\\d{2})(?:-?(\\d{2}))?)?(?:[ T]?(\\d{2}):?(\\d{2})(?::?(\\d{2})(?:[,.](\\d{1,}))?)?(?:(Z)|([+-])(\\d{2})(?::?(\\d{2}))?)?)?$/;\nfunction parseIsoDate(date) {\n const struct = parseDateStruct(date);\n if (!struct) return Date.parse ? Date.parse(date) : Number.NaN;\n\n // timestamps without timezone identifiers should be considered local time\n if (struct.z === undefined && struct.plusMinus === undefined) {\n return new Date(struct.year, struct.month, struct.day, struct.hour, struct.minute, struct.second, struct.millisecond).valueOf();\n }\n let totalMinutesOffset = 0;\n if (struct.z !== 'Z' && struct.plusMinus !== undefined) {\n totalMinutesOffset = struct.hourOffset * 60 + struct.minuteOffset;\n if (struct.plusMinus === '+') totalMinutesOffset = 0 - totalMinutesOffset;\n }\n return Date.UTC(struct.year, struct.month, struct.day, struct.hour, struct.minute + totalMinutesOffset, struct.second, struct.millisecond);\n}\nfunction parseDateStruct(date) {\n var _regexResult$7$length, _regexResult$;\n const regexResult = isoReg.exec(date);\n if (!regexResult) return null;\n\n // use of toNumber() avoids NaN timestamps caused by “undefined”\n // values being passed to Date constructor\n return {\n year: toNumber(regexResult[1]),\n month: toNumber(regexResult[2], 1) - 1,\n day: toNumber(regexResult[3], 1),\n hour: toNumber(regexResult[4]),\n minute: toNumber(regexResult[5]),\n second: toNumber(regexResult[6]),\n millisecond: regexResult[7] ?\n // allow arbitrary sub-second precision beyond milliseconds\n toNumber(regexResult[7].substring(0, 3)) : 0,\n precision: (_regexResult$7$length = (_regexResult$ = regexResult[7]) == null ? void 0 : _regexResult$.length) != null ? _regexResult$7$length : undefined,\n z: regexResult[8] || undefined,\n plusMinus: regexResult[9] || undefined,\n hourOffset: toNumber(regexResult[10]),\n minuteOffset: toNumber(regexResult[11])\n };\n}\nfunction toNumber(str, defaultValue = 0) {\n return Number(str) || defaultValue;\n}\n\n// Taken from HTML spec: https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address\nlet rEmail =\n// eslint-disable-next-line\n/^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\nlet rUrl =\n// eslint-disable-next-line\n/^((https?|ftp):)?\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(\\#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i;\n\n// eslint-disable-next-line\nlet rUUID = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;\nlet yearMonthDay = '^\\\\d{4}-\\\\d{2}-\\\\d{2}';\nlet hourMinuteSecond = '\\\\d{2}:\\\\d{2}:\\\\d{2}';\nlet zOrOffset = '(([+-]\\\\d{2}(:?\\\\d{2})?)|Z)';\nlet rIsoDateTime = new RegExp(`${yearMonthDay}T${hourMinuteSecond}(\\\\.\\\\d+)?${zOrOffset}$`);\nlet isTrimmed = value => isAbsent(value) || value === value.trim();\nlet objStringTag = {}.toString();\nfunction create$6() {\n return new StringSchema();\n}\nclass StringSchema extends Schema {\n constructor() {\n super({\n type: 'string',\n check(value) {\n if (value instanceof String) value = value.valueOf();\n return typeof value === 'string';\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw) => {\n if (!this.spec.coerce || this.isType(value)) return value;\n\n // don't ever convert arrays\n if (Array.isArray(value)) return value;\n const strValue = value != null && value.toString ? value.toString() : value;\n\n // no one wants plain objects converted to [Object object]\n if (strValue === objStringTag) return value;\n return strValue;\n });\n });\n }\n required(message) {\n return super.required(message).withMutation(schema => schema.test({\n message: message || mixed.required,\n name: 'required',\n skipAbsent: true,\n test: value => !!value.length\n }));\n }\n notRequired() {\n return super.notRequired().withMutation(schema => {\n schema.tests = schema.tests.filter(t => t.OPTIONS.name !== 'required');\n return schema;\n });\n }\n length(length, message = string.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message = string.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message = string.max) {\n return this.test({\n name: 'max',\n exclusive: true,\n message,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n matches(regex, options) {\n let excludeEmptyString = false;\n let message;\n let name;\n if (options) {\n if (typeof options === 'object') {\n ({\n excludeEmptyString = false,\n message,\n name\n } = options);\n } else {\n message = options;\n }\n }\n return this.test({\n name: name || 'matches',\n message: message || string.matches,\n params: {\n regex\n },\n skipAbsent: true,\n test: value => value === '' && excludeEmptyString || value.search(regex) !== -1\n });\n }\n email(message = string.email) {\n return this.matches(rEmail, {\n name: 'email',\n message,\n excludeEmptyString: true\n });\n }\n url(message = string.url) {\n return this.matches(rUrl, {\n name: 'url',\n message,\n excludeEmptyString: true\n });\n }\n uuid(message = string.uuid) {\n return this.matches(rUUID, {\n name: 'uuid',\n message,\n excludeEmptyString: false\n });\n }\n datetime(options) {\n let message = '';\n let allowOffset;\n let precision;\n if (options) {\n if (typeof options === 'object') {\n ({\n message = '',\n allowOffset = false,\n precision = undefined\n } = options);\n } else {\n message = options;\n }\n }\n return this.matches(rIsoDateTime, {\n name: 'datetime',\n message: message || string.datetime,\n excludeEmptyString: true\n }).test({\n name: 'datetime_offset',\n message: message || string.datetime_offset,\n params: {\n allowOffset\n },\n skipAbsent: true,\n test: value => {\n if (!value || allowOffset) return true;\n const struct = parseDateStruct(value);\n if (!struct) return false;\n return !!struct.z;\n }\n }).test({\n name: 'datetime_precision',\n message: message || string.datetime_precision,\n params: {\n precision\n },\n skipAbsent: true,\n test: value => {\n if (!value || precision == undefined) return true;\n const struct = parseDateStruct(value);\n if (!struct) return false;\n return struct.precision === precision;\n }\n });\n }\n\n //-- transforms --\n ensure() {\n return this.default('').transform(val => val === null ? '' : val);\n }\n trim(message = string.trim) {\n return this.transform(val => val != null ? val.trim() : val).test({\n message,\n name: 'trim',\n test: isTrimmed\n });\n }\n lowercase(message = string.lowercase) {\n return this.transform(value => !isAbsent(value) ? value.toLowerCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toLowerCase()\n });\n }\n uppercase(message = string.uppercase) {\n return this.transform(value => !isAbsent(value) ? value.toUpperCase() : value).test({\n message,\n name: 'string_case',\n exclusive: true,\n skipAbsent: true,\n test: value => isAbsent(value) || value === value.toUpperCase()\n });\n }\n}\ncreate$6.prototype = StringSchema.prototype;\n\n//\n// String Interfaces\n//\n\nlet isNaN$1 = value => value != +value;\nfunction create$5() {\n return new NumberSchema();\n}\nclass NumberSchema extends Schema {\n constructor() {\n super({\n type: 'number',\n check(value) {\n if (value instanceof Number) value = value.valueOf();\n return typeof value === 'number' && !isNaN$1(value);\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw) => {\n if (!this.spec.coerce) return value;\n let parsed = value;\n if (typeof parsed === 'string') {\n parsed = parsed.replace(/\\s/g, '');\n if (parsed === '') return NaN;\n // don't use parseFloat to avoid positives on alpha-numeric strings\n parsed = +parsed;\n }\n\n // null -> NaN isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (this.isType(parsed) || parsed === null) return parsed;\n return parseFloat(parsed);\n });\n });\n }\n min(min, message = number.min) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(min);\n }\n });\n }\n max(max, message = number.max) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(max);\n }\n });\n }\n lessThan(less, message = number.lessThan) {\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n less\n },\n skipAbsent: true,\n test(value) {\n return value < this.resolve(less);\n }\n });\n }\n moreThan(more, message = number.moreThan) {\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n more\n },\n skipAbsent: true,\n test(value) {\n return value > this.resolve(more);\n }\n });\n }\n positive(msg = number.positive) {\n return this.moreThan(0, msg);\n }\n negative(msg = number.negative) {\n return this.lessThan(0, msg);\n }\n integer(message = number.integer) {\n return this.test({\n name: 'integer',\n message,\n skipAbsent: true,\n test: val => Number.isInteger(val)\n });\n }\n truncate() {\n return this.transform(value => !isAbsent(value) ? value | 0 : value);\n }\n round(method) {\n var _method;\n let avail = ['ceil', 'floor', 'round', 'trunc'];\n method = ((_method = method) == null ? void 0 : _method.toLowerCase()) || 'round';\n\n // this exists for symemtry with the new Math.trunc\n if (method === 'trunc') return this.truncate();\n if (avail.indexOf(method.toLowerCase()) === -1) throw new TypeError('Only valid options for round() are: ' + avail.join(', '));\n return this.transform(value => !isAbsent(value) ? Math[method](value) : value);\n }\n}\ncreate$5.prototype = NumberSchema.prototype;\n\n//\n// Number Interfaces\n//\n\nlet invalidDate = new Date('');\nlet isDate = obj => Object.prototype.toString.call(obj) === '[object Date]';\nfunction create$4() {\n return new DateSchema();\n}\nclass DateSchema extends Schema {\n constructor() {\n super({\n type: 'date',\n check(v) {\n return isDate(v) && !isNaN(v.getTime());\n }\n });\n this.withMutation(() => {\n this.transform((value, _raw) => {\n // null -> InvalidDate isn't useful; treat all nulls as null and let it fail on\n // nullability check vs TypeErrors\n if (!this.spec.coerce || this.isType(value) || value === null) return value;\n value = parseIsoDate(value);\n\n // 0 is a valid timestamp equivalent to 1970-01-01T00:00:00Z(unix epoch) or before.\n return !isNaN(value) ? new Date(value) : DateSchema.INVALID_DATE;\n });\n });\n }\n prepareParam(ref, name) {\n let param;\n if (!Reference.isRef(ref)) {\n let cast = this.cast(ref);\n if (!this._typeCheck(cast)) throw new TypeError(`\\`${name}\\` must be a Date or a value that can be \\`cast()\\` to a Date`);\n param = cast;\n } else {\n param = ref;\n }\n return param;\n }\n min(min, message = date.min) {\n let limit = this.prepareParam(min, 'min');\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n test(value) {\n return value >= this.resolve(limit);\n }\n });\n }\n max(max, message = date.max) {\n let limit = this.prepareParam(max, 'max');\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value <= this.resolve(limit);\n }\n });\n }\n}\nDateSchema.INVALID_DATE = invalidDate;\ncreate$4.prototype = DateSchema.prototype;\ncreate$4.INVALID_DATE = invalidDate;\n\n// @ts-expect-error\nfunction sortFields(fields, excludedEdges = []) {\n let edges = [];\n let nodes = new Set();\n let excludes = new Set(excludedEdges.map(([a, b]) => `${a}-${b}`));\n function addNode(depPath, key) {\n let node = split(depPath)[0];\n nodes.add(node);\n if (!excludes.has(`${key}-${node}`)) edges.push([key, node]);\n }\n for (const key of Object.keys(fields)) {\n let value = fields[key];\n nodes.add(key);\n if (Reference.isRef(value) && value.isSibling) addNode(value.path, key);else if (isSchema(value) && 'deps' in value) value.deps.forEach(path => addNode(path, key));\n }\n return toposort.array(Array.from(nodes), edges).reverse();\n}\n\nfunction findIndex(arr, err) {\n let idx = Infinity;\n arr.some((key, ii) => {\n var _err$path;\n if ((_err$path = err.path) != null && _err$path.includes(key)) {\n idx = ii;\n return true;\n }\n });\n return idx;\n}\nfunction sortByKeyOrder(keys) {\n return (a, b) => {\n return findIndex(keys, a) - findIndex(keys, b);\n };\n}\n\nconst parseJson = (value, _, schema) => {\n if (typeof value !== 'string') {\n return value;\n }\n let parsed = value;\n try {\n parsed = JSON.parse(value);\n } catch (err) {\n /* */\n }\n return schema.isType(parsed) ? parsed : value;\n};\n\n// @ts-ignore\nfunction deepPartial(schema) {\n if ('fields' in schema) {\n const partial = {};\n for (const [key, fieldSchema] of Object.entries(schema.fields)) {\n partial[key] = deepPartial(fieldSchema);\n }\n return schema.setFields(partial);\n }\n if (schema.type === 'array') {\n const nextArray = schema.optional();\n if (nextArray.innerType) nextArray.innerType = deepPartial(nextArray.innerType);\n return nextArray;\n }\n if (schema.type === 'tuple') {\n return schema.optional().clone({\n types: schema.spec.types.map(deepPartial)\n });\n }\n if ('optional' in schema) {\n return schema.optional();\n }\n return schema;\n}\nconst deepHas = (obj, p) => {\n const path = [...normalizePath(p)];\n if (path.length === 1) return path[0] in obj;\n let last = path.pop();\n let parent = getter(join(path), true)(obj);\n return !!(parent && last in parent);\n};\nlet isObject = obj => Object.prototype.toString.call(obj) === '[object Object]';\nfunction unknown(ctx, value) {\n let known = Object.keys(ctx.fields);\n return Object.keys(value).filter(key => known.indexOf(key) === -1);\n}\nconst defaultSort = sortByKeyOrder([]);\nfunction create$3(spec) {\n return new ObjectSchema(spec);\n}\nclass ObjectSchema extends Schema {\n constructor(spec) {\n super({\n type: 'object',\n check(value) {\n return isObject(value) || typeof value === 'function';\n }\n });\n this.fields = Object.create(null);\n this._sortErrors = defaultSort;\n this._nodes = [];\n this._excludedEdges = [];\n this.withMutation(() => {\n if (spec) {\n this.shape(spec);\n }\n });\n }\n _cast(_value, options = {}) {\n var _options$stripUnknown;\n let value = super._cast(_value, options);\n\n //should ignore nulls here\n if (value === undefined) return this.getDefault(options);\n if (!this._typeCheck(value)) return value;\n let fields = this.fields;\n let strip = (_options$stripUnknown = options.stripUnknown) != null ? _options$stripUnknown : this.spec.noUnknown;\n let props = [].concat(this._nodes, Object.keys(value).filter(v => !this._nodes.includes(v)));\n let intermediateValue = {}; // is filled during the transform below\n let innerOptions = Object.assign({}, options, {\n parent: intermediateValue,\n __validating: options.__validating || false\n });\n let isChanged = false;\n for (const prop of props) {\n let field = fields[prop];\n let exists = (prop in value);\n let inputValue = value[prop];\n if (field) {\n let fieldValue;\n\n // safe to mutate since this is fired in sequence\n innerOptions.path = (options.path ? `${options.path}.` : '') + prop;\n field = field.resolve({\n value: inputValue,\n context: options.context,\n parent: intermediateValue\n });\n let fieldSpec = field instanceof Schema ? field.spec : undefined;\n let strict = fieldSpec == null ? void 0 : fieldSpec.strict;\n if (fieldSpec != null && fieldSpec.strip) {\n isChanged = isChanged || prop in value;\n continue;\n }\n fieldValue = !options.__validating || !strict ? field.cast(inputValue, innerOptions) : inputValue;\n if (fieldValue !== undefined) {\n intermediateValue[prop] = fieldValue;\n }\n } else if (exists && !strip) {\n intermediateValue[prop] = inputValue;\n }\n if (exists !== prop in intermediateValue || intermediateValue[prop] !== inputValue) {\n isChanged = true;\n }\n }\n return isChanged ? intermediateValue : value;\n }\n _validate(_value, options = {}, panic, next) {\n let {\n from = [],\n originalValue = _value,\n recursive = this.spec.recursive\n } = options;\n options.from = [{\n schema: this,\n value: originalValue\n }, ...from];\n // this flag is needed for handling `strict` correctly in the context of\n // validation vs just casting. e.g strict() on a field is only used when validating\n options.__validating = true;\n options.originalValue = originalValue;\n super._validate(_value, options, panic, (objectErrors, value) => {\n if (!recursive || !isObject(value)) {\n next(objectErrors, value);\n return;\n }\n originalValue = originalValue || value;\n let tests = [];\n for (let key of this._nodes) {\n let field = this.fields[key];\n if (!field || Reference.isRef(field)) {\n continue;\n }\n tests.push(field.asNestedTest({\n options,\n key,\n parent: value,\n parentPath: options.path,\n originalParent: originalValue\n }));\n }\n this.runTests({\n tests,\n value,\n originalValue,\n options\n }, panic, fieldErrors => {\n next(fieldErrors.sort(this._sortErrors).concat(objectErrors), value);\n });\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n next.fields = Object.assign({}, this.fields);\n next._nodes = this._nodes;\n next._excludedEdges = this._excludedEdges;\n next._sortErrors = this._sortErrors;\n return next;\n }\n concat(schema) {\n let next = super.concat(schema);\n let nextFields = next.fields;\n for (let [field, schemaOrRef] of Object.entries(this.fields)) {\n const target = nextFields[field];\n nextFields[field] = target === undefined ? schemaOrRef : target;\n }\n return next.withMutation(s =>\n // XXX: excludes here is wrong\n s.setFields(nextFields, [...this._excludedEdges, ...schema._excludedEdges]));\n }\n _getDefault(options) {\n if ('default' in this.spec) {\n return super._getDefault(options);\n }\n\n // if there is no default set invent one\n if (!this._nodes.length) {\n return undefined;\n }\n let dft = {};\n this._nodes.forEach(key => {\n var _innerOptions;\n const field = this.fields[key];\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n dft[key] = field && 'getDefault' in field ? field.getDefault(innerOptions) : undefined;\n });\n return dft;\n }\n setFields(shape, excludedEdges) {\n let next = this.clone();\n next.fields = shape;\n next._nodes = sortFields(shape, excludedEdges);\n next._sortErrors = sortByKeyOrder(Object.keys(shape));\n // XXX: this carries over edges which may not be what you want\n if (excludedEdges) next._excludedEdges = excludedEdges;\n return next;\n }\n shape(additions, excludes = []) {\n return this.clone().withMutation(next => {\n let edges = next._excludedEdges;\n if (excludes.length) {\n if (!Array.isArray(excludes[0])) excludes = [excludes];\n edges = [...next._excludedEdges, ...excludes];\n }\n\n // XXX: excludes here is wrong\n return next.setFields(Object.assign(next.fields, additions), edges);\n });\n }\n partial() {\n const partial = {};\n for (const [key, schema] of Object.entries(this.fields)) {\n partial[key] = 'optional' in schema && schema.optional instanceof Function ? schema.optional() : schema;\n }\n return this.setFields(partial);\n }\n deepPartial() {\n const next = deepPartial(this);\n return next;\n }\n pick(keys) {\n const picked = {};\n for (const key of keys) {\n if (this.fields[key]) picked[key] = this.fields[key];\n }\n return this.setFields(picked, this._excludedEdges.filter(([a, b]) => keys.includes(a) && keys.includes(b)));\n }\n omit(keys) {\n const remaining = [];\n for (const key of Object.keys(this.fields)) {\n if (keys.includes(key)) continue;\n remaining.push(key);\n }\n return this.pick(remaining);\n }\n from(from, to, alias) {\n let fromGetter = getter(from, true);\n return this.transform(obj => {\n if (!obj) return obj;\n let newObj = obj;\n if (deepHas(obj, from)) {\n newObj = Object.assign({}, obj);\n if (!alias) delete newObj[from];\n newObj[to] = fromGetter(obj);\n }\n return newObj;\n });\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n\n /**\n * Similar to `noUnknown` but only validates that an object is the right shape without stripping the unknown keys\n */\n exact(message) {\n return this.test({\n name: 'exact',\n exclusive: true,\n message: message || object.exact,\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return unknownKeys.length === 0 || this.createError({\n params: {\n properties: unknownKeys.join(', ')\n }\n });\n }\n });\n }\n stripUnknown() {\n return this.clone({\n noUnknown: true\n });\n }\n noUnknown(noAllow = true, message = object.noUnknown) {\n if (typeof noAllow !== 'boolean') {\n message = noAllow;\n noAllow = true;\n }\n let next = this.test({\n name: 'noUnknown',\n exclusive: true,\n message: message,\n test(value) {\n if (value == null) return true;\n const unknownKeys = unknown(this.schema, value);\n return !noAllow || unknownKeys.length === 0 || this.createError({\n params: {\n unknown: unknownKeys.join(', ')\n }\n });\n }\n });\n next.spec.noUnknown = noAllow;\n return next;\n }\n unknown(allow = true, message = object.noUnknown) {\n return this.noUnknown(!allow, message);\n }\n transformKeys(fn) {\n return this.transform(obj => {\n if (!obj) return obj;\n const result = {};\n for (const key of Object.keys(obj)) result[fn(key)] = obj[key];\n return result;\n });\n }\n camelCase() {\n return this.transformKeys(camelCase);\n }\n snakeCase() {\n return this.transformKeys(snakeCase);\n }\n constantCase() {\n return this.transformKeys(key => snakeCase(key).toUpperCase());\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n base.fields = {};\n for (const [key, value] of Object.entries(next.fields)) {\n var _innerOptions2;\n let innerOptions = options;\n if ((_innerOptions2 = innerOptions) != null && _innerOptions2.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[key]\n });\n }\n base.fields[key] = value.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$3.prototype = ObjectSchema.prototype;\n\nfunction create$2(type) {\n return new ArraySchema(type);\n}\nclass ArraySchema extends Schema {\n constructor(type) {\n super({\n type: 'array',\n spec: {\n types: type\n },\n check(v) {\n return Array.isArray(v);\n }\n });\n\n // `undefined` specifically means uninitialized, as opposed to \"no subtype\"\n this.innerType = void 0;\n this.innerType = type;\n }\n _cast(_value, _opts) {\n const value = super._cast(_value, _opts);\n\n // should ignore nulls here\n if (!this._typeCheck(value) || !this.innerType) {\n return value;\n }\n let isChanged = false;\n const castArray = value.map((v, idx) => {\n const castElement = this.innerType.cast(v, Object.assign({}, _opts, {\n path: `${_opts.path || ''}[${idx}]`,\n parent: value,\n originalValue: v,\n value: v,\n index: idx\n }));\n if (castElement !== v) {\n isChanged = true;\n }\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n var _options$recursive;\n // let sync = options.sync;\n // let path = options.path;\n let innerType = this.innerType;\n // let endEarly = options.abortEarly ?? this.spec.abortEarly;\n let recursive = (_options$recursive = options.recursive) != null ? _options$recursive : this.spec.recursive;\n options.originalValue != null ? options.originalValue : _value;\n super._validate(_value, options, panic, (arrayErrors, value) => {\n var _options$originalValu2;\n if (!recursive || !innerType || !this._typeCheck(value)) {\n next(arrayErrors, value);\n return;\n }\n\n // #950 Ensure that sparse array empty slots are validated\n let tests = new Array(value.length);\n for (let index = 0; index < value.length; index++) {\n var _options$originalValu;\n tests[index] = innerType.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(arrayErrors), value));\n });\n }\n clone(spec) {\n const next = super.clone(spec);\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n return next;\n }\n\n /** Parse an input JSON string to an object */\n json() {\n return this.transform(parseJson);\n }\n concat(schema) {\n let next = super.concat(schema);\n\n // @ts-expect-error readonly\n next.innerType = this.innerType;\n if (schema.innerType)\n // @ts-expect-error readonly\n next.innerType = next.innerType ?\n // @ts-expect-error Lazy doesn't have concat and will break\n next.innerType.concat(schema.innerType) : schema.innerType;\n return next;\n }\n of(schema) {\n // FIXME: this should return a new instance of array without the default to be\n let next = this.clone();\n if (!isSchema(schema)) throw new TypeError('`array.of()` sub-schema must be a valid yup schema not: ' + printValue(schema));\n\n // @ts-expect-error readonly\n next.innerType = schema;\n next.spec = Object.assign({}, next.spec, {\n types: schema\n });\n return next;\n }\n length(length, message = array.length) {\n return this.test({\n message,\n name: 'length',\n exclusive: true,\n params: {\n length\n },\n skipAbsent: true,\n test(value) {\n return value.length === this.resolve(length);\n }\n });\n }\n min(min, message) {\n message = message || array.min;\n return this.test({\n message,\n name: 'min',\n exclusive: true,\n params: {\n min\n },\n skipAbsent: true,\n // FIXME(ts): Array<typeof T>\n test(value) {\n return value.length >= this.resolve(min);\n }\n });\n }\n max(max, message) {\n message = message || array.max;\n return this.test({\n message,\n name: 'max',\n exclusive: true,\n params: {\n max\n },\n skipAbsent: true,\n test(value) {\n return value.length <= this.resolve(max);\n }\n });\n }\n ensure() {\n return this.default(() => []).transform((val, original) => {\n // We don't want to return `null` for nullable schema\n if (this._typeCheck(val)) return val;\n return original == null ? [] : [].concat(original);\n });\n }\n compact(rejector) {\n let reject = !rejector ? v => !!v : (v, i, a) => !rejector(v, i, a);\n return this.transform(values => values != null ? values.filter(reject) : values);\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n if (next.innerType) {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[0]\n });\n }\n base.innerType = next.innerType.describe(innerOptions);\n }\n return base;\n }\n}\ncreate$2.prototype = ArraySchema.prototype;\n\n// @ts-ignore\nfunction create$1(schemas) {\n return new TupleSchema(schemas);\n}\nclass TupleSchema extends Schema {\n constructor(schemas) {\n super({\n type: 'tuple',\n spec: {\n types: schemas\n },\n check(v) {\n const types = this.spec.types;\n return Array.isArray(v) && v.length === types.length;\n }\n });\n this.withMutation(() => {\n this.typeError(tuple.notType);\n });\n }\n _cast(inputValue, options) {\n const {\n types\n } = this.spec;\n const value = super._cast(inputValue, options);\n if (!this._typeCheck(value)) {\n return value;\n }\n let isChanged = false;\n const castArray = types.map((type, idx) => {\n const castElement = type.cast(value[idx], Object.assign({}, options, {\n path: `${options.path || ''}[${idx}]`,\n parent: value,\n originalValue: value[idx],\n value: value[idx],\n index: idx\n }));\n if (castElement !== value[idx]) isChanged = true;\n return castElement;\n });\n return isChanged ? castArray : value;\n }\n _validate(_value, options = {}, panic, next) {\n let itemTypes = this.spec.types;\n super._validate(_value, options, panic, (tupleErrors, value) => {\n var _options$originalValu2;\n // intentionally not respecting recursive\n if (!this._typeCheck(value)) {\n next(tupleErrors, value);\n return;\n }\n let tests = [];\n for (let [index, itemSchema] of itemTypes.entries()) {\n var _options$originalValu;\n tests[index] = itemSchema.asNestedTest({\n options,\n index,\n parent: value,\n parentPath: options.path,\n originalParent: (_options$originalValu = options.originalValue) != null ? _options$originalValu : _value\n });\n }\n this.runTests({\n value,\n tests,\n originalValue: (_options$originalValu2 = options.originalValue) != null ? _options$originalValu2 : _value,\n options\n }, panic, innerTypeErrors => next(innerTypeErrors.concat(tupleErrors), value));\n });\n }\n describe(options) {\n const next = (options ? this.resolve(options) : this).clone();\n const base = super.describe(options);\n base.innerType = next.spec.types.map((schema, index) => {\n var _innerOptions;\n let innerOptions = options;\n if ((_innerOptions = innerOptions) != null && _innerOptions.value) {\n innerOptions = Object.assign({}, innerOptions, {\n parent: innerOptions.value,\n value: innerOptions.value[index]\n });\n }\n return schema.describe(innerOptions);\n });\n return base;\n }\n}\ncreate$1.prototype = TupleSchema.prototype;\n\nfunction create(builder) {\n return new Lazy(builder);\n}\nfunction catchValidationError(fn) {\n try {\n return fn();\n } catch (err) {\n if (ValidationError.isError(err)) return Promise.reject(err);\n throw err;\n }\n}\nclass Lazy {\n constructor(builder) {\n this.type = 'lazy';\n this.__isYupSchema__ = true;\n this.spec = void 0;\n this._resolve = (value, options = {}) => {\n let schema = this.builder(value, options);\n if (!isSchema(schema)) throw new TypeError('lazy() functions must return a valid schema');\n if (this.spec.optional) schema = schema.optional();\n return schema.resolve(options);\n };\n this.builder = builder;\n this.spec = {\n meta: undefined,\n optional: false\n };\n }\n clone(spec) {\n const next = new Lazy(this.builder);\n next.spec = Object.assign({}, this.spec, spec);\n return next;\n }\n optionality(optional) {\n const next = this.clone({\n optional\n });\n return next;\n }\n optional() {\n return this.optionality(true);\n }\n resolve(options) {\n return this._resolve(options.value, options);\n }\n cast(value, options) {\n return this._resolve(value, options).cast(value, options);\n }\n asNestedTest(config) {\n let {\n key,\n index,\n parent,\n options\n } = config;\n let value = parent[index != null ? index : key];\n return this._resolve(value, Object.assign({}, options, {\n value,\n parent\n })).asNestedTest(config);\n }\n validate(value, options) {\n return catchValidationError(() => this._resolve(value, options).validate(value, options));\n }\n validateSync(value, options) {\n return this._resolve(value, options).validateSync(value, options);\n }\n validateAt(path, value, options) {\n return catchValidationError(() => this._resolve(value, options).validateAt(path, value, options));\n }\n validateSyncAt(path, value, options) {\n return this._resolve(value, options).validateSyncAt(path, value, options);\n }\n isValid(value, options) {\n try {\n return this._resolve(value, options).isValid(value, options);\n } catch (err) {\n if (ValidationError.isError(err)) {\n return Promise.resolve(false);\n }\n throw err;\n }\n }\n isValidSync(value, options) {\n return this._resolve(value, options).isValidSync(value, options);\n }\n describe(options) {\n return options ? this.resolve(options).describe(options) : {\n type: 'lazy',\n meta: this.spec.meta,\n label: undefined\n };\n }\n meta(...args) {\n if (args.length === 0) return this.spec.meta;\n let next = this.clone();\n next.spec.meta = Object.assign(next.spec.meta || {}, args[0]);\n return next;\n }\n get ['~standard']() {\n const schema = this;\n const standard = {\n version: 1,\n vendor: 'yup',\n async validate(value) {\n try {\n const result = await schema.validate(value, {\n abortEarly: false\n });\n return {\n value: result\n };\n } catch (err) {\n if (ValidationError.isError(err)) {\n return {\n issues: issuesFromValidationError(err)\n };\n }\n throw err;\n }\n }\n };\n return standard;\n }\n}\n\nfunction setLocale(custom) {\n Object.keys(custom).forEach(type => {\n // @ts-ignore\n Object.keys(custom[type]).forEach(method => {\n // @ts-ignore\n locale[type][method] = custom[type][method];\n });\n });\n}\n\nfunction addMethod(schemaType, name, fn) {\n if (!schemaType || !isSchema(schemaType.prototype)) throw new TypeError('You must provide a yup schema constructor function');\n if (typeof name !== 'string') throw new TypeError('A Method name must be provided');\n if (typeof fn !== 'function') throw new TypeError('Method function must be provided');\n schemaType.prototype[name] = fn;\n}\n\nexport { ArraySchema, BooleanSchema, DateSchema, Lazy as LazySchema, MixedSchema, NumberSchema, ObjectSchema, Schema, StringSchema, TupleSchema, ValidationError, addMethod, create$2 as array, create$7 as bool, create$7 as boolean, create$4 as date, locale as defaultLocale, getIn, isSchema, create as lazy, create$8 as mixed, create$5 as number, create$3 as object, printValue, reach, create$9 as ref, setLocale, create$6 as string, create$1 as tuple };\n","import * as yup from \"yup\";\r\n\r\nexport const checkUnknownValues =\r\n (allowedKeys: string[], optionalKeys: string[] = []) =>\r\n (value: Record<string, any>) => {\r\n const unknownKeys = value\r\n ? Object.keys(value).filter(\r\n (key) => !allowedKeys.includes(key) && !optionalKeys.includes(key)\r\n )\r\n : [];\r\n\r\n if (unknownKeys.length > 0) {\r\n throw new yup.ValidationError(\r\n `Unknown properties: ${unknownKeys.join(\", \")}`,\r\n value,\r\n \"custom-validation\"\r\n );\r\n }\r\n\r\n return true;\r\n };\r\n","import * as yup from \"yup\";\r\nimport { checkUnknownValues } from \"./helper\";\r\nimport { Chatbot, Role } from \"../models/chatbot\";\r\nimport { PopulatedChatflow } from \"./activityChatbot\";\r\n\r\ntype ObjectId = string;\r\n\r\n// =============== readById ===============\r\n\r\n// Type for lean user object returned from populate\r\ntype LeanUser = {\r\n _id: ObjectId;\r\n name: string;\r\n profilePicture?: string;\r\n};\r\n\r\n// Type for chatbot after findById with populated teamMembers (before chatflow population)\r\n// This will be cast from the MongoDB query result\r\nexport type LeanChatbotAfterQuery = Omit<Chatbot, 'teamMembers' | 'chatflow'> & {\r\n teamMembers: {\r\n members: (Omit<Chatbot['teamMembers']['members'][number], 'user'> & {\r\n user: LeanUser;\r\n })[];\r\n roles: Role[];\r\n };\r\n chatflow: Chatbot['chatflow'];\r\n};\r\n\r\n// Type for chatbot after populateChatflow is applied (final response type)\r\n// This is the same shape with PopulatedChatflow instead of ChatbotChatflow\r\nexport type PopulatedChatbotLean = Omit<LeanChatbotAfterQuery, 'chatflow'> & {\r\n chatflow: PopulatedChatflow;\r\n};\r\n\r\nexport const readByIdSchema = yup.object().shape({\r\n params: yup\r\n .object()\r\n .shape({\r\n id: yup\r\n .string()\r\n .trim()\r\n .matches(/^[0-9a-fA-F]{24}$/, \"Invalid Id\")\r\n .required(\"Id is required\"),\r\n })\r\n .test(\"custom-validation\", \"Custom validation failed\", (value) => {\r\n return checkUnknownValues([\"id\"], [])(value);\r\n })\r\n});\r\n\r\nexport type ReadByIdReq = {\r\n params: { id: string};\r\n};\r\n\r\nexport type ReadByIdRes = {\r\n success: boolean;\r\n message: string;\r\n data: { chatbot: PopulatedChatbotLean, fileSizeLimit: number } | null;\r\n};\r\n\r\n// =============== generateToken ===============\r\nexport const generateTokenSchema = yup.object().shape({\r\n body: yup\r\n .object()\r\n .shape({\r\n userId: yup\r\n .string()\r\n .trim()\r\n .min(1, \"User Id must be at least 1 character\")\r\n .max(1000, \"User Id cannot exceed 1000 characters\")\r\n .required(\"User Id is required\"),\r\n visitor: yup\r\n .boolean()\r\n .required(\"Visitor is required\"),\r\n chatbotId: yup\r\n .string()\r\n .trim()\r\n .matches(/^[0-9a-fA-F]{24}$/, \"Invalid Chatbot Id\")\r\n .required(\"Chatbot Id is required\"),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([\"userId\", \"visitor\", \"chatbotId\"])\r\n ),\r\n});\r\n\r\nexport type GenerateTokenReq = {\r\n body: {\r\n userId: string;\r\n visitor: boolean;\r\n chatbotId: string;\r\n };\r\n};\r\n\r\nexport type GenerateTokenRes = {\r\n success: boolean;\r\n message: string;\r\n data: { token: string; socketToken: string } | null;\r\n};","import { axiosInstance } from \"../lib/axios\";\r\nimport {\r\n ReadByIdReq,\r\n ReadByIdRes,\r\n readByIdSchema,\r\n GenerateTokenReq,\r\n GenerateTokenRes,\r\n generateTokenSchema,\r\n} from \"./validations/live\";\r\n\r\n// ============================================================\r\n// ====================== API CALLS ============================\r\n// ============================================================\r\n\r\n// GET /live/readById/:id\r\nconst readById = async (payload: ReadByIdReq): Promise<ReadByIdRes> => {\r\n await readByIdSchema.validate({ params: payload.params }, { abortEarly: false });\r\n const { data } = await axiosInstance.get(`/live/readById/${payload.params.id}`);\r\n return data;\r\n};\r\n\r\n// POST /live/generateToken\r\nconst generateToken = async (payload: GenerateTokenReq): Promise<GenerateTokenRes> => {\r\n await generateTokenSchema.validate({ body: payload.body }, { abortEarly: false });\r\n const { data } = await axiosInstance.post(`/live/generateToken`, payload.body);\r\n return data;\r\n};\r\n\r\nexport default { readById, generateToken };","import * as yup from \"yup\";\r\nimport { checkUnknownValues } from \"./helper\";\r\nimport { Conversation } from \"../models/conversation\";\r\nimport { Message } from \"../models/message\";\r\n\r\n// =============== userRead ===============\r\n\r\ntype ObjectId = string;\r\n\r\nexport const UserReadSchema = yup.object().shape({\r\n params: yup\r\n .object()\r\n .shape({\r\n id: yup\r\n .string()\r\n .trim()\r\n .matches(/^[0-9a-fA-F]{24}$/, \"Invalid Id\")\r\n .required(\"Id is required\"),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([\"id\"], [])\r\n ),\r\n});\r\n\r\nexport interface UserReadReq {\r\n params: {\r\n id: string;\r\n };\r\n}\r\n\r\nexport type UserReadRes = {\r\n success: boolean;\r\n message: string;\r\n data: Conversation | null;\r\n};\r\n\r\n// =============== userReadAll ===============\r\n\r\nexport const userReadAllSchema = yup.object().shape({\r\n query: yup\r\n .object()\r\n .shape({\r\n skip: yup\r\n .string()\r\n .trim()\r\n .min(1, \"Skip must be at least 1 character\")\r\n .max(10000, \"Skip cannot exceed 10000 characters\")\r\n .optional(),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([], [\"skip\"])\r\n ),\r\n});\r\n\r\nexport interface UserReadAllReq {\r\n query: {\r\n skip?: string;\r\n };\r\n}\r\n\r\nexport type UserReadAllRes = {\r\n success: boolean;\r\n message: string;\r\n data: {\r\n conversations: Conversation[];\r\n count: number;\r\n messages: Message[];\r\n } | null;\r\n};\r\n\r\n\r\n// =============== userUpdateCurrentNode ===============\r\nexport const userUpdateCurrentNodeSchema = yup.object().shape({\r\n body: yup\r\n .object()\r\n .shape({\r\n currentNode: yup\r\n .string()\r\n .trim()\r\n .min(1, \"Current Node must be at least 1 character\")\r\n .max(1000, \"Current Node cannot exceed 1000 characters\")\r\n .required(\"Current Node is required\"),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([\"currentNode\"])\r\n ),\r\n params: yup\r\n .object()\r\n .shape({\r\n id: yup\r\n .string()\r\n .trim()\r\n .matches(/^[0-9a-fA-F]{24}$/, \"Invalid Id\")\r\n .required(\"Id is required\"),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([\"id\"], [])\r\n ),\r\n});\r\n\r\nexport interface UserUpdateCurrentNodeReq {\r\n body: {\r\n currentNode: string;\r\n };\r\n params: {\r\n id: string;\r\n };\r\n}\r\n\r\nexport type UserUpdateCurrentNodeRes = {\r\n success: boolean;\r\n message: string;\r\n data: Conversation | null;\r\n};\r\n\r\n// =============== userAssignToAgent ===============\r\nexport const userAssignToAgentSchema = yup.object().shape({\r\n body: yup\r\n .object()\r\n .shape({\r\n assignType: yup\r\n .string()\r\n .oneOf([\"role\", \"teamMember\", \"everyone\"] as const)\r\n .required(\"Assign Type is required\"),\r\n assignTo: yup\r\n .string()\r\n .when(\"assignType\", {\r\n is: \"role\",\r\n then: (schema) =>\r\n schema\r\n .min(1, \"Role must be at least 1 character\")\r\n .max(500, \"Role cannot exceed 500 characters\")\r\n .required(\"Role is required\"),\r\n })\r\n .when(\"assignType\", {\r\n is: \"teamMember\",\r\n then: (schema) =>\r\n schema\r\n .trim()\r\n .matches(/^[0-9a-fA-F]{24}$/, \"Invalid Member Id\")\r\n .required(\"Member Id is required\"),\r\n })\r\n .when(\"assignType\", {\r\n is: \"everyone\",\r\n then: (schema) => schema.nullable(),\r\n }),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([\"assignType\", \"assignTo\"])\r\n ),\r\n params: yup\r\n .object()\r\n .shape({\r\n id: yup\r\n .string()\r\n .trim()\r\n .matches(/^[0-9a-fA-F]{24}$/, \"Invalid Id\")\r\n .required(\"Id is required\"),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([\"id\"], [])\r\n ),\r\n});\r\n\r\nexport interface UserAssignToAgentReq {\r\n body: {\r\n assignType: \"role\" | \"teamMember\" | \"everyone\";\r\n assignTo: string;\r\n };\r\n params: {\r\n id: string;\r\n };\r\n}\r\n\r\nexport type UserAssignToAgentRes = {\r\n success: boolean;\r\n message: string;\r\n data: { conversation: Conversation; onlineAgents: number } | null;\r\n};\r\n\r\n// =============== userCreate ===============\r\nexport const userCreateSchema = yup.object().shape({\r\n body: yup\r\n .object()\r\n .shape({\r\n chatflow: yup\r\n .object()\r\n .shape({\r\n key: yup\r\n .string()\r\n .max(1000, \"Key cannot exceed 1000 characters\")\r\n .optional(),\r\n index: yup.number().max(1000, \"Index cannot exceed 1000\").optional(),\r\n })\r\n .nullable()\r\n .optional(),\r\n nodeId: yup\r\n .string()\r\n .trim()\r\n .min(1, \"Node ID must be at least 1 character\")\r\n .max(1000, \"Node ID cannot exceed 1000 characters\")\r\n .optional(),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([], [\"chatflow\", \"nodeId\"])\r\n ),\r\n});\r\n\r\nexport interface UserCreateReq {\r\n body: {\r\n chatflow?: { key?: string; index?: number } | null;\r\n nodeId?: string;\r\n };\r\n}\r\n\r\nexport type UserCreateRes = {\r\n success: boolean;\r\n message: string;\r\n data: Conversation | null;\r\n};","import { axiosInstance } from \"../lib/axios\";\r\nimport {\r\n UserReadReq,\r\n UserReadRes,\r\n UserReadSchema,\r\n UserReadAllReq,\r\n UserReadAllRes,\r\n userReadAllSchema,\r\n UserUpdateCurrentNodeReq,\r\n UserUpdateCurrentNodeRes,\r\n userUpdateCurrentNodeSchema,\r\n UserAssignToAgentReq,\r\n UserAssignToAgentRes,\r\n userAssignToAgentSchema,\r\n UserCreateReq,\r\n UserCreateRes,\r\n userCreateSchema,\r\n} from \"./validations/conversation\";\r\n\r\n// =========================================================\r\n// ======================== API CALLS =======================\r\n// =========================================================\r\n\r\n// GET /conversation/user/read/:id\r\nconst userRead = async (\r\n payload: UserReadReq,\r\n token: string\r\n): Promise<UserReadRes> => {\r\n await UserReadSchema.validate(\r\n { params: payload.params },\r\n { abortEarly: false }\r\n );\r\n const { data } = await axiosInstance.get(\r\n `/conversation/user/read/${payload.params.id}`,\r\n {\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n return data;\r\n};\r\n\r\n// GET /conversation/user/readAll\r\nconst userReadAll = async (\r\n token: string,\r\n payload?: UserReadAllReq,\r\n): Promise<UserReadAllRes> => {\r\n await userReadAllSchema.validate(\r\n { query: payload?.query },\r\n { abortEarly: false }\r\n );\r\n const { data } = await axiosInstance.get(`/conversation/user/readAll`, {\r\n params: payload?.query,\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n return data;\r\n};\r\n\r\n// POST /conversation/user/update/currentNode/:id\r\nconst userUpdateCurrentNode = async (\r\n payload: UserUpdateCurrentNodeReq,\r\n token: string\r\n): Promise<UserUpdateCurrentNodeRes> => {\r\n await userUpdateCurrentNodeSchema.validate(\r\n { params: payload.params, body: payload.body },\r\n { abortEarly: false }\r\n );\r\n\r\n const { data } = await axiosInstance.post(\r\n `/conversation/user/update/currentNode/${payload.params.id}`,\r\n payload.body,\r\n {\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n return data;\r\n};\r\n\r\n// POST /conversation/user/update/assign/:id\r\nconst userAssignToAgent = async (\r\n payload: UserAssignToAgentReq,\r\n token: string\r\n): Promise<UserAssignToAgentRes> => {\r\n await userAssignToAgentSchema.validate(\r\n { params: payload.params, body: payload.body },\r\n { abortEarly: false }\r\n );\r\n\r\n const { data } = await axiosInstance.post(\r\n `/conversation/user/update/assign/${payload.params.id}`,\r\n payload.body,\r\n {\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n return data;\r\n};\r\n\r\n// POST /conversation/user/create\r\nconst userCreate = async (\r\n payload: UserCreateReq,\r\n token: string\r\n): Promise<UserCreateRes> => {\r\n await userCreateSchema.validate(\r\n { body: payload.body },\r\n { abortEarly: false }\r\n );\r\n const { data } = await axiosInstance.post(\r\n `/conversation/user/create`,\r\n payload.body,\r\n {\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n return data;\r\n};\r\n\r\nexport default {\r\n userRead,\r\n userReadAll,\r\n userUpdateCurrentNode,\r\n userAssignToAgent,\r\n userCreate,\r\n};\r\n","type IconProps = {\r\n className?: string;\r\n style?: React.CSSProperties;\r\n};\r\n\r\ntype SizedIconProps = {\r\n className?: string;\r\n width?: number | string;\r\n height?: number | string;\r\n};\r\n\r\nexport const Cross = ({ className, style = {} }: IconProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"28\"\r\n height=\"28\"\r\n viewBox=\"0 0 256 256\"\r\n className={className}\r\n style={style}\r\n >\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z\"\r\n />\r\n </svg>\r\n);\r\n\r\nexport const LoadingIcon = ({\r\n className,\r\n width = 16,\r\n height = 16,\r\n}: SizedIconProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={width}\r\n height={height}\r\n viewBox=\"0 0 256 256\"\r\n className={className}\r\n >\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M232,128a104,104,0,0,1-208,0c0-41,23.81-78.36,60.66-95.27a8,8,0,0,1,6.68,14.54C60.15,61.59,40,93.27,40,128a88,88,0,0,0,176,0c0-34.73-20.15-66.41-51.34-80.73a8,8,0,0,1,6.68-14.54C208.19,49.64,232,87,232,128Z\"\r\n />\r\n </svg>\r\n);\r\n\r\nexport const UserIcon = ({ className }: IconProps) => (\r\n <svg\r\n width=\"100%\"\r\n height=\"100%\"\r\n viewBox=\"0 0 26 26\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n className={className}\r\n >\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M13 0C10.4288 0 7.91543 0.762437 5.77759 2.1909C3.63975 3.61935 1.97351 5.64968 0.989572 8.02512C0.0056327 10.4006 -0.251811 13.0144 0.249797 15.5362C0.751405 18.0579 1.98953 20.3743 3.80762 22.1924C5.6257 24.0105 7.94208 25.2486 10.4638 25.7502C12.9856 26.2518 15.5995 25.9944 17.9749 25.0104C20.3503 24.0265 22.3807 22.3603 23.8091 20.2224C25.2376 18.0846 26 15.5712 26 13C25.9964 9.5533 24.6256 6.24882 22.1884 3.81163C19.7512 1.37445 16.4467 0.00363977 13 0Z\"\r\n />\r\n </svg>\r\n);\r\n\r\nexport const ArrowFill = ({ className }: IconProps) => (\r\n <svg\r\n width=\"11\"\r\n height=\"6\"\r\n viewBox=\"0 0 11 6\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n className={className}\r\n >\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M10.7884 1.18378L6.00738 5.79649C5.94076 5.861 5.86159 5.91218 5.77442 5.9471C5.68725 5.98202 5.59379 6 5.4994 6C5.40501 6 5.31156 5.98202 5.22438 5.9471C5.13721 5.91218 5.05805 5.861 4.99142 5.79649L0.210413 1.18378C0.0756879 1.0538 0 0.877507 0 0.693683C0 0.50986 0.0756879 0.333566 0.210413 0.203583C0.345138 0.0736001 0.527865 0.000576714 0.718395 0.000576712C0.908925 0.00057671 1.09165 0.0736001 1.22638 0.203583L5.5 4.32677L9.77362 0.203007C9.90835 0.0730239 10.0911 0 10.2816 0C10.4721 0 10.6549 0.0730239 10.7896 0.203007C10.9243 0.332989 11 0.509284 11 0.693107C11 0.87693 10.9243 1.05322 10.7896 1.18321Z\"\r\n />\r\n </svg>\r\n);\r\n\r\nexport const Star = ({ className }: IconProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\"\r\n height=\"16\"\r\n viewBox=\"0 0 256 256\"\r\n className={className}\r\n >\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M234.29,114.85l-45,38.83L203,211.75a16.4,16.4,0,0,1-24.5,17.82L128,198.49,77.47,229.57A16.4,16.4,0,0,1,53,211.75l13.76-58.07-45-38.83A16.46,16.46,0,0,1,31.08,86l59-4.76,22.76-55.08a16.36,16.36,0,0,1,30.27,0l22.75,55.08,59,4.76a16.46,16.46,0,0,1,9.37,28.86Z\"\r\n />\r\n </svg>\r\n);\r\n\r\nexport const XIcon = ({\r\n className,\r\n width = 32,\r\n height = 32,\r\n}: SizedIconProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width={width}\r\n height={height}\r\n viewBox=\"0 0 256 256\"\r\n className={className}\r\n >\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M208.49,191.51a12,12,0,0,1-17,17L128,145,64.49,208.49a12,12,0,0,1-17-17L111,128,47.51,64.49a12,12,0,0,1,17-17L128,111l63.51-63.52a12,12,0,0,1,17,17L145,128Z\"\r\n />\r\n </svg>\r\n);\r\n\r\nexport const DragIcon = ({\r\n className,\r\n width = 32,\r\n}: {\r\n className?: string;\r\n width?: number;\r\n}) => (\r\n <svg\r\n width={width}\r\n height={width * 2}\r\n viewBox=\"0 0 9 14\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n className={className}\r\n >\r\n <circle cx=\"6.99929\" cy=\"1.27273\" r=\"1.27273\" fill=\"currentColor\" />\r\n <circle cx=\"1.27273\" cy=\"1.27273\" r=\"1.27273\" fill=\"currentColor\" />\r\n <circle cx=\"6.99929\" cy=\"7.00002\" r=\"1.27273\" fill=\"currentColor\" />\r\n <circle cx=\"1.27273\" cy=\"7.00002\" r=\"1.27273\" fill=\"currentColor\" />\r\n <circle cx=\"6.99929\" cy=\"12.7273\" r=\"1.27273\" fill=\"currentColor\" />\r\n <circle cx=\"1.27273\" cy=\"12.7273\" r=\"1.27273\" fill=\"currentColor\" />\r\n </svg>\r\n);\r\n\r\nexport const InputArrow = ({ className }: IconProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"32\"\r\n height=\"32\"\r\n viewBox=\"0 0 256 256\"\r\n className={className}\r\n >\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M231.87,114l-168-95.89A16,16,0,0,0,40.92,37.34L71.55,128,40.92,218.67A16,16,0,0,0,56,240a16.15,16.15,0,0,0,7.93-2.1l167.92-96.05a16,16,0,0,0,.05-27.89ZM56,224a.56.56,0,0,0,0-.12L85.74,136H144a8,8,0,0,0,0-16H85.74L56.06,32.16A.46.46,0,0,0,56,32l168,95.83Z\"\r\n />\r\n </svg>\r\n);\r\n\r\nexport const Attachment = ({ className }: IconProps) => (\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"32\"\r\n height=\"32\"\r\n viewBox=\"0 0 256 256\"\r\n className={className}\r\n >\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M209.66,122.34a8,8,0,0,1,0,11.32l-82.05,82a56,56,0,0,1-79.2-79.21L147.67,35.73a40,40,0,1,1,56.61,56.55L105,193A24,24,0,1,1,71,159L154.3,74.38A8,8,0,1,1,165.7,85.6L82.39,170.31a8,8,0,1,0,11.27,11.36L192.93,81A24,24,0,1,0,159,47L59.76,147.68a40,40,0,1,0,56.53,56.62l82.06-82A8,8,0,0,1,209.66,122.34Z\"\r\n />\r\n </svg>\r\n);\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADcAAAAxCAYAAAB+gjFbAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAALhSURBVHgB7ZlNbtpAFMf/MxC1qySIdNFVnRtwg5ATlJygdNdFCuYEgRPEVN2HnqD0BNAbJCeId13kA6SuKjUzfW8MgQbHGJi09ig/aWQbxpJ/fvPlNwLrcnxVhZAVSHFAVxUqu5OyKaEpWl1AYYjizyGC/THWQKxU27/chdpuQggfdkRSonu4U1/w+dVwlbvSybGU3j6h6j7+L0OIX+8RvA7TVF4u9/HKhyyQ2L+M1DJ0gG65taxWslzz5jQD0XqMkKJ4mBTFeDnTDHe+0lkV2SZRUMbeoncGyL4Y40G/GMD/4cX9uShnmqIZ2vPCRHC0MCb8Ledf1zPcx5IgQX328MdZn+PQ8hvginlFqCMEe/3p5SxyaquNPIsxWp7ON89IjqMm5DvkH49WMvXpRSQXRc0NpLgPUiQn5AHcoQKfFvVguWNz4sEllKzxQULKKlxDmM8wbpY6TxN2WoyTpP72Bi7yYeTxgOLBRV7CyGXoO80uEg7zLJdXnuXyii05ymWIQyr75qh0Cxrf6ffkZCrX0bpL9xzd3wucwxICzVuNTeEH/FSO/4L3R7xa8KBUtBKSMkQkECIoLcrzolcXBtgUelFF2OHxCAUlFuHSRyr0WqnzOOw0S5tLuN/SgyUs9Tldi8s+rYVEDZawNaBQEledYFOinSNr6Q6LUwGlBBuj9R+M8ziFwhnscW53nhO01dS4WT2CHDG7aUUzEtufxIVo0/RyOUlfJMPRalz3KGJ286UaF3ywNRU8xDMP3LzlHdJvNKn3qYyh7sYoblXoBXiUpXpLD1FdcfszHVqZacfOJJ41eLUTlEIH15aix2J85p6cQGd66pjcLGqMS3LhfNQYd+SEas1HjXFDTujO/L7clPzLGbFyO+6vfMsliDFPtUJ5asZRH9vrJVXKnxznXaSok1i4rGp+5CKpNrqlYdpbsi1nhPSQhoY+Sa2cFStS5qqDrKCpLxUkJ4ii7Fi3tFGy6A+7st8LQyzi5QAAAABJRU5ErkJggg==\"","interface TimeThreshold {\r\n limit: number;\r\n label: string;\r\n}\r\n\r\nexport const beautifyPastDate = (date: string | Date | number): string => {\r\n // Create Date objects in UTC for consistent calculations\r\n const pastDate = new Date(date);\r\n\r\n // Handle invalid date\r\n if (Number.isNaN(pastDate.getTime())) {\r\n return \"Invalid date\";\r\n }\r\n\r\n const today = new Date();\r\n const differenceInMs = today.getTime() - pastDate.getTime();\r\n\r\n // Handle future dates\r\n if (differenceInMs < 0) {\r\n return \"in the future\";\r\n }\r\n\r\n // Calculate difference in various units (seconds, minutes, hours, days, months, years)\r\n const seconds = Math.floor(differenceInMs / 1000);\r\n const minutes = Math.floor(seconds / 60);\r\n const hours = Math.floor(minutes / 60);\r\n const days = Math.floor(hours / 24);\r\n const months = Math.floor(days / 30);\r\n const years = Math.floor(months / 12);\r\n\r\n // Define thresholds and formatting for different time ranges\r\n const thresholds: TimeThreshold[] = [\r\n { limit: 60 * 1000, label: \"just now\" }, // 60 seconds in milliseconds\r\n {\r\n limit: 60 * 60 * 1000,\r\n label: `${minutes} minute${minutes !== 1 ? \"s\" : \"\"}`,\r\n },\r\n {\r\n limit: 24 * 60 * 60 * 1000,\r\n label: `${hours} hour${hours !== 1 ? \"s\" : \"\"}`,\r\n },\r\n {\r\n limit: 30 * 24 * 60 * 60 * 1000,\r\n label: `${days} day${days !== 1 ? \"s\" : \"\"}`,\r\n },\r\n ];\r\n\r\n // Find the first threshold that applies\r\n let timeDifference = thresholds.find(\r\n (threshold) => differenceInMs < threshold.limit\r\n );\r\n\r\n if (!timeDifference) {\r\n if (months > 0) {\r\n return `${months} month${months !== 1 ? \"s\" : \"\"} ago`;\r\n }\r\n return `${years} year${years !== 1 ? \"s\" : \"\"} ago`;\r\n }\r\n\r\n return timeDifference.label;\r\n};\r\n","import * as yup from \"yup\";\r\nimport { checkUnknownValues } from \"./helper\";\r\nimport { Message } from \"../models/message\";\r\n\r\n// =============== Shared Schemas ===============\r\nconst fileDataSchema = yup\r\n .object()\r\n .shape({\r\n name: yup\r\n .string()\r\n .min(1, \"Name must be at least 1 character\")\r\n .max(1000, \"Name cannot exceed 1000 characters\")\r\n .required(\"Name is required\"),\r\n url: yup\r\n .string()\r\n .min(1, \"URL must be at least 1 character\")\r\n .max(1000, \"URL cannot exceed 1000 characters\")\r\n .required(\"URL is required\"),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([\"name\", \"url\"])\r\n );\r\n\r\nconst messageDataSchema = yup\r\n .object()\r\n .shape({\r\n text: yup\r\n .string()\r\n .min(1, \"Text must be at least 1 character\")\r\n .max(1000, \"Text cannot exceed 1000 characters\")\r\n .optional(),\r\n file: fileDataSchema.when(\"text\", {\r\n is: (text: string | undefined) => !text,\r\n then: (schema) => schema.required(),\r\n otherwise: (schema) => schema.strip(),\r\n }),\r\n })\r\n .test(\r\n \"text-or-file\",\r\n \"Either 'text' or 'file' must be provided\",\r\n function (value) {\r\n const { text, file } = value;\r\n if (!text && !file) {\r\n return this.createError({\r\n path: \"data\",\r\n message: \"Either 'text' or 'file' must be provided\",\r\n });\r\n }\r\n return true;\r\n }\r\n )\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([], [\"text\", \"file\"])\r\n );\r\n\r\n// =============== userUpdateSeen ===============\r\nexport const userUpdateSeenSchema = yup.object().shape({\r\n params: yup\r\n .object()\r\n .shape({\r\n id: yup\r\n .string()\r\n .trim()\r\n .matches(/^[0-9a-fA-F]{24}$/, \"Invalid Id\")\r\n .required(\"Id is required\"),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([\"id\"])\r\n ),\r\n});\r\n\r\nexport interface userUpdateSeenReq {\r\n params: {\r\n id: string;\r\n };\r\n}\r\n\r\nexport type userUpdateSeenRes = {\r\n success: boolean;\r\n message: string;\r\n data: Message | null;\r\n};\r\n\r\n// =============== userReadAll ===============\r\nexport const userReadAllSchema = yup.object().shape({\r\n body: yup\r\n .object()\r\n .shape({\r\n conversationId: yup\r\n .string()\r\n .trim()\r\n .matches(/^[0-9a-fA-F]{24}$/, \"Invalid Conversation Id\")\r\n .required(\"Conversation Id is required\"),\r\n skip: yup\r\n .number()\r\n .min(0, \"Skip must be at least 0\")\r\n .max(10000, \"Skip cannot exceed 10000\")\r\n .optional(),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([\"conversationId\"], [\"skip\"])\r\n ),\r\n});\r\n\r\nexport interface UserReadAllReq {\r\n body: {\r\n conversationId: string;\r\n skip?: number;\r\n };\r\n}\r\n\r\nexport type UserReadAllRes = {\r\n success: boolean;\r\n message: string;\r\n data: { messages: Message[]; count: number } | null;\r\n};\r\n\r\n// =============== userCreate ===============\r\nexport const userCreateSchema = yup.object().shape({\r\n body: yup\r\n .object()\r\n .shape({\r\n owner: yup\r\n .string()\r\n .oneOf([\"ai\", \"user\"] as const)\r\n .required(\"Owner must be 'ai' or 'user'\"),\r\n conversationId: yup\r\n .string()\r\n .trim()\r\n .matches(/^[0-9a-fA-F]{24}$/, \"Invalid Conversation Id\")\r\n .required(\"Conversation Id is required\"),\r\n type: yup\r\n .string()\r\n .oneOf([\"AI Text\", \"Human Text\",\"External API\", \"External API Text\", \"AI Response\"] as const)\r\n .required(\"Type is required\"),\r\n data: messageDataSchema.required(\"Message data is required\"),\r\n currentChatflow: yup\r\n .object()\r\n .shape({\r\n key: yup\r\n .string()\r\n .max(1000, \"Key cannot exceed 1000 characters\")\r\n .optional(),\r\n index: yup.number().max(1000, \"Index cannot exceed 1000\").optional(),\r\n })\r\n .nullable()\r\n .optional(),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues(\r\n [\"owner\", \"conversationId\", \"type\", \"data\"],\r\n [\"currentChatflow\"]\r\n )\r\n ),\r\n});\r\n\r\nexport interface UserCreateReq {\r\n body: {\r\n owner: \"ai\" | \"user\";\r\n conversationId: string;\r\n type: string;\r\n data: {\r\n text?: string;\r\n file?: { name: string; url: string };\r\n };\r\n currentChatflow?: { key?: string; index?: number } | null;\r\n };\r\n}\r\n\r\nexport type UserCreateRes = {\r\n success: boolean;\r\n message: string;\r\n data: Message | null;\r\n};\r\n\r\n// =============== userAICheckQueries ===============\r\nexport const userAICheckQueriesSchema = yup.object().shape({\r\n body: yup\r\n .object()\r\n .shape({\r\n queries: yup\r\n .array()\r\n .of(\r\n yup\r\n .string()\r\n .min(1, \"Query must be at least 1 character\")\r\n .max(1000, \"Query cannot exceed 1000 characters\")\r\n )\r\n .max(200, \"Queries cannot exceed 200 items\")\r\n .optional(),\r\n conversationHistory: yup\r\n .array()\r\n .of(\r\n yup\r\n .object()\r\n .shape({\r\n user: yup\r\n .string()\r\n .min(1, \"User message must be at least 1 character\")\r\n .max(1000, \"User message cannot exceed 1000 characters\")\r\n .optional(),\r\n ai: yup\r\n .string()\r\n .min(1, \"AI message must be at least 1 character\")\r\n .max(1000, \"AI message cannot exceed 1000 characters\")\r\n .optional(),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([], [\"user\", \"ai\"])\r\n )\r\n )\r\n .min(1, \"Conversation history must have at least 1 entry\")\r\n .max(3, \"Conversation history cannot exceed 3 entries\")\r\n .required(\"Conversation history is required\"),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([\"queries\", \"conversationHistory\"])\r\n ),\r\n});\r\n\r\nexport interface UserAICheckQueriesReq {\r\n body: {\r\n queries?: string[];\r\n conversationHistory: Array<{\r\n user?: string;\r\n ai?: string;\r\n }>;\r\n };\r\n}\r\n\r\nexport type UserAICheckQueriesRes = {\r\n success: boolean;\r\n message: string;\r\n data: { variable: string; found: boolean } | null; // adjust based on actual AI response shape\r\n};\r\n\r\n// =============== userAIContextMessage ===============\r\nexport const userAIContextMessageSchema = yup.object().shape({\r\n body: yup\r\n .object()\r\n .shape({\r\n conversationId: yup\r\n .string()\r\n .trim()\r\n .matches(/^[0-9a-fA-F]{24}$/, \"Invalid Conversation Id\")\r\n .required(\"Conversation Id is required\"),\r\n conversationHistory: yup\r\n .array()\r\n .of(\r\n yup\r\n .object()\r\n .shape({\r\n user: yup\r\n .string()\r\n .min(1, \"User message must be at least 1 character\")\r\n .max(1000, \"User message cannot exceed 1000 characters\")\r\n .optional(),\r\n ai: yup\r\n .string()\r\n .min(1, \"AI message must be at least 1 character\")\r\n .max(2500, \"AI message cannot exceed 2500 characters\")\r\n .optional(),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([], [\"user\", \"ai\"])\r\n )\r\n )\r\n .min(1, \"Conversation history must have at least 1 entry\")\r\n .max(8, \"Conversation history cannot exceed 8 entries\")\r\n .required(\"Conversation history is required\"),\r\n enableStreaming: yup.boolean().optional(),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([\"conversationId\", \"conversationHistory\"], [\"enableStreaming\"])\r\n ),\r\n});\r\n\r\nexport interface UserAIContextMessageReq {\r\n body: {\r\n conversationId: string;\r\n conversationHistory: Array<{\r\n user?: string;\r\n ai?: string;\r\n }>;\r\n enableStreaming?: boolean;\r\n };\r\n}\r\n\r\nexport type UserAIContextMessageRes = {\r\n success: boolean;\r\n message: string;\r\n data: Message | null; // adjust if your actual response differs\r\n};\r\n","import { axiosInstance } from \"../lib/axios\";\r\nimport {\r\n UserAICheckQueriesReq,\r\n UserAICheckQueriesRes,\r\n UserAIContextMessageReq,\r\n UserAIContextMessageRes,\r\n UserCreateReq,\r\n UserCreateRes,\r\n UserReadAllReq,\r\n UserReadAllRes,\r\n userUpdateSeenReq,\r\n userUpdateSeenRes,\r\n userAICheckQueriesSchema,\r\n userAIContextMessageSchema,\r\n userCreateSchema,\r\n userReadAllSchema,\r\n userUpdateSeenSchema,\r\n} from \"./validations/message\";\r\n\r\n// =============================================\r\n// =============== API CALLS ===================\r\n// =============================================\r\n\r\n// POST /user/readAll\r\nconst userReadAll = async (\r\n payload: UserReadAllReq,\r\n token: string\r\n): Promise<UserReadAllRes> => {\r\n await userReadAllSchema.validate(\r\n { body: payload.body },\r\n { abortEarly: false }\r\n );\r\n const { data } = await axiosInstance.post(\r\n `/message/user/readAll`,\r\n payload.body,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n return data;\r\n};\r\n\r\n// POST /user/update/seen/:id\r\nconst userUpdateSeen = async (\r\n payload: userUpdateSeenReq,\r\n token: string\r\n): Promise<userUpdateSeenRes> => {\r\n await userUpdateSeenSchema.validate(\r\n { params: payload.params },\r\n { abortEarly: false }\r\n );\r\n const { data } = await axiosInstance.post(\r\n `/message/user/update/seen/${payload.params.id}`,\r\n {},\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n return data;\r\n};\r\n\r\n// POST /user/create\r\nconst userCreate = async (\r\n payload: UserCreateReq,\r\n token: string\r\n): Promise<UserCreateRes> => {\r\n await userCreateSchema.validate(\r\n { body: payload.body },\r\n { abortEarly: false }\r\n );\r\n const { data } = await axiosInstance.post(\r\n `/message/user/create`,\r\n payload.body,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n return data;\r\n};\r\n\r\n// POST /user/ai/contextMessage\r\nconst userAIContextMessage = async (\r\n payload: UserAIContextMessageReq,\r\n token: string\r\n): Promise<UserAIContextMessageRes> => {\r\n await userAIContextMessageSchema.validate(\r\n { body: payload.body },\r\n { abortEarly: false }\r\n );\r\n const { data } = await axiosInstance.post(\r\n `/message/user/ai/message`,\r\n payload.body,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n return data;\r\n};\r\n\r\n// POST /user/ai/checkQueries\r\nconst userAICheckQueries = async (\r\n payload: UserAICheckQueriesReq,\r\n token: string\r\n): Promise<UserAICheckQueriesRes> => {\r\n await userAICheckQueriesSchema.validate(\r\n { body: payload.body },\r\n { abortEarly: false }\r\n );\r\n const { data } = await axiosInstance.post(\r\n `/message/user/ai/checkQueries`,\r\n payload.body,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n return data;\r\n};\r\n\r\nexport default {\r\n userReadAll,\r\n userUpdateSeen,\r\n userCreate,\r\n userAIContextMessage,\r\n userAICheckQueries,\r\n};\r\n","import { axiosInstance } from \"../lib/axios\";\r\nimport { UserUploadAssetRes } from \"./validations/asset\";\r\n\r\n// ============================================================\r\n// ====================== API CALLS ============================\r\n// ============================================================\r\n\r\n// POST /asset/userUpload\r\nconst userUploadAsset = async (file: File, token: string): Promise<UserUploadAssetRes> => {\r\n const formData = new FormData();\r\n formData.append(\"file\", file);\r\n const { data } = await axiosInstance.post(`/asset/userUpload`, formData, {\r\n headers: {\r\n \"Content-Type\": \"multipart/form-data\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n return data;\r\n};\r\n\r\nexport default { userUploadAsset };","import * as yup from \"yup\";\r\nimport { checkUnknownValues } from \"./helper\";\r\nimport { Review } from \"../models/review\";\r\n\r\nexport const readReviewsQuery = yup\r\n .object()\r\n .shape({\r\n rating: yup.string().trim().min(1).max(1),\r\n skip: yup.string().trim().min(1).max(1000),\r\n limit: yup.string().trim().min(1).max(1000),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([], [\"rating\", \"skip\", \"limit\"])\r\n );\r\n\r\n// =============== userCreate ===============\r\nexport const UserCreateSchema = yup.object().shape({\r\n body: yup\r\n .object()\r\n .shape({\r\n conversationId: yup\r\n .string()\r\n .trim()\r\n .matches(/^[0-9a-fA-F]{24}$/, \"Invalid Id\")\r\n .required(\"Conversation Id is required\"),\r\n chatbotId: yup\r\n .string()\r\n .trim()\r\n .matches(/^[0-9a-fA-F]{24}$/, \"Invalid Id\")\r\n .required(\"Chatbot Id is required\"),\r\n comment: yup\r\n .string()\r\n .trim()\r\n .max(500)\r\n .min(3)\r\n .required(\"Comment is required\"),\r\n rating: yup.number().max(5).min(1).required(\"Rating is required\"),\r\n })\r\n .test(\r\n \"custom-validation\",\r\n \"Custom validation failed\",\r\n checkUnknownValues([\"conversationId\", \"chatbotId\", \"comment\", \"rating\"])\r\n ),\r\n});\r\n\r\nexport interface UserCreateReq {\r\n body: {\r\n conversationId: string;\r\n chatbotId: string;\r\n comment: string;\r\n rating: number;\r\n };\r\n}\r\n\r\nexport type UserCreateRes = {\r\n success: boolean;\r\n message: string;\r\n data: Review | null;\r\n};\r\n","import { axiosInstance } from \"../lib/axios\";\r\nimport {\r\n UserCreateReq,\r\n UserCreateRes,\r\n UserCreateSchema,\r\n} from \"./validations/review\";\r\n\r\n// ============================================================\r\n// ====================== API CALLS ============================\r\n// ============================================================\r\n\r\n// POST /user/create\r\nconst userCreate = async (\r\n payload: UserCreateReq,\r\n token: string\r\n): Promise<UserCreateRes> => {\r\n await UserCreateSchema.validate(\r\n { body: payload.body },\r\n { abortEarly: false }\r\n );\r\n const { data } = await axiosInstance.post(\r\n `/review/user/create`,\r\n payload.body,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }\r\n );\r\n return data;\r\n};\r\n\r\nexport default { userCreate };\r\n","// src/utils/sseParser.ts\r\nexport interface StreamEvent {\r\n type: 'thought' | 'token' | 'tool' | 'complete' | 'error' | 'done';\r\n data: any;\r\n}\r\n\r\nexport class SSEParser {\r\n private buffer = '';\r\n private eventType: string | null = null;\r\n private eventData: string = '';\r\n\r\n async parseStream(\r\n response: Response,\r\n onEvent: (event: StreamEvent) => void,\r\n onError: (error: Error) => void\r\n ) {\r\n const reader = response.body!.getReader();\r\n const decoder = new TextDecoder();\r\n\r\n try {\r\n console.log('Starting SSE parsing...');\r\n while (true) {\r\n const { done, value } = await reader.read();\r\n if (done) break;\r\n\r\n this.buffer += decoder.decode(value, { stream: true });\r\n console.log('Buffer:', this.buffer);\r\n this.processBuffer(onEvent);\r\n }\r\n\r\n // Process any remaining data\r\n if (this.buffer.trim()) {\r\n console.log('Processing remaining data:', this.buffer);\r\n this.processBuffer(onEvent);\r\n }\r\n\r\n console.log('SSE parsing done.');\r\n onEvent({ type: 'done', data: {} });\r\n } catch (error) {\r\n console.error('SSE parsing failed:', error);\r\n onError(error instanceof Error ? error : new Error('Stream parsing failed'));\r\n }\r\n }\r\n\r\n private processBuffer(onEvent: (event: StreamEvent) => void) {\r\n const lines = this.buffer.split('\\n');\r\n this.buffer = lines.pop() || ''; // Keep incomplete line\r\n\r\n for (const line of lines) {\r\n console.log('Processing line:', line);\r\n if (line.startsWith('event: ')) {\r\n this.eventType = line.replace('event: ', '');\r\n } else if (line.startsWith('data: ')) {\r\n this.eventData += line.replace('data: ', '');\r\n } else if (line.trim() === '') {\r\n // Empty line means event is complete\r\n if (this.eventType && this.eventData) {\r\n try {\r\n console.log('Parsing SSE data:', this.eventData);\r\n onEvent({\r\n type: this.eventType as StreamEvent['type'],\r\n data: JSON.parse(this.eventData),\r\n });\r\n } catch (e) {\r\n console.error('Failed to parse SSE data:', this.eventData);\r\n }\r\n }\r\n this.eventType = null;\r\n this.eventData = '';\r\n }\r\n }\r\n }\r\n}","import { Conversation } from \"../services/models/conversation\";\r\nimport { Message } from \"../services/models/message\";\r\n\r\nexport const defaultToken = \"token123\";\r\nexport const defaultUserId = \"3\";\r\n\r\nexport const defaultMessages: Message[] = [\r\n {\r\n _id: \"1\",\r\n owner: \"user\",\r\n ownerId: defaultUserId,\r\n conversationId: \"21\",\r\n chatbotId: \"7\",\r\n conversationOwnerId: defaultUserId,\r\n chatbotOwnerId: \"9\",\r\n seen: false,\r\n data: {\r\n text: \"So, I was curious about RoboDialog\",\r\n },\r\n type: \"Human Text\",\r\n createdAt: \"2026-01-02T10:34:14.396Z\",\r\n updatedAt: \"2026-01-02T10:34:14.396Z\",\r\n },\r\n {\r\n _id: \"2\",\r\n owner: \"ai\",\r\n ownerId: null,\r\n conversationId: \"21\",\r\n chatbotId: \"7\",\r\n conversationOwnerId: defaultUserId,\r\n chatbotOwnerId: \"9\",\r\n seen: false,\r\n data: {\r\n text: \"## 🤖 RoboDialog\\n**RoboDialog** is a friendly AI expert that helps businesses save time and money on customer support.\\n\\nIt offers an intelligent chat interface, an advanced chatflow builder, human support integration, and flexible subscription plans.\\n\\nIs there anything specific you'd like to know more about?\",\r\n },\r\n type: \"AI Response\",\r\n createdAt: \"2026-01-02T10:34:38.885Z\",\r\n updatedAt: \"2026-01-02T10:34:38.885Z\",\r\n },\r\n {\r\n _id: \"3\",\r\n owner: \"user\",\r\n ownerId: defaultUserId,\r\n conversationId: \"21\",\r\n chatbotId: \"7\",\r\n conversationOwnerId: defaultUserId,\r\n chatbotOwnerId: \"9\",\r\n seen: false,\r\n data: {\r\n text: \"That was really helpful, is free plan completely free of charge, right?\",\r\n },\r\n type: \"Human Text\",\r\n createdAt: \"2026-01-02T10:57:13.302Z\",\r\n updatedAt: \"2026-01-02T10:57:13.302Z\",\r\n },\r\n];\r\n\r\nexport const defaultConversation: Conversation[] = [\r\n {\r\n _id: \"21\",\r\n userId: defaultUserId,\r\n visitor: true,\r\n chatbotId: \"7\",\r\n chatbotOwnerId: \"9\",\r\n currentNode: \"1\",\r\n currentChatflow: {\r\n key: \"end\",\r\n index: 0,\r\n },\r\n assignedTo: null,\r\n assignTo: null,\r\n assignType: null,\r\n latestMessage: \"3\",\r\n createdAt: \"2026-01-02T11:50:23.062Z\",\r\n updatedAt: \"2026-01-02T11:51:12.290Z\",\r\n },\r\n];\r\n\r\nexport const defaultConversationExternalAPI: Conversation = {\r\n _id: \"21\",\r\n userId: defaultUserId,\r\n visitor: true,\r\n chatbotId: \"7\",\r\n chatbotOwnerId: \"9\",\r\n currentNode: \"1\",\r\n currentChatflow: {\r\n key: \"end\",\r\n index: 0,\r\n },\r\n assignedTo: null,\r\n assignTo: null,\r\n assignType: null,\r\n latestMessage: \"3\",\r\n createdAt: \"2026-01-02T11:50:23.062Z\",\r\n updatedAt: \"2026-01-02T11:51:12.290Z\",\r\n};\r\n","// src/components/functionsHelper.ts\r\nimport {\r\n ConversationStateContext,\r\n CoreStateContext,\r\n UIStateContext,\r\n} from \"../types/widget\";\r\nimport {\r\n SendMessageParams,\r\n HandleSendMessageParams,\r\n HandleAIMessageParams,\r\n ExternalAPICallParams,\r\n ChangeNodeParams,\r\n} from \"../types/helpers\";\r\nimport { getRandomId, replacePlaceholdersFromString } from \"../hooks/common\";\r\n// import { HandleCommonLiveErrors } from '../hooks/errors';\r\nimport MessageService from \"../services/message\";\r\nimport ConversationService from \"../services/conversation\";\r\nimport AssetService from \"../services/asset\";\r\nimport ReviewService from \"../services/review\";\r\nimport { userCreateSchema } from \"../services/validations/message\";\r\nimport { Message } from \"../services/models/message\";\r\nimport { Conversation } from \"../services/models/conversation\";\r\nimport { ValidationError } from \"yup\";\r\nimport { HoveringMessageInner } from \"../services/validations/chatbotFlow\";\r\nimport {\r\n PopulatedChatflowNode,\r\n PopulatedOpenNewConversationData,\r\n} from \"../services/validations/activityChatbot\";\r\nimport { SSEParser, StreamEvent } from \"../hooks/sseParser\";\r\nimport { API_BASE_URL } from \"../lib/axios\";\r\nimport { defaultUserId } from \"../utils/constant\";\r\n\r\n// MARK: Message Operations\r\n\r\nexport const setMessageAsSeen = async (\r\n message: Message,\r\n coreState: CoreStateContext,\r\n conversationState: ConversationStateContext,\r\n uiState: UIStateContext,\r\n showToast: (message: string, type: \"success\" | \"error\" | \"info\") => void,\r\n): Promise<void> => {\r\n if (!coreState.token || message.owner !== \"agent\" || message.seen) return;\r\n\r\n try {\r\n await MessageService.userUpdateSeen(\r\n {\r\n params: { id: message._id },\r\n },\r\n coreState.token,\r\n );\r\n\r\n // Optimistic UI update\r\n const updateMessage = (msgs: Message[]) =>\r\n msgs.map((m) => (m._id === message._id ? { ...m, seen: true } : m));\r\n\r\n const updatedMessages = updateMessage(\r\n conversationState.messagesRef.current || [],\r\n );\r\n conversationState.setMessages(updatedMessages);\r\n conversationState.messagesRef.current = updatedMessages;\r\n } catch (error) {\r\n handleServiceError(error, showToast, \"Failed to mark message as seen\");\r\n }\r\n};\r\n\r\n// MARK: Agent Assignment\r\n\r\nconst assignToAgent = async (\r\n coreState: CoreStateContext,\r\n conversationState: ConversationStateContext,\r\n uiState: UIStateContext,\r\n showToast: (message: string, type: \"success\" | \"error\" | \"info\") => void,\r\n assignType: \"role\" | \"teamMember\" | \"everyone\",\r\n assignTo?: string,\r\n): Promise<void> => {\r\n if (!coreState.token || !conversationState.currentConversation) return;\r\n\r\n try {\r\n const response = await ConversationService.userAssignToAgent(\r\n {\r\n params: { id: conversationState.currentConversation._id },\r\n body: { assignType, assignTo: assignTo || \"\" },\r\n },\r\n coreState.token,\r\n );\r\n\r\n if (!response.data) throw new Error(\"Assignment failed\");\r\n\r\n const { conversation, onlineAgents } = response.data;\r\n\r\n const newConversations = conversationState.conversations.map((conv) =>\r\n conv._id === conversation._id ? conversation : conv,\r\n );\r\n conversationState.setConversations(newConversations);\r\n conversationState.setCurrentConversation(conversation);\r\n uiState.setOnlineAgents(onlineAgents);\r\n } catch (error) {\r\n handleServiceError(error, showToast, \"Failed to assign to agent\");\r\n }\r\n};\r\n\r\n// MARK: Review Creation\r\n\r\nconst handleCreateRating = async (\r\n userData: { comment: string; rating: number },\r\n coreState: CoreStateContext,\r\n conversationState: ConversationStateContext,\r\n uiState: UIStateContext,\r\n showToast: (message: string, type: \"success\" | \"error\" | \"info\") => void,\r\n): Promise<void> => {\r\n if (\r\n !coreState.token ||\r\n !conversationState.currentConversation ||\r\n !coreState.chatbot\r\n )\r\n return;\r\n\r\n try {\r\n await ReviewService.userCreate(\r\n {\r\n body: {\r\n ...userData,\r\n conversationId: conversationState.currentConversation._id,\r\n chatbotId: coreState.chatbot._id,\r\n },\r\n },\r\n coreState.token,\r\n );\r\n\r\n showToast(\"Thank you for your feedback\", \"success\");\r\n } catch (error) {\r\n handleServiceError(error, showToast, \"Failed to submit review\");\r\n }\r\n};\r\n\r\n// MARK: Message Sending\r\n\r\nexport const sendMessage = async (\r\n params: HandleSendMessageParams,\r\n): Promise<{ messages: Message[]; conversations: Conversation[] } | null> => {\r\n const {\r\n data,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n type,\r\n showToast,\r\n currentChatflow,\r\n owner,\r\n } = params;\r\n\r\n const { isDefaultExternalAPI } = coreState;\r\n\r\n if (isDefaultExternalAPI) {\r\n const newMessage = {\r\n _id: getRandomId(),\r\n conversationId: \"21\",\r\n data,\r\n type,\r\n currentChatflow,\r\n owner,\r\n ownerId: defaultUserId,\r\n chatbotId: \"7\",\r\n conversationOwnerId: defaultUserId,\r\n chatbotOwnerId: \"9\",\r\n seen: false,\r\n createdAt: new Date().toISOString(),\r\n updatedAt: new Date().toISOString(),\r\n };\r\n const updated = [\r\n ...(conversationState.messagesRef.current || []),\r\n newMessage,\r\n ];\r\n conversationState.messagesRef.current = updated;\r\n conversationState.setMessages(updated);\r\n return null;\r\n }\r\n\r\n if (!coreState.token || !conversationState.currentConversation) return null;\r\n\r\n const payload = {\r\n owner,\r\n conversationId: conversationState.currentConversation._id,\r\n data,\r\n type,\r\n currentChatflow,\r\n };\r\n\r\n try {\r\n await userCreateSchema.validate({ body: payload }, { abortEarly: false });\r\n\r\n const response = await MessageService.userCreate(\r\n {\r\n body: payload,\r\n },\r\n coreState.token,\r\n );\r\n\r\n if (!response.data) throw new Error(\"Message creation failed\");\r\n\r\n const newMessage = response.data;\r\n\r\n const updated = [\r\n ...(conversationState.messagesRef.current || []),\r\n newMessage,\r\n ];\r\n conversationState.messagesRef.current = updated;\r\n conversationState.setMessages(updated);\r\n\r\n // Update conversations with chatflow state\r\n if (currentChatflow) {\r\n const newConversations = conversationState.conversations.map((conv) =>\r\n conv._id === conversationState.currentConversation!._id\r\n ? { ...conv, currentChatflow }\r\n : conv,\r\n );\r\n conversationState.setConversations(newConversations);\r\n }\r\n\r\n return {\r\n messages: conversationState.messagesRef.current,\r\n conversations: conversationState.conversations.map((conv) =>\r\n conv._id === conversationState.currentConversation!._id &&\r\n currentChatflow\r\n ? { ...conv, currentChatflow }\r\n : conv,\r\n ),\r\n };\r\n } catch (error) {\r\n if (error instanceof ValidationError) {\r\n const errorMessage = error.inner.map((err) => err.message).join(\", \");\r\n showToast(errorMessage, \"error\");\r\n } else {\r\n handleServiceError(error, showToast, \"Failed to send message\");\r\n }\r\n\r\n return null;\r\n }\r\n};\r\n\r\n// MARK: Send AI Message\r\n\r\nexport const handleSendAIMessage = async (\r\n params: HandleAIMessageParams,\r\n): Promise<void> => {\r\n const { coreState, conversationState, uiState, showToast, ...rest } = params;\r\n uiState.setAiLoading(true);\r\n\r\n try {\r\n await sendMessage({\r\n ...rest,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n type: \"AI Text\",\r\n owner: \"ai\",\r\n showToast,\r\n });\r\n } finally {\r\n uiState.setAiLoading(false);\r\n }\r\n};\r\n\r\n// MARK: Send Human Message\r\n\r\nexport const handleSendHumanMessage = async (\r\n params: HandleSendMessageParams,\r\n): Promise<{ messages: Message[]; conversations: Conversation[] } | null> => {\r\n const { showToast, conversationState, coreState, uiState } = params;\r\n uiState.setUserLoading(true);\r\n\r\n try {\r\n return await sendMessage({\r\n ...params,\r\n conversationState,\r\n coreState,\r\n uiState,\r\n showToast,\r\n type: \"Human Text\",\r\n });\r\n } finally {\r\n uiState.setUserLoading(false);\r\n }\r\n};\r\n\r\n// MARK: External API Integration\r\n\r\nconst handleExternalAPICall = async (\r\n params: ExternalAPICallParams,\r\n): Promise<Boolean> => {\r\n const {\r\n externalAPI,\r\n userData,\r\n currentChatflow,\r\n currentNode,\r\n conversationState,\r\n coreState,\r\n showToast,\r\n uiState,\r\n } = params;\r\n const { userData: contextUserData, isDefaultExternalAPI } = coreState;\r\n\r\n try {\r\n uiState.setAiLoading(true);\r\n\r\n /* ---------------- URL + QUERY ---------------- */\r\n let url = externalAPI.url;\r\n\r\n if (externalAPI.params?.length) {\r\n const queryParams = new URLSearchParams();\r\n externalAPI.params.forEach((param) => {\r\n const value = String(userData[param.key] ?? param.value ?? \"\");\r\n queryParams.append(param.key, value);\r\n });\r\n url += `?${queryParams.toString()}`;\r\n }\r\n\r\n /* ---------------- BODY ---------------- */\r\n const method = externalAPI.method.toUpperCase();\r\n let body: Record<string, unknown> | undefined;\r\n\r\n if (method !== \"GET\" && externalAPI.body?.length) {\r\n body = {};\r\n externalAPI.body.forEach((item) => {\r\n body![item.key] = userData[item.key] ?? item.value ?? \"\";\r\n });\r\n }\r\n\r\n /* ---------------- HEADERS ---------------- */\r\n const headers: Record<string, string> = {\r\n Accept: \"application/json\",\r\n };\r\n\r\n if (body) {\r\n headers[\"Content-Type\"] = \"application/json\";\r\n }\r\n\r\n if (externalAPI.bearerToken) {\r\n headers[\"Authorization\"] =\r\n `Bearer ${contextUserData?.bearer || window.robodialog?.bearerToken || \"\"}`;\r\n }\r\n\r\n /* ---------------- FETCH ---------------- */\r\n const response = await fetch(url, {\r\n method,\r\n headers,\r\n body: body ? JSON.stringify(body) : undefined,\r\n });\r\n\r\n const status = response.status;\r\n\r\n /* ---------------- SAFE JSON PARSE ---------------- */\r\n let responseData: any = null;\r\n try {\r\n responseData = await response.json();\r\n } catch {\r\n responseData = null;\r\n }\r\n\r\n /* ---------------- STATUS HANDLING ---------------- */\r\n const responseConfig = externalAPI.response?.find(\r\n (r: any) => r.statusCode === status,\r\n );\r\n\r\n if (responseConfig) {\r\n if (responseConfig.type === \"path\" && responseConfig.id) {\r\n if (isDefaultExternalAPI) {\r\n await handleSendAIMessage({\r\n data: { text: \"The AI will continue with specified path\" },\r\n currentChatflow,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n type: \"AI Text\",\r\n });\r\n return true;\r\n } else {\r\n return await handleChangeNode({\r\n source: currentNode.id,\r\n sourceHandle: responseConfig.id,\r\n conversationState,\r\n coreState,\r\n showToast,\r\n uiState,\r\n });\r\n }\r\n } else if (responseConfig.message) {\r\n const message = replacePlaceholdersFromString(\r\n responseConfig.message,\r\n userData,\r\n responseData,\r\n );\r\n\r\n await handleSendAIMessage({\r\n data: { text: message },\r\n currentChatflow,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n type: \"AI Text\",\r\n });\r\n return false;\r\n }\r\n }\r\n\r\n /* ---------------- FALLBACK MESSAGE ---------------- */\r\n const fallbackMessage = response.ok\r\n ? \"Successfully Submitted\"\r\n : \"Sorry, we encountered an error while processing your request. Please try again later.\";\r\n\r\n await handleSendAIMessage({\r\n data: { text: fallbackMessage },\r\n currentChatflow,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n type: \"AI Text\",\r\n });\r\n\r\n return false;\r\n } catch (error) {\r\n console.error(\"External API call failed:\", error);\r\n\r\n await handleSendAIMessage({\r\n data: { text: \"Sorry, we encountered an error while processing your request. Please try again later.\" },\r\n currentChatflow,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n type: \"AI Text\",\r\n });\r\n return false;\r\n } finally {\r\n uiState.setAiLoading(false);\r\n }\r\n};\r\n\r\n// MARK: External API submission\r\n\r\nexport const handleExternalAPISubmission = async (\r\n params: ExternalAPICallParams,\r\n): Promise<Boolean> => {\r\n const {\r\n externalAPI,\r\n currentChatflow,\r\n currentNode,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n } = params;\r\n\r\n return new Promise((resolve) => {\r\n if (externalAPI.dataFromUser?.length > 0) {\r\n const onSubmit = async (userData: Record<string, any>) => {\r\n let text = \"\";\r\n for (const key in userData) {\r\n const field = externalAPI.dataFromUser.find(\r\n (a: any) => a.key === key,\r\n );\r\n text += `${field?.name}: ${userData[key]}\\n\\n`;\r\n }\r\n\r\n await handleSendHumanMessage({\r\n data: { text },\r\n currentChatflow,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n type: \"Human Text\",\r\n owner: \"user\",\r\n });\r\n\r\n const nodeChanged = await handleExternalAPICall({\r\n userData,\r\n externalAPI,\r\n currentChatflow,\r\n currentNode,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n });\r\n\r\n uiState.setDataFromUser(null);\r\n resolve(nodeChanged);\r\n };\r\n\r\n const onCancel = () => {\r\n resolve(false);\r\n };\r\n\r\n uiState.setDataFromUser({\r\n data: externalAPI.dataFromUser,\r\n onSubmit,\r\n onCancel,\r\n });\r\n } else {\r\n (async () => {\r\n const userData: Record<string, any> = {};\r\n const nodeChanged = await handleExternalAPICall({\r\n externalAPI,\r\n currentChatflow,\r\n currentNode,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n userData,\r\n });\r\n resolve(nodeChanged);\r\n })();\r\n }\r\n });\r\n};\r\n\r\n// MARK: Send AI Message\r\n\r\ninterface StreamMessageData {\r\n text: string;\r\n thinking?: string[]; // Contains historical streams\r\n path?: string | null;\r\n}\r\n\r\nexport const sendAIMessageStream = async (\r\n coreState: CoreStateContext,\r\n conversationState: ConversationStateContext,\r\n uiState: UIStateContext,\r\n showToast: (message: string, type: \"success\" | \"error\" | \"info\") => void,\r\n messages: Message[],\r\n): Promise<void> => {\r\n if (!coreState.token || !conversationState.currentConversation) return;\r\n\r\n const { chatbot } = coreState;\r\n const { currentConversation, setMessages, messagesRef } = conversationState;\r\n const { setAiLoading } = uiState;\r\n\r\n const conversationHistory = getConversationHistory(\r\n messages,\r\n currentConversation._id,\r\n );\r\n\r\n setAiLoading(true);\r\n\r\n // Create placeholder streaming message\r\n const streamingMessage: Message & { data: StreamMessageData } = {\r\n _id: `streaming_${Date.now()}`,\r\n conversationId: currentConversation._id,\r\n owner: \"ai\",\r\n ownerId: null,\r\n data: { text: \"Analyzing user query\", thinking: [], path: null },\r\n type: \"AI Response\",\r\n createdAt: new Date().toString(),\r\n updatedAt: new Date().toString(),\r\n chatbotId: chatbot!._id,\r\n seen: false,\r\n };\r\n\r\n // Add placeholder to UI\r\n setMessages((prev: Message[]) => {\r\n const updated = [...prev, streamingMessage];\r\n messagesRef.current = updated;\r\n return updated;\r\n });\r\n\r\n try {\r\n const response = await fetch(`${API_BASE_URL}/message/user/ai/message`, {\r\n method: \"POST\",\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${coreState.token}`,\r\n },\r\n body: JSON.stringify({\r\n conversationId: currentConversation._id,\r\n conversationHistory,\r\n enableStreaming: true,\r\n }),\r\n });\r\n\r\n if (!response.ok) {\r\n if (response.status === 400) {\r\n const errorData = await response.json();\r\n if (errorData.message === \"AI Message Limit Reached\") {\r\n throw new Error(\"AI Message Limit Reached\");\r\n }\r\n }\r\n throw new Error(`HTTP error! status: ${response.status}`);\r\n }\r\n\r\n const parser = new SSEParser();\r\n let finalMessage = \"\";\r\n let finalPath: string | null = null;\r\n let hasReceivedTokens = false;\r\n let toolCall = true; // initially true so that next chunk is new message\r\n\r\n await parser.parseStream(\r\n response,\r\n (event: StreamEvent) => {\r\n console.log(\"Streaming event:\", event);\r\n switch (event.type) {\r\n case \"token\":\r\n hasReceivedTokens = true;\r\n const tokenData = event.data?.data || \"\";\r\n if (toolCall) {\r\n finalMessage = tokenData;\r\n } else {\r\n finalMessage += tokenData;\r\n }\r\n\r\n setMessages((prev: Message[]) => {\r\n const updated = prev.map((m) => {\r\n if (m._id === streamingMessage._id) {\r\n return {\r\n ...m,\r\n data: {\r\n ...m.data,\r\n ...(toolCall && {\r\n thinking: [...m.data.thinking, m.data.text ?? \"\"],\r\n }),\r\n text: finalMessage,\r\n },\r\n } as Message & { data: StreamMessageData };\r\n }\r\n return m;\r\n });\r\n messagesRef.current = updated;\r\n return updated;\r\n });\r\n toolCall = false;\r\n break;\r\n\r\n case \"tool\":\r\n toolCall = true;\r\n break;\r\n\r\n case \"complete\":\r\n const completeData = event.data?.data || \"{}\";\r\n try {\r\n const result =\r\n typeof completeData === \"string\"\r\n ? JSON.parse(completeData)\r\n : completeData;\r\n\r\n finalPath = result.path || null;\r\n // Only use result.message if we never received any tokens (fallback)\r\n if (result.message && !hasReceivedTokens) {\r\n finalMessage = result.message;\r\n }\r\n } catch (e) {\r\n console.error(\r\n \"Failed to parse complete event data:\",\r\n completeData,\r\n );\r\n }\r\n break;\r\n\r\n case \"done\":\r\n // Replace placeholder with final message (thinking is not persisted)\r\n setMessages((prev: Message[]) => {\r\n const updated = prev.map((m) => {\r\n if (m._id === streamingMessage._id) {\r\n return {\r\n _id: `ai_${Date.now()}`,\r\n conversationId: currentConversation._id,\r\n owner: \"ai\",\r\n ownerId: null,\r\n data: {\r\n text: finalPath ? \"\" : finalMessage,\r\n path: finalPath,\r\n },\r\n type: \"AI Response\",\r\n createdAt: new Date(),\r\n updatedAt: new Date(),\r\n chatbotId: chatbot!._id,\r\n seen: true,\r\n } as Message;\r\n }\r\n return m;\r\n });\r\n messagesRef.current = updated;\r\n return updated;\r\n });\r\n\r\n // Handle path routing\r\n if (finalPath) {\r\n const AIControlNode = chatbot!.chatflow.nodes.find(\r\n (node) => node.type === \"AIControlNode\",\r\n );\r\n if (AIControlNode) {\r\n handleChangeNode({\r\n source: AIControlNode.id,\r\n sourceHandle: finalPath,\r\n conversationState,\r\n coreState,\r\n showToast,\r\n uiState,\r\n });\r\n }\r\n }\r\n break;\r\n\r\n case \"error\":\r\n console.error(\"Streaming error:\", event.data);\r\n showToast(\"Failed to get AI response\", \"error\");\r\n // Remove placeholder\r\n setMessages((prev: Message[]) =>\r\n prev.filter((m) => m._id !== streamingMessage._id),\r\n );\r\n break;\r\n }\r\n },\r\n (error: Error) => {\r\n console.error(\"Stream parsing error:\", error);\r\n showToast(\"Failed to get AI response\", \"error\");\r\n // Remove placeholder\r\n setMessages((prev: Message[]) =>\r\n prev.filter((m) => m._id !== streamingMessage._id),\r\n );\r\n },\r\n );\r\n } catch (error: any) {\r\n console.error(\"Error in sendAIMessageStream:\", error);\r\n if (error.message === \"AI Message Limit Reached\") {\r\n const AIControlNode = chatbot!.chatflow.nodes.find(\r\n (node) => node.type === \"AIControlNode\",\r\n );\r\n if (AIControlNode) {\r\n await handleChangeNode({\r\n source: AIControlNode.id,\r\n sourceHandle: AIControlNode.data.outOfCredits.id,\r\n conversationState,\r\n coreState,\r\n showToast,\r\n uiState,\r\n });\r\n }\r\n } else {\r\n handleServiceError(error, showToast, \"Failed to get AI response\");\r\n }\r\n\r\n // Remove placeholder on error\r\n setMessages((prev: Message[]) =>\r\n prev.filter((m) => m._id !== streamingMessage._id),\r\n );\r\n } finally {\r\n setAiLoading(false);\r\n }\r\n};\r\n\r\n// MARK: Chat Flow Navigation\r\n\r\nexport const handleChangeNode = async (\r\n params: ChangeNodeParams,\r\n): Promise<Boolean> => {\r\n const {\r\n source,\r\n sourceHandle,\r\n conversationState,\r\n coreState,\r\n showToast,\r\n uiState,\r\n latestConversation,\r\n } = params;\r\n const { chatbot, token } = coreState;\r\n const { currentConversation } = conversationState;\r\n const { setAiLoading } = uiState;\r\n\r\n if (!chatbot || !currentConversation || !token) return false;\r\n\r\n const edge = chatbot.chatflow.edges.find(\r\n (e) => e.source === source && e.sourceHandle === sourceHandle,\r\n );\r\n if (!edge) return false;\r\n\r\n const node = chatbot.chatflow.nodes.find((n) => n.id === edge.target);\r\n if (!node) return false;\r\n\r\n try {\r\n if (latestConversation) {\r\n await handleChatFlow({\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n updatedConversation: latestConversation,\r\n });\r\n } else {\r\n const response = await ConversationService.userUpdateCurrentNode(\r\n {\r\n params: { id: currentConversation._id },\r\n body: { currentNode: node.id },\r\n },\r\n token!,\r\n );\r\n\r\n if (!response.data) throw new Error(\"Node update failed\");\r\n\r\n setAiLoading(false);\r\n const newConversations = conversationState.conversations.map((conv) =>\r\n conv._id === currentConversation._id ? response.data! : conv,\r\n );\r\n conversationState.setConversations(newConversations);\r\n\r\n await handleChatFlow({\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n updatedConversation: response.data,\r\n });\r\n }\r\n return true;\r\n } catch (error) {\r\n handleServiceError(error, showToast, \"Failed to change node\");\r\n return false;\r\n }\r\n};\r\n\r\n// MARK: Chat Flow Processing\r\n\r\nexport const handleChatFlow = async ({\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n updatedConversation = null,\r\n}: {\r\n coreState: CoreStateContext;\r\n conversationState: ConversationStateContext;\r\n uiState: UIStateContext;\r\n showToast: (message: string, type: \"success\" | \"error\" | \"info\") => void;\r\n updatedConversation?: Conversation | null;\r\n externalAPICalled?: Boolean;\r\n}): Promise<void> => {\r\n const { chatbot, isDefaultExternalAPI, defaultExternalAPI } = coreState;\r\n const {\r\n setCanMessage,\r\n setHumanControl,\r\n setHoveringMessageInner,\r\n setRatingFromUser,\r\n } = uiState;\r\n\r\n if (isDefaultExternalAPI) {\r\n await handleExternalAPISubmission({\r\n externalAPI: defaultExternalAPI!,\r\n currentChatflow: { key: \"externalAPI\", index: 0 },\r\n currentNode: {} as any,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n userData: {},\r\n });\r\n return;\r\n }\r\n\r\n const currentConversation =\r\n updatedConversation || conversationState.currentConversation;\r\n if (!chatbot || !currentConversation) return;\r\n\r\n // Reset UI state\r\n setCanMessage(false);\r\n setHumanControl(false);\r\n setHoveringMessageInner(null);\r\n\r\n const currentNode = chatbot.chatflow.nodes.find(\r\n (node) => node.id === currentConversation.currentNode,\r\n );\r\n\r\n if (!currentNode) {\r\n showToast(\"Invalid conversation node\", \"error\");\r\n return;\r\n }\r\n // Process text messages\r\n await processTextMessages(\r\n currentNode,\r\n currentConversation,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n );\r\n\r\n // Process external APIs\r\n const nodeChanged = await processExternalAPIs(\r\n currentNode,\r\n currentConversation,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n );\r\n\r\n if (nodeChanged) return;\r\n\r\n // Process hovering messages\r\n if (\r\n currentNode.data?.hoveringMessageInner?.length > 0 &&\r\n currentConversation.currentChatflow?.key !== \"hoveringMessage\" &&\r\n currentConversation.currentChatflow?.key !== \"end\"\r\n ) {\r\n setHoveringMessageInner({\r\n data: currentNode.data.hoveringMessageInner,\r\n onClick: async (hoveringMessageInner: HoveringMessageInner) => {\r\n setHoveringMessageInner(null);\r\n if (hoveringMessageInner.type === \"path\") {\r\n await handleChangeNode({\r\n source: currentNode.id,\r\n sourceHandle: hoveringMessageInner.id!,\r\n conversationState,\r\n coreState,\r\n showToast,\r\n uiState,\r\n });\r\n } else {\r\n setCanMessage(false);\r\n const res = await handleSendHumanMessage({\r\n data: { text: hoveringMessageInner.query! },\r\n currentChatflow: { key: \"hoveringMessage\", index: 0 },\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n type: \"Human Text\",\r\n owner: \"user\",\r\n });\r\n\r\n if (!uiState.humanControl && !currentConversation.assignedTo) {\r\n await sendAIMessageStream(\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n res?.messages || [],\r\n );\r\n }\r\n setCanMessage(true);\r\n }\r\n },\r\n });\r\n }\r\n\r\n // Handle end conversation\r\n if (currentNode.type === \"EndConversation\") {\r\n setCanMessage(false);\r\n setHumanControl(false);\r\n\r\n if (\r\n currentNode.data?.askForReview?.value &&\r\n currentConversation.currentChatflow?.key !== \"end\"\r\n ) {\r\n setRatingFromUser({\r\n onSubmit: async (userData: { comment: string; rating: number }) => {\r\n await handleCreateRating(\r\n userData,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n );\r\n await handleSendAIMessage({\r\n data: { text: \"Thanks for your feedback\" },\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n currentChatflow: { key: \"end\", index: 0 },\r\n type: \"AI Text\",\r\n });\r\n setRatingFromUser(null);\r\n },\r\n });\r\n }\r\n } else {\r\n // Set control type\r\n if (currentNode.data?.control?.type === \"ai\") {\r\n setHumanControl(false);\r\n setCanMessage(true);\r\n } else {\r\n await assignToAgent(\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n currentNode.data?.control?.assignType!,\r\n currentNode.data?.control?.user || currentNode.data?.control?.role,\r\n );\r\n setHumanControl(true);\r\n setCanMessage(false);\r\n }\r\n }\r\n};\r\n\r\n// MARK: Helper Functions\r\n\r\nfunction getConversationHistory(\r\n messages: Message[],\r\n conversationId: string,\r\n): Array<{ user?: string; ai?: string }> {\r\n return messages\r\n .filter((m) => m.conversationId === conversationId)\r\n .sort(\r\n (a, b) =>\r\n new Date(b.updatedAt || \"\").getTime() -\r\n new Date(a.updatedAt || \"\").getTime(),\r\n )\r\n .slice(0, 7)\r\n .filter((m) => m.owner !== \"agent\")\r\n .reverse()\r\n .map((m) => ({ [`${m.owner}`]: m.data.text }));\r\n}\r\n\r\nasync function processTextMessages(\r\n node: PopulatedChatflowNode,\r\n conversation: Conversation,\r\n coreState: CoreStateContext,\r\n conversationState: ConversationStateContext,\r\n uiState: UIStateContext,\r\n showToast: (message: string, type: \"success\" | \"error\" | \"info\") => void,\r\n): Promise<void> {\r\n const data = node.data as PopulatedOpenNewConversationData;\r\n if (data?.text) {\r\n for (const [index, text] of data.text.entries()) {\r\n const shouldSend =\r\n !conversation.currentChatflow ||\r\n (conversation.currentChatflow.key === \"text\" &&\r\n typeof conversation.currentChatflow.index !== \"undefined\" &&\r\n index > conversation.currentChatflow.index);\r\n\r\n if (shouldSend) {\r\n await handleSendAIMessage({\r\n data: { text: text.value },\r\n currentChatflow: { key: \"text\", index },\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n type: \"AI Text\",\r\n });\r\n }\r\n }\r\n }\r\n}\r\n\r\nasync function processExternalAPIs(\r\n node: PopulatedChatflowNode,\r\n conversation: Conversation,\r\n coreState: CoreStateContext,\r\n conversationState: ConversationStateContext,\r\n uiState: UIStateContext,\r\n showToast: (message: string, type: \"success\" | \"error\" | \"info\") => void,\r\n): Promise<Boolean> {\r\n const data = node.data as PopulatedOpenNewConversationData;\r\n if (data.externalAPI) {\r\n for (const [index, externalAPI] of data.externalAPI.entries()) {\r\n const shouldProcess =\r\n !conversation.currentChatflow ||\r\n conversation.currentChatflow.key === \"text\" ||\r\n (conversation.currentChatflow.key === \"externalAPI\" &&\r\n typeof conversation.currentChatflow.index !== \"undefined\" &&\r\n index > conversation.currentChatflow.index);\r\n\r\n if (shouldProcess) {\r\n const userData: Record<string, any> = {};\r\n const nodeChanged = await handleExternalAPISubmission({\r\n externalAPI: externalAPI.externalAPI,\r\n currentChatflow: { key: \"externalAPI\", index },\r\n currentNode: node as any,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n userData,\r\n });\r\n if (nodeChanged) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction handleServiceError(\r\n error: any,\r\n showToast: (message: string, type: \"success\" | \"error\" | \"info\") => void,\r\n defaultMessage: string,\r\n): void {\r\n // const commonError = HandleCommonLiveErrors(error.response);\r\n // const message = commonError || defaultMessage;\r\n const message = defaultMessage;\r\n showToast(message, \"error\");\r\n console.error(defaultMessage, error);\r\n}\r\n\r\n// MARK: Main Send Message Handler\r\n\r\nexport async function handleSendMessage(\r\n params: SendMessageParams,\r\n): Promise<void> {\r\n const {\r\n conversationState,\r\n coreState,\r\n uiState,\r\n userMessage,\r\n setUserMessage,\r\n file,\r\n setFile,\r\n latestCurrentConversation,\r\n showToast,\r\n } = params;\r\n\r\n if (!userMessage?.trim()) return;\r\n\r\n const message = userMessage.trim();\r\n setUserMessage(\"\");\r\n uiState.setCanMessage(false);\r\n uiState.setUserLoading(true);\r\n\r\n const userFile = file;\r\n setFile(null);\r\n\r\n let messageData: { text: string; file?: { name: string; url: string } } = {\r\n text: message,\r\n };\r\n\r\n if (userFile) {\r\n try {\r\n const uploadResponse = await AssetService.userUploadAsset(\r\n userFile,\r\n coreState.token!,\r\n );\r\n if (!uploadResponse.data) throw new Error(\"File upload failed\");\r\n\r\n messageData.file = {\r\n name: userFile.name,\r\n url: uploadResponse.data.url,\r\n };\r\n } catch (error) {\r\n handleServiceError(error, showToast, \"Failed to upload file\");\r\n uiState.setUserLoading(false);\r\n uiState.setCanMessage(true);\r\n return;\r\n }\r\n }\r\n\r\n const currentChatflow =\r\n latestCurrentConversation?.currentChatflow?.key !== \"end\"\r\n ? { key: \"end\", index: 0 }\r\n : null;\r\n\r\n if (currentChatflow) {\r\n uiState.setHoveringMessageInner(null);\r\n }\r\n\r\n const res = await handleSendHumanMessage({\r\n data: messageData,\r\n currentChatflow,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n type: \"Human Text\",\r\n owner: \"user\",\r\n });\r\n\r\n if (!uiState.humanControl && !latestCurrentConversation?.assignedTo) {\r\n await sendAIMessageStream(\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n res?.messages || [],\r\n );\r\n }\r\n\r\n uiState.setCanMessage(true);\r\n}\r\n","/**\n * marked v17.0.1 - a markdown parser\n * Copyright (c) 2018-2025, MarkedJS. (MIT License)\n * Copyright (c) 2011-2018, Christopher Jeffrey. (MIT License)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\nfunction L(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var T=L();function Z(u){T=u}var C={exec:()=>null};function k(u,e=\"\"){let t=typeof u==\"string\"?u:u.source,n={replace:(r,i)=>{let s=typeof i==\"string\"?i:i.source;return s=s.replace(m.caret,\"$1\"),t=t.replace(r,s),n},getRegex:()=>new RegExp(t,e)};return n}var me=(()=>{try{return!!new RegExp(\"(?<=1)(?<!1)\")}catch{return!1}})(),m={codeRemoveIndent:/^(?: {1,4}| {0,3}\\t)/gm,outputLinkReplace:/\\\\([\\[\\]])/g,indentCodeCompensation:/^(\\s+)(?:```)/,beginningSpace:/^\\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\\n/g,tabCharGlobal:/\\t/g,multipleSpaceGlobal:/\\s+/g,blankLine:/^[ \\t]*$/,doubleBlankLine:/\\n[ \\t]*\\n[ \\t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \\t]?/gm,listReplaceTabs:/^\\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\\[[ xX]\\] +\\S/,listReplaceTask:/^\\[[ xX]\\] +/,listTaskCheckbox:/\\[[ xX]\\]/,anyLine:/\\n.*\\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\\||\\| *$/g,tableRowBlankLine:/\\n[ \\t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\\s|>)/i,endPreScriptTag:/^<\\/(pre|code|kbd|script)(\\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,unicodeAlphaNumeric:/[\\p{L}\\p{N}]/u,escapeTest:/[&<>\"']/,escapeReplace:/[&<>\"']/g,escapeTestNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,escapeReplaceNoEncode:/[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,unescapeTest:/&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig,caret:/(^|[^\\[])\\^/g,percentDecode:/%25/g,findPipe:/\\|/g,splitPipe:/ \\|/,slashPipe:/\\\\\\|/g,carriageReturn:/\\r\\n|\\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\\S*/,endingNewline:/\\n$/,listItemRegex:u=>new RegExp(`^( {0,3}${u})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),nextBulletRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`),hrRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),fencesBeginRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}(?:\\`\\`\\`|~~~)`),headingBeginRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}#`),htmlBeginRegex:u=>new RegExp(`^ {0,${Math.min(3,u-1)}}<(?:[a-z].*>|!--)`,\"i\")},xe=/^(?:[ \\t]*(?:\\n|$))+/,be=/^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/,Re=/^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/,I=/^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/,Te=/^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/,N=/(?:[*+-]|\\d{1,9}[.)])/,re=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,se=k(re).replace(/bull/g,N).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g,\"\").getRegex(),Oe=k(re).replace(/bull/g,N).replace(/blockCode/g,/(?: {4}| {0,3}\\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\\n>]+>\\n/).replace(/table/g,/ {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex(),Q=/^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/,we=/^[^\\n]+/,F=/(?!\\s*\\])(?:\\\\[\\s\\S]|[^\\[\\]\\\\])+/,ye=k(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\",F).replace(\"title\",/(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex(),Pe=k(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g,N).getRegex(),v=\"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\",j=/<!--(?:-?>|[\\s\\S]*?(?:-->|$))/,Se=k(\"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\"i\").replace(\"comment\",j).replace(\"tag\",v).replace(\"attribute\",/ +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex(),ie=k(Q).replace(\"hr\",I).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex(),$e=k(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\",ie).getRegex(),U={blockquote:$e,code:be,def:ye,fences:Re,heading:Te,hr:I,html:Se,lheading:se,list:Pe,newline:xe,paragraph:ie,table:C,text:we},te=k(\"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\").replace(\"hr\",I).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\",\" {0,3}>\").replace(\"code\",\"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex(),_e={...U,lheading:Oe,table:te,paragraph:k(Q).replace(\"hr\",I).replace(\"heading\",\" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\",\"\").replace(\"table\",te).replace(\"blockquote\",\" {0,3}>\").replace(\"fences\",\" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\",\" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\",\"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\",v).getRegex()},Le={...U,html:k(`^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`).replace(\"comment\",j).replace(/tag/g,\"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),def:/^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,heading:/^(#{1,6})(.*)(?:\\n+|$)/,fences:C,lheading:/^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,paragraph:k(Q).replace(\"hr\",I).replace(\"heading\",` *#{1,6} *[^\n]`).replace(\"lheading\",se).replace(\"|table\",\"\").replace(\"blockquote\",\" {0,3}>\").replace(\"|fences\",\"\").replace(\"|list\",\"\").replace(\"|html\",\"\").replace(\"|tag\",\"\").getRegex()},Me=/^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/,ze=/^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/,oe=/^( {2,}|\\\\)\\n(?!\\s*$)/,Ae=/^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/,D=/[\\p{P}\\p{S}]/u,K=/[\\s\\p{P}\\p{S}]/u,ae=/[^\\s\\p{P}\\p{S}]/u,Ce=k(/^((?![*_])punctSpace)/,\"u\").replace(/punctSpace/g,K).getRegex(),le=/(?!~)[\\p{P}\\p{S}]/u,Ie=/(?!~)[\\s\\p{P}\\p{S}]/u,Ee=/(?:[^\\s\\p{P}\\p{S}]|~)/u,Be=k(/link|precode-code|html/,\"g\").replace(\"link\",/\\[(?:[^\\[\\]`]|(?<a>`+)[^`]+\\k<a>(?!`))*?\\]\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)]|\\((?:\\\\[\\s\\S]|[^\\\\\\(\\)])*\\))*\\)/).replace(\"precode-\",me?\"(?<!`)()\":\"(^^|[^`])\").replace(\"code\",/(?<b>`+)[^`]+\\k<b>(?!`)/).replace(\"html\",/<(?! )[^<>]*?>/).getRegex(),ue=/^(?:\\*+(?:((?!\\*)punct)|[^\\s*]))|^_+(?:((?!_)punct)|([^\\s_]))/,qe=k(ue,\"u\").replace(/punct/g,D).getRegex(),ve=k(ue,\"u\").replace(/punct/g,le).getRegex(),pe=\"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\",De=k(pe,\"gu\").replace(/notPunctSpace/g,ae).replace(/punctSpace/g,K).replace(/punct/g,D).getRegex(),He=k(pe,\"gu\").replace(/notPunctSpace/g,Ee).replace(/punctSpace/g,Ie).replace(/punct/g,le).getRegex(),Ze=k(\"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\"gu\").replace(/notPunctSpace/g,ae).replace(/punctSpace/g,K).replace(/punct/g,D).getRegex(),Ge=k(/\\\\(punct)/,\"gu\").replace(/punct/g,D).getRegex(),Ne=k(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),Qe=k(j).replace(\"(?:-->|$)\",\"-->\").getRegex(),Fe=k(\"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\").replace(\"comment\",Qe).replace(\"attribute\",/\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex(),q=/(?:\\[(?:\\\\[\\s\\S]|[^\\[\\]\\\\])*\\]|\\\\[\\s\\S]|`+[^`]*?`+(?!`)|[^\\[\\]\\\\`])*?/,je=k(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]*(?:\\n[ \\t]*)?)(title))?\\s*\\)/).replace(\"label\",q).replace(\"href\",/<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\",/\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex(),ce=k(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\",q).replace(\"ref\",F).getRegex(),he=k(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\",F).getRegex(),Ue=k(\"reflink|nolink(?!\\\\()\",\"g\").replace(\"reflink\",ce).replace(\"nolink\",he).getRegex(),ne=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,W={_backpedal:C,anyPunctuation:Ge,autolink:Ne,blockSkip:Be,br:oe,code:ze,del:C,emStrongLDelim:qe,emStrongRDelimAst:De,emStrongRDelimUnd:Ze,escape:Me,link:je,nolink:he,punctuation:Ce,reflink:ce,reflinkSearch:Ue,tag:Fe,text:Ae,url:C},Ke={...W,link:k(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\",q).getRegex(),reflink:k(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\",q).getRegex()},G={...W,emStrongRDelimAst:He,emStrongLDelim:ve,url:k(/^((?:protocol):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/).replace(\"protocol\",ne).replace(\"email\",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,del:/^(~~?)(?=[^\\s~])((?:\\\\[\\s\\S]|[^\\\\])*?(?:\\\\[\\s\\S]|[^\\s~\\\\]))\\1(?=[^~]|$)/,text:k(/^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|protocol:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/).replace(\"protocol\",ne).getRegex()},We={...G,br:k(oe).replace(\"{2,}\",\"*\").getRegex(),text:k(G.text).replace(\"\\\\b_\",\"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g,\"*\").getRegex()},E={normal:U,gfm:_e,pedantic:Le},M={normal:W,gfm:G,breaks:We,pedantic:Ke};var Xe={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\"},ke=u=>Xe[u];function w(u,e){if(e){if(m.escapeTest.test(u))return u.replace(m.escapeReplace,ke)}else if(m.escapeTestNoEncode.test(u))return u.replace(m.escapeReplaceNoEncode,ke);return u}function X(u){try{u=encodeURI(u).replace(m.percentDecode,\"%\")}catch{return null}return u}function J(u,e){let t=u.replace(m.findPipe,(i,s,a)=>{let o=!1,l=s;for(;--l>=0&&a[l]===\"\\\\\";)o=!o;return o?\"|\":\" |\"}),n=t.split(m.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),e)if(n.length>e)n.splice(e);else for(;n.length<e;)n.push(\"\");for(;r<n.length;r++)n[r]=n[r].trim().replace(m.slashPipe,\"|\");return n}function z(u,e,t){let n=u.length;if(n===0)return\"\";let r=0;for(;r<n;){let i=u.charAt(n-r-1);if(i===e&&!t)r++;else if(i!==e&&t)r++;else break}return u.slice(0,n-r)}function de(u,e){if(u.indexOf(e[1])===-1)return-1;let t=0;for(let n=0;n<u.length;n++)if(u[n]===\"\\\\\")n++;else if(u[n]===e[0])t++;else if(u[n]===e[1]&&(t--,t<0))return n;return t>0?-2:-1}function ge(u,e,t,n,r){let i=e.href,s=e.title||null,a=u[1].replace(r.other.outputLinkReplace,\"$1\");n.state.inLink=!0;let o={type:u[0].charAt(0)===\"!\"?\"image\":\"link\",raw:t,href:i,title:s,text:a,tokens:n.inlineTokens(a)};return n.state.inLink=!1,o}function Je(u,e,t){let n=u.match(t.other.indentCodeCompensation);if(n===null)return e;let r=n[1];return e.split(`\n`).map(i=>{let s=i.match(t.other.beginningSpace);if(s===null)return i;let[a]=s;return a.length>=r.length?i.slice(r.length):i}).join(`\n`)}var y=class{options;rules;lexer;constructor(e){this.options=e||T}space(e){let t=this.rules.block.newline.exec(e);if(t&&t[0].length>0)return{type:\"space\",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let n=t[0].replace(this.rules.other.codeRemoveIndent,\"\");return{type:\"code\",raw:t[0],codeBlockStyle:\"indented\",text:this.options.pedantic?n:z(n,`\n`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let n=t[0],r=Je(n,t[3]||\"\",this.rules);return{type:\"code\",raw:n,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,\"$1\"):t[2],text:r}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let n=t[2].trim();if(this.rules.other.endingHash.test(n)){let r=z(n,\"#\");(this.options.pedantic||!r||this.rules.other.endingSpaceChar.test(r))&&(n=r.trim())}return{type:\"heading\",raw:t[0],depth:t[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:\"hr\",raw:z(t[0],`\n`)}}blockquote(e){let t=this.rules.block.blockquote.exec(e);if(t){let n=z(t[0],`\n`).split(`\n`),r=\"\",i=\"\",s=[];for(;n.length>0;){let a=!1,o=[],l;for(l=0;l<n.length;l++)if(this.rules.other.blockquoteStart.test(n[l]))o.push(n[l]),a=!0;else if(!a)o.push(n[l]);else break;n=n.slice(l);let p=o.join(`\n`),c=p.replace(this.rules.other.blockquoteSetextReplace,`\n $1`).replace(this.rules.other.blockquoteSetextReplace2,\"\");r=r?`${r}\n${p}`:p,i=i?`${i}\n${c}`:c;let g=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,s,!0),this.lexer.state.top=g,n.length===0)break;let h=s.at(-1);if(h?.type===\"code\")break;if(h?.type===\"blockquote\"){let R=h,f=R.raw+`\n`+n.join(`\n`),O=this.blockquote(f);s[s.length-1]=O,r=r.substring(0,r.length-R.raw.length)+O.raw,i=i.substring(0,i.length-R.text.length)+O.text;break}else if(h?.type===\"list\"){let R=h,f=R.raw+`\n`+n.join(`\n`),O=this.list(f);s[s.length-1]=O,r=r.substring(0,r.length-h.raw.length)+O.raw,i=i.substring(0,i.length-R.raw.length)+O.raw,n=f.substring(s.at(-1).raw.length).split(`\n`);continue}}return{type:\"blockquote\",raw:r,tokens:s,text:i}}}list(e){let t=this.rules.block.list.exec(e);if(t){let n=t[1].trim(),r=n.length>1,i={type:\"list\",raw:\"\",ordered:r,start:r?+n.slice(0,-1):\"\",loose:!1,items:[]};n=r?`\\\\d{1,9}\\\\${n.slice(-1)}`:`\\\\${n}`,this.options.pedantic&&(n=r?n:\"[*+-]\");let s=this.rules.other.listItemRegex(n),a=!1;for(;e;){let l=!1,p=\"\",c=\"\";if(!(t=s.exec(e))||this.rules.block.hr.test(e))break;p=t[0],e=e.substring(p.length);let g=t[2].split(`\n`,1)[0].replace(this.rules.other.listReplaceTabs,O=>\" \".repeat(3*O.length)),h=e.split(`\n`,1)[0],R=!g.trim(),f=0;if(this.options.pedantic?(f=2,c=g.trimStart()):R?f=t[1].length+1:(f=t[2].search(this.rules.other.nonSpaceChar),f=f>4?1:f,c=g.slice(f),f+=t[1].length),R&&this.rules.other.blankLine.test(h)&&(p+=h+`\n`,e=e.substring(h.length+1),l=!0),!l){let O=this.rules.other.nextBulletRegex(f),V=this.rules.other.hrRegex(f),Y=this.rules.other.fencesBeginRegex(f),ee=this.rules.other.headingBeginRegex(f),fe=this.rules.other.htmlBeginRegex(f);for(;e;){let H=e.split(`\n`,1)[0],A;if(h=H,this.options.pedantic?(h=h.replace(this.rules.other.listReplaceNesting,\" \"),A=h):A=h.replace(this.rules.other.tabCharGlobal,\" \"),Y.test(h)||ee.test(h)||fe.test(h)||O.test(h)||V.test(h))break;if(A.search(this.rules.other.nonSpaceChar)>=f||!h.trim())c+=`\n`+A.slice(f);else{if(R||g.replace(this.rules.other.tabCharGlobal,\" \").search(this.rules.other.nonSpaceChar)>=4||Y.test(g)||ee.test(g)||V.test(g))break;c+=`\n`+h}!R&&!h.trim()&&(R=!0),p+=H+`\n`,e=e.substring(H.length+1),g=A.slice(f)}}i.loose||(a?i.loose=!0:this.rules.other.doubleBlankLine.test(p)&&(a=!0)),i.items.push({type:\"list_item\",raw:p,task:!!this.options.gfm&&this.rules.other.listIsTask.test(c),loose:!1,text:c,tokens:[]}),i.raw+=p}let o=i.items.at(-1);if(o)o.raw=o.raw.trimEnd(),o.text=o.text.trimEnd();else return;i.raw=i.raw.trimEnd();for(let l of i.items){if(this.lexer.state.top=!1,l.tokens=this.lexer.blockTokens(l.text,[]),l.task){if(l.text=l.text.replace(this.rules.other.listReplaceTask,\"\"),l.tokens[0]?.type===\"text\"||l.tokens[0]?.type===\"paragraph\"){l.tokens[0].raw=l.tokens[0].raw.replace(this.rules.other.listReplaceTask,\"\"),l.tokens[0].text=l.tokens[0].text.replace(this.rules.other.listReplaceTask,\"\");for(let c=this.lexer.inlineQueue.length-1;c>=0;c--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[c].src)){this.lexer.inlineQueue[c].src=this.lexer.inlineQueue[c].src.replace(this.rules.other.listReplaceTask,\"\");break}}let p=this.rules.other.listTaskCheckbox.exec(l.raw);if(p){let c={type:\"checkbox\",raw:p[0]+\" \",checked:p[0]!==\"[ ]\"};l.checked=c.checked,i.loose?l.tokens[0]&&[\"paragraph\",\"text\"].includes(l.tokens[0].type)&&\"tokens\"in l.tokens[0]&&l.tokens[0].tokens?(l.tokens[0].raw=c.raw+l.tokens[0].raw,l.tokens[0].text=c.raw+l.tokens[0].text,l.tokens[0].tokens.unshift(c)):l.tokens.unshift({type:\"paragraph\",raw:c.raw,text:c.raw,tokens:[c]}):l.tokens.unshift(c)}}if(!i.loose){let p=l.tokens.filter(g=>g.type===\"space\"),c=p.length>0&&p.some(g=>this.rules.other.anyLine.test(g.raw));i.loose=c}}if(i.loose)for(let l of i.items){l.loose=!0;for(let p of l.tokens)p.type===\"text\"&&(p.type=\"paragraph\")}return i}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:\"html\",block:!0,raw:t[0],pre:t[1]===\"pre\"||t[1]===\"script\"||t[1]===\"style\",text:t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t){let n=t[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal,\" \"),r=t[2]?t[2].replace(this.rules.other.hrefBrackets,\"$1\").replace(this.rules.inline.anyPunctuation,\"$1\"):\"\",i=t[3]?t[3].substring(1,t[3].length-1).replace(this.rules.inline.anyPunctuation,\"$1\"):t[3];return{type:\"def\",tag:n,raw:t[0],href:r,title:i}}}table(e){let t=this.rules.block.table.exec(e);if(!t||!this.rules.other.tableDelimiter.test(t[2]))return;let n=J(t[1]),r=t[2].replace(this.rules.other.tableAlignChars,\"\").split(\"|\"),i=t[3]?.trim()?t[3].replace(this.rules.other.tableRowBlankLine,\"\").split(`\n`):[],s={type:\"table\",raw:t[0],header:[],align:[],rows:[]};if(n.length===r.length){for(let a of r)this.rules.other.tableAlignRight.test(a)?s.align.push(\"right\"):this.rules.other.tableAlignCenter.test(a)?s.align.push(\"center\"):this.rules.other.tableAlignLeft.test(a)?s.align.push(\"left\"):s.align.push(null);for(let a=0;a<n.length;a++)s.header.push({text:n[a],tokens:this.lexer.inline(n[a]),header:!0,align:s.align[a]});for(let a of i)s.rows.push(J(a,s.header.length).map((o,l)=>({text:o,tokens:this.lexer.inline(o),header:!1,align:s.align[l]})));return s}}lheading(e){let t=this.rules.block.lheading.exec(e);if(t)return{type:\"heading\",raw:t[0],depth:t[2].charAt(0)===\"=\"?1:2,text:t[1],tokens:this.lexer.inline(t[1])}}paragraph(e){let t=this.rules.block.paragraph.exec(e);if(t){let n=t[1].charAt(t[1].length-1)===`\n`?t[1].slice(0,-1):t[1];return{type:\"paragraph\",raw:t[0],text:n,tokens:this.lexer.inline(n)}}}text(e){let t=this.rules.block.text.exec(e);if(t)return{type:\"text\",raw:t[0],text:t[0],tokens:this.lexer.inline(t[0])}}escape(e){let t=this.rules.inline.escape.exec(e);if(t)return{type:\"escape\",raw:t[0],text:t[1]}}tag(e){let t=this.rules.inline.tag.exec(e);if(t)return!this.lexer.state.inLink&&this.rules.other.startATag.test(t[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(t[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(t[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(t[0])&&(this.lexer.state.inRawBlock=!1),{type:\"html\",raw:t[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:t[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let n=t[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if(!this.rules.other.endAngleBracket.test(n))return;let s=z(n.slice(0,-1),\"\\\\\");if((n.length-s.length)%2===0)return}else{let s=de(t[2],\"()\");if(s===-2)return;if(s>-1){let o=(t[0].indexOf(\"!\")===0?5:4)+t[1].length+s;t[2]=t[2].substring(0,s),t[0]=t[0].substring(0,o).trim(),t[3]=\"\"}}let r=t[2],i=\"\";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(r);s&&(r=s[1],i=s[3])}else i=t[3]?t[3].slice(1,-1):\"\";return r=r.trim(),this.rules.other.startAngleBracket.test(r)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?r=r.slice(1):r=r.slice(1,-1)),ge(t,{href:r&&r.replace(this.rules.inline.anyPunctuation,\"$1\"),title:i&&i.replace(this.rules.inline.anyPunctuation,\"$1\")},t[0],this.lexer,this.rules)}}reflink(e,t){let n;if((n=this.rules.inline.reflink.exec(e))||(n=this.rules.inline.nolink.exec(e))){let r=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal,\" \"),i=t[r.toLowerCase()];if(!i){let s=n[0].charAt(0);return{type:\"text\",raw:s,text:s}}return ge(n,i,n[0],this.lexer,this.rules)}}emStrong(e,t,n=\"\"){let r=this.rules.inline.emStrongLDelim.exec(e);if(!r||r[3]&&n.match(this.rules.other.unicodeAlphaNumeric))return;if(!(r[1]||r[2]||\"\")||!n||this.rules.inline.punctuation.exec(n)){let s=[...r[0]].length-1,a,o,l=s,p=0,c=r[0][0]===\"*\"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(c.lastIndex=0,t=t.slice(-1*e.length+s);(r=c.exec(t))!=null;){if(a=r[1]||r[2]||r[3]||r[4]||r[5]||r[6],!a)continue;if(o=[...a].length,r[3]||r[4]){l+=o;continue}else if((r[5]||r[6])&&s%3&&!((s+o)%3)){p+=o;continue}if(l-=o,l>0)continue;o=Math.min(o,o+l+p);let g=[...r[0]][0].length,h=e.slice(0,s+r.index+g+o);if(Math.min(s,o)%2){let f=h.slice(1,-1);return{type:\"em\",raw:h,text:f,tokens:this.lexer.inlineTokens(f)}}let R=h.slice(2,-2);return{type:\"strong\",raw:h,text:R,tokens:this.lexer.inlineTokens(R)}}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let n=t[2].replace(this.rules.other.newLineCharGlobal,\" \"),r=this.rules.other.nonSpaceChar.test(n),i=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return r&&i&&(n=n.substring(1,n.length-1)),{type:\"codespan\",raw:t[0],text:n}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:\"br\",raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:\"del\",raw:t[0],text:t[2],tokens:this.lexer.inlineTokens(t[2])}}autolink(e){let t=this.rules.inline.autolink.exec(e);if(t){let n,r;return t[2]===\"@\"?(n=t[1],r=\"mailto:\"+n):(n=t[1],r=n),{type:\"link\",raw:t[0],text:n,href:r,tokens:[{type:\"text\",raw:n,text:n}]}}}url(e){let t;if(t=this.rules.inline.url.exec(e)){let n,r;if(t[2]===\"@\")n=t[0],r=\"mailto:\"+n;else{let i;do i=t[0],t[0]=this.rules.inline._backpedal.exec(t[0])?.[0]??\"\";while(i!==t[0]);n=t[0],t[1]===\"www.\"?r=\"http://\"+t[0]:r=t[0]}return{type:\"link\",raw:t[0],text:n,href:r,tokens:[{type:\"text\",raw:n,text:n}]}}}inlineText(e){let t=this.rules.inline.text.exec(e);if(t){let n=this.lexer.state.inRawBlock;return{type:\"text\",raw:t[0],text:t[0],escaped:n}}}};var x=class u{tokens;options;state;inlineQueue;tokenizer;constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||T,this.options.tokenizer=this.options.tokenizer||new y,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let t={other:m,block:E.normal,inline:M.normal};this.options.pedantic?(t.block=E.pedantic,t.inline=M.pedantic):this.options.gfm&&(t.block=E.gfm,this.options.breaks?t.inline=M.breaks:t.inline=M.gfm),this.tokenizer.rules=t}static get rules(){return{block:E,inline:M}}static lex(e,t){return new u(t).lex(e)}static lexInline(e,t){return new u(t).inlineTokens(e)}lex(e){e=e.replace(m.carriageReturn,`\n`),this.blockTokens(e,this.tokens);for(let t=0;t<this.inlineQueue.length;t++){let n=this.inlineQueue[t];this.inlineTokens(n.src,n.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,t=[],n=!1){for(this.options.pedantic&&(e=e.replace(m.tabCharGlobal,\" \").replace(m.spaceLine,\"\"));e;){let r;if(this.options.extensions?.block?.some(s=>(r=s.call({lexer:this},e,t))?(e=e.substring(r.raw.length),t.push(r),!0):!1))continue;if(r=this.tokenizer.space(e)){e=e.substring(r.raw.length);let s=t.at(-1);r.raw.length===1&&s!==void 0?s.raw+=`\n`:t.push(r);continue}if(r=this.tokenizer.code(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"paragraph\"||s?.type===\"text\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.text,this.inlineQueue.at(-1).src=s.text):t.push(r);continue}if(r=this.tokenizer.fences(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.heading(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.hr(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.blockquote(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.list(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.html(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.def(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"paragraph\"||s?.type===\"text\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.raw,this.inlineQueue.at(-1).src=s.text):this.tokens.links[r.tag]||(this.tokens.links[r.tag]={href:r.href,title:r.title},t.push(r));continue}if(r=this.tokenizer.table(e)){e=e.substring(r.raw.length),t.push(r);continue}if(r=this.tokenizer.lheading(e)){e=e.substring(r.raw.length),t.push(r);continue}let i=e;if(this.options.extensions?.startBlock){let s=1/0,a=e.slice(1),o;this.options.extensions.startBlock.forEach(l=>{o=l.call({lexer:this},a),typeof o==\"number\"&&o>=0&&(s=Math.min(s,o))}),s<1/0&&s>=0&&(i=e.substring(0,s+1))}if(this.state.top&&(r=this.tokenizer.paragraph(i))){let s=t.at(-1);n&&s?.type===\"paragraph\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):t.push(r),n=i.length!==e.length,e=e.substring(r.raw.length);continue}if(r=this.tokenizer.text(e)){e=e.substring(r.raw.length);let s=t.at(-1);s?.type===\"text\"?(s.raw+=(s.raw.endsWith(`\n`)?\"\":`\n`)+r.raw,s.text+=`\n`+r.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=s.text):t.push(r);continue}if(e){let s=\"Infinite loop on byte: \"+e.charCodeAt(0);if(this.options.silent){console.error(s);break}else throw new Error(s)}}return this.state.top=!0,t}inline(e,t=[]){return this.inlineQueue.push({src:e,tokens:t}),t}inlineTokens(e,t=[]){let n=e,r=null;if(this.tokens.links){let o=Object.keys(this.tokens.links);if(o.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(n))!=null;)o.includes(r[0].slice(r[0].lastIndexOf(\"[\")+1,-1))&&(n=n.slice(0,r.index)+\"[\"+\"a\".repeat(r[0].length-2)+\"]\"+n.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(n))!=null;)n=n.slice(0,r.index)+\"++\"+n.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let i;for(;(r=this.tokenizer.rules.inline.blockSkip.exec(n))!=null;)i=r[2]?r[2].length:0,n=n.slice(0,r.index+i)+\"[\"+\"a\".repeat(r[0].length-i-2)+\"]\"+n.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);n=this.options.hooks?.emStrongMask?.call({lexer:this},n)??n;let s=!1,a=\"\";for(;e;){s||(a=\"\"),s=!1;let o;if(this.options.extensions?.inline?.some(p=>(o=p.call({lexer:this},e,t))?(e=e.substring(o.raw.length),t.push(o),!0):!1))continue;if(o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length);let p=t.at(-1);o.type===\"text\"&&p?.type===\"text\"?(p.raw+=o.raw,p.text+=o.text):t.push(o);continue}if(o=this.tokenizer.emStrong(e,n,a)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.autolink(e)){e=e.substring(o.raw.length),t.push(o);continue}if(!this.state.inLink&&(o=this.tokenizer.url(e))){e=e.substring(o.raw.length),t.push(o);continue}let l=e;if(this.options.extensions?.startInline){let p=1/0,c=e.slice(1),g;this.options.extensions.startInline.forEach(h=>{g=h.call({lexer:this},c),typeof g==\"number\"&&g>=0&&(p=Math.min(p,g))}),p<1/0&&p>=0&&(l=e.substring(0,p+1))}if(o=this.tokenizer.inlineText(l)){e=e.substring(o.raw.length),o.raw.slice(-1)!==\"_\"&&(a=o.raw.slice(-1)),s=!0;let p=t.at(-1);p?.type===\"text\"?(p.raw+=o.raw,p.text+=o.text):t.push(o);continue}if(e){let p=\"Infinite loop on byte: \"+e.charCodeAt(0);if(this.options.silent){console.error(p);break}else throw new Error(p)}}return t}};var P=class{options;parser;constructor(e){this.options=e||T}space(e){return\"\"}code({text:e,lang:t,escaped:n}){let r=(t||\"\").match(m.notSpaceStart)?.[0],i=e.replace(m.endingNewline,\"\")+`\n`;return r?'<pre><code class=\"language-'+w(r)+'\">'+(n?i:w(i,!0))+`</code></pre>\n`:\"<pre><code>\"+(n?i:w(i,!0))+`</code></pre>\n`}blockquote({tokens:e}){return`<blockquote>\n${this.parser.parse(e)}</blockquote>\n`}html({text:e}){return e}def(e){return\"\"}heading({tokens:e,depth:t}){return`<h${t}>${this.parser.parseInline(e)}</h${t}>\n`}hr(e){return`<hr>\n`}list(e){let t=e.ordered,n=e.start,r=\"\";for(let a=0;a<e.items.length;a++){let o=e.items[a];r+=this.listitem(o)}let i=t?\"ol\":\"ul\",s=t&&n!==1?' start=\"'+n+'\"':\"\";return\"<\"+i+s+`>\n`+r+\"</\"+i+`>\n`}listitem(e){return`<li>${this.parser.parse(e.tokens)}</li>\n`}checkbox({checked:e}){return\"<input \"+(e?'checked=\"\" ':\"\")+'disabled=\"\" type=\"checkbox\"> '}paragraph({tokens:e}){return`<p>${this.parser.parseInline(e)}</p>\n`}table(e){let t=\"\",n=\"\";for(let i=0;i<e.header.length;i++)n+=this.tablecell(e.header[i]);t+=this.tablerow({text:n});let r=\"\";for(let i=0;i<e.rows.length;i++){let s=e.rows[i];n=\"\";for(let a=0;a<s.length;a++)n+=this.tablecell(s[a]);r+=this.tablerow({text:n})}return r&&(r=`<tbody>${r}</tbody>`),`<table>\n<thead>\n`+t+`</thead>\n`+r+`</table>\n`}tablerow({text:e}){return`<tr>\n${e}</tr>\n`}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?\"th\":\"td\";return(e.align?`<${n} align=\"${e.align}\">`:`<${n}>`)+t+`</${n}>\n`}strong({tokens:e}){return`<strong>${this.parser.parseInline(e)}</strong>`}em({tokens:e}){return`<em>${this.parser.parseInline(e)}</em>`}codespan({text:e}){return`<code>${w(e,!0)}</code>`}br(e){return\"<br>\"}del({tokens:e}){return`<del>${this.parser.parseInline(e)}</del>`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=X(e);if(i===null)return r;e=i;let s='<a href=\"'+e+'\"';return t&&(s+=' title=\"'+w(t)+'\"'),s+=\">\"+r+\"</a>\",s}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=X(e);if(i===null)return w(n);e=i;let s=`<img src=\"${e}\" alt=\"${n}\"`;return t&&(s+=` title=\"${w(t)}\"`),s+=\">\",s}text(e){return\"tokens\"in e&&e.tokens?this.parser.parseInline(e.tokens):\"escaped\"in e&&e.escaped?e.text:w(e.text)}};var $=class{strong({text:e}){return e}em({text:e}){return e}codespan({text:e}){return e}del({text:e}){return e}html({text:e}){return e}text({text:e}){return e}link({text:e}){return\"\"+e}image({text:e}){return\"\"+e}br(){return\"\"}checkbox({raw:e}){return e}};var b=class u{options;renderer;textRenderer;constructor(e){this.options=e||T,this.options.renderer=this.options.renderer||new P,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new $}static parse(e,t){return new u(t).parse(e)}static parseInline(e,t){return new u(t).parseInline(e)}parse(e){let t=\"\";for(let n=0;n<e.length;n++){let r=e[n];if(this.options.extensions?.renderers?.[r.type]){let s=r,a=this.options.extensions.renderers[s.type].call({parser:this},s);if(a!==!1||![\"space\",\"hr\",\"heading\",\"code\",\"table\",\"blockquote\",\"list\",\"html\",\"def\",\"paragraph\",\"text\"].includes(s.type)){t+=a||\"\";continue}}let i=r;switch(i.type){case\"space\":{t+=this.renderer.space(i);break}case\"hr\":{t+=this.renderer.hr(i);break}case\"heading\":{t+=this.renderer.heading(i);break}case\"code\":{t+=this.renderer.code(i);break}case\"table\":{t+=this.renderer.table(i);break}case\"blockquote\":{t+=this.renderer.blockquote(i);break}case\"list\":{t+=this.renderer.list(i);break}case\"checkbox\":{t+=this.renderer.checkbox(i);break}case\"html\":{t+=this.renderer.html(i);break}case\"def\":{t+=this.renderer.def(i);break}case\"paragraph\":{t+=this.renderer.paragraph(i);break}case\"text\":{t+=this.renderer.text(i);break}default:{let s='Token with \"'+i.type+'\" type was not found.';if(this.options.silent)return console.error(s),\"\";throw new Error(s)}}}return t}parseInline(e,t=this.renderer){let n=\"\";for(let r=0;r<e.length;r++){let i=e[r];if(this.options.extensions?.renderers?.[i.type]){let a=this.options.extensions.renderers[i.type].call({parser:this},i);if(a!==!1||![\"escape\",\"html\",\"link\",\"image\",\"strong\",\"em\",\"codespan\",\"br\",\"del\",\"text\"].includes(i.type)){n+=a||\"\";continue}}let s=i;switch(s.type){case\"escape\":{n+=t.text(s);break}case\"html\":{n+=t.html(s);break}case\"link\":{n+=t.link(s);break}case\"image\":{n+=t.image(s);break}case\"checkbox\":{n+=t.checkbox(s);break}case\"strong\":{n+=t.strong(s);break}case\"em\":{n+=t.em(s);break}case\"codespan\":{n+=t.codespan(s);break}case\"br\":{n+=t.br(s);break}case\"del\":{n+=t.del(s);break}case\"text\":{n+=t.text(s);break}default:{let a='Token with \"'+s.type+'\" type was not found.';if(this.options.silent)return console.error(a),\"\";throw new Error(a)}}}return n}};var S=class{options;block;constructor(e){this.options=e||T}static passThroughHooks=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\",\"emStrongMask\"]);static passThroughHooksRespectAsync=new Set([\"preprocess\",\"postprocess\",\"processAllTokens\"]);preprocess(e){return e}postprocess(e){return e}processAllTokens(e){return e}emStrongMask(e){return e}provideLexer(){return this.block?x.lex:x.lexInline}provideParser(){return this.block?b.parse:b.parseInline}};var B=class{defaults=L();options=this.setOptions;parse=this.parseMarkdown(!0);parseInline=this.parseMarkdown(!1);Parser=b;Renderer=P;TextRenderer=$;Lexer=x;Tokenizer=y;Hooks=S;constructor(...e){this.use(...e)}walkTokens(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(this,r)),r.type){case\"table\":{let i=r;for(let s of i.header)n=n.concat(this.walkTokens(s.tokens,t));for(let s of i.rows)for(let a of s)n=n.concat(this.walkTokens(a.tokens,t));break}case\"list\":{let i=r;n=n.concat(this.walkTokens(i.items,t));break}default:{let i=r;this.defaults.extensions?.childTokens?.[i.type]?this.defaults.extensions.childTokens[i.type].forEach(s=>{let a=i[s].flat(1/0);n=n.concat(this.walkTokens(a,t))}):i.tokens&&(n=n.concat(this.walkTokens(i.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(n=>{let r={...n};if(r.async=this.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error(\"extension name required\");if(\"renderer\"in i){let s=t.renderers[i.name];s?t.renderers[i.name]=function(...a){let o=i.renderer.apply(this,a);return o===!1&&(o=s.apply(this,a)),o}:t.renderers[i.name]=i.renderer}if(\"tokenizer\"in i){if(!i.level||i.level!==\"block\"&&i.level!==\"inline\")throw new Error(\"extension level must be 'block' or 'inline'\");let s=t[i.level];s?s.unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level===\"block\"?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level===\"inline\"&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}\"childTokens\"in i&&i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),r.extensions=t),n.renderer){let i=this.defaults.renderer||new P(this.defaults);for(let s in n.renderer){if(!(s in i))throw new Error(`renderer '${s}' does not exist`);if([\"options\",\"parser\"].includes(s))continue;let a=s,o=n.renderer[a],l=i[a];i[a]=(...p)=>{let c=o.apply(i,p);return c===!1&&(c=l.apply(i,p)),c||\"\"}}r.renderer=i}if(n.tokenizer){let i=this.defaults.tokenizer||new y(this.defaults);for(let s in n.tokenizer){if(!(s in i))throw new Error(`tokenizer '${s}' does not exist`);if([\"options\",\"rules\",\"lexer\"].includes(s))continue;let a=s,o=n.tokenizer[a],l=i[a];i[a]=(...p)=>{let c=o.apply(i,p);return c===!1&&(c=l.apply(i,p)),c}}r.tokenizer=i}if(n.hooks){let i=this.defaults.hooks||new S;for(let s in n.hooks){if(!(s in i))throw new Error(`hook '${s}' does not exist`);if([\"options\",\"block\"].includes(s))continue;let a=s,o=n.hooks[a],l=i[a];S.passThroughHooks.has(s)?i[a]=p=>{if(this.defaults.async&&S.passThroughHooksRespectAsync.has(s))return(async()=>{let g=await o.call(i,p);return l.call(i,g)})();let c=o.call(i,p);return l.call(i,c)}:i[a]=(...p)=>{if(this.defaults.async)return(async()=>{let g=await o.apply(i,p);return g===!1&&(g=await l.apply(i,p)),g})();let c=o.apply(i,p);return c===!1&&(c=l.apply(i,p)),c}}r.hooks=i}if(n.walkTokens){let i=this.defaults.walkTokens,s=n.walkTokens;r.walkTokens=function(a){let o=[];return o.push(s.call(this,a)),i&&(o=o.concat(i.call(this,a))),o}}this.defaults={...this.defaults,...r}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return x.lex(e,t??this.defaults)}parser(e,t){return b.parse(e,t??this.defaults)}parseMarkdown(e){return(n,r)=>{let i={...r},s={...this.defaults,...i},a=this.onError(!!s.silent,!!s.async);if(this.defaults.async===!0&&i.async===!1)return a(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));if(typeof n>\"u\"||n===null)return a(new Error(\"marked(): input parameter is undefined or null\"));if(typeof n!=\"string\")return a(new Error(\"marked(): input parameter is of type \"+Object.prototype.toString.call(n)+\", string expected\"));if(s.hooks&&(s.hooks.options=s,s.hooks.block=e),s.async)return(async()=>{let o=s.hooks?await s.hooks.preprocess(n):n,p=await(s.hooks?await s.hooks.provideLexer():e?x.lex:x.lexInline)(o,s),c=s.hooks?await s.hooks.processAllTokens(p):p;s.walkTokens&&await Promise.all(this.walkTokens(c,s.walkTokens));let h=await(s.hooks?await s.hooks.provideParser():e?b.parse:b.parseInline)(c,s);return s.hooks?await s.hooks.postprocess(h):h})().catch(a);try{s.hooks&&(n=s.hooks.preprocess(n));let l=(s.hooks?s.hooks.provideLexer():e?x.lex:x.lexInline)(n,s);s.hooks&&(l=s.hooks.processAllTokens(l)),s.walkTokens&&this.walkTokens(l,s.walkTokens);let c=(s.hooks?s.hooks.provideParser():e?b.parse:b.parseInline)(l,s);return s.hooks&&(c=s.hooks.postprocess(c)),c}catch(o){return a(o)}}}onError(e,t){return n=>{if(n.message+=`\nPlease report this to https://github.com/markedjs/marked.`,e){let r=\"<p>An error occurred:</p><pre>\"+w(n.message+\"\",!0)+\"</pre>\";return t?Promise.resolve(r):r}if(t)return Promise.reject(n);throw n}}};var _=new B;function d(u,e){return _.parse(u,e)}d.options=d.setOptions=function(u){return _.setOptions(u),d.defaults=_.defaults,Z(d.defaults),d};d.getDefaults=L;d.defaults=T;d.use=function(...u){return _.use(...u),d.defaults=_.defaults,Z(d.defaults),d};d.walkTokens=function(u,e){return _.walkTokens(u,e)};d.parseInline=_.parseInline;d.Parser=b;d.parser=b.parse;d.Renderer=P;d.TextRenderer=$;d.Lexer=x;d.lexer=x.lex;d.Tokenizer=y;d.Hooks=S;d.parse=d;var Dt=d.options,Ht=d.setOptions,Zt=d.use,Gt=d.walkTokens,Nt=d.parseInline,Qt=d,Ft=b.parse,jt=x.lex;export{S as Hooks,x as Lexer,B as Marked,b as Parser,P as Renderer,$ as TextRenderer,y as Tokenizer,T as defaults,L as getDefaults,jt as lexer,d as marked,Dt as options,Qt as parse,Nt as parseInline,Ft as parser,Ht as setOptions,Zt as use,Gt as walkTokens};\n//# sourceMappingURL=marked.esm.js.map\n","import { FunctionalComponent } from \"preact\";\r\nimport { useState, useEffect } from \"preact/hooks\";\r\nimport { beautifyPastDate } from \"../hooks/date\";\r\nimport { ArrowFill, LoadingIcon, Star, UserIcon, XIcon } from \"./icons\";\r\nimport { handleSendMessage } from \"./functionsHelper\";\r\nimport { marked } from \"marked\";\r\nimport {\r\n ConversationStateContext,\r\n CoreStateContext,\r\n UIStateContext,\r\n} from \"../types/widget\";\r\nimport { Conversation } from \"../services/models/conversation\";\r\nimport ConversationService from \"../services/conversation\";\r\nimport { Message } from \"../services/models/message\";\r\nimport { PopulatedChatbotLean } from \"../services/validations/live\";\r\nimport { PopulatedHoveringMessage } from \"../services/validations/activityChatbot\";\r\nimport { HoveringMessageInner as HoveringMessageInnerType } from \"../services/validations/chatbotFlow\";\r\nimport { transformMediaUrl } from \"../hooks/common\";\r\n\r\n// Type definitions for component props\r\ninterface ConversationListProps {\r\n chatbot: PopulatedChatbotLean;\r\n conversations: Conversation[];\r\n messages: Message[];\r\n totalConversationsCount: number;\r\n conversationsLoading: boolean;\r\n loadMoreConversations: () => void;\r\n handleChangeConversation: (conv: Conversation) => void;\r\n}\r\n\r\ninterface ConversationListItemProps {\r\n chatbot: PopulatedChatbotLean;\r\n data: {\r\n conversation: Conversation | undefined;\r\n latestMessage: Message;\r\n };\r\n handleChangeConversation: (conv: Conversation) => void;\r\n}\r\n\r\ninterface HeaderImageProps {\r\n chatbot: PopulatedChatbotLean;\r\n humanControl: boolean;\r\n latestCurrentConversation: Conversation | null;\r\n}\r\n\r\ninterface DataFromUserProps {\r\n email: string;\r\n chatbot: PopulatedChatbotLean;\r\n dataFromUser: any;\r\n}\r\n\r\ninterface ReviewFromUserProps {\r\n chatbot: PopulatedChatbotLean;\r\n ratingFromUser: any;\r\n}\r\n\r\ninterface ConnectingToAgentProps {\r\n chatbot: PopulatedChatbotLean;\r\n onlineAgents: number;\r\n currentConversation: Conversation;\r\n}\r\n\r\ninterface LoadingProps {\r\n chatbot: PopulatedChatbotLean;\r\n}\r\n\r\ninterface ChatMessageProps {\r\n chatbot: PopulatedChatbotLean;\r\n message: Message;\r\n AIControlNode: any;\r\n}\r\n\r\ninterface HoveringMessageProps {\r\n hoveringMessageInner: {\r\n data: HoveringMessageInnerType[];\r\n onClick: (hoveringMessageInner: HoveringMessageInnerType) => Promise<void>;\r\n };\r\n chatbot: PopulatedChatbotLean;\r\n}\r\n\r\ninterface ShowFileProps {\r\n file: File;\r\n setFile: (file: File | null) => void;\r\n chatbot: PopulatedChatbotLean;\r\n}\r\n\r\ninterface ChatHoveringMessagesProps {\r\n showHoveringMessage: boolean;\r\n hoveringMessages: PopulatedHoveringMessage[];\r\n chatbot: PopulatedChatbotLean;\r\n coreState: CoreStateContext;\r\n conversationState: ConversationStateContext;\r\n uiState: UIStateContext;\r\n node: any;\r\n setShowHoveringMessage: (show: boolean) => void;\r\n setChatOpen: (open: boolean) => void;\r\n}\r\n\r\n// MARK: Conversation List\r\n\r\nexport const ConversationList: FunctionalComponent<ConversationListProps> = ({\r\n chatbot,\r\n conversations,\r\n messages,\r\n totalConversationsCount,\r\n conversationsLoading,\r\n loadMoreConversations,\r\n handleChangeConversation,\r\n}) => {\r\n const sortedMessages = [...messages].sort(\r\n (a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime(),\r\n );\r\n\r\n const latestMessagesMap = new Map();\r\n sortedMessages.forEach((message) => {\r\n if (!latestMessagesMap.has(message.conversationId)) {\r\n latestMessagesMap.set(message.conversationId, message);\r\n }\r\n });\r\n\r\n const conversationsWithLatestMessage = Array.from(\r\n latestMessagesMap.values(),\r\n ).map((latestMessage: Message) => ({\r\n conversation: conversations.find(\r\n (conv) => conv._id === latestMessage.conversationId,\r\n ),\r\n latestMessage,\r\n }));\r\n\r\n return (\r\n <div className=\"conversationMainItemContainer\">\r\n {conversationsWithLatestMessage.map((item, i) => (\r\n <ConversationListItem\r\n key={i}\r\n chatbot={chatbot}\r\n data={item}\r\n handleChangeConversation={handleChangeConversation}\r\n />\r\n ))}\r\n {totalConversationsCount > conversations.length && (\r\n <button className=\"newConversationBtn\" onClick={loadMoreConversations}>\r\n {conversationsLoading ? (\r\n <div className=\"newConversationLoading\">\r\n <LoadingIcon className=\"base-text-color\" />\r\n </div>\r\n ) : (\r\n \"Load More Conversations\"\r\n )}\r\n </button>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nconst plainFirstLine = (raw = \"\"): string =>\r\n raw\r\n .split(\"\\n\")[0] // first line only\r\n .replace(/#{1,6}\\s+/g, \"\") // ## heading\r\n .replace(/\\[([^\\]]+)\\]\\([^)]*\\)/g, \"$1\") // [text](url) -> text\r\n .replace(/`([^`]+)`/g, \"$1\") // `code` -> code\r\n .replace(/\\*\\*(.+?)\\*\\*/g, \"$1\") // **bold**\r\n .replace(/\\*(.+?)\\*/g, \"$1\") // *italic*\r\n .trim();\r\n\r\nexport const ConversationListItem: FunctionalComponent<\r\n ConversationListItemProps\r\n> = ({ chatbot, data, handleChangeConversation }) => {\r\n if (!data.conversation || data.conversation === undefined) return;\r\n const { conversation, latestMessage } = data;\r\n\r\n const UserImage = () => {\r\n if (conversation.assignedTo) {\r\n const member = chatbot.teamMembers.members.find(\r\n (member: any) => member.user._id === conversation.assignedTo,\r\n );\r\n\r\n if (member?.user.profilePicture) {\r\n return (\r\n <img\r\n key={transformMediaUrl(member.user.profilePicture, 70)}\r\n src={transformMediaUrl(member.user.profilePicture, 70)}\r\n alt=\"User\"\r\n // crossOrigin=\"anonymous\"\r\n />\r\n );\r\n }\r\n return <UserIcon className=\"input-background-color\" />;\r\n }\r\n\r\n return (\r\n <img\r\n key={transformMediaUrl(chatbot.appearance.images.popupChat, 70)}\r\n src={transformMediaUrl(chatbot.appearance.images.popupChat, 70)}\r\n alt=\"Bot\"\r\n // crossOrigin=\"anonymous\"\r\n />\r\n );\r\n };\r\n\r\n const previewText = plainFirstLine(latestMessage?.data.text);\r\n\r\n return (\r\n <div\r\n className=\"conversationMainItem\"\r\n onClick={() => handleChangeConversation(conversation)}\r\n >\r\n <div>\r\n <UserImage />\r\n </div>\r\n <div className=\"textHolder\">\r\n {/* change needed here */}\r\n <p>{previewText || \"Send a message\"}</p>\r\n <p>\r\n {beautifyPastDate(\r\n latestMessage?.createdAt || conversation?.createdAt,\r\n )}\r\n </p>\r\n </div>\r\n <div>\r\n <ArrowFill className=\"base-color\" />\r\n {latestMessage.owner === \"agent\" && !latestMessage.seen && (\r\n <div className=\"unreadMessage\" />\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\n// MARK: Header & Agents\r\n\r\nexport const Agents: FunctionalComponent<{\r\n chatbot: PopulatedChatbotLean;\r\n className?: string;\r\n}> = ({ chatbot, className = \"\" }) => {\r\n return (\r\n <div className={`agents ${className}`}>\r\n {chatbot.teamMembers.members\r\n .filter((member) => member.joined)\r\n .slice(0, 3)\r\n .map((member: any, index: number) => (\r\n <div key={index}>\r\n {member.user.profilePicture ? (\r\n <img\r\n key={transformMediaUrl(member.user.profilePicture, 70)}\r\n src={transformMediaUrl(member.user.profilePicture, 70)}\r\n alt=\"Agent\"\r\n // crossOrigin=\"anonymous\"\r\n />\r\n ) : (\r\n <UserIcon className=\"input-text-color\" />\r\n )}\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n};\r\n\r\nexport const HeaderImage: FunctionalComponent<HeaderImageProps> = ({\r\n chatbot,\r\n humanControl,\r\n latestCurrentConversation,\r\n}) => {\r\n const member = chatbot.teamMembers.members.find(\r\n (member: any) => member.user._id === latestCurrentConversation?.assignedTo,\r\n )?.user;\r\n\r\n const showAgentImage = () => {\r\n if (!latestCurrentConversation?.assignedTo) {\r\n return <Agents chatbot={chatbot} />;\r\n }\r\n\r\n if (member?.profilePicture) {\r\n return (\r\n <div className=\"headerImageWrapper\">\r\n <img\r\n key={transformMediaUrl(member.profilePicture, 70)}\r\n src={transformMediaUrl(member.profilePicture, 70)}\r\n width=\"100%\"\r\n alt=\"Profile\"\r\n style={{ borderRadius: \"50%\" }}\r\n // crossOrigin=\"anonymous\"\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <div className=\"headerImageWrapper\">\r\n <UserIcon className=\"background-text-color\" />\r\n </div>\r\n );\r\n };\r\n\r\n const showBotImage = () => (\r\n <div className=\"headerImageWrapper\">\r\n <img\r\n key={transformMediaUrl(chatbot.appearance.images.popupChat, 70)}\r\n src={transformMediaUrl(chatbot.appearance.images.popupChat, 70)}\r\n width=\"100%\"\r\n alt=\"Chat\"\r\n // crossOrigin=\"anonymous\"\r\n />\r\n </div>\r\n );\r\n\r\n return (\r\n <>\r\n {humanControl ||\r\n latestCurrentConversation?.assignType ||\r\n latestCurrentConversation?.assignedTo\r\n ? showAgentImage()\r\n : showBotImage()}\r\n </>\r\n );\r\n};\r\n\r\n// MARK: Forms\r\n\r\nexport const DataFromUser: FunctionalComponent<DataFromUserProps> = ({\r\n email,\r\n chatbot,\r\n dataFromUser,\r\n}) => {\r\n const [userData, setUserData] = useState<Record<string, any>>(() => {\r\n const initialData: Record<string, any> = {};\r\n if (email) {\r\n const emailField = dataFromUser.data.find(\r\n (field: any) => field.type === \"email\",\r\n );\r\n if (emailField) {\r\n initialData[emailField.key] = email;\r\n }\r\n }\r\n return initialData;\r\n });\r\n\r\n const renderInput = (item: any, index: number) => {\r\n switch (item.type) {\r\n case \"text\":\r\n return (\r\n <div key={`${index}-${item.key}`}>\r\n <h3>{item.name}</h3>\r\n <input\r\n type=\"text\"\r\n required={item.required}\r\n placeholder={item.data.placeholder}\r\n value={userData[item.key] || \"\"}\r\n onInput={(e: any) =>\r\n setUserData({ ...userData, [item.key]: e.currentTarget.value })\r\n }\r\n />\r\n </div>\r\n );\r\n\r\n case \"dropdown\":\r\n return (\r\n <div key={`${index}-${item.key}`}>\r\n <h4>{item.name}</h4>\r\n <select\r\n required={item.required}\r\n name={item.name}\r\n onChange={(e: any) =>\r\n setUserData({ ...userData, [item.key]: e.target.value })\r\n }\r\n >\r\n <option value=\"\">Select</option>\r\n {item.data.map((opt: any) => (\r\n <option key={opt.value} value={opt.value}>\r\n {opt.label}\r\n </option>\r\n ))}\r\n </select>\r\n </div>\r\n );\r\n\r\n case \"date\":\r\n return (\r\n <div key={`${index}-${item.key}`}>\r\n <h4>{item.name}</h4>\r\n <input\r\n required={item.required}\r\n type=\"date\"\r\n onChange={(e: any) =>\r\n setUserData({ ...userData, [item.key]: e.target.value })\r\n }\r\n />\r\n </div>\r\n );\r\n\r\n case \"time\":\r\n return (\r\n <div key={`${index}-${item.key}`}>\r\n <h4>{item.name}</h4>\r\n <input\r\n required={item.required}\r\n type=\"time\"\r\n onChange={(e: any) =>\r\n setUserData({ ...userData, [item.key]: e.target.value })\r\n }\r\n />\r\n </div>\r\n );\r\n\r\n case \"textarea\":\r\n return (\r\n <div key={`${index}-${item.key}`}>\r\n <h4>{item.name}</h4>\r\n <textarea\r\n required={item.required}\r\n placeholder={item.data.placeholder}\r\n rows={4}\r\n value={userData[item.key] || \"\"}\r\n onInput={(e: any) =>\r\n setUserData({ ...userData, [item.key]: e.currentTarget.value })\r\n }\r\n />\r\n </div>\r\n );\r\n\r\n case \"email\":\r\n return (\r\n <div key={`${index}-${item.key}`}>\r\n <h4>{item.name}</h4>\r\n <input\r\n required={item.required}\r\n placeholder={item.data.placeholder}\r\n type=\"email\"\r\n value={userData[item.key] || \"\"}\r\n onInput={(e: any) =>\r\n setUserData({ ...userData, [item.key]: e.currentTarget.value })\r\n }\r\n />\r\n <span className=\"hint\">{item.error}</span>\r\n </div>\r\n );\r\n\r\n default:\r\n return null;\r\n }\r\n };\r\n\r\n return (\r\n <div className=\"mainMessageContainer\">\r\n <div className=\"logoWithMessageDiv\">\r\n <img\r\n key={transformMediaUrl(chatbot.appearance.images.chat, 70)}\r\n src={transformMediaUrl(chatbot.appearance.images.chat, 70)}\r\n alt=\"Bot\"\r\n // crossOrigin=\"anonymous\"\r\n />\r\n </div>\r\n <div className=\"messageDiv\">\r\n <form\r\n className={\"messageP\"}\r\n onSubmit={(e: any) => {\r\n e.preventDefault();\r\n dataFromUser.onSubmit(userData);\r\n }}\r\n >\r\n {dataFromUser.data.map((item: any, index: number) =>\r\n renderInput(item, index)\r\n )}\r\n <div className=\"livelinkSubmitDiv\">\r\n <button type=\"submit\">Submit</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport const ReviewFromUser: FunctionalComponent<ReviewFromUserProps> = ({\r\n chatbot,\r\n ratingFromUser,\r\n}) => {\r\n const [userData, setUserData] = useState({ comment: \"\", rating: 4 });\r\n\r\n return (\r\n <div className=\"mainMessageContainer\">\r\n <div className=\"logoWithMessageDiv\">\r\n <img\r\n key={transformMediaUrl(chatbot.appearance.images.chat, 70)}\r\n src={transformMediaUrl(chatbot.appearance.images.chat, 70)}\r\n alt=\"Bot\"\r\n // crossOrigin=\"anonymous\"\r\n />\r\n </div>\r\n <div className=\"messageDiv\">\r\n <form\r\n onSubmit={(e: any) => {\r\n e.preventDefault();\r\n if (userData.rating === 0) return;\r\n ratingFromUser.onSubmit(userData);\r\n }}\r\n >\r\n <h3 style={{ fontWeight: \"400\" }}>Please Leave a review</h3>\r\n <div>\r\n <h4>Comment</h4>\r\n <textarea\r\n required\r\n minLength={3}\r\n maxLength={500}\r\n rows={4}\r\n onChange={(e: any) =>\r\n setUserData({ ...userData, comment: e.target.value })\r\n }\r\n />\r\n </div>\r\n <div style={{ display: \"flex\" }}>\r\n {[1, 2, 3, 4, 5].map((value) => (\r\n <div\r\n key={value}\r\n style={{ cursor: \"pointer\" }}\r\n onClick={() => setUserData({ ...userData, rating: value })}\r\n >\r\n <Star\r\n className={\r\n userData.rating >= value\r\n ? chatbot.appearance.color.base\r\n : \"input-text-color\"\r\n }\r\n />\r\n </div>\r\n ))}\r\n </div>\r\n <div className=\"livelinkSubmitDiv\">\r\n <button type=\"submit\">Submit</button>\r\n </div>\r\n </form>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport const ConnectingToAnAgent: FunctionalComponent<\r\n ConnectingToAgentProps\r\n> = ({ chatbot, onlineAgents, currentConversation }) => {\r\n const currentNode = chatbot.chatflow.nodes.find(\r\n (node) => node.id === currentConversation.currentNode,\r\n );\r\n\r\n return (\r\n <div className=\"onlineAgents\">\r\n <div>\r\n <span>\r\n {currentNode?.data?.expectedTime?.value\r\n ? currentNode.data?.expectedTime.text\r\n : \"Connecting to an Agent\"}\r\n </span>\r\n </div>\r\n {currentNode?.data.expectedTime?.showOnlineAgents && onlineAgents > 0 && (\r\n <div>\r\n <Agents chatbot={chatbot} />\r\n <p>\r\n Online Agents: <b>{onlineAgents}</b>\r\n </p>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport const UserLoading: FunctionalComponent<LoadingProps> = ({ chatbot }) => {\r\n return (\r\n <div className=\"mainMessageContainer mySelfTextDiv\">\r\n <div className=\"messageDiv mySelfTextDiv\">\r\n <div className=\"otherUserTextLoading\">\r\n <div className=\"loading1\" />\r\n <div className=\"loading2\" />\r\n <div className=\"loading3\" />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport const AILoading: FunctionalComponent<LoadingProps> = ({ chatbot }) => {\r\n return (\r\n <div className=\"mainMessageContainer\">\r\n <div className=\"logoWithMessageDiv\">\r\n <img\r\n key={transformMediaUrl(chatbot.appearance.images.chat, 70)}\r\n src={transformMediaUrl(chatbot.appearance.images.chat, 70)}\r\n alt=\"Bot\"\r\n // crossOrigin=\"anonymous\"\r\n />\r\n </div>\r\n <div className=\"messageDiv\">\r\n <div className=\"otherUserTextLoading\">\r\n <div className=\"loading1\" />\r\n <div className=\"loading2\" />\r\n <div className=\"loading3\" />\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\n// MARK: Chat Message\r\n\r\nexport const ChatMessage: FunctionalComponent<ChatMessageProps> = ({\r\n chatbot,\r\n message,\r\n AIControlNode,\r\n}) => {\r\n const isAgent = message.owner === \"agent\";\r\n const member = isAgent\r\n ? chatbot.teamMembers.members.find(\r\n (m: any) => m.user._id === message.ownerId,\r\n )\r\n : null;\r\n\r\n const uniqueSources =\r\n message.data.sources?.filter(\r\n (source: string, index: number, self: string[]) =>\r\n self.indexOf(source) === index,\r\n ) || [];\r\n\r\n const limitedSources = uniqueSources\r\n .filter((source: string) => source.startsWith(\"https://\"))\r\n .slice(0, 3);\r\n\r\n const fileName = message.data.file?.name;\r\n const isImage = fileName && /\\.(jpg|png|jpeg|gif|bmp)$/i.test(fileName);\r\n const isVideo =\r\n fileName && /\\.(mp4|avi|mov|mkv|wmv|flv|webm|mpeg)$/i.test(fileName);\r\n\r\n // Sanitize and convert markdown to HTML\r\n const [htmlContent, setHtmlContent] = useState(\"\");\r\n\r\n useEffect(() => {\r\n const parsed = marked.parse(message.data.text || \"\");\r\n if (typeof parsed === \"string\") {\r\n setHtmlContent(parsed);\r\n } else {\r\n parsed.then(setHtmlContent);\r\n }\r\n }, [message.data.text]);\r\n\r\n return (\r\n <div\r\n className={`mainMessageContainer ${\r\n message.owner === \"user\" ? \"mySelfTextDiv\" : \"\"\r\n }`}\r\n >\r\n {message.owner !== \"user\" &&\r\n (isAgent ? (\r\n <div className=\"logoWithMessageDiv\">\r\n {member?.user.profilePicture ? (\r\n <img\r\n key={transformMediaUrl(member.user.profilePicture, 70)}\r\n src={transformMediaUrl(member.user.profilePicture, 70)}\r\n alt=\"Agent\"\r\n // crossOrigin=\"anonymous\"\r\n />\r\n ) : (\r\n <UserIcon className=\"input-background-color\" />\r\n )}\r\n </div>\r\n ) : (\r\n <div className=\"logoWithMessageDiv\">\r\n <img\r\n key={transformMediaUrl(chatbot.appearance.images.popupChat, 70)}\r\n src={transformMediaUrl(chatbot.appearance.images.popupChat, 70)}\r\n alt=\"Bot\"\r\n // crossOrigin=\"anonymous\"\r\n />\r\n </div>\r\n ))}\r\n <div\r\n className={`messageDiv ${\r\n message.owner === \"user\" ? \"mySelfTextDiv\" : \"\"\r\n }`}\r\n >\r\n <div className=\"NameAndDate\">\r\n {message.owner !== \"user\" ? (\r\n <>\r\n {member?.user.name || \"AI\"} -{\" \"}\r\n {beautifyPastDate(message.createdAt)}\r\n </>\r\n ) : (\r\n beautifyPastDate(message.createdAt)\r\n )}\r\n </div>\r\n\r\n {isImage && message.data.file && (\r\n <a\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n href={message.data.file.url}\r\n style={{ borderRadius: \"5px\" }}\r\n >\r\n <img\r\n key={message.data.file.url}\r\n src={message.data.file.url}\r\n style={{ height: \"80px\" }}\r\n // crossOrigin=\"anonymous\"\r\n alt=\"Image\"\r\n />\r\n </a>\r\n )}\r\n\r\n {isVideo && message.data.file && (\r\n <a\r\n target=\"_blank\"\r\n rel=\"noopener noreferrer\"\r\n href={message.data.file.url}\r\n style={{ borderRadius: \"5px\" }}\r\n >\r\n <video\r\n src={message.data.file.url}\r\n style={{ height: \"80px\" }}\r\n // crossOrigin=\"anonymous\"\r\n controls\r\n >\r\n Video\r\n </video>\r\n </a>\r\n )}\r\n {htmlContent && (\r\n <div\r\n className=\"messageP markdownText\"\r\n dangerouslySetInnerHTML={{ __html: htmlContent }}\r\n />\r\n )}\r\n\r\n <div className=\"sources\">\r\n {message.data.file && !isImage && !isVideo && (\r\n <a target=\"_blank\" href={message.data.file.url}>\r\n {message.data.file.name}\r\n </a>\r\n )}\r\n {AIControlNode?.data.replySource.value &&\r\n limitedSources.length > 0 &&\r\n limitedSources.map((source: string, i: number) => (\r\n <a key={`${source}-${i}`} target=\"_blank\" href={source}>\r\n {source}\r\n </a>\r\n ))}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport const MessagesLoading: FunctionalComponent<LoadingProps> = ({\r\n chatbot,\r\n}) => {\r\n return (\r\n <div className=\"messagesLoading\">\r\n <div>\r\n <LoadingIcon className=\"base-color\" />\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport const HoveringMessageInner: FunctionalComponent<\r\n HoveringMessageProps\r\n> = ({ hoveringMessageInner, chatbot }) => {\r\n return (\r\n <div className=\"hoveringMessageInner\">\r\n {hoveringMessageInner.data.map((message: any, i: number) => (\r\n <div key={i} onClick={() => hoveringMessageInner.onClick(message)}>\r\n {message.message}\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n};\r\n\r\nexport const ShowFile: FunctionalComponent<ShowFileProps> = ({\r\n file,\r\n setFile,\r\n chatbot,\r\n}) => {\r\n return (\r\n <div className=\"hoveringMessageInner\">\r\n <div onClick={() => setFile(null)}>\r\n <XIcon className=\"base-text-color\" width=\"16\" height=\"16\" />\r\n {file.name}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\n// MARK: Chat Hovering Messages\r\n\r\nexport const ChatHoveringMessages: FunctionalComponent<\r\n ChatHoveringMessagesProps\r\n> = ({\r\n showHoveringMessage,\r\n hoveringMessages,\r\n chatbot,\r\n setShowHoveringMessage,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n node,\r\n setChatOpen,\r\n}) => {\r\n const [loading, setLoading] = useState(false);\r\n const { token } = coreState;\r\n const {\r\n newMessage,\r\n setNewMessage,\r\n setCurrentConversation,\r\n conversations,\r\n setConversations,\r\n } = conversationState;\r\n const { callChatFlowRef, chatOpen } = uiState;\r\n\r\n const showLatestMessage = node?.data.popupMessage.value && newMessage;\r\n\r\n const handleClose = () => {\r\n setNewMessage(null);\r\n setShowHoveringMessage(false);\r\n };\r\n\r\n const member =\r\n newMessage?.owner === \"agent\"\r\n ? chatbot.teamMembers.members.find(\r\n (m: any) => m.user._id === newMessage.ownerId,\r\n )?.user\r\n : null;\r\n\r\n const handleOpenConversation = () => {\r\n setShowHoveringMessage(false);\r\n setNewMessage(null);\r\n const conversation = conversations.find(\r\n (conv) => newMessage?.conversationId === conv._id,\r\n );\r\n if (conversation) {\r\n callChatFlowRef.current = true;\r\n setCurrentConversation(conversation);\r\n setChatOpen(true);\r\n }\r\n };\r\n\r\n const UserImage = member?.profilePicture ? (\r\n <div className=\"headerImageWrapper\">\r\n <img\r\n key={transformMediaUrl(member.profilePicture, 70)}\r\n src={transformMediaUrl(member.profilePicture, 70)}\r\n width=\"100%\"\r\n alt=\"Profile\"\r\n style={{ borderRadius: \"50%\" }}\r\n // crossOrigin=\"anonymous\"\r\n />\r\n </div>\r\n ) : (\r\n <div className=\"headerImageWrapper\">\r\n <UserIcon className=\"background-text-color\" />\r\n </div>\r\n );\r\n\r\n if (\r\n !(\r\n (showHoveringMessage && hoveringMessages?.length > 0) ||\r\n showLatestMessage\r\n ) ||\r\n chatOpen\r\n ) {\r\n return null;\r\n }\r\n\r\n return (\r\n <div className=\"chatHoveringMessages\">\r\n <div onClick={handleClose} className=\"chatHoveringMessage closeMessages\">\r\n {loading ? (\r\n <div className=\"loadingIcon\">\r\n <div style={{ width: \"16px\", height: \"16px\" }}>\r\n <LoadingIcon className=\"background-text-color\" />\r\n </div>\r\n </div>\r\n ) : (\r\n <XIcon className=\"background-text-color\" width=\"16px\" height=\"16px\" />\r\n )}\r\n </div>\r\n\r\n {showLatestMessage && (\r\n <div className=\"chatHoveringMessage\" onClick={handleOpenConversation}>\r\n <div className=\"chatHoveringMessageUser\">\r\n {UserImage}\r\n {newMessage.owner === \"agent\" ? member?.name : \"AI\"}\r\n </div>\r\n <div\r\n style={{\r\n maxWidth: \"300px\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n }}\r\n >\r\n {newMessage.data.text}\r\n </div>\r\n </div>\r\n )}\r\n\r\n {!showLatestMessage &&\r\n showHoveringMessage &&\r\n hoveringMessages?.map((hoveringMessage: any, i: number) => (\r\n <ChatHoveringMessage\r\n key={i}\r\n hoveringMessage={hoveringMessage}\r\n chatbot={chatbot}\r\n loading={loading}\r\n setLoading={setLoading}\r\n coreState={coreState}\r\n conversationState={conversationState}\r\n uiState={uiState}\r\n setShowHoveringMessage={setShowHoveringMessage}\r\n token={token!}\r\n node={node}\r\n setChatOpen={setChatOpen}\r\n conversations={conversations}\r\n setConversations={setConversations}\r\n setCurrentConversation={setCurrentConversation}\r\n callChatFlowRef={callChatFlowRef}\r\n />\r\n ))}\r\n </div>\r\n );\r\n};\r\n\r\ninterface ChatHoveringMessageProps {\r\n hoveringMessage: any;\r\n chatbot: any;\r\n loading: boolean;\r\n setLoading: (loading: boolean) => void;\r\n coreState: CoreStateContext;\r\n conversationState: ConversationStateContext;\r\n uiState: UIStateContext;\r\n setShowHoveringMessage: (show: boolean) => void;\r\n token: string;\r\n node: any;\r\n setChatOpen: (open: boolean) => void;\r\n setConversations: (conversations: Conversation[]) => void;\r\n conversations: Conversation[];\r\n setCurrentConversation: (conv: Conversation) => void;\r\n callChatFlowRef: any;\r\n}\r\n\r\nconst ChatHoveringMessage: FunctionalComponent<ChatHoveringMessageProps> = ({\r\n hoveringMessage,\r\n chatbot,\r\n loading,\r\n setLoading,\r\n setShowHoveringMessage,\r\n token,\r\n node,\r\n setChatOpen,\r\n setConversations,\r\n conversations,\r\n setCurrentConversation,\r\n callChatFlowRef,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n}) => {\r\n const handleOnClick = async () => {\r\n if (loading) return;\r\n\r\n setLoading(true);\r\n\r\n let payload: any = {};\r\n if (hoveringMessage.type === \"query\") {\r\n payload.chatflow = { key: \"end\", index: 0 };\r\n } else {\r\n const edge = chatbot.chatflow.edges.find(\r\n (e: any) => e.sourceHandle === hoveringMessage.id,\r\n );\r\n if (!edge) {\r\n setLoading(false);\r\n return;\r\n }\r\n payload.nodeId = edge.target;\r\n }\r\n\r\n try {\r\n const response = await ConversationService.userCreate(\r\n {\r\n body: payload,\r\n },\r\n token!,\r\n );\r\n\r\n if (!response.data) throw new Error(\"Conversation creation failed\");\r\n\r\n const newConversation = response.data;\r\n setConversations([...conversations, newConversation]);\r\n\r\n if (hoveringMessage.type === \"query\") {\r\n const startNode = chatbot.chatflow.nodes.find(\r\n (n: any) => n.id === newConversation.currentNode,\r\n );\r\n if (startNode) {\r\n uiState.humanControl = startNode.data.control.type === \"human\";\r\n }\r\n\r\n await handleSendMessage({\r\n coreState,\r\n conversationState,\r\n uiState,\r\n userMessage: hoveringMessage.query,\r\n setUserMessage: () => {},\r\n file: null,\r\n setFile: () => {},\r\n showToast: () => {},\r\n latestCurrentConversation: newConversation,\r\n });\r\n\r\n setCurrentConversation(newConversation);\r\n } else {\r\n callChatFlowRef.current = true;\r\n setCurrentConversation(newConversation);\r\n }\r\n\r\n setShowHoveringMessage(false);\r\n setChatOpen(true);\r\n } catch (error) {\r\n console.error(\"Chat hovering message error:\", error);\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const member = hoveringMessage.showUser\r\n ? chatbot.teamMembers.members.find(\r\n (m: any) => m.user._id === hoveringMessage?.user?._id,\r\n )?.user\r\n : null;\r\n\r\n return (\r\n <div className=\"chatHoveringMessage\" onClick={handleOnClick}>\r\n {hoveringMessage.showUser && member && (\r\n <div className=\"chatHoveringMessageUser\">\r\n <div>\r\n {member.profilePicture ? (\r\n <img\r\n key={transformMediaUrl(member.profilePicture, 70)}\r\n src={transformMediaUrl(member.profilePicture, 70)}\r\n // alt=\"User\"\r\n crossOrigin=\"anonymous\"\r\n />\r\n ) : (\r\n <UserIcon className=\"input-background-color\" />\r\n )}\r\n </div>\r\n {hoveringMessage.title}\r\n </div>\r\n )}\r\n <div>{hoveringMessage.message}</div>\r\n </div>\r\n );\r\n};\r\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as l,createRef as c,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useState as a,useLayoutEffect as s,useEffect as h,useCallback as v,useContext as d,useDebugValue as m,useId as p,useImperativeHandle as y,useMemo as _,useReducer as b,useRef as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function E(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function C(n,t){var e=t(),r=a({t:{__:e,u:t}}),u=r[0].t,o=r[1];return s(function(){u.__=e,u.u=t,x(u)&&o({t:u})},[n,e,t]),h(function(){return x(u)&&o({t:u}),n(function(){x(u)&&o({t:u})})},[n]),e}function x(n){var t,e,r=n.u,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}function R(n){n()}function w(n){return n}function k(){return[!1,R]}var I=s;function N(n,t){this.props=n,this.context=t}function M(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u.type=n,u}(N.prototype=new n).isPureReactComponent=!0,N.prototype.shouldComponentUpdate=function(n,t){return E(this.props,n)||E(this.state,t)};var T=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),T&&T(n)};var A=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function D(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=A,t.render=n,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var L=function(n,t){return null==n?null:r(r(n).map(t))},O={map:L,forEach:L,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},F=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);F(n,t,e,r)};var U=e.unmount;function V(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c.__e=!0,n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return V(n,t,e)})),n}function W(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return W(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function P(){this.__u=0,this.o=null,this.__b=null}function j(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function z(n){var e,r,u,o=null;function i(i){if(e||(e=n()).then(function(n){n&&(o=n.default||n),u=!0},function(n){r=n,u=!0}),r)throw r;if(!u)throw e;return o?t(o,i):null}return i.displayName=\"Lazy\",i.__f=!0,i}function B(){this.i=null,this.l=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),U&&U(n)},(P.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.o&&(r.o=[]),r.o.push(e);var u=j(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=W(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},P.prototype.componentWillUnmount=function(){this.o=[]},P.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=V(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__u&=-33),[t(u,null,e.__a?null:n.children),i]};var H=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.i=e=e[2]}};function Z(n){return this.getChildContext=function(){return n.context},n.children}function Y(n){var e=this,r=n.h;if(e.componentWillUnmount=function(){o(null,e.v),e.v=null,e.h=null},e.h&&e.h!==r&&e.componentWillUnmount(),!e.v){for(var u=e.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;e.h=r,e.v={nodeType:1,parentNode:r,childNodes:[],__k:{__m:u.__m},contains:function(){return!0},insertBefore:function(n,t){this.childNodes.push(n),e.h.insertBefore(n,t)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.h.removeChild(n)}}}o(t(Z,{context:e.context},n.__v),e.v)}function $(n,e){var r=t(Y,{__v:n,h:e});return r.containerInfo=e,r}(B.prototype=new n).__a=function(n){var t=this,e=j(t.__v),r=t.l.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),H(t,n,r)):u()};e?e(o):o()}},B.prototype.render=function(n){this.i=null,this.l=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.l.set(t[e],this.i=[1,0,this.i]);return n.children},B.prototype.componentDidUpdate=B.prototype.componentDidMount=function(){var n=this;this.l.forEach(function(t,e){H(n,e,t)})};var q=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,G=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,J=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,K=/[A-Z0-9]/g,Q=\"undefined\"!=typeof document,X=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function nn(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function tn(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var en=e.event;function rn(){}function un(){return this.cancelBubble}function on(){return this.defaultPrevented}e.event=function(n){return en&&(n=en(n)),n.persist=rn,n.isPropagationStopped=un,n.isDefaultPrevented=on,n.nativeEvent=n};var ln,cn={enumerable:!1,configurable:!0,get:function(){return this.class}},fn=e.vnode;e.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={},o=-1===e.indexOf(\"-\");for(var i in t){var l=t[i];if(!(\"value\"===i&&\"defaultValue\"in t&&null==l||Q&&\"children\"===i&&\"noscript\"===e||\"class\"===i||\"className\"===i)){var c=i.toLowerCase();\"defaultValue\"===i&&\"value\"in t&&null==t.value?i=\"value\":\"download\"===i&&!0===l?l=\"\":\"translate\"===c&&\"no\"===l?l=!1:\"o\"===c[0]&&\"n\"===c[1]?\"ondoubleclick\"===c?i=\"ondblclick\":\"onchange\"!==c||\"input\"!==e&&\"textarea\"!==e||X(t.type)?\"onfocus\"===c?i=\"onfocusin\":\"onblur\"===c?i=\"onfocusout\":J.test(i)&&(i=c):c=i=\"oninput\":o&&G.test(i)?i=i.replace(K,\"-$&\").toLowerCase():null===l&&(l=void 0),\"oninput\"===c&&u[i=c]&&(i=\"oninputCapture\"),u[i]=l}}\"select\"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=r(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==e&&null!=u.defaultValue&&(u.value=r(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",cn)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=q,fn&&fn(n)};var an=e.__r;e.__r=function(n){an&&an(n),ln=n.__c};var sn=e.diffed;e.diffed=function(n){sn&&sn(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),ln=null};var hn={ReactCurrentDispatcher:{current:{readContext:function(n){return ln.__n[n.__c].props.value},useCallback:v,useContext:d,useDebugValue:m,useDeferredValue:w,useEffect:h,useId:p,useImperativeHandle:y,useInsertionEffect:I,useLayoutEffect:s,useMemo:_,useReducer:b,useRef:S,useState:a,useSyncExternalStore:C,useTransition:k}}},vn=\"18.3.1\";function dn(n){return t.bind(null,n)}function mn(n){return!!n&&n.$$typeof===q}function pn(n){return mn(n)&&n.type===u}function yn(n){return!!n&&!!n.displayName&&(\"string\"==typeof n.displayName||n.displayName instanceof String)&&n.displayName.startsWith(\"Memo(\")}function _n(n){return mn(n)?f.apply(null,arguments):n}function bn(n){return!!n.__k&&(o(null,n),!0)}function Sn(n){return n&&(n.base||1===n.nodeType&&n)||null}var gn=function(n,t){return n(t)},En=function(n,t){return n(t)},Cn=u,xn=mn,Rn={useState:a,useId:p,useReducer:b,useEffect:h,useLayoutEffect:s,useInsertionEffect:I,useTransition:k,useDeferredValue:w,useSyncExternalStore:C,startTransition:R,useRef:S,useImperativeHandle:y,useMemo:_,useCallback:v,useContext:d,useDebugValue:m,version:\"18.3.1\",Children:O,render:nn,hydrate:tn,unmountComponentAtNode:bn,createPortal:$,createElement:t,createContext:l,createFactory:dn,cloneElement:_n,createRef:c,Fragment:u,isValidElement:mn,isElement:xn,isFragment:pn,isMemo:yn,findDOMNode:Sn,Component:n,PureComponent:N,memo:M,forwardRef:D,flushSync:En,unstable_batchedUpdates:gn,StrictMode:Cn,Suspense:P,SuspenseList:B,lazy:z,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:hn};export{O as Children,N as PureComponent,Cn as StrictMode,P as Suspense,B as SuspenseList,hn as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,_n as cloneElement,dn as createFactory,$ as createPortal,Rn as default,Sn as findDOMNode,En as flushSync,D as forwardRef,tn as hydrate,xn as isElement,pn as isFragment,yn as isMemo,mn as isValidElement,z as lazy,M as memo,nn as render,R as startTransition,bn as unmountComponentAtNode,gn as unstable_batchedUpdates,w as useDeferredValue,I as useInsertionEffect,C as useSyncExternalStore,k as useTransition,vn as version};\n//# sourceMappingURL=compat.module.js.map\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","function r(e){var o,t,f=\"\";if(\"string\"==typeof e||\"number\"==typeof e)f+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var n=e.length;for(o=0;o<n;o++)e[o]&&(t=r(e[o]))&&(f&&(f+=\" \"),f+=t)}else for(t in e)e[t]&&(f&&(f+=\" \"),f+=t);return f}function e(){for(var e,o,t=0,f=\"\",n=arguments.length;t<n;t++)(e=arguments[t])&&(o=r(e))&&(f&&(f+=\" \"),f+=o);return f}module.exports=e,module.exports.clsx=e;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.dontSetMe = dontSetMe;\nexports.findInArray = findInArray;\nexports.int = int;\nexports.isFunction = isFunction;\nexports.isNum = isNum;\n// @credits https://gist.github.com/rogozhnikoff/a43cfed27c41e4e68cdc\nfunction findInArray(array /*: Array<any> | TouchList*/, callback /*: Function*/) /*: any*/{\n for (let i = 0, length = array.length; i < length; i++) {\n if (callback.apply(callback, [array[i], i, array])) return array[i];\n }\n}\nfunction isFunction(func /*: any*/) /*: boolean %checks*/{\n // $FlowIgnore[method-unbinding]\n return typeof func === 'function' || Object.prototype.toString.call(func) === '[object Function]';\n}\nfunction isNum(num /*: any*/) /*: boolean %checks*/{\n return typeof num === 'number' && !isNaN(num);\n}\nfunction int(a /*: string*/) /*: number*/{\n return parseInt(a, 10);\n}\nfunction dontSetMe(props /*: Object*/, propName /*: string*/, componentName /*: string*/) /*: ?Error*/{\n if (props[propName]) {\n return new Error(`Invalid prop ${propName} passed to ${componentName} - do not set this, set it on the child.`);\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.browserPrefixToKey = browserPrefixToKey;\nexports.browserPrefixToStyle = browserPrefixToStyle;\nexports.default = void 0;\nexports.getPrefix = getPrefix;\nconst prefixes = ['Moz', 'Webkit', 'O', 'ms'];\nfunction getPrefix() /*: string*/{\n let prop /*: string*/ = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'transform';\n // Ensure we're running in an environment where there is actually a global\n // `window` obj\n if (typeof window === 'undefined') return '';\n\n // If we're in a pseudo-browser server-side environment, this access\n // path may not exist, so bail out if it doesn't.\n const style = window.document?.documentElement?.style;\n if (!style) return '';\n if (prop in style) return '';\n for (let i = 0; i < prefixes.length; i++) {\n if (browserPrefixToKey(prop, prefixes[i]) in style) return prefixes[i];\n }\n return '';\n}\nfunction browserPrefixToKey(prop /*: string*/, prefix /*: string*/) /*: string*/{\n return prefix ? `${prefix}${kebabToTitleCase(prop)}` : prop;\n}\nfunction browserPrefixToStyle(prop /*: string*/, prefix /*: string*/) /*: string*/{\n return prefix ? `-${prefix.toLowerCase()}-${prop}` : prop;\n}\nfunction kebabToTitleCase(str /*: string*/) /*: string*/{\n let out = '';\n let shouldCapitalize = true;\n for (let i = 0; i < str.length; i++) {\n if (shouldCapitalize) {\n out += str[i].toUpperCase();\n shouldCapitalize = false;\n } else if (str[i] === '-') {\n shouldCapitalize = true;\n } else {\n out += str[i];\n }\n }\n return out;\n}\n\n// Default export is the prefix itself, like 'Moz', 'Webkit', etc\n// Note that you may have to re-test for certain things; for instance, Chrome 50\n// can handle unprefixed `transform`, but not unprefixed `user-select`\nvar _default = exports.default = (getPrefix() /*: string*/);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.addClassName = addClassName;\nexports.addEvent = addEvent;\nexports.addUserSelectStyles = addUserSelectStyles;\nexports.createCSSTransform = createCSSTransform;\nexports.createSVGTransform = createSVGTransform;\nexports.getTouch = getTouch;\nexports.getTouchIdentifier = getTouchIdentifier;\nexports.getTranslation = getTranslation;\nexports.innerHeight = innerHeight;\nexports.innerWidth = innerWidth;\nexports.matchesSelector = matchesSelector;\nexports.matchesSelectorAndParentsTo = matchesSelectorAndParentsTo;\nexports.offsetXYFromParent = offsetXYFromParent;\nexports.outerHeight = outerHeight;\nexports.outerWidth = outerWidth;\nexports.removeClassName = removeClassName;\nexports.removeEvent = removeEvent;\nexports.scheduleRemoveUserSelectStyles = scheduleRemoveUserSelectStyles;\nvar _shims = require(\"./shims\");\nvar _getPrefix = _interopRequireWildcard(require(\"./getPrefix\"));\nfunction _interopRequireWildcard(e, t) { if (\"function\" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) \"default\" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }\n/*:: import type {ControlPosition, PositionOffsetControlPosition, MouseTouchEvent} from './types';*/\nlet matchesSelectorFunc = '';\nfunction matchesSelector(el /*: Node*/, selector /*: string*/) /*: boolean*/{\n if (!matchesSelectorFunc) {\n matchesSelectorFunc = (0, _shims.findInArray)(['matches', 'webkitMatchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector'], function (method) {\n // $FlowIgnore: Doesn't think elements are indexable\n return (0, _shims.isFunction)(el[method]);\n });\n }\n\n // Might not be found entirely (not an Element?) - in that case, bail\n // $FlowIgnore: Doesn't think elements are indexable\n if (!(0, _shims.isFunction)(el[matchesSelectorFunc])) return false;\n\n // $FlowIgnore: Doesn't think elements are indexable\n return el[matchesSelectorFunc](selector);\n}\n\n// Works up the tree to the draggable itself attempting to match selector.\nfunction matchesSelectorAndParentsTo(el /*: Node*/, selector /*: string*/, baseNode /*: Node*/) /*: boolean*/{\n let node = el;\n do {\n if (matchesSelector(node, selector)) return true;\n if (node === baseNode) return false;\n // $FlowIgnore[incompatible-type]\n node = node.parentNode;\n } while (node);\n return false;\n}\nfunction addEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{\n if (!el) return;\n const options = {\n capture: true,\n ...inputOptions\n };\n // $FlowIgnore[method-unbinding]\n if (el.addEventListener) {\n el.addEventListener(event, handler, options);\n } else if (el.attachEvent) {\n el.attachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = handler;\n }\n}\nfunction removeEvent(el /*: ?Node*/, event /*: string*/, handler /*: Function*/, inputOptions /*: Object*/) /*: void*/{\n if (!el) return;\n const options = {\n capture: true,\n ...inputOptions\n };\n // $FlowIgnore[method-unbinding]\n if (el.removeEventListener) {\n el.removeEventListener(event, handler, options);\n } else if (el.detachEvent) {\n el.detachEvent('on' + event, handler);\n } else {\n // $FlowIgnore: Doesn't think elements are indexable\n el['on' + event] = null;\n }\n}\nfunction outerHeight(node /*: HTMLElement*/) /*: number*/{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetTop which is including margin. See getBoundPosition\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height += (0, _shims.int)(computedStyle.borderTopWidth);\n height += (0, _shims.int)(computedStyle.borderBottomWidth);\n return height;\n}\nfunction outerWidth(node /*: HTMLElement*/) /*: number*/{\n // This is deliberately excluding margin for our calculations, since we are using\n // offsetLeft which is including margin. See getBoundPosition\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width += (0, _shims.int)(computedStyle.borderLeftWidth);\n width += (0, _shims.int)(computedStyle.borderRightWidth);\n return width;\n}\nfunction innerHeight(node /*: HTMLElement*/) /*: number*/{\n let height = node.clientHeight;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n height -= (0, _shims.int)(computedStyle.paddingTop);\n height -= (0, _shims.int)(computedStyle.paddingBottom);\n return height;\n}\nfunction innerWidth(node /*: HTMLElement*/) /*: number*/{\n let width = node.clientWidth;\n const computedStyle = node.ownerDocument.defaultView.getComputedStyle(node);\n width -= (0, _shims.int)(computedStyle.paddingLeft);\n width -= (0, _shims.int)(computedStyle.paddingRight);\n return width;\n}\n/*:: interface EventWithOffset {\n clientX: number, clientY: number\n}*/\n// Get from offsetParent\nfunction offsetXYFromParent(evt /*: EventWithOffset*/, offsetParent /*: HTMLElement*/, scale /*: number*/) /*: ControlPosition*/{\n const isBody = offsetParent === offsetParent.ownerDocument.body;\n const offsetParentRect = isBody ? {\n left: 0,\n top: 0\n } : offsetParent.getBoundingClientRect();\n const x = (evt.clientX + offsetParent.scrollLeft - offsetParentRect.left) / scale;\n const y = (evt.clientY + offsetParent.scrollTop - offsetParentRect.top) / scale;\n return {\n x,\n y\n };\n}\nfunction createCSSTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: Object*/{\n const translation = getTranslation(controlPos, positionOffset, 'px');\n return {\n [(0, _getPrefix.browserPrefixToKey)('transform', _getPrefix.default)]: translation\n };\n}\nfunction createSVGTransform(controlPos /*: ControlPosition*/, positionOffset /*: PositionOffsetControlPosition*/) /*: string*/{\n const translation = getTranslation(controlPos, positionOffset, '');\n return translation;\n}\nfunction getTranslation(_ref /*:: */, positionOffset /*: PositionOffsetControlPosition*/, unitSuffix /*: string*/) /*: string*/{\n let {\n x,\n y\n } /*: ControlPosition*/ = _ref /*: ControlPosition*/;\n let translation = `translate(${x}${unitSuffix},${y}${unitSuffix})`;\n if (positionOffset) {\n const defaultX = `${typeof positionOffset.x === 'string' ? positionOffset.x : positionOffset.x + unitSuffix}`;\n const defaultY = `${typeof positionOffset.y === 'string' ? positionOffset.y : positionOffset.y + unitSuffix}`;\n translation = `translate(${defaultX}, ${defaultY})` + translation;\n }\n return translation;\n}\nfunction getTouch(e /*: MouseTouchEvent*/, identifier /*: number*/) /*: ?{clientX: number, clientY: number}*/{\n return e.targetTouches && (0, _shims.findInArray)(e.targetTouches, t => identifier === t.identifier) || e.changedTouches && (0, _shims.findInArray)(e.changedTouches, t => identifier === t.identifier);\n}\nfunction getTouchIdentifier(e /*: MouseTouchEvent*/) /*: ?number*/{\n if (e.targetTouches && e.targetTouches[0]) return e.targetTouches[0].identifier;\n if (e.changedTouches && e.changedTouches[0]) return e.changedTouches[0].identifier;\n}\n\n// User-select Hacks:\n//\n// Useful for preventing blue highlights all over everything when dragging.\n\n// Note we're passing `document` b/c we could be iframed\nfunction addUserSelectStyles(doc /*: ?Document*/) {\n if (!doc) return;\n let styleEl = doc.getElementById('react-draggable-style-el');\n if (!styleEl) {\n styleEl = doc.createElement('style');\n styleEl.type = 'text/css';\n styleEl.id = 'react-draggable-style-el';\n styleEl.innerHTML = '.react-draggable-transparent-selection *::-moz-selection {all: inherit;}\\n';\n styleEl.innerHTML += '.react-draggable-transparent-selection *::selection {all: inherit;}\\n';\n doc.getElementsByTagName('head')[0].appendChild(styleEl);\n }\n if (doc.body) addClassName(doc.body, 'react-draggable-transparent-selection');\n}\nfunction scheduleRemoveUserSelectStyles(doc /*: ?Document*/) {\n // Prevent a possible \"forced reflow\"\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(() => {\n removeUserSelectStyles(doc);\n });\n } else {\n removeUserSelectStyles(doc);\n }\n}\nfunction removeUserSelectStyles(doc /*: ?Document*/) {\n if (!doc) return;\n try {\n if (doc.body) removeClassName(doc.body, 'react-draggable-transparent-selection');\n // $FlowIgnore: IE\n if (doc.selection) {\n // $FlowIgnore: IE\n doc.selection.empty();\n } else {\n // Remove selection caused by scroll, unless it's a focused input\n // (we use doc.defaultView in case we're in an iframe)\n const selection = (doc.defaultView || window).getSelection();\n if (selection && selection.type !== 'Caret') {\n selection.removeAllRanges();\n }\n }\n } catch (e) {\n // probably IE\n }\n}\nfunction addClassName(el /*: HTMLElement*/, className /*: string*/) {\n if (el.classList) {\n el.classList.add(className);\n } else {\n if (!el.className.match(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`))) {\n el.className += ` ${className}`;\n }\n }\n}\nfunction removeClassName(el /*: HTMLElement*/, className /*: string*/) {\n if (el.classList) {\n el.classList.remove(className);\n } else {\n el.className = el.className.replace(new RegExp(`(?:^|\\\\s)${className}(?!\\\\S)`, 'g'), '');\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.canDragX = canDragX;\nexports.canDragY = canDragY;\nexports.createCoreData = createCoreData;\nexports.createDraggableData = createDraggableData;\nexports.getBoundPosition = getBoundPosition;\nexports.getControlPosition = getControlPosition;\nexports.snapToGrid = snapToGrid;\nvar _shims = require(\"./shims\");\nvar _domFns = require(\"./domFns\");\n/*:: import type Draggable from '../Draggable';*/\n/*:: import type {Bounds, ControlPosition, DraggableData, MouseTouchEvent} from './types';*/\n/*:: import type DraggableCore from '../DraggableCore';*/\nfunction getBoundPosition(draggable /*: Draggable*/, x /*: number*/, y /*: number*/) /*: [number, number]*/{\n // If no bounds, short-circuit and move on\n if (!draggable.props.bounds) return [x, y];\n\n // Clone new bounds\n let {\n bounds\n } = draggable.props;\n bounds = typeof bounds === 'string' ? bounds : cloneBounds(bounds);\n const node = findDOMNode(draggable);\n if (typeof bounds === 'string') {\n const {\n ownerDocument\n } = node;\n const ownerWindow = ownerDocument.defaultView;\n let boundNode;\n if (bounds === 'parent') {\n boundNode = node.parentNode;\n } else {\n // Flow assigns the wrong return type (Node) for getRootNode(),\n // so we cast it to one of the correct types (Element).\n // The others are Document and ShadowRoot.\n // All three implement querySelector() so it's safe to call.\n const rootNode = ((node.getRootNode() /*: any*/) /*: Element*/);\n boundNode = rootNode.querySelector(bounds);\n }\n if (!(boundNode instanceof ownerWindow.HTMLElement)) {\n throw new Error('Bounds selector \"' + bounds + '\" could not find an element.');\n }\n const boundNodeEl /*: HTMLElement*/ = boundNode; // for Flow, can't seem to refine correctly\n const nodeStyle = ownerWindow.getComputedStyle(node);\n const boundNodeStyle = ownerWindow.getComputedStyle(boundNodeEl);\n // Compute bounds. This is a pain with padding and offsets but this gets it exactly right.\n bounds = {\n left: -node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingLeft) + (0, _shims.int)(nodeStyle.marginLeft),\n top: -node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingTop) + (0, _shims.int)(nodeStyle.marginTop),\n right: (0, _domFns.innerWidth)(boundNodeEl) - (0, _domFns.outerWidth)(node) - node.offsetLeft + (0, _shims.int)(boundNodeStyle.paddingRight) - (0, _shims.int)(nodeStyle.marginRight),\n bottom: (0, _domFns.innerHeight)(boundNodeEl) - (0, _domFns.outerHeight)(node) - node.offsetTop + (0, _shims.int)(boundNodeStyle.paddingBottom) - (0, _shims.int)(nodeStyle.marginBottom)\n };\n }\n\n // Keep x and y below right and bottom limits...\n if ((0, _shims.isNum)(bounds.right)) x = Math.min(x, bounds.right);\n if ((0, _shims.isNum)(bounds.bottom)) y = Math.min(y, bounds.bottom);\n\n // But above left and top limits.\n if ((0, _shims.isNum)(bounds.left)) x = Math.max(x, bounds.left);\n if ((0, _shims.isNum)(bounds.top)) y = Math.max(y, bounds.top);\n return [x, y];\n}\nfunction snapToGrid(grid /*: [number, number]*/, pendingX /*: number*/, pendingY /*: number*/) /*: [number, number]*/{\n const x = Math.round(pendingX / grid[0]) * grid[0];\n const y = Math.round(pendingY / grid[1]) * grid[1];\n return [x, y];\n}\nfunction canDragX(draggable /*: Draggable*/) /*: boolean*/{\n return draggable.props.axis === 'both' || draggable.props.axis === 'x';\n}\nfunction canDragY(draggable /*: Draggable*/) /*: boolean*/{\n return draggable.props.axis === 'both' || draggable.props.axis === 'y';\n}\n\n// Get {x, y} positions from event.\nfunction getControlPosition(e /*: MouseTouchEvent*/, touchIdentifier /*: ?number*/, draggableCore /*: DraggableCore*/) /*: ?ControlPosition*/{\n const touchObj = typeof touchIdentifier === 'number' ? (0, _domFns.getTouch)(e, touchIdentifier) : null;\n if (typeof touchIdentifier === 'number' && !touchObj) return null; // not the right touch\n const node = findDOMNode(draggableCore);\n // User can provide an offsetParent if desired.\n const offsetParent = draggableCore.props.offsetParent || node.offsetParent || node.ownerDocument.body;\n return (0, _domFns.offsetXYFromParent)(touchObj || e, offsetParent, draggableCore.props.scale);\n}\n\n// Create an data object exposed by <DraggableCore>'s events\nfunction createCoreData(draggable /*: DraggableCore*/, x /*: number*/, y /*: number*/) /*: DraggableData*/{\n const isStart = !(0, _shims.isNum)(draggable.lastX);\n const node = findDOMNode(draggable);\n if (isStart) {\n // If this is our first move, use the x and y as last coords.\n return {\n node,\n deltaX: 0,\n deltaY: 0,\n lastX: x,\n lastY: y,\n x,\n y\n };\n } else {\n // Otherwise calculate proper values.\n return {\n node,\n deltaX: x - draggable.lastX,\n deltaY: y - draggable.lastY,\n lastX: draggable.lastX,\n lastY: draggable.lastY,\n x,\n y\n };\n }\n}\n\n// Create an data exposed by <Draggable>'s events\nfunction createDraggableData(draggable /*: Draggable*/, coreData /*: DraggableData*/) /*: DraggableData*/{\n const scale = draggable.props.scale;\n return {\n node: coreData.node,\n x: draggable.state.x + coreData.deltaX / scale,\n y: draggable.state.y + coreData.deltaY / scale,\n deltaX: coreData.deltaX / scale,\n deltaY: coreData.deltaY / scale,\n lastX: draggable.state.x,\n lastY: draggable.state.y\n };\n}\n\n// A lot faster than stringify/parse\nfunction cloneBounds(bounds /*: Bounds*/) /*: Bounds*/{\n return {\n left: bounds.left,\n top: bounds.top,\n right: bounds.right,\n bottom: bounds.bottom\n };\n}\nfunction findDOMNode(draggable /*: Draggable | DraggableCore*/) /*: HTMLElement*/{\n const node = draggable.findDOMNode();\n if (!node) {\n throw new Error('<DraggableCore>: Unmounted during event!');\n }\n // $FlowIgnore we can't assert on HTMLElement due to tests... FIXME\n return node;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = log;\n/*eslint no-console:0*/\nfunction log() {\n if (undefined) console.log(...arguments);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\nvar _domFns = require(\"./utils/domFns\");\nvar _positionFns = require(\"./utils/positionFns\");\nvar _shims = require(\"./utils/shims\");\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _interopRequireWildcard(e, t) { if (\"function\" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) \"default\" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/*:: import type {EventHandler, MouseTouchEvent} from './utils/types';*/\n/*:: import type {Element as ReactElement} from 'react';*/\n// Simple abstraction for dragging events names.\nconst eventsFor = {\n touch: {\n start: 'touchstart',\n move: 'touchmove',\n stop: 'touchend'\n },\n mouse: {\n start: 'mousedown',\n move: 'mousemove',\n stop: 'mouseup'\n }\n};\n\n// Default to mouse events.\nlet dragEventFor = eventsFor.mouse;\n/*:: export type DraggableData = {\n node: HTMLElement,\n x: number, y: number,\n deltaX: number, deltaY: number,\n lastX: number, lastY: number,\n};*/\n/*:: export type DraggableEventHandler = (e: MouseEvent, data: DraggableData) => void | false;*/\n/*:: export type ControlPosition = {x: number, y: number};*/\n/*:: export type PositionOffsetControlPosition = {x: number|string, y: number|string};*/\n/*:: export type DraggableCoreDefaultProps = {\n allowAnyClick: boolean,\n allowMobileScroll: boolean,\n disabled: boolean,\n enableUserSelectHack: boolean,\n onStart: DraggableEventHandler,\n onDrag: DraggableEventHandler,\n onStop: DraggableEventHandler,\n onMouseDown: (e: MouseEvent) => void,\n scale: number,\n};*/\n/*:: export type DraggableCoreProps = {\n ...DraggableCoreDefaultProps,\n cancel: string,\n children: ReactElement<any>,\n offsetParent: HTMLElement,\n grid: [number, number],\n handle: string,\n nodeRef?: ?React.ElementRef<any>,\n};*/\n//\n// Define <DraggableCore>.\n//\n// <DraggableCore> is for advanced usage of <Draggable>. It maintains minimal internal state so it can\n// work well with libraries that require more control over the element.\n//\n\nclass DraggableCore extends React.Component /*:: <DraggableCoreProps>*/{\n constructor() {\n super(...arguments);\n _defineProperty(this, \"dragging\", false);\n // Used while dragging to determine deltas.\n _defineProperty(this, \"lastX\", NaN);\n _defineProperty(this, \"lastY\", NaN);\n _defineProperty(this, \"touchIdentifier\", null);\n _defineProperty(this, \"mounted\", false);\n _defineProperty(this, \"handleDragStart\", e => {\n // Make it possible to attach event handlers on top of this one.\n this.props.onMouseDown(e);\n\n // Only accept left-clicks.\n if (!this.props.allowAnyClick && typeof e.button === 'number' && e.button !== 0) return false;\n\n // Get nodes. Be sure to grab relative document (could be iframed)\n const thisNode = this.findDOMNode();\n if (!thisNode || !thisNode.ownerDocument || !thisNode.ownerDocument.body) {\n throw new Error('<DraggableCore> not mounted on DragStart!');\n }\n const {\n ownerDocument\n } = thisNode;\n\n // Short circuit if handle or cancel prop was provided and selector doesn't match.\n if (this.props.disabled || !(e.target instanceof ownerDocument.defaultView.Node) || this.props.handle && !(0, _domFns.matchesSelectorAndParentsTo)(e.target, this.props.handle, thisNode) || this.props.cancel && (0, _domFns.matchesSelectorAndParentsTo)(e.target, this.props.cancel, thisNode)) {\n return;\n }\n\n // Prevent scrolling on mobile devices, like ipad/iphone.\n // Important that this is after handle/cancel.\n if (e.type === 'touchstart' && !this.props.allowMobileScroll) e.preventDefault();\n\n // Set touch identifier in component state if this is a touch event. This allows us to\n // distinguish between individual touches on multitouch screens by identifying which\n // touchpoint was set to this element.\n const touchIdentifier = (0, _domFns.getTouchIdentifier)(e);\n this.touchIdentifier = touchIdentifier;\n\n // Get the current drag point from the event. This is used as the offset.\n const position = (0, _positionFns.getControlPosition)(e, touchIdentifier, this);\n if (position == null) return; // not possible but satisfies flow\n const {\n x,\n y\n } = position;\n\n // Create an event object with all the data parents need to make a decision here.\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n (0, _log.default)('DraggableCore: handleDragStart: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, cancel.\n (0, _log.default)('calling', this.props.onStart);\n const shouldUpdate = this.props.onStart(e, coreEvent);\n if (shouldUpdate === false || this.mounted === false) return;\n\n // Add a style to the body to disable user-select. This prevents text from\n // being selected all over the page.\n if (this.props.enableUserSelectHack) (0, _domFns.addUserSelectStyles)(ownerDocument);\n\n // Initiate dragging. Set the current x and y as offsets\n // so we know how much we've moved during the drag. This allows us\n // to drag elements around even if they have been moved, without issue.\n this.dragging = true;\n this.lastX = x;\n this.lastY = y;\n\n // Add events to the document directly so we catch when the user's mouse/touch moves outside of\n // this element. We use different events depending on whether or not we have detected that this\n // is a touch-capable device.\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.move, this.handleDrag);\n (0, _domFns.addEvent)(ownerDocument, dragEventFor.stop, this.handleDragStop);\n });\n _defineProperty(this, \"handleDrag\", e => {\n // Get the current drag point from the event. This is used as the offset.\n const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);\n if (position == null) return;\n let {\n x,\n y\n } = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.lastX,\n deltaY = y - this.lastY;\n [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);\n if (!deltaX && !deltaY) return; // skip useless drag\n x = this.lastX + deltaX, y = this.lastY + deltaY;\n }\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n (0, _log.default)('DraggableCore: handleDrag: %j', coreEvent);\n\n // Call event handler. If it returns explicit false, trigger end.\n const shouldUpdate = this.props.onDrag(e, coreEvent);\n if (shouldUpdate === false || this.mounted === false) {\n try {\n // $FlowIgnore\n this.handleDragStop(new MouseEvent('mouseup'));\n } catch (err) {\n // Old browsers\n const event = ((document.createEvent('MouseEvents') /*: any*/) /*: MouseTouchEvent*/);\n // I see why this insanity was deprecated\n // $FlowIgnore\n event.initMouseEvent('mouseup', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);\n this.handleDragStop(event);\n }\n return;\n }\n this.lastX = x;\n this.lastY = y;\n });\n _defineProperty(this, \"handleDragStop\", e => {\n if (!this.dragging) return;\n const position = (0, _positionFns.getControlPosition)(e, this.touchIdentifier, this);\n if (position == null) return;\n let {\n x,\n y\n } = position;\n\n // Snap to grid if prop has been provided\n if (Array.isArray(this.props.grid)) {\n let deltaX = x - this.lastX || 0;\n let deltaY = y - this.lastY || 0;\n [deltaX, deltaY] = (0, _positionFns.snapToGrid)(this.props.grid, deltaX, deltaY);\n x = this.lastX + deltaX, y = this.lastY + deltaY;\n }\n const coreEvent = (0, _positionFns.createCoreData)(this, x, y);\n\n // Call event handler\n const shouldContinue = this.props.onStop(e, coreEvent);\n if (shouldContinue === false || this.mounted === false) return false;\n const thisNode = this.findDOMNode();\n if (thisNode) {\n // Remove user-select hack\n if (this.props.enableUserSelectHack) (0, _domFns.scheduleRemoveUserSelectStyles)(thisNode.ownerDocument);\n }\n (0, _log.default)('DraggableCore: handleDragStop: %j', coreEvent);\n\n // Reset the el.\n this.dragging = false;\n this.lastX = NaN;\n this.lastY = NaN;\n if (thisNode) {\n // Remove event handlers\n (0, _log.default)('DraggableCore: Removing handlers');\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.move, this.handleDrag);\n (0, _domFns.removeEvent)(thisNode.ownerDocument, dragEventFor.stop, this.handleDragStop);\n }\n });\n _defineProperty(this, \"onMouseDown\", e => {\n dragEventFor = eventsFor.mouse; // on touchscreen laptops we could switch back to mouse\n\n return this.handleDragStart(e);\n });\n _defineProperty(this, \"onMouseUp\", e => {\n dragEventFor = eventsFor.mouse;\n return this.handleDragStop(e);\n });\n // Same as onMouseDown (start drag), but now consider this a touch device.\n _defineProperty(this, \"onTouchStart\", e => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return this.handleDragStart(e);\n });\n _defineProperty(this, \"onTouchEnd\", e => {\n // We're on a touch device now, so change the event handlers\n dragEventFor = eventsFor.touch;\n return this.handleDragStop(e);\n });\n }\n componentDidMount() {\n this.mounted = true;\n // Touch handlers must be added with {passive: false} to be cancelable.\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n const thisNode = this.findDOMNode();\n if (thisNode) {\n (0, _domFns.addEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n }\n }\n componentWillUnmount() {\n this.mounted = false;\n // Remove any leftover event handlers. Remove both touch and mouse handlers in case\n // some browser quirk caused a touch event to fire during a mouse move, or vice versa.\n const thisNode = this.findDOMNode();\n if (thisNode) {\n const {\n ownerDocument\n } = thisNode;\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.move, this.handleDrag);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.mouse.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(ownerDocument, eventsFor.touch.stop, this.handleDragStop);\n (0, _domFns.removeEvent)(thisNode, eventsFor.touch.start, this.onTouchStart, {\n passive: false\n });\n if (this.props.enableUserSelectHack) (0, _domFns.scheduleRemoveUserSelectStyles)(ownerDocument);\n }\n }\n\n // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n findDOMNode() /*: ?HTMLElement*/{\n return this.props?.nodeRef ? this.props?.nodeRef?.current : _reactDom.default.findDOMNode(this);\n }\n render() /*: React.Element<any>*/{\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.cloneElement(React.Children.only(this.props.children), {\n // Note: mouseMove handler is attached to document so it will still function\n // when the user drags quickly and leaves the bounds of the element.\n onMouseDown: this.onMouseDown,\n onMouseUp: this.onMouseUp,\n // onTouchStart is added on `componentDidMount` so they can be added with\n // {passive: false}, which allows it to cancel. See\n // https://developers.google.com/web/updates/2017/01/scrolling-intervention\n onTouchEnd: this.onTouchEnd\n });\n }\n}\nexports.default = DraggableCore;\n_defineProperty(DraggableCore, \"displayName\", 'DraggableCore');\n_defineProperty(DraggableCore, \"propTypes\", {\n /**\n * `allowAnyClick` allows dragging using any mouse button.\n * By default, we only accept the left button.\n *\n * Defaults to `false`.\n */\n allowAnyClick: _propTypes.default.bool,\n /**\n * `allowMobileScroll` turns off cancellation of the 'touchstart' event\n * on mobile devices. Only enable this if you are having trouble with click\n * events. Prefer using 'handle' / 'cancel' instead.\n *\n * Defaults to `false`.\n */\n allowMobileScroll: _propTypes.default.bool,\n children: _propTypes.default.node.isRequired,\n /**\n * `disabled`, if true, stops the <Draggable> from dragging. All handlers,\n * with the exception of `onMouseDown`, will not fire.\n */\n disabled: _propTypes.default.bool,\n /**\n * By default, we add 'user-select:none' attributes to the document body\n * to prevent ugly text selection during drag. If this is causing problems\n * for your app, set this to `false`.\n */\n enableUserSelectHack: _propTypes.default.bool,\n /**\n * `offsetParent`, if set, uses the passed DOM node to compute drag offsets\n * instead of using the parent node.\n */\n offsetParent: function (props /*: DraggableCoreProps*/, propName /*: $Keys<DraggableCoreProps>*/) {\n if (props[propName] && props[propName].nodeType !== 1) {\n throw new Error('Draggable\\'s offsetParent must be a DOM Node.');\n }\n },\n /**\n * `grid` specifies the x and y that dragging should snap to.\n */\n grid: _propTypes.default.arrayOf(_propTypes.default.number),\n /**\n * `handle` specifies a selector to be used as the handle that initiates drag.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * <Draggable handle=\".handle\">\n * <div>\n * <div className=\"handle\">Click me to drag</div>\n * <div>This is some other content</div>\n * </div>\n * </Draggable>\n * );\n * }\n * });\n * ```\n */\n handle: _propTypes.default.string,\n /**\n * `cancel` specifies a selector to be used to prevent drag initialization.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return(\n * <Draggable cancel=\".cancel\">\n * <div>\n * <div className=\"cancel\">You can't drag from here</div>\n * <div>Dragging here works fine</div>\n * </div>\n * </Draggable>\n * );\n * }\n * });\n * ```\n */\n cancel: _propTypes.default.string,\n /* If running in React Strict mode, ReactDOM.findDOMNode() is deprecated.\n * Unfortunately, in order for <Draggable> to work properly, we need raw access\n * to the underlying DOM node. If you want to avoid the warning, pass a `nodeRef`\n * as in this example:\n *\n * function MyComponent() {\n * const nodeRef = React.useRef(null);\n * return (\n * <Draggable nodeRef={nodeRef}>\n * <div ref={nodeRef}>Example Target</div>\n * </Draggable>\n * );\n * }\n *\n * This can be used for arbitrarily nested components, so long as the ref ends up\n * pointing to the actual child DOM node and not a custom component.\n */\n nodeRef: _propTypes.default.object,\n /**\n * Called when dragging starts.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onStart: _propTypes.default.func,\n /**\n * Called while dragging.\n * If this function returns the boolean false, dragging will be canceled.\n */\n onDrag: _propTypes.default.func,\n /**\n * Called when dragging stops.\n * If this function returns the boolean false, the drag will remain active.\n */\n onStop: _propTypes.default.func,\n /**\n * A workaround option which can be passed if onMouseDown needs to be accessed,\n * since it'll always be blocked (as there is internal use of onMouseDown)\n */\n onMouseDown: _propTypes.default.func,\n /**\n * `scale`, if set, applies scaling while dragging an element\n */\n scale: _propTypes.default.number,\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n_defineProperty(DraggableCore, \"defaultProps\", {\n allowAnyClick: false,\n // by default only accept left click\n allowMobileScroll: false,\n disabled: false,\n enableUserSelectHack: true,\n onStart: function () {},\n onDrag: function () {},\n onStop: function () {},\n onMouseDown: function () {},\n scale: 1\n});","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"DraggableCore\", {\n enumerable: true,\n get: function () {\n return _DraggableCore.default;\n }\n});\nexports.default = void 0;\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\nvar _clsx = require(\"clsx\");\nvar _domFns = require(\"./utils/domFns\");\nvar _positionFns = require(\"./utils/positionFns\");\nvar _shims = require(\"./utils/shims\");\nvar _DraggableCore = _interopRequireDefault(require(\"./DraggableCore\"));\nvar _log = _interopRequireDefault(require(\"./utils/log\"));\nfunction _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }\nfunction _interopRequireWildcard(e, t) { if (\"function\" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) \"default\" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); } /*:: import type {ControlPosition, PositionOffsetControlPosition, DraggableCoreProps, DraggableCoreDefaultProps} from './DraggableCore';*/\n/*:: import type {Bounds, DraggableEventHandler} from './utils/types';*/\n/*:: import type {Element as ReactElement} from 'react';*/\n/*:: type DraggableState = {\n dragging: boolean,\n dragged: boolean,\n x: number, y: number,\n slackX: number, slackY: number,\n isElementSVG: boolean,\n prevPropsPosition: ?ControlPosition,\n};*/\n/*:: export type DraggableDefaultProps = {\n ...DraggableCoreDefaultProps,\n axis: 'both' | 'x' | 'y' | 'none',\n bounds: Bounds | string | false,\n defaultClassName: string,\n defaultClassNameDragging: string,\n defaultClassNameDragged: string,\n defaultPosition: ControlPosition,\n scale: number,\n};*/\n/*:: export type DraggableProps = {\n ...DraggableCoreProps,\n ...DraggableDefaultProps,\n positionOffset: PositionOffsetControlPosition,\n position: ControlPosition,\n};*/\n//\n// Define <Draggable>\n//\nclass Draggable extends React.Component /*:: <DraggableProps, DraggableState>*/{\n // React 16.3+\n // Arity (props, state)\n static getDerivedStateFromProps(_ref /*:: */, _ref2 /*:: */) /*: ?Partial<DraggableState>*/{\n let {\n position\n } /*: DraggableProps*/ = _ref /*: DraggableProps*/;\n let {\n prevPropsPosition\n } /*: DraggableState*/ = _ref2 /*: DraggableState*/;\n // Set x/y if a new position is provided in props that is different than the previous.\n if (position && (!prevPropsPosition || position.x !== prevPropsPosition.x || position.y !== prevPropsPosition.y)) {\n (0, _log.default)('Draggable: getDerivedStateFromProps %j', {\n position,\n prevPropsPosition\n });\n return {\n x: position.x,\n y: position.y,\n prevPropsPosition: {\n ...position\n }\n };\n }\n return null;\n }\n constructor(props /*: DraggableProps*/) {\n super(props);\n _defineProperty(this, \"onDragStart\", (e, coreData) => {\n (0, _log.default)('Draggable: onDragStart: %j', coreData);\n\n // Short-circuit if user's callback killed it.\n const shouldStart = this.props.onStart(e, (0, _positionFns.createDraggableData)(this, coreData));\n // Kills start event on core as well, so move handlers are never bound.\n if (shouldStart === false) return false;\n this.setState({\n dragging: true,\n dragged: true\n });\n });\n _defineProperty(this, \"onDrag\", (e, coreData) => {\n if (!this.state.dragging) return false;\n (0, _log.default)('Draggable: onDrag: %j', coreData);\n const uiData = (0, _positionFns.createDraggableData)(this, coreData);\n const newState = {\n x: uiData.x,\n y: uiData.y,\n slackX: 0,\n slackY: 0\n };\n\n // Keep within bounds.\n if (this.props.bounds) {\n // Save original x and y.\n const {\n x,\n y\n } = newState;\n\n // Add slack to the values used to calculate bound position. This will ensure that if\n // we start removing slack, the element won't react to it right away until it's been\n // completely removed.\n newState.x += this.state.slackX;\n newState.y += this.state.slackY;\n\n // Get bound position. This will ceil/floor the x and y within the boundaries.\n const [newStateX, newStateY] = (0, _positionFns.getBoundPosition)(this, newState.x, newState.y);\n newState.x = newStateX;\n newState.y = newStateY;\n\n // Recalculate slack by noting how much was shaved by the boundPosition handler.\n newState.slackX = this.state.slackX + (x - newState.x);\n newState.slackY = this.state.slackY + (y - newState.y);\n\n // Update the event we fire to reflect what really happened after bounds took effect.\n uiData.x = newState.x;\n uiData.y = newState.y;\n uiData.deltaX = newState.x - this.state.x;\n uiData.deltaY = newState.y - this.state.y;\n }\n\n // Short-circuit if user's callback killed it.\n const shouldUpdate = this.props.onDrag(e, uiData);\n if (shouldUpdate === false) return false;\n this.setState(newState);\n });\n _defineProperty(this, \"onDragStop\", (e, coreData) => {\n if (!this.state.dragging) return false;\n\n // Short-circuit if user's callback killed it.\n const shouldContinue = this.props.onStop(e, (0, _positionFns.createDraggableData)(this, coreData));\n if (shouldContinue === false) return false;\n (0, _log.default)('Draggable: onDragStop: %j', coreData);\n const newState /*: Partial<DraggableState>*/ = {\n dragging: false,\n slackX: 0,\n slackY: 0\n };\n\n // If this is a controlled component, the result of this operation will be to\n // revert back to the old position. We expect a handler on `onDragStop`, at the least.\n const controlled = Boolean(this.props.position);\n if (controlled) {\n const {\n x,\n y\n } = this.props.position;\n newState.x = x;\n newState.y = y;\n }\n this.setState(newState);\n });\n this.state = {\n // Whether or not we are currently dragging.\n dragging: false,\n // Whether or not we have been dragged before.\n dragged: false,\n // Current transform x and y.\n x: props.position ? props.position.x : props.defaultPosition.x,\n y: props.position ? props.position.y : props.defaultPosition.y,\n prevPropsPosition: {\n ...props.position\n },\n // Used for compensating for out-of-bounds drags\n slackX: 0,\n slackY: 0,\n // Can only determine if SVG after mounting\n isElementSVG: false\n };\n if (props.position && !(props.onDrag || props.onStop)) {\n // eslint-disable-next-line no-console\n console.warn('A `position` was applied to this <Draggable>, without drag handlers. This will make this ' + 'component effectively undraggable. Please attach `onDrag` or `onStop` handlers so you can adjust the ' + '`position` of this element.');\n }\n }\n componentDidMount() {\n // Check to see if the element passed is an instanceof SVGElement\n if (typeof window.SVGElement !== 'undefined' && this.findDOMNode() instanceof window.SVGElement) {\n this.setState({\n isElementSVG: true\n });\n }\n }\n componentWillUnmount() {\n if (this.state.dragging) {\n this.setState({\n dragging: false\n }); // prevents invariant if unmounted while dragging\n }\n }\n\n // React Strict Mode compatibility: if `nodeRef` is passed, we will use it instead of trying to find\n // the underlying DOM node ourselves. See the README for more information.\n findDOMNode() /*: ?HTMLElement*/{\n return this.props?.nodeRef?.current ?? _reactDom.default.findDOMNode(this);\n }\n render() /*: ReactElement<any>*/{\n const {\n axis,\n bounds,\n children,\n defaultPosition,\n defaultClassName,\n defaultClassNameDragging,\n defaultClassNameDragged,\n position,\n positionOffset,\n scale,\n ...draggableCoreProps\n } = this.props;\n let style = {};\n let svgTransform = null;\n\n // If this is controlled, we don't want to move it - unless it's dragging.\n const controlled = Boolean(position);\n const draggable = !controlled || this.state.dragging;\n const validPosition = position || defaultPosition;\n const transformOpts = {\n // Set left if horizontal drag is enabled\n x: (0, _positionFns.canDragX)(this) && draggable ? this.state.x : validPosition.x,\n // Set top if vertical drag is enabled\n y: (0, _positionFns.canDragY)(this) && draggable ? this.state.y : validPosition.y\n };\n\n // If this element was SVG, we use the `transform` attribute.\n if (this.state.isElementSVG) {\n svgTransform = (0, _domFns.createSVGTransform)(transformOpts, positionOffset);\n } else {\n // Add a CSS transform to move the element around. This allows us to move the element around\n // without worrying about whether or not it is relatively or absolutely positioned.\n // If the item you are dragging already has a transform set, wrap it in a <span> so <Draggable>\n // has a clean slate.\n style = (0, _domFns.createCSSTransform)(transformOpts, positionOffset);\n }\n\n // Mark with class while dragging\n const className = (0, _clsx.clsx)(children.props.className || '', defaultClassName, {\n [defaultClassNameDragging]: this.state.dragging,\n [defaultClassNameDragged]: this.state.dragged\n });\n\n // Reuse the child provided\n // This makes it flexible to use whatever element is wanted (div, ul, etc)\n return /*#__PURE__*/React.createElement(_DraggableCore.default, _extends({}, draggableCoreProps, {\n onStart: this.onDragStart,\n onDrag: this.onDrag,\n onStop: this.onDragStop\n }), /*#__PURE__*/React.cloneElement(React.Children.only(children), {\n className: className,\n style: {\n ...children.props.style,\n ...style\n },\n transform: svgTransform\n }));\n }\n}\nexports.default = Draggable;\n_defineProperty(Draggable, \"displayName\", 'Draggable');\n_defineProperty(Draggable, \"propTypes\", {\n // Accepts all props <DraggableCore> accepts.\n ..._DraggableCore.default.propTypes,\n /**\n * `axis` determines which axis the draggable can move.\n *\n * Note that all callbacks will still return data as normal. This only\n * controls flushing to the DOM.\n *\n * 'both' allows movement horizontally and vertically.\n * 'x' limits movement to horizontal axis.\n * 'y' limits movement to vertical axis.\n * 'none' limits all movement.\n *\n * Defaults to 'both'.\n */\n axis: _propTypes.default.oneOf(['both', 'x', 'y', 'none']),\n /**\n * `bounds` determines the range of movement available to the element.\n * Available values are:\n *\n * 'parent' restricts movement within the Draggable's parent node.\n *\n * Alternatively, pass an object with the following properties, all of which are optional:\n *\n * {left: LEFT_BOUND, right: RIGHT_BOUND, bottom: BOTTOM_BOUND, top: TOP_BOUND}\n *\n * All values are in px.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * <Draggable bounds={{right: 300, bottom: 300}}>\n * <div>Content</div>\n * </Draggable>\n * );\n * }\n * });\n * ```\n */\n bounds: _propTypes.default.oneOfType([_propTypes.default.shape({\n left: _propTypes.default.number,\n right: _propTypes.default.number,\n top: _propTypes.default.number,\n bottom: _propTypes.default.number\n }), _propTypes.default.string, _propTypes.default.oneOf([false])]),\n defaultClassName: _propTypes.default.string,\n defaultClassNameDragging: _propTypes.default.string,\n defaultClassNameDragged: _propTypes.default.string,\n /**\n * `defaultPosition` specifies the x and y that the dragged item should start at\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * <Draggable defaultPosition={{x: 25, y: 25}}>\n * <div>I start with transformX: 25px and transformY: 25px;</div>\n * </Draggable>\n * );\n * }\n * });\n * ```\n */\n defaultPosition: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n positionOffset: _propTypes.default.shape({\n x: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),\n y: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])\n }),\n /**\n * `position`, if present, defines the current position of the element.\n *\n * This is similar to how form elements in React work - if no `position` is supplied, the component\n * is uncontrolled.\n *\n * Example:\n *\n * ```jsx\n * let App = React.createClass({\n * render: function () {\n * return (\n * <Draggable position={{x: 25, y: 25}}>\n * <div>I start with transformX: 25px and transformY: 25px;</div>\n * </Draggable>\n * );\n * }\n * });\n * ```\n */\n position: _propTypes.default.shape({\n x: _propTypes.default.number,\n y: _propTypes.default.number\n }),\n /**\n * These properties should be defined on the child, not here.\n */\n className: _shims.dontSetMe,\n style: _shims.dontSetMe,\n transform: _shims.dontSetMe\n});\n_defineProperty(Draggable, \"defaultProps\", {\n ..._DraggableCore.default.defaultProps,\n axis: 'both',\n bounds: false,\n defaultClassName: 'react-draggable',\n defaultClassNameDragging: 'react-draggable-dragging',\n defaultClassNameDragged: 'react-draggable-dragged',\n defaultPosition: {\n x: 0,\n y: 0\n },\n scale: 1\n});","\"use strict\";\n\nconst {\n default: Draggable,\n DraggableCore\n} = require('./Draggable');\n\n// Previous versions of this lib exported <Draggable> as the root export. As to no-// them, or TypeScript, we export *both* as the root and as 'default'.\n// See https://github.com/mzabriskie/react-draggable/pull/254\n// and https://github.com/mzabriskie/react-draggable/issues/266\nmodule.exports = Draggable;\nmodule.exports.default = Draggable;\nmodule.exports.DraggableCore = DraggableCore;","import { FunctionalComponent } from \"preact\";\r\nimport { useEffect, useRef, useState } from \"preact/hooks\";\r\nimport { Message } from \"../services/models/message\";\r\nimport { PopulatedChatbotLean } from \"../services/validations/live\";\r\nimport { marked } from \"marked\";\r\nimport { transformMediaUrl } from \"../hooks/common\";\r\n\r\ninterface StreamingChatMessageProps {\r\n chatbot: PopulatedChatbotLean;\r\n message: Message & { data: { thinking?: string[]; text?: string } };\r\n}\r\n\r\nexport const StreamingChatMessage: FunctionalComponent<\r\n StreamingChatMessageProps\r\n> = ({ chatbot, message }) => {\r\n const thinkingContainerRef = useRef<HTMLDivElement>(null);\r\n const [htmlContent, setHtmlContent] = useState(\"\");\r\n\r\n const { thinking = [], text = \"\" } = message.data;\r\n\r\n useEffect(() => {\r\n const parsed = marked.parse(text || \"\");\r\n if (typeof parsed === \"string\") {\r\n setHtmlContent(parsed);\r\n } else {\r\n parsed.then(setHtmlContent);\r\n }\r\n }, [text]);\r\n\r\n return (\r\n <div className=\"mainMessageContainer\">\r\n <div className=\"logoWithMessageDiv\">\r\n <img\r\n src={transformMediaUrl(chatbot.appearance.images.popupChat, 70)}\r\n alt=\"Bot\"\r\n // crossOrigin=\"anonymous\"\r\n />\r\n </div>\r\n <div className=\"messageDiv \">\r\n <div className=\"messageP markdownText ai-generating\">\r\n {thinking.length > 0 && (\r\n <div className=\"thinkingContainer\" ref={thinkingContainerRef}>\r\n {thinking.map((chunk, index) => (\r\n <div key={index} className=\"thinkingChunk\">\r\n • {chunk}\r\n </div>\r\n ))}\r\n </div>\r\n )}\r\n\r\n {htmlContent && (\r\n <div dangerouslySetInnerHTML={{ __html: htmlContent }} />\r\n )}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n","import { FunctionalComponent } from \"preact\";\r\nimport { useState, useEffect } from \"preact/hooks\";\r\n\r\nexport type ToastType = \"success\" | \"error\" | \"info\";\r\n\r\ninterface ToastProps {\r\n message: string;\r\n type: ToastType;\r\n onDismiss: () => void;\r\n}\r\n\r\nexport const Toast: FunctionalComponent<ToastProps> = ({\r\n message,\r\n type,\r\n onDismiss,\r\n}) => {\r\n const [visible, setVisible] = useState(true);\r\n\r\n useEffect(() => {\r\n const timer = setTimeout(() => {\r\n setVisible(false);\r\n onDismiss();\r\n }, 4000);\r\n\r\n return () => clearTimeout(timer);\r\n }, [onDismiss]);\r\n\r\n if (!visible) return null;\r\n\r\n return (\r\n <div className={`robodialog-toast robodialog-toast-${type}`}>\r\n <span className=\"robodialog-toast-message\">{message}</span>\r\n <button\r\n className=\"robodialog-toast-close\"\r\n onClick={() => {\r\n setVisible(false);\r\n onDismiss();\r\n }}\r\n >\r\n ×\r\n </button>\r\n </div>\r\n );\r\n};\r\n","// src/hooks/useToast.ts\r\nimport { FunctionalComponent } from \"preact\";\r\nimport { useState, useCallback } from \"preact/hooks\";\r\nimport { Toast } from \"../components/Toast\";\r\n\r\nexport type ToastType = \"success\" | \"error\" | \"info\";\r\n\r\nexport interface ToastItem {\r\n id: string;\r\n message: string;\r\n type: ToastType;\r\n}\r\n\r\nexport const useToast = () => {\r\n const [toasts, setToasts] = useState<ToastItem[]>([]);\r\n\r\n const showToast = useCallback((message: string, type: ToastType = \"info\") => {\r\n const id = `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;\r\n setToasts((prev) => [...prev, { id, message, type }]);\r\n\r\n // Auto-dismiss after 5 seconds\r\n setTimeout(() => {\r\n dismissToast(id);\r\n }, 4000);\r\n }, []);\r\n\r\n const dismissToast = useCallback((id: string) => {\r\n setToasts((prev) => prev.filter((toast) => toast.id !== id));\r\n }, []);\r\n\r\n const ToastContainer: FunctionalComponent = () => {\r\n if (toasts.length === 0) return null;\r\n\r\n return (\r\n <>\r\n {toasts.map((toast) => (\r\n <Toast\r\n key={toast.id}\r\n message={toast.message}\r\n type={toast.type}\r\n onDismiss={() => dismissToast(toast.id)}\r\n />\r\n ))}\r\n </>\r\n );\r\n };\r\n\r\n return {\r\n showToast,\r\n ToastContainer,\r\n dismissToast,\r\n };\r\n};\r\n","import { FunctionalComponent, JSX } from \"preact\";\r\nimport { useCallback, useEffect, useRef, useState } from \"preact/hooks\";\r\nimport {\r\n ArrowFill,\r\n Attachment,\r\n Cross,\r\n DragIcon,\r\n InputArrow,\r\n LoadingIcon,\r\n} from \"../components/icons\";\r\nimport chatlogo from \"../assets/logo.png\";\r\nimport {\r\n AILoading,\r\n Agents,\r\n ChatHoveringMessages,\r\n ChatMessage,\r\n ConnectingToAnAgent,\r\n ConversationList,\r\n DataFromUser,\r\n HeaderImage,\r\n HoveringMessageInner,\r\n MessagesLoading,\r\n ReviewFromUser,\r\n ShowFile,\r\n UserLoading,\r\n} from \"../components/htmlHelper\";\r\nimport {\r\n handleChatFlow,\r\n handleSendMessage,\r\n setMessageAsSeen,\r\n} from \"../components/functionsHelper\";\r\nimport { getFromLocalStorage, saveToLocalStorage } from \"../hooks/localStorage\";\r\nimport Draggable from \"react-draggable\";\r\nimport {\r\n ConversationStateContext,\r\n CoreStateContext,\r\n UIStateContext,\r\n} from \"../types/widget\";\r\nimport ConversationService from \"../services/conversation\";\r\nimport MessageService from \"../services/message\";\r\nimport { Message } from \"../services/models/message\";\r\nimport { Conversation } from \"../services/models/conversation\";\r\nimport { StreamingChatMessage } from \"../components/streamingChatMessage\";\r\nimport { useToast } from \"../hooks/useToast\";\r\nimport { transformMediaUrl } from \"../hooks/common\";\r\n\r\n// MARK: Conversation Details\r\n\r\ninterface ConversationDetailsProps {\r\n handleChangeConversation: (conv: Conversation | null) => void;\r\n coreState: CoreStateContext;\r\n conversationState: ConversationStateContext;\r\n uiState: UIStateContext;\r\n showToast: (message: string, type: \"success\" | \"error\" | \"info\") => void;\r\n}\r\n\r\nconst ConversationDetails: FunctionalComponent<ConversationDetailsProps> = ({\r\n handleChangeConversation,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n}) => {\r\n const conversationMessagesRef = useRef<HTMLDivElement>(null);\r\n const [file, setFile] = useState<File | null>(null);\r\n const [messagesLoading, setMessagesLoading] = useState(false);\r\n const [fileSizeLimitReached, setFileSizeLimitReached] = useState(false);\r\n const [textareaHeight, setTextareaHeight] = useState(\"auto\");\r\n const [userMessage, setUserMessage] = useState(\"\");\r\n\r\n const {\r\n chatbot,\r\n token,\r\n fileSizeLimit,\r\n userData,\r\n isChatbotDefault,\r\n isDefaultExternalAPI,\r\n } = coreState;\r\n\r\n const {\r\n messageCallOneTime,\r\n messages: allMessages,\r\n currentConversation,\r\n conversations,\r\n messagesRef,\r\n setMessages: setAllMessages,\r\n } = conversationState;\r\n\r\n const {\r\n ratingFromUser,\r\n canMessage,\r\n setCanMessage,\r\n humanControl,\r\n aiLoading,\r\n hoveringMessageInner,\r\n userLoading,\r\n dataFromUser,\r\n setHoveringMessageInner,\r\n onlineAgents,\r\n setOnlineAgents,\r\n callChatFlowRef,\r\n callChatFlow,\r\n setCallChatFlow,\r\n setHumanControl,\r\n setAiLoading,\r\n setUserLoading,\r\n setDataFromUser,\r\n setRatingFromUser,\r\n } = uiState;\r\n\r\n const AIControlNode = chatbot!.chatflow.nodes.find(\r\n (node: any) => node.type === \"AIControlNode\",\r\n );\r\n\r\n const latestCurrentConversation =\r\n conversations.find(\r\n (c: Conversation) => c._id === currentConversation?._id,\r\n ) || null;\r\n const messages = (\r\n allMessages && currentConversation\r\n ? allMessages.filter(\r\n (message: Message) =>\r\n message.conversationId === currentConversation._id,\r\n )\r\n : []\r\n ).sort(\r\n (a: Message, b: Message) =>\r\n new Date(b.createdAt || \"\").getTime() -\r\n new Date(a.createdAt || \"\").getTime(),\r\n );\r\n\r\n const handleFileUpload = (e: JSX.TargetedEvent<HTMLInputElement>) => {\r\n const target = e.target as HTMLInputElement;\r\n const uploadedFile = target.files?.[0];\r\n\r\n if (uploadedFile && !/^image\\//.test(uploadedFile.type)) {\r\n setFile(null);\r\n showToast(\"Only image files are allowed\", \"error\");\r\n return;\r\n }\r\n\r\n if (!uploadedFile) return;\r\n\r\n if (uploadedFile.size > fileSizeLimit * 1024 * 1024) {\r\n setFileSizeLimitReached(true);\r\n setTimeout(() => setFileSizeLimitReached(false), 3000);\r\n target.value = \"\";\r\n return;\r\n }\r\n\r\n setFile(uploadedFile);\r\n target.value = \"\";\r\n };\r\n\r\n const handleTextareaChange = useCallback(\r\n (e: JSX.TargetedEvent<HTMLTextAreaElement>) => {\r\n const target = e.currentTarget as HTMLTextAreaElement;\r\n setUserMessage(target.value);\r\n\r\n // throttle the height calculation\r\n requestAnimationFrame(() => {\r\n target.style.height = \"auto\";\r\n target.style.height = `${target.scrollHeight}px`;\r\n setTextareaHeight(`${target.scrollHeight}px`);\r\n });\r\n },\r\n [setUserMessage],\r\n );\r\n\r\n const handleTextareaKeyDown = (\r\n e: JSX.TargetedKeyboardEvent<HTMLTextAreaElement>,\r\n ) => {\r\n if (e.key === \"Enter\" && !e.shiftKey) {\r\n e.preventDefault();\r\n if (userMessage.trim()) {\r\n handleSendMessage({\r\n coreState,\r\n conversationState,\r\n uiState,\r\n userMessage,\r\n setUserMessage,\r\n file,\r\n setFile,\r\n showToast,\r\n latestCurrentConversation,\r\n });\r\n }\r\n }\r\n };\r\n\r\n async function getMessages() {\r\n if (!currentConversation || messageCallOneTime.current?.call) return;\r\n\r\n const currentCount =\r\n messageCallOneTime.current?.messagesCount[currentConversation._id] || -1;\r\n const currentLength =\r\n messageCallOneTime.current?.messagesLength[currentConversation._id] || 0;\r\n if (currentCount <= currentLength && currentCount !== -1) return;\r\n\r\n try {\r\n setMessagesLoading(true);\r\n messageCallOneTime.current!.call = true;\r\n\r\n const skip = currentLength === 1 ? 0 : currentLength;\r\n\r\n const response = await MessageService.userReadAll(\r\n {\r\n body: {\r\n conversationId: currentConversation._id,\r\n skip,\r\n },\r\n },\r\n token!,\r\n );\r\n\r\n if (!response.data) throw new Error(\"Failed to load messages\");\r\n\r\n setAllMessages((prev: Message[]) => {\r\n const existingIds = new Set(prev.map((m) => m._id));\r\n const newMessages = response.data!.messages.filter(\r\n (m: Message) => !existingIds.has(m._id),\r\n );\r\n const updated = [...prev, ...newMessages];\r\n messagesRef.current = updated;\r\n return updated;\r\n });\r\n\r\n messageCallOneTime.current!.messagesCount[currentConversation._id] =\r\n response.data.count;\r\n } catch (error) {\r\n showToast(\"Failed to load messages\", \"error\");\r\n } finally {\r\n messageCallOneTime.current!.call = false;\r\n setMessagesLoading(false);\r\n }\r\n }\r\n\r\n function handleCloseConversation() {\r\n handleChangeConversation(null);\r\n setCanMessage(false);\r\n setUserMessage(\"\");\r\n setHumanControl(false);\r\n setAiLoading(false);\r\n setHoveringMessageInner(null);\r\n setUserLoading(false);\r\n setDataFromUser(null);\r\n setOnlineAgents(0);\r\n setRatingFromUser(null);\r\n setFile(null);\r\n }\r\n\r\n useEffect(() => {\r\n if (callChatFlowRef.current && currentConversation && !isChatbotDefault) {\r\n handleChatFlow({ coreState, conversationState, uiState, showToast });\r\n callChatFlowRef.current = false;\r\n }\r\n }, [currentConversation?._id]);\r\n\r\n useEffect(() => {\r\n if (!currentConversation || isChatbotDefault) return;\r\n\r\n if (isDefaultExternalAPI) {\r\n handleChatFlow({ coreState, conversationState, uiState, showToast });\r\n return;\r\n }\r\n // Handle initial chat flow\r\n if (callChatFlow) {\r\n getMessages();\r\n handleChatFlow({ coreState, conversationState, uiState, showToast });\r\n setCallChatFlow(false);\r\n }\r\n\r\n const container = conversationMessagesRef.current;\r\n if (!container || (container as any).scrollEventAdded) return;\r\n\r\n let rafId: number;\r\n\r\n const handleScroll = (event: Event) => {\r\n const container = event.target as HTMLDivElement;\r\n // When user scrolls to TOP (load older messages)\r\n if (\r\n container.scrollTop * -1 + container.clientHeight ===\r\n container.scrollHeight\r\n ) {\r\n getMessages();\r\n }\r\n };\r\n\r\n // Wait for layout/paint before attaching scroll listener\r\n rafId = requestAnimationFrame(() => {\r\n container.addEventListener(\"scroll\", handleScroll);\r\n (container as any).scrollEventAdded = true;\r\n });\r\n\r\n return () => {\r\n cancelAnimationFrame(rafId);\r\n container.removeEventListener(\"scroll\", handleScroll);\r\n };\r\n }, [callChatFlow, currentConversation?._id]);\r\n\r\n useEffect(() => {\r\n if (!messages?.length) return;\r\n\r\n messageCallOneTime.current!.messagesLength[currentConversation?._id || \"\"] =\r\n messages.length;\r\n\r\n const latestMessage = messages[0];\r\n if (latestMessage.owner === \"agent\" && !latestMessage.seen) {\r\n setMessageAsSeen(\r\n latestMessage,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n );\r\n }\r\n }, [messages.length]);\r\n\r\n if (!currentConversation) return null;\r\n\r\n return (\r\n <div className=\"conversationDetails\">\r\n <div className=\"conversationDetailsHeader\">\r\n <div\r\n onClick={handleCloseConversation}\r\n style={{\r\n pointerEvents: aiLoading || isDefaultExternalAPI ? \"none\" : \"\",\r\n opacity: aiLoading || isDefaultExternalAPI ? \"0.5\" : \"1\",\r\n }}\r\n >\r\n <ArrowFill className=\"background-text-color\" />\r\n </div>\r\n <div\r\n style={{\r\n display: \"flex\",\r\n gap: \"5px\",\r\n alignItems: \"center\",\r\n color: chatbot!.appearance.color.backgroundText,\r\n }}\r\n >\r\n <HeaderImage\r\n chatbot={chatbot!}\r\n humanControl={humanControl}\r\n latestCurrentConversation={latestCurrentConversation}\r\n />\r\n Controlled By{\" \"}\r\n {humanControl ||\r\n latestCurrentConversation?.assignType ||\r\n latestCurrentConversation?.assignedTo\r\n ? \"Human\"\r\n : \"AI\"}\r\n </div>\r\n <div style={{ width: \"21px\" }} />\r\n </div>\r\n <div className=\"livelinkMsgs\" ref={conversationMessagesRef}>\r\n {dataFromUser && !latestCurrentConversation?.assignedTo && (\r\n <DataFromUser\r\n email={userData?.email || \"\"}\r\n chatbot={chatbot!}\r\n dataFromUser={dataFromUser}\r\n />\r\n )}\r\n {ratingFromUser && !latestCurrentConversation?.assignedTo && (\r\n <ReviewFromUser chatbot={chatbot!} ratingFromUser={ratingFromUser} />\r\n )}\r\n {latestCurrentConversation?.assignType &&\r\n !latestCurrentConversation?.assignedTo && (\r\n <ConnectingToAnAgent\r\n currentConversation={currentConversation}\r\n chatbot={chatbot!}\r\n onlineAgents={onlineAgents}\r\n />\r\n )}\r\n {messages.map((message: Message, index: number) => {\r\n const isStreaming = message._id.startsWith(\"streaming_\");\r\n if (isStreaming) {\r\n return (\r\n <StreamingChatMessage\r\n key={message._id}\r\n chatbot={chatbot!}\r\n message={message as Message & { data: { thinking?: string[] } }}\r\n />\r\n );\r\n }\r\n return (\r\n <ChatMessage\r\n AIControlNode={AIControlNode}\r\n key={message._id || index}\r\n chatbot={chatbot!}\r\n message={message}\r\n />\r\n );\r\n })}\r\n {userLoading && <UserLoading chatbot={chatbot!} />}\r\n {aiLoading && !messages[0]?._id.startsWith(\"streaming_\") && (\r\n <AILoading chatbot={chatbot!} />\r\n )}\r\n {messagesLoading && <MessagesLoading chatbot={chatbot!} />}\r\n </div>\r\n\r\n <div>\r\n {hoveringMessageInner &&\r\n canMessage &&\r\n !latestCurrentConversation?.assignedTo &&\r\n !file && (\r\n <HoveringMessageInner\r\n hoveringMessageInner={hoveringMessageInner}\r\n chatbot={chatbot!}\r\n />\r\n )}\r\n\r\n {file && <ShowFile file={file} setFile={setFile} chatbot={chatbot!} />}\r\n\r\n <div\r\n className=\"massageInputDivMain\"\r\n style={{\r\n opacity: !(canMessage || latestCurrentConversation?.assignedTo)\r\n ? \"0.7\"\r\n : \"1\",\r\n pointerEvents: !(\r\n canMessage || latestCurrentConversation?.assignedTo\r\n )\r\n ? \"none\"\r\n : \"all\",\r\n }}\r\n >\r\n <form\r\n onSubmit={(e: JSX.TargetedEvent<HTMLFormElement>) => {\r\n e.preventDefault();\r\n if (userMessage.trim()) {\r\n handleSendMessage({\r\n coreState,\r\n conversationState,\r\n uiState,\r\n userMessage,\r\n setUserMessage,\r\n file,\r\n setFile,\r\n latestCurrentConversation,\r\n showToast,\r\n });\r\n }\r\n }}\r\n >\r\n <textarea\r\n style={{\r\n height: textareaHeight,\r\n }}\r\n placeholder={\r\n fileSizeLimitReached\r\n ? \"File Size Limit Reached\"\r\n : chatbot!.appearance.text.messagePlaceholder\r\n }\r\n maxLength={500}\r\n onChange={handleTextareaChange}\r\n onKeyDown={handleTextareaKeyDown}\r\n value={userMessage}\r\n rows={1}\r\n disabled={fileSizeLimitReached}\r\n />\r\n\r\n <input\r\n type=\"file\"\r\n onChange={handleFileUpload}\r\n style={{ display: \"none\" }}\r\n id=\"fileUpload\"\r\n accept=\"image/*\"\r\n />\r\n\r\n {latestCurrentConversation?.assignedTo && (\r\n <label\r\n className=\"inputArrowMassageImg attachment\"\r\n htmlFor=\"fileUpload\"\r\n >\r\n <Attachment className=\"input-text-color\" />\r\n </label>\r\n )}\r\n\r\n <button\r\n className=\"inputArrowMassageImg\"\r\n type=\"submit\"\r\n disabled={!userMessage.trim()}\r\n >\r\n <InputArrow className=\"input-text-color\" />\r\n </button>\r\n </form>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\n// MARK: Conversations List\r\n\r\ninterface ConversationsProps {\r\n handleChangeConversation: (conv: Conversation | null) => void;\r\n coreState: CoreStateContext;\r\n conversationState: ConversationStateContext;\r\n uiState: UIStateContext;\r\n showToast: (message: string, type: \"success\" | \"error\" | \"info\") => void;\r\n}\r\n\r\nconst Conversations: FunctionalComponent<ConversationsProps> = ({\r\n handleChangeConversation,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n showToast,\r\n}) => {\r\n const { chatbot, token } = coreState;\r\n const {\r\n setConversations,\r\n setCurrentConversation,\r\n conversations,\r\n messages,\r\n totalConversationsCount,\r\n setTotalConversationsCount,\r\n setMessages: setAllMessages,\r\n } = conversationState;\r\n const { setCallChatFlow } = uiState;\r\n\r\n const [conversationLimitReached, setConversationLimitReached] =\r\n useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [conversationsLoading, setConversationsLoading] = useState(false);\r\n\r\n const createNewConversation = async () => {\r\n if (loading || conversationLimitReached) return;\r\n\r\n try {\r\n setLoading(true);\r\n const response = await ConversationService.userCreate(\r\n {\r\n body: {},\r\n },\r\n token!,\r\n );\r\n\r\n if (!response.data) throw new Error(\"Conversation creation failed\");\r\n\r\n const newConversation = response.data;\r\n setCurrentConversation(newConversation);\r\n setConversations((prev: Conversation[]) => [...prev, newConversation]);\r\n setCallChatFlow(true);\r\n } catch (error: any) {\r\n if (error.response?.data?.error === \"Limit Reached\") {\r\n setConversationLimitReached(true);\r\n }\r\n showToast(\r\n error.response?.data?.message || \"Failed to create conversation\",\r\n \"error\",\r\n );\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n const loadMoreConversations = async () => {\r\n if (conversationsLoading) return;\r\n try {\r\n setConversationsLoading(true);\r\n const response = await ConversationService.userReadAll(token!, {\r\n query: { skip: conversations.length.toString() },\r\n });\r\n\r\n if (!response.data) throw new Error(\"Failed to load conversations\");\r\n\r\n setAllMessages((prev: Message[]) => {\r\n const updated = [...prev, ...response.data!.messages];\r\n conversationState.messagesRef.current = updated;\r\n return updated;\r\n });\r\n setConversations((prev: Conversation[]) => [\r\n ...prev,\r\n ...response.data!.conversations,\r\n ]);\r\n setTotalConversationsCount(response.data.count);\r\n } catch (error) {\r\n showToast(\"Failed to load conversations\", \"error\");\r\n } finally {\r\n setConversationsLoading(false);\r\n }\r\n };\r\n\r\n return (\r\n <div className=\"conversationMain\">\r\n <button className=\"newConversationBtn\" onClick={createNewConversation}>\r\n {loading ? (\r\n <div className=\"newConversationLoading\">\r\n <LoadingIcon className=\"base-text-color\" width={13} height={13} />\r\n </div>\r\n ) : conversationLimitReached ? (\r\n \"Limit Reached\"\r\n ) : (\r\n \"+ Conversation\"\r\n )}\r\n </button>\r\n <ConversationList\r\n conversations={conversations}\r\n chatbot={chatbot!}\r\n handleChangeConversation={handleChangeConversation}\r\n messages={messages}\r\n totalConversationsCount={totalConversationsCount}\r\n conversationsLoading={conversationsLoading}\r\n loadMoreConversations={loadMoreConversations}\r\n />\r\n </div>\r\n );\r\n};\r\n\r\n// MARK: Main Conversations Container\r\n\r\ninterface ConversationsMainProps {\r\n chatOpen: boolean;\r\n coreState: CoreStateContext;\r\n conversationState: ConversationStateContext;\r\n uiState: UIStateContext;\r\n isMobileVersion: boolean;\r\n fullScreen?: boolean;\r\n}\r\n\r\nconst ConversationsMain: FunctionalComponent<ConversationsMainProps> = ({\r\n chatOpen,\r\n coreState,\r\n conversationState,\r\n uiState,\r\n isMobileVersion,\r\n fullScreen,\r\n}) => {\r\n const { showToast, ToastContainer } = useToast();\r\n\r\n const { chatbot, token, isChatbotDefault } = coreState;\r\n const { setCallChatFlow } = uiState;\r\n const {\r\n setMessages,\r\n messagesRef,\r\n setConversations,\r\n setTotalConversationsCount,\r\n setCurrentConversation,\r\n } = conversationState;\r\n const [loading, setLoading] = useState(isChatbotDefault ? false : true);\r\n\r\n const handleChangeConversation = (newConversation: Conversation | null) => {\r\n setCurrentConversation(newConversation);\r\n if (newConversation !== null && !isChatbotDefault) {\r\n setCallChatFlow(true);\r\n }\r\n };\r\n\r\n const getConversations = async () => {\r\n try {\r\n setLoading(true);\r\n const response = await ConversationService.userReadAll(token!);\r\n\r\n if (!response.data) throw new Error(\"Failed to load conversations\");\r\n\r\n const temp = response.data.messages || [];\r\n messagesRef.current = temp;\r\n setMessages(temp);\r\n setConversations(response.data.conversations || []);\r\n setTotalConversationsCount(response.data.count || 0);\r\n } catch (error) {\r\n showToast(\"Failed to initialize conversations\", \"error\");\r\n } finally {\r\n setLoading(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (isChatbotDefault) return;\r\n getConversations();\r\n }, [token]);\r\n\r\n return (\r\n <div\r\n className={`chatbotConversationContainer ${\r\n chatOpen ? \"open\" : \"\"\r\n } ${fullScreen ? \"fullscreen\" : \"\"}`}\r\n style={\r\n fullScreen\r\n ? undefined\r\n : {\r\n maxHeight: `calc(95vh - 70px - ${\r\n chatbot!.appearance.others.position[\r\n isMobileVersion ? \"mobile\" : \"desktop\"\r\n ].verticalSpace\r\n }px)`,\r\n maxWidth: `calc(95vw - ${\r\n chatbot!.appearance.others.position[\r\n isMobileVersion ? \"mobile\" : \"desktop\"\r\n ].horizontalSpace\r\n }px)`,\r\n }\r\n }\r\n >\r\n <ToastContainer />\r\n <div className=\"top-header\">\r\n <h2>{chatbot!.appearance.text.heading}</h2>\r\n <h4>{chatbot!.appearance.text.description}</h4>\r\n {chatbot!.appearance.others.showAgents && (\r\n <Agents className=\"mainAgents\" chatbot={chatbot!} />\r\n )}\r\n </div>\r\n\r\n <div className=\"liveLinkRightDiv\">\r\n {loading ? (\r\n <div className=\"loadingDiv\">\r\n <LoadingIcon className=\"background-text-color\" />\r\n </div>\r\n ) : (\r\n <>\r\n <ConversationDetails\r\n handleChangeConversation={handleChangeConversation}\r\n coreState={coreState}\r\n conversationState={conversationState}\r\n uiState={uiState}\r\n showToast={showToast}\r\n />\r\n <Conversations\r\n handleChangeConversation={handleChangeConversation}\r\n coreState={coreState}\r\n conversationState={conversationState}\r\n uiState={uiState}\r\n showToast={showToast}\r\n />\r\n </>\r\n )}\r\n </div>\r\n\r\n {!chatbot!.appearance.others.removePoweredBy && (\r\n <div className=\"livelinkPoweredDiv2\">\r\n <span>Powered By </span>\r\n <img src={chatlogo} alt=\"Logo\" /* crossOrigin=\"anonymous\" */ />\r\n <a href=\"https://robodialog.com\" target=\"_blank\">\r\n Robodialog\r\n </a>\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\n// MARK: Main Chat Component\r\n\r\ninterface ChatProps {\r\n coreState: CoreStateContext;\r\n conversationState: ConversationStateContext;\r\n uiState: UIStateContext;\r\n fullScreen?: boolean;\r\n}\r\n\r\nconst Chat: FunctionalComponent<ChatProps> = ({\r\n coreState,\r\n conversationState,\r\n uiState,\r\n fullScreen,\r\n}) => {\r\n const [isMobileVersion, setIsMobileVersion] = useState(false);\r\n const [showHoveringMessage, setShowHoveringMessage] = useState(true);\r\n const chatOpenedBefore = getFromLocalStorage<boolean>(\r\n \"robodialog-chatbot-opened\",\r\n );\r\n const [latestMessageTimeout, setLatestMessageTimeout] = useState<\r\n number | null\r\n >(null);\r\n const { userData, chatbot } = coreState;\r\n const { newMessage, setNewMessage } = conversationState;\r\n const { setInteracted, chatOpen, setChatOpen } = uiState;\r\n\r\n const node = chatbot!.chatflow.nodes.find((node: any) => {\r\n if (userData?.isUser) {\r\n return node.type === \"StartNode\" && node.data.channel.users;\r\n }\r\n return node.type === \"StartNode\" && node.data.channel.visitors;\r\n });\r\n\r\n const hoveringMessages = node?.data.hoveringMessage || null;\r\n\r\n const openChat = () => {\r\n setChatOpen(!chatOpen);\r\n };\r\n\r\n if (typeof window !== \"undefined\") {\r\n (window as any).robodialog = {\r\n ...((window as any).robodialog || {}),\r\n openChat,\r\n };\r\n }\r\n\r\n const chatbotPosition = chatbot!.appearance.others.position;\r\n const isBottomLeft =\r\n chatbotPosition[isMobileVersion ? \"mobile\" : \"desktop\"].position ===\r\n \"bottomleft\";\r\n\r\n const chatbotMainStyle: JSX.CSSProperties = {\r\n alignItems: isMobileVersion\r\n ? chatbotPosition.mobile.position === \"bottomleft\"\r\n ? \"flex-start\"\r\n : \"flex-end\"\r\n : chatbotPosition.desktop.position === \"bottomleft\"\r\n ? \"flex-start\"\r\n : \"flex-end\",\r\n bottom: isMobileVersion\r\n ? `${chatbotPosition.mobile.verticalSpace}px`\r\n : `${chatbotPosition.desktop.verticalSpace}px`,\r\n [isBottomLeft ? \"left\" : \"right\"]: isMobileVersion\r\n ? `${chatbotPosition.mobile.horizontalSpace}px`\r\n : `${chatbotPosition.desktop.horizontalSpace}px`,\r\n };\r\n\r\n useEffect(() => {\r\n const handleResize = () => {\r\n setIsMobileVersion(window.innerWidth < chatbotPosition.mobileStartsFrom);\r\n };\r\n\r\n handleResize();\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, [chatbotPosition.mobileStartsFrom]);\r\n\r\n useEffect(() => {\r\n if (chatOpen) {\r\n setInteracted(true);\r\n setShowHoveringMessage(false);\r\n saveToLocalStorage(\"robodialog-chatbot-opened\", true);\r\n }\r\n }, [chatOpen]);\r\n\r\n useEffect(() => {\r\n if (newMessage && node?.data.popupMessage.value) {\r\n const messageTimeout = node.data.popupMessage.duration;\r\n\r\n if (latestMessageTimeout) {\r\n clearTimeout(latestMessageTimeout);\r\n }\r\n\r\n const timeout = window.setTimeout(() => {\r\n setNewMessage(null);\r\n }, messageTimeout * 1000);\r\n\r\n setLatestMessageTimeout(timeout);\r\n }\r\n\r\n return () => {\r\n if (latestMessageTimeout) {\r\n clearTimeout(latestMessageTimeout);\r\n }\r\n };\r\n }, [newMessage]);\r\n\r\n useEffect(() => {\r\n const openConversation = node?.data.automaticallyOpenConversation;\r\n if (!openConversation?.value || fullScreen) return;\r\n\r\n if (\r\n openConversation.type === \"allTheTime\" ||\r\n (openConversation.type === \"oncePerVisit\" && !chatOpenedBefore)\r\n ) {\r\n setChatOpen(true);\r\n setShowHoveringMessage(false);\r\n saveToLocalStorage(\"robodialog-chatbot-opened\", true);\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (fullScreen) {\r\n setChatOpen(true);\r\n }\r\n }, [fullScreen, setChatOpen]);\r\n\r\n const mainChatContent = (\r\n <div\r\n className={`chatbotMain ${fullScreen ? \"fullscreen\" : \"\"}`}\r\n style={fullScreen ? undefined : chatbotMainStyle}\r\n >\r\n <ConversationsMain\r\n chatOpen={chatOpen}\r\n coreState={coreState}\r\n conversationState={conversationState}\r\n uiState={uiState}\r\n isMobileVersion={isMobileVersion}\r\n fullScreen={fullScreen}\r\n />\r\n\r\n {!fullScreen && (\r\n <>\r\n <ChatHoveringMessages\r\n chatbot={chatbot!}\r\n showHoveringMessage={showHoveringMessage}\r\n hoveringMessages={hoveringMessages}\r\n setShowHoveringMessage={setShowHoveringMessage}\r\n coreState={coreState}\r\n conversationState={conversationState}\r\n uiState={uiState}\r\n node={node}\r\n setChatOpen={setChatOpen}\r\n />\r\n <div\r\n className=\"chatbotChat\"\r\n style={{ flexDirection: isBottomLeft ? \"row-reverse\" : \"row\" }}\r\n >\r\n <div className=\"chatbotDrag handle\">\r\n <DragIcon className=\"background-text-color\" width={10} />\r\n </div>\r\n\r\n <div className=\"chatbotChatInside\" onClick={openChat}>\r\n <img\r\n src={transformMediaUrl(chatbot!.appearance.images.chat, 70)}\r\n alt=\"Chat\"\r\n style={{ display: chatOpen ? \"none\" : \"block\" }}\r\n />\r\n\r\n <Cross\r\n className=\"background-text-color\"\r\n style={{ display: chatOpen ? \"block\" : \"none\" }}\r\n />\r\n </div>\r\n </div>\r\n </>\r\n )}\r\n </div>\r\n );\r\n\r\n if (fullScreen) {\r\n return mainChatContent;\r\n }\r\n\r\n return (\r\n <Draggable\r\n axis=\"both\"\r\n handle=\".handle\"\r\n defaultPosition={{ x: 0, y: 0 }}\r\n position={chatOpen ? { x: 0, y: 0 } : undefined}\r\n scale={1}\r\n bounds=\".robodialog-chatbot-app\"\r\n >\r\n {mainChatContent}\r\n </Draggable>\r\n );\r\n};\r\n\r\nexport default Chat;\r\n","export const Console = () => {\r\n if (\r\n typeof window !== \"undefined\" &&\r\n window.console &&\r\n window.location.hostname !== \"localhost\"\r\n ) {\r\n return console;\r\n } else {\r\n return {\r\n log: () => {},\r\n error: () => {},\r\n };\r\n }\r\n};\r\n","/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol */\r\n\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar events = {exports: {}};\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n };\n\nvar ReflectOwnKeys;\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n};\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nevents.exports = EventEmitter;\nevents.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n }\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n\nvar eventsExports = events.exports;\nvar EventEmitter$1 = /*@__PURE__*/getDefaultExportFromCjs(eventsExports);\n\nvar errorCodes;\n(function (errorCodes) {\n errorCodes[errorCodes[\"timeout\"] = 1] = \"timeout\";\n errorCodes[errorCodes[\"transportClosed\"] = 2] = \"transportClosed\";\n errorCodes[errorCodes[\"clientDisconnected\"] = 3] = \"clientDisconnected\";\n errorCodes[errorCodes[\"clientClosed\"] = 4] = \"clientClosed\";\n errorCodes[errorCodes[\"clientConnectToken\"] = 5] = \"clientConnectToken\";\n errorCodes[errorCodes[\"clientRefreshToken\"] = 6] = \"clientRefreshToken\";\n errorCodes[errorCodes[\"subscriptionUnsubscribed\"] = 7] = \"subscriptionUnsubscribed\";\n errorCodes[errorCodes[\"subscriptionSubscribeToken\"] = 8] = \"subscriptionSubscribeToken\";\n errorCodes[errorCodes[\"subscriptionRefreshToken\"] = 9] = \"subscriptionRefreshToken\";\n errorCodes[errorCodes[\"transportWriteError\"] = 10] = \"transportWriteError\";\n errorCodes[errorCodes[\"connectionClosed\"] = 11] = \"connectionClosed\";\n errorCodes[errorCodes[\"badConfiguration\"] = 12] = \"badConfiguration\";\n})(errorCodes || (errorCodes = {}));\nvar connectingCodes;\n(function (connectingCodes) {\n connectingCodes[connectingCodes[\"connectCalled\"] = 0] = \"connectCalled\";\n connectingCodes[connectingCodes[\"transportClosed\"] = 1] = \"transportClosed\";\n connectingCodes[connectingCodes[\"noPing\"] = 2] = \"noPing\";\n connectingCodes[connectingCodes[\"subscribeTimeout\"] = 3] = \"subscribeTimeout\";\n connectingCodes[connectingCodes[\"unsubscribeError\"] = 4] = \"unsubscribeError\";\n})(connectingCodes || (connectingCodes = {}));\nvar disconnectedCodes;\n(function (disconnectedCodes) {\n disconnectedCodes[disconnectedCodes[\"disconnectCalled\"] = 0] = \"disconnectCalled\";\n disconnectedCodes[disconnectedCodes[\"unauthorized\"] = 1] = \"unauthorized\";\n disconnectedCodes[disconnectedCodes[\"badProtocol\"] = 2] = \"badProtocol\";\n disconnectedCodes[disconnectedCodes[\"messageSizeLimit\"] = 3] = \"messageSizeLimit\";\n})(disconnectedCodes || (disconnectedCodes = {}));\nvar subscribingCodes;\n(function (subscribingCodes) {\n subscribingCodes[subscribingCodes[\"subscribeCalled\"] = 0] = \"subscribeCalled\";\n subscribingCodes[subscribingCodes[\"transportClosed\"] = 1] = \"transportClosed\";\n})(subscribingCodes || (subscribingCodes = {}));\nvar unsubscribedCodes;\n(function (unsubscribedCodes) {\n unsubscribedCodes[unsubscribedCodes[\"unsubscribeCalled\"] = 0] = \"unsubscribeCalled\";\n unsubscribedCodes[unsubscribedCodes[\"unauthorized\"] = 1] = \"unauthorized\";\n unsubscribedCodes[unsubscribedCodes[\"clientClosed\"] = 2] = \"clientClosed\";\n})(unsubscribedCodes || (unsubscribedCodes = {}));\nvar subscriptionFlags;\n(function (subscriptionFlags) {\n subscriptionFlags[subscriptionFlags[\"channelCompaction\"] = 1] = \"channelCompaction\";\n})(subscriptionFlags || (subscriptionFlags = {}));\n\n/** State of client. */\nvar State;\n(function (State) {\n State[\"Disconnected\"] = \"disconnected\";\n State[\"Connecting\"] = \"connecting\";\n State[\"Connected\"] = \"connected\";\n})(State || (State = {}));\n/** State of Subscription */\nvar SubscriptionState;\n(function (SubscriptionState) {\n SubscriptionState[\"Unsubscribed\"] = \"unsubscribed\";\n SubscriptionState[\"Subscribing\"] = \"subscribing\";\n SubscriptionState[\"Subscribed\"] = \"subscribed\";\n})(SubscriptionState || (SubscriptionState = {}));\n\n/** @internal */\nfunction startsWith(value, prefix) {\n return value.lastIndexOf(prefix, 0) === 0;\n}\n/** @internal */\nfunction isFunction(value) {\n if (value === undefined || value === null) {\n return false;\n }\n return typeof value === 'function';\n}\n/** @internal */\nfunction log(level, args) {\n if (globalThis.console) {\n const logger = globalThis.console[level];\n if (isFunction(logger)) {\n logger.apply(globalThis.console, args);\n }\n }\n}\nfunction randomInt(min, max) {\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\n/** @internal */\nfunction backoff(step, min, max) {\n // Full jitter technique, see:\n // https://aws.amazon.com/blogs/architecture/exponential-backoff-and-jitter/\n if (step > 31) {\n step = 31;\n }\n const interval = randomInt(0, Math.min(max, min * Math.pow(2, step)));\n return Math.min(max, min + interval);\n}\n/** @internal */\nfunction errorExists(data) {\n return 'error' in data && data.error !== null;\n}\n/** @internal */\nfunction ttlMilliseconds(ttl) {\n // https://stackoverflow.com/questions/12633405/what-is-the-maximum-delay-for-setinterval\n return Math.min(ttl * 1000, 2147483647);\n}\n\n/** Subscription to a channel */\nclass Subscription extends EventEmitter$1 {\n /** Subscription constructor should not be used directly, create subscriptions using Client method. */\n constructor(centrifuge, channel, options) {\n super();\n this._resubscribeTimeout = null;\n this._refreshTimeout = null;\n this.channel = channel;\n this.state = SubscriptionState.Unsubscribed;\n this._centrifuge = centrifuge;\n this._token = '';\n this._getToken = null;\n this._data = null;\n this._getData = null;\n this._recover = false;\n this._offset = null;\n this._epoch = null;\n this._id = 0;\n this._recoverable = false;\n this._positioned = false;\n this._joinLeave = false;\n this._minResubscribeDelay = 500;\n this._maxResubscribeDelay = 20000;\n this._resubscribeTimeout = null;\n this._resubscribeAttempts = 0;\n this._promises = {};\n this._promiseId = 0;\n this._inflight = false;\n this._refreshTimeout = null;\n this._delta = '';\n this._delta_negotiated = false;\n this._tagsFilter = null;\n this._prevValue = null;\n this._unsubPromise = Promise.resolve();\n this._setOptions(options);\n // @ts-ignore – we are hiding some symbols from public API autocompletion.\n if (this._centrifuge._debugEnabled) {\n this.on('state', (ctx) => {\n this._debug('subscription state', channel, ctx.oldState, '->', ctx.newState);\n });\n this.on('error', (ctx) => {\n this._debug('subscription error', channel, ctx);\n });\n }\n else {\n // Avoid unhandled exception in EventEmitter for non-set error handler.\n this.on('error', function () { Function.prototype(); });\n }\n }\n /** ready returns a Promise which resolves upon subscription goes to Subscribed\n * state and rejects in case of subscription goes to Unsubscribed state.\n * Optional timeout can be passed.*/\n ready(timeout) {\n if (this.state === SubscriptionState.Unsubscribed) {\n return Promise.reject({ code: errorCodes.subscriptionUnsubscribed, message: this.state });\n }\n if (this.state === SubscriptionState.Subscribed) {\n return Promise.resolve();\n }\n return new Promise((res, rej) => {\n const ctx = {\n resolve: res,\n reject: rej\n };\n if (timeout) {\n ctx.timeout = setTimeout(function () {\n rej({ code: errorCodes.timeout, message: 'timeout' });\n }, timeout);\n }\n this._promises[this._nextPromiseId()] = ctx;\n });\n }\n /** subscribe to a channel.*/\n subscribe() {\n if (this._isSubscribed()) {\n return;\n }\n this._resubscribeAttempts = 0;\n this._setSubscribing(subscribingCodes.subscribeCalled, 'subscribe called');\n }\n /** unsubscribe from a channel, keeping position state.*/\n unsubscribe() {\n this._unsubPromise = this._setUnsubscribed(unsubscribedCodes.unsubscribeCalled, 'unsubscribe called', true);\n }\n /** publish data to a channel.*/\n publish(data) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._methodCall();\n return this._centrifuge.publish(this.channel, data);\n });\n }\n /** get online presence for a channel.*/\n presence() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._methodCall();\n return this._centrifuge.presence(this.channel);\n });\n }\n /** presence stats for a channel (num clients and unique users).*/\n presenceStats() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._methodCall();\n return this._centrifuge.presenceStats(this.channel);\n });\n }\n /** history for a channel. By default it does not return publications (only current\n * StreamPosition data) – provide an explicit limit > 0 to load publications.*/\n history(opts) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._methodCall();\n return this._centrifuge.history(this.channel, opts);\n });\n }\n /**\n * Sets server-side tags filter for the subscription.\n * This only applies on the next subscription attempt, not the current one.\n * Cannot be used together with delta option.\n *\n * @param tagsFilter - Filter configuration object or null to remove filter\n * @throws {Error} If both delta and tagsFilter are configured\n *\n * @example\n * ```typescript\n * // Simple equality filter\n * sub.setTagsFilter({\n * key: 'ticker',\n * cmp: 'eq',\n * val: 'BTC'\n * });\n * ```\n *\n * @example\n * ```typescript\n * // Complex filter with logical operators\n * sub.setTagsFilter({\n * op: 'and',\n * nodes: [\n * { key: 'ticker', cmp: 'eq', val: 'BTC' },\n * { key: 'price', cmp: 'gt', val: '50000' }\n * ]\n * });\n * ```\n *\n * @example\n * ```typescript\n * // Filter with IN operator\n * sub.setTagsFilter({\n * key: 'ticker',\n * cmp: 'in',\n * vals: ['BTC', 'ETH', 'SOL']\n * });\n * ```\n */\n setTagsFilter(tagsFilter) {\n if (tagsFilter && this._delta) {\n throw new Error('cannot use delta and tagsFilter together');\n }\n this._tagsFilter = tagsFilter;\n }\n /** setData allows setting subscription data. This only applied on the next subscription attempt,\n * Note that if getData callback is configured, it will override this value during resubscriptions. */\n setData(data) {\n this._data = data;\n }\n _methodCall() {\n if (this._isSubscribed()) {\n return Promise.resolve();\n }\n if (this._isUnsubscribed()) {\n return Promise.reject({\n code: errorCodes.subscriptionUnsubscribed,\n message: this.state\n });\n }\n return new Promise((resolve, reject) => {\n // @ts-ignore – we are hiding some symbols from public API autocompletion.\n const timeoutDuration = this._centrifuge._config.timeout;\n const timeout = setTimeout(() => {\n reject({ code: errorCodes.timeout, message: 'timeout' });\n }, timeoutDuration);\n this._promises[this._nextPromiseId()] = {\n timeout,\n resolve,\n reject\n };\n });\n }\n _nextPromiseId() {\n return ++this._promiseId;\n }\n _needRecover() {\n return this._recover === true;\n }\n _isUnsubscribed() {\n return this.state === SubscriptionState.Unsubscribed;\n }\n _isSubscribing() {\n return this.state === SubscriptionState.Subscribing;\n }\n _isSubscribed() {\n return this.state === SubscriptionState.Subscribed;\n }\n _setState(newState) {\n if (this.state !== newState) {\n const oldState = this.state;\n this.state = newState;\n this.emit('state', { newState, oldState, channel: this.channel });\n return true;\n }\n return false;\n }\n _usesToken() {\n return this._token !== '' || this._getToken !== null;\n }\n _clearSubscribingState() {\n this._resubscribeAttempts = 0;\n this._clearResubscribeTimeout();\n }\n _clearSubscribedState() {\n this._clearRefreshTimeout();\n }\n _setSubscribed(result) {\n if (!this._isSubscribing()) {\n return;\n }\n this._clearSubscribingState();\n if (result.id) {\n this._id = result.id;\n }\n if (result.recoverable) {\n this._recover = true;\n this._offset = result.offset || 0;\n this._epoch = result.epoch || '';\n }\n if (result.delta) {\n this._delta_negotiated = true;\n }\n else {\n this._delta_negotiated = false;\n }\n this._setState(SubscriptionState.Subscribed);\n // @ts-ignore – we are hiding some methods from public API autocompletion.\n const ctx = this._centrifuge._getSubscribeContext(this.channel, result);\n this.emit('subscribed', ctx);\n this._resolvePromises();\n const pubs = result.publications;\n if (pubs && pubs.length > 0) {\n for (const i in pubs) {\n if (!pubs.hasOwnProperty(i)) {\n continue;\n }\n this._handlePublication(pubs[i]);\n }\n }\n if (result.expires === true) {\n this._refreshTimeout = setTimeout(() => this._refresh(), ttlMilliseconds(result.ttl));\n }\n }\n _setSubscribing(code, reason) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._isSubscribing()) {\n return;\n }\n if (this._isSubscribed()) {\n this._clearSubscribedState();\n }\n if (this._setState(SubscriptionState.Subscribing)) {\n this.emit('subscribing', { channel: this.channel, code: code, reason: reason });\n }\n // @ts-ignore – for performance reasons only await _unsubPromise for emulution case where it's required.\n if (this._centrifuge._transport && this._centrifuge._transport.emulation()) {\n yield this._unsubPromise;\n }\n if (!this._isSubscribing()) {\n return;\n }\n this._subscribe();\n });\n }\n _subscribe() {\n this._debug('subscribing on', this.channel);\n if (!this._isTransportOpen()) {\n this._debug('delay subscribe on', this.channel, 'till connected');\n return null;\n }\n if (this._inflight) {\n return null;\n }\n this._inflight = true;\n if (this._canSubscribeWithoutGettingToken()) {\n return this._subscribeWithoutToken();\n }\n this._getSubscriptionToken()\n .then(token => this._handleTokenResponse(token))\n .catch(e => this._handleTokenError(e));\n return null;\n }\n _isTransportOpen() {\n // @ts-ignore – we are hiding some symbols from public API autocompletion.\n return this._centrifuge._transportIsOpen;\n }\n _canSubscribeWithoutGettingToken() {\n return !this._usesToken() || !!this._token;\n }\n _subscribeWithoutToken() {\n if (this._getData) {\n this._getDataAndSubscribe(this._token);\n return null;\n }\n else {\n return this._sendSubscribe(this._token);\n }\n }\n _getDataAndSubscribe(token) {\n if (!this._getData) {\n this._inflight = false;\n return;\n }\n this._getData({ channel: this.channel })\n .then(data => {\n if (!this._isSubscribing()) {\n this._inflight = false;\n return;\n }\n this._data = data;\n this._sendSubscribe(token);\n })\n .catch(e => this._handleGetDataError(e));\n }\n _handleGetDataError(error) {\n if (!this._isSubscribing()) {\n this._inflight = false;\n return;\n }\n if (error instanceof UnauthorizedError) {\n this._inflight = false;\n this._failUnauthorized();\n return;\n }\n this.emit('error', {\n type: 'subscribeData',\n channel: this.channel,\n error: {\n code: errorCodes.badConfiguration,\n message: (error === null || error === void 0 ? void 0 : error.toString()) || ''\n }\n });\n this._inflight = false;\n this._scheduleResubscribe();\n }\n _handleTokenResponse(token) {\n if (!this._isSubscribing()) {\n this._inflight = false;\n return;\n }\n if (!token) {\n this._inflight = false;\n this._failUnauthorized();\n return;\n }\n this._token = token;\n if (this._getData) {\n this._getDataAndSubscribe(token);\n }\n else {\n this._sendSubscribe(token);\n }\n }\n _handleTokenError(error) {\n if (!this._isSubscribing()) {\n this._inflight = false;\n return;\n }\n if (error instanceof UnauthorizedError) {\n this._inflight = false;\n this._failUnauthorized();\n return;\n }\n this.emit('error', {\n type: 'subscribeToken',\n channel: this.channel,\n error: {\n code: errorCodes.subscriptionSubscribeToken,\n message: (error === null || error === void 0 ? void 0 : error.toString()) || ''\n }\n });\n this._inflight = false;\n this._scheduleResubscribe();\n }\n _sendSubscribe(token) {\n if (!this._isTransportOpen()) {\n this._inflight = false;\n return null;\n }\n const cmd = this._buildSubscribeCommand(token);\n // @ts-ignore – we are hiding some symbols from public API autocompletion.\n this._centrifuge._call(cmd).then(resolveCtx => {\n this._inflight = false;\n const result = resolveCtx.reply.subscribe;\n this._handleSubscribeResponse(result);\n if (resolveCtx.next) {\n resolveCtx.next();\n }\n }, rejectCtx => {\n this._inflight = false;\n this._handleSubscribeError(rejectCtx.error);\n if (rejectCtx.next) {\n rejectCtx.next();\n }\n });\n return cmd;\n }\n _buildSubscribeCommand(token) {\n const req = { channel: this.channel };\n if (token)\n req.token = token;\n if (this._data)\n req.data = this._data;\n if (this._positioned)\n req.positioned = true;\n if (this._recoverable)\n req.recoverable = true;\n if (this._joinLeave)\n req.join_leave = true;\n req.flag = subscriptionFlags.channelCompaction;\n if (this._needRecover()) {\n req.recover = true;\n const offset = this._getOffset();\n if (offset)\n req.offset = offset;\n const epoch = this._getEpoch();\n if (epoch)\n req.epoch = epoch;\n }\n if (this._delta)\n req.delta = this._delta;\n if (this._tagsFilter)\n req.tf = this._tagsFilter;\n return { subscribe: req };\n }\n _debug(...args) {\n // @ts-ignore – we are hiding some symbols from public API autocompletion.\n this._centrifuge._debug(...args);\n }\n _handleSubscribeError(error) {\n if (!this._isSubscribing()) {\n return;\n }\n if (error.code === errorCodes.timeout) {\n // @ts-ignore – we are hiding some symbols from public API autocompletion.\n this._centrifuge._disconnect(connectingCodes.subscribeTimeout, 'subscribe timeout', true);\n return;\n }\n this._subscribeError(error);\n }\n _handleSubscribeResponse(result) {\n if (!this._isSubscribing()) {\n return;\n }\n this._setSubscribed(result);\n }\n _setUnsubscribed(code, reason, sendUnsubscribe) {\n if (this._isUnsubscribed()) {\n return Promise.resolve();\n }\n let promise = Promise.resolve();\n if (this._isSubscribed()) {\n if (sendUnsubscribe) {\n // @ts-ignore – we are hiding some methods from public API autocompletion.\n promise = this._centrifuge._unsubscribe(this);\n }\n this._clearSubscribedState();\n }\n else if (this._isSubscribing()) {\n if (this._inflight && sendUnsubscribe) {\n // @ts-ignore – we are hiding some methods from public API autocompletion.\n promise = this._centrifuge._unsubscribe(this);\n }\n this._clearSubscribingState();\n }\n this._inflight = false;\n if (this._setState(SubscriptionState.Unsubscribed)) {\n this.emit('unsubscribed', { channel: this.channel, code: code, reason: reason });\n }\n this._rejectPromises({ code: errorCodes.subscriptionUnsubscribed, message: this.state });\n return promise;\n }\n _handlePublication(pub) {\n if (this._delta && this._delta_negotiated) {\n // @ts-ignore – we are hiding some methods from public API autocompletion.\n const { newData, newPrevValue } = this._centrifuge._codec.applyDeltaIfNeeded(pub, this._prevValue);\n pub.data = newData;\n this._prevValue = newPrevValue;\n }\n // @ts-ignore – we are hiding some methods from public API autocompletion.\n const ctx = this._centrifuge._getPublicationContext(this.channel, pub);\n this.emit('publication', ctx);\n if (pub.offset) {\n this._offset = pub.offset;\n }\n }\n _handleJoin(join) {\n // @ts-ignore – we are hiding some methods from public API autocompletion.\n const info = this._centrifuge._getJoinLeaveContext(join.info);\n this.emit('join', { channel: this.channel, info: info });\n }\n _handleLeave(leave) {\n // @ts-ignore – we are hiding some methods from public API autocompletion.\n const info = this._centrifuge._getJoinLeaveContext(leave.info);\n this.emit('leave', { channel: this.channel, info: info });\n }\n _resolvePromises() {\n for (const id in this._promises) {\n if (!this._promises.hasOwnProperty(id)) {\n continue;\n }\n if (this._promises[id].timeout) {\n clearTimeout(this._promises[id].timeout);\n }\n this._promises[id].resolve();\n delete this._promises[id];\n }\n }\n _rejectPromises(err) {\n for (const id in this._promises) {\n if (!this._promises.hasOwnProperty(id)) {\n continue;\n }\n if (this._promises[id].timeout) {\n clearTimeout(this._promises[id].timeout);\n }\n this._promises[id].reject(err);\n delete this._promises[id];\n }\n }\n _scheduleResubscribe() {\n if (!this._isSubscribing()) {\n this._debug('not in subscribing state, skip resubscribe scheduling', this.channel);\n return;\n }\n const self = this;\n const delay = this._getResubscribeDelay();\n this._resubscribeTimeout = setTimeout(function () {\n if (self._isSubscribing()) {\n self._subscribe();\n }\n }, delay);\n this._debug('resubscribe scheduled after ' + delay, this.channel);\n }\n _subscribeError(err) {\n if (!this._isSubscribing()) {\n return;\n }\n if (err.code < 100 || err.code === 109 || err.temporary === true) {\n if (err.code === 109) { // Token expired error.\n this._token = '';\n }\n const errContext = {\n channel: this.channel,\n type: 'subscribe',\n error: err\n };\n if (this._centrifuge.state === State.Connected) {\n this.emit('error', errContext);\n }\n this._scheduleResubscribe();\n }\n else {\n this._setUnsubscribed(err.code, err.message, false);\n }\n }\n _getResubscribeDelay() {\n const delay = backoff(this._resubscribeAttempts, this._minResubscribeDelay, this._maxResubscribeDelay);\n this._resubscribeAttempts++;\n return delay;\n }\n _setOptions(options) {\n if (!options) {\n return;\n }\n if (options.since) {\n this._offset = options.since.offset || 0;\n this._epoch = options.since.epoch || '';\n this._recover = true;\n }\n if (options.data) {\n this._data = options.data;\n }\n if (options.getData) {\n this._getData = options.getData;\n }\n if (options.minResubscribeDelay !== undefined) {\n this._minResubscribeDelay = options.minResubscribeDelay;\n }\n if (options.maxResubscribeDelay !== undefined) {\n this._maxResubscribeDelay = options.maxResubscribeDelay;\n }\n if (options.token) {\n this._token = options.token;\n }\n if (options.getToken) {\n this._getToken = options.getToken;\n }\n if (options.positioned === true) {\n this._positioned = true;\n }\n if (options.recoverable === true) {\n this._recoverable = true;\n }\n if (options.joinLeave === true) {\n this._joinLeave = true;\n }\n if (options.delta) {\n if (options.delta !== 'fossil') {\n throw new Error('unsupported delta format');\n }\n this._delta = options.delta;\n }\n if (options.tagsFilter) {\n this._tagsFilter = options.tagsFilter;\n }\n if (this._tagsFilter && this._delta) {\n throw new Error('cannot use delta and tagsFilter together');\n }\n }\n _getOffset() {\n const offset = this._offset;\n if (offset !== null) {\n return offset;\n }\n return 0;\n }\n _getEpoch() {\n const epoch = this._epoch;\n if (epoch !== null) {\n return epoch;\n }\n return '';\n }\n _clearRefreshTimeout() {\n if (this._refreshTimeout !== null) {\n clearTimeout(this._refreshTimeout);\n this._refreshTimeout = null;\n }\n }\n _clearResubscribeTimeout() {\n if (this._resubscribeTimeout !== null) {\n clearTimeout(this._resubscribeTimeout);\n this._resubscribeTimeout = null;\n }\n }\n _getSubscriptionToken() {\n this._debug('get subscription token for channel', this.channel);\n const ctx = {\n channel: this.channel\n };\n const getToken = this._getToken;\n if (getToken === null) {\n this.emit('error', {\n type: 'configuration',\n channel: this.channel,\n error: {\n code: errorCodes.badConfiguration,\n message: 'provide a function to get channel subscription token'\n }\n });\n return Promise.reject(new UnauthorizedError(''));\n }\n return getToken(ctx);\n }\n _refresh() {\n this._clearRefreshTimeout();\n const self = this;\n this._getSubscriptionToken().then(function (token) {\n if (!self._isSubscribed()) {\n return;\n }\n if (!token) {\n self._failUnauthorized();\n return;\n }\n self._token = token;\n const req = {\n channel: self.channel,\n token: token\n };\n const msg = {\n 'sub_refresh': req\n };\n // @ts-ignore – we are hiding some symbols from public API autocompletion.\n self._centrifuge._call(msg).then(resolveCtx => {\n const result = resolveCtx.reply.sub_refresh;\n self._refreshResponse(result);\n if (resolveCtx.next) {\n resolveCtx.next();\n }\n }, rejectCtx => {\n self._refreshError(rejectCtx.error);\n if (rejectCtx.next) {\n rejectCtx.next();\n }\n });\n }).catch(function (e) {\n if (e instanceof UnauthorizedError) {\n self._failUnauthorized();\n return;\n }\n self.emit('error', {\n type: 'refreshToken',\n channel: self.channel,\n error: {\n code: errorCodes.subscriptionRefreshToken,\n message: e !== undefined ? e.toString() : ''\n }\n });\n self._refreshTimeout = setTimeout(() => self._refresh(), self._getRefreshRetryDelay());\n });\n }\n _refreshResponse(result) {\n if (!this._isSubscribed()) {\n return;\n }\n this._debug('subscription token refreshed, channel', this.channel);\n this._clearRefreshTimeout();\n if (result.expires === true) {\n this._refreshTimeout = setTimeout(() => this._refresh(), ttlMilliseconds(result.ttl));\n }\n }\n _refreshError(err) {\n if (!this._isSubscribed()) {\n return;\n }\n if (err.code < 100 || err.temporary === true) {\n this.emit('error', {\n type: 'refresh',\n channel: this.channel,\n error: err\n });\n this._refreshTimeout = setTimeout(() => this._refresh(), this._getRefreshRetryDelay());\n }\n else {\n this._setUnsubscribed(err.code, err.message, true);\n }\n }\n _getRefreshRetryDelay() {\n return backoff(0, 10000, 20000);\n }\n _failUnauthorized() {\n this._setUnsubscribed(unsubscribedCodes.unauthorized, 'unauthorized', true);\n }\n}\n\n/** @internal */\nclass SockjsTransport {\n constructor(endpoint, options) {\n this.endpoint = endpoint;\n this.options = options;\n this._transport = null;\n }\n name() {\n return 'sockjs';\n }\n subName() {\n return 'sockjs-' + this._transport.transport;\n }\n emulation() {\n return false;\n }\n supported() {\n return this.options.sockjs !== null;\n }\n initialize(_protocol, callbacks) {\n this._transport = new this.options.sockjs(this.endpoint, null, this.options.sockjsOptions);\n this._transport.onopen = () => {\n callbacks.onOpen();\n };\n this._transport.onerror = e => {\n callbacks.onError(e);\n };\n this._transport.onclose = closeEvent => {\n callbacks.onClose(closeEvent);\n };\n this._transport.onmessage = event => {\n callbacks.onMessage(event.data);\n };\n }\n close() {\n this._transport.close();\n }\n send(data) {\n this._transport.send(data);\n }\n}\n\n/** @internal */\nclass WebsocketTransport {\n constructor(endpoint, options) {\n this.endpoint = endpoint;\n this.options = options;\n this._transport = null;\n }\n name() {\n return 'websocket';\n }\n subName() {\n return 'websocket';\n }\n emulation() {\n return false;\n }\n supported() {\n return this.options.websocket !== undefined && this.options.websocket !== null;\n }\n initialize(protocol, callbacks) {\n let subProtocol = '';\n if (protocol === 'protobuf') {\n subProtocol = 'centrifuge-protobuf';\n }\n if (subProtocol !== '') {\n this._transport = new this.options.websocket(this.endpoint, subProtocol);\n }\n else {\n this._transport = new this.options.websocket(this.endpoint);\n }\n if (protocol === 'protobuf') {\n this._transport.binaryType = 'arraybuffer';\n }\n this._transport.onopen = () => {\n callbacks.onOpen();\n };\n this._transport.onerror = e => {\n callbacks.onError(e);\n };\n this._transport.onclose = closeEvent => {\n callbacks.onClose(closeEvent);\n };\n this._transport.onmessage = event => {\n callbacks.onMessage(event.data);\n };\n }\n close() {\n this._transport.close();\n }\n send(data) {\n this._transport.send(data);\n }\n}\n\n/** @internal */\nclass HttpStreamTransport {\n constructor(endpoint, options) {\n this.endpoint = endpoint;\n this.options = options;\n this._abortController = null;\n this._utf8decoder = new TextDecoder();\n this._protocol = 'json';\n }\n name() {\n return 'http_stream';\n }\n subName() {\n return 'http_stream';\n }\n emulation() {\n return true;\n }\n _handleErrors(response) {\n if (!response.ok)\n throw new Error(response.status);\n return response;\n }\n _fetchEventTarget(self, endpoint, options) {\n const eventTarget = new EventTarget();\n // fetch with connection timeout maybe? https://github.com/github/fetch/issues/175\n const fetchFunc = self.options.fetch;\n fetchFunc(endpoint, options)\n .then(self._handleErrors)\n .then(response => {\n eventTarget.dispatchEvent(new Event('open'));\n let jsonStreamBuf = '';\n let jsonStreamPos = 0;\n let protoStreamBuf = new Uint8Array();\n const reader = response.body.getReader();\n return new self.options.readableStream({\n start(controller) {\n function pump() {\n return reader.read().then(({ done, value }) => {\n // When no more data needs to be consumed, close the stream\n if (done) {\n eventTarget.dispatchEvent(new Event('close'));\n controller.close();\n return;\n }\n try {\n if (self._protocol === 'json') {\n jsonStreamBuf += self._utf8decoder.decode(value);\n while (jsonStreamPos < jsonStreamBuf.length) {\n if (jsonStreamBuf[jsonStreamPos] === '\\n') {\n const line = jsonStreamBuf.substring(0, jsonStreamPos);\n eventTarget.dispatchEvent(new MessageEvent('message', { data: line }));\n jsonStreamBuf = jsonStreamBuf.substring(jsonStreamPos + 1);\n jsonStreamPos = 0;\n }\n else {\n ++jsonStreamPos;\n }\n }\n }\n else {\n const mergedArray = new Uint8Array(protoStreamBuf.length + value.length);\n mergedArray.set(protoStreamBuf);\n mergedArray.set(value, protoStreamBuf.length);\n protoStreamBuf = mergedArray;\n while (true) {\n const result = self.options.decoder.decodeReply(protoStreamBuf);\n if (result.ok) {\n const data = protoStreamBuf.slice(0, result.pos);\n eventTarget.dispatchEvent(new MessageEvent('message', { data: data }));\n protoStreamBuf = protoStreamBuf.slice(result.pos);\n continue;\n }\n break;\n }\n }\n }\n catch (error) {\n // @ts-ignore - improve later.\n eventTarget.dispatchEvent(new Event('error', { detail: error }));\n eventTarget.dispatchEvent(new Event('close'));\n controller.close();\n return;\n }\n pump();\n }).catch(function (e) {\n // @ts-ignore - improve later.\n eventTarget.dispatchEvent(new Event('error', { detail: e }));\n eventTarget.dispatchEvent(new Event('close'));\n controller.close();\n return;\n });\n }\n return pump();\n }\n });\n })\n .catch(error => {\n // @ts-ignore - improve later.\n eventTarget.dispatchEvent(new Event('error', { detail: error }));\n eventTarget.dispatchEvent(new Event('close'));\n });\n return eventTarget;\n }\n supported() {\n return this.options.fetch !== null &&\n this.options.readableStream !== null &&\n typeof TextDecoder !== 'undefined' &&\n typeof AbortController !== 'undefined' &&\n typeof EventTarget !== 'undefined' &&\n typeof Event !== 'undefined' &&\n typeof MessageEvent !== 'undefined' &&\n typeof Error !== 'undefined';\n }\n initialize(protocol, callbacks, initialData) {\n this._protocol = protocol;\n this._abortController = new AbortController();\n let headers;\n let body;\n if (protocol === 'json') {\n headers = {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n };\n body = initialData;\n }\n else {\n headers = {\n 'Accept': 'application/octet-stream',\n 'Content-Type': 'application/octet-stream'\n };\n body = initialData;\n }\n const fetchOptions = {\n method: 'POST',\n headers: headers,\n body: body,\n mode: 'cors',\n credentials: 'same-origin',\n signal: this._abortController.signal\n };\n const eventTarget = this._fetchEventTarget(this, this.endpoint, fetchOptions);\n eventTarget.addEventListener('open', () => {\n callbacks.onOpen();\n });\n eventTarget.addEventListener('error', (e) => {\n this._abortController.abort();\n callbacks.onError(e);\n });\n eventTarget.addEventListener('close', () => {\n this._abortController.abort();\n callbacks.onClose({\n code: 4,\n reason: 'connection closed'\n });\n });\n eventTarget.addEventListener('message', (e) => {\n callbacks.onMessage(e.data);\n });\n }\n close() {\n this._abortController.abort();\n }\n send(data, session, node) {\n let headers;\n let body;\n const req = {\n session: session,\n node: node,\n data: data\n };\n if (this._protocol === 'json') {\n headers = {\n 'Content-Type': 'application/json'\n };\n body = JSON.stringify(req);\n }\n else {\n headers = {\n 'Content-Type': 'application/octet-stream'\n };\n body = this.options.encoder.encodeEmulationRequest(req);\n }\n const fetchFunc = this.options.fetch;\n const fetchOptions = {\n method: 'POST',\n headers: headers,\n body: body,\n mode: 'cors',\n credentials: 'same-origin',\n };\n fetchFunc(this.options.emulationEndpoint, fetchOptions);\n }\n}\n\n/** @internal */\nclass SseTransport {\n constructor(endpoint, options) {\n this.endpoint = endpoint;\n this.options = options;\n this._protocol = 'json';\n this._transport = null;\n this._onClose = null;\n }\n name() {\n return 'sse';\n }\n subName() {\n return 'sse';\n }\n emulation() {\n return true;\n }\n supported() {\n return this.options.eventsource !== null && this.options.fetch !== null;\n }\n initialize(_protocol, callbacks, initialData) {\n let url;\n if (globalThis && globalThis.document && globalThis.document.baseURI) {\n // Handle case when endpoint is relative, like //example.com/connection/sse\n url = new URL(this.endpoint, globalThis.document.baseURI);\n }\n else {\n url = new URL(this.endpoint);\n }\n url.searchParams.append('cf_connect', initialData);\n const eventsourceOptions = {};\n const eventSource = new this.options.eventsource(url.toString(), eventsourceOptions);\n this._transport = eventSource;\n const self = this;\n eventSource.onopen = function () {\n callbacks.onOpen();\n };\n eventSource.onerror = function (e) {\n eventSource.close();\n callbacks.onError(e);\n callbacks.onClose({\n code: 4,\n reason: 'connection closed'\n });\n };\n eventSource.onmessage = function (e) {\n callbacks.onMessage(e.data);\n };\n self._onClose = function () {\n callbacks.onClose({\n code: 4,\n reason: 'connection closed'\n });\n };\n }\n close() {\n this._transport.close();\n if (this._onClose !== null) {\n this._onClose();\n }\n }\n send(data, session, node) {\n const req = {\n session: session,\n node: node,\n data: data\n };\n const headers = {\n 'Content-Type': 'application/json'\n };\n const body = JSON.stringify(req);\n const fetchFunc = this.options.fetch;\n const fetchOptions = {\n method: 'POST',\n headers: headers,\n body: body,\n mode: 'cors',\n credentials: 'same-origin',\n };\n fetchFunc(this.options.emulationEndpoint, fetchOptions);\n }\n}\n\n/** @internal */\nclass WebtransportTransport {\n constructor(endpoint, options) {\n this.endpoint = endpoint;\n this.options = options;\n this._transport = null;\n this._stream = null;\n this._writer = null;\n this._utf8decoder = new TextDecoder();\n this._protocol = 'json';\n }\n name() {\n return 'webtransport';\n }\n subName() {\n return 'webtransport';\n }\n emulation() {\n return false;\n }\n supported() {\n return this.options.webtransport !== undefined && this.options.webtransport !== null;\n }\n initialize(protocol, callbacks) {\n return __awaiter(this, void 0, void 0, function* () {\n let url;\n if (globalThis && globalThis.document && globalThis.document.baseURI) {\n // Handle case when endpoint is relative, like //example.com/connection/webtransport\n url = new URL(this.endpoint, globalThis.document.baseURI);\n }\n else {\n url = new URL(this.endpoint);\n }\n if (protocol === 'protobuf') {\n url.searchParams.append('cf_protocol', 'protobuf');\n }\n this._protocol = protocol;\n const eventTarget = new EventTarget();\n this._transport = new this.options.webtransport(url.toString());\n this._transport.closed.then(() => {\n callbacks.onClose({\n code: 4,\n reason: 'connection closed'\n });\n }).catch(() => {\n callbacks.onClose({\n code: 4,\n reason: 'connection closed'\n });\n });\n try {\n yield this._transport.ready;\n }\n catch (_a) {\n this.close();\n return;\n }\n let stream;\n try {\n stream = yield this._transport.createBidirectionalStream();\n }\n catch (_b) {\n this.close();\n return;\n }\n this._stream = stream;\n this._writer = this._stream.writable.getWriter();\n eventTarget.addEventListener('close', () => {\n callbacks.onClose({\n code: 4,\n reason: 'connection closed'\n });\n });\n eventTarget.addEventListener('message', (e) => {\n callbacks.onMessage(e.data);\n });\n this._startReading(eventTarget);\n callbacks.onOpen();\n });\n }\n _startReading(eventTarget) {\n return __awaiter(this, void 0, void 0, function* () {\n const reader = this._stream.readable.getReader();\n let jsonStreamBuf = '';\n let jsonStreamPos = 0;\n let protoStreamBuf = new Uint8Array();\n try {\n while (true) {\n const { done, value } = yield reader.read();\n if (value.length > 0) {\n if (this._protocol === 'json') {\n jsonStreamBuf += this._utf8decoder.decode(value);\n while (jsonStreamPos < jsonStreamBuf.length) {\n if (jsonStreamBuf[jsonStreamPos] === '\\n') {\n const line = jsonStreamBuf.substring(0, jsonStreamPos);\n eventTarget.dispatchEvent(new MessageEvent('message', { data: line }));\n jsonStreamBuf = jsonStreamBuf.substring(jsonStreamPos + 1);\n jsonStreamPos = 0;\n }\n else {\n ++jsonStreamPos;\n }\n }\n }\n else {\n const mergedArray = new Uint8Array(protoStreamBuf.length + value.length);\n mergedArray.set(protoStreamBuf);\n mergedArray.set(value, protoStreamBuf.length);\n protoStreamBuf = mergedArray;\n while (true) {\n const result = this.options.decoder.decodeReply(protoStreamBuf);\n if (result.ok) {\n const data = protoStreamBuf.slice(0, result.pos);\n eventTarget.dispatchEvent(new MessageEvent('message', { data: data }));\n protoStreamBuf = protoStreamBuf.slice(result.pos);\n continue;\n }\n break;\n }\n }\n }\n if (done) {\n break;\n }\n }\n }\n catch (_a) {\n eventTarget.dispatchEvent(new Event('close'));\n }\n });\n }\n close() {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n if (this._writer) {\n yield this._writer.close();\n }\n this._transport.close();\n }\n catch (e) {\n // already closed.\n }\n });\n }\n send(data) {\n return __awaiter(this, void 0, void 0, function* () {\n let binary;\n if (this._protocol === 'json') {\n // Need extra \\n since WT is non-frame protocol. \n binary = new TextEncoder().encode(data + '\\n');\n }\n else {\n binary = data;\n }\n try {\n yield this._writer.write(binary);\n }\n catch (e) {\n this.close();\n }\n });\n }\n}\n\n/*\nCopyright 2014-2024 Dmitry Chestnykh (JavaScript port)\nCopyright 2007 D. Richard Hipp (original C version)\n\nFossil SCM delta compression algorithm, this is only the applyDelta part extracted\nfrom https://github.com/dchest/fossil-delta-js. The code was slightly modified\nto strip unnecessary parts. The copyright on top of this file is from the original\nrepo on Github licensed under Simplified BSD License.\n*/\nconst zValue = [\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1,\n -1, -1, -1, -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,\n 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, 36, -1, 37,\n 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,\n 57, 58, 59, 60, 61, 62, -1, -1, -1, 63, -1,\n];\n// Reader reads bytes, chars, ints from array.\nclass Reader {\n constructor(array) {\n this.a = array; // source array\n this.pos = 0; // current position in array\n }\n haveBytes() {\n return this.pos < this.a.length;\n }\n getByte() {\n const b = this.a[this.pos];\n this.pos++;\n if (this.pos > this.a.length)\n throw new RangeError(\"out of bounds\");\n return b;\n }\n getChar() {\n return String.fromCharCode(this.getByte());\n }\n // Read base64-encoded unsigned integer.\n getInt() {\n let v = 0;\n let c;\n while (this.haveBytes() && (c = zValue[0x7f & this.getByte()]) >= 0) {\n v = (v << 6) + c;\n }\n this.pos--;\n return v >>> 0;\n }\n}\n// Write writes an array.\nclass Writer {\n constructor() {\n this.a = [];\n }\n toByteArray(sourceType) {\n if (Array.isArray(sourceType)) {\n return this.a;\n }\n return new Uint8Array(this.a);\n }\n // Copy from array at start to end.\n putArray(a, start, end) {\n // TODO: optimize.\n for (let i = start; i < end; i++)\n this.a.push(a[i]);\n }\n}\n// Return a 32-bit checksum of the array.\nfunction checksum(arr) {\n let sum0 = 0, sum1 = 0, sum2 = 0, sum3 = 0, z = 0, N = arr.length;\n //TODO measure if this unrolling is helpful.\n while (N >= 16) {\n sum0 = (sum0 + arr[z + 0]) | 0;\n sum1 = (sum1 + arr[z + 1]) | 0;\n sum2 = (sum2 + arr[z + 2]) | 0;\n sum3 = (sum3 + arr[z + 3]) | 0;\n sum0 = (sum0 + arr[z + 4]) | 0;\n sum1 = (sum1 + arr[z + 5]) | 0;\n sum2 = (sum2 + arr[z + 6]) | 0;\n sum3 = (sum3 + arr[z + 7]) | 0;\n sum0 = (sum0 + arr[z + 8]) | 0;\n sum1 = (sum1 + arr[z + 9]) | 0;\n sum2 = (sum2 + arr[z + 10]) | 0;\n sum3 = (sum3 + arr[z + 11]) | 0;\n sum0 = (sum0 + arr[z + 12]) | 0;\n sum1 = (sum1 + arr[z + 13]) | 0;\n sum2 = (sum2 + arr[z + 14]) | 0;\n sum3 = (sum3 + arr[z + 15]) | 0;\n z += 16;\n N -= 16;\n }\n while (N >= 4) {\n sum0 = (sum0 + arr[z + 0]) | 0;\n sum1 = (sum1 + arr[z + 1]) | 0;\n sum2 = (sum2 + arr[z + 2]) | 0;\n sum3 = (sum3 + arr[z + 3]) | 0;\n z += 4;\n N -= 4;\n }\n sum3 = (((((sum3 + (sum2 << 8)) | 0) + (sum1 << 16)) | 0) + (sum0 << 24)) | 0;\n switch (N) {\n //@ts-ignore fallthrough is needed.\n case 3:\n sum3 = (sum3 + (arr[z + 2] << 8)) | 0; /* falls through */\n //@ts-ignore fallthrough is needed.\n case 2:\n sum3 = (sum3 + (arr[z + 1] << 16)) | 0; /* falls through */\n case 1:\n sum3 = (sum3 + (arr[z + 0] << 24)) | 0; /* falls through */\n }\n return sum3 >>> 0;\n}\n/**\n * Apply a delta byte array to a source byte array, returning the target byte array.\n */\nfunction applyDelta(source, delta) {\n let total = 0;\n const zDelta = new Reader(delta);\n const lenSrc = source.length;\n const lenDelta = delta.length;\n const limit = zDelta.getInt();\n if (zDelta.getChar() !== \"\\n\")\n throw new Error(\"size integer not terminated by '\\\\n'\");\n const zOut = new Writer();\n while (zDelta.haveBytes()) {\n const cnt = zDelta.getInt();\n let ofst;\n switch (zDelta.getChar()) {\n case \"@\":\n ofst = zDelta.getInt();\n if (zDelta.haveBytes() && zDelta.getChar() !== \",\")\n throw new Error(\"copy command not terminated by ','\");\n total += cnt;\n if (total > limit)\n throw new Error(\"copy exceeds output file size\");\n if (ofst + cnt > lenSrc)\n throw new Error(\"copy extends past end of input\");\n zOut.putArray(source, ofst, ofst + cnt);\n break;\n case \":\":\n total += cnt;\n if (total > limit)\n throw new Error(\"insert command gives an output larger than predicted\");\n if (cnt > lenDelta)\n throw new Error(\"insert count exceeds size of delta\");\n zOut.putArray(zDelta.a, zDelta.pos, zDelta.pos + cnt);\n zDelta.pos += cnt;\n break;\n case \";\":\n {\n const out = zOut.toByteArray(source);\n if (cnt !== checksum(out))\n throw new Error(\"bad checksum\");\n if (total !== limit)\n throw new Error(\"generated size does not match predicted size\");\n return out;\n }\n default:\n throw new Error(\"unknown delta operator\");\n }\n }\n throw new Error(\"unterminated delta\");\n}\n\n/** @internal */\nclass JsonCodec {\n name() {\n return 'json';\n }\n encodeCommands(commands) {\n return commands.map(c => JSON.stringify(c)).join('\\n');\n }\n decodeReplies(data) {\n return data.trim().split('\\n').map(r => JSON.parse(r));\n }\n applyDeltaIfNeeded(pub, prevValue) {\n let newData, newPrevValue;\n if (pub.delta) {\n // JSON string delta.\n const valueArray = applyDelta(prevValue, new TextEncoder().encode(pub.data));\n newData = JSON.parse(new TextDecoder().decode(valueArray));\n newPrevValue = valueArray;\n }\n else {\n // Full data as JSON string.\n newData = JSON.parse(pub.data);\n newPrevValue = new TextEncoder().encode(pub.data);\n }\n return { newData, newPrevValue };\n }\n}\n\nconst defaults = {\n headers: {},\n token: '',\n getToken: null,\n data: null,\n getData: null,\n debug: false,\n name: 'js',\n version: '',\n fetch: null,\n readableStream: null,\n websocket: null,\n eventsource: null,\n sockjs: null,\n sockjsOptions: {},\n emulationEndpoint: '/emulation',\n minReconnectDelay: 500,\n maxReconnectDelay: 20000,\n timeout: 5000,\n maxServerPingDelay: 10000,\n networkEventTarget: null,\n};\nclass UnauthorizedError extends Error {\n constructor(message) {\n super(message);\n this.name = this.constructor.name;\n }\n}\n/** Centrifuge is a Centrifuge/Centrifugo bidirectional client. */\nclass Centrifuge extends EventEmitter$1 {\n /** Constructs Centrifuge client. Call connect() method to start connecting. */\n constructor(endpoint, options) {\n super();\n this._reconnectTimeout = null;\n this._refreshTimeout = null;\n this._serverPingTimeout = null;\n this.state = State.Disconnected;\n this._transportIsOpen = false;\n this._endpoint = endpoint;\n this._emulation = false;\n this._transports = [];\n this._currentTransportIndex = 0;\n this._triedAllTransports = false;\n this._transportWasOpen = false;\n this._transport = null;\n this._transportId = 0;\n this._deviceWentOffline = false;\n this._transportClosed = true;\n this._codec = new JsonCodec();\n this._reconnecting = false;\n this._reconnectTimeout = null;\n this._reconnectAttempts = 0;\n this._client = null;\n this._session = '';\n this._node = '';\n this._subs = {};\n this._serverSubs = {};\n this._commandId = 0;\n this._commands = [];\n this._batching = false;\n this._refreshRequired = false;\n this._refreshTimeout = null;\n this._callbacks = {};\n this._token = '';\n this._data = null;\n this._dispatchPromise = Promise.resolve();\n this._serverPing = 0;\n this._serverPingTimeout = null;\n this._sendPong = false;\n this._promises = {};\n this._promiseId = 0;\n this._debugEnabled = false;\n this._networkEventsSet = false;\n this._config = Object.assign(Object.assign({}, defaults), options);\n this._configure();\n if (this._debugEnabled) {\n this.on('state', (ctx) => {\n this._debug('client state', ctx.oldState, '->', ctx.newState);\n });\n this.on('error', (ctx) => {\n this._debug('client error', ctx);\n });\n }\n else {\n // Avoid unhandled exception in EventEmitter for non-set error handler.\n this.on('error', function () { Function.prototype(); });\n }\n }\n /** newSubscription allocates new Subscription to a channel. Since server only allows\n * one subscription per channel per client this method throws if client already has\n * channel subscription in internal registry.\n * */\n newSubscription(channel, options) {\n if (this.getSubscription(channel) !== null) {\n throw new Error('Subscription to the channel ' + channel + ' already exists');\n }\n const sub = new Subscription(this, channel, options);\n this._subs[channel] = sub;\n return sub;\n }\n /** getSubscription returns Subscription if it's registered in the internal\n * registry or null. */\n getSubscription(channel) {\n return this._getSub(channel);\n }\n /** removeSubscription allows removing Subcription from the internal registry. */\n removeSubscription(sub) {\n if (!sub) {\n return;\n }\n if (sub.state !== SubscriptionState.Unsubscribed) {\n sub.unsubscribe();\n }\n this._removeSubscription(sub);\n }\n /** Get a map with all current client-side subscriptions. */\n subscriptions() {\n return this._subs;\n }\n /** ready returns a Promise which resolves upon client goes to Connected\n * state and rejects in case of client goes to Disconnected or Failed state.\n * Users can provide optional timeout in milliseconds. */\n ready(timeout) {\n return __awaiter(this, void 0, void 0, function* () {\n switch (this.state) {\n case State.Disconnected:\n throw { code: errorCodes.clientDisconnected, message: 'client disconnected' };\n case State.Connected:\n return;\n default:\n return new Promise((resolve, reject) => {\n const ctx = { resolve, reject };\n if (timeout) {\n ctx.timeout = setTimeout(() => {\n reject({ code: errorCodes.timeout, message: 'timeout' });\n }, timeout);\n }\n this._promises[this._nextPromiseId()] = ctx;\n });\n }\n });\n }\n /** connect to a server. */\n connect() {\n if (this._isConnected()) {\n this._debug('connect called when already connected');\n return;\n }\n if (this._isConnecting()) {\n this._debug('connect called when already connecting');\n return;\n }\n this._debug('connect called');\n this._reconnectAttempts = 0;\n this._startConnecting();\n }\n /** disconnect from a server. */\n disconnect() {\n this._disconnect(disconnectedCodes.disconnectCalled, 'disconnect called', false);\n }\n /** setToken allows setting connection token. Or resetting used token to be empty. */\n setToken(token) {\n this._token = token;\n }\n /** setData allows setting connection data. This only affects the next connection attempt,\n * not the current one. Note that if getData callback is configured, it will override\n * this value during reconnects. */\n setData(data) {\n this._data = data;\n }\n /** setHeaders allows setting connection emulated headers. */\n setHeaders(headers) {\n this._config.headers = headers;\n }\n /** send asynchronous data to a server (without any response from a server\n * expected, see rpc method if you need response). */\n send(data) {\n return __awaiter(this, void 0, void 0, function* () {\n const cmd = {\n send: {\n data\n }\n };\n yield this._methodCall();\n const sent = this._transportSendCommands([cmd]); // can send message to server without id set\n if (!sent) {\n throw this._createErrorObject(errorCodes.transportWriteError, 'transport write error');\n }\n });\n }\n /** rpc to a server - i.e. a call which waits for a response with data. */\n rpc(method, data) {\n return __awaiter(this, void 0, void 0, function* () {\n const cmd = {\n rpc: {\n method,\n data\n }\n };\n yield this._methodCall();\n const result = yield this._callPromise(cmd, (reply) => reply.rpc);\n return {\n data: result.data\n };\n });\n }\n /** publish data to a channel. */\n publish(channel, data) {\n return __awaiter(this, void 0, void 0, function* () {\n const cmd = {\n publish: {\n channel,\n data\n }\n };\n yield this._methodCall();\n yield this._callPromise(cmd, () => ({}));\n return {};\n });\n }\n /** history for a channel. By default it does not return publications (only current\n * StreamPosition data) – provide an explicit limit > 0 to load publications.*/\n history(channel, options) {\n return __awaiter(this, void 0, void 0, function* () {\n const cmd = {\n history: this._getHistoryRequest(channel, options)\n };\n yield this._methodCall();\n const result = yield this._callPromise(cmd, (reply) => reply.history);\n const publications = [];\n if (result.publications) {\n for (let i = 0; i < result.publications.length; i++) {\n publications.push(this._getPublicationContext(channel, result.publications[i]));\n }\n }\n return {\n publications,\n epoch: result.epoch || '',\n offset: result.offset || 0\n };\n });\n }\n /** presence for a channel. */\n presence(channel) {\n return __awaiter(this, void 0, void 0, function* () {\n const cmd = {\n presence: {\n channel\n }\n };\n yield this._methodCall();\n const result = yield this._callPromise(cmd, (reply) => reply.presence);\n const clients = result.presence;\n for (const clientId in clients) {\n if (Object.prototype.hasOwnProperty.call(clients, clientId)) {\n const rawClient = clients[clientId];\n const connInfo = rawClient['conn_info'];\n const chanInfo = rawClient['chan_info'];\n if (connInfo) {\n rawClient.connInfo = connInfo;\n }\n if (chanInfo) {\n rawClient.chanInfo = chanInfo;\n }\n }\n }\n return { clients };\n });\n }\n presenceStats(channel) {\n return __awaiter(this, void 0, void 0, function* () {\n const cmd = {\n 'presence_stats': {\n channel\n }\n };\n yield this._methodCall();\n const result = yield this._callPromise(cmd, (reply) => {\n return reply.presence_stats;\n });\n return {\n numUsers: result.num_users,\n numClients: result.num_clients\n };\n });\n }\n /** start command batching (collect into temporary buffer without sending to a server)\n * until stopBatching called.*/\n startBatching() {\n // start collecting messages without sending them to Centrifuge until flush\n // method called\n this._batching = true;\n }\n /** stop batching commands and flush collected commands to the\n * network (all in one request/frame).*/\n stopBatching() {\n const self = this;\n // Why so nested? Two levels here requred to deal with promise resolving queue.\n // In Subscription case we wait 2 futures before sending data to connection.\n // Otherwise _batching becomes false before batching decision has a chance to be executed.\n Promise.resolve().then(function () {\n Promise.resolve().then(function () {\n self._batching = false;\n self._flush();\n });\n });\n }\n _debug(...args) {\n if (!this._debugEnabled) {\n return;\n }\n log('debug', args);\n }\n _codecName() {\n return this._codec.name();\n }\n /** @internal */\n _formatOverride() {\n return;\n }\n _configure() {\n if (!('Promise' in globalThis)) {\n throw new Error('Promise polyfill required');\n }\n if (!this._endpoint) {\n throw new Error('endpoint configuration required');\n }\n if (this._config.token !== null) {\n this._token = this._config.token;\n }\n if (this._config.data !== null) {\n this._data = this._config.data;\n }\n this._codec = new JsonCodec();\n this._formatOverride();\n if (this._config.debug === true ||\n (typeof localStorage !== 'undefined' && typeof localStorage.getItem === 'function' && localStorage.getItem('centrifuge.debug'))) {\n this._debugEnabled = true;\n }\n this._debug('config', this._config);\n if (typeof this._endpoint === 'string') ;\n else if (Array.isArray(this._endpoint)) {\n this._transports = this._endpoint;\n this._emulation = true;\n for (const i in this._transports) {\n if (this._transports.hasOwnProperty(i)) {\n const transportConfig = this._transports[i];\n if (!transportConfig.endpoint || !transportConfig.transport) {\n throw new Error('malformed transport configuration');\n }\n const transportName = transportConfig.transport;\n if (['websocket', 'http_stream', 'sse', 'sockjs', 'webtransport'].indexOf(transportName) < 0) {\n throw new Error('unsupported transport name: ' + transportName);\n }\n }\n }\n }\n else {\n throw new Error('unsupported url configuration type: only string or array of objects are supported');\n }\n }\n _setState(newState) {\n if (this.state !== newState) {\n this._reconnecting = false;\n const oldState = this.state;\n this.state = newState;\n this.emit('state', { newState, oldState });\n return true;\n }\n return false;\n }\n _isDisconnected() {\n return this.state === State.Disconnected;\n }\n _isConnecting() {\n return this.state === State.Connecting;\n }\n _isConnected() {\n return this.state === State.Connected;\n }\n _nextCommandId() {\n return ++this._commandId;\n }\n _setNetworkEvents() {\n if (this._networkEventsSet) {\n return;\n }\n let eventTarget = null;\n if (this._config.networkEventTarget !== null) {\n eventTarget = this._config.networkEventTarget;\n }\n else if (typeof globalThis.addEventListener !== 'undefined') {\n eventTarget = globalThis;\n }\n if (eventTarget) {\n eventTarget.addEventListener('offline', () => {\n this._debug('offline event triggered');\n if (this.state === State.Connected || this.state === State.Connecting) {\n this._disconnect(connectingCodes.transportClosed, 'transport closed', true);\n this._deviceWentOffline = true;\n }\n });\n eventTarget.addEventListener('online', () => {\n this._debug('online event triggered');\n if (this.state !== State.Connecting) {\n return;\n }\n if (this._deviceWentOffline && !this._transportClosed) {\n // This is a workaround for mobile Safari where close callback may be\n // not issued upon device going to the flight mode. We know for sure\n // that transport close was called, so we start reconnecting. In this\n // case if the close callback will be issued for some reason after some\n // time – it will be ignored due to transport ID mismatch.\n this._deviceWentOffline = false;\n this._transportClosed = true;\n }\n this._clearReconnectTimeout();\n this._startReconnecting();\n });\n this._networkEventsSet = true;\n }\n }\n _getReconnectDelay() {\n const delay = backoff(this._reconnectAttempts, this._config.minReconnectDelay, this._config.maxReconnectDelay);\n this._reconnectAttempts += 1;\n return delay;\n }\n _clearOutgoingRequests() {\n // fire errbacks of registered outgoing calls.\n for (const id in this._callbacks) {\n if (this._callbacks.hasOwnProperty(id)) {\n const callbacks = this._callbacks[id];\n clearTimeout(callbacks.timeout);\n const errback = callbacks.errback;\n if (!errback) {\n continue;\n }\n errback({ error: this._createErrorObject(errorCodes.connectionClosed, 'connection closed') });\n }\n }\n this._callbacks = {};\n }\n _clearConnectedState() {\n this._client = null;\n this._clearServerPingTimeout();\n this._clearRefreshTimeout();\n // fire events for client-side subscriptions.\n for (const channel in this._subs) {\n if (!this._subs.hasOwnProperty(channel)) {\n continue;\n }\n const sub = this._subs[channel];\n if (sub.state === SubscriptionState.Subscribed) {\n // @ts-ignore – we are hiding some symbols from public API autocompletion.\n sub._setSubscribing(subscribingCodes.transportClosed, 'transport closed');\n }\n }\n // fire events for server-side subscriptions.\n for (const channel in this._serverSubs) {\n if (this._serverSubs.hasOwnProperty(channel)) {\n this.emit('subscribing', { channel: channel });\n }\n }\n }\n _handleWriteError(commands) {\n for (const command of commands) {\n const id = command.id;\n if (!(id in this._callbacks)) {\n continue;\n }\n const callbacks = this._callbacks[id];\n clearTimeout(this._callbacks[id].timeout);\n delete this._callbacks[id];\n const errback = callbacks.errback;\n errback({ error: this._createErrorObject(errorCodes.transportWriteError, 'transport write error') });\n }\n }\n _transportSendCommands(commands) {\n if (!commands.length) {\n return true;\n }\n if (!this._transport) {\n return false;\n }\n try {\n this._transport.send(this._codec.encodeCommands(commands), this._session, this._node);\n }\n catch (e) {\n this._debug('error writing commands', e);\n this._handleWriteError(commands);\n return false;\n }\n return true;\n }\n _initializeTransport() {\n let websocket;\n if (this._config.websocket !== null) {\n websocket = this._config.websocket;\n }\n else {\n if (!(typeof globalThis.WebSocket !== 'function' && typeof globalThis.WebSocket !== 'object')) {\n websocket = globalThis.WebSocket;\n }\n }\n let sockjs = null;\n if (this._config.sockjs !== null) {\n sockjs = this._config.sockjs;\n }\n else {\n if (typeof globalThis.SockJS !== 'undefined') {\n sockjs = globalThis.SockJS;\n }\n }\n let eventsource = null;\n if (this._config.eventsource !== null) {\n eventsource = this._config.eventsource;\n }\n else {\n if (typeof globalThis.EventSource !== 'undefined') {\n eventsource = globalThis.EventSource;\n }\n }\n let fetchFunc = null;\n if (this._config.fetch !== null) {\n fetchFunc = this._config.fetch;\n }\n else {\n if (typeof globalThis.fetch !== 'undefined') {\n fetchFunc = globalThis.fetch;\n }\n }\n let readableStream = null;\n if (this._config.readableStream !== null) {\n readableStream = this._config.readableStream;\n }\n else {\n if (typeof globalThis.ReadableStream !== 'undefined') {\n readableStream = globalThis.ReadableStream;\n }\n }\n if (!this._emulation) {\n if (startsWith(this._endpoint, 'http')) {\n throw new Error('Provide explicit transport endpoints configuration in case of using HTTP (i.e. using array of TransportEndpoint instead of a single string), or use ws(s):// scheme in an endpoint if you aimed using WebSocket transport');\n }\n else {\n this._debug('client will use websocket');\n this._transport = new WebsocketTransport(this._endpoint, {\n websocket: websocket\n });\n if (!this._transport.supported()) {\n throw new Error('WebSocket constructor not found, make sure it is available globally or passed as a dependency in Centrifuge options');\n }\n }\n }\n else {\n if (this._currentTransportIndex >= this._transports.length) {\n this._triedAllTransports = true;\n this._currentTransportIndex = 0;\n }\n let count = 0;\n while (true) {\n if (count >= this._transports.length) {\n throw new Error('no supported transport found');\n }\n const transportConfig = this._transports[this._currentTransportIndex];\n const transportName = transportConfig.transport;\n const transportEndpoint = transportConfig.endpoint;\n if (transportName === 'websocket') {\n this._debug('trying websocket transport');\n this._transport = new WebsocketTransport(transportEndpoint, {\n websocket: websocket\n });\n if (!this._transport.supported()) {\n this._debug('websocket transport not available');\n this._currentTransportIndex++;\n count++;\n continue;\n }\n }\n else if (transportName === 'webtransport') {\n this._debug('trying webtransport transport');\n this._transport = new WebtransportTransport(transportEndpoint, {\n webtransport: globalThis.WebTransport,\n decoder: this._codec,\n encoder: this._codec\n });\n if (!this._transport.supported()) {\n this._debug('webtransport transport not available');\n this._currentTransportIndex++;\n count++;\n continue;\n }\n }\n else if (transportName === 'http_stream') {\n this._debug('trying http_stream transport');\n this._transport = new HttpStreamTransport(transportEndpoint, {\n fetch: fetchFunc,\n readableStream: readableStream,\n emulationEndpoint: this._config.emulationEndpoint,\n decoder: this._codec,\n encoder: this._codec\n });\n if (!this._transport.supported()) {\n this._debug('http_stream transport not available');\n this._currentTransportIndex++;\n count++;\n continue;\n }\n }\n else if (transportName === 'sse') {\n this._debug('trying sse transport');\n this._transport = new SseTransport(transportEndpoint, {\n eventsource: eventsource,\n fetch: fetchFunc,\n emulationEndpoint: this._config.emulationEndpoint,\n });\n if (!this._transport.supported()) {\n this._debug('sse transport not available');\n this._currentTransportIndex++;\n count++;\n continue;\n }\n }\n else if (transportName === 'sockjs') {\n this._debug('trying sockjs');\n this._transport = new SockjsTransport(transportEndpoint, {\n sockjs: sockjs,\n sockjsOptions: this._config.sockjsOptions\n });\n if (!this._transport.supported()) {\n this._debug('sockjs transport not available');\n this._currentTransportIndex++;\n count++;\n continue;\n }\n }\n else {\n throw new Error('unknown transport ' + transportName);\n }\n break;\n }\n }\n const self = this;\n const transport = this._transport;\n const transportId = this._nextTransportId();\n self._debug(\"id of transport\", transportId);\n let wasOpen = false;\n const initialCommands = [];\n if (this._transport.emulation()) {\n const connectCommand = self._sendConnect(true);\n initialCommands.push(connectCommand);\n }\n this._setNetworkEvents();\n const initialData = this._codec.encodeCommands(initialCommands);\n this._transportClosed = false;\n let connectTimeout;\n connectTimeout = setTimeout(function () {\n transport.close();\n }, this._config.timeout);\n this._transport.initialize(this._codecName(), {\n onOpen: function () {\n if (connectTimeout) {\n clearTimeout(connectTimeout);\n connectTimeout = null;\n }\n if (self._transportId != transportId) {\n self._debug('open callback from non-actual transport');\n transport.close();\n return;\n }\n wasOpen = true;\n self._debug(transport.subName(), 'transport open');\n if (transport.emulation()) {\n return;\n }\n self._transportIsOpen = true;\n self._transportWasOpen = true;\n self.startBatching();\n self._sendConnect(false);\n self._sendSubscribeCommands();\n self.stopBatching();\n //@ts-ignore must be used only for debug and test purposes. Exposed only for non-emulation transport.\n self.emit('__centrifuge_debug:connect_frame_sent', {});\n },\n onError: function (e) {\n if (self._transportId != transportId) {\n self._debug('error callback from non-actual transport');\n return;\n }\n self._debug('transport level error', e);\n },\n onClose: function (closeEvent) {\n if (connectTimeout) {\n clearTimeout(connectTimeout);\n connectTimeout = null;\n }\n if (self._transportId != transportId) {\n self._debug('close callback from non-actual transport');\n return;\n }\n self._debug(transport.subName(), 'transport closed');\n self._transportClosed = true;\n self._transportIsOpen = false;\n let reason = 'connection closed';\n let needReconnect = true;\n let code = 0;\n if (closeEvent && 'code' in closeEvent && closeEvent.code) {\n code = closeEvent.code;\n }\n if (closeEvent && closeEvent.reason) {\n try {\n const advice = JSON.parse(closeEvent.reason);\n reason = advice.reason;\n needReconnect = advice.reconnect;\n }\n catch (e) {\n reason = closeEvent.reason;\n if ((code >= 3500 && code < 4000) || (code >= 4500 && code < 5000)) {\n needReconnect = false;\n }\n }\n }\n if (code < 3000) {\n if (code === 1009) {\n code = disconnectedCodes.messageSizeLimit;\n reason = 'message size limit exceeded';\n needReconnect = false;\n }\n else {\n code = connectingCodes.transportClosed;\n reason = 'transport closed';\n }\n if (self._emulation && !self._transportWasOpen) {\n self._currentTransportIndex++;\n if (self._currentTransportIndex >= self._transports.length) {\n self._triedAllTransports = true;\n self._currentTransportIndex = 0;\n }\n }\n }\n else {\n // Codes >= 3000 are sent from a server application level.\n self._transportWasOpen = true;\n }\n if (self._isConnecting() && !wasOpen) {\n self.emit('error', {\n type: 'transport',\n error: {\n code: errorCodes.transportClosed,\n message: 'transport closed'\n },\n transport: transport.name()\n });\n }\n self._reconnecting = false;\n self._disconnect(code, reason, needReconnect);\n },\n onMessage: function (data) {\n self._dataReceived(data);\n }\n }, initialData);\n //@ts-ignore must be used only for debug and test purposes.\n self.emit('__centrifuge_debug:transport_initialized', {});\n }\n _sendConnect(skipSending) {\n const connectCommand = this._constructConnectCommand();\n const self = this;\n this._call(connectCommand, skipSending).then(resolveCtx => {\n const result = resolveCtx.reply.connect;\n self._connectResponse(result);\n if (resolveCtx.next) {\n resolveCtx.next();\n }\n }, rejectCtx => {\n self._connectError(rejectCtx.error);\n if (rejectCtx.next) {\n rejectCtx.next();\n }\n });\n return connectCommand;\n }\n _startReconnecting() {\n this._debug('start reconnecting');\n if (!this._isConnecting()) {\n this._debug('stop reconnecting: client not in connecting state');\n return;\n }\n if (this._reconnecting) {\n this._debug('reconnect already in progress, return from reconnect routine');\n return;\n }\n if (this._transportClosed === false) {\n this._debug('waiting for transport close');\n return;\n }\n this._reconnecting = true;\n const emptyToken = this._token === '';\n const needTokenRefresh = this._refreshRequired || (emptyToken && this._config.getToken !== null);\n if (!needTokenRefresh) {\n if (this._config.getData) {\n this._config.getData().then(data => {\n if (!this._isConnecting()) {\n return;\n }\n this._data = data;\n this._initializeTransport();\n })\n .catch(e => this._handleGetDataError(e));\n }\n else {\n this._initializeTransport();\n }\n return;\n }\n const self = this;\n this._getToken().then(function (token) {\n if (!self._isConnecting()) {\n return;\n }\n if (token == null || token == undefined) {\n self._failUnauthorized();\n return;\n }\n self._token = token;\n self._debug('connection token refreshed');\n if (self._config.getData) {\n self._config.getData().then(function (data) {\n if (!self._isConnecting()) {\n return;\n }\n self._data = data;\n self._initializeTransport();\n })\n .catch(e => self._handleGetDataError(e));\n }\n else {\n self._initializeTransport();\n }\n }).catch(function (e) {\n if (!self._isConnecting()) {\n return;\n }\n if (e instanceof UnauthorizedError) {\n self._failUnauthorized();\n return;\n }\n self.emit('error', {\n 'type': 'connectToken',\n 'error': {\n code: errorCodes.clientConnectToken,\n message: e !== undefined ? e.toString() : ''\n }\n });\n const delay = self._getReconnectDelay();\n self._debug('error on getting connection token, reconnect after ' + delay + ' milliseconds', e);\n self._reconnecting = false;\n self._reconnectTimeout = setTimeout(() => {\n self._startReconnecting();\n }, delay);\n });\n }\n _handleGetDataError(e) {\n if (e instanceof UnauthorizedError) {\n this._failUnauthorized();\n return;\n }\n this.emit('error', {\n type: 'connectData',\n error: {\n code: errorCodes.badConfiguration,\n message: (e === null || e === void 0 ? void 0 : e.toString()) || ''\n }\n });\n const delay = this._getReconnectDelay();\n this._debug('error on getting connect data, reconnect after ' + delay + ' milliseconds', e);\n this._reconnecting = false;\n this._reconnectTimeout = setTimeout(() => {\n this._startReconnecting();\n }, delay);\n }\n _connectError(err) {\n if (this.state !== State.Connecting) {\n return;\n }\n if (err.code === 109) { // token expired.\n // next connect attempt will try to refresh token.\n this._refreshRequired = true;\n }\n if (err.code < 100 || err.temporary === true || err.code === 109) {\n this.emit('error', {\n 'type': 'connect',\n 'error': err\n });\n this._debug('closing transport due to connect error');\n this._disconnect(err.code, err.message, true);\n }\n else {\n this._disconnect(err.code, err.message, false);\n }\n }\n _scheduleReconnect() {\n if (!this._isConnecting()) {\n return;\n }\n let isInitialHandshake = false;\n if (this._emulation && !this._transportWasOpen && !this._triedAllTransports) {\n isInitialHandshake = true;\n }\n let delay = this._getReconnectDelay();\n if (isInitialHandshake) {\n delay = 0;\n }\n this._debug('reconnect after ' + delay + ' milliseconds');\n this._clearReconnectTimeout();\n this._reconnectTimeout = setTimeout(() => {\n this._startReconnecting();\n }, delay);\n }\n _constructConnectCommand() {\n const req = {};\n if (this._token) {\n req.token = this._token;\n }\n if (this._data) {\n req.data = this._data;\n }\n if (this._config.name) {\n req.name = this._config.name;\n }\n if (this._config.version) {\n req.version = this._config.version;\n }\n if (Object.keys(this._config.headers).length > 0) {\n req.headers = this._config.headers;\n }\n const subs = {};\n let hasSubs = false;\n for (const channel in this._serverSubs) {\n if (this._serverSubs.hasOwnProperty(channel) && this._serverSubs[channel].recoverable) {\n hasSubs = true;\n const sub = {\n 'recover': true\n };\n if (this._serverSubs[channel].offset) {\n sub['offset'] = this._serverSubs[channel].offset;\n }\n if (this._serverSubs[channel].epoch) {\n sub['epoch'] = this._serverSubs[channel].epoch;\n }\n subs[channel] = sub;\n }\n }\n if (hasSubs) {\n req.subs = subs;\n }\n return {\n connect: req\n };\n }\n _getHistoryRequest(channel, options) {\n const req = {\n channel: channel\n };\n if (options !== undefined) {\n if (options.since) {\n req.since = {\n offset: options.since.offset\n };\n if (options.since.epoch) {\n req.since.epoch = options.since.epoch;\n }\n }\n if (options.limit !== undefined) {\n req.limit = options.limit;\n }\n if (options.reverse === true) {\n req.reverse = true;\n }\n }\n return req;\n }\n _methodCall() {\n if (this._isConnected()) {\n return Promise.resolve();\n }\n return new Promise((res, rej) => {\n const timeout = setTimeout(function () {\n rej({ code: errorCodes.timeout, message: 'timeout' });\n }, this._config.timeout);\n this._promises[this._nextPromiseId()] = {\n timeout: timeout,\n resolve: res,\n reject: rej\n };\n });\n }\n _callPromise(cmd, resultCB) {\n return new Promise((resolve, reject) => {\n this._call(cmd, false).then((resolveCtx) => {\n var _a;\n const result = resultCB(resolveCtx.reply);\n resolve(result);\n (_a = resolveCtx.next) === null || _a === void 0 ? void 0 : _a.call(resolveCtx);\n }, (rejectCtx) => {\n var _a;\n reject(rejectCtx.error);\n (_a = rejectCtx.next) === null || _a === void 0 ? void 0 : _a.call(rejectCtx);\n });\n });\n }\n _dataReceived(data) {\n if (this._serverPing > 0) {\n this._waitServerPing();\n }\n const replies = this._codec.decodeReplies(data);\n // We have to guarantee order of events in replies processing - i.e. start processing\n // next reply only when we finished processing of current one. Without syncing things in\n // this way we could get wrong publication events order as reply promises resolve\n // on next loop tick so for loop continues before we finished emitting all reply events.\n this._dispatchPromise = this._dispatchPromise.then(() => {\n let finishDispatch;\n this._dispatchPromise = new Promise(resolve => {\n finishDispatch = resolve;\n });\n this._dispatchSynchronized(replies, finishDispatch);\n });\n }\n _dispatchSynchronized(replies, finishDispatch) {\n let p = Promise.resolve();\n for (const i in replies) {\n if (replies.hasOwnProperty(i)) {\n p = p.then(() => {\n return this._dispatchReply(replies[i]);\n });\n }\n }\n p = p.then(() => {\n finishDispatch();\n });\n }\n _dispatchReply(reply) {\n let next;\n const p = new Promise(resolve => {\n next = resolve;\n });\n if (reply === undefined || reply === null) {\n this._debug('dispatch: got undefined or null reply');\n next();\n return p;\n }\n const id = reply.id;\n if (id && id > 0) {\n this._handleReply(reply, next);\n }\n else {\n if (!reply.push) {\n this._handleServerPing(next);\n }\n else {\n this._handlePush(reply.push, next);\n }\n }\n return p;\n }\n _call(cmd, skipSending) {\n return new Promise((resolve, reject) => {\n cmd.id = this._nextCommandId();\n this._registerCall(cmd.id, resolve, reject);\n if (!skipSending) {\n this._addCommand(cmd);\n }\n });\n }\n _startConnecting() {\n this._debug('start connecting');\n if (this._setState(State.Connecting)) {\n this.emit('connecting', { code: connectingCodes.connectCalled, reason: 'connect called' });\n }\n this._client = null;\n this._startReconnecting();\n }\n _disconnect(code, reason, reconnect) {\n if (this._isDisconnected()) {\n return;\n }\n // we mark transport is closed right away, because _clearConnectedState will move subscriptions to subscribing state\n // if transport will still be open at this time, subscribe frames will be sent to closing transport\n this._transportIsOpen = false;\n const previousState = this.state;\n this._reconnecting = false;\n const ctx = {\n code: code,\n reason: reason\n };\n let needEvent = false;\n if (reconnect) {\n needEvent = this._setState(State.Connecting);\n }\n else {\n needEvent = this._setState(State.Disconnected);\n this._rejectPromises({ code: errorCodes.clientDisconnected, message: 'disconnected' });\n }\n this._clearOutgoingRequests();\n if (previousState === State.Connecting) {\n this._clearReconnectTimeout();\n }\n if (previousState === State.Connected) {\n this._clearConnectedState();\n }\n if (needEvent) {\n if (this._isConnecting()) {\n this.emit('connecting', ctx);\n }\n else {\n this.emit('disconnected', ctx);\n }\n }\n if (this._transport) {\n this._debug(\"closing existing transport\");\n const transport = this._transport;\n this._transport = null;\n transport.close(); // Close only after setting this._transport to null to avoid recursion when calling transport close().\n // Need to mark as closed here, because connect call may be sync called after disconnect,\n // transport onClose callback will not be called yet\n this._transportClosed = true;\n this._nextTransportId();\n }\n else {\n this._debug(\"no transport to close\");\n }\n this._scheduleReconnect();\n }\n _failUnauthorized() {\n this._disconnect(disconnectedCodes.unauthorized, 'unauthorized', false);\n }\n _getToken() {\n this._debug('get connection token');\n if (!this._config.getToken) {\n this.emit('error', {\n type: 'configuration',\n error: {\n code: errorCodes.badConfiguration,\n message: 'token expired but no getToken function set in the configuration'\n }\n });\n return Promise.reject(new UnauthorizedError(''));\n }\n return this._config.getToken({});\n }\n _refresh() {\n const clientId = this._client;\n const self = this;\n this._getToken().then(function (token) {\n if (clientId !== self._client) {\n return;\n }\n if (!token) {\n self._failUnauthorized();\n return;\n }\n self._token = token;\n self._debug('connection token refreshed');\n if (!self._isConnected()) {\n return;\n }\n const cmd = {\n refresh: { token: self._token }\n };\n self._call(cmd, false).then(resolveCtx => {\n const result = resolveCtx.reply.refresh;\n self._refreshResponse(result);\n if (resolveCtx.next) {\n resolveCtx.next();\n }\n }, rejectCtx => {\n self._refreshError(rejectCtx.error);\n if (rejectCtx.next) {\n rejectCtx.next();\n }\n });\n }).catch(function (e) {\n if (!self._isConnected()) {\n return;\n }\n if (e instanceof UnauthorizedError) {\n self._failUnauthorized();\n return;\n }\n self.emit('error', {\n type: 'refreshToken',\n error: {\n code: errorCodes.clientRefreshToken,\n message: e !== undefined ? e.toString() : ''\n }\n });\n self._refreshTimeout = setTimeout(() => self._refresh(), self._getRefreshRetryDelay());\n });\n }\n _refreshError(err) {\n if (err.code < 100 || err.temporary === true) {\n this.emit('error', {\n type: 'refresh',\n error: err\n });\n this._refreshTimeout = setTimeout(() => this._refresh(), this._getRefreshRetryDelay());\n }\n else {\n this._disconnect(err.code, err.message, false);\n }\n }\n _getRefreshRetryDelay() {\n return backoff(0, 5000, 10000);\n }\n _refreshResponse(result) {\n if (this._refreshTimeout) {\n clearTimeout(this._refreshTimeout);\n this._refreshTimeout = null;\n }\n if (result.expires) {\n this._client = result.client;\n this._refreshTimeout = setTimeout(() => this._refresh(), ttlMilliseconds(result.ttl));\n }\n }\n _removeSubscription(sub) {\n if (sub === null) {\n return;\n }\n delete this._subs[sub.channel];\n }\n _unsubscribe(sub) {\n if (!this._transportIsOpen) {\n return Promise.resolve();\n }\n const req = {\n channel: sub.channel\n };\n const cmd = { unsubscribe: req };\n const self = this;\n const unsubscribePromise = new Promise((resolve, _) => {\n this._call(cmd, false).then(resolveCtx => {\n resolve();\n if (resolveCtx.next) {\n resolveCtx.next();\n }\n }, rejectCtx => {\n resolve();\n if (rejectCtx.next) {\n rejectCtx.next();\n }\n self._disconnect(connectingCodes.unsubscribeError, 'unsubscribe error', true);\n });\n });\n return unsubscribePromise;\n }\n _getSub(channel, id) {\n if (id && id > 0) {\n for (const ch in this._subs) {\n if (this._subs.hasOwnProperty(ch)) {\n const sub = this._subs[ch];\n // @ts-ignore – we are accessing private property for internal use\n if (sub._id === id) {\n return sub;\n }\n }\n }\n return null;\n }\n const sub = this._subs[channel];\n if (!sub) {\n return null;\n }\n return sub;\n }\n _isServerSub(channel) {\n return this._serverSubs[channel] !== undefined;\n }\n _sendSubscribeCommands() {\n const commands = [];\n for (const channel in this._subs) {\n if (!this._subs.hasOwnProperty(channel)) {\n continue;\n }\n const sub = this._subs[channel];\n // @ts-ignore – we are hiding some symbols from public API autocompletion.\n if (sub._inflight === true) {\n continue;\n }\n if (sub.state === SubscriptionState.Subscribing) {\n // @ts-ignore – we are hiding some symbols from public API autocompletion.\n const cmd = sub._subscribe();\n if (cmd) {\n commands.push(cmd);\n }\n }\n }\n return commands;\n }\n _connectResponse(result) {\n this._transportIsOpen = true;\n this._transportWasOpen = true;\n this._reconnectAttempts = 0;\n this._refreshRequired = false;\n if (this._isConnected()) {\n return;\n }\n this._client = result.client;\n this._setState(State.Connected);\n if (this._refreshTimeout) {\n clearTimeout(this._refreshTimeout);\n }\n if (result.expires) {\n this._refreshTimeout = setTimeout(() => this._refresh(), ttlMilliseconds(result.ttl));\n }\n this._session = result.session;\n this._node = result.node;\n this.startBatching();\n this._sendSubscribeCommands();\n this.stopBatching();\n const ctx = {\n client: result.client,\n transport: this._transport.subName()\n };\n if (result.data) {\n ctx.data = result.data;\n }\n this.emit('connected', ctx);\n this._resolvePromises();\n this._processServerSubs(result.subs || {});\n if (result.ping && result.ping > 0) {\n this._serverPing = result.ping * 1000;\n this._sendPong = result.pong === true;\n this._waitServerPing();\n }\n else {\n this._serverPing = 0;\n }\n }\n _processServerSubs(subs) {\n for (const channel in subs) {\n if (!subs.hasOwnProperty(channel)) {\n continue;\n }\n const sub = subs[channel];\n this._serverSubs[channel] = {\n 'offset': sub.offset,\n 'epoch': sub.epoch,\n 'recoverable': sub.recoverable || false\n };\n const subCtx = this._getSubscribeContext(channel, sub);\n this.emit('subscribed', subCtx);\n }\n for (const channel in subs) {\n if (!subs.hasOwnProperty(channel)) {\n continue;\n }\n const sub = subs[channel];\n if (sub.recovered) {\n const pubs = sub.publications;\n if (pubs && pubs.length > 0) {\n for (const i in pubs) {\n if (pubs.hasOwnProperty(i)) {\n this._handlePublication(channel, pubs[i]);\n }\n }\n }\n }\n }\n for (const channel in this._serverSubs) {\n if (!this._serverSubs.hasOwnProperty(channel)) {\n continue;\n }\n if (!subs[channel]) {\n this.emit('unsubscribed', { channel: channel });\n delete this._serverSubs[channel];\n }\n }\n }\n _clearRefreshTimeout() {\n if (this._refreshTimeout !== null) {\n clearTimeout(this._refreshTimeout);\n this._refreshTimeout = null;\n }\n }\n _clearReconnectTimeout() {\n if (this._reconnectTimeout !== null) {\n clearTimeout(this._reconnectTimeout);\n this._reconnectTimeout = null;\n }\n }\n _clearServerPingTimeout() {\n if (this._serverPingTimeout !== null) {\n clearTimeout(this._serverPingTimeout);\n this._serverPingTimeout = null;\n }\n }\n _waitServerPing() {\n if (this._config.maxServerPingDelay === 0) {\n return;\n }\n if (!this._isConnected()) {\n return;\n }\n this._clearServerPingTimeout();\n this._serverPingTimeout = setTimeout(() => {\n if (!this._isConnected()) {\n return;\n }\n this._disconnect(connectingCodes.noPing, 'no ping', true);\n }, this._serverPing + this._config.maxServerPingDelay);\n }\n _getSubscribeContext(channel, result) {\n const ctx = {\n channel: channel,\n positioned: false,\n recoverable: false,\n wasRecovering: false,\n recovered: false,\n hasRecoveredPublications: false,\n };\n if (result.recovered) {\n ctx.recovered = true;\n }\n if (result.positioned) {\n ctx.positioned = true;\n }\n if (result.recoverable) {\n ctx.recoverable = true;\n }\n if (result.was_recovering) {\n ctx.wasRecovering = true;\n }\n let epoch = '';\n if ('epoch' in result) {\n epoch = result.epoch;\n }\n let offset = 0;\n if ('offset' in result) {\n offset = result.offset;\n }\n if (ctx.positioned || ctx.recoverable) {\n ctx.streamPosition = {\n 'offset': offset,\n 'epoch': epoch\n };\n }\n if (Array.isArray(result.publications) && result.publications.length > 0) {\n ctx.hasRecoveredPublications = true;\n }\n if (result.data) {\n ctx.data = result.data;\n }\n return ctx;\n }\n _handleReply(reply, next) {\n const id = reply.id;\n if (!(id in this._callbacks)) {\n next();\n return;\n }\n const callbacks = this._callbacks[id];\n clearTimeout(this._callbacks[id].timeout);\n delete this._callbacks[id];\n if (!errorExists(reply)) {\n const callback = callbacks.callback;\n if (!callback) {\n return;\n }\n callback({ reply, next });\n }\n else {\n const errback = callbacks.errback;\n if (!errback) {\n next();\n return;\n }\n const error = { code: reply.error.code, message: reply.error.message || '', temporary: reply.error.temporary || false };\n errback({ error, next });\n }\n }\n _handleJoin(channel, join, id) {\n const sub = this._getSub(channel, id);\n if (!sub && channel) {\n if (this._isServerSub(channel)) {\n const ctx = { channel: channel, info: this._getJoinLeaveContext(join.info) };\n this.emit('join', ctx);\n }\n return;\n }\n // @ts-ignore – we are hiding some symbols from public API autocompletion.\n sub._handleJoin(join);\n }\n _handleLeave(channel, leave, id) {\n const sub = this._getSub(channel, id);\n if (!sub && channel) {\n if (this._isServerSub(channel)) {\n const ctx = { channel: channel, info: this._getJoinLeaveContext(leave.info) };\n this.emit('leave', ctx);\n }\n return;\n }\n // @ts-ignore – we are hiding some symbols from public API autocompletion.\n sub._handleLeave(leave);\n }\n _handleUnsubscribe(channel, unsubscribe) {\n const sub = this._getSub(channel, 0);\n if (!sub && channel) {\n if (this._isServerSub(channel)) {\n delete this._serverSubs[channel];\n this.emit('unsubscribed', { channel: channel });\n }\n return;\n }\n if (unsubscribe.code < 2500) {\n // @ts-ignore – we are hiding some symbols from public API autocompletion.\n sub._setUnsubscribed(unsubscribe.code, unsubscribe.reason, false);\n }\n else {\n // @ts-ignore – we are hiding some symbols from public API autocompletion.\n sub._setSubscribing(unsubscribe.code, unsubscribe.reason);\n }\n }\n _handleSubscribe(channel, sub) {\n this._serverSubs[channel] = {\n 'offset': sub.offset,\n 'epoch': sub.epoch,\n 'recoverable': sub.recoverable || false\n };\n this.emit('subscribed', this._getSubscribeContext(channel, sub));\n }\n _handleDisconnect(disconnect) {\n const code = disconnect.code;\n let reconnect = true;\n if ((code >= 3500 && code < 4000) || (code >= 4500 && code < 5000)) {\n reconnect = false;\n }\n this._disconnect(code, disconnect.reason, reconnect);\n }\n _getPublicationContext(channel, pub) {\n const ctx = {\n channel: channel,\n data: pub.data\n };\n if (pub.offset) {\n ctx.offset = pub.offset;\n }\n if (pub.info) {\n ctx.info = this._getJoinLeaveContext(pub.info);\n }\n if (pub.tags) {\n ctx.tags = pub.tags;\n }\n return ctx;\n }\n _getJoinLeaveContext(clientInfo) {\n const info = {\n client: clientInfo.client,\n user: clientInfo.user\n };\n const connInfo = clientInfo['conn_info'];\n if (connInfo) {\n info.connInfo = connInfo;\n }\n const chanInfo = clientInfo['chan_info'];\n if (chanInfo) {\n info.chanInfo = chanInfo;\n }\n return info;\n }\n _handlePublication(channel, pub, id) {\n const sub = this._getSub(channel, id);\n if (!sub && channel) {\n if (this._isServerSub(channel)) {\n const ctx = this._getPublicationContext(channel, pub);\n this.emit('publication', ctx);\n if (pub.offset !== undefined) {\n this._serverSubs[channel].offset = pub.offset;\n }\n }\n return;\n }\n // @ts-ignore – we are hiding some symbols from public API autocompletion.\n sub._handlePublication(pub);\n }\n _handleMessage(message) {\n this.emit('message', { data: message.data });\n }\n _handleServerPing(next) {\n if (this._sendPong) {\n const cmd = {};\n this._transportSendCommands([cmd]);\n }\n next();\n }\n _handlePush(data, next) {\n const channel = data.channel;\n const id = data.id;\n if (data.pub) {\n this._handlePublication(channel, data.pub, id);\n }\n else if (data.message) {\n this._handleMessage(data.message);\n }\n else if (data.join) {\n this._handleJoin(channel, data.join, id);\n }\n else if (data.leave) {\n this._handleLeave(channel, data.leave, id);\n }\n else if (data.unsubscribe) {\n this._handleUnsubscribe(channel, data.unsubscribe);\n }\n else if (data.subscribe) {\n this._handleSubscribe(channel, data.subscribe);\n }\n else if (data.disconnect) {\n this._handleDisconnect(data.disconnect);\n }\n next();\n }\n _flush() {\n const commands = this._commands.slice(0);\n this._commands = [];\n this._transportSendCommands(commands);\n }\n _createErrorObject(code, message, temporary) {\n const errObject = {\n code: code,\n message: message\n };\n if (temporary) {\n errObject.temporary = true;\n }\n return errObject;\n }\n _registerCall(id, callback, errback) {\n this._callbacks[id] = {\n callback: callback,\n errback: errback,\n timeout: null\n };\n this._callbacks[id].timeout = setTimeout(() => {\n delete this._callbacks[id];\n if (isFunction(errback)) {\n errback({ error: this._createErrorObject(errorCodes.timeout, 'timeout') });\n }\n }, this._config.timeout);\n }\n _addCommand(command) {\n if (this._batching) {\n this._commands.push(command);\n }\n else {\n this._transportSendCommands([command]);\n }\n }\n _nextPromiseId() {\n return ++this._promiseId;\n }\n _nextTransportId() {\n return ++this._transportId;\n }\n _resolvePromises() {\n for (const id in this._promises) {\n if (!this._promises.hasOwnProperty(id)) {\n continue;\n }\n if (this._promises[id].timeout) {\n clearTimeout(this._promises[id].timeout);\n }\n this._promises[id].resolve();\n delete this._promises[id];\n }\n }\n _rejectPromises(err) {\n for (const id in this._promises) {\n if (!this._promises.hasOwnProperty(id)) {\n continue;\n }\n if (this._promises[id].timeout) {\n clearTimeout(this._promises[id].timeout);\n }\n this._promises[id].reject(err);\n delete this._promises[id];\n }\n }\n}\nCentrifuge.SubscriptionState = SubscriptionState;\nCentrifuge.State = State;\nCentrifuge.UnauthorizedError = UnauthorizedError;\n\nexport { Centrifuge, State, Subscription, SubscriptionState, UnauthorizedError, connectingCodes, disconnectedCodes, errorCodes, subscribingCodes, subscriptionFlags, unsubscribedCodes };\n","import { useEffect, useMemo, useRef, useState } from \"preact/hooks\";\r\nimport { getRandomId } from \"../hooks/common\";\r\nimport { getFromLocalStorage, saveToLocalStorage } from \"../hooks/localStorage\";\r\nimport LiveService from \"../services/live\";\r\nimport ConversationService from \"../services/conversation\";\r\nimport { PopulatedChatbotLean } from \"../services/validations/live\";\r\nimport { SOCKET_URL } from \"../lib/axios\";\r\nimport { Conversation } from \"../services/models/conversation\";\r\nimport { Message } from \"../services/models/message\";\r\nimport Chat from \"./chat\";\r\nimport {\r\n CoreStateContext,\r\n ConversationStateContext,\r\n UIStateContext,\r\n} from \"../types/widget\";\r\nimport {\r\n defaultConversation,\r\n defaultConversationExternalAPI,\r\n defaultMessages,\r\n defaultToken,\r\n defaultUserId,\r\n} from \"../utils/constant\";\r\nimport { Console } from \"../utils/console\";\r\nimport { Centrifuge } from \"centrifuge\";\r\n\r\nexport interface ChatbotWidgetProps {\r\n chatbotId: string;\r\n userData?: {\r\n userId?: string;\r\n email?: string;\r\n bearer?: string;\r\n };\r\n fullScreen?: boolean;\r\n}\r\n\r\nexport const ChatbotWidget = (({\r\n chatbotId,\r\n userData: initialUserData,\r\n fullScreen,\r\n}: ChatbotWidgetProps) => {\r\n // -- Setup Helpers --\r\n const chatbotDefault = window?.robodialog?.default;\r\n const defaultExternalAPI = window?.robodialog?.externalAPI;\r\n const isChatbotDefault = !!chatbotDefault;\r\n const isDefaultExternalAPI = !!defaultExternalAPI;\r\n const widgetRef = useRef<HTMLDivElement>(null);\r\n\r\n // ==================================================================================\r\n // 1. CORE STATE (Static/Config)\r\n // Includes: Chatbot config, Auth (Token/ID), Connection (Socket), Constants\r\n // ==================================================================================\r\n const [chatbot, setChatbot] = useState<PopulatedChatbotLean | null>(\r\n isChatbotDefault ? chatbotDefault : null,\r\n );\r\n const [token, setToken] = useState<string | null>(\r\n isChatbotDefault ? defaultToken : null,\r\n );\r\n const [userId, setUserId] = useState<string | null>(\r\n isChatbotDefault ? defaultUserId : null,\r\n );\r\n const [socket, setSocket] = useState<Centrifuge | null>(null);\r\n const [fileSizeLimit, setFileSizeLimit] = useState(0);\r\n\r\n // Core State Grouping\r\n const coreState: CoreStateContext = useMemo(\r\n () => ({\r\n chatbot,\r\n setChatbot,\r\n token,\r\n setToken,\r\n userId,\r\n setUserId,\r\n fileSizeLimit,\r\n setFileSizeLimit,\r\n userData: initialUserData || {},\r\n chatbotDefault,\r\n isChatbotDefault,\r\n defaultExternalAPI,\r\n isDefaultExternalAPI,\r\n }),\r\n [\r\n chatbot,\r\n token,\r\n userId,\r\n fileSizeLimit,\r\n initialUserData,\r\n isChatbotDefault,\r\n defaultExternalAPI,\r\n isDefaultExternalAPI,\r\n ],\r\n );\r\n\r\n // ==================================================================================\r\n // 2. CONVERSATION STATE (Data Layer)\r\n // Includes: Messages, Conversations list, Current Active Conversation\r\n // ==================================================================================\r\n const [messages, setMessages] = useState<Message[]>(\r\n isChatbotDefault ? defaultMessages : [],\r\n );\r\n const [conversations, setConversations] = useState<Conversation[]>(\r\n isChatbotDefault ? defaultConversation : [],\r\n );\r\n const [currentConversation, setCurrentConversation] =\r\n useState<Conversation | null>(\r\n isDefaultExternalAPI ? defaultConversationExternalAPI : null,\r\n );\r\n const [totalConversationsCount, setTotalConversationsCount] = useState(0);\r\n const [newMessage, setNewMessage] = useState<Message | null>(null);\r\n\r\n // Refs for data logic\r\n const messagesRef = useRef<Message[]>([]);\r\n const messageCallOneTime = useRef({\r\n call: false,\r\n messagesCount: {} as Record<string, number>,\r\n messagesLength: {} as Record<string, number>,\r\n });\r\n\r\n // Conversation State Grouping\r\n const conversationState: ConversationStateContext = useMemo(\r\n () => ({\r\n messages,\r\n setMessages,\r\n conversations,\r\n setConversations,\r\n currentConversation,\r\n setCurrentConversation,\r\n totalConversationsCount,\r\n setTotalConversationsCount,\r\n newMessage,\r\n setNewMessage,\r\n messagesRef,\r\n messageCallOneTime,\r\n }),\r\n [\r\n messages,\r\n conversations,\r\n currentConversation,\r\n totalConversationsCount,\r\n newMessage,\r\n ],\r\n );\r\n\r\n // ==================================================================================\r\n // 3. UI STATE (Volatile/Interactive)\r\n // Includes: Inputs, Loading spinners, Toggles, Hover states, Agents online\r\n // ==================================================================================\r\n const [chatOpen, setChatOpen] = useState(isDefaultExternalAPI ? true : false);\r\n const [callChatFlow, setCallChatFlow] = useState(false);\r\n const [interacted, setInteracted] = useState(false);\r\n const [canMessage, setCanMessage] = useState(false);\r\n const [humanControl, setHumanControl] = useState(false);\r\n const [aiLoading, setAiLoading] = useState(false);\r\n const [userLoading, setUserLoading] = useState(false);\r\n const [onlineAgents, setOnlineAgents] = useState(0);\r\n const [ratingFromUser, setRatingFromUser] = useState<any>(null);\r\n const [dataFromUser, setDataFromUser] = useState<any>(null);\r\n const [hoveringMessageInner, setHoveringMessageInner] = useState<any>(null);\r\n\r\n // Refs for UI flow\r\n const callChatFlowRef = useRef(false);\r\n const agentConversationEnded = useRef(false);\r\n\r\n // UI State Grouping\r\n const uiState: UIStateContext = useMemo(\r\n () => ({\r\n chatOpen,\r\n setChatOpen,\r\n callChatFlow,\r\n setCallChatFlow,\r\n interacted,\r\n setInteracted,\r\n canMessage,\r\n setCanMessage,\r\n humanControl,\r\n setHumanControl,\r\n aiLoading,\r\n setAiLoading,\r\n userLoading,\r\n setUserLoading,\r\n onlineAgents,\r\n setOnlineAgents,\r\n ratingFromUser,\r\n setRatingFromUser,\r\n dataFromUser,\r\n setDataFromUser,\r\n hoveringMessageInner,\r\n setHoveringMessageInner,\r\n callChatFlowRef,\r\n agentConversationEnded,\r\n }),\r\n [\r\n chatOpen,\r\n callChatFlow,\r\n interacted,\r\n canMessage,\r\n humanControl,\r\n aiLoading,\r\n userLoading,\r\n onlineAgents,\r\n ratingFromUser,\r\n dataFromUser,\r\n hoveringMessageInner,\r\n ],\r\n );\r\n\r\n // Initialize widget\r\n useEffect(() => {\r\n if (isChatbotDefault || !chatbotId) return;\r\n const initializeWidget = async () => {\r\n try {\r\n // 1. Identify User\r\n let userIdValue = getFromLocalStorage<string>(\"robodialog-livechat-id\");\r\n if (initialUserData?.userId) userIdValue = initialUserData.userId;\r\n if (!userIdValue) {\r\n userIdValue = getRandomId();\r\n saveToLocalStorage(\"robodialog-livechat-id\", userIdValue);\r\n }\r\n setUserId(userIdValue);\r\n\r\n // Load chatbot configuration\r\n const chatbotResponse = await LiveService.readById({\r\n params: { id: chatbotId },\r\n });\r\n if (!chatbotResponse.data?.chatbot) {\r\n throw new Error(\"Chatbot not found\");\r\n }\r\n\r\n const loadedChatbot = chatbotResponse.data.chatbot;\r\n setChatbot(loadedChatbot);\r\n setFileSizeLimit(chatbotResponse.data.fileSizeLimit);\r\n\r\n // Generate authentication token\r\n const tokenResponse = await LiveService.generateToken({\r\n body: {\r\n userId: userIdValue,\r\n chatbotId: loadedChatbot._id,\r\n visitor: !initialUserData?.userId,\r\n },\r\n });\r\n\r\n if (!tokenResponse.data?.token) {\r\n throw new Error(\"Token generation failed\");\r\n }\r\n\r\n const { token, socketToken } = tokenResponse.data;\r\n setToken(token);\r\n\r\n if (isDefaultExternalAPI) return;\r\n\r\n // 3. Initialize Centrifuge\r\n const centrifuge = new Centrifuge(SOCKET_URL, {\r\n token: socketToken,\r\n });\r\n\r\n // 4. Setup \"Personal\" Subscription (Direct Messages)\r\n // Note: Backend must sign this or allow it via config\r\n const personalSub = centrifuge.newSubscription(\r\n `personal:${userIdValue}`,\r\n );\r\n\r\n const widgetSub = centrifuge.newSubscription(\r\n `chatbot_widget:${loadedChatbot._id}`,\r\n );\r\n\r\n personalSub.on(\"publication\", (ctx) => {\r\n const { event, data } = ctx.data;\r\n if (event === \"conversation\") {\r\n setConversations((prev) => {\r\n const existingIndex = prev.findIndex(\r\n (conv) => conv._id === data._id,\r\n );\r\n if (existingIndex !== -1) {\r\n const updated = [...prev];\r\n updated[existingIndex] = data;\r\n return updated;\r\n }\r\n return [...prev, data];\r\n });\r\n\r\n setCurrentConversation((prev) => {\r\n if (!prev || prev._id !== data._id) return prev;\r\n\r\n const shouldCallChatFlow =\r\n !!prev.assignedTo && !data.assignedTo && prev.assignType;\r\n if (shouldCallChatFlow) {\r\n callChatFlowRef.current = true;\r\n }\r\n\r\n return data;\r\n });\r\n }\r\n if (event === \"message\") {\r\n setMessages((prev) => {\r\n const exists = prev.some((msg) => msg._id === data._id);\r\n if (exists) {\r\n return prev.map((msg) => (msg._id === data._id ? data : msg));\r\n }\r\n const updated = [...prev, data];\r\n messagesRef.current = updated;\r\n return updated;\r\n });\r\n\r\n // Accessing the current state directly from the variable since we are inside the component closure\r\n // Note: In a closure, chatOpen might be stale if not used with a ref, but strictly following\r\n // your previous logic structure, this matches.\r\n // (For stricter safety, consider using a ref for chatOpen, but keeping logic as requested)\r\n if (!chatOpen) {\r\n setNewMessage(data);\r\n }\r\n }\r\n });\r\n\r\n personalSub.subscribe();\r\n widgetSub.subscribe();\r\n centrifuge.connect();\r\n\r\n setSocket(centrifuge);\r\n } catch (error) {\r\n Console().error(\"Widget initialization failed:\", error);\r\n }\r\n };\r\n\r\n initializeWidget();\r\n\r\n return () => {\r\n socket?.disconnect();\r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [chatbotId]);\r\n // Added chatOpen to dependency if you want live updates, but kept to original logic dependencies\r\n\r\n // Apply appearance overrides to CSS variables\r\n useEffect(() => {\r\n if (!chatbot?.appearance || !widgetRef.current) return;\r\n\r\n const rootNode = widgetRef.current.getRootNode();\r\n const shadowHost = (rootNode as ShadowRoot).host;\r\n\r\n if (shadowHost && shadowHost instanceof HTMLElement) {\r\n const root = shadowHost;\r\n const color = chatbot.appearance.color;\r\n const others = chatbot.appearance.others;\r\n\r\n // Colors\r\n root.style.setProperty(\r\n \"--background-color\",\r\n color.background || \"#ffffff\",\r\n );\r\n root.style.setProperty(\r\n \"--background-text-color\",\r\n color.backgroundText || \"#111827\",\r\n );\r\n root.style.setProperty(\r\n \"--input-background-color\",\r\n color.inputBackground || \"#ffffff\",\r\n );\r\n root.style.setProperty(\r\n \"--input-text-color\",\r\n color.inputText || \"#111827\",\r\n );\r\n root.style.setProperty(\"--base-color\", color.base || \"#006fee\");\r\n root.style.setProperty(\"--base-text-color\", color.baseText || \"#ffffff\");\r\n\r\n // Radii\r\n const toPx = (val: number | string) =>\r\n typeof val === \"number\" ? `${val}px` : val;\r\n root.style.setProperty(\r\n \"--popup-container-radius\",\r\n toPx(others.popupContainerRadius) || \"20px\",\r\n );\r\n root.style.setProperty(\r\n \"--chatbot-radius\",\r\n toPx(others.chatbotRadius) || \"12px\",\r\n );\r\n root.style.setProperty(\"--shadow-sm\", \"0 0px 2px 0 rgba(0, 0, 0, 0.05)\");\r\n root.style.setProperty(\r\n \"--shadow-md\",\r\n \"0 0px 10px -1px rgba(0, 0, 0, 0.2), 0 2px 4px -1px rgba(0, 0, 0, 0.06)\",\r\n );\r\n root.style.setProperty(\r\n \"--shadow-lg\",\r\n \"0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)\",\r\n );\r\n root.style.setProperty(\r\n \"--shadow-xl\",\r\n \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\r\n );\r\n root.style.setProperty(\r\n \"--transition-smooth\",\r\n \"cubic-bezier(0.4, 0, 0.2, 1)\",\r\n );\r\n root.style.setProperty(\r\n \"--transition-bounce\",\r\n \"cubic-bezier(0.68, -0.55, 0.05, 2)\",\r\n );\r\n }\r\n }, [chatbot]);\r\n\r\n // Handle orphaned messages\r\n useEffect(() => {\r\n if (isChatbotDefault || isDefaultExternalAPI) return;\r\n\r\n const fetchMissingConversations = async () => {\r\n if (!token || !currentConversation || conversations.length === 0) return;\r\n\r\n const orphanedMessages = messages.filter(\r\n (msg) =>\r\n msg.conversationId === currentConversation._id &&\r\n !conversations.some((conv) => conv._id === msg.conversationId),\r\n );\r\n\r\n for (const message of orphanedMessages) {\r\n try {\r\n const conversation = await ConversationService.userRead(\r\n { params: { id: message.conversationId } },\r\n token,\r\n );\r\n if (conversation.data) {\r\n setConversations((prev) => [...prev, conversation.data!]);\r\n }\r\n } catch (error) {\r\n Console().error(\r\n `Failed to fetch conversation ${message.conversationId}:`,\r\n error,\r\n );\r\n }\r\n }\r\n };\r\n\r\n fetchMissingConversations();\r\n }, [messages, conversations, currentConversation, token]);\r\n\r\n if (!chatbot || !token) {\r\n return <div ref={widgetRef} className=\"robodialog-chatbot-app\" />;\r\n }\r\n\r\n return (\r\n <div\r\n ref={widgetRef}\r\n className={`robodialog-chatbot-app${\r\n fullScreen ? \" robodialog-chatbot-app-fullscreen\" : \"\"\r\n }`}\r\n >\r\n <Chat\r\n coreState={coreState}\r\n conversationState={conversationState}\r\n uiState={uiState}\r\n fullScreen={fullScreen}\r\n />\r\n </div>\r\n );\r\n}) as unknown as (props: ChatbotWidgetProps) => any;\r\n","import { render } from \"preact\";\r\nimport { ChatbotWidget } from \"./main/ChatbotWidget\";\r\n\r\n// Import styles as strings\r\n// @ts-ignore\r\nimport chatbotWidgetCss from \"./main/ChatbotWidget.css?inline\";\r\n// @ts-ignore\r\nimport chatCss from \"./main/chat.css?inline\";\r\n// @ts-ignore\r\nimport htmlHelperCss from \"./components/htmlHelper.css?inline\";\r\n// @ts-ignore\r\nimport iconsCss from \"./components/icons.css?inline\";\r\n// @ts-ignore\r\nimport streamingChatMessageCss from \"./components/streamingChatMessage.css?inline\";\r\n// @ts-ignore\r\nimport toastCss from \"./components/Toast.css?inline\";\r\nimport { PopulatedChatbotLean } from \"./services/validations/live\";\r\nimport { ChatbotExternalAPI } from \"./services/models/chatbot\";\r\n\r\ndeclare global {\r\n interface Window {\r\n robodialog?: {\r\n refresh: () => void;\r\n _destroy: () => void;\r\n default?: PopulatedChatbotLean;\r\n externalAPI?: ChatbotExternalAPI;\r\n bearerToken?: string;\r\n openChat?: () => void;\r\n };\r\n }\r\n}\r\n\r\nconst findScriptTag = (): HTMLScriptElement | null => {\r\n return (\r\n (Array.from(document.querySelectorAll(\"script[src]\")).find((s) => {\r\n const script = s as HTMLScriptElement;\r\n return script.dataset.chatbotId !== undefined;\r\n }) as HTMLScriptElement | undefined) ?? null\r\n );\r\n};\r\n\r\nconst getChatbotData = () => {\r\n /* ---------- 2. resolve chatbotId and otherData ---------- */\r\n let chatbotId: string | undefined;\r\n let otherData:\r\n | { userId?: string; email?: string; bearer?: string }\r\n | undefined;\r\n let fullScreen: boolean = false;\r\n\r\n const scriptTag = findScriptTag();\r\n if (scriptTag) {\r\n // production path\r\n chatbotId = scriptTag.dataset.chatbotId;\r\n if (!chatbotId) {\r\n console.error(\"[ChatbotWidget] missing data-chatbot-id\");\r\n throw new Error(\"ChatbotWidget: data-chatbot-id is required\");\r\n }\r\n\r\n const userId = scriptTag.dataset.userId;\r\n const email = scriptTag.dataset.email;\r\n const bearer = scriptTag.dataset.bearer;\r\n fullScreen = scriptTag.dataset.fullScreen === \"true\";\r\n\r\n if (userId || email || bearer) {\r\n otherData = { userId, email, bearer };\r\n }\r\n } else {\r\n // development / vite serve --> provide a dummy id so the page still renders\r\n const params = new URLSearchParams(location.search);\r\n chatbotId = params.get(\"chatbotId\") || \"6981d77231807db8f3cfa34e\";\r\n fullScreen = params.get(\"fullScreen\") === \"true\";\r\n console.warn(\r\n \"[ChatbotWidget] running in dev mode – using fallback chatbot\",\r\n chatbotId\r\n );\r\n\r\n const userId = params.get(\"userId\") || undefined;\r\n const email = params.get(\"email\") || undefined;\r\n const bearer = params.get(\"bearer\") || undefined;\r\n\r\n if (userId || email || bearer) {\r\n otherData = { userId, email, bearer };\r\n }\r\n }\r\n return { chatbotId, otherData, fullScreen };\r\n};\r\n\r\nlet container: HTMLDivElement | null;\r\nconst mount = () => {\r\n if (document.getElementById(\"my-chatbot-root\")) {\r\n return;\r\n }\r\n const { chatbotId, otherData, fullScreen } = getChatbotData();\r\n if (!chatbotId) return;\r\n\r\n /* ---------- 3. mount ---------- */\r\n container = document.createElement(\"div\");\r\n container.id = \"my-chatbot-root\";\r\n container.style.position = \"fixed\";\r\n container.style.zIndex = \"101\";\r\n container.style.pointerEvents = fullScreen ? \"auto\" : \"none\";\r\n if (fullScreen) {\r\n container.style.top = \"0\";\r\n container.style.left = \"0\";\r\n container.style.width = \"100vw\";\r\n container.style.height = \"100vh\";\r\n }\r\n\r\n document.body.appendChild(container);\r\n\r\n const shadowRoot = container.attachShadow({ mode: \"open\" });\r\n\r\n const renderContainer = document.createElement(\"div\");\r\n if (fullScreen) {\r\n renderContainer.style.width = \"100%\";\r\n renderContainer.style.height = \"100%\";\r\n }\r\n shadowRoot.appendChild(renderContainer);\r\n\r\n const styleEl = document.createElement(\"style\");\r\n styleEl.textContent = [\r\n chatbotWidgetCss,\r\n chatCss,\r\n htmlHelperCss,\r\n iconsCss,\r\n streamingChatMessageCss,\r\n toastCss,\r\n ].join(\"\\n\");\r\n shadowRoot.appendChild(styleEl);\r\n\r\n render(\r\n <ChatbotWidget\r\n chatbotId={chatbotId}\r\n userData={otherData}\r\n fullScreen={fullScreen}\r\n />,\r\n renderContainer\r\n );\r\n console.log(`[ChatbotWidget] mounted`);\r\n};\r\n\r\nconst destroy = () => {\r\n const root = document.getElementById(\"my-chatbot-root\");\r\n if (root) {\r\n // Unmounting the Preact component\r\n if (root.shadowRoot) {\r\n const renderContainer = root.shadowRoot.querySelector(\"div\");\r\n if (renderContainer) {\r\n render(null, renderContainer);\r\n }\r\n }\r\n root.remove();\r\n container = null;\r\n console.log(`[ChatbotWidget] unmounted`);\r\n }\r\n};\r\n\r\n// Initial mount\r\nmount();\r\n\r\nwindow.robodialog = {\r\n refresh: () => {\r\n destroy();\r\n mount();\r\n },\r\n _destroy: destroy,\r\n};\r\n"],"names":["n","l","u","i","r","o","e","f","c","s","a","h","p","v","y","w","d","g","_","m","t","b","k","x","S","C","M","$","O","N","I","P","B","A","L","D","H","T","j","F","E","V","z","q","G","J","K","Q","getRandomId","timestamp","replacePlaceholdersFromString","template","values","resValues","placeholder","properties","value","prop","transformMediaUrl","url","size","base","rest","saveToLocalStorage","key","data","stringifiedData","getFromLocalStorage","bind","fn","thisArg","toString","getPrototypeOf","iterator","toStringTag","kindOf","cache","thing","str","kindOfTest","type","typeOfTest","isArray","isUndefined","isBuffer","val","isFunction","isArrayBuffer","isArrayBufferView","result","isString","isNumber","isObject","isBoolean","isPlainObject","prototype","isEmptyObject","isDate","isFile","isBlob","isFileList","isStream","isFormData","kind","isURLSearchParams","isReadableStream","isRequest","isResponse","isHeaders","trim","forEach","obj","allOwnKeys","keys","len","findKey","_key","_global","isContextDefined","context","merge","caseless","skipUndefined","assignValue","targetKey","extend","stripBOM","content","inherits","constructor","superConstructor","props","descriptors","toFlatObject","sourceObj","destObj","filter","propFilter","merged","endsWith","searchString","position","lastIndex","toArray","arr","isTypedArray","TypedArray","forEachEntry","_iterator","pair","matchAll","regExp","matches","isHTMLForm","toCamelCase","p1","p2","hasOwnProperty","isRegExp","reduceDescriptors","reducer","reducedDescriptors","descriptor","name","ret","freezeMethods","toObjectSet","arrayOrString","delimiter","define","noop","toFiniteNumber","defaultValue","isSpecCompliantForm","toJSONObject","stack","visit","source","target","reducedValue","isAsyncFn","isThenable","_setImmediate","setImmediateSupported","postMessageSupported","token","callbacks","cb","asap","process","utils$1","AxiosError","message","code","config","request","response","utils","error","customProps","axiosError","msg","errCode","httpAdapter","isVisitable","removeBrackets","renderKey","path","dots","isFlatArray","predicates","toFormData","formData","options","option","metaTokens","visitor","defaultVisitor","indexes","useBlob","convertValue","el","index","exposedHelpers","build","encode","charMap","match","AxiosURLSearchParams","params","encoder","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","fulfilled","rejected","id","transitionalDefaults","platform$1","hasBrowserEnv","_navigator","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","origin","platform","toURLEncodedForm","helpers","parsePropPath","arrayToObject","formDataToJSON","buildPath","isNumericKey","isLast","stringifySafely","rawValue","parser","defaults","headers","contentType","hasJSONContentType","isObjectPayload","_FormData","transitional","forcedJSONParsing","JSONRequested","strictJSONParsing","status","method","ignoreDuplicateOf","parseHeaders","rawHeaders","parsed","line","$internals","normalizeHeader","header","normalizeValue","parseTokens","tokens","tokensRE","isValidHeaderName","matchHeaderValue","isHeaderNameFilter","formatHeader","char","buildAccessors","accessorName","methodName","arg1","arg2","arg3","AxiosHeaders$1","valueOrRewrite","rewrite","self","setHeader","_value","_header","_rewrite","lHeader","setHeaders","dest","entry","matcher","deleted","deleteHeader","format","normalized","targets","asStrings","first","computed","accessors","defineAccessor","AxiosHeaders","mapped","headerValue","transformData","fns","isCancel","CanceledError","settle","resolve","reject","validateStatus","parseProtocol","speedometer","samplesCount","min","bytes","timestamps","head","tail","firstSampleTS","chunkLength","now","startedAt","bytesCount","passed","throttle","freq","threshold","lastArgs","timer","invoke","args","progressEventReducer","listener","isDownloadStream","bytesNotified","_speedometer","loaded","total","progressBytes","rate","inRange","progressEventDecorator","throttled","lengthComputable","asyncDecorator","isURLSameOrigin","isMSIE","cookies","expires","domain","secure","sameSite","cookie","isAbsoluteURL","combineURLs","baseURL","relativeURL","buildFullPath","requestedURL","allowAbsoluteUrls","isRelativeUrl","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","resolveConfig","newConfig","withXSRFToken","xsrfHeaderName","xsrfCookieName","auth","formHeaders","allowedHeaders","xsrfValue","xhrAdapter","_config","requestData","requestHeaders","responseType","onUploadProgress","onDownloadProgress","onCanceled","uploadThrottled","downloadThrottled","flushUpload","flushDownload","done","onloadend","responseHeaders","err","event","timeoutErrorMessage","cancel","protocol","composeSignals","signals","timeout","length","controller","aborted","onabort","reason","unsubscribe","signal","streamChunk","chunk","chunkSize","pos","end","readBytes","iterable","readStream","stream","reader","trackStream","onProgress","onFinish","_onFinish","loadedBytes","DEFAULT_CHUNK_SIZE","globalFetchAPI","Request","Response","ReadableStream","TextEncoder","test","factory","env","envFetch","isFetchSupported","isRequestSupported","isResponseSupported","isReadableStreamSupported","encodeText","supportsRequestStream","duplexAccessed","hasContentType","supportsResponseStream","resolvers","res","getBodyLength","body","resolveBodyLength","cancelToken","withCredentials","fetchOptions","_fetch","composedSignal","requestContentLength","_request","contentTypeHeader","flush","isCredentialsSupported","resolvedOptions","isStreamResponse","responseContentLength","responseData","seedCache","getFetch","fetch","seeds","seed","map","knownAdapters","fetchAdapter.getFetch","renderReason","isResolvedHandle","adapter","getAdapter","adapters","nameOrAdapter","rejectedReasons","reasons","state","throwIfCancellationRequested","dispatchRequest","VERSION","validators","deprecatedWarnings","validator","version","formatMessage","opt","desc","opts","correctSpelling","assertOptions","schema","allowUnknown","Axios$1","instanceConfig","configOrUrl","dummy","paramsSerializer","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","interceptor","responseInterceptorChain","promise","chain","onFulfilled","onRejected","fullPath","Axios","generateHTTPMethod","isForm","CancelToken$1","CancelToken","executor","resolvePromise","onfulfilled","_resolve","abort","spread","callback","isAxiosError","payload","HttpStatusCode","createInstance","defaultConfig","instance","axios","promises","all","Cancel","formToJSON","API_URL","SOCKET_URL","API_BASE_URL","axiosInstance","Cache","maxSize","SPLIT_REGEX","DIGIT_REGEX","LEAD_DIGIT_REGEX","SPEC_CHAR_REGEX","CLEAN_QUOTES_REGEX","MAX_CACHE_SIZE","pathCache","setCache","getCache","propertyExpr","split","normalizePath","parts","part","safe","segments","isQuoted","iter","idx","isBracket","shouldBeQuoted","hasLeadingNumber","hasSpecialChars","reWords","words","upperFirst","join","camelCase","acc","next","tinyCase","toposortModule","edges","toposort","uniqueNodes","nodes","cursor","sorted","visited","outgoingEdges","makeOutgoingEdges","nodesHash","makeNodesHash","edge","node","predecessors","nodeRep","outgoing","child","errorToString","regExpToString","symbolToString","SYMBOL_REGEXP","printNumber","printSimpleValue","quoteStrings","typeOf","tag","printValue","_Symbol$toStringTag","_Symbol$hasInstance","_Symbol$toStringTag2","strReg","ValidationErrorNoStack","errorOrErrors","field","ValidationError","innerErrors","disableStack","errorNoStack","inst","mixed","originalValue","castMsg","string","number","date","boolean","object","array","spec","typeLen","isSchema","Condition","refs","is","then","otherwise","check","_branch","branch","builder","ref","prefixes","Reference","prefix","getter","parent","isAbsent","createValidation","validate","panic","skipAbsent","abortEarly","disableStackTrace","resolveOptions","createError","overrides","nextParams","resolveParams","invalid","ctx","item","resolveMaybeRef","handleResult","validOrError","handleError","_result","getIn","lastPart","lastPartDebug","_part","isTuple","ReferenceSet","description","newItems","removeItems","clone","src","seen","copy","createStandardPath","currentSegment","inBrackets","inQuotes","createStandardIssues","parentPath","issuesFromValidationError","_error$inner","Schema","label","before","combined","mergedSpec","conditions","prevSchema","condition","_options$strict","_options$abortEarly","_options$recursive","_options$disableStack","resolvedSchema","allowOptionality","formattedValue","formattedResult","prevValue","strict","initialTests","initialErrors","runOptions","fired","tests","panicOnce","arg","nextOnce","count","nestedErrors","originalParent","isIndex","testOptions","_options$disableStack2","errors","validated","_options$disableStack3","def","isStrict","nullable","optional","isExclusive","deps","dep","enums","valids","resolved","invalids","strip","meta","list","alias","create$7","BooleanSchema","_raw","isoReg","parseIsoDate","struct","parseDateStruct","totalMinutesOffset","_regexResult$7$length","_regexResult$","regexResult","toNumber","rEmail","rUrl","rUUID","yearMonthDay","hourMinuteSecond","zOrOffset","rIsoDateTime","isTrimmed","objStringTag","create$6","StringSchema","strValue","max","regex","excludeEmptyString","allowOffset","precision","isNaN$1","create$5","NumberSchema","less","more","_method","avail","invalidDate","DateSchema","param","cast","limit","sortFields","fields","excludedEdges","excludes","addNode","depPath","findIndex","ii","_err$path","sortByKeyOrder","parseJson","deepPartial","partial","fieldSchema","nextArray","deepHas","last","unknown","known","defaultSort","create$3","ObjectSchema","_options$stripUnknown","intermediateValue","innerOptions","isChanged","exists","inputValue","fieldValue","fieldSpec","from","recursive","objectErrors","fieldErrors","nextFields","schemaOrRef","dft","_innerOptions","shape","additions","picked","remaining","to","fromGetter","newObj","unknownKeys","noAllow","allow","snakeCase","_innerOptions2","create$2","ArraySchema","_opts","castArray","castElement","innerType","arrayErrors","_options$originalValu2","_options$originalValu","innerTypeErrors","original","rejector","checkUnknownValues","allowedKeys","optionalKeys","yup.ValidationError","readByIdSchema","yup.object","yup.string","generateTokenSchema","yup.boolean","LiveService","UserReadSchema","userReadAllSchema","userUpdateCurrentNodeSchema","userAssignToAgentSchema","userCreateSchema","yup.number","ConversationService","Cross","className","style","jsx","LoadingIcon","width","height","UserIcon","ArrowFill","Star","XIcon","DragIcon","jsxs","InputArrow","Attachment","chatlogo","beautifyPastDate","pastDate","differenceInMs","seconds","minutes","hours","days","months","years","timeDifference","fileDataSchema","messageDataSchema","text","file","userUpdateSeenSchema","userAICheckQueriesSchema","yup.array","userAIContextMessageSchema","MessageService","AssetService","UserCreateSchema","ReviewService","SSEParser","onEvent","onError","decoder","lines","defaultToken","defaultUserId","defaultMessages","defaultConversation","defaultConversationExternalAPI","setMessageAsSeen","coreState","conversationState","uiState","showToast","updatedMessages","msgs","handleServiceError","assignToAgent","assignType","assignTo","conversation","onlineAgents","newConversations","conv","handleCreateRating","userData","sendMessage","currentChatflow","owner","isDefaultExternalAPI","newMessage","updated","errorMessage","handleSendAIMessage","handleSendHumanMessage","handleExternalAPICall","externalAPI","currentNode","contextUserData","_a","queryParams","_b","_c","responseConfig","_d","handleChangeNode","fallbackMessage","handleExternalAPISubmission","onSubmit","nodeChanged","onCancel","sendAIMessageStream","messages","chatbot","currentConversation","setMessages","messagesRef","setAiLoading","conversationHistory","getConversationHistory","streamingMessage","prev","finalMessage","finalPath","hasReceivedTokens","toolCall","tokenData","completeData","AIControlNode","sourceHandle","latestConversation","handleChatFlow","updatedConversation","defaultExternalAPI","setCanMessage","setHumanControl","setHoveringMessageInner","setRatingFromUser","processTextMessages","processExternalAPIs","hoveringMessageInner","_f","_e","_g","_i","_h","_k","_j","_m","_l","_o","_n","conversationId","defaultMessage","handleSendMessage","userMessage","setUserMessage","setFile","latestCurrentConversation","userFile","messageData","uploadResponse","Z","me","xe","be","Re","Te","re","se","Oe","we","ye","Pe","Se","ie","$e","U","te","Le","Me","ze","oe","Ae","ae","Ce","le","Ie","Ee","Be","ue","qe","ve","pe","De","He","Ze","Ge","Ne","Qe","Fe","je","ce","he","Ue","ne","W","Ke","We","Xe","ke","X","de","ge","Je","__publicField","R","Y","ee","fe","ConversationList","conversations","totalConversationsCount","conversationsLoading","loadMoreConversations","handleChangeConversation","sortedMessages","latestMessagesMap","conversationsWithLatestMessage","latestMessage","ConversationListItem","plainFirstLine","raw","UserImage","member","previewText","Agents","HeaderImage","humanControl","showAgentImage","showBotImage","Fragment","DataFromUser","email","dataFromUser","setUserData","useState","initialData","emailField","renderInput","ReviewFromUser","ratingFromUser","ConnectingToAnAgent","UserLoading","AILoading","ChatMessage","isAgent","limitedSources","fileName","isImage","isVideo","htmlContent","setHtmlContent","useEffect","marked","MessagesLoading","HoveringMessageInner","ShowFile","ChatHoveringMessages","showHoveringMessage","hoveringMessages","setShowHoveringMessage","setChatOpen","loading","setLoading","setNewMessage","setCurrentConversation","setConversations","callChatFlowRef","chatOpen","showLatestMessage","handleClose","handleOpenConversation","hoveringMessage","ChatHoveringMessage","handleOnClick","newConversation","startNode","nn","tn","en","rn","un","on","ln","cn","an","sn","hn","vn","dn","mn","pn","yn","bn","Sn","gn","En","Cn","xn","Rn","reactIs_production_min","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","reactIsModule","require$$0","require$$1","getOwnPropertySymbols","propIsEnumerable","toObject","shouldUseNative","test1","test2","order2","test3","letter","objectAssign","symbols","ReactPropTypesSecret","ReactPropTypesSecret_1","has","printWarning","loggedTypeFailures","checkPropTypes","typeSpecs","location","componentName","getStack","typeSpecName","ex","checkPropTypes_1","ReactIs","assign","require$$2","require$$3","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","iteratorFn","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","createAnyTypeChecker","createArrayOfTypeChecker","createElementTypeChecker","createElementTypeTypeChecker","createInstanceTypeChecker","createNodeChecker","createObjectOfTypeChecker","createEnumTypeChecker","createUnionTypeChecker","createShapeTypeChecker","createStrictShapeTypeChecker","PropTypeError","createChainableTypeChecker","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","propName","propFullName","secret","cacheKey","chainedCheckType","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","typeChecker","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","valuesString","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedTypesMessage","isNode","invalidValidatorError","shapeTypes","allKeys","step","isSymbol","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","propTypesModule","clsxModule","shims","dontSetMe","findInArray","int","isNum","func","num","getPrefix_1","browserPrefixToKey","browserPrefixToStyle","getPrefix","kebabToTitleCase","out","shouldCapitalize","domFns","addClassName","addEvent","addUserSelectStyles","createCSSTransform","createSVGTransform","getTouch","getTouchIdentifier","getTranslation","innerHeight","innerWidth","matchesSelector","matchesSelectorAndParentsTo","offsetXYFromParent","outerHeight","outerWidth","removeClassName","removeEvent","scheduleRemoveUserSelectStyles","_shims","_getPrefix","_interopRequireWildcard","matchesSelectorFunc","selector","baseNode","handler","inputOptions","computedStyle","evt","offsetParent","scale","offsetParentRect","controlPos","positionOffset","translation","_ref","unitSuffix","defaultX","defaultY","identifier","doc","styleEl","removeUserSelectStyles","selection","positionFns","canDragX","canDragY","createCoreData","createDraggableData","getBoundPosition","getControlPosition","snapToGrid","_domFns","draggable","bounds","cloneBounds","findDOMNode","ownerDocument","ownerWindow","boundNode","boundNodeEl","nodeStyle","boundNodeStyle","grid","pendingX","pendingY","touchIdentifier","draggableCore","touchObj","isStart","coreData","log_1","log","DraggableCore_1","React","_propTypes","_interopRequireDefault","_reactDom","_positionFns","require$$5","_log","require$$6","_defineProperty","_toPropertyKey","_toPrimitive","eventsFor","dragEventFor","DraggableCore$1","thisNode","coreEvent","deltaX","deltaY","DraggableCore","exports","_DraggableCore","_clsx","require$$7","require$$8","_extends","Draggable","_ref2","prevPropsPosition","uiData","newState","newStateX","newStateY","axis","children","defaultPosition","defaultClassName","defaultClassNameDragging","defaultClassNameDragged","draggableCoreProps","svgTransform","validPosition","transformOpts","cjsModule","StreamingChatMessage","thinkingContainerRef","useRef","thinking","Toast","onDismiss","visible","setVisible","useToast","toasts","setToasts","useCallback","dismissToast","toast","ConversationDetails","conversationMessagesRef","messagesLoading","setMessagesLoading","fileSizeLimitReached","setFileSizeLimitReached","textareaHeight","setTextareaHeight","fileSizeLimit","isChatbotDefault","messageCallOneTime","allMessages","setAllMessages","canMessage","aiLoading","userLoading","setOnlineAgents","callChatFlow","setCallChatFlow","setUserLoading","setDataFromUser","handleFileUpload","uploadedFile","handleTextareaChange","handleTextareaKeyDown","getMessages","currentCount","currentLength","skip","existingIds","newMessages","handleCloseConversation","container","rafId","handleScroll","Conversations","setTotalConversationsCount","conversationLimitReached","setConversationLimitReached","setConversationsLoading","ConversationsMain","isMobileVersion","fullScreen","ToastContainer","getConversations","temp","Chat","setIsMobileVersion","chatOpenedBefore","latestMessageTimeout","setLatestMessageTimeout","setInteracted","openChat","chatbotPosition","isBottomLeft","chatbotMainStyle","handleResize","messageTimeout","openConversation","mainChatContent","Console","__awaiter","_arguments","generator","adopt","getDefaultExportFromCjs","events","ReflectApply","receiver","ReflectOwnKeys","ProcessEmitWarning","warning","NumberIsNaN","EventEmitter","once","defaultMaxListeners","checkListener","_getMaxListeners","that","doError","er","listeners","arrayClone","_addListener","prepend","existing","onceWrapper","_onceWrap","wrapped","originalListener","spliceOne","_listeners","unwrap","evlistener","unwrapListeners","emitter","listenerCount","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","flags","wrapListener","eventsExports","EventEmitter$1","errorCodes","connectingCodes","disconnectedCodes","subscribingCodes","unsubscribedCodes","subscriptionFlags","State","SubscriptionState","startsWith","level","logger","randomInt","backoff","interval","errorExists","ttlMilliseconds","ttl","Subscription","centrifuge","channel","rej","tagsFilter","timeoutDuration","oldState","pubs","UnauthorizedError","cmd","resolveCtx","rejectCtx","req","offset","epoch","sendUnsubscribe","pub","newData","newPrevValue","info","leave","delay","errContext","getToken","SockjsTransport","endpoint","_protocol","closeEvent","WebsocketTransport","subProtocol","HttpStreamTransport","eventTarget","fetchFunc","jsonStreamBuf","jsonStreamPos","protoStreamBuf","pump","mergedArray","session","SseTransport","eventsourceOptions","eventSource","WebtransportTransport","binary","zValue","Reader","Writer","sourceType","start","checksum","sum0","sum1","sum2","sum3","applyDelta","delta","zDelta","lenSrc","lenDelta","zOut","cnt","ofst","JsonCodec","commands","valueArray","Centrifuge","sub","reply","publications","clients","clientId","rawClient","connInfo","chanInfo","transportConfig","transportName","errback","command","websocket","sockjs","eventsource","readableStream","transportEndpoint","transport","transportId","wasOpen","initialCommands","connectCommand","connectTimeout","needReconnect","advice","skipSending","emptyToken","isInitialHandshake","subs","hasSubs","resultCB","replies","finishDispatch","reconnect","previousState","needEvent","ch","subCtx","disconnect","clientInfo","temporary","errObject","ChatbotWidget","chatbotId","initialUserData","chatbotDefault","widgetRef","setChatbot","setToken","userId","setUserId","socket","setSocket","setFileSizeLimit","useMemo","interacted","agentConversationEnded","userIdValue","chatbotResponse","loadedChatbot","tokenResponse","socketToken","personalSub","widgetSub","existingIndex","shadowHost","root","color","others","toPx","orphanedMessages","findScriptTag","getChatbotData","otherData","scriptTag","bearer","mount","shadowRoot","renderContainer","chatbotWidgetCss","chatCss","htmlHelperCss","iconsCss","streamingChatMessageCss","toastCss","render","destroy"],"mappings":"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","x_google_ignoreList":[0,1,2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,56,57,58,59,76,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,103]}
|