@walkeros/core 3.3.1 → 3.4.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/dist/dev.d.mts +704 -281
- package/dist/dev.d.ts +704 -281
- 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 +25 -4
- package/dist/index.d.ts +25 -4
- 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
|
@@ -1013,10 +1013,13 @@ interface Settings$3 {
|
|
|
1013
1013
|
* intentionally excluded — they configure wiring, not test data.
|
|
1014
1014
|
*/
|
|
1015
1015
|
type StepCommand = 'config' | 'consent' | 'user' | 'run';
|
|
1016
|
+
/** One observable effect: function/method call (`[callable, ...args]`) or return value (`['return', value]`). */
|
|
1017
|
+
type StepEffect = readonly [callable: string, ...args: unknown[]];
|
|
1018
|
+
/** The effects a step produces, in execution order. Empty = no observable effect (filtered, passthrough). */
|
|
1019
|
+
type StepOut = readonly StepEffect[];
|
|
1016
1020
|
/**
|
|
1017
1021
|
* Named example pair for a step.
|
|
1018
1022
|
* `in` is the input to the step, `out` is the expected output.
|
|
1019
|
-
* `out: false` indicates the step filters/drops this event.
|
|
1020
1023
|
*
|
|
1021
1024
|
* When `command` is set, the test runner invokes
|
|
1022
1025
|
* `elb('walker <command>', in)` instead of pushing `in` as a regular event.
|
|
@@ -1034,7 +1037,7 @@ interface StepExample {
|
|
|
1034
1037
|
options?: unknown;
|
|
1035
1038
|
};
|
|
1036
1039
|
mapping?: unknown;
|
|
1037
|
-
out?:
|
|
1040
|
+
out?: StepOut;
|
|
1038
1041
|
/**
|
|
1039
1042
|
* Invoke a walker command with `in` instead of pushing `in` as an event.
|
|
1040
1043
|
* When set, the test runner calls `elb('walker <command>', in)`.
|
|
@@ -1437,14 +1440,16 @@ type flow_Primitive = Primitive;
|
|
|
1437
1440
|
type flow_Server = Server;
|
|
1438
1441
|
type flow_SourceReference = SourceReference;
|
|
1439
1442
|
type flow_StepCommand = StepCommand;
|
|
1443
|
+
type flow_StepEffect = StepEffect;
|
|
1440
1444
|
type flow_StepExample = StepExample;
|
|
1441
1445
|
type flow_StepExamples = StepExamples;
|
|
1446
|
+
type flow_StepOut = StepOut;
|
|
1442
1447
|
type flow_StoreReference = StoreReference;
|
|
1443
1448
|
type flow_TransformerReference = TransformerReference;
|
|
1444
1449
|
type flow_Variables = Variables;
|
|
1445
1450
|
type flow_Web = Web;
|
|
1446
1451
|
declare namespace flow {
|
|
1447
|
-
export type { flow_Bundle as Bundle, Config$5 as Config, flow_Contract as Contract, flow_ContractActions as ContractActions, flow_ContractEntry as ContractEntry, flow_ContractEvents as ContractEvents, flow_ContractSchema as ContractSchema, flow_Definitions as Definitions, flow_DestinationReference as DestinationReference, flow_InlineCode as InlineCode, flow_Overrides as Overrides, flow_Packages as Packages, flow_Primitive as Primitive, flow_Server as Server, Settings$3 as Settings, flow_SourceReference as SourceReference, flow_StepCommand as StepCommand, flow_StepExample as StepExample, flow_StepExamples as StepExamples, flow_StoreReference as StoreReference, flow_TransformerReference as TransformerReference, flow_Variables as Variables, flow_Web as Web };
|
|
1452
|
+
export type { flow_Bundle as Bundle, Config$5 as Config, flow_Contract as Contract, flow_ContractActions as ContractActions, flow_ContractEntry as ContractEntry, flow_ContractEvents as ContractEvents, flow_ContractSchema as ContractSchema, flow_Definitions as Definitions, flow_DestinationReference as DestinationReference, flow_InlineCode as InlineCode, flow_Overrides as Overrides, flow_Packages as Packages, flow_Primitive as Primitive, flow_Server as Server, Settings$3 as Settings, flow_SourceReference as SourceReference, flow_StepCommand as StepCommand, flow_StepEffect as StepEffect, flow_StepExample as StepExample, flow_StepExamples as StepExamples, flow_StepOut as StepOut, flow_StoreReference as StoreReference, flow_TransformerReference as TransformerReference, flow_Variables as Variables, flow_Web as Web };
|
|
1448
1453
|
}
|
|
1449
1454
|
|
|
1450
1455
|
type AnyFunction$1<P extends unknown[] = never[], R = unknown> = (...args: P) => R;
|
|
@@ -3256,4 +3261,20 @@ declare function checkCache(compiled: CompiledCache, store: Instance$1, context:
|
|
|
3256
3261
|
declare function storeCache(store: Instance$1, key: string, value: unknown, ttlSeconds: number): void;
|
|
3257
3262
|
declare function applyUpdate(value: unknown, update: Record<string, unknown> | undefined, context: Record<string, unknown>): Promise<unknown>;
|
|
3258
3263
|
|
|
3259
|
-
|
|
3264
|
+
/**
|
|
3265
|
+
* Format a step example's `out` as readable code for docs/app rendering.
|
|
3266
|
+
*
|
|
3267
|
+
* - Empty `out` → `// no output`.
|
|
3268
|
+
* - `['return', value]` → `return <value>` (no parentheses).
|
|
3269
|
+
* - `[callable, ...args]` → `callable(<args>)`.
|
|
3270
|
+
* - Primitive args render as JSON (strings quoted, numbers/booleans/null bare).
|
|
3271
|
+
* - `undefined` renders as the literal token `undefined`.
|
|
3272
|
+
* - Objects/arrays render as `JSON.stringify(v, null, 2)`.
|
|
3273
|
+
* - Functions render as `[Function]` (rare in outs; safe fallback).
|
|
3274
|
+
*
|
|
3275
|
+
* Pure function. No runtime dependencies. Used by the website
|
|
3276
|
+
* `<StepExample>` renderer and the app `OutputPanel` for a single source of truth.
|
|
3277
|
+
*/
|
|
3278
|
+
declare function formatOut(out: StepOut): string;
|
|
3279
|
+
|
|
3280
|
+
export { cache as Cache, type CacheResult, type ClickIdEntry, collector as Collector, type CompiledCache, type CompiledNext, type CompiledRoute, Const, context as Context, destination as Destination, ENV_MARKER_PREFIX, elb as Elb, type ExampleSummary, flow as Flow, hint as Hint, hooks as Hooks, type Ingest, type IngestMeta, Level, lifecycle as Lifecycle, logger as Logger, mapping as Mapping, type MarketingParameters, matcher as Matcher, type MockLogger, on as On, request as Request, type ResolveOptions, type RespondFn, type RespondOptions, type SendDataValue, type SendHeaders, type SendResponse, simulation as Simulation, source as Source, type StorageType, store as Store, transformer as Transformer, trigger as Trigger, walkeros as WalkerOS, type WalkerOSPackage, type WalkerOSPackageInfo, type WalkerOSPackageMeta, anonymizeIP, applyUpdate, assign, branch, buildCacheContext, castToProperty, castValue, checkCache, clone, compileCache, compileMatcher, compileNext, createDestination, createEvent, createIngest, createLogger, createMockContext, createMockLogger, createRespond, debounce, deepMerge, defaultClickIds, fetchPackage, fetchPackageSchema, filterValues, flattenIncludeSections, formatOut, getBrowser, getBrowserVersion, getByPath, getDeviceType, getEvent, getFlowSettings, getGrantedConsent, getHeaders, getId, getMappingEvent, getMappingValue, getMarketingParameters, getOS, getOSVersion, getPlatform, isArguments, isArray, isBoolean, isCommand, isDefined, isElementOrDocument, isFunction, isNumber, isObject, isPropertyType, isRouteArray, isSameType, isString, mcpError, mcpResult, mergeContractSchemas, mockEnv, packageNameToVariable, parseUserAgent, processEventMapping, requestToData, requestToParameter, resolveContracts, resolveNext, setByPath, storeCache, throttle, throwError, transformData, traverseEnv, trim, tryCatch, tryCatchAsync, useHooks, walkPath, wrapCondition, wrapFn, wrapValidate };
|
package/dist/index.d.ts
CHANGED
|
@@ -1013,10 +1013,13 @@ interface Settings$3 {
|
|
|
1013
1013
|
* intentionally excluded — they configure wiring, not test data.
|
|
1014
1014
|
*/
|
|
1015
1015
|
type StepCommand = 'config' | 'consent' | 'user' | 'run';
|
|
1016
|
+
/** One observable effect: function/method call (`[callable, ...args]`) or return value (`['return', value]`). */
|
|
1017
|
+
type StepEffect = readonly [callable: string, ...args: unknown[]];
|
|
1018
|
+
/** The effects a step produces, in execution order. Empty = no observable effect (filtered, passthrough). */
|
|
1019
|
+
type StepOut = readonly StepEffect[];
|
|
1016
1020
|
/**
|
|
1017
1021
|
* Named example pair for a step.
|
|
1018
1022
|
* `in` is the input to the step, `out` is the expected output.
|
|
1019
|
-
* `out: false` indicates the step filters/drops this event.
|
|
1020
1023
|
*
|
|
1021
1024
|
* When `command` is set, the test runner invokes
|
|
1022
1025
|
* `elb('walker <command>', in)` instead of pushing `in` as a regular event.
|
|
@@ -1034,7 +1037,7 @@ interface StepExample {
|
|
|
1034
1037
|
options?: unknown;
|
|
1035
1038
|
};
|
|
1036
1039
|
mapping?: unknown;
|
|
1037
|
-
out?:
|
|
1040
|
+
out?: StepOut;
|
|
1038
1041
|
/**
|
|
1039
1042
|
* Invoke a walker command with `in` instead of pushing `in` as an event.
|
|
1040
1043
|
* When set, the test runner calls `elb('walker <command>', in)`.
|
|
@@ -1437,14 +1440,16 @@ type flow_Primitive = Primitive;
|
|
|
1437
1440
|
type flow_Server = Server;
|
|
1438
1441
|
type flow_SourceReference = SourceReference;
|
|
1439
1442
|
type flow_StepCommand = StepCommand;
|
|
1443
|
+
type flow_StepEffect = StepEffect;
|
|
1440
1444
|
type flow_StepExample = StepExample;
|
|
1441
1445
|
type flow_StepExamples = StepExamples;
|
|
1446
|
+
type flow_StepOut = StepOut;
|
|
1442
1447
|
type flow_StoreReference = StoreReference;
|
|
1443
1448
|
type flow_TransformerReference = TransformerReference;
|
|
1444
1449
|
type flow_Variables = Variables;
|
|
1445
1450
|
type flow_Web = Web;
|
|
1446
1451
|
declare namespace flow {
|
|
1447
|
-
export type { flow_Bundle as Bundle, Config$5 as Config, flow_Contract as Contract, flow_ContractActions as ContractActions, flow_ContractEntry as ContractEntry, flow_ContractEvents as ContractEvents, flow_ContractSchema as ContractSchema, flow_Definitions as Definitions, flow_DestinationReference as DestinationReference, flow_InlineCode as InlineCode, flow_Overrides as Overrides, flow_Packages as Packages, flow_Primitive as Primitive, flow_Server as Server, Settings$3 as Settings, flow_SourceReference as SourceReference, flow_StepCommand as StepCommand, flow_StepExample as StepExample, flow_StepExamples as StepExamples, flow_StoreReference as StoreReference, flow_TransformerReference as TransformerReference, flow_Variables as Variables, flow_Web as Web };
|
|
1452
|
+
export type { flow_Bundle as Bundle, Config$5 as Config, flow_Contract as Contract, flow_ContractActions as ContractActions, flow_ContractEntry as ContractEntry, flow_ContractEvents as ContractEvents, flow_ContractSchema as ContractSchema, flow_Definitions as Definitions, flow_DestinationReference as DestinationReference, flow_InlineCode as InlineCode, flow_Overrides as Overrides, flow_Packages as Packages, flow_Primitive as Primitive, flow_Server as Server, Settings$3 as Settings, flow_SourceReference as SourceReference, flow_StepCommand as StepCommand, flow_StepEffect as StepEffect, flow_StepExample as StepExample, flow_StepExamples as StepExamples, flow_StepOut as StepOut, flow_StoreReference as StoreReference, flow_TransformerReference as TransformerReference, flow_Variables as Variables, flow_Web as Web };
|
|
1448
1453
|
}
|
|
1449
1454
|
|
|
1450
1455
|
type AnyFunction$1<P extends unknown[] = never[], R = unknown> = (...args: P) => R;
|
|
@@ -3256,4 +3261,20 @@ declare function checkCache(compiled: CompiledCache, store: Instance$1, context:
|
|
|
3256
3261
|
declare function storeCache(store: Instance$1, key: string, value: unknown, ttlSeconds: number): void;
|
|
3257
3262
|
declare function applyUpdate(value: unknown, update: Record<string, unknown> | undefined, context: Record<string, unknown>): Promise<unknown>;
|
|
3258
3263
|
|
|
3259
|
-
|
|
3264
|
+
/**
|
|
3265
|
+
* Format a step example's `out` as readable code for docs/app rendering.
|
|
3266
|
+
*
|
|
3267
|
+
* - Empty `out` → `// no output`.
|
|
3268
|
+
* - `['return', value]` → `return <value>` (no parentheses).
|
|
3269
|
+
* - `[callable, ...args]` → `callable(<args>)`.
|
|
3270
|
+
* - Primitive args render as JSON (strings quoted, numbers/booleans/null bare).
|
|
3271
|
+
* - `undefined` renders as the literal token `undefined`.
|
|
3272
|
+
* - Objects/arrays render as `JSON.stringify(v, null, 2)`.
|
|
3273
|
+
* - Functions render as `[Function]` (rare in outs; safe fallback).
|
|
3274
|
+
*
|
|
3275
|
+
* Pure function. No runtime dependencies. Used by the website
|
|
3276
|
+
* `<StepExample>` renderer and the app `OutputPanel` for a single source of truth.
|
|
3277
|
+
*/
|
|
3278
|
+
declare function formatOut(out: StepOut): string;
|
|
3279
|
+
|
|
3280
|
+
export { cache as Cache, type CacheResult, type ClickIdEntry, collector as Collector, type CompiledCache, type CompiledNext, type CompiledRoute, Const, context as Context, destination as Destination, ENV_MARKER_PREFIX, elb as Elb, type ExampleSummary, flow as Flow, hint as Hint, hooks as Hooks, type Ingest, type IngestMeta, Level, lifecycle as Lifecycle, logger as Logger, mapping as Mapping, type MarketingParameters, matcher as Matcher, type MockLogger, on as On, request as Request, type ResolveOptions, type RespondFn, type RespondOptions, type SendDataValue, type SendHeaders, type SendResponse, simulation as Simulation, source as Source, type StorageType, store as Store, transformer as Transformer, trigger as Trigger, walkeros as WalkerOS, type WalkerOSPackage, type WalkerOSPackageInfo, type WalkerOSPackageMeta, anonymizeIP, applyUpdate, assign, branch, buildCacheContext, castToProperty, castValue, checkCache, clone, compileCache, compileMatcher, compileNext, createDestination, createEvent, createIngest, createLogger, createMockContext, createMockLogger, createRespond, debounce, deepMerge, defaultClickIds, fetchPackage, fetchPackageSchema, filterValues, flattenIncludeSections, formatOut, getBrowser, getBrowserVersion, getByPath, getDeviceType, getEvent, getFlowSettings, getGrantedConsent, getHeaders, getId, getMappingEvent, getMappingValue, getMarketingParameters, getOS, getOSVersion, getPlatform, isArguments, isArray, isBoolean, isCommand, isDefined, isElementOrDocument, isFunction, isNumber, isObject, isPropertyType, isRouteArray, isSameType, isString, mcpError, mcpResult, mergeContractSchemas, mockEnv, packageNameToVariable, parseUserAgent, processEventMapping, requestToData, requestToParameter, resolveContracts, resolveNext, setByPath, storeCache, throttle, throwError, transformData, traverseEnv, trim, tryCatch, tryCatchAsync, useHooks, walkPath, wrapCondition, wrapFn, wrapValidate };
|
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:()=>m,Lifecycle:()=>x,Logger:()=>g,Mapping:()=>y,Matcher:()=>S,On:()=>b,Request:()=>v,Simulation:()=>$,Source:()=>w,Store:()=>j,Transformer:()=>h,Trigger:()=>k,WalkerOS:()=>O,anonymizeIP:()=>P,applyUpdate:()=>wt,assign:()=>J,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:()=>He,createMockLogger:()=>Fe,createRespond:()=>ft,debounce:()=>je,deepMerge:()=>me,defaultClickIds:()=>ve,fetchPackage:()=>at,fetchPackageSchema:()=>ct,filterValues:()=>_e,flattenIncludeSections:()=>fe,getBrowser:()=>Ke,getBrowserVersion:()=>Je,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:()=>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={},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={},x={},O={},$={},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 K={merge:!0,shallow:!0,extend:!0};function J(e,t={},n={}){n={...K,...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=J(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=J(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=J(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=J({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.3.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(J({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 xe(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function Oe(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=xe(e)):n=e,void 0!==t&&(t instanceof Error?r.error=xe(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=xe(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=Oe(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=Oe(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)?J(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)?J(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 J({"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:Ke(e),browserVersion:Je(e),os:Ge(e),osVersion:Xe(e),deviceType:Qe(e)}:{}}function Ke(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 Je(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}//# 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:()=>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
|