@walkeros/web-destination-snowplow 3.0.1 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var e=Object.defineProperty,n=(n,o)=>{for(var a in o)e(n,a,{get:o[a],enumerable:!0})},o={};n(o,{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,n)=>{for(var o in n)g(e,o,{get:n[o],enumerable:!0})})({},{Level:()=>_});var y,_=((y=_||{})[y.ERROR=0]="ERROR",y[y.WARN=1]="WARN",y[y.INFO=2]="INFO",y[y.DEBUG=3]="DEBUG",y),v={merge:!0,shallow:!0,extend:!0};function h(e){return Array.isArray(e)}function f(e){return void 0!==e}function k(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 b(e,n="",o){const a=n.split(".");let t=e;for(let e=0;e<a.length;e++){const n=a[e];if("*"===n&&h(t)){const n=a.slice(e+1).join("."),s=[];for(const e of t){const a=b(e,n,o);s.push(a)}return s}if(t=t instanceof Object?t[n]:void 0,void 0===t)break}return f(t)?t:o}function S(e={}){var n;const o=e.timestamp||(new Date).setHours(0,13,37,0),a=e.group||"gr0up",t=e.count||1,s=function(e,n={},o={}){o={...v,...o};const a=Object.entries(n).reduce((n,[a,t])=>{const s=e[a];return o.merge&&Array.isArray(s)&&Array.isArray(t)?n[a]=t.reduce((e,n)=>e.includes(n)?e:[...e,n],[...s]):(o.extend||a in e)&&(n[a]=t),n},{});return o.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:`${o}-${a}-${t}`,trigger:"test",entity:"entity",action:"action",timestamp:o,timing:3.14,group:a,count:t,version:{source:"3.0.0",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[o,a]=null!=(n=e.name.split(" "))?n:[];o&&a&&(s.entity=o,s.action=a)}return s}function T(e="entity action",n={}){const o=n.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 S({...{"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:o,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],...n,name:e})}function C(e){return function(e){return"boolean"==typeof e}(e)||A(e)||k(e)||!f(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,n,o){return async function(...a){try{return await e(...a)}catch(e){if(!n)return;return await n(e)}finally{await(null==o?void 0:o())}}}async function D(e,n={},o={}){var a;if(!f(e))return;const t=E(e)&&e.consent||o.consent||(null==(a=o.collector)?void 0:a.consent),s=h(n)?n:[n];for(const n of s){const a=await j(O)(e,n,{...o,consent:t});if(f(a))return a}}async function O(e,n,o={}){const{collector:a,consent:t}=o;return(h(n)?n:[n]).reduce(async(n,s)=>{const c=await n;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,n={},o={}){const a={...n,...o},t={};let s=!e||0===Object.keys(e).length;return Object.keys(a).forEach(n=>{a[n]&&(t[n]=!0,e&&e[n]&&(s=!0))}),!!s&&t}(l,t))return y;let _=f(y)?y:e;if(p&&(_=await j(p)(e,s,o)),m&&(_=b(e,m,y)),d){const[n,a]=d,t="this"===n?[e]:await D(e,n,o);h(t)&&(_=(await Promise.all(t.map(e=>D(e,a,o)))).filter(f))}else w?_=await Object.entries(w).reduce(async(n,[a,t])=>{const s=await n,c=await D(e,t,o);return f(c)&&(s[a]=c),s},Promise.resolve({})):u&&(_=await Promise.all(u.map(n=>O(e,n,o))));g&&!await j(g)(_)&&(_=void 0);const v=R(_);return f(v)?v: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,n,o,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 n=await D(e,m.userId);n&&A(n)&&(d.setUserId(n),w&&(w.userIdSet=!0))}if(null==m?void 0:m.page){const n=await D(e,m.page.type);if(n&&A(n)){const o={type:n};if(m.page.language){const n=await D(e,m.page.language);n&&A(n)&&(o.language=n)}if(m.page.locale){const n=await D(e,m.page.locale);n&&A(n)&&(o.locale=n)}const a=JSON.stringify(o);(null==w?void 0:w.page)!==a&&(d.setPageType(o),w&&(w.page=a))}}if(n.struct)await async function(e,n,o,a){const t=await D(e,n.category),s=await D(e,n.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=n.label?await D(e,n.label):void 0,i=n.property?await D(e,n.property):void 0,r=n.value?await D(e,n.value):void 0,l=void 0!==r?Number(r):void 0;o.trackStructEvent({category:t,action:s,...c&&A(c)&&{label:c},...i&&A(i)&&{property:i},...void 0!==l&&k(l)&&!isNaN(l)&&{value:l}})}(e,n.struct,d,c);else if((null==m?void 0:m.pageViewEvent)&&e.name===m.pageViewEvent)d.trackPageView();else if(t){const o=(null==(r=n.snowplow)?void 0:r.actionSchema)||(null==(l=null==m?void 0:m.snowplow)?void 0:l.actionSchema)||a.ACTION,s=await async function(e,n){const o=[];if(!h(n.context))return o;for(const a of n.context)if(E(a)&&a.schema)if(P(a.data)){const[n,t]=a.data.loop,s=await D(e,n);if(h(s))for(const e of s){const n=await D(e,t);E(n)&&o.push({schema:a.schema,data:n})}}else{const n=await D(e,{map:a.data});E(n)&&o.push({schema:a.schema,data:n})}return o}(e,n);let c={};if(E(n.data)&&"map"in n.data){const o=await D(e,n.data);E(o)&&(c=o)}else o===a.ACTION&&(c={type:t});d.trackSelfDescribingEvent({event:{schema:o,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=n.context)?void 0:p.length)})}var U={};n(U,{env:()=>I,step:()=>G});var I={};n(I,{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={};n(G,{addToCart:()=>H,checkoutStep:()=>q,contextLoop:()=>Y,pageView:()=>F,productView:()=>M,promoView:()=>B,structuredEvent:()=>W,transaction:()=>K});var M={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:["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"}}]}]},H={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 n;return!!(null==(n=e.user)?void 0:n.id)||void 0}}}}]}},out:["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}}]}]},K={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:["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}}]}]},B={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:["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"}}]}]},F={in:T("page view",{timestamp:1700000404}),mapping:void 0,out:["trackPageView"]},q={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:["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"}}]}]},W={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:["trackStructEvent",{category:"ecommerce",action:"impression",label:"Everyday Ruck Snack",property:"black",value:420}]},Y={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:["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 z(e){var n,o;return null!=(o=null==(n=null==e?void 0:e.window)?void 0:n.snowplow)?o:"undefined"!=typeof window?window.snowplow:void 0}function Q(e){const n=z(e);n&&n("clearUserData")}function $(e,n){const o=z(n);o&&(e?o("enableAnonymousTracking",e):o("enableAnonymousTracking"))}function J(e,n){const o=z(n);o&&(e?o("disableAnonymousTracking",{stateStorageStrategy:e}):o("disableAnonymousTracking"))}var X={type:"snowplow",config:{},init({config:e,env:n,logger:o}){var a;const{settings:t={},loadScript:s}=e,{collectorUrl:c,tracker:i}=t;let r;if(c||o.throw("Config settings collectorUrl missing"),i){if(!i.newTracker)return o.throw("tracker.newTracker is required for browser-tracker mode"),!1;if(!i.trackSelfDescribingEvent)return o.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,...n){}}}else{s&&function(e,n,o="https://cdn.jsdelivr.net/npm/@snowplow/javascript-tracker@latest/dist/sp.js"){if(u.has(e))return;const{document:a}=w(n),t=a.createElement("script");t.src=o,t.async=!0,a.head.appendChild(t),u.add(e)}(c,n,t.scriptUrl);const e=function(e){const{window:n}=w(e),o=n;if(!o.snowplow){const e=function(...n){(e.q=e.q||[]).push(n)};e.q=[],o.snowplow=e,o.GlobalSnowplowNamespace=["snowplow"]}return o.snowplow}(n);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(n){n?e("trackPageView",n):e("trackPageView")},trackSelfDescribingEvent(n){e("trackSelfDescribingEvent",n)},trackStructEvent(n){e("trackStructEvent",n)},setUserId(n){e("setUserId",n)},enableActivityTracking(n){e("enableActivityTracking",n)},addPlugin(n){Array.isArray(n)?e("addPlugin",n[0],n[1]):e("addPlugin",n)},addGlobalContexts(n){e("addGlobalContexts",n)},clearUserData(n){n?e("clearUserData",n):e("clearUserData")},enableAnonymousTracking(n){n?e("enableAnonymousTracking",n):e("enableAnonymousTracking")},disableAnonymousTracking(n){n?e("disableAnonymousTracking",n):e("disableAnonymousTracking")},trackConsentAllow(n){e("trackConsentAllow",n)},trackConsentDeny(n){e("trackConsentDeny",n)},trackConsentSelected(n){e("trackConsentSelected",n)},setPageType(n){e("setPageType",n)},call(n,...o){e(n,...o)}}}(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 n="function"==typeof e.code&&e.config?e.code(e.config):e.code;r.addPlugin({plugin:n})}else if(l(e)){r.addPlugin([e.url,e.name]);const n=null!=(a=e.enableMethod)?a:d(e.name[1]);e.options?r.call(n,e.options):r.call(n)}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:n,data:o={},rule:a={},logger:t}){const s=a.settings||{};await N(e,s,0,a.name,n,t)},on(e,n){var o;if("consent"!==e||!n.data)return;const a=n.data,t=((null==(o=n.config)?void 0:o.settings)||{}).consent;if(!t)return;const s=z(n.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})}},Z=X;export{t as ACTIONS,c as CONSENT_SCHEMAS,o as DestinationSnowplow,r as MEDIA_ACTIONS,i as MEDIA_SCHEMAS,a as SCHEMAS,s as WEB_SCHEMAS,Q as clearUserData,Z as default,X as destinationSnowplow,J as disableAnonymousTracking,$ as enableAnonymousTracking,U as examples};//# sourceMappingURL=index.mjs.map
1
+ var e=Object.defineProperty,n=(n,o)=>{for(var a in o)e(n,a,{get:o[a],enumerable:!0})},o={};n(o,{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,n)=>{for(var o in n)g(e,o,{get:n[o],enumerable:!0})})({},{Level:()=>_});var y,_=((y=_||{})[y.ERROR=0]="ERROR",y[y.WARN=1]="WARN",y[y.INFO=2]="INFO",y[y.DEBUG=3]="DEBUG",y),v={merge:!0,shallow:!0,extend:!0};function h(e){return Array.isArray(e)}function f(e){return void 0!==e}function k(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 b(e,n="",o){const a=n.split(".");let t=e;for(let e=0;e<a.length;e++){const n=a[e];if("*"===n&&h(t)){const n=a.slice(e+1).join("."),s=[];for(const e of t){const a=b(e,n,o);s.push(a)}return s}if(t=t instanceof Object?t[n]:void 0,void 0===t)break}return f(t)?t:o}function S(e={}){var n;const o=e.timestamp||(new Date).setHours(0,13,37,0),a=e.group||"gr0up",t=e.count||1,s=function(e,n={},o={}){o={...v,...o};const a=Object.entries(n).reduce((n,[a,t])=>{const s=e[a];return o.merge&&Array.isArray(s)&&Array.isArray(t)?n[a]=t.reduce((e,n)=>e.includes(n)?e:[...e,n],[...s]):(o.extend||a in e)&&(n[a]=t),n},{});return o.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:`${o}-${a}-${t}`,trigger:"test",entity:"entity",action:"action",timestamp:o,timing:3.14,group:a,count:t,version:{source:"3.0.1",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[o,a]=null!=(n=e.name.split(" "))?n:[];o&&a&&(s.entity=o,s.action=a)}return s}function T(e="entity action",n={}){const o=n.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 S({...{"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:o,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],...n,name:e})}function C(e){return function(e){return"boolean"==typeof e}(e)||A(e)||k(e)||!f(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,n,o){return async function(...a){try{return await e(...a)}catch(e){if(!n)return;return await n(e)}finally{await(null==o?void 0:o())}}}async function D(e,n={},o={}){var a;if(!f(e))return;const t=E(e)&&e.consent||o.consent||(null==(a=o.collector)?void 0:a.consent),s=h(n)?n:[n];for(const n of s){const a=await j(O)(e,n,{...o,consent:t});if(f(a))return a}}async function O(e,n,o={}){const{collector:a,consent:t}=o;return(h(n)?n:[n]).reduce(async(n,s)=>{const c=await n;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,n={},o={}){const a={...n,...o},t={};let s=!e||0===Object.keys(e).length;return Object.keys(a).forEach(n=>{a[n]&&(t[n]=!0,e&&e[n]&&(s=!0))}),!!s&&t}(l,t))return y;let _=f(y)?y:e;if(p&&(_=await j(p)(e,s,o)),m&&(_=b(e,m,y)),d){const[n,a]=d,t="this"===n?[e]:await D(e,n,o);h(t)&&(_=(await Promise.all(t.map(e=>D(e,a,o)))).filter(f))}else w?_=await Object.entries(w).reduce(async(n,[a,t])=>{const s=await n,c=await D(e,t,o);return f(c)&&(s[a]=c),s},Promise.resolve({})):u&&(_=await Promise.all(u.map(n=>O(e,n,o))));g&&!await j(g)(_)&&(_=void 0);const v=R(_);return f(v)?v: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,n,o,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 n=await D(e,m.userId);n&&A(n)&&(d.setUserId(n),w&&(w.userIdSet=!0))}if(null==m?void 0:m.page){const n=await D(e,m.page.type);if(n&&A(n)){const o={type:n};if(m.page.language){const n=await D(e,m.page.language);n&&A(n)&&(o.language=n)}if(m.page.locale){const n=await D(e,m.page.locale);n&&A(n)&&(o.locale=n)}const a=JSON.stringify(o);(null==w?void 0:w.page)!==a&&(d.setPageType(o),w&&(w.page=a))}}if(n.struct)await async function(e,n,o,a){const t=await D(e,n.category),s=await D(e,n.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=n.label?await D(e,n.label):void 0,i=n.property?await D(e,n.property):void 0,r=n.value?await D(e,n.value):void 0,l=void 0!==r?Number(r):void 0;o.trackStructEvent({category:t,action:s,...c&&A(c)&&{label:c},...i&&A(i)&&{property:i},...void 0!==l&&k(l)&&!isNaN(l)&&{value:l}})}(e,n.struct,d,c);else if((null==m?void 0:m.pageViewEvent)&&e.name===m.pageViewEvent)d.trackPageView();else if(t){const o=(null==(r=n.snowplow)?void 0:r.actionSchema)||(null==(l=null==m?void 0:m.snowplow)?void 0:l.actionSchema)||a.ACTION,s=await async function(e,n){const o=[];if(!h(n.context))return o;for(const a of n.context)if(E(a)&&a.schema)if(P(a.data)){const[n,t]=a.data.loop,s=await D(e,n);if(h(s))for(const e of s){const n=await D(e,t);E(n)&&o.push({schema:a.schema,data:n})}}else{const n=await D(e,{map:a.data});E(n)&&o.push({schema:a.schema,data:n})}return o}(e,n);let c={};if(E(n.data)&&"map"in n.data){const o=await D(e,n.data);E(o)&&(c=o)}else o===a.ACTION&&(c={type:t});d.trackSelfDescribingEvent({event:{schema:o,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=n.context)?void 0:p.length)})}var U={};n(U,{env:()=>I,step:()=>G});var I={};n(I,{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={};n(G,{addToCart:()=>H,checkoutStep:()=>q,contextLoop:()=>Y,pageView:()=>F,productView:()=>M,promoView:()=>B,structuredEvent:()=>W,transaction:()=>K});var M={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:["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"}}]}]},H={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 n;return!!(null==(n=e.user)?void 0:n.id)||void 0}}}}]}},out:["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}}]}]},K={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:["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}}]}]},B={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:["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"}}]}]},F={in:T("page view",{timestamp:1700000404}),mapping:void 0,out:["trackPageView"]},q={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:["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"}}]}]},W={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:["trackStructEvent",{category:"ecommerce",action:"impression",label:"Everyday Ruck Snack",property:"black",value:420}]},Y={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:["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 z(e){var n,o;return null!=(o=null==(n=null==e?void 0:e.window)?void 0:n.snowplow)?o:"undefined"!=typeof window?window.snowplow:void 0}function Q(e){const n=z(e);n&&n("clearUserData")}function $(e,n){const o=z(n);o&&(e?o("enableAnonymousTracking",e):o("enableAnonymousTracking"))}function J(e,n){const o=z(n);o&&(e?o("disableAnonymousTracking",{stateStorageStrategy:e}):o("disableAnonymousTracking"))}var X={type:"snowplow",config:{},init({config:e,env:n,logger:o}){var a;const{settings:t={},loadScript:s}=e,{collectorUrl:c,tracker:i}=t;let r;if(c||o.throw("Config settings collectorUrl missing"),i){if(!i.newTracker)return o.throw("tracker.newTracker is required for browser-tracker mode"),!1;if(!i.trackSelfDescribingEvent)return o.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,...n){}}}else{s&&function(e,n,o="https://cdn.jsdelivr.net/npm/@snowplow/javascript-tracker@latest/dist/sp.js"){if(u.has(e))return;const{document:a}=w(n),t=a.createElement("script");t.src=o,t.async=!0,a.head.appendChild(t),u.add(e)}(c,n,t.scriptUrl);const e=function(e){const{window:n}=w(e),o=n;if(!o.snowplow){const e=function(...n){(e.q=e.q||[]).push(n)};e.q=[],o.snowplow=e,o.GlobalSnowplowNamespace=["snowplow"]}return o.snowplow}(n);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(n){n?e("trackPageView",n):e("trackPageView")},trackSelfDescribingEvent(n){e("trackSelfDescribingEvent",n)},trackStructEvent(n){e("trackStructEvent",n)},setUserId(n){e("setUserId",n)},enableActivityTracking(n){e("enableActivityTracking",n)},addPlugin(n){Array.isArray(n)?e("addPlugin",n[0],n[1]):e("addPlugin",n)},addGlobalContexts(n){e("addGlobalContexts",n)},clearUserData(n){n?e("clearUserData",n):e("clearUserData")},enableAnonymousTracking(n){n?e("enableAnonymousTracking",n):e("enableAnonymousTracking")},disableAnonymousTracking(n){n?e("disableAnonymousTracking",n):e("disableAnonymousTracking")},trackConsentAllow(n){e("trackConsentAllow",n)},trackConsentDeny(n){e("trackConsentDeny",n)},trackConsentSelected(n){e("trackConsentSelected",n)},setPageType(n){e("setPageType",n)},call(n,...o){e(n,...o)}}}(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 n="function"==typeof e.code&&e.config?e.code(e.config):e.code;r.addPlugin({plugin:n})}else if(l(e)){r.addPlugin([e.url,e.name]);const n=null!=(a=e.enableMethod)?a:d(e.name[1]);e.options?r.call(n,e.options):r.call(n)}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:n,data:o={},rule:a={},logger:t}){const s=a.settings||{};await N(e,s,0,a.name,n,t)},on(e,n){var o;if("consent"!==e||!n.data)return;const a=n.data,t=((null==(o=n.config)?void 0:o.settings)||{}).consent;if(!t)return;const s=z(n.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})}},Z=X;export{t as ACTIONS,c as CONSENT_SCHEMAS,o as DestinationSnowplow,r as MEDIA_ACTIONS,i as MEDIA_SCHEMAS,a as SCHEMAS,s as WEB_SCHEMAS,Q as clearUserData,Z as default,X as destinationSnowplow,J as disableAnonymousTracking,$ as enableAnonymousTracking,U as examples};//# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$meta": {
3
3
  "package": "@walkeros/web-destination-snowplow",
