@walkeros/core 4.4.0 → 4.5.0
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 +33 -0
- package/dist/dev.d.mts +74 -27
- package/dist/dev.d.ts +74 -27
- 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 +252 -24
- package/dist/index.d.ts +252 -24
- 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 s={},i={};function a(e,t){const n=e.destinations[t];if(!n)throw new Error(`Destination not found: ${t}`);return n}t(i,{getDestination:()=>a});var c={},f={},u={};t(u,{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 v={},h={};function y(e,t){const n=e.sources[t];if(!n)throw new Error(`Source not found: ${t}`);return n}t(h,{getSource:()=>y});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 $={},A={},S={},I={},j={},x={},O={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 M(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function N(e){throw new Error(String(e))}var T=new Set(["description","examples","title","$comment"]),C=new Set(["additionalItems","additionalProperties","contains","contentSchema","else","if","items","not","propertyNames","then","unevaluatedItems","unevaluatedProperties"]),P=new Set(["allOf","anyOf","items","oneOf","prefixItems"]),R=new Set(["properties","patternProperties","dependentSchemas","dependentRequired","dependencies","$defs","definitions"]);function z(e,t){const n=!1!==t?.stripAnnotations,r={},o=new Set;function s(t){if(r[t])return r[t];o.has(t)&&N(`Circular extend chain detected: ${[...o,t].join(" → ")}`);const i=e[t];i||N(`Contract "${t}" not found`),o.add(t);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=D(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]||{},s=t.events?.[n]||{},i=new Set([...Object.keys(o),...Object.keys(s)]);r[n]={};for(const e of i){const t=o[e],i=s[e];r[n][e]=t&&i?D(t,i):{...t||i}}}n.events=r}return n}(s(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 s=e["*"]?.["*"];s&&(o=D(o,s));const i=e["*"]?.[r];i&&"*"!==r&&(o=D(o,i));const a=e[n]?.["*"];a&&"*"!==r&&(o=D(o,a));const c=e[n]?.[r];c&&(o=D(o,c)),t[n][r]=o}}e["*"]&&(t["*"]={...e["*"]});return t}(a.events)),a.events&&n){const e={};for(const[t,n]of Object.entries(a.events)){e[t]={};for(const[r,o]of Object.entries(n))e[t][r]=F(o)}a.events=e}return o.delete(t),r[t]=a,a}for(const t of Object.keys(e))s(t);return r}function D(e,t){const n={...e};for(const r of Object.keys(t)){const o=e[r],s=t[r];"required"===r&&Array.isArray(o)&&Array.isArray(s)?n[r]=[...new Set([...o,...s])]:L(o)&&L(s)?n[r]=D(o,s):n[r]=s}return n}function F(e){const t={};for(const[n,r]of Object.entries(e))T.has(n)||(R.has(n)&&L(r)?t[n]=U(r):P.has(n)&&Array.isArray(r)?t[n]=r.map(e=>L(e)?F(e):e):C.has(n)&&L(r)?t[n]=F(r):t[n]=r);return t}function U(e){const t={};for(const[n,r]of Object.entries(e))t[n]=L(r)?F(r):r;return t}function L(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var q=/^\$var\.([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)$/,K=/\$var\.([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)/g,W=/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,B=/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/,Z=/^\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.([a-zA-Z0-9_.]+))?$/,V=/^\$store\.([a-zA-Z_][a-zA-Z0-9_]*)$/,H=/^\$secret\.([A-Z0-9_]+)$/,J="$code:",G=/\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)/g;function Y(e,t){const n=t??new Set;if("string"==typeof e){for(const t of e.matchAll(G))n.add(t[1]);return n}if(e&&"object"==typeof e)for(const t of Object.values(e))Y(t,n);return n}function X(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var Q="__WALKEROS_ENV:",ee="__WALKEROS_SECRET:";function te(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 ne(e,t,n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const s=r[e];if(null==o||"object"!=typeof o){const o=r.slice(0,e).join(".");N(`Path "${t}" not found in "${n}": "${s}" does not exist${o?` in "${o}"`:""}`)}const i=o;if(!(s in i)){const o=r.slice(0,e).join(".");N(`Path "${t}" not found in "${n}": "${s}" does not exist${o?` in "${o}"`:""}`)}o=i[s]}return o}function re(e,t,n,r,o,s){if("string"==typeof e){const i=e.match(q);if(i){const e=i[1].split("."),a=e[0],c=e.slice(1).join(".");void 0===t[a]&&N(`Variable "${a}" not found`);const f=s??new Set;if(f.has(a)){N(`Cyclic $var reference: ${[...f,a].join(" -> ")}`)}let u;f.add(a);try{u=re(t[a],t,n,r,o,f)}finally{f.delete(a)}return c&&(u=ne(u,c,`$var.${a}`)),u}const a=e.match(B);if(a&&r){const e=a[1],t=a[2];e in r||N(`Contract "${e}" not found`);let n=r[e];return t&&(n=ne(n,t,`$contract.${e}`)),n}const c=e.match(Z);if(c){const t=c[1],r=c[2],s=!1===n?.strictFlowRefs;o||N(`$flow.${t}${r?`.${r}`:""} cannot be resolved without a flow resolver`);const i=o(t);if(!i){if(s)return n?.onWarning?.(te(t,r,"unknown-flow")),e;N(`Flow "${t}" not found in $flow.${t}`)}let a=i;if(r)if(s){try{a=ne(a,r,`$flow.${t}`)}catch{return n?.onWarning?.(te(t,r,"missing-key")),e}if(null==a||""===a)return n?.onWarning?.(te(t,r,"missing-key")),e}else a=ne(a,r,`$flow.${t}`);return a}const f=e.match(H);if(f){const e=f[1];if(n?.deferred)return`${ee}${e}`;N(`Secret "$secret.${e}" cannot be used in a web flow — secrets are never sent to the browser. Use a server flow.`)}let u=e.replace(K,(e,i)=>{const a=i.split("."),c=a[0],f=a.slice(1).join(".");void 0===t[c]&&N(`Variable "${c}" not found`);const u=s??new Set;if(u.has(c)){N(`Cyclic $var reference: ${[...u,c].join(" -> ")}`)}let l;u.add(c);try{l=re(t[c],t,n,r,o,u)}finally{u.delete(c)}if(f&&(l=ne(l,f,`$var.${c}`)),null===l||"string"!=typeof l&&"number"!=typeof l&&"boolean"!=typeof l){N(`Variable "${i}" 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.${i}"`)}return String(l)});return u=u.replace(W,(e,t,r)=>n?.deferred?void 0!==r?`${Q}${t}:${r}`:`${Q}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==r?r:void N(`Environment variable "${t}" not found and no default provided`)),u}if(Array.isArray(e))return e.map(e=>re(e,t,n,r,o,s));if(null!==e&&"object"==typeof e){const i={};for(const[a,c]of Object.entries(e))i[a]=re(c,t,n,r,o,s);return i}return e}function oe(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 se(e,t,n){const r=new Map,o=new Set,s=[],i=t=>{if(r.has(t))return r.get(t);const a=e.flows[t];if(a){if(o.has(t)){N(`Cyclic $flow reference: ${[...s,t].join(" -> ")}`)}o.add(t),s.push(t);try{const o=X(e.variables,a.variables),s=re(a.config??{},o,n,void 0,i);return r.set(t,s),s}finally{o.delete(t),s.pop()}}},a=Object.keys(e.flows);t||(1===a.length?t=a[0]:N(`Multiple flows found (${a.join(", ")}). Please specify a flow.`));const c=e.flows[t];c||N(`Flow "${t}" not found. Available: ${a.join(", ")}`),o.add(t),s.push(t);try{return function(e,t,n,r){const o=JSON.parse(JSON.stringify(t));let s;if(e.contract){const o=X(e.variables,t.variables);s=z(re(e.contract,o,n,void 0,r))}if(o.config){const i=X(e.variables,t.variables);o.config=re(o.config,i,n,s,r)}if(o.sources)for(const[i,a]of Object.entries(o.sources)){const c=X(e.variables,t.variables,a.variables),f=re(a.config,c,n,s,r),u=re(a.env,c,n,s,r);o.sources[i]={package:a.package,import:a.import,config:f,env:u,primary:a.primary,variables:a.variables,before:a.before,next:a.next,cache:a.cache,code:a.code}}if(o.destinations)for(const[i,a]of Object.entries(o.destinations)){const c=X(e.variables,t.variables,a.variables),f=re(a.config,c,n,s,r),u=re(a.env,c,n,s,r);o.destinations[i]={package:a.package,import:a.import,config:f,env:u,variables:a.variables,before:a.before,next:a.next,cache:a.cache,code:a.code}}if(o.stores)for(const[i,a]of Object.entries(o.stores)){const c=X(e.variables,t.variables,a.variables),f=re(a.config,c,n,s,r),u=re(a.env,c,n,s,r);o.stores[i]={package:a.package,import:a.import,config:f,env:u,cache:a.cache,variables:a.variables,code:a.code}}if(o.transformers)for(const[i,a]of Object.entries(o.transformers)){const c=X(e.variables,t.variables,a.variables),f=re(a.config,c,n,s,r),u=re(a.env,c,n,s,r);o.transformers[i]={package:a.package,import:a.import,config:f,env:u,variables:a.variables,before:a.before,next:a.next,cache:a.cache,code:a.code}}if(o.collector){const i=X(e.variables,t.variables),a=re(o.collector,i,n,s,r);o.collector=a}return o}(e,c,n,i)}finally{o.delete(t),s.pop()}}function ie(e){const t=e.config?.platform;if("web"===t||"server"===t)return t;N('Flow must have config.platform set to "web" or "server"')}var ae={merge:!0,shallow:!0,extend:!0};function ce(e,t={},n={}){n={...ae,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const s=e[r];return n.merge&&Array.isArray(s)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...s]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function fe(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function ue(e){return Array.isArray(e)}function le(e){return"boolean"==typeof e}function pe(e){return"walker"===e}function de(e){return void 0!==e}function me(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function ge(e){return"function"==typeof e}function ve(e){return"number"==typeof e&&!Number.isNaN(e)}function he(e){return"object"==typeof e&&null!==e&&!ue(e)&&"[object Object]"===Object.prototype.toString.call(e)}function ye(e,t){return typeof e==typeof t}function be(e){return"string"==typeof e}function we(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]=we(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(we(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 ke(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&ue(o)){const t=r.slice(e+1).join("."),s=[];for(const e of o){const r=ke(e,t,n);s.push(r)}return s}if(o=he(o)||ue(o)?o[t]:void 0,void 0===o)break}return de(o)?o:n}function $e(e,t,n){if(!he(e))return e;const r=we(e),o=t.split(".");let s=r;for(let e=0;e<o.length;e++){const t=o[e];e===o.length-1?s[t]=n:(t in s&&"object"==typeof s[t]&&null!==s[t]||(s[t]={}),s=s[t])}return r}function Ae(e,t){if(!he(e)&&!ue(e))return e;const n=we(e),r=t.split(".");let o=n;for(let e=0;e<r.length;e++){const t=r[e],s=e===r.length-1;if(ue(o)){const e=Number(t);if(!Number.isInteger(e)||e<0||e>=o.length)return n;if(s)o.splice(e,1);else{const t=o[e];if(!he(t)&&!ue(t))return n;o=t}}else if(s)delete o[t];else{const e=o[t];if(!he(e)&&!ue(e))return n;o=e}}return n}var Se={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 Ie(e,t,n){if(he(n))for(const[r,o]of Object.entries(n))void 0!==o&&Ie(e,`${t}_${r}`,o);else e[t]=n}function je(e,t){const n={},r=t.includes("all")?Object.keys(Se):t;for(const t of r){const r=Se[t];if(!r)continue;const o=r(e);if(he(o))for(const[e,r]of Object.entries(o)){if(void 0===r)continue;Ie(n,`${t}_${e}`,"context"===t&&Array.isArray(r)?r[0]:r)}}return n}function xe(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function Oe(e,t={},n={}){const r={...t,...n},o={};let s=!e||0===Object.keys(e).length;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(s=!0))}),!!s&&o}function Ee(e,t){const n={...e};return n.config=ce(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=ce(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=ce(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function _e(e,t){if(!he(t))return e;for(const n of Object.keys(t)){const r=t[n];void 0!==r&&(he(r)&&he(e[n])?_e(e[n],r):e[n]=r)}return e}function Me(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 s=e-r.length,i=new Uint8Array(Math.ceil(1.3*s)+4);if(!Ne(i))break;for(let s=0;s<i.length&&r.length<e;s++)i[s]<o&&(r+=t[i[s]%n])}}for(;r.length<e;)r+=t[Math.random()*n|0];return r}function Ne(e){try{const t=globalThis.crypto;if(t&&"function"==typeof t.getRandomValues)return t.getRandomValues(e),!0}catch{}return!1}var Te="0123456789abcdef";function Ce(e){let t=Me(e,Te);for(;/^0+$/.test(t);)t=Me(e,Te);return t}function Pe(){return Ce(16)}function Re(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=ce({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||Pe(),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 ze(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 Re({...{"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 De(){return Ce(32)}var Fe=/^(?<version>[0-9a-f]{2})-(?<trace>[0-9a-f]{32})-(?<span>[0-9a-f]{16})-[0-9a-f]{2}$/;function Ue(e){if("string"!=typeof e)return;const t=Fe.exec(e)?.groups;if(!t)return;const{version:n,trace:r,span:o}=t;return void 0===n||void 0===r||void 0===o||"ff"===n||/^0+$/.test(r)||/^0+$/.test(o)?void 0:{trace:r,parentSpan:o}}var Le=[{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 qe(e,t={},n=[]){const r={};Object.entries(ce({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(Le.map(e=>e.param));return[...Le.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):Le,s=new Map;e.searchParams.forEach((e,t)=>{e&&s.set(t.toLowerCase(),e)});for(const e of o){const t=s.get(e.param);t&&(r[e.param]=t,r.clickId||(r.clickId=e.param,r.platform=e.platform))}return r}function Ke(e,t){return"number"==typeof e?{wait:e}:e?{wait:e.wait??t,size:e.size,age:e.age}:{wait:t}}function We(e,t=1e3,n=!1){const{wait:r,size:o,age:s}=Ke(t,1e3);let i,a,c=null,f=null,u=!1,l=[],p=0;const d=()=>{c&&(clearTimeout(c),c=null),f&&(clearTimeout(f),f=null),p=0,a=void 0},m=()=>{const t=a,n=l;if(d(),l=[],t)return i=e(...t),n.forEach(e=>e(i)),i;n.forEach(e=>e(void 0))},g=(...t)=>new Promise(d=>{const g=n&&!u;if(a=t,p+=1,l.push(d),c&&clearTimeout(c),c=setTimeout(()=>{c=null,n&&!u||m()},r),void 0===s||f||(f=setTimeout(()=>{f=null,m()},s)),void 0!==o&&p>=o)m();else if(g){u=!0,i=e(...t);const n=l;l=[],n.forEach(e=>e(i))}});return g.flush=()=>a||0!==l.length?new Promise(e=>{l.push(e),m()}):Promise.resolve(i),g.cancel=()=>{const e=l;l=[],d(),i=void 0,e.forEach(e=>e(void 0))},g.size=()=>p,g}function Be(e,t=1e3){const{wait:n}=Ke(t,1e3);let r=null;return function(...t){if(null===r)return r=setTimeout(()=>{r=null},n),e(...t)}}function Ze(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function Ve(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=Ze(e)):n=e,void 0!==t&&(t instanceof Error?r.error=Ze(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=Ze(r.error))):r.value=t),{message:n,context:r}}var He=(e,t,n,r)=>{const o=`${l[e]}${r.length>0?` [${r.join(":")}]`:""}`,s=Object.keys(n).length>0,i=0===e?console.error:1===e?console.warn:console.log;s?i(o,t,n):i(o,t)};function Je(e={}){return Ge({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 Ge(e){const{level:t,handler:n,jsonHandler:r,scope:o}=e,s=(e,r,s)=>{if(e<=t){const t=Ve(r,s);n?n(e,t.message,t.context,o,He):He(e,t.message,t.context,o)}};return{error:(e,t)=>s(0,e,t),warn:(e,t)=>s(1,e,t),info:(e,t)=>s(2,e,t),debug:(e,t)=>s(3,e,t),throw:(e,t)=>{const r=Ve(e,t);throw n?n(0,r.message,r.context,o,He):He(0,r.message,r.context,o),new Error(r.message)},json:e=>{r?r(e):console.log(JSON.stringify(e,null,2))},scope:e=>Ge({level:t,handler:n,jsonHandler:r,scope:[...o,e]})}}function Ye(e){return le(e)||be(e)||ve(e)||!de(e)||ue(e)&&e.every(Ye)||he(e)&&Object.values(e).every(Ye)}function Xe(e){return le(e)||be(e)||ve(e)?e:fe(e)?Xe(Array.from(e)):ue(e)?e.map(e=>Xe(e)).filter(e=>void 0!==e):he(e)?Object.entries(e).reduce((e,[t,n])=>{const r=Xe(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function Qe(e){return Ye(e)?e:void 0}function et(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function tt(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 nt=class e extends Error{constructor(t,n){super(t,n),this.name="FatalError",Object.setPrototypeOf(this,e.prototype)}};async function rt(e,t,n){const[r,o]=(e.name||"").split(" ");if(!t||!r||!o)return{};let s,i="",a=r,c=o;const f=t=>{if(!t)return;return(ue(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:he(e)&&e.consent||n.consent};return Boolean(t.condition(e,r))})};t[a]||(a="*");const u=t[a];return u&&(u[c]||(c="*"),s=f(u[c])),s||(a="*",c="*",s=f(t[a]?.[c])),s&&(i=`${a} ${c}`),{eventMapping:s,mappingKey:i}}async function ot(e,t={},n={}){if(!de(e))return;const r=he(e)&&e.consent||n.consent||n.collector?.consent,o=n.event??(he(e)?e:{});if(!n.collector)throw new Error("getMappingValue: context.collector is required");const s={event:o,mapping:t,collector:n.collector,logger:n.collector.logger,consent:r},i=ue(t)?t:[t];for(const t of i){const r=await tt(st,e=>{if(e instanceof nt)throw e;n.collector&&n.collector.status.failed++,s.logger.error("mapping processing failed",{event:o,error:e})})(e,t,{...s,mapping:t});if(de(r))return r}}async function st(e,t,n){return(ue(t)?t:[t]).reduce(async(t,r)=>{const o=await t;if(o)return o;const s=be(r)?{key:r}:r;if(!Object.keys(s).length)return;const{condition:i,consent:a,fn:c,key:f,loop:u,map:l,set:p,validate:d,value:m}=s,g={...n,mapping:r};if(i&&!await tt(i,e=>{if(e instanceof nt)throw e;return g.logger.error("mapping condition failed",{event:g.event,error:e}),!1})(e,g))return;if(a&&!Oe(a,g.consent))return m;let v=de(m)?m:e;if(c&&(v=await tt(c,e=>{if(e instanceof nt)throw e;g.logger.error("mapping fn failed",{event:g.event,error:e})})(e,g)),f&&(v=ke(e,f,m)),u){const[t,n]=u,r="this"===t?[e]:await ot(e,t,g);ue(r)&&(v=(await Promise.all(r.map(e=>ot(e,n,g)))).filter(de))}else l?v=await Object.entries(l).reduce(async(t,[n,r])=>{const o=await t,s=await ot(e,r,g);return de(s)&&(o[n]=s),o},Promise.resolve({})):p&&(v=await Promise.all(p.map(t=>st(e,t,g))));d&&!await tt(d,e=>{if(e instanceof nt)throw e;return g.logger.error("mapping validate failed",{event:g.event,error:e}),!1})(v,g)&&(v=void 0);const h=Qe(v);return de(h)?h:Qe(m)},Promise.resolve(void 0))}async function it(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await ot(e,r,{collector:n,event:e});e=$e(e,t,o)}));const{eventMapping:r,mappingKey:o}=await rt(e,t.mapping,n);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await ot(e,r,{collector:n,event:e});e=$e(e,t,o)}));let s=t.data&&await ot(e,t.data,{collector:n,event:e});const i=Boolean(r?.silent);if(r){if(r.ignore)return{event:e,data:s,mapping:r,mappingKey:o,ignore:!0,silent:i};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await ot(e,r.data,{collector:n,event:e});s=he(s)&&he(t)?ce(s,t):t}}const a=r?.include??t.include;if(a&&a.length>0){const t=je(e,a);Object.keys(t).length>0&&(s=he(s)?ce(t,s):s??t)}if(r?.remove&&he(s))for(const e of r.remove)s=Ae(s,e);return{event:e,data:s,mapping:r,mappingKey:o,ignore:!1,silent:i}}function at(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];he(r)&&he(o)?at(o,r):e[n]=r}return e}function ct(e,t){if(void 0===t.extend&&void 0===t.remove)return we(t);const n={...we(e)};if(t.extend){at(n,{...t.extend})}return delete n.extend,t.remove?n.remove=[...t.remove]:delete n.remove,n}function ft(e,t){const n=(e,r=[])=>new Proxy(e,{get(e,o){const s=e[o],i=[...r,o];return"function"==typeof s?s.prototype&&s.prototype.constructor===s?s:(...e)=>{const r=t(i,e,s);if(r&&"object"==typeof r)return n(r,i);const o=s(...e);return o&&"object"==typeof o?n(o,i):r}:s&&"object"==typeof s?n(s,i):s}});return n(e)}function ut(e,t){const n=(e,r=[])=>{if(!e||"object"!=typeof e)return e;const o=Array.isArray(e)?[]:{};for(const[s,i]of Object.entries(e)){const e=[...r,s];Array.isArray(o)?o[Number(s)]=t(i,e):o[s]=t(i,e),i&&"object"==typeof i&&"function"!=typeof i&&(Array.isArray(o)?o[Number(s)]=n(i,e):o[s]=n(i,e))}return o};return n(e)}function lt(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=lt();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 pt(e={}){return{collector:{},config:{},env:{},logger:lt(),id:"test",ingest:E("test"),...e}}function dt(e){const t=String(e),n=t.split("?")[1]||t;return et(()=>{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 s=n===r.length-1;if(ue(o)){const i=parseInt(t,10);s?o[i]=xe(e):(o[i]=o[i]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[i])}else he(o)&&(s?o[t]=xe(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function mt(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(ue(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):he(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 gt(e){return void 0===e||ye(e,"")?e:JSON.stringify(e)}function vt(e={}){return ce({"Content-Type":"application/json; charset=utf-8"},e)}function ht(e,t){return!1===e||void 0===e?null:!0===e?t:{...t,...e}}function yt(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function bt(e,t,n,r){const o=e;return function(...e){let s;const i="pre"+t,a="post"+t,c=n[i],f=n[a],u=(e,t)=>{r?r.warn(e,{error:t}):console.warn(e,t)};if(c)try{s=c({fn:o},...e)}catch(t){u(`Hook ${String(i)} failed, falling back to original function`,t),s=o(...e)}else s=o(...e);if(f)try{s=f({fn:o,result:s},...e)}catch(e){u(`Hook ${String(a)} failed, keeping original result`,e)}return s}}function wt(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 kt(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 s=r.sample,i="number"==typeof s&&Number.isFinite(s)?s:1;if(t.eventId&&!wt(t.eventId,i))return;const a=r.includeIn??"trace"===o,c=r.includeOut??"trace"===o,f=r.includeMappingKey??"trace"===o,u={...t};a||delete u.inEvent,c||(delete u.outEvent,delete u.calls),f||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 $t(e,t){return wt(e,t)}function At(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 St=/^[A-Za-z0-9_-]+$/;function It(e){if(!St.test(e))return null;const t=e.length%4==0?"":"=".repeat(4-e.length%4),n=e.replace(/-/g,"+").replace(/_/g,"/")+t,r=globalThis.atob;if(!r)return null;try{const e=r(n),t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}catch{return null}}function jt(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}function xt(e){const t=It(e);if(!t)return null;const n=function(e){let t="";for(let n=0;n<e.length;n++){const r=e[n];if(void 0===r||r>127)return null;t+=String.fromCharCode(r)}return t}(t);if(null===n)return null;try{return JSON.parse(n)}catch{return null}}function Ot(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function Et(e){if(!e)return null;const t=e.split("."),[n,r,o]=t;if(3!==t.length||!n||!r||!o)return null;const s=xt(n);if(!Ot(s))return null;const i=s.kid,a=s.alg;if("string"!=typeof i||"ES256"!==a)return null;const c=xt(r);if(!function(e){if(!Ot(e))return!1;const t=e;return"string"==typeof t.iss&&Array.isArray(t.aud)&&t.aud.every(e=>"string"==typeof e)&&"number"==typeof t.iat&&"number"==typeof t.sxp&&"string"==typeof t.art&&St.test(t.art)&&"string"==typeof t.sri&&"string"==typeof t.pb&&"activate"===t.cap&&"string"==typeof t.jti&&"string"==typeof t.pid&&(void 0===t.ses||"string"==typeof t.ses)&&(void 0===t.sb||"string"==typeof t.sb)}(c))return null;const f=It(o);return f&&64===f.byteLength?{grant:c,kid:i,signed:jt(`${n}.${r}`),signature:f}:null}var _t=9e5,Mt=6e4,Nt=39e5;async function Tt(e,t){const n=Et(e);if(!n)return{ok:!1,reason:"malformed"};const{grant:r,kid:o,signed:s,signature:i}=n;if(r.iss!==t.iss)return{ok:!1,reason:"foreign-issuer"};if("activate"!==r.cap)return{ok:!1,reason:"cap-mismatch"};if(1e3*r.iat>t.now+6e4)return{ok:!1,reason:"expired"};if(1e3*r.sxp-1e3*r.iat>Nt)return{ok:!1,reason:"expired"};const a="url"===t.source?Math.min(1e3*r.iat+_t,1e3*r.sxp):1e3*r.sxp;if(t.now>=a)return{ok:!1,reason:"expired"};if(void 0!==t.origin&&!r.aud.includes(t.origin))return{ok:!1,reason:"aud-mismatch"};if(t.acceptForeign){const e=t.demoAllowlist??[];if(1!==r.aud.length||!r.aud.every(t=>e.includes(t)))return{ok:!1,reason:"aud-mismatch"}}if(!(t.acceptForeign||t.pb&&r.pb===t.pb))return{ok:!1,reason:"pb-mismatch"};const c=void 0!==r.ses||void 0!==r.sb;if(t.expectSession){if(r.ses!==t.expectSession.ses)return{ok:!1,reason:"sb-mismatch"};if(!r.sb||r.sb!==t.expectSession.sb)return{ok:!1,reason:"sb-mismatch"}}else if(c)return{ok:!1,reason:"sb-mismatch"};const f=t.keyring.find(e=>e.kid===o);if(!f)return{ok:!1,reason:"kid-mismatch"};const u=t.crypto??globalThis.crypto,l=u?.subtle;if(!l)return{ok:!1,reason:"no-subtle"};const p=function(e){return It(e)}(f.spki);if(!p)return{ok:!1,reason:"kid-mismatch"};try{const e=await l.importKey("spki",p,{name:"ECDSA",namedCurve:"P-256"},!1,["verify"]);if(!await l.verify({name:"ECDSA",hash:"SHA-256"},e,i,s))return{ok:!1,reason:"bad-signature"}}catch{return{ok:!1,reason:"bad-signature"}}return{ok:!0,grant:r}}var Ct="elbPreviewSession",Pt="elbObserve",Rt="[walkerOS:preview]",zt=globalThis;function Dt(e){let t=null;return{get(){try{return zt.window?.localStorage.getItem(e)??t}catch{return t}},set(n){try{zt.window?.localStorage.setItem(e,n)}catch{t=n}},clear(){t=null;try{zt.window?.localStorage.removeItem(e)}catch{}}}}function Ft(){const e=zt.window,t=zt.URLSearchParams;if(e&&t)try{const n=e.location.href,r=n.indexOf("#"),o=r>=0?n.slice(r):"",s=r>=0?n.slice(0,r):n,i=s.indexOf("?"),a=i>=0?s.slice(0,i):s,c=new t(i>=0?s.slice(i+1):"");c.delete("elbPreview"),c.delete("elbPreviewSession"),c.delete("elbObserve");const f=c.toString();e.history.replaceState({},"",`${a}${f?`?${f}`:""}${o}`)}catch{}}async function Ut(e){const t=zt.window;if(!t||!zt.document)return!1;const n=Dt("elbPreview"),r=Dt(Ct),o=Dt(Pt),s=e.now??(()=>Date.now()),i=e=>zt.console?.warn(`${Rt} ${e}`);let a=null,c=null,f=null;const u=zt.URLSearchParams;if(u)try{const e=new u(t.location.search.replace(/^\?/,"")),n=e.getAll("elbPreview");a=n.length>0?n[n.length-1]??null:null;const r=e.getAll("elbPreviewSession");c=r.length>0?r[r.length-1]??null:null;const o=e.getAll("elbObserve");f=o.length>0?o[o.length-1]??null:null}catch{a=null,c=null,f=null}if("off"===a)return n.clear(),r.clear(),o.clear(),Ft(),!1;const l=n.get();if(!a&&!l)return!1;const p=(n,r)=>Tt(n,{keyring:e.keyring,iss:e.iss,origin:t.location.origin,pb:e.pb,acceptForeign:e.acceptForeign,demoAllowlist:e.demoAllowlist,source:r,now:s(),crypto:e.crypto});let d=null;if(a){const e=await p(a,"url");e.ok?(d=e.grant,n.set(a),c?r.set(c):r.clear(),f?o.set(f):o.clear()):i(e.reason),Ft()}if(!d&&l){const e=await p(l,"storage");e.ok?d=e.grant:(i(e.reason),"no-subtle"!==e.reason&&(n.clear(),r.clear(),o.clear()))}if(!d)return!1;const m=`https://${e.previewOrigin}/preview/${d.art}.js`,g=await function(e,t){return new Promise(n=>{const r=zt.document;if(!r)return void n(!1);const o=r.createElement("script");let s,i=!1;const a=e=>{i||(i=!0,void 0!==s&&zt.clearTimeout?.(s),!e&&o.parentNode&&o.parentNode.removeChild(o),n(e))};s=zt.setTimeout?.(()=>a(!1),5e3),o.onload=()=>a(!0),o.onerror=()=>a(!1),o.setAttribute("integrity",t),o.setAttribute("crossorigin","anonymous"),o.src=e,r.head.appendChild(o)})}(m,d.sri);return g?(zt.console?.info(`${Rt} active ${d.art} ends ${new Date(1e3*d.sxp).toISOString()}`),!0):(i("swap-failed"),n.clear(),r.clear(),o.clear(),!1)}var Lt={error:5,skip:4,out:3,in:2,init:1,flush:0},qt="\0none",Kt="\0";function Wt(e,t){return`${e??qt}${Kt}${t}`}function Bt(e){const t=Date.parse(e);return Number.isNaN(t)?0:t}function Zt(e){return""!==e.eventId?e.eventId:function(e){if("object"!=typeof e||null===e)return;if(!("event"in e))return;const t=e.event;if("object"!=typeof t||null===t)return;if(!("id"in t))return;const n=t.id;return"string"==typeof n&&""!==n?n:void 0}(e.outEvent)}function Vt(e,t){let n=t;for(;;){const t=e.get(n);if(void 0===t||t===n)break;n=t}let r=t;for(;r!==n;){const t=e.get(r);if(e.set(r,n),void 0===t)break;r=t}return n}function Ht(e,t,n){const r=Vt(e,t),o=Vt(e,n);r!==o&&(r<o?e.set(o,r):e.set(r,o))}function Jt(e){for(const t of e)if(t.traceId)return t.traceId}function Gt(e){switch(e){case"error":return"error";case"skip":return"skipped";case"out":return"done";case"in":case"init":case"flush":return"pending"}}function Yt(e){return"out"===e.terminalPhase||"error"===e.terminalPhase||"skip"===e.terminalPhase||!0===e.batched}function Xt(e){return"done"===e.status&&("transformer"!==e.stepType||null!==e.out&&void 0!==e.out)}function Qt(e,t,n,r){const o=n.get(Wt(e.node.platform,t));if(void 0!==o)return o;const s=r.get(t);return void 0!==s&&1===s.length?s[0]:void 0}function en(e){const t=new Map,n=new Map;e.nodes.forEach((e,r)=>{const o={node:e,rank:r,key:Wt(e.platform,e.stepId)};t.has(o.key)||t.set(o.key,o);const s=n.get(e.stepId);s?s.push(o):n.set(e.stepId,[o])});const r=new Map,o=new Set;for(const e of t.values()){const s=[];for(const r of e.node.downstream){const i=Qt(e,r,t,n);void 0!==i&&(s.push(i),o.add(i.key))}r.set(e.key,s)}const s=[];for(const e of t.values())o.has(e.key)||s.push(e);return s.sort((e,t)=>e.rank-t.rank),{byKey:t,byStepId:n,edges:r,roots:s}}function tn(e,t,n){const r=e.byKey.get(Wt(n,t));if(void 0!==r)return r;const o=e.byKey.get(Wt(void 0,t));if(void 0!==o)return o;const s=e.byStepId.get(t);return void 0!==s&&1===s.length?s[0]:void 0}function nn(e,t,n,r,o,s){return s-n<o?"pending":void 0!==r?function(e,t,n){const r=t=>e.find(e=>e.stepId===t.node.stepId&&(void 0===t.node.platform||e.platform===t.node.platform)),o=n.roots.filter(e=>void 0===e.node.platform||t.includes(e.node.platform));if(0===o.length)return e.every(Yt)?"complete":"partial";const s=new Map,i=o;for(;i.length>0;){const e=i.shift();if(void 0===e)break;if(s.has(e.key))continue;s.set(e.key,e);const t=r(e);if(void 0!==t&&Xt(t)){const t=n.edges.get(e.key);if(void 0!==t)for(const e of t)s.has(e.key)||i.push(e)}}for(const e of s.values()){const t=r(e);if(void 0===t||!Yt(t))return"partial"}return"complete"}(e,t,r):e.every(Yt)?"complete":"partial"}function rn(e){let t=e[0];for(const n of e)n.elapsedMs<t.elapsedMs&&(t=n);const n=[],r=new Map;let o=!1;for(const t of e)if("flush"!==t.phase){if(void 0!==t.branchId){const e=r.get(t.branchId);e?e.push(t):r.set(t.branchId,[t]);continue}n.push(t)}else o=!0;const s=[...r.values()].flat(),i=n.length>0?n:s.length>0?s:e;let a,c,f,u,l,p,d,m,g,v,h=i[0],y=i[0];for(const e of i)e.elapsedMs<h.elapsedMs&&(h=e),Lt[e.phase]>Lt[y.phase]&&(y=e),"out"===e.phase&&(a=e),void 0!==e.inEvent&&void 0===c&&(c=e.inEvent),void 0!==e.outEvent&&(f=e.outEvent),void 0!==e.mappingKey&&(u=e.mappingKey),void 0!==e.contractRule&&(l=e.contractRule),void 0!==e.consent&&(p=e.consent),void 0!==e.consentApplied&&(d=e.consentApplied),void 0!==e.meta&&(m=e.meta),void 0!==e.parentEventId&&void 0===g&&(g=e.parentEventId),void 0!==e.release&&(v=e.release);const b=y.phase,w=a?.durationMs,k="error"===b?y.error:void 0,$="skip"===b?y.skipReason:void 0,A=a?.calls,S="out"===y.phase&&void 0!==y.batch||void 0,I=!(!o||!0!==S)||void 0,j=r.size>0?[...r.entries()].sort(([e],[t])=>e<t?-1:e>t?1:0).map(([e,t])=>function(e,t){let n,r,o=t[0];for(const e of t)Lt[e.phase]>Lt[o.phase]&&(o=e),"out"===e.phase&&(n=e),void 0!==e.outEvent&&(r=e.outEvent);const s=o.phase,i=n?.durationMs,a="skip"===s?o.skipReason:void 0,c="error"===s?o.error:void 0,f=n?.calls;return{branchId:e,status:Gt(s),terminalPhase:s,...void 0!==i?{durationMs:i}:{},...void 0!==a?{skipReason:a}:{},...void 0!==c?{error:c}:{},...void 0!==r?{out:r}:{},...void 0!==f?{calls:f}:{}}}(e,t)):void 0;return{stepId:h.stepId,stepType:h.stepType,eventId:h.eventId,status:Gt(b),terminalPhase:b,startedAtMs:t.elapsedMs,timestamp:t.timestamp,...void 0!==h.platform?{platform:h.platform}:{},...void 0!==g?{parentEventId:g}:{},...void 0!==w?{durationMs:w}:{},...void 0!==c?{in:c}:{},...void 0!==f?{out:f}:{},...void 0!==k?{error:k}:{},...void 0!==$?{skipReason:$}:{},...void 0!==u?{mappingKey:u}:{},...void 0!==l?{contractRule:l}:{},...void 0!==p?{consent:p}:{},...void 0!==d?{consentApplied:d}:{},...void 0!==A?{calls:A}:{},...void 0!==j?{branches:j}:{},...void 0!==S?{batched:S}:{},...void 0!==I?{flushConfirmed:I}:{},...void 0!==v?{release:v}:{},...void 0!==m?{meta:m}:{}}}function on(e,t){const n=e.map(e=>({hop:e,rank:void 0!==t?tn(t,e.stepId,e.platform)?.rank??Number.MAX_SAFE_INTEGER:0}));return n.sort((e,t)=>e.rank!==t.rank?e.rank-t.rank:e.hop.startedAtMs!==t.hop.startedAtMs?e.hop.startedAtMs-t.hop.startedAtMs:e.hop.stepId<t.hop.stepId?-1:e.hop.stepId>t.hop.stepId?1:0),n.map(e=>e.hop)}function sn(e){const t=e.filter(e=>"collector"===e.stepType&&"in"===e.phase),n=t.length>0?t:e;let r=n[0],o=Bt(r.timestamp);for(const e of n){const t=Bt(e.timestamp);t<o&&(o=t,r=e)}const s=function(e){if("object"==typeof e&&null!==e&&"name"in e&&"string"==typeof e.name)return e.name}(r.inEvent);return{eventId:r.eventId,timestamp:r.timestamp,...void 0!==s?{name:s}:{},...void 0!==r.sourceId?{sourceId:r.sourceId}:{},...void 0!==r.platform?{platform:r.platform}:{}}}function an(e,t,n,r,o){const{topo:s}=o,i=new Map;for(const e of n){const t=Wt(e.platform,e.stepId),n=i.get(t);n?n.push(e):i.set(t,[e])}const a=[...i.values()].map(rn),c=new Map;for(const e of a){const t=e.platform??qt;let n=c.get(t);n||(n={...void 0!==e.platform?{platform:e.platform}:{},hops:[],ownedEventIds:new Set,parentEventIds:new Set,minEpoch:Number.POSITIVE_INFINITY},c.set(t,n)),n.hops.push(e),n.ownedEventIds.add(e.eventId),void 0!==e.parentEventId&&n.parentEventIds.add(e.parentEventId),n.minEpoch=Math.min(n.minEpoch,Bt(e.timestamp))}const f=function(e){const t=new Map,n=e.map((e,t)=>t).sort((t,n)=>{const r=e[t].platform??qt,o=e[n].platform??qt;return r<o?-1:r>o?1:0});e.forEach((r,o)=>{if(0!==r.parentEventIds.size)for(const s of n){if(s===o)continue;let n=!1;for(const t of e[s].ownedEventIds)if(r.parentEventIds.has(t)){n=!0;break}if(n){t.set(o,s);break}}});const r=e=>{let n=0,r=e;const o=new Set;for(;!o.has(r);){o.add(r);const e=t.get(r);if(void 0===e)break;r=e,n+=1}return n};return e.map((e,t)=>({seg:e,i:t,depth:r(t)})).sort((e,t)=>{if(e.depth!==t.depth)return e.depth-t.depth;if(e.seg.minEpoch!==t.seg.minEpoch)return e.seg.minEpoch-t.seg.minEpoch;const n=e.seg.platform??qt,r=t.seg.platform??qt;return n<r?-1:n>r?1:0}).map(e=>e.seg)}([...c.values()]),u=[],l=[];for(const e of f){void 0===e.platform||l.includes(e.platform)||l.push(e.platform);for(const t of on(e.hops,s))u.push(t)}let p=Number.POSITIVE_INFINITY,d=Number.NEGATIVE_INFINITY;for(const e of n){const t=Bt(e.timestamp);t<p&&(p=t),t>d&&(d=t)}const m=nn(u,l,d,s,o.settleMs,o.now),g=function(e,t,n,r){for(const o of r)if((void 0===o.platform||e.includes(o.platform))&&t<=o.toMs&&o.fromMs<=n)return!0;return!1}(l,p,d,o.gaps);return{id:e,correlation:"event",...void 0!==t?{traceId:t}:{},entry:sn(r),hops:u,platforms:l,status:m,lossy:g,firstTimestamp:p,lastTimestamp:d,totalMs:d-p}}function cn(e,t){const n={...void 0!==t?.topology?{topo:en(t.topology)}:{},settleMs:t?.settleMs??15e3,now:t?.now??Date.now(),gaps:[]},r=function(e){const t=new Set,n=[];for(const r of e){const e=void 0!==r.seq&&r.traceId?`seq${Kt}${r.platform??""}${Kt}${r.traceId}${Kt}${r.seq}`:void 0!==r.seq?`seqt${Kt}${r.platform??""}${Kt}${r.stepId}${Kt}${r.phase}${Kt}${r.eventId}${Kt}${r.branchId??""}${Kt}${r.elapsedMs}${Kt}${r.timestamp}${Kt}${r.seq}`:`tuple${Kt}${r.platform??""}${Kt}${r.stepId}${Kt}${r.phase}${Kt}${r.eventId}${Kt}${r.branchId??""}${Kt}${r.elapsedMs}`;t.has(e)||(t.add(e),n.push(r))}return n}(e);n.gaps=function(e){const t=new Map;for(const n of e){if(void 0===n.seq)continue;const e=n.platform??qt,r=t.get(e);r?r.push(n):t.set(e,[n])}const n=[];for(const e of[...t.keys()].sort()){const r=t.get(e);if(void 0===r)continue;const o=[...r].sort((e,t)=>{const n=Bt(e.timestamp),r=Bt(t.timestamp);return n!==r?n-r:(e.seq??0)-(t.seq??0)});let s,i=0;for(const e of o){const t=e.seq;if(void 0!==t)if(void 0!==s){if(t!==i)if(t!==i+1){if(t>i+1){const r=e.platform;n.push({...void 0!==r?{platform:r}:{},fromMs:Bt(s.timestamp),toMs:Bt(e.timestamp),afterSeq:i,beforeSeq:t})}s=e,i=t}else s=e,i=t}else s=e,i=t}}return n}(r);const o=[],s=[];for(const e of r){const t=Zt(e);void 0!==t?o.push({record:t===e.eventId?e:{...e,eventId:t},eventId:t}):s.push(e)}o.sort((e,t)=>function(e,t){const n=e.platform??"",r=t.platform??"";if(n!==r)return n<r?-1:1;if(e.stepId!==t.stepId)return e.stepId<t.stepId?-1:1;if(e.phase!==t.phase)return Lt[e.phase]-Lt[t.phase];if(e.eventId!==t.eventId)return e.eventId<t.eventId?-1:1;const o=e.branchId??"",s=t.branchId??"";if(o!==s)return o<s?-1:1;if(e.elapsedMs!==t.elapsedMs)return e.elapsedMs-t.elapsedMs;const i=e.seq??-1,a=t.seq??-1;return i!==a?i-a:e.timestamp!==t.timestamp?e.timestamp<t.timestamp?-1:1:0}(e.record,t.record));const i=new Set(o.map(e=>e.eventId)),a=new Map,c=new Map;for(const{record:e,eventId:t}of o){const n=e.parentEventId;if(void 0===n||n===t||!i.has(n))continue;const r=a.get(t);r?r.add(n):a.set(t,new Set([n]));const o=c.get(n);o?o.add(t):c.set(n,new Set([t]))}const f=new Map;for(const[e,t]of c)if(1===t.size)for(const n of t)Ht(f,n,e);const u=new Map;for(const e of o){const t=Vt(f,e.eventId);let n=u.get(t);n||(n={entries:[],eventIds:new Set},u.set(t,n)),n.entries.push(e),n.eventIds.add(e.eventId)}const l=[...u.values()].map(e=>{const t=function(e,t){const n=[...e].sort();for(const r of n){const n=t.get(r);if(void 0===n)return r;let o=!1;for(const t of n)if(e.has(t)){o=!0;break}if(!o)return r}return n[0]}(e.eventIds,a),r=e.entries.map(e=>e.record),o=e.entries.filter(e=>e.eventId===t).map(e=>e.record),s=Jt(o)??Jt(r);return an(t,s,r,o,n)});l.sort((e,t)=>e.firstTimestamp!==t.firstTimestamp?e.firstTimestamp-t.firstTimestamp:e.id<t.id?-1:e.id>t.id?1:0);const p=function(e){const t=new Map;for(const n of e){if(!n.traceId)continue;const e=n.platform??qt,r=Bt(n.timestamp);let o=t.get(e);void 0===o&&(o={...void 0!==n.platform?{platform:n.platform}:{},count:0,fromMs:r,toMs:r,stepIds:new Set},t.set(e,o)),o.count+=1,r<o.fromMs&&(o.fromMs=r),r>o.toMs&&(o.toMs=r),o.stepIds.add(n.stepId)}return[...t.entries()].sort(([e],[t])=>e<t?-1:e>t?1:0).map(([,e])=>({...void 0!==e.platform?{platform:e.platform}:{},count:e.count,fromMs:e.fromMs,toMs:e.toMs,stepIds:[...e.stepIds].sort()}))}(s);return{journeys:l,gaps:n.gaps,...p.length>0?{unattributed:p}:{}}}var fn=null;function un(){return fn}function ln(e){fn=e}function pn(e,t){if(0===e.observers.size)return;const n=Array.from(e.observers);for(const e of n)try{e(t)}catch{}}function dn(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,s=e.maxBodyBytes,i="number"==typeof s&&Number.isFinite(s)&&s>=1?Math.floor(s):6e4,a=e.fetch??((e,t)=>globalThis.fetch(e,t)),c=e.onError??(()=>{}),f={};for(const[t,n]of Object.entries(e.headers??{})){const e=t.toLowerCase();"authorization"!==e&&"content-type"!==e&&(f[t]=n)}let u=[],l=null,p=0;function d(e){const t={v:1,records:e},n=JSON.stringify(t);if(e.length<=1)return[n];if(function(e){let t=0;for(let n=0;n<e.length;n++){const r=e.charCodeAt(n);if(r<128)t+=1;else if(r<2048)t+=2;else if(r>=55296&&r<=56319&&n+1<e.length){const r=e.charCodeAt(n+1);r>=56320&&r<=57343?(t+=4,n++):t+=3}else t+=3}return t}(n)<=i)return[n];const r=Math.floor(e.length/2);return[...d(e.slice(0,r)),...d(e.slice(r))]}function m(t){return Promise.resolve().then(()=>a(e.url,{method:"POST",headers:{...f,"Content-Type":"application/json",Authorization:`Bearer ${e.token}`},body:t})).then(t=>{t&&"object"==typeof t&&"number"==typeof t.status&&e.onStatus?.(t.status),t&&"object"==typeof t&&"ok"in t&&!t.ok&&c(new Error(`Observer responded ${t.status}`))}).catch(e=>{c(e)})}function g(){if(0===u.length)return;const e=u;u=[],l&&(clearTimeout(l),l=null);const t=d(e);(async()=>{for(const e of t)await m(e)})()}return e=>{u.push({...e,seq:++p}),u.length>=o?g():null===l&&(l=setTimeout(g,n))}}function mn(e){return e?{userAgent:e,browser:gn(e),browserVersion:vn(e),os:hn(e),osVersion:yn(e),deviceType:bn(e)}:{}}function gn(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 vn(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 hn(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 yn(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function bn(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 wn(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function kn(e){const t=wn(e);return new Function("value","context",t)}function $n(e){const t=wn(e);return new Function("value","context",t)}function An(e){const t=wn(e);return new Function("value","context",t)}function Sn(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function In(e,t){const n=t?.version||"latest",r=t?.timeout||1e4,o=new AbortController,s=setTimeout(()=>o.abort(),r),i=o.signal,a=t?.client?{"X-Walkeros-Client":t.client}:void 0;try{if(t?.baseUrl){const r=`${t.baseUrl}/api/packages/${encodeURIComponent(e)}?version=${encodeURIComponent(n)}&expand=all`,o=await fetch(r,{signal:i,...a&&{headers:a}});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||{},s=n.hints,i=n.hintKeys??(s?Object.keys(s):[]),a=n.exampleSummaries??[],c=n.platform;return{packageName:n.package||e,version:"string"==typeof n.version?n.version:t,...void 0!==n.description&&{description:n.description},...void 0!==n.type&&{type:n.type},...void 0!==c&&{platform:c},schemas:r,examples:o,...void 0!==n.docs&&{docs:n.docs},...void 0!==n.source&&{source:n.source},...s&&Object.keys(s).length>0?{hints:s}:{},hintKeys:i,exampleSummaries:a}}(e,n,await o.json())}const r=`https://cdn.jsdelivr.net/npm/${e}@${n}`,o=await jn(`${r}/package.json`,i,a);return function(e,t,n,r){const o=r.$meta||{},s=r.schemas||{},i=r.examples||{},a=r.hints,c=a?Object.keys(a):[],f=[],u=i.step||{};for(const[e,t]of Object.entries(u)){const n=t,r={name:e};"string"==typeof n?.description&&(r.description=n.description),f.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:Sn(o.platform),schemas:s,examples:i,...l?{docs:l}:{},...p?{source:p}:{},...a&&Object.keys(a).length>0?{hints:a}:{},hintKeys:c,exampleSummaries:f}}(e,n,o,await jn(`${r}/dist/walkerOS.json`,i,a))}finally{clearTimeout(s)}}async function jn(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 xn(e,t){const n=await In(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}:{}}}var On="observe";function En(e){if("object"!=typeof e||null===e)return!1;if(!("paths"in e)||!("record"in e))return!1;const{paths:t,record:n}=e;return Array.isArray(t)&&t.every(e=>"string"==typeof e)&&"function"==typeof n}var _n="call:";function Mn(e){const t=(e.startsWith(_n)?e.slice(5):e).split(".");return t.some(e=>""===e)?[]:t}var Nn="obsw_";function Tn(e){if(!e.startsWith(Nn))return null;const t=e.slice(5).split("."),[n,r,o]=t;return 3===t.length&&n&&r&&o?{pb:n,ses:r,secret:o}:null}function Cn(e){const t=e.WALKEROS_OBSERVER_URL,n=e.WALKEROS_DEPLOYMENT_ID,r=e.WALKEROS_INGEST_TOKEN;if(!t||!n||!r)return;const o={url:t,sessionId:n,token:r},s=e.WALKEROS_OBSERVE_LEVEL;if(void 0!==s){if("off"!==(i=s)&&"standard"!==i&&"trace"!==i)return;o.level=s}var i;return o}function Pn(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function Rn(e,t){let n,r,o,s;if(e instanceof Error){n=e.message;const t=e;t.code&&(o=t.code),Array.isArray(t.details)&&(s=t.details)}else if("string"==typeof e)n=e;else if(e&&"object"==typeof e&&"issues"in e&&Array.isArray(e.issues)){const t=e.issues;n=t.map(e=>e.message).join("; "),r=t[0]?.path?.join(".")||void 0}else n=e&&"object"==typeof e&&"message"in e?String(e.message):"Unknown error";const i={error:n};return t&&(i.hint=t),r&&(i.path=r),o&&(i.code=o),s&&(i.details=s),{content:[{type:"text",text:JSON.stringify(i)}],structuredContent:i,isError:!0}}function zn(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function Dn(e){if(void 0===e||"*"===e)return()=>!0;if("and"in e){const t=e.and.map(Dn);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(Dn);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value:r,not:o}=e,s=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=ke(e,t),r=s(n);return o?!r:r}}(e)}function Fn(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&("match"in e||"next"in e||"one"in e||"many"in e)}function Un(e){return Array.isArray(e)&&e.length>0&&e.every(e=>Fn(e))}function Ln(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:qn(e)??{type:"chain",value:[]}};const t=e;return{match:t.match?Dn(t.match):()=>!0,next:qn(t)??{type:"chain",value:[]}}})}function qn(e){if(null==e)return;if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(Un(e))return qn({one:e});if(e.every(e=>"string"==typeof e))return{type:"chain",value:e};const t=[];for(const n of e){const e=qn(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:Dn(t.match),next:qn(t.next)}:qn(t.next);if("one"in t&&t.one){const e=Ln(t.one);return t.match?{type:"gate",match:Dn(t.match),next:{type:"one",routes:e}}:{type:"one",routes:e}}if("many"in t&&t.many){const e=Ln(t.many);return t.match?{type:"gate",match:Dn(t.match),next:{type:"many",routes:e}}:{type:"many",routes:e}}return t.match?{type:"gate",match:Dn(t.match)}:void 0}var Kn=new WeakMap;function Wn(e,t={}){if(null==e)return[];let n;if("object"==typeof e){const t=Kn.get(e);t?n=t:(n=qn(e),n&&Kn.set(e,n))}else n=qn(e);if(!n)return[];const r=Bn(n,t);return void 0===r?[]:Array.isArray(r)?r:[r]}function Bn(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 Bn(e.next,t)}if("sequence"===e.type){const n=[];for(const r of e.value){const e=Bn(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=Bn(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 Bn(n.next,t)}}var Zn="__walkeros_cache_v__",Vn="__walkeros_cache_exp__";function Hn(e,t,n=Date.now){const r={[Zn]:e};return void 0!==t&&(r[Vn]=n()+t),r}function Jn(e,t=Date.now){if(void 0===e)return;if(null===(n=e)||"object"!=typeof n||Array.isArray(n)||!(Zn in e))return{value:e};var n;const r=e[Vn];return"number"==typeof r&&t()>r?{expired:!0}:{value:e[Zn]}}var Gn="__walkeros_cache__",Yn=class extends Error{constructor(e,t){super(e,t),this.name="StoreCodecError"}};function Xn(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function Qn(e){if(Buffer.isBuffer(e))return{[Gn]:"buffer",d:e.toString("base64")};if(e instanceof Uint8Array)return{[Gn]:"buffer",d:Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64")};if(e instanceof ArrayBuffer)return{[Gn]:"buffer",d:Buffer.from(e).toString("base64")};if(Array.isArray(e))return e.map(Qn);if(Xn(e)){if(Gn in e){const t={};for(const[n,r]of Object.entries(e))t[n]=Qn(r);return{[Gn]:"escape",d:t}}const t={};for(const[n,r]of Object.entries(e))t[n]=Qn(r);return t}return e}function er(e,t){if(Xn(e)){if(Gn in e){const n=e[Gn],r=e.d;if("buffer"===n&&"string"==typeof r)return t(Buffer.from(r,"base64"));if("escape"===n&&Xn(r)){const e={};for(const[n,o]of Object.entries(r))e[n]=er(o,t);return e}}const n={};for(const[r,o]of Object.entries(e))n[r]=er(o,t);return n}return Array.isArray(e)?e.map(e=>er(e,t)):e}function tr(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function nr(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||nr(e)):!!Xn(e)&&Object.values(e).every(e=>void 0===e||nr(e)))}function rr(e){let t;try{t=JSON.stringify(Qn(e))}catch(e){throw new Yn("Failed to serialize store value (likely a cyclic structure).",{cause:e})}return new Uint8Array(Buffer.from(t,"utf8"))}function or(e){const t="string"==typeof e?e:Buffer.from(e).toString("utf8"),n=er(JSON.parse(t),tr);if(!nr(n))throw new Yn("Restored value is not a valid StoreValue.");return n}function sr(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function ir(e){return{stop:e.stop??!1,storeId:e.store,namespace:e.namespace,rules:e.rules.map(e=>({match:e.match?Dn(e.match):()=>!0,key:e.key,ttl:e.ttl,update:e.update}))}}async function ar(e,t,n,r){const o=e.rules.find(e=>e.match(n));if(!o)return null;const s=o.key.map(e=>String(ke(n,e)??""));if(s.every(e=>""===e))return null;const i=s.join(":"),a=r??e.namespace,c=a?`${a}:${i}`:i,f=Jn(await t.get(c));if(void 0===f)return{status:"MISS",key:c,rule:o};if("expired"in f){try{await t.delete(c)}catch{}return{status:"MISS",key:c,rule:o}}return{status:"HIT",key:c,value:f.value,rule:o}}function cr(e,t,n,r){if(!nr(n))return;const o=1e3*r,s=e.set(t,Hn(n,o),o);s instanceof Promise&&s.catch(()=>{})}async function fr(e,t,n,r){if(!t)return e;let o=e;for(const[e,s]of Object.entries(t)){o=$e(o,e,await ot(n,s,{collector:r}))}return o}function ur(e){return ue(e)?e:[e]}async function lr(e,t,n,r){let o=n;for(const n of e)await tt(async()=>{const e=t(n.store);if(!e)return;const s=await ot(o,n.key,{collector:r,event:o});if(!be(s))return;const i=n.store?s:`state:${s}`;if("set"===n.mode){const t=await ot(o,n.value,{collector:r,event:o});if(!de(t))return;await e.set(i,t)}else{const t=be(a=n.value)?a:he(a)&&be(a.key)?a.key:void 0;if(!t)return;const r=await e.get(i);if(!de(r))return;o=$e(o,t,r)}var a},e=>{if(e instanceof nt)throw e;r.logger?.error?.("[state] operation failed",e)})();return o}var pr={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"]},dr=["config","env","variables","examples","disabled","id","logger","mock","chainMocks"],mr={Source:["primary"],Transformer:[],Destination:[],Store:[]},gr=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function vr(e,t){const n=function(e){return new Set([...pr[e],...dr,...mr[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,s=void 0!==e.code;return s&&"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.`}:s&&("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."}:s&&r?{ok:!1,code:"CONFLICT",key:"package",reason:"Cannot specify both `code` and `package`. Use one or the other."}:s&&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&&gr.test(e.import)?{ok:!0}:{ok:!1,code:"INVALID_IMPORT",key:"import",reason:`import must match ${gr.source}. Got: ${JSON.stringify(e.import)}.`}}function hr(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 yr(e){return 0===e.length?"// no output":e.map(br).join(";\n\n")}function br(e){const[t,...n]=e,r=n.map(wr).join(", ");return"return"===t?r?`return ${r}`:"return":`${t}(${r})`}function wr(e){return void 0===e?"undefined":null===e?"null":"function"==typeof e?"[Function]":JSON.stringify(e,null,2)}export{Mt as CLOCK_SKEW_MS,n as Cache,r as Collector,O as Const,s as Context,i as Destination,Q as ENV_MARKER_PREFIX,c as Elb,nt as FatalError,x as Hint,f as Hooks,l as Level,A as Lifecycle,u as Logger,Nt as MAX_SESSION_MS,p as Mapping,j as Matcher,On as OBSERVE_ENV_KEY,Pt as OBSERVE_STORAGE_KEY,d as On,J as REF_CODE_PREFIX,B as REF_CONTRACT,W as REF_ENV,Z as REF_FLOW,H as REF_SECRET,V as REF_STORE,q as REF_VAR_FULL,K as REF_VAR_INLINE,v as Request,ee as SECRET_MARKER_PREFIX,Ct as SESSION_STORAGE_KEY,pr as STEP_OPERATIVE_FIELDS,I as Simulation,h as Source,b as Store,Yn as StoreCodecError,m as Transformer,$ as Trigger,_t as URL_WINDOW_MS,S as WalkerOS,M as anonymizeIP,lr as applyState,fr as applyUpdate,cn as assembleJourneys,ce as assign,_ as branch,Ut as browserSwapActivator,sr as buildCacheContext,Qe as castToProperty,xe as castValue,ar as checkCache,we as clone,ir as compileCache,Dn as compileMatcher,ur as compileState,dn as createBatchedPoster,Ee as createDestination,Re as createEvent,E as createIngest,Je as createLogger,pt as createMockContext,lt as createMockLogger,zn as createRespond,kt as createTelemetryObserver,We as debounce,_e as deepMerge,Le as defaultClickIds,Ae as deleteByPath,or as deserializeStoreValue,pn as emitStep,In as fetchPackage,xn as fetchPackageSchema,Xe as filterValues,je as flattenIncludeSections,yr as formatOut,gn as getBrowser,vn as getBrowserVersion,ke as getByPath,bn as getDeviceType,ze as getEvent,se as getFlowSettings,Oe as getGrantedConsent,vt as getHeaders,Me as getId,rt as getMappingEvent,ot as getMappingValue,qe as getMarketingParameters,Wn as getNextSteps,hn as getOS,yn as getOSVersion,ie as getPlatform,Pe as getSpanId,De as getTraceId,un as getTraceUntil,fe as isArguments,ue as isArray,le as isBoolean,pe as isCommand,de as isDefined,me as isElementOrDocument,En as isEnvObserve,ge as isFunction,ve as isNumber,he as isObject,hr as isPathStepEntry,Ye as isPropertyType,Un as isRouteArray,Fn as isRouteConfigEntry,ye as isSameType,$t as isSampled,nr as isStoreValue,be as isString,Rn as mcpError,Pn as mcpResult,D as mergeContractSchemas,ct as mergeMappingRule,ft as mockEnv,Cn as observeFromEnv,oe as packageNameToVariable,Mn as parseCallPath,Et as parseGrant,Tn as parseObserveCredential,Ue as parseTraceparent,mn as parseUserAgent,it as processEventMapping,Jn as readCacheEnvelope,dt as requestToData,mt as requestToParameter,z as resolveContracts,ht as resolveSetup,At as resolveTelemetryOptions,Y as scanFlowRefs,rr as serializeStoreValue,$e as setByPath,ln as setTraceUntil,o as stepId,cr as storeCache,Be as throttle,N as throwError,gt as transformData,ut as traverseEnv,yt as trim,et as tryCatch,tt as tryCatchAsync,bt as useHooks,vr as validateStepEntry,Tt as verifyActivation,ne as walkPath,Hn as wrapCacheEnvelope,kn as wrapCondition,$n as wrapFn,An 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 s={},i={};function a(e,t){const n=e.destinations[t];if(!n)throw new Error(`Destination not found: ${t}`);return n}t(i,{getDestination:()=>a});var c={},f={},u={};t(u,{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 h={},v={};function y(e,t){const n=e.sources[t];if(!n)throw new Error(`Source not found: ${t}`);return n}t(v,{getSource:()=>y});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 $={},S={},A={},j={},I={},x={},E={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function O(e){return{_meta:{hops:0,path:[e]}}}function _(e,t){return{event:e,next:t}}function M(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function N(e){throw new Error(String(e))}var T=new Set(["description","examples","title","$comment"]),C=new Set(["additionalItems","additionalProperties","contains","contentSchema","else","if","items","not","propertyNames","then","unevaluatedItems","unevaluatedProperties"]),P=new Set(["allOf","anyOf","items","oneOf","prefixItems"]),R=new Set(["properties","patternProperties","dependentSchemas","dependentRequired","dependencies","$defs","definitions"]);function z(e,t){const n=!1!==t?.stripAnnotations,r={},o=new Set;function s(t){if(r[t])return r[t];o.has(t)&&N(`Circular extend chain detected: ${[...o,t].join(" → ")}`);const i=e[t];i||N(`Contract "${t}" not found`),o.add(t);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=U(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]||{},s=t.events?.[n]||{},i=new Set([...Object.keys(o),...Object.keys(s)]);r[n]={};for(const e of i){const t=o[e],i=s[e];r[n][e]=t&&i?U(t,i):{...t||i}}}n.events=r}return n}(s(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 s=e["*"]?.["*"];s&&(o=U(o,s));const i=e["*"]?.[r];i&&"*"!==r&&(o=U(o,i));const a=e[n]?.["*"];a&&"*"!==r&&(o=U(o,a));const c=e[n]?.[r];c&&(o=U(o,c)),t[n][r]=o}}e["*"]&&(t["*"]={...e["*"]});return t}(a.events)),a.events&&n){const e={};for(const[t,n]of Object.entries(a.events)){e[t]={};for(const[r,o]of Object.entries(n))e[t][r]=L(o)}a.events=e}return o.delete(t),r[t]=a,a}for(const t of Object.keys(e))s(t);return r}function U(e,t){const n={...e};for(const r of Object.keys(t)){const o=e[r],s=t[r];"required"===r&&Array.isArray(o)&&Array.isArray(s)?n[r]=[...new Set([...o,...s])]:F(o)&&F(s)?n[r]=U(o,s):n[r]=s}return n}function L(e){const t={};for(const[n,r]of Object.entries(e))T.has(n)||(R.has(n)&&F(r)?t[n]=D(r):P.has(n)&&Array.isArray(r)?t[n]=r.map(e=>F(e)?L(e):e):C.has(n)&&F(r)?t[n]=L(r):t[n]=r);return t}function D(e){const t={};for(const[n,r]of Object.entries(e))t[n]=F(r)?L(r):r;return t}function F(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var q=/^\$var\.([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)$/,K=/\$var\.([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)/g,W=/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,B=/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/,Z=/^\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.([a-zA-Z0-9_.]+))?$/,V=/^\$store\.([a-zA-Z_][a-zA-Z0-9_]*)$/,H=/^\$secret\.([A-Z0-9_]+)$/,J="$code:",G=/\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)/g;function Y(e,t){const n=t??new Set;if("string"==typeof e){for(const t of e.matchAll(G))n.add(t[1]);return n}if(e&&"object"==typeof e)for(const t of Object.values(e))Y(t,n);return n}function X(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var Q="__WALKEROS_ENV:",ee="__WALKEROS_SECRET:";function te(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 ne(e,t,n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const s=r[e];if(null==o||"object"!=typeof o){const o=r.slice(0,e).join(".");N(`Path "${t}" not found in "${n}": "${s}" does not exist${o?` in "${o}"`:""}`)}const i=o;if(!(s in i)){const o=r.slice(0,e).join(".");N(`Path "${t}" not found in "${n}": "${s}" does not exist${o?` in "${o}"`:""}`)}o=i[s]}return o}function re(e,t,n,r,o,s){if("string"==typeof e){const i=e.match(q);if(i){const e=i[1].split("."),a=e[0],c=e.slice(1).join(".");void 0===t[a]&&N(`Variable "${a}" not found`);const f=s??new Set;if(f.has(a)){N(`Cyclic $var reference: ${[...f,a].join(" -> ")}`)}let u;f.add(a);try{u=re(t[a],t,n,r,o,f)}finally{f.delete(a)}return c&&(u=ne(u,c,`$var.${a}`)),u}const a=e.match(B);if(a&&r){const e=a[1],t=a[2];e in r||N(`Contract "${e}" not found`);let n=r[e];return t&&(n=ne(n,t,`$contract.${e}`)),n}const c=e.match(Z);if(c){const t=c[1],r=c[2],s=!1===n?.strictFlowRefs;o||N(`$flow.${t}${r?`.${r}`:""} cannot be resolved without a flow resolver`);const i=o(t);if(!i){if(s)return n?.onWarning?.(te(t,r,"unknown-flow")),e;N(`Flow "${t}" not found in $flow.${t}`)}let a=i;if(r)if(s){try{a=ne(a,r,`$flow.${t}`)}catch{return n?.onWarning?.(te(t,r,"missing-key")),e}if(null==a||""===a)return n?.onWarning?.(te(t,r,"missing-key")),e}else a=ne(a,r,`$flow.${t}`);return a}const f=e.match(H);if(f){const e=f[1];if(n?.deferred)return`${ee}${e}`;N(`Secret "$secret.${e}" cannot be used in a web flow — secrets are never sent to the browser. Use a server flow.`)}let u=e.replace(K,(e,i)=>{const a=i.split("."),c=a[0],f=a.slice(1).join(".");void 0===t[c]&&N(`Variable "${c}" not found`);const u=s??new Set;if(u.has(c)){N(`Cyclic $var reference: ${[...u,c].join(" -> ")}`)}let l;u.add(c);try{l=re(t[c],t,n,r,o,u)}finally{u.delete(c)}if(f&&(l=ne(l,f,`$var.${c}`)),null===l||"string"!=typeof l&&"number"!=typeof l&&"boolean"!=typeof l){N(`Variable "${i}" 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.${i}"`)}return String(l)});return u=u.replace(W,(e,t,r)=>n?.deferred?void 0!==r?`${Q}${t}:${r}`:`${Q}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==r?r:void N(`Environment variable "${t}" not found and no default provided`)),u}if(Array.isArray(e))return e.map(e=>re(e,t,n,r,o,s));if(null!==e&&"object"==typeof e){const i={};for(const[a,c]of Object.entries(e))i[a]=re(c,t,n,r,o,s);return i}return e}function oe(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 se(e,t,n){const r=new Map,o=new Set,s=[],i=t=>{if(r.has(t))return r.get(t);const a=e.flows[t];if(a){if(o.has(t)){N(`Cyclic $flow reference: ${[...s,t].join(" -> ")}`)}o.add(t),s.push(t);try{const o=X(e.variables,a.variables),s=re(a.config??{},o,n,void 0,i);return r.set(t,s),s}finally{o.delete(t),s.pop()}}},a=Object.keys(e.flows);t||(1===a.length?t=a[0]:N(`Multiple flows found (${a.join(", ")}). Please specify a flow.`));const c=e.flows[t];c||N(`Flow "${t}" not found. Available: ${a.join(", ")}`),o.add(t),s.push(t);try{return function(e,t,n,r){const o=JSON.parse(JSON.stringify(t));let s;if(e.contract){const o=X(e.variables,t.variables);s=z(re(e.contract,o,n,void 0,r))}if(o.config){const i=X(e.variables,t.variables);o.config=re(o.config,i,n,s,r)}if(o.sources)for(const[i,a]of Object.entries(o.sources)){const c=X(e.variables,t.variables,a.variables),f=re(a.config,c,n,s,r),u=re(a.env,c,n,s,r);o.sources[i]={package:a.package,import:a.import,config:f,env:u,primary:a.primary,variables:a.variables,before:a.before,next:a.next,cache:a.cache,code:a.code}}if(o.destinations)for(const[i,a]of Object.entries(o.destinations)){const c=X(e.variables,t.variables,a.variables),f=re(a.config,c,n,s,r),u=re(a.env,c,n,s,r);o.destinations[i]={package:a.package,import:a.import,config:f,env:u,variables:a.variables,before:a.before,next:a.next,cache:a.cache,code:a.code}}if(o.stores)for(const[i,a]of Object.entries(o.stores)){const c=X(e.variables,t.variables,a.variables),f=re(a.config,c,n,s,r),u=re(a.env,c,n,s,r);o.stores[i]={package:a.package,import:a.import,config:f,env:u,cache:a.cache,variables:a.variables,code:a.code}}if(o.transformers)for(const[i,a]of Object.entries(o.transformers)){const c=X(e.variables,t.variables,a.variables),f=re(a.config,c,n,s,r),u=re(a.env,c,n,s,r);o.transformers[i]={package:a.package,import:a.import,config:f,env:u,variables:a.variables,before:a.before,next:a.next,cache:a.cache,code:a.code}}if(o.collector){const i=X(e.variables,t.variables),a=re(o.collector,i,n,s,r);o.collector=a}return o}(e,c,n,i)}finally{o.delete(t),s.pop()}}function ie(e){const t=e.config?.platform;if("web"===t||"server"===t)return t;N('Flow must have config.platform set to "web" or "server"')}var ae={merge:!0,shallow:!0,extend:!0};function ce(e,t={},n={}){n={...ae,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const s=e[r];return n.merge&&Array.isArray(s)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...s]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function fe(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function ue(e){return Array.isArray(e)}function le(e){return"boolean"==typeof e}function pe(e){return"walker"===e}function de(e){return void 0!==e}function me(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function ge(e){return"function"==typeof e}function he(e){return"number"==typeof e&&!Number.isNaN(e)}function ve(e){return"object"==typeof e&&null!==e&&!ue(e)&&"[object Object]"===Object.prototype.toString.call(e)}function ye(e,t){return typeof e==typeof t}function be(e){return"string"==typeof e}function we(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]=we(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(we(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 ke(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&ue(o)){const t=r.slice(e+1).join("."),s=[];for(const e of o){const r=ke(e,t,n);s.push(r)}return s}if(o=ve(o)||ue(o)?o[t]:void 0,void 0===o)break}return de(o)?o:n}function $e(e,t,n){if(!ve(e))return e;const r=we(e),o=t.split(".");let s=r;for(let e=0;e<o.length;e++){const t=o[e];e===o.length-1?s[t]=n:(t in s&&"object"==typeof s[t]&&null!==s[t]||(s[t]={}),s=s[t])}return r}function Se(e,t){if(!ve(e)&&!ue(e))return e;const n=we(e),r=t.split(".");let o=n;for(let e=0;e<r.length;e++){const t=r[e],s=e===r.length-1;if(ue(o)){const e=Number(t);if(!Number.isInteger(e)||e<0||e>=o.length)return n;if(s)o.splice(e,1);else{const t=o[e];if(!ve(t)&&!ue(t))return n;o=t}}else if(s)delete o[t];else{const e=o[t];if(!ve(e)&&!ue(e))return n;o=e}}return n}var Ae={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 je(e,t,n){if(ve(n))for(const[r,o]of Object.entries(n))void 0!==o&&je(e,`${t}_${r}`,o);else e[t]=n}function Ie(e,t){const n={},r=t.includes("all")?Object.keys(Ae):t;for(const t of r){const r=Ae[t];if(!r)continue;const o=r(e);if(ve(o))for(const[e,r]of Object.entries(o)){if(void 0===r)continue;je(n,`${t}_${e}`,"context"===t&&Array.isArray(r)?r[0]:r)}}return n}function xe(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function Ee(e,t={},n={}){const r={...t,...n},o={};let s=!e||0===Object.keys(e).length;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(s=!0))}),!!s&&o}function Oe(e,t){const n={...e};return n.config=ce(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=ce(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=ce(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function _e(e,t){if(!ve(t))return e;for(const n of Object.keys(t)){const r=t[n];void 0!==r&&(ve(r)&&ve(e[n])?_e(e[n],r):e[n]=r)}return e}function Me(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 s=e-r.length,i=new Uint8Array(Math.ceil(1.3*s)+4);if(!Ne(i))break;for(let s=0;s<i.length&&r.length<e;s++)i[s]<o&&(r+=t[i[s]%n])}}for(;r.length<e;)r+=t[Math.random()*n|0];return r}function Ne(e){try{const t=globalThis.crypto;if(t&&"function"==typeof t.getRandomValues)return t.getRandomValues(e),!0}catch{}return!1}var Te="0123456789abcdef";function Ce(e){let t=Me(e,Te);for(;/^0+$/.test(t);)t=Me(e,Te);return t}function Pe(){return Ce(16)}function Re(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=ce({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||Pe(),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 ze(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 Re({...{"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 Ue(){return Ce(32)}var Le=/^(?<version>[0-9a-f]{2})-(?<trace>[0-9a-f]{32})-(?<span>[0-9a-f]{16})-[0-9a-f]{2}$/;function De(e){if("string"!=typeof e)return;const t=Le.exec(e)?.groups;if(!t)return;const{version:n,trace:r,span:o}=t;return void 0===n||void 0===r||void 0===o||"ff"===n||/^0+$/.test(r)||/^0+$/.test(o)?void 0:{trace:r,parentSpan:o}}var Fe=[{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 qe(e,t={},n=[]){const r={};Object.entries(ce({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(Fe.map(e=>e.param));return[...Fe.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):Fe,s=new Map;e.searchParams.forEach((e,t)=>{e&&s.set(t.toLowerCase(),e)});for(const e of o){const t=s.get(e.param);t&&(r[e.param]=t,r.clickId||(r.clickId=e.param,r.platform=e.platform))}return r}function Ke(e,t){return"number"==typeof e?{wait:e}:e?{wait:e.wait??t,size:e.size,age:e.age}:{wait:t}}function We(e,t=1e3,n=!1){const{wait:r,size:o,age:s}=Ke(t,1e3);let i,a,c=null,f=null,u=!1,l=[],p=0;const d=()=>{c&&(clearTimeout(c),c=null),f&&(clearTimeout(f),f=null),p=0,a=void 0},m=()=>{const t=a,n=l;if(d(),l=[],t)return i=e(...t),n.forEach(e=>e(i)),i;n.forEach(e=>e(void 0))},g=(...t)=>new Promise(d=>{const g=n&&!u;if(a=t,p+=1,l.push(d),c&&clearTimeout(c),c=setTimeout(()=>{c=null,n&&!u||m()},r),void 0===s||f||(f=setTimeout(()=>{f=null,m()},s)),void 0!==o&&p>=o)m();else if(g){u=!0,i=e(...t);const n=l;l=[],n.forEach(e=>e(i))}});return g.flush=()=>a||0!==l.length?new Promise(e=>{l.push(e),m()}):Promise.resolve(i),g.cancel=()=>{const e=l;l=[],d(),i=void 0,e.forEach(e=>e(void 0))},g.size=()=>p,g}function Be(e,t=1e3){const{wait:n}=Ke(t,1e3);let r=null;return function(...t){if(null===r)return r=setTimeout(()=>{r=null},n),e(...t)}}function Ze(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function Ve(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=Ze(e)):n=e,void 0!==t&&(t instanceof Error?r.error=Ze(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=Ze(r.error))):r.value=t),{message:n,context:r}}var He=(e,t,n,r)=>{const o=`${l[e]}${r.length>0?` [${r.join(":")}]`:""}`,s=Object.keys(n).length>0,i=0===e?console.error:1===e?console.warn:console.log;s?i(o,t,n):i(o,t)};function Je(e={}){return Ge({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 Ge(e){const{level:t,handler:n,jsonHandler:r,scope:o}=e,s=(e,r,s)=>{if(e<=t){const t=Ve(r,s);n?n(e,t.message,t.context,o,He):He(e,t.message,t.context,o)}};return{error:(e,t)=>s(0,e,t),warn:(e,t)=>s(1,e,t),info:(e,t)=>s(2,e,t),debug:(e,t)=>s(3,e,t),throw:(e,t)=>{const r=Ve(e,t);throw n?n(0,r.message,r.context,o,He):He(0,r.message,r.context,o),new Error(r.message)},json:e=>{r?r(e):console.log(JSON.stringify(e,null,2))},scope:e=>Ge({level:t,handler:n,jsonHandler:r,scope:[...o,e]})}}function Ye(e){return le(e)||be(e)||he(e)||!de(e)||ue(e)&&e.every(Ye)||ve(e)&&Object.values(e).every(Ye)}function Xe(e){return le(e)||be(e)||he(e)?e:fe(e)?Xe(Array.from(e)):ue(e)?e.map(e=>Xe(e)).filter(e=>void 0!==e):ve(e)?Object.entries(e).reduce((e,[t,n])=>{const r=Xe(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function Qe(e){return Ye(e)?e:void 0}function et(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function tt(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 nt=class e extends Error{constructor(t,n){super(t,n),this.name="FatalError",Object.setPrototypeOf(this,e.prototype)}};async function rt(e,t,n){const[r,o]=(e.name||"").split(" ");if(!t||!r||!o)return{};let s,i="",a=r,c=o;const f=t=>{if(!t)return;return(ue(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:ve(e)&&e.consent||n.consent};return Boolean(t.condition(e,r))})};t[a]||(a="*");const u=t[a];return u&&(u[c]||(c="*"),s=f(u[c])),s||(a="*",c="*",s=f(t[a]?.[c])),s&&(i=`${a} ${c}`),{eventMapping:s,mappingKey:i}}async function ot(e,t={},n={}){if(!de(e))return;const r=ve(e)&&e.consent||n.consent||n.collector?.consent,o=n.event??(ve(e)?e:{});if(!n.collector)throw new Error("getMappingValue: context.collector is required");const s={event:o,mapping:t,collector:n.collector,logger:n.collector.logger,consent:r},i=ue(t)?t:[t];for(const t of i){const r=await tt(st,e=>{if(e instanceof nt)throw e;n.collector&&n.collector.status.failed++,s.logger.error("mapping processing failed",{event:o,error:e})})(e,t,{...s,mapping:t});if(de(r))return r}}async function st(e,t,n){return(ue(t)?t:[t]).reduce(async(t,r)=>{const o=await t;if(o)return o;const s=be(r)?{key:r}:r;if(!Object.keys(s).length)return;const{condition:i,consent:a,fn:c,key:f,loop:u,map:l,set:p,validate:d,value:m}=s,g={...n,mapping:r};if(i&&!await tt(i,e=>{if(e instanceof nt)throw e;return g.logger.error("mapping condition failed",{event:g.event,error:e}),!1})(e,g))return;if(a&&!Ee(a,g.consent))return m;let h=de(m)?m:e;if(c&&(h=await tt(c,e=>{if(e instanceof nt)throw e;g.logger.error("mapping fn failed",{event:g.event,error:e})})(e,g)),f&&(h=ke(e,f,m)),u){const[t,n]=u,r="this"===t?[e]:await ot(e,t,g);ue(r)&&(h=(await Promise.all(r.map(e=>ot(e,n,g)))).filter(de))}else l?h=await Object.entries(l).reduce(async(t,[n,r])=>{const o=await t,s=await ot(e,r,g);return de(s)&&(o[n]=s),o},Promise.resolve({})):p&&(h=await Promise.all(p.map(t=>st(e,t,g))));d&&!await tt(d,e=>{if(e instanceof nt)throw e;return g.logger.error("mapping validate failed",{event:g.event,error:e}),!1})(h,g)&&(h=void 0);const v=Qe(h);return de(v)?v:Qe(m)},Promise.resolve(void 0))}async function it(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await ot(e,r,{collector:n,event:e});e=$e(e,t,o)}));const{eventMapping:r,mappingKey:o}=await rt(e,t.mapping,n);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await ot(e,r,{collector:n,event:e});e=$e(e,t,o)}));let s=t.data&&await ot(e,t.data,{collector:n,event:e});const i=Boolean(r?.silent);if(r){if(r.ignore)return{event:e,data:s,mapping:r,mappingKey:o,ignore:!0,silent:i};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await ot(e,r.data,{collector:n,event:e});s=ve(s)&&ve(t)?ce(s,t):t}}const a=r?.include??t.include;if(a&&a.length>0){const t=Ie(e,a);Object.keys(t).length>0&&(s=ve(s)?ce(t,s):s??t)}if(r?.remove&&ve(s))for(const e of r.remove)s=Se(s,e);return{event:e,data:s,mapping:r,mappingKey:o,ignore:!1,silent:i}}function at(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];ve(r)&&ve(o)?at(o,r):e[n]=r}return e}function ct(e,t){if(void 0===t.extend&&void 0===t.remove)return we(t);const n={...we(e)};if(t.extend){at(n,{...t.extend})}return delete n.extend,t.remove?n.remove=[...t.remove]:delete n.remove,n}function ft(e,t){const n=(e,r=[])=>new Proxy(e,{get(e,o){const s=e[o],i=[...r,o];return"function"==typeof s?s.prototype&&s.prototype.constructor===s?s:(...e)=>{const r=t(i,e,s);if(r&&"object"==typeof r)return n(r,i);const o=s(...e);return o&&"object"==typeof o?n(o,i):r}:s&&"object"==typeof s?n(s,i):s}});return n(e)}function ut(e,t){const n=(e,r=[])=>{if(!e||"object"!=typeof e)return e;const o=Array.isArray(e)?[]:{};for(const[s,i]of Object.entries(e)){const e=[...r,s];Array.isArray(o)?o[Number(s)]=t(i,e):o[s]=t(i,e),i&&"object"==typeof i&&"function"!=typeof i&&(Array.isArray(o)?o[Number(s)]=n(i,e):o[s]=n(i,e))}return o};return n(e)}function lt(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=lt();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 pt(e={}){return{collector:{},config:{},env:{},logger:lt(),id:"test",ingest:O("test"),...e}}function dt(e){const t=String(e),n=t.split("?")[1]||t;return et(()=>{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 s=n===r.length-1;if(ue(o)){const i=parseInt(t,10);s?o[i]=xe(e):(o[i]=o[i]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[i])}else ve(o)&&(s?o[t]=xe(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function mt(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(ue(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):ve(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 gt(e){return void 0===e||ye(e,"")?e:JSON.stringify(e)}function ht(e={}){return ce({"Content-Type":"application/json; charset=utf-8"},e)}function vt(e,t){return!1===e||void 0===e?null:!0===e?t:{...t,...e}}function yt(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}var bt=class e extends Error{constructor(t){super(t),this.name="InvalidEventError",Object.setPrototypeOf(this,e.prototype)}};function wt(e,t,n,r){const o=e;return function(...e){let s;const i="pre"+t,a="post"+t,c=n[i],f=n[a],u=(e,t)=>{r?r.warn(e,{error:t}):console.warn(e,t)};if(c)try{s=c({fn:o},...e)}catch(t){u(`Hook ${String(i)} failed, falling back to original function`,t),s=o(...e)}else s=o(...e);if(f)try{s=f({fn:o,result:s},...e)}catch(e){u(`Hook ${String(a)} failed, keeping original result`,e)}return s}}function kt(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 $t(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 s=r.sample,i="number"==typeof s&&Number.isFinite(s)?s:1;if(t.eventId&&!kt(t.eventId,i))return;const a=r.includeIn??"trace"===o,c=r.includeOut??"trace"===o,f=r.includeMappingKey??"trace"===o,u={...t};a||delete u.inEvent,c||(delete u.outEvent,delete u.calls),f||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 kt(e,t)}function At(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 jt=/^[A-Za-z0-9_-]+$/;function It(e){if(!jt.test(e))return null;const t=e.length%4==0?"":"=".repeat(4-e.length%4),n=e.replace(/-/g,"+").replace(/_/g,"/")+t,r=globalThis.atob;if(!r)return null;try{const e=r(n),t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}catch{return null}}function xt(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}function Et(e){const t=It(e);if(!t)return null;const n=function(e){let t="";for(let n=0;n<e.length;n++){const r=e[n];if(void 0===r||r>127)return null;t+=String.fromCharCode(r)}return t}(t);if(null===n)return null;try{return JSON.parse(n)}catch{return null}}function Ot(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function _t(e){if(!e)return null;const t=e.split("."),[n,r,o]=t;if(3!==t.length||!n||!r||!o)return null;const s=Et(n);if(!Ot(s))return null;const i=s.kid,a=s.alg;if("string"!=typeof i||"ES256"!==a)return null;const c=Et(r);if(!function(e){if(!Ot(e))return!1;const t=e;return"string"==typeof t.iss&&Array.isArray(t.aud)&&t.aud.every(e=>"string"==typeof e)&&"number"==typeof t.iat&&"number"==typeof t.sxp&&"string"==typeof t.art&&jt.test(t.art)&&"string"==typeof t.sri&&"string"==typeof t.pb&&"activate"===t.cap&&"string"==typeof t.jti&&"string"==typeof t.pid&&(void 0===t.ses||"string"==typeof t.ses)&&(void 0===t.sb||"string"==typeof t.sb)}(c))return null;const f=It(o);return f&&64===f.byteLength?{grant:c,kid:i,signed:xt(`${n}.${r}`),signature:f}:null}var Mt=9e5,Nt=6e4,Tt=39e5;async function Ct(e,t){const n=_t(e);if(!n)return{ok:!1,reason:"malformed"};const{grant:r,kid:o,signed:s,signature:i}=n;if(r.iss!==t.iss)return{ok:!1,reason:"foreign-issuer"};if("activate"!==r.cap)return{ok:!1,reason:"cap-mismatch"};if(1e3*r.iat>t.now+6e4)return{ok:!1,reason:"expired"};if(1e3*r.sxp-1e3*r.iat>Tt)return{ok:!1,reason:"expired"};const a="url"===t.source?Math.min(1e3*r.iat+Mt,1e3*r.sxp):1e3*r.sxp;if(t.now>=a)return{ok:!1,reason:"expired"};if(void 0!==t.origin&&!r.aud.includes(t.origin))return{ok:!1,reason:"aud-mismatch"};if(t.acceptForeign){const e=t.demoAllowlist??[];if(1!==r.aud.length||!r.aud.every(t=>e.includes(t)))return{ok:!1,reason:"aud-mismatch"}}if(!(t.acceptForeign||t.pb&&r.pb===t.pb))return{ok:!1,reason:"pb-mismatch"};const c=void 0!==r.ses||void 0!==r.sb;if(t.expectSession){if(r.ses!==t.expectSession.ses)return{ok:!1,reason:"sb-mismatch"};if(!r.sb||r.sb!==t.expectSession.sb)return{ok:!1,reason:"sb-mismatch"}}else if(c)return{ok:!1,reason:"sb-mismatch"};const f=t.keyring.find(e=>e.kid===o);if(!f)return{ok:!1,reason:"kid-mismatch"};const u=t.crypto??globalThis.crypto,l=u?.subtle;if(!l)return{ok:!1,reason:"no-subtle"};const p=function(e){return It(e)}(f.spki);if(!p)return{ok:!1,reason:"kid-mismatch"};try{const e=await l.importKey("spki",p,{name:"ECDSA",namedCurve:"P-256"},!1,["verify"]);if(!await l.verify({name:"ECDSA",hash:"SHA-256"},e,i,s))return{ok:!1,reason:"bad-signature"}}catch{return{ok:!1,reason:"bad-signature"}}return{ok:!0,grant:r}}var Pt="elbPreviewSession",Rt="elbObserve",zt="[walkerOS:preview]",Ut=globalThis;function Lt(e){let t=null;return{get(){try{return Ut.window?.localStorage.getItem(e)??t}catch{return t}},set(n){try{Ut.window?.localStorage.setItem(e,n)}catch{t=n}},clear(){t=null;try{Ut.window?.localStorage.removeItem(e)}catch{}}}}function Dt(){const e=Ut.window,t=Ut.URLSearchParams;if(e&&t)try{const n=e.location.href,r=n.indexOf("#"),o=r>=0?n.slice(r):"",s=r>=0?n.slice(0,r):n,i=s.indexOf("?"),a=i>=0?s.slice(0,i):s,c=new t(i>=0?s.slice(i+1):"");c.delete("elbPreview"),c.delete("elbPreviewSession"),c.delete("elbObserve");const f=c.toString();e.history.replaceState({},"",`${a}${f?`?${f}`:""}${o}`)}catch{}}async function Ft(e){const t=Ut.window;if(!t||!Ut.document)return!1;const n=Lt("elbPreview"),r=Lt(Pt),o=Lt(Rt),s=e.now??(()=>Date.now()),i=e=>Ut.console?.warn(`${zt} ${e}`);let a=null,c=null,f=null;const u=Ut.URLSearchParams;if(u)try{const e=new u(t.location.search.replace(/^\?/,"")),n=e.getAll("elbPreview");a=n.length>0?n[n.length-1]??null:null;const r=e.getAll("elbPreviewSession");c=r.length>0?r[r.length-1]??null:null;const o=e.getAll("elbObserve");f=o.length>0?o[o.length-1]??null:null}catch{a=null,c=null,f=null}if("off"===a)return n.clear(),r.clear(),o.clear(),Dt(),!1;const l=n.get();if(!a&&!l)return!1;const p=(n,r)=>Ct(n,{keyring:e.keyring,iss:e.iss,origin:t.location.origin,pb:e.pb,acceptForeign:e.acceptForeign,demoAllowlist:e.demoAllowlist,source:r,now:s(),crypto:e.crypto});let d=null;if(a){const e=await p(a,"url");e.ok?(d=e.grant,n.set(a),c?r.set(c):r.clear(),f?o.set(f):o.clear()):i(e.reason),Dt()}if(!d&&l){const e=await p(l,"storage");e.ok?d=e.grant:(i(e.reason),"no-subtle"!==e.reason&&(n.clear(),r.clear(),o.clear()))}if(!d)return!1;const m=`https://${e.previewOrigin}/preview/${d.art}.js`,g=await function(e,t){return new Promise(n=>{const r=Ut.document;if(!r)return void n(!1);const o=r.createElement("script");let s,i=!1;const a=e=>{i||(i=!0,void 0!==s&&Ut.clearTimeout?.(s),!e&&o.parentNode&&o.parentNode.removeChild(o),n(e))};s=Ut.setTimeout?.(()=>a(!1),5e3),o.onload=()=>a(!0),o.onerror=()=>a(!1),o.setAttribute("integrity",t),o.setAttribute("crossorigin","anonymous"),o.src=e,r.head.appendChild(o)})}(m,d.sri);return g?(Ut.console?.info(`${zt} active ${d.art} ends ${new Date(1e3*d.sxp).toISOString()}`),!0):(i("swap-failed"),n.clear(),r.clear(),o.clear(),!1)}var qt={error:5,skip:4,out:3,in:2,init:1,flush:0},Kt="\0none",Wt="\0";function Bt(e,t){return`${e??Kt}${Wt}${t}`}function Zt(e){const t=Date.parse(e);return Number.isNaN(t)?0:t}function Vt(e){return""!==e.eventId?e.eventId:function(e){if("object"!=typeof e||null===e)return;if(!("event"in e))return;const t=e.event;if("object"!=typeof t||null===t)return;if(!("id"in t))return;const n=t.id;return"string"==typeof n&&""!==n?n:void 0}(e.outEvent)}function Ht(e,t){let n=t;for(;;){const t=e.get(n);if(void 0===t||t===n)break;n=t}let r=t;for(;r!==n;){const t=e.get(r);if(e.set(r,n),void 0===t)break;r=t}return n}function Jt(e,t,n){const r=Ht(e,t),o=Ht(e,n);r!==o&&(r<o?e.set(o,r):e.set(r,o))}function Gt(e){for(const t of e)if(t.traceId)return t.traceId}function Yt(e){switch(e){case"error":return"error";case"skip":return"skipped";case"out":return"done";case"in":case"init":case"flush":return"pending"}}function Xt(e){return"out"===e.terminalPhase||"error"===e.terminalPhase||"skip"===e.terminalPhase||!0===e.batched}function Qt(e){return"done"===e.status&&("transformer"!==e.stepType||null!==e.out&&void 0!==e.out)}function en(e,t,n,r){const o=n.get(Bt(e.node.platform,t));if(void 0!==o)return o;const s=r.get(t);return void 0!==s&&1===s.length?s[0]:void 0}function tn(e){const t=new Map,n=new Map;e.nodes.forEach((e,r)=>{const o={node:e,rank:r,key:Bt(e.platform,e.stepId)};t.has(o.key)||t.set(o.key,o);const s=n.get(e.stepId);s?s.push(o):n.set(e.stepId,[o])});const r=new Map,o=new Set;for(const e of t.values()){const s=[];for(const r of e.node.downstream){const i=en(e,r,t,n);void 0!==i&&(s.push(i),o.add(i.key))}r.set(e.key,s)}const s=[];for(const e of t.values())o.has(e.key)||s.push(e);return s.sort((e,t)=>e.rank-t.rank),{byKey:t,byStepId:n,edges:r,roots:s}}function nn(e,t,n){const r=e.byKey.get(Bt(n,t));if(void 0!==r)return r;const o=e.byKey.get(Bt(void 0,t));if(void 0!==o)return o;const s=e.byStepId.get(t);return void 0!==s&&1===s.length?s[0]:void 0}function rn(e,t,n,r,o,s){return s-n<o?"pending":void 0!==r?function(e,t,n){const r=t=>e.find(e=>e.stepId===t.node.stepId&&(void 0===t.node.platform||e.platform===t.node.platform)),o=n.roots.filter(e=>void 0===e.node.platform||t.includes(e.node.platform));if(0===o.length)return e.every(Xt)?"complete":"partial";const s=new Map,i=o;for(;i.length>0;){const e=i.shift();if(void 0===e)break;if(s.has(e.key))continue;s.set(e.key,e);const t=r(e);if(void 0!==t&&Qt(t)){const t=n.edges.get(e.key);if(void 0!==t)for(const e of t)s.has(e.key)||i.push(e)}}for(const e of s.values()){const t=r(e);if(void 0===t||!Xt(t))return"partial"}return"complete"}(e,t,r):e.every(Xt)?"complete":"partial"}function on(e){let t=e[0];for(const n of e)n.elapsedMs<t.elapsedMs&&(t=n);const n=[],r=new Map;let o=!1;for(const t of e)if("flush"!==t.phase){if(void 0!==t.branchId){const e=r.get(t.branchId);e?e.push(t):r.set(t.branchId,[t]);continue}n.push(t)}else o=!0;const s=[...r.values()].flat(),i=n.length>0?n:s.length>0?s:e;let a,c,f,u,l,p,d,m,g,h,v=i[0],y=i[0];for(const e of i)e.elapsedMs<v.elapsedMs&&(v=e),qt[e.phase]>qt[y.phase]&&(y=e),"out"===e.phase&&(a=e),void 0!==e.inEvent&&void 0===c&&(c=e.inEvent),void 0!==e.outEvent&&(f=e.outEvent),void 0!==e.mappingKey&&(u=e.mappingKey),void 0!==e.contractRule&&(l=e.contractRule),void 0!==e.consent&&(p=e.consent),void 0!==e.consentApplied&&(d=e.consentApplied),void 0!==e.meta&&(m=e.meta),void 0!==e.parentEventId&&void 0===g&&(g=e.parentEventId),void 0!==e.release&&(h=e.release);const b=y.phase,w=a?.durationMs,k="error"===b?y.error:void 0,$="skip"===b?y.skipReason:void 0,S=a?.calls,A="out"===y.phase&&void 0!==y.batch||void 0,j=!(!o||!0!==A)||void 0,I=r.size>0?[...r.entries()].sort(([e],[t])=>e<t?-1:e>t?1:0).map(([e,t])=>function(e,t){let n,r,o=t[0];for(const e of t)qt[e.phase]>qt[o.phase]&&(o=e),"out"===e.phase&&(n=e),void 0!==e.outEvent&&(r=e.outEvent);const s=o.phase,i=n?.durationMs,a="skip"===s?o.skipReason:void 0,c="error"===s?o.error:void 0,f=n?.calls;return{branchId:e,status:Yt(s),terminalPhase:s,...void 0!==i?{durationMs:i}:{},...void 0!==a?{skipReason:a}:{},...void 0!==c?{error:c}:{},...void 0!==r?{out:r}:{},...void 0!==f?{calls:f}:{}}}(e,t)):void 0;return{stepId:v.stepId,stepType:v.stepType,eventId:v.eventId,status:Yt(b),terminalPhase:b,startedAtMs:t.elapsedMs,timestamp:t.timestamp,...void 0!==v.platform?{platform:v.platform}:{},...void 0!==g?{parentEventId:g}:{},...void 0!==w?{durationMs:w}:{},...void 0!==c?{in:c}:{},...void 0!==f?{out:f}:{},...void 0!==k?{error:k}:{},...void 0!==$?{skipReason:$}:{},...void 0!==u?{mappingKey:u}:{},...void 0!==l?{contractRule:l}:{},...void 0!==p?{consent:p}:{},...void 0!==d?{consentApplied:d}:{},...void 0!==S?{calls:S}:{},...void 0!==I?{branches:I}:{},...void 0!==A?{batched:A}:{},...void 0!==j?{flushConfirmed:j}:{},...void 0!==h?{release:h}:{},...void 0!==m?{meta:m}:{}}}function sn(e,t){const n=e.map(e=>({hop:e,rank:void 0!==t?nn(t,e.stepId,e.platform)?.rank??Number.MAX_SAFE_INTEGER:0}));return n.sort((e,t)=>e.rank!==t.rank?e.rank-t.rank:e.hop.startedAtMs!==t.hop.startedAtMs?e.hop.startedAtMs-t.hop.startedAtMs:e.hop.stepId<t.hop.stepId?-1:e.hop.stepId>t.hop.stepId?1:0),n.map(e=>e.hop)}function an(e){const t=e.filter(e=>"collector"===e.stepType&&"in"===e.phase),n=t.length>0?t:e;let r=n[0],o=Zt(r.timestamp);for(const e of n){const t=Zt(e.timestamp);t<o&&(o=t,r=e)}const s=function(e){if("object"==typeof e&&null!==e&&"name"in e&&"string"==typeof e.name)return e.name}(r.inEvent);return{eventId:r.eventId,timestamp:r.timestamp,...void 0!==s?{name:s}:{},...void 0!==r.sourceId?{sourceId:r.sourceId}:{},...void 0!==r.platform?{platform:r.platform}:{}}}function cn(e,t,n,r,o){const{topo:s}=o,i=new Map;for(const e of n){const t=Bt(e.platform,e.stepId),n=i.get(t);n?n.push(e):i.set(t,[e])}const a=[...i.values()].map(on),c=new Map;for(const e of a){const t=e.platform??Kt;let n=c.get(t);n||(n={...void 0!==e.platform?{platform:e.platform}:{},hops:[],ownedEventIds:new Set,parentEventIds:new Set,minEpoch:Number.POSITIVE_INFINITY},c.set(t,n)),n.hops.push(e),n.ownedEventIds.add(e.eventId),void 0!==e.parentEventId&&n.parentEventIds.add(e.parentEventId),n.minEpoch=Math.min(n.minEpoch,Zt(e.timestamp))}const f=function(e){const t=new Map,n=e.map((e,t)=>t).sort((t,n)=>{const r=e[t].platform??Kt,o=e[n].platform??Kt;return r<o?-1:r>o?1:0});e.forEach((r,o)=>{if(0!==r.parentEventIds.size)for(const s of n){if(s===o)continue;let n=!1;for(const t of e[s].ownedEventIds)if(r.parentEventIds.has(t)){n=!0;break}if(n){t.set(o,s);break}}});const r=e=>{let n=0,r=e;const o=new Set;for(;!o.has(r);){o.add(r);const e=t.get(r);if(void 0===e)break;r=e,n+=1}return n};return e.map((e,t)=>({seg:e,i:t,depth:r(t)})).sort((e,t)=>{if(e.depth!==t.depth)return e.depth-t.depth;if(e.seg.minEpoch!==t.seg.minEpoch)return e.seg.minEpoch-t.seg.minEpoch;const n=e.seg.platform??Kt,r=t.seg.platform??Kt;return n<r?-1:n>r?1:0}).map(e=>e.seg)}([...c.values()]),u=[],l=[];for(const e of f){void 0===e.platform||l.includes(e.platform)||l.push(e.platform);for(const t of sn(e.hops,s))u.push(t)}let p=Number.POSITIVE_INFINITY,d=Number.NEGATIVE_INFINITY;for(const e of n){const t=Zt(e.timestamp);t<p&&(p=t),t>d&&(d=t)}const m=rn(u,l,d,s,o.settleMs,o.now),g=function(e,t,n,r){for(const o of r)if((void 0===o.platform||e.includes(o.platform))&&t<=o.toMs&&o.fromMs<=n)return!0;return!1}(l,p,d,o.gaps);return{id:e,correlation:"event",...void 0!==t?{traceId:t}:{},entry:an(r),hops:u,platforms:l,status:m,lossy:g,firstTimestamp:p,lastTimestamp:d,totalMs:d-p}}function fn(e,t){const n={...void 0!==t?.topology?{topo:tn(t.topology)}:{},settleMs:t?.settleMs??15e3,now:t?.now??Date.now(),gaps:[]},r=function(e){const t=new Set,n=[];for(const r of e){const e=void 0!==r.seq&&r.traceId?`seq${Wt}${r.platform??""}${Wt}${r.traceId}${Wt}${r.seq}`:void 0!==r.seq?`seqt${Wt}${r.platform??""}${Wt}${r.stepId}${Wt}${r.phase}${Wt}${r.eventId}${Wt}${r.branchId??""}${Wt}${r.elapsedMs}${Wt}${r.timestamp}${Wt}${r.seq}`:`tuple${Wt}${r.platform??""}${Wt}${r.stepId}${Wt}${r.phase}${Wt}${r.eventId}${Wt}${r.branchId??""}${Wt}${r.elapsedMs}`;t.has(e)||(t.add(e),n.push(r))}return n}(e);n.gaps=function(e){const t=new Map;for(const n of e){if(void 0===n.seq)continue;const e=n.platform??Kt,r=t.get(e);r?r.push(n):t.set(e,[n])}const n=[];for(const e of[...t.keys()].sort()){const r=t.get(e);if(void 0===r)continue;const o=[...r].sort((e,t)=>{const n=Zt(e.timestamp),r=Zt(t.timestamp);return n!==r?n-r:(e.seq??0)-(t.seq??0)});let s,i=0;for(const e of o){const t=e.seq;if(void 0!==t)if(void 0!==s){if(t!==i)if(t!==i+1){if(t>i+1){const r=e.platform;n.push({...void 0!==r?{platform:r}:{},fromMs:Zt(s.timestamp),toMs:Zt(e.timestamp),afterSeq:i,beforeSeq:t})}s=e,i=t}else s=e,i=t}else s=e,i=t}}return n}(r);const o=[],s=[];for(const e of r){const t=Vt(e);void 0!==t?o.push({record:t===e.eventId?e:{...e,eventId:t},eventId:t}):s.push(e)}o.sort((e,t)=>function(e,t){const n=e.platform??"",r=t.platform??"";if(n!==r)return n<r?-1:1;if(e.stepId!==t.stepId)return e.stepId<t.stepId?-1:1;if(e.phase!==t.phase)return qt[e.phase]-qt[t.phase];if(e.eventId!==t.eventId)return e.eventId<t.eventId?-1:1;const o=e.branchId??"",s=t.branchId??"";if(o!==s)return o<s?-1:1;if(e.elapsedMs!==t.elapsedMs)return e.elapsedMs-t.elapsedMs;const i=e.seq??-1,a=t.seq??-1;return i!==a?i-a:e.timestamp!==t.timestamp?e.timestamp<t.timestamp?-1:1:0}(e.record,t.record));const i=new Set(o.map(e=>e.eventId)),a=new Map,c=new Map;for(const{record:e,eventId:t}of o){const n=e.parentEventId;if(void 0===n||n===t||!i.has(n))continue;const r=a.get(t);r?r.add(n):a.set(t,new Set([n]));const o=c.get(n);o?o.add(t):c.set(n,new Set([t]))}const f=new Map;for(const[e,t]of c)if(1===t.size)for(const n of t)Jt(f,n,e);const u=new Map;for(const e of o){const t=Ht(f,e.eventId);let n=u.get(t);n||(n={entries:[],eventIds:new Set},u.set(t,n)),n.entries.push(e),n.eventIds.add(e.eventId)}const l=[...u.values()].map(e=>{const t=function(e,t){const n=[...e].sort();for(const r of n){const n=t.get(r);if(void 0===n)return r;let o=!1;for(const t of n)if(e.has(t)){o=!0;break}if(!o)return r}return n[0]}(e.eventIds,a),r=e.entries.map(e=>e.record),o=e.entries.filter(e=>e.eventId===t).map(e=>e.record),s=Gt(o)??Gt(r);return cn(t,s,r,o,n)});l.sort((e,t)=>e.firstTimestamp!==t.firstTimestamp?e.firstTimestamp-t.firstTimestamp:e.id<t.id?-1:e.id>t.id?1:0);const p=function(e){const t=new Map;for(const n of e){if(!n.traceId)continue;const e=n.platform??Kt,r=Zt(n.timestamp);let o=t.get(e);void 0===o&&(o={...void 0!==n.platform?{platform:n.platform}:{},count:0,fromMs:r,toMs:r,stepIds:new Set},t.set(e,o)),o.count+=1,r<o.fromMs&&(o.fromMs=r),r>o.toMs&&(o.toMs=r),o.stepIds.add(n.stepId)}return[...t.entries()].sort(([e],[t])=>e<t?-1:e>t?1:0).map(([,e])=>({...void 0!==e.platform?{platform:e.platform}:{},count:e.count,fromMs:e.fromMs,toMs:e.toMs,stepIds:[...e.stepIds].sort()}))}(s);return{journeys:l,gaps:n.gaps,...p.length>0?{unattributed:p}:{}}}var un=null;function ln(){return un}function pn(e){un=e}function dn(e,t){if(0===e.observers.size)return;const n=Array.from(e.observers);for(const e of n)try{e(t)}catch{}}function mn(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,s=e.maxBodyBytes,i="number"==typeof s&&Number.isFinite(s)&&s>=1?Math.floor(s):6e4,a=e.fetch??((e,t)=>globalThis.fetch(e,t)),c=e.onError??(()=>{}),f={};for(const[t,n]of Object.entries(e.headers??{})){const e=t.toLowerCase();"authorization"!==e&&"content-type"!==e&&(f[t]=n)}let u=[],l=null,p=0;function d(e){const t={v:1,records:e},n=JSON.stringify(t);if(e.length<=1)return[n];if(function(e){let t=0;for(let n=0;n<e.length;n++){const r=e.charCodeAt(n);if(r<128)t+=1;else if(r<2048)t+=2;else if(r>=55296&&r<=56319&&n+1<e.length){const r=e.charCodeAt(n+1);r>=56320&&r<=57343?(t+=4,n++):t+=3}else t+=3}return t}(n)<=i)return[n];const r=Math.floor(e.length/2);return[...d(e.slice(0,r)),...d(e.slice(r))]}function m(t){return Promise.resolve().then(()=>a(e.url,{method:"POST",headers:{...f,"Content-Type":"application/json",Authorization:`Bearer ${e.token}`},body:t})).then(t=>{t&&"object"==typeof t&&"number"==typeof t.status&&e.onStatus?.(t.status),t&&"object"==typeof t&&"ok"in t&&!t.ok&&c(new Error(`Observer responded ${t.status}`))}).catch(e=>{c(e)})}function g(){if(0===u.length)return;const e=u;u=[],l&&(clearTimeout(l),l=null);const t=d(e);(async()=>{for(const e of t)await m(e)})()}return e=>{u.push({...e,seq:++p}),u.length>=o?g():null===l&&(l=setTimeout(g,n))}}function gn(e){return e?{userAgent:e,browser:hn(e),browserVersion:vn(e),os:yn(e),osVersion:bn(e),deviceType:wn(e)}:{}}function hn(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 vn(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 yn(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 bn(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function wn(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 kn(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function $n(e){const t=kn(e);return new Function("value","context",t)}function Sn(e){const t=kn(e);return new Function("value","context",t)}function An(e){const t=kn(e);return new Function("value","context",t)}function jn(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function In(e,t){const n=t?.version||"latest",r=t?.timeout||1e4,o=new AbortController,s=setTimeout(()=>o.abort(),r),i=o.signal,a=t?.client?{"X-Walkeros-Client":t.client}:void 0;try{if(t?.baseUrl){const r=`${t.baseUrl}/api/packages/${encodeURIComponent(e)}?version=${encodeURIComponent(n)}&expand=all`,o=await fetch(r,{signal:i,...a&&{headers:a}});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||{},s=n.hints,i=n.hintKeys??(s?Object.keys(s):[]),a=n.exampleSummaries??[],c=n.platform;return{packageName:n.package||e,version:"string"==typeof n.version?n.version:t,...void 0!==n.description&&{description:n.description},...void 0!==n.type&&{type:n.type},...void 0!==c&&{platform:c},schemas:r,examples:o,...void 0!==n.docs&&{docs:n.docs},...void 0!==n.source&&{source:n.source},...s&&Object.keys(s).length>0?{hints:s}:{},hintKeys:i,exampleSummaries:a}}(e,n,await o.json())}const r=`https://cdn.jsdelivr.net/npm/${e}@${n}`,o=await xn(`${r}/package.json`,i,a);return function(e,t,n,r){const o=r.$meta||{},s=r.schemas||{},i=r.examples||{},a=r.hints,c=a?Object.keys(a):[],f=[],u=i.step||{};for(const[e,t]of Object.entries(u)){const n=t,r={name:e};"string"==typeof n?.description&&(r.description=n.description),f.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:jn(o.platform),schemas:s,examples:i,...l?{docs:l}:{},...p?{source:p}:{},...a&&Object.keys(a).length>0?{hints:a}:{},hintKeys:c,exampleSummaries:f}}(e,n,o,await xn(`${r}/dist/walkerOS.json`,i,a))}finally{clearTimeout(s)}}async function xn(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 En(e,t){const n=await In(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}:{}}}var On="observe";function _n(e){if("object"!=typeof e||null===e)return!1;if(!("paths"in e)||!("record"in e))return!1;const{paths:t,record:n}=e;return Array.isArray(t)&&t.every(e=>"string"==typeof e)&&"function"==typeof n}var Mn="call:";function Nn(e){const t=(e.startsWith(Mn)?e.slice(5):e).split(".");return t.some(e=>""===e)?[]:t}var Tn="obsw_";function Cn(e){if(!e.startsWith(Tn))return null;const t=e.slice(5).split("."),[n,r,o]=t;return 3===t.length&&n&&r&&o?{pb:n,ses:r,secret:o}:null}function Pn(e){const t=e.WALKEROS_OBSERVER_URL,n=e.WALKEROS_DEPLOYMENT_ID,r=e.WALKEROS_INGEST_TOKEN;if(!t||!n||!r)return;const o={url:t,sessionId:n,token:r},s=e.WALKEROS_OBSERVE_LEVEL;if(void 0!==s){if("off"!==(i=s)&&"standard"!==i&&"trace"!==i)return;o.level=s}var i;return o}function Rn(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function zn(e,t){let n,r,o,s;if(e instanceof Error){n=e.message;const t=e;t.code&&(o=t.code),Array.isArray(t.details)&&(s=t.details)}else if("string"==typeof e)n=e;else if(e&&"object"==typeof e&&"issues"in e&&Array.isArray(e.issues)){const t=e.issues;n=t.map(e=>e.message).join("; "),r=t[0]?.path?.join(".")||void 0}else n=e&&"object"==typeof e&&"message"in e?String(e.message):"Unknown error";const i={error:n};return t&&(i.hint=t),r&&(i.path=r),o&&(i.code=o),s&&(i.details=s),{content:[{type:"text",text:JSON.stringify(i)}],structuredContent:i,isError:!0}}function Un(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function Ln(e){const t=Object.create(null);if(!e||"object"!=typeof e||ue(e))return t;return"function"==typeof e.forEach?(e.forEach((e,n)=>{t[n.toLowerCase()]=e}),t):(Object.entries(e).forEach(([e,n])=>{void 0!==n&&(t[e.toLowerCase()]=ue(n)?n.join(", "):String(n))}),t)}function Dn(e){const t=Object.create(null);if(!e)return t;return new URLSearchParams(e.startsWith("?")?e.slice(1):e).forEach((e,n)=>{t[n]=n in t?`${t[n]},${e}`:e}),t}function Fn(e,t){if("string"!=typeof e)return e;let n=e;if(t){const t=globalThis.atob;if(!t)return e;try{const r=t(e),o=new Uint8Array(r.length);for(let e=0;e<r.length;e++)o[e]=r.charCodeAt(e);n=decodeURIComponent(Array.from(o,e=>`%${e.toString(16).padStart(2,"0")}`).join(""))}catch{return e}}try{return JSON.parse(n)}catch{return n===e?e:n}}function qn(e){return ve(e)&&"string"==typeof e.method&&ve(e.headers)}function Kn(e,t){const n=Ln(e.headers),r=e.originalUrl||e.url||"",o=r.indexOf("?"),s=-1===o?"":r.slice(o),i=e.path||(-1===o?r:r.slice(0,o)),a=("function"==typeof e.get?e.get("host"):void 0)||n.host,c=e.protocol||n["x-forwarded-proto"]||t.defaultProtocol,f={method:(e.method||"").toUpperCase(),url:a?`${c}://${a}${r}`:"",path:i,query:Dn(s),headers:n,body:t.body,raw:e};return e.ip&&(f.ip=e.ip),f}function Wn(e){return ue(e)?e:ve(e)?ue(e.batch)?e.batch:[e]:[{}]}function Bn(e){return!!ue(e)||ve(e)&&ue(e.batch)}function Zn(e){const t=e.flatMap((e,t)=>e.error?[{index:t,error:e.error}]:[]);return t.length?{status:207,body:{success:!1,processed:e.length-t.length,failed:t.length,errors:t}}:{status:200,body:{success:!0,processed:e.length,ids:e.map(e=>e.id??null)}}}function Vn(e){return!1===e?.ok?{error:e.error??(!0===e.invalid?"Invalid event":"Event was not processed")}:{id:e?.event?.id}}function Hn(e){if(void 0===e||"*"===e)return()=>!0;if("and"in e){const t=e.and.map(Hn);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(Hn);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value:r,not:o}=e,s=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=ke(e,t),r=s(n);return o?!r:r}}(e)}function Jn(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&("match"in e||"next"in e||"one"in e||"many"in e)}function Gn(e){return Array.isArray(e)&&e.length>0&&e.every(e=>Jn(e))}function Yn(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:Xn(e)??{type:"chain",value:[]}};const t=e;return{match:t.match?Hn(t.match):()=>!0,next:Xn(t)??{type:"chain",value:[]}}})}function Xn(e){if(null==e)return;if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(Gn(e))return Xn({one:e});if(e.every(e=>"string"==typeof e))return{type:"chain",value:e};const t=[];for(const n of e){const e=Xn(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:Hn(t.match),next:Xn(t.next)}:Xn(t.next);if("one"in t&&t.one){const e=Yn(t.one);return t.match?{type:"gate",match:Hn(t.match),next:{type:"one",routes:e}}:{type:"one",routes:e}}if("many"in t&&t.many){const e=Yn(t.many);return t.match?{type:"gate",match:Hn(t.match),next:{type:"many",routes:e}}:{type:"many",routes:e}}return t.match?{type:"gate",match:Hn(t.match)}:void 0}var Qn=new WeakMap;function er(e,t={}){if(null==e)return[];let n;if("object"==typeof e){const t=Qn.get(e);t?n=t:(n=Xn(e),n&&Qn.set(e,n))}else n=Xn(e);if(!n)return[];const r=tr(n,t);return void 0===r?[]:Array.isArray(r)?r:[r]}function tr(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 tr(e.next,t)}if("sequence"===e.type){const n=[];for(const r of e.value){const e=tr(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=tr(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 tr(n.next,t)}}var nr="__walkeros_cache_v__",rr="__walkeros_cache_exp__";function or(e,t,n=Date.now){const r={[nr]:e};return void 0!==t&&(r[rr]=n()+t),r}function sr(e,t=Date.now){if(void 0===e)return;if(null===(n=e)||"object"!=typeof n||Array.isArray(n)||!(nr in e))return{value:e};var n;const r=e[rr];return"number"==typeof r&&t()>r?{expired:!0}:{value:e[nr]}}var ir="__walkeros_cache__",ar=class extends Error{constructor(e,t){super(e,t),this.name="StoreCodecError"}};function cr(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function fr(e){if(Buffer.isBuffer(e))return{[ir]:"buffer",d:e.toString("base64")};if(e instanceof Uint8Array)return{[ir]:"buffer",d:Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64")};if(e instanceof ArrayBuffer)return{[ir]:"buffer",d:Buffer.from(e).toString("base64")};if(Array.isArray(e))return e.map(fr);if(cr(e)){if(ir in e){const t={};for(const[n,r]of Object.entries(e))t[n]=fr(r);return{[ir]:"escape",d:t}}const t={};for(const[n,r]of Object.entries(e))t[n]=fr(r);return t}return e}function ur(e,t){if(cr(e)){if(ir in e){const n=e[ir],r=e.d;if("buffer"===n&&"string"==typeof r)return t(Buffer.from(r,"base64"));if("escape"===n&&cr(r)){const e={};for(const[n,o]of Object.entries(r))e[n]=ur(o,t);return e}}const n={};for(const[r,o]of Object.entries(e))n[r]=ur(o,t);return n}return Array.isArray(e)?e.map(e=>ur(e,t)):e}function lr(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function pr(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||pr(e)):!!cr(e)&&Object.values(e).every(e=>void 0===e||pr(e)))}function dr(e){let t;try{t=JSON.stringify(fr(e))}catch(e){throw new ar("Failed to serialize store value (likely a cyclic structure).",{cause:e})}return new Uint8Array(Buffer.from(t,"utf8"))}function mr(e){const t="string"==typeof e?e:Buffer.from(e).toString("utf8"),n=ur(JSON.parse(t),lr);if(!pr(n))throw new ar("Restored value is not a valid StoreValue.");return n}function gr(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function hr(e){return{stop:e.stop??!1,storeId:e.store,namespace:e.namespace,rules:e.rules.map(e=>({match:e.match?Hn(e.match):()=>!0,key:e.key,ttl:e.ttl,update:e.update}))}}async function vr(e,t,n,r){const o=e.rules.find(e=>e.match(n));if(!o)return null;const s=o.key.map(e=>String(ke(n,e)??""));if(s.every(e=>""===e))return null;const i=s.join(":"),a=r??e.namespace,c=a?`${a}:${i}`:i,f=sr(await t.get(c));if(void 0===f)return{status:"MISS",key:c,rule:o};if("expired"in f){try{await t.delete(c)}catch{}return{status:"MISS",key:c,rule:o}}return{status:"HIT",key:c,value:f.value,rule:o}}function yr(e,t,n,r){if(!pr(n))return;const o=1e3*r,s=e.set(t,or(n,o),o);s instanceof Promise&&s.catch(()=>{})}async function br(e,t,n,r){if(!t)return e;let o=e;for(const[e,s]of Object.entries(t)){o=$e(o,e,await ot(n,s,{collector:r}))}return o}function wr(e){return ue(e)?e:[e]}async function kr(e,t,n,r){let o=n;for(const n of e)await tt(async()=>{const e=t(n.store);if(!e)return;const s=await ot(o,n.key,{collector:r,event:o});if(!be(s))return;const i=n.store?s:`state:${s}`;if("set"===n.mode){const t=await ot(o,n.value,{collector:r,event:o});if(!de(t))return;await e.set(i,t)}else{const t=be(a=n.value)?a:ve(a)&&be(a.key)?a.key:void 0;if(!t)return;const r=await e.get(i);if(!de(r))return;o=$e(o,t,r)}var a},e=>{if(e instanceof nt)throw e;r.logger?.error?.("[state] operation failed",e)})();return o}var $r={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"]},Sr=["config","env","variables","examples","disabled","id","logger","mock","chainMocks"],Ar={Source:["primary"],Transformer:[],Destination:[],Store:[]},jr=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function Ir(e,t){const n=function(e){return new Set([...$r[e],...Sr,...Ar[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,s=void 0!==e.code;return s&&"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.`}:s&&("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."}:s&&r?{ok:!1,code:"CONFLICT",key:"package",reason:"Cannot specify both `code` and `package`. Use one or the other."}:s&&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&&jr.test(e.import)?{ok:!0}:{ok:!1,code:"INVALID_IMPORT",key:"import",reason:`import must match ${jr.source}. Got: ${JSON.stringify(e.import)}.`}}function xr(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 Er(e){return 0===e.length?"// no output":e.map(Or).join(";\n\n")}function Or(e){const[t,...n]=e,r=n.map(_r).join(", ");return"return"===t?r?`return ${r}`:"return":`${t}(${r})`}function _r(e){return void 0===e?"undefined":null===e?"null":"function"==typeof e?"[Function]":JSON.stringify(e,null,2)}export{Nt as CLOCK_SKEW_MS,n as Cache,r as Collector,E as Const,s as Context,i as Destination,Q as ENV_MARKER_PREFIX,c as Elb,nt as FatalError,x as Hint,f as Hooks,bt as InvalidEventError,l as Level,S as Lifecycle,u as Logger,Tt as MAX_SESSION_MS,p as Mapping,I as Matcher,On as OBSERVE_ENV_KEY,Rt as OBSERVE_STORAGE_KEY,d as On,J as REF_CODE_PREFIX,B as REF_CONTRACT,W as REF_ENV,Z as REF_FLOW,H as REF_SECRET,V as REF_STORE,q as REF_VAR_FULL,K as REF_VAR_INLINE,h as Request,ee as SECRET_MARKER_PREFIX,Pt as SESSION_STORAGE_KEY,$r as STEP_OPERATIVE_FIELDS,j as Simulation,v as Source,b as Store,ar as StoreCodecError,m as Transformer,$ as Trigger,Mt as URL_WINDOW_MS,A as WalkerOS,M as anonymizeIP,kr as applyState,br as applyUpdate,fn as assembleJourneys,ce as assign,Zn as batchResponse,_ as branch,Ft as browserSwapActivator,gr as buildCacheContext,Kn as buildScopeFromNodeRequest,Qe as castToProperty,xe as castValue,vr as checkCache,we as clone,hr as compileCache,Hn as compileMatcher,wr as compileState,mn as createBatchedPoster,Oe as createDestination,Re as createEvent,O as createIngest,Je as createLogger,pt as createMockContext,lt as createMockLogger,Un as createRespond,$t as createTelemetryObserver,We as debounce,_e as deepMerge,Fe as defaultClickIds,Se as deleteByPath,mr as deserializeStoreValue,dn as emitStep,In as fetchPackage,En as fetchPackageSchema,Xe as filterValues,Ie as flattenIncludeSections,Er as formatOut,hn as getBrowser,vn as getBrowserVersion,ke as getByPath,wn as getDeviceType,ze as getEvent,se as getFlowSettings,Ee as getGrantedConsent,ht as getHeaders,Me as getId,rt as getMappingEvent,ot as getMappingValue,qe as getMarketingParameters,er as getNextSteps,yn as getOS,bn as getOSVersion,ie as getPlatform,Pe as getSpanId,Ue as getTraceId,ln as getTraceUntil,fe as isArguments,ue as isArray,Bn as isBatchBody,le as isBoolean,pe as isCommand,de as isDefined,me as isElementOrDocument,_n as isEnvObserve,ge as isFunction,he as isNumber,ve as isObject,xr as isPathStepEntry,Ye as isPropertyType,Gn as isRouteArray,Jn as isRouteConfigEntry,ye as isSameType,St as isSampled,qn as isScope,pr as isStoreValue,be as isString,zn as mcpError,Rn as mcpResult,U as mergeContractSchemas,ct as mergeMappingRule,ft as mockEnv,Fn as normalizeBody,Ln as normalizeHeaders,Dn as normalizeQuery,Pn as observeFromEnv,oe as packageNameToVariable,Nn as parseCallPath,_t as parseGrant,Cn as parseObserveCredential,De as parseTraceparent,gn as parseUserAgent,it as processEventMapping,Vn as pushResultToOutcome,sr as readCacheEnvelope,dt as requestToData,mt as requestToParameter,z as resolveContracts,vt as resolveSetup,At as resolveTelemetryOptions,Y as scanFlowRefs,dr as serializeStoreValue,$e as setByPath,pn as setTraceUntil,o as stepId,yr as storeCache,Be as throttle,N as throwError,Wn as toEventList,gt as transformData,ut as traverseEnv,yt as trim,et as tryCatch,tt as tryCatchAsync,wt as useHooks,Ir as validateStepEntry,Ct as verifyActivation,ne as walkPath,or as wrapCacheEnvelope,$n as wrapCondition,Sn as wrapFn,An as wrapValidate};//# sourceMappingURL=index.mjs.map
|