@walkeros/web-destination-snowplow 3.4.0 → 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var e=Object.defineProperty,o=(o,n)=>{for(var a in n)e(o,a,{get:n[a],enumerable:!0})},n={};o(n,{ACTIONS:()=>t,CONSENT_SCHEMAS:()=>c,MEDIA_ACTIONS:()=>r,MEDIA_SCHEMAS:()=>i,SCHEMAS:()=>a,WEB_SCHEMAS:()=>s,deriveEnableMethod:()=>d,isCodeBasedPlugin:()=>p,isMappedGlobalContext:()=>m,isUrlBasedPlugin:()=>l});var a={ACTION:"iglu:com.snowplowanalytics.snowplow.ecommerce/snowplow_ecommerce_action/jsonschema/1-0-2",PRODUCT:"iglu:com.snowplowanalytics.snowplow.ecommerce/product/jsonschema/1-0-0",CART:"iglu:com.snowplowanalytics.snowplow.ecommerce/cart/jsonschema/1-0-0",TRANSACTION:"iglu:com.snowplowanalytics.snowplow.ecommerce/transaction/jsonschema/1-0-0",REFUND:"iglu:com.snowplowanalytics.snowplow.ecommerce/refund/jsonschema/1-0-0",CHECKOUT_STEP:"iglu:com.snowplowanalytics.snowplow.ecommerce/checkout_step/jsonschema/1-0-0",PROMOTION:"iglu:com.snowplowanalytics.snowplow.ecommerce/promotion/jsonschema/1-0-0",PAGE:"iglu:com.snowplowanalytics.snowplow.ecommerce/page/jsonschema/1-0-0",USER:"iglu:com.snowplowanalytics.snowplow.ecommerce/user/jsonschema/1-0-0"},t={PRODUCT_VIEW:"product_view",LIST_VIEW:"list_view",LIST_CLICK:"list_click",ADD_TO_CART:"add_to_cart",REMOVE_FROM_CART:"remove_from_cart",CHECKOUT_STEP:"checkout_step",TRANSACTION:"transaction",REFUND:"refund",PROMO_VIEW:"promo_view",PROMO_CLICK:"promo_click",TRANSACTION_ERROR:"trns_error"},s={LINK_CLICK:"iglu:com.snowplowanalytics.snowplow/link_click/jsonschema/1-0-1",CHANGE_FORM:"iglu:com.snowplowanalytics.snowplow/change_form/jsonschema/1-0-0",FOCUS_FORM:"iglu:com.snowplowanalytics.snowplow/focus_form/jsonschema/1-0-0",SUBMIT_FORM:"iglu:com.snowplowanalytics.snowplow/submit_form/jsonschema/1-0-0",SITE_SEARCH:"iglu:com.snowplowanalytics.snowplow/site_search/jsonschema/1-0-0",SOCIAL:"iglu:com.snowplowanalytics.snowplow/social_interaction/jsonschema/1-0-0",TIMING:"iglu:com.snowplowanalytics.snowplow/timing/jsonschema/1-0-0",WEB_VITALS:"iglu:com.snowplowanalytics.snowplow/web_vitals/jsonschema/1-0-0",WEB_PAGE:"iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",BROWSER:"iglu:com.snowplowanalytics.snowplow/browser_context/jsonschema/2-0-0",CLIENT_SESSION:"iglu:com.snowplowanalytics.snowplow/client_session/jsonschema/1-0-2",GEOLOCATION:"iglu:com.snowplowanalytics.snowplow/geolocation_context/jsonschema/1-1-0"},c={PREFERENCES:"iglu:com.snowplowanalytics.snowplow/consent_preferences/jsonschema/1-0-0",CMP_VISIBLE:"iglu:com.snowplowanalytics.snowplow/cmp_visible/jsonschema/1-0-0",DOCUMENT:"iglu:com.snowplowanalytics.snowplow/consent_document/jsonschema/1-0-0",GDPR:"iglu:com.snowplowanalytics.snowplow/gdpr/jsonschema/1-0-0"},i={PLAY:"iglu:com.snowplowanalytics.snowplow.media/play_event/jsonschema/1-0-0",PAUSE:"iglu:com.snowplowanalytics.snowplow.media/pause_event/jsonschema/1-0-0",END:"iglu:com.snowplowanalytics.snowplow.media/end_event/jsonschema/1-0-0",READY:"iglu:com.snowplowanalytics.snowplow.media/ready_event/jsonschema/1-0-0",SEEK_START:"iglu:com.snowplowanalytics.snowplow.media/seek_start_event/jsonschema/1-0-0",SEEK_END:"iglu:com.snowplowanalytics.snowplow.media/seek_end_event/jsonschema/1-0-0",BUFFER_START:"iglu:com.snowplowanalytics.snowplow.media/buffer_start_event/jsonschema/1-0-0",BUFFER_END:"iglu:com.snowplowanalytics.snowplow.media/buffer_end_event/jsonschema/1-0-0",QUALITY_CHANGE:"iglu:com.snowplowanalytics.snowplow.media/quality_change_event/jsonschema/1-0-0",FULLSCREEN_CHANGE:"iglu:com.snowplowanalytics.snowplow.media/fullscreen_change_event/jsonschema/1-0-0",VOLUME_CHANGE:"iglu:com.snowplowanalytics.snowplow.media/volume_change_event/jsonschema/1-0-0",PLAYBACK_RATE_CHANGE:"iglu:com.snowplowanalytics.snowplow.media/playback_rate_change_event/jsonschema/1-0-0",PIP_CHANGE:"iglu:com.snowplowanalytics.snowplow.media/picture_in_picture_change_event/jsonschema/1-0-0",PING:"iglu:com.snowplowanalytics.snowplow.media/ping_event/jsonschema/1-0-0",PERCENT_PROGRESS:"iglu:com.snowplowanalytics.snowplow.media/percent_progress_event/jsonschema/1-0-0",ERROR:"iglu:com.snowplowanalytics.snowplow.media/error_event/jsonschema/1-0-0",AD_BREAK_START:"iglu:com.snowplowanalytics.snowplow.media/ad_break_start_event/jsonschema/1-0-0",AD_BREAK_END:"iglu:com.snowplowanalytics.snowplow.media/ad_break_end_event/jsonschema/1-0-0",AD_START:"iglu:com.snowplowanalytics.snowplow.media/ad_start_event/jsonschema/1-0-0",AD_COMPLETE:"iglu:com.snowplowanalytics.snowplow.media/ad_complete_event/jsonschema/1-0-0",AD_SKIP:"iglu:com.snowplowanalytics.snowplow.media/ad_skip_event/jsonschema/1-0-0",AD_CLICK:"iglu:com.snowplowanalytics.snowplow.media/ad_click_event/jsonschema/1-0-0",AD_PAUSE:"iglu:com.snowplowanalytics.snowplow.media/ad_pause_event/jsonschema/1-0-0",AD_RESUME:"iglu:com.snowplowanalytics.snowplow.media/ad_resume_event/jsonschema/1-0-0",AD_QUARTILE:"iglu:com.snowplowanalytics.snowplow.media/ad_quartile_event/jsonschema/1-0-0",MEDIA_PLAYER:"iglu:com.snowplowanalytics.snowplow/media_player/jsonschema/1-0-0",SESSION:"iglu:com.snowplowanalytics.snowplow.media/session/jsonschema/1-0-0",AD:"iglu:com.snowplowanalytics.snowplow.media/ad/jsonschema/1-0-0",AD_BREAK:"iglu:com.snowplowanalytics.snowplow.media/ad_break/jsonschema/1-0-0"},r={PLAY:"play",PAUSE:"pause",END:"end",READY:"ready",SEEK_START:"seek_start",SEEK_END:"seek_end",BUFFER_START:"buffer_start",BUFFER_END:"buffer_end",QUALITY_CHANGE:"quality_change",FULLSCREEN_CHANGE:"fullscreen_change",VOLUME_CHANGE:"volume_change",PLAYBACK_RATE_CHANGE:"playback_rate_change",PIP_CHANGE:"pip_change",PING:"ping",PERCENT_PROGRESS:"percent_progress",ERROR:"error",AD_BREAK_START:"ad_break_start",AD_BREAK_END:"ad_break_end",AD_START:"ad_start",AD_COMPLETE:"ad_complete",AD_SKIP:"ad_skip",AD_CLICK:"ad_click",AD_PAUSE:"ad_pause",AD_RESUME:"ad_resume",AD_QUARTILE:"ad_quartile"};function l(e){return"object"==typeof e&&"url"in e&&"name"in e}function p(e){return"object"==typeof e&&"code"in e&&!("url"in e)}function m(e){return"object"==typeof e&&null!==e&&"__mapped"in e}function d(e){return"enable"+e.replace("Plugin","")}import{getEnv as w}from"@walkeros/web-core";var u=new Set;var g=Object.defineProperty;((e,o)=>{for(var n in o)g(e,n,{get:o[n],enumerable:!0})})({},{Level:()=>v});var y,v=((y=v||{})[y.ERROR=0]="ERROR",y[y.WARN=1]="WARN",y[y.INFO=2]="INFO",y[y.DEBUG=3]="DEBUG",y),_={merge:!0,shallow:!0,extend:!0};function h(e){return Array.isArray(e)}function k(e){return void 0!==e}function f(e){return"number"==typeof e&&!Number.isNaN(e)}function E(e){return"object"==typeof e&&null!==e&&!h(e)&&"[object Object]"===Object.prototype.toString.call(e)}function A(e){return"string"==typeof e}function S(e,o="",n){const a=o.split(".");let t=e;for(let e=0;e<a.length;e++){const o=a[e];if("*"===o&&h(t)){const o=a.slice(e+1).join("."),s=[];for(const e of t){const a=S(e,o,n);s.push(a)}return s}if(t=t instanceof Object?t[o]:void 0,void 0===t)break}return k(t)?t:n}function b(e={}){var o;const n=e.timestamp||(new Date).setHours(0,13,37,0),a=e.group||"gr0up",t=e.count||1,s=function(e,o={},n={}){n={..._,...n};const a=Object.entries(o).reduce((o,[a,t])=>{const s=e[a];return n.merge&&Array.isArray(s)&&Array.isArray(t)?o[a]=t.reduce((e,o)=>e.includes(o)?e:[...e,o],[...s]):(n.extend||a in e)&&(o[a]=t),o},{});return n.shallow?{...e,...a}:(Object.assign(e,a),e)}({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],not:void 0},context:{dev:["test",1]},globals:{lang:"elb"},custom:{completely:"random"},user:{id:"us3r",device:"c00k13",session:"s3ss10n"},nested:[{entity:"child",data:{is:"subordinated"},nested:[],context:{element:["child",0]}}],consent:{functional:!0},id:`${n}-${a}-${t}`,trigger:"test",entity:"entity",action:"action",timestamp:n,timing:3.14,group:a,count:t,version:{source:"3.4.0",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[n,a]=null!=(o=e.name.split(" "))?o:[];n&&a&&(s.entity=n,s.action=a)}return s}function T(e="entity action",o={}){const n=o.timestamp||(new Date).setHours(0,13,37,0),a={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},t={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return b({...{"cart view":{data:{currency:"EUR",value:2*a.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...a.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:a.data.price+t.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...a,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...t,context:{shopping:["checkout",0]},nested:[]}],trigger:"load"},"order complete":{data:{id:"0rd3r1d",currency:"EUR",shipping:5.22,taxes:73.76,total:555},context:{shopping:["complete",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...a,context:{shopping:["complete",0]},nested:[]},{entity:"product",...t,context:{shopping:["complete",0]},nested:[]},{entity:"gift",data:{name:"Surprise"},context:{shopping:["complete",0]},nested:[]}],trigger:"load"},"page view":{data:{domain:"www.example.com",title:"walkerOS documentation",referrer:"https://www.walkeros.io/",search:"?foo=bar",hash:"#hash",id:"/docs/"},globals:{pagegroup:"docs"},trigger:"load"},"product add":{...a,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...a,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...a.data,position:3,promo:!0},context:{shopping:["discover",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"promotion visible":{data:{name:"Setting up tracking easily",position:"hero"},context:{ab_test:["engagement",0]},globals:{pagegroup:"homepage"},trigger:"visible"},"session start":{data:{id:"s3ss10n",start:n,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,referrer:"",device:"c00k13"},user:{id:"us3r",device:"c00k13",session:"s3ss10n",hash:"h4sh",address:"street number",email:"user@example.com",phone:"+49 123 456 789",userAgent:"Mozilla...",browser:"Chrome",browserVersion:"90",deviceType:"desktop",language:"de-DE",country:"DE",region:"HH",city:"Hamburg",zip:"20354",timezone:"Berlin",os:"walkerOS",osVersion:"1.0",screenSize:"1337x420",ip:"127.0.0.0",internal:!0,custom:"value"}}}[e],...o,name:e})}function C(e){return function(e){return"boolean"==typeof e}(e)||A(e)||f(e)||!k(e)||h(e)&&e.every(C)||E(e)&&Object.values(e).every(C)}function R(e){return C(e)?e:void 0}function j(e,o,n){return async function(...a){try{return await e(...a)}catch(e){if(!o)return;return await o(e)}finally{await(null==n?void 0:n())}}}async function D(e,o={},n={}){var a;if(!k(e))return;const t=E(e)&&e.consent||n.consent||(null==(a=n.collector)?void 0:a.consent),s=h(o)?o:[o];for(const o of s){const a=await j(O)(e,o,{...n,consent:t});if(k(a))return a}}async function O(e,o,n={}){const{collector:a,consent:t}=n;return(h(o)?o:[o]).reduce(async(o,s)=>{const c=await o;if(c)return c;const i=A(s)?{key:s}:s;if(!Object.keys(i).length)return;const{condition:r,consent:l,fn:p,key:m,loop:d,map:w,set:u,validate:g,value:y}=i;if(r&&!await j(r)(e,s,a))return;if(l&&!function(e,o={},n={}){const a={...o,...n},t={};let s=!e||0===Object.keys(e).length;return Object.keys(a).forEach(o=>{a[o]&&(t[o]=!0,e&&e[o]&&(s=!0))}),!!s&&t}(l,t))return y;let v=k(y)?y:e;if(p&&(v=await j(p)(e,s,n)),m&&(v=S(e,m,y)),d){const[o,a]=d,t="this"===o?[e]:await D(e,o,n);h(t)&&(v=(await Promise.all(t.map(e=>D(e,a,n)))).filter(k))}else w?v=await Object.entries(w).reduce(async(o,[a,t])=>{const s=await o,c=await D(e,t,n);return k(c)&&(s[a]=c),s},Promise.resolve({})):u&&(v=await Promise.all(u.map(o=>O(e,o,n))));g&&!await j(g)(v)&&(v=void 0);const _=R(v);return k(_)?_:R(y)},Promise.resolve(void 0))}function P(e){return E(e)&&"loop"in e&&h(e.loop)&&2===e.loop.length}async function N(e,o,n,t,s,c){var i,r,l,p;const m=null==s?void 0:s.settings,d=null==(i=null==m?void 0:m._state)?void 0:i.adapter;if(!d)return void(null==c||c.throw("Tracker not initialized"));const w=null==m?void 0:m._state;if((null==m?void 0:m.userId)&&!(null==w?void 0:w.userIdSet)){const o=await D(e,m.userId);o&&A(o)&&(d.setUserId(o),w&&(w.userIdSet=!0))}if(null==m?void 0:m.page){const o=await D(e,m.page.type);if(o&&A(o)){const n={type:o};if(m.page.language){const o=await D(e,m.page.language);o&&A(o)&&(n.language=o)}if(m.page.locale){const o=await D(e,m.page.locale);o&&A(o)&&(n.locale=o)}const a=JSON.stringify(n);(null==w?void 0:w.page)!==a&&(d.setPageType(n),w&&(w.page=a))}}if(o.struct)await async function(e,o,n,a){const t=await D(e,o.category),s=await D(e,o.action);if(!t||!A(t))return void(null==a||a.info("Struct event skipped: invalid category",{event:e.name,category:t,reason:t?"not a string":"missing"}));if(!s||!A(s))return void(null==a||a.info("Struct event skipped: invalid action",{event:e.name,action:s,reason:s?"not a string":"missing"}));const c=o.label?await D(e,o.label):void 0,i=o.property?await D(e,o.property):void 0,r=o.value?await D(e,o.value):void 0,l=void 0!==r?Number(r):void 0;n.trackStructEvent({category:t,action:s,...c&&A(c)&&{label:c},...i&&A(i)&&{property:i},...void 0!==l&&f(l)&&!isNaN(l)&&{value:l}})}(e,o.struct,d,c);else if((null==m?void 0:m.pageViewEvent)&&e.name===m.pageViewEvent)d.trackPageView();else if(t){const n=(null==(r=o.snowplow)?void 0:r.actionSchema)||(null==(l=null==m?void 0:m.snowplow)?void 0:l.actionSchema)||a.ACTION,s=await async function(e,o){const n=[];if(!h(o.context))return n;for(const a of o.context)if(E(a)&&a.schema)if(P(a.data)){const[o,t]=a.data.loop,s=await D(e,o);if(h(s))for(const e of s){const o=await D(e,t);E(o)&&n.push({schema:a.schema,data:o})}}else{const o=await D(e,{map:a.data});E(o)&&n.push({schema:a.schema,data:o})}return n}(e,o);let c={};if(E(o.data)&&"map"in o.data){const n=await D(e,o.data);E(n)&&(c=n)}else n===a.ACTION&&(c={type:t});d.trackSelfDescribingEvent({event:{schema:n,data:c},context:s.length>0?s:void 0})}else null==c||c.info("Event skipped: no action name in mapping",{event:e.name,hasContext:!!(null==(p=o.context)?void 0:p.length)})}var I={};o(I,{env:()=>U,step:()=>G});var U={};o(U,{init:()=>x,push:()=>V,simulation:()=>L});var x={window:{snowplow:void 0},document:{createElement:()=>({src:"",async:!1,setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},V={window:{snowplow:Object.assign(()=>{},{q:[]})},document:{createElement:()=>({src:"",async:!1,setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},L=["call:window.snowplow"],G={};o(G,{addToCart:()=>K,checkoutStep:()=>W,contextLoop:()=>z,init:()=>M,pageView:()=>q,productView:()=>H,promoView:()=>F,structuredEvent:()=>Y,transaction:()=>B});var M={in:{loadScript:!0,settings:{collectorUrl:"https://collector.example.com",appId:"my-app",pageViewEvent:"page view"}},out:[["snowplow.newTracker","sp","https://collector.example.com",{appId:"my-app",platform:"web",discoverRootDomain:void 0,cookieSameSite:void 0,appVersion:void 0,contexts:void 0,anonymousTracking:void 0}]]},H={in:T("product view",{timestamp:1700000400}),mapping:{name:t.PRODUCT_VIEW,settings:{context:[{schema:a.PRODUCT,data:{id:"data.id",name:"data.name",category:"data.category",price:"data.price",currency:{key:"data.currency",value:"USD"},brand:"data.brand",variant:"data.variant"}}]}},out:[["snowplow.trackSelfDescribingEvent",{event:{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/snowplow_ecommerce_action/jsonschema/1-0-2",data:{type:"product_view"}},context:[{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/product/jsonschema/1-0-0",data:{id:"ers",name:"Everyday Ruck Snack",price:420,currency:"USD"}}]}]]},K={in:T("product add",{timestamp:1700000401}),mapping:{name:t.ADD_TO_CART,settings:{context:[{schema:a.PRODUCT,data:{id:"data.id",name:"data.name",category:"data.category",price:"data.price",currency:{key:"data.currency",value:"USD"},quantity:{key:"data.quantity",value:1}}},{schema:a.CART,data:{total_value:"globals.cart_value",currency:{key:"globals.cart_currency",value:"USD"}}},{schema:a.PAGE,data:{type:"globals.page_type",language:"globals.language"}},{schema:a.USER,data:{id:"user.id",email:"user.email",is_guest:{fn:e=>{var o;return!!(null==(o=e.user)?void 0:o.id)||void 0}}}}]}},out:[["snowplow.trackSelfDescribingEvent",{event:{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/snowplow_ecommerce_action/jsonschema/1-0-2",data:{type:"add_to_cart"}},context:[{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/product/jsonschema/1-0-0",data:{id:"ers",name:"Everyday Ruck Snack",price:420,currency:"USD",quantity:1}},{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/cart/jsonschema/1-0-0",data:{currency:"USD"}},{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/page/jsonschema/1-0-0",data:{}},{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/user/jsonschema/1-0-0",data:{id:"us3r",is_guest:!0}}]}]]},B={in:T("order complete",{timestamp:1700000402}),mapping:{name:t.TRANSACTION,settings:{context:[{schema:a.TRANSACTION,data:{transaction_id:"data.id",revenue:"data.total",currency:{key:"data.currency",value:"USD"},payment_method:{value:"credit_card"},tax:"data.taxes",shipping:"data.shipping"}}]}},out:[["snowplow.trackSelfDescribingEvent",{event:{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/snowplow_ecommerce_action/jsonschema/1-0-2",data:{type:"transaction"}},context:[{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/transaction/jsonschema/1-0-0",data:{transaction_id:"0rd3r1d",revenue:555,currency:"EUR",payment_method:"credit_card",tax:73.76,shipping:5.22}}]}]]},F={in:T("promotion visible",{timestamp:1700000403}),mapping:{name:t.PROMO_VIEW,settings:{context:[{schema:a.PROMOTION,data:{id:"data.id",name:"data.name",creative_id:"data.creative_id",type:"data.type",position:"data.position",slot:"data.slot"}}]}},out:[["snowplow.trackSelfDescribingEvent",{event:{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/snowplow_ecommerce_action/jsonschema/1-0-2",data:{type:"promo_view"}},context:[{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/promotion/jsonschema/1-0-0",data:{name:"Setting up tracking easily",position:"hero"}}]}]]},q={in:T("page view",{timestamp:1700000404}),mapping:void 0,out:[["snowplow.trackPageView"]]},W={in:T("checkout view",{timestamp:1700000405}),mapping:{name:t.CHECKOUT_STEP,settings:{context:[{schema:a.CHECKOUT_STEP,data:{step:"data.step",option:"data.option"}}]}},out:[["snowplow.trackSelfDescribingEvent",{event:{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/snowplow_ecommerce_action/jsonschema/1-0-2",data:{type:"checkout_step"}},context:[{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/checkout_step/jsonschema/1-0-0",data:{step:"payment"}}]}]]},Y={in:T("product visible",{timestamp:1700000406}),mapping:{settings:{struct:{category:{value:"ecommerce"},action:{value:"impression"},label:"data.name",property:"data.color",value:"data.price"}}},out:[["snowplow.trackStructEvent",{category:"ecommerce",action:"impression",label:"Everyday Ruck Snack",property:"black",value:420}]]},z={in:T("order complete",{timestamp:1700000407}),mapping:{name:t.TRANSACTION,settings:{context:[{schema:a.TRANSACTION,data:{transaction_id:"data.id",revenue:"data.total",currency:"data.currency"}},{schema:a.PRODUCT,data:{loop:["nested",{map:{id:"data.id",name:"data.name",price:"data.price"}}]}}]}},out:[["snowplow.trackSelfDescribingEvent",{event:{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/snowplow_ecommerce_action/jsonschema/1-0-2",data:{type:"transaction"}},context:[{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/transaction/jsonschema/1-0-0",data:{transaction_id:"0rd3r1d",revenue:555,currency:"EUR"}},{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/product/jsonschema/1-0-0",data:{id:"ers",name:"Everyday Ruck Snack",price:420}},{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/product/jsonschema/1-0-0",data:{id:"cc",name:"Cool Cap",price:42}},{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/product/jsonschema/1-0-0",data:{name:"Surprise"}}]}]]};function Q(e){var o,n;return null!=(n=null==(o=null==e?void 0:e.window)?void 0:o.snowplow)?n:"undefined"!=typeof window?window.snowplow:void 0}function $(e){const o=Q(e);o&&o("clearUserData")}function J(e,o){const n=Q(o);n&&(e?n("enableAnonymousTracking",e):n("enableAnonymousTracking"))}function X(e,o){const n=Q(o);n&&(e?n("disableAnonymousTracking",{stateStorageStrategy:e}):n("disableAnonymousTracking"))}var Z={type:"snowplow",config:{},init({config:e,env:o,logger:n}){var a;const{settings:t={},loadScript:s}=e,{collectorUrl:c,tracker:i}=t;let r;if(c||n.throw("Config settings collectorUrl missing"),i){if(!i.newTracker)return n.throw("tracker.newTracker is required for browser-tracker mode"),!1;if(!i.trackSelfDescribingEvent)return n.throw("tracker.trackSelfDescribingEvent is required for browser-tracker mode"),!1;i.newTracker(t.trackerName||"sp",c,{appId:t.appId||"walkerOS",platform:t.platform||"web",discoverRootDomain:t.discoverRootDomain,cookieSameSite:t.cookieSameSite,appVersion:t.appVersion,contexts:t.contexts,anonymousTracking:t.anonymousTracking}),m=i,r={trackPageView(e){m.trackPageView&&m.trackPageView(e)},trackSelfDescribingEvent(e){m.trackSelfDescribingEvent(e)},trackStructEvent(e){m.trackStructEvent&&m.trackStructEvent(e)},setUserId(e){m.setUserId&&m.setUserId(e)},enableActivityTracking(e){m.enableActivityTracking&&m.enableActivityTracking(e)},addPlugin(e){m.addPlugin&&!Array.isArray(e)&&m.addPlugin(e)},addGlobalContexts(e){m.addGlobalContexts&&m.addGlobalContexts(e)},clearUserData(e){m.clearUserData&&m.clearUserData(e)},enableAnonymousTracking(e){m.enableAnonymousTracking&&m.enableAnonymousTracking(e)},disableAnonymousTracking(e){m.disableAnonymousTracking&&m.disableAnonymousTracking(e)},trackConsentAllow(e){m.trackConsentAllow&&m.trackConsentAllow(e)},trackConsentDeny(e){m.trackConsentDeny&&m.trackConsentDeny(e)},trackConsentSelected(e){m.trackConsentSelected&&m.trackConsentSelected(e)},setPageType(e){m.setPageType&&m.setPageType(e)},call(e,...o){}}}else{s&&function(e,o,n="https://cdn.jsdelivr.net/npm/@snowplow/javascript-tracker@latest/dist/sp.js"){if(u.has(e))return;const{document:a}=w(o),t=a.createElement("script");t.src=n,t.async=!0,a.head.appendChild(t),u.add(e)}(c,o,t.scriptUrl);const e=function(e){const{window:o}=w(e),n=o;if(!n.snowplow){const e=function(...o){(e.q=e.q||[]).push(o)};e.q=[],n.snowplow=e,n.GlobalSnowplowNamespace=["snowplow"]}return n.snowplow}(o);if(!e)return!1;e("newTracker",t.trackerName||"sp",c,{appId:t.appId||"walkerOS",platform:t.platform||"web",discoverRootDomain:t.discoverRootDomain,cookieSameSite:t.cookieSameSite,appVersion:t.appVersion,contexts:t.contexts,anonymousTracking:t.anonymousTracking}),r=function(e){return{trackPageView(o){o?e("trackPageView",o):e("trackPageView")},trackSelfDescribingEvent(o){e("trackSelfDescribingEvent",o)},trackStructEvent(o){e("trackStructEvent",o)},setUserId(o){e("setUserId",o)},enableActivityTracking(o){e("enableActivityTracking",o)},addPlugin(o){Array.isArray(o)?e("addPlugin",o[0],o[1]):e("addPlugin",o)},addGlobalContexts(o){e("addGlobalContexts",o)},clearUserData(o){o?e("clearUserData",o):e("clearUserData")},enableAnonymousTracking(o){o?e("enableAnonymousTracking",o):e("enableAnonymousTracking")},disableAnonymousTracking(o){o?e("disableAnonymousTracking",o):e("disableAnonymousTracking")},trackConsentAllow(o){e("trackConsentAllow",o)},trackConsentDeny(o){e("trackConsentDeny",o)},trackConsentSelected(o){e("trackConsentSelected",o)},setPageType(o){e("setPageType",o)},call(o,...n){e(o,...n)}}}(e)}var m;if(!r)return!1;if(t.activityTracking&&r.enableActivityTracking(t.activityTracking),t.plugins)for(const e of t.plugins)if(p(e)){const o="function"==typeof e.code&&e.config?e.code(e.config):e.code;r.addPlugin({plugin:o})}else if(l(e)){r.addPlugin([e.url,e.name]);const o=null!=(a=e.enableMethod)?a:d(e.name[1]);e.options?r.call(o,e.options):r.call(o)}else r.addPlugin({plugin:e});t.globalContexts&&t.globalContexts.length>0&&r.addGlobalContexts(t.globalContexts),t.trackPageView&&r.trackPageView();const g={...t,_state:{adapter:r}};return{...e,settings:g}},async push(e,{config:o,data:n={},rule:a={},logger:t}){const s=a.settings||{};await N(e,s,0,a.name,o,t)},on(e,o){var n;if("consent"!==e||!o.data)return;const a=o.data,t=((null==(n=o.config)?void 0:n.settings)||{}).consent;if(!t)return;const s=Q(o.env);if(!s)return;const c=t.required||Object.keys(a),i=c.every(e=>!0===a[e]),r=c.every(e=>!a[e]),l=c.filter(e=>!0===a[e]),p={basisForProcessing:t.basisForProcessing||"consent"};t.consentUrl&&(p.consentUrl=t.consentUrl),t.consentVersion&&(p.consentVersion=t.consentVersion),t.domainsApplied&&(p.domainsApplied=t.domainsApplied),void 0!==t.gdprApplies&&(p.gdprApplies=t.gdprApplies),r?s("trackConsentDeny",{...p,consentScopes:c}):s(i?"trackConsentAllow":"trackConsentSelected",{...p,consentScopes:l})}},ee=Z;export{t as ACTIONS,c as CONSENT_SCHEMAS,n as DestinationSnowplow,r as MEDIA_ACTIONS,i as MEDIA_SCHEMAS,a as SCHEMAS,s as WEB_SCHEMAS,$ as clearUserData,ee as default,Z as destinationSnowplow,X as disableAnonymousTracking,J as enableAnonymousTracking,I as examples};//# sourceMappingURL=index.mjs.map
1
+ var e=Object.defineProperty,o=(o,n)=>{for(var t in n)e(o,t,{get:n[t],enumerable:!0})},n={};o(n,{ACTIONS:()=>a,CONSENT_SCHEMAS:()=>c,MEDIA_ACTIONS:()=>r,MEDIA_SCHEMAS:()=>i,SCHEMAS:()=>t,WEB_SCHEMAS:()=>s,deriveEnableMethod:()=>d,isCodeBasedPlugin:()=>p,isMappedGlobalContext:()=>m,isUrlBasedPlugin:()=>l});var t={ACTION:"iglu:com.snowplowanalytics.snowplow.ecommerce/snowplow_ecommerce_action/jsonschema/1-0-2",PRODUCT:"iglu:com.snowplowanalytics.snowplow.ecommerce/product/jsonschema/1-0-0",CART:"iglu:com.snowplowanalytics.snowplow.ecommerce/cart/jsonschema/1-0-0",TRANSACTION:"iglu:com.snowplowanalytics.snowplow.ecommerce/transaction/jsonschema/1-0-0",REFUND:"iglu:com.snowplowanalytics.snowplow.ecommerce/refund/jsonschema/1-0-0",CHECKOUT_STEP:"iglu:com.snowplowanalytics.snowplow.ecommerce/checkout_step/jsonschema/1-0-0",PROMOTION:"iglu:com.snowplowanalytics.snowplow.ecommerce/promotion/jsonschema/1-0-0",PAGE:"iglu:com.snowplowanalytics.snowplow.ecommerce/page/jsonschema/1-0-0",USER:"iglu:com.snowplowanalytics.snowplow.ecommerce/user/jsonschema/1-0-0"},a={PRODUCT_VIEW:"product_view",LIST_VIEW:"list_view",LIST_CLICK:"list_click",ADD_TO_CART:"add_to_cart",REMOVE_FROM_CART:"remove_from_cart",CHECKOUT_STEP:"checkout_step",TRANSACTION:"transaction",REFUND:"refund",PROMO_VIEW:"promo_view",PROMO_CLICK:"promo_click",TRANSACTION_ERROR:"trns_error"},s={LINK_CLICK:"iglu:com.snowplowanalytics.snowplow/link_click/jsonschema/1-0-1",CHANGE_FORM:"iglu:com.snowplowanalytics.snowplow/change_form/jsonschema/1-0-0",FOCUS_FORM:"iglu:com.snowplowanalytics.snowplow/focus_form/jsonschema/1-0-0",SUBMIT_FORM:"iglu:com.snowplowanalytics.snowplow/submit_form/jsonschema/1-0-0",SITE_SEARCH:"iglu:com.snowplowanalytics.snowplow/site_search/jsonschema/1-0-0",SOCIAL:"iglu:com.snowplowanalytics.snowplow/social_interaction/jsonschema/1-0-0",TIMING:"iglu:com.snowplowanalytics.snowplow/timing/jsonschema/1-0-0",WEB_VITALS:"iglu:com.snowplowanalytics.snowplow/web_vitals/jsonschema/1-0-0",WEB_PAGE:"iglu:com.snowplowanalytics.snowplow/web_page/jsonschema/1-0-0",BROWSER:"iglu:com.snowplowanalytics.snowplow/browser_context/jsonschema/2-0-0",CLIENT_SESSION:"iglu:com.snowplowanalytics.snowplow/client_session/jsonschema/1-0-2",GEOLOCATION:"iglu:com.snowplowanalytics.snowplow/geolocation_context/jsonschema/1-1-0"},c={PREFERENCES:"iglu:com.snowplowanalytics.snowplow/consent_preferences/jsonschema/1-0-0",CMP_VISIBLE:"iglu:com.snowplowanalytics.snowplow/cmp_visible/jsonschema/1-0-0",DOCUMENT:"iglu:com.snowplowanalytics.snowplow/consent_document/jsonschema/1-0-0",GDPR:"iglu:com.snowplowanalytics.snowplow/gdpr/jsonschema/1-0-0"},i={PLAY:"iglu:com.snowplowanalytics.snowplow.media/play_event/jsonschema/1-0-0",PAUSE:"iglu:com.snowplowanalytics.snowplow.media/pause_event/jsonschema/1-0-0",END:"iglu:com.snowplowanalytics.snowplow.media/end_event/jsonschema/1-0-0",READY:"iglu:com.snowplowanalytics.snowplow.media/ready_event/jsonschema/1-0-0",SEEK_START:"iglu:com.snowplowanalytics.snowplow.media/seek_start_event/jsonschema/1-0-0",SEEK_END:"iglu:com.snowplowanalytics.snowplow.media/seek_end_event/jsonschema/1-0-0",BUFFER_START:"iglu:com.snowplowanalytics.snowplow.media/buffer_start_event/jsonschema/1-0-0",BUFFER_END:"iglu:com.snowplowanalytics.snowplow.media/buffer_end_event/jsonschema/1-0-0",QUALITY_CHANGE:"iglu:com.snowplowanalytics.snowplow.media/quality_change_event/jsonschema/1-0-0",FULLSCREEN_CHANGE:"iglu:com.snowplowanalytics.snowplow.media/fullscreen_change_event/jsonschema/1-0-0",VOLUME_CHANGE:"iglu:com.snowplowanalytics.snowplow.media/volume_change_event/jsonschema/1-0-0",PLAYBACK_RATE_CHANGE:"iglu:com.snowplowanalytics.snowplow.media/playback_rate_change_event/jsonschema/1-0-0",PIP_CHANGE:"iglu:com.snowplowanalytics.snowplow.media/picture_in_picture_change_event/jsonschema/1-0-0",PING:"iglu:com.snowplowanalytics.snowplow.media/ping_event/jsonschema/1-0-0",PERCENT_PROGRESS:"iglu:com.snowplowanalytics.snowplow.media/percent_progress_event/jsonschema/1-0-0",ERROR:"iglu:com.snowplowanalytics.snowplow.media/error_event/jsonschema/1-0-0",AD_BREAK_START:"iglu:com.snowplowanalytics.snowplow.media/ad_break_start_event/jsonschema/1-0-0",AD_BREAK_END:"iglu:com.snowplowanalytics.snowplow.media/ad_break_end_event/jsonschema/1-0-0",AD_START:"iglu:com.snowplowanalytics.snowplow.media/ad_start_event/jsonschema/1-0-0",AD_COMPLETE:"iglu:com.snowplowanalytics.snowplow.media/ad_complete_event/jsonschema/1-0-0",AD_SKIP:"iglu:com.snowplowanalytics.snowplow.media/ad_skip_event/jsonschema/1-0-0",AD_CLICK:"iglu:com.snowplowanalytics.snowplow.media/ad_click_event/jsonschema/1-0-0",AD_PAUSE:"iglu:com.snowplowanalytics.snowplow.media/ad_pause_event/jsonschema/1-0-0",AD_RESUME:"iglu:com.snowplowanalytics.snowplow.media/ad_resume_event/jsonschema/1-0-0",AD_QUARTILE:"iglu:com.snowplowanalytics.snowplow.media/ad_quartile_event/jsonschema/1-0-0",MEDIA_PLAYER:"iglu:com.snowplowanalytics.snowplow/media_player/jsonschema/1-0-0",SESSION:"iglu:com.snowplowanalytics.snowplow.media/session/jsonschema/1-0-0",AD:"iglu:com.snowplowanalytics.snowplow.media/ad/jsonschema/1-0-0",AD_BREAK:"iglu:com.snowplowanalytics.snowplow.media/ad_break/jsonschema/1-0-0"},r={PLAY:"play",PAUSE:"pause",END:"end",READY:"ready",SEEK_START:"seek_start",SEEK_END:"seek_end",BUFFER_START:"buffer_start",BUFFER_END:"buffer_end",QUALITY_CHANGE:"quality_change",FULLSCREEN_CHANGE:"fullscreen_change",VOLUME_CHANGE:"volume_change",PLAYBACK_RATE_CHANGE:"playback_rate_change",PIP_CHANGE:"pip_change",PING:"ping",PERCENT_PROGRESS:"percent_progress",ERROR:"error",AD_BREAK_START:"ad_break_start",AD_BREAK_END:"ad_break_end",AD_START:"ad_start",AD_COMPLETE:"ad_complete",AD_SKIP:"ad_skip",AD_CLICK:"ad_click",AD_PAUSE:"ad_pause",AD_RESUME:"ad_resume",AD_QUARTILE:"ad_quartile"};function l(e){return"object"==typeof e&&"url"in e&&"name"in e}function p(e){return"object"==typeof e&&"code"in e&&!("url"in e)}function m(e){return"object"==typeof e&&null!==e&&"__mapped"in e}function d(e){return"enable"+e.replace("Plugin","")}import{getEnv as w}from"@walkeros/web-core";var u=new Set;var g=Object.defineProperty;((e,o)=>{for(var n in o)g(e,n,{get:o[n],enumerable:!0})})({},{Level:()=>v});var y,v=((y=v||{})[y.ERROR=0]="ERROR",y[y.WARN=1]="WARN",y[y.INFO=2]="INFO",y[y.DEBUG=3]="DEBUG",y),h={merge:!0,shallow:!0,extend:!0};function _(e){return Array.isArray(e)}function f(e){return void 0!==e}function k(e){return"number"==typeof e&&!Number.isNaN(e)}function A(e){return"object"==typeof e&&null!==e&&!_(e)&&"[object Object]"===Object.prototype.toString.call(e)}function E(e){return"string"==typeof e}function S(e,o="",n){const t=o.split(".");let a=e;for(let e=0;e<t.length;e++){const o=t[e];if("*"===o&&_(a)){const o=t.slice(e+1).join("."),s=[];for(const e of a){const t=S(e,o,n);s.push(t)}return s}if(a=a instanceof Object?a[o]:void 0,void 0===a)break}return f(a)?a:n}function b(e={}){var o;const n=e.timestamp||(new Date).setHours(0,13,37,0),t=e.group||"gr0up",a=e.count||1,s=function(e,o={},n={}){n={...h,...n};const t=Object.entries(o).reduce((o,[t,a])=>{const s=e[t];return n.merge&&Array.isArray(s)&&Array.isArray(a)?o[t]=a.reduce((e,o)=>e.includes(o)?e:[...e,o],[...s]):(n.extend||t in e)&&(o[t]=a),o},{});return n.shallow?{...e,...t}:(Object.assign(e,t),e)}({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],not:void 0},context:{dev:["test",1]},globals:{lang:"elb"},custom:{completely:"random"},user:{id:"us3r",device:"c00k13",session:"s3ss10n"},nested:[{entity:"child",data:{is:"subordinated"},nested:[],context:{element:["child",0]}}],consent:{functional:!0},id:`${n}-${t}-${a}`,trigger:"test",entity:"entity",action:"action",timestamp:n,timing:3.14,group:t,count:a,version:{source:"3.4.1",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[n,t]=null!=(o=e.name.split(" "))?o:[];n&&t&&(s.entity=n,s.action=t)}return s}function T(e="entity action",o={}){const n=o.timestamp||(new Date).setHours(0,13,37,0),t={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},a={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return b({...{"cart view":{data:{currency:"EUR",value:2*t.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...t.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:t.data.price+a.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...t,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...a,context:{shopping:["checkout",0]},nested:[]}],trigger:"load"},"order complete":{data:{id:"0rd3r1d",currency:"EUR",shipping:5.22,taxes:73.76,total:555},context:{shopping:["complete",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...t,context:{shopping:["complete",0]},nested:[]},{entity:"product",...a,context:{shopping:["complete",0]},nested:[]},{entity:"gift",data:{name:"Surprise"},context:{shopping:["complete",0]},nested:[]}],trigger:"load"},"page view":{data:{domain:"www.example.com",title:"walkerOS documentation",referrer:"https://www.walkeros.io/",search:"?foo=bar",hash:"#hash",id:"/docs/"},globals:{pagegroup:"docs"},trigger:"load"},"product add":{...t,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...t,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...t.data,position:3,promo:!0},context:{shopping:["discover",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"promotion visible":{data:{name:"Setting up tracking easily",position:"hero"},context:{ab_test:["engagement",0]},globals:{pagegroup:"homepage"},trigger:"visible"},"session start":{data:{id:"s3ss10n",start:n,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,referrer:"",device:"c00k13"},user:{id:"us3r",device:"c00k13",session:"s3ss10n",hash:"h4sh",address:"street number",email:"user@example.com",phone:"+49 123 456 789",userAgent:"Mozilla...",browser:"Chrome",browserVersion:"90",deviceType:"desktop",language:"de-DE",country:"DE",region:"HH",city:"Hamburg",zip:"20354",timezone:"Berlin",os:"walkerOS",osVersion:"1.0",screenSize:"1337x420",ip:"127.0.0.0",internal:!0,custom:"value"}}}[e],...o,name:e})}function C(e){return function(e){return"boolean"==typeof e}(e)||E(e)||k(e)||!f(e)||_(e)&&e.every(C)||A(e)&&Object.values(e).every(C)}function R(e){return C(e)?e:void 0}function j(e,o,n){return async function(...t){try{return await e(...t)}catch(e){if(!o)return;return await o(e)}finally{await(null==n?void 0:n())}}}async function D(e,o={},n={}){var t;if(!f(e))return;const a=A(e)&&e.consent||n.consent||(null==(t=n.collector)?void 0:t.consent),s=_(o)?o:[o];for(const o of s){const t=await j(P)(e,o,{...n,consent:a});if(f(t))return t}}async function P(e,o,n={}){const{collector:t,consent:a}=n;return(_(o)?o:[o]).reduce(async(o,s)=>{const c=await o;if(c)return c;const i=E(s)?{key:s}:s;if(!Object.keys(i).length)return;const{condition:r,consent:l,fn:p,key:m,loop:d,map:w,set:u,validate:g,value:y}=i;if(r&&!await j(r)(e,s,t))return;if(l&&!function(e,o={},n={}){const t={...o,...n},a={};let s=!e||0===Object.keys(e).length;return Object.keys(t).forEach(o=>{t[o]&&(a[o]=!0,e&&e[o]&&(s=!0))}),!!s&&a}(l,a))return y;let v=f(y)?y:e;if(p&&(v=await j(p)(e,s,n)),m&&(v=S(e,m,y)),d){const[o,t]=d,a="this"===o?[e]:await D(e,o,n);_(a)&&(v=(await Promise.all(a.map(e=>D(e,t,n)))).filter(f))}else w?v=await Object.entries(w).reduce(async(o,[t,a])=>{const s=await o,c=await D(e,a,n);return f(c)&&(s[t]=c),s},Promise.resolve({})):u&&(v=await Promise.all(u.map(o=>P(e,o,n))));g&&!await j(g)(v)&&(v=void 0);const h=R(v);return f(h)?h:R(y)},Promise.resolve(void 0))}function O(e){return A(e)&&"loop"in e&&_(e.loop)&&2===e.loop.length}async function N(e,o,n,a,s,c){var i,r,l,p;const m=null==s?void 0:s.settings,d=null==(i=null==m?void 0:m._state)?void 0:i.adapter;if(!d)return void(null==c||c.throw("Tracker not initialized"));const w=null==m?void 0:m._state;if((null==m?void 0:m.userId)&&!(null==w?void 0:w.userIdSet)){const o=await D(e,m.userId);o&&E(o)&&(d.setUserId(o),w&&(w.userIdSet=!0))}if(null==m?void 0:m.page){const o=await D(e,m.page.type);if(o&&E(o)){const n={type:o};if(m.page.language){const o=await D(e,m.page.language);o&&E(o)&&(n.language=o)}if(m.page.locale){const o=await D(e,m.page.locale);o&&E(o)&&(n.locale=o)}const t=JSON.stringify(n);(null==w?void 0:w.page)!==t&&(d.setPageType(n),w&&(w.page=t))}}if(o.struct)await async function(e,o,n,t){const a=await D(e,o.category),s=await D(e,o.action);if(!a||!E(a))return void(null==t||t.info("Struct event skipped: invalid category",{event:e.name,category:a,reason:a?"not a string":"missing"}));if(!s||!E(s))return void(null==t||t.info("Struct event skipped: invalid action",{event:e.name,action:s,reason:s?"not a string":"missing"}));const c=o.label?await D(e,o.label):void 0,i=o.property?await D(e,o.property):void 0,r=o.value?await D(e,o.value):void 0,l=void 0!==r?Number(r):void 0;n.trackStructEvent({category:a,action:s,...c&&E(c)&&{label:c},...i&&E(i)&&{property:i},...void 0!==l&&k(l)&&!isNaN(l)&&{value:l}})}(e,o.struct,d,c);else if((null==m?void 0:m.pageViewEvent)&&e.name===m.pageViewEvent)d.trackPageView();else if(a){const n=(null==(r=o.snowplow)?void 0:r.actionSchema)||(null==(l=null==m?void 0:m.snowplow)?void 0:l.actionSchema)||t.ACTION,s=await async function(e,o){const n=[];if(!_(o.context))return n;for(const t of o.context)if(A(t)&&t.schema)if(O(t.data)){const[o,a]=t.data.loop,s=await D(e,o);if(_(s))for(const e of s){const o=await D(e,a);A(o)&&n.push({schema:t.schema,data:o})}}else{const o=await D(e,{map:t.data});A(o)&&n.push({schema:t.schema,data:o})}return n}(e,o);let c={};if(A(o.data)&&"map"in o.data){const n=await D(e,o.data);A(n)&&(c=n)}else n===t.ACTION&&(c={type:a});d.trackSelfDescribingEvent({event:{schema:n,data:c},context:s.length>0?s:void 0})}else null==c||c.info("Event skipped: no action name in mapping",{event:e.name,hasContext:!!(null==(p=o.context)?void 0:p.length)})}var I={};o(I,{env:()=>U,step:()=>G});var U={};o(U,{init:()=>x,push:()=>V,simulation:()=>L});var x={window:{snowplow:void 0},document:{createElement:()=>({src:"",async:!1,setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},V={window:{snowplow:Object.assign(()=>{},{q:[]})},document:{createElement:()=>({src:"",async:!1,setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},L=["call:window.snowplow"],G={};o(G,{addToCart:()=>K,checkoutStep:()=>W,contextLoop:()=>Y,init:()=>M,pageView:()=>q,productView:()=>H,promoView:()=>F,structuredEvent:()=>z,transaction:()=>B});var M={title:"Initialization",description:"Destination bootstrap creates a Snowplow tracker pointed at the configured collector URL.",in:{loadScript:!0,settings:{collectorUrl:"https://collector.example.com",appId:"my-app",pageViewEvent:"page view"}},out:[["snowplow.newTracker","sp","https://collector.example.com",{appId:"my-app",platform:"web",discoverRootDomain:void 0,cookieSameSite:void 0,appVersion:void 0,contexts:void 0,anonymousTracking:void 0}]]},H={title:"Product view",description:"A product view fires a Snowplow ecommerce action with a product context schema and pricing fields.",in:T("product view",{timestamp:1700000400}),mapping:{name:a.PRODUCT_VIEW,settings:{context:[{schema:t.PRODUCT,data:{id:"data.id",name:"data.name",category:"data.category",price:"data.price",currency:{key:"data.currency",value:"USD"},brand:"data.brand",variant:"data.variant"}}]}},out:[["snowplow.trackSelfDescribingEvent",{event:{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/snowplow_ecommerce_action/jsonschema/1-0-2",data:{type:"product_view"}},context:[{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/product/jsonschema/1-0-0",data:{id:"ers",name:"Everyday Ruck Snack",price:420,currency:"USD"}}]}]]},K={title:"Add to cart",description:"A product add fires a Snowplow ecommerce add_to_cart action with product, cart, page, and user contexts.",in:T("product add",{timestamp:1700000401}),mapping:{name:a.ADD_TO_CART,settings:{context:[{schema:t.PRODUCT,data:{id:"data.id",name:"data.name",category:"data.category",price:"data.price",currency:{key:"data.currency",value:"USD"},quantity:{key:"data.quantity",value:1}}},{schema:t.CART,data:{total_value:"globals.cart_value",currency:{key:"globals.cart_currency",value:"USD"}}},{schema:t.PAGE,data:{type:"globals.page_type",language:"globals.language"}},{schema:t.USER,data:{id:"user.id",email:"user.email",is_guest:{fn:e=>{var o;return!!(null==(o=e.user)?void 0:o.id)||void 0}}}}]}},out:[["snowplow.trackSelfDescribingEvent",{event:{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/snowplow_ecommerce_action/jsonschema/1-0-2",data:{type:"add_to_cart"}},context:[{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/product/jsonschema/1-0-0",data:{id:"ers",name:"Everyday Ruck Snack",price:420,currency:"USD",quantity:1}},{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/cart/jsonschema/1-0-0",data:{currency:"USD"}},{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/page/jsonschema/1-0-0",data:{}},{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/user/jsonschema/1-0-0",data:{id:"us3r",is_guest:!0}}]}]]},B={title:"Transaction",description:"A completed order fires a Snowplow ecommerce transaction action with transaction id, revenue, tax, and shipping.",in:T("order complete",{timestamp:1700000402}),mapping:{name:a.TRANSACTION,settings:{context:[{schema:t.TRANSACTION,data:{transaction_id:"data.id",revenue:"data.total",currency:{key:"data.currency",value:"USD"},payment_method:{value:"credit_card"},tax:"data.taxes",shipping:"data.shipping"}}]}},out:[["snowplow.trackSelfDescribingEvent",{event:{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/snowplow_ecommerce_action/jsonschema/1-0-2",data:{type:"transaction"}},context:[{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/transaction/jsonschema/1-0-0",data:{transaction_id:"0rd3r1d",revenue:555,currency:"EUR",payment_method:"credit_card",tax:73.76,shipping:5.22}}]}]]},F={title:"Promo view",description:"A promotion visible event fires a Snowplow promo_view action with a promotion context.",in:T("promotion visible",{timestamp:1700000403}),mapping:{name:a.PROMO_VIEW,settings:{context:[{schema:t.PROMOTION,data:{id:"data.id",name:"data.name",creative_id:"data.creative_id",type:"data.type",position:"data.position",slot:"data.slot"}}]}},out:[["snowplow.trackSelfDescribingEvent",{event:{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/snowplow_ecommerce_action/jsonschema/1-0-2",data:{type:"promo_view"}},context:[{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/promotion/jsonschema/1-0-0",data:{name:"Setting up tracking easily",position:"hero"}}]}]]},q={title:"Page view",description:"A page view calls Snowplow trackPageView directly instead of a self-describing event.",in:T("page view",{timestamp:1700000404}),mapping:void 0,out:[["snowplow.trackPageView"]]},W={title:"Checkout step",description:"A checkout view fires a Snowplow checkout_step action with the current step and option.",in:T("checkout view",{timestamp:1700000405}),mapping:{name:a.CHECKOUT_STEP,settings:{context:[{schema:t.CHECKOUT_STEP,data:{step:"data.step",option:"data.option"}}]}},out:[["snowplow.trackSelfDescribingEvent",{event:{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/snowplow_ecommerce_action/jsonschema/1-0-2",data:{type:"checkout_step"}},context:[{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/checkout_step/jsonschema/1-0-0",data:{step:"payment"}}]}]]},z={title:"Struct event",description:"A custom event is tracked via Snowplow trackStructEvent with category, action, label, property, and value.",in:T("product visible",{timestamp:1700000406}),mapping:{settings:{struct:{category:{value:"ecommerce"},action:{value:"impression"},label:"data.name",property:"data.color",value:"data.price"}}},out:[["snowplow.trackStructEvent",{category:"ecommerce",action:"impression",label:"Everyday Ruck Snack",property:"black",value:420}]]},Y={title:"Transaction with products",description:"A transaction event adds one Snowplow product context per nested product via a loop mapping.",in:T("order complete",{timestamp:1700000407}),mapping:{name:a.TRANSACTION,settings:{context:[{schema:t.TRANSACTION,data:{transaction_id:"data.id",revenue:"data.total",currency:"data.currency"}},{schema:t.PRODUCT,data:{loop:["nested",{map:{id:"data.id",name:"data.name",price:"data.price"}}]}}]}},out:[["snowplow.trackSelfDescribingEvent",{event:{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/snowplow_ecommerce_action/jsonschema/1-0-2",data:{type:"transaction"}},context:[{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/transaction/jsonschema/1-0-0",data:{transaction_id:"0rd3r1d",revenue:555,currency:"EUR"}},{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/product/jsonschema/1-0-0",data:{id:"ers",name:"Everyday Ruck Snack",price:420}},{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/product/jsonschema/1-0-0",data:{id:"cc",name:"Cool Cap",price:42}},{schema:"iglu:com.snowplowanalytics.snowplow.ecommerce/product/jsonschema/1-0-0",data:{name:"Surprise"}}]}]]};function Q(e){var o,n;return null!=(n=null==(o=null==e?void 0:e.window)?void 0:o.snowplow)?n:"undefined"!=typeof window?window.snowplow:void 0}function $(e){const o=Q(e);o&&o("clearUserData")}function J(e,o){const n=Q(o);n&&(e?n("enableAnonymousTracking",e):n("enableAnonymousTracking"))}function X(e,o){const n=Q(o);n&&(e?n("disableAnonymousTracking",{stateStorageStrategy:e}):n("disableAnonymousTracking"))}var Z={type:"snowplow",config:{},init({config:e,env:o,logger:n}){var t;const{settings:a={},loadScript:s}=e,{collectorUrl:c,tracker:i}=a;let r;if(c||n.throw("Config settings collectorUrl missing"),i){if(!i.newTracker)return n.throw("tracker.newTracker is required for browser-tracker mode"),!1;if(!i.trackSelfDescribingEvent)return n.throw("tracker.trackSelfDescribingEvent is required for browser-tracker mode"),!1;i.newTracker(a.trackerName||"sp",c,{appId:a.appId||"walkerOS",platform:a.platform||"web",discoverRootDomain:a.discoverRootDomain,cookieSameSite:a.cookieSameSite,appVersion:a.appVersion,contexts:a.contexts,anonymousTracking:a.anonymousTracking}),m=i,r={trackPageView(e){m.trackPageView&&m.trackPageView(e)},trackSelfDescribingEvent(e){m.trackSelfDescribingEvent(e)},trackStructEvent(e){m.trackStructEvent&&m.trackStructEvent(e)},setUserId(e){m.setUserId&&m.setUserId(e)},enableActivityTracking(e){m.enableActivityTracking&&m.enableActivityTracking(e)},addPlugin(e){m.addPlugin&&!Array.isArray(e)&&m.addPlugin(e)},addGlobalContexts(e){m.addGlobalContexts&&m.addGlobalContexts(e)},clearUserData(e){m.clearUserData&&m.clearUserData(e)},enableAnonymousTracking(e){m.enableAnonymousTracking&&m.enableAnonymousTracking(e)},disableAnonymousTracking(e){m.disableAnonymousTracking&&m.disableAnonymousTracking(e)},trackConsentAllow(e){m.trackConsentAllow&&m.trackConsentAllow(e)},trackConsentDeny(e){m.trackConsentDeny&&m.trackConsentDeny(e)},trackConsentSelected(e){m.trackConsentSelected&&m.trackConsentSelected(e)},setPageType(e){m.setPageType&&m.setPageType(e)},call(e,...o){}}}else{s&&function(e,o,n="https://cdn.jsdelivr.net/npm/@snowplow/javascript-tracker@latest/dist/sp.js"){if(u.has(e))return;const{document:t}=w(o),a=t.createElement("script");a.src=n,a.async=!0,t.head.appendChild(a),u.add(e)}(c,o,a.scriptUrl);const e=function(e){const{window:o}=w(e),n=o;if(!n.snowplow){const e=function(...o){(e.q=e.q||[]).push(o)};e.q=[],n.snowplow=e,n.GlobalSnowplowNamespace=["snowplow"]}return n.snowplow}(o);if(!e)return!1;e("newTracker",a.trackerName||"sp",c,{appId:a.appId||"walkerOS",platform:a.platform||"web",discoverRootDomain:a.discoverRootDomain,cookieSameSite:a.cookieSameSite,appVersion:a.appVersion,contexts:a.contexts,anonymousTracking:a.anonymousTracking}),r=function(e){return{trackPageView(o){o?e("trackPageView",o):e("trackPageView")},trackSelfDescribingEvent(o){e("trackSelfDescribingEvent",o)},trackStructEvent(o){e("trackStructEvent",o)},setUserId(o){e("setUserId",o)},enableActivityTracking(o){e("enableActivityTracking",o)},addPlugin(o){Array.isArray(o)?e("addPlugin",o[0],o[1]):e("addPlugin",o)},addGlobalContexts(o){e("addGlobalContexts",o)},clearUserData(o){o?e("clearUserData",o):e("clearUserData")},enableAnonymousTracking(o){o?e("enableAnonymousTracking",o):e("enableAnonymousTracking")},disableAnonymousTracking(o){o?e("disableAnonymousTracking",o):e("disableAnonymousTracking")},trackConsentAllow(o){e("trackConsentAllow",o)},trackConsentDeny(o){e("trackConsentDeny",o)},trackConsentSelected(o){e("trackConsentSelected",o)},setPageType(o){e("setPageType",o)},call(o,...n){e(o,...n)}}}(e)}var m;if(!r)return!1;if(a.activityTracking&&r.enableActivityTracking(a.activityTracking),a.plugins)for(const e of a.plugins)if(p(e)){const o="function"==typeof e.code&&e.config?e.code(e.config):e.code;r.addPlugin({plugin:o})}else if(l(e)){r.addPlugin([e.url,e.name]);const o=null!=(t=e.enableMethod)?t:d(e.name[1]);e.options?r.call(o,e.options):r.call(o)}else r.addPlugin({plugin:e});a.globalContexts&&a.globalContexts.length>0&&r.addGlobalContexts(a.globalContexts),a.trackPageView&&r.trackPageView();const g={...a,_state:{adapter:r}};return{...e,settings:g}},async push(e,{config:o,data:n={},rule:t={},logger:a}){const s=t.settings||{};await N(e,s,0,t.name,o,a)},on(e,o){var n;if("consent"!==e||!o.data)return;const t=o.data,a=((null==(n=o.config)?void 0:n.settings)||{}).consent;if(!a)return;const s=Q(o.env);if(!s)return;const c=a.required||Object.keys(t),i=c.every(e=>!0===t[e]),r=c.every(e=>!t[e]),l=c.filter(e=>!0===t[e]),p={basisForProcessing:a.basisForProcessing||"consent"};a.consentUrl&&(p.consentUrl=a.consentUrl),a.consentVersion&&(p.consentVersion=a.consentVersion),a.domainsApplied&&(p.domainsApplied=a.domainsApplied),void 0!==a.gdprApplies&&(p.gdprApplies=a.gdprApplies),r?s("trackConsentDeny",{...p,consentScopes:c}):s(i?"trackConsentAllow":"trackConsentSelected",{...p,consentScopes:l})}},ee=Z;export{a as ACTIONS,c as CONSENT_SCHEMAS,n as DestinationSnowplow,r as MEDIA_ACTIONS,i as MEDIA_SCHEMAS,t as SCHEMAS,s as WEB_SCHEMAS,$ as clearUserData,ee as default,Z as destinationSnowplow,X as disableAnonymousTracking,J as enableAnonymousTracking,I as examples};//# sourceMappingURL=index.mjs.map