2 lines
No EOL
1.9 KiB
JavaScript
2 lines
No EOL
1.9 KiB
JavaScript
var i,r;var a=c(),l=new Date,d={ZV:"https://events.sudovanilla.org",SH:""};function p(e){let n=new Date().getTime()-l.getTime();return Math.floor(n/1e3)>e&&(a=c()),l=new Date,a}function c(){let e=Math.floor(Date.now()/1e3).toString(),n=Math.floor(Math.random()*1e8).toString().padStart(8,"0");return e+n}function g(e){let n=e.split("-");return n.length!==3||d[n[1]]===void 0?(console.warn(`The Zalvena App Key "${e}" is invalid. Tracking will be disabled.`),!1):!0}function u(e,n){let t=e.split("-")[1];if(t==="SH"){if(!n?.host){console.warn("Host parameter must be defined when using Self-Hosted App Key. Tracking will be disabled.");return}return`${n.host}/api/v0/event`}return`${n?.host??d[t]}/api/v0/event`}async function f(e){if(!e.appKey){console.warn(`Zalvena: init must be called before trackEvent. Event "${e.eventName}" will be discarded.`);return}try{let n=await fetch(e.apiUrl,{method:"POST",headers:{"Content-Type":"application/json","App-Key":e.appKey},credentials:"omit",body:JSON.stringify({timestamp:new Date().toISOString(),sessionId:e.sessionId,eventName:e.eventName,systemProps:{locale:e.locale??m(),isDebug:e.isDevelopment??w(),appVersion:e.appVersion??"",sdkVersion:e.sdkVersion},props:e.props})});if(n.status>=300){let t=await n.text();console.warn(`Failed to send event "${e.eventName}": ${n.status} ${t}`)}}catch(n){console.warn(`Failed to send event "${e.eventName}"`),console.warn(n)}}function m(){if(i)return i;if(!(typeof navigator>"u"))return navigator.languages.length>0?i=navigator.languages[0]:i=navigator.language,i}function w(){return location.hostname==="localhost"?(r=!0,r):(r=!1,r)}var h=1*60*60,b="Zalvena-web@1.1.0",v="",s,o;function D(e,n){g(e)&&(s=n?.apiUrl??u(e,n),v=e,o=n)}async function O(e,n){if(!s)return;let t=p(h);await f({apiUrl:s,sessionId:t,appKey:v,isDevelopment:o?.isDevelopment,appVersion:o?.appVersion,sdkVersion:b,eventName:e,props:n})}export{D as init,O as trackEvent};
|
|
//# sourceMappingURL=index.js.map
|