@walkeros/core 4.0.0 → 4.1.0-next-1778155282668
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/README.md +33 -26
- package/dist/dev.d.mts +227 -162
- package/dist/dev.d.ts +227 -162
- package/dist/dev.js +1 -1
- package/dist/dev.js.map +1 -1
- package/dist/dev.mjs +1 -1
- package/dist/dev.mjs.map +1 -1
- package/dist/index.d.mts +130 -75
- package/dist/index.d.ts +130 -75
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,i=(e,n)=>{for(var o in n)t(e,o,{get:n[o],enumerable:!0})},s={};i(s,{Cache:()=>a,Collector:()=>c,Const:()=>E,Context:()=>l,Destination:()=>f,ENV_MARKER_PREFIX:()=>K,Elb:()=>u,Hint:()=>S,Hooks:()=>p,Level:()=>m,Lifecycle:()=>k,Logger:()=>d,Mapping:()=>g,Matcher:()=>O,On:()=>y,REF_CODE_PREFIX:()=>L,REF_CONTRACT:()=>V,REF_DEF:()=>D,REF_ENV:()=>H,REF_FLOW:()=>W,REF_SECRET:()=>B,REF_STORE:()=>U,REF_VAR:()=>z,Request:()=>h,Simulation:()=>x,Source:()=>v,Store:()=>w,Transformer:()=>b,Trigger:()=>j,WalkerOS:()=>$,anonymizeIP:()=>C,applyUpdate:()=>_t,assign:()=>oe,branch:()=>_,buildCacheContext:()=>Ot,castToProperty:()=>De,castValue:()=>we,checkCache:()=>Et,clone:()=>ge,compileCache:()=>St,compileMatcher:()=>jt,compileNext:()=>$t,createDestination:()=>ke,createEvent:()=>Oe,createIngest:()=>A,createLogger:()=>Te,createMockContext:()=>Je,createMockLogger:()=>Ke,createRespond:()=>wt,debounce:()=>Ce,deepMerge:()=>$e,defaultClickIds:()=>Ae,fetchPackage:()=>gt,fetchPackageSchema:()=>bt,filterValues:()=>ze,flattenIncludeSections:()=>ve,formatOut:()=>Ct,getBrowser:()=>ot,getBrowserVersion:()=>rt,getByPath:()=>ye,getDeviceType:()=>at,getEvent:()=>Se,getFlowSettings:()=>ee,getGrantedConsent:()=>je,getHeaders:()=>Ye,getId:()=>Ee,getMappingEvent:()=>We,getMappingValue:()=>Ue,getMarketingParameters:()=>_e,getOS:()=>it,getOSVersion:()=>st,getPlatform:()=>te,getSpanId:()=>xe,isArguments:()=>re,isArray:()=>ie,isBoolean:()=>se,isCommand:()=>ae,isDefined:()=>ce,isElementOrDocument:()=>le,isFunction:()=>fe,isNumber:()=>ue,isObject:()=>pe,isPropertyType:()=>Ie,isRouteArray:()=>kt,isSameType:()=>de,isString:()=>me,mcpError:()=>vt,mcpResult:()=>ht,mergeContractSchemas:()=>T,mockEnv:()=>Ze,packageNameToVariable:()=>Q,parseUserAgent:()=>nt,processEventMapping:()=>Le,requestToData:()=>Xe,requestToParameter:()=>Ge,resolveContracts:()=>M,resolveNext:()=>xt,setByPath:()=>be,storeCache:()=>At,throttle:()=>Ne,throwError:()=>N,transformData:()=>Qe,traverseEnv:()=>qe,trim:()=>et,tryCatch:()=>He,tryCatchAsync:()=>Ve,useHooks:()=>tt,walkPath:()=>X,wrapCondition:()=>lt,wrapFn:()=>ft,wrapValidate:()=>ut}),module.exports=(e=s,((e,i,s,a)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let c of o(i))r.call(e,c)||c===s||t(e,c,{get:()=>i[c],enumerable:!(a=n(i,c))||a.enumerable});return e})(t({},"__esModule",{value:!0}),e));var a={},c={},l={},f={},u={},p={},d={};i(d,{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||{}),g={},y={},b={},h={},v={},w={},j={},k={},$={},x={},O={},S={},E={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function A(e){return{_meta:{hops:0,path:[e]}}}function _(e,t){return{event:e,next:t}}function C(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function N(e){throw new Error(String(e))}var R=["globals","context","custom","user","consent"],P=new Set(["description","examples","title","$comment"]);function M(e){const t={},n=new Set;function o(r){if(t[r])return t[r];n.has(r)&&N(`Circular extends chain detected: ${[...n,r].join(" → ")}`);const i=e[r];i||N(`Contract "${r}" not found`),n.add(r);let s={};if(i.extends){s=function(e,t){const n={};void 0===e.description&&void 0===t.description||(n.description=t.description??e.description);for(const o of R){const r=e[o],i=t[o];r&&i?n[o]=T(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?T(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=T(r,i));const s=e["*"]?.[o];s&&"*"!==o&&(r=T(r,s));const a=e[n]?.["*"];a&&"*"!==o&&(r=T(r,a));const c=e[n]?.[o];c&&(r=T(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]=F(r)}s.events=e}return n.delete(r),t[r]=s,s}for(const t of Object.keys(e))o(t);return t}function T(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])]:I(r)&&I(i)?n[o]=T(r,i):n[o]=i}return n}function F(e){const t={};for(const[n,o]of Object.entries(e))P.has(n)||(null===o||"object"!=typeof o||Array.isArray(o)?t[n]=o:t[n]=F(o));return t}function I(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var z=/\$var\.([a-zA-Z_][a-zA-Z0-9_]*)/g,D=/^\$def\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/,H=/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,V=/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/,W=/^\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.([a-zA-Z0-9_.]+))?$/,U=/^\$store\.([a-zA-Z_][a-zA-Z0-9_]*)$/,B=/^\$secret\.([A-Z0-9_]+)$/,L="$code:";function Z(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function q(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var K="__WALKEROS_ENV:";function J(e,t,n){const o=`$flow.${e}${t?`.${t}`:""}`;if("unknown-flow"===n)return`${o} cannot resolve: flow "${e}" does not exist in this config.`;return`${o} is empty. Set ${t?`flows.${e}.config.${t}`:`flows.${e}.config`}, or run \`walkeros deploy ${e}\` first.`}function X(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(".");N(`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(".");N(`Path "${t}" not found in "${n}": "${i}" does not exist${r?` in "${r}"`:""}`)}r=s[i]}return r}function G(e,t,n,o,r,i){if("string"==typeof e){const s=e.match(D);if(s){const e=s[1],a=s[2];void 0===n[e]&&N(`Definition "${e}" not found`);let c=G(n[e],t,n,o,r,i);return a&&(c=X(c,a,`$def.${e}`)),c}const a=e.match(V);if(a&&r){const e=a[1],t=a[2];e in r||N(`Contract "${e}" not found`);let n=r[e];return t&&(n=X(n,t,`$contract.${e}`)),n}const c=e.match(W);if(c){const t=c[1],n=c[2],r=!1===o?.strictFlowRefs;i||N(`$flow.${t}${n?`.${n}`:""} cannot be resolved without a flow resolver`);const s=i(t);if(!s){if(r)return o?.onWarning?.(J(t,n,"unknown-flow")),e;N(`Flow "${t}" not found in $flow.${t}`)}let a=s;if(n)if(r){try{a=X(a,n,`$flow.${t}`)}catch{return o?.onWarning?.(J(t,n,"missing-key")),e}if(null==a||""===a)return o?.onWarning?.(J(t,n,"missing-key")),e}else a=X(a,n,`$flow.${t}`);return a}let l=e.replace(z,(e,n)=>{if(void 0!==t[n])return String(t[n]);N(`Variable "${n}" not found`)});return l=l.replace(H,(e,t,n)=>o?.deferred?void 0!==n?`${K}${t}:${n}`:`${K}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==n?n:void N(`Environment variable "${t}" not found and no default provided`)),l}if(Array.isArray(e))return e.map(e=>G(e,t,n,o,r,i));if(null!==e&&"object"==typeof e){const s={};for(const[a,c]of Object.entries(e))s[a]=G(c,t,n,o,r,i);return s}return e}function Q(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 Y(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?Q(e):void 0}function ee(e,t,n){const o=new Map,r=new Set,i=[],s=t=>{if(o.has(t))return o.get(t);const a=e.flows[t];if(a){if(r.has(t)){N(`Cyclic $flow reference: ${[...i,t].join(" -> ")}`)}r.add(t),i.push(t);try{const r=Z(e.variables,a.variables),i=q(e.definitions,a.definitions),c=G(a.config??{},r,i,n,void 0,s);return o.set(t,c),c}finally{r.delete(t),i.pop()}}},a=Object.keys(e.flows);t||(1===a.length?t=a[0]:N(`Multiple flows found (${a.join(", ")}). Please specify a flow.`));const c=e.flows[t];c||N(`Flow "${t}" not found. Available: ${a.join(", ")}`),r.add(t),i.push(t);try{return function(e,t,n,o){const r=JSON.parse(JSON.stringify(t));let i;if(e.contract){const r=Z(e.variables,t.variables),s=q(e.definitions,t.definitions);i=M(G(e.contract,r,s,n,void 0,o))}if(r.config){const s=Z(e.variables,t.variables),a=q(e.definitions,t.definitions);r.config=G(r.config,s,a,n,i,o)}if(r.sources)for(const[s,a]of Object.entries(r.sources)){const c=Z(e.variables,t.variables,a.variables),l=q(e.definitions,t.definitions,a.definitions),f=G(a.config,c,l,n,i,o),u=G(a.env,c,l,n,i,o),p=Y(a.package,a.code,r.config?.bundle?.packages),d="string"==typeof a.code||"object"==typeof a.code?a.code:void 0,m=p||d;r.sources[s]={package:a.package,config:f,env:u,primary:a.primary,variables:a.variables,definitions:a.definitions,before:a.before,next:a.next,cache:a.cache,code:m}}if(r.destinations)for(const[s,a]of Object.entries(r.destinations)){const c=Z(e.variables,t.variables,a.variables),l=q(e.definitions,t.definitions,a.definitions),f=G(a.config,c,l,n,i,o),u=G(a.env,c,l,n,i,o),p=Y(a.package,a.code,r.config?.bundle?.packages),d="string"==typeof a.code||"object"==typeof a.code?a.code:void 0,m=p||d;r.destinations[s]={package:a.package,config:f,env:u,variables:a.variables,definitions:a.definitions,before:a.before,next:a.next,cache:a.cache,code:m}}if(r.stores)for(const[s,a]of Object.entries(r.stores)){const c=Z(e.variables,t.variables,a.variables),l=q(e.definitions,t.definitions,a.definitions),f=G(a.config,c,l,n,i,o),u=G(a.env,c,l,n,i,o),p=Y(a.package,a.code,r.config?.bundle?.packages),d="string"==typeof a.code||"object"==typeof a.code?a.code:void 0,m=p||d;r.stores[s]={package:a.package,config:f,env:u,variables:a.variables,definitions:a.definitions,code:m}}if(r.transformers)for(const[s,a]of Object.entries(r.transformers)){const c=Z(e.variables,t.variables,a.variables),l=q(e.definitions,t.definitions,a.definitions),f=G(a.config,c,l,n,i,o),u=G(a.env,c,l,n,i,o),p=Y(a.package,a.code,r.config?.bundle?.packages),d="string"==typeof a.code||"object"==typeof a.code?a.code:void 0,m=p||d;r.transformers[s]={package:a.package,config:f,env:u,variables:a.variables,definitions:a.definitions,before:a.before,next:a.next,cache:a.cache,code:m}}if(r.collector){const s=Z(e.variables,t.variables),a=q(e.definitions,t.definitions),c=G(r.collector,s,a,n,i,o);r.collector=c}return r}(e,c,n,s)}finally{r.delete(t),i.pop()}}function te(e){const t=e.config?.platform;if("web"===t||"server"===t)return t;N('Flow must have config.platform set to "web" or "server"')}var ne={merge:!0,shallow:!0,extend:!0};function oe(e,t={},n={}){n={...ne,...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 re(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function ie(e){return Array.isArray(e)}function se(e){return"boolean"==typeof e}function ae(e){return"walker"===e}function ce(e){return void 0!==e}function le(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function fe(e){return"function"==typeof e}function ue(e){return"number"==typeof e&&!Number.isNaN(e)}function pe(e){return"object"==typeof e&&null!==e&&!ie(e)&&"[object Object]"===Object.prototype.toString.call(e)}function de(e,t){return typeof e==typeof t}function me(e){return"string"==typeof e}function ge(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]=ge(e[o],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(ge(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 ye(e,t="",n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const t=o[e];if("*"===t&&ie(r)){const t=o.slice(e+1).join("."),i=[];for(const e of r){const o=ye(e,t,n);i.push(o)}return i}if(r=r instanceof Object?r[t]:void 0,void 0===r)break}return ce(r)?r:n}function be(e,t,n){if(!pe(e))return e;const o=ge(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 he={data:e=>e.data,globals:e=>e.globals,context:e=>e.context,user:e=>e.user,source:e=>e.source,event:e=>({entity:e.entity,action:e.action,id:e.id,timestamp:e.timestamp,name:e.name,trigger:e.trigger,timing:e.timing})};function ve(e,t){const n={},o=t.includes("all")?Object.keys(he):t;for(const t of o){const o=he[t];if(!o)continue;const r=o(e);if(pe(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 we(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function je(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 ke(e,t){const n={...e};return n.config=oe(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=oe(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=oe(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function $e(e,t){if(!pe(t))return e;for(const n of Object.keys(t)){const o=t[n];void 0!==o&&(pe(o)&&pe(e[n])?$e(e[n],o):e[n]=o)}return e}function xe(){let e="";for(let t=0;t<16;t++)e+=(16*Math.random()|0).toString(16);return e}function Oe(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=oe({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"}}],consent:{functional:!0},id:e.id||xe(),trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,source:{type:"collector",schema:"4"}},e,{merge:!1});if(e.name){const[t,o]=e.name.split(" ")??[];t&&o&&(n.entity=t,n.action=o)}return n}function Se(e="entity action",t={}){const n=t.timestamp||(new Date).setHours(0,13,37,0),o={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},r={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return Oe({...{"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 Ee(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 Ae=[{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 _e(e,t={},n=[]){const o={};Object.entries(oe({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(Ae.map(e=>e.param));return[...Ae.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):Ae,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 Ce(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 Ne(e,t=1e3){let n=null;return function(...o){if(null===n)return n=setTimeout(()=>{n=null},t),e(...o)}}function Re(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function Pe(e,t){let n,o={};return e instanceof Error?(n=e.message,o.error=Re(e)):n=e,void 0!==t&&(t instanceof Error?o.error=Re(t):"object"==typeof t&&null!==t?(o={...o,...t},"error"in o&&o.error instanceof Error&&(o.error=Re(o.error))):o.value=t),{message:n,context:o}}var Me=(e,t,n,o)=>{const r=`${m[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 Te(e={}){return Fe({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 Fe(e){const{level:t,handler:n,jsonHandler:o,scope:r}=e,i=(e,o,i)=>{if(e<=t){const t=Pe(o,i);n?n(e,t.message,t.context,r,Me):Me(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=Pe(e,t);throw n?n(0,o.message,o.context,r,Me):Me(0,o.message,o.context,r),new Error(o.message)},json:e=>{o?o(e):console.log(JSON.stringify(e,null,2))},scope:e=>Fe({level:t,handler:n,jsonHandler:o,scope:[...r,e]})}}function Ie(e){return se(e)||me(e)||ue(e)||!ce(e)||ie(e)&&e.every(Ie)||pe(e)&&Object.values(e).every(Ie)}function ze(e){return se(e)||me(e)||ue(e)?e:re(e)?ze(Array.from(e)):ie(e)?e.map(e=>ze(e)).filter(e=>void 0!==e):pe(e)?Object.entries(e).reduce((e,[t,n])=>{const o=ze(n);return void 0!==o&&(e[t]=o),e},{}):void 0}function De(e){return Ie(e)?e:void 0}function He(e,t,n){return function(...o){try{return e(...o)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function Ve(e,t,n){return async function(...o){try{return await e(...o)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}async function We(e,t,n){const[o,r]=(e.name||"").split(" ");if(!t||!o||!r)return{};let i,s="",a=o,c=r;const l=t=>{if(!t)return;return(ie(t)?t:[t]).find(t=>{if(!t.condition)return!0;if(!n)return Boolean(t.condition(e,void 0));const o={event:e,mapping:t,collector:n,logger:n.logger,consent:pe(e)&&e.consent||n.consent};return Boolean(t.condition(e,o))})};t[a]||(a="*");const f=t[a];return f&&(f[c]||(c="*"),i=l(f[c])),i||(a="*",c="*",i=l(t[a]?.[c])),i&&(s=`${a} ${c}`),{eventMapping:i,mappingKey:s}}async function Ue(e,t={},n={}){if(!ce(e))return;const o=pe(e)&&e.consent||n.consent||n.collector?.consent,r=n.event??(pe(e)?e:{});if(!n.collector)throw new Error("getMappingValue: context.collector is required");const i={event:r,mapping:t,collector:n.collector,logger:n.collector.logger,consent:o},s=ie(t)?t:[t];for(const t of s){const n=await Ve(Be)(e,t,{...i,mapping:t});if(ce(n))return n}}async function Be(e,t,n){return(ie(t)?t:[t]).reduce(async(t,o)=>{const r=await t;if(r)return r;const i=me(o)?{key:o}:o;if(!Object.keys(i).length)return;const{condition:s,consent:a,fn:c,key:l,loop:f,map:u,set:p,validate:d,value:m}=i,g={...n,mapping:o};if(s&&!await Ve(s)(e,g))return;if(a&&!je(a,g.consent))return m;let y=ce(m)?m:e;if(c&&(y=await Ve(c)(e,g)),l&&(y=ye(e,l,m)),f){const[t,n]=f,o="this"===t?[e]:await Ue(e,t,g);ie(o)&&(y=(await Promise.all(o.map(e=>Ue(e,n,g)))).filter(ce))}else u?y=await Object.entries(u).reduce(async(t,[n,o])=>{const r=await t,i=await Ue(e,o,g);return ce(i)&&(r[n]=i),r},Promise.resolve({})):p&&(y=await Promise.all(p.map(t=>Be(e,t,g))));d&&!await Ve(d)(y,g)&&(y=void 0);const b=De(y);return ce(b)?b:De(m)},Promise.resolve(void 0))}async function Le(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,o])=>{const r=await Ue(e,o,{collector:n,event:e});e=be(e,t,r)}));const{eventMapping:o,mappingKey:r}=await We(e,t.mapping,n);o?.policy&&await Promise.all(Object.entries(o.policy).map(async([t,o])=>{const r=await Ue(e,o,{collector:n,event:e});e=be(e,t,r)}));let i=t.data&&await Ue(e,t.data,{collector:n,event:e});const s=Boolean(o?.silent);if(o){if(o.ignore)return{event:e,data:i,mapping:o,mappingKey:r,ignore:!0,silent:s};if(o.name&&(e.name=o.name),o.data){const t=o.data&&await Ue(e,o.data,{collector:n,event:e});i=pe(i)&&pe(t)?oe(i,t):t}}const a=o?.include??t.include;if(a&&a.length>0){const t=ve(e,a);Object.keys(t).length>0&&(i=pe(i)?oe(t,i):i??t)}return{event:e,data:i,mapping:o,mappingKey:r,ignore:!1,silent:s}}function Ze(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 qe(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 Ke(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=Ke();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 Je(e={}){return{collector:{},config:{},env:{},logger:Ke(),id:"test",ingest:A("test"),...e}}function Xe(e){const t=String(e),n=t.split("?")[1]||t;return He(()=>{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(ie(r)){const s=parseInt(t,10);i?r[s]=we(e):(r[s]=r[s]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[s])}else pe(r)&&(i?r[t]=we(e):(r[t]=r[t]||(isNaN(parseInt(o[n+1],10))?{}:[]),r=r[t]))})}),t})()}function Ge(e){if(!e)return"";const t=[],n=encodeURIComponent;function o(e,r){null!=r&&(ie(r)?r.forEach((t,n)=>o(`${e}[${n}]`,t)):pe(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 Qe(e){return void 0===e||de(e,"")?e:JSON.stringify(e)}function Ye(e={}){return oe({"Content-Type":"application/json; charset=utf-8"},e)}function et(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function tt(e,t,n,o){return function(...r){let i;const s="pre"+t,a="post"+t,c=n[s],l=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(l)try{i=l({fn:e,result:i},...r)}catch(e){f(`Hook ${String(a)} failed, keeping original result`,e)}return i}}function nt(e){return e?{userAgent:e,browser:ot(e),browserVersion:rt(e),os:it(e),osVersion:st(e),deviceType:at(e)}:{}}function ot(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 rt(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 it(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 st(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function at(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 ct(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function lt(e){const t=ct(e);return new Function("value","context",t)}function ft(e){const t=ct(e);return new Function("value","context",t)}function ut(e){const t=ct(e);return new Function("value","context",t)}var pt="https://cdn.jsdelivr.net/npm",dt="dist/walkerOS.json";function mt(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function gt(e,t){const n=t?.version||"latest",o=t?.timeout||1e4,r=new AbortController,i=setTimeout(()=>r.abort(),o),s=r.signal,a=t?.client?{"X-Walkeros-Client":t.client}:void 0;try{if(t?.baseUrl){const o=`${t.baseUrl}/api/packages/${encodeURIComponent(e)}?version=${encodeURIComponent(n)}&expand=all`,r=await fetch(o,{signal:s,...a&&{headers:a}});if(!r.ok)throw new Error(`Failed to fetch ${o} (HTTP ${r.status})`);return function(e,t,n){const o=n.schemas||{},r=n.examples||{},i=n.hints,s=n.hintKeys??(i?Object.keys(i):[]),a=n.exampleSummaries??[],c=n.platform;return{packageName:n.package||e,version:"string"==typeof n.version?n.version:t,...void 0!==n.description&&{description:n.description},...void 0!==n.type&&{type:n.type},...void 0!==c&&{platform:c},schemas:o,examples:r,...void 0!==n.docs&&{docs:n.docs},...void 0!==n.source&&{source:n.source},...i&&Object.keys(i).length>0?{hints:i}:{},hintKeys:s,exampleSummaries:a}}(e,n,await r.json())}const o=`${pt}/${e}@${n}`,r=await yt(`${o}/package.json`,s,a);return function(e,t,n,o){const r=o.$meta||{},i=o.schemas||{},s=o.examples||{},a=o.hints,c=a?Object.keys(a):[],l=[],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),l.push(o)}const u="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:mt(r.platform),schemas:i,examples:s,...u?{docs:u}:{},...p?{source:p}:{},...a&&Object.keys(a).length>0?{hints:a}:{},hintKeys:c,exampleSummaries:l}}(e,n,r,await yt(`${o}/${dt}`,s,a))}finally{clearTimeout(i)}}async function yt(e,t,n){const o=await fetch(e,{signal:t,...n&&{headers:n}});if(!o.ok)throw new Error(`Failed to fetch ${e} (HTTP ${o.status})`);return await o.json()}async function bt(e,t){const n=await gt(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 ht(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function vt(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 wt(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function jt(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(jt);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(jt);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=ye(e,t),o=i(n);return r?!o:o}}(e)}function kt(e){return Array.isArray(e)&&e.length>0&&"object"==typeof e[0]&&null!==e[0]&&"match"in e[0]}function $t(e){if(null!=e){if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(kt(e)){return{type:"routes",routes:e.map(e=>({match:jt(e.match),next:$t(e.next)}))}}return{type:"chain",value:e}}}}function xt(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 xt(n.next,t)}}function Ot(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function St(e){return{full:e.full??!1,storeId:e.store,rules:e.rules.map(e=>({match:jt(e.match),key:e.key,ttl:e.ttl,update:e.update}))}}function Et(e,t,n,o){const r=e.rules.find(e=>e.match(n));if(!r)return null;const i=r.key.map(e=>String(ye(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 At(e,t,n,o){e.set(t,n,1e3*o)}async function _t(e,t,n,o){if(!t)return e;let r=e;for(const[e,i]of Object.entries(t)){r=be(r,e,await Ue(n,i,{collector:o}))}return r}function Ct(e){return 0===e.length?"// no output":e.map(Nt).join(";\n\n")}function Nt(e){const[t,...n]=e,o=n.map(Rt).join(", ");return"return"===t?o?`return ${o}`:"return":`${t}(${o})`}function Rt(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,a=(e,n)=>{for(var r in n)t(e,r,{get:n[r],enumerable:!0})},i={};a(i,{Cache:()=>s,Collector:()=>c,Const:()=>A,Context:()=>l,Destination:()=>u,ENV_MARKER_PREFIX:()=>q,Elb:()=>f,Hint:()=>S,Hooks:()=>p,Level:()=>m,Lifecycle:()=>k,Logger:()=>d,Mapping:()=>g,Matcher:()=>O,On:()=>y,REF_CODE_PREFIX:()=>W,REF_CONTRACT:()=>H,REF_ENV:()=>D,REF_FLOW:()=>U,REF_SECRET:()=>L,REF_STORE:()=>Z,REF_VAR_FULL:()=>z,REF_VAR_INLINE:()=>V,Request:()=>h,Simulation:()=>x,Source:()=>v,Store:()=>w,Transformer:()=>b,Trigger:()=>j,WalkerOS:()=>$,anonymizeIP:()=>C,applyUpdate:()=>_t,assign:()=>ne,branch:()=>_,buildCacheContext:()=>Ot,castToProperty:()=>ze,castValue:()=>ve,checkCache:()=>At,clone:()=>me,compileCache:()=>St,compileMatcher:()=>jt,compileNext:()=>$t,createDestination:()=>je,createEvent:()=>xe,createIngest:()=>E,createLogger:()=>Me,createMockContext:()=>Ke,createMockLogger:()=>qe,createRespond:()=>wt,debounce:()=>_e,deepMerge:()=>ke,defaultClickIds:()=>Ae,fetchPackage:()=>gt,fetchPackageSchema:()=>bt,filterValues:()=>Ie,flattenIncludeSections:()=>he,formatOut:()=>Ct,getBrowser:()=>rt,getBrowserVersion:()=>ot,getByPath:()=>ge,getDeviceType:()=>st,getEvent:()=>Oe,getFlowSettings:()=>Y,getGrantedConsent:()=>we,getHeaders:()=>Qe,getId:()=>Se,getMappingEvent:()=>He,getMappingValue:()=>Ue,getMarketingParameters:()=>Ee,getOS:()=>at,getOSVersion:()=>it,getPlatform:()=>ee,getSpanId:()=>$e,isArguments:()=>re,isArray:()=>oe,isBoolean:()=>ae,isCommand:()=>ie,isDefined:()=>se,isElementOrDocument:()=>ce,isFunction:()=>le,isNumber:()=>ue,isObject:()=>fe,isPropertyType:()=>Fe,isRouteArray:()=>kt,isSameType:()=>pe,isString:()=>de,mcpError:()=>vt,mcpResult:()=>ht,mergeContractSchemas:()=>T,mockEnv:()=>We,packageNameToVariable:()=>G,parseUserAgent:()=>nt,processEventMapping:()=>Le,requestToData:()=>Je,requestToParameter:()=>Xe,resolveContracts:()=>M,resolveNext:()=>xt,resolveSetup:()=>Ye,setByPath:()=>ye,storeCache:()=>Et,throttle:()=>Ce,throwError:()=>N,transformData:()=>Ge,traverseEnv:()=>Be,trim:()=>et,tryCatch:()=>Ve,tryCatchAsync:()=>De,useHooks:()=>tt,walkPath:()=>J,wrapCondition:()=>lt,wrapFn:()=>ut,wrapValidate:()=>ft}),module.exports=(e=i,((e,a,i,s)=>{if(a&&"object"==typeof a||"function"==typeof a)for(let c of r(a))o.call(e,c)||c===i||t(e,c,{get:()=>a[c],enumerable:!(s=n(a,c))||s.enumerable});return e})(t({},"__esModule",{value:!0}),e));var s={},c={},l={},u={},f={},p={},d={};a(d,{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||{}),g={},y={},b={},h={},v={},w={},j={},k={},$={},x={},O={},S={},A={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function E(e){return{_meta:{hops:0,path:[e]}}}function _(e,t){return{event:e,next:t}}function C(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function N(e){throw new Error(String(e))}var R=["globals","context","custom","user","consent"],P=new Set(["description","examples","title","$comment"]);function M(e){const t={},n=new Set;function r(o){if(t[o])return t[o];n.has(o)&&N(`Circular extends chain detected: ${[...n,o].join(" → ")}`);const a=e[o];a||N(`Contract "${o}" not found`),n.add(o);let i={};if(a.extends){i=function(e,t){const n={};void 0===e.description&&void 0===t.description||(n.description=t.description??e.description);for(const r of R){const o=e[r],a=t[r];o&&a?n[r]=T(o,a):(o||a)&&(n[r]={...o||a})}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]||{},a=t.events?.[n]||{},i=new Set([...Object.keys(o),...Object.keys(a)]);r[n]={};for(const e of i){const t=o[e],i=a[e];r[n][e]=t&&i?T(t,i):{...t||i}}}n.events=r}return n}(r(a.extends),a)}else i={...a};if(delete i.extends,i.events&&(i.events=function(e){const t={};for(const n of Object.keys(e))if("*"!==n){t[n]={};for(const r of Object.keys(e[n]||{})){let o={};const a=e["*"]?.["*"];a&&(o=T(o,a));const i=e["*"]?.[r];i&&"*"!==r&&(o=T(o,i));const s=e[n]?.["*"];s&&"*"!==r&&(o=T(o,s));const c=e[n]?.[r];c&&(o=T(o,c)),t[n][r]=o}}e["*"]&&(t["*"]={...e["*"]});return t}(i.events)),i.events){const e={};for(const[t,n]of Object.entries(i.events)){e[t]={};for(const[r,o]of Object.entries(n))e[t][r]=F(o)}i.events=e}return n.delete(o),t[o]=i,i}for(const t of Object.keys(e))r(t);return t}function T(e,t){const n={...e};for(const r of Object.keys(t)){const o=e[r],a=t[r];"required"===r&&Array.isArray(o)&&Array.isArray(a)?n[r]=[...new Set([...o,...a])]:I(o)&&I(a)?n[r]=T(o,a):n[r]=a}return n}function F(e){const t={};for(const[n,r]of Object.entries(e))P.has(n)||(null===r||"object"!=typeof r||Array.isArray(r)?t[n]=r:t[n]=F(r));return t}function I(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var z=/^\$var\.([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)$/,V=/\$var\.([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)/g,D=/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,H=/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/,U=/^\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.([a-zA-Z0-9_.]+))?$/,Z=/^\$store\.([a-zA-Z_][a-zA-Z0-9_]*)$/,L=/^\$secret\.([A-Z0-9_]+)$/,W="$code:";function B(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var q="__WALKEROS_ENV:";function K(e,t,n){const r=`$flow.${e}${t?`.${t}`:""}`;if("unknown-flow"===n)return`${r} cannot resolve: flow "${e}" does not exist in this config.`;return`${r} is empty. Set ${t?`flows.${e}.config.${t}`:`flows.${e}.config`}, or run \`walkeros deploy ${e}\` first.`}function J(e,t,n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const a=r[e];if(null==o||"object"!=typeof o){const o=r.slice(0,e).join(".");N(`Path "${t}" not found in "${n}": "${a}" does not exist${o?` in "${o}"`:""}`)}const i=o;if(!(a in i)){const o=r.slice(0,e).join(".");N(`Path "${t}" not found in "${n}": "${a}" does not exist${o?` in "${o}"`:""}`)}o=i[a]}return o}function X(e,t,n,r,o,a){if("string"==typeof e){const i=e.match(z);if(i){const e=i[1].split("."),s=e[0],c=e.slice(1).join(".");void 0===t[s]&&N(`Variable "${s}" not found`);const l=a??new Set;if(l.has(s)){N(`Cyclic $var reference: ${[...l,s].join(" -> ")}`)}let u;l.add(s);try{u=X(t[s],t,n,r,o,l)}finally{l.delete(s)}return c&&(u=J(u,c,`$var.${s}`)),u}const s=e.match(H);if(s&&r){const e=s[1],t=s[2];e in r||N(`Contract "${e}" not found`);let n=r[e];return t&&(n=J(n,t,`$contract.${e}`)),n}const c=e.match(U);if(c){const t=c[1],r=c[2],a=!1===n?.strictFlowRefs;o||N(`$flow.${t}${r?`.${r}`:""} cannot be resolved without a flow resolver`);const i=o(t);if(!i){if(a)return n?.onWarning?.(K(t,r,"unknown-flow")),e;N(`Flow "${t}" not found in $flow.${t}`)}let s=i;if(r)if(a){try{s=J(s,r,`$flow.${t}`)}catch{return n?.onWarning?.(K(t,r,"missing-key")),e}if(null==s||""===s)return n?.onWarning?.(K(t,r,"missing-key")),e}else s=J(s,r,`$flow.${t}`);return s}let l=e.replace(V,(e,i)=>{const s=i.split("."),c=s[0],l=s.slice(1).join(".");void 0===t[c]&&N(`Variable "${c}" not found`);const u=a??new Set;if(u.has(c)){N(`Cyclic $var reference: ${[...u,c].join(" -> ")}`)}let f;u.add(c);try{f=X(t[c],t,n,r,o,u)}finally{u.delete(c)}if(l&&(f=J(f,l,`$var.${c}`)),null===f||"string"!=typeof f&&"number"!=typeof f&&"boolean"!=typeof f){N(`Variable "${i}" resolves to non-scalar (${Array.isArray(f)?"array":typeof f}) and cannot be inlined into a string. Use it as a whole-string reference: "$var.${i}"`)}return String(f)});return l=l.replace(D,(e,t,r)=>n?.deferred?void 0!==r?`${q}${t}:${r}`:`${q}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==r?r:void N(`Environment variable "${t}" not found and no default provided`)),l}if(Array.isArray(e))return e.map(e=>X(e,t,n,r,o,a));if(null!==e&&"object"==typeof e){const i={};for(const[s,c]of Object.entries(e))i[s]=X(c,t,n,r,o,a);return i}return e}function G(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 Q(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?G(e):void 0}function Y(e,t,n){const r=new Map,o=new Set,a=[],i=t=>{if(r.has(t))return r.get(t);const s=e.flows[t];if(s){if(o.has(t)){N(`Cyclic $flow reference: ${[...a,t].join(" -> ")}`)}o.add(t),a.push(t);try{const o=B(e.variables,s.variables),a=X(s.config??{},o,n,void 0,i);return r.set(t,a),a}finally{o.delete(t),a.pop()}}},s=Object.keys(e.flows);t||(1===s.length?t=s[0]:N(`Multiple flows found (${s.join(", ")}). Please specify a flow.`));const c=e.flows[t];c||N(`Flow "${t}" not found. Available: ${s.join(", ")}`),o.add(t),a.push(t);try{return function(e,t,n,r){const o=JSON.parse(JSON.stringify(t));let a;if(e.contract){const o=B(e.variables,t.variables);a=M(X(e.contract,o,n,void 0,r))}if(o.config){const i=B(e.variables,t.variables);o.config=X(o.config,i,n,a,r)}if(o.sources)for(const[i,s]of Object.entries(o.sources)){const c=B(e.variables,t.variables,s.variables),l=X(s.config,c,n,a,r),u=X(s.env,c,n,a,r),f=Q(s.package,s.code,o.config?.bundle?.packages),p="string"==typeof s.code||"object"==typeof s.code?s.code:void 0,d=f||p;o.sources[i]={package:s.package,config:l,env:u,primary:s.primary,variables:s.variables,before:s.before,next:s.next,cache:s.cache,code:d}}if(o.destinations)for(const[i,s]of Object.entries(o.destinations)){const c=B(e.variables,t.variables,s.variables),l=X(s.config,c,n,a,r),u=X(s.env,c,n,a,r),f=Q(s.package,s.code,o.config?.bundle?.packages),p="string"==typeof s.code||"object"==typeof s.code?s.code:void 0,d=f||p;o.destinations[i]={package:s.package,config:l,env:u,variables:s.variables,before:s.before,next:s.next,cache:s.cache,code:d}}if(o.stores)for(const[i,s]of Object.entries(o.stores)){const c=B(e.variables,t.variables,s.variables),l=X(s.config,c,n,a,r),u=X(s.env,c,n,a,r),f=Q(s.package,s.code,o.config?.bundle?.packages),p="string"==typeof s.code||"object"==typeof s.code?s.code:void 0,d=f||p;o.stores[i]={package:s.package,config:l,env:u,variables:s.variables,code:d}}if(o.transformers)for(const[i,s]of Object.entries(o.transformers)){const c=B(e.variables,t.variables,s.variables),l=X(s.config,c,n,a,r),u=X(s.env,c,n,a,r),f=Q(s.package,s.code,o.config?.bundle?.packages),p="string"==typeof s.code||"object"==typeof s.code?s.code:void 0,d=f||p;o.transformers[i]={package:s.package,config:l,env:u,variables:s.variables,before:s.before,next:s.next,cache:s.cache,code:d}}if(o.collector){const i=B(e.variables,t.variables),s=X(o.collector,i,n,a,r);o.collector=s}return o}(e,c,n,i)}finally{o.delete(t),a.pop()}}function ee(e){const t=e.config?.platform;if("web"===t||"server"===t)return t;N('Flow must have config.platform set to "web" or "server"')}var te={merge:!0,shallow:!0,extend:!0};function ne(e,t={},n={}){n={...te,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const a=e[r];return n.merge&&Array.isArray(a)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...a]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function re(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function oe(e){return Array.isArray(e)}function ae(e){return"boolean"==typeof e}function ie(e){return"walker"===e}function se(e){return void 0!==e}function ce(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function le(e){return"function"==typeof e}function ue(e){return"number"==typeof e&&!Number.isNaN(e)}function fe(e){return"object"==typeof e&&null!==e&&!oe(e)&&"[object Object]"===Object.prototype.toString.call(e)}function pe(e,t){return typeof e==typeof t}function de(e){return"string"==typeof e}function me(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]=me(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(me(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 ge(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&oe(o)){const t=r.slice(e+1).join("."),a=[];for(const e of o){const r=ge(e,t,n);a.push(r)}return a}if(o=o instanceof Object?o[t]:void 0,void 0===o)break}return se(o)?o:n}function ye(e,t,n){if(!fe(e))return e;const r=me(e),o=t.split(".");let a=r;for(let e=0;e<o.length;e++){const t=o[e];e===o.length-1?a[t]=n:(t in a&&"object"==typeof a[t]&&null!==a[t]||(a[t]={}),a=a[t])}return r}var be={data:e=>e.data,globals:e=>e.globals,context:e=>e.context,user:e=>e.user,source:e=>e.source,event:e=>({entity:e.entity,action:e.action,id:e.id,timestamp:e.timestamp,name:e.name,trigger:e.trigger,timing:e.timing})};function he(e,t){const n={},r=t.includes("all")?Object.keys(be):t;for(const t of r){const r=be[t];if(!r)continue;const o=r(e);if(fe(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 ve(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function we(e,t={},n={}){const r={...t,...n},o={};let a=!e||0===Object.keys(e).length;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(a=!0))}),!!a&&o}function je(e,t){const n={...e};return n.config=ne(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=ne(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=ne(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function ke(e,t){if(!fe(t))return e;for(const n of Object.keys(t)){const r=t[n];void 0!==r&&(fe(r)&&fe(e[n])?ke(e[n],r):e[n]=r)}return e}function $e(){let e="";for(let t=0;t<16;t++)e+=(16*Math.random()|0).toString(16);return e}function xe(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=ne({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"}}],consent:{functional:!0},id:e.id||$e(),trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,source:{type:"collector",schema:"4"}},e,{merge:!1});if(e.name){const[t,r]=e.name.split(" ")??[];t&&r&&(n.entity=t,n.action=r)}return n}function Oe(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 xe({...{"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 Se(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 Ae=[{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 Ee(e,t={},n=[]){const r={};Object.entries(ne({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(Ae.map(e=>e.param));return[...Ae.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):Ae,a=new Map;e.searchParams.forEach((e,t)=>{e&&a.set(t.toLowerCase(),e)});for(const e of o){const t=a.get(e.param);t&&(r[e.param]=t,r.clickId||(r.clickId=e.param,r.platform=e.platform))}return r}function _e(e,t=1e3,n=!1){let r,o=null,a=!1;return(...i)=>new Promise(s=>{const c=n&&!a;o&&clearTimeout(o),o=setTimeout(()=>{o=null,n&&!a||(r=e(...i),s(r))},t),c&&(a=!0,r=e(...i),s(r))})}function Ce(e,t=1e3){let n=null;return function(...r){if(null===n)return n=setTimeout(()=>{n=null},t),e(...r)}}function Ne(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function Re(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=Ne(e)):n=e,void 0!==t&&(t instanceof Error?r.error=Ne(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=Ne(r.error))):r.value=t),{message:n,context:r}}var Pe=(e,t,n,r)=>{const o=`${m[e]}${r.length>0?` [${r.join(":")}]`:""}`,a=Object.keys(n).length>0,i=0===e?console.error:1===e?console.warn:console.log;a?i(o,t,n):i(o,t)};function Me(e={}){return Te({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 Te(e){const{level:t,handler:n,jsonHandler:r,scope:o}=e,a=(e,r,a)=>{if(e<=t){const t=Re(r,a);n?n(e,t.message,t.context,o,Pe):Pe(e,t.message,t.context,o)}};return{error:(e,t)=>a(0,e,t),warn:(e,t)=>a(1,e,t),info:(e,t)=>a(2,e,t),debug:(e,t)=>a(3,e,t),throw:(e,t)=>{const r=Re(e,t);throw n?n(0,r.message,r.context,o,Pe):Pe(0,r.message,r.context,o),new Error(r.message)},json:e=>{r?r(e):console.log(JSON.stringify(e,null,2))},scope:e=>Te({level:t,handler:n,jsonHandler:r,scope:[...o,e]})}}function Fe(e){return ae(e)||de(e)||ue(e)||!se(e)||oe(e)&&e.every(Fe)||fe(e)&&Object.values(e).every(Fe)}function Ie(e){return ae(e)||de(e)||ue(e)?e:re(e)?Ie(Array.from(e)):oe(e)?e.map(e=>Ie(e)).filter(e=>void 0!==e):fe(e)?Object.entries(e).reduce((e,[t,n])=>{const r=Ie(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function ze(e){return Fe(e)?e:void 0}function Ve(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function De(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}async function He(e,t,n){const[r,o]=(e.name||"").split(" ");if(!t||!r||!o)return{};let a,i="",s=r,c=o;const l=t=>{if(!t)return;return(oe(t)?t:[t]).find(t=>{if(!t.condition)return!0;if(!n)return Boolean(t.condition(e,void 0));const r={event:e,mapping:t,collector:n,logger:n.logger,consent:fe(e)&&e.consent||n.consent};return Boolean(t.condition(e,r))})};t[s]||(s="*");const u=t[s];return u&&(u[c]||(c="*"),a=l(u[c])),a||(s="*",c="*",a=l(t[s]?.[c])),a&&(i=`${s} ${c}`),{eventMapping:a,mappingKey:i}}async function Ue(e,t={},n={}){if(!se(e))return;const r=fe(e)&&e.consent||n.consent||n.collector?.consent,o=n.event??(fe(e)?e:{});if(!n.collector)throw new Error("getMappingValue: context.collector is required");const a={event:o,mapping:t,collector:n.collector,logger:n.collector.logger,consent:r},i=oe(t)?t:[t];for(const t of i){const n=await De(Ze)(e,t,{...a,mapping:t});if(se(n))return n}}async function Ze(e,t,n){return(oe(t)?t:[t]).reduce(async(t,r)=>{const o=await t;if(o)return o;const a=de(r)?{key:r}:r;if(!Object.keys(a).length)return;const{condition:i,consent:s,fn:c,key:l,loop:u,map:f,set:p,validate:d,value:m}=a,g={...n,mapping:r};if(i&&!await De(i)(e,g))return;if(s&&!we(s,g.consent))return m;let y=se(m)?m:e;if(c&&(y=await De(c)(e,g)),l&&(y=ge(e,l,m)),u){const[t,n]=u,r="this"===t?[e]:await Ue(e,t,g);oe(r)&&(y=(await Promise.all(r.map(e=>Ue(e,n,g)))).filter(se))}else f?y=await Object.entries(f).reduce(async(t,[n,r])=>{const o=await t,a=await Ue(e,r,g);return se(a)&&(o[n]=a),o},Promise.resolve({})):p&&(y=await Promise.all(p.map(t=>Ze(e,t,g))));d&&!await De(d)(y,g)&&(y=void 0);const b=ze(y);return se(b)?b:ze(m)},Promise.resolve(void 0))}async function Le(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await Ue(e,r,{collector:n,event:e});e=ye(e,t,o)}));const{eventMapping:r,mappingKey:o}=await He(e,t.mapping,n);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await Ue(e,r,{collector:n,event:e});e=ye(e,t,o)}));let a=t.data&&await Ue(e,t.data,{collector:n,event:e});const i=Boolean(r?.silent);if(r){if(r.ignore)return{event:e,data:a,mapping:r,mappingKey:o,ignore:!0,silent:i};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await Ue(e,r.data,{collector:n,event:e});a=fe(a)&&fe(t)?ne(a,t):t}}const s=r?.include??t.include;if(s&&s.length>0){const t=he(e,s);Object.keys(t).length>0&&(a=fe(a)?ne(t,a):a??t)}return{event:e,data:a,mapping:r,mappingKey:o,ignore:!1,silent:i}}function We(e,t){const n=(e,r=[])=>new Proxy(e,{get(e,o){const a=e[o],i=[...r,o];return"function"==typeof a?a.prototype&&a.prototype.constructor===a?a:(...e)=>{const r=t(i,e,a);if(r&&"object"==typeof r)return n(r,i);const o=a(...e);return o&&"object"==typeof o?n(o,i):r}:a&&"object"==typeof a?n(a,i):a}});return n(e)}function Be(e,t){const n=(e,r=[])=>{if(!e||"object"!=typeof e)return e;const o=Array.isArray(e)?[]:{};for(const[a,i]of Object.entries(e)){const e=[...r,a];Array.isArray(o)?o[Number(a)]=t(i,e):o[a]=t(i,e),i&&"object"==typeof i&&"function"!=typeof i&&(Array.isArray(o)?o[Number(a)]=n(i,e):o[a]=n(i,e))}return o};return n(e)}function qe(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=qe();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 Ke(e={}){return{collector:{},config:{},env:{},logger:qe(),id:"test",ingest:E("test"),...e}}function Je(e){const t=String(e),n=t.split("?")[1]||t;return Ve(()=>{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 a=n===r.length-1;if(oe(o)){const i=parseInt(t,10);a?o[i]=ve(e):(o[i]=o[i]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[i])}else fe(o)&&(a?o[t]=ve(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function Xe(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(oe(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):fe(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 Ge(e){return void 0===e||pe(e,"")?e:JSON.stringify(e)}function Qe(e={}){return ne({"Content-Type":"application/json; charset=utf-8"},e)}function Ye(e,t){return!1===e||void 0===e?null:!0===e?t:{...t,...e}}function et(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function tt(e,t,n,r){return function(...o){let a;const i="pre"+t,s="post"+t,c=n[i],l=n[s],u=(e,t)=>{r?r.warn(e,{error:t}):console.warn(e,t)};if(c)try{a=c({fn:e},...o)}catch(t){u(`Hook ${String(i)} failed, falling back to original function`,t),a=e(...o)}else a=e(...o);if(l)try{a=l({fn:e,result:a},...o)}catch(e){u(`Hook ${String(s)} failed, keeping original result`,e)}return a}}function nt(e){return e?{userAgent:e,browser:rt(e),browserVersion:ot(e),os:at(e),osVersion:it(e),deviceType:st(e)}:{}}function rt(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 ot(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 at(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 it(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function st(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 ct(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function lt(e){const t=ct(e);return new Function("value","context",t)}function ut(e){const t=ct(e);return new Function("value","context",t)}function ft(e){const t=ct(e);return new Function("value","context",t)}var pt="https://cdn.jsdelivr.net/npm",dt="dist/walkerOS.json";function mt(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function gt(e,t){const n=t?.version||"latest",r=t?.timeout||1e4,o=new AbortController,a=setTimeout(()=>o.abort(),r),i=o.signal,s=t?.client?{"X-Walkeros-Client":t.client}:void 0;try{if(t?.baseUrl){const r=`${t.baseUrl}/api/packages/${encodeURIComponent(e)}?version=${encodeURIComponent(n)}&expand=all`,o=await fetch(r,{signal:i,...s&&{headers:s}});if(!o.ok)throw new Error(`Failed to fetch ${r} (HTTP ${o.status})`);return function(e,t,n){const r=n.schemas||{},o=n.examples||{},a=n.hints,i=n.hintKeys??(a?Object.keys(a):[]),s=n.exampleSummaries??[],c=n.platform;return{packageName:n.package||e,version:"string"==typeof n.version?n.version:t,...void 0!==n.description&&{description:n.description},...void 0!==n.type&&{type:n.type},...void 0!==c&&{platform:c},schemas:r,examples:o,...void 0!==n.docs&&{docs:n.docs},...void 0!==n.source&&{source:n.source},...a&&Object.keys(a).length>0?{hints:a}:{},hintKeys:i,exampleSummaries:s}}(e,n,await o.json())}const r=`${pt}/${e}@${n}`,o=await yt(`${r}/package.json`,i,s);return function(e,t,n,r){const o=r.$meta||{},a=r.schemas||{},i=r.examples||{},s=r.hints,c=s?Object.keys(s):[],l=[],u=i.step||{};for(const[e,t]of Object.entries(u)){const n=t,r={name:e};"string"==typeof n?.description&&(r.description=n.description),l.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:mt(o.platform),schemas:a,examples:i,...f?{docs:f}:{},...p?{source:p}:{},...s&&Object.keys(s).length>0?{hints:s}:{},hintKeys:c,exampleSummaries:l}}(e,n,o,await yt(`${r}/${dt}`,i,s))}finally{clearTimeout(a)}}async function yt(e,t,n){const r=await fetch(e,{signal:t,...n&&{headers:n}});if(!r.ok)throw new Error(`Failed to fetch ${e} (HTTP ${r.status})`);return await r.json()}async function bt(e,t){const n=await gt(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 ht(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function vt(e,t){let n,r,o,a;if(e instanceof Error){n=e.message;const t=e;t.code&&(o=t.code),Array.isArray(t.details)&&(a=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 i={error:n};return t&&(i.hint=t),r&&(i.path=r),o&&(i.code=o),a&&(i.details=a),{content:[{type:"text",text:JSON.stringify(i)}],structuredContent:i,isError:!0}}function wt(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function jt(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(jt);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(jt);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value:r,not:o}=e,a=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=ge(e,t),r=a(n);return o?!r:r}}(e)}function kt(e){return Array.isArray(e)&&e.length>0&&"object"==typeof e[0]&&null!==e[0]&&"match"in e[0]}function $t(e){if(null!=e){if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(kt(e)){return{type:"routes",routes:e.map(e=>({match:jt(e.match),next:$t(e.next)}))}}return{type:"chain",value:e}}}}function xt(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 xt(n.next,t)}}function Ot(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function St(e){return{full:e.full??!1,storeId:e.store,rules:e.rules.map(e=>({match:jt(e.match),key:e.key,ttl:e.ttl,update:e.update}))}}function At(e,t,n,r){const o=e.rules.find(e=>e.match(n));if(!o)return null;const a=o.key.map(e=>String(ge(n,e)??""));if(a.every(e=>""===e))return null;const i=`${r}:${a.join(":")}`,s=t.get(i);return void 0!==s?{status:"HIT",key:i,value:s,rule:o}:{status:"MISS",key:i,rule:o}}function Et(e,t,n,r){e.set(t,n,1e3*r)}async function _t(e,t,n,r){if(!t)return e;let o=e;for(const[e,a]of Object.entries(t)){o=ye(o,e,await Ue(n,a,{collector:r}))}return o}function Ct(e){return 0===e.length?"// no output":e.map(Nt).join(";\n\n")}function Nt(e){const[t,...n]=e,r=n.map(Rt).join(", ");return"return"===t?r?`return ${r}`:"return":`${t}(${r})`}function Rt(e){return void 0===e?"undefined":null===e?"null":"function"==typeof e?"[Function]":JSON.stringify(e,null,2)}//# sourceMappingURL=index.js.map
|