@walkeros/core 3.0.0 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/dist/index.mjs +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,o=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,s=(e,n)=>{for(var o in n)t(e,o,{get:n[o],enumerable:!0})},i={};s(i,{Collector:()=>c,Const:()=>$,Context:()=>a,Destination:()=>u,ENV_MARKER_PREFIX:()=>H,Elb:()=>l,Flow:()=>f,Hint:()=>S,Hooks:()=>p,Level:()=>g,Lifecycle:()=>j,Logger:()=>d,Mapping:()=>m,Matcher:()=>x,On:()=>y,Request:()=>v,Simulation:()=>O,Source:()=>h,Store:()=>w,Transformer:()=>b,WalkerOS:()=>k,anonymizeIP:()=>A,assign:()=>Z,branch:()=>E,castToProperty:()=>Oe,castValue:()=>ce,clone:()=>re,compileMatcher:()=>nt,createDestination:()=>ue,createEvent:()=>le,createLogger:()=>he,createMockLogger:()=>_e,createRespond:()=>tt,debounce:()=>ge,fetchPackage:()=>Xe,fetchPackageSchema:()=>Qe,filterValues:()=>ke,getBrowser:()=>Ve,getBrowserVersion:()=>Fe,getByPath:()=>se,getDeviceType:()=>Be,getEvent:()=>fe,getFlowSettings:()=>W,getGrantedConsent:()=>ae,getHeaders:()=>De,getId:()=>pe,getMappingEvent:()=>$e,getMappingValue:()=>Ee,getMarketingParameters:()=>de,getOS:()=>Le,getOSVersion:()=>We,getPlatform:()=>B,isArguments:()=>K,isArray:()=>q,isBoolean:()=>J,isCommand:()=>G,isDefined:()=>X,isElementOrDocument:()=>Q,isFunction:()=>Y,isNumber:()=>ee,isObject:()=>te,isPropertyType:()=>je,isSameType:()=>ne,isString:()=>oe,mcpError:()=>et,mcpResult:()=>Ye,mergeContractSchemas:()=>C,mockEnv:()=>Ne,packageNameToVariable:()=>F,parseUserAgent:()=>Ie,processEventMapping:()=>Pe,requestToData:()=>Ce,requestToParameter:()=>Me,resolveContracts:()=>_,setByPath:()=>ie,throttle:()=>me,throwError:()=>P,transformData:()=>Re,traverseEnv:()=>Te,trim:()=>ze,tryCatch:()=>xe,tryCatchAsync:()=>Se,useHooks:()=>He,walkPath:()=>I,wrapCondition:()=>Ze,wrapFn:()=>Ke,wrapValidate:()=>qe}),module.exports=(e=i,((e,s,i,c)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let a of o(s))r.call(e,a)||a===i||t(e,a,{get:()=>s[a],enumerable:!(c=n(s,a))||c.enumerable});return e})(t({},"__esModule",{value:!0}),e));var c={},a={},u={},l={},f={},p={},d={};s(d,{Level:()=>g});var g=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(g||{}),m={},y={},b={},v={},h={},w={},j={},k={},O={},x={},S={},$={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function E(e,t){return{event:e,next:t}}function A(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function P(e){throw new Error(String(e))}var N=["globals","context","custom","user","consent"],T=new Set(["description","examples","title","$comment"]);function _(e){const t={},n=new Set;function o(r){if(t[r])return t[r];n.has(r)&&P(`Circular extends chain detected: ${[...n,r].join(" → ")}`);const s=e[r];s||P(`Contract "${r}" not found`),n.add(r);let i={};if(s.extends){i=function(e,t){const n={};void 0===e.tagging&&void 0===t.tagging||(n.tagging=t.tagging??e.tagging);void 0===e.description&&void 0===t.description||(n.description=t.description??e.description);for(const o of N){const r=e[o],s=t[o];r&&s?n[o]=C(r,s):(r||s)&&(n[o]={...r||s})}if(e.events||t.events){const o={},r=new Set([...Object.keys(e.events||{}),...Object.keys(t.events||{})]);for(const n of r){const r=e.events?.[n]||{},s=t.events?.[n]||{},i=new Set([...Object.keys(r),...Object.keys(s)]);o[n]={};for(const e of i){const t=r[e],i=s[e];o[n][e]=t&&i?C(t,i):{...t||i}}}n.events=o}return n}(o(s.extends),s)}else i={...s};if(delete i.extends,i.events&&(i.events=function(e){const t={};for(const n of Object.keys(e))if("*"!==n){t[n]={};for(const o of Object.keys(e[n]||{})){let r={};const s=e["*"]?.["*"];s&&(r=C(r,s));const i=e["*"]?.[o];i&&"*"!==o&&(r=C(r,i));const c=e[n]?.["*"];c&&"*"!==o&&(r=C(r,c));const a=e[n]?.[o];a&&(r=C(r,a)),t[n][o]=r}}e["*"]&&(t["*"]={...e["*"]});return t}(i.events)),i.events){const e={};for(const[t,n]of Object.entries(i.events)){e[t]={};for(const[o,r]of Object.entries(n))e[t][o]=M(r)}i.events=e}return n.delete(r),t[r]=i,i}for(const t of Object.keys(e))o(t);return t}function C(e,t){const n={...e};for(const o of Object.keys(t)){const r=e[o],s=t[o];"required"===o&&Array.isArray(r)&&Array.isArray(s)?n[o]=[...new Set([...r,...s])]:R(r)&&R(s)?n[o]=C(r,s):n[o]=s}return n}function M(e){const t={};for(const[n,o]of Object.entries(e))T.has(n)||(null===o||"object"!=typeof o||Array.isArray(o)?t[n]=o:t[n]=M(o));return t}function R(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function D(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function z(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var H="__WALKEROS_ENV:";function I(e,t,n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const s=o[e];if(null==r||"object"!=typeof r){const r=o.slice(0,e).join(".");P(`Path "${t}" not found in "${n}": "${s}" does not exist${r?` in "${r}"`:""}`)}const i=r;if(!(s in i)){const r=o.slice(0,e).join(".");P(`Path "${t}" not found in "${n}": "${s}" does not exist${r?` in "${r}"`:""}`)}r=i[s]}return r}function V(e,t,n,o,r){if("string"==typeof e){const s=e.match(/^\$def\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(s){const e=s[1],i=s[2];void 0===n[e]&&P(`Definition "${e}" not found`);let c=V(n[e],t,n,o,r);return i&&(c=I(c,i,`$def.${e}`)),c}const i=e.match(/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(i&&r){const e=i[1],t=i[2];e in r||P(`Contract "${e}" not found`);let n=r[e];return t&&(n=I(n,t,`$contract.${e}`)),n}let c=e.replace(/\$var\.([a-zA-Z_][a-zA-Z0-9_]*)/g,(e,n)=>{if(void 0!==t[n])return String(t[n]);P(`Variable "${n}" not found`)});return c=c.replace(/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,(e,t,n)=>o?.deferred?void 0!==n?`${H}${t}:${n}`:`${H}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==n?n:void P(`Environment variable "${t}" not found and no default provided`)),c}if(Array.isArray(e))return e.map(e=>V(e,t,n,o,r));if(null!==e&&"object"==typeof e){const s={};for(const[i,c]of Object.entries(e))s[i]=V(c,t,n,o,r);return s}return e}function F(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 L(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?F(e):void 0}function W(e,t,n){const o=Object.keys(e.flows);t||(1===o.length?t=o[0]:P(`Multiple flows found (${o.join(", ")}). Please specify a flow.`));const r=e.flows[t];r||P(`Flow "${t}" not found. Available: ${o.join(", ")}`);const s=JSON.parse(JSON.stringify(r));let i;if(e.contract){const t=D(e.variables,r.variables),o=z(e.definitions,r.definitions);i=_(V(e.contract,t,o,n))}if(s.sources)for(const[t,o]of Object.entries(s.sources)){const c=D(e.variables,r.variables,o.variables),a=z(e.definitions,r.definitions,o.definitions),u=V(o.config,c,a,n,i),l=V(o.env,c,a,n,i),f=L(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=f||p;s.sources[t]={package:o.package,config:u,env:l,primary:o.primary,variables:o.variables,definitions:o.definitions,next:o.next,code:d}}if(s.destinations)for(const[t,o]of Object.entries(s.destinations)){const c=D(e.variables,r.variables,o.variables),a=z(e.definitions,r.definitions,o.definitions),u=V(o.config,c,a,n,i),l=V(o.env,c,a,n,i),f=L(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=f||p;s.destinations[t]={package:o.package,config:u,env:l,variables:o.variables,definitions:o.definitions,before:o.before,code:d}}if(s.stores)for(const[t,o]of Object.entries(s.stores)){const c=D(e.variables,r.variables,o.variables),a=z(e.definitions,r.definitions,o.definitions),u=V(o.config,c,a,n,i),l=V(o.env,c,a,n,i),f=L(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=f||p;s.stores[t]={package:o.package,config:u,env:l,variables:o.variables,definitions:o.definitions,code:d}}if(s.transformers)for(const[t,o]of Object.entries(s.transformers)){const c=D(e.variables,r.variables,o.variables),a=z(e.definitions,r.definitions,o.definitions),u=V(o.config,c,a,n,i),l=V(o.env,c,a,n,i),f=L(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=f||p;s.transformers[t]={package:o.package,config:u,env:l,variables:o.variables,definitions:o.definitions,next:o.next,code:d}}if(s.collector){const t=D(e.variables,r.variables),o=z(e.definitions,r.definitions),c=V(s.collector,t,o,n,i);s.collector=c}return s}function B(e){return void 0!==e.web?"web":void 0!==e.server?"server":void P("Settings must have web or server key")}var U={merge:!0,shallow:!0,extend:!0};function Z(e,t={},n={}){n={...U,...n};const o=Object.entries(t).reduce((t,[o,r])=>{const s=e[o];return n.merge&&Array.isArray(s)&&Array.isArray(r)?t[o]=r.reduce((e,t)=>e.includes(t)?e:[...e,t],[...s]):(n.extend||o in e)&&(t[o]=r),t},{});return n.shallow?{...e,...o}:(Object.assign(e,o),e)}function K(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function q(e){return Array.isArray(e)}function J(e){return"boolean"==typeof e}function G(e){return"walker"===e}function X(e){return void 0!==e}function Q(e){return e===document||e instanceof Element}function Y(e){return"function"==typeof e}function ee(e){return"number"==typeof e&&!Number.isNaN(e)}function te(e){return"object"==typeof e&&null!==e&&!q(e)&&"[object Object]"===Object.prototype.toString.call(e)}function ne(e,t){return typeof e==typeof t}function oe(e){return"string"==typeof e}function re(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 o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=re(e[o],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(re(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 se(e,t="",n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const t=o[e];if("*"===t&&q(r)){const t=o.slice(e+1).join("."),s=[];for(const e of r){const o=se(e,t,n);s.push(o)}return s}if(r=r instanceof Object?r[t]:void 0,void 0===r)break}return X(r)?r:n}function ie(e,t,n){if(!te(e))return e;const o=re(e),r=t.split(".");let s=o;for(let e=0;e<r.length;e++){const t=r[e];e===r.length-1?s[t]=n:(t in s&&"object"==typeof s[t]&&null!==s[t]||(s[t]={}),s=s[t])}return o}function ce(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function ae(e,t={},n={}){const o={...t,...n},r={};let s=!e||0===Object.keys(e).length;return Object.keys(o).forEach(t=>{o[t]&&(r[t]=!0,e&&e[t]&&(s=!0))}),!!s&&r}function ue(e,t){const n={...e};return n.config=Z(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=Z(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=Z(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function le(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",o=e.count||1,r=Z({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}-${o}`,trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:n,count:o,version:{source:"2.1.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&&(r.entity=t,r.action=n)}return r}function fe(e="entity action",t={}){const n=t.timestamp||(new Date).setHours(0,13,37,0),o={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},r={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return le({...{"cart view":{data:{currency:"EUR",value:2*o.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...o.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:o.data.price+r.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...o,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...r,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",...o,context:{shopping:["complete",0]},nested:[]},{entity:"product",...r,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":{...o,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...o,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...o.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 pe(e=6){let t="";for(let n=36;t.length<e;)t+=(Math.random()*n|0).toString(n);return t}function de(e,t={}){const n="clickId",o={},r={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(Z(r,t)).forEach(([t,r])=>{const s=e.searchParams.get(t);s&&(r===n&&(r=t,o[n]=t),o[r]=s)}),o}function ge(e,t=1e3,n=!1){let o,r=null,s=!1;return(...i)=>new Promise(c=>{const a=n&&!s;r&&clearTimeout(r),r=setTimeout(()=>{r=null,n&&!s||(o=e(...i),c(o))},t),a&&(s=!0,o=e(...i),c(o))})}function me(e,t=1e3){let n=null;return function(...o){if(null===n)return n=setTimeout(()=>{n=null},t),e(...o)}}function ye(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function be(e,t){let n,o={};return e instanceof Error?(n=e.message,o.error=ye(e)):n=e,void 0!==t&&(t instanceof Error?o.error=ye(t):"object"==typeof t&&null!==t?(o={...o,...t},"error"in o&&o.error instanceof Error&&(o.error=ye(o.error))):o.value=t),{message:n,context:o}}var ve=(e,t,n,o)=>{const r=`${g[e]}${o.length>0?` [${o.join(":")}]`:""}`,s=Object.keys(n).length>0,i=0===e?console.error:1===e?console.warn:console.log;s?i(r,t,n):i(r,t)};function he(e={}){return we({level:void 0!==e.level?function(e){return"string"==typeof e?g[e]:e}(e.level):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]})}function we(e){const{level:t,handler:n,jsonHandler:o,scope:r}=e,s=(e,o,s)=>{if(e<=t){const t=be(o,s);n?n(e,t.message,t.context,r,ve):ve(e,t.message,t.context,r)}};return{error:(e,t)=>s(0,e,t),warn:(e,t)=>s(1,e,t),info:(e,t)=>s(2,e,t),debug:(e,t)=>s(3,e,t),throw:(e,t)=>{const o=be(e,t);throw n?n(0,o.message,o.context,r,ve):ve(0,o.message,o.context,r),new Error(o.message)},json:e=>{o?o(e):console.log(JSON.stringify(e,null,2))},scope:e=>we({level:t,handler:n,jsonHandler:o,scope:[...r,e]})}}function je(e){return J(e)||oe(e)||ee(e)||!X(e)||q(e)&&e.every(je)||te(e)&&Object.values(e).every(je)}function ke(e){return J(e)||oe(e)||ee(e)?e:K(e)?ke(Array.from(e)):q(e)?e.map(e=>ke(e)).filter(e=>void 0!==e):te(e)?Object.entries(e).reduce((e,[t,n])=>{const o=ke(n);return void 0!==o&&(e[t]=o),e},{}):void 0}function Oe(e){return je(e)?e:void 0}function xe(e,t,n){return function(...o){try{return e(...o)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function Se(e,t,n){return async function(...o){try{return await e(...o)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}async function $e(e,t){const[n,o]=(e.name||"").split(" ");if(!t||!n||!o)return{};let r,s="",i=n,c=o;const a=t=>{if(t)return(t=q(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[i]||(i="*");const u=t[i];return u&&(u[c]||(c="*"),r=a(u[c])),r||(i="*",c="*",r=a(t[i]?.[c])),r&&(s=`${i} ${c}`),{eventMapping:r,mappingKey:s}}async function Ee(e,t={},n={}){if(!X(e))return;const o=te(e)&&e.consent||n.consent||n.collector?.consent,r=q(t)?t:[t];for(const t of r){const r=await Se(Ae)(e,t,{...n,consent:o});if(X(r))return r}}async function Ae(e,t,n={}){const{collector:o,consent:r}=n;return(q(t)?t:[t]).reduce(async(t,s)=>{const i=await t;if(i)return i;const c=oe(s)?{key:s}:s;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 Se(a)(e,s,o))return;if(u&&!ae(u,r))return y;let b=X(y)?y:e;if(l&&(b=await Se(l)(e,s,n)),f&&(b=se(e,f,y)),p){const[t,o]=p,r="this"===t?[e]:await Ee(e,t,n);q(r)&&(b=(await Promise.all(r.map(e=>Ee(e,o,n)))).filter(X))}else d?b=await Object.entries(d).reduce(async(t,[o,r])=>{const s=await t,i=await Ee(e,r,n);return X(i)&&(s[o]=i),s},Promise.resolve({})):g&&(b=await Promise.all(g.map(t=>Ae(e,t,n))));m&&!await Se(m)(b)&&(b=void 0);const v=Oe(b);return X(v)?v:Oe(y)},Promise.resolve(void 0))}async function Pe(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,o])=>{const r=await Ee(e,o,{collector:n});e=ie(e,t,r)}));const{eventMapping:o,mappingKey:r}=await $e(e,t.mapping);o?.policy&&await Promise.all(Object.entries(o.policy).map(async([t,o])=>{const r=await Ee(e,o,{collector:n});e=ie(e,t,r)}));let s=t.data&&await Ee(e,t.data,{collector:n});if(o){if(o.ignore)return{event:e,data:s,mapping:o,mappingKey:r,ignore:!0};if(o.name&&(e.name=o.name),o.data){const t=o.data&&await Ee(e,o.data,{collector:n});s=te(s)&&te(t)?Z(s,t):t}}return{event:e,data:s,mapping:o,mappingKey:r,ignore:!1}}function Ne(e,t){const n=(e,o=[])=>new Proxy(e,{get(e,r){const s=e[r],i=[...o,r];return"function"==typeof s?(...e)=>t(i,e,s):s&&"object"==typeof s?n(s,i):s}});return n(e)}function Te(e,t){const n=(e,o=[])=>{if(!e||"object"!=typeof e)return e;const r=Array.isArray(e)?[]:{};for(const[s,i]of Object.entries(e)){const e=[...o,s];Array.isArray(r)?r[Number(s)]=t(i,e):r[s]=t(i,e),i&&"object"==typeof i&&"function"!=typeof i&&(Array.isArray(r)?r[Number(s)]=n(i,e):r[s]=n(i,e))}return r};return n(e)}function _e(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=_e();return e.push(n),n});return{error:jest.fn(),warn:jest.fn(),info:jest.fn(),debug:jest.fn(),throw:t,json:jest.fn(),scope:n,scopedLoggers:e}}function Ce(e){const t=String(e),n=t.split("?")[1]||t;return xe(()=>{const e=new URLSearchParams(n),t={};return e.forEach((e,n)=>{const o=n.split(/[[\]]+/).filter(Boolean);let r=t;o.forEach((t,n)=>{const s=n===o.length-1;if(q(r)){const i=parseInt(t,10);s?r[i]=ce(e):(r[i]=r[i]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[i])}else te(r)&&(s?r[t]=ce(e):(r[t]=r[t]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[t]))})}),t})()}function Me(e){if(!e)return"";const t=[],n=encodeURIComponent;function o(e,r){null!=r&&(q(r)?r.forEach((t,n)=>o(`${e}[${n}]`,t)):te(r)?Object.entries(r).forEach(([t,n])=>o(`${e}[${t}]`,n)):t.push(`${n(e)}=${n(String(r))}`))}return"object"!=typeof e?n(e):(Object.entries(e).forEach(([e,t])=>o(e,t)),t.join("&"))}function Re(e){return void 0===e||ne(e,"")?e:JSON.stringify(e)}function De(e={}){return Z({"Content-Type":"application/json; charset=utf-8"},e)}function ze(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function He(e,t,n){return function(...o){let r;const s="post"+t,i=n["pre"+t],c=n[s];return r=i?i({fn:e},...o):e(...o),c&&(r=c({fn:e,result:r},...o)),r}}function Ie(e){return e?{userAgent:e,browser:Ve(e),browserVersion:Fe(e),os:Le(e),osVersion:We(e),deviceType:Be(e)}:{}}function Ve(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 Fe(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 Le(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 We(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function Be(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 Ue(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function Ze(e){const t=Ue(e);return new Function("value","mapping","collector",t)}function Ke(e){const t=Ue(e);return new Function("value","mapping","options",t)}function qe(e){const t=Ue(e);return new Function("value",t)}var Je="https://cdn.jsdelivr.net/npm",Ge="dist/walkerOS.json";async function Xe(e,t){const n=t?.version||"latest",o=`${Je}/${e}@${n}`,r=new AbortController,s=setTimeout(()=>r.abort(),t?.timeout||1e4);try{const t=await fetch(`${o}/package.json`,{signal:r.signal});if(!t.ok)throw new Error(`Package "${e}" not found on npm (HTTP ${t.status})`);const s=await t.json(),i=await fetch(`${o}/${Ge}`,{signal:r.signal});if(!i.ok)throw new Error(`walkerOS.json not found at ${Ge} (HTTP ${i.status}). This package may not support the walkerOS.json convention yet.`);const c=await i.json(),a=c.$meta||{},u=c.schemas||{},l=c.examples||{},f=c.hints,p=f?Object.keys(f):[],d=[],g=l.step||{};for(const[e,t]of Object.entries(g)){const n=t,o={name:e};n?.description&&(o.description=n.description),d.push(o)}const m=a.docs,y=a.source;return{packageName:e,version:s.version||n,description:s.description,type:a.type,platform:a.platform,schemas:u,examples:l,...m?{docs:m}:{},...y?{source:y}:{},...f&&Object.keys(f).length>0?{hints:f}:{},hintKeys:p,exampleSummaries:d}}finally{clearTimeout(s)}}async function Qe(e,t){const n=await Xe(e,t);return{packageName:n.packageName,version:n.version,type:n.type,platform:n.platform,schemas:n.schemas,examples:n.examples,...n.hints?{hints:n.hints}:{}}}function Ye(e,t,n){const o=n?{...e,_hints:n}:e;return{content:[{type:"text",text:t??JSON.stringify(o,null,2)}],structuredContent:o}}function et(e,t){let n,o;if(e instanceof Error)n=e.message;else if("string"==typeof e)n=e;else if(e&&"object"==typeof e&&"issues"in e&&Array.isArray(e.issues)){const t=e.issues;n=t.map(e=>e.message).join("; "),o=t[0]?.path?.join(".")||void 0}else n=e&&"object"==typeof e&&"message"in e?String(e.message):"Unknown error";const r={error:n};return t&&(r.hint=t),o&&(r.path=o),{content:[{type:"text",text:JSON.stringify(r)}],structuredContent:r,isError:!0}}function tt(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function nt(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(nt);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(nt);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value:o,not:r}=e,s=function(e,t){switch(e){case"eq":return e=>String(e??"")===t;case"contains":return e=>String(e??"").includes(t);case"prefix":return e=>String(e??"").startsWith(t);case"suffix":return e=>String(e??"").endsWith(t);case"regex":{const e=new RegExp(t);return t=>e.test(String(t??""))}case"gt":{const e=Number(t);return t=>Number(t)>e}case"lt":{const e=Number(t);return t=>Number(t)<e}case"exists":return e=>null!=e}}(n,o);return e=>{const n=e[t],o=s(n);return r?!o:o}}(e)}//# sourceMappingURL=index.js.map
|
|
1
|
+
"use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,s=(e,n)=>{for(var o in n)t(e,o,{get:n[o],enumerable:!0})},i={};s(i,{Collector:()=>c,Const:()=>$,Context:()=>a,Destination:()=>u,ENV_MARKER_PREFIX:()=>H,Elb:()=>l,Flow:()=>f,Hint:()=>S,Hooks:()=>p,Level:()=>g,Lifecycle:()=>j,Logger:()=>d,Mapping:()=>m,Matcher:()=>x,On:()=>y,Request:()=>v,Simulation:()=>O,Source:()=>h,Store:()=>w,Transformer:()=>b,WalkerOS:()=>k,anonymizeIP:()=>A,assign:()=>Z,branch:()=>E,castToProperty:()=>Oe,castValue:()=>ce,clone:()=>re,compileMatcher:()=>nt,createDestination:()=>ue,createEvent:()=>le,createLogger:()=>he,createMockLogger:()=>_e,createRespond:()=>tt,debounce:()=>ge,fetchPackage:()=>Xe,fetchPackageSchema:()=>Qe,filterValues:()=>ke,getBrowser:()=>Ve,getBrowserVersion:()=>Fe,getByPath:()=>se,getDeviceType:()=>Be,getEvent:()=>fe,getFlowSettings:()=>W,getGrantedConsent:()=>ae,getHeaders:()=>De,getId:()=>pe,getMappingEvent:()=>$e,getMappingValue:()=>Ee,getMarketingParameters:()=>de,getOS:()=>Le,getOSVersion:()=>We,getPlatform:()=>B,isArguments:()=>K,isArray:()=>q,isBoolean:()=>J,isCommand:()=>G,isDefined:()=>X,isElementOrDocument:()=>Q,isFunction:()=>Y,isNumber:()=>ee,isObject:()=>te,isPropertyType:()=>je,isSameType:()=>ne,isString:()=>oe,mcpError:()=>et,mcpResult:()=>Ye,mergeContractSchemas:()=>C,mockEnv:()=>Ne,packageNameToVariable:()=>F,parseUserAgent:()=>Ie,processEventMapping:()=>Pe,requestToData:()=>Ce,requestToParameter:()=>Me,resolveContracts:()=>_,setByPath:()=>ie,throttle:()=>me,throwError:()=>P,transformData:()=>Re,traverseEnv:()=>Te,trim:()=>ze,tryCatch:()=>xe,tryCatchAsync:()=>Se,useHooks:()=>He,walkPath:()=>I,wrapCondition:()=>Ze,wrapFn:()=>Ke,wrapValidate:()=>qe}),module.exports=(e=i,((e,s,i,c)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let a of o(s))r.call(e,a)||a===i||t(e,a,{get:()=>s[a],enumerable:!(c=n(s,a))||c.enumerable});return e})(t({},"__esModule",{value:!0}),e));var c={},a={},u={},l={},f={},p={},d={};s(d,{Level:()=>g});var g=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(g||{}),m={},y={},b={},v={},h={},w={},j={},k={},O={},x={},S={},$={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function E(e,t){return{event:e,next:t}}function A(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function P(e){throw new Error(String(e))}var N=["globals","context","custom","user","consent"],T=new Set(["description","examples","title","$comment"]);function _(e){const t={},n=new Set;function o(r){if(t[r])return t[r];n.has(r)&&P(`Circular extends chain detected: ${[...n,r].join(" → ")}`);const s=e[r];s||P(`Contract "${r}" not found`),n.add(r);let i={};if(s.extends){i=function(e,t){const n={};void 0===e.tagging&&void 0===t.tagging||(n.tagging=t.tagging??e.tagging);void 0===e.description&&void 0===t.description||(n.description=t.description??e.description);for(const o of N){const r=e[o],s=t[o];r&&s?n[o]=C(r,s):(r||s)&&(n[o]={...r||s})}if(e.events||t.events){const o={},r=new Set([...Object.keys(e.events||{}),...Object.keys(t.events||{})]);for(const n of r){const r=e.events?.[n]||{},s=t.events?.[n]||{},i=new Set([...Object.keys(r),...Object.keys(s)]);o[n]={};for(const e of i){const t=r[e],i=s[e];o[n][e]=t&&i?C(t,i):{...t||i}}}n.events=o}return n}(o(s.extends),s)}else i={...s};if(delete i.extends,i.events&&(i.events=function(e){const t={};for(const n of Object.keys(e))if("*"!==n){t[n]={};for(const o of Object.keys(e[n]||{})){let r={};const s=e["*"]?.["*"];s&&(r=C(r,s));const i=e["*"]?.[o];i&&"*"!==o&&(r=C(r,i));const c=e[n]?.["*"];c&&"*"!==o&&(r=C(r,c));const a=e[n]?.[o];a&&(r=C(r,a)),t[n][o]=r}}e["*"]&&(t["*"]={...e["*"]});return t}(i.events)),i.events){const e={};for(const[t,n]of Object.entries(i.events)){e[t]={};for(const[o,r]of Object.entries(n))e[t][o]=M(r)}i.events=e}return n.delete(r),t[r]=i,i}for(const t of Object.keys(e))o(t);return t}function C(e,t){const n={...e};for(const o of Object.keys(t)){const r=e[o],s=t[o];"required"===o&&Array.isArray(r)&&Array.isArray(s)?n[o]=[...new Set([...r,...s])]:R(r)&&R(s)?n[o]=C(r,s):n[o]=s}return n}function M(e){const t={};for(const[n,o]of Object.entries(e))T.has(n)||(null===o||"object"!=typeof o||Array.isArray(o)?t[n]=o:t[n]=M(o));return t}function R(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function D(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function z(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var H="__WALKEROS_ENV:";function I(e,t,n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const s=o[e];if(null==r||"object"!=typeof r){const r=o.slice(0,e).join(".");P(`Path "${t}" not found in "${n}": "${s}" does not exist${r?` in "${r}"`:""}`)}const i=r;if(!(s in i)){const r=o.slice(0,e).join(".");P(`Path "${t}" not found in "${n}": "${s}" does not exist${r?` in "${r}"`:""}`)}r=i[s]}return r}function V(e,t,n,o,r){if("string"==typeof e){const s=e.match(/^\$def\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(s){const e=s[1],i=s[2];void 0===n[e]&&P(`Definition "${e}" not found`);let c=V(n[e],t,n,o,r);return i&&(c=I(c,i,`$def.${e}`)),c}const i=e.match(/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(i&&r){const e=i[1],t=i[2];e in r||P(`Contract "${e}" not found`);let n=r[e];return t&&(n=I(n,t,`$contract.${e}`)),n}let c=e.replace(/\$var\.([a-zA-Z_][a-zA-Z0-9_]*)/g,(e,n)=>{if(void 0!==t[n])return String(t[n]);P(`Variable "${n}" not found`)});return c=c.replace(/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,(e,t,n)=>o?.deferred?void 0!==n?`${H}${t}:${n}`:`${H}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==n?n:void P(`Environment variable "${t}" not found and no default provided`)),c}if(Array.isArray(e))return e.map(e=>V(e,t,n,o,r));if(null!==e&&"object"==typeof e){const s={};for(const[i,c]of Object.entries(e))s[i]=V(c,t,n,o,r);return s}return e}function F(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 L(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?F(e):void 0}function W(e,t,n){const o=Object.keys(e.flows);t||(1===o.length?t=o[0]:P(`Multiple flows found (${o.join(", ")}). Please specify a flow.`));const r=e.flows[t];r||P(`Flow "${t}" not found. Available: ${o.join(", ")}`);const s=JSON.parse(JSON.stringify(r));let i;if(e.contract){const t=D(e.variables,r.variables),o=z(e.definitions,r.definitions);i=_(V(e.contract,t,o,n))}if(s.sources)for(const[t,o]of Object.entries(s.sources)){const c=D(e.variables,r.variables,o.variables),a=z(e.definitions,r.definitions,o.definitions),u=V(o.config,c,a,n,i),l=V(o.env,c,a,n,i),f=L(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=f||p;s.sources[t]={package:o.package,config:u,env:l,primary:o.primary,variables:o.variables,definitions:o.definitions,next:o.next,code:d}}if(s.destinations)for(const[t,o]of Object.entries(s.destinations)){const c=D(e.variables,r.variables,o.variables),a=z(e.definitions,r.definitions,o.definitions),u=V(o.config,c,a,n,i),l=V(o.env,c,a,n,i),f=L(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=f||p;s.destinations[t]={package:o.package,config:u,env:l,variables:o.variables,definitions:o.definitions,before:o.before,code:d}}if(s.stores)for(const[t,o]of Object.entries(s.stores)){const c=D(e.variables,r.variables,o.variables),a=z(e.definitions,r.definitions,o.definitions),u=V(o.config,c,a,n,i),l=V(o.env,c,a,n,i),f=L(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=f||p;s.stores[t]={package:o.package,config:u,env:l,variables:o.variables,definitions:o.definitions,code:d}}if(s.transformers)for(const[t,o]of Object.entries(s.transformers)){const c=D(e.variables,r.variables,o.variables),a=z(e.definitions,r.definitions,o.definitions),u=V(o.config,c,a,n,i),l=V(o.env,c,a,n,i),f=L(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=f||p;s.transformers[t]={package:o.package,config:u,env:l,variables:o.variables,definitions:o.definitions,next:o.next,code:d}}if(s.collector){const t=D(e.variables,r.variables),o=z(e.definitions,r.definitions),c=V(s.collector,t,o,n,i);s.collector=c}return s}function B(e){return void 0!==e.web?"web":void 0!==e.server?"server":void P("Settings must have web or server key")}var U={merge:!0,shallow:!0,extend:!0};function Z(e,t={},n={}){n={...U,...n};const o=Object.entries(t).reduce((t,[o,r])=>{const s=e[o];return n.merge&&Array.isArray(s)&&Array.isArray(r)?t[o]=r.reduce((e,t)=>e.includes(t)?e:[...e,t],[...s]):(n.extend||o in e)&&(t[o]=r),t},{});return n.shallow?{...e,...o}:(Object.assign(e,o),e)}function K(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function q(e){return Array.isArray(e)}function J(e){return"boolean"==typeof e}function G(e){return"walker"===e}function X(e){return void 0!==e}function Q(e){return e===document||e instanceof Element}function Y(e){return"function"==typeof e}function ee(e){return"number"==typeof e&&!Number.isNaN(e)}function te(e){return"object"==typeof e&&null!==e&&!q(e)&&"[object Object]"===Object.prototype.toString.call(e)}function ne(e,t){return typeof e==typeof t}function oe(e){return"string"==typeof e}function re(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 o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=re(e[o],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(re(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 se(e,t="",n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const t=o[e];if("*"===t&&q(r)){const t=o.slice(e+1).join("."),s=[];for(const e of r){const o=se(e,t,n);s.push(o)}return s}if(r=r instanceof Object?r[t]:void 0,void 0===r)break}return X(r)?r:n}function ie(e,t,n){if(!te(e))return e;const o=re(e),r=t.split(".");let s=o;for(let e=0;e<r.length;e++){const t=r[e];e===r.length-1?s[t]=n:(t in s&&"object"==typeof s[t]&&null!==s[t]||(s[t]={}),s=s[t])}return o}function ce(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function ae(e,t={},n={}){const o={...t,...n},r={};let s=!e||0===Object.keys(e).length;return Object.keys(o).forEach(t=>{o[t]&&(r[t]=!0,e&&e[t]&&(s=!0))}),!!s&&r}function ue(e,t){const n={...e};return n.config=Z(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=Z(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=Z(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function le(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",o=e.count||1,r=Z({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}-${o}`,trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:n,count:o,version:{source:"3.0.1",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[t,n]=e.name.split(" ")??[];t&&n&&(r.entity=t,r.action=n)}return r}function fe(e="entity action",t={}){const n=t.timestamp||(new Date).setHours(0,13,37,0),o={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},r={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return le({...{"cart view":{data:{currency:"EUR",value:2*o.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...o.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:o.data.price+r.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...o,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...r,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",...o,context:{shopping:["complete",0]},nested:[]},{entity:"product",...r,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":{...o,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...o,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...o.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 pe(e=6){let t="";for(let n=36;t.length<e;)t+=(Math.random()*n|0).toString(n);return t}function de(e,t={}){const n="clickId",o={},r={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(Z(r,t)).forEach(([t,r])=>{const s=e.searchParams.get(t);s&&(r===n&&(r=t,o[n]=t),o[r]=s)}),o}function ge(e,t=1e3,n=!1){let o,r=null,s=!1;return(...i)=>new Promise(c=>{const a=n&&!s;r&&clearTimeout(r),r=setTimeout(()=>{r=null,n&&!s||(o=e(...i),c(o))},t),a&&(s=!0,o=e(...i),c(o))})}function me(e,t=1e3){let n=null;return function(...o){if(null===n)return n=setTimeout(()=>{n=null},t),e(...o)}}function ye(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function be(e,t){let n,o={};return e instanceof Error?(n=e.message,o.error=ye(e)):n=e,void 0!==t&&(t instanceof Error?o.error=ye(t):"object"==typeof t&&null!==t?(o={...o,...t},"error"in o&&o.error instanceof Error&&(o.error=ye(o.error))):o.value=t),{message:n,context:o}}var ve=(e,t,n,o)=>{const r=`${g[e]}${o.length>0?` [${o.join(":")}]`:""}`,s=Object.keys(n).length>0,i=0===e?console.error:1===e?console.warn:console.log;s?i(r,t,n):i(r,t)};function he(e={}){return we({level:void 0!==e.level?function(e){return"string"==typeof e?g[e]:e}(e.level):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]})}function we(e){const{level:t,handler:n,jsonHandler:o,scope:r}=e,s=(e,o,s)=>{if(e<=t){const t=be(o,s);n?n(e,t.message,t.context,r,ve):ve(e,t.message,t.context,r)}};return{error:(e,t)=>s(0,e,t),warn:(e,t)=>s(1,e,t),info:(e,t)=>s(2,e,t),debug:(e,t)=>s(3,e,t),throw:(e,t)=>{const o=be(e,t);throw n?n(0,o.message,o.context,r,ve):ve(0,o.message,o.context,r),new Error(o.message)},json:e=>{o?o(e):console.log(JSON.stringify(e,null,2))},scope:e=>we({level:t,handler:n,jsonHandler:o,scope:[...r,e]})}}function je(e){return J(e)||oe(e)||ee(e)||!X(e)||q(e)&&e.every(je)||te(e)&&Object.values(e).every(je)}function ke(e){return J(e)||oe(e)||ee(e)?e:K(e)?ke(Array.from(e)):q(e)?e.map(e=>ke(e)).filter(e=>void 0!==e):te(e)?Object.entries(e).reduce((e,[t,n])=>{const o=ke(n);return void 0!==o&&(e[t]=o),e},{}):void 0}function Oe(e){return je(e)?e:void 0}function xe(e,t,n){return function(...o){try{return e(...o)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function Se(e,t,n){return async function(...o){try{return await e(...o)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}async function $e(e,t){const[n,o]=(e.name||"").split(" ");if(!t||!n||!o)return{};let r,s="",i=n,c=o;const a=t=>{if(t)return(t=q(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[i]||(i="*");const u=t[i];return u&&(u[c]||(c="*"),r=a(u[c])),r||(i="*",c="*",r=a(t[i]?.[c])),r&&(s=`${i} ${c}`),{eventMapping:r,mappingKey:s}}async function Ee(e,t={},n={}){if(!X(e))return;const o=te(e)&&e.consent||n.consent||n.collector?.consent,r=q(t)?t:[t];for(const t of r){const r=await Se(Ae)(e,t,{...n,consent:o});if(X(r))return r}}async function Ae(e,t,n={}){const{collector:o,consent:r}=n;return(q(t)?t:[t]).reduce(async(t,s)=>{const i=await t;if(i)return i;const c=oe(s)?{key:s}:s;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 Se(a)(e,s,o))return;if(u&&!ae(u,r))return y;let b=X(y)?y:e;if(l&&(b=await Se(l)(e,s,n)),f&&(b=se(e,f,y)),p){const[t,o]=p,r="this"===t?[e]:await Ee(e,t,n);q(r)&&(b=(await Promise.all(r.map(e=>Ee(e,o,n)))).filter(X))}else d?b=await Object.entries(d).reduce(async(t,[o,r])=>{const s=await t,i=await Ee(e,r,n);return X(i)&&(s[o]=i),s},Promise.resolve({})):g&&(b=await Promise.all(g.map(t=>Ae(e,t,n))));m&&!await Se(m)(b)&&(b=void 0);const v=Oe(b);return X(v)?v:Oe(y)},Promise.resolve(void 0))}async function Pe(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,o])=>{const r=await Ee(e,o,{collector:n});e=ie(e,t,r)}));const{eventMapping:o,mappingKey:r}=await $e(e,t.mapping);o?.policy&&await Promise.all(Object.entries(o.policy).map(async([t,o])=>{const r=await Ee(e,o,{collector:n});e=ie(e,t,r)}));let s=t.data&&await Ee(e,t.data,{collector:n});if(o){if(o.ignore)return{event:e,data:s,mapping:o,mappingKey:r,ignore:!0};if(o.name&&(e.name=o.name),o.data){const t=o.data&&await Ee(e,o.data,{collector:n});s=te(s)&&te(t)?Z(s,t):t}}return{event:e,data:s,mapping:o,mappingKey:r,ignore:!1}}function Ne(e,t){const n=(e,o=[])=>new Proxy(e,{get(e,r){const s=e[r],i=[...o,r];return"function"==typeof s?(...e)=>t(i,e,s):s&&"object"==typeof s?n(s,i):s}});return n(e)}function Te(e,t){const n=(e,o=[])=>{if(!e||"object"!=typeof e)return e;const r=Array.isArray(e)?[]:{};for(const[s,i]of Object.entries(e)){const e=[...o,s];Array.isArray(r)?r[Number(s)]=t(i,e):r[s]=t(i,e),i&&"object"==typeof i&&"function"!=typeof i&&(Array.isArray(r)?r[Number(s)]=n(i,e):r[s]=n(i,e))}return r};return n(e)}function _e(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=_e();return e.push(n),n});return{error:jest.fn(),warn:jest.fn(),info:jest.fn(),debug:jest.fn(),throw:t,json:jest.fn(),scope:n,scopedLoggers:e}}function Ce(e){const t=String(e),n=t.split("?")[1]||t;return xe(()=>{const e=new URLSearchParams(n),t={};return e.forEach((e,n)=>{const o=n.split(/[[\]]+/).filter(Boolean);let r=t;o.forEach((t,n)=>{const s=n===o.length-1;if(q(r)){const i=parseInt(t,10);s?r[i]=ce(e):(r[i]=r[i]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[i])}else te(r)&&(s?r[t]=ce(e):(r[t]=r[t]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[t]))})}),t})()}function Me(e){if(!e)return"";const t=[],n=encodeURIComponent;function o(e,r){null!=r&&(q(r)?r.forEach((t,n)=>o(`${e}[${n}]`,t)):te(r)?Object.entries(r).forEach(([t,n])=>o(`${e}[${t}]`,n)):t.push(`${n(e)}=${n(String(r))}`))}return"object"!=typeof e?n(e):(Object.entries(e).forEach(([e,t])=>o(e,t)),t.join("&"))}function Re(e){return void 0===e||ne(e,"")?e:JSON.stringify(e)}function De(e={}){return Z({"Content-Type":"application/json; charset=utf-8"},e)}function ze(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function He(e,t,n){return function(...o){let r;const s="post"+t,i=n["pre"+t],c=n[s];return r=i?i({fn:e},...o):e(...o),c&&(r=c({fn:e,result:r},...o)),r}}function Ie(e){return e?{userAgent:e,browser:Ve(e),browserVersion:Fe(e),os:Le(e),osVersion:We(e),deviceType:Be(e)}:{}}function Ve(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 Fe(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 Le(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 We(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function Be(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 Ue(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function Ze(e){const t=Ue(e);return new Function("value","mapping","collector",t)}function Ke(e){const t=Ue(e);return new Function("value","mapping","options",t)}function qe(e){const t=Ue(e);return new Function("value",t)}var Je="https://cdn.jsdelivr.net/npm",Ge="dist/walkerOS.json";async function Xe(e,t){const n=t?.version||"latest",o=`${Je}/${e}@${n}`,r=new AbortController,s=setTimeout(()=>r.abort(),t?.timeout||1e4);try{const t=await fetch(`${o}/package.json`,{signal:r.signal});if(!t.ok)throw new Error(`Package "${e}" not found on npm (HTTP ${t.status})`);const s=await t.json(),i=await fetch(`${o}/${Ge}`,{signal:r.signal});if(!i.ok)throw new Error(`walkerOS.json not found at ${Ge} (HTTP ${i.status}). This package may not support the walkerOS.json convention yet.`);const c=await i.json(),a=c.$meta||{},u=c.schemas||{},l=c.examples||{},f=c.hints,p=f?Object.keys(f):[],d=[],g=l.step||{};for(const[e,t]of Object.entries(g)){const n=t,o={name:e};n?.description&&(o.description=n.description),d.push(o)}const m=a.docs,y=a.source;return{packageName:e,version:s.version||n,description:s.description,type:a.type,platform:a.platform,schemas:u,examples:l,...m?{docs:m}:{},...y?{source:y}:{},...f&&Object.keys(f).length>0?{hints:f}:{},hintKeys:p,exampleSummaries:d}}finally{clearTimeout(s)}}async function Qe(e,t){const n=await Xe(e,t);return{packageName:n.packageName,version:n.version,type:n.type,platform:n.platform,schemas:n.schemas,examples:n.examples,...n.hints?{hints:n.hints}:{}}}function Ye(e,t,n){const o=n?{...e,_hints:n}:e;return{content:[{type:"text",text:t??JSON.stringify(o,null,2)}],structuredContent:o}}function et(e,t){let n,o;if(e instanceof Error)n=e.message;else if("string"==typeof e)n=e;else if(e&&"object"==typeof e&&"issues"in e&&Array.isArray(e.issues)){const t=e.issues;n=t.map(e=>e.message).join("; "),o=t[0]?.path?.join(".")||void 0}else n=e&&"object"==typeof e&&"message"in e?String(e.message):"Unknown error";const r={error:n};return t&&(r.hint=t),o&&(r.path=o),{content:[{type:"text",text:JSON.stringify(r)}],structuredContent:r,isError:!0}}function tt(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function nt(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(nt);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(nt);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value:o,not:r}=e,s=function(e,t){switch(e){case"eq":return e=>String(e??"")===t;case"contains":return e=>String(e??"").includes(t);case"prefix":return e=>String(e??"").startsWith(t);case"suffix":return e=>String(e??"").endsWith(t);case"regex":{const e=new RegExp(t);return t=>e.test(String(t??""))}case"gt":{const e=Number(t);return t=>Number(t)>e}case"lt":{const e=Number(t);return t=>Number(t)<e}case"exists":return e=>null!=e}}(n,o);return e=>{const n=e[t],o=s(n);return r?!o:o}}(e)}//# sourceMappingURL=index.js.map
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e=Object.defineProperty,t={},n={},o={},r={},s={},i={},c={};((t,n)=>{for(var o in n)e(t,o,{get:n[o],enumerable:!0})})(c,{Level:()=>a});var a=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(a||{}),u={},f={},l={},p={},d={},g={},m={},b={},y={},v={},h={},w={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function j(e,t){return{event:e,next:t}}function k(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function O(e){throw new Error(String(e))}var x=["globals","context","custom","user","consent"],$=new Set(["description","examples","title","$comment"]);function S(e){const t={},n=new Set;function o(r){if(t[r])return t[r];n.has(r)&&O(`Circular extends chain detected: ${[...n,r].join(" → ")}`);const s=e[r];s||O(`Contract "${r}" not found`),n.add(r);let i={};if(s.extends){i=function(e,t){const n={};void 0===e.tagging&&void 0===t.tagging||(n.tagging=t.tagging??e.tagging);void 0===e.description&&void 0===t.description||(n.description=t.description??e.description);for(const o of x){const r=e[o],s=t[o];r&&s?n[o]=A(r,s):(r||s)&&(n[o]={...r||s})}if(e.events||t.events){const o={},r=new Set([...Object.keys(e.events||{}),...Object.keys(t.events||{})]);for(const n of r){const r=e.events?.[n]||{},s=t.events?.[n]||{},i=new Set([...Object.keys(r),...Object.keys(s)]);o[n]={};for(const e of i){const t=r[e],i=s[e];o[n][e]=t&&i?A(t,i):{...t||i}}}n.events=o}return n}(o(s.extends),s)}else i={...s};if(delete i.extends,i.events&&(i.events=function(e){const t={};for(const n of Object.keys(e))if("*"!==n){t[n]={};for(const o of Object.keys(e[n]||{})){let r={};const s=e["*"]?.["*"];s&&(r=A(r,s));const i=e["*"]?.[o];i&&"*"!==o&&(r=A(r,i));const c=e[n]?.["*"];c&&"*"!==o&&(r=A(r,c));const a=e[n]?.[o];a&&(r=A(r,a)),t[n][o]=r}}e["*"]&&(t["*"]={...e["*"]});return t}(i.events)),i.events){const e={};for(const[t,n]of Object.entries(i.events)){e[t]={};for(const[o,r]of Object.entries(n))e[t][o]=E(r)}i.events=e}return n.delete(r),t[r]=i,i}for(const t of Object.keys(e))o(t);return t}function A(e,t){const n={...e};for(const o of Object.keys(t)){const r=e[o],s=t[o];"required"===o&&Array.isArray(r)&&Array.isArray(s)?n[o]=[...new Set([...r,...s])]:N(r)&&N(s)?n[o]=A(r,s):n[o]=s}return n}function E(e){const t={};for(const[n,o]of Object.entries(e))$.has(n)||(null===o||"object"!=typeof o||Array.isArray(o)?t[n]=o:t[n]=E(o));return t}function N(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function P(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function _(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var T="__WALKEROS_ENV:";function C(e,t,n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const s=o[e];if(null==r||"object"!=typeof r){const r=o.slice(0,e).join(".");O(`Path "${t}" not found in "${n}": "${s}" does not exist${r?` in "${r}"`:""}`)}const i=r;if(!(s in i)){const r=o.slice(0,e).join(".");O(`Path "${t}" not found in "${n}": "${s}" does not exist${r?` in "${r}"`:""}`)}r=i[s]}return r}function R(e,t,n,o,r){if("string"==typeof e){const s=e.match(/^\$def\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(s){const e=s[1],i=s[2];void 0===n[e]&&O(`Definition "${e}" not found`);let c=R(n[e],t,n,o,r);return i&&(c=C(c,i,`$def.${e}`)),c}const i=e.match(/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(i&&r){const e=i[1],t=i[2];e in r||O(`Contract "${e}" not found`);let n=r[e];return t&&(n=C(n,t,`$contract.${e}`)),n}let c=e.replace(/\$var\.([a-zA-Z_][a-zA-Z0-9_]*)/g,(e,n)=>{if(void 0!==t[n])return String(t[n]);O(`Variable "${n}" not found`)});return c=c.replace(/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,(e,t,n)=>o?.deferred?void 0!==n?`${T}${t}:${n}`:`${T}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==n?n:void O(`Environment variable "${t}" not found and no default provided`)),c}if(Array.isArray(e))return e.map(e=>R(e,t,n,o,r));if(null!==e&&"object"==typeof e){const s={};for(const[i,c]of Object.entries(e))s[i]=R(c,t,n,o,r);return s}return e}function M(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 z(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?M(e):void 0}function H(e,t,n){const o=Object.keys(e.flows);t||(1===o.length?t=o[0]:O(`Multiple flows found (${o.join(", ")}). Please specify a flow.`));const r=e.flows[t];r||O(`Flow "${t}" not found. Available: ${o.join(", ")}`);const s=JSON.parse(JSON.stringify(r));let i;if(e.contract){const t=P(e.variables,r.variables),o=_(e.definitions,r.definitions);i=S(R(e.contract,t,o,n))}if(s.sources)for(const[t,o]of Object.entries(s.sources)){const c=P(e.variables,r.variables,o.variables),a=_(e.definitions,r.definitions,o.definitions),u=R(o.config,c,a,n,i),f=R(o.env,c,a,n,i),l=z(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;s.sources[t]={package:o.package,config:u,env:f,primary:o.primary,variables:o.variables,definitions:o.definitions,next:o.next,code:d}}if(s.destinations)for(const[t,o]of Object.entries(s.destinations)){const c=P(e.variables,r.variables,o.variables),a=_(e.definitions,r.definitions,o.definitions),u=R(o.config,c,a,n,i),f=R(o.env,c,a,n,i),l=z(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;s.destinations[t]={package:o.package,config:u,env:f,variables:o.variables,definitions:o.definitions,before:o.before,code:d}}if(s.stores)for(const[t,o]of Object.entries(s.stores)){const c=P(e.variables,r.variables,o.variables),a=_(e.definitions,r.definitions,o.definitions),u=R(o.config,c,a,n,i),f=R(o.env,c,a,n,i),l=z(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;s.stores[t]={package:o.package,config:u,env:f,variables:o.variables,definitions:o.definitions,code:d}}if(s.transformers)for(const[t,o]of Object.entries(s.transformers)){const c=P(e.variables,r.variables,o.variables),a=_(e.definitions,r.definitions,o.definitions),u=R(o.config,c,a,n,i),f=R(o.env,c,a,n,i),l=z(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;s.transformers[t]={package:o.package,config:u,env:f,variables:o.variables,definitions:o.definitions,next:o.next,code:d}}if(s.collector){const t=P(e.variables,r.variables),o=_(e.definitions,r.definitions),c=R(s.collector,t,o,n,i);s.collector=c}return s}function D(e){return void 0!==e.web?"web":void 0!==e.server?"server":void O("Settings must have web or server key")}var I={merge:!0,shallow:!0,extend:!0};function W(e,t={},n={}){n={...I,...n};const o=Object.entries(t).reduce((t,[o,r])=>{const s=e[o];return n.merge&&Array.isArray(s)&&Array.isArray(r)?t[o]=r.reduce((e,t)=>e.includes(t)?e:[...e,t],[...s]):(n.extend||o in e)&&(t[o]=r),t},{});return n.shallow?{...e,...o}:(Object.assign(e,o),e)}function F(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function U(e){return Array.isArray(e)}function L(e){return"boolean"==typeof e}function Z(e){return"walker"===e}function V(e){return void 0!==e}function B(e){return e===document||e instanceof Element}function J(e){return"function"==typeof e}function K(e){return"number"==typeof e&&!Number.isNaN(e)}function q(e){return"object"==typeof e&&null!==e&&!U(e)&&"[object Object]"===Object.prototype.toString.call(e)}function G(e,t){return typeof e==typeof t}function X(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 o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=Q(e[o],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 Y(e,t="",n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const t=o[e];if("*"===t&&U(r)){const t=o.slice(e+1).join("."),s=[];for(const e of r){const o=Y(e,t,n);s.push(o)}return s}if(r=r instanceof Object?r[t]:void 0,void 0===r)break}return V(r)?r:n}function ee(e,t,n){if(!q(e))return e;const o=Q(e),r=t.split(".");let s=o;for(let e=0;e<r.length;e++){const t=r[e];e===r.length-1?s[t]=n:(t in s&&"object"==typeof s[t]&&null!==s[t]||(s[t]={}),s=s[t])}return o}function te(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function ne(e,t={},n={}){const o={...t,...n},r={};let s=!e||0===Object.keys(e).length;return Object.keys(o).forEach(t=>{o[t]&&(r[t]=!0,e&&e[t]&&(s=!0))}),!!s&&r}function oe(e,t){const n={...e};return n.config=W(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=W(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=W(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function re(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",o=e.count||1,r=W({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}-${o}`,trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:n,count:o,version:{source:"2.1.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&&(r.entity=t,r.action=n)}return r}function se(e="entity action",t={}){const n=t.timestamp||(new Date).setHours(0,13,37,0),o={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},r={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return re({...{"cart view":{data:{currency:"EUR",value:2*o.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...o.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:o.data.price+r.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...o,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...r,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",...o,context:{shopping:["complete",0]},nested:[]},{entity:"product",...r,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":{...o,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...o,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...o.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 ie(e=6){let t="";for(let n=36;t.length<e;)t+=(Math.random()*n|0).toString(n);return t}function ce(e,t={}){const n="clickId",o={},r={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(W(r,t)).forEach(([t,r])=>{const s=e.searchParams.get(t);s&&(r===n&&(r=t,o[n]=t),o[r]=s)}),o}function ae(e,t=1e3,n=!1){let o,r=null,s=!1;return(...i)=>new Promise(c=>{const a=n&&!s;r&&clearTimeout(r),r=setTimeout(()=>{r=null,n&&!s||(o=e(...i),c(o))},t),a&&(s=!0,o=e(...i),c(o))})}function ue(e,t=1e3){let n=null;return function(...o){if(null===n)return n=setTimeout(()=>{n=null},t),e(...o)}}function fe(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function le(e,t){let n,o={};return e instanceof Error?(n=e.message,o.error=fe(e)):n=e,void 0!==t&&(t instanceof Error?o.error=fe(t):"object"==typeof t&&null!==t?(o={...o,...t},"error"in o&&o.error instanceof Error&&(o.error=fe(o.error))):o.value=t),{message:n,context:o}}var pe=(e,t,n,o)=>{const r=`${a[e]}${o.length>0?` [${o.join(":")}]`:""}`,s=Object.keys(n).length>0,i=0===e?console.error:1===e?console.warn:console.log;s?i(r,t,n):i(r,t)};function de(e={}){return ge({level:void 0!==e.level?function(e){return"string"==typeof e?a[e]:e}(e.level):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]})}function ge(e){const{level:t,handler:n,jsonHandler:o,scope:r}=e,s=(e,o,s)=>{if(e<=t){const t=le(o,s);n?n(e,t.message,t.context,r,pe):pe(e,t.message,t.context,r)}};return{error:(e,t)=>s(0,e,t),warn:(e,t)=>s(1,e,t),info:(e,t)=>s(2,e,t),debug:(e,t)=>s(3,e,t),throw:(e,t)=>{const o=le(e,t);throw n?n(0,o.message,o.context,r,pe):pe(0,o.message,o.context,r),new Error(o.message)},json:e=>{o?o(e):console.log(JSON.stringify(e,null,2))},scope:e=>ge({level:t,handler:n,jsonHandler:o,scope:[...r,e]})}}function me(e){return L(e)||X(e)||K(e)||!V(e)||U(e)&&e.every(me)||q(e)&&Object.values(e).every(me)}function be(e){return L(e)||X(e)||K(e)?e:F(e)?be(Array.from(e)):U(e)?e.map(e=>be(e)).filter(e=>void 0!==e):q(e)?Object.entries(e).reduce((e,[t,n])=>{const o=be(n);return void 0!==o&&(e[t]=o),e},{}):void 0}function ye(e){return me(e)?e:void 0}function ve(e,t,n){return function(...o){try{return e(...o)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function he(e,t,n){return async function(...o){try{return await e(...o)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}async function we(e,t){const[n,o]=(e.name||"").split(" ");if(!t||!n||!o)return{};let r,s="",i=n,c=o;const a=t=>{if(t)return(t=U(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[i]||(i="*");const u=t[i];return u&&(u[c]||(c="*"),r=a(u[c])),r||(i="*",c="*",r=a(t[i]?.[c])),r&&(s=`${i} ${c}`),{eventMapping:r,mappingKey:s}}async function je(e,t={},n={}){if(!V(e))return;const o=q(e)&&e.consent||n.consent||n.collector?.consent,r=U(t)?t:[t];for(const t of r){const r=await he(ke)(e,t,{...n,consent:o});if(V(r))return r}}async function ke(e,t,n={}){const{collector:o,consent:r}=n;return(U(t)?t:[t]).reduce(async(t,s)=>{const i=await t;if(i)return i;const c=X(s)?{key:s}:s;if(!Object.keys(c).length)return;const{condition:a,consent:u,fn:f,key:l,loop:p,map:d,set:g,validate:m,value:b}=c;if(a&&!await he(a)(e,s,o))return;if(u&&!ne(u,r))return b;let y=V(b)?b:e;if(f&&(y=await he(f)(e,s,n)),l&&(y=Y(e,l,b)),p){const[t,o]=p,r="this"===t?[e]:await je(e,t,n);U(r)&&(y=(await Promise.all(r.map(e=>je(e,o,n)))).filter(V))}else d?y=await Object.entries(d).reduce(async(t,[o,r])=>{const s=await t,i=await je(e,r,n);return V(i)&&(s[o]=i),s},Promise.resolve({})):g&&(y=await Promise.all(g.map(t=>ke(e,t,n))));m&&!await he(m)(y)&&(y=void 0);const v=ye(y);return V(v)?v:ye(b)},Promise.resolve(void 0))}async function Oe(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,o])=>{const r=await je(e,o,{collector:n});e=ee(e,t,r)}));const{eventMapping:o,mappingKey:r}=await we(e,t.mapping);o?.policy&&await Promise.all(Object.entries(o.policy).map(async([t,o])=>{const r=await je(e,o,{collector:n});e=ee(e,t,r)}));let s=t.data&&await je(e,t.data,{collector:n});if(o){if(o.ignore)return{event:e,data:s,mapping:o,mappingKey:r,ignore:!0};if(o.name&&(e.name=o.name),o.data){const t=o.data&&await je(e,o.data,{collector:n});s=q(s)&&q(t)?W(s,t):t}}return{event:e,data:s,mapping:o,mappingKey:r,ignore:!1}}function xe(e,t){const n=(e,o=[])=>new Proxy(e,{get(e,r){const s=e[r],i=[...o,r];return"function"==typeof s?(...e)=>t(i,e,s):s&&"object"==typeof s?n(s,i):s}});return n(e)}function $e(e,t){const n=(e,o=[])=>{if(!e||"object"!=typeof e)return e;const r=Array.isArray(e)?[]:{};for(const[s,i]of Object.entries(e)){const e=[...o,s];Array.isArray(r)?r[Number(s)]=t(i,e):r[s]=t(i,e),i&&"object"==typeof i&&"function"!=typeof i&&(Array.isArray(r)?r[Number(s)]=n(i,e):r[s]=n(i,e))}return r};return n(e)}function Se(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=Se();return e.push(n),n});return{error:jest.fn(),warn:jest.fn(),info:jest.fn(),debug:jest.fn(),throw:t,json:jest.fn(),scope:n,scopedLoggers:e}}function Ae(e){const t=String(e),n=t.split("?")[1]||t;return ve(()=>{const e=new URLSearchParams(n),t={};return e.forEach((e,n)=>{const o=n.split(/[[\]]+/).filter(Boolean);let r=t;o.forEach((t,n)=>{const s=n===o.length-1;if(U(r)){const i=parseInt(t,10);s?r[i]=te(e):(r[i]=r[i]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[i])}else q(r)&&(s?r[t]=te(e):(r[t]=r[t]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[t]))})}),t})()}function Ee(e){if(!e)return"";const t=[],n=encodeURIComponent;function o(e,r){null!=r&&(U(r)?r.forEach((t,n)=>o(`${e}[${n}]`,t)):q(r)?Object.entries(r).forEach(([t,n])=>o(`${e}[${t}]`,n)):t.push(`${n(e)}=${n(String(r))}`))}return"object"!=typeof e?n(e):(Object.entries(e).forEach(([e,t])=>o(e,t)),t.join("&"))}function Ne(e){return void 0===e||G(e,"")?e:JSON.stringify(e)}function Pe(e={}){return W({"Content-Type":"application/json; charset=utf-8"},e)}function _e(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function Te(e,t,n){return function(...o){let r;const s="post"+t,i=n["pre"+t],c=n[s];return r=i?i({fn:e},...o):e(...o),c&&(r=c({fn:e,result:r},...o)),r}}function Ce(e){return e?{userAgent:e,browser:Re(e),browserVersion:Me(e),os:ze(e),osVersion:He(e),deviceType:De(e)}:{}}function Re(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 ze(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 He(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function De(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 Ie(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function We(e){const t=Ie(e);return new Function("value","mapping","collector",t)}function Fe(e){const t=Ie(e);return new Function("value","mapping","options",t)}function Ue(e){const t=Ie(e);return new Function("value",t)}var Le="dist/walkerOS.json";async function Ze(e,t){const n=t?.version||"latest",o=`https://cdn.jsdelivr.net/npm/${e}@${n}`,r=new AbortController,s=setTimeout(()=>r.abort(),t?.timeout||1e4);try{const t=await fetch(`${o}/package.json`,{signal:r.signal});if(!t.ok)throw new Error(`Package "${e}" not found on npm (HTTP ${t.status})`);const s=await t.json(),i=await fetch(`${o}/${Le}`,{signal:r.signal});if(!i.ok)throw new Error(`walkerOS.json not found at ${Le} (HTTP ${i.status}). This package may not support the walkerOS.json convention yet.`);const c=await i.json(),a=c.$meta||{},u=c.schemas||{},f=c.examples||{},l=c.hints,p=l?Object.keys(l):[],d=[],g=f.step||{};for(const[e,t]of Object.entries(g)){const n=t,o={name:e};n?.description&&(o.description=n.description),d.push(o)}const m=a.docs,b=a.source;return{packageName:e,version:s.version||n,description:s.description,type:a.type,platform:a.platform,schemas:u,examples:f,...m?{docs:m}:{},...b?{source:b}:{},...l&&Object.keys(l).length>0?{hints:l}:{},hintKeys:p,exampleSummaries:d}}finally{clearTimeout(s)}}async function Ve(e,t){const n=await Ze(e,t);return{packageName:n.packageName,version:n.version,type:n.type,platform:n.platform,schemas:n.schemas,examples:n.examples,...n.hints?{hints:n.hints}:{}}}function Be(e,t,n){const o=n?{...e,_hints:n}:e;return{content:[{type:"text",text:t??JSON.stringify(o,null,2)}],structuredContent:o}}function Je(e,t){let n,o;if(e instanceof Error)n=e.message;else if("string"==typeof e)n=e;else if(e&&"object"==typeof e&&"issues"in e&&Array.isArray(e.issues)){const t=e.issues;n=t.map(e=>e.message).join("; "),o=t[0]?.path?.join(".")||void 0}else n=e&&"object"==typeof e&&"message"in e?String(e.message):"Unknown error";const r={error:n};return t&&(r.hint=t),o&&(r.path=o),{content:[{type:"text",text:JSON.stringify(r)}],structuredContent:r,isError:!0}}function Ke(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function qe(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(qe);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(qe);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value:o,not:r}=e,s=function(e,t){switch(e){case"eq":return e=>String(e??"")===t;case"contains":return e=>String(e??"").includes(t);case"prefix":return e=>String(e??"").startsWith(t);case"suffix":return e=>String(e??"").endsWith(t);case"regex":{const e=new RegExp(t);return t=>e.test(String(t??""))}case"gt":{const e=Number(t);return t=>Number(t)>e}case"lt":{const e=Number(t);return t=>Number(t)<e}case"exists":return e=>null!=e}}(n,o);return e=>{const n=e[t],o=s(n);return r?!o:o}}(e)}export{t as Collector,w as Const,n as Context,o as Destination,T as ENV_MARKER_PREFIX,r as Elb,s as Flow,h as Hint,i as Hooks,a as Level,m as Lifecycle,c as Logger,u as Mapping,v as Matcher,f as On,p as Request,y as Simulation,d as Source,g as Store,l as Transformer,b as WalkerOS,k as anonymizeIP,W as assign,j as branch,ye as castToProperty,te as castValue,Q as clone,qe as compileMatcher,oe as createDestination,re as createEvent,de as createLogger,Se as createMockLogger,Ke as createRespond,ae as debounce,Ze as fetchPackage,Ve as fetchPackageSchema,be as filterValues,Re as getBrowser,Me as getBrowserVersion,Y as getByPath,De as getDeviceType,se as getEvent,H as getFlowSettings,ne as getGrantedConsent,Pe as getHeaders,ie as getId,we as getMappingEvent,je as getMappingValue,ce as getMarketingParameters,ze as getOS,He as getOSVersion,D as getPlatform,F as isArguments,U as isArray,L as isBoolean,Z as isCommand,V as isDefined,B as isElementOrDocument,J as isFunction,K as isNumber,q as isObject,me as isPropertyType,G as isSameType,X as isString,Je as mcpError,Be as mcpResult,A as mergeContractSchemas,xe as mockEnv,M as packageNameToVariable,Ce as parseUserAgent,Oe as processEventMapping,Ae as requestToData,Ee as requestToParameter,S as resolveContracts,ee as setByPath,ue as throttle,O as throwError,Ne as transformData,$e as traverseEnv,_e as trim,ve as tryCatch,he as tryCatchAsync,Te as useHooks,C as walkPath,We as wrapCondition,Fe as wrapFn,Ue as wrapValidate};//# sourceMappingURL=index.mjs.map
|
|
1
|
+
var e=Object.defineProperty,t={},n={},o={},r={},s={},i={},c={};((t,n)=>{for(var o in n)e(t,o,{get:n[o],enumerable:!0})})(c,{Level:()=>a});var a=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(a||{}),u={},f={},l={},p={},d={},g={},m={},b={},y={},v={},h={},w={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function j(e,t){return{event:e,next:t}}function k(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function O(e){throw new Error(String(e))}var x=["globals","context","custom","user","consent"],$=new Set(["description","examples","title","$comment"]);function S(e){const t={},n=new Set;function o(r){if(t[r])return t[r];n.has(r)&&O(`Circular extends chain detected: ${[...n,r].join(" → ")}`);const s=e[r];s||O(`Contract "${r}" not found`),n.add(r);let i={};if(s.extends){i=function(e,t){const n={};void 0===e.tagging&&void 0===t.tagging||(n.tagging=t.tagging??e.tagging);void 0===e.description&&void 0===t.description||(n.description=t.description??e.description);for(const o of x){const r=e[o],s=t[o];r&&s?n[o]=A(r,s):(r||s)&&(n[o]={...r||s})}if(e.events||t.events){const o={},r=new Set([...Object.keys(e.events||{}),...Object.keys(t.events||{})]);for(const n of r){const r=e.events?.[n]||{},s=t.events?.[n]||{},i=new Set([...Object.keys(r),...Object.keys(s)]);o[n]={};for(const e of i){const t=r[e],i=s[e];o[n][e]=t&&i?A(t,i):{...t||i}}}n.events=o}return n}(o(s.extends),s)}else i={...s};if(delete i.extends,i.events&&(i.events=function(e){const t={};for(const n of Object.keys(e))if("*"!==n){t[n]={};for(const o of Object.keys(e[n]||{})){let r={};const s=e["*"]?.["*"];s&&(r=A(r,s));const i=e["*"]?.[o];i&&"*"!==o&&(r=A(r,i));const c=e[n]?.["*"];c&&"*"!==o&&(r=A(r,c));const a=e[n]?.[o];a&&(r=A(r,a)),t[n][o]=r}}e["*"]&&(t["*"]={...e["*"]});return t}(i.events)),i.events){const e={};for(const[t,n]of Object.entries(i.events)){e[t]={};for(const[o,r]of Object.entries(n))e[t][o]=E(r)}i.events=e}return n.delete(r),t[r]=i,i}for(const t of Object.keys(e))o(t);return t}function A(e,t){const n={...e};for(const o of Object.keys(t)){const r=e[o],s=t[o];"required"===o&&Array.isArray(r)&&Array.isArray(s)?n[o]=[...new Set([...r,...s])]:N(r)&&N(s)?n[o]=A(r,s):n[o]=s}return n}function E(e){const t={};for(const[n,o]of Object.entries(e))$.has(n)||(null===o||"object"!=typeof o||Array.isArray(o)?t[n]=o:t[n]=E(o));return t}function N(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function P(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function _(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var T="__WALKEROS_ENV:";function C(e,t,n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const s=o[e];if(null==r||"object"!=typeof r){const r=o.slice(0,e).join(".");O(`Path "${t}" not found in "${n}": "${s}" does not exist${r?` in "${r}"`:""}`)}const i=r;if(!(s in i)){const r=o.slice(0,e).join(".");O(`Path "${t}" not found in "${n}": "${s}" does not exist${r?` in "${r}"`:""}`)}r=i[s]}return r}function R(e,t,n,o,r){if("string"==typeof e){const s=e.match(/^\$def\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(s){const e=s[1],i=s[2];void 0===n[e]&&O(`Definition "${e}" not found`);let c=R(n[e],t,n,o,r);return i&&(c=C(c,i,`$def.${e}`)),c}const i=e.match(/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(i&&r){const e=i[1],t=i[2];e in r||O(`Contract "${e}" not found`);let n=r[e];return t&&(n=C(n,t,`$contract.${e}`)),n}let c=e.replace(/\$var\.([a-zA-Z_][a-zA-Z0-9_]*)/g,(e,n)=>{if(void 0!==t[n])return String(t[n]);O(`Variable "${n}" not found`)});return c=c.replace(/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,(e,t,n)=>o?.deferred?void 0!==n?`${T}${t}:${n}`:`${T}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==n?n:void O(`Environment variable "${t}" not found and no default provided`)),c}if(Array.isArray(e))return e.map(e=>R(e,t,n,o,r));if(null!==e&&"object"==typeof e){const s={};for(const[i,c]of Object.entries(e))s[i]=R(c,t,n,o,r);return s}return e}function M(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 z(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?M(e):void 0}function H(e,t,n){const o=Object.keys(e.flows);t||(1===o.length?t=o[0]:O(`Multiple flows found (${o.join(", ")}). Please specify a flow.`));const r=e.flows[t];r||O(`Flow "${t}" not found. Available: ${o.join(", ")}`);const s=JSON.parse(JSON.stringify(r));let i;if(e.contract){const t=P(e.variables,r.variables),o=_(e.definitions,r.definitions);i=S(R(e.contract,t,o,n))}if(s.sources)for(const[t,o]of Object.entries(s.sources)){const c=P(e.variables,r.variables,o.variables),a=_(e.definitions,r.definitions,o.definitions),u=R(o.config,c,a,n,i),f=R(o.env,c,a,n,i),l=z(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;s.sources[t]={package:o.package,config:u,env:f,primary:o.primary,variables:o.variables,definitions:o.definitions,next:o.next,code:d}}if(s.destinations)for(const[t,o]of Object.entries(s.destinations)){const c=P(e.variables,r.variables,o.variables),a=_(e.definitions,r.definitions,o.definitions),u=R(o.config,c,a,n,i),f=R(o.env,c,a,n,i),l=z(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;s.destinations[t]={package:o.package,config:u,env:f,variables:o.variables,definitions:o.definitions,before:o.before,code:d}}if(s.stores)for(const[t,o]of Object.entries(s.stores)){const c=P(e.variables,r.variables,o.variables),a=_(e.definitions,r.definitions,o.definitions),u=R(o.config,c,a,n,i),f=R(o.env,c,a,n,i),l=z(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;s.stores[t]={package:o.package,config:u,env:f,variables:o.variables,definitions:o.definitions,code:d}}if(s.transformers)for(const[t,o]of Object.entries(s.transformers)){const c=P(e.variables,r.variables,o.variables),a=_(e.definitions,r.definitions,o.definitions),u=R(o.config,c,a,n,i),f=R(o.env,c,a,n,i),l=z(o.package,o.code,s.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;s.transformers[t]={package:o.package,config:u,env:f,variables:o.variables,definitions:o.definitions,next:o.next,code:d}}if(s.collector){const t=P(e.variables,r.variables),o=_(e.definitions,r.definitions),c=R(s.collector,t,o,n,i);s.collector=c}return s}function D(e){return void 0!==e.web?"web":void 0!==e.server?"server":void O("Settings must have web or server key")}var I={merge:!0,shallow:!0,extend:!0};function W(e,t={},n={}){n={...I,...n};const o=Object.entries(t).reduce((t,[o,r])=>{const s=e[o];return n.merge&&Array.isArray(s)&&Array.isArray(r)?t[o]=r.reduce((e,t)=>e.includes(t)?e:[...e,t],[...s]):(n.extend||o in e)&&(t[o]=r),t},{});return n.shallow?{...e,...o}:(Object.assign(e,o),e)}function F(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function U(e){return Array.isArray(e)}function L(e){return"boolean"==typeof e}function Z(e){return"walker"===e}function V(e){return void 0!==e}function B(e){return e===document||e instanceof Element}function J(e){return"function"==typeof e}function K(e){return"number"==typeof e&&!Number.isNaN(e)}function q(e){return"object"==typeof e&&null!==e&&!U(e)&&"[object Object]"===Object.prototype.toString.call(e)}function G(e,t){return typeof e==typeof t}function X(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 o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=Q(e[o],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 Y(e,t="",n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const t=o[e];if("*"===t&&U(r)){const t=o.slice(e+1).join("."),s=[];for(const e of r){const o=Y(e,t,n);s.push(o)}return s}if(r=r instanceof Object?r[t]:void 0,void 0===r)break}return V(r)?r:n}function ee(e,t,n){if(!q(e))return e;const o=Q(e),r=t.split(".");let s=o;for(let e=0;e<r.length;e++){const t=r[e];e===r.length-1?s[t]=n:(t in s&&"object"==typeof s[t]&&null!==s[t]||(s[t]={}),s=s[t])}return o}function te(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function ne(e,t={},n={}){const o={...t,...n},r={};let s=!e||0===Object.keys(e).length;return Object.keys(o).forEach(t=>{o[t]&&(r[t]=!0,e&&e[t]&&(s=!0))}),!!s&&r}function oe(e,t){const n={...e};return n.config=W(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=W(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=W(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function re(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",o=e.count||1,r=W({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}-${o}`,trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:n,count:o,version:{source:"3.0.1",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[t,n]=e.name.split(" ")??[];t&&n&&(r.entity=t,r.action=n)}return r}function se(e="entity action",t={}){const n=t.timestamp||(new Date).setHours(0,13,37,0),o={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},r={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return re({...{"cart view":{data:{currency:"EUR",value:2*o.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...o.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:o.data.price+r.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...o,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...r,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",...o,context:{shopping:["complete",0]},nested:[]},{entity:"product",...r,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":{...o,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...o,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...o.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 ie(e=6){let t="";for(let n=36;t.length<e;)t+=(Math.random()*n|0).toString(n);return t}function ce(e,t={}){const n="clickId",o={},r={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(W(r,t)).forEach(([t,r])=>{const s=e.searchParams.get(t);s&&(r===n&&(r=t,o[n]=t),o[r]=s)}),o}function ae(e,t=1e3,n=!1){let o,r=null,s=!1;return(...i)=>new Promise(c=>{const a=n&&!s;r&&clearTimeout(r),r=setTimeout(()=>{r=null,n&&!s||(o=e(...i),c(o))},t),a&&(s=!0,o=e(...i),c(o))})}function ue(e,t=1e3){let n=null;return function(...o){if(null===n)return n=setTimeout(()=>{n=null},t),e(...o)}}function fe(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function le(e,t){let n,o={};return e instanceof Error?(n=e.message,o.error=fe(e)):n=e,void 0!==t&&(t instanceof Error?o.error=fe(t):"object"==typeof t&&null!==t?(o={...o,...t},"error"in o&&o.error instanceof Error&&(o.error=fe(o.error))):o.value=t),{message:n,context:o}}var pe=(e,t,n,o)=>{const r=`${a[e]}${o.length>0?` [${o.join(":")}]`:""}`,s=Object.keys(n).length>0,i=0===e?console.error:1===e?console.warn:console.log;s?i(r,t,n):i(r,t)};function de(e={}){return ge({level:void 0!==e.level?function(e){return"string"==typeof e?a[e]:e}(e.level):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]})}function ge(e){const{level:t,handler:n,jsonHandler:o,scope:r}=e,s=(e,o,s)=>{if(e<=t){const t=le(o,s);n?n(e,t.message,t.context,r,pe):pe(e,t.message,t.context,r)}};return{error:(e,t)=>s(0,e,t),warn:(e,t)=>s(1,e,t),info:(e,t)=>s(2,e,t),debug:(e,t)=>s(3,e,t),throw:(e,t)=>{const o=le(e,t);throw n?n(0,o.message,o.context,r,pe):pe(0,o.message,o.context,r),new Error(o.message)},json:e=>{o?o(e):console.log(JSON.stringify(e,null,2))},scope:e=>ge({level:t,handler:n,jsonHandler:o,scope:[...r,e]})}}function me(e){return L(e)||X(e)||K(e)||!V(e)||U(e)&&e.every(me)||q(e)&&Object.values(e).every(me)}function be(e){return L(e)||X(e)||K(e)?e:F(e)?be(Array.from(e)):U(e)?e.map(e=>be(e)).filter(e=>void 0!==e):q(e)?Object.entries(e).reduce((e,[t,n])=>{const o=be(n);return void 0!==o&&(e[t]=o),e},{}):void 0}function ye(e){return me(e)?e:void 0}function ve(e,t,n){return function(...o){try{return e(...o)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function he(e,t,n){return async function(...o){try{return await e(...o)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}async function we(e,t){const[n,o]=(e.name||"").split(" ");if(!t||!n||!o)return{};let r,s="",i=n,c=o;const a=t=>{if(t)return(t=U(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[i]||(i="*");const u=t[i];return u&&(u[c]||(c="*"),r=a(u[c])),r||(i="*",c="*",r=a(t[i]?.[c])),r&&(s=`${i} ${c}`),{eventMapping:r,mappingKey:s}}async function je(e,t={},n={}){if(!V(e))return;const o=q(e)&&e.consent||n.consent||n.collector?.consent,r=U(t)?t:[t];for(const t of r){const r=await he(ke)(e,t,{...n,consent:o});if(V(r))return r}}async function ke(e,t,n={}){const{collector:o,consent:r}=n;return(U(t)?t:[t]).reduce(async(t,s)=>{const i=await t;if(i)return i;const c=X(s)?{key:s}:s;if(!Object.keys(c).length)return;const{condition:a,consent:u,fn:f,key:l,loop:p,map:d,set:g,validate:m,value:b}=c;if(a&&!await he(a)(e,s,o))return;if(u&&!ne(u,r))return b;let y=V(b)?b:e;if(f&&(y=await he(f)(e,s,n)),l&&(y=Y(e,l,b)),p){const[t,o]=p,r="this"===t?[e]:await je(e,t,n);U(r)&&(y=(await Promise.all(r.map(e=>je(e,o,n)))).filter(V))}else d?y=await Object.entries(d).reduce(async(t,[o,r])=>{const s=await t,i=await je(e,r,n);return V(i)&&(s[o]=i),s},Promise.resolve({})):g&&(y=await Promise.all(g.map(t=>ke(e,t,n))));m&&!await he(m)(y)&&(y=void 0);const v=ye(y);return V(v)?v:ye(b)},Promise.resolve(void 0))}async function Oe(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,o])=>{const r=await je(e,o,{collector:n});e=ee(e,t,r)}));const{eventMapping:o,mappingKey:r}=await we(e,t.mapping);o?.policy&&await Promise.all(Object.entries(o.policy).map(async([t,o])=>{const r=await je(e,o,{collector:n});e=ee(e,t,r)}));let s=t.data&&await je(e,t.data,{collector:n});if(o){if(o.ignore)return{event:e,data:s,mapping:o,mappingKey:r,ignore:!0};if(o.name&&(e.name=o.name),o.data){const t=o.data&&await je(e,o.data,{collector:n});s=q(s)&&q(t)?W(s,t):t}}return{event:e,data:s,mapping:o,mappingKey:r,ignore:!1}}function xe(e,t){const n=(e,o=[])=>new Proxy(e,{get(e,r){const s=e[r],i=[...o,r];return"function"==typeof s?(...e)=>t(i,e,s):s&&"object"==typeof s?n(s,i):s}});return n(e)}function $e(e,t){const n=(e,o=[])=>{if(!e||"object"!=typeof e)return e;const r=Array.isArray(e)?[]:{};for(const[s,i]of Object.entries(e)){const e=[...o,s];Array.isArray(r)?r[Number(s)]=t(i,e):r[s]=t(i,e),i&&"object"==typeof i&&"function"!=typeof i&&(Array.isArray(r)?r[Number(s)]=n(i,e):r[s]=n(i,e))}return r};return n(e)}function Se(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=Se();return e.push(n),n});return{error:jest.fn(),warn:jest.fn(),info:jest.fn(),debug:jest.fn(),throw:t,json:jest.fn(),scope:n,scopedLoggers:e}}function Ae(e){const t=String(e),n=t.split("?")[1]||t;return ve(()=>{const e=new URLSearchParams(n),t={};return e.forEach((e,n)=>{const o=n.split(/[[\]]+/).filter(Boolean);let r=t;o.forEach((t,n)=>{const s=n===o.length-1;if(U(r)){const i=parseInt(t,10);s?r[i]=te(e):(r[i]=r[i]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[i])}else q(r)&&(s?r[t]=te(e):(r[t]=r[t]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[t]))})}),t})()}function Ee(e){if(!e)return"";const t=[],n=encodeURIComponent;function o(e,r){null!=r&&(U(r)?r.forEach((t,n)=>o(`${e}[${n}]`,t)):q(r)?Object.entries(r).forEach(([t,n])=>o(`${e}[${t}]`,n)):t.push(`${n(e)}=${n(String(r))}`))}return"object"!=typeof e?n(e):(Object.entries(e).forEach(([e,t])=>o(e,t)),t.join("&"))}function Ne(e){return void 0===e||G(e,"")?e:JSON.stringify(e)}function Pe(e={}){return W({"Content-Type":"application/json; charset=utf-8"},e)}function _e(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function Te(e,t,n){return function(...o){let r;const s="post"+t,i=n["pre"+t],c=n[s];return r=i?i({fn:e},...o):e(...o),c&&(r=c({fn:e,result:r},...o)),r}}function Ce(e){return e?{userAgent:e,browser:Re(e),browserVersion:Me(e),os:ze(e),osVersion:He(e),deviceType:De(e)}:{}}function Re(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 ze(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 He(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function De(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 Ie(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function We(e){const t=Ie(e);return new Function("value","mapping","collector",t)}function Fe(e){const t=Ie(e);return new Function("value","mapping","options",t)}function Ue(e){const t=Ie(e);return new Function("value",t)}var Le="dist/walkerOS.json";async function Ze(e,t){const n=t?.version||"latest",o=`https://cdn.jsdelivr.net/npm/${e}@${n}`,r=new AbortController,s=setTimeout(()=>r.abort(),t?.timeout||1e4);try{const t=await fetch(`${o}/package.json`,{signal:r.signal});if(!t.ok)throw new Error(`Package "${e}" not found on npm (HTTP ${t.status})`);const s=await t.json(),i=await fetch(`${o}/${Le}`,{signal:r.signal});if(!i.ok)throw new Error(`walkerOS.json not found at ${Le} (HTTP ${i.status}). This package may not support the walkerOS.json convention yet.`);const c=await i.json(),a=c.$meta||{},u=c.schemas||{},f=c.examples||{},l=c.hints,p=l?Object.keys(l):[],d=[],g=f.step||{};for(const[e,t]of Object.entries(g)){const n=t,o={name:e};n?.description&&(o.description=n.description),d.push(o)}const m=a.docs,b=a.source;return{packageName:e,version:s.version||n,description:s.description,type:a.type,platform:a.platform,schemas:u,examples:f,...m?{docs:m}:{},...b?{source:b}:{},...l&&Object.keys(l).length>0?{hints:l}:{},hintKeys:p,exampleSummaries:d}}finally{clearTimeout(s)}}async function Ve(e,t){const n=await Ze(e,t);return{packageName:n.packageName,version:n.version,type:n.type,platform:n.platform,schemas:n.schemas,examples:n.examples,...n.hints?{hints:n.hints}:{}}}function Be(e,t,n){const o=n?{...e,_hints:n}:e;return{content:[{type:"text",text:t??JSON.stringify(o,null,2)}],structuredContent:o}}function Je(e,t){let n,o;if(e instanceof Error)n=e.message;else if("string"==typeof e)n=e;else if(e&&"object"==typeof e&&"issues"in e&&Array.isArray(e.issues)){const t=e.issues;n=t.map(e=>e.message).join("; "),o=t[0]?.path?.join(".")||void 0}else n=e&&"object"==typeof e&&"message"in e?String(e.message):"Unknown error";const r={error:n};return t&&(r.hint=t),o&&(r.path=o),{content:[{type:"text",text:JSON.stringify(r)}],structuredContent:r,isError:!0}}function Ke(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function qe(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(qe);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(qe);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value:o,not:r}=e,s=function(e,t){switch(e){case"eq":return e=>String(e??"")===t;case"contains":return e=>String(e??"").includes(t);case"prefix":return e=>String(e??"").startsWith(t);case"suffix":return e=>String(e??"").endsWith(t);case"regex":{const e=new RegExp(t);return t=>e.test(String(t??""))}case"gt":{const e=Number(t);return t=>Number(t)>e}case"lt":{const e=Number(t);return t=>Number(t)<e}case"exists":return e=>null!=e}}(n,o);return e=>{const n=e[t],o=s(n);return r?!o:o}}(e)}export{t as Collector,w as Const,n as Context,o as Destination,T as ENV_MARKER_PREFIX,r as Elb,s as Flow,h as Hint,i as Hooks,a as Level,m as Lifecycle,c as Logger,u as Mapping,v as Matcher,f as On,p as Request,y as Simulation,d as Source,g as Store,l as Transformer,b as WalkerOS,k as anonymizeIP,W as assign,j as branch,ye as castToProperty,te as castValue,Q as clone,qe as compileMatcher,oe as createDestination,re as createEvent,de as createLogger,Se as createMockLogger,Ke as createRespond,ae as debounce,Ze as fetchPackage,Ve as fetchPackageSchema,be as filterValues,Re as getBrowser,Me as getBrowserVersion,Y as getByPath,De as getDeviceType,se as getEvent,H as getFlowSettings,ne as getGrantedConsent,Pe as getHeaders,ie as getId,we as getMappingEvent,je as getMappingValue,ce as getMarketingParameters,ze as getOS,He as getOSVersion,D as getPlatform,F as isArguments,U as isArray,L as isBoolean,Z as isCommand,V as isDefined,B as isElementOrDocument,J as isFunction,K as isNumber,q as isObject,me as isPropertyType,G as isSameType,X as isString,Je as mcpError,Be as mcpResult,A as mergeContractSchemas,xe as mockEnv,M as packageNameToVariable,Ce as parseUserAgent,Oe as processEventMapping,Ae as requestToData,Ee as requestToParameter,S as resolveContracts,ee as setByPath,ue as throttle,O as throwError,Ne as transformData,$e as traverseEnv,_e as trim,ve as tryCatch,he as tryCatchAsync,Te as useHooks,C as walkPath,We as wrapCondition,Fe as wrapFn,Ue as wrapValidate};//# sourceMappingURL=index.mjs.map
|
package/package.json
CHANGED