UNPKG

@walkeros/web-source-datalayer

Version:

DataLayer source for walkerOS

1 lines 6.66 kB
"use strict";var Destination=(()=>{var e,t,r=Object.defineProperty,n=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,o=(e,t)=>{for(var n in t)r(e,n,{get:t[n],enumerable:!0})},s={};o(s,{Events:()=>w,Mapping:()=>A,SourceDataLayer:()=>v,consentOnlyMapping:()=>M,consentUpdateEvent:()=>b,dataLayerExamples:()=>q,default:()=>R,sourceDataLayer:()=>N});var c=Object.getOwnPropertyNames,u=(e={"package.json"(e,t){t.exports={name:"@walkeros/core",description:"Core types and platform-agnostic utilities for walkerOS",version:"0.0.8",main:"./dist/index.js",module:"./dist/index.mjs",types:"./dist/index.d.ts",license:"MIT",files:["dist/**"],scripts:{build:"tsup --silent",clean:"rm -rf .turbo && rm -rf node_modules && rm -rf dist",dev:"jest --watchAll --colors",lint:'tsc && eslint "**/*.ts*"',test:"jest",update:"npx npm-check-updates -u && npm update"},dependencies:{},devDependencies:{},repository:{url:"git+https://github.com/elbwalker/walkerOS.git",directory:"packages/core"},author:"elbwalker <hello@elbwalker.com>",homepage:"https://github.com/elbwalker/walkerOS#readme",bugs:{url:"https://github.com/elbwalker/walkerOS/issues"},keywords:["walker","walkerOS","analytics","tracking","data collection","measurement","data privacy","privacy friendly","web analytics","product analytics","core","types","utils"],funding:[{type:"GitHub Sponsors",url:"https://github.com/sponsors/elbwalker"}]}}},function(){return t||(0,e[c(e)[0]])((t={exports:{}}).exports,t),t.exports});function d(e){return Array.isArray(e)}function l(e){return"object"==typeof e&&null!==e&&!d(e)&&"[object Object]"===Object.prototype.toString.call(e)}function m(e){return"string"==typeof e}var{version:p}=u();function y(e,t,r){return function(...n){try{return e(...n)}catch(e){if(!t)return;return t(e)}finally{null==r||r()}}}var f=!1;function g(e,t={},r){if(t.filter){if(!0===y(()=>t.filter(r),()=>!1)())return}const n=function(e){if(l(e)&&m(e.event))return e;if(d(e)&&e.length>=2)return _(e);if(t=e,null!=t&&"object"==typeof t&&"length"in t&&"number"==typeof t.length&&t.length>0){return _(Array.from(e))}var t;return null}(r);if(!n)return;const a={event:`${t.prefix||"dataLayer"} ${n.event}`,data:n,context:{},globals:{},custom:{},consent:{},nested:[],user:{},id:Math.random().toString(36).substring(2,15),trigger:"",entity:"",action:"",timestamp:Date.now(),timing:0,group:"",count:0,version:{source:"1.0.0",tagging:2},source:{type:"dataLayer",id:"",previous_id:""}};y(()=>e.push(a),()=>{})()}function _(e){const[t,r,n]=e;if(!m(t))return null;let a,i={};switch(t){case"consent":if(!m(r)||e.length<3)return null;if(!l(n)||null===n)return null;a=`${t} ${r}`,i={...n};break;case"event":if(!m(r))return null;a=r,l(n)&&(i={...n});break;case"config":if(!m(r))return null;a=`${t} ${r}`,l(n)&&(i={...n});break;case"set":if(m(r))a=`${t} ${r}`,l(n)&&(i={...n});else{if(!l(r))return null;a=`${t} custom`,i={...r}}break;default:return null}return{event:a,...i}}var v={},w={};function b(){return["consent","update",{ad_user_data:"granted",ad_personalization:"granted",ad_storage:"denied",analytics_storage:"granted"}]}function h(){return["consent","default",{ad_storage:"denied",analytics_storage:"denied",ad_user_data:"denied",ad_personalization:"denied"}]}function k(){return["event","purchase",{transaction_id:"T_12345",value:25.42,currency:"EUR",items:[{item_id:"SKU_12345",item_name:"Product Name",item_category:"Category",quantity:1,price:25.42}]}]}function X(){return["event","add_to_cart",{currency:"EUR",value:15.25,items:[{item_id:"SKU_12345",item_name:"Product Name",item_variant:"red",quantity:1,price:15.25}]}]}function O(){return["event","view_item",{currency:"EUR",value:15.25,items:[{item_id:"SKU_12345",item_name:"Product Name",item_category:"Category",price:15.25}]}]}function L(){return["config","G-XXXXXXXXXX",{page_title:"Custom Page Title",page_location:"https://example.com/page",send_page_view:!1}]}function j(){return["set",{currency:"EUR",country:"DE"}]}function x(){return{event:"custom_event",custom_parameter:"custom_value",user_id:"user123"}}o(w,{add_to_cart:()=>X,config:()=>L,consentDefault:()=>h,consentUpdate:()=>b,directDataLayerEvent:()=>x,purchase:()=>k,setCustom:()=>j,view_item:()=>O});var A={};o(A,{add_to_cart:()=>E,config:()=>q,configGA4:()=>D,consentOnlyMapping:()=>M,consentUpdate:()=>S,customEvent:()=>$,purchase:()=>P,view_item:()=>U});var S={name:"walker consent",settings:{command:{map:{functional:{value:!0},analytics:{key:"analytics_storage",fn:e=>"granted"===e},marketing:{key:"ad_storage",fn:e=>"granted"===e}}}}},P={name:"order complete",data:{map:{id:"transaction_id",total:"value",currency:"currency",nested:{loop:["items",{map:{type:{value:"product"},data:{map:{id:"item_id",name:"item_name",category:"item_category",quantity:"quantity",price:"price"}}}}]}}}},E={name:"product add",data:{map:{id:"items.0.item_id",name:"items.0.item_name",price:"value",currency:"currency",color:"items.0.item_variant",quantity:"items.0.quantity"}}},U={name:"product view",data:{map:{id:"items.0.item_id",name:"items.0.item_name",category:"items.0.item_category",price:"items.0.price",currency:"currency"}}},D={name:"page view",data:{map:{title:"page_title",url:"page_location"}}},$={data:{map:{user_id:"user_id",custom_parameter:"custom_parameter"}}},q={consent:{update:S},purchase:P,add_to_cart:E,view_item:U,"config G-XXXXXXXXXX":D,custom_event:$,"*":{data:{}}},M={consent:{update:S}},C=(e,t)=>{const{settings:r}=t,n={type:"dataLayer",config:t,collector:e,destroy(){const e=r.name||"dataLayer";window[e]&&Array.isArray(window[e])}};!function(e,t){const r=t.settings,n=(null==r?void 0:r.name)||"dataLayer",a=window[n];if(Array.isArray(a)&&!f){f=!0;try{for(const t of a)g(e,r,t)}finally{f=!1}}}(e,t),function(e,t){const r=t.settings,n=(null==r?void 0:r.name)||"dataLayer";window[n]||(window[n]=[]);const a=window[n];if(!Array.isArray(a))return;const i=a.push.bind(a);a.push=function(...t){if(f)return i(...t);f=!0;try{for(const n of t)g(e,r,n)}finally{f=!1}return i(...t)}}(e,t);return{source:n,elb:(...e)=>{const t=r.name||"dataLayer",n=window[t];return Array.isArray(n)?Promise.resolve(n.push(...e)):Promise.resolve(0)}}};function N(e={}){const t=(t,r)=>{const n={...r,settings:{name:"dataLayer",prefix:"dataLayer",...e,...r.settings}};return C(t,n)};return t.init=(e,t)=>C(e,{type:"dataLayer",settings:t.settings}),t.settings={name:"dataLayer",prefix:"dataLayer",...e},t.type="dataLayer",t}var G,R=N;return G=s,((e,t,o,s)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let c of a(t))i.call(e,c)||c===o||r(e,c,{get:()=>t[c],enumerable:!(s=n(t,c))||s.enumerable});return e})(r({},"__esModule",{value:!0}),G)})();