@jitsu/js 1.5.1 → 1.7.1
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/.turbo/turbo-build.log +21 -11
- package/.turbo/turbo-clean.log +2 -2
- package/.turbo/turbo-test.log +989 -58
- package/README.md +9 -0
- package/dist/analytics-plugin.d.ts +1 -0
- package/dist/index.d.ts +0 -1
- package/dist/jitsu.cjs.js +187 -59
- package/dist/jitsu.d.ts +2 -0
- package/dist/jitsu.es.js +188 -59
- package/dist/web/p.js.txt +1 -1
- package/package.json +3 -3
- package/src/analytics-plugin.ts +76 -17
- package/src/browser.ts +35 -2
- package/src/destination-plugins/ga4.ts +123 -0
- package/src/destination-plugins/gtm.ts +39 -38
- package/src/destination-plugins/index.ts +3 -1
- package/src/index.ts +0 -1
- package/src/jitsu.ts +3 -0
- package/tsconfig.json +1 -1
package/dist/web/p.js.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(){"use strict";function n$2(e,t,n,r,o){for(t=t.split?t.split("."):t,r=0;r<t.length;r++)e=e?e[t[r]]:o;return e===o?n:e}var e="undefined",o$1="object",g$2="any",m$1="*",j$1="__",F$2="undefined"!=typeof process?process:{};F$2.env&&F$2.env.NODE_ENV;var $$1="undefined"!=typeof window;function M$1(e,t){return t.charAt(0)[e]()+t.slice(1)}null!=F$2.versions&&F$2.versions.node,"undefined"!=typeof Deno&&Deno.core,$$1&&"nodejs"===window.name||"undefined"!=typeof navigator&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom"));var U$1=M$1.bind(null,"toUpperCase"),H$1=M$1.bind(null,"toLowerCase");function J$2(e){return Y$1(e)?U$1("null"):"object"==typeof e?yn(e):Object.prototype.toString.call(e).slice(8,-1)}function R$1(e,t){void 0===t&&(t=!0);var n=J$2(e);return t?H$1(n):n}function V$1(e,t){return typeof t===e}var W$1=V$1.bind(null,"function"),q$1=V$1.bind(null,"string"),I$2=V$1.bind(null,"undefined"),Q$1=V$1.bind(null,"boolean");function Y$1(e){return null===e}function nn(e){return"number"===R$1(e)&&!isNaN(e)}function rn(e){return"array"===R$1(e)}function on(e){if(!un(e))return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function un(e){return e&&("object"==typeof e||null!==e)}function yn(e){return W$1(e.constructor)?e.constructor.name:null}function hn(e){return e instanceof Error||q$1(e.message)&&e.constructor&&nn(e.constructor.stackTraceLimit)}function On(e,t){if("object"!=typeof t||Y$1(t))return!1;if(t instanceof e)return!0;var n=R$1(new e(""));if(hn(t))for(;t;){if(R$1(t)===n)return!0;t=Object.getPrototypeOf(t)}return!1}function $n(e,t){var n=e instanceof Element||e instanceof HTMLDocument;return n&&t?Tn(e,t):n}function Tn(e,t){return void 0===t&&(t=""),e&&e.nodeName===t.toUpperCase()}function _n(e){var t=[].slice.call(arguments,1);return function(){return e.apply(void 0,[].slice.call(arguments).concat(t))}}function n$1(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}function s(e){return function(e){for(var t,n=Object.create(null),r=/([^&=]+)=?([^&]*)/g;t=r.exec(e);){var o=n$1(t[1]),i=n$1(t[2]);"[]"===o.substring(o.length-2)?(n[o=o.substring(0,o.length-2)]||(n[o]=[])).push(i):n[o]=""===i||i}for(var a in n){var c=a.split("[");c.length>1&&(m(n,c.map((function(e){return e.replace(/[?[\]\\ ]/g,"")})),n[a]),delete n[a])}return n}(function(e){if(e){var t=e.match(/\?(.*)/);return t&&t[1]?t[1].split("#")[0]:""}return $$1&&window.location.search.substring(1)}(e))}function m(e,t,n){for(var r=t.length-1,o=0;o<r;++o){var i=t[o];if("__proto__"===i||"constructor"===i)break;i in e||(e[i]={}),e=e[i]}e[t[r]]=n}function y$1(){for(var e="",t=0,n=4294967295*Math.random()|0;t++<36;){var r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"[t-1],o=15&n;e+="-"==r||"4"==r?r:("x"==r?o:3&o|8).toString(16),n=t%8==0?4294967295*Math.random()|0:n>>4}return e}V$1.bind(null,"symbol"),On.bind(null,TypeError),On.bind(null,SyntaxError),_n($n,"form"),_n($n,"button"),_n($n,"input"),_n($n,"select");var l="global",o=j$1+"global"+j$1,n=typeof self===o$1&&self.self===self&&self||typeof global===o$1&&global.global===global&&global||void 0;function a$2(e){return n[o][e]}function f(e,t){return n[o][e]=t}function i$2(e){delete n[o][e]}function u$1(e,t,n){var r;try{if(b$2(e)){var o=window[e];r=o[t].bind(o)}}catch(e){}return r||n}n[o]||(n[o]={});var c$1={};function b$2(t){if(typeof c$1[t]!==e)return c$1[t];try{var n=window[t];n.setItem(e,e),n.removeItem(e)}catch(e){return c$1[t]=!1}return c$1[t]=!0}function g$1(){return g$1=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},g$1.apply(this,arguments)}var h$1="function",v="undefined",y="@@redux/"+Math.random().toString(36),b$1=function(){return typeof Symbol===h$1&&Symbol.observable||"@@observable"}(),I$1=" != "+h$1;function w(e,t,n){var r;if(typeof t===h$1&&typeof n===v&&(n=t,t=void 0),typeof n!==v){if(typeof n!==h$1)throw new Error("enhancer"+I$1);return n(w)(e,t)}if(typeof e!==h$1)throw new Error("reducer"+I$1);var o=e,i=t,a=[],c=a,s=!1;function u(){c===a&&(c=a.slice())}function l(){return i}function g(e){if(typeof e!==h$1)throw new Error("Listener"+I$1);var t=!0;return u(),c.push(e),function(){if(t){t=!1,u();var n=c.indexOf(e);c.splice(n,1)}}}function d(e){if(!on(e))throw new Error("Act != obj");if(typeof e.type===v)throw new Error("ActType "+v);if(s)throw new Error("Dispatch in reducer");try{s=!0,i=o(i,e)}finally{s=!1}for(var t=a=c,n=0;n<t.length;n++)(0,t[n])();return e}return d({type:"@@redux/INIT"}),(r={dispatch:d,subscribe:g,getState:l,replaceReducer:function(e){if(typeof e!==h$1)throw new Error("next reducer"+I$1);o=e,d({type:"@@redux/INIT"})}})[b$1]=function(){var e,t=g;return(e={subscribe:function(e){if("object"!=typeof e)throw new TypeError("Observer != obj");function n(){e.next&&e.next(l())}return n(),{unsubscribe:t(n)}}})[b$1]=function(){return this},e},r}function E$1(e,t){var n=t&&t.type;return"action "+(n&&n.toString()||"?")+"reducer "+e+" returns "+v}function P(){var e=[].slice.call(arguments);return 0===e.length?function(e){return e}:1===e.length?e[0]:e.reduce((function(e,t){return function(){return e(t.apply(void 0,[].slice.call(arguments)))}}))}function S(){var e=arguments;return function(t){return function(n,r,o){var i,a=t(n,r,o),c=a.dispatch,s={getState:a.getState,dispatch:function(e){return c(e)}};return i=[].slice.call(e).map((function(e){return e(s)})),g$1({},a,{dispatch:c=P.apply(void 0,i)(a.dispatch)})}}}var N$1=j$1+"anon_id",A$1=j$1+"user_id",_=j$1+"user_traits",k$1="userId",j="anonymousId",x$1=["bootstrap","params","campaign","initializeStart","initialize","initializeEnd","ready","resetStart","reset","resetEnd","pageStart","page","pageEnd","pageAborted","trackStart","track","trackEnd","trackAborted","identifyStart","identify","identifyEnd","identifyAborted","userIdChanged","registerPlugins","enablePlugin","disablePlugin","online","offline","setItemStart","setItem","setItemEnd","setItemAborted","removeItemStart","removeItem","removeItemEnd","removeItemAborted"],T=["name","EVENTS","config","loaded"],z=x$1.reduce((function(e,t){return e[t]=t,e}),{registerPluginType:function(e){return"registerPlugin:"+e},pluginReadyType:function(e){return"ready:"+e}}),M=/^utm_/,q=/^an_prop_/,V=/^an_trait_/;function C$1(e){var t=e.storage.setItem;return function(n){return function(r){return function(o){if(o.type===z.bootstrap){var i=o.params,a=o.user,c=o.persistedUser,s=o.initialUser,u=c.userId===a.userId;c.anonymousId!==a.anonymousId&&t(N$1,a.anonymousId),u||t(A$1,a.userId),s.traits&&t(_,g$1({},u&&c.traits?c.traits:{},s.traits));var l=Object.keys(o.params);if(l.length){var g=i.an_uid,d=i.an_event,m=l.reduce((function(e,t){if(t.match(M)||t.match(/^(d|g)clid/)){var n=t.replace(M,"");e.campaign["campaign"===n?"name":n]=i[t]}return t.match(q)&&(e.props[t.replace(q,"")]=i[t]),t.match(V)&&(e.traits[t.replace(V,"")]=i[t]),e}),{campaign:{},props:{},traits:{}});n.dispatch(g$1({type:z.params,raw:i},m,g?{userId:g}:{})),g&&setTimeout((function(){return e.identify(g,m.traits)}),0),d&&setTimeout((function(){return e.track(d,m.props)}),0),Object.keys(m.campaign).length&&n.dispatch({type:z.campaign,campaign:m.campaign})}}return r(o)}}}}function U(e){return function(t,n){if(void 0===t&&(t={}),void 0===n&&(n={}),n.type===z.setItemEnd){if(n.key===N$1)return g$1({},t,{anonymousId:n.value});if(n.key===A$1)return g$1({},t,{userId:n.value})}switch(n.type){case z.identify:return Object.assign({},t,{userId:n.userId,traits:g$1({},t.traits,n.traits)});case z.reset:return[A$1,N$1,_].forEach((function(t){e.removeItem(t)})),Object.assign({},t,{userId:null,anonymousId:null,traits:{}});default:return t}}}function R(e){return{userId:e.getItem(A$1),anonymousId:e.getItem(N$1),traits:e.getItem(_)}}var $=function(e){return j$1+"TEMP"+j$1+e};function D(e){var t=e.storage,n=t.setItem,r=t.removeItem,o=t.getItem;return function(e){return function(t){return function(i){var a=i.userId,c=i.traits,s=i.options;if(i.type===z.reset&&([A$1,_,N$1].forEach((function(e){r(e)})),[k$1,j,"traits"].forEach((function(e){i$2($(e))}))),i.type===z.identify){o(N$1)||n(N$1,y$1());var u=o(A$1),l=o(_)||{};u&&u!==a&&e.dispatch({type:z.userIdChanged,old:{userId:u,traits:l},new:{userId:a,traits:c},options:s}),a&&n(A$1,a),c&&n(_,g$1({},l,c))}return t(i)}}}}var B={};function L$1(e,t){B[e]&&W$1(B[e])&&(B[e](t),delete B[e])}function J$1(e,t,n){return new Promise((function(r,o){return t()?r(e):n<1?o(g$1({},e,{queue:!0})):new Promise((function(e){return setTimeout(e,10)})).then((function(i){return J$1(e,t,n-10).then(r,o)}))}))}var X=function(e){var t=e.data,n=e.action,r=e.instance,o=e.state,i=e.allPlugins,a=e.allMatches,c=e.store,s=e.EVENTS;try{var u=o.plugins,l=o.context,g=n.type,d=g.match(H),m=t.exact.map((function(e){return e.pluginName}));d&&(m=a.during.map((function(e){return e.pluginName})));var f=function(e,t){return function(n,r,o){var i=r.config,a=r.name,c=a+"."+n.type;o&&(c=o.event);var s=n.type.match(H)?function(e,t,n,r,o){return function(i,a){var c=r?r.name:e,s=a&&te(a)?a:n;if(r&&(!(s=a&&te(a)?a:[e]).includes(e)||1!==s.length))throw new Error("Method "+t+" can only abort "+e+" plugin. "+JSON.stringify(s)+" input valid");return g$1({},o,{abort:{reason:i,plugins:s,caller:t,_:c}})}}(a,c,t,o,n):function(e,t){return function(){throw new Error(e.type+" action not cancellable. Remove abort in "+t)}}(n,c);return{payload:ie(n),instance:e,config:i||{},abort:s}}}(r,m),p=t.exact.reduce((function(e,t){var n=t.pluginName,r=t.methodName,o=!1;return r.match(/^initialize/)||r.match(/^reset/)||(o=!u[n].loaded),l.offline&&r.match(/^(page|track|identify)/)&&(o=!0),e[""+n]=o,e}),{});return Promise.resolve(t.exact.reduce((function(e,o,a){var c=o.pluginName;return Promise.resolve(e).then((function(e){function o(){return Promise.resolve(e)}var a=function(){if(t.namespaced&&t.namespaced[c])return Promise.resolve(t.namespaced[c].reduce((function(e,t,n){return Promise.resolve(e).then((function(e){return t.method&&W$1(t.method)?(function(e,t){var n=re(e);if(n&&n.name===t){var r=re(n.method);throw new Error([t+" plugin is calling method "+e,"Plugins cant call self","Use "+n.method+" "+(r?"or "+r.method:"")+" in "+t+" plugin insteadof "+e].join("\n"))}}(t.methodName,t.pluginName),Promise.resolve(t.method({payload:e,instance:r,abort:(n=e,o=c,a=t.pluginName,function(e,t){return g$1({},n,{abort:{reason:e,plugins:t||[o],caller:g,from:a||o}})}),config:K(t.pluginName,u,i),plugins:u})).then((function(t){var n=on(t)?t:{};return Promise.resolve(g$1({},e,n))}))):e;var n,o,a}))}),Promise.resolve(n))).then((function(t){e[c]=t}));e[c]=n}();return a&&a.then?a.then(o):o()}))}),Promise.resolve({}))).then((function(e){return Promise.resolve(t.exact.reduce((function(n,o,a){try{var s=t.exact.length===a+1,l=o.pluginName,m=i[l];return Promise.resolve(n).then((function(t){var n=e[l]?e[l]:{};if(d&&(n=t),Z(n,l))return G$1({data:n,method:g,instance:r,pluginName:l,store:c}),Promise.resolve(t);if(Z(t,l))return s&&G$1({data:t,method:g,instance:r,store:c}),Promise.resolve(t);if(p.hasOwnProperty(l)&&!0===p[l])return c.dispatch({type:"queue",plugin:l,payload:n,_:{called:"queue",from:"queueMechanism"}}),Promise.resolve(t);var o=f(e[l],i[l]);return Promise.resolve(m[g]({abort:o.abort,payload:n,instance:r,config:K(l,u,i),plugins:u})).then((function(o){var i=on(o)?o:{},a=g$1({},t,i),s=e[l];if(Z(s,l))G$1({data:s,method:g,instance:r,pluginName:l,store:c});else{var u=g+":"+l;(u.match(/:/g)||[]).length<2&&!g.match(W)&&!g.match(F$1)&&r.dispatch(g$1({},d?a:n,{type:u,_:{called:u,from:"submethod"}}))}return Promise.resolve(a)}))}))}catch(e){return Promise.reject(e)}}),Promise.resolve(n))).then((function(e){if(!(g.match(H)||g.match(/^registerPlugin/)||g.match(F$1)||g.match(W)||g.match(/^params/)||g.match(/^userIdChanged/))){if(s.plugins.includes(g),e._&&e._.originalAction===g)return e;var n=g$1({},e,{_:{originalAction:e.type,called:e.type,from:"engineEnd"}});ee(e,t.exact.length)&&!g.match(/End$/)&&(n=g$1({},n,{type:e.type+"Aborted"})),c.dispatch(n)}return e}))}))}catch(e){return Promise.reject(e)}},H=/Start$/,W=/^bootstrap/,F$1=/^ready/;function G$1(e){var t=e.pluginName,n=e.method+"Aborted"+(t?":"+t:"");e.store.dispatch(g$1({},e.data,{type:n,_:{called:n,from:"abort"}}))}function K(e,t,n){var r=t[e]||n[e];return r&&r.config?r.config:{}}function Q(e,t){return t.reduce((function(t,n){return n[e]?t.concat({methodName:e,pluginName:n.name,method:n[e]}):t}),[])}function Y(e,t){var n=e.replace(H,""),r=t?":"+t:"";return[""+e+r,""+n+r,n+"End"+r]}function Z(e,t){var n=e.abort;return!!n&&(!0===n||ne(n,t)||n&&ne(n.plugins,t))}function ee(e,t){var n=e.abort;if(!n)return!1;if(!0===n||q$1(n))return!0;var r=n.plugins;return te(n)&&n.length===t||te(r)&&r.length===t}function te(e){return Array.isArray(e)}function ne(e,t){return!(!e||!te(e))&&e.includes(t)}function re(e){var t=e.match(/(.*):(.*)/);return!!t&&{method:t[1],name:t[2]}}function ie(e){return Object.keys(e).reduce((function(t,n){return"type"===n||(t[n]=on(e[n])?Object.assign({},e[n]):e[n]),t}),{})}function ae(e,t,n){var r={};return function(o){return function(i){return function(a){try{var c,s=function(e){return c?e:i(g)},u=a.type,l=a.plugins,g=a;if(a.abort)return Promise.resolve(i(a));if(u===z.enablePlugin&&o.dispatch({type:z.initializeStart,plugins:l,disabled:[],fromEnable:!0,meta:a.meta}),u===z.disablePlugin&&setTimeout((function(){return L$1(a.meta.rid,{payload:a})}),0),u===z.initializeEnd){var d=t(),m=Object.keys(d),f=m.filter((function(e){return l.includes(e)})).map((function(e){return d[e]})),p=[],b=[],v=a.disabled,h=f.map((function(e){var t=e.name;return J$1(e,e.loaded,1e4).then((function(n){return r[t]||(o.dispatch({type:z.pluginReadyType(t),name:t,events:Object.keys(e).filter((function(e){return!T.includes(e)}))}),r[t]=!0),p=p.concat(t),e})).catch((function(e){if(e instanceof Error)throw new Error(e);return b=b.concat(e.name),e}))}));Promise.all(h).then((function(e){var t={plugins:p,failed:b,disabled:v};setTimeout((function(){m.length===h.length+v.length&&o.dispatch(g$1({},{type:z.ready},t))}),0)}))}var y=function(){if(u!==z.bootstrap)return/^ready:([^:]*)$/.test(u)&&setTimeout((function(){return function(e,t,n){var r=t(),o=e.getState(),i=o.plugins,a=o.queue,c=o.user;if(!o.context.offline&&a&&a.actions&&a.actions.length){var s=a.actions.reduce((function(e,t,n){return i[t.plugin].loaded?(e.process.push(t),e.processIndex.push(n)):(e.requeue.push(t),e.requeueIndex.push(n)),e}),{processIndex:[],process:[],requeue:[],requeueIndex:[]});if(s.processIndex&&s.processIndex.length){s.processIndex.forEach((function(t){var o=a.actions[t],s=o.plugin,u=o.payload.type,l=r[s][u];if(l&&W$1(l)){var g=function(e,t){return void 0===e&&(e={}),void 0===t&&(t={}),[k$1,j].reduce((function(n,r){return e.hasOwnProperty(r)&&t[r]&&t[r]!==e[r]&&(n[r]=t[r]),n}),e)}(o.payload,c);l({payload:g,config:i[s].config,instance:n});var d=u+":"+s;e.dispatch(g$1({},g,{type:d,_:{called:d,from:"queueDrain"}}))}}));var u=a.actions.filter((function(e,t){return!~s.processIndex.indexOf(t)}));a.actions=u}}}(o,t,e)}),0),Promise.resolve(function(e,t,n,r,o){try{var i=W$1(t)?t():t,a=e.type,c=a.replace(H,"");if(e._&&e._.called)return Promise.resolve(e);var s=n.getState(),u=(d=i,void 0===(m=s.plugins)&&(m={}),void 0===(f=e.options)&&(f={}),Object.keys(d).filter((function(e){var t=f.plugins||{};return Q$1(t[e])?t[e]:!1!==t.all&&(!m[e]||!1!==m[e].enabled)})).map((function(e){return d[e]})));a===z.initializeStart&&e.fromEnable&&(u=Object.keys(s.plugins).filter((function(t){var n=s.plugins[t];return e.plugins.includes(t)&&!n.initialized})).map((function(e){return i[e]})));var l=u.map((function(e){return e.name})),g=function(e,t,n){var r=Y(e).map((function(e){return Q(e,t)}));return t.reduce((function(n,r){var o=r.name,i=Y(e,o).map((function(e){return Q(e,t)})),a=i[0],c=i[1],s=i[2];return a.length&&(n.beforeNS[o]=a),c.length&&(n.duringNS[o]=c),s.length&&(n.afterNS[o]=s),n}),{before:r[0],beforeNS:{},during:r[1],duringNS:{},after:r[2],afterNS:{}})}(a,u);return Promise.resolve(X({action:e,data:{exact:g.before,namespaced:g.beforeNS},state:s,allPlugins:i,allMatches:g,instance:n,store:r,EVENTS:o})).then((function(e){function t(){var t=function(){if(a.match(H))return Promise.resolve(X({action:g$1({},u,{type:c+"End"}),data:{exact:g.after,namespaced:g.afterNS},state:s,allPlugins:i,allMatches:g,instance:n,store:r,EVENTS:o})).then((function(e){e.meta&&e.meta.hasCallback&&L$1(e.meta.rid,{payload:e})}))}();return t&&t.then?t.then((function(){return e})):e}if(ee(e,l.length))return e;var u,d=function(){if(a!==c)return Promise.resolve(X({action:g$1({},e,{type:c}),data:{exact:g.during,namespaced:g.duringNS},state:s,allPlugins:i,allMatches:g,instance:n,store:r,EVENTS:o})).then((function(e){u=e}));u=e}();return d&&d.then?d.then(t):t()}))}catch(e){return Promise.reject(e)}var d,m,f}(a,t,e,o,n)).then((function(e){var t=i(e);return c=1,t}))}();return Promise.resolve(y&&y.then?y.then(s):s(y))}catch(e){return Promise.reject(e)}}}}}function oe(e){return function(t){return function(t){return function(n){var r=n.type,o=n.key,i=n.value,a=n.options;if(r===z.setItem||r===z.removeItem){if(n.abort)return t(n);r===z.setItem?e.setItem(o,i,a):e.removeItem(o,a)}return t(n)}}}}var ue=function(){var e=this;this.before=[],this.after=[],this.addMiddleware=function(t,n){e[n]=e[n].concat(t)},this.removeMiddleware=function(t,n){var r=e[n].findIndex((function(e){return e===t}));-1!==r&&(e[n]=[].concat(e[n].slice(0,r),e[n].slice(r+1)))},this.dynamicMiddlewares=function(t){return function(n){return function(r){return function(o){var i={getState:n.getState,dispatch:function(e){return n.dispatch(e)}},a=e[t].map((function(e){return e(i)}));return P.apply(void 0,a)(r)(o)}}}}};function ce(e){return function(t,n){void 0===t&&(t={});var r={};if("initialize:aborted"===n.type)return t;if(/^registerPlugin:([^:]*)$/.test(n.type)){var o=se(n.type,"registerPlugin"),i=e()[o];if(!i||!o)return t;var a=n.enabled;return r[o]={enabled:a,initialized:!!a&&Boolean(!i.initialize),loaded:!!a&&Boolean(i.loaded()),config:i.config||{}},g$1({},t,r)}if(/^initialize:([^:]*)$/.test(n.type)){var c=se(n.type,z.initialize),s=e()[c];return s&&c?(r[c]=g$1({},t[c],{initialized:!0,loaded:Boolean(s.loaded())}),g$1({},t,r)):t}if(/^ready:([^:]*)$/.test(n.type))return r[n.name]=g$1({},t[n.name],{loaded:!0}),g$1({},t,r);switch(n.type){case z.disablePlugin:return g$1({},t,le(n.plugins,!1,t));case z.enablePlugin:return g$1({},t,le(n.plugins,!0,t));default:return t}}}function se(e,t){return e.substring(t.length+1,e.length)}function le(e,t,n){return e.reduce((function(e,r){return e[r]=g$1({},n[r],{enabled:t}),e}),n)}function fe(e){try{return JSON.parse(JSON.stringify(e))}catch(e){}return e}var de={last:{},history:[]};function pe(e,t){void 0===e&&(e=de);var n=t.options,r=t.meta;if(t.type===z.track){var o=fe(g$1({event:t.event,properties:t.properties},Object.keys(n).length&&{options:n},{meta:r}));return g$1({},e,{last:o,history:e.history.concat(o)})}return e}var me={actions:[]};function ge(e,t){void 0===e&&(e=me);var n=t.payload;switch(t.type){case"queue":var r;return r=n&&n.type&&n.type===z.identify?[t].concat(e.actions):e.actions.concat(t),g$1({},e,{actions:r});case"dequeue":return[];default:return e}}var he=/#.*$/;function ve(e){var t=/(http[s]?:\/\/)?([^\/\s]+\/)(.*)/g.exec(e);return"/"+(t&&t[3]?t[3].split("?")[0].replace(he,""):"")}var ye,be=function(e){if(void 0===e&&(e={}),!$$1)return e;var t=document,n=t.title,r=t.referrer,o=window,i=o.location,a=o.innerWidth,c=o.innerHeight,s=i.hash,u=i.search,l=function(e){var t=function(){if($$1)for(var e,t=document.getElementsByTagName("link"),n=0;e=t[n];n++)if("canonical"===e.getAttribute("rel"))return e.getAttribute("href")}();return t?t.match(/\?/)?t:t+e:window.location.href.replace(he,"")}(u),g={title:n,url:l,path:ve(l),hash:s,search:u,width:a,height:c};return r&&""!==r&&(g.referrer=r),g$1({},g,e)},Ie={last:{},history:[]};function we(e,t){void 0===e&&(e=Ie);var n=t.options;if(t.type===z.page){var r=fe(g$1({properties:t.properties,meta:t.meta},Object.keys(n).length&&{options:n}));return g$1({},e,{last:r,history:e.history.concat(r)})}return e}ye={};var Ee={initialized:!1,sessionId:y$1(),app:null,version:null,debug:!1,offline:!!$$1&&!navigator.onLine,os:{name:"na"},userAgent:$$1?navigator.userAgent:"node",library:{name:"analytics",version:"0.11.0"},timezone:void 0,locale:void 0,campaign:{},referrer:ye};function Pe(e,t){void 0===e&&(e=Ee);var n=e.initialized,r=t.campaign;switch(t.type){case z.campaign:return g$1({},e,{campaign:r});case z.offline:return g$1({},e,{offline:!0});case z.online:return g$1({},e,{offline:!1});default:return n?e:g$1({},Ee,e,{initialized:!0})}}var Se=["plugins","reducers","storage"];function Ne(){return f("analytics",[]),function(e){return function(t,r,i){var a=e(t,r,i),c=a.dispatch;return Object.assign(a,{dispatch:function(e){return n[o].analytics.push(e.action||e),c(e)}})}}}function Ae(e){return function(){return P(P.apply(null,arguments),Ne())}}function _e(e){return e?rn(e)?e:[e]:[]}function Oe(e,t,n){void 0===e&&(e={});var r,o,i=y$1();return t&&(B[i]=(r=t,o=function(e){for(var t,n=e||Array.prototype.slice.call(arguments),r=0;r<n.length;r++)if(W$1(n[r])){t=n[r];break}return t}(n),function(e){o&&o(e),r(e)})),g$1({},e,{rid:i,ts:(new Date).getTime()},t?{hasCallback:!0}:{})}function ke(e){void 0===e&&(e={});var t=e.reducers||{},n=e.initialUser||{},r=(e.plugins||[]).reduce((function(e,t){if(W$1(t))return e.middlewares=e.middlewares.concat(t),e;if(t.NAMESPACE&&(t.name=t.NAMESPACE),!t.name)throw new Error("https://lytics.dev/errors/1");var n=t.EVENTS?Object.keys(t.EVENTS).map((function(e){return t.EVENTS[e]})):[];e.pluginEnabled[t.name]=!(!1===t.enabled||t.config&&!1===t.config.enabled),delete t.enabled,t.methods&&(e.methods[t.name]=Object.keys(t.methods).reduce((function(e,n){var r;return e[n]=(r=t.methods[n],function(){for(var e=Array.prototype.slice.call(arguments),t=new Array(r.length),n=0;n<e.length;n++)t[n]=e[n];return t[t.length]=x,r.apply({instance:x},t)}),e}),{}),delete t.methods);var r=Object.keys(t).concat(n),o=new Set(e.events.concat(r));if(e.events=Array.from(o),e.pluginsArray=e.pluginsArray.concat(t),e.plugins[t.name])throw new Error(t.name+"AlreadyLoaded");return e.plugins[t.name]=t,e.plugins[t.name].loaded||(e.plugins[t.name].loaded=function(){return!0}),e}),{plugins:{},pluginEnabled:{},methods:{},pluginsArray:[],middlewares:[],events:[]}),o=e.storage?e.storage:{getItem:a$2,setItem:f,removeItem:i$2},i=function(e){return function(t,n,r){return n.getState("user")[t]||(r&&on(r)&&r[t]?r[t]:R(e)[t]||a$2($(t))||null)}}(o),a=r.plugins,c=r.events.filter((function(e){return!T.includes(e)})).sort(),u=new Set(c.concat(x$1).filter((function(e){return!T.includes(e)}))),l=Array.from(u).sort(),g=function(){return a},d=new ue,m=d.addMiddleware,p=d.removeMiddleware,b=d.dynamicMiddlewares,h=function(){throw new Error("Abort disabled inListener")},k=s(),I=R(o),O=g$1({},I,n,k.an_uid?{userId:k.an_uid}:{},k.an_aid?{anonymousId:k.an_aid}:{});O.anonymousId||(O.anonymousId=y$1());var _=g$1({enable:function(e,t){return new Promise((function(n){V.dispatch({type:z.enablePlugin,plugins:_e(e),_:{originalAction:z.enablePlugin}},n,[t])}))},disable:function(e,t){return new Promise((function(n){V.dispatch({type:z.disablePlugin,plugins:_e(e),_:{originalAction:z.disablePlugin}},n,[t])}))}},r.methods),x={identify:function(e,t,n,r){try{var o=q$1(e)?e:null,a=on(e)?e:t,c=n||{},s=x.user();f($(k$1),o);var u=o||a.userId||i(k$1,x,a);return Promise.resolve(new Promise((function(e){V.dispatch(g$1({type:z.identifyStart,userId:u,traits:a||{},options:c,anonymousId:s.anonymousId},s.id&&s.id!==o&&{previousId:s.id}),e,[t,n,r])})))}catch(e){return Promise.reject(e)}},track:function(e,t,n,r){try{var o=on(e)?e.event:e;if(!o||!q$1(o))throw new Error("EventMissing");var a=on(e)?e:t||{},c=on(n)?n:{};return Promise.resolve(new Promise((function(e){V.dispatch({type:z.trackStart,event:o,properties:a,options:c,userId:i(k$1,x,t),anonymousId:i(j,x,t)},e,[t,n,r])})))}catch(e){return Promise.reject(e)}},page:function(e,t,n){try{var r=on(e)?e:{},o=on(t)?t:{};return Promise.resolve(new Promise((function(a){V.dispatch({type:z.pageStart,properties:be(r),options:o,userId:i(k$1,x,r),anonymousId:i(j,x,r)},a,[e,t,n])})))}catch(e){return Promise.reject(e)}},user:function(e){if(e===k$1||"id"===e)return i(k$1,x);if(e===j||"anonId"===e)return i(j,x);var t=x.getState("user");return e?n$2(t,e):t},reset:function(e){return new Promise((function(t){V.dispatch({type:z.resetStart},t,e)}))},ready:function(e){return x.on(z.ready,e)},on:function(e,t){if(!e||!W$1(t))return!1;if(e===z.bootstrap)throw new Error(".on disabled for "+e);var n=/Start$|Start:/;if("*"===e){var r=function(e){return function(e){return function(r){return r.type.match(n)&&t({payload:r,instance:x,plugins:a}),e(r)}}},o=function(e){return function(e){return function(r){return r.type.match(n)||t({payload:r,instance:x,plugins:a}),e(r)}}};return m(r,je),m(o,xe),function(){p(r,je),p(o,xe)}}var i=e.match(n)?je:xe,c=function(n){return function(n){return function(r){return r.type===e&&t({payload:r,instance:x,plugins:a,abort:h}),n(r)}}};return m(c,i),function(){return p(c,i)}},once:function(e,t){if(!e||!W$1(t))return!1;if(e===z.bootstrap)throw new Error(".once disabled for "+e);var n=x.on(e,(function(e){t({payload:e.payload,instance:x,plugins:a,abort:h}),n()}));return n},getState:function(e){var t=V.getState();return e?n$2(t,e):Object.assign({},t)},dispatch:function(e){var t=q$1(e)?{type:e}:e;if(x$1.includes(t.type))throw new Error("reserved action "+t.type);var n=g$1({},t,{_:g$1({originalAction:t.type},e._||{})});V.dispatch(n)},enablePlugin:_.enable,disablePlugin:_.disable,plugins:_,storage:{getItem:o.getItem,setItem:function(e,t,n){V.dispatch({type:z.setItemStart,key:e,value:t,options:n})},removeItem:function(e,t){V.dispatch({type:z.removeItemStart,key:e,options:t})}},setAnonymousId:function(e,t){x.storage.setItem(N$1,e,t)},events:{core:x$1,plugins:c}},E=r.middlewares.concat([function(e){return function(e){return function(t){return t.meta||(t.meta=Oe()),e(t)}}},b(je),ae(x,g,{all:l,plugins:c}),oe(o),C$1(x),D(x),b(xe)]),N={context:Pe,user:U(o),page:we,track:pe,plugins:ce(g),queue:ge},A=P,C=P;if($$1&&e.debug){var L=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;L&&(A=L({trace:!0,traceLimit:25})),C=function(){return 0===arguments.length?Ne():on(typeof arguments[0])?Ae():Ae().apply(null,arguments)}}var M,J=function(e){return Object.keys(e).reduce((function(t,n){return Se.includes(n)||(t[n]=e[n]),t}),{})}(e),q=r.pluginsArray.reduce((function(e,t){var n=t.name,o=t.config,i=t.loaded,a=r.pluginEnabled[n];return e[n]={enabled:a,initialized:!!a&&Boolean(!t.initialize),loaded:Boolean(i()),config:o||{}},e}),{}),F={context:J,user:O,plugins:q},V=w(function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var o=t[r];typeof e[o]===h$1&&(n[o]=e[o])}var i,a=Object.keys(n);try{!function(e){Object.keys(e).forEach((function(t){var n=e[t];if(typeof n(void 0,{type:"@@redux/INIT"})===v||typeof n(void 0,{type:y})===v)throw new Error("reducer "+t+" "+v)}))}(n)}catch(e){i=e}return function(e,t){if(void 0===e&&(e={}),i)throw i;for(var r=!1,o={},c=0;c<a.length;c++){var s=a[c],u=e[s],l=(0,n[s])(u,t);if(typeof l===v){var g=E$1(s,t);throw new Error(g)}o[s]=l,r=r||l!==u}return r?o:e}}(g$1({},N,t)),F,C(A(S.apply(void 0,E))));V.dispatch=(M=V.dispatch,function(e,t,n){var r=g$1({},e,{meta:Oe(e.meta,t,_e(n))});return M.apply(null,[r])});var G=Object.keys(a);V.dispatch({type:z.bootstrap,plugins:G,config:J,params:k,user:O,initialUser:n,persistedUser:I});var W=G.filter((function(e){return r.pluginEnabled[e]})),B=G.filter((function(e){return!r.pluginEnabled[e]}));return V.dispatch({type:z.registerPlugins,plugins:G,enabled:r.pluginEnabled}),r.pluginsArray.map((function(e,t){var n=e.bootstrap,o=e.config,i=e.name;n&&W$1(n)&&n({instance:x,config:o,payload:e}),V.dispatch({type:z.registerPluginType(i),name:i,enabled:r.pluginEnabled[i],plugin:e}),r.pluginsArray.length===t+1&&V.dispatch({type:z.initializeStart,plugins:W,disabled:B})})),x}var je="before",xe="after",t="cookie",i$1=a$1(),r$1=d$1,c=d$1;function u(e){return i$1?d$1(e,"",-1):i$2(e)}function a$1(){if(void 0!==i$1)return i$1;var e="cookiecookie";try{d$1(e,e),i$1=-1!==document.cookie.indexOf(e),u(e)}catch(e){i$1=!1}return i$1}function d$1(e,t,n,r,o,i){if("undefined"!=typeof window){var a=arguments.length>1;return!1===i$1&&(a?f(e,t):a$2(e)),a?document.cookie=e+"="+encodeURIComponent(t)+(n?"; expires="+new Date(+new Date+1e3*n).toUTCString()+(r?"; path="+r:"")+(o?"; domain="+o:"")+(i?"; secure":""):""):decodeURIComponent((("; "+document.cookie).split("; "+e+"=")[1]||"").split(";")[0])}}var r="localStorage",g=b$2.bind(null,"localStorage");u$1("localStorage","getItem",a$2),u$1("localStorage","setItem",f),u$1("localStorage","removeItem",i$2);var a="sessionStorage",i=b$2.bind(null,"sessionStorage");function I(e){var t=e;try{if("true"===(t=JSON.parse(e)))return!0;if("false"===t)return!1;if(on(t))return t;parseFloat(t)===t&&(t=parseFloat(t))}catch(e){}if(null!==t&&""!==t)return t}u$1("sessionStorage","getItem",a$2),u$1("sessionStorage","setItem",f),u$1("sessionStorage","removeItem",i$2);var k=g(),O=i(),x=a$1();function C(e,t){if(e){var n=A(t),r=!N(n),o=d(n)?I(localStorage.getItem(e)):void 0;if(r&&!I$2(o))return o;var i=h(n)?I(r$1(e)):void 0;if(r&&i)return i;var a=E(n)?I(sessionStorage.getItem(e)):void 0;if(r&&a)return a;var c=a$2(e);return r?c:{localStorage:o,sessionStorage:a,cookie:i,global:c}}}function L(e,n,o){if(e&&!I$2(n)){var i={},s=A(o),u=JSON.stringify(n),g=!N(s);return d(s)&&(i[r]=F(r,n,I(localStorage.getItem(e))),localStorage.setItem(e,u),g)?i[r]:h(s)&&(i[t]=F(t,n,I(r$1(e))),c(e,u),g)?i[t]:E(s)&&(i[a]=F(a,n,I(sessionStorage.getItem(e))),sessionStorage.setItem(e,u),g)?i[a]:(i[l]=F(l,n,a$2(e)),f(e,n),g?i[l]:i)}}function b(e,n){if(e){var o=A(n),i=C(e,m$1),c={};return!I$2(i.localStorage)&&d(o)&&(localStorage.removeItem(e),c[r]=i.localStorage),!I$2(i.cookie)&&h(o)&&(u(e),c[t]=i.cookie),!I$2(i.sessionStorage)&&E(o)&&(sessionStorage.removeItem(e),c[a]=i.sessionStorage),!I$2(i.global)&&G(o,l)&&(i$2(e),c[l]=i.global),c}}function A(e){return e?q$1(e)?e:e.storage:g$2}function d(e){return k&&G(e,r)}function h(e){return x&&G(e,t)}function E(e){return O&&G(e,a)}function N(e){return e===m$1||"all"===e}function G(e,t){return e===g$2||e===t||N(e)}function F(e,t,n){return{location:e,current:t,previous:n}}var J={setItem:L,getItem:C,removeItem:b};function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function analyticsLib(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ke(_objectSpread2(_objectSpread2({},{storage:J}),e))}function findScript(e){return Array.prototype.slice.call(window.document.querySelectorAll("script")).find((t=>t.src===e))}function loadScript(e,t){const n=findScript(e);if(void 0!==n){const e=null==n?void 0:n.getAttribute("status");if("loaded"===e)return Promise.resolve(n);if("loading"===e)return new Promise(((e,t)=>{n.addEventListener("load",(()=>e(n))),n.addEventListener("error",(e=>t(e)))}))}return new Promise(((n,r)=>{var o;const i=window.document.createElement("script");i.type="text/javascript",i.src=e,i.async=!0,i.setAttribute("status","loading");for(const[e,n]of Object.entries(null!=t?t:{}))i.setAttribute(e,n);i.onload=()=>{i.onerror=i.onload=null,i.setAttribute("status","loaded"),n(i)},i.onerror=()=>{i.onerror=i.onload=null,i.setAttribute("status","error"),r(new Error(`Failed to load ${e}`))};const a=window.document.getElementsByTagName("script")[0];null===(o=a.parentElement)||void 0===o||o.insertBefore(i,a)}))}var __awaiter$3=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))};const tagPlugin={id:"tag",handle(e,t){return __awaiter$3(this,void 0,void 0,(function*(){applyFilters(t,e)&&insertTags(e.code,t)}))}};function insertTags(e,t,n={}){let r;try{r=JSON.parse(e)}catch(t){r={code:e,lang:"javascript"}}const o=n.debug||!1;if(isInBrowser())if("javascript"===r.lang)execJs(r.code,t);else{const e=document.createElement("span");e.innerHTML=replaceMacro(r.code,t),document.body.insertAdjacentElement("beforeend",e);e.querySelectorAll("script").forEach((e=>{const t=document.createElement("script");t.type=t.type||"text/javascript",e.hasAttribute("src")&&(t.src=e.src),t.text=e.text,o&&console.log("[JITSU] Executing script"+(e.hasAttribute("src")?` ${e.src}`:""),t.text),document.head.appendChild(t),document.head.removeChild(t)}))}else o&&console.log("[JITSU] insertTags(): cannot insert tags in non-browser environment")}function execJs(code,event){const varName=`jitsu_event_${randomId()}`;window[varName]=event;const iif=`(function(){\n const event = ${varName};\n ${code}\n })()`;try{eval(iif)}catch(e){console.error(`[JITSU] Error executing JS code: ${e.message}. Code: `,iif)}finally{delete window[varName]}return iif}function replaceMacro(e,t){return e.replace(/{{\s*event\s*}}/g,JSON.stringify(t))}var __awaiter$2=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))};const logrocketPlugin={id:"logrocket",handle(e,t){return __awaiter$2(this,void 0,void 0,(function*(){if(!applyFilters(t,e))return;initLogrocketIfNeeded(e.appId);getLogRocketQueue().push((e=>{"identify"===t.type&&t.userId&&e.identify(t.userId,t.traits||{})})),"loaded"===getLogRocketState()&&flushLogRocketQueue(window.LogRocket)}))}};function getLogRocketState(){return window.__jitsuLrState||"fresh"}function setLogRocketState(e){window.__jitsuLrState=e}function getLogRocketQueue(){return window.__jitsuLrQueue||(window.__jitsuLrQueue=[])}function flushLogRocketQueue(e){const t=getLogRocketQueue();for(;t.length>0;){const n=t.shift();try{const t=n(e);t&&t.catch((e=>console.warn(`Async LogRocket method failed: ${e.message}`,e)))}catch(e){console.warn(`LogRocket method failed: ${e.message}`,e)}}}function initLogrocketIfNeeded(e){return __awaiter$2(this,void 0,void 0,(function*(){"fresh"===getLogRocketState()&&(setLogRocketState("loading"),loadScript("https://cdn.lr-ingest.io/LogRocket.min.js",{crossOrigin:"anonymous"}).then((()=>{if(window.LogRocket){try{window.LogRocket.init(e)}catch(t){console.warn(`LogRocket (id=${e}) init failed: ${t.message}`,t),setLogRocketState("failed")}setLogRocketState("loaded"),flushLogRocketQueue(window.LogRocket)}})).catch((t=>{console.warn(`LogRocket (id=${e}) init failed: ${t.message}`,t),setLogRocketState("failed")})))}))}var __awaiter$1=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))};const defaultScriptSrc="https://www.googletagmanager.com/gtag/js",gtmPlugin={id:"gtm",handle(e,t){var n,r;return __awaiter$1(this,void 0,void 0,(function*(){if(!applyFilters(t,e))return;yield initGtmIfNeeded(e);const o=window[e.dataLayerName||"dataLayer"];switch(t.type){case"page":const{properties:i,context:a}=t,c={event:"page_view",url:i.url,title:i.title,referer:null!==(r=null===(n=null==a?void 0:a.page)||void 0===n?void 0:n.referrer)&&void 0!==r?r:""};e.debug&&console.log("gtag push",c),o.push(c);break;case"track":const{properties:s}=t,u=Object.assign({event:t.event},s);t.userId&&(u.userId=t.userId),t.anonymousId&&(u.anonymousId=t.anonymousId),e.debug&&console.log("gtag push",u),o.push(u);break;case"identify":const{traits:l}=t,g=Object.assign({event:"identify"},l);t.userId&&(g.userId=t.userId),t.anonymousId&&(g.anonymousId=t.anonymousId),e.debug&&console.log("gtag push",g),o.push(g)}}))}};function getGtmState(){return window.__jitsuGtmState||"fresh"}function setGtmState(e){window.__jitsuGtmState=e}function initGtmIfNeeded(e){return __awaiter$1(this,void 0,void 0,(function*(){if("fresh"!==getGtmState())return;setGtmState("loading");const t=e.dataLayerName||"dataLayer",n="dataLayer"!==t?"&l="+t:"",r=e.preview?`>m_preview=${e.preview}>m_auth=${e.auth}>m_cookies_win=x`:"",o=`${e.customScriptSrc||defaultScriptSrc}?id=${e.containerId}${n}${r}`;window[t]=window[t]||[];const i=function(){window[t].push(arguments)};i("js",new Date),i("config",e.containerId),loadScript(o).then((()=>{setGtmState("loaded")})).catch((t=>{console.warn(`GTM (containerId=${e.containerId}) init failed: ${t.message}`,t),setGtmState("failed")}))}))}function satisfyFilter(e,t){return"*"===e||e.toLowerCase().trim()===(t||"").trim().toLowerCase()}function satisfyDomainFilter(e,t){return"*"===e||(t=t||"",e.startsWith("*.")?t.endsWith(e.substring(1)):e===t)}function applyFilters(e,t){const{hosts:n="*",events:r="*"}=t;try{const t=Array.isArray(r)?r:r.split("\n");return!(!(Array.isArray(n)?n:n.split("\n")).find((t=>{var n;return satisfyDomainFilter(t,null===(n=e.context)||void 0===n?void 0:n.host)}))||!t.find((t=>satisfyFilter(t,e.type)))&&!t.find((t=>satisfyFilter(t,e.event))))}catch(e){throw console.warn(`Failed to apply filters: ${e.message}. Typeof events: ${typeof r}, typeof hosts: ${typeof n}. Values`,r,n),new Error(`Failed to apply filters: ${e.message}. Typeof events: ${typeof r}, typeof hosts: ${typeof n}`)}}const internalDestinationPlugins={[tagPlugin.id]:tagPlugin,[gtmPlugin.id]:gtmPlugin,[logrocketPlugin.id]:logrocketPlugin};var name="@jitsu/js",version="0.0.0";const publicSuffixes="ac,com.ac,edu.ac,gov.ac,net.ac,mil.ac,org.ac,ad,nom.ad,ae,co.ae,net.ae,org.ae,sch.ae,ac.ae,gov.ae,mil.ae,aero,af,gov.af,com.af,org.af,net.af,edu.af,ag,com.ag,org.ag,net.ag,co.ag,nom.ag,ai,off.ai,com.ai,net.ai,org.ai,al,com.al,edu.al,gov.al,mil.al,net.al,org.al,am,co.am,com.am,commune.am,net.am,org.am,ao,ed.ao,gv.ao,og.ao,co.ao,pb.ao,it.ao,aq,ar,bet.ar,com.ar,coop.ar,edu.ar,gob.ar,gov.ar,int.ar,mil.ar,musica.ar,mutual.ar,net.ar,org.ar,senasa.ar,tur.ar,arpa,e164.arpa,in-addr.arpa,ip6.arpa,iris.arpa,uri.arpa,urn.arpa,as,gov.as,asia,at,ac.at,co.at,gv.at,or.at,sth.ac.at,au,com.au,net.au,org.au,edu.au,gov.au,asn.au,id.au,act.au,nsw.au,nt.au,qld.au,sa.au,tas.au,vic.au,wa.au,aw,com.aw,ax,az,com.az,net.az,int.az,gov.az,org.az,edu.az,info.az,pp.az,mil.az,name.az,pro.az,biz.az,ba,com.ba,edu.ba,gov.ba,mil.ba,net.ba,org.ba,bb,biz.bb,co.bb,com.bb,edu.bb,gov.bb,info.bb,net.bb,org.bb,store.bb,tv.bb,bd,be,ac.be,bf,gov.bf,bg,a.bg,b.bg,c.bg,d.bg,e.bg,f.bg,g.bg,h.bg,i.bg,j.bg,k.bg,l.bg,m.bg,n.bg,o.bg,p.bg,q.bg,r.bg,s.bg,t.bg,u.bg,v.bg,w.bg,x.bg,y.bg,z.bg,0.bg,1.bg,2.bg,3.bg,4.bg,5.bg,6.bg,7.bg,8.bg,9.bg,bh,com.bh,edu.bh,net.bh,org.bh,gov.bh,bi,co.bi,com.bi,edu.bi,or.bi,org.bi,biz,bj,africa.bj,agro.bj,architectes.bj,assur.bj,avocats.bj,co.bj,com.bj,eco.bj,econo.bj,edu.bj,info.bj,loisirs.bj,money.bj,net.bj,org.bj,ote.bj,resto.bj,restaurant.bj,tourism.bj,univ.bj,bm,com.bm,edu.bm,gov.bm,net.bm,org.bm,bn,com.bn,edu.bn,gov.bn,net.bn,org.bn,bo,com.bo,edu.bo,gob.bo,int.bo,org.bo,net.bo,mil.bo,tv.bo,web.bo,br,9guacu.br,abc.br,adm.br,adv.br,agr.br,aju.br,am.br,anani.br,aparecida.br,app.br,arq.br,art.br,ato.br,b.br,barueri.br,belem.br,bhz.br,bib.br,bio.br,blog.br,bmd.br,boavista.br,bsb.br,campinagrande.br,campinas.br,caxias.br,cim.br,cng.br,cnt.br,com.br,contagem.br,coop.br,coz.br,cri.br,cuiaba.br,curitiba.br,def.br,des.br,det.br,dev.br,ecn.br,eco.br,edu.br,emp.br,enf.br,eng.br,esp.br,etc.br,eti.br,far.br,feira.br,flog.br,floripa.br,fm.br,fnd.br,fortal.br,fot.br,foz.br,fst.br,g12.br,geo.br,ggf.br,goiania.br,gov.br,gru.br,imb.br,ind.br,inf.br,jab.br,jampa.br,jdf.br,joinville.br,jor.br,jus.br,leg.br,lel.br,log.br,londrina.br,macapa.br,maceio.br,manaus.br,maringa.br,mat.br,med.br,mil.br,morena.br,mp.br,mus.br,natal.br,net.br,niteroi.br,nom.br,not.br,ntr.br,odo.br,ong.br,org.br,osasco.br,palmas.br,poa.br,ppg.br,pro.br,psc.br,psi.br,pvh.br,qsl.br,radio.br,rec.br,recife.br,rep.br,ribeirao.br,rio.br,riobranco.br,riopreto.br,salvador.br,sampa.br,santamaria.br,santoandre.br,saobernardo.br,saogonca.br,seg.br,sjc.br,slg.br,slz.br,sorocaba.br,srv.br,taxi.br,tc.br,tec.br,teo.br,the.br,tmp.br,trd.br,tur.br,tv.br,udi.br,vet.br,vix.br,vlog.br,wiki.br,zlg.br,bs,com.bs,net.bs,org.bs,edu.bs,gov.bs,bt,com.bt,edu.bt,gov.bt,net.bt,org.bt,bv,bw,co.bw,org.bw,by,gov.by,mil.by,com.by,of.by,bz,com.bz,net.bz,org.bz,edu.bz,gov.bz,ca,ab.ca,bc.ca,mb.ca,nb.ca,nf.ca,nl.ca,ns.ca,nt.ca,nu.ca,on.ca,pe.ca,qc.ca,sk.ca,yk.ca,gc.ca,cat,cc,cd,gov.cd,cf,cg,ch,ci,org.ci,or.ci,com.ci,co.ci,edu.ci,ed.ci,ac.ci,net.ci,go.ci,asso.ci,aéroport.ci,int.ci,presse.ci,md.ci,gouv.ci,ck,cl,co.cl,gob.cl,gov.cl,mil.cl,cm,co.cm,com.cm,gov.cm,net.cm,cn,ac.cn,com.cn,edu.cn,gov.cn,net.cn,org.cn,mil.cn,co,arts.co,com.co,edu.co,firm.co,gov.co,info.co,int.co,mil.co,net.co,nom.co,org.co,rec.co,web.co,com,coop,cr,ac.cr,co.cr,ed.cr,fi.cr,go.cr,or.cr,sa.cr,cu,com.cu,edu.cu,org.cu,net.cu,gov.cu,inf.cu,cv,com.cv,edu.cv,int.cv,nome.cv,org.cv,cw,com.cw,edu.cw,net.cw,org.cw,cx,gov.cx,cy,ac.cy,biz.cy,com.cy,ekloges.cy,gov.cy,ltd.cy,mil.cy,net.cy,org.cy,press.cy,pro.cy,tm.cy,cz,de,dj,dk,dm,com.dm,net.dm,org.dm,edu.dm,gov.dm,do,art.do,com.do,edu.do,gob.do,gov.do,mil.do,net.do,org.do,sld.do,web.do,dz,art.dz,asso.dz,com.dz,edu.dz,gov.dz,org.dz,net.dz,pol.dz,soc.dz,tm.dz,ec,com.ec,info.ec,net.ec,fin.ec,k12.ec,med.ec,pro.ec,org.ec,edu.ec,gov.ec,gob.ec,mil.ec,edu,ee,edu.ee,gov.ee,riik.ee,lib.ee,med.ee,com.ee,pri.ee,aip.ee,org.ee,fie.ee,eg,com.eg,edu.eg,eun.eg,gov.eg,mil.eg,name.eg,net.eg,org.eg,sci.eg,er,es,com.es,nom.es,org.es,gob.es,edu.es,et,com.et,gov.et,org.et,edu.et,biz.et,name.et,info.et,net.et,eu,fi,aland.fi,fj,ac.fj,biz.fj,com.fj,gov.fj,info.fj,mil.fj,name.fj,net.fj,org.fj,pro.fj,fk,com.fm,edu.fm,net.fm,org.fm,fm,fo,fr,asso.fr,com.fr,gouv.fr,nom.fr,prd.fr,tm.fr,aeroport.fr,avocat.fr,avoues.fr,cci.fr,chambagri.fr,chirurgiens-dentistes.fr,experts-comptables.fr,geometre-expert.fr,greta.fr,huissier-justice.fr,medecin.fr,notaires.fr,pharmacien.fr,port.fr,veterinaire.fr,ga,gb,edu.gd,gov.gd,gd,ge,com.ge,edu.ge,gov.ge,org.ge,mil.ge,net.ge,pvt.ge,gf,gg,co.gg,net.gg,org.gg,gh,com.gh,edu.gh,gov.gh,org.gh,mil.gh,gi,com.gi,ltd.gi,gov.gi,mod.gi,edu.gi,org.gi,gl,co.gl,com.gl,edu.gl,net.gl,org.gl,gm,gn,ac.gn,com.gn,edu.gn,gov.gn,org.gn,net.gn,gov,gp,com.gp,net.gp,mobi.gp,edu.gp,org.gp,asso.gp,gq,gr,com.gr,edu.gr,net.gr,org.gr,gov.gr,gs,gt,com.gt,edu.gt,gob.gt,ind.gt,mil.gt,net.gt,org.gt,gu,com.gu,edu.gu,gov.gu,guam.gu,info.gu,net.gu,org.gu,web.gu,gw,gy,co.gy,com.gy,edu.gy,gov.gy,net.gy,org.gy,hk,com.hk,edu.hk,gov.hk,idv.hk,net.hk,org.hk,hm,hn,com.hn,edu.hn,org.hn,net.hn,mil.hn,gob.hn,hr,iz.hr,from.hr,name.hr,com.hr,ht,com.ht,shop.ht,firm.ht,info.ht,adult.ht,net.ht,pro.ht,org.ht,med.ht,art.ht,coop.ht,pol.ht,asso.ht,edu.ht,rel.ht,gouv.ht,perso.ht,hu,co.hu,info.hu,org.hu,priv.hu,sport.hu,tm.hu,2000.hu,agrar.hu,bolt.hu,casino.hu,city.hu,erotica.hu,erotika.hu,film.hu,forum.hu,games.hu,hotel.hu,ingatlan.hu,jogasz.hu,konyvelo.hu,lakas.hu,media.hu,news.hu,reklam.hu,sex.hu,shop.hu,suli.hu,szex.hu,tozsde.hu,utazas.hu,video.hu,id,ac.id,biz.id,co.id,desa.id,go.id,mil.id,my.id,net.id,or.id,ponpes.id,sch.id,web.id,ie,gov.ie,il,ac.il,co.il,gov.il,idf.il,k12.il,muni.il,net.il,org.il,im,ac.im,co.im,com.im,ltd.co.im,net.im,org.im,plc.co.im,tt.im,tv.im,in,5g.in,6g.in,ac.in,ai.in,am.in,bihar.in,biz.in,business.in,ca.in,cn.in,co.in,com.in,coop.in,cs.in,delhi.in,dr.in,edu.in,er.in,firm.in,gen.in,gov.in,gujarat.in,ind.in,info.in,int.in,internet.in,io.in,me.in,mil.in,net.in,nic.in,org.in,pg.in,post.in,pro.in,res.in,travel.in,tv.in,uk.in,up.in,us.in,info,int,eu.int,io,com.io,iq,gov.iq,edu.iq,mil.iq,com.iq,org.iq,net.iq,ir,ac.ir,co.ir,gov.ir,id.ir,net.ir,org.ir,sch.ir,is,net.is,com.is,edu.is,gov.is,org.is,int.is,it,gov.it,edu.it,je,co.je,net.je,org.je,jm,jo,com.jo,org.jo,net.jo,edu.jo,sch.jo,gov.jo,mil.jo,name.jo,jobs,jp,ac.jp,ad.jp,co.jp,ed.jp,go.jp,gr.jp,lg.jp,ne.jp,or.jp,ke,ac.ke,co.ke,go.ke,info.ke,me.ke,mobi.ke,ne.ke,or.ke,sc.ke,kg,org.kg,net.kg,com.kg,edu.kg,gov.kg,mil.kg,kh,ki,edu.ki,biz.ki,net.ki,org.ki,gov.ki,info.ki,com.ki,km,org.km,nom.km,gov.km,prd.km,tm.km,edu.km,mil.km,ass.km,com.km,kn,net.kn,org.kn,edu.kn,gov.kn,kp,com.kp,edu.kp,gov.kp,org.kp,rep.kp,tra.kp,kr,ac.kr,co.kr,es.kr,go.kr,hs.kr,kg.kr,mil.kr,ms.kr,ne.kr,or.kr,pe.kr,re.kr,sc.kr,kw,com.kw,edu.kw,emb.kw,gov.kw,ind.kw,net.kw,org.kw,ky,com.ky,edu.ky,net.ky,org.ky,kz,org.kz,edu.kz,net.kz,gov.kz,mil.kz,com.kz,la,int.la,net.la,info.la,edu.la,gov.la,per.la,com.la,org.la,lb,com.lb,edu.lb,gov.lb,net.lb,org.lb,lc,com.lc,net.lc,co.lc,org.lc,edu.lc,gov.lc,li,lk,gov.lk,sch.lk,net.lk,int.lk,com.lk,org.lk,edu.lk,ngo.lk,soc.lk,web.lk,ltd.lk,assn.lk,grp.lk,hotel.lk,ac.lk,lr,com.lr,edu.lr,gov.lr,org.lr,net.lr,ls,ac.ls,biz.ls,co.ls,edu.ls,gov.ls,info.ls,net.ls,org.ls,sc.ls,lt,gov.lt,lu,lv,com.lv,edu.lv,gov.lv,org.lv,mil.lv,id.lv,net.lv,asn.lv,conf.lv,ly,com.ly,net.ly,gov.ly,plc.ly,edu.ly,sch.ly,med.ly,org.ly,id.ly,ma,co.ma,net.ma,gov.ma,org.ma,ac.ma,press.ma,mc,tm.mc,asso.mc,md,me,co.me,net.me,org.me,edu.me,ac.me,gov.me,its.me,priv.me,mg,org.mg,nom.mg,gov.mg,prd.mg,tm.mg,edu.mg,mil.mg,com.mg,co.mg,mh,mil,mk,com.mk,org.mk,net.mk,edu.mk,gov.mk,inf.mk,name.mk,ml,com.ml,edu.ml,gouv.ml,gov.ml,net.ml,org.ml,presse.ml,mm,mn,gov.mn,edu.mn,org.mn,mo,com.mo,net.mo,org.mo,edu.mo,gov.mo,mobi,mp,mq,mr,gov.mr,ms,com.ms,edu.ms,gov.ms,net.ms,org.ms,mt,com.mt,edu.mt,net.mt,org.mt,mu,com.mu,net.mu,org.mu,gov.mu,ac.mu,co.mu,or.mu,museum,mv,aero.mv,biz.mv,com.mv,coop.mv,edu.mv,gov.mv,info.mv,int.mv,mil.mv,museum.mv,name.mv,net.mv,org.mv,pro.mv,mw,ac.mw,biz.mw,co.mw,com.mw,coop.mw,edu.mw,gov.mw,int.mw,museum.mw,net.mw,org.mw,mx,com.mx,org.mx,gob.mx,edu.mx,net.mx,my,biz.my,com.my,edu.my,gov.my,mil.my,name.my,net.my,org.my,mz,ac.mz,adv.mz,co.mz,edu.mz,gov.mz,mil.mz,net.mz,org.mz,na,info.na,pro.na,name.na,school.na,or.na,dr.na,us.na,mx.na,ca.na,in.na,cc.na,tv.na,ws.na,mobi.na,co.na,com.na,org.na,name,nc,asso.nc,nom.nc,ne,net,nf,com.nf,net.nf,per.nf,rec.nf,web.nf,arts.nf,firm.nf,info.nf,other.nf,store.nf,ng,com.ng,edu.ng,gov.ng,i.ng,mil.ng,mobi.ng,name.ng,net.ng,org.ng,sch.ng,ni,ac.ni,biz.ni,co.ni,com.ni,edu.ni,gob.ni,in.ni,info.ni,int.ni,mil.ni,net.ni,nom.ni,org.ni,web.ni,nl,no,fhs.no,vgs.no,fylkesbibl.no,folkebibl.no,museum.no,idrett.no,priv.no,mil.no,stat.no,dep.no,kommune.no,herad.no,np,nr,biz.nr,info.nr,gov.nr,edu.nr,org.nr,net.nr,com.nr,nu,nz,ac.nz,co.nz,cri.nz,geek.nz,gen.nz,govt.nz,health.nz,iwi.nz,kiwi.nz,maori.nz,mil.nz,māori.nz,net.nz,org.nz,parliament.nz,school.nz,om,co.om,com.om,edu.om,gov.om,med.om,museum.om,net.om,org.om,pro.om,onion,org,pa,ac.pa,gob.pa,com.pa,org.pa,sld.pa,edu.pa,net.pa,ing.pa,abo.pa,med.pa,nom.pa,pe,edu.pe,gob.pe,nom.pe,mil.pe,org.pe,com.pe,net.pe,pf,com.pf,org.pf,edu.pf,pg,ph,com.ph,net.ph,org.ph,gov.ph,edu.ph,ngo.ph,mil.ph,i.ph,pk,com.pk,net.pk,edu.pk,org.pk,fam.pk,biz.pk,web.pk,gov.pk,gob.pk,gok.pk,gon.pk,gop.pk,gos.pk,info.pk,pl,com.pl,net.pl,org.pl,aid.pl,agro.pl,atm.pl,auto.pl,biz.pl,edu.pl,gmina.pl,gsm.pl,info.pl,mail.pl,miasta.pl,media.pl,mil.pl,nieruchomosci.pl,nom.pl,pc.pl,powiat.pl,priv.pl,realestate.pl,rel.pl,sex.pl,shop.pl,sklep.pl,sos.pl,szkola.pl,targi.pl,tm.pl,tourism.pl,travel.pl,turystyka.pl,pm,pn,gov.pn,co.pn,org.pn,edu.pn,net.pn,post,pr,com.pr,net.pr,org.pr,gov.pr,edu.pr,isla.pr,pro.pr,biz.pr,info.pr,name.pr,est.pr,prof.pr,ac.pr,pro,aaa.pro,aca.pro,acct.pro,avocat.pro,bar.pro,cpa.pro,eng.pro,jur.pro,law.pro,med.pro,recht.pro,ps,edu.ps,gov.ps,sec.ps,plo.ps,com.ps,org.ps,net.ps,pt,net.pt,gov.pt,org.pt,edu.pt,int.pt,publ.pt,com.pt,nome.pt,pw,co.pw,ne.pw,or.pw,ed.pw,go.pw,belau.pw,py,com.py,coop.py,edu.py,gov.py,mil.py,net.py,org.py,qa,com.qa,edu.qa,gov.qa,mil.qa,name.qa,net.qa,org.qa,sch.qa,re,asso.re,com.re,nom.re,ro,arts.ro,com.ro,firm.ro,info.ro,nom.ro,nt.ro,org.ro,rec.ro,store.ro,tm.ro,www.ro,rs,ac.rs,co.rs,edu.rs,gov.rs,in.rs,org.rs,ru,rw,ac.rw,co.rw,coop.rw,gov.rw,mil.rw,net.rw,org.rw,sa,com.sa,net.sa,org.sa,gov.sa,med.sa,pub.sa,edu.sa,sch.sa,sb,com.sb,edu.sb,gov.sb,net.sb,org.sb,sc,com.sc,gov.sc,net.sc,org.sc,edu.sc,sd,com.sd,net.sd,org.sd,edu.sd,med.sd,tv.sd,gov.sd,info.sd,se,a.se,ac.se,b.se,bd.se,brand.se,c.se,d.se,e.se,f.se,fh.se,fhsk.se,fhv.se,g.se,h.se,i.se,k.se,komforb.se,kommunalforbund.se,komvux.se,l.se,lanbib.se,m.se,n.se,naturbruksgymn.se,o.se,org.se,p.se,parti.se,pp.se,press.se,r.se,s.se,t.se,tm.se,u.se,w.se,x.se,y.se,z.se,sg,com.sg,net.sg,org.sg,gov.sg,edu.sg,per.sg,sh,com.sh,net.sh,gov.sh,org.sh,mil.sh,si,sj,sk,sl,com.sl,net.sl,edu.sl,gov.sl,org.sl,sm,sn,art.sn,com.sn,edu.sn,gouv.sn,org.sn,perso.sn,univ.sn,so,com.so,edu.so,gov.so,me.so,net.so,org.so,sr,ss,biz.ss,com.ss,edu.ss,gov.ss,me.ss,net.ss,org.ss,sch.ss,st,co.st,com.st,consulado.st,edu.st,embaixada.st,mil.st,net.st,org.st,principe.st,saotome.st,store.st,su,sv,com.sv,edu.sv,gob.sv,org.sv,red.sv,sx,gov.sx,sy,edu.sy,gov.sy,net.sy,mil.sy,com.sy,org.sy,sz,co.sz,ac.sz,org.sz,tc,td,tel,tf,tg,th,ac.th,co.th,go.th,in.th,mi.th,net.th,or.th,tj,ac.tj,biz.tj,co.tj,com.tj,edu.tj,go.tj,gov.tj,int.tj,mil.tj,name.tj,net.tj,nic.tj,org.tj,test.tj,web.tj,tk,tl,gov.tl,tm,com.tm,co.tm,org.tm,net.tm,nom.tm,gov.tm,mil.tm,edu.tm,tn,com.tn,ens.tn,fin.tn,gov.tn,ind.tn,info.tn,intl.tn,mincom.tn,nat.tn,net.tn,org.tn,perso.tn,tourism.tn,to,com.to,gov.to,net.to,org.to,edu.to,mil.to,tr,av.tr,bbs.tr,bel.tr,biz.tr,com.tr,dr.tr,edu.tr,gen.tr,gov.tr,info.tr,mil.tr,k12.tr,kep.tr,name.tr,net.tr,org.tr,pol.tr,tel.tr,tsk.tr,tv.tr,web.tr,nc.tr,tt,co.tt,com.tt,org.tt,net.tt,biz.tt,info.tt,pro.tt,int.tt,coop.tt,jobs.tt,mobi.tt,travel.tt,museum.tt,aero.tt,name.tt,gov.tt,edu.tt,tv,tw,edu.tw,gov.tw,mil.tw,com.tw,net.tw,org.tw,idv.tw,game.tw,ebiz.tw,club.tw,tz,ac.tz,co.tz,go.tz,hotel.tz,info.tz,me.tz,mil.tz,mobi.tz,ne.tz,or.tz,sc.tz,tv.tz,ua,com.ua,edu.ua,gov.ua,in.ua,net.ua,org.ua,ug,co.ug,or.ug,ac.ug,sc.ug,go.ug,ne.ug,com.ug,org.ug,uk,ac.uk,co.uk,gov.uk,ltd.uk,me.uk,net.uk,nhs.uk,org.uk,plc.uk,police.uk,us,dni.us,fed.us,isa.us,kids.us,nsn.us,ak.us,al.us,ar.us,as.us,az.us,ca.us,co.us,ct.us,dc.us,de.us,fl.us,ga.us,gu.us,hi.us,ia.us,id.us,il.us,in.us,ks.us,ky.us,la.us,ma.us,md.us,me.us,mi.us,mn.us,mo.us,ms.us,mt.us,nc.us,nd.us,ne.us,nh.us,nj.us,nm.us,nv.us,ny.us,oh.us,ok.us,or.us,pa.us,pr.us,ri.us,sc.us,sd.us,tn.us,tx.us,ut.us,vi.us,vt.us,va.us,wa.us,wi.us,wv.us,wy.us,uy,com.uy,edu.uy,gub.uy,mil.uy,net.uy,org.uy,uz,co.uz,com.uz,net.uz,org.uz,va,vc,com.vc,net.vc,org.vc,gov.vc,mil.vc,edu.vc,ve,arts.ve,bib.ve,co.ve,com.ve,e12.ve,edu.ve,firm.ve,gob.ve,gov.ve,info.ve,int.ve,mil.ve,net.ve,nom.ve,org.ve,rar.ve,rec.ve,store.ve,tec.ve,web.ve,vg,vi,co.vi,com.vi,k12.vi,net.vi,org.vi,vn,ac.vn,ai.vn,biz.vn,com.vn,edu.vn,gov.vn,health.vn,id.vn,info.vn,int.vn,io.vn,name.vn,net.vn,org.vn,pro.vn,vu,com.vu,edu.vu,net.vu,org.vu,wf,ws,com.ws,net.ws,org.ws,gov.ws,edu.ws,yt,ye,com.ye,edu.ye,gov.ye,net.ye,mil.ye,org.ye,ac.za,agric.za,alt.za,co.za,edu.za,gov.za,grondar.za,law.za,mil.za,net.za,ngo.za,nic.za,nis.za,nom.za,org.za,school.za,tm.za,web.za,zm,ac.zm,biz.zm,co.zm,com.zm,edu.zm,gov.zm,info.zm,mil.zm,net.zm,org.zm,sch.zm,zw,ac.zw,co.zw,gov.zw,mil.zw,org.zw".split(","),_publicSuffixesMap={};publicSuffixes.forEach((e=>{_publicSuffixesMap[e]=!0}));const publicSuffixesMap=_publicSuffixesMap;function getTopLevelDomain(e){const[t]=e.split(":"),n=t.split(".");if("localhost"===n[n.length-1]||n.length<2)return n[n.length-1];{const e=n[n.length-2]+"."+n[n.length-1];return n.length>2&&publicSuffixesMap[e]?n[n.length-3]+"."+e:e}}var __awaiter=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{s(r.next(e))}catch(e){i(e)}}function c(e){try{s(r.throw(e))}catch(e){i(e)}}function s(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,c)}s((r=r.apply(e,t||[])).next())}))};const defaultConfig={writeKey:null,host:null,debug:!1,fetch:null,echoEvents:!1,cookieDomain:void 0,runtime:void 0},parseQuery=e=>{if(!e)return{};let t=e.length>0&&"?"===e.charAt(0)?e.substring(1):e,n={},r=("?"===t[0]?t.substr(1):t).split("&");for(let e=0;e<r.length;e++){let t=r[e].split("=");n[decodeURIComponent(t[0])]=decodeURIComponent(t[1]||"")}return n};function utmToKey(e){const t=e.substring("utm_".length);return"campaign"===t?"name":t}function parseUtms(e){return Object.entries(e).filter((([e])=>0===e.indexOf("utm_"))).reduce(((e,[t,n])=>Object.assign(Object.assign({},e),{[utmToKey(t)]:n})),{})}function safeCall(e,t){try{return e()}catch(e){return t}}function restoreTraits(e){const t=e.getItem("__user_traits");return"string"==typeof t?safeCall((()=>JSON.parse(t)),{}):t}function getCookie(e){const t=`; ${document.cookie}`.split(`; ${e}=`);return 2===t.length?t.pop().split(";").shift():void 0}function removeCookie(e){document.cookie=e+"=;expires=Thu, 01 Jan 1970 00:00:01 GMT;"}function setCookie(e,t,{domain:n,secure:r}){document.cookie=e+"="+t+";domain="+n+";path=/;expires="+new Date((new Date).getTime()+15768e7).toUTCString()+";SameSite="+(r?"None":"Lax")+(r?";secure":"")}const defaultCookie2Key={__anon_id:"__eventn_id",__user_traits:"__eventn_id_usr",__user_id:"__eventn_uid"},cookieStorage=(e,t)=>({setItem(n,r){const o="object"==typeof r&&null!==r?encodeURIComponent(JSON.stringify(r)):r;setCookie(t[n]||n,o,{domain:e,secure:"https:"===window.location.protocol})},getItem(e){const n=getCookie(t[e]||e);if(void 0===n&&"__user_id"===e){const e=parse(getCookie("__eventn_id_usr"))||{};return e.internal_id||e.user_id||e.id||e.userId}return parse(n)},removeItem(e){removeCookie(t[e]||e)}});function windowRuntime(e){return{documentEncoding:()=>window.document.characterSet,timezoneOffset:()=>(new Date).getTimezoneOffset(),store:()=>cookieStorage(e.cookieDomain||getTopLevelDomain(window.location.hostname),defaultCookie2Key),language:()=>window.navigator.language,pageTitle:()=>window.document.title,pageUrl:()=>window.location.href,referrer:()=>window.document.referrer,screen:()=>({width:window.screen.width,height:window.screen.height,innerWidth:window.innerWidth,innerHeight:window.innerHeight,density:Math.floor(window.devicePixelRatio)}),userAgent:()=>window.navigator.userAgent}}const emptyRuntime=e=>({documentEncoding(){},timezoneOffset(){},store(){const t={};return{setItem(n,r){e.debug&&console.log(`[JITSU EMPTY RUNTIME] Set storage item ${n}=${JSON.stringify(r)}`),t[n]=r},getItem(n){const r=t[n];return e.debug&&console.log(`[JITSU EMPTY RUNTIME] Get storage item ${n}=${JSON.stringify(r)}`),r},removeItem(n){e.debug&&console.log(`[JITSU EMPTY RUNTIME] Get storage item ${n}=${t[n]}`),delete t[n]}}},language(){},pageTitle(){},pageUrl(){},referrer(){},screen(){},userAgent(){}});function deepMerge(e,t){return"object"!=typeof t||null===t||"object"!=typeof e||null===e?t:Object.entries(t).reduce(((t,[n,r])=>(t[n]=deepMerge(e[n],r),t)),e)}function isInBrowser(){return"undefined"!=typeof document&&"undefined"!=typeof window}function adjustPayload(e,t,n){var r,o;const i=t.runtime||(isInBrowser()?windowRuntime(t):emptyRuntime(t)),a=i.pageUrl(),c=safeCall((()=>new URL(a)),void 0),s=c?parseQuery(c.search):{},u=e.properties||{},l=(null===(r=e.properties)||void 0===r?void 0:r.context)||{};null===(o=e.properties)||void 0===o||delete o.context;const g=i.referrer(),d={library:{name:name,version:version},userAgent:i.userAgent(),locale:i.language(),screen:i.screen(),traits:"identify"!=e.type&&"group"!=e.type?Object.assign({},restoreTraits(n)||{}):void 0,page:{path:u.path||c&&c.pathname,referrer:g,referring_domain:safeCall((()=>g&&new URL(g).hostname)),host:c&&c.host,search:u.search||c&&c.search,title:u.title||i.pageTitle(),url:u.url||a,encoding:u.encoding||i.documentEncoding()},clientIds:{fbc:getCookie("_fbc"),fbp:getCookie("_fbp")},campaign:parseUtms(s)},m=Object.assign(Object.assign({},e),{timestamp:(new Date).toISOString(),sentAt:(new Date).toISOString(),messageId:randomId(u.path||c&&c.pathname),writeKey:maskWriteKey(t.writeKey),context:deepMerge(d,l)});return delete m.meta,delete m.options,m}function processDestinations(e,t,n,r,o){return __awaiter(this,void 0,void 0,(function*(){const i=[];for(const a of e){const e=Object.assign(Object.assign({},a.credentials),a.options);if("internal-plugin"===a.deviceOptions.type){const t=internalDestinationPlugins[a.deviceOptions.name];if(t)try{i.push(t.handle(e,n))}catch(e){console.warn(`[JITSU] Error processing event with internal plugin '${a.deviceOptions.name}': ${null==e?void 0:e.message}`,e)}else console.warn(`[JITSU] Unknown internal plugin '${a.deviceOptions.name}' for destination '${a.id}'`)}else if("analytics-plugin"===a.deviceOptions.type){yield loadScript(a.deviceOptions.packageCdn);const i=window[a.deviceOptions.moduleVarName];if(i){let c;try{c=("function"==typeof i?i:i.init)(e)}catch(e){console.warn(`[JITSU] Error creating plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}': ${null==e?void 0:e.message}`,e)}try{r&&console.log(`[JITSU] Plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}' initialized with config:`,c.config),c.initialize({config:c.config,instance:o})}catch(e){console.warn(`[JITSU] Error initializing plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}': ${null==e?void 0:e.message}. Config: ${JSON.stringify(c.config)}`,e);continue}if(c[t])try{c[t]({payload:n,config:c.config,instance:o})}catch(e){console.warn(`[JITSU] Error processing ${t}() with plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}': ${null==e?void 0:e.message}`,e)}}else console.warn(`[JITSU] Broken plugin '${a.deviceOptions.packageCdn}' for destination '${a.id}' - it doesn't export '${a.deviceOptions.moduleVarName}' variable`)}}}))}function looksLikeCuid(e){return 25===e.length&&"c"===e.charAt(0)}function validateWriteKey(e){if(e){const[,t]=e.split(":",2);if(!t&&!looksLikeCuid(e))throw new Error(`Legacy write key detected - ${e}! This format doesn't work anymore, it should be 'key:secret'. Please download a new key from Jitsu UI`)}return e}function maskWriteKey(e){if(e){const[t,n]=e.split(":",2);return n?`${t}:***`:"***"}return e}function send(e,t,n,r,o){if(n.echoEvents)return void console.log(`[JITSU] sending '${e}' event:`,t);const i=`${n.host}/api/s/${e}`,a=n.fetch||globalThis.fetch;if(!a)throw new Error("Please specify fetch function in jitsu plugin initialization, fetch isn't available in global scope");const c=n.debug?{"X-Enable-Debug":"true"}:{},s=adjustPayload(t,n,o),u=n.writeKey?{"X-Write-Key":n.writeKey}:{};return a(i,{method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},u),c),body:JSON.stringify(s)}).then((e=>(n.debug&&console.log(`[JITSU] ${i} replied ${e.status}. Original payload: `,JSON.stringify(s,null,2)),e.ok?e.text():Promise.reject(e.text())))).then((t=>{let o;try{o=JSON.parse(t)}catch(e){return Promise.reject(`Can't parse JSON: ${t}: ${null==e?void 0:e.message}`)}if(o.destinations)return n.debug&&console.log("[JITSU] Processing device destinations: ",JSON.stringify(o.destinations,null,2)),processDestinations(o.destinations,e,s,!!n.debug,r)})).catch((e=>{n.debug&&console.error(`Jitsu ${i} failed: `,e)}))}const jitsuAnalyticsPlugin=(e={})=>{const t={},n=e=>({setItem(n,r){t[n]=r,e.setItem(n,r)},getItem:n=>t[n]||e.getItem(n),removeItem(n){delete t[n],e.removeItem(n)}}),r=Object.assign(Object.assign({},defaultConfig),e);return{name:"jitsu",config:r,initialize:e=>{const{config:t}=e;if(t.debug&&console.debug("[JITSU] Initializing Jitsu plugin with config: ",JSON.stringify(t)),!t.host&&!t.echoEvents)throw new Error("Please specify host variable in jitsu plugin initialization, or set echoEvents to true");validateWriteKey(t.writeKey)},page:e=>{const{payload:t,config:r,instance:o}=e;return send("page",t,r,o,n(o.storage))},track:e=>{const{payload:t,config:r,instance:o}=e;return send("track",t,r,o,n(o.storage))},identify:e=>{const{payload:r,config:o,instance:i}=e;return t.__user_traits=r.traits,send("identify",r,o,i,n(i.storage))},reset:e=>{Object.keys(t).forEach((e=>delete t[e]))},methods:{group(e,t,o,i){const a=this.instance,c=a.user(),s=(null==o?void 0:o.userId)||(null==c?void 0:c.userId),u=(null==o?void 0:o.anonymousId)||(null==c?void 0:c.anonymousId);return send("group",Object.assign(Object.assign({type:"group",groupId:e,traits:t},u?{anonymousId:u}:{}),s?{userId:s}:{}),r,a,n(a.storage))}}}};function getSeed(){var e;const t=Date.now()%2147483647;return isInBrowser()&&(null===(e=null===window||void 0===window?void 0:window.performance)||void 0===e?void 0:e.now())||t}function randomId(e=""){const t=Date.now();return(Math.random()*t*hash(null!=e?e:"",getSeed())%Number.MAX_SAFE_INTEGER).toString(36)+(Math.random()*t*hash(null!=e?e:"",getSeed())%Number.MAX_SAFE_INTEGER).toString(36)}function hash(e,t=0){let n=3735928559^t,r=1103547991^t;for(let t,o=0;o<e.length;o++)t=e.charCodeAt(o),n=Math.imul(n^t,2654435761),r=Math.imul(r^t,1597334677);return n=Math.imul(n^n>>>16,2246822507)^Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),4294967296*(2097151&r)+(n>>>0)}function parse(e){let t=e;0===(null==e?void 0:e.indexOf("%7B%22"))&&(t=decodeURIComponent(e));try{if(t=JSON.parse(t),"true"===t)return!0;if("false"===t)return!1;if("object"==typeof t)return t;parseFloat(t)===t&&(t=parseFloat(t))}catch(e){}if(null!==t&&""!==t)return t}function createUnderlyingAnalyticsInstance(e,t,n=[]){const r=analyticsLib({app:"test",debug:!!e.debug,storage:t.store(),plugins:[jitsuAnalyticsPlugin(e),...n]}),o=r.page;return r.page=(...e)=>2===e.length&&"string"==typeof e[0]&&"object"==typeof e[1]?o(Object.assign({name:e[0]},e[1])):o(...e),Object.assign(Object.assign({},r),{group(e,t,n,o){for(const i of Object.values(r.plugins))i.group&&i.group(e,t,n,o);return Promise.resolve({})}})}function jitsuAnalytics(e){const t=isInBrowser();return createUnderlyingAnalyticsInstance(e,e.runtime||(t?windowRuntime(e):emptyRuntime(e)))}function snakeToCamel(e){return e.replace(/([-_][a-z])/gi,(e=>e.toUpperCase().replace("-","").replace("_","")))}const booleanParser=e=>"true"===e||"1"===e||"yes"===e,parsers={debug:booleanParser,initOnly:booleanParser};function getParser(e){return parsers[e]||(e=>e)}function getScriptAttributes(e){return e.getAttributeNames().filter((e=>0===e.indexOf("data-"))).map((e=>e.substring("data-".length))).reduce(((t,n)=>Object.assign(Object.assign({},t),{[snakeToCamel(n)]:getParser(snakeToCamel(n))(e.getAttribute(`data-${n}`))})),{})}!function(){const e=function(){const e=window.document.currentScript;if(!e)throw new Error("Can't find script element");const t=new URL(e.src).origin;return Object.assign(Object.assign(Object.assign({},(null===window||void 0===window?void 0:window.jitsuConfig)||{}),getScriptAttributes(e)),{host:t})}(),t=e.namespace||"jitsu";window[t]&&console.log("Jitsu is already initialized"),e.debug&&console.log("Jitsu options: ",JSON.stringify(e));const n=jitsuAnalytics(e);if(e.onload){const t=window[e.onload];t||console.warn(`onload function ${e.onload} is not found in window`),"function"==typeof t?t(n):console.warn(`onload function ${e.onload} is not callable: ${typeof t}`)}window[t]=n,e.initOnly||n.page()}()})();
|
|
1
|
+
(function(){"use strict";function n$2(e,t,n,r,o){for(t=t.split?t.split("."):t,r=0;r<t.length;r++)e=e?e[t[r]]:o;return e===o?n:e}var e="undefined",o$1="object",g$2="any",m$1="*",j$1="__",F$2="undefined"!=typeof process?process:{};F$2.env&&F$2.env.NODE_ENV;var $$1="undefined"!=typeof window;function M$1(e,t){return t.charAt(0)[e]()+t.slice(1)}null!=F$2.versions&&F$2.versions.node,"undefined"!=typeof Deno&&Deno.core,$$1&&"nodejs"===window.name||"undefined"!=typeof navigator&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom"));var U$1=M$1.bind(null,"toUpperCase"),H$1=M$1.bind(null,"toLowerCase");function J$2(e){return Y$1(e)?U$1("null"):"object"==typeof e?yn(e):Object.prototype.toString.call(e).slice(8,-1)}function R$1(e,t){void 0===t&&(t=!0);var n=J$2(e);return t?H$1(n):n}function V$1(e,t){return typeof t===e}var W$1=V$1.bind(null,"function"),q$1=V$1.bind(null,"string"),I$2=V$1.bind(null,"undefined"),Q$1=V$1.bind(null,"boolean");function Y$1(e){return null===e}function nn(e){return"number"===R$1(e)&&!isNaN(e)}function rn(e){return"array"===R$1(e)}function on(e){if(!un(e))return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function un(e){return e&&("object"==typeof e||null!==e)}function yn(e){return W$1(e.constructor)?e.constructor.name:null}function hn(e){return e instanceof Error||q$1(e.message)&&e.constructor&&nn(e.constructor.stackTraceLimit)}function On(e,t){if("object"!=typeof t||Y$1(t))return!1;if(t instanceof e)return!0;var n=R$1(new e(""));if(hn(t))for(;t;){if(R$1(t)===n)return!0;t=Object.getPrototypeOf(t)}return!1}function $n(e,t){var n=e instanceof Element||e instanceof HTMLDocument;return n&&t?Tn(e,t):n}function Tn(e,t){return void 0===t&&(t=""),e&&e.nodeName===t.toUpperCase()}function _n(e){var t=[].slice.call(arguments,1);return function(){return e.apply(void 0,[].slice.call(arguments).concat(t))}}function n$1(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}function s(e){return function(e){for(var t,n=Object.create(null),r=/([^&=]+)=?([^&]*)/g;t=r.exec(e);){var o=n$1(t[1]),i=n$1(t[2]);"[]"===o.substring(o.length-2)?(n[o=o.substring(0,o.length-2)]||(n[o]=[])).push(i):n[o]=""===i||i}for(var a in n){var s=a.split("[");s.length>1&&(m(n,s.map((function(e){return e.replace(/[?[\]\\ ]/g,"")})),n[a]),delete n[a])}return n}(function(e){if(e){var t=e.match(/\?(.*)/);return t&&t[1]?t[1].split("#")[0]:""}return $$1&&window.location.search.substring(1)}(e))}function m(e,t,n){for(var r=t.length-1,o=0;o<r;++o){var i=t[o];if("__proto__"===i||"constructor"===i)break;i in e||(e[i]={}),e=e[i]}e[t[r]]=n}function y$1(){for(var e="",t=0,n=4294967295*Math.random()|0;t++<36;){var r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"[t-1],o=15&n;e+="-"==r||"4"==r?r:("x"==r?o:3&o|8).toString(16),n=t%8==0?4294967295*Math.random()|0:n>>4}return e}V$1.bind(null,"symbol"),On.bind(null,TypeError),On.bind(null,SyntaxError),_n($n,"form"),_n($n,"button"),_n($n,"input"),_n($n,"select");var l="global",o=j$1+"global"+j$1,n=typeof self===o$1&&self.self===self&&self||typeof global===o$1&&global.global===global&&global||void 0;function a$2(e){return n[o][e]}function f(e,t){return n[o][e]=t}function i$2(e){delete n[o][e]}function u$1(e,t,n){var r;try{if(b$2(e)){var o=window[e];r=o[t].bind(o)}}catch(e){}return r||n}n[o]||(n[o]={});var c$1={};function b$2(t){if(typeof c$1[t]!==e)return c$1[t];try{var n=window[t];n.setItem(e,e),n.removeItem(e)}catch(e){return c$1[t]=!1}return c$1[t]=!0}function g$1(){return g$1=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},g$1.apply(this,arguments)}var h$1="function",v="undefined",y="@@redux/"+Math.random().toString(36),b$1=function(){return typeof Symbol===h$1&&Symbol.observable||"@@observable"}(),I$1=" != "+h$1;function w(e,t,n){var r;if(typeof t===h$1&&typeof n===v&&(n=t,t=void 0),typeof n!==v){if(typeof n!==h$1)throw new Error("enhancer"+I$1);return n(w)(e,t)}if(typeof e!==h$1)throw new Error("reducer"+I$1);var o=e,i=t,a=[],s=a,c=!1;function u(){s===a&&(s=a.slice())}function l(){return i}function g(e){if(typeof e!==h$1)throw new Error("Listener"+I$1);var t=!0;return u(),s.push(e),function(){if(t){t=!1,u();var n=s.indexOf(e);s.splice(n,1)}}}function d(e){if(!on(e))throw new Error("Act != obj");if(typeof e.type===v)throw new Error("ActType "+v);if(c)throw new Error("Dispatch in reducer");try{c=!0,i=o(i,e)}finally{c=!1}for(var t=a=s,n=0;n<t.length;n++)(0,t[n])();return e}return d({type:"@@redux/INIT"}),(r={dispatch:d,subscribe:g,getState:l,replaceReducer:function(e){if(typeof e!==h$1)throw new Error("next reducer"+I$1);o=e,d({type:"@@redux/INIT"})}})[b$1]=function(){var e,t=g;return(e={subscribe:function(e){if("object"!=typeof e)throw new TypeError("Observer != obj");function n(){e.next&&e.next(l())}return n(),{unsubscribe:t(n)}}})[b$1]=function(){return this},e},r}function E$1(e,t){var n=t&&t.type;return"action "+(n&&n.toString()||"?")+"reducer "+e+" returns "+v}function P(){var e=[].slice.call(arguments);return 0===e.length?function(e){return e}:1===e.length?e[0]:e.reduce((function(e,t){return function(){return e(t.apply(void 0,[].slice.call(arguments)))}}))}function S(){var e=arguments;return function(t){return function(n,r,o){var i,a=t(n,r,o),s=a.dispatch,c={getState:a.getState,dispatch:function(e){return s(e)}};return i=[].slice.call(e).map((function(e){return e(c)})),g$1({},a,{dispatch:s=P.apply(void 0,i)(a.dispatch)})}}}var N$1=j$1+"anon_id",A$1=j$1+"user_id",_=j$1+"user_traits",k$1="userId",j="anonymousId",x$1=["bootstrap","params","campaign","initializeStart","initialize","initializeEnd","ready","resetStart","reset","resetEnd","pageStart","page","pageEnd","pageAborted","trackStart","track","trackEnd","trackAborted","identifyStart","identify","identifyEnd","identifyAborted","userIdChanged","registerPlugins","enablePlugin","disablePlugin","online","offline","setItemStart","setItem","setItemEnd","setItemAborted","removeItemStart","removeItem","removeItemEnd","removeItemAborted"],T=["name","EVENTS","config","loaded"],z=x$1.reduce((function(e,t){return e[t]=t,e}),{registerPluginType:function(e){return"registerPlugin:"+e},pluginReadyType:function(e){return"ready:"+e}}),M=/^utm_/,q=/^an_prop_/,V=/^an_trait_/;function C$1(e){var t=e.storage.setItem;return function(n){return function(r){return function(o){if(o.type===z.bootstrap){var i=o.params,a=o.user,s=o.persistedUser,c=o.initialUser,u=s.userId===a.userId;s.anonymousId!==a.anonymousId&&t(N$1,a.anonymousId),u||t(A$1,a.userId),c.traits&&t(_,g$1({},u&&s.traits?s.traits:{},c.traits));var l=Object.keys(o.params);if(l.length){var g=i.an_uid,d=i.an_event,m=l.reduce((function(e,t){if(t.match(M)||t.match(/^(d|g)clid/)){var n=t.replace(M,"");e.campaign["campaign"===n?"name":n]=i[t]}return t.match(q)&&(e.props[t.replace(q,"")]=i[t]),t.match(V)&&(e.traits[t.replace(V,"")]=i[t]),e}),{campaign:{},props:{},traits:{}});n.dispatch(g$1({type:z.params,raw:i},m,g?{userId:g}:{})),g&&setTimeout((function(){return e.identify(g,m.traits)}),0),d&&setTimeout((function(){return e.track(d,m.props)}),0),Object.keys(m.campaign).length&&n.dispatch({type:z.campaign,campaign:m.campaign})}}return r(o)}}}}function U(e){return function(t,n){if(void 0===t&&(t={}),void 0===n&&(n={}),n.type===z.setItemEnd){if(n.key===N$1)return g$1({},t,{anonymousId:n.value});if(n.key===A$1)return g$1({},t,{userId:n.value})}switch(n.type){case z.identify:return Object.assign({},t,{userId:n.userId,traits:g$1({},t.traits,n.traits)});case z.reset:return[A$1,N$1,_].forEach((function(t){e.removeItem(t)})),Object.assign({},t,{userId:null,anonymousId:null,traits:{}});default:return t}}}function R(e){return{userId:e.getItem(A$1),anonymousId:e.getItem(N$1),traits:e.getItem(_)}}var $=function(e){return j$1+"TEMP"+j$1+e};function D(e){var t=e.storage,n=t.setItem,r=t.removeItem,o=t.getItem;return function(e){return function(t){return function(i){var a=i.userId,s=i.traits,c=i.options;if(i.type===z.reset&&([A$1,_,N$1].forEach((function(e){r(e)})),[k$1,j,"traits"].forEach((function(e){i$2($(e))}))),i.type===z.identify){o(N$1)||n(N$1,y$1());var u=o(A$1),l=o(_)||{};u&&u!==a&&e.dispatch({type:z.userIdChanged,old:{userId:u,traits:l},new:{userId:a,traits:s},options:c}),a&&n(A$1,a),s&&n(_,g$1({},l,s))}return t(i)}}}}var B={};function L$1(e,t){B[e]&&W$1(B[e])&&(B[e](t),delete B[e])}function J$1(e,t,n){return new Promise((function(r,o){return t()?r(e):n<1?o(g$1({},e,{queue:!0})):new Promise((function(e){return setTimeout(e,10)})).then((function(i){return J$1(e,t,n-10).then(r,o)}))}))}var X=function(e){var t=e.data,n=e.action,r=e.instance,o=e.state,i=e.allPlugins,a=e.allMatches,s=e.store,c=e.EVENTS;try{var u=o.plugins,l=o.context,g=n.type,d=g.match(H),m=t.exact.map((function(e){return e.pluginName}));d&&(m=a.during.map((function(e){return e.pluginName})));var f=function(e,t){return function(n,r,o){var i=r.config,a=r.name,s=a+"."+n.type;o&&(s=o.event);var c=n.type.match(H)?function(e,t,n,r,o){return function(i,a){var s=r?r.name:e,c=a&&te(a)?a:n;if(r&&(!(c=a&&te(a)?a:[e]).includes(e)||1!==c.length))throw new Error("Method "+t+" can only abort "+e+" plugin. "+JSON.stringify(c)+" input valid");return g$1({},o,{abort:{reason:i,plugins:c,caller:t,_:s}})}}(a,s,t,o,n):function(e,t){return function(){throw new Error(e.type+" action not cancellable. Remove abort in "+t)}}(n,s);return{payload:ie(n),instance:e,config:i||{},abort:c}}}(r,m),p=t.exact.reduce((function(e,t){var n=t.pluginName,r=t.methodName,o=!1;return r.match(/^initialize/)||r.match(/^reset/)||(o=!u[n].loaded),l.offline&&r.match(/^(page|track|identify)/)&&(o=!0),e[""+n]=o,e}),{});return Promise.resolve(t.exact.reduce((function(e,o,a){var s=o.pluginName;return Promise.resolve(e).then((function(e){function o(){return Promise.resolve(e)}var a=function(){if(t.namespaced&&t.namespaced[s])return Promise.resolve(t.namespaced[s].reduce((function(e,t,n){return Promise.resolve(e).then((function(e){return t.method&&W$1(t.method)?(function(e,t){var n=re(e);if(n&&n.name===t){var r=re(n.method);throw new Error([t+" plugin is calling method "+e,"Plugins cant call self","Use "+n.method+" "+(r?"or "+r.method:"")+" in "+t+" plugin insteadof "+e].join("\n"))}}(t.methodName,t.pluginName),Promise.resolve(t.method({payload:e,instance:r,abort:(n=e,o=s,a=t.pluginName,function(e,t){return g$1({},n,{abort:{reason:e,plugins:t||[o],caller:g,from:a||o}})}),config:K(t.pluginName,u,i),plugins:u})).then((function(t){var n=on(t)?t:{};return Promise.resolve(g$1({},e,n))}))):e;var n,o,a}))}),Promise.resolve(n))).then((function(t){e[s]=t}));e[s]=n}();return a&&a.then?a.then(o):o()}))}),Promise.resolve({}))).then((function(e){return Promise.resolve(t.exact.reduce((function(n,o,a){try{var c=t.exact.length===a+1,l=o.pluginName,m=i[l];return Promise.resolve(n).then((function(t){var n=e[l]?e[l]:{};if(d&&(n=t),Z(n,l))return G$1({data:n,method:g,instance:r,pluginName:l,store:s}),Promise.resolve(t);if(Z(t,l))return c&&G$1({data:t,method:g,instance:r,store:s}),Promise.resolve(t);if(p.hasOwnProperty(l)&&!0===p[l])return s.dispatch({type:"queue",plugin:l,payload:n,_:{called:"queue",from:"queueMechanism"}}),Promise.resolve(t);var o=f(e[l],i[l]);return Promise.resolve(m[g]({abort:o.abort,payload:n,instance:r,config:K(l,u,i),plugins:u})).then((function(o){var i=on(o)?o:{},a=g$1({},t,i),c=e[l];if(Z(c,l))G$1({data:c,method:g,instance:r,pluginName:l,store:s});else{var u=g+":"+l;(u.match(/:/g)||[]).length<2&&!g.match(W)&&!g.match(F$1)&&r.dispatch(g$1({},d?a:n,{type:u,_:{called:u,from:"submethod"}}))}return Promise.resolve(a)}))}))}catch(e){return Promise.reject(e)}}),Promise.resolve(n))).then((function(e){if(!(g.match(H)||g.match(/^registerPlugin/)||g.match(F$1)||g.match(W)||g.match(/^params/)||g.match(/^userIdChanged/))){if(c.plugins.includes(g),e._&&e._.originalAction===g)return e;var n=g$1({},e,{_:{originalAction:e.type,called:e.type,from:"engineEnd"}});ee(e,t.exact.length)&&!g.match(/End$/)&&(n=g$1({},n,{type:e.type+"Aborted"})),s.dispatch(n)}return e}))}))}catch(e){return Promise.reject(e)}},H=/Start$/,W=/^bootstrap/,F$1=/^ready/;function G$1(e){var t=e.pluginName,n=e.method+"Aborted"+(t?":"+t:"");e.store.dispatch(g$1({},e.data,{type:n,_:{called:n,from:"abort"}}))}function K(e,t,n){var r=t[e]||n[e];return r&&r.config?r.config:{}}function Q(e,t){return t.reduce((function(t,n){return n[e]?t.concat({methodName:e,pluginName:n.name,method:n[e]}):t}),[])}function Y(e,t){var n=e.replace(H,""),r=t?":"+t:"";return[""+e+r,""+n+r,n+"End"+r]}function Z(e,t){var n=e.abort;return!!n&&(!0===n||ne(n,t)||n&&ne(n.plugins,t))}function ee(e,t){var n=e.abort;if(!n)return!1;if(!0===n||q$1(n))return!0;var r=n.plugins;return te(n)&&n.length===t||te(r)&&r.length===t}function te(e){return Array.isArray(e)}function ne(e,t){return!(!e||!te(e))&&e.includes(t)}function re(e){var t=e.match(/(.*):(.*)/);return!!t&&{method:t[1],name:t[2]}}function ie(e){return Object.keys(e).reduce((function(t,n){return"type"===n||(t[n]=on(e[n])?Object.assign({},e[n]):e[n]),t}),{})}function ae(e,t,n){var r={};return function(o){return function(i){return function(a){try{var s,c=function(e){return s?e:i(g)},u=a.type,l=a.plugins,g=a;if(a.abort)return Promise.resolve(i(a));if(u===z.enablePlugin&&o.dispatch({type:z.initializeStart,plugins:l,disabled:[],fromEnable:!0,meta:a.meta}),u===z.disablePlugin&&setTimeout((function(){return L$1(a.meta.rid,{payload:a})}),0),u===z.initializeEnd){var d=t(),m=Object.keys(d),f=m.filter((function(e){return l.includes(e)})).map((function(e){return d[e]})),p=[],v=[],b=a.disabled,h=f.map((function(e){var t=e.name;return J$1(e,e.loaded,1e4).then((function(n){return r[t]||(o.dispatch({type:z.pluginReadyType(t),name:t,events:Object.keys(e).filter((function(e){return!T.includes(e)}))}),r[t]=!0),p=p.concat(t),e})).catch((function(e){if(e instanceof Error)throw new Error(e);return v=v.concat(e.name),e}))}));Promise.all(h).then((function(e){var t={plugins:p,failed:v,disabled:b};setTimeout((function(){m.length===h.length+b.length&&o.dispatch(g$1({},{type:z.ready},t))}),0)}))}var y=function(){if(u!==z.bootstrap)return/^ready:([^:]*)$/.test(u)&&setTimeout((function(){return function(e,t,n){var r=t(),o=e.getState(),i=o.plugins,a=o.queue,s=o.user;if(!o.context.offline&&a&&a.actions&&a.actions.length){var c=a.actions.reduce((function(e,t,n){return i[t.plugin].loaded?(e.process.push(t),e.processIndex.push(n)):(e.requeue.push(t),e.requeueIndex.push(n)),e}),{processIndex:[],process:[],requeue:[],requeueIndex:[]});if(c.processIndex&&c.processIndex.length){c.processIndex.forEach((function(t){var o=a.actions[t],c=o.plugin,u=o.payload.type,l=r[c][u];if(l&&W$1(l)){var g=function(e,t){return void 0===e&&(e={}),void 0===t&&(t={}),[k$1,j].reduce((function(n,r){return e.hasOwnProperty(r)&&t[r]&&t[r]!==e[r]&&(n[r]=t[r]),n}),e)}(o.payload,s);l({payload:g,config:i[c].config,instance:n});var d=u+":"+c;e.dispatch(g$1({},g,{type:d,_:{called:d,from:"queueDrain"}}))}}));var u=a.actions.filter((function(e,t){return!~c.processIndex.indexOf(t)}));a.actions=u}}}(o,t,e)}),0),Promise.resolve(function(e,t,n,r,o){try{var i=W$1(t)?t():t,a=e.type,s=a.replace(H,"");if(e._&&e._.called)return Promise.resolve(e);var c=n.getState(),u=(d=i,void 0===(m=c.plugins)&&(m={}),void 0===(f=e.options)&&(f={}),Object.keys(d).filter((function(e){var t=f.plugins||{};return Q$1(t[e])?t[e]:!1!==t.all&&(!m[e]||!1!==m[e].enabled)})).map((function(e){return d[e]})));a===z.initializeStart&&e.fromEnable&&(u=Object.keys(c.plugins).filter((function(t){var n=c.plugins[t];return e.plugins.includes(t)&&!n.initialized})).map((function(e){return i[e]})));var l=u.map((function(e){return e.name})),g=function(e,t,n){var r=Y(e).map((function(e){return Q(e,t)}));return t.reduce((function(n,r){var o=r.name,i=Y(e,o).map((function(e){return Q(e,t)})),a=i[0],s=i[1],c=i[2];return a.length&&(n.beforeNS[o]=a),s.length&&(n.duringNS[o]=s),c.length&&(n.afterNS[o]=c),n}),{before:r[0],beforeNS:{},during:r[1],duringNS:{},after:r[2],afterNS:{}})}(a,u);return Promise.resolve(X({action:e,data:{exact:g.before,namespaced:g.beforeNS},state:c,allPlugins:i,allMatches:g,instance:n,store:r,EVENTS:o})).then((function(e){function t(){var t=function(){if(a.match(H))return Promise.resolve(X({action:g$1({},u,{type:s+"End"}),data:{exact:g.after,namespaced:g.afterNS},state:c,allPlugins:i,allMatches:g,instance:n,store:r,EVENTS:o})).then((function(e){e.meta&&e.meta.hasCallback&&L$1(e.meta.rid,{payload:e})}))}();return t&&t.then?t.then((function(){return e})):e}if(ee(e,l.length))return e;var u,d=function(){if(a!==s)return Promise.resolve(X({action:g$1({},e,{type:s}),data:{exact:g.during,namespaced:g.duringNS},state:c,allPlugins:i,allMatches:g,instance:n,store:r,EVENTS:o})).then((function(e){u=e}));u=e}();return d&&d.then?d.then(t):t()}))}catch(e){return Promise.reject(e)}var d,m,f}(a,t,e,o,n)).then((function(e){var t=i(e);return s=1,t}))}();return Promise.resolve(y&&y.then?y.then(c):c(y))}catch(e){return Promise.reject(e)}}}}}function oe(e){return function(t){return function(t){return function(n){var r=n.type,o=n.key,i=n.value,a=n.options;if(r===z.setItem||r===z.removeItem){if(n.abort)return t(n);r===z.setItem?e.setItem(o,i,a):e.removeItem(o,a)}return t(n)}}}}var ue=function(){var e=this;this.before=[],this.after=[],this.addMiddleware=function(t,n){e[n]=e[n].concat(t)},this.removeMiddleware=function(t,n){var r=e[n].findIndex((function(e){return e===t}));-1!==r&&(e[n]=[].concat(e[n].slice(0,r),e[n].slice(r+1)))},this.dynamicMiddlewares=function(t){return function(n){return function(r){return function(o){var i={getState:n.getState,dispatch:function(e){return n.dispatch(e)}},a=e[t].map((function(e){return e(i)}));return P.apply(void 0,a)(r)(o)}}}}};function ce(e){return function(t,n){void 0===t&&(t={});var r={};if("initialize:aborted"===n.type)return t;if(/^registerPlugin:([^:]*)$/.test(n.type)){var o=se(n.type,"registerPlugin"),i=e()[o];if(!i||!o)return t;var a=n.enabled;return r[o]={enabled:a,initialized:!!a&&Boolean(!i.initialize),loaded:!!a&&Boolean(i.loaded()),config:i.config||{}},g$1({},t,r)}if(/^initialize:([^:]*)$/.test(n.type)){var s=se(n.type,z.initialize),c=e()[s];return c&&s?(r[s]=g$1({},t[s],{initialized:!0,loaded:Boolean(c.loaded())}),g$1({},t,r)):t}if(/^ready:([^:]*)$/.test(n.type))return r[n.name]=g$1({},t[n.name],{loaded:!0}),g$1({},t,r);switch(n.type){case z.disablePlugin:return g$1({},t,le(n.plugins,!1,t));case z.enablePlugin:return g$1({},t,le(n.plugins,!0,t));default:return t}}}function se(e,t){return e.substring(t.length+1,e.length)}function le(e,t,n){return e.reduce((function(e,r){return e[r]=g$1({},n[r],{enabled:t}),e}),n)}function fe(e){try{return JSON.parse(JSON.stringify(e))}catch(e){}return e}var de={last:{},history:[]};function pe(e,t){void 0===e&&(e=de);var n=t.options,r=t.meta;if(t.type===z.track){var o=fe(g$1({event:t.event,properties:t.properties},Object.keys(n).length&&{options:n},{meta:r}));return g$1({},e,{last:o,history:e.history.concat(o)})}return e}var me={actions:[]};function ge(e,t){void 0===e&&(e=me);var n=t.payload;switch(t.type){case"queue":var r;return r=n&&n.type&&n.type===z.identify?[t].concat(e.actions):e.actions.concat(t),g$1({},e,{actions:r});case"dequeue":return[];default:return e}}var he=/#.*$/;function ve(e){var t=/(http[s]?:\/\/)?([^\/\s]+\/)(.*)/g.exec(e);return"/"+(t&&t[3]?t[3].split("?")[0].replace(he,""):"")}var ye,be=function(e){if(void 0===e&&(e={}),!$$1)return e;var t=document,n=t.title,r=t.referrer,o=window,i=o.location,a=o.innerWidth,s=o.innerHeight,c=i.hash,u=i.search,l=function(e){var t=function(){if($$1)for(var e,t=document.getElementsByTagName("link"),n=0;e=t[n];n++)if("canonical"===e.getAttribute("rel"))return e.getAttribute("href")}();return t?t.match(/\?/)?t:t+e:window.location.href.replace(he,"")}(u),g={title:n,url:l,path:ve(l),hash:c,search:u,width:a,height:s};return r&&""!==r&&(g.referrer=r),g$1({},g,e)},Ie={last:{},history:[]};function we(e,t){void 0===e&&(e=Ie);var n=t.options;if(t.type===z.page){var r=fe(g$1({properties:t.properties,meta:t.meta},Object.keys(n).length&&{options:n}));return g$1({},e,{last:r,history:e.history.concat(r)})}return e}ye={};var Ee={initialized:!1,sessionId:y$1(),app:null,version:null,debug:!1,offline:!!$$1&&!navigator.onLine,os:{name:"na"},userAgent:$$1?navigator.userAgent:"node",library:{name:"analytics",version:"0.11.0"},timezone:void 0,locale:void 0,campaign:{},referrer:ye};function Pe(e,t){void 0===e&&(e=Ee);var n=e.initialized,r=t.campaign;switch(t.type){case z.campaign:return g$1({},e,{campaign:r});case z.offline:return g$1({},e,{offline:!0});case z.online:return g$1({},e,{offline:!1});default:return n?e:g$1({},Ee,e,{initialized:!0})}}var Se=["plugins","reducers","storage"];function Ne(){return f("analytics",[]),function(e){return function(t,r,i){var a=e(t,r,i),s=a.dispatch;return Object.assign(a,{dispatch:function(e){return n[o].analytics.push(e.action||e),s(e)}})}}}function Ae(e){return function(){return P(P.apply(null,arguments),Ne())}}function _e(e){return e?rn(e)?e:[e]:[]}function Oe(e,t,n){void 0===e&&(e={});var r,o,i=y$1();return t&&(B[i]=(r=t,o=function(e){for(var t,n=e||Array.prototype.slice.call(arguments),r=0;r<n.length;r++)if(W$1(n[r])){t=n[r];break}return t}(n),function(e){o&&o(e),r(e)})),g$1({},e,{rid:i,ts:(new Date).getTime()},t?{hasCallback:!0}:{})}function ke(e){void 0===e&&(e={});var t=e.reducers||{},n=e.initialUser||{},r=(e.plugins||[]).reduce((function(e,t){if(W$1(t))return e.middlewares=e.middlewares.concat(t),e;if(t.NAMESPACE&&(t.name=t.NAMESPACE),!t.name)throw new Error("https://lytics.dev/errors/1");var n=t.EVENTS?Object.keys(t.EVENTS).map((function(e){return t.EVENTS[e]})):[];e.pluginEnabled[t.name]=!(!1===t.enabled||t.config&&!1===t.config.enabled),delete t.enabled,t.methods&&(e.methods[t.name]=Object.keys(t.methods).reduce((function(e,n){var r;return e[n]=(r=t.methods[n],function(){for(var e=Array.prototype.slice.call(arguments),t=new Array(r.length),n=0;n<e.length;n++)t[n]=e[n];return t[t.length]=x,r.apply({instance:x},t)}),e}),{}),delete t.methods);var r=Object.keys(t).concat(n),o=new Set(e.events.concat(r));if(e.events=Array.from(o),e.pluginsArray=e.pluginsArray.concat(t),e.plugins[t.name])throw new Error(t.name+"AlreadyLoaded");return e.plugins[t.name]=t,e.plugins[t.name].loaded||(e.plugins[t.name].loaded=function(){return!0}),e}),{plugins:{},pluginEnabled:{},methods:{},pluginsArray:[],middlewares:[],events:[]}),o=e.storage?e.storage:{getItem:a$2,setItem:f,removeItem:i$2},i=function(e){return function(t,n,r){return n.getState("user")[t]||(r&&on(r)&&r[t]?r[t]:R(e)[t]||a$2($(t))||null)}}(o),a=r.plugins,c=r.events.filter((function(e){return!T.includes(e)})).sort(),u=new Set(c.concat(x$1).filter((function(e){return!T.includes(e)}))),l=Array.from(u).sort(),g=function(){return a},d=new ue,m=d.addMiddleware,p=d.removeMiddleware,b=d.dynamicMiddlewares,h=function(){throw new Error("Abort disabled inListener")},k=s(),I=R(o),_=g$1({},I,n,k.an_uid?{userId:k.an_uid}:{},k.an_aid?{anonymousId:k.an_aid}:{});_.anonymousId||(_.anonymousId=y$1());var O=g$1({enable:function(e,t){return new Promise((function(n){F.dispatch({type:z.enablePlugin,plugins:_e(e),_:{originalAction:z.enablePlugin}},n,[t])}))},disable:function(e,t){return new Promise((function(n){F.dispatch({type:z.disablePlugin,plugins:_e(e),_:{originalAction:z.disablePlugin}},n,[t])}))}},r.methods),x={identify:function(e,t,n,r){try{var o=q$1(e)?e:null,a=on(e)?e:t,s=n||{},c=x.user();f($(k$1),o);var u=o||a.userId||i(k$1,x,a);return Promise.resolve(new Promise((function(e){F.dispatch(g$1({type:z.identifyStart,userId:u,traits:a||{},options:s,anonymousId:c.anonymousId},c.id&&c.id!==o&&{previousId:c.id}),e,[t,n,r])})))}catch(e){return Promise.reject(e)}},track:function(e,t,n,r){try{var o=on(e)?e.event:e;if(!o||!q$1(o))throw new Error("EventMissing");var a=on(e)?e:t||{},s=on(n)?n:{};return Promise.resolve(new Promise((function(e){F.dispatch({type:z.trackStart,event:o,properties:a,options:s,userId:i(k$1,x,t),anonymousId:i(j,x,t)},e,[t,n,r])})))}catch(e){return Promise.reject(e)}},page:function(e,t,n){try{var r=on(e)?e:{},o=on(t)?t:{};return Promise.resolve(new Promise((function(a){F.dispatch({type:z.pageStart,properties:be(r),options:o,userId:i(k$1,x,r),anonymousId:i(j,x,r)},a,[e,t,n])})))}catch(e){return Promise.reject(e)}},user:function(e){if(e===k$1||"id"===e)return i(k$1,x);if(e===j||"anonId"===e)return i(j,x);var t=x.getState("user");return e?n$2(t,e):t},reset:function(e){return new Promise((function(t){F.dispatch({type:z.resetStart},t,e)}))},ready:function(e){return x.on(z.ready,e)},on:function(e,t){if(!e||!W$1(t))return!1;if(e===z.bootstrap)throw new Error(".on disabled for "+e);var n=/Start$|Start:/;if("*"===e){var r=function(e){return function(e){return function(r){return r.type.match(n)&&t({payload:r,instance:x,plugins:a}),e(r)}}},o=function(e){return function(e){return function(r){return r.type.match(n)||t({payload:r,instance:x,plugins:a}),e(r)}}};return m(r,je),m(o,xe),function(){p(r,je),p(o,xe)}}var i=e.match(n)?je:xe,s=function(n){return function(n){return function(r){return r.type===e&&t({payload:r,instance:x,plugins:a,abort:h}),n(r)}}};return m(s,i),function(){return p(s,i)}},once:function(e,t){if(!e||!W$1(t))return!1;if(e===z.bootstrap)throw new Error(".once disabled for "+e);var n=x.on(e,(function(e){t({payload:e.payload,instance:x,plugins:a,abort:h}),n()}));return n},getState:function(e){var t=F.getState();return e?n$2(t,e):Object.assign({},t)},dispatch:function(e){var t=q$1(e)?{type:e}:e;if(x$1.includes(t.type))throw new Error("reserved action "+t.type);var n=g$1({},t,{_:g$1({originalAction:t.type},e._||{})});F.dispatch(n)},enablePlugin:O.enable,disablePlugin:O.disable,plugins:O,storage:{getItem:o.getItem,setItem:function(e,t,n){F.dispatch({type:z.setItemStart,key:e,value:t,options:n})},removeItem:function(e,t){F.dispatch({type:z.removeItemStart,key:e,options:t})}},setAnonymousId:function(e,t){x.storage.setItem(N$1,e,t)},events:{core:x$1,plugins:c}},E=r.middlewares.concat([function(e){return function(e){return function(t){return t.meta||(t.meta=Oe()),e(t)}}},b(je),ae(x,g,{all:l,plugins:c}),oe(o),C$1(x),D(x),b(xe)]),N={context:Pe,user:U(o),page:we,track:pe,plugins:ce(g),queue:ge},A=P,C=P;if($$1&&e.debug){var L=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;L&&(A=L({trace:!0,traceLimit:25})),C=function(){return 0===arguments.length?Ne():on(typeof arguments[0])?Ae():Ae().apply(null,arguments)}}var J,M=function(e){return Object.keys(e).reduce((function(t,n){return Se.includes(n)||(t[n]=e[n]),t}),{})}(e),q=r.pluginsArray.reduce((function(e,t){var n=t.name,o=t.config,i=t.loaded,a=r.pluginEnabled[n];return e[n]={enabled:a,initialized:!!a&&Boolean(!t.initialize),loaded:Boolean(i()),config:o||{}},e}),{}),G={context:M,user:_,plugins:q},F=w(function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var o=t[r];typeof e[o]===h$1&&(n[o]=e[o])}var i,a=Object.keys(n);try{!function(e){Object.keys(e).forEach((function(t){var n=e[t];if(typeof n(void 0,{type:"@@redux/INIT"})===v||typeof n(void 0,{type:y})===v)throw new Error("reducer "+t+" "+v)}))}(n)}catch(e){i=e}return function(e,t){if(void 0===e&&(e={}),i)throw i;for(var r=!1,o={},s=0;s<a.length;s++){var c=a[s],u=e[c],l=(0,n[c])(u,t);if(typeof l===v){var g=E$1(c,t);throw new Error(g)}o[c]=l,r=r||l!==u}return r?o:e}}(g$1({},N,t)),G,C(A(S.apply(void 0,E))));F.dispatch=(J=F.dispatch,function(e,t,n){var r=g$1({},e,{meta:Oe(e.meta,t,_e(n))});return J.apply(null,[r])});var V=Object.keys(a);F.dispatch({type:z.bootstrap,plugins:V,config:M,params:k,user:_,initialUser:n,persistedUser:I});var W=V.filter((function(e){return r.pluginEnabled[e]})),B=V.filter((function(e){return!r.pluginEnabled[e]}));return F.dispatch({type:z.registerPlugins,plugins:V,enabled:r.pluginEnabled}),r.pluginsArray.map((function(e,t){var n=e.bootstrap,o=e.config,i=e.name;n&&W$1(n)&&n({instance:x,config:o,payload:e}),F.dispatch({type:z.registerPluginType(i),name:i,enabled:r.pluginEnabled[i],plugin:e}),r.pluginsArray.length===t+1&&F.dispatch({type:z.initializeStart,plugins:W,disabled:B})})),x}var je="before",xe="after",t="cookie",i$1=a$1(),r$1=d$1,c=d$1;function u(e){return i$1?d$1(e,"",-1):i$2(e)}function a$1(){if(void 0!==i$1)return i$1;var e="cookiecookie";try{d$1(e,e),i$1=-1!==document.cookie.indexOf(e),u(e)}catch(e){i$1=!1}return i$1}function d$1(e,t,n,r,o,i){if("undefined"!=typeof window){var a=arguments.length>1;return!1===i$1&&(a?f(e,t):a$2(e)),a?document.cookie=e+"="+encodeURIComponent(t)+(n?"; expires="+new Date(+new Date+1e3*n).toUTCString()+(r?"; path="+r:"")+(o?"; domain="+o:"")+(i?"; secure":""):""):decodeURIComponent((("; "+document.cookie).split("; "+e+"=")[1]||"").split(";")[0])}}var r="localStorage",g=b$2.bind(null,"localStorage");u$1("localStorage","getItem",a$2),u$1("localStorage","setItem",f),u$1("localStorage","removeItem",i$2);var a="sessionStorage",i=b$2.bind(null,"sessionStorage");function I(e){var t=e;try{if("true"===(t=JSON.parse(e)))return!0;if("false"===t)return!1;if(on(t))return t;parseFloat(t)===t&&(t=parseFloat(t))}catch(e){}if(null!==t&&""!==t)return t}u$1("sessionStorage","getItem",a$2),u$1("sessionStorage","setItem",f),u$1("sessionStorage","removeItem",i$2);var k=g(),O=i(),x=a$1();function C(e,t){if(e){var n=A(t),r=!N(n),o=d(n)?I(localStorage.getItem(e)):void 0;if(r&&!I$2(o))return o;var i=h(n)?I(r$1(e)):void 0;if(r&&i)return i;var a=E(n)?I(sessionStorage.getItem(e)):void 0;if(r&&a)return a;var s=a$2(e);return r?s:{localStorage:o,sessionStorage:a,cookie:i,global:s}}}function L(e,n,o){if(e&&!I$2(n)){var i={},s=A(o),u=JSON.stringify(n),g=!N(s);return d(s)&&(i[r]=F(r,n,I(localStorage.getItem(e))),localStorage.setItem(e,u),g)?i[r]:h(s)&&(i[t]=F(t,n,I(r$1(e))),c(e,u),g)?i[t]:E(s)&&(i[a]=F(a,n,I(sessionStorage.getItem(e))),sessionStorage.setItem(e,u),g)?i[a]:(i[l]=F(l,n,a$2(e)),f(e,n),g?i[l]:i)}}function b(e,n){if(e){var o=A(n),i=C(e,m$1),s={};return!I$2(i.localStorage)&&d(o)&&(localStorage.removeItem(e),s[r]=i.localStorage),!I$2(i.cookie)&&h(o)&&(u(e),s[t]=i.cookie),!I$2(i.sessionStorage)&&E(o)&&(sessionStorage.removeItem(e),s[a]=i.sessionStorage),!I$2(i.global)&&G(o,l)&&(i$2(e),s[l]=i.global),s}}function A(e){return e?q$1(e)?e:e.storage:g$2}function d(e){return k&&G(e,r)}function h(e){return x&&G(e,t)}function E(e){return O&&G(e,a)}function N(e){return e===m$1||"all"===e}function G(e,t){return e===g$2||e===t||N(e)}function F(e,t,n){return{location:e,current:t,previous:n}}var J={setItem:L,getItem:C,removeItem:b};function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ownKeys(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(n),!0).forEach((function(t){_defineProperty(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ownKeys(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function analyticsLib(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return ke(_objectSpread2(_objectSpread2({},{storage:J}),e))}function findScript(e){return Array.prototype.slice.call(window.document.querySelectorAll("script")).find((t=>t.src===e))}function loadScript(e,t){const n=findScript(e);if(void 0!==n){const e=null==n?void 0:n.getAttribute("status");if("loaded"===e)return Promise.resolve(n);if("loading"===e)return new Promise(((e,t)=>{n.addEventListener("load",(()=>e(n))),n.addEventListener("error",(e=>t(e)))}))}return new Promise(((n,r)=>{var o;const i=window.document.createElement("script");i.type="text/javascript",i.src=e,i.async=!0,i.setAttribute("status","loading");for(const[e,n]of Object.entries(null!=t?t:{}))i.setAttribute(e,n);i.onload=()=>{i.onerror=i.onload=null,i.setAttribute("status","loaded"),n(i)},i.onerror=()=>{i.onerror=i.onload=null,i.setAttribute("status","error"),r(new Error(`Failed to load ${e}`))};const a=window.document.getElementsByTagName("script")[0];null===(o=a.parentElement)||void 0===o||o.insertBefore(i,a)}))}var __awaiter$4=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const tagPlugin={id:"tag",handle(e,t){return __awaiter$4(this,void 0,void 0,(function*(){applyFilters(t,e)&&insertTags(e.code,t)}))}};function insertTags(e,t,n={}){let r;try{r=JSON.parse(e)}catch(t){r={code:e,lang:"javascript"}}const o=n.debug||!1;if(isInBrowser())if("javascript"===r.lang)execJs(r.code,t);else{const e=document.createElement("span");e.innerHTML=replaceMacro(r.code,t),document.body.insertAdjacentElement("beforeend",e);e.querySelectorAll("script").forEach((e=>{const t=document.createElement("script");t.type=t.type||"text/javascript",e.hasAttribute("src")&&(t.src=e.src),t.text=e.text,o&&console.log("[JITSU] Executing script"+(e.hasAttribute("src")?` ${e.src}`:""),t.text),document.head.appendChild(t),document.head.removeChild(t)}))}else o&&console.log("[JITSU] insertTags(): cannot insert tags in non-browser environment")}function execJs(code,event){const varName=`jitsu_event_${randomId()}`;window[varName]=event;const iif=`(function(){\n const event = ${varName};\n ${code}\n })()`;try{eval(iif)}catch(e){console.error(`[JITSU] Error executing JS code: ${e.message}. Code: `,iif)}finally{delete window[varName]}return iif}function replaceMacro(e,t){return e.replace(/{{\s*event\s*}}/g,JSON.stringify(t))}var __awaiter$3=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const logrocketPlugin={id:"logrocket",handle(e,t){return __awaiter$3(this,void 0,void 0,(function*(){if(!applyFilters(t,e))return;initLogrocketIfNeeded(e.appId);getLogRocketQueue().push((e=>{"identify"===t.type&&t.userId&&e.identify(t.userId,t.traits||{})})),"loaded"===getLogRocketState()&&flushLogRocketQueue(window.LogRocket)}))}};function getLogRocketState(){return window.__jitsuLrState||"fresh"}function setLogRocketState(e){window.__jitsuLrState=e}function getLogRocketQueue(){return window.__jitsuLrQueue||(window.__jitsuLrQueue=[])}function flushLogRocketQueue(e){const t=getLogRocketQueue();for(;t.length>0;){const n=t.shift();try{const t=n(e);t&&t.catch((e=>console.warn(`Async LogRocket method failed: ${e.message}`,e)))}catch(e){console.warn(`LogRocket method failed: ${e.message}`,e)}}}function initLogrocketIfNeeded(e){return __awaiter$3(this,void 0,void 0,(function*(){"fresh"===getLogRocketState()&&(setLogRocketState("loading"),loadScript("https://cdn.lr-ingest.io/LogRocket.min.js",{crossOrigin:"anonymous"}).then((()=>{if(window.LogRocket){try{window.LogRocket.init(e)}catch(t){console.warn(`LogRocket (id=${e}) init failed: ${t.message}`,t),setLogRocketState("failed")}setLogRocketState("loaded"),flushLogRocketQueue(window.LogRocket)}})).catch((t=>{console.warn(`LogRocket (id=${e}) init failed: ${t.message}`,t),setLogRocketState("failed")})))}))}var __awaiter$2=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const defaultScriptSrc$1="https://www.googletagmanager.com/gtag/js",gtmPlugin={id:"gtm",handle(e,t){var n,r;return __awaiter$2(this,void 0,void 0,(function*(){if(!applyFilters(t,e))return;yield initGtmIfNeeded(e,t);const o=window[e.dataLayerName||"dataLayer"],i=Object.assign(Object.assign({},t.userId?{user_id:t.userId,userId:t.userId}:{}),t.anonymousId?{anonymousId:t.anonymousId}:{});switch(t.type){case"page":const{properties:e,context:a}=t,s=Object.assign({event:"page_view",page_location:e.url,page_title:e.title,page_path:e.path,page_hash:e.hash,page_search:e.search,page_referrer:null!==(r=null===(n=null==a?void 0:a.page)||void 0===n?void 0:n.referrer)&&void 0!==r?r:""},i);o.push(s);break;case"track":const{properties:c}=t,u=Object.assign(Object.assign({event:t.event},c),i);o.push(u);break;case"identify":const{traits:l}=t,g=Object.assign(Object.assign({event:"identify"},l),i);o.push(g)}o.push((function(){this.reset()}))}))}};function getGtmState(){return window.__jitsuGtmState||"fresh"}function setGtmState(e){window.__jitsuGtmState=e}function initGtmIfNeeded(e,t){return __awaiter$2(this,void 0,void 0,(function*(){if("fresh"!==getGtmState())return;setGtmState("loading");const n=e.dataLayerName||"dataLayer",r="dataLayer"!==n?"&l="+n:"",o=e.preview?`>m_preview=${e.preview}>m_auth=${e.auth}>m_cookies_win=x`:"",i=e.containerId,a=`${e.customScriptSrc||defaultScriptSrc$1}?id=${i}${r}${o}`;window[n]=window[n]||[];const s=function(){window[n].push(arguments)};window[n].push({user_id:t.userId}),s("js",new Date),s("config",i),loadScript(a).then((()=>{setGtmState("loaded")})).catch((e=>{console.warn(`GTM (containerId=${i}) init failed: ${e.message}`,e),setGtmState("failed")}))}))}var __awaiter$1=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const defaultScriptSrc="https://www.googletagmanager.com/gtag/js",ga4Plugin={id:"ga4-tag",handle(e,t){var n,r;return __awaiter$1(this,void 0,void 0,(function*(){if(!applyFilters(t,e))return;yield initGa4IfNeeded(e,t);const o=window[e.dataLayerName||"dataLayer"],i=function(){o.push(arguments)},a=Object.assign(Object.assign({},t.userId?{user_id:t.userId,userId:t.userId}:{}),t.anonymousId?{anonymousId:t.anonymousId}:{});switch(t.userId&&i("set",{user_id:t.userId}),t.type){case"page":if(e.autoPageView){console.log("autoPageView");break}const{properties:o,context:s}=t;i("event","page_view",Object.assign({page_location:o.url,page_title:o.title,page_path:o.path,page_hash:o.hash,page_search:o.search,page_referrer:null!==(r=null===(n=null==s?void 0:s.page)||void 0===n?void 0:n.referrer)&&void 0!==r?r:""},a));break;case"track":const{properties:c}=t,u=Object.assign(Object.assign({},c),a);i("event",t.event,u);break;case"identify":const{traits:l}=t;i("event","identify",Object.assign(Object.assign({},l),a))}}))}};function getGa4State(){return window.__jitsuGa4State||"fresh"}function setGa4State(e){window.__jitsuGa4State=e}function initGa4IfNeeded(e,t){return __awaiter$1(this,void 0,void 0,(function*(){if("fresh"!==getGa4State())return;setGa4State("loading");const n=e.dataLayerName||"dataLayer",r="dataLayer"!==n?"&l="+n:"",o=e.measurementIds,i=`${defaultScriptSrc}?id=${o}${r}`;window[n]=window[n]||[];const a=function(){window[n].push(arguments)};a("js",new Date),a("config",o,Object.assign(Object.assign({},t.userId?{user_id:t.userId}:{}),e.autoPageView?{}:{send_page_view:!1})),loadScript(i).then((()=>{setGa4State("loaded")})).catch((t=>{console.warn(`GA4 (containerId=${e.measurementIds}) init failed: ${t.message}`,t),setGa4State("failed")}))}))}function satisfyFilter(e,t){return"*"===e||e.toLowerCase().trim()===(t||"").trim().toLowerCase()}function satisfyDomainFilter(e,t){return"*"===e||(t=t||"",e.startsWith("*.")?t.endsWith(e.substring(1)):e===t)}function applyFilters(e,t){const{hosts:n="*",events:r="*"}=t;try{const t=Array.isArray(r)?r:r.split("\n");return!(!(Array.isArray(n)?n:n.split("\n")).find((t=>{var n,r;return satisfyDomainFilter(t,null===(r=null===(n=e.context)||void 0===n?void 0:n.page)||void 0===r?void 0:r.host)}))||!t.find((t=>satisfyFilter(t,e.type)))&&!t.find((t=>satisfyFilter(t,e.event))))}catch(e){throw console.warn(`Failed to apply filters: ${e.message}. Typeof events: ${typeof r}, typeof hosts: ${typeof n}. Values`,r,n),new Error(`Failed to apply filters: ${e.message}. Typeof events: ${typeof r}, typeof hosts: ${typeof n}`)}}const internalDestinationPlugins={[tagPlugin.id]:tagPlugin,[gtmPlugin.id]:gtmPlugin,[ga4Plugin.id]:ga4Plugin,[logrocketPlugin.id]:logrocketPlugin};var name="@jitsu/js",version="0.0.0";const publicSuffixes="ac,com.ac,edu.ac,gov.ac,net.ac,mil.ac,org.ac,ad,nom.ad,ae,co.ae,net.ae,org.ae,sch.ae,ac.ae,gov.ae,mil.ae,aero,af,gov.af,com.af,org.af,net.af,edu.af,ag,com.ag,org.ag,net.ag,co.ag,nom.ag,ai,off.ai,com.ai,net.ai,org.ai,al,com.al,edu.al,gov.al,mil.al,net.al,org.al,am,co.am,com.am,commune.am,net.am,org.am,ao,ed.ao,gv.ao,og.ao,co.ao,pb.ao,it.ao,aq,ar,bet.ar,com.ar,coop.ar,edu.ar,gob.ar,gov.ar,int.ar,mil.ar,musica.ar,mutual.ar,net.ar,org.ar,senasa.ar,tur.ar,arpa,e164.arpa,in-addr.arpa,ip6.arpa,iris.arpa,uri.arpa,urn.arpa,as,gov.as,asia,at,ac.at,co.at,gv.at,or.at,sth.ac.at,au,com.au,net.au,org.au,edu.au,gov.au,asn.au,id.au,act.au,nsw.au,nt.au,qld.au,sa.au,tas.au,vic.au,wa.au,aw,com.aw,ax,az,com.az,net.az,int.az,gov.az,org.az,edu.az,info.az,pp.az,mil.az,name.az,pro.az,biz.az,ba,com.ba,edu.ba,gov.ba,mil.ba,net.ba,org.ba,bb,biz.bb,co.bb,com.bb,edu.bb,gov.bb,info.bb,net.bb,org.bb,store.bb,tv.bb,bd,be,ac.be,bf,gov.bf,bg,a.bg,b.bg,c.bg,d.bg,e.bg,f.bg,g.bg,h.bg,i.bg,j.bg,k.bg,l.bg,m.bg,n.bg,o.bg,p.bg,q.bg,r.bg,s.bg,t.bg,u.bg,v.bg,w.bg,x.bg,y.bg,z.bg,0.bg,1.bg,2.bg,3.bg,4.bg,5.bg,6.bg,7.bg,8.bg,9.bg,bh,com.bh,edu.bh,net.bh,org.bh,gov.bh,bi,co.bi,com.bi,edu.bi,or.bi,org.bi,biz,bj,africa.bj,agro.bj,architectes.bj,assur.bj,avocats.bj,co.bj,com.bj,eco.bj,econo.bj,edu.bj,info.bj,loisirs.bj,money.bj,net.bj,org.bj,ote.bj,resto.bj,restaurant.bj,tourism.bj,univ.bj,bm,com.bm,edu.bm,gov.bm,net.bm,org.bm,bn,com.bn,edu.bn,gov.bn,net.bn,org.bn,bo,com.bo,edu.bo,gob.bo,int.bo,org.bo,net.bo,mil.bo,tv.bo,web.bo,br,9guacu.br,abc.br,adm.br,adv.br,agr.br,aju.br,am.br,anani.br,aparecida.br,app.br,arq.br,art.br,ato.br,b.br,barueri.br,belem.br,bhz.br,bib.br,bio.br,blog.br,bmd.br,boavista.br,bsb.br,campinagrande.br,campinas.br,caxias.br,cim.br,cng.br,cnt.br,com.br,contagem.br,coop.br,coz.br,cri.br,cuiaba.br,curitiba.br,def.br,des.br,det.br,dev.br,ecn.br,eco.br,edu.br,emp.br,enf.br,eng.br,esp.br,etc.br,eti.br,far.br,feira.br,flog.br,floripa.br,fm.br,fnd.br,fortal.br,fot.br,foz.br,fst.br,g12.br,geo.br,ggf.br,goiania.br,gov.br,gru.br,imb.br,ind.br,inf.br,jab.br,jampa.br,jdf.br,joinville.br,jor.br,jus.br,leg.br,lel.br,log.br,londrina.br,macapa.br,maceio.br,manaus.br,maringa.br,mat.br,med.br,mil.br,morena.br,mp.br,mus.br,natal.br,net.br,niteroi.br,nom.br,not.br,ntr.br,odo.br,ong.br,org.br,osasco.br,palmas.br,poa.br,ppg.br,pro.br,psc.br,psi.br,pvh.br,qsl.br,radio.br,rec.br,recife.br,rep.br,ribeirao.br,rio.br,riobranco.br,riopreto.br,salvador.br,sampa.br,santamaria.br,santoandre.br,saobernardo.br,saogonca.br,seg.br,sjc.br,slg.br,slz.br,sorocaba.br,srv.br,taxi.br,tc.br,tec.br,teo.br,the.br,tmp.br,trd.br,tur.br,tv.br,udi.br,vet.br,vix.br,vlog.br,wiki.br,zlg.br,bs,com.bs,net.bs,org.bs,edu.bs,gov.bs,bt,com.bt,edu.bt,gov.bt,net.bt,org.bt,bv,bw,co.bw,org.bw,by,gov.by,mil.by,com.by,of.by,bz,com.bz,net.bz,org.bz,edu.bz,gov.bz,ca,ab.ca,bc.ca,mb.ca,nb.ca,nf.ca,nl.ca,ns.ca,nt.ca,nu.ca,on.ca,pe.ca,qc.ca,sk.ca,yk.ca,gc.ca,cat,cc,cd,gov.cd,cf,cg,ch,ci,org.ci,or.ci,com.ci,co.ci,edu.ci,ed.ci,ac.ci,net.ci,go.ci,asso.ci,aéroport.ci,int.ci,presse.ci,md.ci,gouv.ci,ck,cl,co.cl,gob.cl,gov.cl,mil.cl,cm,co.cm,com.cm,gov.cm,net.cm,cn,ac.cn,com.cn,edu.cn,gov.cn,net.cn,org.cn,mil.cn,co,arts.co,com.co,edu.co,firm.co,gov.co,info.co,int.co,mil.co,net.co,nom.co,org.co,rec.co,web.co,com,coop,cr,ac.cr,co.cr,ed.cr,fi.cr,go.cr,or.cr,sa.cr,cu,com.cu,edu.cu,org.cu,net.cu,gov.cu,inf.cu,cv,com.cv,edu.cv,int.cv,nome.cv,org.cv,cw,com.cw,edu.cw,net.cw,org.cw,cx,gov.cx,cy,ac.cy,biz.cy,com.cy,ekloges.cy,gov.cy,ltd.cy,mil.cy,net.cy,org.cy,press.cy,pro.cy,tm.cy,cz,de,dj,dk,dm,com.dm,net.dm,org.dm,edu.dm,gov.dm,do,art.do,com.do,edu.do,gob.do,gov.do,mil.do,net.do,org.do,sld.do,web.do,dz,art.dz,asso.dz,com.dz,edu.dz,gov.dz,org.dz,net.dz,pol.dz,soc.dz,tm.dz,ec,com.ec,info.ec,net.ec,fin.ec,k12.ec,med.ec,pro.ec,org.ec,edu.ec,gov.ec,gob.ec,mil.ec,edu,ee,edu.ee,gov.ee,riik.ee,lib.ee,med.ee,com.ee,pri.ee,aip.ee,org.ee,fie.ee,eg,com.eg,edu.eg,eun.eg,gov.eg,mil.eg,name.eg,net.eg,org.eg,sci.eg,er,es,com.es,nom.es,org.es,gob.es,edu.es,et,com.et,gov.et,org.et,edu.et,biz.et,name.et,info.et,net.et,eu,fi,aland.fi,fj,ac.fj,biz.fj,com.fj,gov.fj,info.fj,mil.fj,name.fj,net.fj,org.fj,pro.fj,fk,com.fm,edu.fm,net.fm,org.fm,fm,fo,fr,asso.fr,com.fr,gouv.fr,nom.fr,prd.fr,tm.fr,aeroport.fr,avocat.fr,avoues.fr,cci.fr,chambagri.fr,chirurgiens-dentistes.fr,experts-comptables.fr,geometre-expert.fr,greta.fr,huissier-justice.fr,medecin.fr,notaires.fr,pharmacien.fr,port.fr,veterinaire.fr,ga,gb,edu.gd,gov.gd,gd,ge,com.ge,edu.ge,gov.ge,org.ge,mil.ge,net.ge,pvt.ge,gf,gg,co.gg,net.gg,org.gg,gh,com.gh,edu.gh,gov.gh,org.gh,mil.gh,gi,com.gi,ltd.gi,gov.gi,mod.gi,edu.gi,org.gi,gl,co.gl,com.gl,edu.gl,net.gl,org.gl,gm,gn,ac.gn,com.gn,edu.gn,gov.gn,org.gn,net.gn,gov,gp,com.gp,net.gp,mobi.gp,edu.gp,org.gp,asso.gp,gq,gr,com.gr,edu.gr,net.gr,org.gr,gov.gr,gs,gt,com.gt,edu.gt,gob.gt,ind.gt,mil.gt,net.gt,org.gt,gu,com.gu,edu.gu,gov.gu,guam.gu,info.gu,net.gu,org.gu,web.gu,gw,gy,co.gy,com.gy,edu.gy,gov.gy,net.gy,org.gy,hk,com.hk,edu.hk,gov.hk,idv.hk,net.hk,org.hk,hm,hn,com.hn,edu.hn,org.hn,net.hn,mil.hn,gob.hn,hr,iz.hr,from.hr,name.hr,com.hr,ht,com.ht,shop.ht,firm.ht,info.ht,adult.ht,net.ht,pro.ht,org.ht,med.ht,art.ht,coop.ht,pol.ht,asso.ht,edu.ht,rel.ht,gouv.ht,perso.ht,hu,co.hu,info.hu,org.hu,priv.hu,sport.hu,tm.hu,2000.hu,agrar.hu,bolt.hu,casino.hu,city.hu,erotica.hu,erotika.hu,film.hu,forum.hu,games.hu,hotel.hu,ingatlan.hu,jogasz.hu,konyvelo.hu,lakas.hu,media.hu,news.hu,reklam.hu,sex.hu,shop.hu,suli.hu,szex.hu,tozsde.hu,utazas.hu,video.hu,id,ac.id,biz.id,co.id,desa.id,go.id,mil.id,my.id,net.id,or.id,ponpes.id,sch.id,web.id,ie,gov.ie,il,ac.il,co.il,gov.il,idf.il,k12.il,muni.il,net.il,org.il,im,ac.im,co.im,com.im,ltd.co.im,net.im,org.im,plc.co.im,tt.im,tv.im,in,5g.in,6g.in,ac.in,ai.in,am.in,bihar.in,biz.in,business.in,ca.in,cn.in,co.in,com.in,coop.in,cs.in,delhi.in,dr.in,edu.in,er.in,firm.in,gen.in,gov.in,gujarat.in,ind.in,info.in,int.in,internet.in,io.in,me.in,mil.in,net.in,nic.in,org.in,pg.in,post.in,pro.in,res.in,travel.in,tv.in,uk.in,up.in,us.in,info,int,eu.int,io,com.io,iq,gov.iq,edu.iq,mil.iq,com.iq,org.iq,net.iq,ir,ac.ir,co.ir,gov.ir,id.ir,net.ir,org.ir,sch.ir,is,net.is,com.is,edu.is,gov.is,org.is,int.is,it,gov.it,edu.it,je,co.je,net.je,org.je,jm,jo,com.jo,org.jo,net.jo,edu.jo,sch.jo,gov.jo,mil.jo,name.jo,jobs,jp,ac.jp,ad.jp,co.jp,ed.jp,go.jp,gr.jp,lg.jp,ne.jp,or.jp,ke,ac.ke,co.ke,go.ke,info.ke,me.ke,mobi.ke,ne.ke,or.ke,sc.ke,kg,org.kg,net.kg,com.kg,edu.kg,gov.kg,mil.kg,kh,ki,edu.ki,biz.ki,net.ki,org.ki,gov.ki,info.ki,com.ki,km,org.km,nom.km,gov.km,prd.km,tm.km,edu.km,mil.km,ass.km,com.km,kn,net.kn,org.kn,edu.kn,gov.kn,kp,com.kp,edu.kp,gov.kp,org.kp,rep.kp,tra.kp,kr,ac.kr,co.kr,es.kr,go.kr,hs.kr,kg.kr,mil.kr,ms.kr,ne.kr,or.kr,pe.kr,re.kr,sc.kr,kw,com.kw,edu.kw,emb.kw,gov.kw,ind.kw,net.kw,org.kw,ky,com.ky,edu.ky,net.ky,org.ky,kz,org.kz,edu.kz,net.kz,gov.kz,mil.kz,com.kz,la,int.la,net.la,info.la,edu.la,gov.la,per.la,com.la,org.la,lb,com.lb,edu.lb,gov.lb,net.lb,org.lb,lc,com.lc,net.lc,co.lc,org.lc,edu.lc,gov.lc,li,lk,gov.lk,sch.lk,net.lk,int.lk,com.lk,org.lk,edu.lk,ngo.lk,soc.lk,web.lk,ltd.lk,assn.lk,grp.lk,hotel.lk,ac.lk,lr,com.lr,edu.lr,gov.lr,org.lr,net.lr,ls,ac.ls,biz.ls,co.ls,edu.ls,gov.ls,info.ls,net.ls,org.ls,sc.ls,lt,gov.lt,lu,lv,com.lv,edu.lv,gov.lv,org.lv,mil.lv,id.lv,net.lv,asn.lv,conf.lv,ly,com.ly,net.ly,gov.ly,plc.ly,edu.ly,sch.ly,med.ly,org.ly,id.ly,ma,co.ma,net.ma,gov.ma,org.ma,ac.ma,press.ma,mc,tm.mc,asso.mc,md,me,co.me,net.me,org.me,edu.me,ac.me,gov.me,its.me,priv.me,mg,org.mg,nom.mg,gov.mg,prd.mg,tm.mg,edu.mg,mil.mg,com.mg,co.mg,mh,mil,mk,com.mk,org.mk,net.mk,edu.mk,gov.mk,inf.mk,name.mk,ml,com.ml,edu.ml,gouv.ml,gov.ml,net.ml,org.ml,presse.ml,mm,mn,gov.mn,edu.mn,org.mn,mo,com.mo,net.mo,org.mo,edu.mo,gov.mo,mobi,mp,mq,mr,gov.mr,ms,com.ms,edu.ms,gov.ms,net.ms,org.ms,mt,com.mt,edu.mt,net.mt,org.mt,mu,com.mu,net.mu,org.mu,gov.mu,ac.mu,co.mu,or.mu,museum,mv,aero.mv,biz.mv,com.mv,coop.mv,edu.mv,gov.mv,info.mv,int.mv,mil.mv,museum.mv,name.mv,net.mv,org.mv,pro.mv,mw,ac.mw,biz.mw,co.mw,com.mw,coop.mw,edu.mw,gov.mw,int.mw,museum.mw,net.mw,org.mw,mx,com.mx,org.mx,gob.mx,edu.mx,net.mx,my,biz.my,com.my,edu.my,gov.my,mil.my,name.my,net.my,org.my,mz,ac.mz,adv.mz,co.mz,edu.mz,gov.mz,mil.mz,net.mz,org.mz,na,info.na,pro.na,name.na,school.na,or.na,dr.na,us.na,mx.na,ca.na,in.na,cc.na,tv.na,ws.na,mobi.na,co.na,com.na,org.na,name,nc,asso.nc,nom.nc,ne,net,nf,com.nf,net.nf,per.nf,rec.nf,web.nf,arts.nf,firm.nf,info.nf,other.nf,store.nf,ng,com.ng,edu.ng,gov.ng,i.ng,mil.ng,mobi.ng,name.ng,net.ng,org.ng,sch.ng,ni,ac.ni,biz.ni,co.ni,com.ni,edu.ni,gob.ni,in.ni,info.ni,int.ni,mil.ni,net.ni,nom.ni,org.ni,web.ni,nl,no,fhs.no,vgs.no,fylkesbibl.no,folkebibl.no,museum.no,idrett.no,priv.no,mil.no,stat.no,dep.no,kommune.no,herad.no,np,nr,biz.nr,info.nr,gov.nr,edu.nr,org.nr,net.nr,com.nr,nu,nz,ac.nz,co.nz,cri.nz,geek.nz,gen.nz,govt.nz,health.nz,iwi.nz,kiwi.nz,maori.nz,mil.nz,māori.nz,net.nz,org.nz,parliament.nz,school.nz,om,co.om,com.om,edu.om,gov.om,med.om,museum.om,net.om,org.om,pro.om,onion,org,pa,ac.pa,gob.pa,com.pa,org.pa,sld.pa,edu.pa,net.pa,ing.pa,abo.pa,med.pa,nom.pa,pe,edu.pe,gob.pe,nom.pe,mil.pe,org.pe,com.pe,net.pe,pf,com.pf,org.pf,edu.pf,pg,ph,com.ph,net.ph,org.ph,gov.ph,edu.ph,ngo.ph,mil.ph,i.ph,pk,com.pk,net.pk,edu.pk,org.pk,fam.pk,biz.pk,web.pk,gov.pk,gob.pk,gok.pk,gon.pk,gop.pk,gos.pk,info.pk,pl,com.pl,net.pl,org.pl,aid.pl,agro.pl,atm.pl,auto.pl,biz.pl,edu.pl,gmina.pl,gsm.pl,info.pl,mail.pl,miasta.pl,media.pl,mil.pl,nieruchomosci.pl,nom.pl,pc.pl,powiat.pl,priv.pl,realestate.pl,rel.pl,sex.pl,shop.pl,sklep.pl,sos.pl,szkola.pl,targi.pl,tm.pl,tourism.pl,travel.pl,turystyka.pl,pm,pn,gov.pn,co.pn,org.pn,edu.pn,net.pn,post,pr,com.pr,net.pr,org.pr,gov.pr,edu.pr,isla.pr,pro.pr,biz.pr,info.pr,name.pr,est.pr,prof.pr,ac.pr,pro,aaa.pro,aca.pro,acct.pro,avocat.pro,bar.pro,cpa.pro,eng.pro,jur.pro,law.pro,med.pro,recht.pro,ps,edu.ps,gov.ps,sec.ps,plo.ps,com.ps,org.ps,net.ps,pt,net.pt,gov.pt,org.pt,edu.pt,int.pt,publ.pt,com.pt,nome.pt,pw,co.pw,ne.pw,or.pw,ed.pw,go.pw,belau.pw,py,com.py,coop.py,edu.py,gov.py,mil.py,net.py,org.py,qa,com.qa,edu.qa,gov.qa,mil.qa,name.qa,net.qa,org.qa,sch.qa,re,asso.re,com.re,nom.re,ro,arts.ro,com.ro,firm.ro,info.ro,nom.ro,nt.ro,org.ro,rec.ro,store.ro,tm.ro,www.ro,rs,ac.rs,co.rs,edu.rs,gov.rs,in.rs,org.rs,ru,rw,ac.rw,co.rw,coop.rw,gov.rw,mil.rw,net.rw,org.rw,sa,com.sa,net.sa,org.sa,gov.sa,med.sa,pub.sa,edu.sa,sch.sa,sb,com.sb,edu.sb,gov.sb,net.sb,org.sb,sc,com.sc,gov.sc,net.sc,org.sc,edu.sc,sd,com.sd,net.sd,org.sd,edu.sd,med.sd,tv.sd,gov.sd,info.sd,se,a.se,ac.se,b.se,bd.se,brand.se,c.se,d.se,e.se,f.se,fh.se,fhsk.se,fhv.se,g.se,h.se,i.se,k.se,komforb.se,kommunalforbund.se,komvux.se,l.se,lanbib.se,m.se,n.se,naturbruksgymn.se,o.se,org.se,p.se,parti.se,pp.se,press.se,r.se,s.se,t.se,tm.se,u.se,w.se,x.se,y.se,z.se,sg,com.sg,net.sg,org.sg,gov.sg,edu.sg,per.sg,sh,com.sh,net.sh,gov.sh,org.sh,mil.sh,si,sj,sk,sl,com.sl,net.sl,edu.sl,gov.sl,org.sl,sm,sn,art.sn,com.sn,edu.sn,gouv.sn,org.sn,perso.sn,univ.sn,so,com.so,edu.so,gov.so,me.so,net.so,org.so,sr,ss,biz.ss,com.ss,edu.ss,gov.ss,me.ss,net.ss,org.ss,sch.ss,st,co.st,com.st,consulado.st,edu.st,embaixada.st,mil.st,net.st,org.st,principe.st,saotome.st,store.st,su,sv,com.sv,edu.sv,gob.sv,org.sv,red.sv,sx,gov.sx,sy,edu.sy,gov.sy,net.sy,mil.sy,com.sy,org.sy,sz,co.sz,ac.sz,org.sz,tc,td,tel,tf,tg,th,ac.th,co.th,go.th,in.th,mi.th,net.th,or.th,tj,ac.tj,biz.tj,co.tj,com.tj,edu.tj,go.tj,gov.tj,int.tj,mil.tj,name.tj,net.tj,nic.tj,org.tj,test.tj,web.tj,tk,tl,gov.tl,tm,com.tm,co.tm,org.tm,net.tm,nom.tm,gov.tm,mil.tm,edu.tm,tn,com.tn,ens.tn,fin.tn,gov.tn,ind.tn,info.tn,intl.tn,mincom.tn,nat.tn,net.tn,org.tn,perso.tn,tourism.tn,to,com.to,gov.to,net.to,org.to,edu.to,mil.to,tr,av.tr,bbs.tr,bel.tr,biz.tr,com.tr,dr.tr,edu.tr,gen.tr,gov.tr,info.tr,mil.tr,k12.tr,kep.tr,name.tr,net.tr,org.tr,pol.tr,tel.tr,tsk.tr,tv.tr,web.tr,nc.tr,tt,co.tt,com.tt,org.tt,net.tt,biz.tt,info.tt,pro.tt,int.tt,coop.tt,jobs.tt,mobi.tt,travel.tt,museum.tt,aero.tt,name.tt,gov.tt,edu.tt,tv,tw,edu.tw,gov.tw,mil.tw,com.tw,net.tw,org.tw,idv.tw,game.tw,ebiz.tw,club.tw,tz,ac.tz,co.tz,go.tz,hotel.tz,info.tz,me.tz,mil.tz,mobi.tz,ne.tz,or.tz,sc.tz,tv.tz,ua,com.ua,edu.ua,gov.ua,in.ua,net.ua,org.ua,ug,co.ug,or.ug,ac.ug,sc.ug,go.ug,ne.ug,com.ug,org.ug,uk,ac.uk,co.uk,gov.uk,ltd.uk,me.uk,net.uk,nhs.uk,org.uk,plc.uk,police.uk,us,dni.us,fed.us,isa.us,kids.us,nsn.us,ak.us,al.us,ar.us,as.us,az.us,ca.us,co.us,ct.us,dc.us,de.us,fl.us,ga.us,gu.us,hi.us,ia.us,id.us,il.us,in.us,ks.us,ky.us,la.us,ma.us,md.us,me.us,mi.us,mn.us,mo.us,ms.us,mt.us,nc.us,nd.us,ne.us,nh.us,nj.us,nm.us,nv.us,ny.us,oh.us,ok.us,or.us,pa.us,pr.us,ri.us,sc.us,sd.us,tn.us,tx.us,ut.us,vi.us,vt.us,va.us,wa.us,wi.us,wv.us,wy.us,uy,com.uy,edu.uy,gub.uy,mil.uy,net.uy,org.uy,uz,co.uz,com.uz,net.uz,org.uz,va,vc,com.vc,net.vc,org.vc,gov.vc,mil.vc,edu.vc,ve,arts.ve,bib.ve,co.ve,com.ve,e12.ve,edu.ve,firm.ve,gob.ve,gov.ve,info.ve,int.ve,mil.ve,net.ve,nom.ve,org.ve,rar.ve,rec.ve,store.ve,tec.ve,web.ve,vg,vi,co.vi,com.vi,k12.vi,net.vi,org.vi,vn,ac.vn,ai.vn,biz.vn,com.vn,edu.vn,gov.vn,health.vn,id.vn,info.vn,int.vn,io.vn,name.vn,net.vn,org.vn,pro.vn,vu,com.vu,edu.vu,net.vu,org.vu,wf,ws,com.ws,net.ws,org.ws,gov.ws,edu.ws,yt,ye,com.ye,edu.ye,gov.ye,net.ye,mil.ye,org.ye,ac.za,agric.za,alt.za,co.za,edu.za,gov.za,grondar.za,law.za,mil.za,net.za,ngo.za,nic.za,nis.za,nom.za,org.za,school.za,tm.za,web.za,zm,ac.zm,biz.zm,co.zm,com.zm,edu.zm,gov.zm,info.zm,mil.zm,net.zm,org.zm,sch.zm,zw,ac.zw,co.zw,gov.zw,mil.zw,org.zw".split(","),_publicSuffixesMap={};publicSuffixes.forEach((e=>{_publicSuffixesMap[e]=!0}));const publicSuffixesMap=_publicSuffixesMap;function getTopLevelDomain(e){const[t]=e.split(":"),n=t.split(".");if("localhost"===n[n.length-1]||n.length<2)return n[n.length-1];{const e=n[n.length-2]+"."+n[n.length-1];return n.length>2&&publicSuffixesMap[e]?n[n.length-3]+"."+e:e}}var __awaiter=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{c(r.next(e))}catch(e){i(e)}}function s(e){try{c(r.throw(e))}catch(e){i(e)}}function c(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,s)}c((r=r.apply(e,t||[])).next())}))};const defaultConfig={writeKey:null,host:null,debug:!1,fetch:null,echoEvents:!1,cookieDomain:void 0,runtime:void 0},parseQuery=e=>{if(!e)return{};let t=e.length>0&&"?"===e.charAt(0)?e.substring(1):e,n={},r=("?"===t[0]?t.substr(1):t).split("&");for(let e=0;e<r.length;e++){let t=r[e].split("=");n[decodeURIComponent(t[0])]=decodeURIComponent(t[1]||"")}return n};function utmToKey(e){const t=e.substring("utm_".length);return"campaign"===t?"name":t}function parseUtms(e){return Object.entries(e).filter((([e])=>0===e.indexOf("utm_"))).reduce(((e,[t,n])=>Object.assign(Object.assign({},e),{[utmToKey(t)]:n})),{})}function safeCall(e,t){try{return e()}catch(e){return t}}function restoreTraits(e){const t=e.getItem("__user_traits");return"string"==typeof t?safeCall((()=>JSON.parse(t)),{}):t}function getCookie(e){const t=`; ${document.cookie}`.split(`; ${e}=`);return 2===t.length?t.pop().split(";").shift():void 0}function getGa4Sessions(e){const t=Object.entries(e).filter((([e])=>e.startsWith("_ga_")));if(0!==t.length)return Object.fromEntries(t.map((([e,t])=>{if("string"!=typeof t)return null;const n=t.split(".");return n.length<3?null:[e.substring("_ga_".length),n[2]]})).filter((e=>null!==e)))}function removeCookie(e){document.cookie=e+"=;expires=Thu, 01 Jan 1970 00:00:01 GMT;"}function setCookie(e,t,{domain:n,secure:r}){document.cookie=e+"="+t+";domain="+n+";path=/;expires="+new Date((new Date).getTime()+15768e7).toUTCString()+";SameSite="+(r?"None":"Lax")+(r?";secure":"")}const defaultCookie2Key={__anon_id:"__eventn_id",__user_traits:"__eventn_id_usr",__user_id:"__eventn_uid"},cookieStorage=(e,t)=>({setItem(n,r){const o="object"==typeof r&&null!==r?encodeURIComponent(JSON.stringify(r)):r;setCookie(t[n]||n,o,{domain:e,secure:"https:"===window.location.protocol})},getItem(e){const n=getCookie(t[e]||e);if(void 0===n&&"__user_id"===e){const e=parse(getCookie("__eventn_id_usr"))||{};return e.internal_id||e.user_id||e.id||e.userId}return parse(n)},removeItem(e){removeCookie(t[e]||e)}});function windowRuntime(e){return{getCookie(e){const t=`; ${document.cookie}`.split(`; ${e}=`);return 2===t.length?t.pop().split(";").shift():void 0},getCookies(){const e={},t=`; ${document.cookie}`.matchAll(/(\w+)=([^;]+)/g);for(const n of t)e[n[1]]=n[2];return e},documentEncoding:()=>window.document.characterSet,timezoneOffset:()=>(new Date).getTimezoneOffset(),store:()=>cookieStorage(e.cookieDomain||getTopLevelDomain(window.location.hostname),defaultCookie2Key),language:()=>window.navigator.language,pageTitle:()=>window.document.title,pageUrl:()=>window.location.href,referrer:()=>window.document.referrer,screen:()=>({width:window.screen.width,height:window.screen.height,innerWidth:window.innerWidth,innerHeight:window.innerHeight,density:Math.floor(window.devicePixelRatio)}),userAgent:()=>window.navigator.userAgent}}const emptyRuntime=e=>({documentEncoding(){},timezoneOffset(){},getCookie(e){},getCookies:()=>({}),store(){const t={};return{setItem(n,r){e.debug&&console.log(`[JITSU EMPTY RUNTIME] Set storage item ${n}=${JSON.stringify(r)}`),t[n]=r},getItem(n){const r=t[n];return e.debug&&console.log(`[JITSU EMPTY RUNTIME] Get storage item ${n}=${JSON.stringify(r)}`),r},removeItem(n){e.debug&&console.log(`[JITSU EMPTY RUNTIME] Get storage item ${n}=${t[n]}`),delete t[n]}}},language(){},pageTitle(){},pageUrl(){},referrer(){},screen(){},userAgent(){}});function deepMerge(e,t){return"object"!=typeof t||null===t||"object"!=typeof e||null===e?t:Object.entries(t).reduce(((t,[n,r])=>(t[n]=deepMerge(e[n],r),t)),e)}function isInBrowser(){return"undefined"!=typeof document&&"undefined"!=typeof window}function adjustPayload(e,t,n){var r,o,i;const a=t.runtime||(isInBrowser()?windowRuntime(t):emptyRuntime(t)),s=a.pageUrl(),c=safeCall((()=>new URL(s)),void 0),u=c?parseQuery(c.search):{},l=e.properties||{},g=(null===(r=e.properties)||void 0===r?void 0:r.context)||{};null===(o=e.properties)||void 0===o||delete o.context;const d=a.referrer(),m={library:{name:name,version:version},userAgent:a.userAgent(),locale:a.language(),screen:a.screen(),traits:"identify"!=e.type&&"group"!=e.type?Object.assign({},restoreTraits(n)||{}):void 0,page:{path:l.path||c&&c.pathname,referrer:d,referring_domain:safeCall((()=>d&&new URL(d).hostname)),host:c&&c.host,search:l.search||c&&c.search,title:l.title||a.pageTitle(),url:l.url||s,encoding:l.encoding||a.documentEncoding()},clientIds:{fbc:a.getCookie("_fbc"),fbp:a.getCookie("_fbp"),ga4:{clientId:null===(i=a.getCookie("_ga"))||void 0===i?void 0:i.split(".").slice(-2).join("."),sessions:getGa4Sessions(a.getCookies())}},campaign:parseUtms(u)},f=Object.assign(Object.assign({},e),{timestamp:(new Date).toISOString(),sentAt:(new Date).toISOString(),messageId:randomId(l.path||c&&c.pathname),writeKey:maskWriteKey(t.writeKey),context:deepMerge(m,g)});return delete f.meta,delete f.options,f}function processDestinations(e,t,n,r,o){return __awaiter(this,void 0,void 0,(function*(){const i=[];for(const a of e){let e=[n];a.newEvents&&(e=a.newEvents.map((e=>"same"===e?n:e)));const s=Object.assign(Object.assign({},a.credentials),a.options);if("internal-plugin"===a.deviceOptions.type){const t=internalDestinationPlugins[a.deviceOptions.name];if(t)for(const n of e)try{i.push(t.handle(s,n))}catch(e){console.warn(`[JITSU] Error processing event with internal plugin '${a.deviceOptions.name}': ${null==e?void 0:e.message}`,e)}else console.warn(`[JITSU] Unknown internal plugin '${a.deviceOptions.name}' for destination '${a.id}'`)}else if("analytics-plugin"===a.deviceOptions.type){yield loadScript(a.deviceOptions.packageCdn);const n=window[a.deviceOptions.moduleVarName];if(n){let i;try{i=("function"==typeof n?n:n.init)(s)}catch(e){console.warn(`[JITSU] Error creating plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}': ${null==e?void 0:e.message}`,e)}try{r&&console.log(`[JITSU] Plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}' initialized with config:`,i.config),i.initialize({config:i.config,instance:o})}catch(e){console.warn(`[JITSU] Error initializing plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}': ${null==e?void 0:e.message}. Config: ${JSON.stringify(i.config)}`,e);continue}if(i[t])for(const n of e)try{i[t]({payload:n,config:i.config,instance:o})}catch(e){console.warn(`[JITSU] Error processing ${t}() with plugin '${a.deviceOptions.moduleVarName}@${a.deviceOptions.packageCdn}' for destination '${a.id}': ${null==e?void 0:e.message}`,e)}}else console.warn(`[JITSU] Broken plugin '${a.deviceOptions.packageCdn}' for destination '${a.id}' - it doesn't export '${a.deviceOptions.moduleVarName}' variable`)}}}))}function looksLikeCuid(e){return 25===e.length&&"c"===e.charAt(0)}function validateWriteKey(e){if(e){const[,t]=e.split(":",2);if(!t&&!looksLikeCuid(e))throw new Error(`Legacy write key detected - ${e}! This format doesn't work anymore, it should be 'key:secret'. Please download a new key from Jitsu UI`)}return e}function maskWriteKey(e){if(e){const[t,n]=e.split(":",2);return n?`${t}:***`:"***"}return e}function send(e,t,n,r,o){if(n.echoEvents)return void console.log(`[JITSU] sending '${e}' event:`,t);const i=`${n.host}/api/s/${e}`,a=n.fetch||globalThis.fetch;if(!a)throw new Error("Please specify fetch function in jitsu plugin initialization, fetch isn't available in global scope");const s=n.debug?{"X-Enable-Debug":"true"}:{},c=adjustPayload(t,n,o),u=n.writeKey?{"X-Write-Key":n.writeKey}:{};return a(i,{method:"POST",headers:Object.assign(Object.assign({"Content-Type":"application/json"},u),s),body:JSON.stringify(c)}).then((e=>(n.debug&&console.log(`[JITSU] ${i} replied ${e.status}. Original payload: `,JSON.stringify(c,null,2)),e.ok?e.text():Promise.reject(e.text())))).then((t=>{let o;try{o=JSON.parse(t)}catch(e){return Promise.reject(`Can't parse JSON: ${t}: ${null==e?void 0:e.message}`)}if(o.destinations)return n.debug&&console.log("[JITSU] Processing device destinations: ",JSON.stringify(o.destinations,null,2)),processDestinations(o.destinations,e,c,!!n.debug,r)})).catch((e=>{n.debug&&console.error(`Jitsu ${i} failed: `,e)}))}const jitsuAnalyticsPlugin=(e={})=>{const t={},n=e=>({setItem(n,r){t[n]=r,e.setItem(n,r)},getItem:n=>t[n]||e.getItem(n),removeItem(n){delete t[n],e.removeItem(n)}}),r=Object.assign(Object.assign({},defaultConfig),e);return{name:"jitsu",config:r,initialize:e=>{const{config:t}=e;if(t.debug&&console.debug("[JITSU] Initializing Jitsu plugin with config: ",JSON.stringify(t)),!t.host&&!t.echoEvents)throw new Error("Please specify host variable in jitsu plugin initialization, or set echoEvents to true");validateWriteKey(t.writeKey)},page:e=>{const{payload:t,config:r,instance:o}=e;return send("page",t,r,o,n(o.storage))},track:e=>{const{payload:t,config:r,instance:o}=e;return send("track",t,r,o,n(o.storage))},identify:e=>{const{payload:r,config:o,instance:i}=e;return t.__user_traits=r.traits,send("identify",r,o,i,n(i.storage))},reset:e=>{Object.keys(t).forEach((e=>delete t[e]))},methods:{group(e,t,o,i){const a=this.instance,s=a.user(),c=(null==o?void 0:o.userId)||(null==s?void 0:s.userId),u=(null==o?void 0:o.anonymousId)||(null==s?void 0:s.anonymousId);return send("group",Object.assign(Object.assign({type:"group",groupId:e,traits:t},u?{anonymousId:u}:{}),c?{userId:c}:{}),r,a,n(a.storage))}}}};function getSeed(){var e;const t=Date.now()%2147483647;return isInBrowser()&&(null===(e=null===window||void 0===window?void 0:window.performance)||void 0===e?void 0:e.now())||t}function randomId(e=""){const t=Date.now();return(Math.random()*t*hash(null!=e?e:"",getSeed())%Number.MAX_SAFE_INTEGER).toString(36)+(Math.random()*t*hash(null!=e?e:"",getSeed())%Number.MAX_SAFE_INTEGER).toString(36)}function hash(e,t=0){let n=3735928559^t,r=1103547991^t;for(let t,o=0;o<e.length;o++)t=e.charCodeAt(o),n=Math.imul(n^t,2654435761),r=Math.imul(r^t,1597334677);return n=Math.imul(n^n>>>16,2246822507)^Math.imul(r^r>>>13,3266489909),r=Math.imul(r^r>>>16,2246822507)^Math.imul(n^n>>>13,3266489909),4294967296*(2097151&r)+(n>>>0)}function parse(e){let t=e;0===(null==e?void 0:e.indexOf("%7B%22"))&&(t=decodeURIComponent(e));try{if(t=JSON.parse(t),"true"===t)return!0;if("false"===t)return!1;if("object"==typeof t)return t;parseFloat(t)===t&&(t=parseFloat(t))}catch(e){}if(null!==t&&""!==t)return t}function createUnderlyingAnalyticsInstance(e,t,n=[]){const r=analyticsLib({app:"test",debug:!!e.debug,storage:t.store(),plugins:[jitsuAnalyticsPlugin(e),...n]}),o=r.page;return r.page=(...e)=>2===e.length&&"string"==typeof e[0]&&"object"==typeof e[1]?o(Object.assign({name:e[0]},e[1])):o(...e),Object.assign(Object.assign({},r),{group(e,t,n,o){for(const i of Object.values(r.plugins))i.group&&i.group(e,t,n,o);return Promise.resolve({})}})}function jitsuAnalytics(e){const t=isInBrowser();return createUnderlyingAnalyticsInstance(e,e.runtime||(t?windowRuntime(e):emptyRuntime(e)))}function snakeToCamel(e){return e.replace(/([-_][a-z])/gi,(e=>e.toUpperCase().replace("-","").replace("_","")))}const booleanParser=e=>"true"===e||"1"===e||"yes"===e,parsers={debug:booleanParser,initOnly:booleanParser};function getParser(e){return parsers[e]||(e=>e)}function getScriptAttributes(e){return e.getAttributeNames().filter((e=>0===e.indexOf("data-"))).map((e=>e.substring("data-".length))).reduce(((t,n)=>Object.assign(Object.assign({},t),{[snakeToCamel(n)]:getParser(snakeToCamel(n))(e.getAttribute(`data-${n}`))})),{})}!function(){const e=function(){const e=window.document.currentScript;if(!e)throw new Error("Can't find script element");const t=new URL(e.src).origin;return Object.assign(Object.assign(Object.assign({},(null===window||void 0===window?void 0:window.jitsuConfig)||{}),getScriptAttributes(e)),{host:t})}(),t=e.namespace||"jitsu",n=[];window[t]&&(Array.isArray(window[t])?(e.debug&&console.log(`Initializing Jitsu with prior events queue size of ${window[t].length}`,window[t]),n.push(...window[t])):console.warn("Attempted to initialize Jitsu twice. Returning the existing instance")),e.debug&&console.log("Jitsu options: ",JSON.stringify(e));const r=jitsuAnalytics(e);for(const[t,o]of n){e.debug&&console.log(`Processing event ${t} from Jitsu queue on`,o);try{r[t](...o)}catch(e){console.warn(`Error processing event ${t} from Jitsu queue on`,o,e)}}if(e.onload){const t=window[e.onload];t||console.warn(`onload function ${e.onload} is not found in window`),"function"==typeof t?t(r):console.warn(`onload function ${e.onload} is not callable: ${typeof t}`)}window[t]=r;const o=window[t+"Q"]||[];e.debug&&console.log(`Jitsu callback queue size: ${o.length}`,o),o.forEach((e=>{try{e(r)}catch(e){console.warn("Error processing callback from Jitsu queue",e)}})),e.initOnly||r.page()}()})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jitsu/js",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.7.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"author": "Jitsu Dev Team <dev@jitsu.com>",
|
|
6
6
|
"main": "dist/jitsu.cjs.js",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"license": "MIT",
|
|
13
13
|
"private": false,
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"@playwright/test": "1.
|
|
15
|
+
"@playwright/test": "1.39.0",
|
|
16
16
|
"@rollup/plugin-commonjs": "^23.0.2",
|
|
17
17
|
"@rollup/plugin-json": "^5.0.1",
|
|
18
18
|
"@rollup/plugin-multi-entry": "^6.0.0",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"rollup": "^3.2.5",
|
|
35
35
|
"ts-jest": "29.0.5",
|
|
36
36
|
"typescript": "^4.9.5",
|
|
37
|
-
"@jitsu/protocols": "1.
|
|
37
|
+
"@jitsu/protocols": "1.7.1"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"analytics": "^0.8.1"
|
package/src/analytics-plugin.ts
CHANGED
|
@@ -77,6 +77,27 @@ function getCookie(name: string) {
|
|
|
77
77
|
return parts.length === 2 ? parts.pop().split(";").shift() : undefined;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
function getGa4Sessions(allCookies: Record<string, string>): Record<string, string> | undefined {
|
|
81
|
+
const gaCookies = Object.entries(allCookies).filter(([key]) => key.startsWith("_ga_"));
|
|
82
|
+
if (gaCookies.length === 0) {
|
|
83
|
+
return undefined;
|
|
84
|
+
}
|
|
85
|
+
return Object.fromEntries(
|
|
86
|
+
gaCookies
|
|
87
|
+
.map(([key, value]) => {
|
|
88
|
+
if (typeof value !== "string") {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
const parts = value.split(".");
|
|
92
|
+
if (parts.length < 3) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
return [key.substring("_ga_".length), parts[2]];
|
|
96
|
+
})
|
|
97
|
+
.filter(v => v !== null)
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
|
|
80
101
|
function removeCookie(name: string) {
|
|
81
102
|
document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:01 GMT;";
|
|
82
103
|
}
|
|
@@ -130,6 +151,20 @@ const cookieStorage: StorageFactory = (cookieDomain, key2cookie) => {
|
|
|
130
151
|
|
|
131
152
|
export function windowRuntime(opts: JitsuOptions): RuntimeFacade {
|
|
132
153
|
return {
|
|
154
|
+
getCookie(name: string): string | undefined {
|
|
155
|
+
const value = `; ${document.cookie}`;
|
|
156
|
+
const parts = value.split(`; ${name}=`);
|
|
157
|
+
return parts.length === 2 ? parts.pop().split(";").shift() : undefined;
|
|
158
|
+
},
|
|
159
|
+
getCookies(): Record<string, string> {
|
|
160
|
+
const value = `; ${document.cookie}`;
|
|
161
|
+
const cookies: Record<string, string> = {};
|
|
162
|
+
const matches = value.matchAll(/(\w+)=([^;]+)/g);
|
|
163
|
+
for (const match of matches) {
|
|
164
|
+
cookies[match[1]] = match[2];
|
|
165
|
+
}
|
|
166
|
+
return cookies;
|
|
167
|
+
},
|
|
133
168
|
documentEncoding(): string | undefined {
|
|
134
169
|
return window.document.characterSet;
|
|
135
170
|
},
|
|
@@ -174,6 +209,12 @@ export const emptyRuntime = (config: JitsuOptions): RuntimeFacade => ({
|
|
|
174
209
|
timezoneOffset(): number | undefined {
|
|
175
210
|
return undefined;
|
|
176
211
|
},
|
|
212
|
+
getCookie(name: string): string | undefined {
|
|
213
|
+
return undefined;
|
|
214
|
+
},
|
|
215
|
+
getCookies(): Record<string, string> {
|
|
216
|
+
return {};
|
|
217
|
+
},
|
|
177
218
|
|
|
178
219
|
store(): PersistentStorage {
|
|
179
220
|
const storage = {};
|
|
@@ -265,8 +306,12 @@ function adjustPayload(payload: any, config: JitsuOptions, storage: PersistentSt
|
|
|
265
306
|
encoding: properties.encoding || runtime.documentEncoding(),
|
|
266
307
|
},
|
|
267
308
|
clientIds: {
|
|
268
|
-
fbc: getCookie("_fbc"),
|
|
269
|
-
fbp: getCookie("_fbp"),
|
|
309
|
+
fbc: runtime.getCookie("_fbc"),
|
|
310
|
+
fbp: runtime.getCookie("_fbp"),
|
|
311
|
+
ga4: {
|
|
312
|
+
clientId: runtime.getCookie("_ga")?.split(".").slice(-2).join("."), //last 2 parts of GA cookie
|
|
313
|
+
sessions: getGa4Sessions(runtime.getCookies()),
|
|
314
|
+
},
|
|
270
315
|
},
|
|
271
316
|
campaign: parseUtms(query),
|
|
272
317
|
};
|
|
@@ -288,6 +333,7 @@ export type DestinationDescriptor = {
|
|
|
288
333
|
destinationType: string;
|
|
289
334
|
credentials: any;
|
|
290
335
|
options: any;
|
|
336
|
+
newEvents?: any[];
|
|
291
337
|
deviceOptions: DeviceOptions;
|
|
292
338
|
};
|
|
293
339
|
export type AnalyticsPluginDescriptor = {
|
|
@@ -306,24 +352,31 @@ export type DeviceOptions = AnalyticsPluginDescriptor | InternalPluginDescriptor
|
|
|
306
352
|
async function processDestinations(
|
|
307
353
|
destinations: DestinationDescriptor[],
|
|
308
354
|
method: string,
|
|
309
|
-
|
|
355
|
+
originalEvent: AnalyticsClientEvent,
|
|
310
356
|
debug: boolean,
|
|
311
357
|
analyticsInstance: AnalyticsInstance
|
|
312
358
|
) {
|
|
313
359
|
const promises: Promise<any>[] = [];
|
|
360
|
+
|
|
314
361
|
for (const destination of destinations) {
|
|
362
|
+
let newEvents = [originalEvent];
|
|
363
|
+
if (destination.newEvents) {
|
|
364
|
+
newEvents = destination.newEvents.map(e => (e === "same" ? originalEvent : e));
|
|
365
|
+
}
|
|
315
366
|
const credentials = { ...destination.credentials, ...destination.options };
|
|
316
367
|
|
|
317
368
|
if (destination.deviceOptions.type === "internal-plugin") {
|
|
318
369
|
const plugin = internalDestinationPlugins[destination.deviceOptions.name];
|
|
319
370
|
if (plugin) {
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
371
|
+
for (const event of newEvents) {
|
|
372
|
+
try {
|
|
373
|
+
promises.push(plugin.handle(credentials, event));
|
|
374
|
+
} catch (e) {
|
|
375
|
+
console.warn(
|
|
376
|
+
`[JITSU] Error processing event with internal plugin '${destination.deviceOptions.name}': ${e?.message}`,
|
|
377
|
+
e
|
|
378
|
+
);
|
|
379
|
+
}
|
|
327
380
|
}
|
|
328
381
|
} else {
|
|
329
382
|
console.warn(
|
|
@@ -366,13 +419,19 @@ async function processDestinations(
|
|
|
366
419
|
}
|
|
367
420
|
|
|
368
421
|
if (pluginInstance[method]) {
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
422
|
+
for (const event of newEvents) {
|
|
423
|
+
try {
|
|
424
|
+
pluginInstance[method]({
|
|
425
|
+
payload: event,
|
|
426
|
+
config: pluginInstance.config,
|
|
427
|
+
instance: analyticsInstance,
|
|
428
|
+
});
|
|
429
|
+
} catch (e) {
|
|
430
|
+
console.warn(
|
|
431
|
+
`[JITSU] Error processing ${method}() with plugin '${destination.deviceOptions.moduleVarName}@${destination.deviceOptions.packageCdn}' for destination '${destination.id}': ${e?.message}`,
|
|
432
|
+
e
|
|
433
|
+
);
|
|
434
|
+
}
|
|
376
435
|
}
|
|
377
436
|
}
|
|
378
437
|
}
|
package/src/browser.ts
CHANGED
|
@@ -53,14 +53,35 @@ function getScriptAttributes(scriptElement: HTMLScriptElement) {
|
|
|
53
53
|
|
|
54
54
|
const options = readJitsuOptions();
|
|
55
55
|
const JITSU_V2_ID: string = options.namespace || "jitsu";
|
|
56
|
-
|
|
56
|
+
const queue = [];
|
|
57
57
|
if (window[JITSU_V2_ID]) {
|
|
58
|
-
|
|
58
|
+
if (Array.isArray(window[JITSU_V2_ID])) {
|
|
59
|
+
//processing queue of events
|
|
60
|
+
if (options.debug) {
|
|
61
|
+
console.log(
|
|
62
|
+
`Initializing Jitsu with prior events queue size of ${window[JITSU_V2_ID].length}`,
|
|
63
|
+
window[JITSU_V2_ID]
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
queue.push(...window[JITSU_V2_ID]);
|
|
67
|
+
} else {
|
|
68
|
+
console.warn("Attempted to initialize Jitsu twice. Returning the existing instance");
|
|
69
|
+
}
|
|
59
70
|
}
|
|
60
71
|
if (options.debug) {
|
|
61
72
|
console.log(`Jitsu options: `, JSON.stringify(options));
|
|
62
73
|
}
|
|
63
74
|
const jitsu = jitsuAnalytics(options);
|
|
75
|
+
for (const [method, args] of queue) {
|
|
76
|
+
if (options.debug) {
|
|
77
|
+
console.log(`Processing event ${method} from Jitsu queue on`, args);
|
|
78
|
+
}
|
|
79
|
+
try {
|
|
80
|
+
jitsu[method](...args);
|
|
81
|
+
} catch (e: any) {
|
|
82
|
+
console.warn(`Error processing event ${method} from Jitsu queue on`, args, e);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
64
85
|
|
|
65
86
|
if (options.onload) {
|
|
66
87
|
const onloadFunction = window[options.onload] as any;
|
|
@@ -75,6 +96,18 @@ function getScriptAttributes(scriptElement: HTMLScriptElement) {
|
|
|
75
96
|
}
|
|
76
97
|
window[JITSU_V2_ID] = jitsu;
|
|
77
98
|
|
|
99
|
+
//new callback based queue
|
|
100
|
+
const callbackQueue = window[JITSU_V2_ID + "Q"] || [];
|
|
101
|
+
if (options.debug) {
|
|
102
|
+
console.log(`Jitsu callback queue size: ${callbackQueue.length}`, callbackQueue);
|
|
103
|
+
}
|
|
104
|
+
callbackQueue.forEach((callback: any) => {
|
|
105
|
+
try {
|
|
106
|
+
callback(jitsu);
|
|
107
|
+
} catch (e: any) {
|
|
108
|
+
console.warn(`Error processing callback from Jitsu queue`, e);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
78
111
|
if (!options.initOnly) {
|
|
79
112
|
jitsu.page();
|
|
80
113
|
}
|