@webority/analytics 0.11.1 → 0.11.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.
@@ -0,0 +1 @@
1
+ var rt=["google","googleads","adwords","youtube"],it=["meta","facebook","fb","instagram","ig","messenger"],at=["linkedin","lnkd"],st=["bing","microsoft","microsoftads","msn"],P=Object.freeze([["chatgpt",["chatgpt.com","chat.openai.com"]],["perplexity",["perplexity.ai"]],["gemini",["gemini.google.com"]],["copilot",["copilot.microsoft.com"]],["claude",["claude.ai"]],["you",["you.com"]],["phind",["phind.com"]],["deepseek",["deepseek.com"]],["grok",["grok.com"]],["meta_ai",["meta.ai"]],["poe",["poe.com"]]]),ct=["bing.com","duckduckgo.com","search.yahoo.com","ecosia.org","search.brave.com"],ut=["google","yandex"],dt=["facebook.com","fb.com","instagram.com","linkedin.com","lnkd.in","twitter.com","t.co","x.com","reddit.com","pinterest.com","youtube.com","youtu.be","tiktok.com","whatsapp.com","threads.net","t.me","telegram.org"],s=Object.freeze({DIRECT:"direct",GOOGLE:"google",META:"meta",LINKEDIN:"linkedin",MICROSOFT:"microsoft",OTHER:"other",AI_ASSISTANT:"ai_assistant",ORGANIC_SEARCH:"organic_search",ORGANIC_SOCIAL:"organic_social",REFERRAL:"referral"});function g(t){if(!t)return s.DIRECT;let e=c(t.utmSource);if(e){let r=C(e);if(rt.includes(r))return s.GOOGLE;if(it.includes(r))return s.META;if(at.includes(r))return s.LINKEDIN;if(st.includes(r))return s.MICROSOFT}if(c(t.fbclid))return s.META;if(c(t.gclid)||c(t.gbraid)||c(t.wbraid))return s.GOOGLE;if(c(t.liFatId))return s.LINKEDIN;if(c(t.msclkid))return s.MICROSOFT;if(G(e))return s.AI_ASSISTANT;if(e||c(t.utmMedium)||c(t.utmCampaign)||c(t.utmContent)||c(t.utmTerm))return s.OTHER;let o=B(t.referrer);return o?F(o)?s.AI_ASSISTANT:lt(o)?s.ORGANIC_SEARCH:dt.some(r=>z(o,r))?s.ORGANIC_SOCIAL:s.REFERRAL:s.DIRECT}function I(t){if(!t)return"";let e=G(c(t.utmSource));if(e)return e;let n=B(t.referrer);return n?F(n):""}function G(t){if(!t)return"";let e=C(t);for(let[n,o]of P)if(C(n)===e||o.some(r=>C(r)===e))return n;return""}function F(t){for(let[e,n]of P)if(n.some(o=>z(t,o)))return e;return""}function lt(t){return ct.includes(t)?!0:ut.some(e=>{if(!t.startsWith(`${e}.`))return!1;let n=t.slice(e.length+1).split(".");return n.length===1||n.length===2&&(n[0]==="co"||n[0]==="com")})}function z(t,e){return t===e||t.endsWith(`.${e}`)}function B(t){let e=c(t);if(!e)return"";try{let n=new URL(/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?e:`https://${e}`).hostname.toLowerCase();return n.startsWith("www.")?n.slice(4):n}catch{return""}}function C(t){return String(t).toLowerCase().replace(/[^\p{L}\p{N}]/gu,"")}function c(t){return String(t??"").trim()}var w=Object.freeze(["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","GB","CH"]);function ft(t){let e=typeof t=="string"?t.trim().toUpperCase():"";return e.length!==2||e==="XX"||e==="T1"?!0:w.includes(e)}var S="webority_cookie_consent",K="webority-consent-change",$=365,i={initialized:!1,requiresOptIn:!0,strictOptIn:!1,adStorage:!0,cookieDays:$,cookieDomain:null,saved:null},O=new Set;function mt(t){let e=t?.strictOptIn??!1;if(typeof e!="boolean")throw new Error("@webority/analytics: initConsent strictOptIn must be true or false, or left out.");if(e){if(t.requiresOptIn!==void 0&&t.requiresOptIn!==!0)throw new Error("@webority/analytics: initConsent strictOptIn asks every visitor to opt in, so requiresOptIn must be true or left out.")}else if(typeof t?.requiresOptIn!="boolean")throw new Error("@webority/analytics: initConsent needs requiresOptIn (true or false), decided from the visitor's country.");if(t.cookieDomain!==void 0&&(typeof t.cookieDomain!="string"||!t.cookieDomain.trim()))throw new Error('@webority/analytics: initConsent cookieDomain must be a domain such as ".example.com", or left out.');if(t.cookieDays!==void 0&&!(Number.isInteger(t.cookieDays)&&t.cookieDays>0))throw new Error("@webority/analytics: initConsent cookieDays must be a whole number of days above zero, or left out.");if(t.adStorage!==void 0&&typeof t.adStorage!="boolean")throw new Error("@webority/analytics: initConsent adStorage must be true or false, or left out.");i.initialized=!0,i.strictOptIn=e,i.requiresOptIn=e||t.requiresOptIn,i.adStorage=t.adStorage??!e,i.cookieDays=t.cookieDays??$,i.cookieDomain=t.cookieDomain?.trim()??null;let{saved:n,entryCount:o}=St();i.saved=n,i.cookieDomain&&o>1&&n&&W(n),_t(),Ct(),i.saved&&Y(i.saved)}function E(){return i.initialized}function q(){return i.strictOptIn}function A(){return i.adStorage}function d(){j("getConsent");let t=i.saved;if(t)return{essential:!0,analytics:t.analytics,functional:t.functional,marketing:t.marketing,decided:!0};let e=!i.requiresOptIn;return{essential:!0,analytics:e,functional:e,marketing:e,decided:!1}}function pt(t){j("saveConsent");let e={essential:!0,analytics:t?.analytics===!0,functional:t?.functional===!0,marketing:t?.marketing===!0,timestamp:new Date().toISOString()};W(e),i.saved=e,Y(e),gt(d())}function p(t){return O.add(t),()=>O.delete(t)}function gt(t){for(let e of O)try{e(t)}catch(n){queueMicrotask(()=>{throw n})}typeof window?.dispatchEvent=="function"&&typeof CustomEvent=="function"&&window.dispatchEvent(new CustomEvent(K,{detail:t}))}function j(t){if(!i.initialized)throw new Error(`@webority/analytics: call initConsent before ${t}.`)}function m(){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}function _t(){if(i.strictOptIn){m("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500});return}m("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500,region:[...w]});let t=i.adStorage?"granted":"denied";m("consent","default",{ad_storage:t,ad_user_data:t,ad_personalization:t,analytics_storage:"granted",functionality_storage:"granted",personalization_storage:"granted",security_storage:"granted"})}function Ct(){m("set","ads_data_redaction",!0),m("set","url_passthrough",!0)}function Y(t){let e=o=>o?"granted":"denied",n=t.marketing&&i.adStorage;m("consent","update",{analytics_storage:e(t.analytics),functionality_storage:e(t.functional),personalization_storage:e(t.functional),ad_storage:e(n),ad_user_data:e(n),ad_personalization:e(n)})}function St(){let t=`${S}=`,e=(document.cookie||"").split(";").map(o=>o.trim()).filter(o=>o.startsWith(t)),n=e.map(o=>Et(o.slice(t.length))).filter(Boolean);return{saved:yt(n),entryCount:e.length}}function Et(t){try{let e=JSON.parse(decodeURIComponent(t));return!e||typeof e!="object"?null:{essential:!0,analytics:e.analytics===!0,functional:e.functional===!0,marketing:e.marketing===!0,timestamp:e.timestamp??null}}catch{return null}}function yt(t){if(t.length===0)return null;let e=t.map(o=>typeof o.timestamp=="string"?Date.parse(o.timestamp):Number.NaN);if(e.some(Number.isNaN))return t.at(-1);let n=0;for(let o=1;o<t.length;o++)e[o]>=e[n]&&(n=o);return t[n]}function W(t){let e=typeof t.timestamp=="string"?Date.parse(t.timestamp):Number.NaN,n=(Number.isNaN(e)?Date.now():e)+i.cookieDays*24*60*60*1e3,o=window.location?.protocol==="https:"?";Secure":"";i.cookieDomain&&H(`${S}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;max-age=0;path=/;SameSite=Lax${o}`);let r=i.cookieDomain?`;domain=${i.cookieDomain}`:"";H(`${S}=${encodeURIComponent(JSON.stringify(t))};expires=${new Date(n).toUTCString()};path=/${r};SameSite=Lax${o}`)}function H(t){document.cookie=t}var T="webority_attribution",Tt=2160*60*60*1e3,It=200,h=500,wt=Object.freeze({utm_source:"utmSource",utm_medium:"utmMedium",utm_campaign:"utmCampaign",utm_content:"utmContent",utm_term:"utmTerm",gclid:"gclid",gbraid:"gbraid",wbraid:"wbraid",fbclid:"fbclid",msclkid:"msclkid",li_fat_id:"liFatId"}),V=!1;function Ot(){Q("captureAttribution"),Nt();let t=ht();if(!t)return;let e=R(D());X(D(),{firstTouch:e?.firstTouch??t,lastTouch:t}),At(t)}function At(t){let e={event:"acquisition_touch",acquisition_channel:g(t)};t.aiSource&&(e.ai_source=t.aiSource),window.dataLayer=window.dataLayer||[],window.dataLayer.push(e)}function b(){return Q("getAttribution"),R(D())}function ht(){let t=new URLSearchParams(window.location.search),e={};for(let[r,f]of Object.entries(wt)){let l=y(t.get(r),It);l&&(e[f]=l)}let n=y(t.get("referrer"),h)||Dt();if(n&&(e.referrer=n),Object.keys(e).length===0)return null;let o=I(e);return o&&(e.aiSource=o),e.landingPage=y(window.location.pathname,h),e.capturedDateTimeUtc=new Date().toISOString(),e}function Dt(){let t=document.referrer;if(!t)return"";try{return new URL(t).hostname===window.location.hostname?"":y(t,h)}catch{return""}}function Nt(){V||(V=!0,p(t=>{let e=t.marketing?L():N(),n=t.marketing?N():L(),o=R(e);Lt(e),o&&X(n,o)}))}function D(){return d().marketing?N():L()}function N(){try{return window.localStorage}catch{return null}}function L(){try{return window.sessionStorage}catch{return null}}function R(t){try{let e=t?.getItem(T);if(!e)return null;let n=JSON.parse(e),o=J(n?.firstTouch),r=J(n?.lastTouch);return!o&&!r?(t.removeItem(T),null):{firstTouch:o??r,lastTouch:r??o}}catch{return null}}function X(t,e){try{t?.setItem(T,JSON.stringify(e))}catch{}}function Lt(t){try{t?.removeItem(T)}catch{}}function J(t){if(!t||typeof t!="object")return null;let e=Date.parse(t.capturedDateTimeUtc);return Number.isFinite(e)&&Date.now()-e<=Tt?t:null}function y(t,e){let n=String(t??"").trim();return n?n.slice(0,e):""}function Q(t){if(!E())throw new Error(`@webority/analytics: call initConsent before ${t}.`)}var a=Object.freeze({SIGNUP_STARTED:"signup_started",SIGNUP_COMPLETED:"signup_completed",LOGIN_SUCCEEDED:"login_succeeded",ONBOARDING_STARTED:"onboarding_started",ONBOARDING_STEP_COMPLETED:"onboarding_step_completed",ONBOARDING_COMPLETED:"onboarding_completed",SUBSCRIPTION_ACTIVATED:"subscription_activated",SUBSCRIPTION_CANCELLED:"subscription_cancelled",PAYMENT_SUCCEEDED:"payment_succeeded",PAYMENT_FAILED:"payment_failed",FEEDBACK_SUBMITTED:"feedback_submitted",LEAD_SUBMITTED:"lead_submitted",LEAD_QUALIFIED:"lead_qualified",WHATSAPP_CLICK:"whatsapp_click",CALCULATOR_USE:"calculator_use",PHONE_CLICK:"phone_click",DEMO_BOOKED:"demo_booked",CONTACT_SUBMITTED:"contact_submitted",TRIAL_START_CLICK:"trial_start_click",SAMPLE_REPORT_DOWNLOAD:"sample_report_download"}),Yt=Object.freeze({signupStarted:a.SIGNUP_STARTED,signupCompleted:a.SIGNUP_COMPLETED,loginSucceeded:a.LOGIN_SUCCEEDED,onboardingStarted:a.ONBOARDING_STARTED,onboardingStepCompleted:a.ONBOARDING_STEP_COMPLETED,onboardingCompleted:a.ONBOARDING_COMPLETED,subscriptionActivated:a.SUBSCRIPTION_ACTIVATED,subscriptionCancelled:a.SUBSCRIPTION_CANCELLED,paymentSucceeded:a.PAYMENT_SUCCEEDED,paymentFailed:a.PAYMENT_FAILED,feedbackSubmitted:a.FEEDBACK_SUBMITTED,leadSubmitted:a.LEAD_SUBMITTED,leadQualified:a.LEAD_QUALIFIED,whatsappClick:a.WHATSAPP_CLICK,calculatorUse:a.CALCULATOR_USE,phoneClick:a.PHONE_CLICK,demoBooked:a.DEMO_BOOKED,contactSubmitted:a.CONTACT_SUBMITTED,trialStartClick:a.TRIAL_START_CLICK,sampleReportDownload:a.SAMPLE_REPORT_DOWNLOAD}),Wt=/^[a-z][a-z0-9]*(_[a-z0-9]+)*$/;var bt=new Set(Object.values(a));function Rt(t,e={}){if(!bt.has(t)||!d().analytics)return!1;let n=b(),o={...e,event:t};for(let[r,f]of[["first",n?.firstTouch],["last",n?.lastTouch]])f&&(o[`${r}_touch_channel`]=g(f),f.aiSource&&(o[`${r}_touch_ai_source`]=f.aiSource));return window.dataLayer=window.dataLayer||[],window.dataLayer.push(o),!0}var kt=["scroll","mousemove","touchstart","keydown","pointerdown"],vt="https://www.googletagmanager.com/gtm.js",Z=1500,Ut=3e3,Mt=100,u={loaded:!1,clarityId:null,clarityLoaded:!1,cancelClaritySchedule:null};function xt(t={}){if(!E())throw new Error("@webority/analytics: call initConsent before loadTags.");if(u.loaded)return;u.loaded=!0;let{gtmId:e,gtmUrl:n=vt,clarityId:o,ahrefsKey:r}=t;if(typeof n!="string"||n.trim()==="")throw new Error("@webority/analytics: gtmUrl must be a non-empty string.");let f=q();if(r){let l=()=>v("https://analytics.ahrefs.com/analytics.js",{"data-key":r});f?tt(_=>_.analytics,l):l()}if(e){let l=A(),_=x=>x.analytics||x.marketing&&l,nt=()=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({"gtm.start":Date.now(),event:"gtm.js"}),v(`${n}${n.includes("?")?"&":"?"}id=${encodeURIComponent(e)}`)},U=d(),ot=U.decided&&_(U)?Pt:Gt,M=()=>ot(nt);f?tt(_,M):M()}o&&(u.clarityId=o,d().analytics&&Ft(),p(l=>{l.analytics&&!u.clarityLoaded?k():u.clarityLoaded&&et(l)}))}function tt(t,e){if(t(d())){e();return}let n=p(o=>{t(o)&&(n(),e())})}function Pt(t){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t,{once:!0}):t()}function Gt(t){let e=!1,n=()=>{e||(e=!0,t())};for(let o of kt)window.addEventListener(o,n,{once:!0,passive:!0});document.readyState==="complete"?setTimeout(n,Z):window.addEventListener("load",()=>setTimeout(n,Z),{once:!0})}function Ft(){let t=()=>{window.scrollY>Mt&&k()};window.addEventListener("scroll",t,{passive:!0});let e=setTimeout(k,Ut);u.cancelClaritySchedule=()=>{window.removeEventListener("scroll",t),clearTimeout(e)}}function k(){u.cancelClaritySchedule?.(),u.cancelClaritySchedule=null,!(u.clarityLoaded||!u.clarityId)&&(u.clarityLoaded=!0,window.clarity=window.clarity||function(){window.clarity.q=window.clarity.q||[],window.clarity.q.push(arguments)},et(d()),v(`https://www.clarity.ms/tag/${encodeURIComponent(u.clarityId)}`,{crossorigin:"anonymous"}))}function et(t){window.clarity("consentv2",{ad_Storage:t.marketing&&A()?"granted":"denied",analytics_Storage:t.analytics?"granted":"denied"})}function v(t,e={}){let n=document.createElement("script");n.async=!0,n.src=t;for(let[o,r]of Object.entries(e))n.setAttribute(o,r);document.head.appendChild(n)}export{ft as a,S as b,K as c,mt as d,E as e,d as f,pt as g,p as h,a as i,Yt as j,Wt as k,s as l,g as m,I as n,Ot as o,b as p,Rt as q,xt as r};
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{a as b,b as y,c as C,d as x,e as c,f as u,g as w,h as l,i as f,j as m,k as h,l as k,m as A,n as T,o as N,p as S,q as O,r as P}from"./chunk-FDHICTXR.js";var n={config:null,posthogInstance:null,posthogInitPromise:null,registeredEvents:new Set(Object.values(f)),warnedUnregisteredEvents:new Set},I=50;function E(e){n.config=e,n.posthogInstance=null,n.posthogInitPromise=null}function p(){let e=n.config;return e?!!(e.enabled&&e.clientKey&&e.environment!=="Local"):!1}function r(){return c()&&u().analytics}function s(){return p()&&r()}async function a(){if(n.posthogInstance)return n.posthogInstance;if(n.posthogInitPromise)return n.posthogInitPromise;let e=n.config;return n.posthogInitPromise=import("posthog-js").then(t=>{let o=t.default??t,i=R(U(e),r());return o.init(e.clientKey,i),r()||o.opt_out_capturing(),o.register({product:e.product,surface:e.surface}),n.posthogInstance=o,o}).catch(t=>{throw n.posthogInitPromise=null,t}),n.posthogInitPromise}function R(e,t){return t?e:{...e,opt_out_capturing_by_default:!0}}function U(e){let t=e.sessionRecording??{enabled:!1},o={api_host:e.host,autocapture:!1,capture_pageview:!0,persistence:"localStorage",disable_session_recording:!t.enabled,disable_surveys:!0,disable_product_tours:!0,disable_conversations:!0,advanced_disable_feature_flags:!t.enabled};return t.enabled&&(o.session_recording={maskAllInputs:t.maskAllInputs??!0,...t.maskTextSelector?{maskTextSelector:t.maskTextSelector}:{}}),o}var v=null;function z(e){if(!c())throw new Error("@webority/analytics: call initConsent before initAnalytics.");v?.(),v=l(t=>j(t.analytics)),E({host:e.host,clientKey:e.clientKey,product:e.product,surface:e.surface,environment:e.environment,enabled:e.enabled??!0,logger:e.logger??null,sessionRecording:{enabled:e.sessionRecording?.enabled??!1,maskAllInputs:e.sessionRecording?.maskAllInputs??!0,maskTextSelector:e.sessionRecording?.maskTextSelector??null}}),s()&&K()}function K(){let e=()=>{s()&&_()};typeof requestIdleCallback=="function"?requestIdleCallback(e,{timeout:3e3}):setTimeout(e,0)}function _(){a().catch(()=>{})}function j(e){if(e&&p()){n.posthogInstance?n.posthogInstance.opt_in_capturing():_();return}e||L()}function L(){if(n.posthogInstance){n.posthogInstance.opt_out_capturing();return}n.posthogInitPromise&&n.posthogInitPromise.then(e=>{r()||e?.opt_out_capturing()}).catch(()=>{})}function M(e,t={}){if(!s()){d("identify",{publicId:e,...t});return}a().then(o=>{!o||!r()||o.identify(e,t)}).catch(()=>{})}function V(e,t,o={}){if(!s()){d("group",{type:e,key:t,...o});return}a().then(i=>{!i||!r()||i.group(e,t,o)}).catch(()=>{})}function W(){n.posthogInstance&&n.posthogInstance.reset()}function q(e){for(let t of e){if(!h.test(t))throw new Error(`@webority/analytics: invalid event name "${t}". Expected snake_case.`);n.registeredEvents.add(t)}}function g(e,t={}){if(!n.registeredEvents.has(e)){D(e);return}H(e,t)}function D(e){if(n.warnedUnregisteredEvents.has(e))return;n.warnedUnregisteredEvents.size<I&&n.warnedUnregisteredEvents.add(e);let t=n.config?.logger,o=`@webority/analytics: event "${e}" is not registered, so it was dropped. Call registerEvents() first.`;if(typeof t?.warn=="function"){t.warn(o);return}if(typeof t?.info=="function"){t.info(o);return}console.warn(o)}function H(e,t){if(!s()){d(e,t);return}let o={...t,product:n.config.product,surface:n.config.surface,environment:n.config.environment};a().then(i=>{!i||!r()||i.capture(e,o)}).catch(()=>{})}function d(e,t){n.config?.environment==="Local"&&n.config.logger?.info(e,t)}var $=Object.freeze(Object.fromEntries(Object.entries(m).map(([e,t])=>[e,(o={})=>g(t,o)])));export{C as CONSENT_CHANGE_EVENT,y as CONSENT_COOKIE_NAME,N as captureAttribution,k as channels,f as events,S as getAttribution,u as getConsent,V as group,M as identify,z as initAnalytics,x as initConsent,P as loadTags,l as onConsentChange,q as registerEvents,b as requiresOptIn,W as resetIdentity,T as resolveAiSource,A as resolveChannel,w as saveConsent,$ as track,g as trackEvent,O as trackSiteEvent};
1
+ import{a as b,b as y,c as C,d as x,e as c,f as u,g as w,h as l,i as f,j as m,k as h,l as k,m as A,n as T,o as N,p as S,q as O,r as P}from"./chunk-HMB4INP6.js";var n={config:null,posthogInstance:null,posthogInitPromise:null,registeredEvents:new Set(Object.values(f)),warnedUnregisteredEvents:new Set},I=50;function E(e){n.config=e,n.posthogInstance=null,n.posthogInitPromise=null}function p(){let e=n.config;return e?!!(e.enabled&&e.clientKey&&e.environment!=="Local"):!1}function r(){return c()&&u().analytics}function s(){return p()&&r()}async function a(){if(n.posthogInstance)return n.posthogInstance;if(n.posthogInitPromise)return n.posthogInitPromise;let e=n.config;return n.posthogInitPromise=import("posthog-js").then(t=>{let o=t.default??t,i=R(U(e),r());return o.init(e.clientKey,i),r()||o.opt_out_capturing(),o.register({product:e.product,surface:e.surface}),n.posthogInstance=o,o}).catch(t=>{throw n.posthogInitPromise=null,t}),n.posthogInitPromise}function R(e,t){return t?e:{...e,opt_out_capturing_by_default:!0}}function U(e){let t=e.sessionRecording??{enabled:!1},o={api_host:e.host,autocapture:!1,capture_pageview:!0,persistence:"localStorage",disable_session_recording:!t.enabled,disable_surveys:!0,disable_product_tours:!0,disable_conversations:!0,advanced_disable_feature_flags:!t.enabled};return t.enabled&&(o.session_recording={maskAllInputs:t.maskAllInputs??!0,...t.maskTextSelector?{maskTextSelector:t.maskTextSelector}:{}}),o}var v=null;function z(e){if(!c())throw new Error("@webority/analytics: call initConsent before initAnalytics.");v?.(),v=l(t=>j(t.analytics)),E({host:e.host,clientKey:e.clientKey,product:e.product,surface:e.surface,environment:e.environment,enabled:e.enabled??!0,logger:e.logger??null,sessionRecording:{enabled:e.sessionRecording?.enabled??!1,maskAllInputs:e.sessionRecording?.maskAllInputs??!0,maskTextSelector:e.sessionRecording?.maskTextSelector??null}}),s()&&K()}function K(){let e=()=>{s()&&_()};typeof requestIdleCallback=="function"?requestIdleCallback(e,{timeout:3e3}):setTimeout(e,0)}function _(){a().catch(()=>{})}function j(e){if(e&&p()){n.posthogInstance?n.posthogInstance.opt_in_capturing():_();return}e||L()}function L(){if(n.posthogInstance){n.posthogInstance.opt_out_capturing();return}n.posthogInitPromise&&n.posthogInitPromise.then(e=>{r()||e?.opt_out_capturing()}).catch(()=>{})}function M(e,t={}){if(!s()){d("identify",{publicId:e,...t});return}a().then(o=>{!o||!r()||o.identify(e,t)}).catch(()=>{})}function V(e,t,o={}){if(!s()){d("group",{type:e,key:t,...o});return}a().then(i=>{!i||!r()||i.group(e,t,o)}).catch(()=>{})}function W(){n.posthogInstance&&n.posthogInstance.reset()}function q(e){for(let t of e){if(!h.test(t))throw new Error(`@webority/analytics: invalid event name "${t}". Expected snake_case.`);n.registeredEvents.add(t)}}function g(e,t={}){if(!n.registeredEvents.has(e)){D(e);return}H(e,t)}function D(e){if(n.warnedUnregisteredEvents.has(e))return;n.warnedUnregisteredEvents.size<I&&n.warnedUnregisteredEvents.add(e);let t=n.config?.logger,o=`@webority/analytics: event "${e}" is not registered, so it was dropped. Call registerEvents() first.`;if(typeof t?.warn=="function"){t.warn(o);return}if(typeof t?.info=="function"){t.info(o);return}console.warn(o)}function H(e,t){if(!s()){d(e,t);return}let o={...t,product:n.config.product,surface:n.config.surface,environment:n.config.environment};a().then(i=>{!i||!r()||i.capture(e,o)}).catch(()=>{})}function d(e,t){n.config?.environment==="Local"&&n.config.logger?.info(e,t)}var $=Object.freeze(Object.fromEntries(Object.entries(m).map(([e,t])=>[e,(o={})=>g(t,o)])));export{C as CONSENT_CHANGE_EVENT,y as CONSENT_COOKIE_NAME,N as captureAttribution,k as channels,f as events,S as getAttribution,u as getConsent,V as group,M as identify,z as initAnalytics,x as initConsent,P as loadTags,l as onConsentChange,q as registerEvents,b as requiresOptIn,W as resetIdentity,T as resolveAiSource,A as resolveChannel,w as saveConsent,$ as track,g as trackEvent,O as trackSiteEvent};
package/dist/site.js CHANGED
@@ -1 +1 @@
1
- import{a,b,c,d,f as e,g as f,h as g,i as h,l as i,m as j,n as k,o as l,p as m,q as n,r as o}from"./chunk-FDHICTXR.js";export{c as CONSENT_CHANGE_EVENT,b as CONSENT_COOKIE_NAME,l as captureAttribution,i as channels,h as events,m as getAttribution,e as getConsent,d as initConsent,o as loadTags,g as onConsentChange,a as requiresOptIn,k as resolveAiSource,j as resolveChannel,f as saveConsent,n as trackSiteEvent};
1
+ import{a,b,c,d,f as e,g as f,h as g,i as h,l as i,m as j,n as k,o as l,p as m,q as n,r as o}from"./chunk-HMB4INP6.js";export{c as CONSENT_CHANGE_EVENT,b as CONSENT_COOKIE_NAME,l as captureAttribution,i as channels,h as events,m as getAttribution,e as getConsent,d as initConsent,o as loadTags,g as onConsentChange,a as requiresOptIn,k as resolveAiSource,j as resolveChannel,f as saveConsent,n as trackSiteEvent};
@@ -1 +1 @@
1
- var WeborityAnalytics=(()=>{var O=Object.defineProperty;var lt=Object.getOwnPropertyDescriptor;var ft=Object.getOwnPropertyNames;var mt=Object.prototype.hasOwnProperty;var pt=(t,e)=>{for(var n in e)O(t,n,{get:e[n],enumerable:!0})},gt=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of ft(e))!mt.call(t,r)&&r!==n&&O(t,r,{get:()=>e[r],enumerable:!(o=lt(e,r))||o.enumerable});return t};var _t=t=>gt(O({},"__esModule",{value:!0}),t);var Yt={};pt(Yt,{CONSENT_CHANGE_EVENT:()=>D,CONSENT_COOKIE_NAME:()=>_,captureAttribution:()=>et,channels:()=>s,events:()=>i,getAttribution:()=>w,getConsent:()=>u,initConsent:()=>Y,loadTags:()=>st,onConsentChange:()=>m,requiresOptIn:()=>$,resolveAiSource:()=>E,resolveChannel:()=>p,saveConsent:()=>V,trackSiteEvent:()=>rt});var Ct=["google","googleads","adwords","youtube"],St=["meta","facebook","fb","instagram","ig","messenger"],Et=["linkedin","lnkd"],yt=["bing","microsoft","microsoftads","msn"],F=Object.freeze([["chatgpt",["chatgpt.com","chat.openai.com"]],["perplexity",["perplexity.ai"]],["gemini",["gemini.google.com"]],["copilot",["copilot.microsoft.com"]],["claude",["claude.ai"]],["you",["you.com"]],["phind",["phind.com"]],["deepseek",["deepseek.com"]],["grok",["grok.com"]],["meta_ai",["meta.ai"]],["poe",["poe.com"]]]),Tt=["bing.com","duckduckgo.com","search.yahoo.com","ecosia.org","search.brave.com"],It=["google","yandex"],wt=["facebook.com","fb.com","instagram.com","linkedin.com","lnkd.in","twitter.com","t.co","x.com","reddit.com","pinterest.com","youtube.com","youtu.be","tiktok.com","whatsapp.com","threads.net","t.me","telegram.org"],s=Object.freeze({DIRECT:"direct",GOOGLE:"google",META:"meta",LINKEDIN:"linkedin",MICROSOFT:"microsoft",OTHER:"other",AI_ASSISTANT:"ai_assistant",ORGANIC_SEARCH:"organic_search",ORGANIC_SOCIAL:"organic_social",REFERRAL:"referral"});function p(t){if(!t)return s.DIRECT;let e=c(t.utmSource);if(e){let r=S(e);if(Ct.includes(r))return s.GOOGLE;if(St.includes(r))return s.META;if(Et.includes(r))return s.LINKEDIN;if(yt.includes(r))return s.MICROSOFT}if(c(t.fbclid))return s.META;if(c(t.gclid)||c(t.gbraid)||c(t.wbraid))return s.GOOGLE;if(c(t.liFatId))return s.LINKEDIN;if(c(t.msclkid))return s.MICROSOFT;if(z(e))return s.AI_ASSISTANT;if(e||c(t.utmMedium)||c(t.utmCampaign)||c(t.utmContent)||c(t.utmTerm))return s.OTHER;let o=K(t.referrer);return o?B(o)?s.AI_ASSISTANT:Ot(o)?s.ORGANIC_SEARCH:wt.some(r=>H(o,r))?s.ORGANIC_SOCIAL:s.REFERRAL:s.DIRECT}function E(t){if(!t)return"";let e=z(c(t.utmSource));if(e)return e;let n=K(t.referrer);return n?B(n):""}function z(t){if(!t)return"";let e=S(t);for(let[n,o]of F)if(S(n)===e||o.some(r=>S(r)===e))return n;return""}function B(t){for(let[e,n]of F)if(n.some(o=>H(t,o)))return e;return""}function Ot(t){return Tt.includes(t)?!0:It.some(e=>{if(!t.startsWith(`${e}.`))return!1;let n=t.slice(e.length+1).split(".");return n.length===1||n.length===2&&(n[0]==="co"||n[0]==="com")})}function H(t,e){return t===e||t.endsWith(`.${e}`)}function K(t){let e=c(t);if(!e)return"";try{let n=new URL(/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?e:`https://${e}`).hostname.toLowerCase();return n.startsWith("www.")?n.slice(4):n}catch{return""}}function S(t){return String(t).toLowerCase().replace(/[^\p{L}\p{N}]/gu,"")}function c(t){return String(t??"").trim()}var A=Object.freeze(["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","GB","CH"]);function $(t){let e=typeof t=="string"?t.trim().toUpperCase():"";return e.length!==2||e==="XX"||e==="T1"?!0:A.includes(e)}var _="webority_cookie_consent",D="webority-consent-change",j=365,a={initialized:!1,requiresOptIn:!0,strictOptIn:!1,adStorage:!0,cookieDays:j,cookieDomain:null,saved:null},h=new Set;function Y(t){let e=t?.strictOptIn??!1;if(typeof e!="boolean")throw new Error("@webority/analytics: initConsent strictOptIn must be true or false, or left out.");if(e){if(t.requiresOptIn!==void 0&&t.requiresOptIn!==!0)throw new Error("@webority/analytics: initConsent strictOptIn asks every visitor to opt in, so requiresOptIn must be true or left out.")}else if(typeof t?.requiresOptIn!="boolean")throw new Error("@webority/analytics: initConsent needs requiresOptIn (true or false), decided from the visitor's country.");if(t.cookieDomain!==void 0&&(typeof t.cookieDomain!="string"||!t.cookieDomain.trim()))throw new Error('@webority/analytics: initConsent cookieDomain must be a domain such as ".example.com", or left out.');if(t.cookieDays!==void 0&&!(Number.isInteger(t.cookieDays)&&t.cookieDays>0))throw new Error("@webority/analytics: initConsent cookieDays must be a whole number of days above zero, or left out.");if(t.adStorage!==void 0&&typeof t.adStorage!="boolean")throw new Error("@webority/analytics: initConsent adStorage must be true or false, or left out.");a.initialized=!0,a.strictOptIn=e,a.requiresOptIn=e||t.requiresOptIn,a.adStorage=t.adStorage??!e,a.cookieDays=t.cookieDays??j,a.cookieDomain=t.cookieDomain?.trim()??null;let{saved:n,entryCount:o}=Nt();a.saved=n,a.cookieDomain&&o>1&&n&&Q(n),ht(),Dt(),a.saved&&X(a.saved)}function y(){return a.initialized}function W(){return a.strictOptIn}function N(){return a.adStorage}function u(){J("getConsent");let t=a.saved;if(t)return{essential:!0,analytics:t.analytics,functional:t.functional,marketing:t.marketing,decided:!0};let e=!a.requiresOptIn;return{essential:!0,analytics:e,functional:e,marketing:e,decided:!1}}function V(t){J("saveConsent");let e={essential:!0,analytics:t?.analytics===!0,functional:t?.functional===!0,marketing:t?.marketing===!0,timestamp:new Date().toISOString()};Q(e),a.saved=e,X(e),At(u())}function m(t){return h.add(t),()=>h.delete(t)}function At(t){for(let e of h)try{e(t)}catch(n){queueMicrotask(()=>{throw n})}typeof window?.dispatchEvent=="function"&&typeof CustomEvent=="function"&&window.dispatchEvent(new CustomEvent(D,{detail:t}))}function J(t){if(!a.initialized)throw new Error(`@webority/analytics: call initConsent before ${t}.`)}function g(){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}function ht(){if(a.strictOptIn){g("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500});return}g("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500,region:[...A]}),g("consent","default",{ad_storage:"granted",ad_user_data:"granted",ad_personalization:"granted",analytics_storage:"granted",functionality_storage:"granted",personalization_storage:"granted",security_storage:"granted"})}function Dt(){g("set","ads_data_redaction",!0),g("set","url_passthrough",!0)}function X(t){let e=o=>o?"granted":"denied",n=t.marketing&&a.adStorage;g("consent","update",{analytics_storage:e(t.analytics),functionality_storage:e(t.functional),personalization_storage:e(t.functional),ad_storage:e(n),ad_user_data:e(n),ad_personalization:e(n)})}function Nt(){let t=`${_}=`,e=(document.cookie||"").split(";").map(o=>o.trim()).filter(o=>o.startsWith(t)),n=e.map(o=>Lt(o.slice(t.length))).filter(Boolean);return{saved:bt(n),entryCount:e.length}}function Lt(t){try{let e=JSON.parse(decodeURIComponent(t));return!e||typeof e!="object"?null:{essential:!0,analytics:e.analytics===!0,functional:e.functional===!0,marketing:e.marketing===!0,timestamp:e.timestamp??null}}catch{return null}}function bt(t){if(t.length===0)return null;let e=t.map(o=>typeof o.timestamp=="string"?Date.parse(o.timestamp):Number.NaN);if(e.some(Number.isNaN))return t.at(-1);let n=0;for(let o=1;o<t.length;o++)e[o]>=e[n]&&(n=o);return t[n]}function Q(t){let e=typeof t.timestamp=="string"?Date.parse(t.timestamp):Number.NaN,n=(Number.isNaN(e)?Date.now():e)+a.cookieDays*24*60*60*1e3,o=window.location?.protocol==="https:"?";Secure":"";a.cookieDomain&&q(`${_}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;max-age=0;path=/;SameSite=Lax${o}`);let r=a.cookieDomain?`;domain=${a.cookieDomain}`:"";q(`${_}=${encodeURIComponent(JSON.stringify(t))};expires=${new Date(n).toUTCString()};path=/${r};SameSite=Lax${o}`)}function q(t){document.cookie=t}var I="webority_attribution",Rt=2160*60*60*1e3,kt=200,L=500,vt=Object.freeze({utm_source:"utmSource",utm_medium:"utmMedium",utm_campaign:"utmCampaign",utm_content:"utmContent",utm_term:"utmTerm",gclid:"gclid",gbraid:"gbraid",wbraid:"wbraid",fbclid:"fbclid",msclkid:"msclkid",li_fat_id:"liFatId"}),Z=!1;function et(){ot("captureAttribution"),Pt();let t=Mt();if(!t)return;let e=v(b());nt(b(),{firstTouch:e?.firstTouch??t,lastTouch:t}),Ut(t)}function Ut(t){let e={event:"acquisition_touch",acquisition_channel:p(t)};t.aiSource&&(e.ai_source=t.aiSource),window.dataLayer=window.dataLayer||[],window.dataLayer.push(e)}function w(){return ot("getAttribution"),v(b())}function Mt(){let t=new URLSearchParams(window.location.search),e={};for(let[r,f]of Object.entries(vt)){let l=T(t.get(r),kt);l&&(e[f]=l)}let n=T(t.get("referrer"),L)||xt();if(n&&(e.referrer=n),Object.keys(e).length===0)return null;let o=E(e);return o&&(e.aiSource=o),e.landingPage=T(window.location.pathname,L),e.capturedDateTimeUtc=new Date().toISOString(),e}function xt(){let t=document.referrer;if(!t)return"";try{return new URL(t).hostname===window.location.hostname?"":T(t,L)}catch{return""}}function Pt(){Z||(Z=!0,m(t=>{let e=t.marketing?k():R(),n=t.marketing?R():k(),o=v(e);Gt(e),o&&nt(n,o)}))}function b(){return u().marketing?R():k()}function R(){try{return window.localStorage}catch{return null}}function k(){try{return window.sessionStorage}catch{return null}}function v(t){try{let e=t?.getItem(I);if(!e)return null;let n=JSON.parse(e),o=tt(n?.firstTouch),r=tt(n?.lastTouch);return!o&&!r?(t.removeItem(I),null):{firstTouch:o??r,lastTouch:r??o}}catch{return null}}function nt(t,e){try{t?.setItem(I,JSON.stringify(e))}catch{}}function Gt(t){try{t?.removeItem(I)}catch{}}function tt(t){if(!t||typeof t!="object")return null;let e=Date.parse(t.capturedDateTimeUtc);return Number.isFinite(e)&&Date.now()-e<=Rt?t:null}function T(t,e){let n=String(t??"").trim();return n?n.slice(0,e):""}function ot(t){if(!y())throw new Error(`@webority/analytics: call initConsent before ${t}.`)}var i=Object.freeze({SIGNUP_STARTED:"signup_started",SIGNUP_COMPLETED:"signup_completed",LOGIN_SUCCEEDED:"login_succeeded",ONBOARDING_STARTED:"onboarding_started",ONBOARDING_STEP_COMPLETED:"onboarding_step_completed",ONBOARDING_COMPLETED:"onboarding_completed",SUBSCRIPTION_ACTIVATED:"subscription_activated",SUBSCRIPTION_CANCELLED:"subscription_cancelled",PAYMENT_SUCCEEDED:"payment_succeeded",PAYMENT_FAILED:"payment_failed",FEEDBACK_SUBMITTED:"feedback_submitted",LEAD_SUBMITTED:"lead_submitted",LEAD_QUALIFIED:"lead_qualified",WHATSAPP_CLICK:"whatsapp_click",CALCULATOR_USE:"calculator_use",PHONE_CLICK:"phone_click",DEMO_BOOKED:"demo_booked",CONTACT_SUBMITTED:"contact_submitted",TRIAL_START_CLICK:"trial_start_click",SAMPLE_REPORT_DOWNLOAD:"sample_report_download"}),ne=Object.freeze({signupStarted:i.SIGNUP_STARTED,signupCompleted:i.SIGNUP_COMPLETED,loginSucceeded:i.LOGIN_SUCCEEDED,onboardingStarted:i.ONBOARDING_STARTED,onboardingStepCompleted:i.ONBOARDING_STEP_COMPLETED,onboardingCompleted:i.ONBOARDING_COMPLETED,subscriptionActivated:i.SUBSCRIPTION_ACTIVATED,subscriptionCancelled:i.SUBSCRIPTION_CANCELLED,paymentSucceeded:i.PAYMENT_SUCCEEDED,paymentFailed:i.PAYMENT_FAILED,feedbackSubmitted:i.FEEDBACK_SUBMITTED,leadSubmitted:i.LEAD_SUBMITTED,leadQualified:i.LEAD_QUALIFIED,whatsappClick:i.WHATSAPP_CLICK,calculatorUse:i.CALCULATOR_USE,phoneClick:i.PHONE_CLICK,demoBooked:i.DEMO_BOOKED,contactSubmitted:i.CONTACT_SUBMITTED,trialStartClick:i.TRIAL_START_CLICK,sampleReportDownload:i.SAMPLE_REPORT_DOWNLOAD});var Ft=new Set(Object.values(i));function rt(t,e={}){if(!Ft.has(t)||!u().analytics)return!1;let n=w(),o={...e,event:t};for(let[r,f]of[["first",n?.firstTouch],["last",n?.lastTouch]])f&&(o[`${r}_touch_channel`]=p(f),f.aiSource&&(o[`${r}_touch_ai_source`]=f.aiSource));return window.dataLayer=window.dataLayer||[],window.dataLayer.push(o),!0}var zt=["scroll","mousemove","touchstart","keydown","pointerdown"],Bt="https://www.googletagmanager.com/gtm.js",it=1500,Ht=3e3,Kt=100,d={loaded:!1,clarityId:null,clarityLoaded:!1,cancelClaritySchedule:null};function st(t={}){if(!y())throw new Error("@webority/analytics: call initConsent before loadTags.");if(d.loaded)return;d.loaded=!0;let{gtmId:e,gtmUrl:n=Bt,clarityId:o,ahrefsKey:r}=t;if(typeof n!="string"||n.trim()==="")throw new Error("@webority/analytics: gtmUrl must be a non-empty string.");let f=W();if(r){let l=()=>M("https://analytics.ahrefs.com/analytics.js",{"data-key":r});f?at(C=>C.analytics,l):l()}if(e){let l=N(),C=G=>G.analytics||G.marketing&&l,ut=()=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({"gtm.start":Date.now(),event:"gtm.js"}),M(`${n}${n.includes("?")?"&":"?"}id=${encodeURIComponent(e)}`)},x=u(),dt=x.decided&&C(x)?$t:qt,P=()=>dt(ut);f?at(C,P):P()}o&&(d.clarityId=o,u().analytics&&jt(),m(l=>{l.analytics&&!d.clarityLoaded?U():d.clarityLoaded&&ct(l)}))}function at(t,e){if(t(u())){e();return}let n=m(o=>{t(o)&&(n(),e())})}function $t(t){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t,{once:!0}):t()}function qt(t){let e=!1,n=()=>{e||(e=!0,t())};for(let o of zt)window.addEventListener(o,n,{once:!0,passive:!0});document.readyState==="complete"?setTimeout(n,it):window.addEventListener("load",()=>setTimeout(n,it),{once:!0})}function jt(){let t=()=>{window.scrollY>Kt&&U()};window.addEventListener("scroll",t,{passive:!0});let e=setTimeout(U,Ht);d.cancelClaritySchedule=()=>{window.removeEventListener("scroll",t),clearTimeout(e)}}function U(){d.cancelClaritySchedule?.(),d.cancelClaritySchedule=null,!(d.clarityLoaded||!d.clarityId)&&(d.clarityLoaded=!0,window.clarity=window.clarity||function(){window.clarity.q=window.clarity.q||[],window.clarity.q.push(arguments)},ct(u()),M(`https://www.clarity.ms/tag/${encodeURIComponent(d.clarityId)}`,{crossorigin:"anonymous"}))}function ct(t){window.clarity("consentv2",{ad_Storage:t.marketing&&N()?"granted":"denied",analytics_Storage:t.analytics?"granted":"denied"})}function M(t,e={}){let n=document.createElement("script");n.async=!0,n.src=t;for(let[o,r]of Object.entries(e))n.setAttribute(o,r);document.head.appendChild(n)}return _t(Yt);})();
1
+ var WeborityAnalytics=(()=>{var O=Object.defineProperty;var lt=Object.getOwnPropertyDescriptor;var ft=Object.getOwnPropertyNames;var mt=Object.prototype.hasOwnProperty;var pt=(t,e)=>{for(var n in e)O(t,n,{get:e[n],enumerable:!0})},gt=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of ft(e))!mt.call(t,r)&&r!==n&&O(t,r,{get:()=>e[r],enumerable:!(o=lt(e,r))||o.enumerable});return t};var _t=t=>gt(O({},"__esModule",{value:!0}),t);var Yt={};pt(Yt,{CONSENT_CHANGE_EVENT:()=>D,CONSENT_COOKIE_NAME:()=>_,captureAttribution:()=>et,channels:()=>s,events:()=>a,getAttribution:()=>w,getConsent:()=>u,initConsent:()=>Y,loadTags:()=>st,onConsentChange:()=>m,requiresOptIn:()=>$,resolveAiSource:()=>E,resolveChannel:()=>p,saveConsent:()=>V,trackSiteEvent:()=>rt});var Ct=["google","googleads","adwords","youtube"],St=["meta","facebook","fb","instagram","ig","messenger"],Et=["linkedin","lnkd"],yt=["bing","microsoft","microsoftads","msn"],F=Object.freeze([["chatgpt",["chatgpt.com","chat.openai.com"]],["perplexity",["perplexity.ai"]],["gemini",["gemini.google.com"]],["copilot",["copilot.microsoft.com"]],["claude",["claude.ai"]],["you",["you.com"]],["phind",["phind.com"]],["deepseek",["deepseek.com"]],["grok",["grok.com"]],["meta_ai",["meta.ai"]],["poe",["poe.com"]]]),Tt=["bing.com","duckduckgo.com","search.yahoo.com","ecosia.org","search.brave.com"],It=["google","yandex"],wt=["facebook.com","fb.com","instagram.com","linkedin.com","lnkd.in","twitter.com","t.co","x.com","reddit.com","pinterest.com","youtube.com","youtu.be","tiktok.com","whatsapp.com","threads.net","t.me","telegram.org"],s=Object.freeze({DIRECT:"direct",GOOGLE:"google",META:"meta",LINKEDIN:"linkedin",MICROSOFT:"microsoft",OTHER:"other",AI_ASSISTANT:"ai_assistant",ORGANIC_SEARCH:"organic_search",ORGANIC_SOCIAL:"organic_social",REFERRAL:"referral"});function p(t){if(!t)return s.DIRECT;let e=c(t.utmSource);if(e){let r=S(e);if(Ct.includes(r))return s.GOOGLE;if(St.includes(r))return s.META;if(Et.includes(r))return s.LINKEDIN;if(yt.includes(r))return s.MICROSOFT}if(c(t.fbclid))return s.META;if(c(t.gclid)||c(t.gbraid)||c(t.wbraid))return s.GOOGLE;if(c(t.liFatId))return s.LINKEDIN;if(c(t.msclkid))return s.MICROSOFT;if(z(e))return s.AI_ASSISTANT;if(e||c(t.utmMedium)||c(t.utmCampaign)||c(t.utmContent)||c(t.utmTerm))return s.OTHER;let o=K(t.referrer);return o?B(o)?s.AI_ASSISTANT:Ot(o)?s.ORGANIC_SEARCH:wt.some(r=>H(o,r))?s.ORGANIC_SOCIAL:s.REFERRAL:s.DIRECT}function E(t){if(!t)return"";let e=z(c(t.utmSource));if(e)return e;let n=K(t.referrer);return n?B(n):""}function z(t){if(!t)return"";let e=S(t);for(let[n,o]of F)if(S(n)===e||o.some(r=>S(r)===e))return n;return""}function B(t){for(let[e,n]of F)if(n.some(o=>H(t,o)))return e;return""}function Ot(t){return Tt.includes(t)?!0:It.some(e=>{if(!t.startsWith(`${e}.`))return!1;let n=t.slice(e.length+1).split(".");return n.length===1||n.length===2&&(n[0]==="co"||n[0]==="com")})}function H(t,e){return t===e||t.endsWith(`.${e}`)}function K(t){let e=c(t);if(!e)return"";try{let n=new URL(/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?e:`https://${e}`).hostname.toLowerCase();return n.startsWith("www.")?n.slice(4):n}catch{return""}}function S(t){return String(t).toLowerCase().replace(/[^\p{L}\p{N}]/gu,"")}function c(t){return String(t??"").trim()}var A=Object.freeze(["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","GB","CH"]);function $(t){let e=typeof t=="string"?t.trim().toUpperCase():"";return e.length!==2||e==="XX"||e==="T1"?!0:A.includes(e)}var _="webority_cookie_consent",D="webority-consent-change",j=365,i={initialized:!1,requiresOptIn:!0,strictOptIn:!1,adStorage:!0,cookieDays:j,cookieDomain:null,saved:null},h=new Set;function Y(t){let e=t?.strictOptIn??!1;if(typeof e!="boolean")throw new Error("@webority/analytics: initConsent strictOptIn must be true or false, or left out.");if(e){if(t.requiresOptIn!==void 0&&t.requiresOptIn!==!0)throw new Error("@webority/analytics: initConsent strictOptIn asks every visitor to opt in, so requiresOptIn must be true or left out.")}else if(typeof t?.requiresOptIn!="boolean")throw new Error("@webority/analytics: initConsent needs requiresOptIn (true or false), decided from the visitor's country.");if(t.cookieDomain!==void 0&&(typeof t.cookieDomain!="string"||!t.cookieDomain.trim()))throw new Error('@webority/analytics: initConsent cookieDomain must be a domain such as ".example.com", or left out.');if(t.cookieDays!==void 0&&!(Number.isInteger(t.cookieDays)&&t.cookieDays>0))throw new Error("@webority/analytics: initConsent cookieDays must be a whole number of days above zero, or left out.");if(t.adStorage!==void 0&&typeof t.adStorage!="boolean")throw new Error("@webority/analytics: initConsent adStorage must be true or false, or left out.");i.initialized=!0,i.strictOptIn=e,i.requiresOptIn=e||t.requiresOptIn,i.adStorage=t.adStorage??!e,i.cookieDays=t.cookieDays??j,i.cookieDomain=t.cookieDomain?.trim()??null;let{saved:n,entryCount:o}=Nt();i.saved=n,i.cookieDomain&&o>1&&n&&Q(n),ht(),Dt(),i.saved&&X(i.saved)}function y(){return i.initialized}function W(){return i.strictOptIn}function N(){return i.adStorage}function u(){J("getConsent");let t=i.saved;if(t)return{essential:!0,analytics:t.analytics,functional:t.functional,marketing:t.marketing,decided:!0};let e=!i.requiresOptIn;return{essential:!0,analytics:e,functional:e,marketing:e,decided:!1}}function V(t){J("saveConsent");let e={essential:!0,analytics:t?.analytics===!0,functional:t?.functional===!0,marketing:t?.marketing===!0,timestamp:new Date().toISOString()};Q(e),i.saved=e,X(e),At(u())}function m(t){return h.add(t),()=>h.delete(t)}function At(t){for(let e of h)try{e(t)}catch(n){queueMicrotask(()=>{throw n})}typeof window?.dispatchEvent=="function"&&typeof CustomEvent=="function"&&window.dispatchEvent(new CustomEvent(D,{detail:t}))}function J(t){if(!i.initialized)throw new Error(`@webority/analytics: call initConsent before ${t}.`)}function g(){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}function ht(){if(i.strictOptIn){g("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500});return}g("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500,region:[...A]});let t=i.adStorage?"granted":"denied";g("consent","default",{ad_storage:t,ad_user_data:t,ad_personalization:t,analytics_storage:"granted",functionality_storage:"granted",personalization_storage:"granted",security_storage:"granted"})}function Dt(){g("set","ads_data_redaction",!0),g("set","url_passthrough",!0)}function X(t){let e=o=>o?"granted":"denied",n=t.marketing&&i.adStorage;g("consent","update",{analytics_storage:e(t.analytics),functionality_storage:e(t.functional),personalization_storage:e(t.functional),ad_storage:e(n),ad_user_data:e(n),ad_personalization:e(n)})}function Nt(){let t=`${_}=`,e=(document.cookie||"").split(";").map(o=>o.trim()).filter(o=>o.startsWith(t)),n=e.map(o=>Lt(o.slice(t.length))).filter(Boolean);return{saved:bt(n),entryCount:e.length}}function Lt(t){try{let e=JSON.parse(decodeURIComponent(t));return!e||typeof e!="object"?null:{essential:!0,analytics:e.analytics===!0,functional:e.functional===!0,marketing:e.marketing===!0,timestamp:e.timestamp??null}}catch{return null}}function bt(t){if(t.length===0)return null;let e=t.map(o=>typeof o.timestamp=="string"?Date.parse(o.timestamp):Number.NaN);if(e.some(Number.isNaN))return t.at(-1);let n=0;for(let o=1;o<t.length;o++)e[o]>=e[n]&&(n=o);return t[n]}function Q(t){let e=typeof t.timestamp=="string"?Date.parse(t.timestamp):Number.NaN,n=(Number.isNaN(e)?Date.now():e)+i.cookieDays*24*60*60*1e3,o=window.location?.protocol==="https:"?";Secure":"";i.cookieDomain&&q(`${_}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;max-age=0;path=/;SameSite=Lax${o}`);let r=i.cookieDomain?`;domain=${i.cookieDomain}`:"";q(`${_}=${encodeURIComponent(JSON.stringify(t))};expires=${new Date(n).toUTCString()};path=/${r};SameSite=Lax${o}`)}function q(t){document.cookie=t}var I="webority_attribution",Rt=2160*60*60*1e3,kt=200,L=500,vt=Object.freeze({utm_source:"utmSource",utm_medium:"utmMedium",utm_campaign:"utmCampaign",utm_content:"utmContent",utm_term:"utmTerm",gclid:"gclid",gbraid:"gbraid",wbraid:"wbraid",fbclid:"fbclid",msclkid:"msclkid",li_fat_id:"liFatId"}),Z=!1;function et(){ot("captureAttribution"),Pt();let t=Mt();if(!t)return;let e=v(b());nt(b(),{firstTouch:e?.firstTouch??t,lastTouch:t}),Ut(t)}function Ut(t){let e={event:"acquisition_touch",acquisition_channel:p(t)};t.aiSource&&(e.ai_source=t.aiSource),window.dataLayer=window.dataLayer||[],window.dataLayer.push(e)}function w(){return ot("getAttribution"),v(b())}function Mt(){let t=new URLSearchParams(window.location.search),e={};for(let[r,f]of Object.entries(vt)){let l=T(t.get(r),kt);l&&(e[f]=l)}let n=T(t.get("referrer"),L)||xt();if(n&&(e.referrer=n),Object.keys(e).length===0)return null;let o=E(e);return o&&(e.aiSource=o),e.landingPage=T(window.location.pathname,L),e.capturedDateTimeUtc=new Date().toISOString(),e}function xt(){let t=document.referrer;if(!t)return"";try{return new URL(t).hostname===window.location.hostname?"":T(t,L)}catch{return""}}function Pt(){Z||(Z=!0,m(t=>{let e=t.marketing?k():R(),n=t.marketing?R():k(),o=v(e);Gt(e),o&&nt(n,o)}))}function b(){return u().marketing?R():k()}function R(){try{return window.localStorage}catch{return null}}function k(){try{return window.sessionStorage}catch{return null}}function v(t){try{let e=t?.getItem(I);if(!e)return null;let n=JSON.parse(e),o=tt(n?.firstTouch),r=tt(n?.lastTouch);return!o&&!r?(t.removeItem(I),null):{firstTouch:o??r,lastTouch:r??o}}catch{return null}}function nt(t,e){try{t?.setItem(I,JSON.stringify(e))}catch{}}function Gt(t){try{t?.removeItem(I)}catch{}}function tt(t){if(!t||typeof t!="object")return null;let e=Date.parse(t.capturedDateTimeUtc);return Number.isFinite(e)&&Date.now()-e<=Rt?t:null}function T(t,e){let n=String(t??"").trim();return n?n.slice(0,e):""}function ot(t){if(!y())throw new Error(`@webority/analytics: call initConsent before ${t}.`)}var a=Object.freeze({SIGNUP_STARTED:"signup_started",SIGNUP_COMPLETED:"signup_completed",LOGIN_SUCCEEDED:"login_succeeded",ONBOARDING_STARTED:"onboarding_started",ONBOARDING_STEP_COMPLETED:"onboarding_step_completed",ONBOARDING_COMPLETED:"onboarding_completed",SUBSCRIPTION_ACTIVATED:"subscription_activated",SUBSCRIPTION_CANCELLED:"subscription_cancelled",PAYMENT_SUCCEEDED:"payment_succeeded",PAYMENT_FAILED:"payment_failed",FEEDBACK_SUBMITTED:"feedback_submitted",LEAD_SUBMITTED:"lead_submitted",LEAD_QUALIFIED:"lead_qualified",WHATSAPP_CLICK:"whatsapp_click",CALCULATOR_USE:"calculator_use",PHONE_CLICK:"phone_click",DEMO_BOOKED:"demo_booked",CONTACT_SUBMITTED:"contact_submitted",TRIAL_START_CLICK:"trial_start_click",SAMPLE_REPORT_DOWNLOAD:"sample_report_download"}),ne=Object.freeze({signupStarted:a.SIGNUP_STARTED,signupCompleted:a.SIGNUP_COMPLETED,loginSucceeded:a.LOGIN_SUCCEEDED,onboardingStarted:a.ONBOARDING_STARTED,onboardingStepCompleted:a.ONBOARDING_STEP_COMPLETED,onboardingCompleted:a.ONBOARDING_COMPLETED,subscriptionActivated:a.SUBSCRIPTION_ACTIVATED,subscriptionCancelled:a.SUBSCRIPTION_CANCELLED,paymentSucceeded:a.PAYMENT_SUCCEEDED,paymentFailed:a.PAYMENT_FAILED,feedbackSubmitted:a.FEEDBACK_SUBMITTED,leadSubmitted:a.LEAD_SUBMITTED,leadQualified:a.LEAD_QUALIFIED,whatsappClick:a.WHATSAPP_CLICK,calculatorUse:a.CALCULATOR_USE,phoneClick:a.PHONE_CLICK,demoBooked:a.DEMO_BOOKED,contactSubmitted:a.CONTACT_SUBMITTED,trialStartClick:a.TRIAL_START_CLICK,sampleReportDownload:a.SAMPLE_REPORT_DOWNLOAD});var Ft=new Set(Object.values(a));function rt(t,e={}){if(!Ft.has(t)||!u().analytics)return!1;let n=w(),o={...e,event:t};for(let[r,f]of[["first",n?.firstTouch],["last",n?.lastTouch]])f&&(o[`${r}_touch_channel`]=p(f),f.aiSource&&(o[`${r}_touch_ai_source`]=f.aiSource));return window.dataLayer=window.dataLayer||[],window.dataLayer.push(o),!0}var zt=["scroll","mousemove","touchstart","keydown","pointerdown"],Bt="https://www.googletagmanager.com/gtm.js",it=1500,Ht=3e3,Kt=100,d={loaded:!1,clarityId:null,clarityLoaded:!1,cancelClaritySchedule:null};function st(t={}){if(!y())throw new Error("@webority/analytics: call initConsent before loadTags.");if(d.loaded)return;d.loaded=!0;let{gtmId:e,gtmUrl:n=Bt,clarityId:o,ahrefsKey:r}=t;if(typeof n!="string"||n.trim()==="")throw new Error("@webority/analytics: gtmUrl must be a non-empty string.");let f=W();if(r){let l=()=>M("https://analytics.ahrefs.com/analytics.js",{"data-key":r});f?at(C=>C.analytics,l):l()}if(e){let l=N(),C=G=>G.analytics||G.marketing&&l,ut=()=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({"gtm.start":Date.now(),event:"gtm.js"}),M(`${n}${n.includes("?")?"&":"?"}id=${encodeURIComponent(e)}`)},x=u(),dt=x.decided&&C(x)?$t:qt,P=()=>dt(ut);f?at(C,P):P()}o&&(d.clarityId=o,u().analytics&&jt(),m(l=>{l.analytics&&!d.clarityLoaded?U():d.clarityLoaded&&ct(l)}))}function at(t,e){if(t(u())){e();return}let n=m(o=>{t(o)&&(n(),e())})}function $t(t){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t,{once:!0}):t()}function qt(t){let e=!1,n=()=>{e||(e=!0,t())};for(let o of zt)window.addEventListener(o,n,{once:!0,passive:!0});document.readyState==="complete"?setTimeout(n,it):window.addEventListener("load",()=>setTimeout(n,it),{once:!0})}function jt(){let t=()=>{window.scrollY>Kt&&U()};window.addEventListener("scroll",t,{passive:!0});let e=setTimeout(U,Ht);d.cancelClaritySchedule=()=>{window.removeEventListener("scroll",t),clearTimeout(e)}}function U(){d.cancelClaritySchedule?.(),d.cancelClaritySchedule=null,!(d.clarityLoaded||!d.clarityId)&&(d.clarityLoaded=!0,window.clarity=window.clarity||function(){window.clarity.q=window.clarity.q||[],window.clarity.q.push(arguments)},ct(u()),M(`https://www.clarity.ms/tag/${encodeURIComponent(d.clarityId)}`,{crossorigin:"anonymous"}))}function ct(t){window.clarity("consentv2",{ad_Storage:t.marketing&&N()?"granted":"denied",analytics_Storage:t.analytics?"granted":"denied"})}function M(t,e={}){let n=document.createElement("script");n.async=!0,n.src=t;for(let[o,r]of Object.entries(e))n.setAttribute(o,r);document.head.appendChild(n)}return _t(Yt);})();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webority/analytics",
3
- "version": "0.11.1",
3
+ "version": "0.11.2",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -17,7 +17,7 @@
17
17
  ],
