@walkeros/core 3.4.0 → 3.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dev.d.mts +52 -0
- package/dist/dev.d.ts +52 -0
- 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 +16 -1
- package/dist/index.d.ts +16 -1
- 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.d.mts
CHANGED
|
@@ -1027,7 +1027,16 @@ type StepOut = readonly StepEffect[];
|
|
|
1027
1027
|
* `elb(event)`.
|
|
1028
1028
|
*/
|
|
1029
1029
|
interface StepExample {
|
|
1030
|
+
/** Human-readable title (overrides camelCase-to-spaced default heading in docs). */
|
|
1031
|
+
title?: string;
|
|
1030
1032
|
description?: string;
|
|
1033
|
+
/**
|
|
1034
|
+
* Whether this example is meant for public consumption (docs, UI, MCP default output).
|
|
1035
|
+
* Defaults to `true`. Set to `false` for test-only fixtures that should stay out of
|
|
1036
|
+
* user-facing surfaces but still run in test suites and remain available to
|
|
1037
|
+
* `flow_simulate` / CLI `--simulate`.
|
|
1038
|
+
*/
|
|
1039
|
+
public?: boolean;
|
|
1031
1040
|
in?: unknown;
|
|
1032
1041
|
/** Trigger metadata for sources — type and options for the trigger call. */
|
|
1033
1042
|
trigger?: {
|
|
@@ -2999,13 +3008,19 @@ declare function tryCatchAsync<P extends unknown[], R>(fn: (...args: P) => R, on
|
|
|
2999
3008
|
/**
|
|
3000
3009
|
* A utility function that wraps a function with hooks.
|
|
3001
3010
|
*
|
|
3011
|
+
* Pre/post hooks are user-supplied and may throw. A throwing hook must not
|
|
3012
|
+
* crash the surrounding pipeline — on failure, fall back to calling the
|
|
3013
|
+
* original function (pre-hook) or keep the original result (post-hook).
|
|
3014
|
+
*
|
|
3002
3015
|
* @template P, R
|
|
3003
3016
|
* @param fn The function to wrap.
|
|
3004
3017
|
* @param name The name of the function.
|
|
3005
3018
|
* @param hooks The hooks to use.
|
|
3019
|
+
* @param logger Optional logger for hook failure warnings. Falls back to
|
|
3020
|
+
* `console.warn` when not provided.
|
|
3006
3021
|
* @returns The wrapped function.
|
|
3007
3022
|
*/
|
|
3008
|
-
declare function useHooks<P extends unknown[], R>(fn: (...args: P) => R, name: string, hooks: Functions): (...args: P) => R;
|
|
3023
|
+
declare function useHooks<P extends unknown[], R>(fn: (...args: P) => R, name: string, hooks: Functions, logger?: Instance$4): (...args: P) => R;
|
|
3009
3024
|
|
|
3010
3025
|
/**
|
|
3011
3026
|
* Parses a user agent string to extract browser, OS, and device information.
|
package/dist/index.d.ts
CHANGED
|
@@ -1027,7 +1027,16 @@ type StepOut = readonly StepEffect[];
|
|
|
1027
1027
|
* `elb(event)`.
|
|
1028
1028
|
*/
|
|
1029
1029
|
interface StepExample {
|
|
1030
|
+
/** Human-readable title (overrides camelCase-to-spaced default heading in docs). */
|
|
1031
|
+
title?: string;
|
|
1030
1032
|
description?: string;
|
|
1033
|
+
/**
|
|
1034
|
+
* Whether this example is meant for public consumption (docs, UI, MCP default output).
|
|
1035
|
+
* Defaults to `true`. Set to `false` for test-only fixtures that should stay out of
|
|
1036
|
+
* user-facing surfaces but still run in test suites and remain available to
|
|
1037
|
+
* `flow_simulate` / CLI `--simulate`.
|
|
1038
|
+
*/
|
|
1039
|
+
public?: boolean;
|
|
1031
1040
|
in?: unknown;
|
|
1032
1041
|
/** Trigger metadata for sources — type and options for the trigger call. */
|
|
1033
1042
|
trigger?: {
|
|
@@ -2999,13 +3008,19 @@ declare function tryCatchAsync<P extends unknown[], R>(fn: (...args: P) => R, on
|
|
|
2999
3008
|
/**
|
|
3000
3009
|
* A utility function that wraps a function with hooks.
|
|
3001
3010
|
*
|
|
3011
|
+
* Pre/post hooks are user-supplied and may throw. A throwing hook must not
|
|
3012
|
+
* crash the surrounding pipeline — on failure, fall back to calling the
|
|
3013
|
+
* original function (pre-hook) or keep the original result (post-hook).
|
|
3014
|
+
*
|
|
3002
3015
|
* @template P, R
|
|
3003
3016
|
* @param fn The function to wrap.
|
|
3004
3017
|
* @param name The name of the function.
|
|
3005
3018
|
* @param hooks The hooks to use.
|
|
3019
|
+
* @param logger Optional logger for hook failure warnings. Falls back to
|
|
3020
|
+
* `console.warn` when not provided.
|
|
3006
3021
|
* @returns The wrapped function.
|
|
3007
3022
|
*/
|
|
3008
|
-
declare function useHooks<P extends unknown[], R>(fn: (...args: P) => R, name: string, hooks: Functions): (...args: P) => R;
|
|
3023
|
+
declare function useHooks<P extends unknown[], R>(fn: (...args: P) => R, name: string, hooks: Functions, logger?: Instance$4): (...args: P) => R;
|
|
3009
3024
|
|
|
3010
3025
|
/**
|
|
3011
3026
|
* Parses a user agent string to extract browser, OS, and device information.
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i=(e,n)=>{for(var r in n)t(e,r,{get:n[r],enumerable:!0})},a={};i(a,{Cache:()=>s,Collector:()=>c,Const:()=>E,Context:()=>u,Destination:()=>l,ENV_MARKER_PREFIX:()=>U,Elb:()=>f,Flow:()=>p,Hint:()=>A,Hooks:()=>d,Level:()=>g,Lifecycle:()=>O,Logger:()=>m,Mapping:()=>y,Matcher:()=>S,On:()=>b,Request:()=>v,Simulation:()=>$,Source:()=>w,Store:()=>j,Transformer:()=>h,Trigger:()=>k,WalkerOS:()=>x,anonymizeIP:()=>P,applyUpdate:()=>wt,assign:()=>K,branch:()=>N,buildCacheContext:()=>yt,castToProperty:()=>Ne,castValue:()=>pe,checkCache:()=>ht,clone:()=>se,compileCache:()=>bt,compileMatcher:()=>pt,compileNext:()=>mt,createDestination:()=>me,createEvent:()=>ye,createIngest:()=>_,createLogger:()=>Se,createMockContext:()=>He,createMockLogger:()=>Fe,createRespond:()=>ft,debounce:()=>je,deepMerge:()=>ge,defaultClickIds:()=>ve,fetchPackage:()=>at,fetchPackageSchema:()=>ct,filterValues:()=>_e,flattenIncludeSections:()=>fe,formatOut:()=>jt,getBrowser:()=>Je,getBrowserVersion:()=>Ke,getByPath:()=>ce,getDeviceType:()=>Qe,getEvent:()=>be,getFlowSettings:()=>q,getGrantedConsent:()=>de,getHeaders:()=>Be,getId:()=>he,getMappingEvent:()=>Me,getMappingValue:()=>Te,getMarketingParameters:()=>we,getOS:()=>Ge,getOSVersion:()=>Xe,getPlatform:()=>Z,isArguments:()=>G,isArray:()=>X,isBoolean:()=>Q,isCommand:()=>Y,isDefined:()=>ee,isElementOrDocument:()=>te,isFunction:()=>ne,isNumber:()=>re,isObject:()=>oe,isPropertyType:()=>Ee,isRouteArray:()=>dt,isSameType:()=>ie,isString:()=>ae,mcpError:()=>lt,mcpResult:()=>ut,mergeContractSchemas:()=>I,mockEnv:()=>De,packageNameToVariable:()=>B,parseUserAgent:()=>Ze,processEventMapping:()=>Ie,requestToData:()=>Ue,requestToParameter:()=>Ve,resolveContracts:()=>R,resolveNext:()=>gt,setByPath:()=>ue,storeCache:()=>vt,throttle:()=>ke,throwError:()=>C,transformData:()=>Le,traverseEnv:()=>ze,trim:()=>We,tryCatch:()=>Pe,tryCatchAsync:()=>Ce,useHooks:()=>qe,walkPath:()=>V,wrapCondition:()=>et,wrapFn:()=>tt,wrapValidate:()=>nt}),module.exports=(e=a,((e,i,a,s)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let c of r(i))o.call(e,c)||c===a||t(e,c,{get:()=>i[c],enumerable:!(s=n(i,c))||s.enumerable});return e})(t({},"__esModule",{value:!0}),e));var s={},c={},u={},l={},f={},p={},d={},m={};i(m,{Level:()=>g});var g=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(g||{}),y={},b={},h={},v={},w={},j={},k={},O={},x={},$={},S={},A={},E={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function _(e){return{_meta:{hops:0,path:[e]}}}function N(e,t){return{event:e,next:t}}function P(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function C(e){throw new Error(String(e))}var M=["globals","context","custom","user","consent"],T=new Set(["description","examples","title","$comment"]);function R(e){const t={},n=new Set;function r(o){if(t[o])return t[o];n.has(o)&&C(`Circular extends chain detected: ${[...n,o].join(" → ")}`);const i=e[o];i||C(`Contract "${o}" not found`),n.add(o);let a={};if(i.extends){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);for(const r of M){const o=e[r],i=t[r];o&&i?n[r]=I(o,i):(o||i)&&(n[r]={...o||i})}if(e.events||t.events){const r={},o=new Set([...Object.keys(e.events||{}),...Object.keys(t.events||{})]);for(const n of o){const o=e.events?.[n]||{},i=t.events?.[n]||{},a=new Set([...Object.keys(o),...Object.keys(i)]);r[n]={};for(const e of a){const t=o[e],a=i[e];r[n][e]=t&&a?I(t,a):{...t||a}}}n.events=r}return n}(r(i.extends),i)}else a={...i};if(delete a.extends,a.events&&(a.events=function(e){const t={};for(const n of Object.keys(e))if("*"!==n){t[n]={};for(const r of Object.keys(e[n]||{})){let o={};const i=e["*"]?.["*"];i&&(o=I(o,i));const a=e["*"]?.[r];a&&"*"!==r&&(o=I(o,a));const s=e[n]?.["*"];s&&"*"!==r&&(o=I(o,s));const c=e[n]?.[r];c&&(o=I(o,c)),t[n][r]=o}}e["*"]&&(t["*"]={...e["*"]});return t}(a.events)),a.events){const e={};for(const[t,n]of Object.entries(a.events)){e[t]={};for(const[r,o]of Object.entries(n))e[t][r]=D(o)}a.events=e}return n.delete(o),t[o]=a,a}for(const t of Object.keys(e))r(t);return t}function I(e,t){const n={...e};for(const r of Object.keys(t)){const o=e[r],i=t[r];"required"===r&&Array.isArray(o)&&Array.isArray(i)?n[r]=[...new Set([...o,...i])]:z(o)&&z(i)?n[r]=I(o,i):n[r]=i}return n}function D(e){const t={};for(const[n,r]of Object.entries(e))T.has(n)||(null===r||"object"!=typeof r||Array.isArray(r)?t[n]=r:t[n]=D(r));return t}function z(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function F(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function H(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var U="__WALKEROS_ENV:";function V(e,t,n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const i=r[e];if(null==o||"object"!=typeof o){const o=r.slice(0,e).join(".");C(`Path "${t}" not found in "${n}": "${i}" does not exist${o?` in "${o}"`:""}`)}const a=o;if(!(i in a)){const o=r.slice(0,e).join(".");C(`Path "${t}" not found in "${n}": "${i}" does not exist${o?` in "${o}"`:""}`)}o=a[i]}return o}function L(e,t,n,r,o){if("string"==typeof e){const i=e.match(/^\$def\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(i){const e=i[1],a=i[2];void 0===n[e]&&C(`Definition "${e}" not found`);let s=L(n[e],t,n,r,o);return a&&(s=V(s,a,`$def.${e}`)),s}const a=e.match(/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(a&&o){const e=a[1],t=a[2];e in o||C(`Contract "${e}" not found`);let n=o[e];return t&&(n=V(n,t,`$contract.${e}`)),n}let s=e.replace(/\$var\.([a-zA-Z_][a-zA-Z0-9_]*)/g,(e,n)=>{if(void 0!==t[n])return String(t[n]);C(`Variable "${n}" not found`)});return s=s.replace(/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,(e,t,n)=>r?.deferred?void 0!==n?`${U}${t}:${n}`:`${U}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==n?n:void C(`Environment variable "${t}" not found and no default provided`)),s}if(Array.isArray(e))return e.map(e=>L(e,t,n,r,o));if(null!==e&&"object"==typeof e){const i={};for(const[a,s]of Object.entries(e))i[a]=L(s,t,n,r,o);return i}return e}function B(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 W(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?B(e):void 0}function q(e,t,n){const r=Object.keys(e.flows);t||(1===r.length?t=r[0]:C(`Multiple flows found (${r.join(", ")}). Please specify a flow.`));const o=e.flows[t];o||C(`Flow "${t}" not found. Available: ${r.join(", ")}`);const i=JSON.parse(JSON.stringify(o));let a;if(e.contract){const t=F(e.variables,o.variables),r=H(e.definitions,o.definitions);a=R(L(e.contract,t,r,n))}if(i.sources)for(const[t,r]of Object.entries(i.sources)){const s=F(e.variables,o.variables,r.variables),c=H(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.sources[t]={package:r.package,config:u,env:l,primary:r.primary,variables:r.variables,definitions:r.definitions,before:r.before,next:r.next,cache:r.cache,code:d}}if(i.destinations)for(const[t,r]of Object.entries(i.destinations)){const s=F(e.variables,o.variables,r.variables),c=H(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.destinations[t]={package:r.package,config:u,env:l,variables:r.variables,definitions:r.definitions,before:r.before,next:r.next,cache:r.cache,code:d}}if(i.stores)for(const[t,r]of Object.entries(i.stores)){const s=F(e.variables,o.variables,r.variables),c=H(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.stores[t]={package:r.package,config:u,env:l,variables:r.variables,definitions:r.definitions,code:d}}if(i.transformers)for(const[t,r]of Object.entries(i.transformers)){const s=F(e.variables,o.variables,r.variables),c=H(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.transformers[t]={package:r.package,config:u,env:l,variables:r.variables,definitions:r.definitions,before:r.before,next:r.next,cache:r.cache,code:d}}if(i.collector){const t=F(e.variables,o.variables),r=H(e.definitions,o.definitions),s=L(i.collector,t,r,n,a);i.collector=s}return i}function Z(e){return void 0!==e.web?"web":void 0!==e.server?"server":void C("Settings must have web or server key")}var J={merge:!0,shallow:!0,extend:!0};function K(e,t={},n={}){n={...J,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const i=e[r];return n.merge&&Array.isArray(i)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...i]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function G(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function X(e){return Array.isArray(e)}function Q(e){return"boolean"==typeof e}function Y(e){return"walker"===e}function ee(e){return void 0!==e}function te(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function ne(e){return"function"==typeof e}function re(e){return"number"==typeof e&&!Number.isNaN(e)}function oe(e){return"object"==typeof e&&null!==e&&!X(e)&&"[object Object]"===Object.prototype.toString.call(e)}function ie(e,t){return typeof e==typeof t}function ae(e){return"string"==typeof e}function se(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]=se(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(se(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 ce(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&X(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=ce(e,t,n);i.push(r)}return i}if(o=o instanceof Object?o[t]:void 0,void 0===o)break}return ee(o)?o:n}function ue(e,t,n){if(!oe(e))return e;const r=se(e),o=t.split(".");let i=r;for(let e=0;e<o.length;e++){const t=o[e];e===o.length-1?i[t]=n:(t in i&&"object"==typeof i[t]&&null!==i[t]||(i[t]={}),i=i[t])}return r}var le={data:e=>e.data,globals:e=>e.globals,context:e=>e.context,user:e=>e.user,source:e=>e.source,version:e=>e.version,event:e=>({entity:e.entity,action:e.action,id:e.id,timestamp:e.timestamp,name:e.name,trigger:e.trigger,group:e.group,count:e.count,timing:e.timing})};function fe(e,t){const n={},r=t.includes("all")?Object.keys(le):t;for(const t of r){const r=le[t];if(!r)continue;const o=r(e);if(oe(o))for(const[e,r]of Object.entries(o)){if(void 0===r)continue;const o="context"===t&&Array.isArray(r)?r[0]:r;n[`${t}_${e}`]=o}}return n}function pe(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function de(e,t={},n={}){const r={...t,...n},o={};let i=!e||0===Object.keys(e).length;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(i=!0))}),!!i&&o}function me(e,t){const n={...e};return n.config=K(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=K(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=K(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function ge(e,t){if(!oe(t))return e;for(const n of Object.keys(t)){const r=t[n];void 0!==r&&(oe(r)&&oe(e[n])?ge(e[n],r):e[n]=r)}return e}function ye(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",r=e.count||1,o=K({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"},nested:[],context:{element:["child",0]}}],consent:{functional:!0},id:`${t}-${n}-${r}`,trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:n,count:r,version:{source:"3.4.0",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[t,n]=e.name.split(" ")??[];t&&n&&(o.entity=t,o.action=n)}return o}function be(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 ye({...{"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 he(e=6,t){if(t){const n=t.length;let r="";for(let o=0;o<e;o++)r+=t[Math.random()*n|0];return r}let n="";for(let t=36;n.length<e;)n+=(Math.random()*t|0).toString(t);return n}var ve=[{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 we(e,t={},n=[]){const r={};Object.entries(K({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(ve.map(e=>e.param));return[...ve.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):ve,i=new Map;e.searchParams.forEach((e,t)=>{e&&i.set(t.toLowerCase(),e)});for(const e of o){const t=i.get(e.param);t&&(r[e.param]=t,r.clickId||(r.clickId=e.param,r.platform=e.platform))}return r}function je(e,t=1e3,n=!1){let r,o=null,i=!1;return(...a)=>new Promise(s=>{const c=n&&!i;o&&clearTimeout(o),o=setTimeout(()=>{o=null,n&&!i||(r=e(...a),s(r))},t),c&&(i=!0,r=e(...a),s(r))})}function ke(e,t=1e3){let n=null;return function(...r){if(null===n)return n=setTimeout(()=>{n=null},t),e(...r)}}function Oe(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function xe(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=Oe(e)):n=e,void 0!==t&&(t instanceof Error?r.error=Oe(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=Oe(r.error))):r.value=t),{message:n,context:r}}var $e=(e,t,n,r)=>{const o=`${g[e]}${r.length>0?` [${r.join(":")}]`:""}`,i=Object.keys(n).length>0,a=0===e?console.error:1===e?console.warn:console.log;i?a(o,t,n):a(o,t)};function Se(e={}){return Ae({level:void 0!==e.level?function(e){return"string"==typeof e?g[e]:e}(e.level):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]})}function Ae(e){const{level:t,handler:n,jsonHandler:r,scope:o}=e,i=(e,r,i)=>{if(e<=t){const t=xe(r,i);n?n(e,t.message,t.context,o,$e):$e(e,t.message,t.context,o)}};return{error:(e,t)=>i(0,e,t),warn:(e,t)=>i(1,e,t),info:(e,t)=>i(2,e,t),debug:(e,t)=>i(3,e,t),throw:(e,t)=>{const r=xe(e,t);throw n?n(0,r.message,r.context,o,$e):$e(0,r.message,r.context,o),new Error(r.message)},json:e=>{r?r(e):console.log(JSON.stringify(e,null,2))},scope:e=>Ae({level:t,handler:n,jsonHandler:r,scope:[...o,e]})}}function Ee(e){return Q(e)||ae(e)||re(e)||!ee(e)||X(e)&&e.every(Ee)||oe(e)&&Object.values(e).every(Ee)}function _e(e){return Q(e)||ae(e)||re(e)?e:G(e)?_e(Array.from(e)):X(e)?e.map(e=>_e(e)).filter(e=>void 0!==e):oe(e)?Object.entries(e).reduce((e,[t,n])=>{const r=_e(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function Ne(e){return Ee(e)?e:void 0}function Pe(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function Ce(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}async function Me(e,t){const[n,r]=(e.name||"").split(" ");if(!t||!n||!r)return{};let o,i="",a=n,s=r;const c=t=>{if(t)return(t=X(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[a]||(a="*");const u=t[a];return u&&(u[s]||(s="*"),o=c(u[s])),o||(a="*",s="*",o=c(t[a]?.[s])),o&&(i=`${a} ${s}`),{eventMapping:o,mappingKey:i}}async function Te(e,t={},n={}){if(!ee(e))return;const r=oe(e)&&e.consent||n.consent||n.collector?.consent,o=X(t)?t:[t];for(const t of o){const o=await Ce(Re)(e,t,{...n,consent:r});if(ee(o))return o}}async function Re(e,t,n={}){const{collector:r,consent:o}=n;return(X(t)?t:[t]).reduce(async(t,i)=>{const a=await t;if(a)return a;const s=ae(i)?{key:i}:i;if(!Object.keys(s).length)return;const{condition:c,consent:u,fn:l,key:f,loop:p,map:d,set:m,validate:g,value:y}=s;if(c&&!await Ce(c)(e,i,r))return;if(u&&!de(u,o))return y;let b=ee(y)?y:e;if(l&&(b=await Ce(l)(e,i,n)),f&&(b=ce(e,f,y)),p){const[t,r]=p,o="this"===t?[e]:await Te(e,t,n);X(o)&&(b=(await Promise.all(o.map(e=>Te(e,r,n)))).filter(ee))}else d?b=await Object.entries(d).reduce(async(t,[r,o])=>{const i=await t,a=await Te(e,o,n);return ee(a)&&(i[r]=a),i},Promise.resolve({})):m&&(b=await Promise.all(m.map(t=>Re(e,t,n))));g&&!await Ce(g)(b)&&(b=void 0);const h=Ne(b);return ee(h)?h:Ne(y)},Promise.resolve(void 0))}async function Ie(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await Te(e,r,{collector:n});e=ue(e,t,o)}));const{eventMapping:r,mappingKey:o}=await Me(e,t.mapping);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await Te(e,r,{collector:n});e=ue(e,t,o)}));let i=t.data&&await Te(e,t.data,{collector:n});const a=Boolean(r?.skip);if(r){if(r.ignore)return{event:e,data:i,mapping:r,mappingKey:o,ignore:!0,skip:a};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await Te(e,r.data,{collector:n});i=oe(i)&&oe(t)?K(i,t):t}}const s=r?.include??t.include;if(s&&s.length>0){const t=fe(e,s);Object.keys(t).length>0&&(i=oe(i)?K(t,i):i??t)}return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1,skip:a}}function De(e,t){const n=(e,r=[])=>new Proxy(e,{get(e,o){const i=e[o],a=[...r,o];return"function"==typeof i?i.prototype&&i.prototype.constructor===i?i:(...e)=>{const r=t(a,e,i);if(r&&"object"==typeof r)return n(r,a);const o=i(...e);return o&&"object"==typeof o?n(o,a):r}:i&&"object"==typeof i?n(i,a):i}});return n(e)}function ze(e,t){const n=(e,r=[])=>{if(!e||"object"!=typeof e)return e;const o=Array.isArray(e)?[]:{};for(const[i,a]of Object.entries(e)){const e=[...r,i];Array.isArray(o)?o[Number(i)]=t(a,e):o[i]=t(a,e),a&&"object"==typeof a&&"function"!=typeof a&&(Array.isArray(o)?o[Number(i)]=n(a,e):o[i]=n(a,e))}return o};return n(e)}function Fe(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=Fe();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 He(e={}){return{collector:{},config:{},env:{},logger:Fe(),id:"test",ingest:_("test"),...e}}function Ue(e){const t=String(e),n=t.split("?")[1]||t;return Pe(()=>{const e=new URLSearchParams(n),t={};return e.forEach((e,n)=>{const r=n.split(/[[\]]+/).filter(Boolean);let o=t;r.forEach((t,n)=>{const i=n===r.length-1;if(X(o)){const a=parseInt(t,10);i?o[a]=pe(e):(o[a]=o[a]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[a])}else oe(o)&&(i?o[t]=pe(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function Ve(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(X(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):oe(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 Le(e){return void 0===e||ie(e,"")?e:JSON.stringify(e)}function Be(e={}){return K({"Content-Type":"application/json; charset=utf-8"},e)}function We(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function qe(e,t,n){return function(...r){let o;const i="post"+t,a=n["pre"+t],s=n[i];return o=a?a({fn:e},...r):e(...r),s&&(o=s({fn:e,result:o},...r)),o}}function Ze(e){return e?{userAgent:e,browser:Je(e),browserVersion:Ke(e),os:Ge(e),osVersion:Xe(e),deviceType:Qe(e)}:{}}function Je(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 Ke(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 Ge(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 Xe(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function Qe(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 Ye(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function et(e){const t=Ye(e);return new Function("value","mapping","collector",t)}function tt(e){const t=Ye(e);return new Function("value","mapping","options",t)}function nt(e){const t=Ye(e);return new Function("value",t)}var rt="https://cdn.jsdelivr.net/npm",ot="dist/walkerOS.json";function it(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function at(e,t){const n=t?.version||"latest",r=t?.timeout||1e4,o=new AbortController,i=setTimeout(()=>o.abort(),r),a=o.signal;try{let r,o;if(t?.baseUrl){const i=encodeURIComponent(e),s=`${t.baseUrl}/api/packages/${i}`;r=await st(`${s}?version=${n}&path=package.json`,a),o=await st(`${s}?version=${n}&path=dist/walkerOS.json`,a)}else{const t=`${rt}/${e}@${n}`;r=await st(`${t}/package.json`,a),o=await st(`${t}/${ot}`,a)}return function(e,t,n,r){const o=r.$meta||{},i=r.schemas||{},a=r.examples||{},s=r.hints,c=s?Object.keys(s):[],u=[],l=a.step||{};for(const[e,t]of Object.entries(l)){const n=t,r={name:e};"string"==typeof n?.description&&(r.description=n.description),u.push(r)}const f="string"==typeof o.docs?o.docs:void 0,p="string"==typeof o.source?o.source:void 0;return{packageName:e,version:"string"==typeof n.version?n.version:t,description:"string"==typeof n.description?n.description:void 0,type:"string"==typeof o.type?o.type:void 0,platform:it(o.platform),schemas:i,examples:a,...f?{docs:f}:{},...p?{source:p}:{},...s&&Object.keys(s).length>0?{hints:s}:{},hintKeys:c,exampleSummaries:u}}(e,n,r,o)}finally{clearTimeout(i)}}async function st(e,t){const n=await fetch(e,{signal:t});if(!n.ok)throw new Error(`Failed to fetch ${e} (HTTP ${n.status})`);return await n.json()}async function ct(e,t){const n=await at(e,t);return{packageName:n.packageName,version:n.version,type:n.type,platform:n.platform,schemas:n.schemas,examples:n.examples,...n.hints?{hints:n.hints}:{}}}function ut(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function lt(e,t){let n,r,o,i;if(e instanceof Error){n=e.message;const t=e;t.code&&(o=t.code),Array.isArray(t.details)&&(i=t.details)}else if("string"==typeof e)n=e;else if(e&&"object"==typeof e&&"issues"in e&&Array.isArray(e.issues)){const t=e.issues;n=t.map(e=>e.message).join("; "),r=t[0]?.path?.join(".")||void 0}else n=e&&"object"==typeof e&&"message"in e?String(e.message):"Unknown error";const a={error:n};return t&&(a.hint=t),r&&(a.path=r),o&&(a.code=o),i&&(a.details=i),{content:[{type:"text",text:JSON.stringify(a)}],structuredContent:a,isError:!0}}function ft(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function pt(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(pt);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(pt);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value:r,not:o}=e,i=function(e,t){switch(e){case"eq":return e=>String(e??"")===t;case"contains":return e=>String(e??"").includes(t);case"prefix":return e=>String(e??"").startsWith(t);case"suffix":return e=>String(e??"").endsWith(t);case"regex":{const e=new RegExp(t);return t=>e.test(String(t??""))}case"gt":{const e=Number(t);return t=>Number(t)>e}case"lt":{const e=Number(t);return t=>Number(t)<e}case"exists":return e=>null!=e}}(n,r);return e=>{const n=ce(e,t),r=i(n);return o?!r:r}}(e)}function dt(e){return Array.isArray(e)&&e.length>0&&"object"==typeof e[0]&&null!==e[0]&&"match"in e[0]}function mt(e){if(null!=e){if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(dt(e)){return{type:"routes",routes:e.map(e=>({match:pt(e.match),next:mt(e.next)}))}}return{type:"chain",value:e}}}}function gt(e,t={}){if(e){if("static"===e.type)return e.value;if("chain"===e.type)return e.value;for(const n of e.routes)if(n.match(t))return gt(n.next,t)}}function yt(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function bt(e){return{full:e.full??!1,storeId:e.store,rules:e.rules.map(e=>({match:pt(e.match),key:e.key,ttl:e.ttl,update:e.update}))}}function ht(e,t,n,r){const o=e.rules.find(e=>e.match(n));if(!o)return null;const i=o.key.map(e=>String(ce(n,e)??""));if(i.every(e=>""===e))return null;const a=`${r}:${i.join(":")}`,s=t.get(a);return void 0!==s?{status:"HIT",key:a,value:s,rule:o}:{status:"MISS",key:a,rule:o}}function vt(e,t,n,r){e.set(t,n,1e3*r)}async function wt(e,t,n){if(!t)return e;let r=e;for(const[e,o]of Object.entries(t)){r=ue(r,e,await Te(n,o))}return r}function jt(e){return 0===e.length?"// no output":e.map(kt).join(";\n\n")}function kt(e){const[t,...n]=e,r=n.map(Ot).join(", ");return"return"===t?r?`return ${r}`:"return":`${t}(${r})`}function Ot(e){return void 0===e?"undefined":null===e?"null":"function"==typeof e?"[Function]":JSON.stringify(e,null,2)}//# sourceMappingURL=index.js.map
|
|
1
|
+
"use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,i=(e,n)=>{for(var r in n)t(e,r,{get:n[r],enumerable:!0})},a={};i(a,{Cache:()=>s,Collector:()=>c,Const:()=>E,Context:()=>u,Destination:()=>l,ENV_MARKER_PREFIX:()=>U,Elb:()=>f,Flow:()=>p,Hint:()=>A,Hooks:()=>d,Level:()=>m,Lifecycle:()=>O,Logger:()=>g,Mapping:()=>y,Matcher:()=>S,On:()=>b,Request:()=>v,Simulation:()=>$,Source:()=>w,Store:()=>j,Transformer:()=>h,Trigger:()=>k,WalkerOS:()=>x,anonymizeIP:()=>P,applyUpdate:()=>wt,assign:()=>K,branch:()=>N,buildCacheContext:()=>yt,castToProperty:()=>Ne,castValue:()=>pe,checkCache:()=>ht,clone:()=>se,compileCache:()=>bt,compileMatcher:()=>pt,compileNext:()=>gt,createDestination:()=>ge,createEvent:()=>ye,createIngest:()=>_,createLogger:()=>Se,createMockContext:()=>Fe,createMockLogger:()=>ze,createRespond:()=>ft,debounce:()=>je,deepMerge:()=>me,defaultClickIds:()=>ve,fetchPackage:()=>at,fetchPackageSchema:()=>ct,filterValues:()=>_e,flattenIncludeSections:()=>fe,formatOut:()=>jt,getBrowser:()=>Je,getBrowserVersion:()=>Ke,getByPath:()=>ce,getDeviceType:()=>Qe,getEvent:()=>be,getFlowSettings:()=>q,getGrantedConsent:()=>de,getHeaders:()=>Be,getId:()=>he,getMappingEvent:()=>Me,getMappingValue:()=>Te,getMarketingParameters:()=>we,getOS:()=>Ge,getOSVersion:()=>Xe,getPlatform:()=>Z,isArguments:()=>G,isArray:()=>X,isBoolean:()=>Q,isCommand:()=>Y,isDefined:()=>ee,isElementOrDocument:()=>te,isFunction:()=>ne,isNumber:()=>re,isObject:()=>oe,isPropertyType:()=>Ee,isRouteArray:()=>dt,isSameType:()=>ie,isString:()=>ae,mcpError:()=>lt,mcpResult:()=>ut,mergeContractSchemas:()=>I,mockEnv:()=>De,packageNameToVariable:()=>B,parseUserAgent:()=>Ze,processEventMapping:()=>Ie,requestToData:()=>Ue,requestToParameter:()=>Ve,resolveContracts:()=>R,resolveNext:()=>mt,setByPath:()=>ue,storeCache:()=>vt,throttle:()=>ke,throwError:()=>C,transformData:()=>Le,traverseEnv:()=>He,trim:()=>We,tryCatch:()=>Pe,tryCatchAsync:()=>Ce,useHooks:()=>qe,walkPath:()=>V,wrapCondition:()=>et,wrapFn:()=>tt,wrapValidate:()=>nt}),module.exports=(e=a,((e,i,a,s)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let c of r(i))o.call(e,c)||c===a||t(e,c,{get:()=>i[c],enumerable:!(s=n(i,c))||s.enumerable});return e})(t({},"__esModule",{value:!0}),e));var s={},c={},u={},l={},f={},p={},d={},g={};i(g,{Level:()=>m});var m=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(m||{}),y={},b={},h={},v={},w={},j={},k={},O={},x={},$={},S={},A={},E={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function _(e){return{_meta:{hops:0,path:[e]}}}function N(e,t){return{event:e,next:t}}function P(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function C(e){throw new Error(String(e))}var M=["globals","context","custom","user","consent"],T=new Set(["description","examples","title","$comment"]);function R(e){const t={},n=new Set;function r(o){if(t[o])return t[o];n.has(o)&&C(`Circular extends chain detected: ${[...n,o].join(" → ")}`);const i=e[o];i||C(`Contract "${o}" not found`),n.add(o);let a={};if(i.extends){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);for(const r of M){const o=e[r],i=t[r];o&&i?n[r]=I(o,i):(o||i)&&(n[r]={...o||i})}if(e.events||t.events){const r={},o=new Set([...Object.keys(e.events||{}),...Object.keys(t.events||{})]);for(const n of o){const o=e.events?.[n]||{},i=t.events?.[n]||{},a=new Set([...Object.keys(o),...Object.keys(i)]);r[n]={};for(const e of a){const t=o[e],a=i[e];r[n][e]=t&&a?I(t,a):{...t||a}}}n.events=r}return n}(r(i.extends),i)}else a={...i};if(delete a.extends,a.events&&(a.events=function(e){const t={};for(const n of Object.keys(e))if("*"!==n){t[n]={};for(const r of Object.keys(e[n]||{})){let o={};const i=e["*"]?.["*"];i&&(o=I(o,i));const a=e["*"]?.[r];a&&"*"!==r&&(o=I(o,a));const s=e[n]?.["*"];s&&"*"!==r&&(o=I(o,s));const c=e[n]?.[r];c&&(o=I(o,c)),t[n][r]=o}}e["*"]&&(t["*"]={...e["*"]});return t}(a.events)),a.events){const e={};for(const[t,n]of Object.entries(a.events)){e[t]={};for(const[r,o]of Object.entries(n))e[t][r]=D(o)}a.events=e}return n.delete(o),t[o]=a,a}for(const t of Object.keys(e))r(t);return t}function I(e,t){const n={...e};for(const r of Object.keys(t)){const o=e[r],i=t[r];"required"===r&&Array.isArray(o)&&Array.isArray(i)?n[r]=[...new Set([...o,...i])]:H(o)&&H(i)?n[r]=I(o,i):n[r]=i}return n}function D(e){const t={};for(const[n,r]of Object.entries(e))T.has(n)||(null===r||"object"!=typeof r||Array.isArray(r)?t[n]=r:t[n]=D(r));return t}function H(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}function z(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}function F(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var U="__WALKEROS_ENV:";function V(e,t,n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const i=r[e];if(null==o||"object"!=typeof o){const o=r.slice(0,e).join(".");C(`Path "${t}" not found in "${n}": "${i}" does not exist${o?` in "${o}"`:""}`)}const a=o;if(!(i in a)){const o=r.slice(0,e).join(".");C(`Path "${t}" not found in "${n}": "${i}" does not exist${o?` in "${o}"`:""}`)}o=a[i]}return o}function L(e,t,n,r,o){if("string"==typeof e){const i=e.match(/^\$def\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(i){const e=i[1],a=i[2];void 0===n[e]&&C(`Definition "${e}" not found`);let s=L(n[e],t,n,r,o);return a&&(s=V(s,a,`$def.${e}`)),s}const a=e.match(/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/);if(a&&o){const e=a[1],t=a[2];e in o||C(`Contract "${e}" not found`);let n=o[e];return t&&(n=V(n,t,`$contract.${e}`)),n}let s=e.replace(/\$var\.([a-zA-Z_][a-zA-Z0-9_]*)/g,(e,n)=>{if(void 0!==t[n])return String(t[n]);C(`Variable "${n}" not found`)});return s=s.replace(/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,(e,t,n)=>r?.deferred?void 0!==n?`${U}${t}:${n}`:`${U}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==n?n:void C(`Environment variable "${t}" not found and no default provided`)),s}if(Array.isArray(e))return e.map(e=>L(e,t,n,r,o));if(null!==e&&"object"==typeof e){const i={};for(const[a,s]of Object.entries(e))i[a]=L(s,t,n,r,o);return i}return e}function B(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 W(e,t,n){if(t)return t;if(!e||!n)return;return n[e]?B(e):void 0}function q(e,t,n){const r=Object.keys(e.flows);t||(1===r.length?t=r[0]:C(`Multiple flows found (${r.join(", ")}). Please specify a flow.`));const o=e.flows[t];o||C(`Flow "${t}" not found. Available: ${r.join(", ")}`);const i=JSON.parse(JSON.stringify(o));let a;if(e.contract){const t=z(e.variables,o.variables),r=F(e.definitions,o.definitions);a=R(L(e.contract,t,r,n))}if(i.sources)for(const[t,r]of Object.entries(i.sources)){const s=z(e.variables,o.variables,r.variables),c=F(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.sources[t]={package:r.package,config:u,env:l,primary:r.primary,variables:r.variables,definitions:r.definitions,before:r.before,next:r.next,cache:r.cache,code:d}}if(i.destinations)for(const[t,r]of Object.entries(i.destinations)){const s=z(e.variables,o.variables,r.variables),c=F(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.destinations[t]={package:r.package,config:u,env:l,variables:r.variables,definitions:r.definitions,before:r.before,next:r.next,cache:r.cache,code:d}}if(i.stores)for(const[t,r]of Object.entries(i.stores)){const s=z(e.variables,o.variables,r.variables),c=F(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.stores[t]={package:r.package,config:u,env:l,variables:r.variables,definitions:r.definitions,code:d}}if(i.transformers)for(const[t,r]of Object.entries(i.transformers)){const s=z(e.variables,o.variables,r.variables),c=F(e.definitions,o.definitions,r.definitions),u=L(r.config,s,c,n,a),l=L(r.env,s,c,n,a),f=W(r.package,r.code,i.bundle?.packages),p="string"==typeof r.code||"object"==typeof r.code?r.code:void 0,d=f||p;i.transformers[t]={package:r.package,config:u,env:l,variables:r.variables,definitions:r.definitions,before:r.before,next:r.next,cache:r.cache,code:d}}if(i.collector){const t=z(e.variables,o.variables),r=F(e.definitions,o.definitions),s=L(i.collector,t,r,n,a);i.collector=s}return i}function Z(e){return void 0!==e.web?"web":void 0!==e.server?"server":void C("Settings must have web or server key")}var J={merge:!0,shallow:!0,extend:!0};function K(e,t={},n={}){n={...J,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const i=e[r];return n.merge&&Array.isArray(i)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...i]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function G(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function X(e){return Array.isArray(e)}function Q(e){return"boolean"==typeof e}function Y(e){return"walker"===e}function ee(e){return void 0!==e}function te(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function ne(e){return"function"==typeof e}function re(e){return"number"==typeof e&&!Number.isNaN(e)}function oe(e){return"object"==typeof e&&null!==e&&!X(e)&&"[object Object]"===Object.prototype.toString.call(e)}function ie(e,t){return typeof e==typeof t}function ae(e){return"string"==typeof e}function se(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]=se(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(se(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 ce(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&X(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=ce(e,t,n);i.push(r)}return i}if(o=o instanceof Object?o[t]:void 0,void 0===o)break}return ee(o)?o:n}function ue(e,t,n){if(!oe(e))return e;const r=se(e),o=t.split(".");let i=r;for(let e=0;e<o.length;e++){const t=o[e];e===o.length-1?i[t]=n:(t in i&&"object"==typeof i[t]&&null!==i[t]||(i[t]={}),i=i[t])}return r}var le={data:e=>e.data,globals:e=>e.globals,context:e=>e.context,user:e=>e.user,source:e=>e.source,version:e=>e.version,event:e=>({entity:e.entity,action:e.action,id:e.id,timestamp:e.timestamp,name:e.name,trigger:e.trigger,group:e.group,count:e.count,timing:e.timing})};function fe(e,t){const n={},r=t.includes("all")?Object.keys(le):t;for(const t of r){const r=le[t];if(!r)continue;const o=r(e);if(oe(o))for(const[e,r]of Object.entries(o)){if(void 0===r)continue;const o="context"===t&&Array.isArray(r)?r[0]:r;n[`${t}_${e}`]=o}}return n}function pe(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function de(e,t={},n={}){const r={...t,...n},o={};let i=!e||0===Object.keys(e).length;return Object.keys(r).forEach(t=>{r[t]&&(o[t]=!0,e&&e[t]&&(i=!0))}),!!i&&o}function ge(e,t){const n={...e};return n.config=K(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=K(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=K(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function me(e,t){if(!oe(t))return e;for(const n of Object.keys(t)){const r=t[n];void 0!==r&&(oe(r)&&oe(e[n])?me(e[n],r):e[n]=r)}return e}function ye(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=e.group||"gr0up",r=e.count||1,o=K({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"},nested:[],context:{element:["child",0]}}],consent:{functional:!0},id:`${t}-${n}-${r}`,trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,group:n,count:r,version:{source:"3.4.1",tagging:1},source:{type:"web",id:"https://localhost:80",previous_id:"http://remotehost:9001"}},e,{merge:!1});if(e.name){const[t,n]=e.name.split(" ")??[];t&&n&&(o.entity=t,o.action=n)}return o}function be(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 ye({...{"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 he(e=6,t){if(t){const n=t.length;let r="";for(let o=0;o<e;o++)r+=t[Math.random()*n|0];return r}let n="";for(let t=36;n.length<e;)n+=(Math.random()*t|0).toString(t);return n}var ve=[{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 we(e,t={},n=[]){const r={};Object.entries(K({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(ve.map(e=>e.param));return[...ve.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):ve,i=new Map;e.searchParams.forEach((e,t)=>{e&&i.set(t.toLowerCase(),e)});for(const e of o){const t=i.get(e.param);t&&(r[e.param]=t,r.clickId||(r.clickId=e.param,r.platform=e.platform))}return r}function je(e,t=1e3,n=!1){let r,o=null,i=!1;return(...a)=>new Promise(s=>{const c=n&&!i;o&&clearTimeout(o),o=setTimeout(()=>{o=null,n&&!i||(r=e(...a),s(r))},t),c&&(i=!0,r=e(...a),s(r))})}function ke(e,t=1e3){let n=null;return function(...r){if(null===n)return n=setTimeout(()=>{n=null},t),e(...r)}}function Oe(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function xe(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=Oe(e)):n=e,void 0!==t&&(t instanceof Error?r.error=Oe(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=Oe(r.error))):r.value=t),{message:n,context:r}}var $e=(e,t,n,r)=>{const o=`${m[e]}${r.length>0?` [${r.join(":")}]`:""}`,i=Object.keys(n).length>0,a=0===e?console.error:1===e?console.warn:console.log;i?a(o,t,n):a(o,t)};function Se(e={}){return Ae({level:void 0!==e.level?function(e){return"string"==typeof e?m[e]:e}(e.level):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]})}function Ae(e){const{level:t,handler:n,jsonHandler:r,scope:o}=e,i=(e,r,i)=>{if(e<=t){const t=xe(r,i);n?n(e,t.message,t.context,o,$e):$e(e,t.message,t.context,o)}};return{error:(e,t)=>i(0,e,t),warn:(e,t)=>i(1,e,t),info:(e,t)=>i(2,e,t),debug:(e,t)=>i(3,e,t),throw:(e,t)=>{const r=xe(e,t);throw n?n(0,r.message,r.context,o,$e):$e(0,r.message,r.context,o),new Error(r.message)},json:e=>{r?r(e):console.log(JSON.stringify(e,null,2))},scope:e=>Ae({level:t,handler:n,jsonHandler:r,scope:[...o,e]})}}function Ee(e){return Q(e)||ae(e)||re(e)||!ee(e)||X(e)&&e.every(Ee)||oe(e)&&Object.values(e).every(Ee)}function _e(e){return Q(e)||ae(e)||re(e)?e:G(e)?_e(Array.from(e)):X(e)?e.map(e=>_e(e)).filter(e=>void 0!==e):oe(e)?Object.entries(e).reduce((e,[t,n])=>{const r=_e(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function Ne(e){return Ee(e)?e:void 0}function Pe(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function Ce(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}async function Me(e,t){const[n,r]=(e.name||"").split(" ");if(!t||!n||!r)return{};let o,i="",a=n,s=r;const c=t=>{if(t)return(t=X(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[a]||(a="*");const u=t[a];return u&&(u[s]||(s="*"),o=c(u[s])),o||(a="*",s="*",o=c(t[a]?.[s])),o&&(i=`${a} ${s}`),{eventMapping:o,mappingKey:i}}async function Te(e,t={},n={}){if(!ee(e))return;const r=oe(e)&&e.consent||n.consent||n.collector?.consent,o=X(t)?t:[t];for(const t of o){const o=await Ce(Re)(e,t,{...n,consent:r});if(ee(o))return o}}async function Re(e,t,n={}){const{collector:r,consent:o}=n;return(X(t)?t:[t]).reduce(async(t,i)=>{const a=await t;if(a)return a;const s=ae(i)?{key:i}:i;if(!Object.keys(s).length)return;const{condition:c,consent:u,fn:l,key:f,loop:p,map:d,set:g,validate:m,value:y}=s;if(c&&!await Ce(c)(e,i,r))return;if(u&&!de(u,o))return y;let b=ee(y)?y:e;if(l&&(b=await Ce(l)(e,i,n)),f&&(b=ce(e,f,y)),p){const[t,r]=p,o="this"===t?[e]:await Te(e,t,n);X(o)&&(b=(await Promise.all(o.map(e=>Te(e,r,n)))).filter(ee))}else d?b=await Object.entries(d).reduce(async(t,[r,o])=>{const i=await t,a=await Te(e,o,n);return ee(a)&&(i[r]=a),i},Promise.resolve({})):g&&(b=await Promise.all(g.map(t=>Re(e,t,n))));m&&!await Ce(m)(b)&&(b=void 0);const h=Ne(b);return ee(h)?h:Ne(y)},Promise.resolve(void 0))}async function Ie(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await Te(e,r,{collector:n});e=ue(e,t,o)}));const{eventMapping:r,mappingKey:o}=await Me(e,t.mapping);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await Te(e,r,{collector:n});e=ue(e,t,o)}));let i=t.data&&await Te(e,t.data,{collector:n});const a=Boolean(r?.skip);if(r){if(r.ignore)return{event:e,data:i,mapping:r,mappingKey:o,ignore:!0,skip:a};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await Te(e,r.data,{collector:n});i=oe(i)&&oe(t)?K(i,t):t}}const s=r?.include??t.include;if(s&&s.length>0){const t=fe(e,s);Object.keys(t).length>0&&(i=oe(i)?K(t,i):i??t)}return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1,skip:a}}function De(e,t){const n=(e,r=[])=>new Proxy(e,{get(e,o){const i=e[o],a=[...r,o];return"function"==typeof i?i.prototype&&i.prototype.constructor===i?i:(...e)=>{const r=t(a,e,i);if(r&&"object"==typeof r)return n(r,a);const o=i(...e);return o&&"object"==typeof o?n(o,a):r}:i&&"object"==typeof i?n(i,a):i}});return n(e)}function He(e,t){const n=(e,r=[])=>{if(!e||"object"!=typeof e)return e;const o=Array.isArray(e)?[]:{};for(const[i,a]of Object.entries(e)){const e=[...r,i];Array.isArray(o)?o[Number(i)]=t(a,e):o[i]=t(a,e),a&&"object"==typeof a&&"function"!=typeof a&&(Array.isArray(o)?o[Number(i)]=n(a,e):o[i]=n(a,e))}return o};return n(e)}function ze(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=ze();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 Fe(e={}){return{collector:{},config:{},env:{},logger:ze(),id:"test",ingest:_("test"),...e}}function Ue(e){const t=String(e),n=t.split("?")[1]||t;return Pe(()=>{const e=new URLSearchParams(n),t={};return e.forEach((e,n)=>{const r=n.split(/[[\]]+/).filter(Boolean);let o=t;r.forEach((t,n)=>{const i=n===r.length-1;if(X(o)){const a=parseInt(t,10);i?o[a]=pe(e):(o[a]=o[a]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[a])}else oe(o)&&(i?o[t]=pe(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function Ve(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(X(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):oe(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 Le(e){return void 0===e||ie(e,"")?e:JSON.stringify(e)}function Be(e={}){return K({"Content-Type":"application/json; charset=utf-8"},e)}function We(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function qe(e,t,n,r){return function(...o){let i;const a="pre"+t,s="post"+t,c=n[a],u=n[s],l=(e,t)=>{r?r.warn(e,{error:t}):console.warn(e,t)};if(c)try{i=c({fn:e},...o)}catch(t){l(`Hook ${String(a)} failed, falling back to original function`,t),i=e(...o)}else i=e(...o);if(u)try{i=u({fn:e,result:i},...o)}catch(e){l(`Hook ${String(s)} failed, keeping original result`,e)}return i}}function Ze(e){return e?{userAgent:e,browser:Je(e),browserVersion:Ke(e),os:Ge(e),osVersion:Xe(e),deviceType:Qe(e)}:{}}function Je(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 Ke(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 Ge(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 Xe(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function Qe(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 Ye(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function et(e){const t=Ye(e);return new Function("value","mapping","collector",t)}function tt(e){const t=Ye(e);return new Function("value","mapping","options",t)}function nt(e){const t=Ye(e);return new Function("value",t)}var rt="https://cdn.jsdelivr.net/npm",ot="dist/walkerOS.json";function it(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function at(e,t){const n=t?.version||"latest",r=t?.timeout||1e4,o=new AbortController,i=setTimeout(()=>o.abort(),r),a=o.signal;try{let r,o;if(t?.baseUrl){const i=encodeURIComponent(e),s=`${t.baseUrl}/api/packages/${i}`;r=await st(`${s}?version=${n}&path=package.json`,a),o=await st(`${s}?version=${n}&path=dist/walkerOS.json`,a)}else{const t=`${rt}/${e}@${n}`;r=await st(`${t}/package.json`,a),o=await st(`${t}/${ot}`,a)}return function(e,t,n,r){const o=r.$meta||{},i=r.schemas||{},a=r.examples||{},s=r.hints,c=s?Object.keys(s):[],u=[],l=a.step||{};for(const[e,t]of Object.entries(l)){const n=t,r={name:e};"string"==typeof n?.description&&(r.description=n.description),u.push(r)}const f="string"==typeof o.docs?o.docs:void 0,p="string"==typeof o.source?o.source:void 0;return{packageName:e,version:"string"==typeof n.version?n.version:t,description:"string"==typeof n.description?n.description:void 0,type:"string"==typeof o.type?o.type:void 0,platform:it(o.platform),schemas:i,examples:a,...f?{docs:f}:{},...p?{source:p}:{},...s&&Object.keys(s).length>0?{hints:s}:{},hintKeys:c,exampleSummaries:u}}(e,n,r,o)}finally{clearTimeout(i)}}async function st(e,t){const n=await fetch(e,{signal:t});if(!n.ok)throw new Error(`Failed to fetch ${e} (HTTP ${n.status})`);return await n.json()}async function ct(e,t){const n=await at(e,t);return{packageName:n.packageName,version:n.version,type:n.type,platform:n.platform,schemas:n.schemas,examples:n.examples,...n.hints?{hints:n.hints}:{}}}function ut(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function lt(e,t){let n,r,o,i;if(e instanceof Error){n=e.message;const t=e;t.code&&(o=t.code),Array.isArray(t.details)&&(i=t.details)}else if("string"==typeof e)n=e;else if(e&&"object"==typeof e&&"issues"in e&&Array.isArray(e.issues)){const t=e.issues;n=t.map(e=>e.message).join("; "),r=t[0]?.path?.join(".")||void 0}else n=e&&"object"==typeof e&&"message"in e?String(e.message):"Unknown error";const a={error:n};return t&&(a.hint=t),r&&(a.path=r),o&&(a.code=o),i&&(a.details=i),{content:[{type:"text",text:JSON.stringify(a)}],structuredContent:a,isError:!0}}function ft(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function pt(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(pt);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(pt);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value:r,not:o}=e,i=function(e,t){switch(e){case"eq":return e=>String(e??"")===t;case"contains":return e=>String(e??"").includes(t);case"prefix":return e=>String(e??"").startsWith(t);case"suffix":return e=>String(e??"").endsWith(t);case"regex":{const e=new RegExp(t);return t=>e.test(String(t??""))}case"gt":{const e=Number(t);return t=>Number(t)>e}case"lt":{const e=Number(t);return t=>Number(t)<e}case"exists":return e=>null!=e}}(n,r);return e=>{const n=ce(e,t),r=i(n);return o?!r:r}}(e)}function dt(e){return Array.isArray(e)&&e.length>0&&"object"==typeof e[0]&&null!==e[0]&&"match"in e[0]}function gt(e){if(null!=e){if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(dt(e)){return{type:"routes",routes:e.map(e=>({match:pt(e.match),next:gt(e.next)}))}}return{type:"chain",value:e}}}}function mt(e,t={}){if(e){if("static"===e.type)return e.value;if("chain"===e.type)return e.value;for(const n of e.routes)if(n.match(t))return mt(n.next,t)}}function yt(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function bt(e){return{full:e.full??!1,storeId:e.store,rules:e.rules.map(e=>({match:pt(e.match),key:e.key,ttl:e.ttl,update:e.update}))}}function ht(e,t,n,r){const o=e.rules.find(e=>e.match(n));if(!o)return null;const i=o.key.map(e=>String(ce(n,e)??""));if(i.every(e=>""===e))return null;const a=`${r}:${i.join(":")}`,s=t.get(a);return void 0!==s?{status:"HIT",key:a,value:s,rule:o}:{status:"MISS",key:a,rule:o}}function vt(e,t,n,r){e.set(t,n,1e3*r)}async function wt(e,t,n){if(!t)return e;let r=e;for(const[e,o]of Object.entries(t)){r=ue(r,e,await Te(n,o))}return r}function jt(e){return 0===e.length?"// no output":e.map(kt).join(";\n\n")}function kt(e){const[t,...n]=e,r=n.map(Ot).join(", ");return"return"===t?r?`return ${r}`:"return":`${t}(${r})`}function Ot(e){return void 0===e?"undefined":null===e?"null":"function"==typeof e?"[Function]":JSON.stringify(e,null,2)}//# sourceMappingURL=index.js.map
|