@walkeros/core 4.1.1-next-1779822275564 → 4.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.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={},O={},A={},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,U=/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,Z=/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/,W=/^\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.([a-zA-Z0-9_.]+))?$/,F=/^\$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(Z);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(W);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(U,(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 Oe(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 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(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 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 Ue(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function Ze(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 We=class e extends Error{constructor(t,n){super(t,n),this.name="FatalError",Object.setPrototypeOf(this,e.prototype)}};async function Fe(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 Ze(Le,e=>{if(e instanceof We)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 Ze(a,e=>{if(e instanceof We)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 Ze(c,e=>{if(e instanceof We)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 Ze(d,e=>{if(e instanceof We)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 Fe(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 Ue(()=>{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=t.level??"standard";if("off"===n)return()=>{};const r=t.sample??1,o=t.includeIn??"trace"===n,i=t.includeOut??"trace"===n,a=t.includeMappingKey??"trace"===n;return function(t){if(t.eventId&&!it(t.eventId,r))return;const n={...t};o||delete n.inEvent,i||delete n.outEvent,a||delete n.mappingKey;try{e(n)}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){for(const n of e.observers)try{n(t)}catch{}}function ut(e){const t=e.batchMs??50,n=e.batchSize??50,r=e.fetch??((e,t)=>globalThis.fetch(e,t)),o=e.onError??(()=>{});let i=[],a=null;function s(){if(0===i.length)return;const t=i;i=[],a&&(clearTimeout(a),a=null),Promise.resolve().then(()=>r(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&&o(new Error(`Observer responded ${e.status}`))}).catch(e=>{o(e)})}return e=>{i.push(e),i.length>=n?s():null===a&&(a=setTimeout(s,t))}}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 Ot(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function At(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 Ut(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 Zt={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"]},Wt=["config","env","validate","variables","examples","disabled","id","logger","mock","chainMocks"],Ft={Source:["primary"],Transformer:[],Destination:[],Store:[]},Ht=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function Lt(e,t){const n=function(e){return new Set([...Zt[e],...Wt,...Ft[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,We as FatalError,A as Hint,l as Hooks,f as Level,$ as Lifecycle,u as Logger,p as Mapping,O as Matcher,d as On,L as REF_CODE_PREFIX,Z as REF_CONTRACT,U as REF_ENV,W as REF_FLOW,H as REF_SECRET,F as REF_STORE,R as REF_VAR_FULL,D as REF_VAR_INLINE,y as Request,Zt 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,Ut 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,Ae 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,Oe as getId,Fe 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,At as mcpError,Ot 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,Ue as tryCatch,Ze 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:";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