@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.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e,o=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,t=Object.prototype.hasOwnProperty,s=(e,n)=>{for(var a in n)o(e,a,{get:n[a],enumerable:!0})},c={};s(c,{ACTIONS:()=>l,CONSENT_SCHEMAS:()=>m,DestinationSnowplow:()=>i,MEDIA_ACTIONS:()=>w,MEDIA_SCHEMAS:()=>d,SCHEMAS:()=>r,WEB_SCHEMAS:()=>p,clearUserData:()=>oe,default:()=>se,destinationSnowplow:()=>te,disableAnonymousTracking:()=>ae,enableAnonymousTracking:()=>ne,examples:()=>L}),module.exports=(e=c,((e,s,c,i)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let r of a(s))t.call(e,r)||r===c||o(e,r,{get:()=>s[r],enumerable:!(i=n(s,r))||i.enumerable});return e})(o({},"__esModule",{value:!0}),e));var i={};s(i,{ACTIONS:()=>l,CONSENT_SCHEMAS:()=>m,MEDIA_ACTIONS:()=>w,MEDIA_SCHEMAS:()=>d,SCHEMAS:()=>r,WEB_SCHEMAS:()=>p,deriveEnableMethod:()=>v,isCodeBasedPlugin:()=>g,isMappedGlobalContext:()=>y,isUrlBasedPlugin:()=>u});var r={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"},l={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"},p={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"},m={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"},d={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"},w={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 u(e){return"object"==typeof e&&"url"in e&&"name"in e}function g(e){return"object"==typeof e&&"code"in e&&!("url"in e)}function y(e){return"object"==typeof e&&null!==e&&"__mapped"in e}function v(e){return"enable"+e.replace("Plugin","")}var _=require("@walkeros/web-core"),h=new Set;var E=Object.defineProperty;((e,o)=>{for(var n in o)E(e,n,{get:o[n],enumerable:!0})})({},{Level:()=>k});var f,k=((f=k||{})[f.ERROR=0]="ERROR",f[f.WARN=1]="WARN",f[f.INFO=2]="INFO",f[f.DEBUG=3]="DEBUG",f),A={merge:!0,shallow:!0,extend:!0};function S(e){return Array.isArray(e)}function b(e){return void 0!==e}function T(e){return"number"==typeof e&&!Number.isNaN(e)}function C(e){return"object"==typeof e&&null!==e&&!S(e)&&"[object Object]"===Object.prototype.toString.call(e)}function R(e){return"string"==typeof e}function j(e,o="",n){const a=o.split(".");let t=e;for(let e=0;e<a.length;e++){const o=a[e];if("*"===o&&S(t)){const o=a.slice(e+1).join("."),s=[];for(const e of t){const a=j(e,o,n);s.push(a)}return s}if(t=t instanceof Object?t[o]:void 0,void 0===t)break}return b(t)?t:n}function D(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={...A,...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 O(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 D({...{"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 P(e){return function(e){return"boolean"==typeof e}(e)||R(e)||T(e)||!b(e)||S(e)&&e.every(P)||C(e)&&Object.values(e).every(P)}function N(e){return P(e)?e:void 0}function I(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 U(e,o={},n={}){var a;if(!b(e))return;const t=C(e)&&e.consent||n.consent||(null==(a=n.collector)?void 0:a.consent),s=S(o)?o:[o];for(const o of s){const a=await I(x)(e,o,{...n,consent:t});if(b(a))return a}}async function x(e,o,n={}){const{collector:a,consent:t}=n;return(S(o)?o:[o]).reduce(async(o,s)=>{const c=await o;if(c)return c;const i=R(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 I(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=b(y)?y:e;if(p&&(v=await I(p)(e,s,n)),m&&(v=j(e,m,y)),d){const[o,a]=d,t="this"===o?[e]:await U(e,o,n);S(t)&&(v=(await Promise.all(t.map(e=>U(e,a,n)))).filter(b))}else w?v=await Object.entries(w).reduce(async(o,[a,t])=>{const s=await o,c=await U(e,t,n);return b(c)&&(s[a]=c),s},Promise.resolve({})):u&&(v=await Promise.all(u.map(o=>x(e,o,n))));g&&!await I(g)(v)&&(v=void 0);const _=N(v);return b(_)?_:N(y)},Promise.resolve(void 0))}function M(e){return C(e)&&"loop"in e&&S(e.loop)&&2===e.loop.length}async function V(e,o,n,a,t,s){var c,i,l,p;const m=null==t?void 0:t.settings,d=null==(c=null==m?void 0:m._state)?void 0:c.adapter;if(!d)return void(null==s||s.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 U(e,m.userId);o&&R(o)&&(d.setUserId(o),w&&(w.userIdSet=!0))}if(null==m?void 0:m.page){const o=await U(e,m.page.type);if(o&&R(o)){const n={type:o};if(m.page.language){const o=await U(e,m.page.language);o&&R(o)&&(n.language=o)}if(m.page.locale){const o=await U(e,m.page.locale);o&&R(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 U(e,o.category),s=await U(e,o.action);if(!t||!R(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||!R(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 U(e,o.label):void 0,i=o.property?await U(e,o.property):void 0,r=o.value?await U(e,o.value):void 0,l=void 0!==r?Number(r):void 0;n.trackStructEvent({category:t,action:s,...c&&R(c)&&{label:c},...i&&R(i)&&{property:i},...void 0!==l&&T(l)&&!isNaN(l)&&{value:l}})}(e,o.struct,d,s);else if((null==m?void 0:m.pageViewEvent)&&e.name===m.pageViewEvent)d.trackPageView();else if(a){const n=(null==(i=o.snowplow)?void 0:i.actionSchema)||(null==(l=null==m?void 0:m.snowplow)?void 0:l.actionSchema)||r.ACTION,t=await async function(e,o){const n=[];if(!S(o.context))return n;for(const a of o.context)if(C(a)&&a.schema)if(M(a.data)){const[o,t]=a.data.loop,s=await U(e,o);if(S(s))for(const e of s){const o=await U(e,t);C(o)&&n.push({schema:a.schema,data:o})}}else{const o=await U(e,{map:a.data});C(o)&&n.push({schema:a.schema,data:o})}return n}(e,o);let s={};if(C(o.data)&&"map"in o.data){const n=await U(e,o.data);C(n)&&(s=n)}else n===r.ACTION&&(s={type:a});d.trackSelfDescribingEvent({event:{schema:n,data:s},context:t.length>0?t:void 0})}else null==s||s.info("Event skipped: no action name in mapping",{event:e.name,hasContext:!!(null==(p=o.context)?void 0:p.length)})}var L={};s(L,{env:()=>G,step:()=>F});var G={};s(G,{init:()=>H,push:()=>B,simulation:()=>K});var H={window:{snowplow:void 0},document:{createElement:()=>({src:"",async:!1,setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},B={window:{snowplow:Object.assign(()=>{},{q:[]})},document:{createElement:()=>({src:"",async:!1,setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},K=["call:window.snowplow"],F={};s(F,{addToCart:()=>Y,checkoutStep:()=>J,contextLoop:()=>Z,init:()=>q,pageView:()=>$,productView:()=>W,promoView:()=>Q,structuredEvent:()=>X,transaction:()=>z});var q={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}]]},W={in:O("product view",{timestamp:1700000400}),mapping:{name:l.PRODUCT_VIEW,settings:{context:[{schema:r.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"}}]}]]},Y={in:O("product add",{timestamp:1700000401}),mapping:{name:l.ADD_TO_CART,settings:{context:[{schema:r.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:r.CART,data:{total_value:"globals.cart_value",currency:{key:"globals.cart_currency",value:"USD"}}},{schema:r.PAGE,data:{type:"globals.page_type",language:"globals.language"}},{schema:r.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}}]}]]},z={in:O("order complete",{timestamp:1700000402}),mapping:{name:l.TRANSACTION,settings:{context:[{schema:r.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}}]}]]},Q={in:O("promotion visible",{timestamp:1700000403}),mapping:{name:l.PROMO_VIEW,settings:{context:[{schema:r.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"}}]}]]},$={in:O("page view",{timestamp:1700000404}),mapping:void 0,out:[["snowplow.trackPageView"]]},J={in:O("checkout view",{timestamp:1700000405}),mapping:{name:l.CHECKOUT_STEP,settings:{context:[{schema:r.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"}}]}]]},X={in:O("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:O("order complete",{timestamp:1700000407}),mapping:{name:l.TRANSACTION,settings:{context:[{schema:r.TRANSACTION,data:{transaction_id:"data.id",revenue:"data.total",currency:"data.currency"}},{schema:r.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 ee(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 oe(e){const o=ee(e);o&&o("clearUserData")}function ne(e,o){const n=ee(o);n&&(e?n("enableAnonymousTracking",e):n("enableAnonymousTracking"))}function ae(e,o){const n=ee(o);n&&(e?n("disableAnonymousTracking",{stateStorageStrategy:e}):n("disableAnonymousTracking"))}var te={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}),l=i,r={trackPageView(e){l.trackPageView&&l.trackPageView(e)},trackSelfDescribingEvent(e){l.trackSelfDescribingEvent(e)},trackStructEvent(e){l.trackStructEvent&&l.trackStructEvent(e)},setUserId(e){l.setUserId&&l.setUserId(e)},enableActivityTracking(e){l.enableActivityTracking&&l.enableActivityTracking(e)},addPlugin(e){l.addPlugin&&!Array.isArray(e)&&l.addPlugin(e)},addGlobalContexts(e){l.addGlobalContexts&&l.addGlobalContexts(e)},clearUserData(e){l.clearUserData&&l.clearUserData(e)},enableAnonymousTracking(e){l.enableAnonymousTracking&&l.enableAnonymousTracking(e)},disableAnonymousTracking(e){l.disableAnonymousTracking&&l.disableAnonymousTracking(e)},trackConsentAllow(e){l.trackConsentAllow&&l.trackConsentAllow(e)},trackConsentDeny(e){l.trackConsentDeny&&l.trackConsentDeny(e)},trackConsentSelected(e){l.trackConsentSelected&&l.trackConsentSelected(e)},setPageType(e){l.setPageType&&l.setPageType(e)},call(e,...o){}}}else{s&&function(e,o,n="https://cdn.jsdelivr.net/npm/@snowplow/javascript-tracker@latest/dist/sp.js"){if(h.has(e))return;const{document:a}=(0,_.getEnv)(o),t=a.createElement("script");t.src=n,t.async=!0,a.head.appendChild(t),h.add(e)}(c,o,t.scriptUrl);const e=function(e){const{window:o}=(0,_.getEnv)(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 l;if(!r)return!1;if(t.activityTracking&&r.enableActivityTracking(t.activityTracking),t.plugins)for(const e of t.plugins)if(g(e)){const o="function"==typeof e.code&&e.config?e.code(e.config):e.code;r.addPlugin({plugin:o})}else if(u(e)){r.addPlugin([e.url,e.name]);const o=null!=(a=e.enableMethod)?a:v(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 p={...t,_state:{adapter:r}};return{...e,settings:p}},async push(e,{config:o,data:n={},rule:a={},logger:t}){const s=a.settings||{};await V(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=ee(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})}},se=te;//# sourceMappingURL=index.js.map
1
+ "use strict";var e,o=Object.defineProperty,n=Object.getOwnPropertyDescriptor,t=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,s=(e,n)=>{for(var t in n)o(e,t,{get:n[t],enumerable:!0})},c={};s(c,{ACTIONS:()=>l,CONSENT_SCHEMAS:()=>m,DestinationSnowplow:()=>i,MEDIA_ACTIONS:()=>w,MEDIA_SCHEMAS:()=>d,SCHEMAS:()=>r,WEB_SCHEMAS:()=>p,clearUserData:()=>oe,default:()=>se,destinationSnowplow:()=>ae,disableAnonymousTracking:()=>te,enableAnonymousTracking:()=>ne,examples:()=>L}),module.exports=(e=c,((e,s,c,i)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let r of t(s))a.call(e,r)||r===c||o(e,r,{get:()=>s[r],enumerable:!(i=n(s,r))||i.enumerable});return e})(o({},"__esModule",{value:!0}),e));var i={};s(i,{ACTIONS:()=>l,CONSENT_SCHEMAS:()=>m,MEDIA_ACTIONS:()=>w,MEDIA_SCHEMAS:()=>d,SCHEMAS:()=>r,WEB_SCHEMAS:()=>p,deriveEnableMethod:()=>v,isCodeBasedPlugin:()=>g,isMappedGlobalContext:()=>y,isUrlBasedPlugin:()=>u});var r={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"},l={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"},p={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"},m={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"},d={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"},w={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 u(e){return"object"==typeof e&&"url"in e&&"name"in e}function g(e){return"object"==typeof e&&"code"in e&&!("url"in e)}function y(e){return"object"==typeof e&&null!==e&&"__mapped"in e}function v(e){return"enable"+e.replace("Plugin","")}var _=require("@walkeros/web-core"),h=new Set;var f=Object.defineProperty;((e,o)=>{for(var n in o)f(e,n,{get:o[n],enumerable:!0})})({},{Level:()=>A});var k,A=((k=A||{})[k.ERROR=0]="ERROR",k[k.WARN=1]="WARN",k[k.INFO=2]="INFO",k[k.DEBUG=3]="DEBUG",k),E={merge:!0,shallow:!0,extend:!0};function S(e){return Array.isArray(e)}function b(e){return void 0!==e}function T(e){return"number"==typeof e&&!Number.isNaN(e)}function C(e){return"object"==typeof e&&null!==e&&!S(e)&&"[object Object]"===Object.prototype.toString.call(e)}function R(e){return"string"==typeof e}function j(e,o="",n){const t=o.split(".");let a=e;for(let e=0;e<t.length;e++){const o=t[e];if("*"===o&&S(a)){const o=t.slice(e+1).join("."),s=[];for(const e of a){const t=j(e,o,n);s.push(t)}return s}if(a=a instanceof Object?a[o]:void 0,void 0===a)break}return b(a)?a:n}function D(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={...E,...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 O(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 D({...{"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 P(e){return function(e){return"boolean"==typeof e}(e)||R(e)||T(e)||!b(e)||S(e)&&e.every(P)||C(e)&&Object.values(e).every(P)}function N(e){return P(e)?e:void 0}function I(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 U(e,o={},n={}){var t;if(!b(e))return;const a=C(e)&&e.consent||n.consent||(null==(t=n.collector)?void 0:t.consent),s=S(o)?o:[o];for(const o of s){const t=await I(x)(e,o,{...n,consent:a});if(b(t))return t}}async function x(e,o,n={}){const{collector:t,consent:a}=n;return(S(o)?o:[o]).reduce(async(o,s)=>{const c=await o;if(c)return c;const i=R(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 I(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=b(y)?y:e;if(p&&(v=await I(p)(e,s,n)),m&&(v=j(e,m,y)),d){const[o,t]=d,a="this"===o?[e]:await U(e,o,n);S(a)&&(v=(await Promise.all(a.map(e=>U(e,t,n)))).filter(b))}else w?v=await Object.entries(w).reduce(async(o,[t,a])=>{const s=await o,c=await U(e,a,n);return b(c)&&(s[t]=c),s},Promise.resolve({})):u&&(v=await Promise.all(u.map(o=>x(e,o,n))));g&&!await I(g)(v)&&(v=void 0);const _=N(v);return b(_)?_:N(y)},Promise.resolve(void 0))}function M(e){return C(e)&&"loop"in e&&S(e.loop)&&2===e.loop.length}async function V(e,o,n,t,a,s){var c,i,l,p;const m=null==a?void 0:a.settings,d=null==(c=null==m?void 0:m._state)?void 0:c.adapter;if(!d)return void(null==s||s.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 U(e,m.userId);o&&R(o)&&(d.setUserId(o),w&&(w.userIdSet=!0))}if(null==m?void 0:m.page){const o=await U(e,m.page.type);if(o&&R(o)){const n={type:o};if(m.page.language){const o=await U(e,m.page.language);o&&R(o)&&(n.language=o)}if(m.page.locale){const o=await U(e,m.page.locale);o&&R(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 U(e,o.category),s=await U(e,o.action);if(!a||!R(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||!R(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 U(e,o.label):void 0,i=o.property?await U(e,o.property):void 0,r=o.value?await U(e,o.value):void 0,l=void 0!==r?Number(r):void 0;n.trackStructEvent({category:a,action:s,...c&&R(c)&&{label:c},...i&&R(i)&&{property:i},...void 0!==l&&T(l)&&!isNaN(l)&&{value:l}})}(e,o.struct,d,s);else if((null==m?void 0:m.pageViewEvent)&&e.name===m.pageViewEvent)d.trackPageView();else if(t){const n=(null==(i=o.snowplow)?void 0:i.actionSchema)||(null==(l=null==m?void 0:m.snowplow)?void 0:l.actionSchema)||r.ACTION,a=await async function(e,o){const n=[];if(!S(o.context))return n;for(const t of o.context)if(C(t)&&t.schema)if(M(t.data)){const[o,a]=t.data.loop,s=await U(e,o);if(S(s))for(const e of s){const o=await U(e,a);C(o)&&n.push({schema:t.schema,data:o})}}else{const o=await U(e,{map:t.data});C(o)&&n.push({schema:t.schema,data:o})}return n}(e,o);let s={};if(C(o.data)&&"map"in o.data){const n=await U(e,o.data);C(n)&&(s=n)}else n===r.ACTION&&(s={type:t});d.trackSelfDescribingEvent({event:{schema:n,data:s},context:a.length>0?a:void 0})}else null==s||s.info("Event skipped: no action name in mapping",{event:e.name,hasContext:!!(null==(p=o.context)?void 0:p.length)})}var L={};s(L,{env:()=>G,step:()=>F});var G={};s(G,{init:()=>H,push:()=>B,simulation:()=>K});var H={window:{snowplow:void 0},document:{createElement:()=>({src:"",async:!1,setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},B={window:{snowplow:Object.assign(()=>{},{q:[]})},document:{createElement:()=>({src:"",async:!1,setAttribute:()=>{},removeAttribute:()=>{}}),head:{appendChild:()=>{}}}},K=["call:window.snowplow"],F={};s(F,{addToCart:()=>z,checkoutStep:()=>J,contextLoop:()=>Z,init:()=>q,pageView:()=>$,productView:()=>W,promoView:()=>Q,structuredEvent:()=>X,transaction:()=>Y});var q={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}]]},W={title:"Product view",description:"A product view fires a Snowplow ecommerce action with a product context schema and pricing fields.",in:O("product view",{timestamp:1700000400}),mapping:{name:l.PRODUCT_VIEW,settings:{context:[{schema:r.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"}}]}]]},z={title:"Add to cart",description:"A product add fires a Snowplow ecommerce add_to_cart action with product, cart, page, and user contexts.",in:O("product add",{timestamp:1700000401}),mapping:{name:l.ADD_TO_CART,settings:{context:[{schema:r.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:r.CART,data:{total_value:"globals.cart_value",currency:{key:"globals.cart_currency",value:"USD"}}},{schema:r.PAGE,data:{type:"globals.page_type",language:"globals.language"}},{schema:r.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}}]}]]},Y={title:"Transaction",description:"A completed order fires a Snowplow ecommerce transaction action with transaction id, revenue, tax, and shipping.",in:O("order complete",{timestamp:1700000402}),mapping:{name:l.TRANSACTION,settings:{context:[{schema:r.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}}]}]]},Q={title:"Promo view",description:"A promotion visible event fires a Snowplow promo_view action with a promotion context.",in:O("promotion visible",{timestamp:1700000403}),mapping:{name:l.PROMO_VIEW,settings:{context:[{schema:r.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"}}]}]]},$={title:"Page view",description:"A page view calls Snowplow trackPageView directly instead of a self-describing event.",in:O("page view",{timestamp:1700000404}),mapping:void 0,out:[["snowplow.trackPageView"]]},J={title:"Checkout step",description:"A checkout view fires a Snowplow checkout_step action with the current step and option.",in:O("checkout view",{timestamp:1700000405}),mapping:{name:l.CHECKOUT_STEP,settings:{context:[{schema:r.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"}}]}]]},X={title:"Struct event",description:"A custom event is tracked via Snowplow trackStructEvent with category, action, label, property, and value.",in:O("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={title:"Transaction with products",description:"A transaction event adds one Snowplow product context per nested product via a loop mapping.",in:O("order complete",{timestamp:1700000407}),mapping:{name:l.TRANSACTION,settings:{context:[{schema:r.TRANSACTION,data:{transaction_id:"data.id",revenue:"data.total",currency:"data.currency"}},{schema:r.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 ee(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 oe(e){const o=ee(e);o&&o("clearUserData")}function ne(e,o){const n=ee(o);n&&(e?n("enableAnonymousTracking",e):n("enableAnonymousTracking"))}function te(e,o){const n=ee(o);n&&(e?n("disableAnonymousTracking",{stateStorageStrategy:e}):n("disableAnonymousTracking"))}var ae={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}),l=i,r={trackPageView(e){l.trackPageView&&l.trackPageView(e)},trackSelfDescribingEvent(e){l.trackSelfDescribingEvent(e)},trackStructEvent(e){l.trackStructEvent&&l.trackStructEvent(e)},setUserId(e){l.setUserId&&l.setUserId(e)},enableActivityTracking(e){l.enableActivityTracking&&l.enableActivityTracking(e)},addPlugin(e){l.addPlugin&&!Array.isArray(e)&&l.addPlugin(e)},addGlobalContexts(e){l.addGlobalContexts&&l.addGlobalContexts(e)},clearUserData(e){l.clearUserData&&l.clearUserData(e)},enableAnonymousTracking(e){l.enableAnonymousTracking&&l.enableAnonymousTracking(e)},disableAnonymousTracking(e){l.disableAnonymousTracking&&l.disableAnonymousTracking(e)},trackConsentAllow(e){l.trackConsentAllow&&l.trackConsentAllow(e)},trackConsentDeny(e){l.trackConsentDeny&&l.trackConsentDeny(e)},trackConsentSelected(e){l.trackConsentSelected&&l.trackConsentSelected(e)},setPageType(e){l.setPageType&&l.setPageType(e)},call(e,...o){}}}else{s&&function(e,o,n="https://cdn.jsdelivr.net/npm/@snowplow/javascript-tracker@latest/dist/sp.js"){if(h.has(e))return;const{document:t}=(0,_.getEnv)(o),a=t.createElement("script");a.src=n,a.async=!0,t.head.appendChild(a),h.add(e)}(c,o,a.scriptUrl);const e=function(e){const{window:o}=(0,_.getEnv)(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 l;if(!r)return!1;if(a.activityTracking&&r.enableActivityTracking(a.activityTracking),a.plugins)for(const e of a.plugins)if(g(e)){const o="function"==typeof e.code&&e.config?e.code(e.config):e.code;r.addPlugin({plugin:o})}else if(u(e)){r.addPlugin([e.url,e.name]);const o=null!=(t=e.enableMethod)?t:v(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 p={...a,_state:{adapter:r}};return{...e,settings:p}},async push(e,{config:o,data:n={},rule:t={},logger:a}){const s=t.settings||{};await V(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=ee(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})}},se=ae;//# sourceMappingURL=index.js.map