@walkeros/core 0.4.0 → 0.4.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/dev.d.mts +122 -33
- package/dist/dev.d.ts +122 -33
- package/dist/dev.js +1 -1
- package/dist/dev.js.map +1 -1
- package/dist/dev.mjs +1 -1
- package/dist/dev.mjs.map +1 -1
- package/dist/index.d.mts +511 -211
- package/dist/index.d.ts +511 -211
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i={};((e,n)=>{for(var r in n)t(e,r,{get:n[r],enumerable:!0})})(i,{Collector:()=>s,Const:()=>w,Data:()=>a,Destination:()=>c,Elb:()=>u,Flow:()=>l,Handler:()=>p,Hooks:()=>d,Mapping:()=>g,On:()=>f,Request:()=>m,Schema:()=>y,Source:()=>b,WalkerOS:()=>h,anonymizeIP:()=>v,assign:()=>O,castToProperty:()=>X,castValue:()=>_,clone:()=>N,createDestination:()=>L,createEvent:()=>B,debounce:()=>q,filterValues:()=>F,getBrowser:()=>de,getBrowserVersion:()=>ge,getByPath:()=>I,getDeviceType:()=>ye,getEvent:()=>H,getGrantedConsent:()=>K,getHeaders:()=>ae,getId:()=>R,getMappingEvent:()=>Q,getMappingValue:()=>Y,getMarketingParameters:()=>z,getOS:()=>fe,getOSVersion:()=>me,isArguments:()=>j,isArray:()=>S,isBoolean:()=>k,isCommand:()=>E,isDefined:()=>P,isElementOrDocument:()=>A,isFunction:()=>M,isNumber:()=>T,isObject:()=>D,isPropertyType:()=>W,isSameType:()=>$,isString:()=>C,mockEnv:()=>te,onLog:()=>re,parseUserAgent:()=>pe,processEventMapping:()=>ee,requestToData:()=>oe,requestToParameter:()=>ie,setByPath:()=>V,throttle:()=>U,throwError:()=>ce,transformData:()=>se,traverseEnv:()=>ne,trim:()=>ue,tryCatch:()=>G,tryCatchAsync:()=>J,useHooks:()=>le,validateEvent:()=>be,validateProperty:()=>he}),module.exports=(e=i,((e,i,s,a)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let c of r(i))o.call(e,c)||c===s||t(e,c,{get:()=>i[c],enumerable:!(a=n(i,c))||a.enumerable});return e})(t({},"__esModule",{value:!0}),e));var s={},a={},c={},u={},l={},p={},d={},g={},f={},m={},y={},b={},h={},w={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function v(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}var x={merge:!0,shallow:!0,extend:!0};function O(e,t={},n={}){n={...x,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const i=e[r];return n.merge&&Array.isArray(i)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...i]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function j(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function S(e){return Array.isArray(e)}function k(e){return"boolean"==typeof e}function E(e){return"walker"===e}function P(e){return void 0!==e}function A(e){return e===document||e instanceof Element}function M(e){return"function"==typeof e}function T(e){return"number"==typeof e&&!Number.isNaN(e)}function D(e){return"object"==typeof e&&null!==e&&!S(e)&&"[object Object]"===Object.prototype.toString.call(e)}function $(e,t){return typeof e==typeof t}function C(e){return"string"==typeof e}function N(e,t=new WeakMap){if("object"!=typeof e||null===e)return e;if(t.has(e))return t.get(e);const n=Object.prototype.toString.call(e);if("[object Object]"===n){const n={};t.set(e,n);for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=N(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(N(e,t))}),n}if("[object Date]"===n)return new Date(e.getTime());if("[object RegExp]"===n){const t=e;return new RegExp(t.source,t.flags)}return e}function I(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&S(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=I(e,t,n);i.push(r)}return i}if(o=o instanceof Object?o[t]:void 0,!o)break}return P(o)?o:n}function V(e,t,n){if(!D(e))return e;const r=N(e),o=t.split(".");let i=r;for(let e=0;e<o.length;e++){const t=o[e];e===o.length-1?i[t]=n:(t in i&&"object"==typeof i[t]&&null!==i[t]||(i[t]={}),i=i[t])}return r}function _(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function K(e,t={},n={}){const r={...t,...n},o={};let i=void 0===e;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(i=!0))}),!!i&&o}function L(e,t){const n={...e};return n.config=O(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=O(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=O(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function B(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",r=e.count||1,o=O({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:`${t}-${n}-${r}`,trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:n,count:r,version:{source:"0.3.1",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[t,n]=e.name.split(" ")??[];t&&n&&(o.entity=t,o.action=n)}return o}function H(e="entity action",t={}){const n=t.timestamp||(new Date).setHours(0,13,37,0),r={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},o={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return B({...{"cart view":{data:{currency:"EUR",value:2*r.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...r.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:r.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...r,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...o,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",...r,context:{shopping:["complete",0]},nested:[]},{entity:"product",...o,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.elbwalker.com/",search:"?foo=bar",hash:"#hash",id:"/docs/"},globals:{pagegroup:"docs"},trigger:"load"},"product add":{...r,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...r,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...r.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],...t,name:e})}function R(e=6){let t="";for(let n=36;t.length<e;)t+=(Math.random()*n|0).toString(n);return t}function z(e,t={}){const n="clickId",r={},o={utm_campaign:"campaign",utm_content:"content",utm_medium:"medium",utm_source:"source",utm_term:"term",dclid:n,fbclid:n,gclid:n,msclkid:n,ttclid:n,twclid:n,igshid:n,sclid:n};return Object.entries(O(o,t)).forEach(([t,o])=>{const i=e.searchParams.get(t);i&&(o===n&&(o=t,r[n]=t),r[o]=i)}),r}function q(e,t=1e3,n=!1){let r,o=null,i=!1;return(...s)=>new Promise(a=>{const c=n&&!i;o&&clearTimeout(o),o=setTimeout(()=>{o=null,n&&!i||(r=e(...s),a(r))},t),c&&(i=!0,r=e(...s),a(r))})}function U(e,t=1e3){let n=null;return function(...r){if(null===n)return n=setTimeout(()=>{n=null},t),e(...r)}}function W(e){return k(e)||C(e)||T(e)||!P(e)||S(e)&&e.every(W)||D(e)&&Object.values(e).every(W)}function F(e){return k(e)||C(e)||T(e)?e:j(e)?F(Array.from(e)):S(e)?e.map(e=>F(e)).filter(e=>void 0!==e):D(e)?Object.entries(e).reduce((e,[t,n])=>{const r=F(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function X(e){return W(e)?e:void 0}function G(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function J(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}async function Q(e,t){const[n,r]=(e.name||"").split(" ");if(!t||!n||!r)return{};let o,i="",s=n,a=r;const c=t=>{if(t)return(t=S(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[s]||(s="*");const u=t[s];return u&&(u[a]||(a="*"),o=c(u[a])),o||(s="*",a="*",o=c(t[s]?.[a])),o&&(i=`${s} ${a}`),{eventMapping:o,mappingKey:i}}async function Y(e,t={},n={}){if(!P(e))return;const r=D(e)&&e.consent||n.consent||n.collector?.consent,o=S(t)?t:[t];for(const t of o){const o=await J(Z)(e,t,{...n,consent:r});if(P(o))return o}}async function Z(e,t,n={}){const{collector:r,consent:o}=n;return(S(t)?t:[t]).reduce(async(t,i)=>{const s=await t;if(s)return s;const a=C(i)?{key:i}:i;if(!Object.keys(a).length)return;const{condition:c,consent:u,fn:l,key:p,loop:d,map:g,set:f,validate:m,value:y}=a;if(c&&!await J(c)(e,i,r))return;if(u&&!K(u,o))return y;let b=P(y)?y:e;if(l&&(b=await J(l)(e,i,n)),p&&(b=I(e,p,y)),d){const[t,r]=d,o="this"===t?[e]:await Y(e,t,n);S(o)&&(b=(await Promise.all(o.map(e=>Y(e,r,n)))).filter(P))}else g?b=await Object.entries(g).reduce(async(t,[r,o])=>{const i=await t,s=await Y(e,o,n);return P(s)&&(i[r]=s),i},Promise.resolve({})):f&&(b=await Promise.all(f.map(t=>Z(e,t,n))));m&&!await J(m)(b)&&(b=void 0);const h=X(b);return P(h)?h:X(y)},Promise.resolve(void 0))}async function ee(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await Y(e,r,{collector:n});e=V(e,t,o)}));const{eventMapping:r,mappingKey:o}=await Q(e,t.mapping);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await Y(e,r,{collector:n});e=V(e,t,o)}));let i=t.data&&await Y(e,t.data,{collector:n});if(r){if(r.ignore)return{event:e,data:i,mapping:r,mappingKey:o,ignore:!0};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await Y(e,r.data,{collector:n});i=D(i)&&D(t)?O(i,t):t}}return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1}}function te(e,t){const n=(e,r=[])=>new Proxy(e,{get(e,o){const i=e[o],s=[...r,o];return"function"==typeof i?(...e)=>t(s,e,i):i&&"object"==typeof i?n(i,s):i}});return n(e)}function ne(e,t){const n=(e,r=[])=>{if(!e||"object"!=typeof e)return e;const o=Array.isArray(e)?[]:{};for(const[i,s]of Object.entries(e)){const e=[...r,i];Array.isArray(o)?o[Number(i)]=t(s,e):o[i]=t(s,e),s&&"object"==typeof s&&"function"!=typeof s&&(Array.isArray(o)?o[Number(i)]=n(s,e):o[i]=n(s,e))}return o};return n(e)}function re(e,t=!1){t&&console.dir(e,{depth:4})}function oe(e){const t=String(e),n=t.split("?")[1]||t;return G(()=>{const e=new URLSearchParams(n),t={};return e.forEach((e,n)=>{const r=n.split(/[[\]]+/).filter(Boolean);let o=t;r.forEach((t,n)=>{const i=n===r.length-1;if(S(o)){const s=parseInt(t,10);i?o[s]=_(e):(o[s]=o[s]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[s])}else D(o)&&(i?o[t]=_(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function ie(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(S(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):D(o)?Object.entries(o).forEach(([t,n])=>r(`${e}[${t}]`,n)):t.push(`${n(e)}=${n(String(o))}`))}return"object"!=typeof e?n(e):(Object.entries(e).forEach(([e,t])=>r(e,t)),t.join("&"))}function se(e){return void 0===e||$(e,"")?e:JSON.stringify(e)}function ae(e={}){return O({"Content-Type":"application/json; charset=utf-8"},e)}function ce(e){throw new Error(String(e))}function ue(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function le(e,t,n){return function(...r){let o;const i="post"+t,s=n["pre"+t],a=n[i];return o=s?s({fn:e},...r):e(...r),a&&(o=a({fn:e,result:o},...r)),o}}function pe(e){return e?{userAgent:e,browser:de(e),browserVersion:ge(e),os:fe(e),osVersion:me(e),deviceType:ye(e)}:{}}function de(e){const t=[{name:"Edge",substr:"Edg"},{name:"Chrome",substr:"Chrome"},{name:"Safari",substr:"Safari",exclude:"Chrome"},{name:"Firefox",substr:"Firefox"},{name:"IE",substr:"MSIE"},{name:"IE",substr:"Trident"}];for(const n of t)if(e.includes(n.substr)&&(!n.exclude||!e.includes(n.exclude)))return n.name}function ge(e){const t=[/Edg\/([0-9]+)/,/Chrome\/([0-9]+)/,/Version\/([0-9]+).*Safari/,/Firefox\/([0-9]+)/,/MSIE ([0-9]+)/,/rv:([0-9]+).*Trident/];for(const n of t){const t=e.match(n);if(t)return t[1]}}function fe(e){const t=[{name:"Windows",substr:"Windows NT"},{name:"macOS",substr:"Mac OS X"},{name:"Android",substr:"Android"},{name:"iOS",substr:"iPhone OS"},{name:"Linux",substr:"Linux"}];for(const n of t)if(e.includes(n.substr))return n.name}function me(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function ye(e){let t="Desktop";return/Tablet|iPad/i.test(e)?t="Tablet":/Mobi|Android|iPhone|iPod|BlackBerry|Opera Mini|IEMobile|WPDesktop/i.test(e)&&(t="Mobile"),t}function be(e,t=[]){let n,r,o;$(e,{})||ce("Invalid object"),$(e.name,"")?(n=e.name,[r,o]=n.split(" "),r&&o||ce("Invalid event name")):$(e.entity,"")&&$(e.action,"")?(r=e.entity,o=e.action,n=`${r} ${o}`):ce("Missing or invalid name, entity, or action");const i={name:n,data:{},context:{},custom:{},globals:{},user:{},nested:[],consent:{},id:"",trigger:"",entity:r,action:o,timestamp:0,timing:0,group:"",count:0,version:{source:"",tagging:0},source:{type:"",id:"",previous_id:""}};return[{"*":{"*":{name:{maxLength:255},user:{allowedKeys:["id","device","session"]},consent:{allowedValues:[!0,!1]},timestamp:{min:0},timing:{min:0},count:{min:0},version:{allowedKeys:["source","tagging"]},source:{allowedKeys:["type","id","previous_id"]}}}}].concat(t).reduce((e,t)=>["*",r].reduce((e,n)=>["*",o].reduce((e,r)=>{const o=t[n]?.[r];return o?e.concat([o]):e},e),e),[]).reduce((t,n)=>{const r=Object.keys(n).filter(e=>{const t=n[e];return!0===t?.required});return[...Object.keys(e),...r].reduce((t,r)=>{const o=n[r];let i=e[r];return o&&(i=G(he,e=>{ce(String(e))})(t,r,i,o)),$(i,t[r])&&(t[r]=i),t},t)},i)}function he(e,t,n,r){if(r.validate&&(n=G(r.validate,e=>{ce(String(e))})(n,t,e)),r.required&&void 0===n&&ce("Missing required property"),$(n,""))r.maxLength&&n.length>r.maxLength&&(r.strict&&ce("Value exceeds maxLength"),n=n.substring(0,r.maxLength));else if($(n,1))$(r.min,1)&&n<r.min?(r.strict&&ce("Value below min"),n=r.min):$(r.max,1)&&n>r.max&&(r.strict&&ce("Value exceeds max"),n=r.max);else if($(n,{})){if(r.schema){const e=r.schema;Object.keys(e).reduce((t,n)=>{const r=e[n];let o=t[n];return r&&(r.type&&typeof o!==r.type&&ce(`Type doesn't match (${n})`),o=G(he,e=>{ce(String(e))})(t,n,o,r)),o},n)}for(const e of Object.keys(n))r.allowedKeys&&!r.allowedKeys.includes(e)&&(r.strict&&ce("Key not allowed"),delete n[e])}return n}//# sourceMappingURL=index.js.map
|
|
1
|
+
"use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i=(e,n)=>{for(var r in n)t(e,r,{get:n[r],enumerable:!0})},s={};i(s,{Collector:()=>c,Const:()=>j,Data:()=>a,Destination:()=>u,Elb:()=>l,Flow:()=>f,Hooks:()=>p,Level:()=>g,Logger:()=>d,Mapping:()=>m,On:()=>y,Request:()=>b,Schema:()=>h,Source:()=>v,WalkerOS:()=>w,anonymizeIP:()=>O,assign:()=>D,castToProperty:()=>ae,castValue:()=>q,clone:()=>U,createDestination:()=>G,createEvent:()=>J,createLogger:()=>oe,createMockLogger:()=>be,debounce:()=>Z,filterValues:()=>ce,getBrowser:()=>Se,getBrowserVersion:()=>$e,getByPath:()=>z,getDeviceType:()=>Me,getEvent:()=>X,getFlowConfig:()=>P,getGrantedConsent:()=>W,getHeaders:()=>je,getId:()=>Q,getMappingEvent:()=>fe,getMappingValue:()=>pe,getMarketingParameters:()=>Y,getOS:()=>Pe,getOSVersion:()=>Ae,getPlatform:()=>A,isArguments:()=>N,isArray:()=>T,isBoolean:()=>C,isCommand:()=>I,isDefined:()=>V,isElementOrDocument:()=>L,isFunction:()=>R,isNumber:()=>F,isObject:()=>_,isPropertyType:()=>se,isSameType:()=>B,isString:()=>K,mockEnv:()=>me,parseUserAgent:()=>ke,processEventMapping:()=>ge,requestToData:()=>he,requestToParameter:()=>ve,setByPath:()=>H,throttle:()=>ee,throwError:()=>Oe,transformData:()=>we,traverseEnv:()=>ye,trim:()=>xe,tryCatch:()=>ue,tryCatchAsync:()=>le,useHooks:()=>Ee,validateEvent:()=>De,validateProperty:()=>Ne,wrapCondition:()=>Ce,wrapFn:()=>Ie,wrapValidate:()=>Ve}),module.exports=(e=s,((e,i,s,c)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let a of r(i))o.call(e,a)||a===s||t(e,a,{get:()=>i[a],enumerable:!(c=n(i,a))||c.enumerable});return e})(t({},"__esModule",{value:!0}),e));var c={},a={},u={},l={},f={},p={},d={};i(d,{Level:()=>g});var g=(e=>(e[e.ERROR=0]="ERROR",e[e.INFO=1]="INFO",e[e.DEBUG=2]="DEBUG",e))(g||{}),m={},y={},b={},h={},v={},w={},j={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function O(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function x(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function E(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function k(e,t){if("string"==typeof e)return e.replace(/\$\{([^}:]+)(?::([^}]*))?\}/g,(e,n,r)=>{if("undefined"!=typeof process&&void 0!==process.env?.[n])return process.env[n];if(void 0!==t[n])return String(t[n]);if(void 0!==r)return r;throw new Error(`Variable "${n}" not found and no default provided`)});if(Array.isArray(e))return e.map(e=>k(e,t));if(null!==e&&"object"==typeof e){const n={};for(const[r,o]of Object.entries(e))n[r]=k(o,t);return n}return e}function S(e,t,n){if(t)return t;if(!e||!n)return;const r=n[e];return r?.imports?.[0]?r.imports[0]:void 0}function $(e,t){if(null!==e&&"object"==typeof e){if("$ref"in e&&"string"==typeof e.$ref){const n=e.$ref,r=n.match(/^#\/definitions\/(.+)$/);if(r){const e=r[1];if(void 0===t[e])throw new Error(`Definition "${e}" not found`);return $(t[e],t)}throw new Error(`Invalid $ref format: ${n}`)}if(Array.isArray(e))return e.map(e=>$(e,t));const n={};for(const[r,o]of Object.entries(e))n[r]=$(o,t);return n}return e}function P(e,t){const n=Object.keys(e.flows);if(!t){if(1!==n.length)throw new Error(`Multiple flows found (${n.join(", ")}). Please specify a flow.`);t=n[0]}const r=e.flows[t];if(!r)throw new Error(`Flow "${t}" not found. Available: ${n.join(", ")}`);const o=JSON.parse(JSON.stringify(r));if(o.sources)for(const[t,n]of Object.entries(o.sources)){const i=x(e.variables,r.variables,n.variables),s=E(e.definitions,r.definitions,n.definitions);let c=$(n.config,s);c=k(c,i);const a=S(n.package,n.code,o.packages);o.sources[t]={...n,config:c,...a&&{code:a}}}if(o.destinations)for(const[t,n]of Object.entries(o.destinations)){const i=x(e.variables,r.variables,n.variables),s=E(e.definitions,r.definitions,n.definitions);let c=$(n.config,s);c=k(c,i);const a=S(n.package,n.code,o.packages);o.destinations[t]={...n,config:c,...a&&{code:a}}}if(o.collector){const t=x(e.variables,r.variables),n=E(e.definitions,r.definitions);let i=$(o.collector,n);i=k(i,t),o.collector=i}return o}function A(e){if(void 0!==e.web)return"web";if(void 0!==e.server)return"server";throw new Error("Config must have web or server key")}var M={merge:!0,shallow:!0,extend:!0};function D(e,t={},n={}){n={...M,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const i=e[r];return n.merge&&Array.isArray(i)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...i]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function N(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function T(e){return Array.isArray(e)}function C(e){return"boolean"==typeof e}function I(e){return"walker"===e}function V(e){return void 0!==e}function L(e){return e===document||e instanceof Element}function R(e){return"function"==typeof e}function F(e){return"number"==typeof e&&!Number.isNaN(e)}function _(e){return"object"==typeof e&&null!==e&&!T(e)&&"[object Object]"===Object.prototype.toString.call(e)}function B(e,t){return typeof e==typeof t}function K(e){return"string"==typeof e}function U(e,t=new WeakMap){if("object"!=typeof e||null===e)return e;if(t.has(e))return t.get(e);const n=Object.prototype.toString.call(e);if("[object Object]"===n){const n={};t.set(e,n);for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=U(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(U(e,t))}),n}if("[object Date]"===n)return new Date(e.getTime());if("[object RegExp]"===n){const t=e;return new RegExp(t.source,t.flags)}return e}function z(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&T(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=z(e,t,n);i.push(r)}return i}if(o=o instanceof Object?o[t]:void 0,!o)break}return V(o)?o:n}function H(e,t,n){if(!_(e))return e;const r=U(e),o=t.split(".");let i=r;for(let e=0;e<o.length;e++){const t=o[e];e===o.length-1?i[t]=n:(t in i&&"object"==typeof i[t]&&null!==i[t]||(i[t]={}),i=i[t])}return r}function q(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function W(e,t={},n={}){const r={...t,...n},o={};let i=void 0===e;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(i=!0))}),!!i&&o}function G(e,t){const n={...e};return n.config=D(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=D(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=D(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function J(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",r=e.count||1,o=D({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:`${t}-${n}-${r}`,trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:n,count:r,version:{source:"0.4.2",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[t,n]=e.name.split(" ")??[];t&&n&&(o.entity=t,o.action=n)}return o}function X(e="entity action",t={}){const n=t.timestamp||(new Date).setHours(0,13,37,0),r={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},o={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return J({...{"cart view":{data:{currency:"EUR",value:2*r.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...r.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:r.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...r,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...o,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",...r,context:{shopping:["complete",0]},nested:[]},{entity:"product",...o,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.elbwalker.com/",search:"?foo=bar",hash:"#hash",id:"/docs/"},globals:{pagegroup:"docs"},trigger:"load"},"product add":{...r,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...r,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...r.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],...t,name:e})}function Q(e=6){let t="";for(let n=36;t.length<e;)t+=(Math.random()*n|0).toString(n);return t}function Y(e,t={}){const n="clickId",r={},o={utm_campaign:"campaign",utm_content:"content",utm_medium:"medium",utm_source:"source",utm_term:"term",dclid:n,fbclid:n,gclid:n,msclkid:n,ttclid:n,twclid:n,igshid:n,sclid:n};return Object.entries(D(o,t)).forEach(([t,o])=>{const i=e.searchParams.get(t);i&&(o===n&&(o=t,r[n]=t),r[o]=i)}),r}function Z(e,t=1e3,n=!1){let r,o=null,i=!1;return(...s)=>new Promise(c=>{const a=n&&!i;o&&clearTimeout(o),o=setTimeout(()=>{o=null,n&&!i||(r=e(...s),c(r))},t),a&&(i=!0,r=e(...s),c(r))})}function ee(e,t=1e3){let n=null;return function(...r){if(null===n)return n=setTimeout(()=>{n=null},t),e(...r)}}function te(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function ne(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=te(e)):n=e,void 0!==t&&(t instanceof Error?r.error=te(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=te(r.error))):r.value=t),{message:n,context:r}}var re=(e,t,n,r)=>{const o=`${g[e]}${r.length>0?` [${r.join(":")}]`:""}`,i=Object.keys(n).length>0;0===e?i?console.error(o,t,n):console.error(o,t):i?console.log(o,t,n):console.log(o,t)};function oe(e={}){return ie({level:void 0!==e.level?function(e){return"string"==typeof e?g[e]:e}(e.level):0,handler:e.handler,scope:[]})}function ie(e){const{level:t,handler:n,scope:r}=e,o=(e,o,i)=>{if(e<=t){const t=ne(o,i);n?n(e,t.message,t.context,r,re):re(e,t.message,t.context,r)}};return{error:(e,t)=>o(0,e,t),info:(e,t)=>o(1,e,t),debug:(e,t)=>o(2,e,t),throw:(e,t)=>{const o=ne(e,t);throw n?n(0,o.message,o.context,r,re):re(0,o.message,o.context,r),new Error(o.message)},scope:e=>ie({level:t,handler:n,scope:[...r,e]})}}function se(e){return C(e)||K(e)||F(e)||!V(e)||T(e)&&e.every(se)||_(e)&&Object.values(e).every(se)}function ce(e){return C(e)||K(e)||F(e)?e:N(e)?ce(Array.from(e)):T(e)?e.map(e=>ce(e)).filter(e=>void 0!==e):_(e)?Object.entries(e).reduce((e,[t,n])=>{const r=ce(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function ae(e){return se(e)?e:void 0}function ue(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function le(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}async function fe(e,t){const[n,r]=(e.name||"").split(" ");if(!t||!n||!r)return{};let o,i="",s=n,c=r;const a=t=>{if(t)return(t=T(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[s]||(s="*");const u=t[s];return u&&(u[c]||(c="*"),o=a(u[c])),o||(s="*",c="*",o=a(t[s]?.[c])),o&&(i=`${s} ${c}`),{eventMapping:o,mappingKey:i}}async function pe(e,t={},n={}){if(!V(e))return;const r=_(e)&&e.consent||n.consent||n.collector?.consent,o=T(t)?t:[t];for(const t of o){const o=await le(de)(e,t,{...n,consent:r});if(V(o))return o}}async function de(e,t,n={}){const{collector:r,consent:o}=n;return(T(t)?t:[t]).reduce(async(t,i)=>{const s=await t;if(s)return s;const c=K(i)?{key:i}:i;if(!Object.keys(c).length)return;const{condition:a,consent:u,fn:l,key:f,loop:p,map:d,set:g,validate:m,value:y}=c;if(a&&!await le(a)(e,i,r))return;if(u&&!W(u,o))return y;let b=V(y)?y:e;if(l&&(b=await le(l)(e,i,n)),f&&(b=z(e,f,y)),p){const[t,r]=p,o="this"===t?[e]:await pe(e,t,n);T(o)&&(b=(await Promise.all(o.map(e=>pe(e,r,n)))).filter(V))}else d?b=await Object.entries(d).reduce(async(t,[r,o])=>{const i=await t,s=await pe(e,o,n);return V(s)&&(i[r]=s),i},Promise.resolve({})):g&&(b=await Promise.all(g.map(t=>de(e,t,n))));m&&!await le(m)(b)&&(b=void 0);const h=ae(b);return V(h)?h:ae(y)},Promise.resolve(void 0))}async function ge(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await pe(e,r,{collector:n});e=H(e,t,o)}));const{eventMapping:r,mappingKey:o}=await fe(e,t.mapping);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await pe(e,r,{collector:n});e=H(e,t,o)}));let i=t.data&&await pe(e,t.data,{collector:n});if(r){if(r.ignore)return{event:e,data:i,mapping:r,mappingKey:o,ignore:!0};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await pe(e,r.data,{collector:n});i=_(i)&&_(t)?D(i,t):t}}return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1}}function me(e,t){const n=(e,r=[])=>new Proxy(e,{get(e,o){const i=e[o],s=[...r,o];return"function"==typeof i?(...e)=>t(s,e,i):i&&"object"==typeof i?n(i,s):i}});return n(e)}function ye(e,t){const n=(e,r=[])=>{if(!e||"object"!=typeof e)return e;const o=Array.isArray(e)?[]:{};for(const[i,s]of Object.entries(e)){const e=[...r,i];Array.isArray(o)?o[Number(i)]=t(s,e):o[i]=t(s,e),s&&"object"==typeof s&&"function"!=typeof s&&(Array.isArray(o)?o[Number(i)]=n(s,e):o[i]=n(s,e))}return o};return n(e)}function be(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=be();return e.push(n),n});return{error:jest.fn(),info:jest.fn(),debug:jest.fn(),throw:t,scope:n,scopedLoggers:e}}function he(e){const t=String(e),n=t.split("?")[1]||t;return ue(()=>{const e=new URLSearchParams(n),t={};return e.forEach((e,n)=>{const r=n.split(/[[\]]+/).filter(Boolean);let o=t;r.forEach((t,n)=>{const i=n===r.length-1;if(T(o)){const s=parseInt(t,10);i?o[s]=q(e):(o[s]=o[s]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[s])}else _(o)&&(i?o[t]=q(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function ve(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(T(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):_(o)?Object.entries(o).forEach(([t,n])=>r(`${e}[${t}]`,n)):t.push(`${n(e)}=${n(String(o))}`))}return"object"!=typeof e?n(e):(Object.entries(e).forEach(([e,t])=>r(e,t)),t.join("&"))}function we(e){return void 0===e||B(e,"")?e:JSON.stringify(e)}function je(e={}){return D({"Content-Type":"application/json; charset=utf-8"},e)}function Oe(e){throw new Error(String(e))}function xe(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function Ee(e,t,n){return function(...r){let o;const i="post"+t,s=n["pre"+t],c=n[i];return o=s?s({fn:e},...r):e(...r),c&&(o=c({fn:e,result:o},...r)),o}}function ke(e){return e?{userAgent:e,browser:Se(e),browserVersion:$e(e),os:Pe(e),osVersion:Ae(e),deviceType:Me(e)}:{}}function Se(e){const t=[{name:"Edge",substr:"Edg"},{name:"Chrome",substr:"Chrome"},{name:"Safari",substr:"Safari",exclude:"Chrome"},{name:"Firefox",substr:"Firefox"},{name:"IE",substr:"MSIE"},{name:"IE",substr:"Trident"}];for(const n of t)if(e.includes(n.substr)&&(!n.exclude||!e.includes(n.exclude)))return n.name}function $e(e){const t=[/Edg\/([0-9]+)/,/Chrome\/([0-9]+)/,/Version\/([0-9]+).*Safari/,/Firefox\/([0-9]+)/,/MSIE ([0-9]+)/,/rv:([0-9]+).*Trident/];for(const n of t){const t=e.match(n);if(t)return t[1]}}function Pe(e){const t=[{name:"Windows",substr:"Windows NT"},{name:"macOS",substr:"Mac OS X"},{name:"Android",substr:"Android"},{name:"iOS",substr:"iPhone OS"},{name:"Linux",substr:"Linux"}];for(const n of t)if(e.includes(n.substr))return n.name}function Ae(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function Me(e){let t="Desktop";return/Tablet|iPad/i.test(e)?t="Tablet":/Mobi|Android|iPhone|iPod|BlackBerry|Opera Mini|IEMobile|WPDesktop/i.test(e)&&(t="Mobile"),t}function De(e,t=[]){let n,r,o;B(e,{})||Oe("Invalid object"),B(e.name,"")?(n=e.name,[r,o]=n.split(" "),r&&o||Oe("Invalid event name")):B(e.entity,"")&&B(e.action,"")?(r=e.entity,o=e.action,n=`${r} ${o}`):Oe("Missing or invalid name, entity, or action");const i={name:n,data:{},context:{},custom:{},globals:{},user:{},nested:[],consent:{},id:"",trigger:"",entity:r,action:o,timestamp:0,timing:0,group:"",count:0,version:{source:"",tagging:0},source:{type:"",id:"",previous_id:""}};return[{"*":{"*":{name:{maxLength:255},user:{allowedKeys:["id","device","session"]},consent:{allowedValues:[!0,!1]},timestamp:{min:0},timing:{min:0},count:{min:0},version:{allowedKeys:["source","tagging"]},source:{allowedKeys:["type","id","previous_id"]}}}}].concat(t).reduce((e,t)=>["*",r].reduce((e,n)=>["*",o].reduce((e,r)=>{const o=t[n]?.[r];return o?e.concat([o]):e},e),e),[]).reduce((t,n)=>{const r=Object.keys(n).filter(e=>{const t=n[e];return!0===t?.required});return[...Object.keys(e),...r].reduce((t,r)=>{const o=n[r];let i=e[r];return o&&(i=ue(Ne,e=>{Oe(String(e))})(t,r,i,o)),B(i,t[r])&&(t[r]=i),t},t)},i)}function Ne(e,t,n,r){if(r.validate&&(n=ue(r.validate,e=>{Oe(String(e))})(n,t,e)),r.required&&void 0===n&&Oe("Missing required property"),B(n,""))r.maxLength&&n.length>r.maxLength&&(r.strict&&Oe("Value exceeds maxLength"),n=n.substring(0,r.maxLength));else if(B(n,1))B(r.min,1)&&n<r.min?(r.strict&&Oe("Value below min"),n=r.min):B(r.max,1)&&n>r.max&&(r.strict&&Oe("Value exceeds max"),n=r.max);else if(B(n,{})){if(r.schema){const e=r.schema;Object.keys(e).reduce((t,n)=>{const r=e[n];let o=t[n];return r&&(r.type&&typeof o!==r.type&&Oe(`Type doesn't match (${n})`),o=ue(Ne,e=>{Oe(String(e))})(t,n,o,r)),o},n)}for(const e of Object.keys(n))r.allowedKeys&&!r.allowedKeys.includes(e)&&(r.strict&&Oe("Key not allowed"),delete n[e])}return n}function Te(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function Ce(e){const t=Te(e);return new Function("value","mapping","collector",t)}function Ie(e){const t=Te(e);return new Function("value","mapping","options",t)}function Ve(e){const t=Te(e);return new Function("value",t)}//# sourceMappingURL=index.js.map
|