UNPKG

@analytics/core

Version:

Lightweight analytics library for tracking events, page views, & identifying users. Works with any third party analytics provider via an extendable plugin system.

3 lines (2 loc) 28.6 kB
var _analytics=function(e){function n(){return n=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r])}return e},n.apply(this,arguments)}var t,r,i=(t=function(e,n){e.exports=function(e,n,t,r,i){for(n=n.split?n.split("."):n,r=0;r<n.length;r++)e=e?e[n[r]]:i;return e===i?t:e}},t(r={exports:{}}),r.exports),a=i,o="object";"undefined"==typeof process||process;var u="undefined"!=typeof document;function c(e,n){return n.charAt(0)[e]()+n.slice(1)}"undefined"!=typeof Deno&&Deno,u&&"nodejs"===window.name||"undefined"!=typeof navigator&&void 0!==navigator.userAgent&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom"));var s=c.bind(null,"toUpperCase"),l=c.bind(null,"toLowerCase");function f(e,n){void 0===n&&(n=!0);var t=function(e){return v(e)?s("null"):"object"==typeof e?function(e){return p(e.constructor)?e.constructor.name:null}(e):Object.prototype.toString.call(e).slice(8,-1)}(e);return n?l(t):t}function d(e,n){return typeof n===e}var p=d.bind(null,"function"),m=d.bind(null,"string");d.bind(null,"undefined");var g=d.bind(null,"boolean");function v(e){return null===e}function h(e){if(!function(e){return e&&("object"==typeof e||null!==e)}(e))return!1;for(var n=e;null!==Object.getPrototypeOf(n);)n=Object.getPrototypeOf(n);return Object.getPrototypeOf(e)===n}function y(e,n){if("object"!=typeof n||v(n))return!1;if(n instanceof e)return!0;var t=f(new e(""));if(function(e){return e instanceof Error||m(e.message)&&e.constructor&&function(e){return"number"===f(e)&&!isNaN(e)}(e.constructor.stackTraceLimit)}(n))for(;n;){if(f(n)===t)return!0;n=Object.getPrototypeOf(n)}return!1}function b(e,n){var t=e instanceof Element||e instanceof HTMLDocument;return t&&n?function(e,n){return void 0===n&&(n=""),e&&e.nodeName===n.toUpperCase()}(e,n):t}function w(e){var n=[].slice.call(arguments,1);return function(){return e.apply(void 0,[].slice.call(arguments).concat(n))}}function I(e){try{return decodeURIComponent(e.replace(/\+/g," "))}catch(e){return null}}function E(e,n,t){for(var r=n.length-1,i=0;i<r;++i){var a=n[i];if("__proto__"===a||"constructor"===a)break;a in e||(e[a]={}),e=e[a]}e[n[r]]=t}function P(){for(var e="",n=0,t=4294967295*Math.random()|0;n++<36;){var r="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx"[n-1],i=15&t;e+="-"==r||"4"==r?r:("x"==r?i:3&i|8).toString(16),t=n%8==0?4294967295*Math.random()|0:t>>4}return e}d.bind(null,"symbol"),y.bind(null,TypeError),y.bind(null,SyntaxError),w(b,"form"),w(b,"button"),w(b,"input"),w(b,"select");var S="__global__",x=typeof self===o&&self.self===self&&self||typeof global===o&&global.global===global&&global||void 0;function _(e){return x[S][e]}function O(e,n){return x[S][e]=n}function N(e){delete x[S][e]}x[S]||(x[S]={});var j="function",A="undefined",k="@@redux/",T=k+"INIT",M=k+Math.random().toString(36),z=/* #__PURE__ */function(){return typeof Symbol===j&&Symbol.observable||"@@observable"}(),L=" != "+j;function U(e,n,t){var r;if(typeof n===j&&typeof t===A&&(t=n,n=void 0),typeof t!==A){if(typeof t!==j)throw new Error("enhancer"+L);return t(U)(e,n)}if(typeof e!==j)throw new Error("reducer"+L);var i=e,a=n,o=[],u=o,c=!1;function s(){u===o&&(u=o.slice())}function l(){return a}function f(e){if(typeof e!==j)throw new Error("Listener"+L);var n=!0;return s(),u.push(e),function(){if(n){n=!1,s();var t=u.indexOf(e);u.splice(t,1)}}}function d(e){if(!h(e))throw new Error("Act != obj");if(typeof e.type===A)throw new Error("ActType "+A);if(c)throw new Error("Dispatch in reducer");try{c=!0,a=i(a,e)}finally{c=!1}for(var n=o=u,t=0;t<n.length;t++)(0,n[t])();return e}return d({type:T}),(r={dispatch:d,subscribe:f,getState:l,replaceReducer:function(e){if(typeof e!==j)throw new Error("next reducer"+L);i=e,d({type:T})}})[z]=function(){var e,n=f;return(e={subscribe:function(e){if("object"!=typeof e)throw new TypeError("Observer != obj");function t(){e.next&&e.next(l())}return t(),{unsubscribe:n(t)}}})[z]=function(){return this},e},r}function q(e,n){var t=n&&n.type;return"action "+(t&&t.toString()||"?")+"reducer "+e+" returns "+A}function C(){var e=[].slice.call(arguments);return 0===e.length?function(e){return e}:1===e.length?e[0]:e.reduce(function(e,n){return function(){return e(n.apply(void 0,[].slice.call(arguments)))}})}function D(){var e=arguments;return function(t){return function(r,i,a){var o,u=t(r,i,a),c=u.dispatch,s={getState:u.getState,dispatch:function(e){return c(e)}};return o=[].slice.call(e).map(function(e){return e(s)}),n({},u,{dispatch:c=C.apply(void 0,o)(u.dispatch)})}}}var V="__anon_id",R="__user_id",$="__user_traits",B={__proto__:null,ANON_ID:V,USER_ID:R,USER_TRAITS:$},X="analytics",J="userId",W="anonymousId",H=["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"],F=["name","EVENTS","config","loaded"],Z=H.reduce(function(e,n){return e[n]=n,e},{registerPluginType:function(e){return"registerPlugin:"+e},pluginReadyType:function(e){return"ready:"+e}}),G=/^utm_/,K=/^an_prop_/,Q=/^an_trait_/;function Y(e){var t=e.storage.setItem;return function(r){return function(i){return function(a){if(a.type===Z.bootstrap){var o=a.params,u=a.user,c=a.persistedUser,s=a.initialUser,l=c.userId===u.userId;c.anonymousId!==u.anonymousId&&t(V,u.anonymousId),l||t(R,u.userId),s.traits&&t($,n({},l&&c.traits?c.traits:{},s.traits));var f=Object.keys(a.params);if(f.length){var d=o.an_uid,p=o.an_event,m=f.reduce(function(e,n){if(n.match(G)||n.match(/^(d|g)clid/)){var t=n.replace(G,"");e.campaign["campaign"===t?"name":t]=o[n]}return n.match(K)&&(e.props[n.replace(K,"")]=o[n]),n.match(Q)&&(e.traits[n.replace(Q,"")]=o[n]),e},{campaign:{},props:{},traits:{}});r.dispatch(n({type:Z.params,raw:o},m,d?{userId:d}:{})),d&&setTimeout(function(){return e.identify(d,m.traits)},0),p&&setTimeout(function(){return e.track(p,m.props)},0),Object.keys(m.campaign).length&&r.dispatch({type:Z.campaign,campaign:m.campaign})}}return i(a)}}}}function ee(e){return function(t,r){if(void 0===t&&(t={}),void 0===r&&(r={}),r.type===Z.setItemEnd){if(r.key===V)return n({},t,{anonymousId:r.value});if(r.key===R)return n({},t,{userId:r.value})}switch(r.type){case Z.identify:return Object.assign({},t,{userId:r.userId,traits:n({},t.traits,r.traits)});case Z.reset:return[R,V,$].forEach(function(n){e.removeItem(n)}),Object.assign({},t,{userId:null,anonymousId:null,traits:{}});default:return t}}}function ne(e){return{userId:e.getItem(R),anonymousId:e.getItem(V),traits:e.getItem($)}}var te=function(e){return"__TEMP__"+e};function re(e){var t=e.storage,r=t.setItem,i=t.removeItem,a=t.getItem;return function(e){return function(t){return function(o){var u=o.userId,c=o.traits,s=o.options;if(o.type===Z.reset&&([R,$,V].forEach(function(e){i(e)}),[J,W,"traits"].forEach(function(e){N(te(e))})),o.type===Z.identify){a(V)||r(V,P());var l=a(R),f=a($)||{};l&&l!==u&&e.dispatch({type:Z.userIdChanged,old:{userId:l,traits:f},new:{userId:u,traits:c},options:s}),u&&r(R,u),c&&r($,n({},f,c))}return t(o)}}}}var ie={};function ae(e,n){ie[e]&&p(ie[e])&&(ie[e](n),delete ie[e])}function oe(e,t,r){return new Promise(function(i,a){return t()?i(e):r<1?a(n({},e,{queue:!0})):new Promise(function(e){return setTimeout(e,10)}).then(function(n){return oe(e,t,r-10).then(i,a)})})}function ue(e){return{abort:e}}function ce(e,t,r){var i={},a=t(),o=e.getState(),u=o.plugins,c=o.queue,s=o.user;if(!o.context.offline&&c&&c.actions&&c.actions.length){var l=c.actions.reduce(function(e,n,t){return u[n.plugin].loaded?(e.process.push(n),e.processIndex.push(t)):(e.requeue.push(n),e.requeueIndex.push(t)),e},{processIndex:[],process:[],requeue:[],requeueIndex:[]});if(l.processIndex&&l.processIndex.length){l.processIndex.forEach(function(t){var o=c.actions[t],l=o.plugin,f=o.payload.type,d=a[l][f];if(d&&p(d)){var m,g=function(e,n){return void 0===e&&(e={}),void 0===n&&(n={}),[J,W].reduce(function(t,r){return e.hasOwnProperty(r)&&n[r]&&n[r]!==e[r]&&(t[r]=n[r]),t},e)}(o.payload,s),v=i[g.meta.rid];if(!v&&(m=d({payload:g,config:u[l].config,instance:r,abort:ue}))&&h(m)&&m.abort)return void(i[g.meta.rid]=!0);if(!v){var y=f+":"+l;e.dispatch(n({},g,{type:y,_:{called:y,from:"queueDrain"}}))}}});var f=c.actions.filter(function(e,n){return!~l.processIndex.indexOf(n)});c.actions=f}}}var se=function(e){var t=e.data,r=e.action,i=e.instance,a=e.state,o=e.allPlugins,u=e.allMatches,c=e.store,s=e.EVENTS;try{var l=a.plugins,f=a.context,d=r.type,m=d.match(le),g=t.exact.map(function(e){return e.pluginName});m&&(g=u.during.map(function(e){return e.pluginName}));var v=function(e,t){return function(r,i,a){var o=i.config,u=i.name,c=u+"."+r.type;a&&(c=a.event);var s=r.type.match(le)?function(e,t,r,i,a){return function(o,u){var c=i?i.name:e,s=u&&be(u)?u:r;if(i&&(!(s=u&&be(u)?u:[e]).includes(e)||1!==s.length))throw new Error("Method "+t+" can only abort "+e+" plugin. "+JSON.stringify(s)+" input valid");return n({},a,{abort:{reason:o,plugins:s,caller:t,_:c}})}}(u,c,t,a,r):function(e,n){return function(){throw new Error(e.type+" action not cancellable. Remove abort in "+n)}}(r,c);return{payload:Ee(r),instance:e,config:o||{},abort:s}}}(i,g),y=t.exact.reduce(function(e,n){var t=n.pluginName,r=n.methodName,i=!1;return r.match(/^initialize/)||r.match(/^reset/)||(i=!l[t].loaded),f.offline&&r.match(/^(page|track|identify)/)&&(i=!0),e[""+t]=i,e},{});return Promise.resolve(t.exact.reduce(function(e,a,u){try{var c=a.pluginName;return Promise.resolve(e).then(function(e){function a(){return Promise.resolve(e)}var u=function(){if(t.namespaced&&t.namespaced[c])return Promise.resolve(t.namespaced[c].reduce(function(e,t,r){try{return Promise.resolve(e).then(function(e){return t.method&&p(t.method)?(function(e,n){var t=Ie(e);if(t&&t.name===n){var r=Ie(t.method);throw new Error([n+" plugin is calling method "+e,"Plugins cant call self","Use "+t.method+" "+(r?"or "+r.method:"")+" in "+n+" plugin insteadof "+e].join("\n"))}}(t.methodName,t.pluginName),Promise.resolve(t.method({payload:e,instance:i,abort:(r=e,a=c,u=t.pluginName,function(e,t){return n({},r,{abort:{reason:e,plugins:t||[a],caller:d,from:u||a}})}),config:me(t.pluginName,l,o),plugins:l})).then(function(t){var r=h(t)?t:{};return Promise.resolve(n({},e,r))})):e;var r,a,u})}catch(e){return Promise.reject(e)}},Promise.resolve(r))).then(function(n){e[c]=n});e[c]=r}();return u&&u.then?u.then(a):a()})}catch(e){return Promise.reject(e)}},Promise.resolve({}))).then(function(e){return Promise.resolve(t.exact.reduce(function(r,a,u){try{var s=t.exact.length===u+1,f=a.pluginName,p=o[f];return Promise.resolve(r).then(function(t){var r=e[f]?e[f]:{};if(m&&(r=t),he(r,f))return pe({data:r,method:d,instance:i,pluginName:f,store:c}),Promise.resolve(t);if(he(t,f))return s&&pe({data:t,method:d,instance:i,store:c}),Promise.resolve(t);if(y.hasOwnProperty(f)&&!0===y[f])return c.dispatch({type:"queue",plugin:f,payload:r,_:{called:"queue",from:"queueMechanism"}}),Promise.resolve(t);var a=v(e[f],o[f]);return Promise.resolve(p[d]({abort:a.abort,payload:r,instance:i,config:me(f,l,o),plugins:l})).then(function(a){var o=h(a)?a:{},u=n({},t,o),s=e[f];if(he(s,f))pe({data:s,method:d,instance:i,pluginName:f,store:c});else{var l=d+":"+f;(l.match(/:/g)||[]).length<2&&!d.match(fe)&&!d.match(de)&&i.dispatch(n({},m?u:r,{type:l,_:{called:l,from:"submethod"}}))}return Promise.resolve(u)})})}catch(e){return Promise.reject(e)}},Promise.resolve(r))).then(function(e){if(!(d.match(le)||d.match(/^registerPlugin/)||d.match(de)||d.match(fe)||d.match(/^params/)||d.match(/^userIdChanged/))){if(s.plugins.includes(d),e._&&e._.originalAction===d)return e;var r=n({},e,{_:{originalAction:e.type,called:e.type,from:"engineEnd"}});ye(e,t.exact.length)&&!d.match(/End$/)&&(r=n({},r,{type:e.type+"Aborted"})),c.dispatch(r)}return e})})}catch(e){return Promise.reject(e)}},le=/Start$/,fe=/^bootstrap/,de=/^ready/;function pe(e){var t=e.pluginName,r=e.method+"Aborted"+(t?":"+t:"");e.store.dispatch(n({},e.data,{type:r,_:{called:r,from:"abort"}}))}function me(e,n,t){var r=n[e]||t[e];return r&&r.config?r.config:{}}function ge(e,n){return n.reduce(function(n,t){return t[e]?n.concat({methodName:e,pluginName:t.name,method:t[e]}):n},[])}function ve(e,n){var t=e.replace(le,""),r=n?":"+n:"";return[""+e+r,""+t+r,t+"End"+r]}function he(e,n){var t=e.abort;return!!t&&(!0===t||we(t,n)||t&&we(t.plugins,n))}function ye(e,n){var t=e.abort;if(!t)return!1;if(!0===t||m(t))return!0;var r=t.plugins;return be(t)&&t.length===n||be(r)&&r.length===n}function be(e){return Array.isArray(e)}function we(e,n){return!(!e||!be(e))&&e.includes(n)}function Ie(e){var n=e.match(/(.*):(.*)/);return!!n&&{method:n[1],name:n[2]}}function Ee(e){return Object.keys(e).reduce(function(n,t){return"type"===t||(n[t]=h(e[t])?Object.assign({},e[t]):e[t]),n},{})}function Pe(e,t,r){var i={};return function(a){return function(o){return function(u){try{var c,s=function(e){return c?e:o(d)},l=u.type,f=u.plugins,d=u;if(u.abort)return Promise.resolve(o(u));if(l===Z.enablePlugin&&a.dispatch({type:Z.initializeStart,plugins:f,disabled:[],fromEnable:!0,meta:u.meta}),l===Z.disablePlugin&&setTimeout(function(){return ae(u.meta.rid,{payload:u})},0),l===Z.initializeEnd){var m=t(),v=Object.keys(m),h=v.filter(function(e){return f.includes(e)}).map(function(e){return m[e]}),y=[],b=[],w=u.disabled,I=h.map(function(e){var n=e.loaded,t=e.name,r=e.config;return oe(e,function(){return n({config:r})},1e4).then(function(n){return i[t]||(a.dispatch({type:Z.pluginReadyType(t),name:t,events:Object.keys(e).filter(function(e){return!F.includes(e)})}),i[t]=!0),y=y.concat(t),e}).catch(function(e){if(e instanceof Error)throw new Error(e);return b=b.concat(e.name),e})});Promise.all(I).then(function(e){var t={plugins:y,failed:b,disabled:w};setTimeout(function(){v.length===I.length+w.length&&a.dispatch(n({},{type:Z.ready},t))},0)})}var E=function(){if(l!==Z.bootstrap)return/^ready:([^:]*)$/.test(l)&&setTimeout(function(){return ce(a,t,e)},0),Promise.resolve(function(e,t,r,i,a){try{var o=p(t)?t():t,u=e.type,c=u.replace(le,"");if(e._&&e._.called)return Promise.resolve(e);var s=r.getState(),l=(m=o,void 0===(v=s.plugins)&&(v={}),void 0===(h=e.options)&&(h={}),Object.keys(m).filter(function(e){var n=h.plugins||{};return g(n[e])?n[e]:!1!==n.all&&(!v[e]||!1!==v[e].enabled)}).map(function(e){return m[e]}));u===Z.initializeStart&&e.fromEnable&&(l=Object.keys(s.plugins).filter(function(n){var t=s.plugins[n];return e.plugins.includes(n)&&!t.initialized}).map(function(e){return o[e]}));var f=l.map(function(e){return e.name}),d=function(e,n,t){var r=ve(e).map(function(e){return ge(e,n)});return n.reduce(function(t,r){var i=r.name,a=ve(e,i).map(function(e){return ge(e,n)}),o=a[0],u=a[1],c=a[2];return o.length&&(t.beforeNS[i]=o),u.length&&(t.duringNS[i]=u),c.length&&(t.afterNS[i]=c),t},{before:r[0],beforeNS:{},during:r[1],duringNS:{},after:r[2],afterNS:{}})}(u,l);return Promise.resolve(se({action:e,data:{exact:d.before,namespaced:d.beforeNS},state:s,allPlugins:o,allMatches:d,instance:r,store:i,EVENTS:a})).then(function(e){function t(){var t=function(){if(u.match(le))return Promise.resolve(se({action:n({},l,{type:c+"End"}),data:{exact:d.after,namespaced:d.afterNS},state:s,allPlugins:o,allMatches:d,instance:r,store:i,EVENTS:a})).then(function(e){e.meta&&e.meta.hasCallback&&ae(e.meta.rid,{payload:e})})}();return t&&t.then?t.then(function(){return e}):e}if(ye(e,f.length))return e;var l,p=function(){if(u!==c)return Promise.resolve(se({action:n({},e,{type:c}),data:{exact:d.during,namespaced:d.duringNS},state:s,allPlugins:o,allMatches:d,instance:r,store:i,EVENTS:a})).then(function(e){l=e});l=e}();return p&&p.then?p.then(t):t()})}catch(e){return Promise.reject(e)}var m,v,h}(u,t,e,a,r)).then(function(e){return c=1,o(e)})}();return Promise.resolve(E&&E.then?E.then(s):s(E))}catch(e){return Promise.reject(e)}}}}}function Se(e){return function(n){return function(n){return function(t){var r=t.type,i=t.key,a=t.value,o=t.options;if(r===Z.setItem||r===Z.removeItem){if(t.abort)return n(t);r===Z.setItem?e.setItem(i,a,o):e.removeItem(i,o)}return n(t)}}}}var xe=function(){var e=this;this.before=[],this.after=[],this.addMiddleware=function(n,t){e[t]=e[t].concat(n)},this.removeMiddleware=function(n,t){var r=e[t].findIndex(function(e){return e===n});-1!==r&&(e[t]=[].concat(e[t].slice(0,r),e[t].slice(r+1)))},this.dynamicMiddlewares=function(n){return function(t){return function(r){return function(i){var a={getState:t.getState,dispatch:function(e){return t.dispatch(e)}},o=e[n].map(function(e){return e(a)});return C.apply(void 0,o)(r)(i)}}}}};function _e(e){return function(t,r){void 0===t&&(t={});var i={};if("initialize:aborted"===r.type)return t;if(/^registerPlugin:([^:]*)$/.test(r.type)){var a=Oe(r.type,"registerPlugin"),o=e()[a];if(!o||!a)return t;var u=r.enabled,c=o.config;return i[a]={enabled:u,initialized:!!u&&Boolean(!o.initialize),loaded:!!u&&Boolean(o.loaded({config:c})),config:c},n({},t,i)}if(/^initialize:([^:]*)$/.test(r.type)){var s=Oe(r.type,Z.initialize),l=e()[s];return l&&s?(i[s]=n({},t[s],{initialized:!0,loaded:Boolean(l.loaded({config:l.config}))}),n({},t,i)):t}if(/^ready:([^:]*)$/.test(r.type))return i[r.name]=n({},t[r.name],{loaded:!0}),n({},t,i);switch(r.type){case Z.disablePlugin:return n({},t,Ne(r.plugins,!1,t));case Z.enablePlugin:return n({},t,Ne(r.plugins,!0,t));default:return t}}}function Oe(e,n){return e.substring(n.length+1,e.length)}function Ne(e,t,r){return e.reduce(function(e,i){return e[i]=n({},r[i],{enabled:t}),e},r)}function je(e){try{return JSON.parse(JSON.stringify(e))}catch(e){}return e}var Ae={last:{},history:[]};function ke(e,t){void 0===e&&(e=Ae);var r=t.options,i=t.meta;if(t.type===Z.track){var a=je(n({event:t.event,properties:t.properties},Object.keys(r).length&&{options:r},{meta:i}));return n({},e,{last:a,history:e.history.concat(a)})}return e}var Te={actions:[]};function Me(e,t){void 0===e&&(e=Te);var r=t.payload;switch(t.type){case"queue":var i;return i=r&&r.type&&r.type===Z.identify?[t].concat(e.actions):e.actions.concat(t),n({},e,{actions:i});case"dequeue":return[];default:return e}}var ze=/#.*$/;function Le(e){var n=/(http[s]?:\/\/)?([^\/\s]+\/)(.*)/g.exec(e);return"/"+(n&&n[3]?n[3].split("?")[0].replace(ze,""):"")}var Ue,qe,Ce,De,Ve=function(e){if(void 0===e&&(e={}),!u)return e;var t=document,r=t.title,i=t.referrer,a=window,o=a.location,c=a.innerWidth,s=a.innerHeight,l=o.hash,f=o.search,d=function(e){var n=function(){if(u)for(var e,n=document.getElementsByTagName("link"),t=0;e=n[t];t++)if("canonical"===e.getAttribute("rel"))return e.getAttribute("href")}();return n?n.match(/\?/)?n:n+e:window.location.href.replace(ze,"")}(f),p={title:r,url:d,path:Le(d),hash:l,search:f,width:c,height:s};return i&&""!==i&&(p.referrer=i),n({},p,e)},Re={last:{},history:[]};function $e(e,t){void 0===e&&(e=Re);var r=t.options;if(t.type===Z.page){var i=je(n({properties:t.properties,meta:t.meta},Object.keys(r).length&&{options:r}));return n({},e,{last:i,history:e.history.concat(i)})}return e}Ue=function(){if(!u)return!1;var e=navigator.appVersion;return~e.indexOf("Win")?"Windows":~e.indexOf("Mac")?"MacOS":~e.indexOf("X11")?"UNIX":~e.indexOf("Linux")?"Linux":"Unknown OS"}(),qe=u?document.referrer:null,Ce=function(){if(u){var e=navigator,n=e.languages;return e.userLanguage||(n&&n.length?n[0]:e.language)}}(),De=function(){try{return Intl.DateTimeFormat().resolvedOptions().timeZone}catch(e){}}();var Be={initialized:!1,sessionId:P(),app:null,version:null,debug:!1,offline:!!u&&!navigator.onLine,os:{name:Ue},userAgent:u?navigator.userAgent:"node",library:{name:X,version:"0.12.16"},timezone:De,locale:Ce,campaign:{},referrer:qe};function Xe(e,t){void 0===e&&(e=Be);var r=e.initialized,i=t.campaign;switch(t.type){case Z.campaign:return n({},e,{campaign:i});case Z.offline:return n({},e,{offline:!0});case Z.online:return n({},e,{offline:!1});default:return r?e:n({},Be,e,{initialized:!0})}}var Je=["plugins","reducers","storage"];function We(e,n,t){if(u){var r=window[(t?"add":"remove")+"EventListener"];e.split(" ").forEach(function(e){r(e,n)})}}function He(e){var n=We.bind(null,"online offline",function(n){return Promise.resolve(!navigator.onLine).then(e)});return n(!0),function(e){return n(!1)}}function Fe(){return O(X,[]),function(e){return function(n,t,r){var i=e(n,t,r),a=i.dispatch;return Object.assign(i,{dispatch:function(e){return x[S].analytics.push(e.action||e),a(e)}})}}}function Ze(e){return function(){return C(C.apply(null,arguments),Fe())}}function Ge(e){return e?function(e){return"array"===f(e)}(e)?e:[e]:[]}function Ke(e,t,r){void 0===e&&(e={});var i,a,o=P();return t&&(ie[o]=(i=t,a=function(e){for(var n,t=e||Array.prototype.slice.call(arguments),r=0;r<t.length;r++)if(p(t[r])){n=t[r];break}return n}(r),function(e){a&&a(e),i(e)})),n({},e,{rid:o,ts:(new Date).getTime()},t?{hasCallback:!0}:{})}function Qe(e){void 0===e&&(e={});var t=e.reducers||{},r=e.initialUser||{},i=(e.plugins||[]).reduce(function(e,n){if(p(n))return e.middlewares=e.middlewares.concat(n),e;if(n.NAMESPACE&&(n.name=n.NAMESPACE),!n.name)throw new Error("https://lytics.dev/errors/1");n.config||(n.config={});var t=n.EVENTS?Object.keys(n.EVENTS).map(function(e){return n.EVENTS[e]}):[];e.pluginEnabled[n.name]=!(!1===n.enabled||!1===n.config.enabled),delete n.enabled,n.methods&&(e.methods[n.name]=Object.keys(n.methods).reduce(function(e,t){return e[t]=function(e){return function(){for(var n=Array.prototype.slice.call(arguments),t=new Array(e.length),r=0;r<n.length;r++)t[r]=n[r];return t[t.length]=$,e.apply({instance:$},t)}}(n.methods[t]),e},{}),delete n.methods);var r=Object.keys(n).concat(t),i=new Set(e.events.concat(r));if(e.events=Array.from(i),e.pluginsArray=e.pluginsArray.concat(n),e.plugins[n.name])throw new Error(n.name+"AlreadyLoaded");return e.plugins[n.name]=n,e.plugins[n.name].loaded||(e.plugins[n.name].loaded=function(){return!0}),e},{plugins:{},pluginEnabled:{},methods:{},pluginsArray:[],middlewares:[],events:[]}),o=e.storage?e.storage:{getItem:_,setItem:O,removeItem:N},c=function(e){return function(n,t,r){return t.getState("user")[n]||(r&&h(r)&&r[n]?r[n]:ne(e)[n]||_(te(n))||null)}}(o),s=i.plugins,l=i.events.filter(function(e){return!F.includes(e)}).sort(),f=new Set(l.concat(H).filter(function(e){return!F.includes(e)})),d=Array.from(f).sort(),g=function(){return s},v=new xe,y=v.addMiddleware,b=v.removeMiddleware,w=v.dynamicMiddlewares,S=function(){throw new Error("Abort disabled inListener")},x=function(e){for(var n,t=Object.create(null),r=/([^&=]+)=?([^&]*)/g;n=r.exec(e);){var i=I(n[1]),a=I(n[2]);if(i)if("[]"===i.substring(i.length-2)){var o=t[i=i.substring(0,i.length-2)]||(t[i]=[]);t[i]=Array.isArray(o)?o:[],t[i].push(a)}else t[i]=""===a||a}for(var u in t){var c=u.split("[");c.length>1&&(E(t,c.map(function(e){return e.replace(/[?[\]\\ ]/g,"")}),t[u]),delete t[u])}return t}(u&&window.location.search.substring(1)),k=ne(o),z=n({},k,r,x.an_uid?{userId:x.an_uid}:{},x.an_aid?{anonymousId:x.an_aid}:{});z.anonymousId||(z.anonymousId=P());var L=n({enable:function(e,n){return new Promise(function(t){ue.dispatch({type:Z.enablePlugin,plugins:Ge(e),_:{originalAction:Z.enablePlugin}},t,[n])})},disable:function(e,n){return new Promise(function(t){ue.dispatch({type:Z.disablePlugin,plugins:Ge(e),_:{originalAction:Z.disablePlugin}},t,[n])})}},i.methods),R=!1,$={identify:function(e,t,r,i){try{var a=m(e)?e:null,o=h(e)?e:t,u=r||{},s=$.user();O(te(J),a);var l=a||o.userId||c(J,$,o);return Promise.resolve(new Promise(function(e){ue.dispatch(n({type:Z.identifyStart,userId:l,traits:o||{},options:u,anonymousId:s.anonymousId},s.id&&s.id!==a&&{previousId:s.id}),e,[t,r,i])}))}catch(e){return Promise.reject(e)}},track:function(e,n,t,r){try{var i=h(e)?e.event:e;if(!i||!m(i))throw new Error("EventMissing");var a=h(e)?e:n||{},o=h(t)?t:{};return Promise.resolve(new Promise(function(e){ue.dispatch({type:Z.trackStart,event:i,properties:a,options:o,userId:c(J,$,n),anonymousId:c(W,$,n)},e,[n,t,r])}))}catch(e){return Promise.reject(e)}},page:function(e,n,t){try{var r=h(e)?e:{},i=h(n)?n:{};return Promise.resolve(new Promise(function(a){ue.dispatch({type:Z.pageStart,properties:Ve(r),options:i,userId:c(J,$,r),anonymousId:c(W,$,r)},a,[e,n,t])}))}catch(e){return Promise.reject(e)}},user:function(e){if(e===J||"id"===e)return c(J,$);if(e===W||"anonId"===e)return c(W,$);var n=$.getState("user");return e?a(n,e):n},reset:function(e){return new Promise(function(n){ue.dispatch({type:Z.resetStart},n,e)})},ready:function(e){return R&&e({plugins:L,instance:$}),$.on(Z.ready,function(n){e(n),R=!0})},on:function(e,n){if(!e||!p(n))return!1;if(e===Z.bootstrap)throw new Error(".on disabled for "+e);var t=/Start$|Start:/;if("*"===e){var r=function(e){return function(e){return function(r){return r.type.match(t)&&n({payload:r,instance:$,plugins:s}),e(r)}}},i=function(e){return function(e){return function(r){return r.type.match(t)||n({payload:r,instance:$,plugins:s}),e(r)}}};return y(r,Ye),y(i,en),function(){b(r,Ye),b(i,en)}}var a=e.match(t)?Ye:en,o=function(t){return function(t){return function(r){return r.type===e&&n({payload:r,instance:$,plugins:s,abort:S}),t(r)}}};return y(o,a),function(){return b(o,a)}},once:function(e,n){if(!e||!p(n))return!1;if(e===Z.bootstrap)throw new Error(".once disabled for "+e);var t=$.on(e,function(e){n({payload:e.payload,instance:$,plugins:s,abort:S}),t()});return t},getState:function(e){var n=ue.getState();return e?a(n,e):Object.assign({},n)},dispatch:function(e){var t=m(e)?{type:e}:e;if(H.includes(t.type))throw new Error("reserved action "+t.type);var r=n({},t,{_:n({originalAction:t.type},e._||{})});ue.dispatch(r)},enablePlugin:L.enable,disablePlugin:L.disable,plugins:L,storage:{getItem:o.getItem,setItem:function(e,n,t){ue.dispatch({type:Z.setItemStart,key:e,value:n,options:t})},removeItem:function(e,n){ue.dispatch({type:Z.removeItemStart,key:e,options:n})}},setAnonymousId:function(e,n){$.storage.setItem(V,e,n)},events:{core:H,plugins:l}},B=i.middlewares.concat([function(e){return function(e){return function(n){return n.meta||(n.meta=Ke()),e(n)}}},w(Ye),Pe($,g,{all:d,plugins:l}),Se(o),Y($),re($),w(en)]),X={context:Xe,user:ee(o),page:$e,track:ke,plugins:_e(g),queue:Me},G=C,K=C;if(u&&e.debug){var Q=window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__;Q&&(G=Q({trace:!0,traceLimit:25})),K=function(){return 0===arguments.length?Fe():h(typeof arguments[0])?Ze():Ze().apply(null,arguments)}}var ie=function(e){return Object.keys(e).reduce(function(n,t){return Je.includes(t)||(n[t]=e[t]),n},{})}(e),ae=i.pluginsArray.reduce(function(e,n){var t=n.name,r=n.config,a=n.loaded,o=i.pluginEnabled[t];return e[t]={enabled:o,initialized:!!o&&Boolean(!n.initialize),loaded:Boolean(a({config:r})),config:r},e},{}),oe={context:ie,user:z,plugins:ae},ue=U(function(e){for(var n=Object.keys(e),t={},r=0;r<n.length;r++){var i=n[r];typeof e[i]===j&&(t[i]=e[i])}var a,o=Object.keys(t);try{!function(e){Object.keys(e).forEach(function(n){var t=e[n];if(typeof t(void 0,{type:T})===A||typeof t(void 0,{type:M})===A)throw new Error("reducer "+n+" "+A)})}(t)}catch(e){a=e}return function(e,n){if(void 0===e&&(e={}),a)throw a;for(var r=!1,i={},u=0;u<o.length;u++){var c=o[u],s=e[c],l=(0,t[c])(s,n);if(typeof l===A){var f=q(c,n);throw new Error(f)}i[c]=l,r=r||l!==s}return r?i:e}}(n({},X,t)),oe,K(G(D.apply(void 0,B))));ue.dispatch=function(e){return function(t,r,i){var a=n({},t,{meta:Ke(t.meta,r,Ge(i))});return e.apply(null,[a])}}(ue.dispatch);var se=Object.keys(s);ue.dispatch({type:Z.bootstrap,plugins:se,config:ie,params:x,user:z,initialUser:r,persistedUser:k});var le=se.filter(function(e){return i.pluginEnabled[e]}),fe=se.filter(function(e){return!i.pluginEnabled[e]});return ue.dispatch({type:Z.registerPlugins,plugins:se,enabled:i.pluginEnabled}),i.pluginsArray.map(function(e,n){var t=e.bootstrap,r=e.config,a=e.name;t&&p(t)&&t({instance:$,config:r,payload:e}),ue.dispatch({type:Z.registerPluginType(a),name:a,enabled:i.pluginEnabled[a],plugin:e}),i.pluginsArray.length===n+1&&ue.dispatch({type:Z.initializeStart,plugins:le,disabled:fe})}),He(function(e){ue.dispatch({type:e?Z.offline:Z.online})}),function(e,n,t){setInterval(function(){return ce(e,n,t)},3e3)}(ue,g,$),$}var Ye="before",en="after";return e.Analytics=Qe,e.CONSTANTS=B,e.EVENTS=Z,e.default=Qe,e.init=Qe,e}({}); //# sourceMappingURL=core.js.map