@picked/analytics 0.0.1-dev.1764619864065 → 0.0.1-dev.1764626732123

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
+ "use strict";const h=require("@snowplow/browser-tracker"),tt=require("@snowplow/browser-plugin-button-click-tracking"),St=require("@snowplow/browser-plugin-performance-navigation-timing"),et=require("@snowplow/browser-plugin-error-tracking"),Vt=require("@snowplow/browser-plugin-web-vitals"),P=require("@picked/client");function nt(t,e){return`iglu:dev.pckd/${t}/jsonschema/${e}`}function g(t,...e){}function $(t,...e){}function l(t,e,o={}){return{event:{schema:nt("event","1-0-0"),data:{type:t,meta:o}},context:e.filter(i=>i!==void 0)}}function n(t,e,o){return{schema:nt(t,e),data:o}}function u(t,e){return(o,i)=>{const a=e(o,i);h.trackSelfDescribingEvent(a)}}function D(t,e,o={passive:!0}){const i=new WeakMap;return(a,s)=>{let r=i.get(a);if(r||(r=new Set,i.set(a,r)),r.has(t))return;function c(E){const C=s();e({event:E,analyticsContext:C})}a.addEventListener(t,c,o),r.add(t)}}function Yt(t,e){const o=new Set;return i=>{if(o.has(t)||!P.supportsDocument())return;function a(s){const r=i();e({event:s,analyticsContext:r})}document.addEventListener(t,a,{passive:!0}),o.add(t)}}function y(t,e){const o=new Set;return i=>{if(o.has(t)||!P.supportsWindow())return;function a(s){const r=i();e({event:s,analyticsContext:r})}window.addEventListener(t,a,{passive:!0}),o.add(t)}}function f(t){var o;return{items:((o=t.features)==null?void 0:o.map(({feature:i,name:a,key:s,bucket:r})=>({ab_feature:i,ab_name:a,ab_key:s,ab_bucket:r})))||[]}}const b="unknown";function d(t){var i;const e=qt(),o={id:t.sessionId||null};return e&&(o.gaid=e),(i=t.shopifySession)!=null&&i.clientId&&(o.shopify_client_id=t.shopifySession.clientId),o}function S(t){if(t.fields)return{items:t.fields.map(({id:e,type:o,label:i,options:a})=>({id:e,type:o,label:i,options:a}))}}function G(t){if(t.responses)return{items:t.responses.map(({fieldId:e,value:o})=>({field_id:e,values:Array.isArray(o)?o.map(i=>({value:i})):[{value:o}]}))}}function x(t,e=!1){const{step:o}=t;if(o)return{id:o.id,title:o.label};if(e)return $('"step" is required for this event',t),{id:b,title:b}}function Bt(t,e=!1){const{productList:o}=t;if(o){const i={};"title"in o&&o.title&&Object.assign(i,{title:o.title});const a="items"in o?o.items:o;return Object.assign(i,{items:a.map(s=>({item_id:s.itemId,item_name:s.itemName,affiliation:s.affiliation,coupon:s.coupon,currency:s.currency,creative_name:s.creativeName,creative_slot:s.creativeSlot,discount:w(s.discount),index:w(s.index),item_brand:s.itemBrand,item_category:s.itemCategory,item_category2:s.itemCategory2,item_category3:s.itemCategory3,item_category4:s.itemCategory4,item_category5:s.itemCategory5,item_list_id:s.itemListId,item_list_name:s.itemListName,item_variant:s.itemVariant,location_id:s.locationId,price:w(s.price),promotion_id:s.promotionId,promotion_name:s.promotionName,quantity:w(s.quantity),in_stock:s.inStock}))}),i}if(e)return $('"productList" is required for this event',t),{}}function p(t,e=!1){const{experience:o}=t;if(o)return{id:o.id,title:o.title};if(e)return $('"experience" is required for this event',t),{id:b,title:b}}function U(t,e=!1){const{exception:o}=t;if(o)return typeof o=="string"?{reason:o}:{reason:o.systemMessage};if(e)return $('"exception" is required for this event',t),{reason:b}}function V(t){const{form:e}=t;return e?{id:e.id,title:e.title}:($('"form" is required for this event',t),{id:b,title:b})}function Ft(t){const{modal:e}=t;return e?{id:e.id,title:e.title}:($('"modal" is required for this event',t),{id:b,title:b})}function Y(t,e=300){let o;return function(...i){clearTimeout(o),o=setTimeout(()=>t.apply(this,i),e)}}function w(t){if(typeof t=="number")return t;if(typeof t!="string")return;const e=parseFloat(t);if(!isNaN(e))return e}function qt(){if(!P.supportsDocument()||!P.supportsCookies())return null;const t="_ga=",e=document.cookie?document.cookie.split(";"):[];for(const o of e){const i=o.trim();if(i.startsWith(t)){const s=i.substring(t.length).split(".");if(s.length>2)return s.slice(2).join(".")}}}function Ht(t){const e=[];return t.trackErrors&&(g(),e.push(et.ErrorTrackingPlugin())),t.trackVitals&&(g(),e.push(Vt.WebVitalsPlugin())),t.trackPerformance&&(g(),e.push(St.PerformanceNavigationTimingPlugin())),(t.trackButtonClickAllowList||t.trackButtonClickFilter)&&e.push(tt.ButtonClickTrackingPlugin()),e}function At(t){t.trackActivity&&!t.trackActivityCallback&&(g(),h.enableActivityTracking({minimumVisitLength:30,heartbeatDelay:10})),t.trackActivity&&t.trackActivityCallback&&(g(),h.enableActivityTrackingCallback({minimumVisitLength:30,heartbeatDelay:10,callback:t.trackActivityCallback})),(t.trackButtonClickAllowList||t.trackButtonClickFilter)&&(g(),tt.enableButtonClickTracking({filter:t.trackButtonClickAllowList?{allowlist:t.trackButtonClickAllowList}:t.trackButtonClickFilter})),t.trackErrors&&(g(),et.enableErrorTracking())}function Rt({organizationId:t,projectId:e,cvlyX:o,collectorUrl:i="evnts.pckd.dev",appId:a="picked-analytics",trackVitals:s=!0,trackPerformance:r=!0,trackWebPage:c=!0,trackSessions:E=!0,trackBrowser:C=!0,trackActivity:$t=!0,trackErrors:yt=!0,trackActivityCallback:ht,trackButtonClickAllowList:wt}){g();const I={trackVitals:s,trackErrors:yt,trackActivity:$t,trackPerformance:r,trackActivityCallback:ht,trackButtonClickAllowList:wt},Nt={appId:a,platform:"web",contexts:{webPage:c,session:E,browser:C||!1},plugins:Ht(I)},Pt=h.newTracker(a,i,Nt);return Ot({organizationId:t,projectId:e,cvlyX:o}),At(I),Pt}function Ot({organizationId:t,projectId:e,cvlyX:o}){if(!t||!e)throw new Error("bindGlobalContext: Both organizationId and projectId are required");const i=[];i.push(n("app","1-0-0",{organization_id:t,project_id:e})),o&&i.push(n("cvly_x","1-0-1",{vercel_deployment_id:o.vercelDeploymentId,vercel_env:o.vercelEnv,vercel_url:o.vercelUrl})),h.addGlobalContexts(i)}const ot="app_close";function Wt(t,e){const o=f(t),i=d(t),a=p(t),s=x(t);return l(ot,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const jt=u(ot,Wt),st="app_load";function Mt(t,e){const o=f(t),i=d(t),a=p(t),s=x(t);return l(st,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Gt=u(st,Mt),at="app_open";function Ut(t,e){const o=f(t),i=d(t),a=p(t),s=x(t);return l(at,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const It=u(at,Ut),it="experience_load";function zt(t,e){const o=f(t),i=d(t),a=p(t,!0),s=x(t);return l(it,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("experience","1-0-1",a),s?n("step","1-0-0",s):void 0],e)}const Kt=u(it,zt),rt="feature_decide";function Xt(t,e){const o=f(t),i=d(t),a=p(t),s=x(t);return l(rt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Jt=u(rt,Xt),ct="field_validation_error";function Qt(t,e){const o=f(t),i=d(t),a=V(t),s=U(t,!0),r=p(t),c=x(t);return l(ct,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("exception","1-0-0",s),n("form","1-0-0",a),r&&n("experience","1-0-1",r),c&&n("step","1-0-0",c)],e)}const Zt=u(ct,Qt),lt="form_submit";function te(t,e){const o=f(t),i=d(t),a=V(t),s=p(t),r=x(t);return l(lt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("form","1-0-0",a),s&&n("experience","1-0-1",s),r&&n("step","1-0-0",r)],e)}const ee=u(lt,te),ut="form_submit_error";function ne(t,e){const o=f(t),i=d(t),a=V(t),s=U(t,!0),r=p(t),c=x(t);return l(ut,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("form","1-0-0",a),n("exception","1-0-0",s),r&&n("experience","1-0-1",r),c&&n("step","1-0-0",c)],e)}const oe=u(ut,ne),ft="form_submit_success";function se(t,e){const o=f(t),i=d(t),a=V(t),s=p(t),r=x(t);return l(ft,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("form","1-0-0",a),s&&n("experience","1-0-1",s),r&&n("step","1-0-0",r)],e)}const ae=u(ft,se),dt="step_enter";function ie(t,e){const o=f(t),i=d(t),a=p(t),s=x(t,!0),r=S(t);return l(dt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("step","1-0-0",s),r&&n("field_list","1-0-0",r),a&&n("experience","1-0-1",a)],e)}const re=u(dt,ie),xt="step_submit";function ce(t,e){const o=f(t),i=d(t),a=p(t),s=x(t,!0),r=G(t),c=S(t);return l(xt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("step","1-0-0",s),c&&n("field_list","1-0-0",c),r&&n("response_list","1-0-0",r),a&&n("experience","1-0-1",a)],e)}const le=u(xt,ce),pt="step_submit_success";function ue(t,e){const o=f(t),i=d(t),a=p(t),s=x(t,!0),r=S(t),c=G(t);return l(pt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("step","1-0-0",s),r&&n("field_list","1-0-0",r),c&&n("response_list","1-0-0",c),a&&n("experience","1-0-1",a)],e)}const fe=u(pt,ue);function _(t){return t instanceof Element}function k(t){const e=["a","button","input","select","textarea","details","summary","label","form","fieldset","legend","optgroup","option","output","datalist","dialog","menu","menuitem","iframe","audio","video","embed","object","canvas"].join(", ");return _(t)?t.matches(e)?t:t.closest(e):null}function v(t){if(t instanceof HTMLSelectElement){const e=t.selectedIndex||0,o=t.options[e];return(o==null?void 0:o.text)??""}return"innerText"in t&&typeof t.innerText=="string"?t.innerText:t.textContent}function T(t){const e=t.getAttribute("aria-label");if(e)return e;const o=t.getAttribute("aria-labelledby");if(o){const a=document.getElementById(o);if(a){const s=v(a);if(s)return s}}if("id"in t&&t.id){const a=document.querySelector(`label[for="${t.id}"]`);if(a){const s=v(a);if(s)return s}}let i=t.parentElement;for(;i;){if(i.tagName.toLowerCase()==="label"){const a=v(i);if(a)return a}i=i.parentElement}if(t instanceof HTMLInputElement&&"labels"in t&&t.labels){const a=Array.from(t.labels).map(s=>v(s)).filter(Boolean).join(" ");if(a)return a}return"placeholder"in t&&typeof t.placeholder=="string"?t.placeholder:null}const de=255;function m(t){return t?t.slice(0,de):null}const F="rapid_scroll";function xe(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r)){const C={node_type:"unknown"};return l(F,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",C)],e)}const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(F,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",E)],e)}const pe=u(F,xe),Ee=100,me=100,Ce=300;let z=0,K=0;const ve=Y((t,e)=>{pe(t,e)},Ce);function De(t,e){const o=t.event.target||document.documentElement;if(!(o instanceof HTMLElement))return;const i=o.scrollTop,a=Date.now()-K;Math.abs(i-z)>Ee&&a<me&&ve(t.event,e),z=i,K=Date.now()}const _e=D("scroll",De,!0),q="rapid_click";function be(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r)){const C={node_type:"unknown"};return l(q,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",C),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(q,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",E),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const ke=u(q,be);let N=0,X=0;const Te=3,ge=500;function Le(t,e){const o=new Date().getTime();o-X<ge?N++:N=1,X=o,N>=Te&&(ke(t,e),N=0)}const $e=D("click",Le),H="right_click";function ye(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r)){const C={node_type:"unknown"};return l(H,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",C),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0])}const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(H,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",E),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const he=u(H,ye);function we(t,e){he(t,e)}const Ne=D("contextmenu",we),Et="mouse_shake";function Pe(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(Et,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Se=u(Et,Pe),Ve=5,Ye=500,Be=500;let J={x:0},L=[],Q=0;const Fe=Y((t,e)=>{Se(t,e)},Ye);function qe(t,e){const o=Date.now(),i=t.event.clientX-J.x,a=Math.sign(i);o-Q>Be&&(L=[]),a!==0&&(L.length===0||L[L.length-1]!==a)&&L.push(a),J={x:t.event.clientX,y:t.event.clientY},L.length>=Ve&&(Fe(t,e),L=[]),Q=o}const He=D("mousemove",qe),mt="page_visible";function Ae(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(mt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Re=u(mt,Ae),Ct="page_hidden";function Oe(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(Ct,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const We=u(Ct,Oe);function je(t,e){if(document.visibilityState==="visible"){Re(t,e);return}We(t,e)}const Me=Yt("visibilitychange",je),A="backspace";function Ge(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r)){const C={node_type:"unknown"};return l(A,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",C),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(A,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",E),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Ue=u(A,Ge);function Ie(t,e){t.event.key==="Backspace"&&Ue(t,e)}const ze=D("keydown",Ie),vt="page_hide";function Ke(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(vt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Xe=u(vt,Ke);function Je(t,e){Xe(t,e)}const Qe=y("pagehide",Je),Dt="page_show";function Ze(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(Dt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const tn=u(Dt,Ze);function en(t,e){tn(t,e)}const nn=y("pageshow",en),_t="offline";function on(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(_t,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const sn=u(_t,on);function an(t,e){sn(t,e)}const rn=y("offline",an),R="scroll";function cn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r))return l(R,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e);const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(R,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",E)],e)}const ln=u(R,cn),un=Y((t,e)=>{ln(t,e)},500),fn=D("scroll",un,!0),bt="online";function dn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(bt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const xn=u(bt,dn);function pn(t,e){xn(t,e)}const En=y("online",pn),kt="resize";function mn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(kt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Z=u(kt,mn);let B=0;const Cn=Y((t,e)=>{const o=window.innerWidth;o!==B?(Z(t,e),B=o):"ontouchstart"in window||Z(t,e),B=o},300),vn=y("resize",Cn),Tt="unload";function Dn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(Tt,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const _n=u(Tt,Dn);function bn(t,e){_n(t,e)}const kn=y("unload",bn),O="click";function Tn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r)){const C={node_type:"unknown"};return l(O,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",C),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(O,[n("feature_list","2-0-0",o),n("session","1-0-2",i),n("element","1-0-0",E),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const gn=u(O,Tn);function Ln(t,e){gn(t,e)}const $n=D("click",Ln),W="paste";function yn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r))return l(W,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e);const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(W,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",E)],e)}const hn=u(W,yn);function wn(t,e){hn(t,e)}const Nn=D("paste",wn),j="copy";function Pn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r))return l(j,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e);const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(j,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",E)],e)}const Sn=u(j,Pn);function Vn(t,e){Sn(t,e)}const Yn=D("copy",Vn),M="drag";function Bn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!_(r))return l(M,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e);const c=k(r)||r,E={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:m(T(c)),text:m(v(c))};return l(M,[n("feature_list","2-0-0",o),n("session","1-0-2",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",E)],e)}const Fn=u(M,Bn);function gt(t,e){const o=t.event.currentTarget;if(!o||!(o instanceof HTMLElement))return;function i(a){gt({event:a,analyticsContext:t.analyticsContext})}o.removeEventListener("drag",i),o.addEventListener("dragend",()=>Lt(o,()=>t.analyticsContext)),Fn(t,e)}const Lt=D("drag",gt);function qn(t,e){e&&($n(e,t),$e(e,t),Ne(e,t),Yn(e,t),Nn(e,t),Lt(e,t),ze(e,t),fn(e,t),_e(e,t),He(e,t))}function Hn(t){Me(t),Qe(t),nn(t),rn(t),En(t),vn(t),kn(t)}exports.bindGlobalEventListeners=Hn;exports.bindUserInteractionListeners=qn;exports.createContext=n;exports.createEvent=l;exports.createTrackEvent=u;exports.createTracker=Rt;exports.formatExceptionContextData=U;exports.formatExperienceContextData=p;exports.formatFeatureListContextData=f;exports.formatFieldListContextData=S;exports.formatModalContextData=Ft;exports.formatProductListContextData=Bt;exports.formatResponseListContextData=G;exports.formatSessionContextData=d;exports.formatStepContextData=x;exports.trackAppCloseEvent=jt;exports.trackAppLoadEvent=Gt;exports.trackAppOpenEvent=It;exports.trackExperienceLoadEvent=Kt;exports.trackFeatureDecideEvent=Jt;exports.trackFieldValidationErrorEvent=Zt;exports.trackFormSubmitErrorEvent=oe;exports.trackFormSubmitEvent=ee;exports.trackFormSubmitSuccessEvent=ae;exports.trackStepEnterEvent=re;exports.trackStepSubmitEvent=le;exports.trackStepSubmitSuccessEvent=fe;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@picked/analytics",
3
3
  "description": "Picked Analytics",
4
- "version": "0.0.1-dev.1764619864065",
4
+ "version": "0.0.1-dev.1764626732123",
5
5
  "dependencies": {
6
6
  "@snowplow/browser-plugin-button-click-tracking": "^4.6.5",
7
7
  "@snowplow/browser-plugin-error-tracking": "^4.6.5",
@@ -17,7 +17,7 @@
17
17
  "@rollup/plugin-replace": "^6.0.2",
18
18
  "@types/jsdom": "^21.1.7",
19
19
  "@types/node": "^22",
20
- "@vitest/coverage-v8": "^3.2.4",
20
+ "@vitest/coverage-v8": "^3.2.3",
21
21
  "effector": "^23.3.0",
22
22
  "jsdom": "^26.1.0",
23
23
  "json-schema-to-ts": "^3.1.1",
@@ -47,7 +47,7 @@
47
47
  "main": "./dist/cjs/index.js",
48
48
  "module": "./dist/esm/index.js",
49
49
  "peerDependencies": {
50
- "@picked/client": "0.0.1-dev.1764619864065",
50
+ "@picked/client": "0.0.1-dev.1764626732123",
51
51
  "effector": "^23.3.0"
52
52
  },
53
53
  "private": false,
@@ -1,5 +0,0 @@
1
- import { AnalyticsContext } from '../types';
2
- import { EventSchema } from '../schemas';
3
- export declare function createOrderCreateTrackerEvent(analyticsContext: AnalyticsContext, eventMeta?: EventSchema['meta']): import('..').SnowplowSelfDescribingEvent;
4
- export declare const trackOrderCreateEvent: (eventPayload: AnalyticsContext, eventMeta?: EventSchema["meta"]) => void;
5
- //# sourceMappingURL=order_create.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"order_create.d.ts","sourceRoot":"","sources":["../../../src/events/order_create.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,gBAAgB,EASjB,MAAM,UAAU,CAAA;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAoC7C,wBAAgB,6BAA6B,CAC3C,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,4CAGhC;AAED,eAAO,MAAM,qBAAqB,2EAA4C,CAAA"}
@@ -1,45 +0,0 @@
1
- import { FromSchema } from 'json-schema-to-ts';
2
- export declare const schema: {
3
- readonly $schema: "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#";
4
- readonly additionalProperties: true;
5
- readonly description: "Schema for an order";
6
- readonly minProperties: 1;
7
- readonly properties: {
8
- readonly id: {
9
- readonly description: "The step ID";
10
- readonly type: "string";
11
- readonly maxLength: 255;
12
- };
13
- readonly customer_id: {
14
- readonly description: "The order ecommerce Customer ID";
15
- readonly type: readonly ["string", "null"];
16
- readonly maxLength: 255;
17
- };
18
- readonly checkout_token: {
19
- readonly description: "The order ecommerce checkout token";
20
- readonly type: readonly ["string", "null"];
21
- readonly maxLength: 255;
22
- };
23
- readonly cart_token: {
24
- readonly description: "The order ecommerce cart token";
25
- readonly type: readonly ["string", "null"];
26
- readonly maxLength: 255;
27
- };
28
- readonly meta: {
29
- readonly description: "Additional metadata";
30
- readonly additionalProperties: true;
31
- readonly type: readonly ["object", "null"];
32
- };
33
- };
34
- readonly required: readonly ["id"];
35
- readonly self: {
36
- readonly vendor: "dev.pckd";
37
- readonly name: "order";
38
- readonly format: "jsonschema";
39
- readonly version: "1-0-0";
40
- };
41
- readonly type: "object";
42
- };
43
- export type Schema = FromSchema<typeof schema>;
44
- export type Version = typeof schema.self.version;
45
- //# sourceMappingURL=1-0-0.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"1-0-0.d.ts","sourceRoot":"","sources":["../../../../src/schemas/order/1-0-0.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCT,CAAA;AAEV,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAA;AAC9C,MAAM,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAA"}
@@ -1,50 +0,0 @@
1
- import { SchemaUrl } from '../../types';
2
- import { Schema as Schema1_0_0, Version as Version1_0_0 } from './1-0-0';
3
- export declare const name = "order";
4
- export declare const schemas: {
5
- '1-0-0': {
6
- readonly $schema: "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#";
7
- readonly additionalProperties: true;
8
- readonly description: "Schema for an order";
9
- readonly minProperties: 1;
10
- readonly properties: {
11
- readonly id: {
12
- readonly description: "The step ID";
13
- readonly type: "string";
14
- readonly maxLength: 255;
15
- };
16
- readonly customer_id: {
17
- readonly description: "The order ecommerce Customer ID";
18
- readonly type: readonly ["string", "null"];
19
- readonly maxLength: 255;
20
- };
21
- readonly checkout_token: {
22
- readonly description: "The order ecommerce checkout token";
23
- readonly type: readonly ["string", "null"];
24
- readonly maxLength: 255;
25
- };
26
- readonly cart_token: {
27
- readonly description: "The order ecommerce cart token";
28
- readonly type: readonly ["string", "null"];
29
- readonly maxLength: 255;
30
- };
31
- readonly meta: {
32
- readonly description: "Additional metadata";
33
- readonly additionalProperties: true;
34
- readonly type: readonly ["object", "null"];
35
- };
36
- };
37
- readonly required: readonly ["id"];
38
- readonly self: {
39
- readonly vendor: "dev.pckd";
40
- readonly name: "order";
41
- readonly format: "jsonschema";
42
- readonly version: "1-0-0";
43
- };
44
- readonly type: "object";
45
- };
46
- };
47
- export type CurrentSchema = Schema1_0_0;
48
- export type CurrentVersion = Version1_0_0;
49
- export type Url = SchemaUrl<typeof name, CurrentVersion>;
50
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/schemas/order/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,KAAK,EAAE,MAAM,IAAI,WAAW,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,SAAS,CAAA;AAG7E,eAAO,MAAM,IAAI,UAAU,CAAA;AAE3B,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEnB,CAAA;AAGD,MAAM,MAAM,aAAa,GAAG,WAAW,CAAA;AACvC,MAAM,MAAM,cAAc,GAAG,YAAY,CAAA;AACzC,MAAM,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,IAAI,EAAE,cAAc,CAAC,CAAA"}
@@ -1,53 +0,0 @@
1
- import { FromSchema } from 'json-schema-to-ts';
2
- export declare const schema: {
3
- readonly $schema: "http://iglucentral.com/schemas/com.snowplowanalytics.self-desc/schema/jsonschema/1-0-0#";
4
- readonly additionalProperties: true;
5
- readonly description: "Schema for a session";
6
- readonly minProperties: 1;
7
- readonly properties: {
8
- readonly id: {
9
- readonly description: "The session ID";
10
- readonly type: readonly ["string", "null"];
11
- readonly maxLength: 255;
12
- };
13
- readonly is_user: {
14
- readonly description: "The session is attributed to a Picked user";
15
- readonly type: readonly ["boolean", "null"];
16
- };
17
- readonly gaid: {
18
- readonly description: "The session Google Analytics Client ID";
19
- readonly type: readonly ["string", "null"];
20
- readonly maxLength: 255;
21
- };
22
- readonly shopify_client_id: {
23
- readonly description: "The session Shopify Client ID";
24
- readonly type: readonly ["string", "null"];
25
- readonly maxLength: 255;
26
- };
27
- readonly shopify_customer_id: {
28
- readonly description: "The session Shopify Customer ID";
29
- readonly type: readonly ["string", "null"];
30
- readonly maxLength: 255;
31
- };
32
- readonly shopify_checkout_token: {
33
- readonly description: "The session Shopify Checkout ID";
34
- readonly type: readonly ["string", "null"];
35
- readonly maxLength: 255;
36
- };
37
- readonly meta: {
38
- readonly description: "Additional metadata";
39
- readonly additionalProperties: true;
40
- readonly type: readonly ["object", "null"];
41
- };
42
- };
43
- readonly self: {
44
- readonly vendor: "dev.pckd";
45
- readonly name: "session";
46
- readonly format: "jsonschema";
47
- readonly version: "1-0-3";
48
- };
49
- readonly type: "object";
50
- };
51
- export type Schema = FromSchema<typeof schema>;
52
- export type Version = typeof schema.self.version;
53
- //# sourceMappingURL=1-0-3.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"1-0-3.d.ts","sourceRoot":"","sources":["../../../../src/schemas/session/1-0-3.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAEnD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDT,CAAA;AAEV,MAAM,MAAM,MAAM,GAAG,UAAU,CAAC,OAAO,MAAM,CAAC,CAAA;AAC9C,MAAM,MAAM,OAAO,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAA"}
@@ -1 +0,0 @@
1
- "use strict";const y=require("@snowplow/browser-tracker"),tt=require("@snowplow/browser-plugin-button-click-tracking"),Pt=require("@snowplow/browser-plugin-performance-navigation-timing"),et=require("@snowplow/browser-plugin-error-tracking"),Vt=require("@snowplow/browser-plugin-web-vitals"),S=require("@picked/client");function nt(t,e){return`iglu:dev.pckd/${t}/jsonschema/${e}`}function g(t,...e){}function $(t,...e){}function l(t,e,o={}){return{event:{schema:nt("event","1-0-0"),data:{type:t,meta:o}},context:e.filter(i=>i!==void 0)}}function n(t,e,o){return{schema:nt(t,e),data:o}}function u(t,e){return(o,i)=>{const a=e(o,i);y.trackSelfDescribingEvent(a)}}function _(t,e,o={passive:!0}){const i=new WeakMap;return(a,s)=>{let r=i.get(a);if(r||(r=new Set,i.set(a,r)),r.has(t))return;function c(m){const C=s();e({event:m,analyticsContext:C})}a.addEventListener(t,c,o),r.add(t)}}function Yt(t,e){const o=new Set;return i=>{if(o.has(t)||!S.supportsDocument())return;function a(s){const r=i();e({event:s,analyticsContext:r})}document.addEventListener(t,a,{passive:!0}),o.add(t)}}function h(t,e){const o=new Set;return i=>{if(o.has(t)||!S.supportsWindow())return;function a(s){const r=i();e({event:s,analyticsContext:r})}window.addEventListener(t,a,{passive:!0}),o.add(t)}}function f(t){var o;return{items:((o=t.features)==null?void 0:o.map(({feature:i,name:a,key:s,bucket:r})=>({ab_feature:i,ab_name:a,ab_key:s,ab_bucket:r})))||[]}}const D="unknown";function d(t){var i,a,s;const e=Ht(),o={id:t.sessionId||null};return t.isUser!==void 0&&(o.is_user=t.isUser),e&&(o.gaid=e),(i=t.shopifySession)!=null&&i.clientId&&(o.shopify_client_id=t.shopifySession.clientId),(a=t.shopifySession)!=null&&a.customerId&&(o.shopify_customer_id=t.shopifySession.customerId),(s=t.shopifySession)!=null&&s.checkoutToken&&(o.shopify_checkout_token=t.shopifySession.checkoutToken),o}function P(t){if(t.fields)return{items:t.fields.map(({id:e,type:o,label:i,options:a})=>({id:e,type:o,label:i,options:a}))}}function M(t){if(t.responses)return{items:t.responses.map(({fieldId:e,value:o})=>({field_id:e,values:Array.isArray(o)?o.map(i=>({value:i})):[{value:o}]}))}}function x(t,e=!1){const{step:o}=t;if(o)return{id:o.id,title:o.label};if(e)return $('"step" is required for this event',t),{id:D,title:D}}function Bt(t,e=!1){const{productList:o}=t;if(o){const i={};"title"in o&&o.title&&Object.assign(i,{title:o.title});const a="items"in o?o.items:o;return Object.assign(i,{items:a.map(s=>({item_id:s.itemId,item_name:s.itemName,affiliation:s.affiliation,coupon:s.coupon,currency:s.currency,creative_name:s.creativeName,creative_slot:s.creativeSlot,discount:w(s.discount),index:w(s.index),item_brand:s.itemBrand,item_category:s.itemCategory,item_category2:s.itemCategory2,item_category3:s.itemCategory3,item_category4:s.itemCategory4,item_category5:s.itemCategory5,item_list_id:s.itemListId,item_list_name:s.itemListName,item_variant:s.itemVariant,location_id:s.locationId,price:w(s.price),promotion_id:s.promotionId,promotion_name:s.promotionName,quantity:w(s.quantity),in_stock:s.inStock}))}),i}if(e)return $('"productList" is required for this event',t),{items:[]}}function qt(t,e=!1){const{order:o}=t;if(o){const i={id:o.id};return o.checkoutToken&&(i.checkout_token=o.checkoutToken),o.cartToken&&(i.cart_token=o.cartToken),o.customerId&&(i.customer_id=o.customerId),i}if(e)return $('"order" is required for this event',t),{id:D}}function p(t,e=!1){const{experience:o}=t;if(o)return{id:o.id,title:o.title};if(e)return $('"experience" is required for this event',t),{id:D,title:D}}function U(t,e=!1){const{exception:o}=t;if(o)return typeof o=="string"?{reason:o}:{reason:o.systemMessage};if(e)return $('"exception" is required for this event',t),{reason:D}}function V(t){const{form:e}=t;return e?{id:e.id,title:e.title}:($('"form" is required for this event',t),{id:D,title:D})}function Ft(t){const{modal:e}=t;return e?{id:e.id,title:e.title}:($('"modal" is required for this event',t),{id:D,title:D})}function Y(t,e=300){let o;return function(...i){clearTimeout(o),o=setTimeout(()=>t.apply(this,i),e)}}function w(t){if(typeof t=="number")return t;if(typeof t!="string")return;const e=parseFloat(t);if(!isNaN(e))return e}function Ht(){if(!S.supportsDocument()||!S.supportsCookies())return null;const t="_ga=",e=document.cookie?document.cookie.split(";"):[];for(const o of e){const i=o.trim();if(i.startsWith(t)){const s=i.substring(t.length).split(".");if(s.length>2)return s.slice(2).join(".")}}}function Ot(t){const e=[];return t.trackErrors&&(g(),e.push(et.ErrorTrackingPlugin())),t.trackVitals&&(g(),e.push(Vt.WebVitalsPlugin())),t.trackPerformance&&(g(),e.push(Pt.PerformanceNavigationTimingPlugin())),(t.trackButtonClickAllowList||t.trackButtonClickFilter)&&e.push(tt.ButtonClickTrackingPlugin()),e}function At(t){t.trackActivity&&!t.trackActivityCallback&&(g(),y.enableActivityTracking({minimumVisitLength:30,heartbeatDelay:10})),t.trackActivity&&t.trackActivityCallback&&(g(),y.enableActivityTrackingCallback({minimumVisitLength:30,heartbeatDelay:10,callback:t.trackActivityCallback})),(t.trackButtonClickAllowList||t.trackButtonClickFilter)&&(g(),tt.enableButtonClickTracking({filter:t.trackButtonClickAllowList?{allowlist:t.trackButtonClickAllowList}:t.trackButtonClickFilter})),t.trackErrors&&(g(),et.enableErrorTracking())}function Rt({organizationId:t,projectId:e,cvlyX:o,collectorUrl:i="evnts.pckd.dev",appId:a="picked-analytics",trackVitals:s=!0,trackPerformance:r=!0,trackWebPage:c=!0,trackSessions:m=!0,trackBrowser:C=!0,trackActivity:$t=!0,trackErrors:ht=!0,trackActivityCallback:yt,trackButtonClickAllowList:wt}){g();const G={trackVitals:s,trackErrors:ht,trackActivity:$t,trackPerformance:r,trackActivityCallback:yt,trackButtonClickAllowList:wt},Nt={appId:a,platform:"web",contexts:{webPage:c,session:m,browser:C||!1},plugins:Ot(G)},St=y.newTracker(a,i,Nt);return Wt({organizationId:t,projectId:e,cvlyX:o}),At(G),St}function Wt({organizationId:t,projectId:e,cvlyX:o}){if(!t||!e)throw new Error("bindGlobalContext: Both organizationId and projectId are required");const i=[];i.push(n("app","1-0-0",{organization_id:t,project_id:e})),o&&i.push(n("cvly_x","1-0-1",{vercel_deployment_id:o.vercelDeploymentId,vercel_env:o.vercelEnv,vercel_url:o.vercelUrl})),y.addGlobalContexts(i)}const ot="app_close";function jt(t,e){const o=f(t),i=d(t),a=p(t),s=x(t);return l(ot,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const It=u(ot,jt),st="app_load";function Mt(t,e){const o=f(t),i=d(t),a=p(t),s=x(t);return l(st,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Ut=u(st,Mt),at="app_open";function Gt(t,e){const o=f(t),i=d(t),a=p(t),s=x(t);return l(at,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const zt=u(at,Gt),it="experience_load";function Kt(t,e){const o=f(t),i=d(t),a=p(t,!0),s=x(t);return l(it,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("experience","1-0-1",a),s?n("step","1-0-0",s):void 0],e)}const Xt=u(it,Kt),rt="feature_decide";function Jt(t,e){const o=f(t),i=d(t),a=p(t),s=x(t);return l(rt,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Qt=u(rt,Jt),ct="field_validation_error";function Zt(t,e){const o=f(t),i=d(t),a=V(t),s=U(t,!0),r=p(t),c=x(t);return l(ct,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("exception","1-0-0",s),n("form","1-0-0",a),r&&n("experience","1-0-1",r),c&&n("step","1-0-0",c)],e)}const te=u(ct,Zt),lt="form_submit";function ee(t,e){const o=f(t),i=d(t),a=V(t),s=p(t),r=x(t);return l(lt,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("form","1-0-0",a),s&&n("experience","1-0-1",s),r&&n("step","1-0-0",r)],e)}const ne=u(lt,ee),ut="form_submit_error";function oe(t,e){const o=f(t),i=d(t),a=V(t),s=U(t,!0),r=p(t),c=x(t);return l(ut,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("form","1-0-0",a),n("exception","1-0-0",s),r&&n("experience","1-0-1",r),c&&n("step","1-0-0",c)],e)}const se=u(ut,oe),ft="form_submit_success";function ae(t,e){const o=f(t),i=d(t),a=V(t),s=p(t),r=x(t);return l(ft,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("form","1-0-0",a),s&&n("experience","1-0-1",s),r&&n("step","1-0-0",r)],e)}const ie=u(ft,ae),dt="step_enter";function re(t,e){const o=f(t),i=d(t),a=p(t),s=x(t,!0),r=P(t);return l(dt,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("step","1-0-0",s),r&&n("field_list","1-0-0",r),a&&n("experience","1-0-1",a)],e)}const ce=u(dt,re),xt="step_submit";function le(t,e){const o=f(t),i=d(t),a=p(t),s=x(t,!0),r=M(t),c=P(t);return l(xt,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("step","1-0-0",s),c&&n("field_list","1-0-0",c),r&&n("response_list","1-0-0",r),a&&n("experience","1-0-1",a)],e)}const ue=u(xt,le),pt="step_submit_success";function fe(t,e){const o=f(t),i=d(t),a=p(t),s=x(t,!0),r=P(t),c=M(t);return l(pt,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("step","1-0-0",s),r&&n("field_list","1-0-0",r),c&&n("response_list","1-0-0",c),a&&n("experience","1-0-1",a)],e)}const de=u(pt,fe);function k(t){return t instanceof Element}function b(t){const e=["a","button","input","select","textarea","details","summary","label","form","fieldset","legend","optgroup","option","output","datalist","dialog","menu","menuitem","iframe","audio","video","embed","object","canvas"].join(", ");return k(t)?t.matches(e)?t:t.closest(e):null}function v(t){if(t instanceof HTMLSelectElement){const e=t.selectedIndex||0,o=t.options[e];return(o==null?void 0:o.text)??""}return"innerText"in t&&typeof t.innerText=="string"?t.innerText:t.textContent}function T(t){const e=t.getAttribute("aria-label");if(e)return e;const o=t.getAttribute("aria-labelledby");if(o){const a=document.getElementById(o);if(a){const s=v(a);if(s)return s}}if("id"in t&&t.id){const a=document.querySelector(`label[for="${t.id}"]`);if(a){const s=v(a);if(s)return s}}let i=t.parentElement;for(;i;){if(i.tagName.toLowerCase()==="label"){const a=v(i);if(a)return a}i=i.parentElement}if(t instanceof HTMLInputElement&&"labels"in t&&t.labels){const a=Array.from(t.labels).map(s=>v(s)).filter(Boolean).join(" ");if(a)return a}return"placeholder"in t&&typeof t.placeholder=="string"?t.placeholder:null}const xe=255;function E(t){return t?t.slice(0,xe):null}const q="rapid_scroll";function pe(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!k(r)){const C={node_type:"unknown"};return l(q,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",C)],e)}const c=b(r)||r,m={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:E(T(c)),text:E(v(c))};return l(q,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",m)],e)}const me=u(q,pe),Ee=100,Ce=100,ve=300;let z=0,K=0;const De=Y((t,e)=>{me(t,e)},ve);function _e(t,e){const o=t.event.target||document.documentElement;if(!(o instanceof HTMLElement))return;const i=o.scrollTop,a=Date.now()-K;Math.abs(i-z)>Ee&&a<Ce&&De(t.event,e),z=i,K=Date.now()}const ke=_("scroll",_e,!0),F="rapid_click";function be(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!k(r)){const C={node_type:"unknown"};return l(F,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("element","1-0-0",C),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const c=b(r)||r,m={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:E(T(c)),text:E(v(c))};return l(F,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("element","1-0-0",m),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Te=u(F,be);let N=0,X=0;const ge=3,Le=500;function $e(t,e){const o=new Date().getTime();o-X<Le?N++:N=1,X=o,N>=ge&&(Te(t,e),N=0)}const he=_("click",$e),H="right_click";function ye(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!k(r)){const C={node_type:"unknown"};return l(H,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("element","1-0-0",C),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0])}const c=b(r)||r,m={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:E(T(c)),text:E(v(c))};return l(H,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("element","1-0-0",m),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const we=u(H,ye);function Ne(t,e){we(t,e)}const Se=_("contextmenu",Ne),mt="mouse_shake";function Pe(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(mt,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Ve=u(mt,Pe),Ye=5,Be=500,qe=500;let J={x:0},L=[],Q=0;const Fe=Y((t,e)=>{Ve(t,e)},Be);function He(t,e){const o=Date.now(),i=t.event.clientX-J.x,a=Math.sign(i);o-Q>qe&&(L=[]),a!==0&&(L.length===0||L[L.length-1]!==a)&&L.push(a),J={x:t.event.clientX,y:t.event.clientY},L.length>=Ye&&(Fe(t,e),L=[]),Q=o}const Oe=_("mousemove",He),Et="page_visible";function Ae(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(Et,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Re=u(Et,Ae),Ct="page_hidden";function We(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(Ct,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const je=u(Ct,We);function Ie(t,e){if(document.visibilityState==="visible"){Re(t,e);return}je(t,e)}const Me=Yt("visibilitychange",Ie),O="backspace";function Ue(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!k(r)){const C={node_type:"unknown"};return l(O,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("element","1-0-0",C),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const c=b(r)||r,m={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:E(T(c)),text:E(v(c))};return l(O,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("element","1-0-0",m),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Ge=u(O,Ue);function ze(t,e){t.event.key==="Backspace"&&Ge(t,e)}const Ke=_("keydown",ze),vt="page_hide";function Xe(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(vt,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Je=u(vt,Xe);function Qe(t,e){Je(t,e)}const Ze=h("pagehide",Qe),Dt="page_show";function tn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(Dt,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const en=u(Dt,tn);function nn(t,e){en(t,e)}const on=h("pageshow",nn),_t="offline";function sn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(_t,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const an=u(_t,sn);function rn(t,e){an(t,e)}const cn=h("offline",rn),A="scroll";function ln(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!k(r))return l(A,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e);const c=b(r)||r,m={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:E(T(c)),text:E(v(c))};return l(A,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",m)],e)}const un=u(A,ln),fn=Y((t,e)=>{un(t,e)},500),dn=_("scroll",fn,!0),kt="online";function xn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(kt,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const pn=u(kt,xn);function mn(t,e){pn(t,e)}const En=h("online",mn),bt="resize";function Cn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(bt,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Z=u(bt,Cn);let B=0;const vn=Y((t,e)=>{const o=window.innerWidth;o!==B?(Z(t,e),B=o):"ontouchstart"in window||Z(t,e),B=o},300),Dn=h("resize",vn),Tt="unload";function _n(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext);return l(Tt,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const kn=u(Tt,_n);function bn(t,e){kn(t,e)}const Tn=h("unload",bn),R="click";function gn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!k(r)){const C={node_type:"unknown"};return l(R,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("element","1-0-0",C),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const c=b(r)||r,m={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:E(T(c)),text:E(v(c))};return l(R,[n("feature_list","2-0-0",o),n("session","1-0-3",i),n("element","1-0-0",m),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e)}const Ln=u(R,gn);function $n(t,e){Ln(t,e)}const hn=_("click",$n),W="paste";function yn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!k(r))return l(W,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e);const c=b(r)||r,m={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:E(T(c)),text:E(v(c))};return l(W,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",m)],e)}const wn=u(W,yn);function Nn(t,e){wn(t,e)}const Sn=_("paste",Nn),j="copy";function Pn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!k(r))return l(j,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e);const c=b(r)||r,m={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:E(T(c)),text:E(v(c))};return l(j,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",m)],e)}const Vn=u(j,Pn);function Yn(t,e){Vn(t,e)}const Bn=_("copy",Yn),I="drag";function qn(t,e){const o=f(t.analyticsContext),i=d(t.analyticsContext),a=p(t.analyticsContext),s=x(t.analyticsContext),r=t.event.target||document.activeElement||t.event.currentTarget;if(!k(r))return l(I,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0],e);const c=b(r)||r,m={id:c.id||null,node_type:c.nodeName.toLowerCase(),label:E(T(c)),text:E(v(c))};return l(I,[n("feature_list","2-0-0",o),n("session","1-0-3",i),s?n("step","1-0-0",s):void 0,a?n("experience","1-0-1",a):void 0,n("element","1-0-0",m)],e)}const Fn=u(I,qn);function gt(t,e){const o=t.event.currentTarget;if(!o||!(o instanceof HTMLElement))return;function i(a){gt({event:a,analyticsContext:t.analyticsContext})}o.removeEventListener("drag",i),o.addEventListener("dragend",()=>Lt(o,()=>t.analyticsContext)),Fn(t,e)}const Lt=_("drag",gt);function Hn(t,e){e&&(hn(e,t),he(e,t),Se(e,t),Bn(e,t),Sn(e,t),Lt(e,t),Ke(e,t),dn(e,t),ke(e,t),Oe(e,t))}function On(t){Me(t),Ze(t),on(t),cn(t),En(t),Dn(t),Tn(t)}exports.bindGlobalEventListeners=On;exports.bindUserInteractionListeners=Hn;exports.createContext=n;exports.createEvent=l;exports.createTrackEvent=u;exports.createTracker=Rt;exports.formatExceptionContextData=U;exports.formatExperienceContextData=p;exports.formatFeatureListContextData=f;exports.formatFieldListContextData=P;exports.formatModalContextData=Ft;exports.formatOrderContextData=qt;exports.formatProductListContextData=Bt;exports.formatResponseListContextData=M;exports.formatSessionContextData=d;exports.formatStepContextData=x;exports.trackAppCloseEvent=It;exports.trackAppLoadEvent=Ut;exports.trackAppOpenEvent=zt;exports.trackExperienceLoadEvent=Xt;exports.trackFeatureDecideEvent=Qt;exports.trackFieldValidationErrorEvent=te;exports.trackFormSubmitErrorEvent=se;exports.trackFormSubmitEvent=ne;exports.trackFormSubmitSuccessEvent=ie;exports.trackStepEnterEvent=ce;exports.trackStepSubmitEvent=ue;exports.trackStepSubmitSuccessEvent=de;