4
- "version": "3.0.0",
4
+ "version": "3.0.1",
5
5
  "type": "destination",
6
6
  "platform": "web",
7
7
  "docs": "https://www.walkeros.io/docs/destinations/web/snowplow",
@@ -343,7 +343,7 @@
343
343
  "group": "gr0up",
344
344
  "count": 1,
345
345
  "version": {
346
- "source": "3.0.0",
346
+ "source": "3.0.1",
347
347
  "tagging": 1
348
348
  },
349
349
  "source": {
@@ -518,7 +518,7 @@
518
518
  "group": "gr0up",
519
519
  "count": 1,
520
520
  "version": {
521
- "source": "3.0.0",
521
+ "source": "3.0.1",
522
522
  "tagging": 1
523
523
  },
524
524
  "source": {
@@ -648,7 +648,7 @@
648
648
  "group": "gr0up",
649
649
  "count": 1,
650
650
  "version": {
651
- "source": "3.0.0",
651
+ "source": "3.0.1",
652
652
  "tagging": 1
653
653
  },
654
654
  "source": {
@@ -786,7 +786,7 @@
786
786
  "group": "gr0up",
787
787
  "count": 1,
788
788
  "version": {
789
- "source": "3.0.0",
789
+ "source": "3.0.1",
790
790
  "tagging": 1
791
791
  },
792
792
  "source": {
@@ -839,7 +839,7 @@
839
839
  "group": "gr0up",
840
840
  "count": 1,
841
841
  "version": {
842
- "source": "3.0.0",
842
+ "source": "3.0.1",
843
843
  "tagging": 1
844
844
  },
845
845
  "source": {
@@ -944,7 +944,7 @@
944
944
  "group": "gr0up",
945
945
  "count": 1,
946
946
  "version": {
947
- "source": "3.0.0",
947
+ "source": "3.0.1",
948
948
  "tagging": 1
949
949
  },
950
950
  "source": {
@@ -1034,7 +1034,7 @@
1034
1034
  "group": "gr0up",
1035
1035
  "count": 1,
1036
1036
  "version": {
1037
- "source": "3.0.0",
1037
+ "source": "3.0.1",
1038
1038
  "tagging": 1
1039
1039
  },
1040
1040
  "source": {
@@ -1156,7 +1156,7 @@
1156
1156
  "group": "gr0up",
1157
1157
  "count": 1,
1158
1158
  "version": {
1159
- "source": "3.0.0",
1159
+ "source": "3.0.1",
1160
1160
  "tagging": 1
1161
1161
  },
1162
1162
  "source": {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@walkeros/web-destination-snowplow",
3
3
  "description": "Snowplow web destination for walkerOS",
4
- "version": "3.0.1",
4
+ "version": "3.0.2",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
7
7
  "module": "./dist/index.mjs",
@@ -36,10 +36,10 @@
36
36
  "update": "npx npm-check-updates -u && npm update"
37
37
  },
38
38
  "dependencies": {
39
- "@walkeros/web-core": "^3.0.1"
39
+ "@walkeros/web-core": "^3.0.2"
40
40
  },
41
41
  "devDependencies": {
42
- "@walkeros/collector": "^3.0.1",
42
+ "@walkeros/collector": "^3.0.2",
43
43
  "@walkeros/config": "*",
44
44
  "@snowplow/browser-tracker-core": "^4.6.8",
45
45
  "@snowplow/browser-plugin-snowplow-ecommerce": "^4.6.8"