@walkeros/core 4.2.1-next-1781682752679 → 4.2.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/CHANGELOG.md +11 -1
- package/dist/dev.d.mts +6 -2
- package/dist/dev.d.ts +6 -2
- package/dist/dev.js +1 -1
- package/dist/dev.js.map +1 -1
- package/dist/dev.mjs +1 -1
- package/dist/dev.mjs.map +1 -1
- package/dist/index.d.mts +17 -10
- package/dist/index.d.ts +17 -10
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.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={},u={},f={};t(f,{Level:()=>l});var l=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(l||{}),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}async function k(e,t){return await e.get(t)}t(b,{getStore:()=>w,getStoreValue:()=>k});var $={},j={},x={},A={},O={},S={},_={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function E(e){return{_meta:{hops:0,path:[e]}}}function N(e,t){return{event:e,next:t}}function C(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function T(e){throw new Error(String(e))}var I=new Set(["description","examples","title","$comment"]);function z(e,t){const n=!1!==t?.stripAnnotations,r={},o=new Set;function i(t){if(r[t])return r[t];o.has(t)&&T(`Circular extend chain detected: ${[...o,t].join(" → ")}`);const a=e[t];a||T(`Contract "${t}" not found`),o.add(t);let s={};if(a.extend){s=function(e,t){const n={};void 0===e.tagging&&void 0===t.tagging||(n.tagging=t.tagging??e.tagging);void 0===e.description&&void 0===t.description||(n.description=t.description??e.description);e.schema&&t.schema?n.schema=P(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?P(t,a):{...t||a}}}n.events=r}return n}(i(a.extend),a)}else s={...a};if(delete s.extend,s.events&&(s.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=P(o,i));const a=e["*"]?.[r];a&&"*"!==r&&(o=P(o,a));const s=e[n]?.["*"];s&&"*"!==r&&(o=P(o,s));const c=e[n]?.[r];c&&(o=P(o,c)),t[n][r]=o}}e["*"]&&(t["*"]={...e["*"]});return t}(s.events)),s.events&&n){const e={};for(const[t,n]of Object.entries(s.events)){e[t]={};for(const[r,o]of Object.entries(n))e[t][r]=M(o)}s.events=e}return o.delete(t),r[t]=s,s}for(const t of Object.keys(e))i(t);return r}function P(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])]:R(o)&&R(i)?n[r]=P(o,i):n[r]=i}return n}function M(e){const t={};for(const[n,r]of Object.entries(e))I.has(n)||(null===r||"object"!=typeof r||Array.isArray(r)?t[n]=r:t[n]=M(r));return t}function R(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var U=/^\$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,Z=/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/,B=/^\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.([a-zA-Z0-9_.]+))?$/,W=/^\$store\.([a-zA-Z_][a-zA-Z0-9_]*)$/,L=/^\$secret\.([A-Z0-9_]+)$/,H="$code:",K=/\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)/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 J="__WALKEROS_ENV:",G="__WALKEROS_SECRET:";function X(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 Y(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 Q(e,t,n,r,o,i){if("string"==typeof e){const a=e.match(U);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 u=i??new Set;if(u.has(s)){T(`Cyclic $var reference: ${[...u,s].join(" -> ")}`)}let f;u.add(s);try{f=Q(t[s],t,n,r,o,u)}finally{u.delete(s)}return c&&(f=Y(f,c,`$var.${s}`)),f}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=Y(n,t,`$contract.${e}`)),n}const c=e.match(B);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?.(X(t,r,"unknown-flow")),e;T(`Flow "${t}" not found in $flow.${t}`)}let s=a;if(r)if(i){try{s=Y(s,r,`$flow.${t}`)}catch{return n?.onWarning?.(X(t,r,"missing-key")),e}if(null==s||""===s)return n?.onWarning?.(X(t,r,"missing-key")),e}else s=Y(s,r,`$flow.${t}`);return s}const u=e.match(L);if(u){const e=u[1];if(n?.deferred)return`${G}${e}`;T(`Secret "$secret.${e}" cannot be used in a web flow — secrets are never sent to the browser. Use a server flow.`)}let f=e.replace(D,(e,a)=>{const s=a.split("."),c=s[0],u=s.slice(1).join(".");void 0===t[c]&&T(`Variable "${c}" not found`);const f=i??new Set;if(f.has(c)){T(`Cyclic $var reference: ${[...f,c].join(" -> ")}`)}let l;f.add(c);try{l=Q(t[c],t,n,r,o,f)}finally{f.delete(c)}if(u&&(l=Y(l,u,`$var.${c}`)),null===l||"string"!=typeof l&&"number"!=typeof l&&"boolean"!=typeof l){T(`Variable "${a}" resolves to non-scalar (${Array.isArray(l)?"array":typeof l}) and cannot be inlined into a string. Use it as a whole-string reference: "$var.${a}"`)}return String(l)});return f=f.replace(F,(e,t,r)=>n?.deferred?void 0!==r?`${J}${t}:${r}`:`${J}${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`)),f}if(Array.isArray(e))return e.map(e=>Q(e,t,n,r,o,i));if(null!==e&&"object"==typeof e){const a={};for(const[s,c]of Object.entries(e))a[s]=Q(c,t,n,r,o,i);return a}return e}function ee(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 te(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=Q(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=z(Q(e.contract,o,n,void 0,r))}if(o.config){const a=q(e.variables,t.variables);o.config=Q(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),u=Q(s.config,c,n,i,r),f=Q(s.env,c,n,i,r);o.sources[a]={package:s.package,import:s.import,config:u,env:f,primary:s.primary,variables:s.variables,before:s.before,next:s.next,cache:s.cache,code:s.code}}if(o.destinations)for(const[a,s]of Object.entries(o.destinations)){const c=q(e.variables,t.variables,s.variables),u=Q(s.config,c,n,i,r),f=Q(s.env,c,n,i,r);o.destinations[a]={package:s.package,import:s.import,config:u,env:f,variables:s.variables,before:s.before,next:s.next,cache:s.cache,code:s.code}}if(o.stores)for(const[a,s]of Object.entries(o.stores)){const c=q(e.variables,t.variables,s.variables),u=Q(s.config,c,n,i,r),f=Q(s.env,c,n,i,r);o.stores[a]={package:s.package,import:s.import,config:u,env:f,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),u=Q(s.config,c,n,i,r),f=Q(s.env,c,n,i,r);o.transformers[a]={package:s.package,import:s.import,config:u,env:f,variables:s.variables,before:s.before,next:s.next,cache:s.cache,code:s.code}}if(o.collector){const a=q(e.variables,t.variables),s=Q(o.collector,a,n,i,r);o.collector=s}return o}(e,c,n,a)}finally{o.delete(t),i.pop()}}function ne(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 re={merge:!0,shallow:!0,extend:!0};function oe(e,t={},n={}){n={...re,...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 ie(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function ae(e){return Array.isArray(e)}function se(e){return"boolean"==typeof e}function ce(e){return"walker"===e}function ue(e){return void 0!==e}function fe(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function le(e){return"function"==typeof e}function pe(e){return"number"==typeof e&&!Number.isNaN(e)}function de(e){return"object"==typeof e&&null!==e&&!ae(e)&&"[object Object]"===Object.prototype.toString.call(e)}function me(e,t){return typeof e==typeof t}function ge(e){return"string"==typeof e}function ye(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]=ye(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(ye(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 he(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&ae(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=he(e,t,n);i.push(r)}return i}if(o=de(o)||ae(o)?o[t]:void 0,void 0===o)break}return ue(o)?o:n}function ve(e,t,n){if(!de(e))return e;const r=ye(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 be(e,t){if(!de(e)&&!ae(e))return e;const n=ye(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(ae(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(!de(t)&&!ae(t))return n;o=t}}else if(i)delete o[t];else{const e=o[t];if(!de(e)&&!ae(e))return n;o=e}}return n}var we={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 ke(e,t){const n={},r=t.includes("all")?Object.keys(we):t;for(const t of r){const r=we[t];if(!r)continue;const o=r(e);if(de(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 $e(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function je(e,t={},n={}){const 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 xe(e,t){const n={...e};return n.config=oe(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=oe(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=oe(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function Ae(e,t){if(!de(t))return e;for(const n of Object.keys(t)){const r=t[n];void 0!==r&&(de(r)&&de(e[n])?Ae(e[n],r):e[n]=r)}return e}function Oe(){let e="";for(let t=0;t<16;t++)e+=(16*Math.random()|0).toString(16);return e}function Se(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=oe({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],not:void 0},context:{dev:["test",1]},globals:{lang:"elb"},custom:{completely:"random"},user:{id:"us3r",device:"c00k13",session:"s3ss10n"},nested:[{entity:"child",data:{is:"subordinated"}}],consent:{functional:!0},id:e.id||Oe(),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 _e(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 Se({...{"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 Ee(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 Ne=[{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 Ce(e,t={},n=[]){const r={};Object.entries(oe({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(Ne.map(e=>e.param));return[...Ne.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):Ne,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 Te(e,t){return"number"==typeof e?{wait:e}:e?{wait:e.wait??t,size:e.size,age:e.age}:{wait:t}}function Ie(e,t=1e3,n=!1){const{wait:r,size:o,age:i}=Te(t,1e3);let a,s,c=null,u=null,f=!1,l=[],p=0;const d=()=>{c&&(clearTimeout(c),c=null),u&&(clearTimeout(u),u=null),p=0,s=void 0},m=()=>{const t=s,n=l;if(d(),l=[],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&&!f;if(s=t,p+=1,l.push(d),c&&clearTimeout(c),c=setTimeout(()=>{c=null,n&&!f||m()},r),void 0===i||u||(u=setTimeout(()=>{u=null,m()},i)),void 0!==o&&p>=o)m();else if(g){f=!0,a=e(...t);const n=l;l=[],n.forEach(e=>e(a))}});return g.flush=()=>s||0!==l.length?new Promise(e=>{l.push(e),m()}):Promise.resolve(a),g.cancel=()=>{const e=l;l=[],d(),a=void 0,e.forEach(e=>e(void 0))},g.size=()=>p,g}function ze(e,t=1e3){const{wait:n}=Te(t,1e3);let r=null;return function(...t){if(null===r)return r=setTimeout(()=>{r=null},n),e(...t)}}function Pe(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function Me(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=Pe(e)):n=e,void 0!==t&&(t instanceof Error?r.error=Pe(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=Pe(r.error))):r.value=t),{message:n,context:r}}var Re=(e,t,n,r)=>{const o=`${l[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 Ue(e={}){return De({level:void 0!==e.level?function(e){return"string"==typeof e?l[e]:e}(e.level):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]})}function De(e){const{level:t,handler:n,jsonHandler:r,scope:o}=e,i=(e,r,i)=>{if(e<=t){const t=Me(r,i);n?n(e,t.message,t.context,o,Re):Re(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=Me(e,t);throw n?n(0,r.message,r.context,o,Re):Re(0,r.message,r.context,o),new Error(r.message)},json:e=>{r?r(e):console.log(JSON.stringify(e,null,2))},scope:e=>De({level:t,handler:n,jsonHandler:r,scope:[...o,e]})}}function Fe(e){return se(e)||ge(e)||pe(e)||!ue(e)||ae(e)&&e.every(Fe)||de(e)&&Object.values(e).every(Fe)}function Ze(e){return se(e)||ge(e)||pe(e)?e:ie(e)?Ze(Array.from(e)):ae(e)?e.map(e=>Ze(e)).filter(e=>void 0!==e):de(e)?Object.entries(e).reduce((e,[t,n])=>{const r=Ze(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function Be(e){return Fe(e)?e:void 0}function We(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function Le(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 Ke(e,t,n){const[r,o]=(e.name||"").split(" ");if(!t||!r||!o)return{};let i,a="",s=r,c=o;const u=t=>{if(!t)return;return(ae(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:de(e)&&e.consent||n.consent};return Boolean(t.condition(e,r))})};t[s]||(s="*");const f=t[s];return f&&(f[c]||(c="*"),i=u(f[c])),i||(s="*",c="*",i=u(t[s]?.[c])),i&&(a=`${s} ${c}`),{eventMapping:i,mappingKey:a}}async function Ve(e,t={},n={}){if(!ue(e))return;const r=de(e)&&e.consent||n.consent||n.collector?.consent,o=n.event??(de(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=ae(t)?t:[t];for(const t of a){const r=await Le(qe,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(ue(r))return r}}async function qe(e,t,n){return(ae(t)?t:[t]).reduce(async(t,r)=>{const o=await t;if(o)return o;const i=ge(r)?{key:r}:r;if(!Object.keys(i).length)return;const{condition:a,consent:s,fn:c,key:u,loop:f,map:l,set:p,validate:d,value:m}=i,g={...n,mapping:r};if(a&&!await Le(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&&!je(s,g.consent))return m;let y=ue(m)?m:e;if(c&&(y=await Le(c,e=>{if(e instanceof He)throw e;g.logger.error("mapping fn failed",{event:g.event,error:e})})(e,g)),u&&(y=he(e,u,m)),f){const[t,n]=f,r="this"===t?[e]:await Ve(e,t,g);ae(r)&&(y=(await Promise.all(r.map(e=>Ve(e,n,g)))).filter(ue))}else l?y=await Object.entries(l).reduce(async(t,[n,r])=>{const o=await t,i=await Ve(e,r,g);return ue(i)&&(o[n]=i),o},Promise.resolve({})):p&&(y=await Promise.all(p.map(t=>qe(e,t,g))));d&&!await Le(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=Be(y);return ue(h)?h:Be(m)},Promise.resolve(void 0))}async function Je(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await Ve(e,r,{collector:n,event:e});e=ve(e,t,o)}));const{eventMapping:r,mappingKey:o}=await Ke(e,t.mapping,n);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await Ve(e,r,{collector:n,event:e});e=ve(e,t,o)}));let i=t.data&&await Ve(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 Ve(e,r.data,{collector:n,event:e});i=de(i)&&de(t)?oe(i,t):t}}const s=r?.include??t.include;if(s&&s.length>0){const t=ke(e,s);Object.keys(t).length>0&&(i=de(i)?oe(t,i):i??t)}if(r?.remove&&de(i))for(const e of r.remove)i=be(i,e);return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1,silent:a}}function Ge(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];de(r)&&de(o)?Ge(o,r):e[n]=r}return e}function Xe(e,t){if(void 0===t.extend&&void 0===t.remove)return ye(t);const n={...ye(e)};if(t.extend){Ge(n,{...t.extend})}return delete n.extend,t.remove?n.remove=[...t.remove]:delete n.remove,n}function Ye(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 Qe(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 et(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=et();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 tt(e={}){return{collector:{},config:{},env:{},logger:et(),id:"test",ingest:E("test"),...e}}function nt(e){const t=String(e),n=t.split("?")[1]||t;return We(()=>{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(ae(o)){const a=parseInt(t,10);i?o[a]=$e(e):(o[a]=o[a]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[a])}else de(o)&&(i?o[t]=$e(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function rt(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(ae(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):de(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 ot(e){return void 0===e||me(e,"")?e:JSON.stringify(e)}function it(e={}){return oe({"Content-Type":"application/json; charset=utf-8"},e)}function at(e,t){return!1===e||void 0===e?null:!0===e?t:{...t,...e}}function st(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function ct(e,t,n,r){const o=e;return function(...e){let i;const a="pre"+t,s="post"+t,c=n[a],u=n[s],f=(e,t)=>{r?r.warn(e,{error:t}):console.warn(e,t)};if(c)try{i=c({fn:o},...e)}catch(t){f(`Hook ${String(a)} failed, falling back to original function`,t),i=o(...e)}else i=o(...e);if(u)try{i=u({fn:o,result:i},...e)}catch(e){f(`Hook ${String(s)} failed, keeping original result`,e)}return i}}function ut(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 ft(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&&!ut(t.eventId,a))return;const s=r.includeIn??"trace"===o,c=r.includeOut??"trace"===o,u=r.includeMappingKey??"trace"===o,f={...t};s||delete f.inEvent,c||delete f.outEvent,u||delete f.mappingKey,"trace"!==o&&f.error?.message&&f.error.message.length>256&&(f.error={...f.error,message:f.error.message.slice(0,256)+"…"});try{e(f)}catch{}}}function lt(e,t){return ut(e,t)}function pt(e){const t=e.now??(()=>Date.now()),{traceUntil:n}=e;if("string"==typeof n&&n.length>0){const r=Date.parse(n);if(!Number.isNaN(r)&&r>t())return{flowId:e.flowId,level:"trace",includeIn:!0,includeOut:!0,sample:1}}const r=e.observe?.level??"standard";if("off"===r)return null;const o=e.observe?.sample??1;return{flowId:e.flowId,level:r,sample:o}}var dt=null;function mt(){return dt}function gt(e){dt=e}function yt(e,t){if(0===e.observers.size)return;const n=Array.from(e.observers);for(const e of n)try{e(t)}catch{}}function ht(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 u(){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?u():null===c&&(c=setTimeout(u,n))}}function vt(e){return e?{userAgent:e,browser:bt(e),browserVersion:wt(e),os:kt(e),osVersion:$t(e),deviceType:jt(e)}:{}}function bt(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 wt(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 kt(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 $t(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function jt(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 xt(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function At(e){const t=xt(e);return new Function("value","context",t)}function Ot(e){const t=xt(e);return new Function("value","context",t)}function St(e){const t=xt(e);return new Function("value","context",t)}function _t(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function Et(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 Nt(`${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):[],u=[],f=a.step||{};for(const[e,t]of Object.entries(f)){const n=t,r={name:e};"string"==typeof n?.description&&(r.description=n.description),u.push(r)}const l="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:_t(o.platform),schemas:i,examples:a,...l?{docs:l}:{},...p?{source:p}:{},...s&&Object.keys(s).length>0?{hints:s}:{},hintKeys:c,exampleSummaries:u}}(e,n,o,await Nt(`${r}/dist/walkerOS.json`,a,s))}finally{clearTimeout(i)}}async function Nt(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 Ct(e,t){const n=await Et(e,t);return{packageName:n.packageName,version:n.version,type:n.type,platform:n.platform,schemas:n.schemas,examples:n.examples,...n.hints?{hints:n.hints}:{}}}function Tt(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function It(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 zt(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function Pt(e){if(void 0===e||"*"===e)return()=>!0;if("and"in e){const t=e.and.map(Pt);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(Pt);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value:r,not:o}=e,i=function(e,t){switch(e){case"eq":return e=>String(e??"")===t;case"contains":return e=>String(e??"").includes(t);case"prefix":return e=>String(e??"").startsWith(t);case"suffix":return e=>String(e??"").endsWith(t);case"regex":{const e=new RegExp(t);return t=>e.test(String(t??""))}case"gt":{const e=Number(t);return t=>Number(t)>e}case"lt":{const e=Number(t);return t=>Number(t)<e}case"exists":return e=>null!=e}}(n,r);return e=>{const n=he(e,t),r=i(n);return o?!r:r}}(e)}function Mt(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&("match"in e||"next"in e||"one"in e||"many"in e)}function Rt(e){return Array.isArray(e)&&e.length>0&&e.every(e=>Mt(e))}function Ut(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:Dt(e)??{type:"chain",value:[]}};const t=e;return{match:t.match?Pt(t.match):()=>!0,next:Dt(t)??{type:"chain",value:[]}}})}function Dt(e){if(null==e)return;if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(Rt(e))return Dt({one:e});if(e.every(e=>"string"==typeof e))return{type:"chain",value:e};const t=[];for(const n of e){const e=Dt(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:Pt(t.match),next:Dt(t.next)}:Dt(t.next);if("one"in t&&t.one){const e=Ut(t.one);return t.match?{type:"gate",match:Pt(t.match),next:{type:"one",routes:e}}:{type:"one",routes:e}}if("many"in t&&t.many){const e=Ut(t.many);return t.match?{type:"gate",match:Pt(t.match),next:{type:"many",routes:e}}:{type:"many",routes:e}}return t.match?{type:"gate",match:Pt(t.match)}:void 0}var Ft=new WeakMap;function Zt(e,t={}){if(null==e)return[];let n;if("object"==typeof e){const t=Ft.get(e);t?n=t:(n=Dt(e),n&&Ft.set(e,n))}else n=Dt(e);if(!n)return[];const r=Bt(n,t);return void 0===r?[]:Array.isArray(r)?r:[r]}function Bt(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 Bt(e.next,t)}if("sequence"===e.type){const n=[];for(const r of e.value){const e=Bt(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=Bt(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 Bt(n.next,t)}}var Wt="__walkeros_cache_v__",Lt="__walkeros_cache_exp__";function Ht(e,t,n=Date.now){const r={[Wt]:e};return void 0!==t&&(r[Lt]=n()+t),r}function Kt(e,t=Date.now){if(void 0===e)return;if(null===(n=e)||"object"!=typeof n||Array.isArray(n)||!(Wt in e))return{value:e};var n;const r=e[Lt];return"number"==typeof r&&t()>r?{expired:!0}:{value:e[Wt]}}var Vt="__walkeros_cache__",qt=class extends Error{constructor(e,t){super(e,t),this.name="StoreCodecError"}};function Jt(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function Gt(e){if(Buffer.isBuffer(e))return{[Vt]:"buffer",d:e.toString("base64")};if(e instanceof Uint8Array)return{[Vt]:"buffer",d:Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64")};if(e instanceof ArrayBuffer)return{[Vt]:"buffer",d:Buffer.from(e).toString("base64")};if(Array.isArray(e))return e.map(Gt);if(Jt(e)){if(Vt in e){const t={};for(const[n,r]of Object.entries(e))t[n]=Gt(r);return{[Vt]:"escape",d:t}}const t={};for(const[n,r]of Object.entries(e))t[n]=Gt(r);return t}return e}function Xt(e,t){if(Jt(e)){if(Vt in e){const n=e[Vt],r=e.d;if("buffer"===n&&"string"==typeof r)return t(Buffer.from(r,"base64"));if("escape"===n&&Jt(r)){const e={};for(const[n,o]of Object.entries(r))e[n]=Xt(o,t);return e}}const n={};for(const[r,o]of Object.entries(e))n[r]=Xt(o,t);return n}return Array.isArray(e)?e.map(e=>Xt(e,t)):e}function Yt(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function Qt(e){return null===e||"string"==typeof e||"number"==typeof e||"boolean"==typeof e||e instanceof Uint8Array||(Array.isArray(e)?e.every(e=>void 0===e||Qt(e)):!!Jt(e)&&Object.values(e).every(e=>void 0===e||Qt(e)))}function en(e){let t;try{t=JSON.stringify(Gt(e))}catch(e){throw new qt("Failed to serialize store value (likely a cyclic structure).",{cause:e})}return new Uint8Array(Buffer.from(t,"utf8"))}function tn(e){const t="string"==typeof e?e:Buffer.from(e).toString("utf8"),n=Xt(JSON.parse(t),Yt);if(!Qt(n))throw new qt("Restored value is not a valid StoreValue.");return n}function nn(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function rn(e){return{stop:e.stop??!1,storeId:e.store,namespace:e.namespace,rules:e.rules.map(e=>({match:e.match?Pt(e.match):()=>!0,key:e.key,ttl:e.ttl,update:e.update}))}}async function on(e,t,n,r){const o=e.rules.find(e=>e.match(n));if(!o)return null;const i=o.key.map(e=>String(he(n,e)??""));if(i.every(e=>""===e))return null;const a=i.join(":"),s=r??e.namespace,c=s?`${s}:${a}`:a,u=Kt(await t.get(c));if(void 0===u)return{status:"MISS",key:c,rule:o};if("expired"in u){try{await t.delete(c)}catch{}return{status:"MISS",key:c,rule:o}}return{status:"HIT",key:c,value:u.value,rule:o}}function an(e,t,n,r){if(!Qt(n))return;const o=1e3*r,i=e.set(t,Ht(n,o),o);i instanceof Promise&&i.catch(()=>{})}async function sn(e,t,n,r){if(!t)return e;let o=e;for(const[e,i]of Object.entries(t)){o=ve(o,e,await Ve(n,i,{collector:r}))}return o}function cn(e){return ae(e)?e:[e]}async function un(e,t,n,r){let o=n;for(const n of e)await Le(async()=>{const e=t(n.store);if(!e)return;const i=await Ve(o,n.key,{collector:r,event:o});if(!ge(i))return;const a=n.store?i:`state:${i}`;if("set"===n.mode){const t=await Ve(o,n.value,{collector:r,event:o});if(!ue(t))return;await e.set(a,t)}else{const t=ge(s=n.value)?s:de(s)&&ge(s.key)?s.key:void 0;if(!t)return;const r=await e.get(a);if(!ue(r))return;o=ve(o,t,r)}var s},e=>{if(e instanceof He)throw e;r.logger?.error?.("[state] operation failed",e)})();return o}var fn={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"]},ln=["config","env","variables","examples","disabled","id","logger","mock","chainMocks"],pn={Source:["primary"],Transformer:[],Destination:[],Store:[]},dn=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function mn(e,t){const n=function(e){return new Set([...fn[e],...ln,...pn[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&&dn.test(e.import)?{ok:!0}:{ok:!1,code:"INVALID_IMPORT",key:"import",reason:`import must match ${dn.source}. Got: ${JSON.stringify(e.import)}.`}}function gn(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 yn(e){return 0===e.length?"// no output":e.map(hn).join(";\n\n")}function hn(e){const[t,...n]=e,r=n.map(vn).join(", ");return"return"===t?r?`return ${r}`:"return":`${t}(${r})`}function vn(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,_ as Const,i as Context,a as Destination,J as ENV_MARKER_PREFIX,c as Elb,He as FatalError,S as Hint,u as Hooks,l as Level,j as Lifecycle,f as Logger,p as Mapping,O as Matcher,d as On,H as REF_CODE_PREFIX,Z as REF_CONTRACT,F as REF_ENV,B as REF_FLOW,L as REF_SECRET,W as REF_STORE,U as REF_VAR_FULL,D as REF_VAR_INLINE,y as Request,G as SECRET_MARKER_PREFIX,fn as STEP_OPERATIVE_FIELDS,A as Simulation,h as Source,b as Store,qt as StoreCodecError,m as Transformer,$ as Trigger,x as WalkerOS,C as anonymizeIP,un as applyState,sn as applyUpdate,oe as assign,N as branch,nn as buildCacheContext,Be as castToProperty,$e as castValue,on as checkCache,ye as clone,rn as compileCache,Pt as compileMatcher,cn as compileState,ht as createBatchedPoster,xe as createDestination,Se as createEvent,E as createIngest,Ue as createLogger,tt as createMockContext,et as createMockLogger,zt as createRespond,ft as createTelemetryObserver,Ie as debounce,Ae as deepMerge,Ne as defaultClickIds,be as deleteByPath,tn as deserializeStoreValue,yt as emitStep,Et as fetchPackage,Ct as fetchPackageSchema,Ze as filterValues,ke as flattenIncludeSections,yn as formatOut,bt as getBrowser,wt as getBrowserVersion,he as getByPath,jt as getDeviceType,_e as getEvent,te as getFlowSettings,je as getGrantedConsent,it as getHeaders,Ee as getId,Ke as getMappingEvent,Ve as getMappingValue,Ce as getMarketingParameters,Zt as getNextSteps,kt as getOS,$t as getOSVersion,ne as getPlatform,Oe as getSpanId,mt as getTraceUntil,ie as isArguments,ae as isArray,se as isBoolean,ce as isCommand,ue as isDefined,fe as isElementOrDocument,le as isFunction,pe as isNumber,de as isObject,gn as isPathStepEntry,Fe as isPropertyType,Rt as isRouteArray,Mt as isRouteConfigEntry,me as isSameType,lt as isSampled,Qt as isStoreValue,ge as isString,It as mcpError,Tt as mcpResult,P as mergeContractSchemas,Xe as mergeMappingRule,Ye as mockEnv,ee as packageNameToVariable,vt as parseUserAgent,Je as processEventMapping,Kt as readCacheEnvelope,nt as requestToData,rt as requestToParameter,z as resolveContracts,at as resolveSetup,pt as resolveTelemetryOptions,V as scanFlowRefs,en as serializeStoreValue,ve as setByPath,gt as setTraceUntil,o as stepId,an as storeCache,ze as throttle,T as throwError,ot as transformData,Qe as traverseEnv,st as trim,We as tryCatch,Le as tryCatchAsync,ct as useHooks,mn as validateStepEntry,Y as walkPath,Ht as wrapCacheEnvelope,At as wrapCondition,Ot as wrapFn,St 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={},u={},f={};t(f,{Level:()=>l});var l=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(l||{}),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}async function k(e,t){return await e.get(t)}t(b,{getStore:()=>w,getStoreValue:()=>k});var $={},j={},x={},A={},O={},S={},_={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function E(e){return{_meta:{hops:0,path:[e]}}}function N(e,t){return{event:e,next:t}}function T(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function C(e){throw new Error(String(e))}var I=new Set(["description","examples","title","$comment"]);function z(e,t){const n=!1!==t?.stripAnnotations,r={},o=new Set;function i(t){if(r[t])return r[t];o.has(t)&&C(`Circular extend chain detected: ${[...o,t].join(" → ")}`);const a=e[t];a||C(`Contract "${t}" not found`),o.add(t);let s={};if(a.extend){s=function(e,t){const n={};void 0===e.tagging&&void 0===t.tagging||(n.tagging=t.tagging??e.tagging);void 0===e.description&&void 0===t.description||(n.description=t.description??e.description);e.schema&&t.schema?n.schema=P(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?P(t,a):{...t||a}}}n.events=r}return n}(i(a.extend),a)}else s={...a};if(delete s.extend,s.events&&(s.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=P(o,i));const a=e["*"]?.[r];a&&"*"!==r&&(o=P(o,a));const s=e[n]?.["*"];s&&"*"!==r&&(o=P(o,s));const c=e[n]?.[r];c&&(o=P(o,c)),t[n][r]=o}}e["*"]&&(t["*"]={...e["*"]});return t}(s.events)),s.events&&n){const e={};for(const[t,n]of Object.entries(s.events)){e[t]={};for(const[r,o]of Object.entries(n))e[t][r]=M(o)}s.events=e}return o.delete(t),r[t]=s,s}for(const t of Object.keys(e))i(t);return r}function P(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])]:R(o)&&R(i)?n[r]=P(o,i):n[r]=i}return n}function M(e){const t={};for(const[n,r]of Object.entries(e))I.has(n)||(null===r||"object"!=typeof r||Array.isArray(r)?t[n]=r:t[n]=M(r));return t}function R(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var U=/^\$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,Z=/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/,B=/^\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.([a-zA-Z0-9_.]+))?$/,W=/^\$store\.([a-zA-Z_][a-zA-Z0-9_]*)$/,L=/^\$secret\.([A-Z0-9_]+)$/,H="$code:",V=/\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)/g;function K(e,t){const n=t??new Set;if("string"==typeof e){for(const t of e.matchAll(V))n.add(t[1]);return n}if(e&&"object"==typeof e)for(const t of Object.values(e))K(t,n);return n}function q(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var J="__WALKEROS_ENV:",G="__WALKEROS_SECRET:";function X(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 Y(e,t,n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const i=r[e];if(null==o||"object"!=typeof o){const o=r.slice(0,e).join(".");C(`Path "${t}" not found in "${n}": "${i}" does not exist${o?` in "${o}"`:""}`)}const a=o;if(!(i in a)){const o=r.slice(0,e).join(".");C(`Path "${t}" not found in "${n}": "${i}" does not exist${o?` in "${o}"`:""}`)}o=a[i]}return o}function Q(e,t,n,r,o,i){if("string"==typeof e){const a=e.match(U);if(a){const e=a[1].split("."),s=e[0],c=e.slice(1).join(".");void 0===t[s]&&C(`Variable "${s}" not found`);const u=i??new Set;if(u.has(s)){C(`Cyclic $var reference: ${[...u,s].join(" -> ")}`)}let f;u.add(s);try{f=Q(t[s],t,n,r,o,u)}finally{u.delete(s)}return c&&(f=Y(f,c,`$var.${s}`)),f}const s=e.match(Z);if(s&&r){const e=s[1],t=s[2];e in r||C(`Contract "${e}" not found`);let n=r[e];return t&&(n=Y(n,t,`$contract.${e}`)),n}const c=e.match(B);if(c){const t=c[1],r=c[2],i=!1===n?.strictFlowRefs;o||C(`$flow.${t}${r?`.${r}`:""} cannot be resolved without a flow resolver`);const a=o(t);if(!a){if(i)return n?.onWarning?.(X(t,r,"unknown-flow")),e;C(`Flow "${t}" not found in $flow.${t}`)}let s=a;if(r)if(i){try{s=Y(s,r,`$flow.${t}`)}catch{return n?.onWarning?.(X(t,r,"missing-key")),e}if(null==s||""===s)return n?.onWarning?.(X(t,r,"missing-key")),e}else s=Y(s,r,`$flow.${t}`);return s}const u=e.match(L);if(u){const e=u[1];if(n?.deferred)return`${G}${e}`;C(`Secret "$secret.${e}" cannot be used in a web flow — secrets are never sent to the browser. Use a server flow.`)}let f=e.replace(D,(e,a)=>{const s=a.split("."),c=s[0],u=s.slice(1).join(".");void 0===t[c]&&C(`Variable "${c}" not found`);const f=i??new Set;if(f.has(c)){C(`Cyclic $var reference: ${[...f,c].join(" -> ")}`)}let l;f.add(c);try{l=Q(t[c],t,n,r,o,f)}finally{f.delete(c)}if(u&&(l=Y(l,u,`$var.${c}`)),null===l||"string"!=typeof l&&"number"!=typeof l&&"boolean"!=typeof l){C(`Variable "${a}" resolves to non-scalar (${Array.isArray(l)?"array":typeof l}) and cannot be inlined into a string. Use it as a whole-string reference: "$var.${a}"`)}return String(l)});return f=f.replace(F,(e,t,r)=>n?.deferred?void 0!==r?`${J}${t}:${r}`:`${J}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==r?r:void C(`Environment variable "${t}" not found and no default provided`)),f}if(Array.isArray(e))return e.map(e=>Q(e,t,n,r,o,i));if(null!==e&&"object"==typeof e){const a={};for(const[s,c]of Object.entries(e))a[s]=Q(c,t,n,r,o,i);return a}return e}function ee(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 te(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)){C(`Cyclic $flow reference: ${[...i,t].join(" -> ")}`)}o.add(t),i.push(t);try{const o=q(e.variables,s.variables),i=Q(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]:C(`Multiple flows found (${s.join(", ")}). Please specify a flow.`));const c=e.flows[t];c||C(`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=z(Q(e.contract,o,n,void 0,r))}if(o.config){const a=q(e.variables,t.variables);o.config=Q(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),u=Q(s.config,c,n,i,r),f=Q(s.env,c,n,i,r);o.sources[a]={package:s.package,import:s.import,config:u,env:f,primary:s.primary,variables:s.variables,before:s.before,next:s.next,cache:s.cache,code:s.code}}if(o.destinations)for(const[a,s]of Object.entries(o.destinations)){const c=q(e.variables,t.variables,s.variables),u=Q(s.config,c,n,i,r),f=Q(s.env,c,n,i,r);o.destinations[a]={package:s.package,import:s.import,config:u,env:f,variables:s.variables,before:s.before,next:s.next,cache:s.cache,code:s.code}}if(o.stores)for(const[a,s]of Object.entries(o.stores)){const c=q(e.variables,t.variables,s.variables),u=Q(s.config,c,n,i,r),f=Q(s.env,c,n,i,r);o.stores[a]={package:s.package,import:s.import,config:u,env:f,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),u=Q(s.config,c,n,i,r),f=Q(s.env,c,n,i,r);o.transformers[a]={package:s.package,import:s.import,config:u,env:f,variables:s.variables,before:s.before,next:s.next,cache:s.cache,code:s.code}}if(o.collector){const a=q(e.variables,t.variables),s=Q(o.collector,a,n,i,r);o.collector=s}return o}(e,c,n,a)}finally{o.delete(t),i.pop()}}function ne(e){const t=e.config?.platform;if("web"===t||"server"===t)return t;C('Flow must have config.platform set to "web" or "server"')}var re={merge:!0,shallow:!0,extend:!0};function oe(e,t={},n={}){n={...re,...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 ie(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function ae(e){return Array.isArray(e)}function se(e){return"boolean"==typeof e}function ce(e){return"walker"===e}function ue(e){return void 0!==e}function fe(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function le(e){return"function"==typeof e}function pe(e){return"number"==typeof e&&!Number.isNaN(e)}function de(e){return"object"==typeof e&&null!==e&&!ae(e)&&"[object Object]"===Object.prototype.toString.call(e)}function me(e,t){return typeof e==typeof t}function ge(e){return"string"==typeof e}function ye(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]=ye(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(ye(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 he(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&ae(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=he(e,t,n);i.push(r)}return i}if(o=de(o)||ae(o)?o[t]:void 0,void 0===o)break}return ue(o)?o:n}function ve(e,t,n){if(!de(e))return e;const r=ye(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 be(e,t){if(!de(e)&&!ae(e))return e;const n=ye(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(ae(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(!de(t)&&!ae(t))return n;o=t}}else if(i)delete o[t];else{const e=o[t];if(!de(e)&&!ae(e))return n;o=e}}return n}var we={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 ke(e,t){const n={},r=t.includes("all")?Object.keys(we):t;for(const t of r){const r=we[t];if(!r)continue;const o=r(e);if(de(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 $e(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function je(e,t={},n={}){const 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 xe(e,t){const n={...e};return n.config=oe(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=oe(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=oe(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function Ae(e,t){if(!de(t))return e;for(const n of Object.keys(t)){const r=t[n];void 0!==r&&(de(r)&&de(e[n])?Ae(e[n],r):e[n]=r)}return e}function Oe(e=6,t="0123456789abcdefghijklmnopqrstuvwxyz"){const n=t.length;if(e<=0||0===n)return"";let r="";if(n<=256){const o=256-256%n;for(;r.length<e;){const i=e-r.length,a=new Uint8Array(Math.ceil(1.3*i)+4);if(!Se(a))break;for(let i=0;i<a.length&&r.length<e;i++)a[i]<o&&(r+=t[a[i]%n])}}for(;r.length<e;)r+=t[Math.random()*n|0];return r}function Se(e){try{const t=globalThis.crypto;if(t&&"function"==typeof t.getRandomValues)return t.getRandomValues(e),!0}catch{}return!1}var _e="0123456789abcdef";function Ee(e){let t=Oe(e,_e);for(;/^0+$/.test(t);)t=Oe(e,_e);return t}function Ne(){return Ee(16)}function Te(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=oe({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],not:void 0},context:{dev:["test",1]},globals:{lang:"elb"},custom:{completely:"random"},user:{id:"us3r",device:"c00k13",session:"s3ss10n"},nested:[{entity:"child",data:{is:"subordinated"}}],consent:{functional:!0},id:e.id||Ne(),trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,source:{type:"collector",schema:"4"}},e,{merge:!1});if(n.source={count:1,trace:"0a1b2c3d4e5f60718293a4b5c6d7e8f9",...n.source},e.name){const[t,r]=e.name.split(" ")??[];t&&r&&(n.entity=t,n.action=r)}return n}function Ce(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 Te({...{"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 Ie(){return Ee(32)}var ze=[{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 Pe(e,t={},n=[]){const r={};Object.entries(oe({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(ze.map(e=>e.param));return[...ze.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):ze,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 Me(e,t){return"number"==typeof e?{wait:e}:e?{wait:e.wait??t,size:e.size,age:e.age}:{wait:t}}function Re(e,t=1e3,n=!1){const{wait:r,size:o,age:i}=Me(t,1e3);let a,s,c=null,u=null,f=!1,l=[],p=0;const d=()=>{c&&(clearTimeout(c),c=null),u&&(clearTimeout(u),u=null),p=0,s=void 0},m=()=>{const t=s,n=l;if(d(),l=[],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&&!f;if(s=t,p+=1,l.push(d),c&&clearTimeout(c),c=setTimeout(()=>{c=null,n&&!f||m()},r),void 0===i||u||(u=setTimeout(()=>{u=null,m()},i)),void 0!==o&&p>=o)m();else if(g){f=!0,a=e(...t);const n=l;l=[],n.forEach(e=>e(a))}});return g.flush=()=>s||0!==l.length?new Promise(e=>{l.push(e),m()}):Promise.resolve(a),g.cancel=()=>{const e=l;l=[],d(),a=void 0,e.forEach(e=>e(void 0))},g.size=()=>p,g}function Ue(e,t=1e3){const{wait:n}=Me(t,1e3);let r=null;return function(...t){if(null===r)return r=setTimeout(()=>{r=null},n),e(...t)}}function De(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function Fe(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=De(e)):n=e,void 0!==t&&(t instanceof Error?r.error=De(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=De(r.error))):r.value=t),{message:n,context:r}}var Ze=(e,t,n,r)=>{const o=`${l[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 Be(e={}){return We({level:void 0!==e.level?function(e){return"string"==typeof e?l[e]:e}(e.level):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]})}function We(e){const{level:t,handler:n,jsonHandler:r,scope:o}=e,i=(e,r,i)=>{if(e<=t){const t=Fe(r,i);n?n(e,t.message,t.context,o,Ze):Ze(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=Fe(e,t);throw n?n(0,r.message,r.context,o,Ze):Ze(0,r.message,r.context,o),new Error(r.message)},json:e=>{r?r(e):console.log(JSON.stringify(e,null,2))},scope:e=>We({level:t,handler:n,jsonHandler:r,scope:[...o,e]})}}function Le(e){return se(e)||ge(e)||pe(e)||!ue(e)||ae(e)&&e.every(Le)||de(e)&&Object.values(e).every(Le)}function He(e){return se(e)||ge(e)||pe(e)?e:ie(e)?He(Array.from(e)):ae(e)?e.map(e=>He(e)).filter(e=>void 0!==e):de(e)?Object.entries(e).reduce((e,[t,n])=>{const r=He(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function Ve(e){return Le(e)?e:void 0}function Ke(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function qe(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 Je=class e extends Error{constructor(t,n){super(t,n),this.name="FatalError",Object.setPrototypeOf(this,e.prototype)}};async function Ge(e,t,n){const[r,o]=(e.name||"").split(" ");if(!t||!r||!o)return{};let i,a="",s=r,c=o;const u=t=>{if(!t)return;return(ae(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:de(e)&&e.consent||n.consent};return Boolean(t.condition(e,r))})};t[s]||(s="*");const f=t[s];return f&&(f[c]||(c="*"),i=u(f[c])),i||(s="*",c="*",i=u(t[s]?.[c])),i&&(a=`${s} ${c}`),{eventMapping:i,mappingKey:a}}async function Xe(e,t={},n={}){if(!ue(e))return;const r=de(e)&&e.consent||n.consent||n.collector?.consent,o=n.event??(de(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=ae(t)?t:[t];for(const t of a){const r=await qe(Ye,e=>{if(e instanceof Je)throw e;n.collector&&n.collector.status.failed++,i.logger.error("mapping processing failed",{event:o,error:e})})(e,t,{...i,mapping:t});if(ue(r))return r}}async function Ye(e,t,n){return(ae(t)?t:[t]).reduce(async(t,r)=>{const o=await t;if(o)return o;const i=ge(r)?{key:r}:r;if(!Object.keys(i).length)return;const{condition:a,consent:s,fn:c,key:u,loop:f,map:l,set:p,validate:d,value:m}=i,g={...n,mapping:r};if(a&&!await qe(a,e=>{if(e instanceof Je)throw e;return g.logger.error("mapping condition failed",{event:g.event,error:e}),!1})(e,g))return;if(s&&!je(s,g.consent))return m;let y=ue(m)?m:e;if(c&&(y=await qe(c,e=>{if(e instanceof Je)throw e;g.logger.error("mapping fn failed",{event:g.event,error:e})})(e,g)),u&&(y=he(e,u,m)),f){const[t,n]=f,r="this"===t?[e]:await Xe(e,t,g);ae(r)&&(y=(await Promise.all(r.map(e=>Xe(e,n,g)))).filter(ue))}else l?y=await Object.entries(l).reduce(async(t,[n,r])=>{const o=await t,i=await Xe(e,r,g);return ue(i)&&(o[n]=i),o},Promise.resolve({})):p&&(y=await Promise.all(p.map(t=>Ye(e,t,g))));d&&!await qe(d,e=>{if(e instanceof Je)throw e;return g.logger.error("mapping validate failed",{event:g.event,error:e}),!1})(y,g)&&(y=void 0);const h=Ve(y);return ue(h)?h:Ve(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 Xe(e,r,{collector:n,event:e});e=ve(e,t,o)}));const{eventMapping:r,mappingKey:o}=await Ge(e,t.mapping,n);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await Xe(e,r,{collector:n,event:e});e=ve(e,t,o)}));let i=t.data&&await Xe(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 Xe(e,r.data,{collector:n,event:e});i=de(i)&&de(t)?oe(i,t):t}}const s=r?.include??t.include;if(s&&s.length>0){const t=ke(e,s);Object.keys(t).length>0&&(i=de(i)?oe(t,i):i??t)}if(r?.remove&&de(i))for(const e of r.remove)i=be(i,e);return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1,silent:a}}function et(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];de(r)&&de(o)?et(o,r):e[n]=r}return e}function tt(e,t){if(void 0===t.extend&&void 0===t.remove)return ye(t);const n={...ye(e)};if(t.extend){et(n,{...t.extend})}return delete n.extend,t.remove?n.remove=[...t.remove]:delete n.remove,n}function nt(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 rt(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 ot(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=ot();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 it(e={}){return{collector:{},config:{},env:{},logger:ot(),id:"test",ingest:E("test"),...e}}function at(e){const t=String(e),n=t.split("?")[1]||t;return Ke(()=>{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(ae(o)){const a=parseInt(t,10);i?o[a]=$e(e):(o[a]=o[a]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[a])}else de(o)&&(i?o[t]=$e(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function st(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(ae(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):de(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 ct(e){return void 0===e||me(e,"")?e:JSON.stringify(e)}function ut(e={}){return oe({"Content-Type":"application/json; charset=utf-8"},e)}function ft(e,t){return!1===e||void 0===e?null:!0===e?t:{...t,...e}}function lt(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function pt(e,t,n,r){const o=e;return function(...e){let i;const a="pre"+t,s="post"+t,c=n[a],u=n[s],f=(e,t)=>{r?r.warn(e,{error:t}):console.warn(e,t)};if(c)try{i=c({fn:o},...e)}catch(t){f(`Hook ${String(a)} failed, falling back to original function`,t),i=o(...e)}else i=o(...e);if(u)try{i=u({fn:o,result:i},...e)}catch(e){f(`Hook ${String(s)} failed, keeping original result`,e)}return i}}function dt(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 mt(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&&!dt(t.eventId,a))return;const s=r.includeIn??"trace"===o,c=r.includeOut??"trace"===o,u=r.includeMappingKey??"trace"===o,f={...t};s||delete f.inEvent,c||delete f.outEvent,u||delete f.mappingKey,"trace"!==o&&f.error?.message&&f.error.message.length>256&&(f.error={...f.error,message:f.error.message.slice(0,256)+"…"});try{e(f)}catch{}}}function gt(e,t){return dt(e,t)}function yt(e){const t=e.now??(()=>Date.now()),{traceUntil:n}=e;if("string"==typeof n&&n.length>0){const r=Date.parse(n);if(!Number.isNaN(r)&&r>t())return{flowId:e.flowId,level:"trace",includeIn:!0,includeOut:!0,sample:1}}const r=e.observe?.level??"standard";if("off"===r)return null;const o=e.observe?.sample??1;return{flowId:e.flowId,level:r,sample:o}}var ht=null;function vt(){return ht}function bt(e){ht=e}function wt(e,t){if(0===e.observers.size)return;const n=Array.from(e.observers);for(const e of n)try{e(t)}catch{}}function kt(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 u(){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?u():null===c&&(c=setTimeout(u,n))}}function $t(e){return e?{userAgent:e,browser:jt(e),browserVersion:xt(e),os:At(e),osVersion:Ot(e),deviceType:St(e)}:{}}function jt(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 xt(e){const t=[/Edg\/([0-9]+)/,/Chrome\/([0-9]+)/,/Version\/([0-9]+).*Safari/,/Firefox\/([0-9]+)/,/MSIE ([0-9]+)/,/rv:([0-9]+).*Trident/];for(const n of t){const t=e.match(n);if(t)return t[1]}}function At(e){const t=[{name:"Windows",substr:"Windows NT"},{name:"macOS",substr:"Mac OS X"},{name:"Android",substr:"Android"},{name:"iOS",substr:"iPhone OS"},{name:"Linux",substr:"Linux"}];for(const n of t)if(e.includes(n.substr))return n.name}function Ot(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function St(e){let t="Desktop";return/Tablet|iPad/i.test(e)?t="Tablet":/Mobi|Android|iPhone|iPod|BlackBerry|Opera Mini|IEMobile|WPDesktop/i.test(e)&&(t="Mobile"),t}function _t(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function Et(e){const t=_t(e);return new Function("value","context",t)}function Nt(e){const t=_t(e);return new Function("value","context",t)}function Tt(e){const t=_t(e);return new Function("value","context",t)}function Ct(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function It(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 zt(`${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):[],u=[],f=a.step||{};for(const[e,t]of Object.entries(f)){const n=t,r={name:e};"string"==typeof n?.description&&(r.description=n.description),u.push(r)}const l="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:Ct(o.platform),schemas:i,examples:a,...l?{docs:l}:{},...p?{source:p}:{},...s&&Object.keys(s).length>0?{hints:s}:{},hintKeys:c,exampleSummaries:u}}(e,n,o,await zt(`${r}/dist/walkerOS.json`,a,s))}finally{clearTimeout(i)}}async function zt(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 Pt(e,t){const n=await It(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 Mt(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function Rt(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 Ut(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function Dt(e){if(void 0===e||"*"===e)return()=>!0;if("and"in e){const t=e.and.map(Dt);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(Dt);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=he(e,t),r=i(n);return o?!r:r}}(e)}function Ft(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&("match"in e||"next"in e||"one"in e||"many"in e)}function Zt(e){return Array.isArray(e)&&e.length>0&&e.every(e=>Ft(e))}function Bt(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:Wt(e)??{type:"chain",value:[]}};const t=e;return{match:t.match?Dt(t.match):()=>!0,next:Wt(t)??{type:"chain",value:[]}}})}function Wt(e){if(null==e)return;if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(Zt(e))return Wt({one:e});if(e.every(e=>"string"==typeof e))return{type:"chain",value:e};const t=[];for(const n of e){const e=Wt(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:Dt(t.match),next:Wt(t.next)}:Wt(t.next);if("one"in t&&t.one){const e=Bt(t.one);return t.match?{type:"gate",match:Dt(t.match),next:{type:"one",routes:e}}:{type:"one",routes:e}}if("many"in t&&t.many){const e=Bt(t.many);return t.match?{type:"gate",match:Dt(t.match),next:{type:"many",routes:e}}:{type:"many",routes:e}}return t.match?{type:"gate",match:Dt(t.match)}:void 0}var Lt=new WeakMap;function Ht(e,t={}){if(null==e)return[];let n;if("object"==typeof e){const t=Lt.get(e);t?n=t:(n=Wt(e),n&&Lt.set(e,n))}else n=Wt(e);if(!n)return[];const r=Vt(n,t);return void 0===r?[]:Array.isArray(r)?r:[r]}function Vt(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 Vt(e.next,t)}if("sequence"===e.type){const n=[];for(const r of e.value){const e=Vt(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=Vt(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 Vt(n.next,t)}}var Kt="__walkeros_cache_v__",qt="__walkeros_cache_exp__";function Jt(e,t,n=Date.now){const r={[Kt]:e};return void 0!==t&&(r[qt]=n()+t),r}function Gt(e,t=Date.now){if(void 0===e)return;if(null===(n=e)||"object"!=typeof n||Array.isArray(n)||!(Kt in e))return{value:e};var n;const r=e[qt];return"number"==typeof r&&t()>r?{expired:!0}:{value:e[Kt]}}var Xt="__walkeros_cache__",Yt=class extends Error{constructor(e,t){super(e,t),this.name="StoreCodecError"}};function Qt(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function en(e){if(Buffer.isBuffer(e))return{[Xt]:"buffer",d:e.toString("base64")};if(e instanceof Uint8Array)return{[Xt]:"buffer",d:Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64")};if(e instanceof ArrayBuffer)return{[Xt]:"buffer",d:Buffer.from(e).toString("base64")};if(Array.isArray(e))return e.map(en);if(Qt(e)){if(Xt in e){const t={};for(const[n,r]of Object.entries(e))t[n]=en(r);return{[Xt]:"escape",d:t}}const t={};for(const[n,r]of Object.entries(e))t[n]=en(r);return t}return e}function tn(e,t){if(Qt(e)){if(Xt in e){const n=e[Xt],r=e.d;if("buffer"===n&&"string"==typeof r)return t(Buffer.from(r,"base64"));if("escape"===n&&Qt(r)){const e={};for(const[n,o]of Object.entries(r))e[n]=tn(o,t);return e}}const n={};for(const[r,o]of Object.entries(e))n[r]=tn(o,t);return n}return Array.isArray(e)?e.map(e=>tn(e,t)):e}function nn(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function rn(e){return null===e||"string"==typeof e||"number"==typeof e||"boolean"==typeof e||e instanceof Uint8Array||(Array.isArray(e)?e.every(e=>void 0===e||rn(e)):!!Qt(e)&&Object.values(e).every(e=>void 0===e||rn(e)))}function on(e){let t;try{t=JSON.stringify(en(e))}catch(e){throw new Yt("Failed to serialize store value (likely a cyclic structure).",{cause:e})}return new Uint8Array(Buffer.from(t,"utf8"))}function an(e){const t="string"==typeof e?e:Buffer.from(e).toString("utf8"),n=tn(JSON.parse(t),nn);if(!rn(n))throw new Yt("Restored value is not a valid StoreValue.");return n}function sn(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function cn(e){return{stop:e.stop??!1,storeId:e.store,namespace:e.namespace,rules:e.rules.map(e=>({match:e.match?Dt(e.match):()=>!0,key:e.key,ttl:e.ttl,update:e.update}))}}async function un(e,t,n,r){const o=e.rules.find(e=>e.match(n));if(!o)return null;const i=o.key.map(e=>String(he(n,e)??""));if(i.every(e=>""===e))return null;const a=i.join(":"),s=r??e.namespace,c=s?`${s}:${a}`:a,u=Gt(await t.get(c));if(void 0===u)return{status:"MISS",key:c,rule:o};if("expired"in u){try{await t.delete(c)}catch{}return{status:"MISS",key:c,rule:o}}return{status:"HIT",key:c,value:u.value,rule:o}}function fn(e,t,n,r){if(!rn(n))return;const o=1e3*r,i=e.set(t,Jt(n,o),o);i instanceof Promise&&i.catch(()=>{})}async function ln(e,t,n,r){if(!t)return e;let o=e;for(const[e,i]of Object.entries(t)){o=ve(o,e,await Xe(n,i,{collector:r}))}return o}function pn(e){return ae(e)?e:[e]}async function dn(e,t,n,r){let o=n;for(const n of e)await qe(async()=>{const e=t(n.store);if(!e)return;const i=await Xe(o,n.key,{collector:r,event:o});if(!ge(i))return;const a=n.store?i:`state:${i}`;if("set"===n.mode){const t=await Xe(o,n.value,{collector:r,event:o});if(!ue(t))return;await e.set(a,t)}else{const t=ge(s=n.value)?s:de(s)&&ge(s.key)?s.key:void 0;if(!t)return;const r=await e.get(a);if(!ue(r))return;o=ve(o,t,r)}var s},e=>{if(e instanceof Je)throw e;r.logger?.error?.("[state] operation failed",e)})();return o}var mn={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"]},gn=["config","env","variables","examples","disabled","id","logger","mock","chainMocks"],yn={Source:["primary"],Transformer:[],Destination:[],Store:[]},hn=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function vn(e,t){const n=function(e){return new Set([...mn[e],...gn,...yn[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&&hn.test(e.import)?{ok:!0}:{ok:!1,code:"INVALID_IMPORT",key:"import",reason:`import must match ${hn.source}. Got: ${JSON.stringify(e.import)}.`}}function bn(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 wn(e){return 0===e.length?"// no output":e.map(kn).join(";\n\n")}function kn(e){const[t,...n]=e,r=n.map($n).join(", ");return"return"===t?r?`return ${r}`:"return":`${t}(${r})`}function $n(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,_ as Const,i as Context,a as Destination,J as ENV_MARKER_PREFIX,c as Elb,Je as FatalError,S as Hint,u as Hooks,l as Level,j as Lifecycle,f as Logger,p as Mapping,O as Matcher,d as On,H as REF_CODE_PREFIX,Z as REF_CONTRACT,F as REF_ENV,B as REF_FLOW,L as REF_SECRET,W as REF_STORE,U as REF_VAR_FULL,D as REF_VAR_INLINE,y as Request,G as SECRET_MARKER_PREFIX,mn as STEP_OPERATIVE_FIELDS,A as Simulation,h as Source,b as Store,Yt as StoreCodecError,m as Transformer,$ as Trigger,x as WalkerOS,T as anonymizeIP,dn as applyState,ln as applyUpdate,oe as assign,N as branch,sn as buildCacheContext,Ve as castToProperty,$e as castValue,un as checkCache,ye as clone,cn as compileCache,Dt as compileMatcher,pn as compileState,kt as createBatchedPoster,xe as createDestination,Te as createEvent,E as createIngest,Be as createLogger,it as createMockContext,ot as createMockLogger,Ut as createRespond,mt as createTelemetryObserver,Re as debounce,Ae as deepMerge,ze as defaultClickIds,be as deleteByPath,an as deserializeStoreValue,wt as emitStep,It as fetchPackage,Pt as fetchPackageSchema,He as filterValues,ke as flattenIncludeSections,wn as formatOut,jt as getBrowser,xt as getBrowserVersion,he as getByPath,St as getDeviceType,Ce as getEvent,te as getFlowSettings,je as getGrantedConsent,ut as getHeaders,Oe as getId,Ge as getMappingEvent,Xe as getMappingValue,Pe as getMarketingParameters,Ht as getNextSteps,At as getOS,Ot as getOSVersion,ne as getPlatform,Ne as getSpanId,Ie as getTraceId,vt as getTraceUntil,ie as isArguments,ae as isArray,se as isBoolean,ce as isCommand,ue as isDefined,fe as isElementOrDocument,le as isFunction,pe as isNumber,de as isObject,bn as isPathStepEntry,Le as isPropertyType,Zt as isRouteArray,Ft as isRouteConfigEntry,me as isSameType,gt as isSampled,rn as isStoreValue,ge as isString,Rt as mcpError,Mt as mcpResult,P as mergeContractSchemas,tt as mergeMappingRule,nt as mockEnv,ee as packageNameToVariable,$t as parseUserAgent,Qe as processEventMapping,Gt as readCacheEnvelope,at as requestToData,st as requestToParameter,z as resolveContracts,ft as resolveSetup,yt as resolveTelemetryOptions,K as scanFlowRefs,on as serializeStoreValue,ve as setByPath,bt as setTraceUntil,o as stepId,fn as storeCache,Ue as throttle,C as throwError,ct as transformData,rt as traverseEnv,lt as trim,Ke as tryCatch,qe as tryCatchAsync,pt as useHooks,vn as validateStepEntry,Y as walkPath,Jt as wrapCacheEnvelope,Et as wrapCondition,Nt as wrapFn,Tt as wrapValidate};//# sourceMappingURL=index.mjs.map
|