@walkeros/core 0.7.0 → 0.8.0

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,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:()=>x,Context:()=>a,Data:()=>u,Destination:()=>l,Elb:()=>f,Flow:()=>p,Hooks:()=>d,Level:()=>m,Logger:()=>g,Mapping:()=>y,On:()=>b,Request:()=>v,Schema:()=>w,Source:()=>j,Transformer:()=>h,WalkerOS:()=>O,anonymizeIP:()=>E,assign:()=>D,castToProperty:()=>fe,castValue:()=>J,clone:()=>q,createDestination:()=>Q,createEvent:()=>Y,createLogger:()=>ce,createMockLogger:()=>we,debounce:()=>ne,filterValues:()=>le,getBrowser:()=>Pe,getBrowserVersion:()=>Me,getByPath:()=>W,getDeviceType:()=>Ne,getEvent:()=>Z,getFlowConfig:()=>T,getGrantedConsent:()=>X,getHeaders:()=>Ee,getId:()=>ee,getMappingEvent:()=>ge,getMappingValue:()=>me,getMarketingParameters:()=>te,getOS:()=>Te,getOSVersion:()=>Ce,getPlatform:()=>C,isArguments:()=>I,isArray:()=>V,isBoolean:()=>_,isCommand:()=>L,isDefined:()=>R,isElementOrDocument:()=>F,isFunction:()=>B,isNumber:()=>K,isObject:()=>U,isPropertyType:()=>ue,isSameType:()=>z,isString:()=>H,mockEnv:()=>he,packageNameToVariable:()=>A,parseUserAgent:()=>Ae,processEventMapping:()=>be,requestToData:()=>je,requestToParameter:()=>Oe,setByPath:()=>G,throttle:()=>re,throwError:()=>ke,transformData:()=>xe,traverseEnv:()=>ve,trim:()=>Se,tryCatch:()=>pe,tryCatchAsync:()=>de,useHooks:()=>$e,validateEvent:()=>De,validateProperty:()=>Ie,wrapCondition:()=>_e,wrapFn:()=>Le,wrapValidate:()=>Re}),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={},g={};i(g,{Level:()=>m});var m=(e=>(e[e.ERROR=0]="ERROR",e[e.INFO=1]="INFO",e[e.DEBUG=2]="DEBUG",e))(m||{}),y={},b={},h={},v={},w={},j={},O={},x={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function E(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function k(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function S(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function $(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=>$(e,t));if(null!==e&&"object"==typeof e){const n={};for(const[r,o]of Object.entries(e))n[r]=$(o,t);return n}return e}function A(e){const t=e.startsWith("@"),n=e.replace("@","").replace(/[/-]/g,"_").split("_").filter(e=>e.length>0).map((e,t)=>0===t?e:e.charAt(0).toUpperCase()+e.slice(1)).join("");return t?"_"+n:n}function P(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?A(e):void 0}function M(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 M(t[e],t)}throw new Error(`Invalid $ref format: ${n}`)}if(Array.isArray(e))return e.map(e=>M(e,t));const n={};for(const[r,o]of Object.entries(e))n[r]=M(o,t);return n}return e}function T(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=k(e.variables,r.variables,n.variables),s=S(e.definitions,r.definitions,n.definitions);let c=M(n.config,s);c=$(c,i);const a=P(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=k(e.variables,r.variables,n.variables),s=S(e.definitions,r.definitions,n.definitions);let c=M(n.config,s);c=$(c,i);const a=P(n.package,n.code,o.packages);o.destinations[t]={...n,config:c,...a&&{code:a}}}if(o.collector){const t=k(e.variables,r.variables),n=S(e.definitions,r.definitions);let i=M(o.collector,n);i=$(i,t),o.collector=i}return o}function C(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 N={merge:!0,shallow:!0,extend:!0};function D(e,t={},n={}){n={...N,...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 I(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function V(e){return Array.isArray(e)}function _(e){return"boolean"==typeof e}function L(e){return"walker"===e}function R(e){return void 0!==e}function F(e){return e===document||e instanceof Element}function B(e){return"function"==typeof e}function K(e){return"number"==typeof e&&!Number.isNaN(e)}function U(e){return"object"==typeof e&&null!==e&&!V(e)&&"[object Object]"===Object.prototype.toString.call(e)}function z(e,t){return typeof e==typeof t}function H(e){return"string"==typeof e}function q(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]=q(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(q(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 W(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&V(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=W(e,t,n);i.push(r)}return i}if(o=o instanceof Object?o[t]:void 0,!o)break}return R(o)?o:n}function G(e,t,n){if(!U(e))return e;const r=q(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 J(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function X(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 Q(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 Y(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.6.0",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 Z(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 Y({...{"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.walkeros.io/",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 ee(e=6){let t="";for(let n=36;t.length<e;)t+=(Math.random()*n|0).toString(n);return t}function te(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 ne(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 re(e,t=1e3){let n=null;return function(...r){if(null===n)return n=setTimeout(()=>{n=null},t),e(...r)}}function oe(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function ie(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=oe(e)):n=e,void 0!==t&&(t instanceof Error?r.error=oe(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=oe(r.error))):r.value=t),{message:n,context:r}}var se=(e,t,n,r)=>{const o=`${m[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 ce(e={}){return ae({level:void 0!==e.level?function(e){return"string"==typeof e?m[e]:e}(e.level):0,handler:e.handler,scope:[]})}function ae(e){const{level:t,handler:n,scope:r}=e,o=(e,o,i)=>{if(e<=t){const t=ie(o,i);n?n(e,t.message,t.context,r,se):se(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=ie(e,t);throw n?n(0,o.message,o.context,r,se):se(0,o.message,o.context,r),new Error(o.message)},scope:e=>ae({level:t,handler:n,scope:[...r,e]})}}function ue(e){return _(e)||H(e)||K(e)||!R(e)||V(e)&&e.every(ue)||U(e)&&Object.values(e).every(ue)}function le(e){return _(e)||H(e)||K(e)?e:I(e)?le(Array.from(e)):V(e)?e.map(e=>le(e)).filter(e=>void 0!==e):U(e)?Object.entries(e).reduce((e,[t,n])=>{const r=le(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function fe(e){return ue(e)?e:void 0}function pe(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function de(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 ge(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=V(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 me(e,t={},n={}){if(!R(e))return;const r=U(e)&&e.consent||n.consent||n.collector?.consent,o=V(t)?t:[t];for(const t of o){const o=await de(ye)(e,t,{...n,consent:r});if(R(o))return o}}async function ye(e,t,n={}){const{collector:r,consent:o}=n;return(V(t)?t:[t]).reduce(async(t,i)=>{const s=await t;if(s)return s;const c=H(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 de(a)(e,i,r))return;if(u&&!X(u,o))return y;let b=R(y)?y:e;if(l&&(b=await de(l)(e,i,n)),f&&(b=W(e,f,y)),p){const[t,r]=p,o="this"===t?[e]:await me(e,t,n);V(o)&&(b=(await Promise.all(o.map(e=>me(e,r,n)))).filter(R))}else d?b=await Object.entries(d).reduce(async(t,[r,o])=>{const i=await t,s=await me(e,o,n);return R(s)&&(i[r]=s),i},Promise.resolve({})):g&&(b=await Promise.all(g.map(t=>ye(e,t,n))));m&&!await de(m)(b)&&(b=void 0);const h=fe(b);return R(h)?h:fe(y)},Promise.resolve(void 0))}async function be(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await me(e,r,{collector:n});e=G(e,t,o)}));const{eventMapping:r,mappingKey:o}=await ge(e,t.mapping);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await me(e,r,{collector:n});e=G(e,t,o)}));let i=t.data&&await me(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 me(e,r.data,{collector:n});i=U(i)&&U(t)?D(i,t):t}}return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1}}function he(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 ve(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 we(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=we();return e.push(n),n});return{error:jest.fn(),info:jest.fn(),debug:jest.fn(),throw:t,scope:n,scopedLoggers:e}}function je(e){const t=String(e),n=t.split("?")[1]||t;return pe(()=>{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(V(o)){const s=parseInt(t,10);i?o[s]=J(e):(o[s]=o[s]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[s])}else U(o)&&(i?o[t]=J(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function Oe(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(V(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):U(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 xe(e){return void 0===e||z(e,"")?e:JSON.stringify(e)}function Ee(e={}){return D({"Content-Type":"application/json; charset=utf-8"},e)}function ke(e){throw new Error(String(e))}function Se(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function $e(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 Ae(e){return e?{userAgent:e,browser:Pe(e),browserVersion:Me(e),os:Te(e),osVersion:Ce(e),deviceType:Ne(e)}:{}}function Pe(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 Me(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 Te(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 Ce(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function Ne(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;z(e,{})||ke("Invalid object"),z(e.name,"")?(n=e.name,[r,o]=n.split(" "),r&&o||ke("Invalid event name")):z(e.entity,"")&&z(e.action,"")?(r=e.entity,o=e.action,n=`${r} ${o}`):ke("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=pe(Ie,e=>{ke(String(e))})(t,r,i,o)),z(i,t[r])&&(t[r]=i),t},t)},i)}function Ie(e,t,n,r){if(r.validate&&(n=pe(r.validate,e=>{ke(String(e))})(n,t,e)),r.required&&void 0===n&&ke("Missing required property"),z(n,""))r.maxLength&&n.length>r.maxLength&&(r.strict&&ke("Value exceeds maxLength"),n=n.substring(0,r.maxLength));else if(z(n,1))z(r.min,1)&&n<r.min?(r.strict&&ke("Value below min"),n=r.min):z(r.max,1)&&n>r.max&&(r.strict&&ke("Value exceeds max"),n=r.max);else if(z(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&&ke(`Type doesn't match (${n})`),o=pe(Ie,e=>{ke(String(e))})(t,n,o,r)),o},n)}for(const e of Object.keys(n))r.allowedKeys&&!r.allowedKeys.includes(e)&&(r.strict&&ke("Key not allowed"),delete n[e])}return n}function Ve(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function _e(e){const t=Ve(e);return new Function("value","mapping","collector",t)}function Le(e){const t=Ve(e);return new Function("value","mapping","options",t)}function Re(e){const t=Ve(e);return new Function("value",t)}//# 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:()=>x,Context:()=>a,Data:()=>u,Destination:()=>l,Elb:()=>f,Flow:()=>p,Hooks:()=>d,Level:()=>m,Logger:()=>g,Mapping:()=>y,On:()=>b,Request:()=>v,Schema:()=>w,Source:()=>j,Transformer:()=>h,WalkerOS:()=>O,anonymizeIP:()=>E,assign:()=>D,castToProperty:()=>fe,castValue:()=>J,clone:()=>q,createDestination:()=>Q,createEvent:()=>Y,createLogger:()=>ce,createMockLogger:()=>we,debounce:()=>ne,filterValues:()=>le,getBrowser:()=>Pe,getBrowserVersion:()=>Me,getByPath:()=>W,getDeviceType:()=>Ne,getEvent:()=>Z,getFlowConfig:()=>T,getGrantedConsent:()=>X,getHeaders:()=>Ee,getId:()=>ee,getMappingEvent:()=>ge,getMappingValue:()=>me,getMarketingParameters:()=>te,getOS:()=>Te,getOSVersion:()=>Ce,getPlatform:()=>C,isArguments:()=>I,isArray:()=>V,isBoolean:()=>_,isCommand:()=>L,isDefined:()=>R,isElementOrDocument:()=>F,isFunction:()=>B,isNumber:()=>K,isObject:()=>U,isPropertyType:()=>ue,isSameType:()=>z,isString:()=>H,mockEnv:()=>he,packageNameToVariable:()=>A,parseUserAgent:()=>Ae,processEventMapping:()=>be,requestToData:()=>je,requestToParameter:()=>Oe,setByPath:()=>G,throttle:()=>re,throwError:()=>ke,transformData:()=>xe,traverseEnv:()=>ve,trim:()=>Se,tryCatch:()=>pe,tryCatchAsync:()=>de,useHooks:()=>$e,validateEvent:()=>De,validateProperty:()=>Ie,wrapCondition:()=>_e,wrapFn:()=>Le,wrapValidate:()=>Re}),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={},g={};i(g,{Level:()=>m});var m=(e=>(e[e.ERROR=0]="ERROR",e[e.INFO=1]="INFO",e[e.DEBUG=2]="DEBUG",e))(m||{}),y={},b={},h={},v={},w={},j={},O={},x={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function E(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function k(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function S(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function $(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=>$(e,t));if(null!==e&&"object"==typeof e){const n={};for(const[r,o]of Object.entries(e))n[r]=$(o,t);return n}return e}function A(e){const t=e.startsWith("@"),n=e.replace("@","").replace(/[/-]/g,"_").split("_").filter(e=>e.length>0).map((e,t)=>0===t?e:e.charAt(0).toUpperCase()+e.slice(1)).join("");return t?"_"+n:n}function P(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?A(e):void 0}function M(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 M(t[e],t)}throw new Error(`Invalid $ref format: ${n}`)}if(Array.isArray(e))return e.map(e=>M(e,t));const n={};for(const[r,o]of Object.entries(e))n[r]=M(o,t);return n}return e}function T(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=k(e.variables,r.variables,n.variables),s=S(e.definitions,r.definitions,n.definitions);let c=M(n.config,s);c=$(c,i);const a=P(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=k(e.variables,r.variables,n.variables),s=S(e.definitions,r.definitions,n.definitions);let c=M(n.config,s);c=$(c,i);const a=P(n.package,n.code,o.packages);o.destinations[t]={...n,config:c,...a&&{code:a}}}if(o.collector){const t=k(e.variables,r.variables),n=S(e.definitions,r.definitions);let i=M(o.collector,n);i=$(i,t),o.collector=i}return o}function C(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 N={merge:!0,shallow:!0,extend:!0};function D(e,t={},n={}){n={...N,...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 I(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function V(e){return Array.isArray(e)}function _(e){return"boolean"==typeof e}function L(e){return"walker"===e}function R(e){return void 0!==e}function F(e){return e===document||e instanceof Element}function B(e){return"function"==typeof e}function K(e){return"number"==typeof e&&!Number.isNaN(e)}function U(e){return"object"==typeof e&&null!==e&&!V(e)&&"[object Object]"===Object.prototype.toString.call(e)}function z(e,t){return typeof e==typeof t}function H(e){return"string"==typeof e}function q(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]=q(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(q(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 W(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&V(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=W(e,t,n);i.push(r)}return i}if(o=o instanceof Object?o[t]:void 0,!o)break}return R(o)?o:n}function G(e,t,n){if(!U(e))return e;const r=q(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 J(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function X(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 Q(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 Y(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.8.0",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 Z(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 Y({...{"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.walkeros.io/",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 ee(e=6){let t="";for(let n=36;t.length<e;)t+=(Math.random()*n|0).toString(n);return t}function te(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 ne(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 re(e,t=1e3){let n=null;return function(...r){if(null===n)return n=setTimeout(()=>{n=null},t),e(...r)}}function oe(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function ie(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=oe(e)):n=e,void 0!==t&&(t instanceof Error?r.error=oe(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=oe(r.error))):r.value=t),{message:n,context:r}}var se=(e,t,n,r)=>{const o=`${m[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 ce(e={}){return ae({level:void 0!==e.level?function(e){return"string"==typeof e?m[e]:e}(e.level):0,handler:e.handler,scope:[]})}function ae(e){const{level:t,handler:n,scope:r}=e,o=(e,o,i)=>{if(e<=t){const t=ie(o,i);n?n(e,t.message,t.context,r,se):se(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=ie(e,t);throw n?n(0,o.message,o.context,r,se):se(0,o.message,o.context,r),new Error(o.message)},scope:e=>ae({level:t,handler:n,scope:[...r,e]})}}function ue(e){return _(e)||H(e)||K(e)||!R(e)||V(e)&&e.every(ue)||U(e)&&Object.values(e).every(ue)}function le(e){return _(e)||H(e)||K(e)?e:I(e)?le(Array.from(e)):V(e)?e.map(e=>le(e)).filter(e=>void 0!==e):U(e)?Object.entries(e).reduce((e,[t,n])=>{const r=le(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function fe(e){return ue(e)?e:void 0}function pe(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function de(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 ge(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=V(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 me(e,t={},n={}){if(!R(e))return;const r=U(e)&&e.consent||n.consent||n.collector?.consent,o=V(t)?t:[t];for(const t of o){const o=await de(ye)(e,t,{...n,consent:r});if(R(o))return o}}async function ye(e,t,n={}){const{collector:r,consent:o}=n;return(V(t)?t:[t]).reduce(async(t,i)=>{const s=await t;if(s)return s;const c=H(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 de(a)(e,i,r))return;if(u&&!X(u,o))return y;let b=R(y)?y:e;if(l&&(b=await de(l)(e,i,n)),f&&(b=W(e,f,y)),p){const[t,r]=p,o="this"===t?[e]:await me(e,t,n);V(o)&&(b=(await Promise.all(o.map(e=>me(e,r,n)))).filter(R))}else d?b=await Object.entries(d).reduce(async(t,[r,o])=>{const i=await t,s=await me(e,o,n);return R(s)&&(i[r]=s),i},Promise.resolve({})):g&&(b=await Promise.all(g.map(t=>ye(e,t,n))));m&&!await de(m)(b)&&(b=void 0);const h=fe(b);return R(h)?h:fe(y)},Promise.resolve(void 0))}async function be(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await me(e,r,{collector:n});e=G(e,t,o)}));const{eventMapping:r,mappingKey:o}=await ge(e,t.mapping);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await me(e,r,{collector:n});e=G(e,t,o)}));let i=t.data&&await me(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 me(e,r.data,{collector:n});i=U(i)&&U(t)?D(i,t):t}}return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1}}function he(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 ve(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 we(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=we();return e.push(n),n});return{error:jest.fn(),info:jest.fn(),debug:jest.fn(),throw:t,scope:n,scopedLoggers:e}}function je(e){const t=String(e),n=t.split("?")[1]||t;return pe(()=>{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(V(o)){const s=parseInt(t,10);i?o[s]=J(e):(o[s]=o[s]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[s])}else U(o)&&(i?o[t]=J(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function Oe(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(V(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):U(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 xe(e){return void 0===e||z(e,"")?e:JSON.stringify(e)}function Ee(e={}){return D({"Content-Type":"application/json; charset=utf-8"},e)}function ke(e){throw new Error(String(e))}function Se(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function $e(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 Ae(e){return e?{userAgent:e,browser:Pe(e),browserVersion:Me(e),os:Te(e),osVersion:Ce(e),deviceType:Ne(e)}:{}}function Pe(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 Me(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 Te(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 Ce(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function Ne(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;z(e,{})||ke("Invalid object"),z(e.name,"")?(n=e.name,[r,o]=n.split(" "),r&&o||ke("Invalid event name")):z(e.entity,"")&&z(e.action,"")?(r=e.entity,o=e.action,n=`${r} ${o}`):ke("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=pe(Ie,e=>{ke(String(e))})(t,r,i,o)),z(i,t[r])&&(t[r]=i),t},t)},i)}function Ie(e,t,n,r){if(r.validate&&(n=pe(r.validate,e=>{ke(String(e))})(n,t,e)),r.required&&void 0===n&&ke("Missing required property"),z(n,""))r.maxLength&&n.length>r.maxLength&&(r.strict&&ke("Value exceeds maxLength"),n=n.substring(0,r.maxLength));else if(z(n,1))z(r.min,1)&&n<r.min?(r.strict&&ke("Value below min"),n=r.min):z(r.max,1)&&n>r.max&&(r.strict&&ke("Value exceeds max"),n=r.max);else if(z(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&&ke(`Type doesn't match (${n})`),o=pe(Ie,e=>{ke(String(e))})(t,n,o,r)),o},n)}for(const e of Object.keys(n))r.allowedKeys&&!r.allowedKeys.includes(e)&&(r.strict&&ke("Key not allowed"),delete n[e])}return n}function Ve(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function _e(e){const t=Ve(e);return new Function("value","mapping","collector",t)}function Le(e){const t=Ve(e);return new Function("value","mapping","options",t)}function Re(e){const t=Ve(e);return new Function("value",t)}//# sourceMappingURL=index.js.map
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var e=Object.defineProperty,t={},n={},r={},o={},i={},s={},c={},a={};((t,n)=>{for(var r in n)e(t,r,{get:n[r],enumerable:!0})})(a,{Level:()=>u});var u=(e=>(e[e.ERROR=0]="ERROR",e[e.INFO=1]="INFO",e[e.DEBUG=2]="DEBUG",e))(u||{}),l={},f={},p={},d={},g={},m={},y={},b={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function h(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function w(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function v(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function j(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=>j(e,t));if(null!==e&&"object"==typeof e){const n={};for(const[r,o]of Object.entries(e))n[r]=j(o,t);return n}return e}function x(e){const t=e.startsWith("@"),n=e.replace("@","").replace(/[/-]/g,"_").split("_").filter(e=>e.length>0).map((e,t)=>0===t?e:e.charAt(0).toUpperCase()+e.slice(1)).join("");return t?"_"+n:n}function O(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?x(e):void 0}function k(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 k(t[e],t)}throw new Error(`Invalid $ref format: ${n}`)}if(Array.isArray(e))return e.map(e=>k(e,t));const n={};for(const[r,o]of Object.entries(e))n[r]=k(o,t);return n}return e}function E(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=w(e.variables,r.variables,n.variables),s=v(e.definitions,r.definitions,n.definitions);let c=k(n.config,s);c=j(c,i);const a=O(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=w(e.variables,r.variables,n.variables),s=v(e.definitions,r.definitions,n.definitions);let c=k(n.config,s);c=j(c,i);const a=O(n.package,n.code,o.packages);o.destinations[t]={...n,config:c,...a&&{code:a}}}if(o.collector){const t=w(e.variables,r.variables),n=v(e.definitions,r.definitions);let i=k(o.collector,n);i=j(i,t),o.collector=i}return o}function S(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 $={merge:!0,shallow:!0,extend:!0};function A(e,t={},n={}){n={...$,...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 P(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function N(e){return Array.isArray(e)}function M(e){return"boolean"==typeof e}function I(e){return"walker"===e}function R(e){return void 0!==e}function T(e){return e===document||e instanceof Element}function C(e){return"function"==typeof e}function _(e){return"number"==typeof e&&!Number.isNaN(e)}function D(e){return"object"==typeof e&&null!==e&&!N(e)&&"[object Object]"===Object.prototype.toString.call(e)}function L(e,t){return typeof e==typeof t}function F(e){return"string"==typeof e}function K(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]=K(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(K(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 V(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&N(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=V(e,t,n);i.push(r)}return i}if(o=o instanceof Object?o[t]:void 0,!o)break}return R(o)?o:n}function U(e,t,n){if(!D(e))return e;const r=K(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 z(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 B(e,t){const n={...e};return n.config=A(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=A(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=A(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function H(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",r=e.count||1,o=A({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.6.0",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 q(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 H({...{"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.walkeros.io/",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 J(e=6){let t="";for(let n=36;t.length<e;)t+=(Math.random()*n|0).toString(n);return t}function G(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(A(o,t)).forEach(([t,o])=>{const i=e.searchParams.get(t);i&&(o===n&&(o=t,r[n]=t),r[o]=i)}),r}function X(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 Q(e,t=1e3){let n=null;return function(...r){if(null===n)return n=setTimeout(()=>{n=null},t),e(...r)}}function Y(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function Z(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=Y(e)):n=e,void 0!==t&&(t instanceof Error?r.error=Y(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=Y(r.error))):r.value=t),{message:n,context:r}}var ee=(e,t,n,r)=>{const o=`${u[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 te(e={}){return ne({level:void 0!==e.level?function(e){return"string"==typeof e?u[e]:e}(e.level):0,handler:e.handler,scope:[]})}function ne(e){const{level:t,handler:n,scope:r}=e,o=(e,o,i)=>{if(e<=t){const t=Z(o,i);n?n(e,t.message,t.context,r,ee):ee(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=Z(e,t);throw n?n(0,o.message,o.context,r,ee):ee(0,o.message,o.context,r),new Error(o.message)},scope:e=>ne({level:t,handler:n,scope:[...r,e]})}}function re(e){return M(e)||F(e)||_(e)||!R(e)||N(e)&&e.every(re)||D(e)&&Object.values(e).every(re)}function oe(e){return M(e)||F(e)||_(e)?e:P(e)?oe(Array.from(e)):N(e)?e.map(e=>oe(e)).filter(e=>void 0!==e):D(e)?Object.entries(e).reduce((e,[t,n])=>{const r=oe(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function ie(e){return re(e)?e:void 0}function se(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function ce(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 ae(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=N(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 ue(e,t={},n={}){if(!R(e))return;const r=D(e)&&e.consent||n.consent||n.collector?.consent,o=N(t)?t:[t];for(const t of o){const o=await ce(le)(e,t,{...n,consent:r});if(R(o))return o}}async function le(e,t,n={}){const{collector:r,consent:o}=n;return(N(t)?t:[t]).reduce(async(t,i)=>{const s=await t;if(s)return s;const c=F(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 ce(a)(e,i,r))return;if(u&&!W(u,o))return y;let b=R(y)?y:e;if(l&&(b=await ce(l)(e,i,n)),f&&(b=V(e,f,y)),p){const[t,r]=p,o="this"===t?[e]:await ue(e,t,n);N(o)&&(b=(await Promise.all(o.map(e=>ue(e,r,n)))).filter(R))}else d?b=await Object.entries(d).reduce(async(t,[r,o])=>{const i=await t,s=await ue(e,o,n);return R(s)&&(i[r]=s),i},Promise.resolve({})):g&&(b=await Promise.all(g.map(t=>le(e,t,n))));m&&!await ce(m)(b)&&(b=void 0);const h=ie(b);return R(h)?h:ie(y)},Promise.resolve(void 0))}async function fe(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await ue(e,r,{collector:n});e=U(e,t,o)}));const{eventMapping:r,mappingKey:o}=await ae(e,t.mapping);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await ue(e,r,{collector:n});e=U(e,t,o)}));let i=t.data&&await ue(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 ue(e,r.data,{collector:n});i=D(i)&&D(t)?A(i,t):t}}return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1}}function pe(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 de(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 ge(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=ge();return e.push(n),n});return{error:jest.fn(),info:jest.fn(),debug:jest.fn(),throw:t,scope:n,scopedLoggers:e}}function me(e){const t=String(e),n=t.split("?")[1]||t;return se(()=>{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(N(o)){const s=parseInt(t,10);i?o[s]=z(e):(o[s]=o[s]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[s])}else D(o)&&(i?o[t]=z(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function ye(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(N(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 be(e){return void 0===e||L(e,"")?e:JSON.stringify(e)}function he(e={}){return A({"Content-Type":"application/json; charset=utf-8"},e)}function we(e){throw new Error(String(e))}function ve(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function je(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 xe(e){return e?{userAgent:e,browser:Oe(e),browserVersion:ke(e),os:Ee(e),osVersion:Se(e),deviceType:$e(e)}:{}}function Oe(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 ke(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 Ee(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 Se(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function $e(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 Ae(e,t=[]){let n,r,o;L(e,{})||we("Invalid object"),L(e.name,"")?(n=e.name,[r,o]=n.split(" "),r&&o||we("Invalid event name")):L(e.entity,"")&&L(e.action,"")?(r=e.entity,o=e.action,n=`${r} ${o}`):we("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=se(Pe,e=>{we(String(e))})(t,r,i,o)),L(i,t[r])&&(t[r]=i),t},t)},i)}function Pe(e,t,n,r){if(r.validate&&(n=se(r.validate,e=>{we(String(e))})(n,t,e)),r.required&&void 0===n&&we("Missing required property"),L(n,""))r.maxLength&&n.length>r.maxLength&&(r.strict&&we("Value exceeds maxLength"),n=n.substring(0,r.maxLength));else if(L(n,1))L(r.min,1)&&n<r.min?(r.strict&&we("Value below min"),n=r.min):L(r.max,1)&&n>r.max&&(r.strict&&we("Value exceeds max"),n=r.max);else if(L(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&&we(`Type doesn't match (${n})`),o=se(Pe,e=>{we(String(e))})(t,n,o,r)),o},n)}for(const e of Object.keys(n))r.allowedKeys&&!r.allowedKeys.includes(e)&&(r.strict&&we("Key not allowed"),delete n[e])}return n}function Ne(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function Me(e){const t=Ne(e);return new Function("value","mapping","collector",t)}function Ie(e){const t=Ne(e);return new Function("value","mapping","options",t)}function Re(e){const t=Ne(e);return new Function("value",t)}export{t as Collector,b as Const,n as Context,r as Data,o as Destination,i as Elb,s as Flow,c as Hooks,u as Level,a as Logger,l as Mapping,f as On,d as Request,g as Schema,m as Source,p as Transformer,y as WalkerOS,h as anonymizeIP,A as assign,ie as castToProperty,z as castValue,K as clone,B as createDestination,H as createEvent,te as createLogger,ge as createMockLogger,X as debounce,oe as filterValues,Oe as getBrowser,ke as getBrowserVersion,V as getByPath,$e as getDeviceType,q as getEvent,E as getFlowConfig,W as getGrantedConsent,he as getHeaders,J as getId,ae as getMappingEvent,ue as getMappingValue,G as getMarketingParameters,Ee as getOS,Se as getOSVersion,S as getPlatform,P as isArguments,N as isArray,M as isBoolean,I as isCommand,R as isDefined,T as isElementOrDocument,C as isFunction,_ as isNumber,D as isObject,re as isPropertyType,L as isSameType,F as isString,pe as mockEnv,x as packageNameToVariable,xe as parseUserAgent,fe as processEventMapping,me as requestToData,ye as requestToParameter,U as setByPath,Q as throttle,we as throwError,be as transformData,de as traverseEnv,ve as trim,se as tryCatch,ce as tryCatchAsync,je as useHooks,Ae as validateEvent,Pe as validateProperty,Me as wrapCondition,Ie as wrapFn,Re as wrapValidate};//# sourceMappingURL=index.mjs.map
1
+ var e=Object.defineProperty,t={},n={},r={},o={},i={},s={},c={},a={};((t,n)=>{for(var r in n)e(t,r,{get:n[r],enumerable:!0})})(a,{Level:()=>u});var u=(e=>(e[e.ERROR=0]="ERROR",e[e.INFO=1]="INFO",e[e.DEBUG=2]="DEBUG",e))(u||{}),l={},f={},p={},d={},g={},m={},y={},b={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function h(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function w(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function v(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function j(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=>j(e,t));if(null!==e&&"object"==typeof e){const n={};for(const[r,o]of Object.entries(e))n[r]=j(o,t);return n}return e}function x(e){const t=e.startsWith("@"),n=e.replace("@","").replace(/[/-]/g,"_").split("_").filter(e=>e.length>0).map((e,t)=>0===t?e:e.charAt(0).toUpperCase()+e.slice(1)).join("");return t?"_"+n:n}function O(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?x(e):void 0}function k(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 k(t[e],t)}throw new Error(`Invalid $ref format: ${n}`)}if(Array.isArray(e))return e.map(e=>k(e,t));const n={};for(const[r,o]of Object.entries(e))n[r]=k(o,t);return n}return e}function E(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=w(e.variables,r.variables,n.variables),s=v(e.definitions,r.definitions,n.definitions);let c=k(n.config,s);c=j(c,i);const a=O(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=w(e.variables,r.variables,n.variables),s=v(e.definitions,r.definitions,n.definitions);let c=k(n.config,s);c=j(c,i);const a=O(n.package,n.code,o.packages);o.destinations[t]={...n,config:c,...a&&{code:a}}}if(o.collector){const t=w(e.variables,r.variables),n=v(e.definitions,r.definitions);let i=k(o.collector,n);i=j(i,t),o.collector=i}return o}function S(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 $={merge:!0,shallow:!0,extend:!0};function A(e,t={},n={}){n={...$,...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 P(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function N(e){return Array.isArray(e)}function M(e){return"boolean"==typeof e}function I(e){return"walker"===e}function R(e){return void 0!==e}function T(e){return e===document||e instanceof Element}function C(e){return"function"==typeof e}function _(e){return"number"==typeof e&&!Number.isNaN(e)}function D(e){return"object"==typeof e&&null!==e&&!N(e)&&"[object Object]"===Object.prototype.toString.call(e)}function L(e,t){return typeof e==typeof t}function F(e){return"string"==typeof e}function K(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]=K(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(K(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 V(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&N(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=V(e,t,n);i.push(r)}return i}if(o=o instanceof Object?o[t]:void 0,!o)break}return R(o)?o:n}function U(e,t,n){if(!D(e))return e;const r=K(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 z(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 B(e,t){const n={...e};return n.config=A(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=A(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=A(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function H(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",r=e.count||1,o=A({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.8.0",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 q(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 H({...{"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.walkeros.io/",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 J(e=6){let t="";for(let n=36;t.length<e;)t+=(Math.random()*n|0).toString(n);return t}function G(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(A(o,t)).forEach(([t,o])=>{const i=e.searchParams.get(t);i&&(o===n&&(o=t,r[n]=t),r[o]=i)}),r}function X(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 Q(e,t=1e3){let n=null;return function(...r){if(null===n)return n=setTimeout(()=>{n=null},t),e(...r)}}function Y(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function Z(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=Y(e)):n=e,void 0!==t&&(t instanceof Error?r.error=Y(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=Y(r.error))):r.value=t),{message:n,context:r}}var ee=(e,t,n,r)=>{const o=`${u[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 te(e={}){return ne({level:void 0!==e.level?function(e){return"string"==typeof e?u[e]:e}(e.level):0,handler:e.handler,scope:[]})}function ne(e){const{level:t,handler:n,scope:r}=e,o=(e,o,i)=>{if(e<=t){const t=Z(o,i);n?n(e,t.message,t.context,r,ee):ee(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=Z(e,t);throw n?n(0,o.message,o.context,r,ee):ee(0,o.message,o.context,r),new Error(o.message)},scope:e=>ne({level:t,handler:n,scope:[...r,e]})}}function re(e){return M(e)||F(e)||_(e)||!R(e)||N(e)&&e.every(re)||D(e)&&Object.values(e).every(re)}function oe(e){return M(e)||F(e)||_(e)?e:P(e)?oe(Array.from(e)):N(e)?e.map(e=>oe(e)).filter(e=>void 0!==e):D(e)?Object.entries(e).reduce((e,[t,n])=>{const r=oe(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function ie(e){return re(e)?e:void 0}function se(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function ce(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 ae(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=N(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 ue(e,t={},n={}){if(!R(e))return;const r=D(e)&&e.consent||n.consent||n.collector?.consent,o=N(t)?t:[t];for(const t of o){const o=await ce(le)(e,t,{...n,consent:r});if(R(o))return o}}async function le(e,t,n={}){const{collector:r,consent:o}=n;return(N(t)?t:[t]).reduce(async(t,i)=>{const s=await t;if(s)return s;const c=F(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 ce(a)(e,i,r))return;if(u&&!W(u,o))return y;let b=R(y)?y:e;if(l&&(b=await ce(l)(e,i,n)),f&&(b=V(e,f,y)),p){const[t,r]=p,o="this"===t?[e]:await ue(e,t,n);N(o)&&(b=(await Promise.all(o.map(e=>ue(e,r,n)))).filter(R))}else d?b=await Object.entries(d).reduce(async(t,[r,o])=>{const i=await t,s=await ue(e,o,n);return R(s)&&(i[r]=s),i},Promise.resolve({})):g&&(b=await Promise.all(g.map(t=>le(e,t,n))));m&&!await ce(m)(b)&&(b=void 0);const h=ie(b);return R(h)?h:ie(y)},Promise.resolve(void 0))}async function fe(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await ue(e,r,{collector:n});e=U(e,t,o)}));const{eventMapping:r,mappingKey:o}=await ae(e,t.mapping);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await ue(e,r,{collector:n});e=U(e,t,o)}));let i=t.data&&await ue(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 ue(e,r.data,{collector:n});i=D(i)&&D(t)?A(i,t):t}}return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1}}function pe(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 de(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 ge(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=ge();return e.push(n),n});return{error:jest.fn(),info:jest.fn(),debug:jest.fn(),throw:t,scope:n,scopedLoggers:e}}function me(e){const t=String(e),n=t.split("?")[1]||t;return se(()=>{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(N(o)){const s=parseInt(t,10);i?o[s]=z(e):(o[s]=o[s]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[s])}else D(o)&&(i?o[t]=z(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function ye(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(N(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 be(e){return void 0===e||L(e,"")?e:JSON.stringify(e)}function he(e={}){return A({"Content-Type":"application/json; charset=utf-8"},e)}function we(e){throw new Error(String(e))}function ve(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function je(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 xe(e){return e?{userAgent:e,browser:Oe(e),browserVersion:ke(e),os:Ee(e),osVersion:Se(e),deviceType:$e(e)}:{}}function Oe(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 ke(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 Ee(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 Se(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function $e(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 Ae(e,t=[]){let n,r,o;L(e,{})||we("Invalid object"),L(e.name,"")?(n=e.name,[r,o]=n.split(" "),r&&o||we("Invalid event name")):L(e.entity,"")&&L(e.action,"")?(r=e.entity,o=e.action,n=`${r} ${o}`):we("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=se(Pe,e=>{we(String(e))})(t,r,i,o)),L(i,t[r])&&(t[r]=i),t},t)},i)}function Pe(e,t,n,r){if(r.validate&&(n=se(r.validate,e=>{we(String(e))})(n,t,e)),r.required&&void 0===n&&we("Missing required property"),L(n,""))r.maxLength&&n.length>r.maxLength&&(r.strict&&we("Value exceeds maxLength"),n=n.substring(0,r.maxLength));else if(L(n,1))L(r.min,1)&&n<r.min?(r.strict&&we("Value below min"),n=r.min):L(r.max,1)&&n>r.max&&(r.strict&&we("Value exceeds max"),n=r.max);else if(L(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&&we(`Type doesn't match (${n})`),o=se(Pe,e=>{we(String(e))})(t,n,o,r)),o},n)}for(const e of Object.keys(n))r.allowedKeys&&!r.allowedKeys.includes(e)&&(r.strict&&we("Key not allowed"),delete n[e])}return n}function Ne(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function Me(e){const t=Ne(e);return new Function("value","mapping","collector",t)}function Ie(e){const t=Ne(e);return new Function("value","mapping","options",t)}function Re(e){const t=Ne(e);return new Function("value",t)}export{t as Collector,b as Const,n as Context,r as Data,o as Destination,i as Elb,s as Flow,c as Hooks,u as Level,a as Logger,l as Mapping,f as On,d as Request,g as Schema,m as Source,p as Transformer,y as WalkerOS,h as anonymizeIP,A as assign,ie as castToProperty,z as castValue,K as clone,B as createDestination,H as createEvent,te as createLogger,ge as createMockLogger,X as debounce,oe as filterValues,Oe as getBrowser,ke as getBrowserVersion,V as getByPath,$e as getDeviceType,q as getEvent,E as getFlowConfig,W as getGrantedConsent,he as getHeaders,J as getId,ae as getMappingEvent,ue as getMappingValue,G as getMarketingParameters,Ee as getOS,Se as getOSVersion,S as getPlatform,P as isArguments,N as isArray,M as isBoolean,I as isCommand,R as isDefined,T as isElementOrDocument,C as isFunction,_ as isNumber,D as isObject,re as isPropertyType,L as isSameType,F as isString,pe as mockEnv,x as packageNameToVariable,xe as parseUserAgent,fe as processEventMapping,me as requestToData,ye as requestToParameter,U as setByPath,Q as throttle,we as throwError,be as transformData,de as traverseEnv,ve as trim,se as tryCatch,ce as tryCatchAsync,je as useHooks,Ae as validateEvent,Pe as validateProperty,Me as wrapCondition,Ie as wrapFn,Re as wrapValidate};//# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@walkeros/core",
3
3
  "description": "Core types and platform-agnostic utilities for walkerOS",
4
- "version": "0.7.0",
4
+ "version": "0.8.0",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
7
7
  "types": "./dist/index.d.ts",