@walkeros/core 4.1.2 → 4.1.3-next-1780071196115

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.mjs CHANGED
@@ -1 +1 @@
1
- var e=Object.defineProperty,t=(t,n)=>{for(var r in n)e(t,r,{get:n[r],enumerable:!0})},n={},r={};function o(e,t){if("collector"===e)return"collector";if(!t)throw new Error(`stepId(${e}) requires an id`);return`${e}.${t}`}t(r,{stepId:()=>o});var i={},a={};function s(e,t){const n=e.destinations[t];if(!n)throw new Error(`Destination not found: ${t}`);return n}t(a,{getDestination:()=>s});var c={},l={},u={};t(u,{Level:()=>f});var f=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(f||{}),p={},d={},m={};function g(e,t){const n=e.transformers[t];if(!n)throw new Error(`Transformer not found: ${t}`);return n}t(m,{getTransformer:()=>g});var y={},h={};function v(e,t){const n=e.sources[t];if(!n)throw new Error(`Source not found: ${t}`);return n}t(h,{getSource:()=>v});var b={};function w(e,t){const n=e.stores[t];if(!n)throw new Error(`Store not found: ${t}`);return n}t(b,{getStore:()=>w});var k={},$={},j={},x={},A={},O={},S={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 N(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function T(e){throw new Error(String(e))}var C=new Set(["description","examples","title","$comment"]);function I(e){const t={},n=new Set;function r(o){if(t[o])return t[o];n.has(o)&&T(`Circular extend chain detected: ${[...n,o].join(" → ")}`);const i=e[o];i||T(`Contract "${o}" not found`),n.add(o);let a={};if(i.extend){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);e.schema&&t.schema?n.schema=z(e.schema,t.schema):(e.schema||t.schema)&&(n.schema={...e.schema||t.schema});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?z(t,a):{...t||a}}}n.events=r}return n}(r(i.extend),i)}else a={...i};if(delete a.extend,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=z(o,i));const a=e["*"]?.[r];a&&"*"!==r&&(o=z(o,a));const s=e[n]?.["*"];s&&"*"!==r&&(o=z(o,s));const c=e[n]?.[r];c&&(o=z(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]=P(o)}a.events=e}return n.delete(o),t[o]=a,a}for(const t of Object.keys(e))r(t);return t}function z(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])]:M(o)&&M(i)?n[r]=z(o,i):n[r]=i}return n}function P(e){const t={};for(const[n,r]of Object.entries(e))C.has(n)||(null===r||"object"!=typeof r||Array.isArray(r)?t[n]=r:t[n]=P(r));return t}function M(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var R=/^\$var\.([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)$/,D=/\$var\.([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)/g,F=/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,U=/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/,Z=/^\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.([a-zA-Z0-9_.]+))?$/,W=/^\$store\.([a-zA-Z_][a-zA-Z0-9_]*)$/,H=/^\$secret\.([A-Z0-9_]+)$/,L="$code:";function K(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var V="__WALKEROS_ENV:";function q(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 B(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(".");T(`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(".");T(`Path "${t}" not found in "${n}": "${i}" does not exist${o?` in "${o}"`:""}`)}o=a[i]}return o}function J(e,t,n,r,o,i){if("string"==typeof e){const a=e.match(R);if(a){const e=a[1].split("."),s=e[0],c=e.slice(1).join(".");void 0===t[s]&&T(`Variable "${s}" not found`);const l=i??new Set;if(l.has(s)){T(`Cyclic $var reference: ${[...l,s].join(" -> ")}`)}let u;l.add(s);try{u=J(t[s],t,n,r,o,l)}finally{l.delete(s)}return c&&(u=B(u,c,`$var.${s}`)),u}const s=e.match(U);if(s&&r){const e=s[1],t=s[2];e in r||T(`Contract "${e}" not found`);let n=r[e];return t&&(n=B(n,t,`$contract.${e}`)),n}const c=e.match(Z);if(c){const t=c[1],r=c[2],i=!1===n?.strictFlowRefs;o||T(`$flow.${t}${r?`.${r}`:""} cannot be resolved without a flow resolver`);const a=o(t);if(!a){if(i)return n?.onWarning?.(q(t,r,"unknown-flow")),e;T(`Flow "${t}" not found in $flow.${t}`)}let s=a;if(r)if(i){try{s=B(s,r,`$flow.${t}`)}catch{return n?.onWarning?.(q(t,r,"missing-key")),e}if(null==s||""===s)return n?.onWarning?.(q(t,r,"missing-key")),e}else s=B(s,r,`$flow.${t}`);return s}let l=e.replace(D,(e,a)=>{const s=a.split("."),c=s[0],l=s.slice(1).join(".");void 0===t[c]&&T(`Variable "${c}" not found`);const u=i??new Set;if(u.has(c)){T(`Cyclic $var reference: ${[...u,c].join(" -> ")}`)}let f;u.add(c);try{f=J(t[c],t,n,r,o,u)}finally{u.delete(c)}if(l&&(f=B(f,l,`$var.${c}`)),null===f||"string"!=typeof f&&"number"!=typeof f&&"boolean"!=typeof f){T(`Variable "${a}" 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.${a}"`)}return String(f)});return l=l.replace(F,(e,t,r)=>n?.deferred?void 0!==r?`${V}${t}:${r}`:`${V}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==r?r:void T(`Environment variable "${t}" not found and no default provided`)),l}if(Array.isArray(e))return e.map(e=>J(e,t,n,r,o,i));if(null!==e&&"object"==typeof e){const a={};for(const[s,c]of Object.entries(e))a[s]=J(c,t,n,r,o,i);return a}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 X(e,t,n){const r=new Map,o=new Set,i=[],a=t=>{if(r.has(t))return r.get(t);const s=e.flows[t];if(s){if(o.has(t)){T(`Cyclic $flow reference: ${[...i,t].join(" -> ")}`)}o.add(t),i.push(t);try{const o=K(e.variables,s.variables),i=J(s.config??{},o,n,void 0,a);return r.set(t,i),i}finally{o.delete(t),i.pop()}}},s=Object.keys(e.flows);t||(1===s.length?t=s[0]:T(`Multiple flows found (${s.join(", ")}). Please specify a flow.`));const c=e.flows[t];c||T(`Flow "${t}" not found. Available: ${s.join(", ")}`),o.add(t),i.push(t);try{return function(e,t,n,r){const o=JSON.parse(JSON.stringify(t));let i;if(e.contract){const o=K(e.variables,t.variables);i=I(J(e.contract,o,n,void 0,r))}if(o.config){const a=K(e.variables,t.variables);o.config=J(o.config,a,n,i,r)}if(o.sources)for(const[a,s]of Object.entries(o.sources)){const c=K(e.variables,t.variables,s.variables),l=J(s.config,c,n,i,r),u=J(s.env,c,n,i,r);o.sources[a]={package:s.package,import:s.import,config:l,env:u,primary:s.primary,variables:s.variables,before:s.before,next:s.next,cache:s.cache,validate:s.validate,code:s.code}}if(o.destinations)for(const[a,s]of Object.entries(o.destinations)){const c=K(e.variables,t.variables,s.variables),l=J(s.config,c,n,i,r),u=J(s.env,c,n,i,r);o.destinations[a]={package:s.package,import:s.import,config:l,env:u,variables:s.variables,before:s.before,next:s.next,cache:s.cache,validate:s.validate,code:s.code}}if(o.stores)for(const[a,s]of Object.entries(o.stores)){const c=K(e.variables,t.variables,s.variables),l=J(s.config,c,n,i,r),u=J(s.env,c,n,i,r);o.stores[a]={package:s.package,import:s.import,config:l,env:u,cache:s.cache,variables:s.variables,code:s.code}}if(o.transformers)for(const[a,s]of Object.entries(o.transformers)){const c=K(e.variables,t.variables,s.variables),l=J(s.config,c,n,i,r),u=J(s.env,c,n,i,r);o.transformers[a]={package:s.package,import:s.import,config:l,env:u,variables:s.variables,before:s.before,next:s.next,cache:s.cache,validate:s.validate,code:s.code}}if(o.collector){const a=K(e.variables,t.variables),s=J(o.collector,a,n,i,r);o.collector=s}return o}(e,c,n,a)}finally{o.delete(t),i.pop()}}function Y(e){const t=e.config?.platform;if("web"===t||"server"===t)return t;T('Flow must have config.platform set to "web" or "server"')}var Q={merge:!0,shallow:!0,extend:!0};function ee(e,t={},n={}){n={...Q,...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 te(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function ne(e){return Array.isArray(e)}function re(e){return"boolean"==typeof e}function oe(e){return"walker"===e}function ie(e){return void 0!==e}function ae(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function se(e){return"function"==typeof e}function ce(e){return"number"==typeof e&&!Number.isNaN(e)}function le(e){return"object"==typeof e&&null!==e&&!ne(e)&&"[object Object]"===Object.prototype.toString.call(e)}function ue(e,t){return typeof e==typeof t}function fe(e){return"string"==typeof e}function pe(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]=pe(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(pe(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 de(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&ne(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=de(e,t,n);i.push(r)}return i}if(o=le(o)||ne(o)?o[t]:void 0,void 0===o)break}return ie(o)?o:n}function me(e,t,n){if(!le(e))return e;const r=pe(e),o=t.split(".");let i=r;for(let e=0;e<o.length;e++){const t=o[e];e===o.length-1?i[t]=n:(t in i&&"object"==typeof i[t]&&null!==i[t]||(i[t]={}),i=i[t])}return r}function ge(e,t){if(!le(e)&&!ne(e))return e;const n=pe(e),r=t.split(".");let o=n;for(let e=0;e<r.length;e++){const t=r[e],i=e===r.length-1;if(ne(o)){const e=Number(t);if(!Number.isInteger(e)||e<0||e>=o.length)return n;if(i)o.splice(e,1);else{const t=o[e];if(!le(t)&&!ne(t))return n;o=t}}else if(i)delete o[t];else{const e=o[t];if(!le(e)&&!ne(e))return n;o=e}}return n}var ye={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(ye):t;for(const t of r){const r=ye[t];if(!r)continue;const o=r(e);if(le(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 be(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 we(e,t){const n={...e};return n.config=ee(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=ee(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=ee(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function ke(e,t){if(!le(t))return e;for(const n of Object.keys(t)){const r=t[n];void 0!==r&&(le(r)&&le(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 je(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=ee({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 xe(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 je({...{"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 Ae(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 Oe=[{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 Se(e,t={},n=[]){const r={};Object.entries(ee({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(Oe.map(e=>e.param));return[...Oe.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):Oe,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 Ee(e,t){return"number"==typeof e?{wait:e}:e?{wait:e.wait??t,size:e.size,age:e.age}:{wait:t}}function _e(e,t=1e3,n=!1){const{wait:r,size:o,age:i}=Ee(t,1e3);let a,s,c=null,l=null,u=!1,f=[],p=0;const d=()=>{c&&(clearTimeout(c),c=null),l&&(clearTimeout(l),l=null),p=0,s=void 0},m=()=>{const t=s,n=f;if(d(),f=[],t)return a=e(...t),n.forEach(e=>e(a)),a;n.forEach(e=>e(void 0))},g=(...t)=>new Promise(d=>{const g=n&&!u;if(s=t,p+=1,f.push(d),c&&clearTimeout(c),c=setTimeout(()=>{c=null,n&&!u||m()},r),void 0===i||l||(l=setTimeout(()=>{l=null,m()},i)),void 0!==o&&p>=o)m();else if(g){u=!0,a=e(...t);const n=f;f=[],n.forEach(e=>e(a))}});return g.flush=()=>s||0!==f.length?new Promise(e=>{f.push(e),m()}):Promise.resolve(void 0),g.cancel=()=>{const e=f;f=[],d(),e.forEach(e=>e(void 0))},g.size=()=>p,g}function Ne(e,t=1e3){const{wait:n}=Ee(t,1e3);let r=null;return function(...t){if(null===r)return r=setTimeout(()=>{r=null},n),e(...t)}}function Te(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function Ce(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=Te(e)):n=e,void 0!==t&&(t instanceof Error?r.error=Te(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=Te(r.error))):r.value=t),{message:n,context:r}}var Ie=(e,t,n,r)=>{const o=`${f[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 ze(e={}){return Pe({level:void 0!==e.level?function(e){return"string"==typeof e?f[e]:e}(e.level):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]})}function Pe(e){const{level:t,handler:n,jsonHandler:r,scope:o}=e,i=(e,r,i)=>{if(e<=t){const t=Ce(r,i);n?n(e,t.message,t.context,o,Ie):Ie(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=Ce(e,t);throw n?n(0,r.message,r.context,o,Ie):Ie(0,r.message,r.context,o),new Error(r.message)},json:e=>{r?r(e):console.log(JSON.stringify(e,null,2))},scope:e=>Pe({level:t,handler:n,jsonHandler:r,scope:[...o,e]})}}function Me(e){return re(e)||fe(e)||ce(e)||!ie(e)||ne(e)&&e.every(Me)||le(e)&&Object.values(e).every(Me)}function Re(e){return re(e)||fe(e)||ce(e)?e:te(e)?Re(Array.from(e)):ne(e)?e.map(e=>Re(e)).filter(e=>void 0!==e):le(e)?Object.entries(e).reduce((e,[t,n])=>{const r=Re(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function De(e){return Me(e)?e:void 0}function Fe(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function Ue(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}var Ze=class e extends Error{constructor(t,n){super(t,n),this.name="FatalError",Object.setPrototypeOf(this,e.prototype)}};async function We(e,t,n){const[r,o]=(e.name||"").split(" ");if(!t||!r||!o)return{};let i,a="",s=r,c=o;const l=t=>{if(!t)return;return(ne(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:le(e)&&e.consent||n.consent};return Boolean(t.condition(e,r))})};t[s]||(s="*");const u=t[s];return u&&(u[c]||(c="*"),i=l(u[c])),i||(s="*",c="*",i=l(t[s]?.[c])),i&&(a=`${s} ${c}`),{eventMapping:i,mappingKey:a}}async function He(e,t={},n={}){if(!ie(e))return;const r=le(e)&&e.consent||n.consent||n.collector?.consent,o=n.event??(le(e)?e:{});if(!n.collector)throw new Error("getMappingValue: context.collector is required");const i={event:o,mapping:t,collector:n.collector,logger:n.collector.logger,consent:r},a=ne(t)?t:[t];for(const t of a){const r=await Ue(Le,e=>{if(e instanceof Ze)throw e;n.collector&&n.collector.status.failed++,i.logger.error("mapping processing failed",{event:o,error:e})})(e,t,{...i,mapping:t});if(ie(r))return r}}async function Le(e,t,n){return(ne(t)?t:[t]).reduce(async(t,r)=>{const o=await t;if(o)return o;const i=fe(r)?{key:r}:r;if(!Object.keys(i).length)return;const{condition:a,consent:s,fn:c,key:l,loop:u,map:f,set:p,validate:d,value:m}=i,g={...n,mapping:r};if(a&&!await Ue(a,e=>{if(e instanceof Ze)throw e;return g.logger.error("mapping condition failed",{event:g.event,error:e}),!1})(e,g))return;if(s&&!be(s,g.consent))return m;let y=ie(m)?m:e;if(c&&(y=await Ue(c,e=>{if(e instanceof Ze)throw e;g.logger.error("mapping fn failed",{event:g.event,error:e})})(e,g)),l&&(y=de(e,l,m)),u){const[t,n]=u,r="this"===t?[e]:await He(e,t,g);ne(r)&&(y=(await Promise.all(r.map(e=>He(e,n,g)))).filter(ie))}else f?y=await Object.entries(f).reduce(async(t,[n,r])=>{const o=await t,i=await He(e,r,g);return ie(i)&&(o[n]=i),o},Promise.resolve({})):p&&(y=await Promise.all(p.map(t=>Le(e,t,g))));d&&!await Ue(d,e=>{if(e instanceof Ze)throw e;return g.logger.error("mapping validate failed",{event:g.event,error:e}),!1})(y,g)&&(y=void 0);const h=De(y);return ie(h)?h:De(m)},Promise.resolve(void 0))}async function Ke(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await He(e,r,{collector:n,event:e});e=me(e,t,o)}));const{eventMapping:r,mappingKey:o}=await We(e,t.mapping,n);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await He(e,r,{collector:n,event:e});e=me(e,t,o)}));let i=t.data&&await He(e,t.data,{collector:n,event:e});const a=Boolean(r?.silent);if(r){if(r.ignore)return{event:e,data:i,mapping:r,mappingKey:o,ignore:!0,silent:a};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await He(e,r.data,{collector:n,event:e});i=le(i)&&le(t)?ee(i,t):t}}const s=r?.include??t.include;if(s&&s.length>0){const t=he(e,s);Object.keys(t).length>0&&(i=le(i)?ee(t,i):i??t)}if(r?.remove&&le(i))for(const e of r.remove)i=ge(i,e);return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1,silent:a}}function Ve(e,t){for(const n of Object.keys(t)){const r=t[n];if(void 0===r)continue;if(null===r){delete e[n];continue}const o=e[n];le(r)&&le(o)?Ve(o,r):e[n]=r}return e}function qe(e,t){if(void 0===t.extend&&void 0===t.remove)return pe(t);const n={...pe(e)};if(t.extend){Ve(n,{...t.extend})}return delete n.extend,t.remove?n.remove=[...t.remove]:delete n.remove,n}function Be(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 Je(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 Ge(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=Ge();return e.push(n),n});return{error:jest.fn(),warn:jest.fn(),info:jest.fn(),debug:jest.fn(),throw:t,json:jest.fn(),scope:n,scopedLoggers:e}}function Xe(e={}){return{collector:{},config:{},env:{},logger:Ge(),id:"test",ingest:E("test"),...e}}function Ye(e){const t=String(e),n=t.split("?")[1]||t;return Fe(()=>{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(ne(o)){const a=parseInt(t,10);i?o[a]=ve(e):(o[a]=o[a]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[a])}else le(o)&&(i?o[t]=ve(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function Qe(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(ne(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):le(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 et(e){return void 0===e||ue(e,"")?e:JSON.stringify(e)}function tt(e={}){return ee({"Content-Type":"application/json; charset=utf-8"},e)}function nt(e,t){return!1===e||void 0===e?null:!0===e?t:{...t,...e}}function rt(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function ot(e,t,n,r){const o=e;return function(...e){let i;const a="pre"+t,s="post"+t,c=n[a],l=n[s],u=(e,t)=>{r?r.warn(e,{error:t}):console.warn(e,t)};if(c)try{i=c({fn:o},...e)}catch(t){u(`Hook ${String(a)} failed, falling back to original function`,t),i=o(...e)}else i=o(...e);if(l)try{i=l({fn:o,result:i},...e)}catch(e){u(`Hook ${String(s)} failed, keeping original result`,e)}return i}}function it(e,t){if(t>=1)return!0;if(t<=0)return!1;return function(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=t+((t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24))>>>0;return t>>>0}(e)/4294967295<t}function at(e,t){const n="function"==typeof t?t:()=>t;return function(t){const r=n();if(!r)return;const o=r.level??"standard";if("off"===o)return;const i=r.sample,a="number"==typeof i&&Number.isFinite(i)?i:1;if(t.eventId&&!it(t.eventId,a))return;const s=r.includeIn??"trace"===o,c=r.includeOut??"trace"===o,l=r.includeMappingKey??"trace"===o,u={...t};s||delete u.inEvent,c||delete u.outEvent,l||delete u.mappingKey,"trace"!==o&&u.error?.message&&u.error.message.length>256&&(u.error={...u.error,message:u.error.message.slice(0,256)+"…"});try{e(u)}catch{}}}function st(e,t){return it(e,t)}function ct(e){const t=e.env??("undefined"!=typeof process?process.env:{}),n=e.now??(()=>Date.now()),r=t.WALKEROS_TRACE_UNTIL;if("string"==typeof r&&r.length>0){const t=Date.parse(r);if(!Number.isNaN(t)&&t>n())return{flowId:e.flowId,level:"trace",includeIn:!0,includeOut:!0,sample:1}}const o=e.observe?.level??"standard";if("off"===o)return null;const i=e.observe?.sample??1;return{flowId:e.flowId,level:o,sample:i}}function lt(e,t){if(0===e.observers.size)return;const n=Array.from(e.observers);for(const e of n)try{e(t)}catch{}}function ut(e){const t=e.batchMs,n="number"==typeof t&&Number.isFinite(t)&&t>0?Math.floor(t):50,r=e.batchSize,o="number"==typeof r&&Number.isFinite(r)&&r>=1?Math.floor(r):50,i=e.fetch??((e,t)=>globalThis.fetch(e,t)),a=e.onError??(()=>{});let s=[],c=null;function l(){if(0===s.length)return;const t=s;s=[],c&&(clearTimeout(c),c=null),Promise.resolve().then(()=>i(e.url,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e.token}`},body:JSON.stringify(t)})).then(e=>{e&&"object"==typeof e&&"ok"in e&&!e.ok&&a(new Error(`Observer responded ${e.status}`))}).catch(e=>{a(e)})}return e=>{s.push(e),s.length>=o?l():null===c&&(c=setTimeout(l,n))}}function ft(e){return e?{userAgent:e,browser:pt(e),browserVersion:dt(e),os:mt(e),osVersion:gt(e),deviceType:yt(e)}:{}}function pt(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 dt(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 mt(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 gt(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function yt(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 ht(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function vt(e){const t=ht(e);return new Function("value","context",t)}function bt(e){const t=ht(e);return new Function("value","context",t)}function wt(e){const t=ht(e);return new Function("value","context",t)}function kt(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function $t(e,t){const n=t?.version||"latest",r=t?.timeout||1e4,o=new AbortController,i=setTimeout(()=>o.abort(),r),a=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:a,...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||{},i=n.hints,a=n.hintKeys??(i?Object.keys(i):[]),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},...i&&Object.keys(i).length>0?{hints:i}:{},hintKeys:a,exampleSummaries:s}}(e,n,await o.json())}const r=`https://cdn.jsdelivr.net/npm/${e}@${n}`,o=await jt(`${r}/package.json`,a,s);return function(e,t,n,r){const o=r.$meta||{},i=r.schemas||{},a=r.examples||{},s=r.hints,c=s?Object.keys(s):[],l=[],u=a.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:kt(o.platform),schemas:i,examples:a,...f?{docs:f}:{},...p?{source:p}:{},...s&&Object.keys(s).length>0?{hints:s}:{},hintKeys:c,exampleSummaries:l}}(e,n,o,await jt(`${r}/dist/walkerOS.json`,a,s))}finally{clearTimeout(i)}}async function jt(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 xt(e,t){const n=await $t(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 At(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function Ot(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 St(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function Et(e){if(void 0===e||"*"===e)return()=>!0;if("and"in e){const t=e.and.map(Et);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(Et);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=de(e,t),r=i(n);return o?!r:r}}(e)}function _t(e){return Array.isArray(e)&&e.length>0&&e.every(e=>function(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&("match"in e||"next"in e||"one"in e||"many"in e)}(e))}function Nt(e){return e.map(e=>{if("string"==typeof e)return{match:()=>!0,next:{type:"static",value:e}};if(Array.isArray(e))return{match:()=>!0,next:Tt(e)??{type:"chain",value:[]}};const t=e;return{match:t.match?Et(t.match):()=>!0,next:Tt(t)??{type:"chain",value:[]}}})}function Tt(e){if(null==e)return;if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(_t(e))return Tt({one:e});if(e.every(e=>"string"==typeof e))return{type:"chain",value:e};const t=[];for(const n of e){const e=Tt(n);void 0!==e&&t.push(e)}if(0===t.length)return;return{type:"sequence",value:t}}const t=e;if("next"in t&&void 0!==t.next)return t.match?{type:"gate",match:Et(t.match),next:Tt(t.next)}:Tt(t.next);if("one"in t&&t.one){const e=Nt(t.one);return t.match?{type:"gate",match:Et(t.match),next:{type:"one",routes:e}}:{type:"one",routes:e}}if("many"in t&&t.many){const e=Nt(t.many);return t.match?{type:"gate",match:Et(t.match),next:{type:"many",routes:e}}:{type:"many",routes:e}}return t.match?{type:"gate",match:Et(t.match)}:void 0}var Ct=new WeakMap;function It(e,t={}){if(null==e)return[];let n;if("object"==typeof e){const t=Ct.get(e);t?n=t:(n=Tt(e),n&&Ct.set(e,n))}else n=Tt(e);if(!n)return[];const r=zt(n,t);return void 0===r?[]:Array.isArray(r)?r:[r]}function zt(e,t={}){if(e){if("static"===e.type)return e.value;if("chain"===e.type)return e.value;if("gate"===e.type){if(!e.match(t))return;return zt(e.next,t)}if("sequence"===e.type){const n=[];for(const r of e.value){const e=zt(r,t);void 0!==e&&(Array.isArray(e)?n.push(...e):n.push(e))}return n.length>0?n:void 0}if("many"===e.type){const n=[];for(const r of e.routes){if(!r.match(t))continue;const e=zt(r.next,t);void 0!==e&&(Array.isArray(e)?n.push(...e):n.push(e))}return n.length>0?n:void 0}for(const n of e.routes)if(n.match(t))return zt(n.next,t)}}function Pt(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function Mt(e){return{stop:e.stop??!1,storeId:e.store,namespace:e.namespace,rules:e.rules.map(e=>({match:e.match?Et(e.match):()=>!0,key:e.key,ttl:e.ttl,update:e.update}))}}async function Rt(e,t,n,r){const o=e.rules.find(e=>e.match(n));if(!o)return null;const i=o.key.map(e=>String(de(n,e)??""));if(i.every(e=>""===e))return null;const a=i.join(":"),s=r??e.namespace,c=s?`${s}:${a}`:a,l=await t.get(c);return void 0!==l?{status:"HIT",key:c,value:l,rule:o}:{status:"MISS",key:c,rule:o}}function Dt(e,t,n,r){e.set(t,n,1e3*r)}async function Ft(e,t,n,r){if(!t)return e;let o=e;for(const[e,i]of Object.entries(t)){o=me(o,e,await He(n,i,{collector:r}))}return o}var Ut={Source:["code","package","import","before","next","cache"],Transformer:["code","package","import","before","next","cache","mapping"],Destination:["code","package","import","before","next","cache"],Store:["code","package","import","cache"]},Zt=["config","env","validate","variables","examples","disabled","id","logger","mock","chainMocks"],Wt={Source:["primary"],Transformer:[],Destination:[],Store:[]},Ht=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function Lt(e,t){const n=function(e){return new Set([...Ut[e],...Zt,...Wt[e]])}(t);for(const r of Object.keys(e))if(!n.has(r))return{ok:!1,code:"UNKNOWN_KEY",key:r,reason:`Unknown key "${r}" on ${t}. Allowed: ${[...n].sort().join(", ")}.`};const r=void 0!==e.package,o=void 0!==e.import,i=void 0!==e.code;return i&&"string"==typeof e.code?{ok:!1,code:"OBSOLETE_CODE_STRING",key:"code",reason:`code: "<name>" is no longer supported. Use import: "${e.code}" with the package field instead.`}:i&&("object"!=typeof e.code&&"function"!=typeof e.code||null===e.code||Array.isArray(e.code))?{ok:!1,code:"INVALID_CODE_SHAPE",key:"code",reason:"code must be an object ({ push, type?, init? }) or a resolved function value."}:i&&r?{ok:!1,code:"CONFLICT",key:"package",reason:"Cannot specify both `code` and `package`. Use one or the other."}:i&&o?{ok:!1,code:"CONFLICT",key:"import",reason:"Cannot specify both `code` and `import`."}:o&&!r?{ok:!1,code:"MISSING_PACKAGE",key:"import",reason:"`import` requires `package` to be set."}:!o||"string"==typeof e.import&&Ht.test(e.import)?{ok:!0}:{ok:!1,code:"INVALID_IMPORT",key:"import",reason:`import must match ${Ht.source}. Got: ${JSON.stringify(e.import)}.`}}function Kt(e,t){return"Transformer"===t&&(void 0===e.code&&void 0===e.package&&void 0===e.import&&(void 0!==e.before||void 0!==e.next||void 0!==e.cache||void 0!==e.mapping))}function Vt(e){return 0===e.length?"// no output":e.map(qt).join(";\n\n")}function qt(e){const[t,...n]=e,r=n.map(Bt).join(", ");return"return"===t?r?`return ${r}`:"return":`${t}(${r})`}function Bt(e){return void 0===e?"undefined":null===e?"null":"function"==typeof e?"[Function]":JSON.stringify(e,null,2)}export{n as Cache,r as Collector,S as Const,i as Context,a as Destination,V as ENV_MARKER_PREFIX,c as Elb,Ze as FatalError,O as Hint,l as Hooks,f as Level,$ as Lifecycle,u as Logger,p as Mapping,A as Matcher,d as On,L as REF_CODE_PREFIX,U as REF_CONTRACT,F as REF_ENV,Z as REF_FLOW,H as REF_SECRET,W as REF_STORE,R as REF_VAR_FULL,D as REF_VAR_INLINE,y as Request,Ut as STEP_OPERATIVE_FIELDS,x as Simulation,h as Source,b as Store,m as Transformer,k as Trigger,j as WalkerOS,N as anonymizeIP,Ft as applyUpdate,ee as assign,_ as branch,Pt as buildCacheContext,De as castToProperty,ve as castValue,Rt as checkCache,pe as clone,Mt as compileCache,Et as compileMatcher,ut as createBatchedPoster,we as createDestination,je as createEvent,E as createIngest,ze as createLogger,Xe as createMockContext,Ge as createMockLogger,St as createRespond,at as createTelemetryObserver,_e as debounce,ke as deepMerge,Oe as defaultClickIds,ge as deleteByPath,lt as emitStep,$t as fetchPackage,xt as fetchPackageSchema,Re as filterValues,he as flattenIncludeSections,Vt as formatOut,pt as getBrowser,dt as getBrowserVersion,de as getByPath,yt as getDeviceType,xe as getEvent,X as getFlowSettings,be as getGrantedConsent,tt as getHeaders,Ae as getId,We as getMappingEvent,He as getMappingValue,Se as getMarketingParameters,It as getNextSteps,mt as getOS,gt as getOSVersion,Y as getPlatform,$e as getSpanId,te as isArguments,ne as isArray,re as isBoolean,oe as isCommand,ie as isDefined,ae as isElementOrDocument,se as isFunction,ce as isNumber,le as isObject,Kt as isPathStepEntry,Me as isPropertyType,ue as isSameType,st as isSampled,fe as isString,Ot as mcpError,At as mcpResult,z as mergeContractSchemas,qe as mergeMappingRule,Be as mockEnv,G as packageNameToVariable,ft as parseUserAgent,Ke as processEventMapping,Ye as requestToData,Qe as requestToParameter,I as resolveContracts,nt as resolveSetup,ct as resolveTelemetryOptions,me as setByPath,o as stepId,Dt as storeCache,Ne as throttle,T as throwError,et as transformData,Je as traverseEnv,rt as trim,Fe as tryCatch,Ue as tryCatchAsync,ot as useHooks,Lt as validateStepEntry,B as walkPath,vt as wrapCondition,bt as wrapFn,wt as wrapValidate};//# sourceMappingURL=index.mjs.map
1
+ var e=Object.defineProperty,t=(t,n)=>{for(var r in n)e(t,r,{get:n[r],enumerable:!0})},n={},r={};function o(e,t){if("collector"===e)return"collector";if(!t)throw new Error(`stepId(${e}) requires an id`);return`${e}.${t}`}t(r,{stepId:()=>o});var i={},a={};function s(e,t){const n=e.destinations[t];if(!n)throw new Error(`Destination not found: ${t}`);return n}t(a,{getDestination:()=>s});var c={},l={},u={};t(u,{Level:()=>f});var f=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(f||{}),p={},d={},m={};function g(e,t){const n=e.transformers[t];if(!n)throw new Error(`Transformer not found: ${t}`);return n}t(m,{getTransformer:()=>g});var y={},h={};function v(e,t){const n=e.sources[t];if(!n)throw new Error(`Source not found: ${t}`);return n}t(h,{getSource:()=>v});var b={};function w(e,t){const n=e.stores[t];if(!n)throw new Error(`Store not found: ${t}`);return n}t(b,{getStore:()=>w});var k={},$={},j={},x={},A={},O={},S={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 N(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function T(e){throw new Error(String(e))}var C=new Set(["description","examples","title","$comment"]);function I(e){const t={},n=new Set;function r(o){if(t[o])return t[o];n.has(o)&&T(`Circular extend chain detected: ${[...n,o].join(" → ")}`);const i=e[o];i||T(`Contract "${o}" not found`),n.add(o);let a={};if(i.extend){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);e.schema&&t.schema?n.schema=z(e.schema,t.schema):(e.schema||t.schema)&&(n.schema={...e.schema||t.schema});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?z(t,a):{...t||a}}}n.events=r}return n}(r(i.extend),i)}else a={...i};if(delete a.extend,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=z(o,i));const a=e["*"]?.[r];a&&"*"!==r&&(o=z(o,a));const s=e[n]?.["*"];s&&"*"!==r&&(o=z(o,s));const c=e[n]?.[r];c&&(o=z(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]=P(o)}a.events=e}return n.delete(o),t[o]=a,a}for(const t of Object.keys(e))r(t);return t}function z(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])]:M(o)&&M(i)?n[r]=z(o,i):n[r]=i}return n}function P(e){const t={};for(const[n,r]of Object.entries(e))C.has(n)||(null===r||"object"!=typeof r||Array.isArray(r)?t[n]=r:t[n]=P(r));return t}function M(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var R=/^\$var\.([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)$/,D=/\$var\.([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)/g,F=/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,U=/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/,Z=/^\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.([a-zA-Z0-9_.]+))?$/,W=/^\$store\.([a-zA-Z_][a-zA-Z0-9_]*)$/,H=/^\$secret\.([A-Z0-9_]+)$/,L="$code:",K=/\$flow\.([\w-]+)/g;function V(e,t){const n=t??new Set;if("string"==typeof e){for(const t of e.matchAll(K))n.add(t[1]);return n}if(e&&"object"==typeof e)for(const t of Object.values(e))V(t,n);return n}function q(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var B="__WALKEROS_ENV:";function J(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 G(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(".");T(`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(".");T(`Path "${t}" not found in "${n}": "${i}" does not exist${o?` in "${o}"`:""}`)}o=a[i]}return o}function X(e,t,n,r,o,i){if("string"==typeof e){const a=e.match(R);if(a){const e=a[1].split("."),s=e[0],c=e.slice(1).join(".");void 0===t[s]&&T(`Variable "${s}" not found`);const l=i??new Set;if(l.has(s)){T(`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=G(u,c,`$var.${s}`)),u}const s=e.match(U);if(s&&r){const e=s[1],t=s[2];e in r||T(`Contract "${e}" not found`);let n=r[e];return t&&(n=G(n,t,`$contract.${e}`)),n}const c=e.match(Z);if(c){const t=c[1],r=c[2],i=!1===n?.strictFlowRefs;o||T(`$flow.${t}${r?`.${r}`:""} cannot be resolved without a flow resolver`);const a=o(t);if(!a){if(i)return n?.onWarning?.(J(t,r,"unknown-flow")),e;T(`Flow "${t}" not found in $flow.${t}`)}let s=a;if(r)if(i){try{s=G(s,r,`$flow.${t}`)}catch{return n?.onWarning?.(J(t,r,"missing-key")),e}if(null==s||""===s)return n?.onWarning?.(J(t,r,"missing-key")),e}else s=G(s,r,`$flow.${t}`);return s}let l=e.replace(D,(e,a)=>{const s=a.split("."),c=s[0],l=s.slice(1).join(".");void 0===t[c]&&T(`Variable "${c}" not found`);const u=i??new Set;if(u.has(c)){T(`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=G(f,l,`$var.${c}`)),null===f||"string"!=typeof f&&"number"!=typeof f&&"boolean"!=typeof f){T(`Variable "${a}" 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.${a}"`)}return String(f)});return l=l.replace(F,(e,t,r)=>n?.deferred?void 0!==r?`${B}${t}:${r}`:`${B}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==r?r:void T(`Environment variable "${t}" not found and no default provided`)),l}if(Array.isArray(e))return e.map(e=>X(e,t,n,r,o,i));if(null!==e&&"object"==typeof e){const a={};for(const[s,c]of Object.entries(e))a[s]=X(c,t,n,r,o,i);return a}return e}function Y(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){const r=new Map,o=new Set,i=[],a=t=>{if(r.has(t))return r.get(t);const s=e.flows[t];if(s){if(o.has(t)){T(`Cyclic $flow reference: ${[...i,t].join(" -> ")}`)}o.add(t),i.push(t);try{const o=q(e.variables,s.variables),i=X(s.config??{},o,n,void 0,a);return r.set(t,i),i}finally{o.delete(t),i.pop()}}},s=Object.keys(e.flows);t||(1===s.length?t=s[0]:T(`Multiple flows found (${s.join(", ")}). Please specify a flow.`));const c=e.flows[t];c||T(`Flow "${t}" not found. Available: ${s.join(", ")}`),o.add(t),i.push(t);try{return function(e,t,n,r){const o=JSON.parse(JSON.stringify(t));let i;if(e.contract){const o=q(e.variables,t.variables);i=I(X(e.contract,o,n,void 0,r))}if(o.config){const a=q(e.variables,t.variables);o.config=X(o.config,a,n,i,r)}if(o.sources)for(const[a,s]of Object.entries(o.sources)){const c=q(e.variables,t.variables,s.variables),l=X(s.config,c,n,i,r),u=X(s.env,c,n,i,r);o.sources[a]={package:s.package,import:s.import,config:l,env:u,primary:s.primary,variables:s.variables,before:s.before,next:s.next,cache:s.cache,validate:s.validate,code:s.code}}if(o.destinations)for(const[a,s]of Object.entries(o.destinations)){const c=q(e.variables,t.variables,s.variables),l=X(s.config,c,n,i,r),u=X(s.env,c,n,i,r);o.destinations[a]={package:s.package,import:s.import,config:l,env:u,variables:s.variables,before:s.before,next:s.next,cache:s.cache,validate:s.validate,code:s.code}}if(o.stores)for(const[a,s]of Object.entries(o.stores)){const c=q(e.variables,t.variables,s.variables),l=X(s.config,c,n,i,r),u=X(s.env,c,n,i,r);o.stores[a]={package:s.package,import:s.import,config:l,env:u,cache:s.cache,variables:s.variables,code:s.code}}if(o.transformers)for(const[a,s]of Object.entries(o.transformers)){const c=q(e.variables,t.variables,s.variables),l=X(s.config,c,n,i,r),u=X(s.env,c,n,i,r);o.transformers[a]={package:s.package,import:s.import,config:l,env:u,variables:s.variables,before:s.before,next:s.next,cache:s.cache,validate:s.validate,code:s.code}}if(o.collector){const a=q(e.variables,t.variables),s=X(o.collector,a,n,i,r);o.collector=s}return o}(e,c,n,a)}finally{o.delete(t),i.pop()}}function ee(e){const t=e.config?.platform;if("web"===t||"server"===t)return t;T('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 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 re(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function oe(e){return Array.isArray(e)}function ie(e){return"boolean"==typeof e}function ae(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("."),i=[];for(const e of o){const r=ge(e,t,n);i.push(r)}return i}if(o=fe(o)||oe(o)?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 i=r;for(let e=0;e<o.length;e++){const t=o[e];e===o.length-1?i[t]=n:(t in i&&"object"==typeof i[t]&&null!==i[t]||(i[t]={}),i=i[t])}return r}function he(e,t){if(!fe(e)&&!oe(e))return e;const n=me(e),r=t.split(".");let o=n;for(let e=0;e<r.length;e++){const t=r[e],i=e===r.length-1;if(oe(o)){const e=Number(t);if(!Number.isInteger(e)||e<0||e>=o.length)return n;if(i)o.splice(e,1);else{const t=o[e];if(!fe(t)&&!oe(t))return n;o=t}}else if(i)delete o[t];else{const e=o[t];if(!fe(e)&&!oe(e))return n;o=e}}return n}var ve={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 be(e,t){const n={},r=t.includes("all")?Object.keys(ve):t;for(const t of r){const r=ve[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 we(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function ke(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 $e(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 je(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])?je(e[n],r):e[n]=r)}return e}function xe(){let e="";for(let t=0;t<16;t++)e+=(16*Math.random()|0).toString(16);return e}function Ae(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||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,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 Ae({...{"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 Ee=[{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 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(Ee.map(e=>e.param));return[...Ee.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):Ee,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 Ne(e,t){return"number"==typeof e?{wait:e}:e?{wait:e.wait??t,size:e.size,age:e.age}:{wait:t}}function Te(e,t=1e3,n=!1){const{wait:r,size:o,age:i}=Ne(t,1e3);let a,s,c=null,l=null,u=!1,f=[],p=0;const d=()=>{c&&(clearTimeout(c),c=null),l&&(clearTimeout(l),l=null),p=0,s=void 0},m=()=>{const t=s,n=f;if(d(),f=[],t)return a=e(...t),n.forEach(e=>e(a)),a;n.forEach(e=>e(void 0))},g=(...t)=>new Promise(d=>{const g=n&&!u;if(s=t,p+=1,f.push(d),c&&clearTimeout(c),c=setTimeout(()=>{c=null,n&&!u||m()},r),void 0===i||l||(l=setTimeout(()=>{l=null,m()},i)),void 0!==o&&p>=o)m();else if(g){u=!0,a=e(...t);const n=f;f=[],n.forEach(e=>e(a))}});return g.flush=()=>s||0!==f.length?new Promise(e=>{f.push(e),m()}):Promise.resolve(void 0),g.cancel=()=>{const e=f;f=[],d(),e.forEach(e=>e(void 0))},g.size=()=>p,g}function Ce(e,t=1e3){const{wait:n}=Ne(t,1e3);let r=null;return function(...t){if(null===r)return r=setTimeout(()=>{r=null},n),e(...t)}}function Ie(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function ze(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=Ie(e)):n=e,void 0!==t&&(t instanceof Error?r.error=Ie(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=Ie(r.error))):r.value=t),{message:n,context:r}}var Pe=(e,t,n,r)=>{const o=`${f[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 Me(e={}){return Re({level:void 0!==e.level?function(e){return"string"==typeof e?f[e]:e}(e.level):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]})}function Re(e){const{level:t,handler:n,jsonHandler:r,scope:o}=e,i=(e,r,i)=>{if(e<=t){const t=ze(r,i);n?n(e,t.message,t.context,o,Pe):Pe(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=ze(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=>Re({level:t,handler:n,jsonHandler:r,scope:[...o,e]})}}function De(e){return ie(e)||de(e)||ue(e)||!se(e)||oe(e)&&e.every(De)||fe(e)&&Object.values(e).every(De)}function Fe(e){return ie(e)||de(e)||ue(e)?e:re(e)?Fe(Array.from(e)):oe(e)?e.map(e=>Fe(e)).filter(e=>void 0!==e):fe(e)?Object.entries(e).reduce((e,[t,n])=>{const r=Fe(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function Ue(e){return De(e)?e:void 0}function Ze(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function We(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}var He=class e extends Error{constructor(t,n){super(t,n),this.name="FatalError",Object.setPrototypeOf(this,e.prototype)}};async function Le(e,t,n){const[r,o]=(e.name||"").split(" ");if(!t||!r||!o)return{};let i,a="",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="*"),i=l(u[c])),i||(s="*",c="*",i=l(t[s]?.[c])),i&&(a=`${s} ${c}`),{eventMapping:i,mappingKey:a}}async function Ke(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 i={event:o,mapping:t,collector:n.collector,logger:n.collector.logger,consent:r},a=oe(t)?t:[t];for(const t of a){const r=await We(Ve,e=>{if(e instanceof He)throw e;n.collector&&n.collector.status.failed++,i.logger.error("mapping processing failed",{event:o,error:e})})(e,t,{...i,mapping:t});if(se(r))return r}}async function Ve(e,t,n){return(oe(t)?t:[t]).reduce(async(t,r)=>{const o=await t;if(o)return o;const i=de(r)?{key:r}:r;if(!Object.keys(i).length)return;const{condition:a,consent:s,fn:c,key:l,loop:u,map:f,set:p,validate:d,value:m}=i,g={...n,mapping:r};if(a&&!await We(a,e=>{if(e instanceof He)throw e;return g.logger.error("mapping condition failed",{event:g.event,error:e}),!1})(e,g))return;if(s&&!ke(s,g.consent))return m;let y=se(m)?m:e;if(c&&(y=await We(c,e=>{if(e instanceof He)throw e;g.logger.error("mapping fn failed",{event:g.event,error:e})})(e,g)),l&&(y=ge(e,l,m)),u){const[t,n]=u,r="this"===t?[e]:await Ke(e,t,g);oe(r)&&(y=(await Promise.all(r.map(e=>Ke(e,n,g)))).filter(se))}else f?y=await Object.entries(f).reduce(async(t,[n,r])=>{const o=await t,i=await Ke(e,r,g);return se(i)&&(o[n]=i),o},Promise.resolve({})):p&&(y=await Promise.all(p.map(t=>Ve(e,t,g))));d&&!await We(d,e=>{if(e instanceof He)throw e;return g.logger.error("mapping validate failed",{event:g.event,error:e}),!1})(y,g)&&(y=void 0);const h=Ue(y);return se(h)?h:Ue(m)},Promise.resolve(void 0))}async function qe(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await Ke(e,r,{collector:n,event:e});e=ye(e,t,o)}));const{eventMapping:r,mappingKey:o}=await Le(e,t.mapping,n);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await Ke(e,r,{collector:n,event:e});e=ye(e,t,o)}));let i=t.data&&await Ke(e,t.data,{collector:n,event:e});const a=Boolean(r?.silent);if(r){if(r.ignore)return{event:e,data:i,mapping:r,mappingKey:o,ignore:!0,silent:a};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await Ke(e,r.data,{collector:n,event:e});i=fe(i)&&fe(t)?ne(i,t):t}}const s=r?.include??t.include;if(s&&s.length>0){const t=be(e,s);Object.keys(t).length>0&&(i=fe(i)?ne(t,i):i??t)}if(r?.remove&&fe(i))for(const e of r.remove)i=he(i,e);return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1,silent:a}}function Be(e,t){for(const n of Object.keys(t)){const r=t[n];if(void 0===r)continue;if(null===r){delete e[n];continue}const o=e[n];fe(r)&&fe(o)?Be(o,r):e[n]=r}return e}function Je(e,t){if(void 0===t.extend&&void 0===t.remove)return me(t);const n={...me(e)};if(t.extend){Be(n,{...t.extend})}return delete n.extend,t.remove?n.remove=[...t.remove]:delete n.remove,n}function Ge(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 Xe(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 Ye(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=Ye();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 Qe(e={}){return{collector:{},config:{},env:{},logger:Ye(),id:"test",ingest:E("test"),...e}}function et(e){const t=String(e),n=t.split("?")[1]||t;return Ze(()=>{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(oe(o)){const a=parseInt(t,10);i?o[a]=we(e):(o[a]=o[a]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[a])}else fe(o)&&(i?o[t]=we(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function tt(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 nt(e){return void 0===e||pe(e,"")?e:JSON.stringify(e)}function rt(e={}){return ne({"Content-Type":"application/json; charset=utf-8"},e)}function ot(e,t){return!1===e||void 0===e?null:!0===e?t:{...t,...e}}function it(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function at(e,t,n,r){const o=e;return function(...e){let i;const a="pre"+t,s="post"+t,c=n[a],l=n[s],u=(e,t)=>{r?r.warn(e,{error:t}):console.warn(e,t)};if(c)try{i=c({fn:o},...e)}catch(t){u(`Hook ${String(a)} failed, falling back to original function`,t),i=o(...e)}else i=o(...e);if(l)try{i=l({fn:o,result:i},...e)}catch(e){u(`Hook ${String(s)} failed, keeping original result`,e)}return i}}function st(e,t){if(t>=1)return!0;if(t<=0)return!1;return function(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=t+((t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24))>>>0;return t>>>0}(e)/4294967295<t}function ct(e,t){const n="function"==typeof t?t:()=>t;return function(t){const r=n();if(!r)return;const o=r.level??"standard";if("off"===o)return;const i=r.sample,a="number"==typeof i&&Number.isFinite(i)?i:1;if(t.eventId&&!st(t.eventId,a))return;const s=r.includeIn??"trace"===o,c=r.includeOut??"trace"===o,l=r.includeMappingKey??"trace"===o,u={...t};s||delete u.inEvent,c||delete u.outEvent,l||delete u.mappingKey,"trace"!==o&&u.error?.message&&u.error.message.length>256&&(u.error={...u.error,message:u.error.message.slice(0,256)+"…"});try{e(u)}catch{}}}function lt(e,t){return st(e,t)}function ut(e){const t=e.env??("undefined"!=typeof process?process.env:{}),n=e.now??(()=>Date.now()),r=t.WALKEROS_TRACE_UNTIL;if("string"==typeof r&&r.length>0){const t=Date.parse(r);if(!Number.isNaN(t)&&t>n())return{flowId:e.flowId,level:"trace",includeIn:!0,includeOut:!0,sample:1}}const o=e.observe?.level??"standard";if("off"===o)return null;const i=e.observe?.sample??1;return{flowId:e.flowId,level:o,sample:i}}function ft(e,t){if(0===e.observers.size)return;const n=Array.from(e.observers);for(const e of n)try{e(t)}catch{}}function pt(e){const t=e.batchMs,n="number"==typeof t&&Number.isFinite(t)&&t>0?Math.floor(t):50,r=e.batchSize,o="number"==typeof r&&Number.isFinite(r)&&r>=1?Math.floor(r):50,i=e.fetch??((e,t)=>globalThis.fetch(e,t)),a=e.onError??(()=>{});let s=[],c=null;function l(){if(0===s.length)return;const t=s;s=[],c&&(clearTimeout(c),c=null),Promise.resolve().then(()=>i(e.url,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e.token}`},body:JSON.stringify(t)})).then(e=>{e&&"object"==typeof e&&"ok"in e&&!e.ok&&a(new Error(`Observer responded ${e.status}`))}).catch(e=>{a(e)})}return e=>{s.push(e),s.length>=o?l():null===c&&(c=setTimeout(l,n))}}function dt(e){return e?{userAgent:e,browser:mt(e),browserVersion:gt(e),os:yt(e),osVersion:ht(e),deviceType:vt(e)}:{}}function mt(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 gt(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 yt(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 ht(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function vt(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 bt(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function wt(e){const t=bt(e);return new Function("value","context",t)}function kt(e){const t=bt(e);return new Function("value","context",t)}function $t(e){const t=bt(e);return new Function("value","context",t)}function jt(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function xt(e,t){const n=t?.version||"latest",r=t?.timeout||1e4,o=new AbortController,i=setTimeout(()=>o.abort(),r),a=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:a,...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||{},i=n.hints,a=n.hintKeys??(i?Object.keys(i):[]),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},...i&&Object.keys(i).length>0?{hints:i}:{},hintKeys:a,exampleSummaries:s}}(e,n,await o.json())}const r=`https://cdn.jsdelivr.net/npm/${e}@${n}`,o=await At(`${r}/package.json`,a,s);return function(e,t,n,r){const o=r.$meta||{},i=r.schemas||{},a=r.examples||{},s=r.hints,c=s?Object.keys(s):[],l=[],u=a.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:jt(o.platform),schemas:i,examples:a,...f?{docs:f}:{},...p?{source:p}:{},...s&&Object.keys(s).length>0?{hints:s}:{},hintKeys:c,exampleSummaries:l}}(e,n,o,await At(`${r}/dist/walkerOS.json`,a,s))}finally{clearTimeout(i)}}async function At(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 Ot(e,t){const n=await xt(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 St(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function Et(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 _t(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function Nt(e){if(void 0===e||"*"===e)return()=>!0;if("and"in e){const t=e.and.map(Nt);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(Nt);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value: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=ge(e,t),r=i(n);return o?!r:r}}(e)}function Tt(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&("match"in e||"next"in e||"one"in e||"many"in e)}function Ct(e){return Array.isArray(e)&&e.length>0&&e.every(e=>Tt(e))}function It(e){return e.map(e=>{if("string"==typeof e)return{match:()=>!0,next:{type:"static",value:e}};if(Array.isArray(e))return{match:()=>!0,next:zt(e)??{type:"chain",value:[]}};const t=e;return{match:t.match?Nt(t.match):()=>!0,next:zt(t)??{type:"chain",value:[]}}})}function zt(e){if(null==e)return;if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(Ct(e))return zt({one:e});if(e.every(e=>"string"==typeof e))return{type:"chain",value:e};const t=[];for(const n of e){const e=zt(n);void 0!==e&&t.push(e)}if(0===t.length)return;return{type:"sequence",value:t}}const t=e;if("next"in t&&void 0!==t.next)return t.match?{type:"gate",match:Nt(t.match),next:zt(t.next)}:zt(t.next);if("one"in t&&t.one){const e=It(t.one);return t.match?{type:"gate",match:Nt(t.match),next:{type:"one",routes:e}}:{type:"one",routes:e}}if("many"in t&&t.many){const e=It(t.many);return t.match?{type:"gate",match:Nt(t.match),next:{type:"many",routes:e}}:{type:"many",routes:e}}return t.match?{type:"gate",match:Nt(t.match)}:void 0}var Pt=new WeakMap;function Mt(e,t={}){if(null==e)return[];let n;if("object"==typeof e){const t=Pt.get(e);t?n=t:(n=zt(e),n&&Pt.set(e,n))}else n=zt(e);if(!n)return[];const r=Rt(n,t);return void 0===r?[]:Array.isArray(r)?r:[r]}function Rt(e,t={}){if(e){if("static"===e.type)return e.value;if("chain"===e.type)return e.value;if("gate"===e.type){if(!e.match(t))return;return Rt(e.next,t)}if("sequence"===e.type){const n=[];for(const r of e.value){const e=Rt(r,t);void 0!==e&&(Array.isArray(e)?n.push(...e):n.push(e))}return n.length>0?n:void 0}if("many"===e.type){const n=[];for(const r of e.routes){if(!r.match(t))continue;const e=Rt(r.next,t);void 0!==e&&(Array.isArray(e)?n.push(...e):n.push(e))}return n.length>0?n:void 0}for(const n of e.routes)if(n.match(t))return Rt(n.next,t)}}function Dt(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function Ft(e){return{stop:e.stop??!1,storeId:e.store,namespace:e.namespace,rules:e.rules.map(e=>({match:e.match?Nt(e.match):()=>!0,key:e.key,ttl:e.ttl,update:e.update}))}}async function Ut(e,t,n,r){const o=e.rules.find(e=>e.match(n));if(!o)return null;const i=o.key.map(e=>String(ge(n,e)??""));if(i.every(e=>""===e))return null;const a=i.join(":"),s=r??e.namespace,c=s?`${s}:${a}`:a,l=await t.get(c);return void 0!==l?{status:"HIT",key:c,value:l,rule:o}:{status:"MISS",key:c,rule:o}}function Zt(e,t,n,r){e.set(t,n,1e3*r)}async function Wt(e,t,n,r){if(!t)return e;let o=e;for(const[e,i]of Object.entries(t)){o=ye(o,e,await Ke(n,i,{collector:r}))}return o}function Ht(e){return oe(e)?e:[e]}async function Lt(e,t,n,r){let o=n;for(const n of e)await We(async()=>{const e=t(n.store);if(!e)return;const i=await Ke(o,n.key,{collector:r,event:o});if(!de(i))return;const a=n.store?i:`state:${i}`;if("set"===n.mode){const t=await Ke(o,n.value,{collector:r,event:o});if(!se(t))return;await e.set(a,t)}else{const t=de(s=n.value)?s:fe(s)&&de(s.key)?s.key:void 0;if(!t)return;const r=await e.get(a);if(!se(r))return;o=ye(o,t,r)}var s},e=>{r.logger?.error?.("[state] operation failed",e)})();return o}var Kt={Source:["code","package","import","before","next","cache","state"],Transformer:["code","package","import","before","next","cache","state","mapping"],Destination:["code","package","import","before","next","cache","state"],Store:["code","package","import","cache"]},Vt=["config","env","validate","variables","examples","disabled","id","logger","mock","chainMocks"],qt={Source:["primary"],Transformer:[],Destination:[],Store:[]},Bt=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function Jt(e,t){const n=function(e){return new Set([...Kt[e],...Vt,...qt[e]])}(t);for(const r of Object.keys(e))if(!n.has(r))return{ok:!1,code:"UNKNOWN_KEY",key:r,reason:`Unknown key "${r}" on ${t}. Allowed: ${[...n].sort().join(", ")}.`};const r=void 0!==e.package,o=void 0!==e.import,i=void 0!==e.code;return i&&"string"==typeof e.code?{ok:!1,code:"OBSOLETE_CODE_STRING",key:"code",reason:`code: "<name>" is no longer supported. Use import: "${e.code}" with the package field instead.`}:i&&("object"!=typeof e.code&&"function"!=typeof e.code||null===e.code||Array.isArray(e.code))?{ok:!1,code:"INVALID_CODE_SHAPE",key:"code",reason:"code must be an object ({ push, type?, init? }) or a resolved function value."}:i&&r?{ok:!1,code:"CONFLICT",key:"package",reason:"Cannot specify both `code` and `package`. Use one or the other."}:i&&o?{ok:!1,code:"CONFLICT",key:"import",reason:"Cannot specify both `code` and `import`."}:o&&!r?{ok:!1,code:"MISSING_PACKAGE",key:"import",reason:"`import` requires `package` to be set."}:!o||"string"==typeof e.import&&Bt.test(e.import)?{ok:!0}:{ok:!1,code:"INVALID_IMPORT",key:"import",reason:`import must match ${Bt.source}. Got: ${JSON.stringify(e.import)}.`}}function Gt(e,t){return"Transformer"===t&&(void 0===e.code&&void 0===e.package&&void 0===e.import&&(void 0!==e.before||void 0!==e.next||void 0!==e.cache||void 0!==e.state||void 0!==e.mapping))}function Xt(e){return 0===e.length?"// no output":e.map(Yt).join(";\n\n")}function Yt(e){const[t,...n]=e,r=n.map(Qt).join(", ");return"return"===t?r?`return ${r}`:"return":`${t}(${r})`}function Qt(e){return void 0===e?"undefined":null===e?"null":"function"==typeof e?"[Function]":JSON.stringify(e,null,2)}export{n as Cache,r as Collector,S as Const,i as Context,a as Destination,B as ENV_MARKER_PREFIX,c as Elb,He as FatalError,O as Hint,l as Hooks,f as Level,$ as Lifecycle,u as Logger,p as Mapping,A as Matcher,d as On,L as REF_CODE_PREFIX,U as REF_CONTRACT,F as REF_ENV,Z as REF_FLOW,H as REF_SECRET,W as REF_STORE,R as REF_VAR_FULL,D as REF_VAR_INLINE,y as Request,Kt as STEP_OPERATIVE_FIELDS,x as Simulation,h as Source,b as Store,m as Transformer,k as Trigger,j as WalkerOS,N as anonymizeIP,Lt as applyState,Wt as applyUpdate,ne as assign,_ as branch,Dt as buildCacheContext,Ue as castToProperty,we as castValue,Ut as checkCache,me as clone,Ft as compileCache,Nt as compileMatcher,Ht as compileState,pt as createBatchedPoster,$e as createDestination,Ae as createEvent,E as createIngest,Me as createLogger,Qe as createMockContext,Ye as createMockLogger,_t as createRespond,ct as createTelemetryObserver,Te as debounce,je as deepMerge,Ee as defaultClickIds,he as deleteByPath,ft as emitStep,xt as fetchPackage,Ot as fetchPackageSchema,Fe as filterValues,be as flattenIncludeSections,Xt as formatOut,mt as getBrowser,gt as getBrowserVersion,ge as getByPath,vt as getDeviceType,Oe as getEvent,Q as getFlowSettings,ke as getGrantedConsent,rt as getHeaders,Se as getId,Le as getMappingEvent,Ke as getMappingValue,_e as getMarketingParameters,Mt as getNextSteps,yt as getOS,ht as getOSVersion,ee as getPlatform,xe as getSpanId,re as isArguments,oe as isArray,ie as isBoolean,ae as isCommand,se as isDefined,ce as isElementOrDocument,le as isFunction,ue as isNumber,fe as isObject,Gt as isPathStepEntry,De as isPropertyType,Ct as isRouteArray,Tt as isRouteConfigEntry,pe as isSameType,lt as isSampled,de as isString,Et as mcpError,St as mcpResult,z as mergeContractSchemas,Je as mergeMappingRule,Ge as mockEnv,Y as packageNameToVariable,dt as parseUserAgent,qe as processEventMapping,et as requestToData,tt as requestToParameter,I as resolveContracts,ot as resolveSetup,ut as resolveTelemetryOptions,V as scanFlowRefs,ye as setByPath,o as stepId,Zt as storeCache,Ce as throttle,T as throwError,nt as transformData,Xe as traverseEnv,it as trim,Ze as tryCatch,We as tryCatchAsync,at as useHooks,Jt as validateStepEntry,G as walkPath,wt as wrapCondition,kt as wrapFn,$t as wrapValidate};//# sourceMappingURL=index.mjs.map