18
18
  "scripts": {
19
19
  "build": "node -e \"require(\\\"node:fs\\\").rmSync(\\\"dist\\\",{recursive:true,force:true})\" && esbuild src/index.js src/site.js --bundle --splitting --format=esm --external:posthog-js --target=es2020 --minify --outdir=dist && esbuild src/site.js --bundle --format=iife --global-name=WeborityAnalytics --target=es2020 --minify --outfile=dist/webority-analytics-site.global.js",
20
- "prepack": "npm run build",
20
+ "prepack": "npm run build && node ../scripts/package-guard-pack.mjs --output-dirs dist --allow-file ../.webority/package-allow.json",
21
21
  "lint": "biome lint ./src ./test",
22
22
  "format": "biome format --write ./src ./test",
23
23
  "check": "biome check ./src ./test",
@@ -1 +0,0 @@
1
- var rt=["google","googleads","adwords","youtube"],it=["meta","facebook","fb","instagram","ig","messenger"],at=["linkedin","lnkd"],st=["bing","microsoft","microsoftads","msn"],P=Object.freeze([["chatgpt",["chatgpt.com","chat.openai.com"]],["perplexity",["perplexity.ai"]],["gemini",["gemini.google.com"]],["copilot",["copilot.microsoft.com"]],["claude",["claude.ai"]],["you",["you.com"]],["phind",["phind.com"]],["deepseek",["deepseek.com"]],["grok",["grok.com"]],["meta_ai",["meta.ai"]],["poe",["poe.com"]]]),ct=["bing.com","duckduckgo.com","search.yahoo.com","ecosia.org","search.brave.com"],ut=["google","yandex"],dt=["facebook.com","fb.com","instagram.com","linkedin.com","lnkd.in","twitter.com","t.co","x.com","reddit.com","pinterest.com","youtube.com","youtu.be","tiktok.com","whatsapp.com","threads.net","t.me","telegram.org"],s=Object.freeze({DIRECT:"direct",GOOGLE:"google",META:"meta",LINKEDIN:"linkedin",MICROSOFT:"microsoft",OTHER:"other",AI_ASSISTANT:"ai_assistant",ORGANIC_SEARCH:"organic_search",ORGANIC_SOCIAL:"organic_social",REFERRAL:"referral"});function g(t){if(!t)return s.DIRECT;let e=c(t.utmSource);if(e){let r=C(e);if(rt.includes(r))return s.GOOGLE;if(it.includes(r))return s.META;if(at.includes(r))return s.LINKEDIN;if(st.includes(r))return s.MICROSOFT}if(c(t.fbclid))return s.META;if(c(t.gclid)||c(t.gbraid)||c(t.wbraid))return s.GOOGLE;if(c(t.liFatId))return s.LINKEDIN;if(c(t.msclkid))return s.MICROSOFT;if(G(e))return s.AI_ASSISTANT;if(e||c(t.utmMedium)||c(t.utmCampaign)||c(t.utmContent)||c(t.utmTerm))return s.OTHER;let o=B(t.referrer);return o?F(o)?s.AI_ASSISTANT:lt(o)?s.ORGANIC_SEARCH:dt.some(r=>z(o,r))?s.ORGANIC_SOCIAL:s.REFERRAL:s.DIRECT}function I(t){if(!t)return"";let e=G(c(t.utmSource));if(e)return e;let n=B(t.referrer);return n?F(n):""}function G(t){if(!t)return"";let e=C(t);for(let[n,o]of P)if(C(n)===e||o.some(r=>C(r)===e))return n;return""}function F(t){for(let[e,n]of P)if(n.some(o=>z(t,o)))return e;return""}function lt(t){return ct.includes(t)?!0:ut.some(e=>{if(!t.startsWith(`${e}.`))return!1;let n=t.slice(e.length+1).split(".");return n.length===1||n.length===2&&(n[0]==="co"||n[0]==="com")})}function z(t,e){return t===e||t.endsWith(`.${e}`)}function B(t){let e=c(t);if(!e)return"";try{let n=new URL(/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?e:`https://${e}`).hostname.toLowerCase();return n.startsWith("www.")?n.slice(4):n}catch{return""}}function C(t){return String(t).toLowerCase().replace(/[^\p{L}\p{N}]/gu,"")}function c(t){return String(t??"").trim()}var w=Object.freeze(["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","IS","LI","NO","GB","CH"]);function ft(t){let e=typeof t=="string"?t.trim().toUpperCase():"";return e.length!==2||e==="XX"||e==="T1"?!0:w.includes(e)}var S="webority_cookie_consent",K="webority-consent-change",$=365,i={initialized:!1,requiresOptIn:!0,strictOptIn:!1,adStorage:!0,cookieDays:$,cookieDomain:null,saved:null},O=new Set;function mt(t){let e=t?.strictOptIn??!1;if(typeof e!="boolean")throw new Error("@webority/analytics: initConsent strictOptIn must be true or false, or left out.");if(e){if(t.requiresOptIn!==void 0&&t.requiresOptIn!==!0)throw new Error("@webority/analytics: initConsent strictOptIn asks every visitor to opt in, so requiresOptIn must be true or left out.")}else if(typeof t?.requiresOptIn!="boolean")throw new Error("@webority/analytics: initConsent needs requiresOptIn (true or false), decided from the visitor's country.");if(t.cookieDomain!==void 0&&(typeof t.cookieDomain!="string"||!t.cookieDomain.trim()))throw new Error('@webority/analytics: initConsent cookieDomain must be a domain such as ".example.com", or left out.');if(t.cookieDays!==void 0&&!(Number.isInteger(t.cookieDays)&&t.cookieDays>0))throw new Error("@webority/analytics: initConsent cookieDays must be a whole number of days above zero, or left out.");if(t.adStorage!==void 0&&typeof t.adStorage!="boolean")throw new Error("@webority/analytics: initConsent adStorage must be true or false, or left out.");i.initialized=!0,i.strictOptIn=e,i.requiresOptIn=e||t.requiresOptIn,i.adStorage=t.adStorage??!e,i.cookieDays=t.cookieDays??$,i.cookieDomain=t.cookieDomain?.trim()??null;let{saved:n,entryCount:o}=St();i.saved=n,i.cookieDomain&&o>1&&n&&W(n),_t(),Ct(),i.saved&&Y(i.saved)}function E(){return i.initialized}function q(){return i.strictOptIn}function A(){return i.adStorage}function d(){j("getConsent");let t=i.saved;if(t)return{essential:!0,analytics:t.analytics,functional:t.functional,marketing:t.marketing,decided:!0};let e=!i.requiresOptIn;return{essential:!0,analytics:e,functional:e,marketing:e,decided:!1}}function pt(t){j("saveConsent");let e={essential:!0,analytics:t?.analytics===!0,functional:t?.functional===!0,marketing:t?.marketing===!0,timestamp:new Date().toISOString()};W(e),i.saved=e,Y(e),gt(d())}function p(t){return O.add(t),()=>O.delete(t)}function gt(t){for(let e of O)try{e(t)}catch(n){queueMicrotask(()=>{throw n})}typeof window?.dispatchEvent=="function"&&typeof CustomEvent=="function"&&window.dispatchEvent(new CustomEvent(K,{detail:t}))}function j(t){if(!i.initialized)throw new Error(`@webority/analytics: call initConsent before ${t}.`)}function m(){window.dataLayer=window.dataLayer||[],window.dataLayer.push(arguments)}function _t(){if(i.strictOptIn){m("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500});return}m("consent","default",{ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied",analytics_storage:"denied",functionality_storage:"denied",personalization_storage:"denied",security_storage:"granted",wait_for_update:500,region:[...w]}),m("consent","default",{ad_storage:"granted",ad_user_data:"granted",ad_personalization:"granted",analytics_storage:"granted",functionality_storage:"granted",personalization_storage:"granted",security_storage:"granted"})}function Ct(){m("set","ads_data_redaction",!0),m("set","url_passthrough",!0)}function Y(t){let e=o=>o?"granted":"denied",n=t.marketing&&i.adStorage;m("consent","update",{analytics_storage:e(t.analytics),functionality_storage:e(t.functional),personalization_storage:e(t.functional),ad_storage:e(n),ad_user_data:e(n),ad_personalization:e(n)})}function St(){let t=`${S}=`,e=(document.cookie||"").split(";").map(o=>o.trim()).filter(o=>o.startsWith(t)),n=e.map(o=>Et(o.slice(t.length))).filter(Boolean);return{saved:yt(n),entryCount:e.length}}function Et(t){try{let e=JSON.parse(decodeURIComponent(t));return!e||typeof e!="object"?null:{essential:!0,analytics:e.analytics===!0,functional:e.functional===!0,marketing:e.marketing===!0,timestamp:e.timestamp??null}}catch{return null}}function yt(t){if(t.length===0)return null;let e=t.map(o=>typeof o.timestamp=="string"?Date.parse(o.timestamp):Number.NaN);if(e.some(Number.isNaN))return t.at(-1);let n=0;for(let o=1;o<t.length;o++)e[o]>=e[n]&&(n=o);return t[n]}function W(t){let e=typeof t.timestamp=="string"?Date.parse(t.timestamp):Number.NaN,n=(Number.isNaN(e)?Date.now():e)+i.cookieDays*24*60*60*1e3,o=window.location?.protocol==="https:"?";Secure":"";i.cookieDomain&&H(`${S}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;max-age=0;path=/;SameSite=Lax${o}`);let r=i.cookieDomain?`;domain=${i.cookieDomain}`:"";H(`${S}=${encodeURIComponent(JSON.stringify(t))};expires=${new Date(n).toUTCString()};path=/${r};SameSite=Lax${o}`)}function H(t){document.cookie=t}var T="webority_attribution",Tt=2160*60*60*1e3,It=200,h=500,wt=Object.freeze({utm_source:"utmSource",utm_medium:"utmMedium",utm_campaign:"utmCampaign",utm_content:"utmContent",utm_term:"utmTerm",gclid:"gclid",gbraid:"gbraid",wbraid:"wbraid",fbclid:"fbclid",msclkid:"msclkid",li_fat_id:"liFatId"}),V=!1;function Ot(){Q("captureAttribution"),Nt();let t=ht();if(!t)return;let e=R(D());X(D(),{firstTouch:e?.firstTouch??t,lastTouch:t}),At(t)}function At(t){let e={event:"acquisition_touch",acquisition_channel:g(t)};t.aiSource&&(e.ai_source=t.aiSource),window.dataLayer=window.dataLayer||[],window.dataLayer.push(e)}function b(){return Q("getAttribution"),R(D())}function ht(){let t=new URLSearchParams(window.location.search),e={};for(let[r,f]of Object.entries(wt)){let l=y(t.get(r),It);l&&(e[f]=l)}let n=y(t.get("referrer"),h)||Dt();if(n&&(e.referrer=n),Object.keys(e).length===0)return null;let o=I(e);return o&&(e.aiSource=o),e.landingPage=y(window.location.pathname,h),e.capturedDateTimeUtc=new Date().toISOString(),e}function Dt(){let t=document.referrer;if(!t)return"";try{return new URL(t).hostname===window.location.hostname?"":y(t,h)}catch{return""}}function Nt(){V||(V=!0,p(t=>{let e=t.marketing?L():N(),n=t.marketing?N():L(),o=R(e);Lt(e),o&&X(n,o)}))}function D(){return d().marketing?N():L()}function N(){try{return window.localStorage}catch{return null}}function L(){try{return window.sessionStorage}catch{return null}}function R(t){try{let e=t?.getItem(T);if(!e)return null;let n=JSON.parse(e),o=J(n?.firstTouch),r=J(n?.lastTouch);return!o&&!r?(t.removeItem(T),null):{firstTouch:o??r,lastTouch:r??o}}catch{return null}}function X(t,e){try{t?.setItem(T,JSON.stringify(e))}catch{}}function Lt(t){try{t?.removeItem(T)}catch{}}function J(t){if(!t||typeof t!="object")return null;let e=Date.parse(t.capturedDateTimeUtc);return Number.isFinite(e)&&Date.now()-e<=Tt?t:null}function y(t,e){let n=String(t??"").trim();return n?n.slice(0,e):""}function Q(t){if(!E())throw new Error(`@webority/analytics: call initConsent before ${t}.`)}var a=Object.freeze({SIGNUP_STARTED:"signup_started",SIGNUP_COMPLETED:"signup_completed",LOGIN_SUCCEEDED:"login_succeeded",ONBOARDING_STARTED:"onboarding_started",ONBOARDING_STEP_COMPLETED:"onboarding_step_completed",ONBOARDING_COMPLETED:"onboarding_completed",SUBSCRIPTION_ACTIVATED:"subscription_activated",SUBSCRIPTION_CANCELLED:"subscription_cancelled",PAYMENT_SUCCEEDED:"payment_succeeded",PAYMENT_FAILED:"payment_failed",FEEDBACK_SUBMITTED:"feedback_submitted",LEAD_SUBMITTED:"lead_submitted",LEAD_QUALIFIED:"lead_qualified",WHATSAPP_CLICK:"whatsapp_click",CALCULATOR_USE:"calculator_use",PHONE_CLICK:"phone_click",DEMO_BOOKED:"demo_booked",CONTACT_SUBMITTED:"contact_submitted",TRIAL_START_CLICK:"trial_start_click",SAMPLE_REPORT_DOWNLOAD:"sample_report_download"}),Yt=Object.freeze({signupStarted:a.SIGNUP_STARTED,signupCompleted:a.SIGNUP_COMPLETED,loginSucceeded:a.LOGIN_SUCCEEDED,onboardingStarted:a.ONBOARDING_STARTED,onboardingStepCompleted:a.ONBOARDING_STEP_COMPLETED,onboardingCompleted:a.ONBOARDING_COMPLETED,subscriptionActivated:a.SUBSCRIPTION_ACTIVATED,subscriptionCancelled:a.SUBSCRIPTION_CANCELLED,paymentSucceeded:a.PAYMENT_SUCCEEDED,paymentFailed:a.PAYMENT_FAILED,feedbackSubmitted:a.FEEDBACK_SUBMITTED,leadSubmitted:a.LEAD_SUBMITTED,leadQualified:a.LEAD_QUALIFIED,whatsappClick:a.WHATSAPP_CLICK,calculatorUse:a.CALCULATOR_USE,phoneClick:a.PHONE_CLICK,demoBooked:a.DEMO_BOOKED,contactSubmitted:a.CONTACT_SUBMITTED,trialStartClick:a.TRIAL_START_CLICK,sampleReportDownload:a.SAMPLE_REPORT_DOWNLOAD}),Wt=/^[a-z][a-z0-9]*(_[a-z0-9]+)*$/;var bt=new Set(Object.values(a));function Rt(t,e={}){if(!bt.has(t)||!d().analytics)return!1;let n=b(),o={...e,event:t};for(let[r,f]of[["first",n?.firstTouch],["last",n?.lastTouch]])f&&(o[`${r}_touch_channel`]=g(f),f.aiSource&&(o[`${r}_touch_ai_source`]=f.aiSource));return window.dataLayer=window.dataLayer||[],window.dataLayer.push(o),!0}var kt=["scroll","mousemove","touchstart","keydown","pointerdown"],vt="https://www.googletagmanager.com/gtm.js",Z=1500,Ut=3e3,Mt=100,u={loaded:!1,clarityId:null,clarityLoaded:!1,cancelClaritySchedule:null};function xt(t={}){if(!E())throw new Error("@webority/analytics: call initConsent before loadTags.");if(u.loaded)return;u.loaded=!0;let{gtmId:e,gtmUrl:n=vt,clarityId:o,ahrefsKey:r}=t;if(typeof n!="string"||n.trim()==="")throw new Error("@webority/analytics: gtmUrl must be a non-empty string.");let f=q();if(r){let l=()=>v("https://analytics.ahrefs.com/analytics.js",{"data-key":r});f?tt(_=>_.analytics,l):l()}if(e){let l=A(),_=x=>x.analytics||x.marketing&&l,nt=()=>{window.dataLayer=window.dataLayer||[],window.dataLayer.push({"gtm.start":Date.now(),event:"gtm.js"}),v(`${n}${n.includes("?")?"&":"?"}id=${encodeURIComponent(e)}`)},U=d(),ot=U.decided&&_(U)?Pt:Gt,M=()=>ot(nt);f?tt(_,M):M()}o&&(u.clarityId=o,d().analytics&&Ft(),p(l=>{l.analytics&&!u.clarityLoaded?k():u.clarityLoaded&&et(l)}))}function tt(t,e){if(t(d())){e();return}let n=p(o=>{t(o)&&(n(),e())})}function Pt(t){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",t,{once:!0}):t()}function Gt(t){let e=!1,n=()=>{e||(e=!0,t())};for(let o of kt)window.addEventListener(o,n,{once:!0,passive:!0});document.readyState==="complete"?setTimeout(n,Z):window.addEventListener("load",()=>setTimeout(n,Z),{once:!0})}function Ft(){let t=()=>{window.scrollY>Mt&&k()};window.addEventListener("scroll",t,{passive:!0});let e=setTimeout(k,Ut);u.cancelClaritySchedule=()=>{window.removeEventListener("scroll",t),clearTimeout(e)}}function k(){u.cancelClaritySchedule?.(),u.cancelClaritySchedule=null,!(u.clarityLoaded||!u.clarityId)&&(u.clarityLoaded=!0,window.clarity=window.clarity||function(){window.clarity.q=window.clarity.q||[],window.clarity.q.push(arguments)},et(d()),v(`https://www.clarity.ms/tag/${encodeURIComponent(u.clarityId)}`,{crossorigin:"anonymous"}))}function et(t){window.clarity("consentv2",{ad_Storage:t.marketing&&A()?"granted":"denied",analytics_Storage:t.analytics?"granted":"denied"})}function v(t,e={}){let n=document.createElement("script");n.async=!0,n.src=t;for(let[o,r]of Object.entries(e))n.setAttribute(o,r);document.head.appendChild(n)}export{ft as a,S as b,K as c,mt as d,E as e,d as f,pt as g,p as h,a as i,Yt as j,Wt as k,s as l,g as m,I as n,Ot as o,b as p,Rt as q,xt as r};