@walkeros/core 4.2.1-next-1781682752679 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -559,6 +559,10 @@ interface Instance$6 {
559
559
  on: OnConfig;
560
560
  queue: Events;
561
561
  round: number;
562
+ /** Run-scoped W3C trace id, minted on each run and stamped onto events. */
563
+ trace?: string;
564
+ /** Per-run emission sequence; reset on each run, incremented per stamped event. */
565
+ count: number;
562
566
  /**
563
567
  * Monotonic counter bumped on every accepted reactive-state mutation
564
568
  * (consent, user, globals, custom). Used for per-subscriber high-water-mark
@@ -2939,9 +2943,9 @@ interface Source extends Properties {
2939
2943
  version?: string;
2940
2944
  /** Event-model spec version. Collector defaults to "4". */
2941
2945
  schema?: string;
2942
- /** Emission sequence per run (was: event.count). */
2946
+ /** Emission sequence within the run. */
2943
2947
  count?: number;
2944
- /** W3C traceparent full string; set when the emission is part of a chained trace. */
2948
+ /** Trace id shared by every event of a run (W3C trace-id shape). */
2945
2949
  trace?: string;
2946
2950
  /** Walker-controlled standard suggestions (sources may set). */
2947
2951
  url?: string;
@@ -3325,6 +3329,10 @@ declare function deepMerge<T extends Record<string, unknown>>(target: T, source:
3325
3329
  * Creates a complete event with default values.
3326
3330
  * Used for testing and debugging.
3327
3331
  *
3332
+ * Models a post-collector event: `source` always carries the run-stamped
3333
+ * `count` and `trace`, so a generated event matches one that has been pushed
3334
+ * through the collector. Override via `props.source` if needed.
3335
+ *
3328
3336
  * @param props - Properties to override the default values.
3329
3337
  * @returns A complete event.
3330
3338
  */
@@ -3339,13 +3347,6 @@ declare function createEvent(props?: DeepPartialEvent): Event;
3339
3347
  */
3340
3348
  declare function getEvent(name?: string, props?: DeepPartialEvent): Event;
3341
3349
 
3342
- /**
3343
- * Generates a random string of a given length.
3344
- *
3345
- * @param length - The length of the random string.
3346
- * @param charset - Optional custom charset. Defaults to base-36 (0-9a-z).
3347
- * @returns The random string.
3348
- */
3349
3350
  declare function getId(length?: number, charset?: string): string;
3350
3351
 
3351
3352
  /**
@@ -3354,6 +3355,12 @@ declare function getId(length?: number, charset?: string): string;
3354
3355
  */
3355
3356
  declare function getSpanId(): string;
3356
3357
 
3358
+ /**
3359
+ * W3C trace_id: 16 random bytes encoded as 32 lowercase hex characters.
3360
+ * Shared by every event of a collector run. Reference: W3C Trace Context.
3361
+ */
3362
+ declare function getTraceId(): string;
3363
+
3357
3364
  interface MarketingParameters {
3358
3365
  [key: string]: string;
3359
3366
  }
@@ -4471,4 +4478,4 @@ declare const REF_CODE_PREFIX = "$code:";
4471
4478
  */
4472
4479
  declare function scanFlowRefs(value: unknown, into?: Set<string>): Set<string>;
4473
4480
 
4474
- export { type BatchedPosterOptions, type BreakerState, cache as Cache, type CacheEnvelope, type CacheResult, type ClickIdEntry, collector as Collector, type CompiledCache, Const, context as Context, type Credential, type Debounced, destination as Destination, type DestroyContext, type DestroyFn, type DroppedCounters, ENV_MARKER_PREFIX, elb as Elb, type EmitFn, type ExampleSummary, FatalError, Flow, type FlowConfigResolver, type FlowState, type FlowStateBatch, type FlowStatePhase, type FlowStepType, type GetStore, hint as Hint, hooks as Hooks, type Ingest, type IngestMeta, type JsonSchema, Level, lifecycle as Lifecycle, type LifecycleContext, logger as Logger, mapping as Mapping, type MarketingParameters, matcher as Matcher, type MockLogger, type ObserverFn, on as On, type PosterFetch, type PosterResponse, REF_CODE_PREFIX, REF_CONTRACT, REF_ENV, REF_FLOW, REF_SECRET, REF_STORE, REF_VAR_FULL, REF_VAR_INLINE, request as Request, type ResolveContractsOptions, type ResolveOptions, type RespondFn, type RespondOptions, SECRET_MARKER_PREFIX, STEP_OPERATIVE_FIELDS, type ScheduleOptions, type SendDataValue, type SendHeaders, type SendResponse, type ServiceAccount, type SetupFn, simulation as Simulation, source as Source, type State, type StepEntryErrorCode, type StepEntryValidation, type StepKind, type StorageType, store as Store, StoreCodecError, type TelemetryLevel, type TelemetryOptions, type TelemetryOptionsSupplier, transformer as Transformer, trigger as Trigger, type ValidateEvents, walkeros as WalkerOS, type WalkerOSPackage, type WalkerOSPackageInfo, type WalkerOSPackageMeta, anonymizeIP, applyState, applyUpdate, assign, branch, buildCacheContext, castToProperty, castValue, checkCache, clone, compileCache, compileMatcher, compileState, createBatchedPoster, createDestination, createEvent, createIngest, createLogger, createMockContext, createMockLogger, createRespond, createTelemetryObserver, debounce, deepMerge, defaultClickIds, deleteByPath, deserializeStoreValue, emitStep, fetchPackage, fetchPackageSchema, filterValues, flattenIncludeSections, formatOut, getBrowser, getBrowserVersion, getByPath, getDeviceType, getEvent, getFlowSettings, getGrantedConsent, getHeaders, getId, getMappingEvent, getMappingValue, getMarketingParameters, getNextSteps, getOS, getOSVersion, getPlatform, getSpanId, getTraceUntil, isArguments, isArray, isBoolean, isCommand, isDefined, isElementOrDocument, isFunction, isNumber, isObject, isPathStepEntry, isPropertyType, isRouteArray, isRouteConfigEntry, isSameType, isSampled, isStoreValue, isString, mcpError, mcpResult, mergeContractSchemas, mergeMappingRule, mockEnv, packageNameToVariable, parseUserAgent, processEventMapping, readCacheEnvelope, requestToData, requestToParameter, resolveContracts, resolveSetup, resolveTelemetryOptions, scanFlowRefs, serializeStoreValue, setByPath, setTraceUntil, stepId, storeCache, throttle, throwError, transformData, traverseEnv, trim, tryCatch, tryCatchAsync, useHooks, validateStepEntry, walkPath, wrapCacheEnvelope, wrapCondition, wrapFn, wrapValidate };
4481
+ export { type BatchedPosterOptions, type BreakerState, cache as Cache, type CacheEnvelope, type CacheResult, type ClickIdEntry, collector as Collector, type CompiledCache, Const, context as Context, type Credential, type Debounced, destination as Destination, type DestroyContext, type DestroyFn, type DroppedCounters, ENV_MARKER_PREFIX, elb as Elb, type EmitFn, type ExampleSummary, FatalError, Flow, type FlowConfigResolver, type FlowState, type FlowStateBatch, type FlowStatePhase, type FlowStepType, type GetStore, hint as Hint, hooks as Hooks, type Ingest, type IngestMeta, type JsonSchema, Level, lifecycle as Lifecycle, type LifecycleContext, logger as Logger, mapping as Mapping, type MarketingParameters, matcher as Matcher, type MockLogger, type ObserverFn, on as On, type PosterFetch, type PosterResponse, REF_CODE_PREFIX, REF_CONTRACT, REF_ENV, REF_FLOW, REF_SECRET, REF_STORE, REF_VAR_FULL, REF_VAR_INLINE, request as Request, type ResolveContractsOptions, type ResolveOptions, type RespondFn, type RespondOptions, SECRET_MARKER_PREFIX, STEP_OPERATIVE_FIELDS, type ScheduleOptions, type SendDataValue, type SendHeaders, type SendResponse, type ServiceAccount, type SetupFn, simulation as Simulation, source as Source, type State, type StepEntryErrorCode, type StepEntryValidation, type StepKind, type StorageType, store as Store, StoreCodecError, type TelemetryLevel, type TelemetryOptions, type TelemetryOptionsSupplier, transformer as Transformer, trigger as Trigger, type ValidateEvents, walkeros as WalkerOS, type WalkerOSPackage, type WalkerOSPackageInfo, type WalkerOSPackageMeta, anonymizeIP, applyState, applyUpdate, assign, branch, buildCacheContext, castToProperty, castValue, checkCache, clone, compileCache, compileMatcher, compileState, createBatchedPoster, createDestination, createEvent, createIngest, createLogger, createMockContext, createMockLogger, createRespond, createTelemetryObserver, debounce, deepMerge, defaultClickIds, deleteByPath, deserializeStoreValue, emitStep, fetchPackage, fetchPackageSchema, filterValues, flattenIncludeSections, formatOut, getBrowser, getBrowserVersion, getByPath, getDeviceType, getEvent, getFlowSettings, getGrantedConsent, getHeaders, getId, getMappingEvent, getMappingValue, getMarketingParameters, getNextSteps, getOS, getOSVersion, getPlatform, getSpanId, getTraceId, getTraceUntil, isArguments, isArray, isBoolean, isCommand, isDefined, isElementOrDocument, isFunction, isNumber, isObject, isPathStepEntry, isPropertyType, isRouteArray, isRouteConfigEntry, isSameType, isSampled, isStoreValue, isString, mcpError, mcpResult, mergeContractSchemas, mergeMappingRule, mockEnv, packageNameToVariable, parseUserAgent, processEventMapping, readCacheEnvelope, requestToData, requestToParameter, resolveContracts, resolveSetup, resolveTelemetryOptions, scanFlowRefs, serializeStoreValue, setByPath, setTraceUntil, stepId, storeCache, throttle, throwError, transformData, traverseEnv, trim, tryCatch, tryCatchAsync, useHooks, validateStepEntry, walkPath, wrapCacheEnvelope, wrapCondition, wrapFn, wrapValidate };
package/dist/index.d.ts CHANGED
@@ -559,6 +559,10 @@ interface Instance$6 {
559
559
  on: OnConfig;
560
560
  queue: Events;
561
561
  round: number;
562
+ /** Run-scoped W3C trace id, minted on each run and stamped onto events. */
563
+ trace?: string;
564
+ /** Per-run emission sequence; reset on each run, incremented per stamped event. */
565
+ count: number;
562
566
  /**
563
567
  * Monotonic counter bumped on every accepted reactive-state mutation
564
568
  * (consent, user, globals, custom). Used for per-subscriber high-water-mark
@@ -2939,9 +2943,9 @@ interface Source extends Properties {
2939
2943
  version?: string;
2940
2944
  /** Event-model spec version. Collector defaults to "4". */
2941
2945
  schema?: string;
2942
- /** Emission sequence per run (was: event.count). */
2946
+ /** Emission sequence within the run. */
2943
2947
  count?: number;
2944
- /** W3C traceparent full string; set when the emission is part of a chained trace. */
2948
+ /** Trace id shared by every event of a run (W3C trace-id shape). */
2945
2949
  trace?: string;
2946
2950
  /** Walker-controlled standard suggestions (sources may set). */
2947
2951
  url?: string;
@@ -3325,6 +3329,10 @@ declare function deepMerge<T extends Record<string, unknown>>(target: T, source:
3325
3329
  * Creates a complete event with default values.
3326
3330
  * Used for testing and debugging.
3327
3331
  *
3332
+ * Models a post-collector event: `source` always carries the run-stamped
3333
+ * `count` and `trace`, so a generated event matches one that has been pushed
3334
+ * through the collector. Override via `props.source` if needed.
3335
+ *
3328
3336
  * @param props - Properties to override the default values.
3329
3337
  * @returns A complete event.
3330
3338
  */
@@ -3339,13 +3347,6 @@ declare function createEvent(props?: DeepPartialEvent): Event;
3339
3347
  */
3340
3348
  declare function getEvent(name?: string, props?: DeepPartialEvent): Event;
3341
3349
 
3342
- /**
3343
- * Generates a random string of a given length.
3344
- *
3345
- * @param length - The length of the random string.
3346
- * @param charset - Optional custom charset. Defaults to base-36 (0-9a-z).
3347
- * @returns The random string.
3348
- */
3349
3350
  declare function getId(length?: number, charset?: string): string;
3350
3351
 
3351
3352
  /**
@@ -3354,6 +3355,12 @@ declare function getId(length?: number, charset?: string): string;
3354
3355
  */
3355
3356
  declare function getSpanId(): string;
3356
3357
 
3358
+ /**
3359
+ * W3C trace_id: 16 random bytes encoded as 32 lowercase hex characters.
3360
+ * Shared by every event of a collector run. Reference: W3C Trace Context.
3361
+ */
3362
+ declare function getTraceId(): string;
3363
+
3357
3364
  interface MarketingParameters {
3358
3365
  [key: string]: string;
3359
3366
  }
@@ -4471,4 +4478,4 @@ declare const REF_CODE_PREFIX = "$code:";
4471
4478
  */
4472
4479
  declare function scanFlowRefs(value: unknown, into?: Set<string>): Set<string>;
4473
4480
 
4474
- export { type BatchedPosterOptions, type BreakerState, cache as Cache, type CacheEnvelope, type CacheResult, type ClickIdEntry, collector as Collector, type CompiledCache, Const, context as Context, type Credential, type Debounced, destination as Destination, type DestroyContext, type DestroyFn, type DroppedCounters, ENV_MARKER_PREFIX, elb as Elb, type EmitFn, type ExampleSummary, FatalError, Flow, type FlowConfigResolver, type FlowState, type FlowStateBatch, type FlowStatePhase, type FlowStepType, type GetStore, hint as Hint, hooks as Hooks, type Ingest, type IngestMeta, type JsonSchema, Level, lifecycle as Lifecycle, type LifecycleContext, logger as Logger, mapping as Mapping, type MarketingParameters, matcher as Matcher, type MockLogger, type ObserverFn, on as On, type PosterFetch, type PosterResponse, REF_CODE_PREFIX, REF_CONTRACT, REF_ENV, REF_FLOW, REF_SECRET, REF_STORE, REF_VAR_FULL, REF_VAR_INLINE, request as Request, type ResolveContractsOptions, type ResolveOptions, type RespondFn, type RespondOptions, SECRET_MARKER_PREFIX, STEP_OPERATIVE_FIELDS, type ScheduleOptions, type SendDataValue, type SendHeaders, type SendResponse, type ServiceAccount, type SetupFn, simulation as Simulation, source as Source, type State, type StepEntryErrorCode, type StepEntryValidation, type StepKind, type StorageType, store as Store, StoreCodecError, type TelemetryLevel, type TelemetryOptions, type TelemetryOptionsSupplier, transformer as Transformer, trigger as Trigger, type ValidateEvents, walkeros as WalkerOS, type WalkerOSPackage, type WalkerOSPackageInfo, type WalkerOSPackageMeta, anonymizeIP, applyState, applyUpdate, assign, branch, buildCacheContext, castToProperty, castValue, checkCache, clone, compileCache, compileMatcher, compileState, createBatchedPoster, createDestination, createEvent, createIngest, createLogger, createMockContext, createMockLogger, createRespond, createTelemetryObserver, debounce, deepMerge, defaultClickIds, deleteByPath, deserializeStoreValue, emitStep, fetchPackage, fetchPackageSchema, filterValues, flattenIncludeSections, formatOut, getBrowser, getBrowserVersion, getByPath, getDeviceType, getEvent, getFlowSettings, getGrantedConsent, getHeaders, getId, getMappingEvent, getMappingValue, getMarketingParameters, getNextSteps, getOS, getOSVersion, getPlatform, getSpanId, getTraceUntil, isArguments, isArray, isBoolean, isCommand, isDefined, isElementOrDocument, isFunction, isNumber, isObject, isPathStepEntry, isPropertyType, isRouteArray, isRouteConfigEntry, isSameType, isSampled, isStoreValue, isString, mcpError, mcpResult, mergeContractSchemas, mergeMappingRule, mockEnv, packageNameToVariable, parseUserAgent, processEventMapping, readCacheEnvelope, requestToData, requestToParameter, resolveContracts, resolveSetup, resolveTelemetryOptions, scanFlowRefs, serializeStoreValue, setByPath, setTraceUntil, stepId, storeCache, throttle, throwError, transformData, traverseEnv, trim, tryCatch, tryCatchAsync, useHooks, validateStepEntry, walkPath, wrapCacheEnvelope, wrapCondition, wrapFn, wrapValidate };
4481
+ export { type BatchedPosterOptions, type BreakerState, cache as Cache, type CacheEnvelope, type CacheResult, type ClickIdEntry, collector as Collector, type CompiledCache, Const, context as Context, type Credential, type Debounced, destination as Destination, type DestroyContext, type DestroyFn, type DroppedCounters, ENV_MARKER_PREFIX, elb as Elb, type EmitFn, type ExampleSummary, FatalError, Flow, type FlowConfigResolver, type FlowState, type FlowStateBatch, type FlowStatePhase, type FlowStepType, type GetStore, hint as Hint, hooks as Hooks, type Ingest, type IngestMeta, type JsonSchema, Level, lifecycle as Lifecycle, type LifecycleContext, logger as Logger, mapping as Mapping, type MarketingParameters, matcher as Matcher, type MockLogger, type ObserverFn, on as On, type PosterFetch, type PosterResponse, REF_CODE_PREFIX, REF_CONTRACT, REF_ENV, REF_FLOW, REF_SECRET, REF_STORE, REF_VAR_FULL, REF_VAR_INLINE, request as Request, type ResolveContractsOptions, type ResolveOptions, type RespondFn, type RespondOptions, SECRET_MARKER_PREFIX, STEP_OPERATIVE_FIELDS, type ScheduleOptions, type SendDataValue, type SendHeaders, type SendResponse, type ServiceAccount, type SetupFn, simulation as Simulation, source as Source, type State, type StepEntryErrorCode, type StepEntryValidation, type StepKind, type StorageType, store as Store, StoreCodecError, type TelemetryLevel, type TelemetryOptions, type TelemetryOptionsSupplier, transformer as Transformer, trigger as Trigger, type ValidateEvents, walkeros as WalkerOS, type WalkerOSPackage, type WalkerOSPackageInfo, type WalkerOSPackageMeta, anonymizeIP, applyState, applyUpdate, assign, branch, buildCacheContext, castToProperty, castValue, checkCache, clone, compileCache, compileMatcher, compileState, createBatchedPoster, createDestination, createEvent, createIngest, createLogger, createMockContext, createMockLogger, createRespond, createTelemetryObserver, debounce, deepMerge, defaultClickIds, deleteByPath, deserializeStoreValue, emitStep, fetchPackage, fetchPackageSchema, filterValues, flattenIncludeSections, formatOut, getBrowser, getBrowserVersion, getByPath, getDeviceType, getEvent, getFlowSettings, getGrantedConsent, getHeaders, getId, getMappingEvent, getMappingValue, getMarketingParameters, getNextSteps, getOS, getOSVersion, getPlatform, getSpanId, getTraceId, getTraceUntil, isArguments, isArray, isBoolean, isCommand, isDefined, isElementOrDocument, isFunction, isNumber, isObject, isPathStepEntry, isPropertyType, isRouteArray, isRouteConfigEntry, isSameType, isSampled, isStoreValue, isString, mcpError, mcpResult, mergeContractSchemas, mergeMappingRule, mockEnv, packageNameToVariable, parseUserAgent, processEventMapping, readCacheEnvelope, requestToData, requestToParameter, resolveContracts, resolveSetup, resolveTelemetryOptions, scanFlowRefs, serializeStoreValue, setByPath, setTraceUntil, stepId, storeCache, throttle, throwError, transformData, traverseEnv, trim, tryCatch, tryCatchAsync, useHooks, validateStepEntry, walkPath, wrapCacheEnvelope, 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:()=>P,Context:()=>f,Destination:()=>l,ENV_MARKER_PREFIX:()=>ee,Elb:()=>d,FatalError:()=>Ge,Hint:()=>T,Hooks:()=>m,Level:()=>y,Lifecycle:()=>E,Logger:()=>g,Mapping:()=>h,Matcher:()=>N,On:()=>v,REF_CODE_PREFIX:()=>G,REF_CONTRACT:()=>H,REF_ENV:()=>W,REF_FLOW:()=>K,REF_SECRET:()=>J,REF_STORE:()=>q,REF_VAR_FULL:()=>L,REF_VAR_INLINE:()=>Z,Request:()=>k,SECRET_MARKER_PREFIX:()=>te,STEP_OPERATIVE_FIELDS:()=>hn,Simulation:()=>C,Source:()=>$,Store:()=>S,StoreCodecError:()=>tn,Transformer:()=>b,Trigger:()=>x,WalkerOS:()=>_,anonymizeIP:()=>M,applyState:()=>yn,applyUpdate:()=>mn,assign:()=>ue,branch:()=>I,buildCacheContext:()=>fn,castToProperty:()=>Ke,castValue:()=>xe,checkCache:()=>pn,clone:()=>ke,compileCache:()=>ln,compileMatcher:()=>Bt,compileState:()=>gn,createBatchedPoster:()=>$t,createDestination:()=>_e,createEvent:()=>Te,createIngest:()=>R,createLogger:()=>Le,createMockContext:()=>at,createMockLogger:()=>it,createRespond:()=>Vt,createTelemetryObserver:()=>gt,debounce:()=>ze,deepMerge:()=>Ce,defaultClickIds:()=>Ie,deleteByPath:()=>Se,deserializeStoreValue:()=>un,emitStep:()=>kt,fetchPackage:()=>Mt,fetchPackageSchema:()=>zt,filterValues:()=>He,flattenIncludeSections:()=>Oe,formatOut:()=>jn,getBrowser:()=>St,getBrowserVersion:()=>At,getByPath:()=>$e,getDeviceType:()=>Et,getEvent:()=>Pe,getFlowSettings:()=>ae,getGrantedConsent:()=>Ee,getHeaders:()=>ft,getId:()=>Re,getMappingEvent:()=>Xe,getMappingValue:()=>Ye,getMarketingParameters:()=>Me,getNextSteps:()=>qt,getOS:()=>Ot,getOSVersion:()=>xt,getPlatform:()=>se,getSpanId:()=>Ne,getTraceUntil:()=>bt,isArguments:()=>fe,isArray:()=>le,isBoolean:()=>pe,isCommand:()=>de,isDefined:()=>me,isElementOrDocument:()=>ge,isFunction:()=>ye,isNumber:()=>he,isObject:()=>ve,isPathStepEntry:()=>$n,isPropertyType:()=>We,isRouteArray:()=>Zt,isRouteConfigEntry:()=>Lt,isSameType:()=>be,isSampled:()=>yt,isStoreValue:()=>sn,isString:()=>we,mcpError:()=>Ut,mcpResult:()=>Dt,mergeContractSchemas:()=>U,mergeMappingRule:()=>nt,mockEnv:()=>rt,packageNameToVariable:()=>ie,parseUserAgent:()=>jt,processEventMapping:()=>et,readCacheEnvelope:()=>Qt,requestToData:()=>st,requestToParameter:()=>ct,resolveContracts:()=>D,resolveSetup:()=>lt,resolveTelemetryOptions:()=>ht,scanFlowRefs:()=>Y,serializeStoreValue:()=>cn,setByPath:()=>je,setTraceUntil:()=>wt,stepId:()=>u,storeCache:()=>dn,throttle:()=>De,throwError:()=>F,transformData:()=>ut,traverseEnv:()=>ot,trim:()=>pt,tryCatch:()=>qe,tryCatchAsync:()=>Je,useHooks:()=>dt,validateStepEntry:()=>kn,walkPath:()=>re,wrapCacheEnvelope:()=>Yt,wrapCondition:()=>Ct,wrapFn:()=>Nt,wrapValidate:()=>Tt}),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={};function u(e,t){if("collector"===e)return"collector";if(!t)throw new Error(`stepId(${e}) requires an id`);return`${e}.${t}`}i(c,{stepId:()=>u});var f={},l={};function p(e,t){const n=e.destinations[t];if(!n)throw new Error(`Destination not found: ${t}`);return n}i(l,{getDestination:()=>p});var d={},m={},g={};i(g,{Level:()=>y});var y=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(y||{}),h={},v={},b={};function w(e,t){const n=e.transformers[t];if(!n)throw new Error(`Transformer not found: ${t}`);return n}i(b,{getTransformer:()=>w});var k={},$={};function j(e,t){const n=e.sources[t];if(!n)throw new Error(`Source not found: ${t}`);return n}i($,{getSource:()=>j});var S={};function A(e,t){const n=e.stores[t];if(!n)throw new Error(`Store not found: ${t}`);return n}async function O(e,t){return await e.get(t)}i(S,{getStore:()=>A,getStoreValue:()=>O});var x={},E={},_={},C={},N={},T={},P={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function R(e){return{_meta:{hops:0,path:[e]}}}function I(e,t){return{event:e,next:t}}function M(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function F(e){throw new Error(String(e))}var z=new Set(["description","examples","title","$comment"]);function D(e,t){const n=!1!==t?.stripAnnotations,r={},o=new Set;function i(t){if(r[t])return r[t];o.has(t)&&F(`Circular extend chain detected: ${[...o,t].join(" → ")}`);const a=e[t];a||F(`Contract "${t}" not found`),o.add(t);let s={};if(a.extend){s=function(e,t){const n={};void 0===e.tagging&&void 0===t.tagging||(n.tagging=t.tagging??e.tagging);void 0===e.description&&void 0===t.description||(n.description=t.description??e.description);e.schema&&t.schema?n.schema=U(e.schema,t.schema):(e.schema||t.schema)&&(n.schema={...e.schema||t.schema});if(e.events||t.events){const r={},o=new Set([...Object.keys(e.events||{}),...Object.keys(t.events||{})]);for(const n of o){const o=e.events?.[n]||{},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?U(t,a):{...t||a}}}n.events=r}return n}(i(a.extend),a)}else s={...a};if(delete s.extend,s.events&&(s.events=function(e){const t={};for(const n of Object.keys(e))if("*"!==n){t[n]={};for(const r of Object.keys(e[n]||{})){let o={};const i=e["*"]?.["*"];i&&(o=U(o,i));const a=e["*"]?.[r];a&&"*"!==r&&(o=U(o,a));const s=e[n]?.["*"];s&&"*"!==r&&(o=U(o,s));const c=e[n]?.[r];c&&(o=U(o,c)),t[n][r]=o}}e["*"]&&(t["*"]={...e["*"]});return t}(s.events)),s.events&&n){const e={};for(const[t,n]of Object.entries(s.events)){e[t]={};for(const[r,o]of Object.entries(n))e[t][r]=V(o)}s.events=e}return o.delete(t),r[t]=s,s}for(const t of Object.keys(e))i(t);return r}function U(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])]:B(o)&&B(i)?n[r]=U(o,i):n[r]=i}return n}function V(e){const t={};for(const[n,r]of Object.entries(e))z.has(n)||(null===r||"object"!=typeof r||Array.isArray(r)?t[n]=r:t[n]=V(r));return t}function B(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var L=/^\$var\.([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)$/,Z=/\$var\.([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)/g,W=/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,H=/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/,K=/^\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.([a-zA-Z0-9_.]+))?$/,q=/^\$store\.([a-zA-Z_][a-zA-Z0-9_]*)$/,J=/^\$secret\.([A-Z0-9_]+)$/,G="$code:",X=/\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)/g;function Y(e,t){const n=t??new Set;if("string"==typeof e){for(const t of e.matchAll(X))n.add(t[1]);return n}if(e&&"object"==typeof e)for(const t of Object.values(e))Y(t,n);return n}function Q(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var ee="__WALKEROS_ENV:",te="__WALKEROS_SECRET:";function ne(e,t,n){const r=`$flow.${e}${t?`.${t}`:""}`;if("unknown-flow"===n)return`${r} cannot resolve: flow "${e}" does not exist in this config.`;return`${r} is empty. Set ${t?`flows.${e}.config.${t}`:`flows.${e}.config`}, or run \`walkeros deploy ${e}\` first.`}function re(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(".");F(`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(".");F(`Path "${t}" not found in "${n}": "${i}" does not exist${o?` in "${o}"`:""}`)}o=a[i]}return o}function oe(e,t,n,r,o,i){if("string"==typeof e){const a=e.match(L);if(a){const e=a[1].split("."),s=e[0],c=e.slice(1).join(".");void 0===t[s]&&F(`Variable "${s}" not found`);const u=i??new Set;if(u.has(s)){F(`Cyclic $var reference: ${[...u,s].join(" -> ")}`)}let f;u.add(s);try{f=oe(t[s],t,n,r,o,u)}finally{u.delete(s)}return c&&(f=re(f,c,`$var.${s}`)),f}const s=e.match(H);if(s&&r){const e=s[1],t=s[2];e in r||F(`Contract "${e}" not found`);let n=r[e];return t&&(n=re(n,t,`$contract.${e}`)),n}const c=e.match(K);if(c){const t=c[1],r=c[2],i=!1===n?.strictFlowRefs;o||F(`$flow.${t}${r?`.${r}`:""} cannot be resolved without a flow resolver`);const a=o(t);if(!a){if(i)return n?.onWarning?.(ne(t,r,"unknown-flow")),e;F(`Flow "${t}" not found in $flow.${t}`)}let s=a;if(r)if(i){try{s=re(s,r,`$flow.${t}`)}catch{return n?.onWarning?.(ne(t,r,"missing-key")),e}if(null==s||""===s)return n?.onWarning?.(ne(t,r,"missing-key")),e}else s=re(s,r,`$flow.${t}`);return s}const u=e.match(J);if(u){const e=u[1];if(n?.deferred)return`${te}${e}`;F(`Secret "$secret.${e}" cannot be used in a web flow — secrets are never sent to the browser. Use a server flow.`)}let f=e.replace(Z,(e,a)=>{const s=a.split("."),c=s[0],u=s.slice(1).join(".");void 0===t[c]&&F(`Variable "${c}" not found`);const f=i??new Set;if(f.has(c)){F(`Cyclic $var reference: ${[...f,c].join(" -> ")}`)}let l;f.add(c);try{l=oe(t[c],t,n,r,o,f)}finally{f.delete(c)}if(u&&(l=re(l,u,`$var.${c}`)),null===l||"string"!=typeof l&&"number"!=typeof l&&"boolean"!=typeof l){F(`Variable "${a}" resolves to non-scalar (${Array.isArray(l)?"array":typeof l}) and cannot be inlined into a string. Use it as a whole-string reference: "$var.${a}"`)}return String(l)});return f=f.replace(W,(e,t,r)=>n?.deferred?void 0!==r?`${ee}${t}:${r}`:`${ee}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==r?r:void F(`Environment variable "${t}" not found and no default provided`)),f}if(Array.isArray(e))return e.map(e=>oe(e,t,n,r,o,i));if(null!==e&&"object"==typeof e){const a={};for(const[s,c]of Object.entries(e))a[s]=oe(c,t,n,r,o,i);return a}return e}function ie(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 ae(e,t,n){const r=new Map,o=new Set,i=[],a=t=>{if(r.has(t))return r.get(t);const s=e.flows[t];if(s){if(o.has(t)){F(`Cyclic $flow reference: ${[...i,t].join(" -> ")}`)}o.add(t),i.push(t);try{const o=Q(e.variables,s.variables),i=oe(s.config??{},o,n,void 0,a);return r.set(t,i),i}finally{o.delete(t),i.pop()}}},s=Object.keys(e.flows);t||(1===s.length?t=s[0]:F(`Multiple flows found (${s.join(", ")}). Please specify a flow.`));const c=e.flows[t];c||F(`Flow "${t}" not found. Available: ${s.join(", ")}`),o.add(t),i.push(t);try{return function(e,t,n,r){const o=JSON.parse(JSON.stringify(t));let i;if(e.contract){const o=Q(e.variables,t.variables);i=D(oe(e.contract,o,n,void 0,r))}if(o.config){const a=Q(e.variables,t.variables);o.config=oe(o.config,a,n,i,r)}if(o.sources)for(const[a,s]of Object.entries(o.sources)){const c=Q(e.variables,t.variables,s.variables),u=oe(s.config,c,n,i,r),f=oe(s.env,c,n,i,r);o.sources[a]={package:s.package,import:s.import,config:u,env:f,primary:s.primary,variables:s.variables,before:s.before,next:s.next,cache:s.cache,code:s.code}}if(o.destinations)for(const[a,s]of Object.entries(o.destinations)){const c=Q(e.variables,t.variables,s.variables),u=oe(s.config,c,n,i,r),f=oe(s.env,c,n,i,r);o.destinations[a]={package:s.package,import:s.import,config:u,env:f,variables:s.variables,before:s.before,next:s.next,cache:s.cache,code:s.code}}if(o.stores)for(const[a,s]of Object.entries(o.stores)){const c=Q(e.variables,t.variables,s.variables),u=oe(s.config,c,n,i,r),f=oe(s.env,c,n,i,r);o.stores[a]={package:s.package,import:s.import,config:u,env:f,cache:s.cache,variables:s.variables,code:s.code}}if(o.transformers)for(const[a,s]of Object.entries(o.transformers)){const c=Q(e.variables,t.variables,s.variables),u=oe(s.config,c,n,i,r),f=oe(s.env,c,n,i,r);o.transformers[a]={package:s.package,import:s.import,config:u,env:f,variables:s.variables,before:s.before,next:s.next,cache:s.cache,code:s.code}}if(o.collector){const a=Q(e.variables,t.variables),s=oe(o.collector,a,n,i,r);o.collector=s}return o}(e,c,n,a)}finally{o.delete(t),i.pop()}}function se(e){const t=e.config?.platform;if("web"===t||"server"===t)return t;F('Flow must have config.platform set to "web" or "server"')}var ce={merge:!0,shallow:!0,extend:!0};function ue(e,t={},n={}){n={...ce,...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 fe(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function le(e){return Array.isArray(e)}function pe(e){return"boolean"==typeof e}function de(e){return"walker"===e}function me(e){return void 0!==e}function ge(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function ye(e){return"function"==typeof e}function he(e){return"number"==typeof e&&!Number.isNaN(e)}function ve(e){return"object"==typeof e&&null!==e&&!le(e)&&"[object Object]"===Object.prototype.toString.call(e)}function be(e,t){return typeof e==typeof t}function we(e){return"string"==typeof e}function ke(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]=ke(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(ke(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 $e(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&le(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=$e(e,t,n);i.push(r)}return i}if(o=ve(o)||le(o)?o[t]:void 0,void 0===o)break}return me(o)?o:n}function je(e,t,n){if(!ve(e))return e;const r=ke(e),o=t.split(".");let i=r;for(let e=0;e<o.length;e++){const t=o[e];e===o.length-1?i[t]=n:(t in i&&"object"==typeof i[t]&&null!==i[t]||(i[t]={}),i=i[t])}return r}function Se(e,t){if(!ve(e)&&!le(e))return e;const n=ke(e),r=t.split(".");let o=n;for(let e=0;e<r.length;e++){const t=r[e],i=e===r.length-1;if(le(o)){const e=Number(t);if(!Number.isInteger(e)||e<0||e>=o.length)return n;if(i)o.splice(e,1);else{const t=o[e];if(!ve(t)&&!le(t))return n;o=t}}else if(i)delete o[t];else{const e=o[t];if(!ve(e)&&!le(e))return n;o=e}}return n}var Ae={data:e=>e.data,globals:e=>e.globals,context:e=>e.context,user:e=>e.user,source:e=>e.source,event:e=>({entity:e.entity,action:e.action,id:e.id,timestamp:e.timestamp,name:e.name,trigger:e.trigger,timing:e.timing})};function Oe(e,t){const n={},r=t.includes("all")?Object.keys(Ae):t;for(const t of r){const r=Ae[t];if(!r)continue;const o=r(e);if(ve(o))for(const[e,r]of Object.entries(o)){if(void 0===r)continue;const o="context"===t&&Array.isArray(r)?r[0]:r;n[`${t}_${e}`]=o}}return n}function xe(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function Ee(e,t={},n={}){const r={...t,...n},o={};let 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 _e(e,t){const n={...e};return n.config=ue(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=ue(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=ue(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function Ce(e,t){if(!ve(t))return e;for(const n of Object.keys(t)){const r=t[n];void 0!==r&&(ve(r)&&ve(e[n])?Ce(e[n],r):e[n]=r)}return e}function Ne(){let e="";for(let t=0;t<16;t++)e+=(16*Math.random()|0).toString(16);return e}function Te(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=ue({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],not:void 0},context:{dev:["test",1]},globals:{lang:"elb"},custom:{completely:"random"},user:{id:"us3r",device:"c00k13",session:"s3ss10n"},nested:[{entity:"child",data:{is:"subordinated"}}],consent:{functional:!0},id:e.id||Ne(),trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,source:{type:"collector",schema:"4"}},e,{merge:!1});if(e.name){const[t,r]=e.name.split(" ")??[];t&&r&&(n.entity=t,n.action=r)}return n}function Pe(e="entity action",t={}){const n=t.timestamp||(new Date).setHours(0,13,37,0),r={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},o={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return Te({...{"cart view":{data:{currency:"EUR",value:2*r.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...r.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:r.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...r,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...o,context:{shopping:["checkout",0]},nested:[]}],trigger:"load"},"order complete":{data:{id:"0rd3r1d",currency:"EUR",shipping:5.22,taxes:73.76,total:555},context:{shopping:["complete",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...r,context:{shopping:["complete",0]},nested:[]},{entity:"product",...o,context:{shopping:["complete",0]},nested:[]},{entity:"gift",data:{name:"Surprise"},context:{shopping:["complete",0]},nested:[]}],trigger:"load"},"page view":{data:{domain:"www.example.com",title:"walkerOS documentation",referrer:"https://www.walkeros.io/",search:"?foo=bar",hash:"#hash",id:"/docs/"},globals:{pagegroup:"docs"},trigger:"load"},"product add":{...r,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...r,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...r.data,position:3,promo:!0},context:{shopping:["discover",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"promotion visible":{data:{name:"Setting up tracking easily",position:"hero"},context:{ab_test:["engagement",0]},globals:{pagegroup:"homepage"},trigger:"visible"},"session start":{data:{id:"s3ss10n",start:n,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,referrer:"",device:"c00k13"},user:{id:"us3r",device:"c00k13",session:"s3ss10n",hash:"h4sh",address:"street number",email:"user@example.com",phone:"+49 123 456 789",userAgent:"Mozilla...",browser:"Chrome",browserVersion:"90",deviceType:"desktop",language:"de-DE",country:"DE",region:"HH",city:"Hamburg",zip:"20354",timezone:"Berlin",os:"walkerOS",osVersion:"1.0",screenSize:"1337x420",ip:"127.0.0.0",internal:!0,custom:"value"}}}[e],...t,name:e})}function Re(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 Ie=[{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 Me(e,t={},n=[]){const r={};Object.entries(ue({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(Ie.map(e=>e.param));return[...Ie.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):Ie,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 Fe(e,t){return"number"==typeof e?{wait:e}:e?{wait:e.wait??t,size:e.size,age:e.age}:{wait:t}}function ze(e,t=1e3,n=!1){const{wait:r,size:o,age:i}=Fe(t,1e3);let a,s,c=null,u=null,f=!1,l=[],p=0;const d=()=>{c&&(clearTimeout(c),c=null),u&&(clearTimeout(u),u=null),p=0,s=void 0},m=()=>{const t=s,n=l;if(d(),l=[],t)return a=e(...t),n.forEach(e=>e(a)),a;n.forEach(e=>e(void 0))},g=(...t)=>new Promise(d=>{const g=n&&!f;if(s=t,p+=1,l.push(d),c&&clearTimeout(c),c=setTimeout(()=>{c=null,n&&!f||m()},r),void 0===i||u||(u=setTimeout(()=>{u=null,m()},i)),void 0!==o&&p>=o)m();else if(g){f=!0,a=e(...t);const n=l;l=[],n.forEach(e=>e(a))}});return g.flush=()=>s||0!==l.length?new Promise(e=>{l.push(e),m()}):Promise.resolve(a),g.cancel=()=>{const e=l;l=[],d(),a=void 0,e.forEach(e=>e(void 0))},g.size=()=>p,g}function De(e,t=1e3){const{wait:n}=Fe(t,1e3);let r=null;return function(...t){if(null===r)return r=setTimeout(()=>{r=null},n),e(...t)}}function Ue(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function Ve(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=Ue(e)):n=e,void 0!==t&&(t instanceof Error?r.error=Ue(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=Ue(r.error))):r.value=t),{message:n,context:r}}var Be=(e,t,n,r)=>{const o=`${y[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 Le(e={}){return Ze({level:void 0!==e.level?function(e){return"string"==typeof e?y[e]:e}(e.level):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]})}function Ze(e){const{level:t,handler:n,jsonHandler:r,scope:o}=e,i=(e,r,i)=>{if(e<=t){const t=Ve(r,i);n?n(e,t.message,t.context,o,Be):Be(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=Ve(e,t);throw n?n(0,r.message,r.context,o,Be):Be(0,r.message,r.context,o),new Error(r.message)},json:e=>{r?r(e):console.log(JSON.stringify(e,null,2))},scope:e=>Ze({level:t,handler:n,jsonHandler:r,scope:[...o,e]})}}function We(e){return pe(e)||we(e)||he(e)||!me(e)||le(e)&&e.every(We)||ve(e)&&Object.values(e).every(We)}function He(e){return pe(e)||we(e)||he(e)?e:fe(e)?He(Array.from(e)):le(e)?e.map(e=>He(e)).filter(e=>void 0!==e):ve(e)?Object.entries(e).reduce((e,[t,n])=>{const r=He(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function Ke(e){return We(e)?e:void 0}function qe(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function Je(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}var Ge=class e extends Error{constructor(t,n){super(t,n),this.name="FatalError",Object.setPrototypeOf(this,e.prototype)}};async function Xe(e,t,n){const[r,o]=(e.name||"").split(" ");if(!t||!r||!o)return{};let i,a="",s=r,c=o;const u=t=>{if(!t)return;return(le(t)?t:[t]).find(t=>{if(!t.condition)return!0;if(!n)return Boolean(t.condition(e,void 0));const r={event:e,mapping:t,collector:n,logger:n.logger,consent:ve(e)&&e.consent||n.consent};return Boolean(t.condition(e,r))})};t[s]||(s="*");const f=t[s];return f&&(f[c]||(c="*"),i=u(f[c])),i||(s="*",c="*",i=u(t[s]?.[c])),i&&(a=`${s} ${c}`),{eventMapping:i,mappingKey:a}}async function Ye(e,t={},n={}){if(!me(e))return;const r=ve(e)&&e.consent||n.consent||n.collector?.consent,o=n.event??(ve(e)?e:{});if(!n.collector)throw new Error("getMappingValue: context.collector is required");const i={event:o,mapping:t,collector:n.collector,logger:n.collector.logger,consent:r},a=le(t)?t:[t];for(const t of a){const r=await Je(Qe,e=>{if(e instanceof Ge)throw e;n.collector&&n.collector.status.failed++,i.logger.error("mapping processing failed",{event:o,error:e})})(e,t,{...i,mapping:t});if(me(r))return r}}async function Qe(e,t,n){return(le(t)?t:[t]).reduce(async(t,r)=>{const o=await t;if(o)return o;const i=we(r)?{key:r}:r;if(!Object.keys(i).length)return;const{condition:a,consent:s,fn:c,key:u,loop:f,map:l,set:p,validate:d,value:m}=i,g={...n,mapping:r};if(a&&!await Je(a,e=>{if(e instanceof Ge)throw e;return g.logger.error("mapping condition failed",{event:g.event,error:e}),!1})(e,g))return;if(s&&!Ee(s,g.consent))return m;let y=me(m)?m:e;if(c&&(y=await Je(c,e=>{if(e instanceof Ge)throw e;g.logger.error("mapping fn failed",{event:g.event,error:e})})(e,g)),u&&(y=$e(e,u,m)),f){const[t,n]=f,r="this"===t?[e]:await Ye(e,t,g);le(r)&&(y=(await Promise.all(r.map(e=>Ye(e,n,g)))).filter(me))}else l?y=await Object.entries(l).reduce(async(t,[n,r])=>{const o=await t,i=await Ye(e,r,g);return me(i)&&(o[n]=i),o},Promise.resolve({})):p&&(y=await Promise.all(p.map(t=>Qe(e,t,g))));d&&!await Je(d,e=>{if(e instanceof Ge)throw e;return g.logger.error("mapping validate failed",{event:g.event,error:e}),!1})(y,g)&&(y=void 0);const h=Ke(y);return me(h)?h:Ke(m)},Promise.resolve(void 0))}async function et(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await Ye(e,r,{collector:n,event:e});e=je(e,t,o)}));const{eventMapping:r,mappingKey:o}=await Xe(e,t.mapping,n);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await Ye(e,r,{collector:n,event:e});e=je(e,t,o)}));let i=t.data&&await Ye(e,t.data,{collector:n,event:e});const a=Boolean(r?.silent);if(r){if(r.ignore)return{event:e,data:i,mapping:r,mappingKey:o,ignore:!0,silent:a};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await Ye(e,r.data,{collector:n,event:e});i=ve(i)&&ve(t)?ue(i,t):t}}const s=r?.include??t.include;if(s&&s.length>0){const t=Oe(e,s);Object.keys(t).length>0&&(i=ve(i)?ue(t,i):i??t)}if(r?.remove&&ve(i))for(const e of r.remove)i=Se(i,e);return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1,silent:a}}function tt(e,t){for(const n of Object.keys(t)){const r=t[n];if(void 0===r)continue;if(null===r){delete e[n];continue}const o=e[n];ve(r)&&ve(o)?tt(o,r):e[n]=r}return e}function nt(e,t){if(void 0===t.extend&&void 0===t.remove)return ke(t);const n={...ke(e)};if(t.extend){tt(n,{...t.extend})}return delete n.extend,t.remove?n.remove=[...t.remove]:delete n.remove,n}function rt(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 ot(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 it(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=it();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 at(e={}){return{collector:{},config:{},env:{},logger:it(),id:"test",ingest:R("test"),...e}}function st(e){const t=String(e),n=t.split("?")[1]||t;return qe(()=>{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(le(o)){const a=parseInt(t,10);i?o[a]=xe(e):(o[a]=o[a]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[a])}else ve(o)&&(i?o[t]=xe(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function ct(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(le(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):ve(o)?Object.entries(o).forEach(([t,n])=>r(`${e}[${t}]`,n)):t.push(`${n(e)}=${n(String(o))}`))}return"object"!=typeof e?n(e):(Object.entries(e).forEach(([e,t])=>r(e,t)),t.join("&"))}function ut(e){return void 0===e||be(e,"")?e:JSON.stringify(e)}function ft(e={}){return ue({"Content-Type":"application/json; charset=utf-8"},e)}function lt(e,t){return!1===e||void 0===e?null:!0===e?t:{...t,...e}}function pt(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function dt(e,t,n,r){const o=e;return function(...e){let i;const a="pre"+t,s="post"+t,c=n[a],u=n[s],f=(e,t)=>{r?r.warn(e,{error:t}):console.warn(e,t)};if(c)try{i=c({fn:o},...e)}catch(t){f(`Hook ${String(a)} failed, falling back to original function`,t),i=o(...e)}else i=o(...e);if(u)try{i=u({fn:o,result:i},...e)}catch(e){f(`Hook ${String(s)} failed, keeping original result`,e)}return i}}function mt(e,t){if(t>=1)return!0;if(t<=0)return!1;return function(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=t+((t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24))>>>0;return t>>>0}(e)/4294967295<t}function gt(e,t){const n="function"==typeof t?t:()=>t;return function(t){const r=n();if(!r)return;const o=r.level??"standard";if("off"===o)return;const i=r.sample,a="number"==typeof i&&Number.isFinite(i)?i:1;if(t.eventId&&!mt(t.eventId,a))return;const s=r.includeIn??"trace"===o,c=r.includeOut??"trace"===o,u=r.includeMappingKey??"trace"===o,f={...t};s||delete f.inEvent,c||delete f.outEvent,u||delete f.mappingKey,"trace"!==o&&f.error?.message&&f.error.message.length>256&&(f.error={...f.error,message:f.error.message.slice(0,256)+"…"});try{e(f)}catch{}}}function yt(e,t){return mt(e,t)}function ht(e){const t=e.now??(()=>Date.now()),{traceUntil:n}=e;if("string"==typeof n&&n.length>0){const r=Date.parse(n);if(!Number.isNaN(r)&&r>t())return{flowId:e.flowId,level:"trace",includeIn:!0,includeOut:!0,sample:1}}const r=e.observe?.level??"standard";if("off"===r)return null;const o=e.observe?.sample??1;return{flowId:e.flowId,level:r,sample:o}}var vt=null;function bt(){return vt}function wt(e){vt=e}function kt(e,t){if(0===e.observers.size)return;const n=Array.from(e.observers);for(const e of n)try{e(t)}catch{}}function $t(e){const t=e.batchMs,n="number"==typeof t&&Number.isFinite(t)&&t>0?Math.floor(t):50,r=e.batchSize,o="number"==typeof r&&Number.isFinite(r)&&r>=1?Math.floor(r):50,i=e.fetch??((e,t)=>globalThis.fetch(e,t)),a=e.onError??(()=>{});let s=[],c=null;function u(){if(0===s.length)return;const t=s;s=[],c&&(clearTimeout(c),c=null),Promise.resolve().then(()=>i(e.url,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e.token}`},body:JSON.stringify(t)})).then(e=>{e&&"object"==typeof e&&"ok"in e&&!e.ok&&a(new Error(`Observer responded ${e.status}`))}).catch(e=>{a(e)})}return e=>{s.push(e),s.length>=o?u():null===c&&(c=setTimeout(u,n))}}function jt(e){return e?{userAgent:e,browser:St(e),browserVersion:At(e),os:Ot(e),osVersion:xt(e),deviceType:Et(e)}:{}}function St(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 At(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 Ot(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 xt(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function Et(e){let t="Desktop";return/Tablet|iPad/i.test(e)?t="Tablet":/Mobi|Android|iPhone|iPod|BlackBerry|Opera Mini|IEMobile|WPDesktop/i.test(e)&&(t="Mobile"),t}function _t(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function Ct(e){const t=_t(e);return new Function("value","context",t)}function Nt(e){const t=_t(e);return new Function("value","context",t)}function Tt(e){const t=_t(e);return new Function("value","context",t)}var Pt="https://cdn.jsdelivr.net/npm",Rt="dist/walkerOS.json";function It(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function Mt(e,t){const n=t?.version||"latest",r=t?.timeout||1e4,o=new AbortController,i=setTimeout(()=>o.abort(),r),a=o.signal,s=t?.client?{"X-Walkeros-Client":t.client}:void 0;try{if(t?.baseUrl){const r=`${t.baseUrl}/api/packages/${encodeURIComponent(e)}?version=${encodeURIComponent(n)}&expand=all`,o=await fetch(r,{signal:a,...s&&{headers:s}});if(!o.ok)throw new Error(`Failed to fetch ${r} (HTTP ${o.status})`);return function(e,t,n){const r=n.schemas||{},o=n.examples||{},i=n.hints,a=n.hintKeys??(i?Object.keys(i):[]),s=n.exampleSummaries??[],c=n.platform;return{packageName:n.package||e,version:"string"==typeof n.version?n.version:t,...void 0!==n.description&&{description:n.description},...void 0!==n.type&&{type:n.type},...void 0!==c&&{platform:c},schemas:r,examples:o,...void 0!==n.docs&&{docs:n.docs},...void 0!==n.source&&{source:n.source},...i&&Object.keys(i).length>0?{hints:i}:{},hintKeys:a,exampleSummaries:s}}(e,n,await o.json())}const r=`${Pt}/${e}@${n}`,o=await Ft(`${r}/package.json`,a,s);return function(e,t,n,r){const o=r.$meta||{},i=r.schemas||{},a=r.examples||{},s=r.hints,c=s?Object.keys(s):[],u=[],f=a.step||{};for(const[e,t]of Object.entries(f)){const n=t,r={name:e};"string"==typeof n?.description&&(r.description=n.description),u.push(r)}const l="string"==typeof o.docs?o.docs:void 0,p="string"==typeof o.source?o.source:void 0;return{packageName:e,version:"string"==typeof n.version?n.version:t,description:"string"==typeof n.description?n.description:void 0,type:"string"==typeof o.type?o.type:void 0,platform:It(o.platform),schemas:i,examples:a,...l?{docs:l}:{},...p?{source:p}:{},...s&&Object.keys(s).length>0?{hints:s}:{},hintKeys:c,exampleSummaries:u}}(e,n,o,await Ft(`${r}/${Rt}`,a,s))}finally{clearTimeout(i)}}async function Ft(e,t,n){const r=await fetch(e,{signal:t,...n&&{headers:n}});if(!r.ok)throw new Error(`Failed to fetch ${e} (HTTP ${r.status})`);return await r.json()}async function zt(e,t){const n=await Mt(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 Dt(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function Ut(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 Vt(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function Bt(e){if(void 0===e||"*"===e)return()=>!0;if("and"in e){const t=e.and.map(Bt);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(Bt);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=$e(e,t),r=i(n);return o?!r:r}}(e)}function Lt(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&("match"in e||"next"in e||"one"in e||"many"in e)}function Zt(e){return Array.isArray(e)&&e.length>0&&e.every(e=>Lt(e))}function Wt(e){return e.map(e=>{if("string"==typeof e)return{match:()=>!0,next:{type:"static",value:e}};if(Array.isArray(e))return{match:()=>!0,next:Ht(e)??{type:"chain",value:[]}};const t=e;return{match:t.match?Bt(t.match):()=>!0,next:Ht(t)??{type:"chain",value:[]}}})}function Ht(e){if(null==e)return;if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(Zt(e))return Ht({one:e});if(e.every(e=>"string"==typeof e))return{type:"chain",value:e};const t=[];for(const n of e){const e=Ht(n);void 0!==e&&t.push(e)}if(0===t.length)return;return{type:"sequence",value:t}}const t=e;if("next"in t&&void 0!==t.next)return t.match?{type:"gate",match:Bt(t.match),next:Ht(t.next)}:Ht(t.next);if("one"in t&&t.one){const e=Wt(t.one);return t.match?{type:"gate",match:Bt(t.match),next:{type:"one",routes:e}}:{type:"one",routes:e}}if("many"in t&&t.many){const e=Wt(t.many);return t.match?{type:"gate",match:Bt(t.match),next:{type:"many",routes:e}}:{type:"many",routes:e}}return t.match?{type:"gate",match:Bt(t.match)}:void 0}var Kt=new WeakMap;function qt(e,t={}){if(null==e)return[];let n;if("object"==typeof e){const t=Kt.get(e);t?n=t:(n=Ht(e),n&&Kt.set(e,n))}else n=Ht(e);if(!n)return[];const r=Jt(n,t);return void 0===r?[]:Array.isArray(r)?r:[r]}function Jt(e,t={}){if(e){if("static"===e.type)return e.value;if("chain"===e.type)return e.value;if("gate"===e.type){if(!e.match(t))return;return Jt(e.next,t)}if("sequence"===e.type){const n=[];for(const r of e.value){const e=Jt(r,t);void 0!==e&&(Array.isArray(e)?n.push(...e):n.push(e))}return n.length>0?n:void 0}if("many"===e.type){const n=[];for(const r of e.routes){if(!r.match(t))continue;const e=Jt(r.next,t);void 0!==e&&(Array.isArray(e)?n.push(...e):n.push(e))}return n.length>0?n:void 0}for(const n of e.routes)if(n.match(t))return Jt(n.next,t)}}var Gt="__walkeros_cache_v__",Xt="__walkeros_cache_exp__";function Yt(e,t,n=Date.now){const r={[Gt]:e};return void 0!==t&&(r[Xt]=n()+t),r}function Qt(e,t=Date.now){if(void 0===e)return;if(null===(n=e)||"object"!=typeof n||Array.isArray(n)||!(Gt in e))return{value:e};var n;const r=e[Xt];return"number"==typeof r&&t()>r?{expired:!0}:{value:e[Gt]}}var en="__walkeros_cache__",tn=class extends Error{constructor(e,t){super(e,t),this.name="StoreCodecError"}};function nn(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function rn(e){if(Buffer.isBuffer(e))return{[en]:"buffer",d:e.toString("base64")};if(e instanceof Uint8Array)return{[en]:"buffer",d:Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64")};if(e instanceof ArrayBuffer)return{[en]:"buffer",d:Buffer.from(e).toString("base64")};if(Array.isArray(e))return e.map(rn);if(nn(e)){if(en in e){const t={};for(const[n,r]of Object.entries(e))t[n]=rn(r);return{[en]:"escape",d:t}}const t={};for(const[n,r]of Object.entries(e))t[n]=rn(r);return t}return e}function on(e,t){if(nn(e)){if(en in e){const n=e[en],r=e.d;if("buffer"===n&&"string"==typeof r)return t(Buffer.from(r,"base64"));if("escape"===n&&nn(r)){const e={};for(const[n,o]of Object.entries(r))e[n]=on(o,t);return e}}const n={};for(const[r,o]of Object.entries(e))n[r]=on(o,t);return n}return Array.isArray(e)?e.map(e=>on(e,t)):e}function an(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function sn(e){return null===e||"string"==typeof e||"number"==typeof e||"boolean"==typeof e||e instanceof Uint8Array||(Array.isArray(e)?e.every(e=>void 0===e||sn(e)):!!nn(e)&&Object.values(e).every(e=>void 0===e||sn(e)))}function cn(e){let t;try{t=JSON.stringify(rn(e))}catch(e){throw new tn("Failed to serialize store value (likely a cyclic structure).",{cause:e})}return new Uint8Array(Buffer.from(t,"utf8"))}function un(e){const t="string"==typeof e?e:Buffer.from(e).toString("utf8"),n=on(JSON.parse(t),an);if(!sn(n))throw new tn("Restored value is not a valid StoreValue.");return n}function fn(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function ln(e){return{stop:e.stop??!1,storeId:e.store,namespace:e.namespace,rules:e.rules.map(e=>({match:e.match?Bt(e.match):()=>!0,key:e.key,ttl:e.ttl,update:e.update}))}}async function pn(e,t,n,r){const o=e.rules.find(e=>e.match(n));if(!o)return null;const i=o.key.map(e=>String($e(n,e)??""));if(i.every(e=>""===e))return null;const a=i.join(":"),s=r??e.namespace,c=s?`${s}:${a}`:a,u=Qt(await t.get(c));if(void 0===u)return{status:"MISS",key:c,rule:o};if("expired"in u){try{await t.delete(c)}catch{}return{status:"MISS",key:c,rule:o}}return{status:"HIT",key:c,value:u.value,rule:o}}function dn(e,t,n,r){if(!sn(n))return;const o=1e3*r,i=e.set(t,Yt(n,o),o);i instanceof Promise&&i.catch(()=>{})}async function mn(e,t,n,r){if(!t)return e;let o=e;for(const[e,i]of Object.entries(t)){o=je(o,e,await Ye(n,i,{collector:r}))}return o}function gn(e){return le(e)?e:[e]}async function yn(e,t,n,r){let o=n;for(const n of e)await Je(async()=>{const e=t(n.store);if(!e)return;const i=await Ye(o,n.key,{collector:r,event:o});if(!we(i))return;const a=n.store?i:`state:${i}`;if("set"===n.mode){const t=await Ye(o,n.value,{collector:r,event:o});if(!me(t))return;await e.set(a,t)}else{const t=we(s=n.value)?s:ve(s)&&we(s.key)?s.key:void 0;if(!t)return;const r=await e.get(a);if(!me(r))return;o=je(o,t,r)}var s},e=>{if(e instanceof Ge)throw e;r.logger?.error?.("[state] operation failed",e)})();return o}var hn={Source:["code","package","import","before","next","cache","state"],Transformer:["code","package","import","before","next","cache","state","mapping"],Destination:["code","package","import","before","next","cache","state"],Store:["code","package","import","cache"]},vn=["config","env","variables","examples","disabled","id","logger","mock","chainMocks"],bn={Source:["primary"],Transformer:[],Destination:[],Store:[]},wn=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function kn(e,t){const n=function(e){return new Set([...hn[e],...vn,...bn[e]])}(t);for(const r of Object.keys(e))if(!n.has(r))return{ok:!1,code:"UNKNOWN_KEY",key:r,reason:`Unknown key "${r}" on ${t}. Allowed: ${[...n].sort().join(", ")}.`};const r=void 0!==e.package,o=void 0!==e.import,i=void 0!==e.code;return i&&"string"==typeof e.code?{ok:!1,code:"OBSOLETE_CODE_STRING",key:"code",reason:`code: "<name>" is no longer supported. Use import: "${e.code}" with the package field instead.`}:i&&("object"!=typeof e.code&&"function"!=typeof e.code||null===e.code||Array.isArray(e.code))?{ok:!1,code:"INVALID_CODE_SHAPE",key:"code",reason:"code must be an object ({ push, type?, init? }) or a resolved function value."}:i&&r?{ok:!1,code:"CONFLICT",key:"package",reason:"Cannot specify both `code` and `package`. Use one or the other."}:i&&o?{ok:!1,code:"CONFLICT",key:"import",reason:"Cannot specify both `code` and `import`."}:o&&!r?{ok:!1,code:"MISSING_PACKAGE",key:"import",reason:"`import` requires `package` to be set."}:!o||"string"==typeof e.import&&wn.test(e.import)?{ok:!0}:{ok:!1,code:"INVALID_IMPORT",key:"import",reason:`import must match ${wn.source}. Got: ${JSON.stringify(e.import)}.`}}function $n(e,t){return"Transformer"===t&&(void 0===e.code&&void 0===e.package&&void 0===e.import&&(void 0!==e.before||void 0!==e.next||void 0!==e.cache||void 0!==e.state||void 0!==e.mapping))}function jn(e){return 0===e.length?"// no output":e.map(Sn).join(";\n\n")}function Sn(e){const[t,...n]=e,r=n.map(An).join(", ");return"return"===t?r?`return ${r}`:"return":`${t}(${r})`}function An(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:()=>R,Context:()=>f,Destination:()=>l,ENV_MARKER_PREFIX:()=>ee,Elb:()=>d,FatalError:()=>tt,Hint:()=>T,Hooks:()=>m,Level:()=>y,Lifecycle:()=>E,Logger:()=>g,Mapping:()=>h,Matcher:()=>N,On:()=>v,REF_CODE_PREFIX:()=>G,REF_CONTRACT:()=>H,REF_ENV:()=>W,REF_FLOW:()=>K,REF_SECRET:()=>J,REF_STORE:()=>q,REF_VAR_FULL:()=>L,REF_VAR_INLINE:()=>Z,Request:()=>k,SECRET_MARKER_PREFIX:()=>te,STEP_OPERATIVE_FIELDS:()=>$n,Simulation:()=>C,Source:()=>$,Store:()=>S,StoreCodecError:()=>sn,Transformer:()=>b,Trigger:()=>x,WalkerOS:()=>_,anonymizeIP:()=>M,applyState:()=>kn,applyUpdate:()=>bn,assign:()=>ue,branch:()=>P,buildCacheContext:()=>gn,castToProperty:()=>Ye,castValue:()=>xe,checkCache:()=>hn,clone:()=>ke,compileCache:()=>yn,compileMatcher:()=>Kt,compileState:()=>wn,createBatchedPoster:()=>xt,createDestination:()=>_e,createEvent:()=>Fe,createIngest:()=>I,createLogger:()=>qe,createMockContext:()=>lt,createMockLogger:()=>ft,createRespond:()=>Ht,createTelemetryObserver:()=>wt,debounce:()=>Le,deepMerge:()=>Ce,defaultClickIds:()=>Ue,deleteByPath:()=>Se,deserializeStoreValue:()=>mn,emitStep:()=>Ot,fetchPackage:()=>Vt,fetchPackageSchema:()=>Lt,filterValues:()=>Xe,flattenIncludeSections:()=>Oe,formatOut:()=>En,getBrowser:()=>_t,getBrowserVersion:()=>Ct,getByPath:()=>$e,getDeviceType:()=>Rt,getEvent:()=>ze,getFlowSettings:()=>ae,getGrantedConsent:()=>Ee,getHeaders:()=>gt,getId:()=>Te,getMappingEvent:()=>nt,getMappingValue:()=>rt,getMarketingParameters:()=>Ve,getNextSteps:()=>Qt,getOS:()=>Nt,getOSVersion:()=>Tt,getPlatform:()=>se,getSpanId:()=>Me,getTraceId:()=>De,getTraceUntil:()=>St,isArguments:()=>fe,isArray:()=>le,isBoolean:()=>pe,isCommand:()=>de,isDefined:()=>me,isElementOrDocument:()=>ge,isFunction:()=>ye,isNumber:()=>he,isObject:()=>ve,isPathStepEntry:()=>xn,isPropertyType:()=>Ge,isRouteArray:()=>Jt,isRouteConfigEntry:()=>qt,isSameType:()=>be,isSampled:()=>kt,isStoreValue:()=>pn,isString:()=>we,mcpError:()=>Wt,mcpResult:()=>Zt,mergeContractSchemas:()=>U,mergeMappingRule:()=>st,mockEnv:()=>ct,packageNameToVariable:()=>ie,parseUserAgent:()=>Et,processEventMapping:()=>it,readCacheEnvelope:()=>on,requestToData:()=>pt,requestToParameter:()=>dt,resolveContracts:()=>D,resolveSetup:()=>yt,resolveTelemetryOptions:()=>$t,scanFlowRefs:()=>Y,serializeStoreValue:()=>dn,setByPath:()=>je,setTraceUntil:()=>At,stepId:()=>u,storeCache:()=>vn,throttle:()=>Ze,throwError:()=>F,transformData:()=>mt,traverseEnv:()=>ut,trim:()=>ht,tryCatch:()=>Qe,tryCatchAsync:()=>et,useHooks:()=>vt,validateStepEntry:()=>On,walkPath:()=>re,wrapCacheEnvelope:()=>rn,wrapCondition:()=>Pt,wrapFn:()=>Mt,wrapValidate:()=>Ft}),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={};function u(e,t){if("collector"===e)return"collector";if(!t)throw new Error(`stepId(${e}) requires an id`);return`${e}.${t}`}i(c,{stepId:()=>u});var f={},l={};function p(e,t){const n=e.destinations[t];if(!n)throw new Error(`Destination not found: ${t}`);return n}i(l,{getDestination:()=>p});var d={},m={},g={};i(g,{Level:()=>y});var y=(e=>(e[e.ERROR=0]="ERROR",e[e.WARN=1]="WARN",e[e.INFO=2]="INFO",e[e.DEBUG=3]="DEBUG",e))(y||{}),h={},v={},b={};function w(e,t){const n=e.transformers[t];if(!n)throw new Error(`Transformer not found: ${t}`);return n}i(b,{getTransformer:()=>w});var k={},$={};function j(e,t){const n=e.sources[t];if(!n)throw new Error(`Source not found: ${t}`);return n}i($,{getSource:()=>j});var S={};function A(e,t){const n=e.stores[t];if(!n)throw new Error(`Store not found: ${t}`);return n}async function O(e,t){return await e.get(t)}i(S,{getStore:()=>A,getStoreValue:()=>O});var x={},E={},_={},C={},N={},T={},R={Utils:{Storage:{Local:"local",Session:"session",Cookie:"cookie"}}};function I(e){return{_meta:{hops:0,path:[e]}}}function P(e,t){return{event:e,next:t}}function M(e){return/^(?:\d{1,3}\.){3}\d{1,3}$/.test(e)?e.replace(/\.\d+$/,".0"):""}function F(e){throw new Error(String(e))}var z=new Set(["description","examples","title","$comment"]);function D(e,t){const n=!1!==t?.stripAnnotations,r={},o=new Set;function i(t){if(r[t])return r[t];o.has(t)&&F(`Circular extend chain detected: ${[...o,t].join(" → ")}`);const a=e[t];a||F(`Contract "${t}" not found`),o.add(t);let s={};if(a.extend){s=function(e,t){const n={};void 0===e.tagging&&void 0===t.tagging||(n.tagging=t.tagging??e.tagging);void 0===e.description&&void 0===t.description||(n.description=t.description??e.description);e.schema&&t.schema?n.schema=U(e.schema,t.schema):(e.schema||t.schema)&&(n.schema={...e.schema||t.schema});if(e.events||t.events){const r={},o=new Set([...Object.keys(e.events||{}),...Object.keys(t.events||{})]);for(const n of o){const o=e.events?.[n]||{},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?U(t,a):{...t||a}}}n.events=r}return n}(i(a.extend),a)}else s={...a};if(delete s.extend,s.events&&(s.events=function(e){const t={};for(const n of Object.keys(e))if("*"!==n){t[n]={};for(const r of Object.keys(e[n]||{})){let o={};const i=e["*"]?.["*"];i&&(o=U(o,i));const a=e["*"]?.[r];a&&"*"!==r&&(o=U(o,a));const s=e[n]?.["*"];s&&"*"!==r&&(o=U(o,s));const c=e[n]?.[r];c&&(o=U(o,c)),t[n][r]=o}}e["*"]&&(t["*"]={...e["*"]});return t}(s.events)),s.events&&n){const e={};for(const[t,n]of Object.entries(s.events)){e[t]={};for(const[r,o]of Object.entries(n))e[t][r]=V(o)}s.events=e}return o.delete(t),r[t]=s,s}for(const t of Object.keys(e))i(t);return r}function U(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])]:B(o)&&B(i)?n[r]=U(o,i):n[r]=i}return n}function V(e){const t={};for(const[n,r]of Object.entries(e))z.has(n)||(null===r||"object"!=typeof r||Array.isArray(r)?t[n]=r:t[n]=V(r));return t}function B(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)}var L=/^\$var\.([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)$/,Z=/\$var\.([a-zA-Z_][a-zA-Z0-9_]*(?:\.[a-zA-Z_][a-zA-Z0-9_]*)*)/g,W=/\$env\.([a-zA-Z_][a-zA-Z0-9_]*)(?::([^"}\s]*))?/g,H=/^\$contract\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.(.+))?$/,K=/^\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)(?:\.([a-zA-Z0-9_.]+))?$/,q=/^\$store\.([a-zA-Z_][a-zA-Z0-9_]*)$/,J=/^\$secret\.([A-Z0-9_]+)$/,G="$code:",X=/\$flow\.([a-zA-Z_][a-zA-Z0-9_]*)/g;function Y(e,t){const n=t??new Set;if("string"==typeof e){for(const t of e.matchAll(X))n.add(t[1]);return n}if(e&&"object"==typeof e)for(const t of Object.values(e))Y(t,n);return n}function Q(...e){const t={};for(const n of e)n&&Object.assign(t,n);return t}var ee="__WALKEROS_ENV:",te="__WALKEROS_SECRET:";function ne(e,t,n){const r=`$flow.${e}${t?`.${t}`:""}`;if("unknown-flow"===n)return`${r} cannot resolve: flow "${e}" does not exist in this config.`;return`${r} is empty. Set ${t?`flows.${e}.config.${t}`:`flows.${e}.config`}, or run \`walkeros deploy ${e}\` first.`}function re(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(".");F(`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(".");F(`Path "${t}" not found in "${n}": "${i}" does not exist${o?` in "${o}"`:""}`)}o=a[i]}return o}function oe(e,t,n,r,o,i){if("string"==typeof e){const a=e.match(L);if(a){const e=a[1].split("."),s=e[0],c=e.slice(1).join(".");void 0===t[s]&&F(`Variable "${s}" not found`);const u=i??new Set;if(u.has(s)){F(`Cyclic $var reference: ${[...u,s].join(" -> ")}`)}let f;u.add(s);try{f=oe(t[s],t,n,r,o,u)}finally{u.delete(s)}return c&&(f=re(f,c,`$var.${s}`)),f}const s=e.match(H);if(s&&r){const e=s[1],t=s[2];e in r||F(`Contract "${e}" not found`);let n=r[e];return t&&(n=re(n,t,`$contract.${e}`)),n}const c=e.match(K);if(c){const t=c[1],r=c[2],i=!1===n?.strictFlowRefs;o||F(`$flow.${t}${r?`.${r}`:""} cannot be resolved without a flow resolver`);const a=o(t);if(!a){if(i)return n?.onWarning?.(ne(t,r,"unknown-flow")),e;F(`Flow "${t}" not found in $flow.${t}`)}let s=a;if(r)if(i){try{s=re(s,r,`$flow.${t}`)}catch{return n?.onWarning?.(ne(t,r,"missing-key")),e}if(null==s||""===s)return n?.onWarning?.(ne(t,r,"missing-key")),e}else s=re(s,r,`$flow.${t}`);return s}const u=e.match(J);if(u){const e=u[1];if(n?.deferred)return`${te}${e}`;F(`Secret "$secret.${e}" cannot be used in a web flow — secrets are never sent to the browser. Use a server flow.`)}let f=e.replace(Z,(e,a)=>{const s=a.split("."),c=s[0],u=s.slice(1).join(".");void 0===t[c]&&F(`Variable "${c}" not found`);const f=i??new Set;if(f.has(c)){F(`Cyclic $var reference: ${[...f,c].join(" -> ")}`)}let l;f.add(c);try{l=oe(t[c],t,n,r,o,f)}finally{f.delete(c)}if(u&&(l=re(l,u,`$var.${c}`)),null===l||"string"!=typeof l&&"number"!=typeof l&&"boolean"!=typeof l){F(`Variable "${a}" resolves to non-scalar (${Array.isArray(l)?"array":typeof l}) and cannot be inlined into a string. Use it as a whole-string reference: "$var.${a}"`)}return String(l)});return f=f.replace(W,(e,t,r)=>n?.deferred?void 0!==r?`${ee}${t}:${r}`:`${ee}${t}`:"undefined"!=typeof process&&void 0!==process.env?.[t]?process.env[t]:void 0!==r?r:void F(`Environment variable "${t}" not found and no default provided`)),f}if(Array.isArray(e))return e.map(e=>oe(e,t,n,r,o,i));if(null!==e&&"object"==typeof e){const a={};for(const[s,c]of Object.entries(e))a[s]=oe(c,t,n,r,o,i);return a}return e}function ie(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 ae(e,t,n){const r=new Map,o=new Set,i=[],a=t=>{if(r.has(t))return r.get(t);const s=e.flows[t];if(s){if(o.has(t)){F(`Cyclic $flow reference: ${[...i,t].join(" -> ")}`)}o.add(t),i.push(t);try{const o=Q(e.variables,s.variables),i=oe(s.config??{},o,n,void 0,a);return r.set(t,i),i}finally{o.delete(t),i.pop()}}},s=Object.keys(e.flows);t||(1===s.length?t=s[0]:F(`Multiple flows found (${s.join(", ")}). Please specify a flow.`));const c=e.flows[t];c||F(`Flow "${t}" not found. Available: ${s.join(", ")}`),o.add(t),i.push(t);try{return function(e,t,n,r){const o=JSON.parse(JSON.stringify(t));let i;if(e.contract){const o=Q(e.variables,t.variables);i=D(oe(e.contract,o,n,void 0,r))}if(o.config){const a=Q(e.variables,t.variables);o.config=oe(o.config,a,n,i,r)}if(o.sources)for(const[a,s]of Object.entries(o.sources)){const c=Q(e.variables,t.variables,s.variables),u=oe(s.config,c,n,i,r),f=oe(s.env,c,n,i,r);o.sources[a]={package:s.package,import:s.import,config:u,env:f,primary:s.primary,variables:s.variables,before:s.before,next:s.next,cache:s.cache,code:s.code}}if(o.destinations)for(const[a,s]of Object.entries(o.destinations)){const c=Q(e.variables,t.variables,s.variables),u=oe(s.config,c,n,i,r),f=oe(s.env,c,n,i,r);o.destinations[a]={package:s.package,import:s.import,config:u,env:f,variables:s.variables,before:s.before,next:s.next,cache:s.cache,code:s.code}}if(o.stores)for(const[a,s]of Object.entries(o.stores)){const c=Q(e.variables,t.variables,s.variables),u=oe(s.config,c,n,i,r),f=oe(s.env,c,n,i,r);o.stores[a]={package:s.package,import:s.import,config:u,env:f,cache:s.cache,variables:s.variables,code:s.code}}if(o.transformers)for(const[a,s]of Object.entries(o.transformers)){const c=Q(e.variables,t.variables,s.variables),u=oe(s.config,c,n,i,r),f=oe(s.env,c,n,i,r);o.transformers[a]={package:s.package,import:s.import,config:u,env:f,variables:s.variables,before:s.before,next:s.next,cache:s.cache,code:s.code}}if(o.collector){const a=Q(e.variables,t.variables),s=oe(o.collector,a,n,i,r);o.collector=s}return o}(e,c,n,a)}finally{o.delete(t),i.pop()}}function se(e){const t=e.config?.platform;if("web"===t||"server"===t)return t;F('Flow must have config.platform set to "web" or "server"')}var ce={merge:!0,shallow:!0,extend:!0};function ue(e,t={},n={}){n={...ce,...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 fe(e){return"[object Arguments]"===Object.prototype.toString.call(e)}function le(e){return Array.isArray(e)}function pe(e){return"boolean"==typeof e}function de(e){return"walker"===e}function me(e){return void 0!==e}function ge(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function ye(e){return"function"==typeof e}function he(e){return"number"==typeof e&&!Number.isNaN(e)}function ve(e){return"object"==typeof e&&null!==e&&!le(e)&&"[object Object]"===Object.prototype.toString.call(e)}function be(e,t){return typeof e==typeof t}function we(e){return"string"==typeof e}function ke(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]=ke(e[r],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(ke(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 $e(e,t="",n){const r=t.split(".");let o=e;for(let e=0;e<r.length;e++){const t=r[e];if("*"===t&&le(o)){const t=r.slice(e+1).join("."),i=[];for(const e of o){const r=$e(e,t,n);i.push(r)}return i}if(o=ve(o)||le(o)?o[t]:void 0,void 0===o)break}return me(o)?o:n}function je(e,t,n){if(!ve(e))return e;const r=ke(e),o=t.split(".");let i=r;for(let e=0;e<o.length;e++){const t=o[e];e===o.length-1?i[t]=n:(t in i&&"object"==typeof i[t]&&null!==i[t]||(i[t]={}),i=i[t])}return r}function Se(e,t){if(!ve(e)&&!le(e))return e;const n=ke(e),r=t.split(".");let o=n;for(let e=0;e<r.length;e++){const t=r[e],i=e===r.length-1;if(le(o)){const e=Number(t);if(!Number.isInteger(e)||e<0||e>=o.length)return n;if(i)o.splice(e,1);else{const t=o[e];if(!ve(t)&&!le(t))return n;o=t}}else if(i)delete o[t];else{const e=o[t];if(!ve(e)&&!le(e))return n;o=e}}return n}var Ae={data:e=>e.data,globals:e=>e.globals,context:e=>e.context,user:e=>e.user,source:e=>e.source,event:e=>({entity:e.entity,action:e.action,id:e.id,timestamp:e.timestamp,name:e.name,trigger:e.trigger,timing:e.timing})};function Oe(e,t){const n={},r=t.includes("all")?Object.keys(Ae):t;for(const t of r){const r=Ae[t];if(!r)continue;const o=r(e);if(ve(o))for(const[e,r]of Object.entries(o)){if(void 0===r)continue;const o="context"===t&&Array.isArray(r)?r[0]:r;n[`${t}_${e}`]=o}}return n}function xe(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function Ee(e,t={},n={}){const r={...t,...n},o={};let 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 _e(e,t){const n={...e};return n.config=ue(e.config,t,{shallow:!0,merge:!0,extend:!0}),e.config.settings&&t.settings&&(n.config.settings=ue(e.config.settings,t.settings,{shallow:!0,merge:!0,extend:!0})),e.config.mapping&&t.mapping&&(n.config.mapping=ue(e.config.mapping,t.mapping,{shallow:!0,merge:!0,extend:!0})),n}function Ce(e,t){if(!ve(t))return e;for(const n of Object.keys(t)){const r=t[n];void 0!==r&&(ve(r)&&ve(e[n])?Ce(e[n],r):e[n]=r)}return e}var Ne="0123456789abcdefghijklmnopqrstuvwxyz";function Te(e=6,t=Ne){const n=t.length;if(e<=0||0===n)return"";let r="";if(n<=256){const o=256-256%n;for(;r.length<e;){const i=e-r.length,a=new Uint8Array(Math.ceil(1.3*i)+4);if(!Re(a))break;for(let i=0;i<a.length&&r.length<e;i++)a[i]<o&&(r+=t[a[i]%n])}}for(;r.length<e;)r+=t[Math.random()*n|0];return r}function Re(e){try{const t=globalThis.crypto;if(t&&"function"==typeof t.getRandomValues)return t.getRandomValues(e),!0}catch{}return!1}var Ie="0123456789abcdef";function Pe(e){let t=Te(e,Ie);for(;/^0+$/.test(t);)t=Te(e,Ie);return t}function Me(){return Pe(16)}function Fe(e={}){const t=e.timestamp||(new Date).setHours(0,13,37,0),n=ue({name:"entity action",data:{string:"foo",number:1,boolean:!0,array:[0,"text",!1],not:void 0},context:{dev:["test",1]},globals:{lang:"elb"},custom:{completely:"random"},user:{id:"us3r",device:"c00k13",session:"s3ss10n"},nested:[{entity:"child",data:{is:"subordinated"}}],consent:{functional:!0},id:e.id||Me(),trigger:"test",entity:"entity",action:"action",timestamp:t,timing:3.14,source:{type:"collector",schema:"4"}},e,{merge:!1});if(n.source={count:1,trace:"0a1b2c3d4e5f60718293a4b5c6d7e8f9",...n.source},e.name){const[t,r]=e.name.split(" ")??[];t&&r&&(n.entity=t,n.action=r)}return n}function ze(e="entity action",t={}){const n=t.timestamp||(new Date).setHours(0,13,37,0),r={data:{id:"ers",name:"Everyday Ruck Snack",color:"black",size:"l",price:420}},o={data:{id:"cc",name:"Cool Cap",size:"one size",price:42}};return Fe({...{"cart view":{data:{currency:"EUR",value:2*r.data.price},context:{shopping:["cart",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",data:{...r.data,quantity:2},context:{shopping:["cart",0]},nested:[]}],trigger:"load"},"checkout view":{data:{step:"payment",currency:"EUR",value:r.data.price+o.data.price},context:{shopping:["checkout",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...r,context:{shopping:["checkout",0]},nested:[]},{entity:"product",...o,context:{shopping:["checkout",0]},nested:[]}],trigger:"load"},"order complete":{data:{id:"0rd3r1d",currency:"EUR",shipping:5.22,taxes:73.76,total:555},context:{shopping:["complete",0]},globals:{pagegroup:"shop"},nested:[{entity:"product",...r,context:{shopping:["complete",0]},nested:[]},{entity:"product",...o,context:{shopping:["complete",0]},nested:[]},{entity:"gift",data:{name:"Surprise"},context:{shopping:["complete",0]},nested:[]}],trigger:"load"},"page view":{data:{domain:"www.example.com",title:"walkerOS documentation",referrer:"https://www.walkeros.io/",search:"?foo=bar",hash:"#hash",id:"/docs/"},globals:{pagegroup:"docs"},trigger:"load"},"product add":{...r,context:{shopping:["intent",0]},globals:{pagegroup:"shop"},nested:[],trigger:"click"},"product view":{...r,context:{shopping:["detail",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"product visible":{data:{...r.data,position:3,promo:!0},context:{shopping:["discover",0]},globals:{pagegroup:"shop"},nested:[],trigger:"load"},"promotion visible":{data:{name:"Setting up tracking easily",position:"hero"},context:{ab_test:["engagement",0]},globals:{pagegroup:"homepage"},trigger:"visible"},"session start":{data:{id:"s3ss10n",start:n,isNew:!0,count:1,runs:1,isStart:!0,storage:!0,referrer:"",device:"c00k13"},user:{id:"us3r",device:"c00k13",session:"s3ss10n",hash:"h4sh",address:"street number",email:"user@example.com",phone:"+49 123 456 789",userAgent:"Mozilla...",browser:"Chrome",browserVersion:"90",deviceType:"desktop",language:"de-DE",country:"DE",region:"HH",city:"Hamburg",zip:"20354",timezone:"Berlin",os:"walkerOS",osVersion:"1.0",screenSize:"1337x420",ip:"127.0.0.0",internal:!0,custom:"value"}}}[e],...t,name:e})}function De(){return Pe(32)}var Ue=[{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 Ve(e,t={},n=[]){const r={};Object.entries(ue({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(Ue.map(e=>e.param));return[...Ue.map(e=>t.has(e.param)?{param:e.param,platform:t.get(e.param)}:e),...e.filter(e=>!n.has(e.param))]}(n):Ue,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 Be(e,t){return"number"==typeof e?{wait:e}:e?{wait:e.wait??t,size:e.size,age:e.age}:{wait:t}}function Le(e,t=1e3,n=!1){const{wait:r,size:o,age:i}=Be(t,1e3);let a,s,c=null,u=null,f=!1,l=[],p=0;const d=()=>{c&&(clearTimeout(c),c=null),u&&(clearTimeout(u),u=null),p=0,s=void 0},m=()=>{const t=s,n=l;if(d(),l=[],t)return a=e(...t),n.forEach(e=>e(a)),a;n.forEach(e=>e(void 0))},g=(...t)=>new Promise(d=>{const g=n&&!f;if(s=t,p+=1,l.push(d),c&&clearTimeout(c),c=setTimeout(()=>{c=null,n&&!f||m()},r),void 0===i||u||(u=setTimeout(()=>{u=null,m()},i)),void 0!==o&&p>=o)m();else if(g){f=!0,a=e(...t);const n=l;l=[],n.forEach(e=>e(a))}});return g.flush=()=>s||0!==l.length?new Promise(e=>{l.push(e),m()}):Promise.resolve(a),g.cancel=()=>{const e=l;l=[],d(),a=void 0,e.forEach(e=>e(void 0))},g.size=()=>p,g}function Ze(e,t=1e3){const{wait:n}=Be(t,1e3);let r=null;return function(...t){if(null===r)return r=setTimeout(()=>{r=null},n),e(...t)}}function We(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function He(e,t){let n,r={};return e instanceof Error?(n=e.message,r.error=We(e)):n=e,void 0!==t&&(t instanceof Error?r.error=We(t):"object"==typeof t&&null!==t?(r={...r,...t},"error"in r&&r.error instanceof Error&&(r.error=We(r.error))):r.value=t),{message:n,context:r}}var Ke=(e,t,n,r)=>{const o=`${y[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 qe(e={}){return Je({level:void 0!==e.level?function(e){return"string"==typeof e?y[e]:e}(e.level):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]})}function Je(e){const{level:t,handler:n,jsonHandler:r,scope:o}=e,i=(e,r,i)=>{if(e<=t){const t=He(r,i);n?n(e,t.message,t.context,o,Ke):Ke(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=He(e,t);throw n?n(0,r.message,r.context,o,Ke):Ke(0,r.message,r.context,o),new Error(r.message)},json:e=>{r?r(e):console.log(JSON.stringify(e,null,2))},scope:e=>Je({level:t,handler:n,jsonHandler:r,scope:[...o,e]})}}function Ge(e){return pe(e)||we(e)||he(e)||!me(e)||le(e)&&e.every(Ge)||ve(e)&&Object.values(e).every(Ge)}function Xe(e){return pe(e)||we(e)||he(e)?e:fe(e)?Xe(Array.from(e)):le(e)?e.map(e=>Xe(e)).filter(e=>void 0!==e):ve(e)?Object.entries(e).reduce((e,[t,n])=>{const r=Xe(n);return void 0!==r&&(e[t]=r),e},{}):void 0}function Ye(e){return Ge(e)?e:void 0}function Qe(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{n?.()}}}function et(e,t,n){return async function(...r){try{return await e(...r)}catch(e){if(!t)return;return await t(e)}finally{await(n?.())}}}var tt=class e extends Error{constructor(t,n){super(t,n),this.name="FatalError",Object.setPrototypeOf(this,e.prototype)}};async function nt(e,t,n){const[r,o]=(e.name||"").split(" ");if(!t||!r||!o)return{};let i,a="",s=r,c=o;const u=t=>{if(!t)return;return(le(t)?t:[t]).find(t=>{if(!t.condition)return!0;if(!n)return Boolean(t.condition(e,void 0));const r={event:e,mapping:t,collector:n,logger:n.logger,consent:ve(e)&&e.consent||n.consent};return Boolean(t.condition(e,r))})};t[s]||(s="*");const f=t[s];return f&&(f[c]||(c="*"),i=u(f[c])),i||(s="*",c="*",i=u(t[s]?.[c])),i&&(a=`${s} ${c}`),{eventMapping:i,mappingKey:a}}async function rt(e,t={},n={}){if(!me(e))return;const r=ve(e)&&e.consent||n.consent||n.collector?.consent,o=n.event??(ve(e)?e:{});if(!n.collector)throw new Error("getMappingValue: context.collector is required");const i={event:o,mapping:t,collector:n.collector,logger:n.collector.logger,consent:r},a=le(t)?t:[t];for(const t of a){const r=await et(ot,e=>{if(e instanceof tt)throw e;n.collector&&n.collector.status.failed++,i.logger.error("mapping processing failed",{event:o,error:e})})(e,t,{...i,mapping:t});if(me(r))return r}}async function ot(e,t,n){return(le(t)?t:[t]).reduce(async(t,r)=>{const o=await t;if(o)return o;const i=we(r)?{key:r}:r;if(!Object.keys(i).length)return;const{condition:a,consent:s,fn:c,key:u,loop:f,map:l,set:p,validate:d,value:m}=i,g={...n,mapping:r};if(a&&!await et(a,e=>{if(e instanceof tt)throw e;return g.logger.error("mapping condition failed",{event:g.event,error:e}),!1})(e,g))return;if(s&&!Ee(s,g.consent))return m;let y=me(m)?m:e;if(c&&(y=await et(c,e=>{if(e instanceof tt)throw e;g.logger.error("mapping fn failed",{event:g.event,error:e})})(e,g)),u&&(y=$e(e,u,m)),f){const[t,n]=f,r="this"===t?[e]:await rt(e,t,g);le(r)&&(y=(await Promise.all(r.map(e=>rt(e,n,g)))).filter(me))}else l?y=await Object.entries(l).reduce(async(t,[n,r])=>{const o=await t,i=await rt(e,r,g);return me(i)&&(o[n]=i),o},Promise.resolve({})):p&&(y=await Promise.all(p.map(t=>ot(e,t,g))));d&&!await et(d,e=>{if(e instanceof tt)throw e;return g.logger.error("mapping validate failed",{event:g.event,error:e}),!1})(y,g)&&(y=void 0);const h=Ye(y);return me(h)?h:Ye(m)},Promise.resolve(void 0))}async function it(e,t,n){t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,r])=>{const o=await rt(e,r,{collector:n,event:e});e=je(e,t,o)}));const{eventMapping:r,mappingKey:o}=await nt(e,t.mapping,n);r?.policy&&await Promise.all(Object.entries(r.policy).map(async([t,r])=>{const o=await rt(e,r,{collector:n,event:e});e=je(e,t,o)}));let i=t.data&&await rt(e,t.data,{collector:n,event:e});const a=Boolean(r?.silent);if(r){if(r.ignore)return{event:e,data:i,mapping:r,mappingKey:o,ignore:!0,silent:a};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await rt(e,r.data,{collector:n,event:e});i=ve(i)&&ve(t)?ue(i,t):t}}const s=r?.include??t.include;if(s&&s.length>0){const t=Oe(e,s);Object.keys(t).length>0&&(i=ve(i)?ue(t,i):i??t)}if(r?.remove&&ve(i))for(const e of r.remove)i=Se(i,e);return{event:e,data:i,mapping:r,mappingKey:o,ignore:!1,silent:a}}function at(e,t){for(const n of Object.keys(t)){const r=t[n];if(void 0===r)continue;if(null===r){delete e[n];continue}const o=e[n];ve(r)&&ve(o)?at(o,r):e[n]=r}return e}function st(e,t){if(void 0===t.extend&&void 0===t.remove)return ke(t);const n={...ke(e)};if(t.extend){at(n,{...t.extend})}return delete n.extend,t.remove?n.remove=[...t.remove]:delete n.remove,n}function ct(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 ut(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 ft(){const e=[],t=jest.fn(e=>{const t=e instanceof Error?e.message:e;throw new Error(t)}),n=jest.fn(t=>{const n=ft();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 lt(e={}){return{collector:{},config:{},env:{},logger:ft(),id:"test",ingest:I("test"),...e}}function pt(e){const t=String(e),n=t.split("?")[1]||t;return Qe(()=>{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(le(o)){const a=parseInt(t,10);i?o[a]=xe(e):(o[a]=o[a]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[a])}else ve(o)&&(i?o[t]=xe(e):(o[t]=o[t]||(isNaN(parseInt(r[n+1],10))?{}:[]),o=o[t]))})}),t})()}function dt(e){if(!e)return"";const t=[],n=encodeURIComponent;function r(e,o){null!=o&&(le(o)?o.forEach((t,n)=>r(`${e}[${n}]`,t)):ve(o)?Object.entries(o).forEach(([t,n])=>r(`${e}[${t}]`,n)):t.push(`${n(e)}=${n(String(o))}`))}return"object"!=typeof e?n(e):(Object.entries(e).forEach(([e,t])=>r(e,t)),t.join("&"))}function mt(e){return void 0===e||be(e,"")?e:JSON.stringify(e)}function gt(e={}){return ue({"Content-Type":"application/json; charset=utf-8"},e)}function yt(e,t){return!1===e||void 0===e?null:!0===e?t:{...t,...e}}function ht(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function vt(e,t,n,r){const o=e;return function(...e){let i;const a="pre"+t,s="post"+t,c=n[a],u=n[s],f=(e,t)=>{r?r.warn(e,{error:t}):console.warn(e,t)};if(c)try{i=c({fn:o},...e)}catch(t){f(`Hook ${String(a)} failed, falling back to original function`,t),i=o(...e)}else i=o(...e);if(u)try{i=u({fn:o,result:i},...e)}catch(e){f(`Hook ${String(s)} failed, keeping original result`,e)}return i}}function bt(e,t){if(t>=1)return!0;if(t<=0)return!1;return function(e){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=t+((t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24))>>>0;return t>>>0}(e)/4294967295<t}function wt(e,t){const n="function"==typeof t?t:()=>t;return function(t){const r=n();if(!r)return;const o=r.level??"standard";if("off"===o)return;const i=r.sample,a="number"==typeof i&&Number.isFinite(i)?i:1;if(t.eventId&&!bt(t.eventId,a))return;const s=r.includeIn??"trace"===o,c=r.includeOut??"trace"===o,u=r.includeMappingKey??"trace"===o,f={...t};s||delete f.inEvent,c||delete f.outEvent,u||delete f.mappingKey,"trace"!==o&&f.error?.message&&f.error.message.length>256&&(f.error={...f.error,message:f.error.message.slice(0,256)+"…"});try{e(f)}catch{}}}function kt(e,t){return bt(e,t)}function $t(e){const t=e.now??(()=>Date.now()),{traceUntil:n}=e;if("string"==typeof n&&n.length>0){const r=Date.parse(n);if(!Number.isNaN(r)&&r>t())return{flowId:e.flowId,level:"trace",includeIn:!0,includeOut:!0,sample:1}}const r=e.observe?.level??"standard";if("off"===r)return null;const o=e.observe?.sample??1;return{flowId:e.flowId,level:r,sample:o}}var jt=null;function St(){return jt}function At(e){jt=e}function Ot(e,t){if(0===e.observers.size)return;const n=Array.from(e.observers);for(const e of n)try{e(t)}catch{}}function xt(e){const t=e.batchMs,n="number"==typeof t&&Number.isFinite(t)&&t>0?Math.floor(t):50,r=e.batchSize,o="number"==typeof r&&Number.isFinite(r)&&r>=1?Math.floor(r):50,i=e.fetch??((e,t)=>globalThis.fetch(e,t)),a=e.onError??(()=>{});let s=[],c=null;function u(){if(0===s.length)return;const t=s;s=[],c&&(clearTimeout(c),c=null),Promise.resolve().then(()=>i(e.url,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${e.token}`},body:JSON.stringify(t)})).then(e=>{e&&"object"==typeof e&&"ok"in e&&!e.ok&&a(new Error(`Observer responded ${e.status}`))}).catch(e=>{a(e)})}return e=>{s.push(e),s.length>=o?u():null===c&&(c=setTimeout(u,n))}}function Et(e){return e?{userAgent:e,browser:_t(e),browserVersion:Ct(e),os:Nt(e),osVersion:Tt(e),deviceType:Rt(e)}:{}}function _t(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 Ct(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 Nt(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 Tt(e){const t=e.match(/(?:Windows NT|Mac OS X|Android|iPhone OS) ([0-9._]+)/);return t?t[1].replace(/_/g,"."):void 0}function Rt(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 It(e){return function(e){return/\breturn\b/.test(e)}(e)?e:`return ${e}`}function Pt(e){const t=It(e);return new Function("value","context",t)}function Mt(e){const t=It(e);return new Function("value","context",t)}function Ft(e){const t=It(e);return new Function("value","context",t)}var zt="https://cdn.jsdelivr.net/npm",Dt="dist/walkerOS.json";function Ut(e){return"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?e:void 0}async function Vt(e,t){const n=t?.version||"latest",r=t?.timeout||1e4,o=new AbortController,i=setTimeout(()=>o.abort(),r),a=o.signal,s=t?.client?{"X-Walkeros-Client":t.client}:void 0;try{if(t?.baseUrl){const r=`${t.baseUrl}/api/packages/${encodeURIComponent(e)}?version=${encodeURIComponent(n)}&expand=all`,o=await fetch(r,{signal:a,...s&&{headers:s}});if(!o.ok)throw new Error(`Failed to fetch ${r} (HTTP ${o.status})`);return function(e,t,n){const r=n.schemas||{},o=n.examples||{},i=n.hints,a=n.hintKeys??(i?Object.keys(i):[]),s=n.exampleSummaries??[],c=n.platform;return{packageName:n.package||e,version:"string"==typeof n.version?n.version:t,...void 0!==n.description&&{description:n.description},...void 0!==n.type&&{type:n.type},...void 0!==c&&{platform:c},schemas:r,examples:o,...void 0!==n.docs&&{docs:n.docs},...void 0!==n.source&&{source:n.source},...i&&Object.keys(i).length>0?{hints:i}:{},hintKeys:a,exampleSummaries:s}}(e,n,await o.json())}const r=`${zt}/${e}@${n}`,o=await Bt(`${r}/package.json`,a,s);return function(e,t,n,r){const o=r.$meta||{},i=r.schemas||{},a=r.examples||{},s=r.hints,c=s?Object.keys(s):[],u=[],f=a.step||{};for(const[e,t]of Object.entries(f)){const n=t,r={name:e};"string"==typeof n?.description&&(r.description=n.description),u.push(r)}const l="string"==typeof o.docs?o.docs:void 0,p="string"==typeof o.source?o.source:void 0;return{packageName:e,version:"string"==typeof n.version?n.version:t,description:"string"==typeof n.description?n.description:void 0,type:"string"==typeof o.type?o.type:void 0,platform:Ut(o.platform),schemas:i,examples:a,...l?{docs:l}:{},...p?{source:p}:{},...s&&Object.keys(s).length>0?{hints:s}:{},hintKeys:c,exampleSummaries:u}}(e,n,o,await Bt(`${r}/${Dt}`,a,s))}finally{clearTimeout(i)}}async function Bt(e,t,n){const r=await fetch(e,{signal:t,...n&&{headers:n}});if(!r.ok)throw new Error(`Failed to fetch ${e} (HTTP ${r.status})`);return await r.json()}async function Lt(e,t){const n=await Vt(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 Zt(e,t){const n=t?{...e,_hints:t}:e;return{content:[{type:"text",text:JSON.stringify(n,null,2)}],structuredContent:n}}function Wt(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 Ht(e){let t=!1;return(n={})=>{t||(t=!0,e(n))}}function Kt(e){if(void 0===e||"*"===e)return()=>!0;if("and"in e){const t=e.and.map(Kt);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(Kt);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=$e(e,t),r=i(n);return o?!r:r}}(e)}function qt(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&("match"in e||"next"in e||"one"in e||"many"in e)}function Jt(e){return Array.isArray(e)&&e.length>0&&e.every(e=>qt(e))}function Gt(e){return e.map(e=>{if("string"==typeof e)return{match:()=>!0,next:{type:"static",value:e}};if(Array.isArray(e))return{match:()=>!0,next:Xt(e)??{type:"chain",value:[]}};const t=e;return{match:t.match?Kt(t.match):()=>!0,next:Xt(t)??{type:"chain",value:[]}}})}function Xt(e){if(null==e)return;if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(Jt(e))return Xt({one:e});if(e.every(e=>"string"==typeof e))return{type:"chain",value:e};const t=[];for(const n of e){const e=Xt(n);void 0!==e&&t.push(e)}if(0===t.length)return;return{type:"sequence",value:t}}const t=e;if("next"in t&&void 0!==t.next)return t.match?{type:"gate",match:Kt(t.match),next:Xt(t.next)}:Xt(t.next);if("one"in t&&t.one){const e=Gt(t.one);return t.match?{type:"gate",match:Kt(t.match),next:{type:"one",routes:e}}:{type:"one",routes:e}}if("many"in t&&t.many){const e=Gt(t.many);return t.match?{type:"gate",match:Kt(t.match),next:{type:"many",routes:e}}:{type:"many",routes:e}}return t.match?{type:"gate",match:Kt(t.match)}:void 0}var Yt=new WeakMap;function Qt(e,t={}){if(null==e)return[];let n;if("object"==typeof e){const t=Yt.get(e);t?n=t:(n=Xt(e),n&&Yt.set(e,n))}else n=Xt(e);if(!n)return[];const r=en(n,t);return void 0===r?[]:Array.isArray(r)?r:[r]}function en(e,t={}){if(e){if("static"===e.type)return e.value;if("chain"===e.type)return e.value;if("gate"===e.type){if(!e.match(t))return;return en(e.next,t)}if("sequence"===e.type){const n=[];for(const r of e.value){const e=en(r,t);void 0!==e&&(Array.isArray(e)?n.push(...e):n.push(e))}return n.length>0?n:void 0}if("many"===e.type){const n=[];for(const r of e.routes){if(!r.match(t))continue;const e=en(r.next,t);void 0!==e&&(Array.isArray(e)?n.push(...e):n.push(e))}return n.length>0?n:void 0}for(const n of e.routes)if(n.match(t))return en(n.next,t)}}var tn="__walkeros_cache_v__",nn="__walkeros_cache_exp__";function rn(e,t,n=Date.now){const r={[tn]:e};return void 0!==t&&(r[nn]=n()+t),r}function on(e,t=Date.now){if(void 0===e)return;if(null===(n=e)||"object"!=typeof n||Array.isArray(n)||!(tn in e))return{value:e};var n;const r=e[nn];return"number"==typeof r&&t()>r?{expired:!0}:{value:e[tn]}}var an="__walkeros_cache__",sn=class extends Error{constructor(e,t){super(e,t),this.name="StoreCodecError"}};function cn(e){return null!==e&&"object"==typeof e&&!Array.isArray(e)}function un(e){if(Buffer.isBuffer(e))return{[an]:"buffer",d:e.toString("base64")};if(e instanceof Uint8Array)return{[an]:"buffer",d:Buffer.from(e.buffer,e.byteOffset,e.byteLength).toString("base64")};if(e instanceof ArrayBuffer)return{[an]:"buffer",d:Buffer.from(e).toString("base64")};if(Array.isArray(e))return e.map(un);if(cn(e)){if(an in e){const t={};for(const[n,r]of Object.entries(e))t[n]=un(r);return{[an]:"escape",d:t}}const t={};for(const[n,r]of Object.entries(e))t[n]=un(r);return t}return e}function fn(e,t){if(cn(e)){if(an in e){const n=e[an],r=e.d;if("buffer"===n&&"string"==typeof r)return t(Buffer.from(r,"base64"));if("escape"===n&&cn(r)){const e={};for(const[n,o]of Object.entries(r))e[n]=fn(o,t);return e}}const n={};for(const[r,o]of Object.entries(e))n[r]=fn(o,t);return n}return Array.isArray(e)?e.map(e=>fn(e,t)):e}function ln(e){return new Uint8Array(e.buffer,e.byteOffset,e.byteLength)}function pn(e){return null===e||"string"==typeof e||"number"==typeof e||"boolean"==typeof e||e instanceof Uint8Array||(Array.isArray(e)?e.every(e=>void 0===e||pn(e)):!!cn(e)&&Object.values(e).every(e=>void 0===e||pn(e)))}function dn(e){let t;try{t=JSON.stringify(un(e))}catch(e){throw new sn("Failed to serialize store value (likely a cyclic structure).",{cause:e})}return new Uint8Array(Buffer.from(t,"utf8"))}function mn(e){const t="string"==typeof e?e:Buffer.from(e).toString("utf8"),n=fn(JSON.parse(t),ln);if(!pn(n))throw new sn("Restored value is not a valid StoreValue.");return n}function gn(e,t){const n={ingest:e??{}};return void 0!==t&&(n.event=t),n}function yn(e){return{stop:e.stop??!1,storeId:e.store,namespace:e.namespace,rules:e.rules.map(e=>({match:e.match?Kt(e.match):()=>!0,key:e.key,ttl:e.ttl,update:e.update}))}}async function hn(e,t,n,r){const o=e.rules.find(e=>e.match(n));if(!o)return null;const i=o.key.map(e=>String($e(n,e)??""));if(i.every(e=>""===e))return null;const a=i.join(":"),s=r??e.namespace,c=s?`${s}:${a}`:a,u=on(await t.get(c));if(void 0===u)return{status:"MISS",key:c,rule:o};if("expired"in u){try{await t.delete(c)}catch{}return{status:"MISS",key:c,rule:o}}return{status:"HIT",key:c,value:u.value,rule:o}}function vn(e,t,n,r){if(!pn(n))return;const o=1e3*r,i=e.set(t,rn(n,o),o);i instanceof Promise&&i.catch(()=>{})}async function bn(e,t,n,r){if(!t)return e;let o=e;for(const[e,i]of Object.entries(t)){o=je(o,e,await rt(n,i,{collector:r}))}return o}function wn(e){return le(e)?e:[e]}async function kn(e,t,n,r){let o=n;for(const n of e)await et(async()=>{const e=t(n.store);if(!e)return;const i=await rt(o,n.key,{collector:r,event:o});if(!we(i))return;const a=n.store?i:`state:${i}`;if("set"===n.mode){const t=await rt(o,n.value,{collector:r,event:o});if(!me(t))return;await e.set(a,t)}else{const t=we(s=n.value)?s:ve(s)&&we(s.key)?s.key:void 0;if(!t)return;const r=await e.get(a);if(!me(r))return;o=je(o,t,r)}var s},e=>{if(e instanceof tt)throw e;r.logger?.error?.("[state] operation failed",e)})();return o}var $n={Source:["code","package","import","before","next","cache","state"],Transformer:["code","package","import","before","next","cache","state","mapping"],Destination:["code","package","import","before","next","cache","state"],Store:["code","package","import","cache"]},jn=["config","env","variables","examples","disabled","id","logger","mock","chainMocks"],Sn={Source:["primary"],Transformer:[],Destination:[],Store:[]},An=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function On(e,t){const n=function(e){return new Set([...$n[e],...jn,...Sn[e]])}(t);for(const r of Object.keys(e))if(!n.has(r))return{ok:!1,code:"UNKNOWN_KEY",key:r,reason:`Unknown key "${r}" on ${t}. Allowed: ${[...n].sort().join(", ")}.`};const r=void 0!==e.package,o=void 0!==e.import,i=void 0!==e.code;return i&&"string"==typeof e.code?{ok:!1,code:"OBSOLETE_CODE_STRING",key:"code",reason:`code: "<name>" is no longer supported. Use import: "${e.code}" with the package field instead.`}:i&&("object"!=typeof e.code&&"function"!=typeof e.code||null===e.code||Array.isArray(e.code))?{ok:!1,code:"INVALID_CODE_SHAPE",key:"code",reason:"code must be an object ({ push, type?, init? }) or a resolved function value."}:i&&r?{ok:!1,code:"CONFLICT",key:"package",reason:"Cannot specify both `code` and `package`. Use one or the other."}:i&&o?{ok:!1,code:"CONFLICT",key:"import",reason:"Cannot specify both `code` and `import`."}:o&&!r?{ok:!1,code:"MISSING_PACKAGE",key:"import",reason:"`import` requires `package` to be set."}:!o||"string"==typeof e.import&&An.test(e.import)?{ok:!0}:{ok:!1,code:"INVALID_IMPORT",key:"import",reason:`import must match ${An.source}. Got: ${JSON.stringify(e.import)}.`}}function xn(e,t){return"Transformer"===t&&(void 0===e.code&&void 0===e.package&&void 0===e.import&&(void 0!==e.before||void 0!==e.next||void 0!==e.cache||void 0!==e.state||void 0!==e.mapping))}function En(e){return 0===e.length?"// no output":e.map(_n).join(";\n\n")}function _n(e){const[t,...n]=e,r=n.map(Cn).join(", ");return"return"===t?r?`return ${r}`:"return":`${t}(${r})`}function Cn(e){return void 0===e?"undefined":null===e?"null":"function"==typeof e?"[Function]":JSON.stringify(e,null,2)}//# sourceMappingURL=index.js.map