flowsery 1.1.1 → 1.1.2

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/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- var f=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(z)=>{let $=Math.random()*16|0;return(z==="x"?$:$&3|8).toString(16)})},o=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var x=()=>{return window.__flowsery_config||null},X=()=>{return document.querySelector("script[data-fl-website-id]")},M=()=>{let z=x();if(z)return z.websiteId;return X()?.getAttribute("data-fl-website-id")||""},s=()=>{return x()?.apiUrl??null},i=()=>{let z=x();if(z?.apiBase)return z.apiBase;let $=X(),j=$?.getAttribute("data-api");if(j)return j;let J=$?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},w=()=>{return"https://analytics.flowsery.com/analytics"},T=()=>{let z=x();if(z?.domain)return z.domain;return X()?.getAttribute("data-domain")||location.hostname},D=()=>{let z=x();if(z)return!!z.cookieless;return X()?.hasAttribute("data-cookieless")??!1},Ez=new Set(["localhost","127.0.0.1","[::1]"]),r=()=>{return Ez.has(location.hostname)||location.hostname.endsWith(".local")},t=()=>{let z=x();if(z)return!!z.local;return X()?.hasAttribute("data-local")??!1},a=()=>{return location.protocol==="file:"},e=()=>{let z=x();if(z)return!!z.allowFileProtocol;return X()?.hasAttribute("data-allow-file-protocol")??!1},zz=()=>{try{return window.self!==window.top}catch{return!0}},$z=()=>{let z=x();if(z)return!!z.allowIframe;return X()?.hasAttribute("data-allow-iframe")??!1};var v=()=>{let z=x();if(z)return!!z.hashMode;return X()?.src?.includes(".hash.js")??!1},jz=()=>{let z=x();if(z)return!!z.recording;return X()?.hasAttribute("data-recording")??!1},hz=(z)=>{let $=2166136261;for(let j=0;j<z.length;j++)$^=z.charCodeAt(j),$=Math.imul($,16777619);return($>>>0)%100},Jz=(z,$)=>{if(!Number.isFinite($)||$>=100)return!0;if($<=0)return!1;return hz(z)<$},l=(z)=>z==null||!Number.isFinite(z)?100:Math.max(0,Math.min(100,Math.floor(z))),Az=(z,$)=>{if(typeof z==="number")return l(z);let j=X()?.getAttribute($);return l(j!=null&&j!==""?Number(j):null)},Qz=()=>Az(x()?.recordingSampleRate,"data-recording-sample");var Zz=()=>{let z=`recording${v()?".hash":""}.js`,$=X()?.src;if($)return $.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,z);return`https://cdn.flowsery.com/${z}`},qz=()=>{let z=x();if(z?.allowedHostnames)return z.allowedHostnames;let j=X()?.getAttribute("data-allowed-hostnames");return j?j.split(",").map((J)=>J.trim()).filter(Boolean):[]},Wz=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},Fz=()=>{let z=new URLSearchParams(window.location.search),$={};for(let j of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=z.get(j);if(J)$[j]=J}return $};var Bz=s(),_z=61440,xz=3,mz=1000,Xz=(z,$,j)=>{try{let J=new XMLHttpRequest;if(J.open("POST",z,!0),J.setRequestHeader("Content-Type","application/json"),j>0){let Q=()=>{let Z=xz-j;setTimeout(()=>Xz(z,$,j-1),mz*Math.pow(2,Z))};J.onreadystatechange=()=>{if(J.readyState!==4)return;if(J.status===0||J.status>=500)Q()},J.onerror=Q}J.send($)}catch(J){}},Gz=(z,$,j=!1)=>{Xz(z,$,j?xz:0)},pz=(z,$)=>Bz??(z?`${$}/api/track`:`${w()}/events`),F=(z,$,j)=>{let J=i(),Q=!!J,Z=pz(Q,J),K=M(),G=JSON.stringify({...$,websiteId:K,type:z}),B=j?.retry??!1;if(Bz||!Q){Gz(Z,G,B);return}if(G.length>_z){Gz(Z,G,B);return}if(typeof navigator.sendBeacon==="function"){let U=new Blob([G],{type:"application/json"});if(navigator.sendBeacon(Z,U))return}fetch(Z,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0}).catch(()=>{})};var y="_fs_vid",L="_fs_sid",H="_fs_sts",Sz=1800000,R="_fs_vid",E="_fs_sid",cz=(z)=>{let $=document.cookie.match(new RegExp(`(?:^|; )${z}=([^;]*)`));return $?decodeURIComponent($[1]):null},Kz=(z,$,j)=>{let J=new Date(Date.now()+j*86400000).toUTCString(),Q=T(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${z}=${encodeURIComponent($)};expires=${J};path=/${Z};SameSite=Lax;Secure`},nz=(z)=>{let $=T(),j=$?`;domain=.${$}`:"";document.cookie=`${z}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${j};SameSite=Lax;Secure`},gz=()=>{let z=new URLSearchParams(window.location.search),$=z.get(R)||void 0,j=z.get(E)||void 0;if($||j){z.delete(R),z.delete(E);let J=z.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:$,sid:j}},b=null,Vz=()=>{if(b===null)b=gz();return b},q=()=>{if(D())return;let z=Vz();if(z.vid){Kz(y,z.vid,730);let j=z.vid;return z.vid=void 0,j}let $=cz(y);if(!$)$=f(),Kz(y,$,730);return $},W=()=>{if(D())return;let z=Vz();if(z.sid){let Q=z.sid;return sessionStorage.setItem(L,Q),sessionStorage.setItem(H,Date.now().toString()),z.sid=void 0,Q}let $=Date.now(),j=parseInt(sessionStorage.getItem(H)||"0",10),J=sessionStorage.getItem(L);if(!J||$-j>Sz)J=f(),sessionStorage.setItem(L,J);return sessionStorage.setItem(H,$.toString()),J},Yz=()=>{if(D())return;sessionStorage.setItem(H,Date.now().toString())},k=()=>{let z=q(),$=W();return{...z&&{_fs_vid:z},...$&&{_fs_sid:$}}},N=(z)=>{let $=k(),j=new URL(z);if($._fs_vid)j.searchParams.set(R,$._fs_vid);if($._fs_sid)j.searchParams.set(E,$._fs_sid);return j.toString()},h=()=>{nz(y),sessionStorage.removeItem(L),sessionStorage.removeItem(H),b=null};var dz=5000,_=0,u=0,O=null,lz=()=>{let z=document.documentElement,$=window.scrollY||z.scrollTop,j=z.scrollHeight-z.clientHeight;if(j<=0)return 100;return Math.min(100,Math.round($/j*100))},A=()=>{_++},Uz=()=>{let z=lz();u=Math.max(u,z);let $=q(),j=W();F("heartbeat",{...$&&{visitorUid:$},...j&&{sessionUid:j},path:location.pathname,scrollDepth:u,isVisible:document.visibilityState==="visible",interactionCount:_}),Yz()},Mz=()=>{_=0,u=0},Hz=()=>{document.addEventListener("click",A,{passive:!0}),document.addEventListener("scroll",A,{passive:!0}),document.addEventListener("keydown",A,{passive:!0}),O=setInterval(Uz,dz),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")Uz()})},m=()=>{if(O)clearInterval(O),O=null};var Nz="",wz=!1,Y=()=>{let z=v(),$=z?location.href:location.pathname+location.search;if($===Nz)return;Nz=$,Mz();let j=Fz(),J=q(),Q=W(),Z=z?location.pathname+location.hash:location.pathname;if(F("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:j.utm_source,utmMedium:j.utm_medium,utmCampaign:j.utm_campaign,utmTerm:j.utm_term,utmContent:j.utm_content,ref:j.ref,source:j.source,via:j.via}),!wz){wz=!0;let K=w();if(K){let G=JSON.stringify({type:"geo",websiteId:M(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${K}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},Dz=()=>{Y();let{pushState:z,replaceState:$}=history;if(history.pushState=function(...j){z.apply(this,j),Y()},history.replaceState=function(...j){$.apply(this,j),Y()},window.addEventListener("popstate",()=>Y()),v())window.addEventListener("hashchange",()=>Y())};var vz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j)return;try{let J=new URL(j);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=q(),Z=W();if(!Q||!Z)return;F("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:j})}catch{}})};var oz=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,yz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j||!oz.test(j))return;let J=q(),Q=W();F("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:j}})})};var V=(z,$)=>{let j=q(),J=W();F("goal",{...j&&{visitorUid:j},...J&&{sessionUid:J},name:z,metadata:$})};var p="data-fs-goal",Lz="data-fs-goal-",sz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(Lz)&&J.name!==p){let Q=J.name.slice(Lz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},bz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest(`[${p}]`);if(!$)return;let j=$.getAttribute(p);if(!j)return;let J=sz($);V(j,J)})};var C="data-fs-scroll",Oz="data-fs-scroll-threshold",S="data-fs-scroll-delay",kz="data-fs-scroll-",iz=new Set([C,Oz,S]),uz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(kz)&&!iz.has(J.name)){let Q=J.name.slice(kz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},Cz=()=>{let z=document.querySelectorAll(`[${C}]`);if(!z.length)return;let $=new Set,j=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||$.has(Z))continue;let K=Z.getAttribute(C);if(!K)continue;let G=parseInt(Z.getAttribute(S)||"0",10)||0,B=()=>{if($.has(Z))return;$.add(Z),j.unobserve(Z);let U=uz(Z);V(K,U)};if(G>0)setTimeout(B,G);else B()}},{threshold:0});for(let J of Array.from(z)){let Q=parseFloat(J.getAttribute(Oz)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((K)=>{for(let G of K){let B=G.target;if(!G.isIntersecting||$.has(B))continue;let U=B.getAttribute(C);if(!U)continue;let g=parseInt(B.getAttribute(S)||"0",10)||0,d=()=>{if($.has(B))return;$.add(B),Z.unobserve(B);let Rz=uz(B);V(U,Rz)};if(g>0)setTimeout(d,g);else d()}},{threshold:Q});Z.observe(J)}else j.observe(J)}};var c=null,Pz=()=>{if(!c)c=new Set(qz());return c},rz=(z)=>{let $=Pz();if(!$.size)return!1;for(let j of $)if(z===j||z.endsWith(`.${j}`))return!0;return!1},Iz=()=>{if(!Pz().size)return;document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let J=j.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!rz(Q.hostname))return;j.href=N(J)}catch{}})};var tz="buy.stripe.com",az=(z,$)=>{try{let j=new URL(z);if(j.hostname!==tz)return z;if(j.searchParams.has("client_reference_id"))return z;return j.searchParams.set("client_reference_id",$),j.toString()}catch{return z}},fz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$||!$.href)return;let j=q();if(!j)return;$.href=az($.href,j)})};var P=(z)=>{let $=q(),j=W();F("payment",{...$&&{visitorUid:$},...j&&{sessionUid:j},...z.amount!=null&&{amount:z.amount},...z.currency&&{currency:z.currency},...z.transactionId&&{transactionId:z.transactionId},...z.email&&{email:z.email},...z.name&&{name:z.name},...z.customerId&&{customerId:z.customerId},...z.isRenewal!=null&&{isRenewal:z.isRenewal},...z.isRefund!=null&&{isRefund:z.isRefund}})};var I=(z)=>{let $=q();F("identify",{...$&&{visitorUid:$},userId:z.userId,name:z.name,email:z.email,image:z.image,profileData:z.profileData})};var ez=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let z=document.createElement("script");z.src=Zz(),z.defer=!0,z.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild(z)},Tz=(z)=>{let[$,...j]=z;switch($){case"identify":I(j[0]);break;case"payment":P(j[0]);break;default:V($,j[0]);break}},n=()=>{if(o())return;if(!M())return;if(Wz())return;if(r()&&!t())return;if(a()&&!e())return;if(zz()&&!$z())return;if(Dz(),Hz(),vz(),yz(),bz(),Cz(),Iz(),fz(),jz()){let j=W();if(!j||Jz(j,Qz()))ez()}let z=window,$=z.flowsery?.q||[];for(let j of $)Tz(j);z.flowsery=function(...j){Tz(j)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",n);else n();var r3=async(z)=>{let $=window;return $.__flowsery_config=z,n(),{trackEvent:V,trackPayment:P,trackPageview:Y,identify:I,stop:m,reset:h,getTrackingParams:k,buildCrossDomainUrl:N,getVisitorId:q,getSessionId:W}};export{P as trackPayment,Y as trackPageview,V as trackEvent,m as stopHeartbeat,h as reset,r3 as initFlowsery,I as identify,q as getVisitorId,k as getTrackingParams,W as getSessionId,N as buildCrossDomainUrl};
1
+ var p=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,($)=>{let j=Math.random()*16|0;return($==="x"?j:j&3|8).toString(16)})},c=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var V=()=>{return window.__flowsery_config||null},x=()=>{return document.querySelector("script[data-fl-website-id]")},U=()=>{let $=V();if($)return $.websiteId;return x()?.getAttribute("data-fl-website-id")||""},P=()=>{return V()?.apiUrl??null},f=()=>{let $=V();if($?.apiBase)return $.apiBase;let j=x(),z=j?.getAttribute("data-api");if(z)return z;let J=j?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},L=()=>{return"https://analytics.flowsery.com/analytics"},d=()=>{let $=V();if($?.domain)return $.domain;return x()?.getAttribute("data-domain")||location.hostname},C=()=>{let $=V();if($)return!!$.cookieless;return x()?.hasAttribute("data-cookieless")??!1},a3=new Set(["localhost","127.0.0.1","[::1]"]),g=()=>{return a3.has(location.hostname)||location.hostname.endsWith(".local")},n=()=>{let $=V();if($)return!!$.local;return x()?.hasAttribute("data-local")??!1},K3=()=>{return location.protocol==="file:"},V3=()=>{let $=V();if($)return!!$.allowFileProtocol;return x()?.hasAttribute("data-allow-file-protocol")??!1},l=()=>{try{return window.self!==window.top}catch{return!0}},o=()=>{let $=V();if($)return!!$.allowIframe;return x()?.hasAttribute("data-allow-iframe")??!1};var x3=()=>{let $=V();if($)return!!$.disableConsole;return x()?.hasAttribute("data-disable-console")??!1},I=()=>{let $=V();if($)return!!$.hashMode;return x()?.src?.includes(".hash.js")??!1},s=()=>{let $=V();if($)return!!$.recording;return x()?.hasAttribute("data-recording")??!1},t3=($)=>{let j=2166136261;for(let z=0;z<$.length;z++)j^=$.charCodeAt(z),j=Math.imul(j,16777619);return(j>>>0)%100},i=($,j)=>{if(!Number.isFinite(j)||j>=100)return!0;if(j<=0)return!1;return t3($)<j},X3=($)=>$==null||!Number.isFinite($)?100:Math.max(0,Math.min(100,Math.floor($))),e3=($,j)=>{if(typeof $==="number")return X3($);let z=x()?.getAttribute(j);return X3(z!=null&&z!==""?Number(z):null)},r=()=>e3(V()?.recordingSampleRate,"data-recording-sample");var Y3=()=>{let $=`recording${I()?".hash":""}.js`,j=x()?.src;if(j)return j.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,$);return`https://cdn.flowsery.com/${$}`},M3=()=>{let $=V();if($?.allowedHostnames)return $.allowedHostnames;let z=x()?.getAttribute("data-allowed-hostnames");return z?z.split(",").map((J)=>J.trim()).filter(Boolean):[]},a=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},H3=()=>{let $=new URLSearchParams(window.location.search),j={};for(let z of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=$.get(z);if(J)j[z]=J}return j},$7=/(token|auth|key|secret|password|passwd|pwd|session|sig|signature|code|access[_-]?token|api[_-]?key|email|bearer)/i,w=($)=>{try{let j=new URL($,location.href);return j.searchParams.forEach((z,J)=>{if($7.test(J))j.searchParams.set(J,"REDACTED")}),j.origin+j.pathname+j.search}catch{return $.split("?")[0]}},N3=($)=>{return $.replace(/[\w.+-]+@[\w-]+\.[\w.-]+/g,"[email]").replace(/\b[\w-]{24,}\b/g,"[token]")};var U3=P(),j7=61440,w3=3,z7=1000,L3=($,j,z)=>{try{let J=new XMLHttpRequest;if(J.open("POST",$,!0),J.setRequestHeader("Content-Type","application/json"),z>0){let Q=()=>{let Z=w3-z;setTimeout(()=>L3($,j,z-1),z7*Math.pow(2,Z))};J.onreadystatechange=()=>{if(J.readyState!==4)return;if(J.status===0||J.status>=500)Q()},J.onerror=Q}J.send(j)}catch(J){}},D3=($,j,z=!1)=>{L3($,j,z?w3:0)},J7=($,j)=>U3??($?`${j}/api/track`:`${L()}/events`),K=($,j,z)=>{let J=f(),Q=!!J,Z=J7(Q,J),q=U(),G=JSON.stringify({...j,websiteId:q,type:$}),W=z?.retry??!1;if(U3||!Q){D3(Z,G,W);return}if(G.length>j7){D3(Z,G,W);return}if(typeof navigator.sendBeacon==="function"){let X=new Blob([G],{type:"application/json"});if(navigator.sendBeacon(Z,X))return}fetch(Z,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0}).catch(()=>{})};var R="_fs_vid",_="_fs_sid",b="_fs_sts",Q7=1800000,t="_fs_vid",e="_fs_sid",Z7=($)=>{let j=document.cookie.match(new RegExp(`(?:^|; )${$}=([^;]*)`));return j?decodeURIComponent(j[1]):null},y3=($,j,z)=>{let J=new Date(Date.now()+z*86400000).toUTCString(),Q=d(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${$}=${encodeURIComponent(j)};expires=${J};path=/${Z};SameSite=Lax;Secure`},q7=($)=>{let j=d(),z=j?`;domain=.${j}`:"";document.cookie=`${$}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${z};SameSite=Lax;Secure`},W7=()=>{let $=new URLSearchParams(window.location.search),j=$.get(t)||void 0,z=$.get(e)||void 0;if(j||z){$.delete(t),$.delete(e);let J=$.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:j,sid:z}},A=null,O3=()=>{if(A===null)A=W7();return A},F=()=>{if(C())return;let $=O3();if($.vid){y3(R,$.vid,730);let z=$.vid;return $.vid=void 0,z}let j=Z7(R);if(!j)j=p(),y3(R,j,730);return j},B=()=>{if(C())return;let $=O3();if($.sid){let Q=$.sid;return sessionStorage.setItem(_,Q),sessionStorage.setItem(b,Date.now().toString()),$.sid=void 0,Q}let j=Date.now(),z=parseInt(sessionStorage.getItem(b)||"0",10),J=sessionStorage.getItem(_);if(!J||j-z>Q7)J=p(),sessionStorage.setItem(_,J);return sessionStorage.setItem(b,j.toString()),J},b3=()=>{if(C())return;sessionStorage.setItem(b,Date.now().toString())},E=()=>{let $=F(),j=B();return{...$&&{_fs_vid:$},...j&&{_fs_sid:j}}},T=($)=>{let j=E(),z=new URL($);if(j._fs_vid)z.searchParams.set(t,j._fs_vid);if(j._fs_sid)z.searchParams.set(e,j._fs_sid);return z.toString()},$3=()=>{q7(R),sessionStorage.removeItem(_),sessionStorage.removeItem(b),A=null};var G7=5000,z3=0,v=0,h=null,F7=()=>{let $=document.documentElement,j=window.scrollY||$.scrollTop,z=$.scrollHeight-$.clientHeight;if(z<=0)return 100;return Math.min(100,Math.round(j/z*100))},j3=()=>{z3++},T3=()=>{let $=F7();v=Math.max(v,$);let j=F(),z=B();K("heartbeat",{...j&&{visitorUid:j},...z&&{sessionUid:z},path:location.pathname,scrollDepth:v,isVisible:document.visibilityState==="visible",interactionCount:z3}),b3()},k3=()=>{z3=0,v=0},P3=()=>{document.addEventListener("click",j3,{passive:!0}),document.addEventListener("scroll",j3,{passive:!0}),document.addEventListener("keydown",j3,{passive:!0}),h=setInterval(T3,G7),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")T3()})},J3=()=>{if(h)clearInterval(h),h=null};var f3="",C3=!1,D=()=>{let $=I(),j=$?location.href:location.pathname+location.search;if(j===f3)return;f3=j,k3();let z=H3(),J=F(),Q=B(),Z=$?location.pathname+location.hash:location.pathname;if(K("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:z.utm_source,utmMedium:z.utm_medium,utmCampaign:z.utm_campaign,utmTerm:z.utm_term,utmContent:z.utm_content,ref:z.ref,source:z.source,via:z.via}),!C3){C3=!0;let q=L();if(q){let G=JSON.stringify({type:"geo",websiteId:U(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${q}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},I3=()=>{D();let{pushState:$,replaceState:j}=history;if(history.pushState=function(...z){$.apply(this,z),D()},history.replaceState=function(...z){j.apply(this,z),D()},window.addEventListener("popstate",()=>D()),I())window.addEventListener("hashchange",()=>D())};var R3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let z=j.href;if(!z)return;try{let J=new URL(z);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=F(),Z=B();if(!Q||!Z)return;K("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:z})}catch{}})};var B7=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,_3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let z=j.href;if(!z||!B7.test(z))return;let J=F(),Q=B();K("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:z}})})};var H=($,j)=>{let z=F(),J=B();K("goal",{...z&&{visitorUid:z},...J&&{sessionUid:J},name:$,metadata:j})};var Q3="data-fs-goal",A3="data-fs-goal-",X7=($)=>{let j={},z=0;for(let J of Array.from($.attributes))if(J.name.startsWith(A3)&&J.name!==Q3){let Q=J.name.slice(A3.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&z<10)j[Q]=Z,z++}return z>0?j:void 0},E3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest(`[${Q3}]`);if(!j)return;let z=j.getAttribute(Q3);if(!z)return;let J=X7(j);H(z,J)})};var S="data-fs-scroll",S3="data-fs-scroll-threshold",Z3="data-fs-scroll-delay",v3="data-fs-scroll-",K7=new Set([S,S3,Z3]),h3=($)=>{let j={},z=0;for(let J of Array.from($.attributes))if(J.name.startsWith(v3)&&!K7.has(J.name)){let Q=J.name.slice(v3.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&z<10)j[Q]=Z,z++}return z>0?j:void 0},u3=()=>{let $=document.querySelectorAll(`[${S}]`);if(!$.length)return;let j=new Set,z=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||j.has(Z))continue;let q=Z.getAttribute(S);if(!q)continue;let G=parseInt(Z.getAttribute(Z3)||"0",10)||0,W=()=>{if(j.has(Z))return;j.add(Z),z.unobserve(Z);let X=h3(Z);H(q,X)};if(G>0)setTimeout(W,G);else W()}},{threshold:0});for(let J of Array.from($)){let Q=parseFloat(J.getAttribute(S3)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((q)=>{for(let G of q){let W=G.target;if(!G.isIntersecting||j.has(W))continue;let X=W.getAttribute(S);if(!X)continue;let N=parseInt(W.getAttribute(Z3)||"0",10)||0,Y=()=>{if(j.has(W))return;j.add(W),Z.unobserve(W);let O=h3(W);H(X,O)};if(N>0)setTimeout(Y,N);else Y()}},{threshold:Q});Z.observe(J)}else z.observe(J)}};var q3=null,m3=()=>{if(!q3)q3=new Set(M3());return q3},V7=($)=>{let j=m3();if(!j.size)return!1;for(let z of j)if($===z||$.endsWith(`.${z}`))return!0;return!1},p3=()=>{if(!m3().size)return;document.addEventListener("click",(j)=>{let z=j.target.closest("a");if(!z)return;let J=z.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!V7(Q.hostname))return;z.href=T(J)}catch{}})};var x7="buy.stripe.com",Y7=($,j)=>{try{let z=new URL($);if(z.hostname!==x7)return $;if(z.searchParams.has("client_reference_id"))return $;return z.searchParams.set("client_reference_id",j),z.toString()}catch{return $}},c3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j||!j.href)return;let z=F();if(!z)return;j.href=Y7(j.href,z)})};var u=($)=>{let j=F(),z=B();K("payment",{...j&&{visitorUid:j},...z&&{sessionUid:z},...$.amount!=null&&{amount:$.amount},...$.currency&&{currency:$.currency},...$.transactionId&&{transactionId:$.transactionId},...$.email&&{email:$.email},...$.name&&{name:$.name},...$.customerId&&{customerId:$.customerId},...$.isRenewal!=null&&{isRenewal:$.isRenewal},...$.isRefund!=null&&{isRefund:$.isRefund}})};var m=($)=>{let j=F();K("identify",{...j&&{visitorUid:j},userId:$.userId,name:$.name,email:$.email,image:$.image,profileData:$.profileData})};var M7=500,H7=30,k=[],G3=null,l3=!1,d3=!1,M=($,j)=>{if(l3)return;if(G3){G3($,j);return}if(k.length>=M7)return;k.push({tag:$,payload:j})},o3=[],N7=()=>{let $=[],j=P();if(j)$.push(j);let z=f();if(z)$.push(`${z}/api/track`);let J=L();if(J)$.push(`${J}/events`);return $},y=($)=>o3.some((j)=>$.indexOf(j)===0)||$.indexOf("analytics.flowsery.com")!==-1,D7=($)=>{if(typeof $==="string")return $;if($ instanceof URL)return $.href;return $?.url??""},g3=0,n3=new Set,U7=()=>{window.addEventListener("error",($)=>{if($.target&&$.target!==window)return;M("error",{message:$.message,source:$.filename,line:$.lineno,column:$.colno,stack:$.error?.stack?.slice(0,2000)})}),window.addEventListener("error",($)=>{let j=$.target;if(!j||j===window)return;if(typeof j.tagName!=="string")return;let z=j.src||j.href;if(!z)return;if(y(z))return;if(n3.has(z))return;if(g3>=H7)return;g3++,n3.add(z),M("network",{url:w(z),method:"GET",status:0,ok:!1,error:"resource load failed",resource:j.tagName.toLowerCase()})},!0),document.addEventListener("securitypolicyviolation",($)=>{M("error",{message:`CSP blocked ${$.blockedURI||"inline"} (${$.effectiveDirective})`,source:$.sourceFile||void 0,line:$.lineNumber||void 0,csp:!0,violatedDirective:$.violatedDirective,blockedURI:$.blockedURI,disposition:$.disposition})}),window.addEventListener("unhandledrejection",($)=>{let j=$.reason,z,J;if(j instanceof Error)z=j.message,J=j.stack?.slice(0,2000);else if(typeof j==="string")z=j;else z=s3(j);M("error",{message:z,stack:J,unhandledRejection:!0})})},W3=!1,s3=($)=>{try{if($===null)return"null";if($===void 0)return"undefined";if(typeof $==="string")return $.slice(0,2000);if(typeof $==="number"||typeof $==="boolean")return String($);if(typeof $==="bigint")return`${$.toString()}n`;if($ instanceof Error)return`${$.name}: ${$.message}`;return(JSON.stringify($,(z,J)=>typeof J==="bigint"?`${J.toString()}n`:J)??String($)).slice(0,2000)}catch{try{return String($).slice(0,2000)}catch{return"[Unserializable]"}}},w7=()=>{if(x3())return;let $=["log","info","warn","error","debug"];for(let j of $){let z=console[j];if(typeof z!=="function")continue;let J=z.bind(console);console[j]=function(...Q){if(J(...Q),W3)return;W3=!0;try{let Z=N3(Q.slice(0,10).map(s3).join(" ")).slice(0,4000);M("console",{level:j,message:Z})}catch{}finally{W3=!1}}}},L7=()=>{let $=window.fetch;if(typeof $==="function"){let Z=$.bind(window);window.fetch=(q,G)=>{let W=D7(q),X=(G?.method||q?.method||"GET").toUpperCase(),N=Date.now();return Z(q,G).then((Y)=>{if(!y(W))M("network",{url:w(W),method:X,status:Y.status,ok:Y.status>=200&&Y.status<400,durationMs:Date.now()-N});return Y},(Y)=>{if(!y(W))M("network",{url:w(W),method:X,status:0,ok:!1,error:Y?.message,durationMs:Date.now()-N});throw Y})}}let j=XMLHttpRequest.prototype,z=j.open,J=j.send;j.open=function(Z,q,...G){return this.__fsNet={method:(Z||"GET").toUpperCase(),url:typeof q==="string"?q:q.href,startedAt:0},z.apply(this,[Z,q,...G])},j.send=function(...Z){let q=this.__fsNet;if(q)q.startedAt=Date.now(),this.addEventListener("loadend",()=>{if(!y(q.url))M("network",{url:w(q.url),method:q.method,status:this.status,ok:this.status>=200&&this.status<400,durationMs:Date.now()-q.startedAt})});return J.apply(this,Z)};try{let Z=navigator.sendBeacon;if(typeof Z==="function")navigator.sendBeacon=function(q,G){let W=Z.call(navigator,q,G??void 0),X=typeof q==="string"?q:q.href;if(!y(X))M("network",{url:w(X),method:"BEACON",status:W?202:0,ok:W});return W}}catch{}let Q=(Z,q,G)=>{try{let W=window[Z];if(typeof W!=="function")return;window[Z]=new Proxy(W,{construct(X,N,Y){let O=Reflect.construct(X,N,Y),B3=String(N[0]??"");if(!y(B3))O.addEventListener("error",()=>{if(!G(O))return;M("network",{url:w(B3),method:q,status:0,ok:!1,error:`${q.toLowerCase()} error`})});return O}})}catch{}};Q("WebSocket","WS",()=>!0),Q("EventSource","SSE",(Z)=>Z.readyState===2)},i3=()=>{if(d3)return;d3=!0,o3=N7(),U7(),w7(),L7(),window.__flEarly={drain($){G3=$;let j=k;k=[];for(let z of j)$(z.tag,z.payload)},stop(){l3=!0,k=[]}}};var y7=()=>{try{if(c()||!U()||a())return;if(g()&&!n())return;if(l()&&!o())return;if(!s())return;let $=B();if($&&!i($,r()))return;i3()}catch{}};y7();var O7=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let $=document.createElement("script");$.src=Y3(),$.defer=!0,$.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild($)},r3=($)=>{let[j,...z]=$;switch(j){case"identify":m(z[0]);break;case"payment":u(z[0]);break;default:H(j,z[0]);break}},F3=()=>{if(c())return;if(!U())return;if(a())return;if(g()&&!n())return;if(K3()&&!V3())return;if(l()&&!o())return;if(I3(),P3(),R3(),_3(),E3(),u3(),p3(),c3(),s()){let z=B();if(!z||i(z,r()))O7()}let $=window,j=$.flowsery?.q||[];for(let z of j)r3(z);$.flowsery=function(...z){r3(z)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",F3);else F3();var O$=async($)=>{let j=window;return j.__flowsery_config=$,F3(),{trackEvent:H,trackPayment:u,trackPageview:D,identify:m,stop:J3,reset:$3,getTrackingParams:E,buildCrossDomainUrl:T,getVisitorId:F,getSessionId:B}};export{u as trackPayment,D as trackPageview,H as trackEvent,J3 as stopHeartbeat,$3 as reset,O$ as initFlowsery,m as identify,F as getVisitorId,E as getTrackingParams,B as getSessionId,T as buildCrossDomainUrl};
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var f=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(z)=>{let $=Math.random()*16|0;return(z==="x"?$:$&3|8).toString(16)})},o=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var x=()=>{return window.__flowsery_config||null},X=()=>{return document.querySelector("script[data-fl-website-id]")},M=()=>{let z=x();if(z)return z.websiteId;return X()?.getAttribute("data-fl-website-id")||""},s=()=>{return x()?.apiUrl??null},i=()=>{let z=x();if(z?.apiBase)return z.apiBase;let $=X(),j=$?.getAttribute("data-api");if(j)return j;let J=$?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},w=()=>{return"https://analytics.flowsery.com/analytics"},T=()=>{let z=x();if(z?.domain)return z.domain;return X()?.getAttribute("data-domain")||location.hostname},D=()=>{let z=x();if(z)return!!z.cookieless;return X()?.hasAttribute("data-cookieless")??!1},Ez=new Set(["localhost","127.0.0.1","[::1]"]),r=()=>{return Ez.has(location.hostname)||location.hostname.endsWith(".local")},t=()=>{let z=x();if(z)return!!z.local;return X()?.hasAttribute("data-local")??!1},a=()=>{return location.protocol==="file:"},e=()=>{let z=x();if(z)return!!z.allowFileProtocol;return X()?.hasAttribute("data-allow-file-protocol")??!1},zz=()=>{try{return window.self!==window.top}catch{return!0}},$z=()=>{let z=x();if(z)return!!z.allowIframe;return X()?.hasAttribute("data-allow-iframe")??!1};var v=()=>{let z=x();if(z)return!!z.hashMode;return X()?.src?.includes(".hash.js")??!1},jz=()=>{let z=x();if(z)return!!z.recording;return X()?.hasAttribute("data-recording")??!1},hz=(z)=>{let $=2166136261;for(let j=0;j<z.length;j++)$^=z.charCodeAt(j),$=Math.imul($,16777619);return($>>>0)%100},Jz=(z,$)=>{if(!Number.isFinite($)||$>=100)return!0;if($<=0)return!1;return hz(z)<$},l=(z)=>z==null||!Number.isFinite(z)?100:Math.max(0,Math.min(100,Math.floor(z))),Az=(z,$)=>{if(typeof z==="number")return l(z);let j=X()?.getAttribute($);return l(j!=null&&j!==""?Number(j):null)},Qz=()=>Az(x()?.recordingSampleRate,"data-recording-sample");var Zz=()=>{let z=`recording${v()?".hash":""}.js`,$=X()?.src;if($)return $.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,z);return`https://cdn.flowsery.com/${z}`},qz=()=>{let z=x();if(z?.allowedHostnames)return z.allowedHostnames;let j=X()?.getAttribute("data-allowed-hostnames");return j?j.split(",").map((J)=>J.trim()).filter(Boolean):[]},Wz=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},Fz=()=>{let z=new URLSearchParams(window.location.search),$={};for(let j of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=z.get(j);if(J)$[j]=J}return $};var Bz=s(),_z=61440,xz=3,mz=1000,Xz=(z,$,j)=>{try{let J=new XMLHttpRequest;if(J.open("POST",z,!0),J.setRequestHeader("Content-Type","application/json"),j>0){let Q=()=>{let Z=xz-j;setTimeout(()=>Xz(z,$,j-1),mz*Math.pow(2,Z))};J.onreadystatechange=()=>{if(J.readyState!==4)return;if(J.status===0||J.status>=500)Q()},J.onerror=Q}J.send($)}catch(J){}},Gz=(z,$,j=!1)=>{Xz(z,$,j?xz:0)},pz=(z,$)=>Bz??(z?`${$}/api/track`:`${w()}/events`),F=(z,$,j)=>{let J=i(),Q=!!J,Z=pz(Q,J),K=M(),G=JSON.stringify({...$,websiteId:K,type:z}),B=j?.retry??!1;if(Bz||!Q){Gz(Z,G,B);return}if(G.length>_z){Gz(Z,G,B);return}if(typeof navigator.sendBeacon==="function"){let U=new Blob([G],{type:"application/json"});if(navigator.sendBeacon(Z,U))return}fetch(Z,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0}).catch(()=>{})};var y="_fs_vid",L="_fs_sid",H="_fs_sts",Sz=1800000,R="_fs_vid",E="_fs_sid",cz=(z)=>{let $=document.cookie.match(new RegExp(`(?:^|; )${z}=([^;]*)`));return $?decodeURIComponent($[1]):null},Kz=(z,$,j)=>{let J=new Date(Date.now()+j*86400000).toUTCString(),Q=T(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${z}=${encodeURIComponent($)};expires=${J};path=/${Z};SameSite=Lax;Secure`},nz=(z)=>{let $=T(),j=$?`;domain=.${$}`:"";document.cookie=`${z}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${j};SameSite=Lax;Secure`},gz=()=>{let z=new URLSearchParams(window.location.search),$=z.get(R)||void 0,j=z.get(E)||void 0;if($||j){z.delete(R),z.delete(E);let J=z.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:$,sid:j}},b=null,Vz=()=>{if(b===null)b=gz();return b},q=()=>{if(D())return;let z=Vz();if(z.vid){Kz(y,z.vid,730);let j=z.vid;return z.vid=void 0,j}let $=cz(y);if(!$)$=f(),Kz(y,$,730);return $},W=()=>{if(D())return;let z=Vz();if(z.sid){let Q=z.sid;return sessionStorage.setItem(L,Q),sessionStorage.setItem(H,Date.now().toString()),z.sid=void 0,Q}let $=Date.now(),j=parseInt(sessionStorage.getItem(H)||"0",10),J=sessionStorage.getItem(L);if(!J||$-j>Sz)J=f(),sessionStorage.setItem(L,J);return sessionStorage.setItem(H,$.toString()),J},Yz=()=>{if(D())return;sessionStorage.setItem(H,Date.now().toString())},k=()=>{let z=q(),$=W();return{...z&&{_fs_vid:z},...$&&{_fs_sid:$}}},N=(z)=>{let $=k(),j=new URL(z);if($._fs_vid)j.searchParams.set(R,$._fs_vid);if($._fs_sid)j.searchParams.set(E,$._fs_sid);return j.toString()},h=()=>{nz(y),sessionStorage.removeItem(L),sessionStorage.removeItem(H),b=null};var dz=5000,_=0,u=0,O=null,lz=()=>{let z=document.documentElement,$=window.scrollY||z.scrollTop,j=z.scrollHeight-z.clientHeight;if(j<=0)return 100;return Math.min(100,Math.round($/j*100))},A=()=>{_++},Uz=()=>{let z=lz();u=Math.max(u,z);let $=q(),j=W();F("heartbeat",{...$&&{visitorUid:$},...j&&{sessionUid:j},path:location.pathname,scrollDepth:u,isVisible:document.visibilityState==="visible",interactionCount:_}),Yz()},Mz=()=>{_=0,u=0},Hz=()=>{document.addEventListener("click",A,{passive:!0}),document.addEventListener("scroll",A,{passive:!0}),document.addEventListener("keydown",A,{passive:!0}),O=setInterval(Uz,dz),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")Uz()})},m=()=>{if(O)clearInterval(O),O=null};var Nz="",wz=!1,Y=()=>{let z=v(),$=z?location.href:location.pathname+location.search;if($===Nz)return;Nz=$,Mz();let j=Fz(),J=q(),Q=W(),Z=z?location.pathname+location.hash:location.pathname;if(F("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:j.utm_source,utmMedium:j.utm_medium,utmCampaign:j.utm_campaign,utmTerm:j.utm_term,utmContent:j.utm_content,ref:j.ref,source:j.source,via:j.via}),!wz){wz=!0;let K=w();if(K){let G=JSON.stringify({type:"geo",websiteId:M(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${K}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},Dz=()=>{Y();let{pushState:z,replaceState:$}=history;if(history.pushState=function(...j){z.apply(this,j),Y()},history.replaceState=function(...j){$.apply(this,j),Y()},window.addEventListener("popstate",()=>Y()),v())window.addEventListener("hashchange",()=>Y())};var vz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j)return;try{let J=new URL(j);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=q(),Z=W();if(!Q||!Z)return;F("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:j})}catch{}})};var oz=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,yz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j||!oz.test(j))return;let J=q(),Q=W();F("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:j}})})};var V=(z,$)=>{let j=q(),J=W();F("goal",{...j&&{visitorUid:j},...J&&{sessionUid:J},name:z,metadata:$})};var p="data-fs-goal",Lz="data-fs-goal-",sz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(Lz)&&J.name!==p){let Q=J.name.slice(Lz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},bz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest(`[${p}]`);if(!$)return;let j=$.getAttribute(p);if(!j)return;let J=sz($);V(j,J)})};var C="data-fs-scroll",Oz="data-fs-scroll-threshold",S="data-fs-scroll-delay",kz="data-fs-scroll-",iz=new Set([C,Oz,S]),uz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(kz)&&!iz.has(J.name)){let Q=J.name.slice(kz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},Cz=()=>{let z=document.querySelectorAll(`[${C}]`);if(!z.length)return;let $=new Set,j=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||$.has(Z))continue;let K=Z.getAttribute(C);if(!K)continue;let G=parseInt(Z.getAttribute(S)||"0",10)||0,B=()=>{if($.has(Z))return;$.add(Z),j.unobserve(Z);let U=uz(Z);V(K,U)};if(G>0)setTimeout(B,G);else B()}},{threshold:0});for(let J of Array.from(z)){let Q=parseFloat(J.getAttribute(Oz)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((K)=>{for(let G of K){let B=G.target;if(!G.isIntersecting||$.has(B))continue;let U=B.getAttribute(C);if(!U)continue;let g=parseInt(B.getAttribute(S)||"0",10)||0,d=()=>{if($.has(B))return;$.add(B),Z.unobserve(B);let Rz=uz(B);V(U,Rz)};if(g>0)setTimeout(d,g);else d()}},{threshold:Q});Z.observe(J)}else j.observe(J)}};var c=null,Pz=()=>{if(!c)c=new Set(qz());return c},rz=(z)=>{let $=Pz();if(!$.size)return!1;for(let j of $)if(z===j||z.endsWith(`.${j}`))return!0;return!1},Iz=()=>{if(!Pz().size)return;document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let J=j.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!rz(Q.hostname))return;j.href=N(J)}catch{}})};var tz="buy.stripe.com",az=(z,$)=>{try{let j=new URL(z);if(j.hostname!==tz)return z;if(j.searchParams.has("client_reference_id"))return z;return j.searchParams.set("client_reference_id",$),j.toString()}catch{return z}},fz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$||!$.href)return;let j=q();if(!j)return;$.href=az($.href,j)})};var P=(z)=>{let $=q(),j=W();F("payment",{...$&&{visitorUid:$},...j&&{sessionUid:j},...z.amount!=null&&{amount:z.amount},...z.currency&&{currency:z.currency},...z.transactionId&&{transactionId:z.transactionId},...z.email&&{email:z.email},...z.name&&{name:z.name},...z.customerId&&{customerId:z.customerId},...z.isRenewal!=null&&{isRenewal:z.isRenewal},...z.isRefund!=null&&{isRefund:z.isRefund}})};var I=(z)=>{let $=q();F("identify",{...$&&{visitorUid:$},userId:z.userId,name:z.name,email:z.email,image:z.image,profileData:z.profileData})};var ez=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let z=document.createElement("script");z.src=Zz(),z.defer=!0,z.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild(z)},Tz=(z)=>{let[$,...j]=z;switch($){case"identify":I(j[0]);break;case"payment":P(j[0]);break;default:V($,j[0]);break}},n=()=>{if(o())return;if(!M())return;if(Wz())return;if(r()&&!t())return;if(a()&&!e())return;if(zz()&&!$z())return;if(Dz(),Hz(),vz(),yz(),bz(),Cz(),Iz(),fz(),jz()){let j=W();if(!j||Jz(j,Qz()))ez()}let z=window,$=z.flowsery?.q||[];for(let j of $)Tz(j);z.flowsery=function(...j){Tz(j)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",n);else n();var r3=async(z)=>{let $=window;return $.__flowsery_config=z,n(),{trackEvent:V,trackPayment:P,trackPageview:Y,identify:I,stop:m,reset:h,getTrackingParams:k,buildCrossDomainUrl:N,getVisitorId:q,getSessionId:W}};export{P as trackPayment,Y as trackPageview,V as trackEvent,m as stopHeartbeat,h as reset,r3 as initFlowsery,I as identify,q as getVisitorId,k as getTrackingParams,W as getSessionId,N as buildCrossDomainUrl};
1
+ var p=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,($)=>{let j=Math.random()*16|0;return($==="x"?j:j&3|8).toString(16)})},c=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var V=()=>{return window.__flowsery_config||null},x=()=>{return document.querySelector("script[data-fl-website-id]")},U=()=>{let $=V();if($)return $.websiteId;return x()?.getAttribute("data-fl-website-id")||""},P=()=>{return V()?.apiUrl??null},f=()=>{let $=V();if($?.apiBase)return $.apiBase;let j=x(),z=j?.getAttribute("data-api");if(z)return z;let J=j?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},L=()=>{return"https://analytics.flowsery.com/analytics"},d=()=>{let $=V();if($?.domain)return $.domain;return x()?.getAttribute("data-domain")||location.hostname},C=()=>{let $=V();if($)return!!$.cookieless;return x()?.hasAttribute("data-cookieless")??!1},a3=new Set(["localhost","127.0.0.1","[::1]"]),g=()=>{return a3.has(location.hostname)||location.hostname.endsWith(".local")},n=()=>{let $=V();if($)return!!$.local;return x()?.hasAttribute("data-local")??!1},K3=()=>{return location.protocol==="file:"},V3=()=>{let $=V();if($)return!!$.allowFileProtocol;return x()?.hasAttribute("data-allow-file-protocol")??!1},l=()=>{try{return window.self!==window.top}catch{return!0}},o=()=>{let $=V();if($)return!!$.allowIframe;return x()?.hasAttribute("data-allow-iframe")??!1};var x3=()=>{let $=V();if($)return!!$.disableConsole;return x()?.hasAttribute("data-disable-console")??!1},I=()=>{let $=V();if($)return!!$.hashMode;return x()?.src?.includes(".hash.js")??!1},s=()=>{let $=V();if($)return!!$.recording;return x()?.hasAttribute("data-recording")??!1},t3=($)=>{let j=2166136261;for(let z=0;z<$.length;z++)j^=$.charCodeAt(z),j=Math.imul(j,16777619);return(j>>>0)%100},i=($,j)=>{if(!Number.isFinite(j)||j>=100)return!0;if(j<=0)return!1;return t3($)<j},X3=($)=>$==null||!Number.isFinite($)?100:Math.max(0,Math.min(100,Math.floor($))),e3=($,j)=>{if(typeof $==="number")return X3($);let z=x()?.getAttribute(j);return X3(z!=null&&z!==""?Number(z):null)},r=()=>e3(V()?.recordingSampleRate,"data-recording-sample");var Y3=()=>{let $=`recording${I()?".hash":""}.js`,j=x()?.src;if(j)return j.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,$);return`https://cdn.flowsery.com/${$}`},M3=()=>{let $=V();if($?.allowedHostnames)return $.allowedHostnames;let z=x()?.getAttribute("data-allowed-hostnames");return z?z.split(",").map((J)=>J.trim()).filter(Boolean):[]},a=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},H3=()=>{let $=new URLSearchParams(window.location.search),j={};for(let z of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=$.get(z);if(J)j[z]=J}return j},$7=/(token|auth|key|secret|password|passwd|pwd|session|sig|signature|code|access[_-]?token|api[_-]?key|email|bearer)/i,w=($)=>{try{let j=new URL($,location.href);return j.searchParams.forEach((z,J)=>{if($7.test(J))j.searchParams.set(J,"REDACTED")}),j.origin+j.pathname+j.search}catch{return $.split("?")[0]}},N3=($)=>{return $.replace(/[\w.+-]+@[\w-]+\.[\w.-]+/g,"[email]").replace(/\b[\w-]{24,}\b/g,"[token]")};var U3=P(),j7=61440,w3=3,z7=1000,L3=($,j,z)=>{try{let J=new XMLHttpRequest;if(J.open("POST",$,!0),J.setRequestHeader("Content-Type","application/json"),z>0){let Q=()=>{let Z=w3-z;setTimeout(()=>L3($,j,z-1),z7*Math.pow(2,Z))};J.onreadystatechange=()=>{if(J.readyState!==4)return;if(J.status===0||J.status>=500)Q()},J.onerror=Q}J.send(j)}catch(J){}},D3=($,j,z=!1)=>{L3($,j,z?w3:0)},J7=($,j)=>U3??($?`${j}/api/track`:`${L()}/events`),K=($,j,z)=>{let J=f(),Q=!!J,Z=J7(Q,J),q=U(),G=JSON.stringify({...j,websiteId:q,type:$}),W=z?.retry??!1;if(U3||!Q){D3(Z,G,W);return}if(G.length>j7){D3(Z,G,W);return}if(typeof navigator.sendBeacon==="function"){let X=new Blob([G],{type:"application/json"});if(navigator.sendBeacon(Z,X))return}fetch(Z,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0}).catch(()=>{})};var R="_fs_vid",_="_fs_sid",b="_fs_sts",Q7=1800000,t="_fs_vid",e="_fs_sid",Z7=($)=>{let j=document.cookie.match(new RegExp(`(?:^|; )${$}=([^;]*)`));return j?decodeURIComponent(j[1]):null},y3=($,j,z)=>{let J=new Date(Date.now()+z*86400000).toUTCString(),Q=d(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${$}=${encodeURIComponent(j)};expires=${J};path=/${Z};SameSite=Lax;Secure`},q7=($)=>{let j=d(),z=j?`;domain=.${j}`:"";document.cookie=`${$}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${z};SameSite=Lax;Secure`},W7=()=>{let $=new URLSearchParams(window.location.search),j=$.get(t)||void 0,z=$.get(e)||void 0;if(j||z){$.delete(t),$.delete(e);let J=$.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:j,sid:z}},A=null,O3=()=>{if(A===null)A=W7();return A},F=()=>{if(C())return;let $=O3();if($.vid){y3(R,$.vid,730);let z=$.vid;return $.vid=void 0,z}let j=Z7(R);if(!j)j=p(),y3(R,j,730);return j},B=()=>{if(C())return;let $=O3();if($.sid){let Q=$.sid;return sessionStorage.setItem(_,Q),sessionStorage.setItem(b,Date.now().toString()),$.sid=void 0,Q}let j=Date.now(),z=parseInt(sessionStorage.getItem(b)||"0",10),J=sessionStorage.getItem(_);if(!J||j-z>Q7)J=p(),sessionStorage.setItem(_,J);return sessionStorage.setItem(b,j.toString()),J},b3=()=>{if(C())return;sessionStorage.setItem(b,Date.now().toString())},E=()=>{let $=F(),j=B();return{...$&&{_fs_vid:$},...j&&{_fs_sid:j}}},T=($)=>{let j=E(),z=new URL($);if(j._fs_vid)z.searchParams.set(t,j._fs_vid);if(j._fs_sid)z.searchParams.set(e,j._fs_sid);return z.toString()},$3=()=>{q7(R),sessionStorage.removeItem(_),sessionStorage.removeItem(b),A=null};var G7=5000,z3=0,v=0,h=null,F7=()=>{let $=document.documentElement,j=window.scrollY||$.scrollTop,z=$.scrollHeight-$.clientHeight;if(z<=0)return 100;return Math.min(100,Math.round(j/z*100))},j3=()=>{z3++},T3=()=>{let $=F7();v=Math.max(v,$);let j=F(),z=B();K("heartbeat",{...j&&{visitorUid:j},...z&&{sessionUid:z},path:location.pathname,scrollDepth:v,isVisible:document.visibilityState==="visible",interactionCount:z3}),b3()},k3=()=>{z3=0,v=0},P3=()=>{document.addEventListener("click",j3,{passive:!0}),document.addEventListener("scroll",j3,{passive:!0}),document.addEventListener("keydown",j3,{passive:!0}),h=setInterval(T3,G7),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")T3()})},J3=()=>{if(h)clearInterval(h),h=null};var f3="",C3=!1,D=()=>{let $=I(),j=$?location.href:location.pathname+location.search;if(j===f3)return;f3=j,k3();let z=H3(),J=F(),Q=B(),Z=$?location.pathname+location.hash:location.pathname;if(K("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:z.utm_source,utmMedium:z.utm_medium,utmCampaign:z.utm_campaign,utmTerm:z.utm_term,utmContent:z.utm_content,ref:z.ref,source:z.source,via:z.via}),!C3){C3=!0;let q=L();if(q){let G=JSON.stringify({type:"geo",websiteId:U(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${q}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},I3=()=>{D();let{pushState:$,replaceState:j}=history;if(history.pushState=function(...z){$.apply(this,z),D()},history.replaceState=function(...z){j.apply(this,z),D()},window.addEventListener("popstate",()=>D()),I())window.addEventListener("hashchange",()=>D())};var R3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let z=j.href;if(!z)return;try{let J=new URL(z);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=F(),Z=B();if(!Q||!Z)return;K("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:z})}catch{}})};var B7=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,_3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let z=j.href;if(!z||!B7.test(z))return;let J=F(),Q=B();K("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:z}})})};var H=($,j)=>{let z=F(),J=B();K("goal",{...z&&{visitorUid:z},...J&&{sessionUid:J},name:$,metadata:j})};var Q3="data-fs-goal",A3="data-fs-goal-",X7=($)=>{let j={},z=0;for(let J of Array.from($.attributes))if(J.name.startsWith(A3)&&J.name!==Q3){let Q=J.name.slice(A3.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&z<10)j[Q]=Z,z++}return z>0?j:void 0},E3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest(`[${Q3}]`);if(!j)return;let z=j.getAttribute(Q3);if(!z)return;let J=X7(j);H(z,J)})};var S="data-fs-scroll",S3="data-fs-scroll-threshold",Z3="data-fs-scroll-delay",v3="data-fs-scroll-",K7=new Set([S,S3,Z3]),h3=($)=>{let j={},z=0;for(let J of Array.from($.attributes))if(J.name.startsWith(v3)&&!K7.has(J.name)){let Q=J.name.slice(v3.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&z<10)j[Q]=Z,z++}return z>0?j:void 0},u3=()=>{let $=document.querySelectorAll(`[${S}]`);if(!$.length)return;let j=new Set,z=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||j.has(Z))continue;let q=Z.getAttribute(S);if(!q)continue;let G=parseInt(Z.getAttribute(Z3)||"0",10)||0,W=()=>{if(j.has(Z))return;j.add(Z),z.unobserve(Z);let X=h3(Z);H(q,X)};if(G>0)setTimeout(W,G);else W()}},{threshold:0});for(let J of Array.from($)){let Q=parseFloat(J.getAttribute(S3)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((q)=>{for(let G of q){let W=G.target;if(!G.isIntersecting||j.has(W))continue;let X=W.getAttribute(S);if(!X)continue;let N=parseInt(W.getAttribute(Z3)||"0",10)||0,Y=()=>{if(j.has(W))return;j.add(W),Z.unobserve(W);let O=h3(W);H(X,O)};if(N>0)setTimeout(Y,N);else Y()}},{threshold:Q});Z.observe(J)}else z.observe(J)}};var q3=null,m3=()=>{if(!q3)q3=new Set(M3());return q3},V7=($)=>{let j=m3();if(!j.size)return!1;for(let z of j)if($===z||$.endsWith(`.${z}`))return!0;return!1},p3=()=>{if(!m3().size)return;document.addEventListener("click",(j)=>{let z=j.target.closest("a");if(!z)return;let J=z.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!V7(Q.hostname))return;z.href=T(J)}catch{}})};var x7="buy.stripe.com",Y7=($,j)=>{try{let z=new URL($);if(z.hostname!==x7)return $;if(z.searchParams.has("client_reference_id"))return $;return z.searchParams.set("client_reference_id",j),z.toString()}catch{return $}},c3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j||!j.href)return;let z=F();if(!z)return;j.href=Y7(j.href,z)})};var u=($)=>{let j=F(),z=B();K("payment",{...j&&{visitorUid:j},...z&&{sessionUid:z},...$.amount!=null&&{amount:$.amount},...$.currency&&{currency:$.currency},...$.transactionId&&{transactionId:$.transactionId},...$.email&&{email:$.email},...$.name&&{name:$.name},...$.customerId&&{customerId:$.customerId},...$.isRenewal!=null&&{isRenewal:$.isRenewal},...$.isRefund!=null&&{isRefund:$.isRefund}})};var m=($)=>{let j=F();K("identify",{...j&&{visitorUid:j},userId:$.userId,name:$.name,email:$.email,image:$.image,profileData:$.profileData})};var M7=500,H7=30,k=[],G3=null,l3=!1,d3=!1,M=($,j)=>{if(l3)return;if(G3){G3($,j);return}if(k.length>=M7)return;k.push({tag:$,payload:j})},o3=[],N7=()=>{let $=[],j=P();if(j)$.push(j);let z=f();if(z)$.push(`${z}/api/track`);let J=L();if(J)$.push(`${J}/events`);return $},y=($)=>o3.some((j)=>$.indexOf(j)===0)||$.indexOf("analytics.flowsery.com")!==-1,D7=($)=>{if(typeof $==="string")return $;if($ instanceof URL)return $.href;return $?.url??""},g3=0,n3=new Set,U7=()=>{window.addEventListener("error",($)=>{if($.target&&$.target!==window)return;M("error",{message:$.message,source:$.filename,line:$.lineno,column:$.colno,stack:$.error?.stack?.slice(0,2000)})}),window.addEventListener("error",($)=>{let j=$.target;if(!j||j===window)return;if(typeof j.tagName!=="string")return;let z=j.src||j.href;if(!z)return;if(y(z))return;if(n3.has(z))return;if(g3>=H7)return;g3++,n3.add(z),M("network",{url:w(z),method:"GET",status:0,ok:!1,error:"resource load failed",resource:j.tagName.toLowerCase()})},!0),document.addEventListener("securitypolicyviolation",($)=>{M("error",{message:`CSP blocked ${$.blockedURI||"inline"} (${$.effectiveDirective})`,source:$.sourceFile||void 0,line:$.lineNumber||void 0,csp:!0,violatedDirective:$.violatedDirective,blockedURI:$.blockedURI,disposition:$.disposition})}),window.addEventListener("unhandledrejection",($)=>{let j=$.reason,z,J;if(j instanceof Error)z=j.message,J=j.stack?.slice(0,2000);else if(typeof j==="string")z=j;else z=s3(j);M("error",{message:z,stack:J,unhandledRejection:!0})})},W3=!1,s3=($)=>{try{if($===null)return"null";if($===void 0)return"undefined";if(typeof $==="string")return $.slice(0,2000);if(typeof $==="number"||typeof $==="boolean")return String($);if(typeof $==="bigint")return`${$.toString()}n`;if($ instanceof Error)return`${$.name}: ${$.message}`;return(JSON.stringify($,(z,J)=>typeof J==="bigint"?`${J.toString()}n`:J)??String($)).slice(0,2000)}catch{try{return String($).slice(0,2000)}catch{return"[Unserializable]"}}},w7=()=>{if(x3())return;let $=["log","info","warn","error","debug"];for(let j of $){let z=console[j];if(typeof z!=="function")continue;let J=z.bind(console);console[j]=function(...Q){if(J(...Q),W3)return;W3=!0;try{let Z=N3(Q.slice(0,10).map(s3).join(" ")).slice(0,4000);M("console",{level:j,message:Z})}catch{}finally{W3=!1}}}},L7=()=>{let $=window.fetch;if(typeof $==="function"){let Z=$.bind(window);window.fetch=(q,G)=>{let W=D7(q),X=(G?.method||q?.method||"GET").toUpperCase(),N=Date.now();return Z(q,G).then((Y)=>{if(!y(W))M("network",{url:w(W),method:X,status:Y.status,ok:Y.status>=200&&Y.status<400,durationMs:Date.now()-N});return Y},(Y)=>{if(!y(W))M("network",{url:w(W),method:X,status:0,ok:!1,error:Y?.message,durationMs:Date.now()-N});throw Y})}}let j=XMLHttpRequest.prototype,z=j.open,J=j.send;j.open=function(Z,q,...G){return this.__fsNet={method:(Z||"GET").toUpperCase(),url:typeof q==="string"?q:q.href,startedAt:0},z.apply(this,[Z,q,...G])},j.send=function(...Z){let q=this.__fsNet;if(q)q.startedAt=Date.now(),this.addEventListener("loadend",()=>{if(!y(q.url))M("network",{url:w(q.url),method:q.method,status:this.status,ok:this.status>=200&&this.status<400,durationMs:Date.now()-q.startedAt})});return J.apply(this,Z)};try{let Z=navigator.sendBeacon;if(typeof Z==="function")navigator.sendBeacon=function(q,G){let W=Z.call(navigator,q,G??void 0),X=typeof q==="string"?q:q.href;if(!y(X))M("network",{url:w(X),method:"BEACON",status:W?202:0,ok:W});return W}}catch{}let Q=(Z,q,G)=>{try{let W=window[Z];if(typeof W!=="function")return;window[Z]=new Proxy(W,{construct(X,N,Y){let O=Reflect.construct(X,N,Y),B3=String(N[0]??"");if(!y(B3))O.addEventListener("error",()=>{if(!G(O))return;M("network",{url:w(B3),method:q,status:0,ok:!1,error:`${q.toLowerCase()} error`})});return O}})}catch{}};Q("WebSocket","WS",()=>!0),Q("EventSource","SSE",(Z)=>Z.readyState===2)},i3=()=>{if(d3)return;d3=!0,o3=N7(),U7(),w7(),L7(),window.__flEarly={drain($){G3=$;let j=k;k=[];for(let z of j)$(z.tag,z.payload)},stop(){l3=!0,k=[]}}};var y7=()=>{try{if(c()||!U()||a())return;if(g()&&!n())return;if(l()&&!o())return;if(!s())return;let $=B();if($&&!i($,r()))return;i3()}catch{}};y7();var O7=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let $=document.createElement("script");$.src=Y3(),$.defer=!0,$.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild($)},r3=($)=>{let[j,...z]=$;switch(j){case"identify":m(z[0]);break;case"payment":u(z[0]);break;default:H(j,z[0]);break}},F3=()=>{if(c())return;if(!U())return;if(a())return;if(g()&&!n())return;if(K3()&&!V3())return;if(l()&&!o())return;if(I3(),P3(),R3(),_3(),E3(),u3(),p3(),c3(),s()){let z=B();if(!z||i(z,r()))O7()}let $=window,j=$.flowsery?.q||[];for(let z of j)r3(z);$.flowsery=function(...z){r3(z)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",F3);else F3();var O$=async($)=>{let j=window;return j.__flowsery_config=$,F3(),{trackEvent:H,trackPayment:u,trackPageview:D,identify:m,stop:J3,reset:$3,getTrackingParams:E,buildCrossDomainUrl:T,getVisitorId:F,getSessionId:B}};export{u as trackPayment,D as trackPageview,H as trackEvent,J3 as stopHeartbeat,$3 as reset,O$ as initFlowsery,m as identify,F as getVisitorId,E as getTrackingParams,B as getSessionId,T as buildCrossDomainUrl};
package/dist/main.hash.js CHANGED
@@ -1 +1 @@
1
- (()=>{var{defineProperty:R,getOwnPropertyNames:Az,getOwnPropertyDescriptor:_z}=Object,mz=Object.prototype.hasOwnProperty;function pz(z){return this[z]}var Sz=(z)=>{var $=(o??=new WeakMap).get(z),j;if($)return $;if($=R({},"__esModule",{value:!0}),z&&typeof z==="object"||typeof z==="function"){for(var J of Az(z))if(!mz.call($,J))R($,J,{get:pz.bind(z,J),enumerable:!(j=_z(z,J))||j.enumerable})}return o.set(z,$),$},o;var cz=(z)=>z;function nz(z,$){this[z]=cz.bind(null,$)}var gz=(z,$)=>{for(var j in $)R(z,j,{get:$[j],enumerable:!0,configurable:!0,set:nz.bind($,j)})};var x3={};gz(x3,{trackPayment:()=>D,trackPageview:()=>Y,trackEvent:()=>K,stopHeartbeat:()=>f,reset:()=>C,initFlowsery:()=>B3,identify:()=>v,getVisitorId:()=>q,getTrackingParams:()=>w,getSessionId:()=>W,buildCrossDomainUrl:()=>H});var E=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(z)=>{let $=Math.random()*16|0;return(z==="x"?$:$&3|8).toString(16)})},i=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var x=()=>{return window.__flowsery_config||null},X=()=>{return document.querySelector("script[data-fl-website-id]")},M=()=>{let z=x();if(z)return z.websiteId;return X()?.getAttribute("data-fl-website-id")||""},r=()=>{return x()?.apiUrl??null},t=()=>{let z=x();if(z?.apiBase)return z.apiBase;let $=X(),j=$?.getAttribute("data-api");if(j)return j;let J=$?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},y=()=>{return"https://analytics.flowsery.com/analytics"},h=()=>{let z=x();if(z?.domain)return z.domain;return X()?.getAttribute("data-domain")||location.hostname},L=()=>{let z=x();if(z)return!!z.cookieless;return X()?.hasAttribute("data-cookieless")??!1},dz=new Set(["localhost","127.0.0.1","[::1]"]),a=()=>{return dz.has(location.hostname)||location.hostname.endsWith(".local")},e=()=>{let z=x();if(z)return!!z.local;return X()?.hasAttribute("data-local")??!1},zz=()=>{return location.protocol==="file:"},$z=()=>{let z=x();if(z)return!!z.allowFileProtocol;return X()?.hasAttribute("data-allow-file-protocol")??!1},jz=()=>{try{return window.self!==window.top}catch{return!0}},Jz=()=>{let z=x();if(z)return!!z.allowIframe;return X()?.hasAttribute("data-allow-iframe")??!1};var b=()=>{let z=x();if(z)return!!z.hashMode;return X()?.src?.includes(".hash.js")??!1},Qz=()=>{let z=x();if(z)return!!z.recording;return X()?.hasAttribute("data-recording")??!1},lz=(z)=>{let $=2166136261;for(let j=0;j<z.length;j++)$^=z.charCodeAt(j),$=Math.imul($,16777619);return($>>>0)%100},Zz=(z,$)=>{if(!Number.isFinite($)||$>=100)return!0;if($<=0)return!1;return lz(z)<$},s=(z)=>z==null||!Number.isFinite(z)?100:Math.max(0,Math.min(100,Math.floor(z))),oz=(z,$)=>{if(typeof z==="number")return s(z);let j=X()?.getAttribute($);return s(j!=null&&j!==""?Number(j):null)},qz=()=>oz(x()?.recordingSampleRate,"data-recording-sample");var Wz=()=>{let z=`recording${b()?".hash":""}.js`,$=X()?.src;if($)return $.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,z);return`https://cdn.flowsery.com/${z}`},Fz=()=>{let z=x();if(z?.allowedHostnames)return z.allowedHostnames;let j=X()?.getAttribute("data-allowed-hostnames");return j?j.split(",").map((J)=>J.trim()).filter(Boolean):[]},Gz=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},Bz=()=>{let z=new URLSearchParams(window.location.search),$={};for(let j of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=z.get(j);if(J)$[j]=J}return $};var Xz=r(),sz=61440,Kz=3,iz=1000,Vz=(z,$,j)=>{try{let J=new XMLHttpRequest;if(J.open("POST",z,!0),J.setRequestHeader("Content-Type","application/json"),j>0){let Q=()=>{let Z=Kz-j;setTimeout(()=>Vz(z,$,j-1),iz*Math.pow(2,Z))};J.onreadystatechange=()=>{if(J.readyState!==4)return;if(J.status===0||J.status>=500)Q()},J.onerror=Q}J.send($)}catch(J){}},xz=(z,$,j=!1)=>{Vz(z,$,j?Kz:0)},rz=(z,$)=>Xz??(z?`${$}/api/track`:`${y()}/events`),F=(z,$,j)=>{let J=t(),Q=!!J,Z=rz(Q,J),V=M(),G=JSON.stringify({...$,websiteId:V,type:z}),B=j?.retry??!1;if(Xz||!Q){xz(Z,G,B);return}if(G.length>sz){xz(Z,G,B);return}if(typeof navigator.sendBeacon==="function"){let U=new Blob([G],{type:"application/json"});if(navigator.sendBeacon(Z,U))return}fetch(Z,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0}).catch(()=>{})};var k="_fs_vid",u="_fs_sid",N="_fs_sts",tz=1800000,A="_fs_vid",_="_fs_sid",az=(z)=>{let $=document.cookie.match(new RegExp(`(?:^|; )${z}=([^;]*)`));return $?decodeURIComponent($[1]):null},Yz=(z,$,j)=>{let J=new Date(Date.now()+j*86400000).toUTCString(),Q=h(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${z}=${encodeURIComponent($)};expires=${J};path=/${Z};SameSite=Lax;Secure`},ez=(z)=>{let $=h(),j=$?`;domain=.${$}`:"";document.cookie=`${z}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${j};SameSite=Lax;Secure`},z3=()=>{let z=new URLSearchParams(window.location.search),$=z.get(A)||void 0,j=z.get(_)||void 0;if($||j){z.delete(A),z.delete(_);let J=z.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:$,sid:j}},O=null,Uz=()=>{if(O===null)O=z3();return O},q=()=>{if(L())return;let z=Uz();if(z.vid){Yz(k,z.vid,730);let j=z.vid;return z.vid=void 0,j}let $=az(k);if(!$)$=E(),Yz(k,$,730);return $},W=()=>{if(L())return;let z=Uz();if(z.sid){let Q=z.sid;return sessionStorage.setItem(u,Q),sessionStorage.setItem(N,Date.now().toString()),z.sid=void 0,Q}let $=Date.now(),j=parseInt(sessionStorage.getItem(N)||"0",10),J=sessionStorage.getItem(u);if(!J||$-j>tz)J=E(),sessionStorage.setItem(u,J);return sessionStorage.setItem(N,$.toString()),J},Mz=()=>{if(L())return;sessionStorage.setItem(N,Date.now().toString())},w=()=>{let z=q(),$=W();return{...z&&{_fs_vid:z},...$&&{_fs_sid:$}}},H=(z)=>{let $=w(),j=new URL(z);if($._fs_vid)j.searchParams.set(A,$._fs_vid);if($._fs_sid)j.searchParams.set(_,$._fs_sid);return j.toString()},C=()=>{ez(k),sessionStorage.removeItem(u),sessionStorage.removeItem(N),O=null};var $3=5000,p=0,P=0,I=null,j3=()=>{let z=document.documentElement,$=window.scrollY||z.scrollTop,j=z.scrollHeight-z.clientHeight;if(j<=0)return 100;return Math.min(100,Math.round($/j*100))},m=()=>{p++},Hz=()=>{let z=j3();P=Math.max(P,z);let $=q(),j=W();F("heartbeat",{...$&&{visitorUid:$},...j&&{sessionUid:j},path:location.pathname,scrollDepth:P,isVisible:document.visibilityState==="visible",interactionCount:p}),Mz()},Nz=()=>{p=0,P=0},wz=()=>{document.addEventListener("click",m,{passive:!0}),document.addEventListener("scroll",m,{passive:!0}),document.addEventListener("keydown",m,{passive:!0}),I=setInterval(Hz,$3),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")Hz()})},f=()=>{if(I)clearInterval(I),I=null};var Dz="",vz=!1,Y=()=>{let z=b(),$=z?location.href:location.pathname+location.search;if($===Dz)return;Dz=$,Nz();let j=Bz(),J=q(),Q=W(),Z=z?location.pathname+location.hash:location.pathname;if(F("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:j.utm_source,utmMedium:j.utm_medium,utmCampaign:j.utm_campaign,utmTerm:j.utm_term,utmContent:j.utm_content,ref:j.ref,source:j.source,via:j.via}),!vz){vz=!0;let V=y();if(V){let G=JSON.stringify({type:"geo",websiteId:M(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${V}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},yz=()=>{Y();let{pushState:z,replaceState:$}=history;if(history.pushState=function(...j){z.apply(this,j),Y()},history.replaceState=function(...j){$.apply(this,j),Y()},window.addEventListener("popstate",()=>Y()),b())window.addEventListener("hashchange",()=>Y())};var Lz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j)return;try{let J=new URL(j);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=q(),Z=W();if(!Q||!Z)return;F("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:j})}catch{}})};var J3=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,bz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j||!J3.test(j))return;let J=q(),Q=W();F("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:j}})})};var K=(z,$)=>{let j=q(),J=W();F("goal",{...j&&{visitorUid:j},...J&&{sessionUid:J},name:z,metadata:$})};var S="data-fs-goal",kz="data-fs-goal-",Q3=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(kz)&&J.name!==S){let Q=J.name.slice(kz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},uz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest(`[${S}]`);if(!$)return;let j=$.getAttribute(S);if(!j)return;let J=Q3($);K(j,J)})};var T="data-fs-scroll",Pz="data-fs-scroll-threshold",c="data-fs-scroll-delay",Oz="data-fs-scroll-",Z3=new Set([T,Pz,c]),Cz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(Oz)&&!Z3.has(J.name)){let Q=J.name.slice(Oz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},Iz=()=>{let z=document.querySelectorAll(`[${T}]`);if(!z.length)return;let $=new Set,j=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||$.has(Z))continue;let V=Z.getAttribute(T);if(!V)continue;let G=parseInt(Z.getAttribute(c)||"0",10)||0,B=()=>{if($.has(Z))return;$.add(Z),j.unobserve(Z);let U=Cz(Z);K(V,U)};if(G>0)setTimeout(B,G);else B()}},{threshold:0});for(let J of Array.from(z)){let Q=parseFloat(J.getAttribute(Pz)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((V)=>{for(let G of V){let B=G.target;if(!G.isIntersecting||$.has(B))continue;let U=B.getAttribute(T);if(!U)continue;let d=parseInt(B.getAttribute(c)||"0",10)||0,l=()=>{if($.has(B))return;$.add(B),Z.unobserve(B);let hz=Cz(B);K(U,hz)};if(d>0)setTimeout(l,d);else l()}},{threshold:Q});Z.observe(J)}else j.observe(J)}};var n=null,fz=()=>{if(!n)n=new Set(Fz());return n},q3=(z)=>{let $=fz();if(!$.size)return!1;for(let j of $)if(z===j||z.endsWith(`.${j}`))return!0;return!1},Tz=()=>{if(!fz().size)return;document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let J=j.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!q3(Q.hostname))return;j.href=H(J)}catch{}})};var W3="buy.stripe.com",F3=(z,$)=>{try{let j=new URL(z);if(j.hostname!==W3)return z;if(j.searchParams.has("client_reference_id"))return z;return j.searchParams.set("client_reference_id",$),j.toString()}catch{return z}},Rz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$||!$.href)return;let j=q();if(!j)return;$.href=F3($.href,j)})};var D=(z)=>{let $=q(),j=W();F("payment",{...$&&{visitorUid:$},...j&&{sessionUid:j},...z.amount!=null&&{amount:z.amount},...z.currency&&{currency:z.currency},...z.transactionId&&{transactionId:z.transactionId},...z.email&&{email:z.email},...z.name&&{name:z.name},...z.customerId&&{customerId:z.customerId},...z.isRenewal!=null&&{isRenewal:z.isRenewal},...z.isRefund!=null&&{isRefund:z.isRefund}})};var v=(z)=>{let $=q();F("identify",{...$&&{visitorUid:$},userId:z.userId,name:z.name,email:z.email,image:z.image,profileData:z.profileData})};var G3=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let z=document.createElement("script");z.src=Wz(),z.defer=!0,z.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild(z)},Ez=(z)=>{let[$,...j]=z;switch($){case"identify":v(j[0]);break;case"payment":D(j[0]);break;default:K($,j[0]);break}},g=()=>{if(i())return;if(!M())return;if(Gz())return;if(a()&&!e())return;if(zz()&&!$z())return;if(jz()&&!Jz())return;if(yz(),wz(),Lz(),bz(),uz(),Iz(),Tz(),Rz(),Qz()){let j=W();if(!j||Zz(j,qz()))G3()}let z=window,$=z.flowsery?.q||[];for(let j of $)Ez(j);z.flowsery=function(...j){Ez(j)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",g);else g();var B3=async(z)=>{let $=window;return $.__flowsery_config=z,g(),{trackEvent:K,trackPayment:D,trackPageview:Y,identify:v,stop:f,reset:C,getTrackingParams:w,buildCrossDomainUrl:H,getVisitorId:q,getSessionId:W}};})();
1
+ (()=>{var{defineProperty:d,getOwnPropertyNames:e3,getOwnPropertyDescriptor:$7}=Object,j7=Object.prototype.hasOwnProperty;function z7($){return this[$]}var J7=($)=>{var j=(K3??=new WeakMap).get($),z;if(j)return j;if(j=d({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var J of e3($))if(!j7.call(j,J))d(j,J,{get:z7.bind($,J),enumerable:!(z=$7($,J))||z.enumerable})}return K3.set($,j),j},K3;var Q7=($)=>$;function Z7($,j){this[$]=Q7.bind(null,j)}var q7=($,j)=>{for(var z in j)d($,z,{get:j[z],enumerable:!0,configurable:!0,set:Z7.bind(j,z)})};var v7={};q7(v7,{trackPayment:()=>P,trackPageview:()=>N,trackEvent:()=>M,stopHeartbeat:()=>p,reset:()=>S,initFlowsery:()=>E7,identify:()=>f,getVisitorId:()=>F,getTrackingParams:()=>k,getSessionId:()=>B,buildCrossDomainUrl:()=>y});var g=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,($)=>{let j=Math.random()*16|0;return($==="x"?j:j&3|8).toString(16)})},n=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var V=()=>{return window.__flowsery_config||null},x=()=>{return document.querySelector("script[data-fl-website-id]")},U=()=>{let $=V();if($)return $.websiteId;return x()?.getAttribute("data-fl-website-id")||""},I=()=>{return V()?.apiUrl??null},R=()=>{let $=V();if($?.apiBase)return $.apiBase;let j=x(),z=j?.getAttribute("data-api");if(z)return z;let J=j?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},L=()=>{return"https://analytics.flowsery.com/analytics"},l=()=>{let $=V();if($?.domain)return $.domain;return x()?.getAttribute("data-domain")||location.hostname},_=()=>{let $=V();if($)return!!$.cookieless;return x()?.hasAttribute("data-cookieless")??!1},W7=new Set(["localhost","127.0.0.1","[::1]"]),o=()=>{return W7.has(location.hostname)||location.hostname.endsWith(".local")},s=()=>{let $=V();if($)return!!$.local;return x()?.hasAttribute("data-local")??!1},x3=()=>{return location.protocol==="file:"},Y3=()=>{let $=V();if($)return!!$.allowFileProtocol;return x()?.hasAttribute("data-allow-file-protocol")??!1},i=()=>{try{return window.self!==window.top}catch{return!0}},r=()=>{let $=V();if($)return!!$.allowIframe;return x()?.hasAttribute("data-allow-iframe")??!1};var M3=()=>{let $=V();if($)return!!$.disableConsole;return x()?.hasAttribute("data-disable-console")??!1},A=()=>{let $=V();if($)return!!$.hashMode;return x()?.src?.includes(".hash.js")??!1},a=()=>{let $=V();if($)return!!$.recording;return x()?.hasAttribute("data-recording")??!1},G7=($)=>{let j=2166136261;for(let z=0;z<$.length;z++)j^=$.charCodeAt(z),j=Math.imul(j,16777619);return(j>>>0)%100},t=($,j)=>{if(!Number.isFinite(j)||j>=100)return!0;if(j<=0)return!1;return G7($)<j},V3=($)=>$==null||!Number.isFinite($)?100:Math.max(0,Math.min(100,Math.floor($))),F7=($,j)=>{if(typeof $==="number")return V3($);let z=x()?.getAttribute(j);return V3(z!=null&&z!==""?Number(z):null)},e=()=>F7(V()?.recordingSampleRate,"data-recording-sample");var H3=()=>{let $=`recording${A()?".hash":""}.js`,j=x()?.src;if(j)return j.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,$);return`https://cdn.flowsery.com/${$}`},N3=()=>{let $=V();if($?.allowedHostnames)return $.allowedHostnames;let z=x()?.getAttribute("data-allowed-hostnames");return z?z.split(",").map((J)=>J.trim()).filter(Boolean):[]},$3=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},D3=()=>{let $=new URLSearchParams(window.location.search),j={};for(let z of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=$.get(z);if(J)j[z]=J}return j},B7=/(token|auth|key|secret|password|passwd|pwd|session|sig|signature|code|access[_-]?token|api[_-]?key|email|bearer)/i,w=($)=>{try{let j=new URL($,location.href);return j.searchParams.forEach((z,J)=>{if(B7.test(J))j.searchParams.set(J,"REDACTED")}),j.origin+j.pathname+j.search}catch{return $.split("?")[0]}},U3=($)=>{return $.replace(/[\w.+-]+@[\w-]+\.[\w.-]+/g,"[email]").replace(/\b[\w-]{24,}\b/g,"[token]")};var L3=I(),X7=61440,y3=3,K7=1000,O3=($,j,z)=>{try{let J=new XMLHttpRequest;if(J.open("POST",$,!0),J.setRequestHeader("Content-Type","application/json"),z>0){let Q=()=>{let Z=y3-z;setTimeout(()=>O3($,j,z-1),K7*Math.pow(2,Z))};J.onreadystatechange=()=>{if(J.readyState!==4)return;if(J.status===0||J.status>=500)Q()},J.onerror=Q}J.send(j)}catch(J){}},w3=($,j,z=!1)=>{O3($,j,z?y3:0)},V7=($,j)=>L3??($?`${j}/api/track`:`${L()}/events`),K=($,j,z)=>{let J=R(),Q=!!J,Z=V7(Q,J),q=U(),G=JSON.stringify({...j,websiteId:q,type:$}),W=z?.retry??!1;if(L3||!Q){w3(Z,G,W);return}if(G.length>X7){w3(Z,G,W);return}if(typeof navigator.sendBeacon==="function"){let X=new Blob([G],{type:"application/json"});if(navigator.sendBeacon(Z,X))return}fetch(Z,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0}).catch(()=>{})};var E="_fs_vid",v="_fs_sid",T="_fs_sts",x7=1800000,j3="_fs_vid",z3="_fs_sid",Y7=($)=>{let j=document.cookie.match(new RegExp(`(?:^|; )${$}=([^;]*)`));return j?decodeURIComponent(j[1]):null},b3=($,j,z)=>{let J=new Date(Date.now()+z*86400000).toUTCString(),Q=l(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${$}=${encodeURIComponent(j)};expires=${J};path=/${Z};SameSite=Lax;Secure`},M7=($)=>{let j=l(),z=j?`;domain=.${j}`:"";document.cookie=`${$}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${z};SameSite=Lax;Secure`},H7=()=>{let $=new URLSearchParams(window.location.search),j=$.get(j3)||void 0,z=$.get(z3)||void 0;if(j||z){$.delete(j3),$.delete(z3);let J=$.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:j,sid:z}},h=null,T3=()=>{if(h===null)h=H7();return h},F=()=>{if(_())return;let $=T3();if($.vid){b3(E,$.vid,730);let z=$.vid;return $.vid=void 0,z}let j=Y7(E);if(!j)j=g(),b3(E,j,730);return j},B=()=>{if(_())return;let $=T3();if($.sid){let Q=$.sid;return sessionStorage.setItem(v,Q),sessionStorage.setItem(T,Date.now().toString()),$.sid=void 0,Q}let j=Date.now(),z=parseInt(sessionStorage.getItem(T)||"0",10),J=sessionStorage.getItem(v);if(!J||j-z>x7)J=g(),sessionStorage.setItem(v,J);return sessionStorage.setItem(T,j.toString()),J},k3=()=>{if(_())return;sessionStorage.setItem(T,Date.now().toString())},k=()=>{let $=F(),j=B();return{...$&&{_fs_vid:$},...j&&{_fs_sid:j}}},y=($)=>{let j=k(),z=new URL($);if(j._fs_vid)z.searchParams.set(j3,j._fs_vid);if(j._fs_sid)z.searchParams.set(z3,j._fs_sid);return z.toString()},S=()=>{M7(E),sessionStorage.removeItem(v),sessionStorage.removeItem(T),h=null};var N7=5000,Q3=0,u=0,m=null,D7=()=>{let $=document.documentElement,j=window.scrollY||$.scrollTop,z=$.scrollHeight-$.clientHeight;if(z<=0)return 100;return Math.min(100,Math.round(j/z*100))},J3=()=>{Q3++},P3=()=>{let $=D7();u=Math.max(u,$);let j=F(),z=B();K("heartbeat",{...j&&{visitorUid:j},...z&&{sessionUid:z},path:location.pathname,scrollDepth:u,isVisible:document.visibilityState==="visible",interactionCount:Q3}),k3()},f3=()=>{Q3=0,u=0},C3=()=>{document.addEventListener("click",J3,{passive:!0}),document.addEventListener("scroll",J3,{passive:!0}),document.addEventListener("keydown",J3,{passive:!0}),m=setInterval(P3,N7),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")P3()})},p=()=>{if(m)clearInterval(m),m=null};var I3="",R3=!1,N=()=>{let $=A(),j=$?location.href:location.pathname+location.search;if(j===I3)return;I3=j,f3();let z=D3(),J=F(),Q=B(),Z=$?location.pathname+location.hash:location.pathname;if(K("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:z.utm_source,utmMedium:z.utm_medium,utmCampaign:z.utm_campaign,utmTerm:z.utm_term,utmContent:z.utm_content,ref:z.ref,source:z.source,via:z.via}),!R3){R3=!0;let q=L();if(q){let G=JSON.stringify({type:"geo",websiteId:U(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${q}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},_3=()=>{N();let{pushState:$,replaceState:j}=history;if(history.pushState=function(...z){$.apply(this,z),N()},history.replaceState=function(...z){j.apply(this,z),N()},window.addEventListener("popstate",()=>N()),A())window.addEventListener("hashchange",()=>N())};var A3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let z=j.href;if(!z)return;try{let J=new URL(z);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=F(),Z=B();if(!Q||!Z)return;K("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:z})}catch{}})};var U7=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,E3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let z=j.href;if(!z||!U7.test(z))return;let J=F(),Q=B();K("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:z}})})};var M=($,j)=>{let z=F(),J=B();K("goal",{...z&&{visitorUid:z},...J&&{sessionUid:J},name:$,metadata:j})};var Z3="data-fs-goal",v3="data-fs-goal-",w7=($)=>{let j={},z=0;for(let J of Array.from($.attributes))if(J.name.startsWith(v3)&&J.name!==Z3){let Q=J.name.slice(v3.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&z<10)j[Q]=Z,z++}return z>0?j:void 0},h3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest(`[${Z3}]`);if(!j)return;let z=j.getAttribute(Z3);if(!z)return;let J=w7(j);M(z,J)})};var c="data-fs-scroll",m3="data-fs-scroll-threshold",q3="data-fs-scroll-delay",S3="data-fs-scroll-",L7=new Set([c,m3,q3]),u3=($)=>{let j={},z=0;for(let J of Array.from($.attributes))if(J.name.startsWith(S3)&&!L7.has(J.name)){let Q=J.name.slice(S3.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&z<10)j[Q]=Z,z++}return z>0?j:void 0},p3=()=>{let $=document.querySelectorAll(`[${c}]`);if(!$.length)return;let j=new Set,z=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||j.has(Z))continue;let q=Z.getAttribute(c);if(!q)continue;let G=parseInt(Z.getAttribute(q3)||"0",10)||0,W=()=>{if(j.has(Z))return;j.add(Z),z.unobserve(Z);let X=u3(Z);M(q,X)};if(G>0)setTimeout(W,G);else W()}},{threshold:0});for(let J of Array.from($)){let Q=parseFloat(J.getAttribute(m3)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((q)=>{for(let G of q){let W=G.target;if(!G.isIntersecting||j.has(W))continue;let X=W.getAttribute(c);if(!X)continue;let D=parseInt(W.getAttribute(q3)||"0",10)||0,Y=()=>{if(j.has(W))return;j.add(W),Z.unobserve(W);let b=u3(W);M(X,b)};if(D>0)setTimeout(Y,D);else Y()}},{threshold:Q});Z.observe(J)}else z.observe(J)}};var W3=null,c3=()=>{if(!W3)W3=new Set(N3());return W3},y7=($)=>{let j=c3();if(!j.size)return!1;for(let z of j)if($===z||$.endsWith(`.${z}`))return!0;return!1},d3=()=>{if(!c3().size)return;document.addEventListener("click",(j)=>{let z=j.target.closest("a");if(!z)return;let J=z.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!y7(Q.hostname))return;z.href=y(J)}catch{}})};var O7="buy.stripe.com",b7=($,j)=>{try{let z=new URL($);if(z.hostname!==O7)return $;if(z.searchParams.has("client_reference_id"))return $;return z.searchParams.set("client_reference_id",j),z.toString()}catch{return $}},g3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j||!j.href)return;let z=F();if(!z)return;j.href=b7(j.href,z)})};var P=($)=>{let j=F(),z=B();K("payment",{...j&&{visitorUid:j},...z&&{sessionUid:z},...$.amount!=null&&{amount:$.amount},...$.currency&&{currency:$.currency},...$.transactionId&&{transactionId:$.transactionId},...$.email&&{email:$.email},...$.name&&{name:$.name},...$.customerId&&{customerId:$.customerId},...$.isRenewal!=null&&{isRenewal:$.isRenewal},...$.isRefund!=null&&{isRefund:$.isRefund}})};var f=($)=>{let j=F();K("identify",{...j&&{visitorUid:j},userId:$.userId,name:$.name,email:$.email,image:$.image,profileData:$.profileData})};var T7=500,k7=30,C=[],F3=null,s3=!1,n3=!1,H=($,j)=>{if(s3)return;if(F3){F3($,j);return}if(C.length>=T7)return;C.push({tag:$,payload:j})},i3=[],P7=()=>{let $=[],j=I();if(j)$.push(j);let z=R();if(z)$.push(`${z}/api/track`);let J=L();if(J)$.push(`${J}/events`);return $},O=($)=>i3.some((j)=>$.indexOf(j)===0)||$.indexOf("analytics.flowsery.com")!==-1,f7=($)=>{if(typeof $==="string")return $;if($ instanceof URL)return $.href;return $?.url??""},l3=0,o3=new Set,C7=()=>{window.addEventListener("error",($)=>{if($.target&&$.target!==window)return;H("error",{message:$.message,source:$.filename,line:$.lineno,column:$.colno,stack:$.error?.stack?.slice(0,2000)})}),window.addEventListener("error",($)=>{let j=$.target;if(!j||j===window)return;if(typeof j.tagName!=="string")return;let z=j.src||j.href;if(!z)return;if(O(z))return;if(o3.has(z))return;if(l3>=k7)return;l3++,o3.add(z),H("network",{url:w(z),method:"GET",status:0,ok:!1,error:"resource load failed",resource:j.tagName.toLowerCase()})},!0),document.addEventListener("securitypolicyviolation",($)=>{H("error",{message:`CSP blocked ${$.blockedURI||"inline"} (${$.effectiveDirective})`,source:$.sourceFile||void 0,line:$.lineNumber||void 0,csp:!0,violatedDirective:$.violatedDirective,blockedURI:$.blockedURI,disposition:$.disposition})}),window.addEventListener("unhandledrejection",($)=>{let j=$.reason,z,J;if(j instanceof Error)z=j.message,J=j.stack?.slice(0,2000);else if(typeof j==="string")z=j;else z=r3(j);H("error",{message:z,stack:J,unhandledRejection:!0})})},G3=!1,r3=($)=>{try{if($===null)return"null";if($===void 0)return"undefined";if(typeof $==="string")return $.slice(0,2000);if(typeof $==="number"||typeof $==="boolean")return String($);if(typeof $==="bigint")return`${$.toString()}n`;if($ instanceof Error)return`${$.name}: ${$.message}`;return(JSON.stringify($,(z,J)=>typeof J==="bigint"?`${J.toString()}n`:J)??String($)).slice(0,2000)}catch{try{return String($).slice(0,2000)}catch{return"[Unserializable]"}}},I7=()=>{if(M3())return;let $=["log","info","warn","error","debug"];for(let j of $){let z=console[j];if(typeof z!=="function")continue;let J=z.bind(console);console[j]=function(...Q){if(J(...Q),G3)return;G3=!0;try{let Z=U3(Q.slice(0,10).map(r3).join(" ")).slice(0,4000);H("console",{level:j,message:Z})}catch{}finally{G3=!1}}}},R7=()=>{let $=window.fetch;if(typeof $==="function"){let Z=$.bind(window);window.fetch=(q,G)=>{let W=f7(q),X=(G?.method||q?.method||"GET").toUpperCase(),D=Date.now();return Z(q,G).then((Y)=>{if(!O(W))H("network",{url:w(W),method:X,status:Y.status,ok:Y.status>=200&&Y.status<400,durationMs:Date.now()-D});return Y},(Y)=>{if(!O(W))H("network",{url:w(W),method:X,status:0,ok:!1,error:Y?.message,durationMs:Date.now()-D});throw Y})}}let j=XMLHttpRequest.prototype,z=j.open,J=j.send;j.open=function(Z,q,...G){return this.__fsNet={method:(Z||"GET").toUpperCase(),url:typeof q==="string"?q:q.href,startedAt:0},z.apply(this,[Z,q,...G])},j.send=function(...Z){let q=this.__fsNet;if(q)q.startedAt=Date.now(),this.addEventListener("loadend",()=>{if(!O(q.url))H("network",{url:w(q.url),method:q.method,status:this.status,ok:this.status>=200&&this.status<400,durationMs:Date.now()-q.startedAt})});return J.apply(this,Z)};try{let Z=navigator.sendBeacon;if(typeof Z==="function")navigator.sendBeacon=function(q,G){let W=Z.call(navigator,q,G??void 0),X=typeof q==="string"?q:q.href;if(!O(X))H("network",{url:w(X),method:"BEACON",status:W?202:0,ok:W});return W}}catch{}let Q=(Z,q,G)=>{try{let W=window[Z];if(typeof W!=="function")return;window[Z]=new Proxy(W,{construct(X,D,Y){let b=Reflect.construct(X,D,Y),X3=String(D[0]??"");if(!O(X3))b.addEventListener("error",()=>{if(!G(b))return;H("network",{url:w(X3),method:q,status:0,ok:!1,error:`${q.toLowerCase()} error`})});return b}})}catch{}};Q("WebSocket","WS",()=>!0),Q("EventSource","SSE",(Z)=>Z.readyState===2)},a3=()=>{if(n3)return;n3=!0,i3=P7(),C7(),I7(),R7(),window.__flEarly={drain($){F3=$;let j=C;C=[];for(let z of j)$(z.tag,z.payload)},stop(){s3=!0,C=[]}}};var _7=()=>{try{if(n()||!U()||$3())return;if(o()&&!s())return;if(i()&&!r())return;if(!a())return;let $=B();if($&&!t($,e()))return;a3()}catch{}};_7();var A7=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let $=document.createElement("script");$.src=H3(),$.defer=!0,$.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild($)},t3=($)=>{let[j,...z]=$;switch(j){case"identify":f(z[0]);break;case"payment":P(z[0]);break;default:M(j,z[0]);break}},B3=()=>{if(n())return;if(!U())return;if($3())return;if(o()&&!s())return;if(x3()&&!Y3())return;if(i()&&!r())return;if(_3(),C3(),A3(),E3(),h3(),p3(),d3(),g3(),a()){let z=B();if(!z||t(z,e()))A7()}let $=window,j=$.flowsery?.q||[];for(let z of j)t3(z);$.flowsery=function(...z){t3(z)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",B3);else B3();var E7=async($)=>{let j=window;return j.__flowsery_config=$,B3(),{trackEvent:M,trackPayment:P,trackPageview:N,identify:f,stop:p,reset:S,getTrackingParams:k,buildCrossDomainUrl:y,getVisitorId:F,getSessionId:B}};})();
package/dist/main.js CHANGED
@@ -1 +1 @@
1
- (()=>{var{defineProperty:R,getOwnPropertyNames:Az,getOwnPropertyDescriptor:_z}=Object,mz=Object.prototype.hasOwnProperty;function pz(z){return this[z]}var Sz=(z)=>{var $=(o??=new WeakMap).get(z),j;if($)return $;if($=R({},"__esModule",{value:!0}),z&&typeof z==="object"||typeof z==="function"){for(var J of Az(z))if(!mz.call($,J))R($,J,{get:pz.bind(z,J),enumerable:!(j=_z(z,J))||j.enumerable})}return o.set(z,$),$},o;var cz=(z)=>z;function nz(z,$){this[z]=cz.bind(null,$)}var gz=(z,$)=>{for(var j in $)R(z,j,{get:$[j],enumerable:!0,configurable:!0,set:nz.bind($,j)})};var x3={};gz(x3,{trackPayment:()=>D,trackPageview:()=>Y,trackEvent:()=>K,stopHeartbeat:()=>f,reset:()=>C,initFlowsery:()=>B3,identify:()=>v,getVisitorId:()=>q,getTrackingParams:()=>w,getSessionId:()=>W,buildCrossDomainUrl:()=>H});var E=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(z)=>{let $=Math.random()*16|0;return(z==="x"?$:$&3|8).toString(16)})},i=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var x=()=>{return window.__flowsery_config||null},X=()=>{return document.querySelector("script[data-fl-website-id]")},M=()=>{let z=x();if(z)return z.websiteId;return X()?.getAttribute("data-fl-website-id")||""},r=()=>{return x()?.apiUrl??null},t=()=>{let z=x();if(z?.apiBase)return z.apiBase;let $=X(),j=$?.getAttribute("data-api");if(j)return j;let J=$?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},y=()=>{return"https://analytics.flowsery.com/analytics"},h=()=>{let z=x();if(z?.domain)return z.domain;return X()?.getAttribute("data-domain")||location.hostname},L=()=>{let z=x();if(z)return!!z.cookieless;return X()?.hasAttribute("data-cookieless")??!1},dz=new Set(["localhost","127.0.0.1","[::1]"]),a=()=>{return dz.has(location.hostname)||location.hostname.endsWith(".local")},e=()=>{let z=x();if(z)return!!z.local;return X()?.hasAttribute("data-local")??!1},zz=()=>{return location.protocol==="file:"},$z=()=>{let z=x();if(z)return!!z.allowFileProtocol;return X()?.hasAttribute("data-allow-file-protocol")??!1},jz=()=>{try{return window.self!==window.top}catch{return!0}},Jz=()=>{let z=x();if(z)return!!z.allowIframe;return X()?.hasAttribute("data-allow-iframe")??!1};var b=()=>{let z=x();if(z)return!!z.hashMode;return X()?.src?.includes(".hash.js")??!1},Qz=()=>{let z=x();if(z)return!!z.recording;return X()?.hasAttribute("data-recording")??!1},lz=(z)=>{let $=2166136261;for(let j=0;j<z.length;j++)$^=z.charCodeAt(j),$=Math.imul($,16777619);return($>>>0)%100},Zz=(z,$)=>{if(!Number.isFinite($)||$>=100)return!0;if($<=0)return!1;return lz(z)<$},s=(z)=>z==null||!Number.isFinite(z)?100:Math.max(0,Math.min(100,Math.floor(z))),oz=(z,$)=>{if(typeof z==="number")return s(z);let j=X()?.getAttribute($);return s(j!=null&&j!==""?Number(j):null)},qz=()=>oz(x()?.recordingSampleRate,"data-recording-sample");var Wz=()=>{let z=`recording${b()?".hash":""}.js`,$=X()?.src;if($)return $.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,z);return`https://cdn.flowsery.com/${z}`},Fz=()=>{let z=x();if(z?.allowedHostnames)return z.allowedHostnames;let j=X()?.getAttribute("data-allowed-hostnames");return j?j.split(",").map((J)=>J.trim()).filter(Boolean):[]},Gz=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},Bz=()=>{let z=new URLSearchParams(window.location.search),$={};for(let j of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=z.get(j);if(J)$[j]=J}return $};var Xz=r(),sz=61440,Kz=3,iz=1000,Vz=(z,$,j)=>{try{let J=new XMLHttpRequest;if(J.open("POST",z,!0),J.setRequestHeader("Content-Type","application/json"),j>0){let Q=()=>{let Z=Kz-j;setTimeout(()=>Vz(z,$,j-1),iz*Math.pow(2,Z))};J.onreadystatechange=()=>{if(J.readyState!==4)return;if(J.status===0||J.status>=500)Q()},J.onerror=Q}J.send($)}catch(J){}},xz=(z,$,j=!1)=>{Vz(z,$,j?Kz:0)},rz=(z,$)=>Xz??(z?`${$}/api/track`:`${y()}/events`),F=(z,$,j)=>{let J=t(),Q=!!J,Z=rz(Q,J),V=M(),G=JSON.stringify({...$,websiteId:V,type:z}),B=j?.retry??!1;if(Xz||!Q){xz(Z,G,B);return}if(G.length>sz){xz(Z,G,B);return}if(typeof navigator.sendBeacon==="function"){let U=new Blob([G],{type:"application/json"});if(navigator.sendBeacon(Z,U))return}fetch(Z,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0}).catch(()=>{})};var k="_fs_vid",u="_fs_sid",N="_fs_sts",tz=1800000,A="_fs_vid",_="_fs_sid",az=(z)=>{let $=document.cookie.match(new RegExp(`(?:^|; )${z}=([^;]*)`));return $?decodeURIComponent($[1]):null},Yz=(z,$,j)=>{let J=new Date(Date.now()+j*86400000).toUTCString(),Q=h(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${z}=${encodeURIComponent($)};expires=${J};path=/${Z};SameSite=Lax;Secure`},ez=(z)=>{let $=h(),j=$?`;domain=.${$}`:"";document.cookie=`${z}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${j};SameSite=Lax;Secure`},z3=()=>{let z=new URLSearchParams(window.location.search),$=z.get(A)||void 0,j=z.get(_)||void 0;if($||j){z.delete(A),z.delete(_);let J=z.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:$,sid:j}},O=null,Uz=()=>{if(O===null)O=z3();return O},q=()=>{if(L())return;let z=Uz();if(z.vid){Yz(k,z.vid,730);let j=z.vid;return z.vid=void 0,j}let $=az(k);if(!$)$=E(),Yz(k,$,730);return $},W=()=>{if(L())return;let z=Uz();if(z.sid){let Q=z.sid;return sessionStorage.setItem(u,Q),sessionStorage.setItem(N,Date.now().toString()),z.sid=void 0,Q}let $=Date.now(),j=parseInt(sessionStorage.getItem(N)||"0",10),J=sessionStorage.getItem(u);if(!J||$-j>tz)J=E(),sessionStorage.setItem(u,J);return sessionStorage.setItem(N,$.toString()),J},Mz=()=>{if(L())return;sessionStorage.setItem(N,Date.now().toString())},w=()=>{let z=q(),$=W();return{...z&&{_fs_vid:z},...$&&{_fs_sid:$}}},H=(z)=>{let $=w(),j=new URL(z);if($._fs_vid)j.searchParams.set(A,$._fs_vid);if($._fs_sid)j.searchParams.set(_,$._fs_sid);return j.toString()},C=()=>{ez(k),sessionStorage.removeItem(u),sessionStorage.removeItem(N),O=null};var $3=5000,p=0,P=0,I=null,j3=()=>{let z=document.documentElement,$=window.scrollY||z.scrollTop,j=z.scrollHeight-z.clientHeight;if(j<=0)return 100;return Math.min(100,Math.round($/j*100))},m=()=>{p++},Hz=()=>{let z=j3();P=Math.max(P,z);let $=q(),j=W();F("heartbeat",{...$&&{visitorUid:$},...j&&{sessionUid:j},path:location.pathname,scrollDepth:P,isVisible:document.visibilityState==="visible",interactionCount:p}),Mz()},Nz=()=>{p=0,P=0},wz=()=>{document.addEventListener("click",m,{passive:!0}),document.addEventListener("scroll",m,{passive:!0}),document.addEventListener("keydown",m,{passive:!0}),I=setInterval(Hz,$3),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")Hz()})},f=()=>{if(I)clearInterval(I),I=null};var Dz="",vz=!1,Y=()=>{let z=b(),$=z?location.href:location.pathname+location.search;if($===Dz)return;Dz=$,Nz();let j=Bz(),J=q(),Q=W(),Z=z?location.pathname+location.hash:location.pathname;if(F("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:j.utm_source,utmMedium:j.utm_medium,utmCampaign:j.utm_campaign,utmTerm:j.utm_term,utmContent:j.utm_content,ref:j.ref,source:j.source,via:j.via}),!vz){vz=!0;let V=y();if(V){let G=JSON.stringify({type:"geo",websiteId:M(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${V}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},yz=()=>{Y();let{pushState:z,replaceState:$}=history;if(history.pushState=function(...j){z.apply(this,j),Y()},history.replaceState=function(...j){$.apply(this,j),Y()},window.addEventListener("popstate",()=>Y()),b())window.addEventListener("hashchange",()=>Y())};var Lz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j)return;try{let J=new URL(j);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=q(),Z=W();if(!Q||!Z)return;F("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:j})}catch{}})};var J3=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,bz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$)return;let j=$.href;if(!j||!J3.test(j))return;let J=q(),Q=W();F("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:j}})})};var K=(z,$)=>{let j=q(),J=W();F("goal",{...j&&{visitorUid:j},...J&&{sessionUid:J},name:z,metadata:$})};var S="data-fs-goal",kz="data-fs-goal-",Q3=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(kz)&&J.name!==S){let Q=J.name.slice(kz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},uz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest(`[${S}]`);if(!$)return;let j=$.getAttribute(S);if(!j)return;let J=Q3($);K(j,J)})};var T="data-fs-scroll",Pz="data-fs-scroll-threshold",c="data-fs-scroll-delay",Oz="data-fs-scroll-",Z3=new Set([T,Pz,c]),Cz=(z)=>{let $={},j=0;for(let J of Array.from(z.attributes))if(J.name.startsWith(Oz)&&!Z3.has(J.name)){let Q=J.name.slice(Oz.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&j<10)$[Q]=Z,j++}return j>0?$:void 0},Iz=()=>{let z=document.querySelectorAll(`[${T}]`);if(!z.length)return;let $=new Set,j=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||$.has(Z))continue;let V=Z.getAttribute(T);if(!V)continue;let G=parseInt(Z.getAttribute(c)||"0",10)||0,B=()=>{if($.has(Z))return;$.add(Z),j.unobserve(Z);let U=Cz(Z);K(V,U)};if(G>0)setTimeout(B,G);else B()}},{threshold:0});for(let J of Array.from(z)){let Q=parseFloat(J.getAttribute(Pz)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((V)=>{for(let G of V){let B=G.target;if(!G.isIntersecting||$.has(B))continue;let U=B.getAttribute(T);if(!U)continue;let d=parseInt(B.getAttribute(c)||"0",10)||0,l=()=>{if($.has(B))return;$.add(B),Z.unobserve(B);let hz=Cz(B);K(U,hz)};if(d>0)setTimeout(l,d);else l()}},{threshold:Q});Z.observe(J)}else j.observe(J)}};var n=null,fz=()=>{if(!n)n=new Set(Fz());return n},q3=(z)=>{let $=fz();if(!$.size)return!1;for(let j of $)if(z===j||z.endsWith(`.${j}`))return!0;return!1},Tz=()=>{if(!fz().size)return;document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let J=j.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!q3(Q.hostname))return;j.href=H(J)}catch{}})};var W3="buy.stripe.com",F3=(z,$)=>{try{let j=new URL(z);if(j.hostname!==W3)return z;if(j.searchParams.has("client_reference_id"))return z;return j.searchParams.set("client_reference_id",$),j.toString()}catch{return z}},Rz=()=>{document.addEventListener("click",(z)=>{let $=z.target.closest("a");if(!$||!$.href)return;let j=q();if(!j)return;$.href=F3($.href,j)})};var D=(z)=>{let $=q(),j=W();F("payment",{...$&&{visitorUid:$},...j&&{sessionUid:j},...z.amount!=null&&{amount:z.amount},...z.currency&&{currency:z.currency},...z.transactionId&&{transactionId:z.transactionId},...z.email&&{email:z.email},...z.name&&{name:z.name},...z.customerId&&{customerId:z.customerId},...z.isRenewal!=null&&{isRenewal:z.isRenewal},...z.isRefund!=null&&{isRefund:z.isRefund}})};var v=(z)=>{let $=q();F("identify",{...$&&{visitorUid:$},userId:z.userId,name:z.name,email:z.email,image:z.image,profileData:z.profileData})};var G3=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let z=document.createElement("script");z.src=Wz(),z.defer=!0,z.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild(z)},Ez=(z)=>{let[$,...j]=z;switch($){case"identify":v(j[0]);break;case"payment":D(j[0]);break;default:K($,j[0]);break}},g=()=>{if(i())return;if(!M())return;if(Gz())return;if(a()&&!e())return;if(zz()&&!$z())return;if(jz()&&!Jz())return;if(yz(),wz(),Lz(),bz(),uz(),Iz(),Tz(),Rz(),Qz()){let j=W();if(!j||Zz(j,qz()))G3()}let z=window,$=z.flowsery?.q||[];for(let j of $)Ez(j);z.flowsery=function(...j){Ez(j)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",g);else g();var B3=async(z)=>{let $=window;return $.__flowsery_config=z,g(),{trackEvent:K,trackPayment:D,trackPageview:Y,identify:v,stop:f,reset:C,getTrackingParams:w,buildCrossDomainUrl:H,getVisitorId:q,getSessionId:W}};})();
1
+ (()=>{var{defineProperty:d,getOwnPropertyNames:e3,getOwnPropertyDescriptor:$7}=Object,j7=Object.prototype.hasOwnProperty;function z7($){return this[$]}var J7=($)=>{var j=(K3??=new WeakMap).get($),z;if(j)return j;if(j=d({},"__esModule",{value:!0}),$&&typeof $==="object"||typeof $==="function"){for(var J of e3($))if(!j7.call(j,J))d(j,J,{get:z7.bind($,J),enumerable:!(z=$7($,J))||z.enumerable})}return K3.set($,j),j},K3;var Q7=($)=>$;function Z7($,j){this[$]=Q7.bind(null,j)}var q7=($,j)=>{for(var z in j)d($,z,{get:j[z],enumerable:!0,configurable:!0,set:Z7.bind(j,z)})};var v7={};q7(v7,{trackPayment:()=>P,trackPageview:()=>N,trackEvent:()=>M,stopHeartbeat:()=>p,reset:()=>S,initFlowsery:()=>E7,identify:()=>f,getVisitorId:()=>F,getTrackingParams:()=>k,getSessionId:()=>B,buildCrossDomainUrl:()=>y});var g=()=>{return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,($)=>{let j=Math.random()*16|0;return($==="x"?j:j&3|8).toString(16)})},n=()=>{if(typeof navigator>"u")return!0;return"webdriver"in navigator&&navigator.webdriver===!0};var V=()=>{return window.__flowsery_config||null},x=()=>{return document.querySelector("script[data-fl-website-id]")},U=()=>{let $=V();if($)return $.websiteId;return x()?.getAttribute("data-fl-website-id")||""},I=()=>{return V()?.apiUrl??null},R=()=>{let $=V();if($?.apiBase)return $.apiBase;let j=x(),z=j?.getAttribute("data-api");if(z)return z;let J=j?.src??"",Q=J.replace(/\/js\/(?:script|main|recording)(?:\.hash)?\.js.*/,"");return Q===J?"":Q},L=()=>{return"https://analytics.flowsery.com/analytics"},l=()=>{let $=V();if($?.domain)return $.domain;return x()?.getAttribute("data-domain")||location.hostname},_=()=>{let $=V();if($)return!!$.cookieless;return x()?.hasAttribute("data-cookieless")??!1},W7=new Set(["localhost","127.0.0.1","[::1]"]),o=()=>{return W7.has(location.hostname)||location.hostname.endsWith(".local")},s=()=>{let $=V();if($)return!!$.local;return x()?.hasAttribute("data-local")??!1},x3=()=>{return location.protocol==="file:"},Y3=()=>{let $=V();if($)return!!$.allowFileProtocol;return x()?.hasAttribute("data-allow-file-protocol")??!1},i=()=>{try{return window.self!==window.top}catch{return!0}},r=()=>{let $=V();if($)return!!$.allowIframe;return x()?.hasAttribute("data-allow-iframe")??!1};var M3=()=>{let $=V();if($)return!!$.disableConsole;return x()?.hasAttribute("data-disable-console")??!1},A=()=>{let $=V();if($)return!!$.hashMode;return x()?.src?.includes(".hash.js")??!1},a=()=>{let $=V();if($)return!!$.recording;return x()?.hasAttribute("data-recording")??!1},G7=($)=>{let j=2166136261;for(let z=0;z<$.length;z++)j^=$.charCodeAt(z),j=Math.imul(j,16777619);return(j>>>0)%100},t=($,j)=>{if(!Number.isFinite(j)||j>=100)return!0;if(j<=0)return!1;return G7($)<j},V3=($)=>$==null||!Number.isFinite($)?100:Math.max(0,Math.min(100,Math.floor($))),F7=($,j)=>{if(typeof $==="number")return V3($);let z=x()?.getAttribute(j);return V3(z!=null&&z!==""?Number(z):null)},e=()=>F7(V()?.recordingSampleRate,"data-recording-sample");var H3=()=>{let $=`recording${A()?".hash":""}.js`,j=x()?.src;if(j)return j.replace(/(?:script|main)(?:\.hash)?\.js(?:\?.*)?$/,$);return`https://cdn.flowsery.com/${$}`},N3=()=>{let $=V();if($?.allowedHostnames)return $.allowedHostnames;let z=x()?.getAttribute("data-allowed-hostnames");return z?z.split(",").map((J)=>J.trim()).filter(Boolean):[]},$3=()=>{try{return localStorage.getItem("flowsery_ignore")==="true"}catch{return!1}},D3=()=>{let $=new URLSearchParams(window.location.search),j={};for(let z of["utm_source","utm_medium","utm_campaign","utm_term","utm_content","ref","source","via"]){let J=$.get(z);if(J)j[z]=J}return j},B7=/(token|auth|key|secret|password|passwd|pwd|session|sig|signature|code|access[_-]?token|api[_-]?key|email|bearer)/i,w=($)=>{try{let j=new URL($,location.href);return j.searchParams.forEach((z,J)=>{if(B7.test(J))j.searchParams.set(J,"REDACTED")}),j.origin+j.pathname+j.search}catch{return $.split("?")[0]}},U3=($)=>{return $.replace(/[\w.+-]+@[\w-]+\.[\w.-]+/g,"[email]").replace(/\b[\w-]{24,}\b/g,"[token]")};var L3=I(),X7=61440,y3=3,K7=1000,O3=($,j,z)=>{try{let J=new XMLHttpRequest;if(J.open("POST",$,!0),J.setRequestHeader("Content-Type","application/json"),z>0){let Q=()=>{let Z=y3-z;setTimeout(()=>O3($,j,z-1),K7*Math.pow(2,Z))};J.onreadystatechange=()=>{if(J.readyState!==4)return;if(J.status===0||J.status>=500)Q()},J.onerror=Q}J.send(j)}catch(J){}},w3=($,j,z=!1)=>{O3($,j,z?y3:0)},V7=($,j)=>L3??($?`${j}/api/track`:`${L()}/events`),K=($,j,z)=>{let J=R(),Q=!!J,Z=V7(Q,J),q=U(),G=JSON.stringify({...j,websiteId:q,type:$}),W=z?.retry??!1;if(L3||!Q){w3(Z,G,W);return}if(G.length>X7){w3(Z,G,W);return}if(typeof navigator.sendBeacon==="function"){let X=new Blob([G],{type:"application/json"});if(navigator.sendBeacon(Z,X))return}fetch(Z,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0}).catch(()=>{})};var E="_fs_vid",v="_fs_sid",T="_fs_sts",x7=1800000,j3="_fs_vid",z3="_fs_sid",Y7=($)=>{let j=document.cookie.match(new RegExp(`(?:^|; )${$}=([^;]*)`));return j?decodeURIComponent(j[1]):null},b3=($,j,z)=>{let J=new Date(Date.now()+z*86400000).toUTCString(),Q=l(),Z=Q?`;domain=.${Q}`:"";document.cookie=`${$}=${encodeURIComponent(j)};expires=${J};path=/${Z};SameSite=Lax;Secure`},M7=($)=>{let j=l(),z=j?`;domain=.${j}`:"";document.cookie=`${$}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/${z};SameSite=Lax;Secure`},H7=()=>{let $=new URLSearchParams(window.location.search),j=$.get(j3)||void 0,z=$.get(z3)||void 0;if(j||z){$.delete(j3),$.delete(z3);let J=$.toString(),Q=window.location.pathname+(J?`?${J}`:"")+window.location.hash;history.replaceState(null,"",Q)}return{vid:j,sid:z}},h=null,T3=()=>{if(h===null)h=H7();return h},F=()=>{if(_())return;let $=T3();if($.vid){b3(E,$.vid,730);let z=$.vid;return $.vid=void 0,z}let j=Y7(E);if(!j)j=g(),b3(E,j,730);return j},B=()=>{if(_())return;let $=T3();if($.sid){let Q=$.sid;return sessionStorage.setItem(v,Q),sessionStorage.setItem(T,Date.now().toString()),$.sid=void 0,Q}let j=Date.now(),z=parseInt(sessionStorage.getItem(T)||"0",10),J=sessionStorage.getItem(v);if(!J||j-z>x7)J=g(),sessionStorage.setItem(v,J);return sessionStorage.setItem(T,j.toString()),J},k3=()=>{if(_())return;sessionStorage.setItem(T,Date.now().toString())},k=()=>{let $=F(),j=B();return{...$&&{_fs_vid:$},...j&&{_fs_sid:j}}},y=($)=>{let j=k(),z=new URL($);if(j._fs_vid)z.searchParams.set(j3,j._fs_vid);if(j._fs_sid)z.searchParams.set(z3,j._fs_sid);return z.toString()},S=()=>{M7(E),sessionStorage.removeItem(v),sessionStorage.removeItem(T),h=null};var N7=5000,Q3=0,u=0,m=null,D7=()=>{let $=document.documentElement,j=window.scrollY||$.scrollTop,z=$.scrollHeight-$.clientHeight;if(z<=0)return 100;return Math.min(100,Math.round(j/z*100))},J3=()=>{Q3++},P3=()=>{let $=D7();u=Math.max(u,$);let j=F(),z=B();K("heartbeat",{...j&&{visitorUid:j},...z&&{sessionUid:z},path:location.pathname,scrollDepth:u,isVisible:document.visibilityState==="visible",interactionCount:Q3}),k3()},f3=()=>{Q3=0,u=0},C3=()=>{document.addEventListener("click",J3,{passive:!0}),document.addEventListener("scroll",J3,{passive:!0}),document.addEventListener("keydown",J3,{passive:!0}),m=setInterval(P3,N7),document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="hidden")P3()})},p=()=>{if(m)clearInterval(m),m=null};var I3="",R3=!1,N=()=>{let $=A(),j=$?location.href:location.pathname+location.search;if(j===I3)return;I3=j,f3();let z=D3(),J=F(),Q=B(),Z=$?location.pathname+location.hash:location.pathname;if(K("pageview",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},hostname:location.hostname,path:Z,referrer:document.referrer||void 0,title:document.title||void 0,screenWidth:window.screen?.width,screenHeight:window.screen?.height,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone||void 0,language:navigator.language||void 0,utmSource:z.utm_source,utmMedium:z.utm_medium,utmCampaign:z.utm_campaign,utmTerm:z.utm_term,utmContent:z.utm_content,ref:z.ref,source:z.source,via:z.via}),!R3){R3=!0;let q=L();if(q){let G=JSON.stringify({type:"geo",websiteId:U(),visitorUid:J||void 0,sessionUid:Q||void 0});try{fetch(`${q}/events`,{method:"POST",headers:{"Content-Type":"application/json"},body:G,keepalive:!0,credentials:"omit"}).catch(()=>{})}catch{}}}},_3=()=>{N();let{pushState:$,replaceState:j}=history;if(history.pushState=function(...z){$.apply(this,z),N()},history.replaceState=function(...z){j.apply(this,z),N()},window.addEventListener("popstate",()=>N()),A())window.addEventListener("hashchange",()=>N())};var A3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let z=j.href;if(!z)return;try{let J=new URL(z);if(J.protocol!=="http:"&&J.protocol!=="https:")return;if(J.hostname===location.hostname)return;let Q=F(),Z=B();if(!Q||!Z)return;K("exit_click",{visitorUid:Q,sessionUid:Z,hostname:location.hostname,url:z})}catch{}})};var U7=/\.(pdf|zip|dmg|exe|doc|docx|xls|xlsx|ppt|pptx|csv|rar|7z|tar|gz|mp3|mp4|avi|mov)$/i,E3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j)return;let z=j.href;if(!z||!U7.test(z))return;let J=F(),Q=B();K("goal",{...J&&{visitorUid:J},...Q&&{sessionUid:Q},name:"file_download",metadata:{url:z}})})};var M=($,j)=>{let z=F(),J=B();K("goal",{...z&&{visitorUid:z},...J&&{sessionUid:J},name:$,metadata:j})};var Z3="data-fs-goal",v3="data-fs-goal-",w7=($)=>{let j={},z=0;for(let J of Array.from($.attributes))if(J.name.startsWith(v3)&&J.name!==Z3){let Q=J.name.slice(v3.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&z<10)j[Q]=Z,z++}return z>0?j:void 0},h3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest(`[${Z3}]`);if(!j)return;let z=j.getAttribute(Z3);if(!z)return;let J=w7(j);M(z,J)})};var c="data-fs-scroll",m3="data-fs-scroll-threshold",q3="data-fs-scroll-delay",S3="data-fs-scroll-",L7=new Set([c,m3,q3]),u3=($)=>{let j={},z=0;for(let J of Array.from($.attributes))if(J.name.startsWith(S3)&&!L7.has(J.name)){let Q=J.name.slice(S3.length).replace(/-/g,"_"),Z=(J.value||"").slice(0,255);if(Q&&z<10)j[Q]=Z,z++}return z>0?j:void 0},p3=()=>{let $=document.querySelectorAll(`[${c}]`);if(!$.length)return;let j=new Set,z=new IntersectionObserver((J)=>{for(let Q of J){let Z=Q.target;if(!Q.isIntersecting||j.has(Z))continue;let q=Z.getAttribute(c);if(!q)continue;let G=parseInt(Z.getAttribute(q3)||"0",10)||0,W=()=>{if(j.has(Z))return;j.add(Z),z.unobserve(Z);let X=u3(Z);M(q,X)};if(G>0)setTimeout(W,G);else W()}},{threshold:0});for(let J of Array.from($)){let Q=parseFloat(J.getAttribute(m3)||"0.5");if(Q!==0.5){let Z=new IntersectionObserver((q)=>{for(let G of q){let W=G.target;if(!G.isIntersecting||j.has(W))continue;let X=W.getAttribute(c);if(!X)continue;let D=parseInt(W.getAttribute(q3)||"0",10)||0,Y=()=>{if(j.has(W))return;j.add(W),Z.unobserve(W);let b=u3(W);M(X,b)};if(D>0)setTimeout(Y,D);else Y()}},{threshold:Q});Z.observe(J)}else z.observe(J)}};var W3=null,c3=()=>{if(!W3)W3=new Set(N3());return W3},y7=($)=>{let j=c3();if(!j.size)return!1;for(let z of j)if($===z||$.endsWith(`.${z}`))return!0;return!1},d3=()=>{if(!c3().size)return;document.addEventListener("click",(j)=>{let z=j.target.closest("a");if(!z)return;let J=z.href;if(!J)return;try{let Q=new URL(J);if(Q.hostname===location.hostname)return;if(!y7(Q.hostname))return;z.href=y(J)}catch{}})};var O7="buy.stripe.com",b7=($,j)=>{try{let z=new URL($);if(z.hostname!==O7)return $;if(z.searchParams.has("client_reference_id"))return $;return z.searchParams.set("client_reference_id",j),z.toString()}catch{return $}},g3=()=>{document.addEventListener("click",($)=>{let j=$.target.closest("a");if(!j||!j.href)return;let z=F();if(!z)return;j.href=b7(j.href,z)})};var P=($)=>{let j=F(),z=B();K("payment",{...j&&{visitorUid:j},...z&&{sessionUid:z},...$.amount!=null&&{amount:$.amount},...$.currency&&{currency:$.currency},...$.transactionId&&{transactionId:$.transactionId},...$.email&&{email:$.email},...$.name&&{name:$.name},...$.customerId&&{customerId:$.customerId},...$.isRenewal!=null&&{isRenewal:$.isRenewal},...$.isRefund!=null&&{isRefund:$.isRefund}})};var f=($)=>{let j=F();K("identify",{...j&&{visitorUid:j},userId:$.userId,name:$.name,email:$.email,image:$.image,profileData:$.profileData})};var T7=500,k7=30,C=[],F3=null,s3=!1,n3=!1,H=($,j)=>{if(s3)return;if(F3){F3($,j);return}if(C.length>=T7)return;C.push({tag:$,payload:j})},i3=[],P7=()=>{let $=[],j=I();if(j)$.push(j);let z=R();if(z)$.push(`${z}/api/track`);let J=L();if(J)$.push(`${J}/events`);return $},O=($)=>i3.some((j)=>$.indexOf(j)===0)||$.indexOf("analytics.flowsery.com")!==-1,f7=($)=>{if(typeof $==="string")return $;if($ instanceof URL)return $.href;return $?.url??""},l3=0,o3=new Set,C7=()=>{window.addEventListener("error",($)=>{if($.target&&$.target!==window)return;H("error",{message:$.message,source:$.filename,line:$.lineno,column:$.colno,stack:$.error?.stack?.slice(0,2000)})}),window.addEventListener("error",($)=>{let j=$.target;if(!j||j===window)return;if(typeof j.tagName!=="string")return;let z=j.src||j.href;if(!z)return;if(O(z))return;if(o3.has(z))return;if(l3>=k7)return;l3++,o3.add(z),H("network",{url:w(z),method:"GET",status:0,ok:!1,error:"resource load failed",resource:j.tagName.toLowerCase()})},!0),document.addEventListener("securitypolicyviolation",($)=>{H("error",{message:`CSP blocked ${$.blockedURI||"inline"} (${$.effectiveDirective})`,source:$.sourceFile||void 0,line:$.lineNumber||void 0,csp:!0,violatedDirective:$.violatedDirective,blockedURI:$.blockedURI,disposition:$.disposition})}),window.addEventListener("unhandledrejection",($)=>{let j=$.reason,z,J;if(j instanceof Error)z=j.message,J=j.stack?.slice(0,2000);else if(typeof j==="string")z=j;else z=r3(j);H("error",{message:z,stack:J,unhandledRejection:!0})})},G3=!1,r3=($)=>{try{if($===null)return"null";if($===void 0)return"undefined";if(typeof $==="string")return $.slice(0,2000);if(typeof $==="number"||typeof $==="boolean")return String($);if(typeof $==="bigint")return`${$.toString()}n`;if($ instanceof Error)return`${$.name}: ${$.message}`;return(JSON.stringify($,(z,J)=>typeof J==="bigint"?`${J.toString()}n`:J)??String($)).slice(0,2000)}catch{try{return String($).slice(0,2000)}catch{return"[Unserializable]"}}},I7=()=>{if(M3())return;let $=["log","info","warn","error","debug"];for(let j of $){let z=console[j];if(typeof z!=="function")continue;let J=z.bind(console);console[j]=function(...Q){if(J(...Q),G3)return;G3=!0;try{let Z=U3(Q.slice(0,10).map(r3).join(" ")).slice(0,4000);H("console",{level:j,message:Z})}catch{}finally{G3=!1}}}},R7=()=>{let $=window.fetch;if(typeof $==="function"){let Z=$.bind(window);window.fetch=(q,G)=>{let W=f7(q),X=(G?.method||q?.method||"GET").toUpperCase(),D=Date.now();return Z(q,G).then((Y)=>{if(!O(W))H("network",{url:w(W),method:X,status:Y.status,ok:Y.status>=200&&Y.status<400,durationMs:Date.now()-D});return Y},(Y)=>{if(!O(W))H("network",{url:w(W),method:X,status:0,ok:!1,error:Y?.message,durationMs:Date.now()-D});throw Y})}}let j=XMLHttpRequest.prototype,z=j.open,J=j.send;j.open=function(Z,q,...G){return this.__fsNet={method:(Z||"GET").toUpperCase(),url:typeof q==="string"?q:q.href,startedAt:0},z.apply(this,[Z,q,...G])},j.send=function(...Z){let q=this.__fsNet;if(q)q.startedAt=Date.now(),this.addEventListener("loadend",()=>{if(!O(q.url))H("network",{url:w(q.url),method:q.method,status:this.status,ok:this.status>=200&&this.status<400,durationMs:Date.now()-q.startedAt})});return J.apply(this,Z)};try{let Z=navigator.sendBeacon;if(typeof Z==="function")navigator.sendBeacon=function(q,G){let W=Z.call(navigator,q,G??void 0),X=typeof q==="string"?q:q.href;if(!O(X))H("network",{url:w(X),method:"BEACON",status:W?202:0,ok:W});return W}}catch{}let Q=(Z,q,G)=>{try{let W=window[Z];if(typeof W!=="function")return;window[Z]=new Proxy(W,{construct(X,D,Y){let b=Reflect.construct(X,D,Y),X3=String(D[0]??"");if(!O(X3))b.addEventListener("error",()=>{if(!G(b))return;H("network",{url:w(X3),method:q,status:0,ok:!1,error:`${q.toLowerCase()} error`})});return b}})}catch{}};Q("WebSocket","WS",()=>!0),Q("EventSource","SSE",(Z)=>Z.readyState===2)},a3=()=>{if(n3)return;n3=!0,i3=P7(),C7(),I7(),R7(),window.__flEarly={drain($){F3=$;let j=C;C=[];for(let z of j)$(z.tag,z.payload)},stop(){s3=!0,C=[]}}};var _7=()=>{try{if(n()||!U()||$3())return;if(o()&&!s())return;if(i()&&!r())return;if(!a())return;let $=B();if($&&!t($,e()))return;a3()}catch{}};_7();var A7=()=>{if(typeof document>"u")return;if(document.querySelector("script[data-fl-recording]"))return;let $=document.createElement("script");$.src=H3(),$.defer=!0,$.setAttribute("data-fl-recording",""),(document.head||document.documentElement).appendChild($)},t3=($)=>{let[j,...z]=$;switch(j){case"identify":f(z[0]);break;case"payment":P(z[0]);break;default:M(j,z[0]);break}},B3=()=>{if(n())return;if(!U())return;if($3())return;if(o()&&!s())return;if(x3()&&!Y3())return;if(i()&&!r())return;if(_3(),C3(),A3(),E3(),h3(),p3(),d3(),g3(),a()){let z=B();if(!z||t(z,e()))A7()}let $=window,j=$.flowsery?.q||[];for(let z of j)t3(z);$.flowsery=function(...z){t3(z)}};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",B3);else B3();var E7=async($)=>{let j=window;return j.__flowsery_config=$,B3(),{trackEvent:M,trackPayment:P,trackPageview:N,identify:f,stop:p,reset:S,getTrackingParams:k,buildCrossDomainUrl:y,getVisitorId:F,getSessionId:B}};})();