@walkeros/core 3.4.1-next-1776790594143 → 3.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i=(e,n)=>{for(var r in n)t(e,r,{get:n[r],enumerable:!0})},a={};i(a,{Cache:()=>s,Collector:()=>c,Const:()=>E,Context:()=>u,Destination:()=>l,ENV_MARKER_PREFIX:()=>U,Elb:()=>f,Flow:()=>p,Hint:()=>A,Hooks:()=>d,Level:()=>m,Lifecycle:()=>x,Logger:()=>g,Mapping:()=>y,Matcher:()=>S,On:()=>b,Request:()=>v,Simulation:()=>$,Source:()=>w,Store:()=>j,Transformer:()=>h,Trigger:()=>k,WalkerOS:()=>O,anonymizeIP:()=>P,applyUpdate:()=>wt,assign:()=>K,branch:()=>N,buildCacheContext:()=>yt,castToProperty:()=>Ne,castValue:()=>pe,checkCache:()=>ht,clone:()=>se,compileCache:()=>bt,compileMatcher:()=>pt,compileNext:()=>gt,createDestination:()=>ge,createEvent:()=>ye,createIngest:()=>_,createLogger:()=>Se,createMockContext:()=>Fe,createMockLogger:()=>ze,createRespond:()=>ft,debounce:()=>je,deepMerge:()=>me,defaultClickIds:()=>ve,fetchPackage:()=>at,fetchPackageSchema:()=>ct,filterValues:()=>_e,flattenIncludeSections:()=>fe,formatOut:()=>jt,getBrowser:()=>Je,getBrowserVersion:()=>Ke,getByPath:()=>ce,getDeviceType:()=>Qe,getEvent:()=>be,getFlowSettings:()=>q,getGrantedConsent:()=>de,getHeaders:()=>Be,getId:()=>he,getMappingEvent:()=>Me,getMappingValue:()=>Te,getMarketingParameters:()=>we,getOS:()=>Ge,getOSVersion:()=>Xe,getPlatform:()=>Z,isArguments:()=>G,isArray:()=>X,isBoolean:()=>Q,isCommand:()=>Y,isDefined:()=>ee,isElementOrDocument:()=>te,isFunction:()=>ne,isNumber:()=>re,isObject:()=>oe,isPropertyType:()=>Ee,isRouteArray:()=>dt,isSameType:()=>ie,isString:()=>ae,mcpError:()=>lt,mcpResult:()=>ut,mergeContractSchemas:()=>I,mockEnv:()=>De,packageNameToVariable:()=>B,parseUserAgent:()=>Ze,processEventMapping:()=>Ie,requestToData:()=>Ue,requestToParameter:()=>Ve,resolveContracts:()=>R,resolveNext:()=>mt,setByPath:()=>ue,storeCache:()=>vt,throttle:()=>ke,throwError:()=>C,transformData:()=>Le,traverseEnv:()=>He,trim:()=>We,tryCatch:()=>Pe,tryCatchAsync:()=>Ce,useHooks:()=>qe,walkPath:()=>V,wrapCondition:()=>et,wrapFn:()=>tt,wrapValidate:()=>nt}),module.exports=(e=a,((e,i,a,s)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let c of r(i))o.call(e,c)||c===a||t(e,c,{get:()=>i[c],enumerable:!(s=n(i,c))||s.enumerable});return e})(t({},"__esModule",{value:!0}),e));var s={},c={},u={},l={},f={},p={},d={},g={};i(g,{Level:()=>m});var m=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(m||{}),y={},b={},h={},v={},w={},j={},k={},x={},O={},$={},S={},A={},E={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function _(e){return{_meta:{hops:0,path:[e]}}}function N(e,t){return{event:e,next:t}}function P(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function C(e){throw new Error(String(e))}var M=["globals","context","custom","user","consent"],T=new Set(["description","examples","title","$comment"]);function R(e){const t={},n=new Set;function r(o){if(t[o])return t[o];n.has(o)&&C(`Circular extends chain detected: ${[...n,o].join(" → ")}`);const i=e[o];i||C(`Contract "${o}" not found`),n.add(o);let a={};if(i.extends){a=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 r of M){const o=e[r],i=t[r];o&&i?n[r]=I(o,i):(o||i)&&(n[r]={...o||i})}if(e.events||t.events){const r={},o=new Set([...Object.keys(e.events||{}),...Object.keys(t.events||{})]);for(const n of o){const o=e.events?.[n]||{},i=t.events?.[n]||{},a=new Set([...Object.keys(o),...Object.keys(i)]);r[n]={};for(const e of a){const t=o[e],a=i[e];r[n][e]=t&&a?I(t,a):{...t||a}}}n.events=r}return n}(r(i.extends),i)}else a={...i};if(delete a.extends,a.events&&(a.events=function(e){const t={};for(const n of Object.keys(e))if("*"!==n){t[n]={};for(const r of Object.keys(e[n]||{})){let o={};const i=e["*"]?.["*"];i&&(o=I(o,i));const a=e["*"]?.[r];a&&"*"!==r&&(o=I(o,a));const s=e[n]?.["*"];s&&"*"!==r&&(o=I(o,s));const c=e[n]?.[r];c&&(o=I(o,c)),t[n][r]=o}}e["*"]&&(t["*"]={...e["*"]});return t}(a.events)),a.events){const e={};for(const[t,n]of Object.entries(a.events)){e[t]={};for(const[r,o]of Object.entries(n))e[t][r]=D(o)}a.events=e}return n.delete(o),t[o]=a,a}for(const t of Object.keys(e))r(t);return t}function I(e,t){const n={...e};for(const r of Object.keys(t)){const o=e[r],i=t[r];"required"===r&&Array.isArray(o)&&Array.isArray(i)?n[r]=[...new Set([...o,...i])]:H(o)&&H(i)?n[r]=I(o,i):n[r]=i}return n}function D(e){const t={};for(const[n,r]of Object.entries(e))T.has(n)||(null===r||"object"!=typeof r||Array.isArray(r)?t[n]=r:t[n]=D(r));return t}function H(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function z(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function F(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var U="__WALKEROS_ENV:";function V(e,t,n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const i=r[e];if(null==o||"object"!=typeof o){const o=r.slice(0,e).join(".");C(`Path "${t}" not found in "${n}": "${i}" does not exist${o?` in "${o}"`:""}`)}const a=o;if(!(i in a)){const o=r.slice(0,e).join(".");C(`Path "${t}" not found in "${n}": "${i}" does not exist${o?` in "${o}"`:""}`)}o=a[i]}return o}function L(e,t,n,r,o){if("string"==typeof e){const i=e.match(/^\$def\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(i){const e=i[1],a=i[2];void 0===n[e]&&C(`Definition "${e}" not found`);let s=L(n[e],t,n,r,o);return a&&(s=V(s,a,`$def.${e}`)),s}const a=e.match(/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(a&&o){const e=a[1],t=a[2];e in o||C(`Contract "${e}" not found`);let n=o[e];return t&&(n=V(n,t,`$contract.${e}`)),n}let s=e.replace(/\$var\.([a-zA-Z_][a-zA-Z0-9_]*)/g,(e,n)=>{if(void 0!==t[n])return String(t[n]);C(`Variable "${n}" not found`)});return s=s.replace(/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,(e,t,n)=>r?.deferred?void 0!==n?`${U}${t}:${n}`:`${U}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==n?n:void C(`Environment variable "${t}" not found and no default provided`)),s}if(Array.isArray(e))return e.map(e=>L(e,t,n,r,o));if(null!==e&&"object"==typeof e){const i={};for(const[a,s]of Object.entries(e))i[a]=L(s,t,n,r,o);return i}return e}function B(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 W(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?B(e):void 0}function q(e,t,n){const r=Object.keys(e.flows);t||(1===r.length?t=r[0]:C(`Multiple flows found (${r.join(", ")}). Please specify a flow.`));const o=e.flows[t];o||C(`Flow "${t}" not found. Available: ${r.join(", ")}`);const i=JSON.parse(JSON.stringify(o));let a;if(e.contract){const t=z(e.variables,o.variables),r=F(e.definitions,o.definitions);a=R(L(e.contract,t,r,n))}if(i.sources)for(const[t,r]of Object.entries(i.sources)){const s=z(e.variables,o.variables,r.variables),c=F(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.sources[t]={package:r.package,config:u,env:l,primary:r.primary,variables:r.variables,definitions:r.definitions,before:r.before,next:r.next,cache:r.cache,code:d}}if(i.destinations)for(const[t,r]of Object.entries(i.destinations)){const s=z(e.variables,o.variables,r.variables),c=F(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.destinations[t]={package:r.package,config:u,env:l,variables:r.variables,definitions:r.definitions,before:r.before,next:r.next,cache:r.cache,code:d}}if(i.stores)for(const[t,r]of Object.entries(i.stores)){const s=z(e.variables,o.variables,r.variables),c=F(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.stores[t]={package:r.package,config:u,env:l,variables:r.variables,definitions:r.definitions,code:d}}if(i.transformers)for(const[t,r]of Object.entries(i.transformers)){const s=z(e.variables,o.variables,r.variables),c=F(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.transformers[t]={package:r.package,config:u,env:l,variables:r.variables,definitions:r.definitions,before:r.before,next:r.next,cache:r.cache,code:d}}if(i.collector){const t=z(e.variables,o.variables),r=F(e.definitions,o.definitions),s=L(i.collector,t,r,n,a);i.collector=s}return i}function Z(e){return void 0!==e.web?"web":void 0!==e.server?"server":void C("Settings must have web or server key")}var J={merge:!0,shallow:!0,extend:!0};function K(e,t={},n={}){n={...J,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const i=e[r];return n.merge&&Array.isArray(i)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...i]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function G(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function X(e){return Array.isArray(e)}function Q(e){return"boolean"==typeof e}function Y(e){return"walker"===e}function ee(e){return void 0!==e}function te(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function ne(e){return"function"==typeof e}function re(e){return"number"==typeof e&&!Number.isNaN(e)}function oe(e){return"object"==typeof e&&null!==e&&!X(e)&&"[object Object]"===Object.prototype.toString.call(e)}function ie(e,t){return typeof e==typeof t}function ae(e){return"string"==typeof e}function se(e,t=new WeakMap){if("object"!=typeof e||null===e)return e;if(t.has(e))return t.get(e);const n=Object.prototype.toString.call(e);if("[object Object]"===n){const n={};t.set(e,n);for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=se(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(se(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 ce(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&X(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=ce(e,t,n);i.push(r)}return i}if(o=o instanceof Object?o[t]:void 0,void 0===o)break}return ee(o)?o:n}function ue(e,t,n){if(!oe(e))return e;const r=se(e),o=t.split(".");let i=r;for(let e=0;e<o.length;e++){const t=o[e];e===o.length-1?i[t]=n:(t in i&&"object"==typeof i[t]&&null!==i[t]||(i[t]={}),i=i[t])}return r}var le={data:e=>e.data,globals:e=>e.globals,context:e=>e.context,user:e=>e.user,source:e=>e.source,version:e=>e.version,event:e=>({entity:e.entity,action:e.action,id:e.id,timestamp:e.timestamp,name:e.name,trigger:e.trigger,group:e.group,count:e.count,timing:e.timing})};function fe(e,t){const n={},r=t.includes("all")?Object.keys(le):t;for(const t of r){const r=le[t];if(!r)continue;const o=r(e);if(oe(o))for(const[e,r]of Object.entries(o)){if(void 0===r)continue;const o="context"===t&&Array.isArray(r)?r[0]:r;n[`${t}_${e}`]=o}}return n}function pe(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function de(e,t={},n={}){const r={...t,...n},o={};let i=!e||0===Object.keys(e).length;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(i=!0))}),!!i&&o}function ge(e,t){const n={...e};return n.config=K(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=K(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=K(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function me(e,t){if(!oe(t))return e;for(const n of Object.keys(t)){const r=t[n];void 0!==r&&(oe(r)&&oe(e[n])?me(e[n],r):e[n]=r)}return e}function ye(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",r=e.count||1,o=K({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],not:void 0},context:{dev:["test",1]},globals:{lang:"elb"},custom:{completely:"random"},user:{id:"us3r",device:"c00k13",session:"s3ss10n"},nested:[{entity:"child",data:{is:"subordinated"},nested:[],context:{element:["child",0]}}],consent:{functional:!0},id:`${t}-${n}-${r}`,trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:n,count:r,version:{source:"3.4.1-next-1776790594143",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[t,n]=e.name.split(" ")??[];t&&n&&(o.entity=t,o.action=n)}return o}function be(e="entity action",t={}){const n=t.timestamp||(new Date).setHours(0,13,37,0),r={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},o={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return ye({...{"cart view":{data:{currency:"EUR",value:2*r.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...r.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:r.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...r,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...o,context:{shopping:["checkout",0]},nested:[]}],trigger:"load"},"order complete":{data:{id:"0rd3r1d",currency:"EUR",shipping:5.22,taxes:73.76,total:555},context:{shopping:["complete",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...r,context:{shopping:["complete",0]},nested:[]},{entity:"product",...o,context:{shopping:["complete",0]},nested:[]},{entity:"gift",data:{name:"Surprise"},context:{shopping:["complete",0]},nested:[]}],trigger:"load"},"page view":{data:{domain:"www.example.com",title:"walkerOS documentation",referrer:"https://www.walkeros.io/",search:"?foo=bar",hash:"#hash",id:"/docs/"},globals:{pagegroup:"docs"},trigger:"load"},"product add":{...r,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...r,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...r.data,position:3,promo:!0},context:{shopping:["discover",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"promotion visible":{data:{name:"Setting up tracking easily",position:"hero"},context:{ab_test:["engagement",0]},globals:{pagegroup:"homepage"},trigger:"visible"},"session start":{data:{id:"s3ss10n",start:n,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,referrer:"",device:"c00k13"},user:{id:"us3r",device:"c00k13",session:"s3ss10n",hash:"h4sh",address:"street number",email:"user@example.com",phone:"+49 123 456 789",userAgent:"Mozilla...",browser:"Chrome",browserVersion:"90",deviceType:"desktop",language:"de-DE",country:"DE",region:"HH",city:"Hamburg",zip:"20354",timezone:"Berlin",os:"walkerOS",osVersion:"1.0",screenSize:"1337x420",ip:"127.0.0.0",internal:!0,custom:"value"}}}[e],...t,name:e})}function he(e=6,t){if(t){const n=t.length;let r="";for(let o=0;o<e;o++)r+=t[Math.random()*n|0];return r}let n="";for(let t=36;n.length<e;)n+=(Math.random()*t|0).toString(t);return n}var ve=[{param:"gclid",platform:"google"},{param:"wbraid",platform:"google"},{param:"gbraid",platform:"google"},{param:"dclid",platform:"google"},{param:"gclsrc",platform:"google"},{param:"fbclid",platform:"meta"},{param:"igshid",platform:"meta"},{param:"msclkid",platform:"microsoft"},{param:"ttclid",platform:"tiktok"},{param:"twclid",platform:"twitter"},{param:"li_fat_id",platform:"linkedin"},{param:"epik",platform:"pinterest"},{param:"sclid",platform:"snapchat"},{param:"sccid",platform:"snapchat"},{param:"rdt_cid",platform:"reddit"},{param:"qclid",platform:"quora"},{param:"yclid",platform:"yandex"},{param:"ymclid",platform:"yandex"},{param:"ysclid",platform:"yandex"},{param:"dicbo",platform:"outbrain"},{param:"obclid",platform:"outbrain"},{param:"tblci",platform:"taboola"},{param:"mc_cid",platform:"mailchimp"},{param:"mc_eid",platform:"mailchimp"},{param:"_kx",platform:"klaviyo"},{param:"_hsenc",platform:"hubspot"},{param:"_hsmi",platform:"hubspot"},{param:"s_kwcid",platform:"adobe"},{param:"ef_id",platform:"adobe"},{param:"mkt_tok",platform:"adobe"},{param:"irclickid",platform:"impact"},{param:"cjevent",platform:"cj"},{param:"_branch_match_id",platform:"branch"}];function we(e,t={},n=[]){const r={};Object.entries(K({utm_campaign:"campaign",utm_content:"content",utm_medium:"medium",utm_source:"source",utm_term:"term"},t)).forEach(([t,n])=>{const o=e.searchParams.get(t);o&&(r[n]=o)});const o=n.length?function(e){const t=new Map(e.map(e=>[e.param,e.platform])),n=new Set(ve.map(e=>e.param));return[...ve.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):ve,i=new Map;e.searchParams.forEach((e,t)=>{e&&i.set(t.toLowerCase(),e)});for(const e of o){const t=i.get(e.param);t&&(r[e.param]=t,r.clickId||(r.clickId=e.param,r.platform=e.platform))}return r}function je(e,t=1e3,n=!1){let r,o=null,i=!1;return(...a)=>new Promise(s=>{const c=n&&!i;o&&clearTimeout(o),o=setTimeout(()=>{o=null,n&&!i||(r=e(...a),s(r))},t),c&&(i=!0,r=e(...a),s(r))})}function ke(e,t=1e3){let n=null;return function(...r){if(null===n)return n=setTimeout(()=>{n=null},t),e(...r)}}function xe(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function Oe(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=xe(e)):n=e,void 0!==t&&(t instanceof Error?r.error=xe(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=xe(r.error))):r.value=t),{message:n,context:r}}var $e=(e,t,n,r)=>{const o=`${m[e]}${r.length>0?` [${r.join(":")}]`:""}`,i=Object.keys(n).length>0,a=0===e?console.error:1===e?console.warn:console.log;i?a(o,t,n):a(o,t)};function Se(e={}){return Ae({level:void 0!==e.level?function(e){return"string"==typeof e?m[e]:e}(e.level):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]})}function Ae(e){const{level:t,handler:n,jsonHandler:r,scope:o}=e,i=(e,r,i)=>{if(e<=t){const t=Oe(r,i);n?n(e,t.message,t.context,o,$e):$e(e,t.message,t.context,o)}};return{error:(e,t)=>i(0,e,t),warn:(e,t)=>i(1,e,t),info:(e,t)=>i(2,e,t),debug:(e,t)=>i(3,e,t),throw:(e,t)=>{const r=Oe(e,t);throw n?n(0,r.message,r.context,o,$e):$e(0,r.message,r.context,o),new Error(r.message)},json:e=>{r?r(e):console.log(JSON.stringify(e,null,2))},scope:e=>Ae({level:t,handler:n,jsonHandler:r,scope:[...o,e]})}}function Ee(e){return Q(e)||ae(e)||re(e)||!ee(e)||X(e)&&e.every(Ee)||oe(e)&&Object.values(e).every(Ee)}function _e(e){return Q(e)||ae(e)||re(e)?e:G(e)?_e(Array.from(e)):X(e)?e.map(e=>_e(e)).filter(e=>void 0!==e):oe(e)?Object.entries(e).reduce((e,[t,n])=>{const r=_e(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function Ne(e){return Ee(e)?e:void 0}function Pe(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function Ce(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}async function Me(e,t){const[n,r]=(e.name||"").split(" ");if(!t||!n||!r)return{};let o,i="",a=n,s=r;const c=t=>{if(t)return(t=X(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[a]||(a="*");const u=t[a];return u&&(u[s]||(s="*"),o=c(u[s])),o||(a="*",s="*",o=c(t[a]?.[s])),o&&(i=`${a} ${s}`),{eventMapping:o,mappingKey:i}}async function Te(e,t={},n={}){if(!ee(e))return;const r=oe(e)&&e.consent||n.consent||n.collector?.consent,o=X(t)?t:[t];for(const t of o){const o=await Ce(Re)(e,t,{...n,consent:r});if(ee(o))return o}}async function Re(e,t,n={}){const{collector:r,consent:o}=n;return(X(t)?t:[t]).reduce(async(t,i)=>{const a=await t;if(a)return a;const s=ae(i)?{key:i}:i;if(!Object.keys(s).length)return;const{condition:c,consent:u,fn:l,key:f,loop:p,map:d,set:g,validate:m,value:y}=s;if(c&&!await Ce(c)(e,i,r))return;if(u&&!de(u,o))return y;let b=ee(y)?y:e;if(l&&(b=await Ce(l)(e,i,n)),f&&(b=ce(e,f,y)),p){const[t,r]=p,o="this"===t?[e]:await Te(e,t,n);X(o)&&(b=(await Promise.all(o.map(e=>Te(e,r,n)))).filter(ee))}else d?b=await Object.entries(d).reduce(async(t,[r,o])=>{const i=await t,a=await Te(e,o,n);return ee(a)&&(i[r]=a),i},Promise.resolve({})):g&&(b=await Promise.all(g.map(t=>Re(e,t,n))));m&&!await Ce(m)(b)&&(b=void 0);const h=Ne(b);return ee(h)?h:Ne(y)},Promise.resolve(void 0))}async function Ie(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await Te(e,r,{collector:n});e=ue(e,t,o)}));const{eventMapping:r,mappingKey:o}=await Me(e,t.mapping);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await Te(e,r,{collector:n});e=ue(e,t,o)}));let i=t.data&&await Te(e,t.data,{collector:n});const a=Boolean(r?.skip);if(r){if(r.ignore)return{event:e,data:i,mapping:r,mappingKey:o,ignore:!0,skip:a};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await Te(e,r.data,{collector:n});i=oe(i)&&oe(t)?K(i,t):t}}const s=r?.include??t.include;if(s&&s.length>0){const t=fe(e,s);Object.keys(t).length>0&&(i=oe(i)?K(t,i):i??t)}return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1,skip:a}}function De(e,t){const n=(e,r=[])=>new Proxy(e,{get(e,o){const i=e[o],a=[...r,o];return"function"==typeof i?i.prototype&&i.prototype.constructor===i?i:(...e)=>{const r=t(a,e,i);if(r&&"object"==typeof r)return n(r,a);const o=i(...e);return o&&"object"==typeof o?n(o,a):r}:i&&"object"==typeof i?n(i,a):i}});return n(e)}function He(e,t){const n=(e,r=[])=>{if(!e||"object"!=typeof e)return e;const o=Array.isArray(e)?[]:{};for(const[i,a]of Object.entries(e)){const e=[...r,i];Array.isArray(o)?o[Number(i)]=t(a,e):o[i]=t(a,e),a&&"object"==typeof a&&"function"!=typeof a&&(Array.isArray(o)?o[Number(i)]=n(a,e):o[i]=n(a,e))}return o};return n(e)}function ze(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=ze();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 Fe(e={}){return{collector:{},config:{},env:{},logger:ze(),id:"test",ingest:_("test"),...e}}function Ue(e){const t=String(e),n=t.split("?")[1]||t;return Pe(()=>{const e=new URLSearchParams(n),t={};return e.forEach((e,n)=>{const r=n.split(/[[\]]+/).filter(Boolean);let o=t;r.forEach((t,n)=>{const i=n===r.length-1;if(X(o)){const a=parseInt(t,10);i?o[a]=pe(e):(o[a]=o[a]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[a])}else oe(o)&&(i?o[t]=pe(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function Ve(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(X(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):oe(o)?Object.entries(o).forEach(([t,n])=>r(`${e}[${t}]`,n)):t.push(`${n(e)}=${n(String(o))}`))}return"object"!=typeof e?n(e):(Object.entries(e).forEach(([e,t])=>r(e,t)),t.join("&"))}function Le(e){return void 0===e||ie(e,"")?e:JSON.stringify(e)}function Be(e={}){return K({"Content-Type":"application/json; charset=utf-8"},e)}function We(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function qe(e,t,n,r){return function(...o){let i;const a="pre"+t,s="post"+t,c=n[a],u=n[s],l=(e,t)=>{r?r.warn(e,{error:t}):console.warn(e,t)};if(c)try{i=c({fn:e},...o)}catch(t){l(`Hook ${String(a)} failed, falling back to original function`,t),i=e(...o)}else i=e(...o);if(u)try{i=u({fn:e,result:i},...o)}catch(e){l(`Hook ${String(s)} failed, keeping original result`,e)}return i}}function Ze(e){return e?{userAgent:e,browser:Je(e),browserVersion:Ke(e),os:Ge(e),osVersion:Xe(e),deviceType:Qe(e)}:{}}function Je(e){const t=[{name:"Edge",substr:"Edg"},{name:"Chrome",substr:"Chrome"},{name:"Safari",substr:"Safari",exclude:"Chrome"},{name:"Firefox",substr:"Firefox"},{name:"IE",substr:"MSIE"},{name:"IE",substr:"Trident"}];for(const n of t)if(e.includes(n.substr)&&(!n.exclude||!e.includes(n.exclude)))return n.name}function Ke(e){const t=[/Edg\/([0-9]+)/,/Chrome\/([0-9]+)/,/Version\/([0-9]+).*Safari/,/Firefox\/([0-9]+)/,/MSIE ([0-9]+)/,/rv:([0-9]+).*Trident/];for(const n of t){const t=e.match(n);if(t)return t[1]}}function Ge(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 Xe(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function Qe(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 Ye(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function et(e){const t=Ye(e);return new Function("value","mapping","collector",t)}function tt(e){const t=Ye(e);return new Function("value","mapping","options",t)}function nt(e){const t=Ye(e);return new Function("value",t)}var rt="https://cdn.jsdelivr.net/npm",ot="dist/walkerOS.json";function it(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function at(e,t){const n=t?.version||"latest",r=t?.timeout||1e4,o=new AbortController,i=setTimeout(()=>o.abort(),r),a=o.signal;try{let r,o;if(t?.baseUrl){const i=encodeURIComponent(e),s=`${t.baseUrl}/api/packages/${i}`;r=await st(`${s}?version=${n}&path=package.json`,a),o=await st(`${s}?version=${n}&path=dist/walkerOS.json`,a)}else{const t=`${rt}/${e}@${n}`;r=await st(`${t}/package.json`,a),o=await st(`${t}/${ot}`,a)}return function(e,t,n,r){const o=r.$meta||{},i=r.schemas||{},a=r.examples||{},s=r.hints,c=s?Object.keys(s):[],u=[],l=a.step||{};for(const[e,t]of Object.entries(l)){const n=t,r={name:e};"string"==typeof n?.description&&(r.description=n.description),u.push(r)}const f="string"==typeof o.docs?o.docs:void 0,p="string"==typeof o.source?o.source:void 0;return{packageName:e,version:"string"==typeof n.version?n.version:t,description:"string"==typeof n.description?n.description:void 0,type:"string"==typeof o.type?o.type:void 0,platform:it(o.platform),schemas:i,examples:a,...f?{docs:f}:{},...p?{source:p}:{},...s&&Object.keys(s).length>0?{hints:s}:{},hintKeys:c,exampleSummaries:u}}(e,n,r,o)}finally{clearTimeout(i)}}async function st(e,t){const n=await fetch(e,{signal:t});if(!n.ok)throw new Error(`Failed to fetch ${e} (HTTP ${n.status})`);return await n.json()}async function ct(e,t){const n=await at(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 ut(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function lt(e,t){let n,r,o,i;if(e instanceof Error){n=e.message;const t=e;t.code&&(o=t.code),Array.isArray(t.details)&&(i=t.details)}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("; "),r=t[0]?.path?.join(".")||void 0}else n=e&&"object"==typeof e&&"message"in e?String(e.message):"Unknown error";const a={error:n};return t&&(a.hint=t),r&&(a.path=r),o&&(a.code=o),i&&(a.details=i),{content:[{type:"text",text:JSON.stringify(a)}],structuredContent:a,isError:!0}}function ft(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function pt(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(pt);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(pt);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value:r,not:o}=e,i=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,r);return e=>{const n=ce(e,t),r=i(n);return o?!r:r}}(e)}function dt(e){return Array.isArray(e)&&e.length>0&&"object"==typeof e[0]&&null!==e[0]&&"match"in e[0]}function gt(e){if(null!=e){if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(dt(e)){return{type:"routes",routes:e.map(e=>({match:pt(e.match),next:gt(e.next)}))}}return{type:"chain",value:e}}}}function mt(e,t={}){if(e){if("static"===e.type)return e.value;if("chain"===e.type)return e.value;for(const n of e.routes)if(n.match(t))return mt(n.next,t)}}function yt(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function bt(e){return{full:e.full??!1,storeId:e.store,rules:e.rules.map(e=>({match:pt(e.match),key:e.key,ttl:e.ttl,update:e.update}))}}function ht(e,t,n,r){const o=e.rules.find(e=>e.match(n));if(!o)return null;const i=o.key.map(e=>String(ce(n,e)??""));if(i.every(e=>""===e))return null;const a=`${r}:${i.join(":")}`,s=t.get(a);return void 0!==s?{status:"HIT",key:a,value:s,rule:o}:{status:"MISS",key:a,rule:o}}function vt(e,t,n,r){e.set(t,n,1e3*r)}async function wt(e,t,n){if(!t)return e;let r=e;for(const[e,o]of Object.entries(t)){r=ue(r,e,await Te(n,o))}return r}function jt(e){return 0===e.length?"// no output":e.map(kt).join(";\n\n")}function kt(e){const[t,...n]=e,r=n.map(xt).join(", ");return"return"===t?r?`return ${r}`:"return":`${t}(${r})`}function xt(e){return void 0===e?"undefined":null===e?"null":"function"==typeof e?"[Function]":JSON.stringify(e,null,2)}//# sourceMappingURL=index.js.map
1
+ "use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i=(e,n)=>{for(var r in n)t(e,r,{get:n[r],enumerable:!0})},a={};i(a,{Cache:()=>s,Collector:()=>c,Const:()=>E,Context:()=>u,Destination:()=>l,ENV_MARKER_PREFIX:()=>U,Elb:()=>f,Flow:()=>p,Hint:()=>A,Hooks:()=>d,Level:()=>m,Lifecycle:()=>O,Logger:()=>g,Mapping:()=>y,Matcher:()=>S,On:()=>b,Request:()=>v,Simulation:()=>$,Source:()=>w,Store:()=>j,Transformer:()=>h,Trigger:()=>k,WalkerOS:()=>x,anonymizeIP:()=>P,applyUpdate:()=>wt,assign:()=>K,branch:()=>N,buildCacheContext:()=>yt,castToProperty:()=>Ne,castValue:()=>pe,checkCache:()=>ht,clone:()=>se,compileCache:()=>bt,compileMatcher:()=>pt,compileNext:()=>gt,createDestination:()=>ge,createEvent:()=>ye,createIngest:()=>_,createLogger:()=>Se,createMockContext:()=>Fe,createMockLogger:()=>ze,createRespond:()=>ft,debounce:()=>je,deepMerge:()=>me,defaultClickIds:()=>ve,fetchPackage:()=>at,fetchPackageSchema:()=>ct,filterValues:()=>_e,flattenIncludeSections:()=>fe,formatOut:()=>jt,getBrowser:()=>Je,getBrowserVersion:()=>Ke,getByPath:()=>ce,getDeviceType:()=>Qe,getEvent:()=>be,getFlowSettings:()=>q,getGrantedConsent:()=>de,getHeaders:()=>Be,getId:()=>he,getMappingEvent:()=>Me,getMappingValue:()=>Te,getMarketingParameters:()=>we,getOS:()=>Ge,getOSVersion:()=>Xe,getPlatform:()=>Z,isArguments:()=>G,isArray:()=>X,isBoolean:()=>Q,isCommand:()=>Y,isDefined:()=>ee,isElementOrDocument:()=>te,isFunction:()=>ne,isNumber:()=>re,isObject:()=>oe,isPropertyType:()=>Ee,isRouteArray:()=>dt,isSameType:()=>ie,isString:()=>ae,mcpError:()=>lt,mcpResult:()=>ut,mergeContractSchemas:()=>I,mockEnv:()=>De,packageNameToVariable:()=>B,parseUserAgent:()=>Ze,processEventMapping:()=>Ie,requestToData:()=>Ue,requestToParameter:()=>Ve,resolveContracts:()=>R,resolveNext:()=>mt,setByPath:()=>ue,storeCache:()=>vt,throttle:()=>ke,throwError:()=>C,transformData:()=>Le,traverseEnv:()=>He,trim:()=>We,tryCatch:()=>Pe,tryCatchAsync:()=>Ce,useHooks:()=>qe,walkPath:()=>V,wrapCondition:()=>et,wrapFn:()=>tt,wrapValidate:()=>nt}),module.exports=(e=a,((e,i,a,s)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let c of r(i))o.call(e,c)||c===a||t(e,c,{get:()=>i[c],enumerable:!(s=n(i,c))||s.enumerable});return e})(t({},"__esModule",{value:!0}),e));var s={},c={},u={},l={},f={},p={},d={},g={};i(g,{Level:()=>m});var m=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(m||{}),y={},b={},h={},v={},w={},j={},k={},O={},x={},$={},S={},A={},E={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function _(e){return{_meta:{hops:0,path:[e]}}}function N(e,t){return{event:e,next:t}}function P(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function C(e){throw new Error(String(e))}var M=["globals","context","custom","user","consent"],T=new Set(["description","examples","title","$comment"]);function R(e){const t={},n=new Set;function r(o){if(t[o])return t[o];n.has(o)&&C(`Circular extends chain detected: ${[...n,o].join(" → ")}`);const i=e[o];i||C(`Contract "${o}" not found`),n.add(o);let a={};if(i.extends){a=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 r of M){const o=e[r],i=t[r];o&&i?n[r]=I(o,i):(o||i)&&(n[r]={...o||i})}if(e.events||t.events){const r={},o=new Set([...Object.keys(e.events||{}),...Object.keys(t.events||{})]);for(const n of o){const o=e.events?.[n]||{},i=t.events?.[n]||{},a=new Set([...Object.keys(o),...Object.keys(i)]);r[n]={};for(const e of a){const t=o[e],a=i[e];r[n][e]=t&&a?I(t,a):{...t||a}}}n.events=r}return n}(r(i.extends),i)}else a={...i};if(delete a.extends,a.events&&(a.events=function(e){const t={};for(const n of Object.keys(e))if("*"!==n){t[n]={};for(const r of Object.keys(e[n]||{})){let o={};const i=e["*"]?.["*"];i&&(o=I(o,i));const a=e["*"]?.[r];a&&"*"!==r&&(o=I(o,a));const s=e[n]?.["*"];s&&"*"!==r&&(o=I(o,s));const c=e[n]?.[r];c&&(o=I(o,c)),t[n][r]=o}}e["*"]&&(t["*"]={...e["*"]});return t}(a.events)),a.events){const e={};for(const[t,n]of Object.entries(a.events)){e[t]={};for(const[r,o]of Object.entries(n))e[t][r]=D(o)}a.events=e}return n.delete(o),t[o]=a,a}for(const t of Object.keys(e))r(t);return t}function I(e,t){const n={...e};for(const r of Object.keys(t)){const o=e[r],i=t[r];"required"===r&&Array.isArray(o)&&Array.isArray(i)?n[r]=[...new Set([...o,...i])]:H(o)&&H(i)?n[r]=I(o,i):n[r]=i}return n}function D(e){const t={};for(const[n,r]of Object.entries(e))T.has(n)||(null===r||"object"!=typeof r||Array.isArray(r)?t[n]=r:t[n]=D(r));return t}function H(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function z(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function F(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var U="__WALKEROS_ENV:";function V(e,t,n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const i=r[e];if(null==o||"object"!=typeof o){const o=r.slice(0,e).join(".");C(`Path "${t}" not found in "${n}": "${i}" does not exist${o?` in "${o}"`:""}`)}const a=o;if(!(i in a)){const o=r.slice(0,e).join(".");C(`Path "${t}" not found in "${n}": "${i}" does not exist${o?` in "${o}"`:""}`)}o=a[i]}return o}function L(e,t,n,r,o){if("string"==typeof e){const i=e.match(/^\$def\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(i){const e=i[1],a=i[2];void 0===n[e]&&C(`Definition "${e}" not found`);let s=L(n[e],t,n,r,o);return a&&(s=V(s,a,`$def.${e}`)),s}const a=e.match(/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(a&&o){const e=a[1],t=a[2];e in o||C(`Contract "${e}" not found`);let n=o[e];return t&&(n=V(n,t,`$contract.${e}`)),n}let s=e.replace(/\$var\.([a-zA-Z_][a-zA-Z0-9_]*)/g,(e,n)=>{if(void 0!==t[n])return String(t[n]);C(`Variable "${n}" not found`)});return s=s.replace(/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,(e,t,n)=>r?.deferred?void 0!==n?`${U}${t}:${n}`:`${U}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==n?n:void C(`Environment variable "${t}" not found and no default provided`)),s}if(Array.isArray(e))return e.map(e=>L(e,t,n,r,o));if(null!==e&&"object"==typeof e){const i={};for(const[a,s]of Object.entries(e))i[a]=L(s,t,n,r,o);return i}return e}function B(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 W(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?B(e):void 0}function q(e,t,n){const r=Object.keys(e.flows);t||(1===r.length?t=r[0]:C(`Multiple flows found (${r.join(", ")}). Please specify a flow.`));const o=e.flows[t];o||C(`Flow "${t}" not found. Available: ${r.join(", ")}`);const i=JSON.parse(JSON.stringify(o));let a;if(e.contract){const t=z(e.variables,o.variables),r=F(e.definitions,o.definitions);a=R(L(e.contract,t,r,n))}if(i.sources)for(const[t,r]of Object.entries(i.sources)){const s=z(e.variables,o.variables,r.variables),c=F(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.sources[t]={package:r.package,config:u,env:l,primary:r.primary,variables:r.variables,definitions:r.definitions,before:r.before,next:r.next,cache:r.cache,code:d}}if(i.destinations)for(const[t,r]of Object.entries(i.destinations)){const s=z(e.variables,o.variables,r.variables),c=F(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.destinations[t]={package:r.package,config:u,env:l,variables:r.variables,definitions:r.definitions,before:r.before,next:r.next,cache:r.cache,code:d}}if(i.stores)for(const[t,r]of Object.entries(i.stores)){const s=z(e.variables,o.variables,r.variables),c=F(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.stores[t]={package:r.package,config:u,env:l,variables:r.variables,definitions:r.definitions,code:d}}if(i.transformers)for(const[t,r]of Object.entries(i.transformers)){const s=z(e.variables,o.variables,r.variables),c=F(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.transformers[t]={package:r.package,config:u,env:l,variables:r.variables,definitions:r.definitions,before:r.before,next:r.next,cache:r.cache,code:d}}if(i.collector){const t=z(e.variables,o.variables),r=F(e.definitions,o.definitions),s=L(i.collector,t,r,n,a);i.collector=s}return i}function Z(e){return void 0!==e.web?"web":void 0!==e.server?"server":void C("Settings must have web or server key")}var J={merge:!0,shallow:!0,extend:!0};function K(e,t={},n={}){n={...J,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const i=e[r];return n.merge&&Array.isArray(i)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...i]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function G(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function X(e){return Array.isArray(e)}function Q(e){return"boolean"==typeof e}function Y(e){return"walker"===e}function ee(e){return void 0!==e}function te(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function ne(e){return"function"==typeof e}function re(e){return"number"==typeof e&&!Number.isNaN(e)}function oe(e){return"object"==typeof e&&null!==e&&!X(e)&&"[object Object]"===Object.prototype.toString.call(e)}function ie(e,t){return typeof e==typeof t}function ae(e){return"string"==typeof e}function se(e,t=new WeakMap){if("object"!=typeof e||null===e)return e;if(t.has(e))return t.get(e);const n=Object.prototype.toString.call(e);if("[object Object]"===n){const n={};t.set(e,n);for(const r in e)Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=se(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(se(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 ce(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&X(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=ce(e,t,n);i.push(r)}return i}if(o=o instanceof Object?o[t]:void 0,void 0===o)break}return ee(o)?o:n}function ue(e,t,n){if(!oe(e))return e;const r=se(e),o=t.split(".");let i=r;for(let e=0;e<o.length;e++){const t=o[e];e===o.length-1?i[t]=n:(t in i&&"object"==typeof i[t]&&null!==i[t]||(i[t]={}),i=i[t])}return r}var le={data:e=>e.data,globals:e=>e.globals,context:e=>e.context,user:e=>e.user,source:e=>e.source,version:e=>e.version,event:e=>({entity:e.entity,action:e.action,id:e.id,timestamp:e.timestamp,name:e.name,trigger:e.trigger,group:e.group,count:e.count,timing:e.timing})};function fe(e,t){const n={},r=t.includes("all")?Object.keys(le):t;for(const t of r){const r=le[t];if(!r)continue;const o=r(e);if(oe(o))for(const[e,r]of Object.entries(o)){if(void 0===r)continue;const o="context"===t&&Array.isArray(r)?r[0]:r;n[`${t}_${e}`]=o}}return n}function pe(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function de(e,t={},n={}){const r={...t,...n},o={};let i=!e||0===Object.keys(e).length;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(i=!0))}),!!i&&o}function ge(e,t){const n={...e};return n.config=K(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=K(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=K(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function me(e,t){if(!oe(t))return e;for(const n of Object.keys(t)){const r=t[n];void 0!==r&&(oe(r)&&oe(e[n])?me(e[n],r):e[n]=r)}return e}function ye(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",r=e.count||1,o=K({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],not:void 0},context:{dev:["test",1]},globals:{lang:"elb"},custom:{completely:"random"},user:{id:"us3r",device:"c00k13",session:"s3ss10n"},nested:[{entity:"child",data:{is:"subordinated"},nested:[],context:{element:["child",0]}}],consent:{functional:!0},id:`${t}-${n}-${r}`,trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:n,count:r,version:{source:"3.4.1",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[t,n]=e.name.split(" ")??[];t&&n&&(o.entity=t,o.action=n)}return o}function be(e="entity action",t={}){const n=t.timestamp||(new Date).setHours(0,13,37,0),r={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},o={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return ye({...{"cart view":{data:{currency:"EUR",value:2*r.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...r.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:r.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...r,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...o,context:{shopping:["checkout",0]},nested:[]}],trigger:"load"},"order complete":{data:{id:"0rd3r1d",currency:"EUR",shipping:5.22,taxes:73.76,total:555},context:{shopping:["complete",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...r,context:{shopping:["complete",0]},nested:[]},{entity:"product",...o,context:{shopping:["complete",0]},nested:[]},{entity:"gift",data:{name:"Surprise"},context:{shopping:["complete",0]},nested:[]}],trigger:"load"},"page view":{data:{domain:"www.example.com",title:"walkerOS documentation",referrer:"https://www.walkeros.io/",search:"?foo=bar",hash:"#hash",id:"/docs/"},globals:{pagegroup:"docs"},trigger:"load"},"product add":{...r,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...r,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...r.data,position:3,promo:!0},context:{shopping:["discover",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"promotion visible":{data:{name:"Setting up tracking easily",position:"hero"},context:{ab_test:["engagement",0]},globals:{pagegroup:"homepage"},trigger:"visible"},"session start":{data:{id:"s3ss10n",start:n,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,referrer:"",device:"c00k13"},user:{id:"us3r",device:"c00k13",session:"s3ss10n",hash:"h4sh",address:"street number",email:"user@example.com",phone:"+49 123 456 789",userAgent:"Mozilla...",browser:"Chrome",browserVersion:"90",deviceType:"desktop",language:"de-DE",country:"DE",region:"HH",city:"Hamburg",zip:"20354",timezone:"Berlin",os:"walkerOS",osVersion:"1.0",screenSize:"1337x420",ip:"127.0.0.0",internal:!0,custom:"value"}}}[e],...t,name:e})}function he(e=6,t){if(t){const n=t.length;let r="";for(let o=0;o<e;o++)r+=t[Math.random()*n|0];return r}let n="";for(let t=36;n.length<e;)n+=(Math.random()*t|0).toString(t);return n}var ve=[{param:"gclid",platform:"google"},{param:"wbraid",platform:"google"},{param:"gbraid",platform:"google"},{param:"dclid",platform:"google"},{param:"gclsrc",platform:"google"},{param:"fbclid",platform:"meta"},{param:"igshid",platform:"meta"},{param:"msclkid",platform:"microsoft"},{param:"ttclid",platform:"tiktok"},{param:"twclid",platform:"twitter"},{param:"li_fat_id",platform:"linkedin"},{param:"epik",platform:"pinterest"},{param:"sclid",platform:"snapchat"},{param:"sccid",platform:"snapchat"},{param:"rdt_cid",platform:"reddit"},{param:"qclid",platform:"quora"},{param:"yclid",platform:"yandex"},{param:"ymclid",platform:"yandex"},{param:"ysclid",platform:"yandex"},{param:"dicbo",platform:"outbrain"},{param:"obclid",platform:"outbrain"},{param:"tblci",platform:"taboola"},{param:"mc_cid",platform:"mailchimp"},{param:"mc_eid",platform:"mailchimp"},{param:"_kx",platform:"klaviyo"},{param:"_hsenc",platform:"hubspot"},{param:"_hsmi",platform:"hubspot"},{param:"s_kwcid",platform:"adobe"},{param:"ef_id",platform:"adobe"},{param:"mkt_tok",platform:"adobe"},{param:"irclickid",platform:"impact"},{param:"cjevent",platform:"cj"},{param:"_branch_match_id",platform:"branch"}];function we(e,t={},n=[]){const r={};Object.entries(K({utm_campaign:"campaign",utm_content:"content",utm_medium:"medium",utm_source:"source",utm_term:"term"},t)).forEach(([t,n])=>{const o=e.searchParams.get(t);o&&(r[n]=o)});const o=n.length?function(e){const t=new Map(e.map(e=>[e.param,e.platform])),n=new Set(ve.map(e=>e.param));return[...ve.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):ve,i=new Map;e.searchParams.forEach((e,t)=>{e&&i.set(t.toLowerCase(),e)});for(const e of o){const t=i.get(e.param);t&&(r[e.param]=t,r.clickId||(r.clickId=e.param,r.platform=e.platform))}return r}function je(e,t=1e3,n=!1){let r,o=null,i=!1;return(...a)=>new Promise(s=>{const c=n&&!i;o&&clearTimeout(o),o=setTimeout(()=>{o=null,n&&!i||(r=e(...a),s(r))},t),c&&(i=!0,r=e(...a),s(r))})}function ke(e,t=1e3){let n=null;return function(...r){if(null===n)return n=setTimeout(()=>{n=null},t),e(...r)}}function Oe(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function xe(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=Oe(e)):n=e,void 0!==t&&(t instanceof Error?r.error=Oe(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=Oe(r.error))):r.value=t),{message:n,context:r}}var $e=(e,t,n,r)=>{const o=`${m[e]}${r.length>0?` [${r.join(":")}]`:""}`,i=Object.keys(n).length>0,a=0===e?console.error:1===e?console.warn:console.log;i?a(o,t,n):a(o,t)};function Se(e={}){return Ae({level:void 0!==e.level?function(e){return"string"==typeof e?m[e]:e}(e.level):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]})}function Ae(e){const{level:t,handler:n,jsonHandler:r,scope:o}=e,i=(e,r,i)=>{if(e<=t){const t=xe(r,i);n?n(e,t.message,t.context,o,$e):$e(e,t.message,t.context,o)}};return{error:(e,t)=>i(0,e,t),warn:(e,t)=>i(1,e,t),info:(e,t)=>i(2,e,t),debug:(e,t)=>i(3,e,t),throw:(e,t)=>{const r=xe(e,t);throw n?n(0,r.message,r.context,o,$e):$e(0,r.message,r.context,o),new Error(r.message)},json:e=>{r?r(e):console.log(JSON.stringify(e,null,2))},scope:e=>Ae({level:t,handler:n,jsonHandler:r,scope:[...o,e]})}}function Ee(e){return Q(e)||ae(e)||re(e)||!ee(e)||X(e)&&e.every(Ee)||oe(e)&&Object.values(e).every(Ee)}function _e(e){return Q(e)||ae(e)||re(e)?e:G(e)?_e(Array.from(e)):X(e)?e.map(e=>_e(e)).filter(e=>void 0!==e):oe(e)?Object.entries(e).reduce((e,[t,n])=>{const r=_e(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function Ne(e){return Ee(e)?e:void 0}function Pe(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function Ce(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}async function Me(e,t){const[n,r]=(e.name||"").split(" ");if(!t||!n||!r)return{};let o,i="",a=n,s=r;const c=t=>{if(t)return(t=X(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[a]||(a="*");const u=t[a];return u&&(u[s]||(s="*"),o=c(u[s])),o||(a="*",s="*",o=c(t[a]?.[s])),o&&(i=`${a} ${s}`),{eventMapping:o,mappingKey:i}}async function Te(e,t={},n={}){if(!ee(e))return;const r=oe(e)&&e.consent||n.consent||n.collector?.consent,o=X(t)?t:[t];for(const t of o){const o=await Ce(Re)(e,t,{...n,consent:r});if(ee(o))return o}}async function Re(e,t,n={}){const{collector:r,consent:o}=n;return(X(t)?t:[t]).reduce(async(t,i)=>{const a=await t;if(a)return a;const s=ae(i)?{key:i}:i;if(!Object.keys(s).length)return;const{condition:c,consent:u,fn:l,key:f,loop:p,map:d,set:g,validate:m,value:y}=s;if(c&&!await Ce(c)(e,i,r))return;if(u&&!de(u,o))return y;let b=ee(y)?y:e;if(l&&(b=await Ce(l)(e,i,n)),f&&(b=ce(e,f,y)),p){const[t,r]=p,o="this"===t?[e]:await Te(e,t,n);X(o)&&(b=(await Promise.all(o.map(e=>Te(e,r,n)))).filter(ee))}else d?b=await Object.entries(d).reduce(async(t,[r,o])=>{const i=await t,a=await Te(e,o,n);return ee(a)&&(i[r]=a),i},Promise.resolve({})):g&&(b=await Promise.all(g.map(t=>Re(e,t,n))));m&&!await Ce(m)(b)&&(b=void 0);const h=Ne(b);return ee(h)?h:Ne(y)},Promise.resolve(void 0))}async function Ie(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await Te(e,r,{collector:n});e=ue(e,t,o)}));const{eventMapping:r,mappingKey:o}=await Me(e,t.mapping);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await Te(e,r,{collector:n});e=ue(e,t,o)}));let i=t.data&&await Te(e,t.data,{collector:n});const a=Boolean(r?.skip);if(r){if(r.ignore)return{event:e,data:i,mapping:r,mappingKey:o,ignore:!0,skip:a};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await Te(e,r.data,{collector:n});i=oe(i)&&oe(t)?K(i,t):t}}const s=r?.include??t.include;if(s&&s.length>0){const t=fe(e,s);Object.keys(t).length>0&&(i=oe(i)?K(t,i):i??t)}return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1,skip:a}}function De(e,t){const n=(e,r=[])=>new Proxy(e,{get(e,o){const i=e[o],a=[...r,o];return"function"==typeof i?i.prototype&&i.prototype.constructor===i?i:(...e)=>{const r=t(a,e,i);if(r&&"object"==typeof r)return n(r,a);const o=i(...e);return o&&"object"==typeof o?n(o,a):r}:i&&"object"==typeof i?n(i,a):i}});return n(e)}function He(e,t){const n=(e,r=[])=>{if(!e||"object"!=typeof e)return e;const o=Array.isArray(e)?[]:{};for(const[i,a]of Object.entries(e)){const e=[...r,i];Array.isArray(o)?o[Number(i)]=t(a,e):o[i]=t(a,e),a&&"object"==typeof a&&"function"!=typeof a&&(Array.isArray(o)?o[Number(i)]=n(a,e):o[i]=n(a,e))}return o};return n(e)}function ze(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=ze();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 Fe(e={}){return{collector:{},config:{},env:{},logger:ze(),id:"test",ingest:_("test"),...e}}function Ue(e){const t=String(e),n=t.split("?")[1]||t;return Pe(()=>{const e=new URLSearchParams(n),t={};return e.forEach((e,n)=>{const r=n.split(/[[\]]+/).filter(Boolean);let o=t;r.forEach((t,n)=>{const i=n===r.length-1;if(X(o)){const a=parseInt(t,10);i?o[a]=pe(e):(o[a]=o[a]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[a])}else oe(o)&&(i?o[t]=pe(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function Ve(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(X(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):oe(o)?Object.entries(o).forEach(([t,n])=>r(`${e}[${t}]`,n)):t.push(`${n(e)}=${n(String(o))}`))}return"object"!=typeof e?n(e):(Object.entries(e).forEach(([e,t])=>r(e,t)),t.join("&"))}function Le(e){return void 0===e||ie(e,"")?e:JSON.stringify(e)}function Be(e={}){return K({"Content-Type":"application/json; charset=utf-8"},e)}function We(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function qe(e,t,n,r){return function(...o){let i;const a="pre"+t,s="post"+t,c=n[a],u=n[s],l=(e,t)=>{r?r.warn(e,{error:t}):console.warn(e,t)};if(c)try{i=c({fn:e},...o)}catch(t){l(`Hook ${String(a)} failed, falling back to original function`,t),i=e(...o)}else i=e(...o);if(u)try{i=u({fn:e,result:i},...o)}catch(e){l(`Hook ${String(s)} failed, keeping original result`,e)}return i}}function Ze(e){return e?{userAgent:e,browser:Je(e),browserVersion:Ke(e),os:Ge(e),osVersion:Xe(e),deviceType:Qe(e)}:{}}function Je(e){const t=[{name:"Edge",substr:"Edg"},{name:"Chrome",substr:"Chrome"},{name:"Safari",substr:"Safari",exclude:"Chrome"},{name:"Firefox",substr:"Firefox"},{name:"IE",substr:"MSIE"},{name:"IE",substr:"Trident"}];for(const n of t)if(e.includes(n.substr)&&(!n.exclude||!e.includes(n.exclude)))return n.name}function Ke(e){const t=[/Edg\/([0-9]+)/,/Chrome\/([0-9]+)/,/Version\/([0-9]+).*Safari/,/Firefox\/([0-9]+)/,/MSIE ([0-9]+)/,/rv:([0-9]+).*Trident/];for(const n of t){const t=e.match(n);if(t)return t[1]}}function Ge(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 Xe(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function Qe(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 Ye(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function et(e){const t=Ye(e);return new Function("value","mapping","collector",t)}function tt(e){const t=Ye(e);return new Function("value","mapping","options",t)}function nt(e){const t=Ye(e);return new Function("value",t)}var rt="https://cdn.jsdelivr.net/npm",ot="dist/walkerOS.json";function it(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function at(e,t){const n=t?.version||"latest",r=t?.timeout||1e4,o=new AbortController,i=setTimeout(()=>o.abort(),r),a=o.signal;try{let r,o;if(t?.baseUrl){const i=encodeURIComponent(e),s=`${t.baseUrl}/api/packages/${i}`;r=await st(`${s}?version=${n}&path=package.json`,a),o=await st(`${s}?version=${n}&path=dist/walkerOS.json`,a)}else{const t=`${rt}/${e}@${n}`;r=await st(`${t}/package.json`,a),o=await st(`${t}/${ot}`,a)}return function(e,t,n,r){const o=r.$meta||{},i=r.schemas||{},a=r.examples||{},s=r.hints,c=s?Object.keys(s):[],u=[],l=a.step||{};for(const[e,t]of Object.entries(l)){const n=t,r={name:e};"string"==typeof n?.description&&(r.description=n.description),u.push(r)}const f="string"==typeof o.docs?o.docs:void 0,p="string"==typeof o.source?o.source:void 0;return{packageName:e,version:"string"==typeof n.version?n.version:t,description:"string"==typeof n.description?n.description:void 0,type:"string"==typeof o.type?o.type:void 0,platform:it(o.platform),schemas:i,examples:a,...f?{docs:f}:{},...p?{source:p}:{},...s&&Object.keys(s).length>0?{hints:s}:{},hintKeys:c,exampleSummaries:u}}(e,n,r,o)}finally{clearTimeout(i)}}async function st(e,t){const n=await fetch(e,{signal:t});if(!n.ok)throw new Error(`Failed to fetch ${e} (HTTP ${n.status})`);return await n.json()}async function ct(e,t){const n=await at(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 ut(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function lt(e,t){let n,r,o,i;if(e instanceof Error){n=e.message;const t=e;t.code&&(o=t.code),Array.isArray(t.details)&&(i=t.details)}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("; "),r=t[0]?.path?.join(".")||void 0}else n=e&&"object"==typeof e&&"message"in e?String(e.message):"Unknown error";const a={error:n};return t&&(a.hint=t),r&&(a.path=r),o&&(a.code=o),i&&(a.details=i),{content:[{type:"text",text:JSON.stringify(a)}],structuredContent:a,isError:!0}}function ft(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function pt(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(pt);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(pt);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value:r,not:o}=e,i=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,r);return e=>{const n=ce(e,t),r=i(n);return o?!r:r}}(e)}function dt(e){return Array.isArray(e)&&e.length>0&&"object"==typeof e[0]&&null!==e[0]&&"match"in e[0]}function gt(e){if(null!=e){if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(dt(e)){return{type:"routes",routes:e.map(e=>({match:pt(e.match),next:gt(e.next)}))}}return{type:"chain",value:e}}}}function mt(e,t={}){if(e){if("static"===e.type)return e.value;if("chain"===e.type)return e.value;for(const n of e.routes)if(n.match(t))return mt(n.next,t)}}function yt(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function bt(e){return{full:e.full??!1,storeId:e.store,rules:e.rules.map(e=>({match:pt(e.match),key:e.key,ttl:e.ttl,update:e.update}))}}function ht(e,t,n,r){const o=e.rules.find(e=>e.match(n));if(!o)return null;const i=o.key.map(e=>String(ce(n,e)??""));if(i.every(e=>""===e))return null;const a=`${r}:${i.join(":")}`,s=t.get(a);return void 0!==s?{status:"HIT",key:a,value:s,rule:o}:{status:"MISS",key:a,rule:o}}function vt(e,t,n,r){e.set(t,n,1e3*r)}async function wt(e,t,n){if(!t)return e;let r=e;for(const[e,o]of Object.entries(t)){r=ue(r,e,await Te(n,o))}return r}function jt(e){return 0===e.length?"// no output":e.map(kt).join(";\n\n")}function kt(e){const[t,...n]=e,r=n.map(Ot).join(", ");return"return"===t?r?`return ${r}`:"return":`${t}(${r})`}function Ot(e){return void 0===e?"undefined":null===e?"null":"function"==typeof e?"[Function]":JSON.stringify(e,null,2)}//# sourceMappingURL=index.js.map
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var e=Object.defineProperty,t={},n={},o={},r={},i={},s={},a={},c={};((t,n)=>{for(var o in n)e(t,o,{get:n[o],enumerable:!0})})(c,{Level:()=>u});var u=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(u||{}),f={},l={},p={},d={},m={},g={},y={},b={},h={},v={},j={},w={},k={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function x(e){return{_meta:{hops:0,path:[e]}}}function O(e,t){return{event:e,next:t}}function $(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function S(e){throw new Error(String(e))}var A=["globals","context","custom","user","consent"],E=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)&&S(`Circular extends chain detected: ${[...n,r].join(" → ")}`);const i=e[r];i||S(`Contract "${r}" not found`),n.add(r);let s={};if(i.extends){s=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 A){const r=e[o],i=t[o];r&&i?n[o]=N(r,i):(r||i)&&(n[o]={...r||i})}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]||{},i=t.events?.[n]||{},s=new Set([...Object.keys(r),...Object.keys(i)]);o[n]={};for(const e of s){const t=r[e],s=i[e];o[n][e]=t&&s?N(t,s):{...t||s}}}n.events=o}return n}(o(i.extends),i)}else s={...i};if(delete s.extends,s.events&&(s.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 i=e["*"]?.["*"];i&&(r=N(r,i));const s=e["*"]?.[o];s&&"*"!==o&&(r=N(r,s));const a=e[n]?.["*"];a&&"*"!==o&&(r=N(r,a));const c=e[n]?.[o];c&&(r=N(r,c)),t[n][o]=r}}e["*"]&&(t["*"]={...e["*"]});return t}(s.events)),s.events){const e={};for(const[t,n]of Object.entries(s.events)){e[t]={};for(const[o,r]of Object.entries(n))e[t][o]=P(r)}s.events=e}return n.delete(r),t[r]=s,s}for(const t of Object.keys(e))o(t);return t}function N(e,t){const n={...e};for(const o of Object.keys(t)){const r=e[o],i=t[o];"required"===o&&Array.isArray(r)&&Array.isArray(i)?n[o]=[...new Set([...r,...i])]:C(r)&&C(i)?n[o]=N(r,i):n[o]=i}return n}function P(e){const t={};for(const[n,o]of Object.entries(e))E.has(n)||(null===o||"object"!=typeof o||Array.isArray(o)?t[n]=o:t[n]=P(o));return t}function C(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function M(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function R(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var T="__WALKEROS_ENV:";function I(e,t,n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const i=o[e];if(null==r||"object"!=typeof r){const r=o.slice(0,e).join(".");S(`Path "${t}" not found in "${n}": "${i}" does not exist${r?` in "${r}"`:""}`)}const s=r;if(!(i in s)){const r=o.slice(0,e).join(".");S(`Path "${t}" not found in "${n}": "${i}" does not exist${r?` in "${r}"`:""}`)}r=s[i]}return r}function z(e,t,n,o,r){if("string"==typeof e){const i=e.match(/^\$def\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(i){const e=i[1],s=i[2];void 0===n[e]&&S(`Definition "${e}" not found`);let a=z(n[e],t,n,o,r);return s&&(a=I(a,s,`$def.${e}`)),a}const s=e.match(/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(s&&r){const e=s[1],t=s[2];e in r||S(`Contract "${e}" not found`);let n=r[e];return t&&(n=I(n,t,`$contract.${e}`)),n}let a=e.replace(/\$var\.([a-zA-Z_][a-zA-Z0-9_]*)/g,(e,n)=>{if(void 0!==t[n])return String(t[n]);S(`Variable "${n}" not found`)});return a=a.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 S(`Environment variable "${t}" not found and no default provided`)),a}if(Array.isArray(e))return e.map(e=>z(e,t,n,o,r));if(null!==e&&"object"==typeof e){const i={};for(const[s,a]of Object.entries(e))i[s]=z(a,t,n,o,r);return i}return e}function H(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 U(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?H(e):void 0}function D(e,t,n){const o=Object.keys(e.flows);t||(1===o.length?t=o[0]:S(`Multiple flows found (${o.join(", ")}). Please specify a flow.`));const r=e.flows[t];r||S(`Flow "${t}" not found. Available: ${o.join(", ")}`);const i=JSON.parse(JSON.stringify(r));let s;if(e.contract){const t=M(e.variables,r.variables),o=R(e.definitions,r.definitions);s=_(z(e.contract,t,o,n))}if(i.sources)for(const[t,o]of Object.entries(i.sources)){const a=M(e.variables,r.variables,o.variables),c=R(e.definitions,r.definitions,o.definitions),u=z(o.config,a,c,n,s),f=z(o.env,a,c,n,s),l=U(o.package,o.code,i.bundle?.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;i.sources[t]={package:o.package,config:u,env:f,primary:o.primary,variables:o.variables,definitions:o.definitions,before:o.before,next:o.next,cache:o.cache,code:d}}if(i.destinations)for(const[t,o]of Object.entries(i.destinations)){const a=M(e.variables,r.variables,o.variables),c=R(e.definitions,r.definitions,o.definitions),u=z(o.config,a,c,n,s),f=z(o.env,a,c,n,s),l=U(o.package,o.code,i.bundle?.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;i.destinations[t]={package:o.package,config:u,env:f,variables:o.variables,definitions:o.definitions,before:o.before,next:o.next,cache:o.cache,code:d}}if(i.stores)for(const[t,o]of Object.entries(i.stores)){const a=M(e.variables,r.variables,o.variables),c=R(e.definitions,r.definitions,o.definitions),u=z(o.config,a,c,n,s),f=z(o.env,a,c,n,s),l=U(o.package,o.code,i.bundle?.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;i.stores[t]={package:o.package,config:u,env:f,variables:o.variables,definitions:o.definitions,code:d}}if(i.transformers)for(const[t,o]of Object.entries(i.transformers)){const a=M(e.variables,r.variables,o.variables),c=R(e.definitions,r.definitions,o.definitions),u=z(o.config,a,c,n,s),f=z(o.env,a,c,n,s),l=U(o.package,o.code,i.bundle?.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;i.transformers[t]={package:o.package,config:u,env:f,variables:o.variables,definitions:o.definitions,before:o.before,next:o.next,cache:o.cache,code:d}}if(i.collector){const t=M(e.variables,r.variables),o=R(e.definitions,r.definitions),a=z(i.collector,t,o,n,s);i.collector=a}return i}function F(e){return void 0!==e.web?"web":void 0!==e.server?"server":void S("Settings must have web or server key")}var W={merge:!0,shallow:!0,extend:!0};function L(e,t={},n={}){n={...W,...n};const o=Object.entries(t).reduce((t,[o,r])=>{const i=e[o];return n.merge&&Array.isArray(i)&&Array.isArray(r)?t[o]=r.reduce((e,t)=>e.includes(t)?e:[...e,t],[...i]):(n.extend||o in e)&&(t[o]=r),t},{});return n.shallow?{...e,...o}:(Object.assign(e,o),e)}function Z(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function B(e){return Array.isArray(e)}function J(e){return"boolean"==typeof e}function V(e){return"walker"===e}function q(e){return void 0!==e}function K(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function G(e){return"function"==typeof e}function X(e){return"number"==typeof e&&!Number.isNaN(e)}function Q(e){return"object"==typeof e&&null!==e&&!B(e)&&"[object Object]"===Object.prototype.toString.call(e)}function Y(e,t){return typeof e==typeof t}function ee(e){return"string"==typeof e}function te(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]=te(e[o],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(te(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 ne(e,t="",n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const t=o[e];if("*"===t&&B(r)){const t=o.slice(e+1).join("."),i=[];for(const e of r){const o=ne(e,t,n);i.push(o)}return i}if(r=r instanceof Object?r[t]:void 0,void 0===r)break}return q(r)?r:n}function oe(e,t,n){if(!Q(e))return e;const o=te(e),r=t.split(".");let i=o;for(let e=0;e<r.length;e++){const t=r[e];e===r.length-1?i[t]=n:(t in i&&"object"==typeof i[t]&&null!==i[t]||(i[t]={}),i=i[t])}return o}var re={data:e=>e.data,globals:e=>e.globals,context:e=>e.context,user:e=>e.user,source:e=>e.source,version:e=>e.version,event:e=>({entity:e.entity,action:e.action,id:e.id,timestamp:e.timestamp,name:e.name,trigger:e.trigger,group:e.group,count:e.count,timing:e.timing})};function ie(e,t){const n={},o=t.includes("all")?Object.keys(re):t;for(const t of o){const o=re[t];if(!o)continue;const r=o(e);if(Q(r))for(const[e,o]of Object.entries(r)){if(void 0===o)continue;const r="context"===t&&Array.isArray(o)?o[0]:o;n[`${t}_${e}`]=r}}return n}function se(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 i=!e||0===Object.keys(e).length;return Object.keys(o).forEach(t=>{o[t]&&(r[t]=!0,e&&e[t]&&(i=!0))}),!!i&&r}function ce(e,t){const n={...e};return n.config=L(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=L(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=L(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function ue(e,t){if(!Q(t))return e;for(const n of Object.keys(t)){const o=t[n];void 0!==o&&(Q(o)&&Q(e[n])?ue(e[n],o):e[n]=o)}return e}function fe(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",o=e.count||1,r=L({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.4.1-next-1776790594143",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 le(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 fe({...{"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,t){if(t){const n=t.length;let o="";for(let r=0;r<e;r++)o+=t[Math.random()*n|0];return o}let n="";for(let t=36;n.length<e;)n+=(Math.random()*t|0).toString(t);return n}var de=[{param:"gclid",platform:"google"},{param:"wbraid",platform:"google"},{param:"gbraid",platform:"google"},{param:"dclid",platform:"google"},{param:"gclsrc",platform:"google"},{param:"fbclid",platform:"meta"},{param:"igshid",platform:"meta"},{param:"msclkid",platform:"microsoft"},{param:"ttclid",platform:"tiktok"},{param:"twclid",platform:"twitter"},{param:"li_fat_id",platform:"linkedin"},{param:"epik",platform:"pinterest"},{param:"sclid",platform:"snapchat"},{param:"sccid",platform:"snapchat"},{param:"rdt_cid",platform:"reddit"},{param:"qclid",platform:"quora"},{param:"yclid",platform:"yandex"},{param:"ymclid",platform:"yandex"},{param:"ysclid",platform:"yandex"},{param:"dicbo",platform:"outbrain"},{param:"obclid",platform:"outbrain"},{param:"tblci",platform:"taboola"},{param:"mc_cid",platform:"mailchimp"},{param:"mc_eid",platform:"mailchimp"},{param:"_kx",platform:"klaviyo"},{param:"_hsenc",platform:"hubspot"},{param:"_hsmi",platform:"hubspot"},{param:"s_kwcid",platform:"adobe"},{param:"ef_id",platform:"adobe"},{param:"mkt_tok",platform:"adobe"},{param:"irclickid",platform:"impact"},{param:"cjevent",platform:"cj"},{param:"_branch_match_id",platform:"branch"}];function me(e,t={},n=[]){const o={};Object.entries(L({utm_campaign:"campaign",utm_content:"content",utm_medium:"medium",utm_source:"source",utm_term:"term"},t)).forEach(([t,n])=>{const r=e.searchParams.get(t);r&&(o[n]=r)});const r=n.length?function(e){const t=new Map(e.map(e=>[e.param,e.platform])),n=new Set(de.map(e=>e.param));return[...de.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):de,i=new Map;e.searchParams.forEach((e,t)=>{e&&i.set(t.toLowerCase(),e)});for(const e of r){const t=i.get(e.param);t&&(o[e.param]=t,o.clickId||(o.clickId=e.param,o.platform=e.platform))}return o}function ge(e,t=1e3,n=!1){let o,r=null,i=!1;return(...s)=>new Promise(a=>{const c=n&&!i;r&&clearTimeout(r),r=setTimeout(()=>{r=null,n&&!i||(o=e(...s),a(o))},t),c&&(i=!0,o=e(...s),a(o))})}function ye(e,t=1e3){let n=null;return function(...o){if(null===n)return n=setTimeout(()=>{n=null},t),e(...o)}}function be(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function he(e,t){let n,o={};return e instanceof Error?(n=e.message,o.error=be(e)):n=e,void 0!==t&&(t instanceof Error?o.error=be(t):"object"==typeof t&&null!==t?(o={...o,...t},"error"in o&&o.error instanceof Error&&(o.error=be(o.error))):o.value=t),{message:n,context:o}}var ve=(e,t,n,o)=>{const r=`${u[e]}${o.length>0?` [${o.join(":")}]`:""}`,i=Object.keys(n).length>0,s=0===e?console.error:1===e?console.warn:console.log;i?s(r,t,n):s(r,t)};function je(e={}){return we({level:void 0!==e.level?function(e){return"string"==typeof e?u[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,i=(e,o,i)=>{if(e<=t){const t=he(o,i);n?n(e,t.message,t.context,r,ve):ve(e,t.message,t.context,r)}};return{error:(e,t)=>i(0,e,t),warn:(e,t)=>i(1,e,t),info:(e,t)=>i(2,e,t),debug:(e,t)=>i(3,e,t),throw:(e,t)=>{const o=he(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 ke(e){return J(e)||ee(e)||X(e)||!q(e)||B(e)&&e.every(ke)||Q(e)&&Object.values(e).every(ke)}function xe(e){return J(e)||ee(e)||X(e)?e:Z(e)?xe(Array.from(e)):B(e)?e.map(e=>xe(e)).filter(e=>void 0!==e):Q(e)?Object.entries(e).reduce((e,[t,n])=>{const o=xe(n);return void 0!==o&&(e[t]=o),e},{}):void 0}function Oe(e){return ke(e)?e:void 0}function $e(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 Ae(e,t){const[n,o]=(e.name||"").split(" ");if(!t||!n||!o)return{};let r,i="",s=n,a=o;const c=t=>{if(t)return(t=B(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[s]||(s="*");const u=t[s];return u&&(u[a]||(a="*"),r=c(u[a])),r||(s="*",a="*",r=c(t[s]?.[a])),r&&(i=`${s} ${a}`),{eventMapping:r,mappingKey:i}}async function Ee(e,t={},n={}){if(!q(e))return;const o=Q(e)&&e.consent||n.consent||n.collector?.consent,r=B(t)?t:[t];for(const t of r){const r=await Se(_e)(e,t,{...n,consent:o});if(q(r))return r}}async function _e(e,t,n={}){const{collector:o,consent:r}=n;return(B(t)?t:[t]).reduce(async(t,i)=>{const s=await t;if(s)return s;const a=ee(i)?{key:i}:i;if(!Object.keys(a).length)return;const{condition:c,consent:u,fn:f,key:l,loop:p,map:d,set:m,validate:g,value:y}=a;if(c&&!await Se(c)(e,i,o))return;if(u&&!ae(u,r))return y;let b=q(y)?y:e;if(f&&(b=await Se(f)(e,i,n)),l&&(b=ne(e,l,y)),p){const[t,o]=p,r="this"===t?[e]:await Ee(e,t,n);B(r)&&(b=(await Promise.all(r.map(e=>Ee(e,o,n)))).filter(q))}else d?b=await Object.entries(d).reduce(async(t,[o,r])=>{const i=await t,s=await Ee(e,r,n);return q(s)&&(i[o]=s),i},Promise.resolve({})):m&&(b=await Promise.all(m.map(t=>_e(e,t,n))));g&&!await Se(g)(b)&&(b=void 0);const h=Oe(b);return q(h)?h:Oe(y)},Promise.resolve(void 0))}async function Ne(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=oe(e,t,r)}));const{eventMapping:o,mappingKey:r}=await Ae(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=oe(e,t,r)}));let i=t.data&&await Ee(e,t.data,{collector:n});const s=Boolean(o?.skip);if(o){if(o.ignore)return{event:e,data:i,mapping:o,mappingKey:r,ignore:!0,skip:s};if(o.name&&(e.name=o.name),o.data){const t=o.data&&await Ee(e,o.data,{collector:n});i=Q(i)&&Q(t)?L(i,t):t}}const a=o?.include??t.include;if(a&&a.length>0){const t=ie(e,a);Object.keys(t).length>0&&(i=Q(i)?L(t,i):i??t)}return{event:e,data:i,mapping:o,mappingKey:r,ignore:!1,skip:s}}function Pe(e,t){const n=(e,o=[])=>new Proxy(e,{get(e,r){const i=e[r],s=[...o,r];return"function"==typeof i?i.prototype&&i.prototype.constructor===i?i:(...e)=>{const o=t(s,e,i);if(o&&"object"==typeof o)return n(o,s);const r=i(...e);return r&&"object"==typeof r?n(r,s):o}:i&&"object"==typeof i?n(i,s):i}});return n(e)}function Ce(e,t){const n=(e,o=[])=>{if(!e||"object"!=typeof e)return e;const r=Array.isArray(e)?[]:{};for(const[i,s]of Object.entries(e)){const e=[...o,i];Array.isArray(r)?r[Number(i)]=t(s,e):r[i]=t(s,e),s&&"object"==typeof s&&"function"!=typeof s&&(Array.isArray(r)?r[Number(i)]=n(s,e):r[i]=n(s,e))}return r};return n(e)}function Me(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=Me();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 Re(e={}){return{collector:{},config:{},env:{},logger:Me(),id:"test",ingest:x("test"),...e}}function Te(e){const t=String(e),n=t.split("?")[1]||t;return $e(()=>{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 i=n===o.length-1;if(B(r)){const s=parseInt(t,10);i?r[s]=se(e):(r[s]=r[s]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[s])}else Q(r)&&(i?r[t]=se(e):(r[t]=r[t]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[t]))})}),t})()}function Ie(e){if(!e)return"";const t=[],n=encodeURIComponent;function o(e,r){null!=r&&(B(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 ze(e){return void 0===e||Y(e,"")?e:JSON.stringify(e)}function He(e={}){return L({"Content-Type":"application/json; charset=utf-8"},e)}function Ue(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function De(e,t,n,o){return function(...r){let i;const s="pre"+t,a="post"+t,c=n[s],u=n[a],f=(e,t)=>{o?o.warn(e,{error:t}):console.warn(e,t)};if(c)try{i=c({fn:e},...r)}catch(t){f(`Hook ${String(s)} failed, falling back to original function`,t),i=e(...r)}else i=e(...r);if(u)try{i=u({fn:e,result:i},...r)}catch(e){f(`Hook ${String(a)} failed, keeping original result`,e)}return i}}function Fe(e){return e?{userAgent:e,browser:We(e),browserVersion:Le(e),os:Ze(e),osVersion:Be(e),deviceType:Je(e)}:{}}function We(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 Le(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 Be(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function Je(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 Ve(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function qe(e){const t=Ve(e);return new Function("value","mapping","collector",t)}function Ke(e){const t=Ve(e);return new Function("value","mapping","options",t)}function Ge(e){const t=Ve(e);return new Function("value",t)}function Xe(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function Qe(e,t){const n=t?.version||"latest",o=t?.timeout||1e4,r=new AbortController,i=setTimeout(()=>r.abort(),o),s=r.signal;try{let o,r;if(t?.baseUrl){const i=encodeURIComponent(e),a=`${t.baseUrl}/api/packages/${i}`;o=await Ye(`${a}?version=${n}&path=package.json`,s),r=await Ye(`${a}?version=${n}&path=dist/walkerOS.json`,s)}else{const t=`https://cdn.jsdelivr.net/npm/${e}@${n}`;o=await Ye(`${t}/package.json`,s),r=await Ye(`${t}/dist/walkerOS.json`,s)}return function(e,t,n,o){const r=o.$meta||{},i=o.schemas||{},s=o.examples||{},a=o.hints,c=a?Object.keys(a):[],u=[],f=s.step||{};for(const[e,t]of Object.entries(f)){const n=t,o={name:e};"string"==typeof n?.description&&(o.description=n.description),u.push(o)}const l="string"==typeof r.docs?r.docs:void 0,p="string"==typeof r.source?r.source:void 0;return{packageName:e,version:"string"==typeof n.version?n.version:t,description:"string"==typeof n.description?n.description:void 0,type:"string"==typeof r.type?r.type:void 0,platform:Xe(r.platform),schemas:i,examples:s,...l?{docs:l}:{},...p?{source:p}:{},...a&&Object.keys(a).length>0?{hints:a}:{},hintKeys:c,exampleSummaries:u}}(e,n,o,r)}finally{clearTimeout(i)}}async function Ye(e,t){const n=await fetch(e,{signal:t});if(!n.ok)throw new Error(`Failed to fetch ${e} (HTTP ${n.status})`);return await n.json()}async function et(e,t){const n=await Qe(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 tt(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function nt(e,t){let n,o,r,i;if(e instanceof Error){n=e.message;const t=e;t.code&&(r=t.code),Array.isArray(t.details)&&(i=t.details)}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 s={error:n};return t&&(s.hint=t),o&&(s.path=o),r&&(s.code=r),i&&(s.details=i),{content:[{type:"text",text:JSON.stringify(s)}],structuredContent:s,isError:!0}}function ot(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function rt(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(rt);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(rt);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value:o,not:r}=e,i=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=ne(e,t),o=i(n);return r?!o:o}}(e)}function it(e){return Array.isArray(e)&&e.length>0&&"object"==typeof e[0]&&null!==e[0]&&"match"in e[0]}function st(e){if(null!=e){if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(it(e)){return{type:"routes",routes:e.map(e=>({match:rt(e.match),next:st(e.next)}))}}return{type:"chain",value:e}}}}function at(e,t={}){if(e){if("static"===e.type)return e.value;if("chain"===e.type)return e.value;for(const n of e.routes)if(n.match(t))return at(n.next,t)}}function ct(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function ut(e){return{full:e.full??!1,storeId:e.store,rules:e.rules.map(e=>({match:rt(e.match),key:e.key,ttl:e.ttl,update:e.update}))}}function ft(e,t,n,o){const r=e.rules.find(e=>e.match(n));if(!r)return null;const i=r.key.map(e=>String(ne(n,e)??""));if(i.every(e=>""===e))return null;const s=`${o}:${i.join(":")}`,a=t.get(s);return void 0!==a?{status:"HIT",key:s,value:a,rule:r}:{status:"MISS",key:s,rule:r}}function lt(e,t,n,o){e.set(t,n,1e3*o)}async function pt(e,t,n){if(!t)return e;let o=e;for(const[e,r]of Object.entries(t)){o=oe(o,e,await Ee(n,r))}return o}function dt(e){return 0===e.length?"// no output":e.map(mt).join(";\n\n")}function mt(e){const[t,...n]=e,o=n.map(gt).join(", ");return"return"===t?o?`return ${o}`:"return":`${t}(${o})`}function gt(e){return void 0===e?"undefined":null===e?"null":"function"==typeof e?"[Function]":JSON.stringify(e,null,2)}export{t as Cache,n as Collector,k as Const,o as Context,r as Destination,T as ENV_MARKER_PREFIX,i as Elb,s as Flow,w as Hint,a as Hooks,u as Level,b as Lifecycle,c as Logger,f as Mapping,j as Matcher,l as On,d as Request,v as Simulation,m as Source,g as Store,p as Transformer,y as Trigger,h as WalkerOS,$ as anonymizeIP,pt as applyUpdate,L as assign,O as branch,ct as buildCacheContext,Oe as castToProperty,se as castValue,ft as checkCache,te as clone,ut as compileCache,rt as compileMatcher,st as compileNext,ce as createDestination,fe as createEvent,x as createIngest,je as createLogger,Re as createMockContext,Me as createMockLogger,ot as createRespond,ge as debounce,ue as deepMerge,de as defaultClickIds,Qe as fetchPackage,et as fetchPackageSchema,xe as filterValues,ie as flattenIncludeSections,dt as formatOut,We as getBrowser,Le as getBrowserVersion,ne as getByPath,Je as getDeviceType,le as getEvent,D as getFlowSettings,ae as getGrantedConsent,He as getHeaders,pe as getId,Ae as getMappingEvent,Ee as getMappingValue,me as getMarketingParameters,Ze as getOS,Be as getOSVersion,F as getPlatform,Z as isArguments,B as isArray,J as isBoolean,V as isCommand,q as isDefined,K as isElementOrDocument,G as isFunction,X as isNumber,Q as isObject,ke as isPropertyType,it as isRouteArray,Y as isSameType,ee as isString,nt as mcpError,tt as mcpResult,N as mergeContractSchemas,Pe as mockEnv,H as packageNameToVariable,Fe as parseUserAgent,Ne as processEventMapping,Te as requestToData,Ie as requestToParameter,_ as resolveContracts,at as resolveNext,oe as setByPath,lt as storeCache,ye as throttle,S as throwError,ze as transformData,Ce as traverseEnv,Ue as trim,$e as tryCatch,Se as tryCatchAsync,De as useHooks,I as walkPath,qe as wrapCondition,Ke as wrapFn,Ge as wrapValidate};//# sourceMappingURL=index.mjs.map
1
+ var e=Object.defineProperty,t={},n={},o={},r={},i={},s={},a={},c={};((t,n)=>{for(var o in n)e(t,o,{get:n[o],enumerable:!0})})(c,{Level:()=>u});var u=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(u||{}),f={},l={},p={},d={},m={},g={},y={},b={},h={},v={},j={},w={},k={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function x(e){return{_meta:{hops:0,path:[e]}}}function O(e,t){return{event:e,next:t}}function $(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function S(e){throw new Error(String(e))}var A=["globals","context","custom","user","consent"],E=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)&&S(`Circular extends chain detected: ${[...n,r].join(" → ")}`);const i=e[r];i||S(`Contract "${r}" not found`),n.add(r);let s={};if(i.extends){s=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 A){const r=e[o],i=t[o];r&&i?n[o]=N(r,i):(r||i)&&(n[o]={...r||i})}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]||{},i=t.events?.[n]||{},s=new Set([...Object.keys(r),...Object.keys(i)]);o[n]={};for(const e of s){const t=r[e],s=i[e];o[n][e]=t&&s?N(t,s):{...t||s}}}n.events=o}return n}(o(i.extends),i)}else s={...i};if(delete s.extends,s.events&&(s.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 i=e["*"]?.["*"];i&&(r=N(r,i));const s=e["*"]?.[o];s&&"*"!==o&&(r=N(r,s));const a=e[n]?.["*"];a&&"*"!==o&&(r=N(r,a));const c=e[n]?.[o];c&&(r=N(r,c)),t[n][o]=r}}e["*"]&&(t["*"]={...e["*"]});return t}(s.events)),s.events){const e={};for(const[t,n]of Object.entries(s.events)){e[t]={};for(const[o,r]of Object.entries(n))e[t][o]=P(r)}s.events=e}return n.delete(r),t[r]=s,s}for(const t of Object.keys(e))o(t);return t}function N(e,t){const n={...e};for(const o of Object.keys(t)){const r=e[o],i=t[o];"required"===o&&Array.isArray(r)&&Array.isArray(i)?n[o]=[...new Set([...r,...i])]:C(r)&&C(i)?n[o]=N(r,i):n[o]=i}return n}function P(e){const t={};for(const[n,o]of Object.entries(e))E.has(n)||(null===o||"object"!=typeof o||Array.isArray(o)?t[n]=o:t[n]=P(o));return t}function C(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function M(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function R(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var T="__WALKEROS_ENV:";function I(e,t,n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const i=o[e];if(null==r||"object"!=typeof r){const r=o.slice(0,e).join(".");S(`Path "${t}" not found in "${n}": "${i}" does not exist${r?` in "${r}"`:""}`)}const s=r;if(!(i in s)){const r=o.slice(0,e).join(".");S(`Path "${t}" not found in "${n}": "${i}" does not exist${r?` in "${r}"`:""}`)}r=s[i]}return r}function z(e,t,n,o,r){if("string"==typeof e){const i=e.match(/^\$def\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(i){const e=i[1],s=i[2];void 0===n[e]&&S(`Definition "${e}" not found`);let a=z(n[e],t,n,o,r);return s&&(a=I(a,s,`$def.${e}`)),a}const s=e.match(/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(s&&r){const e=s[1],t=s[2];e in r||S(`Contract "${e}" not found`);let n=r[e];return t&&(n=I(n,t,`$contract.${e}`)),n}let a=e.replace(/\$var\.([a-zA-Z_][a-zA-Z0-9_]*)/g,(e,n)=>{if(void 0!==t[n])return String(t[n]);S(`Variable "${n}" not found`)});return a=a.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 S(`Environment variable "${t}" not found and no default provided`)),a}if(Array.isArray(e))return e.map(e=>z(e,t,n,o,r));if(null!==e&&"object"==typeof e){const i={};for(const[s,a]of Object.entries(e))i[s]=z(a,t,n,o,r);return i}return e}function H(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 U(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?H(e):void 0}function D(e,t,n){const o=Object.keys(e.flows);t||(1===o.length?t=o[0]:S(`Multiple flows found (${o.join(", ")}). Please specify a flow.`));const r=e.flows[t];r||S(`Flow "${t}" not found. Available: ${o.join(", ")}`);const i=JSON.parse(JSON.stringify(r));let s;if(e.contract){const t=M(e.variables,r.variables),o=R(e.definitions,r.definitions);s=_(z(e.contract,t,o,n))}if(i.sources)for(const[t,o]of Object.entries(i.sources)){const a=M(e.variables,r.variables,o.variables),c=R(e.definitions,r.definitions,o.definitions),u=z(o.config,a,c,n,s),f=z(o.env,a,c,n,s),l=U(o.package,o.code,i.bundle?.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;i.sources[t]={package:o.package,config:u,env:f,primary:o.primary,variables:o.variables,definitions:o.definitions,before:o.before,next:o.next,cache:o.cache,code:d}}if(i.destinations)for(const[t,o]of Object.entries(i.destinations)){const a=M(e.variables,r.variables,o.variables),c=R(e.definitions,r.definitions,o.definitions),u=z(o.config,a,c,n,s),f=z(o.env,a,c,n,s),l=U(o.package,o.code,i.bundle?.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;i.destinations[t]={package:o.package,config:u,env:f,variables:o.variables,definitions:o.definitions,before:o.before,next:o.next,cache:o.cache,code:d}}if(i.stores)for(const[t,o]of Object.entries(i.stores)){const a=M(e.variables,r.variables,o.variables),c=R(e.definitions,r.definitions,o.definitions),u=z(o.config,a,c,n,s),f=z(o.env,a,c,n,s),l=U(o.package,o.code,i.bundle?.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;i.stores[t]={package:o.package,config:u,env:f,variables:o.variables,definitions:o.definitions,code:d}}if(i.transformers)for(const[t,o]of Object.entries(i.transformers)){const a=M(e.variables,r.variables,o.variables),c=R(e.definitions,r.definitions,o.definitions),u=z(o.config,a,c,n,s),f=z(o.env,a,c,n,s),l=U(o.package,o.code,i.bundle?.packages),p="string"==typeof o.code||"object"==typeof o.code?o.code:void 0,d=l||p;i.transformers[t]={package:o.package,config:u,env:f,variables:o.variables,definitions:o.definitions,before:o.before,next:o.next,cache:o.cache,code:d}}if(i.collector){const t=M(e.variables,r.variables),o=R(e.definitions,r.definitions),a=z(i.collector,t,o,n,s);i.collector=a}return i}function F(e){return void 0!==e.web?"web":void 0!==e.server?"server":void S("Settings must have web or server key")}var W={merge:!0,shallow:!0,extend:!0};function L(e,t={},n={}){n={...W,...n};const o=Object.entries(t).reduce((t,[o,r])=>{const i=e[o];return n.merge&&Array.isArray(i)&&Array.isArray(r)?t[o]=r.reduce((e,t)=>e.includes(t)?e:[...e,t],[...i]):(n.extend||o in e)&&(t[o]=r),t},{});return n.shallow?{...e,...o}:(Object.assign(e,o),e)}function Z(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function B(e){return Array.isArray(e)}function J(e){return"boolean"==typeof e}function V(e){return"walker"===e}function q(e){return void 0!==e}function K(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function G(e){return"function"==typeof e}function X(e){return"number"==typeof e&&!Number.isNaN(e)}function Q(e){return"object"==typeof e&&null!==e&&!B(e)&&"[object Object]"===Object.prototype.toString.call(e)}function Y(e,t){return typeof e==typeof t}function ee(e){return"string"==typeof e}function te(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]=te(e[o],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(te(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 ne(e,t="",n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const t=o[e];if("*"===t&&B(r)){const t=o.slice(e+1).join("."),i=[];for(const e of r){const o=ne(e,t,n);i.push(o)}return i}if(r=r instanceof Object?r[t]:void 0,void 0===r)break}return q(r)?r:n}function oe(e,t,n){if(!Q(e))return e;const o=te(e),r=t.split(".");let i=o;for(let e=0;e<r.length;e++){const t=r[e];e===r.length-1?i[t]=n:(t in i&&"object"==typeof i[t]&&null!==i[t]||(i[t]={}),i=i[t])}return o}var re={data:e=>e.data,globals:e=>e.globals,context:e=>e.context,user:e=>e.user,source:e=>e.source,version:e=>e.version,event:e=>({entity:e.entity,action:e.action,id:e.id,timestamp:e.timestamp,name:e.name,trigger:e.trigger,group:e.group,count:e.count,timing:e.timing})};function ie(e,t){const n={},o=t.includes("all")?Object.keys(re):t;for(const t of o){const o=re[t];if(!o)continue;const r=o(e);if(Q(r))for(const[e,o]of Object.entries(r)){if(void 0===o)continue;const r="context"===t&&Array.isArray(o)?o[0]:o;n[`${t}_${e}`]=r}}return n}function se(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 i=!e||0===Object.keys(e).length;return Object.keys(o).forEach(t=>{o[t]&&(r[t]=!0,e&&e[t]&&(i=!0))}),!!i&&r}function ce(e,t){const n={...e};return n.config=L(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=L(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=L(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function ue(e,t){if(!Q(t))return e;for(const n of Object.keys(t)){const o=t[n];void 0!==o&&(Q(o)&&Q(e[n])?ue(e[n],o):e[n]=o)}return e}function fe(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",o=e.count||1,r=L({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.4.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 le(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 fe({...{"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,t){if(t){const n=t.length;let o="";for(let r=0;r<e;r++)o+=t[Math.random()*n|0];return o}let n="";for(let t=36;n.length<e;)n+=(Math.random()*t|0).toString(t);return n}var de=[{param:"gclid",platform:"google"},{param:"wbraid",platform:"google"},{param:"gbraid",platform:"google"},{param:"dclid",platform:"google"},{param:"gclsrc",platform:"google"},{param:"fbclid",platform:"meta"},{param:"igshid",platform:"meta"},{param:"msclkid",platform:"microsoft"},{param:"ttclid",platform:"tiktok"},{param:"twclid",platform:"twitter"},{param:"li_fat_id",platform:"linkedin"},{param:"epik",platform:"pinterest"},{param:"sclid",platform:"snapchat"},{param:"sccid",platform:"snapchat"},{param:"rdt_cid",platform:"reddit"},{param:"qclid",platform:"quora"},{param:"yclid",platform:"yandex"},{param:"ymclid",platform:"yandex"},{param:"ysclid",platform:"yandex"},{param:"dicbo",platform:"outbrain"},{param:"obclid",platform:"outbrain"},{param:"tblci",platform:"taboola"},{param:"mc_cid",platform:"mailchimp"},{param:"mc_eid",platform:"mailchimp"},{param:"_kx",platform:"klaviyo"},{param:"_hsenc",platform:"hubspot"},{param:"_hsmi",platform:"hubspot"},{param:"s_kwcid",platform:"adobe"},{param:"ef_id",platform:"adobe"},{param:"mkt_tok",platform:"adobe"},{param:"irclickid",platform:"impact"},{param:"cjevent",platform:"cj"},{param:"_branch_match_id",platform:"branch"}];function me(e,t={},n=[]){const o={};Object.entries(L({utm_campaign:"campaign",utm_content:"content",utm_medium:"medium",utm_source:"source",utm_term:"term"},t)).forEach(([t,n])=>{const r=e.searchParams.get(t);r&&(o[n]=r)});const r=n.length?function(e){const t=new Map(e.map(e=>[e.param,e.platform])),n=new Set(de.map(e=>e.param));return[...de.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):de,i=new Map;e.searchParams.forEach((e,t)=>{e&&i.set(t.toLowerCase(),e)});for(const e of r){const t=i.get(e.param);t&&(o[e.param]=t,o.clickId||(o.clickId=e.param,o.platform=e.platform))}return o}function ge(e,t=1e3,n=!1){let o,r=null,i=!1;return(...s)=>new Promise(a=>{const c=n&&!i;r&&clearTimeout(r),r=setTimeout(()=>{r=null,n&&!i||(o=e(...s),a(o))},t),c&&(i=!0,o=e(...s),a(o))})}function ye(e,t=1e3){let n=null;return function(...o){if(null===n)return n=setTimeout(()=>{n=null},t),e(...o)}}function be(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function he(e,t){let n,o={};return e instanceof Error?(n=e.message,o.error=be(e)):n=e,void 0!==t&&(t instanceof Error?o.error=be(t):"object"==typeof t&&null!==t?(o={...o,...t},"error"in o&&o.error instanceof Error&&(o.error=be(o.error))):o.value=t),{message:n,context:o}}var ve=(e,t,n,o)=>{const r=`${u[e]}${o.length>0?` [${o.join(":")}]`:""}`,i=Object.keys(n).length>0,s=0===e?console.error:1===e?console.warn:console.log;i?s(r,t,n):s(r,t)};function je(e={}){return we({level:void 0!==e.level?function(e){return"string"==typeof e?u[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,i=(e,o,i)=>{if(e<=t){const t=he(o,i);n?n(e,t.message,t.context,r,ve):ve(e,t.message,t.context,r)}};return{error:(e,t)=>i(0,e,t),warn:(e,t)=>i(1,e,t),info:(e,t)=>i(2,e,t),debug:(e,t)=>i(3,e,t),throw:(e,t)=>{const o=he(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 ke(e){return J(e)||ee(e)||X(e)||!q(e)||B(e)&&e.every(ke)||Q(e)&&Object.values(e).every(ke)}function xe(e){return J(e)||ee(e)||X(e)?e:Z(e)?xe(Array.from(e)):B(e)?e.map(e=>xe(e)).filter(e=>void 0!==e):Q(e)?Object.entries(e).reduce((e,[t,n])=>{const o=xe(n);return void 0!==o&&(e[t]=o),e},{}):void 0}function Oe(e){return ke(e)?e:void 0}function $e(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 Ae(e,t){const[n,o]=(e.name||"").split(" ");if(!t||!n||!o)return{};let r,i="",s=n,a=o;const c=t=>{if(t)return(t=B(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[s]||(s="*");const u=t[s];return u&&(u[a]||(a="*"),r=c(u[a])),r||(s="*",a="*",r=c(t[s]?.[a])),r&&(i=`${s} ${a}`),{eventMapping:r,mappingKey:i}}async function Ee(e,t={},n={}){if(!q(e))return;const o=Q(e)&&e.consent||n.consent||n.collector?.consent,r=B(t)?t:[t];for(const t of r){const r=await Se(_e)(e,t,{...n,consent:o});if(q(r))return r}}async function _e(e,t,n={}){const{collector:o,consent:r}=n;return(B(t)?t:[t]).reduce(async(t,i)=>{const s=await t;if(s)return s;const a=ee(i)?{key:i}:i;if(!Object.keys(a).length)return;const{condition:c,consent:u,fn:f,key:l,loop:p,map:d,set:m,validate:g,value:y}=a;if(c&&!await Se(c)(e,i,o))return;if(u&&!ae(u,r))return y;let b=q(y)?y:e;if(f&&(b=await Se(f)(e,i,n)),l&&(b=ne(e,l,y)),p){const[t,o]=p,r="this"===t?[e]:await Ee(e,t,n);B(r)&&(b=(await Promise.all(r.map(e=>Ee(e,o,n)))).filter(q))}else d?b=await Object.entries(d).reduce(async(t,[o,r])=>{const i=await t,s=await Ee(e,r,n);return q(s)&&(i[o]=s),i},Promise.resolve({})):m&&(b=await Promise.all(m.map(t=>_e(e,t,n))));g&&!await Se(g)(b)&&(b=void 0);const h=Oe(b);return q(h)?h:Oe(y)},Promise.resolve(void 0))}async function Ne(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=oe(e,t,r)}));const{eventMapping:o,mappingKey:r}=await Ae(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=oe(e,t,r)}));let i=t.data&&await Ee(e,t.data,{collector:n});const s=Boolean(o?.skip);if(o){if(o.ignore)return{event:e,data:i,mapping:o,mappingKey:r,ignore:!0,skip:s};if(o.name&&(e.name=o.name),o.data){const t=o.data&&await Ee(e,o.data,{collector:n});i=Q(i)&&Q(t)?L(i,t):t}}const a=o?.include??t.include;if(a&&a.length>0){const t=ie(e,a);Object.keys(t).length>0&&(i=Q(i)?L(t,i):i??t)}return{event:e,data:i,mapping:o,mappingKey:r,ignore:!1,skip:s}}function Pe(e,t){const n=(e,o=[])=>new Proxy(e,{get(e,r){const i=e[r],s=[...o,r];return"function"==typeof i?i.prototype&&i.prototype.constructor===i?i:(...e)=>{const o=t(s,e,i);if(o&&"object"==typeof o)return n(o,s);const r=i(...e);return r&&"object"==typeof r?n(r,s):o}:i&&"object"==typeof i?n(i,s):i}});return n(e)}function Ce(e,t){const n=(e,o=[])=>{if(!e||"object"!=typeof e)return e;const r=Array.isArray(e)?[]:{};for(const[i,s]of Object.entries(e)){const e=[...o,i];Array.isArray(r)?r[Number(i)]=t(s,e):r[i]=t(s,e),s&&"object"==typeof s&&"function"!=typeof s&&(Array.isArray(r)?r[Number(i)]=n(s,e):r[i]=n(s,e))}return r};return n(e)}function Me(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=Me();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 Re(e={}){return{collector:{},config:{},env:{},logger:Me(),id:"test",ingest:x("test"),...e}}function Te(e){const t=String(e),n=t.split("?")[1]||t;return $e(()=>{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 i=n===o.length-1;if(B(r)){const s=parseInt(t,10);i?r[s]=se(e):(r[s]=r[s]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[s])}else Q(r)&&(i?r[t]=se(e):(r[t]=r[t]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[t]))})}),t})()}function Ie(e){if(!e)return"";const t=[],n=encodeURIComponent;function o(e,r){null!=r&&(B(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 ze(e){return void 0===e||Y(e,"")?e:JSON.stringify(e)}function He(e={}){return L({"Content-Type":"application/json; charset=utf-8"},e)}function Ue(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function De(e,t,n,o){return function(...r){let i;const s="pre"+t,a="post"+t,c=n[s],u=n[a],f=(e,t)=>{o?o.warn(e,{error:t}):console.warn(e,t)};if(c)try{i=c({fn:e},...r)}catch(t){f(`Hook ${String(s)} failed, falling back to original function`,t),i=e(...r)}else i=e(...r);if(u)try{i=u({fn:e,result:i},...r)}catch(e){f(`Hook ${String(a)} failed, keeping original result`,e)}return i}}function Fe(e){return e?{userAgent:e,browser:We(e),browserVersion:Le(e),os:Ze(e),osVersion:Be(e),deviceType:Je(e)}:{}}function We(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 Le(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 Be(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function Je(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 Ve(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function qe(e){const t=Ve(e);return new Function("value","mapping","collector",t)}function Ke(e){const t=Ve(e);return new Function("value","mapping","options",t)}function Ge(e){const t=Ve(e);return new Function("value",t)}function Xe(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function Qe(e,t){const n=t?.version||"latest",o=t?.timeout||1e4,r=new AbortController,i=setTimeout(()=>r.abort(),o),s=r.signal;try{let o,r;if(t?.baseUrl){const i=encodeURIComponent(e),a=`${t.baseUrl}/api/packages/${i}`;o=await Ye(`${a}?version=${n}&path=package.json`,s),r=await Ye(`${a}?version=${n}&path=dist/walkerOS.json`,s)}else{const t=`https://cdn.jsdelivr.net/npm/${e}@${n}`;o=await Ye(`${t}/package.json`,s),r=await Ye(`${t}/dist/walkerOS.json`,s)}return function(e,t,n,o){const r=o.$meta||{},i=o.schemas||{},s=o.examples||{},a=o.hints,c=a?Object.keys(a):[],u=[],f=s.step||{};for(const[e,t]of Object.entries(f)){const n=t,o={name:e};"string"==typeof n?.description&&(o.description=n.description),u.push(o)}const l="string"==typeof r.docs?r.docs:void 0,p="string"==typeof r.source?r.source:void 0;return{packageName:e,version:"string"==typeof n.version?n.version:t,description:"string"==typeof n.description?n.description:void 0,type:"string"==typeof r.type?r.type:void 0,platform:Xe(r.platform),schemas:i,examples:s,...l?{docs:l}:{},...p?{source:p}:{},...a&&Object.keys(a).length>0?{hints:a}:{},hintKeys:c,exampleSummaries:u}}(e,n,o,r)}finally{clearTimeout(i)}}async function Ye(e,t){const n=await fetch(e,{signal:t});if(!n.ok)throw new Error(`Failed to fetch ${e} (HTTP ${n.status})`);return await n.json()}async function et(e,t){const n=await Qe(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 tt(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function nt(e,t){let n,o,r,i;if(e instanceof Error){n=e.message;const t=e;t.code&&(r=t.code),Array.isArray(t.details)&&(i=t.details)}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 s={error:n};return t&&(s.hint=t),o&&(s.path=o),r&&(s.code=r),i&&(s.details=i),{content:[{type:"text",text:JSON.stringify(s)}],structuredContent:s,isError:!0}}function ot(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function rt(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(rt);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(rt);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value:o,not:r}=e,i=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=ne(e,t),o=i(n);return r?!o:o}}(e)}function it(e){return Array.isArray(e)&&e.length>0&&"object"==typeof e[0]&&null!==e[0]&&"match"in e[0]}function st(e){if(null!=e){if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(it(e)){return{type:"routes",routes:e.map(e=>({match:rt(e.match),next:st(e.next)}))}}return{type:"chain",value:e}}}}function at(e,t={}){if(e){if("static"===e.type)return e.value;if("chain"===e.type)return e.value;for(const n of e.routes)if(n.match(t))return at(n.next,t)}}function ct(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function ut(e){return{full:e.full??!1,storeId:e.store,rules:e.rules.map(e=>({match:rt(e.match),key:e.key,ttl:e.ttl,update:e.update}))}}function ft(e,t,n,o){const r=e.rules.find(e=>e.match(n));if(!r)return null;const i=r.key.map(e=>String(ne(n,e)??""));if(i.every(e=>""===e))return null;const s=`${o}:${i.join(":")}`,a=t.get(s);return void 0!==a?{status:"HIT",key:s,value:a,rule:r}:{status:"MISS",key:s,rule:r}}function lt(e,t,n,o){e.set(t,n,1e3*o)}async function pt(e,t,n){if(!t)return e;let o=e;for(const[e,r]of Object.entries(t)){o=oe(o,e,await Ee(n,r))}return o}function dt(e){return 0===e.length?"// no output":e.map(mt).join(";\n\n")}function mt(e){const[t,...n]=e,o=n.map(gt).join(", ");return"return"===t?o?`return ${o}`:"return":`${t}(${o})`}function gt(e){return void 0===e?"undefined":null===e?"null":"function"==typeof e?"[Function]":JSON.stringify(e,null,2)}export{t as Cache,n as Collector,k as Const,o as Context,r as Destination,T as ENV_MARKER_PREFIX,i as Elb,s as Flow,w as Hint,a as Hooks,u as Level,b as Lifecycle,c as Logger,f as Mapping,j as Matcher,l as On,d as Request,v as Simulation,m as Source,g as Store,p as Transformer,y as Trigger,h as WalkerOS,$ as anonymizeIP,pt as applyUpdate,L as assign,O as branch,ct as buildCacheContext,Oe as castToProperty,se as castValue,ft as checkCache,te as clone,ut as compileCache,rt as compileMatcher,st as compileNext,ce as createDestination,fe as createEvent,x as createIngest,je as createLogger,Re as createMockContext,Me as createMockLogger,ot as createRespond,ge as debounce,ue as deepMerge,de as defaultClickIds,Qe as fetchPackage,et as fetchPackageSchema,xe as filterValues,ie as flattenIncludeSections,dt as formatOut,We as getBrowser,Le as getBrowserVersion,ne as getByPath,Je as getDeviceType,le as getEvent,D as getFlowSettings,ae as getGrantedConsent,He as getHeaders,pe as getId,Ae as getMappingEvent,Ee as getMappingValue,me as getMarketingParameters,Ze as getOS,Be as getOSVersion,F as getPlatform,Z as isArguments,B as isArray,J as isBoolean,V as isCommand,q as isDefined,K as isElementOrDocument,G as isFunction,X as isNumber,Q as isObject,ke as isPropertyType,it as isRouteArray,Y as isSameType,ee as isString,nt as mcpError,tt as mcpResult,N as mergeContractSchemas,Pe as mockEnv,H as packageNameToVariable,Fe as parseUserAgent,Ne as processEventMapping,Te as requestToData,Ie as requestToParameter,_ as resolveContracts,at as resolveNext,oe as setByPath,lt as storeCache,ye as throttle,S as throwError,ze as transformData,Ce as traverseEnv,Ue as trim,$e as tryCatch,Se as tryCatchAsync,De as useHooks,I as walkPath,qe as wrapCondition,Ke as wrapFn,Ge as wrapValidate};//# sourceMappingURL=index.mjs.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@walkeros/core",
3
3
  "description": "Core types and platform-agnostic utilities for walkerOS",
4
- "version": "3.4.1-next-1776790594143",
4
+ "version": "3.4.1",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
7
7
  "types": "./dist/index.d.ts",