@walkeros/collector 4.7.2 → 4.8.0-next-1791496487198
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @walkeros/collector
|
|
2
2
|
|
|
3
|
+
## 4.8.0-next-1791496487198
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [7132619]
|
|
8
|
+
- Updated dependencies [5593d7b]
|
|
9
|
+
- Updated dependencies [421233d]
|
|
10
|
+
- @walkeros/core@4.8.0-next-1791496487198
|
|
11
|
+
|
|
3
12
|
## 4.7.2
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,s={};((e,n)=>{for(var o in n)t(e,o,{get:n[o],enumerable:!0})})(s,{Code:()=>i,Commands:()=>a,Const:()=>c,DEFAULT_BREAKER_COOLDOWN_MS:()=>W,DEFAULT_BREAKER_THRESHOLD:()=>K,DEFAULT_DLQ_MAX:()=>z,addDestination:()=>Ot,buildReportError:()=>N,bumpDropped:()=>G,callDestinationOn:()=>We,commonHandleCommand:()=>Ht,completeEvent:()=>Gt,createEvent:()=>Ut,createPush:()=>on,createPushResult:()=>Rt,destinationInit:()=>Dt,destinationPush:()=>Mt,enrichEvent:()=>Nt,ensureDestStatus:()=>U,enterCascade:()=>Pe,errorMeta:()=>Q,fireCallbacks:()=>ot,flushSourceQueueOn:()=>ve,getCacheStore:()=>w,initDestinations:()=>$t,initSource:()=>we,initSources:()=>be,isBreakerProbePermitted:()=>H,isRequireSatisfied:()=>Ae,isSourceStarted:()=>ye,isStateDelivery:()=>Ie,isStatePresent:()=>je,mergeEnvironments:()=>Tt,on:()=>Ke,onApply:()=>gt,prepareEvent:()=>zt,processConsent:()=>d,pushToDestinations:()=>It,redeliverStateAtRun:()=>ft,registerDestination:()=>Pt,resolveBreakerConfig:()=>F,runCollector:()=>Yt,runCollectorNext:()=>Zt,runTransformerBefore:()=>le,runTransformerChain:()=>de,setMark:()=>De,shouldDeliver:()=>Me,startFlow:()=>bn,transformerInit:()=>Z,transformerPush:()=>ee,wrapEnv:()=>q}),module.exports=(e=s,((e,s,i,a)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let c of o(s))r.call(e,c)||c===i||t(e,c,{get:()=>s[c],enumerable:!(a=n(s,c))||a.enumerable});return e})(t({},"__esModule",{value:!0}),e));var i={},a={Action:"action",Actions:"actions",Config:"config",Consent:"consent",Context:"context",Custom:"custom",Destination:"destination",Elb:"elb",Globals:"globals",Hook:"hook",Init:"init",Link:"link",On:"on",Prefix:"data-elb",Ready:"ready",Run:"run",Scoped:"_",Session:"session",Shutdown:"shutdown",User:"user",Walker:"walker"},c={Commands:a,Utils:{Storage:{Cookie:"cookie",Local:"local",Session:"session"}}},u=require("@walkeros/core");function d(e,t){const n={};return Object.entries(t).forEach(([e,t])=>{n[e]=!!t}),e.consent=(0,u.assign)(e.consent,n),{update:n}}var l=require("@walkeros/core"),f=require("@walkeros/core"),p=require("@walkeros/core");function g(e,t,n){return{traceId:e.source?.trace??t?._meta.trace??n.trace,sourceId:t?._meta.path[0],parentEventId:t?._meta.parentEventId}}function h(e,t,n,o,r,s=Date.now(),i){const a={flowId:e.name??"default",stepId:t,stepType:n,phase:o,eventId:r,timestamp:new Date(s).toISOString(),elapsedMs:s-e.status.startedAt};return i?.traceId&&(a.traceId=i.traceId),i?.sourceId&&(a.sourceId=i.sourceId),i?.parentEventId&&(a.parentEventId=i.parentEventId),a}function m(e){return e instanceof Error?{name:e.name,message:e.message}:{message:String(e)}}function v(e,t,n,o){e.status.in++;const r=h(e,"collector.push","collector","skip","string"==typeof t.id?t.id:"",Date.now(),g(t,n,e));r.skipReason=o.reason,"consent"===o.reason?(r.consent={...o.consent},r.meta={at:o.at,required:{...o.required}}):r.meta={by:o.by??"route",at:o.at},(0,p.emitStep)(e,r)}var y=require("@walkeros/core");function w(e,t){return e.storeId&&t.stores[e.storeId]?t.stores[e.storeId]:t.stores.__cache}function b(e){return("undefined"==typeof __WALKEROS_STATE__||__WALKEROS_STATE__)&&e?(0,y.compileState)(e):void 0}function k(e,t,n,o){return"undefined"==typeof __WALKEROS_STATE__||__WALKEROS_STATE__?(0,y.applyState)(t,t=>function(e,t){return e?t.stores[e]:t.stores.__cache}(t,e),n,e,o):Promise.resolve(n)}function S(e,t,n){"undefined"==typeof __WALKEROS_STATE__||__WALKEROS_STATE__||void 0===n||e.logger.warn(`state: not in this build, ${t} state ignored`)}var E=require("@walkeros/core"),O=8;function _(e,t,n){if(null===e||"object"!=typeof e)return e;if(n>=O||!function(e){if(Array.isArray(e))return!0;const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(e))return e;const o=t.get(e);if(void 0!==o)return o;if(Array.isArray(e)){const o=[];t.set(e,o);for(const r of e)o.push(_(r,t,n+1));return o}const r={};t.set(e,r);for(const[o,s]of Object.entries(e))r[o]="function"==typeof s?s:_(s,t,n+1);return r}function q(e){const{simulation:t,...n}=e,o={},r=new WeakMap;for(const[e,t]of Object.entries(n))o[e]="function"==typeof t?t:_(t,r,1);const s=(0,E.observeEnv)(o,t);return{wrappedEnv:s.env,calls:s.calls,unresolved:s.unresolved}}var C=6;function I(e,t){try{return e[t]}catch{return"[unreadable]"}}function j(e){const t=new WeakSet,n=(e,o)=>{if(null===e)return null;if("function"==typeof e)return"[function]";if("string"==typeof e||"boolean"==typeof e)return e;if("number"==typeof e)return Number.isFinite(e)?e:null;if("bigint"==typeof e)return String(e);if("object"!=typeof e)return;const r=e;if(t.has(r))return"[circular]";if(o>=C)return"[truncated]";let s;t.add(r);try{if(Array.isArray(r))s=r.map(e=>n(e,o+1));else if(function(e){const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(r)){const e={};for(const t of Object.keys(r))e[t]=n(I(r,t),o+1);s=e}else s=function(e){try{return String(e)}catch{return"[object]"}}(r)}catch{s="[unreadable]"}return t.delete(r),s};return e.map(e=>n(e,0))}function A(e,t){("undefined"==typeof __WALKEROS_OBSERVE__||__WALKEROS_OBSERVE__)&&t&&t.length>0&&(e.calls=function(e){return e.map(e=>({fn:e.fn,args:j(e.args),ts:e.ts}))}(t))}var x=require("@walkeros/core"),D=require("@walkeros/core"),M=require("@walkeros/core");function R(e){if(void 0===e)throw new Error("Collector.Config.queueMax is undefined; defaults must be seeded by collector()");return e}function P(e,t,n,o){if(!Number.isFinite(n.max)||n.max<=0)throw new Error(`pushBounded: max must be > 0 (got ${n.max})`);if("dropNewest"===(n.onOverflow??"dropOldest"))return e.length>=n.max?(o&&o([t]),{appended:!1,dropped:1}):(e.push(t),{appended:!0,dropped:0});const r=[];for(;e.length>=n.max;)r.push(e.shift());return e.push(t),r.length>0&&o&&o(r),{appended:!0,dropped:r.length}}var $=new WeakMap;function T(e,t,n,o){$.get(e)||($.set(e,!0),t.warn(n,o))}function B(e){$.delete(e)}var K=5,W=3e4,L=()=>Date.now();function F(e){if(void 0!==e)return"number"==typeof e?{threshold:e,cooldown:W}:{threshold:e.threshold??K,cooldown:e.cooldown??W}}function V(e,t,n,o,r){if("partial"===n)return;const s=function(e,t){return e[t]||(e[t]={state:"closed",consecutiveFailures:0}),e[t]}(e,t);return"success"===n?(s.consecutiveFailures=0,s.state="closed",s.probing=!1,void(s.openUntil=void 0)):(s.consecutiveFailures+=1,"half-open"===s.state?(s.state="open",s.probing=!1,void(s.openUntil=L()+r)):void(s.consecutiveFailures>=o&&(s.state="open",s.probing=!1,s.openUntil=L()+r)))}function H(e,t){return!e||("closed"===e.state||"half-open"===e.state||void 0!==e.openUntil&&t>=e.openUntil)}var z=100;function U(e,t){return e.status.destinations[t]||(e.status.destinations[t]={count:0,failed:0,duration:0,queuePushSize:0,dlqSize:0}),e.status.destinations[t]}function G(e,t,n,o){e.dropped[t]||(e.dropped[t]={});const r=e.dropped[t];return r[n]=(r[n]??0)+o,r[n]}function Q(e){const t={error:e instanceof Error?e.message:String(e)};if(e instanceof Error&&e.name&&"Error"!==e.name&&(t.name=e.name),"object"==typeof e&&null!==e&&"code"in e){const n=e;"number"!=typeof n.code&&"string"!=typeof n.code||(t.code=n.code)}return t}function N(e,t,n,o,r){const s=(0,M.stepId)(t,n);return(t,i)=>{try{if(i)return r?function(e,t,n,o,r,s){const i=t.dlq=t.dlq||[],a={max:t.config.dlqMax??z},c=P(i,[o,r],a);if(c.dropped>0){const t=G(e.status,(0,M.stepId)("destination",n),"dlq",c.dropped);T(i,s,"destination.dlq overflow; oldest entries dropped",{buffer:"dlq",destination:n,cap:a.max,droppedCount:t})}else i.length<a.max&&B(i);const u=U(e,n);u.failed++,u.dlqSize=i.length,e.status.failed++;const d=F(t.config.breaker);if(d){const o=t.config.id||n;V(e.status.breakers,(0,M.stepId)("destination",o),"transport-failure",d.threshold,d.cooldown)}}(e,r,n,i,t,o):e.status.failed++,void o.error("report error",{...Q(t),event:i.name});e.status.connectionErrors[s]=(e.status.connectionErrors[s]??0)+1,o.error("connection error",Q(t))}catch{}}}var Y=require("@walkeros/core"),X=require("@walkeros/core");function J(e,t){const n=e.config||{},o=e[t];return void 0!==o?{config:{...n,[t]:o},chainValue:o}:{config:n,chainValue:void 0}}async function Z(e,t,n){if(t.init&&!t.config.init){const o=t.type||"unknown",r=e.logger.scope(`transformer:${o}`),s={collector:e,logger:r,id:n,ingest:(0,X.createIngest)(n),config:t.config,env:fe(t.config.env),reportError:N(e,"transformer",n,r)};r.debug("init");const i=await(0,X.useHooks)(t.init,"TransformerInit",e.hooks,e.logger)(s);if(!1===i)return!1;t.config={...i||t.config,env:i?.env||t.config.env,init:!0},r.debug("init done")}return!0}async function ee(e,t,n,o,r,s){const i=t.type||"unknown",a=e.logger.scope(`transformer:${i}`),c={collector:e,logger:a,id:n,ingest:r,config:t.config,env:{...fe(t.config.env),...s?{respond:s}:{}},reportError:N(e,"transformer",n,a)};a.debug("push",{event:o.name});const u="string"==typeof o.id?o.id:"",d=g(o,r,e),l=Date.now(),f=h(e,(0,X.stepId)("transformer",n),"transformer","in",u,l,d);f.inEvent=o,(0,X.emitStep)(e,f);try{const r=await(0,X.useHooks)(t.push,"TransformerPush",e.hooks,e.logger)(o,c),s=Date.now(),i=h(e,(0,X.stepId)("transformer",n),"transformer","out",u,s,d);return i.durationMs=s-l,i.outEvent=r,(0,X.emitStep)(e,i),a.debug("push done"),r}catch(t){const o=Date.now(),r=h(e,(0,X.stepId)("transformer",n),"transformer","error",u,o,d);throw r.durationMs=o-l,r.error=m(t),(0,X.emitStep)(e,r),t}}var te=256;function ne(e){return"string"==typeof e.id?e.id:""}function oe(e,t){const n=ne(e);return""!==n&&""===ne(t)?{...t,id:n}:t}function re(e,t,n,o){const r=function(e){return{...e,_meta:{...e._meta,path:[...e._meta.path]}}}(n),s=(0,X.clone)(t),i=ne(e);if(""===i)return{event:s,ingest:r};r._meta.parentEventId=i;const a=ne(s);return""!==a&&a!==i||(s.id=(0,X.deriveSpanId)(i,o)),{event:s,ingest:r}}function se(e,t){return{copies:e,respond:t}}function ie(e,t){if(void 0===t)return e.rest;const n=e.ownNext?e.rest.slice(1):e.rest;return[{route:t,ancestry:e.ancestry},...n]}async function ae(e,t,n){const o=await Promise.all(t.map((t,n)=>(0,X.tryCatchAsync)(ce,t=>(e.collector.logger.scope("transformer:fork").error(`fork ${n} failed`,Q(t)),{copies:[]}))(e,t))),r=[];let s,i=n,a=o.length>0;return o.forEach((e,n)=>{void 0!==t[n].respond&&e.respond&&(i=e.respond),e.stopped||(a=!1),e.stopped||0===e.copies.length?void 0===s&&(s=e.droppedBy):r.push(...e.copies)}),0===r.length?{copies:r,respond:i,...a?{stopped:!0}:{},...void 0!==s?{droppedBy:s}:{}}:se(r,i)}async function ce(e,t){const{ingest:n}=t;let{stack:o,event:r,respond:s}=t,i=t.resume;for(;;){let t,a;if(i)t=i.member,a=i,i=void 0;else{const i=(0,X.advanceChain)(o,(0,X.createMappingRoot)(n,r),e.transformers);if("done"===i.kind)return se([{event:r,ingest:n}],s);if("stop"===i.kind)return{copies:[],respond:s,stopped:!0,...void 0!==i.owner?{droppedBy:i.owner}:{}};if("fork"===i.kind){const t=r;return ae(e,i.branches.map((e,o)=>({stack:e,...re(t,t,n,o),respond:void 0})),s)}const a=e.transformers[i.id];t={id:i.id,ancestry:i.ancestry,rest:i.rest,ownNext:!!a&&void 0!==a.config.next}}const c=await ue(e,t,r,n,s,a);if("halt"===c.kind)return c.result;if("fork"===c.kind)return ae(e,c.copies,s);r=c.event,s=c.respond,o=c.stack}}async function ue(e,t,n,o,r,s){const{collector:i,transformers:a,chainContext:c}=e,u=t.id,d=a[u];let l=n,f=r;const p=(e=t.rest)=>({kind:"continue",event:oe(n,l),respond:f,stack:e}),g=e=>({kind:"halt",result:e});if(!d)return i.logger.warn(`Transformer not found: ${u}`),p();const h=d.config?.cache,m=h?(0,X.compileCache)(h):void 0,v=m?w(m,i):void 0;let y=s?.cacheMiss;if(!s){if(o._meta.path.length>te)return i.logger.error(`Max path length exceeded at ${u}`),g({copies:[],respond:f});o._meta.hops++,o._meta.path.push(u);if(!await(0,X.tryCatchAsync)(Z,e=>{if(e instanceof X.FatalError)throw e;return i.status.failed++,i.logger.scope(`transformer:${d.type||"unknown"}`).error("transformer init failed",{transformer:u,...Q(e)}),!1})(i,d,u))return g({copies:[],respond:f});if(c&&void 0!==d.config?.chainMocks?.[c]){const e=d.config.chainMocks[c];return i.logger.scope(`transformer:${d.type||"unknown"}`).debug("chainMock",{chain:c}),l=e,p()}if(void 0!==d.config?.mock)return i.logger.scope(`transformer:${d.type||"unknown"}`).debug("mock"),l=d.config.mock,p();if(d.config?.disabled)return p();if(m&&v){const e=await(0,X.checkCache)(m,v,(0,X.createMappingRoot)(o,l));if("HIT"===e?.status&&e.value){if(l=e.value,m.stop){return g({copies:[{event:oe(n,l),ingest:o}],respond:f,stopped:!0})}return p()}"MISS"===e?.status&&(y={key:e.key,ttl:e.rule.ttl})}if(void 0!==d.config.before){const e=await le(i,a,u,l,o,f,c),n=e.respond??f;if(0===e.copies.length||e.stopped)return g({...e,respond:n});f=n;const[r]=e.copies;if(e.copies.length>1||r.ingest!==o){const n={member:t,cacheMiss:y};return{kind:"fork",copies:e.copies.map(e=>({stack:t.rest,event:e.event,ingest:e.ingest,respond:void 0,resume:n}))}}l=r.event}}const S=b(d.config?.state),E=S?.filter(e=>"get"===e.mode),O=S?.filter(e=>"set"===e.mode),_=async e=>O&&0!==O.length?k(i,O,e,o):e;E&&E.length>0&&(l=await k(i,E,l,o));const q=await(0,X.tryCatchAsync)(ee,e=>(i.status.failed++,i.logger.scope(`transformer:${d.type||"unknown"}`).error("Push failed",Q(e)),!1))(i,d,u,l,o,f);if(!1===q)return g({copies:[],respond:f,droppedBy:u});if(Array.isArray(q)&&1!==q.length){if(0===q.length)return g({copies:[],respond:f});const e=l,n=[];for(let r=0;r<q.length;r++){const s=q[r],i=await _(s.event||e);n.push({stack:ie(t,s.next),...re(e,i,o,r),respond:f})}return{kind:"fork",copies:n}}const C=Array.isArray(q)?q[0]:q;let I;return C&&"object"==typeof C&&(C.respond&&(f=C.respond),C.event&&(l=C.event),I=C.next),l=await _(l),y&&v&&(0,X.storeCache)(v,y.key,l,y.ttl),p(ie(t,I))}async function de(e,t,n,o,r,s,i){const a=r??(0,X.createIngest)("string"==typeof n?n:"chain");return void 0===n?se([{event:o,ingest:a}],s):(i&&(a._meta.chainPath=i),ce({collector:e,transformers:t,chainContext:i},{stack:(0,X.isChainContinuation)(n)?n:(0,X.startChain)(n),event:o,ingest:a,respond:s}))}async function le(e,t,n,o,r,s,i){const a=t[n],c=a?a.config.before:void 0,u=await de(e,t,c,o,r,s,i);return u.stopped&&0===u.copies.length&&!u.droppedBy?{...u,droppedBy:n}:u}function fe(e){return e&&(0,X.isObject)(e)?e:{}}var pe=1e4;function ge(e){return"number"==typeof e&&e>0?e:pe}var he=class extends Error{constructor(e){super(e),this.name="DestinationTimeoutError"}};function me(e,t,n){let o;const r=new Promise((e,r)=>{o=setTimeout(()=>r(new he(n)),t)});return Promise.race([e,r]).finally(()=>{o&&clearTimeout(o)})}async function ve(e,t,n){if(!t.on||!t.queueOn?.length)return;const o=t.queueOn;t.queueOn=[];const r=n||t.config?.id||"unknown";for(const{type:n,data:s}of o){if(Ie(n)&&!Me(e,t,n))continue;const o=t.on;let i=!1;await(0,Y.tryCatchAsync)(()=>me(Promise.resolve(o(n,s)),pe,`Source "${r}" on(${n}) did not settle within ${pe}ms`),t=>{if(t instanceof Y.FatalError)throw t;t instanceof he?i=!0:e.status.failed++,e.logger.scope("source").error("source on flush failed",{sourceId:r,type:n,...Q(t)})})(),Ie(n)&&!i&&De(e,t,n)}}function ye(e){return Boolean(e.config.init)&&!e.config.require?.length}async function we(e,t,n){const{code:o,config:r={},env:s={},primary:i,next:a,before:c,cache:u,terminus:d}=n,l=r.state??n.state,f=b(l);S(e,(0,Y.stepId)("source",t),l);const p=u,g=p?(0,Y.compileCache)({...p,stop:p.stop??!0}):void 0,h=d??e.push,m=Boolean(d),y=async(n,o,s)=>{if(m)return h(n);let i;const u="string"==typeof n.id&&""!==n.id?n:{...n,id:(0,Y.getSpanId)()};let d=[{event:u,ingest:s.ingest}];if(void 0!==c){const n=`source.${t}.before`,o=await de(e,e.transformers||{},c,u,s.ingest,s.respond,n);if(0===o.copies.length)return v(e,u,s.ingest,{reason:"dropped",by:o.droppedBy,at:n}),Rt({ok:!0,dropped:!0});if(o.stopped)return o.respond&&(s.respond=o.respond),{ok:!0};o.respond&&(s.respond=o.respond),d=o.copies}if(g){const t=w(g,e);if(t){const n=(0,Y.createMappingRoot)(s.ingest),o=await(0,Y.checkCache)(g,t,n);if(o){if("HIT"===o.status&&void 0!==o.value&&g.stop){let t=o.value;return o.rule.update&&(t=await(0,Y.applyUpdate)(t,o.rule.update,{...n,cache:{status:"HIT"}},e)),s.respond?.(t),{ok:!0}}if("MISS"===o.status&&g.stop&&s.respond){const r=s.respond,a=o.rule.update,c={...n,cache:{status:"MISS"}},u=o.key,d=o.rule.ttl,l=n=>{(0,Y.storeCache)(t,u,n,d),a?i=(async()=>{const t=await(0,Y.applyUpdate)(n,a,c,e);r(t)})():r(n)};s.respond=l}"MISS"!==o.status||g.stop||(0,Y.storeCache)(t,o.key,!0,o.rule.ttl)}}}f&&f.length>0&&(d=await Promise.all(d.map(async t=>({event:await k(e,f,t.event,t.ingest),ingest:t.ingest}))));let l={ok:!0};for(const e of d)l=await h(e.event,{...o,id:t,ingest:e.ingest,respond:s.respond,mapping:r,preChain:a});return i&&await i,l},E=async n=>{const o=(0,Y.createIngest)(t),s=(0,Y.parseTraceparent)((0,Y.isScope)(n)?n?.headers?.traceparent:void 0);if(s&&(o._meta.trace=s.trace,o._meta.parentEventId=s.parentSpan),!r.ingest||void 0===n)return o;const i=await(0,Y.getMappingValue)(n,r.ingest,{collector:e});return{...o,...i,_meta:o._meta}},O=e.logger.scope("source").scope(t),_={...s,push:async(e,n={})=>{const o={ingest:(0,Y.createIngest)(t),respond:void 0};return y(e,n,o)},command:e.command,sources:e.sources,elb:e.elb,logger:O},q={collector:e,logger:O,id:t,config:r,env:_,withScope:async(e,t,n)=>{const o={ingest:await E(e),respond:t};return n({..._,push:(e,t={})=>y(e,t,o),ingest:o.ingest,respond:o.respond})},reportError:N(e,"source",t,O)},C=await(0,Y.tryCatchAsync)(o,n=>{if(n instanceof Y.FatalError)throw n;e.status.failed++,e.logger.scope("source").error("source factory failed",{sourceId:t,...Q(n)})})(q);if(!C)return;const I=C.type||"unknown",j=e.logger.scope(I).scope(t);return _.logger=j,i&&(C.config={...C.config,primary:i}),C}async function be(e,t={}){const n={};for(const[o,r]of Object.entries(t)){const t=await we(e,o,r);if(!t)continue;const s=r.config?.require;t.config={...t.config,init:!1,...s?{require:[...s]}:{}},n[o]=t}Object.assign(e.sources,n);for(const t of Object.keys(n)){const n=e.sources[t];let o=!1;n.init&&await(0,Y.tryCatchAsync)(n.init.bind(n),n=>{if(n instanceof Y.FatalError)throw n;o=!0,e.status.failed++,e.logger.scope("source").error("source init failed",{sourceId:t,...Q(n)})})(),o||(n.config.init=!0,ye(n)&&await ve(e,n,t))}return await ke(e),n}async function ke(e){for(const[t,n]of Object.entries(e.sources)){if(ye(n))continue;const o=n.config.require;if(!o?.length)continue;const r=o.filter(t=>!Ae(e,t));r.length!==o.length&&(n.config.require=r,ye(n)&&await ve(e,n,t))}for(const[t,n]of Object.entries(e.pending.destinations)){if(!e.pending.destinations[t]||e.destinations[t])continue;const o=n.config?.require;if(!o)continue;const r=o.filter(t=>!Ae(e,t));if(n.config&&(n.config.require=r),r.length>0)continue;delete e.pending.destinations[t];const s=Pt(n);!1!==s.config.queue&&(s.queuePush=[...e.queue]),e.destinations[t]=s,await dt(e,s,t)}}function Se(e){if("object"!=typeof e||null===e)return!1;if(!("logger"in e))return!1;const t=e.logger;return"object"==typeof t&&null!==t&&("scope"in t&&"function"==typeof t.scope)}var Ee=!1;function Oe(){Ee||(Ee=!0,"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn("walkerOS: ignored an on-dispatch call with a non-collector argument"))}function _e(e,t,n,o){if(n instanceof x.FatalError)throw n;e.logger.scope("on").error("on callback failed",{kind:t,...o,...Q(n)})}var qe=["consent","user","globals","custom"];function Ce(e){return qe.includes(e)}function Ie(e){return Ce(e)}function je(e,t){return Ce(t)&&Object.keys(e[t]).length>0}function Ae(e,t){if(Ce(t))return je(e,t);switch(t){case c.Commands.Run:case c.Commands.Ready:return!0===e.allowed;default:return e.seenEvents.has(String(t))}}function xe(e,t){return e.cellVersion?.[String(t)]??0}function De(e,t,n){nt(e,t,n,xe(e,n))}function Me(e,t,n){return e.allowed&&xe(e,n)>function(e,t,n){const o=e.delivery.get(t),r=o?.[String(n)];return void 0===r?-1:r}(e,t,n)}var Re=8;function Pe(e){const t=e.cascade;if(t&&!$e.has(t))return()=>{};const n=t||{counts:new WeakMap};e.cascade=n,$e.set(n,($e.get(n)||0)+1);let o=!1;return()=>{if(o)return;o=!0;const t=($e.get(n)||1)-1;t>0?$e.set(n,t):($e.delete(n),e.cascade===n&&(e.cascade=void 0))}}var $e=new WeakMap;function Te(e,t,n){const o=e.cascade;if(!o)return!0;let r=o.counts.get(t);r||(r={},o.counts.set(t,r));const s=String(n),i=(r[s]||0)+1;return r[s]=i,i<=Re||(i===Re+1&&e.logger.error("state delivery did not converge",{type:s}),!1)}function Be(e,t){return{collector:e,logger:e.logger.scope("on").scope(String(t))}}async function Ke(e,t,n){if(!Se(e))return void Oe();const o=e.on,r=o[t]||[],s=(0,x.isArray)(n)?n:[n];s.forEach(e=>{r.push(e)}),o[t]=r,ot(e,t,s)}async function We(e,t,n,o,r){const s=t.on;if(!s)return!0;const i=Ie(o);if(i&&(Le.get(t)||Fe.has(t)))return Je(e,t,o),Le.get(t)||Ve.add(t),!1;const a=i?xe(e,o):0,c=i&&function(e,t,n,o){if(Ne.get(t)?.has(String(n)))return!0;const r=e.delivery?.get(t)?.[String(n)];return void 0===r||r<o-1}(e,t,o,a)?rt(e,o):r,u=t.type||"unknown",d=e.logger.scope(u).scope("on").scope(o),l={collector:e,logger:d,id:n,config:t.config,data:c,env:Tt(t.env,t.config.env),reportError:N(e,"destination",n,d,t)};i&&(et(t,o),function(e,t,n){let o=Ge.get(e);o||(o={},Ge.set(e,o));const r=String(t),s=o[r];(void 0===s||s<n)&&(o[r]=n)}(t,o,a),Fe.add(t));const f=ge(t.config.timeout);let p=Promise.resolve(),g=!0,h=!1,m=!0;try{await(0,D.tryCatchAsync)(()=>(p=Promise.resolve(s(o,l)),me(p,f,`Destination "${n}" on(${o}) did not settle within ${f}ms`)),t=>{g=!1,t instanceof he&&(h=!0),_e(e,"destination",t,{destId:n,type:o})})(),m=!1}finally{if(i){Fe.delete(t),m&&Ve.delete(t);const r=Ne.get(t);g?(nt(e,t,o,a),r?.delete(String(o))):Je(e,t,o),h?function(e,t,n,o,r,s,i){Le.set(t,(Le.get(t)||0)+1);const a=()=>{const s=(Le.get(t)||0)-1;s>0?Le.set(t,s):Le.delete(t),Ye(t,o),Qe(t,o,r),tt(e,t),i.debug("late settle after timeout"),Ve.delete(t),e.allowed&&e.destinations[n]===t&&function(e,t,n,o){(0,D.tryCatchAsync)(async()=>{await dt(e,t,n),!ze(t)&&t.queuePush?.length&&await It(e,void 0,{},{[n]:t})},e=>{o.error("state recovery failed",Q(e))})()}(e,t,n,i)};s.then(a,a)}(e,t,n,o,a,p,d):(Qe(t,o,a),tt(e,t))}}return i&&!h&&Ve.delete(t)&&await dt(e,t,n),g}var Le=new WeakMap,Fe=new WeakSet,Ve=new WeakSet;var He=new WeakMap;function ze(e){return He.get(e)}var Ue=new WeakMap,Ge=new WeakMap;function Qe(e,t,n){const o=Ge.get(e);o&&o[String(t)]===n&&delete o[String(t)]}var Ne=new WeakMap;function Ye(e,t){const n=Ne.get(e);n?n.add(String(t)):Ne.set(e,new Set([String(t)]))}var Xe=new WeakMap;function Je(e,t,n){!function(e,t,n){const o=e.delivery?.get(t);o&&delete o[String(n)]}(e,t,n),Ye(t,n),He.set(t,{type:n,since:Date.now()})}function Ze(e,t){return!!Ne.get(t)?.size||qe.some(n=>je(e,n)&&Me(e,t,n))}function et(e,t){Ue.set(e,(Ue.get(e)||0)+1),He.set(e,{type:t,since:Date.now()})}function tt(e,t){const n=(Ue.get(t)||0)-1;n>0?Ue.set(t,n):Ue.delete(t),function(e,t){if(!He.has(t))return;if(Ue.get(t))return;Ze(e,t)||He.delete(t)}(e,t)}function nt(e,t,n,o){let r=e.delivery.get(t);r||(r={},e.delivery.set(t,r));const s=String(n),i=r[s];(void 0===i||i<o)&&(r[s]=o)}function ot(e,t,n,o){if(!Se(e))return void Oe();const r=rt(e,t,o);if(n.length)switch(t){case c.Commands.Consent:!function(e,t,n){const o=n||e.consent,r=Be(e,c.Commands.Consent);t.forEach(t=>{Me(e,t,c.Commands.Consent)&&Te(e,t,c.Commands.Consent)&&(Object.keys(o).filter(e=>e in t).forEach(n=>{(0,D.tryCatch)(t[n],t=>_e(e,"consent",t,{key:n}))(o,r)}),De(e,t,c.Commands.Consent))})}(e,n,o);break;case c.Commands.Ready:!function(e,t){if(!e.allowed)return;const n=Be(e,c.Commands.Ready);t.forEach(t=>{(0,D.tryCatch)(t,t=>_e(e,"ready",t))(void 0,n)})}(e,n);break;case c.Commands.Run:!function(e,t){if(!e.allowed)return;const n=Be(e,c.Commands.Run);t.forEach(t=>{(0,D.tryCatch)(t,t=>_e(e,"run",t))(void 0,n)})}(e,n);break;case c.Commands.Session:!function(e,t){if(!e.session)return;const n=Be(e,c.Commands.Session);t.forEach(t=>{(0,D.tryCatch)(t,t=>_e(e,"session",t))(e.session,n)})}(e,n);break;default:{const o=Be(e,t),s=Ie(t);n.forEach(n=>{"function"==typeof n&&(s&&!Me(e,n,t)||s&&!Te(e,n,t)||((0,D.tryCatch)(n,n=>_e(e,"generic",n,{type:t}))(r,o),s&&De(e,n,t)))});break}}}function rt(e,t,n){if(Ce(t))return n||e[t];switch(t){case c.Commands.Session:return e.session;case c.Commands.Config:return n||e.config;default:return}}async function st(e,t,n,o,r){if(!t.on)return!1;if(Ie(o)&&!Me(e,t,o))return!1;if(Ie(o)&&!Te(e,t,o))return!1;const s=Ie(o);if(s&&it.has(t))return at.add(t),!1;const i=s?xe(e,o):0;s&&it.add(t);const a=t.on;let c,u=Promise.resolve(),d=!1;try{c=await(0,D.tryCatchAsync)(()=>(u=Promise.resolve(a(o,r)),me(u,pe,`Source "${n}" on(${o}) did not settle within ${pe}ms`)),t=>{t instanceof he&&(d=!0),_e(e,"source",t,{sourceId:n,type:o})})()}finally{s&&!d&&it.delete(t)}if(s)if(d){const o=()=>{it.delete(t),at.delete(t),e.allowed&&e.sources[n]===t&&(0,D.tryCatchAsync)(()=>ct(e,t,n),t=>{e.logger.scope("on").error("state recovery failed",Q(t))})()};u.then(o,o)}else nt(e,t,o,i),at.delete(t)&&await ct(e,t,n);return!1===c}var it=new WeakSet,at=new WeakSet;async function ct(e,t,n){const o=Pe(e);try{for(const o of qe)await st(e,t,n,o,rt(e,o))}finally{o()}}async function ut(e,t,n,o,r){if(!t.on)return;const s=Ie(o);if(s&&!Me(e,t,o))return;const i=Ge.get(t)?.[String(o)];if(s&&void 0!==i&&i>=xe(e,o))return;if(s&&!Te(e,t,o)){if(t.config.init)return void Je(e,t,o);const n=t.queueOn=t.queueOn||[],r={type:o,data:rt(e,o)},s=n[n.length-1];return s&&s.type===o?n[n.length-1]=r:n.push(r),De(e,t,o),void Ne.get(t)?.delete(String(o))}const a=Xe.get(t);if(!t.config.init||a)return t.queueOn=t.queueOn||[],t.queueOn.push({type:o,data:r}),void(s&&(De(e,t,o),a&&!a.held&&(et(t,o),a.held=!0)));await We(e,t,n,o,r)}async function dt(e,t,n){if(!t.on)return;const o=Pe(e);try{for(const o of qe)(je(e,o)||Ne.get(t)?.has(String(o)))&&await ut(e,t,n,o,rt(e,o))}finally{o()}}function lt(e){return(Ue.get(e)||0)>0}async function ft(e){const t=await pt(e);await Promise.all(t.map(({done:e})=>e))}async function pt(e){if(!Se(e))return Oe(),[];const t=[];for(const[n,o]of Object.entries(e.destinations)){if(!o.on)continue;const r=async()=>{for(const t of qe)je(e,t)&&await ut(e,o,n,t,rt(e,t))};t.push(ht(n,o,r()))}for(const t of qe){if(!je(e,t))continue;const n=rt(e,t);ot(e,t,e.on[t]||[]),await Promise.all(Object.entries(e.sources).filter(([,e])=>ye(e)).map(([o,r])=>st(e,r,o,t,n)))}return t}async function gt(e,t,n,o){const{ok:r,deliveries:s}=await mt(e,t,n,o);return await Promise.all(s.map(({done:e})=>e)),r}function ht(e,t,n){return n.catch(()=>{}),{id:e,destination:t,done:n}}async function mt(e,t,n,o){if(!Se(e))return Oe(),{ok:!0,deliveries:[]};e.seenEvents.add(String(t));let r=n||[];n||(r=e.on[t]||[]);const s=rt(e,t,o),i=[];for(const[n,o]of Object.entries(e.sources)){if(o.config.require?.length){const e=o.config.require.indexOf(t);-1!==e&&o.config.require.splice(e,1)}o.on&&(ye(o)?i.push(st(e,o,n,t,s)):(o.queueOn=o.queueOn||[],o.queueOn.push({type:t,data:s})))}const a=[];for(const[n,o]of Object.entries(e.destinations))o.on&&a.push(ht(n,o,ut(e,o,n,t,s)));let c=!1;if(i.length){c=(await Promise.all(i)).some(Boolean)}for(const[t,n]of Object.entries(e.sources))ye(n)&&n.queueOn?.length&&await ve(e,n,t);const u=Object.values(e.sources).some(e=>!ye(e)&&e.config.require?.length);return(Object.keys(e.pending.destinations).length>0||u)&&await ke(e),ot(e,t,r,o),{ok:!c,deliveries:a}}var vt=1e3,yt=1e3,wt=3e4,bt=Object.freeze({batched:!0});function kt(e){return e===bt}var St=" batch-all";function Et(e){return void 0===e?{}:"number"==typeof e?{wait:e}:{wait:e.wait,size:e.size,age:e.age}}async function Ot(e,t){const{code:n,config:o={},env:r={},before:s,next:i,cache:a,state:c}=t;if(!(0,f.isFunction)(n.push))return Rt({ok:!1,failed:{invalid:{type:"invalid",error:"Destination code must have a push method"}}});const u={...n.config,...o||{init:!1}};let d=s?{...u,before:s}:{...u};i&&(d={...d,next:i}),a&&(d={...d,cache:a}),void 0!==c&&void 0===d.state&&(d={...d,state:c});let l=d.id;if(!l)do{l=(0,f.getId)(5,"abcdefghijklmnopqrstuvwxyz")}while(e.destinations[l]||e.pending.destinations[l]);if(S(e,(0,f.stepId)("destination",l),d.state),d.require?.length){e.pending.destinations[l]=t,await ke(e);const n=e.destinations[l];return n?It(e,void 0,{},{[l]:n}):Rt({ok:!0})}const p={...n,config:d,env:Tt(n.env,r)};return e.destinations[l]=p,!1!==p.config.queue&&(p.queuePush=[...e.queue]),await dt(e,p,l),It(e,void 0,{},{[l]:p})}function _t(e){for(const t of e)ze(t.destination)&&(t.drain=!0)}async function qt(e,t){return(await Promise.all(t.map(async({id:t,destination:n,done:o,drain:r})=>{if(await o,r&&e.allowed&&!ze(n)&&n.queuePush?.length&&e.destinations[t]===n)return It(e,void 0,{},{[t]:n})}))).filter(f.isDefined)}function Ct(e,t){if(!t.length)return e;const n={...e.done??{}},o={...e.queued??{}},r={...e.failed??{}};for(const e of t){for(const[t,r]of Object.entries(e.done??{}))n[t]=r,delete o[t];for(const[t,n]of Object.entries(e.failed??{}))r[t]=n,delete o[t];Object.assign(o,e.queued??{})}const s={...e,ok:e.ok&&t.every(e=>e.ok)};return delete s.done,delete s.queued,delete s.failed,Object.keys(n).length&&(s.done=n),Object.keys(o).length&&(s.queued=o),Object.keys(r).length&&(s.failed=r),s}async function It(e,t,n={},o){if(!e.allowed)return Rt({ok:!1});if(!t)return jt(e,void 0,n,o);const r=await Zt(e,t,n);if(0===r.copies.length)return Rt({ok:!0,...r.dropped?{dropped:!0}:{}});const s=[];for(const t of r.copies)s.push(await jt(e,t.event,{id:n.id,ingest:t.ingest,respond:r.respond},o));return s[0]}async function jt(e,t,n,o){const{user:r}=e;if(t){const n=R(e.config.queueMax),o=P(e.queue,t,{max:n});if(o.dropped>0){const t=G(e.status,(0,f.stepId)("collector"),"queue",o.dropped);T(e.queue,e.logger,"collector.queue overflow; oldest events dropped",{buffer:"queue",cap:n,droppedCount:t})}else e.queue.length<n&&B(e.queue);e.status.in++}o||(o=e.destinations);const s=e.transformers||{},i=await Promise.all(Object.entries(o||{}).map(async([o,i])=>{if(i.config.disabled)return{id:o,destination:i,skipped:!0};const a=i.config.id||o,c=(0,f.stepId)("destination",a),u=F(i.config.breaker);if(u&&function(e,t,n){const o=e[t];if(!o||"closed"===o.state)return!1;if("half-open"===o.state)return!0===o.probing;const r=L();return void 0!==o.openUntil&&r<o.openUntil||(o.state="half-open",o.probing=!0,o.openUntil=r+n,!1)}(e.status.breakers,c,u.cooldown))return{id:o,destination:i,skipped:!0};const d=t=>{u&&V(e.status.breakers,c,t,u.threshold,u.cooldown)},l=()=>{u&&function(e,t){const n=e[t];n&&"half-open"===n.state&&!0===n.probing&&(n.state="open",n.probing=!1)}(e.status.breakers,c)},p=t=>{if(!t.length)return;i.queuePush||(i.queuePush=[]);const n=i.queuePush,r=i.config.id||o,s={max:i.config.queueMax??vt};let a=0;for(const e of t){a+=P(n,e,s).dropped}if(a>0){U(e,r);const t=G(e.status,(0,f.stepId)("destination",r),"queue",a);T(n,e.logger.scope(i.type||"unknown"),"destination.queuePush overflow; oldest events dropped",{buffer:"queuePush",destination:r,cap:s.max,droppedCount:t})}else n.length<s.max&&B(n)};i.on&&i.config.init&&!ze(i)&&!lt(i)&&Ze(e,i)&&await dt(e,i,o);const m=ze(i);if(m&&!lt(i)&&Date.now()-m.since>=ge(i.config.timeout)&&await dt(e,i,o),ze(i)){if(l(),!t)return{id:o,destination:i,skipped:!0};const e=[(0,f.clone)(t)];return p(e),{id:o,destination:i,queue:e}}let v=(i.queuePush||[]).map(t=>({...t,consent:e.consent}));i.queuePush=[],t&&v.push((0,f.clone)(t));const y=n.ingest?{...n.ingest,_meta:{...n.ingest._meta,path:[...n.ingest._meta.path]}}:(0,f.createIngest)("unknown");if(!v.length&&!i.queueOn?.length)return l(),{id:o,destination:i,skipped:!0};if(!v.length&&i.queueOn?.length){if(!(0,f.getGrantedConsent)(i.config.consent,e.consent))return l(),{id:o,destination:i,skipped:!0};let t=!1;try{t=await Dt(e,i,o,!0)}catch(t){e.status.failed++;const n=i.type||"unknown";e.logger.scope(n).error("destination init failed",{error:t instanceof Error?t.message:String(t)}),d("transport-failure")}if(ze(i))return l(),{id:o,destination:i,skipped:!0};if(!t||!i.queuePush?.length)return l(),{id:o,destination:i,skipped:!t};v=i.queuePush.map(t=>({...t,consent:e.consent})),i.queuePush=[]}const S=t=>{const n=e.consent,r=[],s=t.filter(t=>{const s=(0,f.getGrantedConsent)(i.config.consent,n,t.consent);if(s)return t.consent=s,r.push(t),!1;const a=h(e,(0,f.stepId)("destination",o),"destination","skip","string"==typeof t.id?t.id:"",Date.now(),g(t,y,e));return a.skipReason="consent",n&&(a.consent={...n}),i.config.consent&&(a.meta={required:{...i.config.consent}}),(0,f.emitStep)(e,a),!0});return{allowed:r,skipped:s}},E=e.consent,{allowed:O,skipped:_}=S(v);if(p(_),!O.length)return l(),{id:o,destination:i,queue:v};const q=new Set(i.queuePush);let C=!1;try{C=await Dt(e,i,o,!0)}catch(t){e.status.failed++;const n=i.type||"unknown";e.logger.scope(n).error("destination init failed",{error:t instanceof Error?t.message:String(t)}),d("transport-failure")}if(!C)return l(),{id:o,destination:i,queue:v};if(ze(i))return l(),p(O),{id:o,destination:i,queue:O};const I=[];if(e.consent!==E){const t=S(O.map(t=>({...t,consent:e.consent})));O.splice(0,O.length,...t.allowed),I.push(...t.skipped)}const j=i.queuePush||[],A=j.filter(e=>!q.has(e));if(A.length){i.queuePush=j.filter(e=>q.has(e));const t=S(A.map(t=>({...t,consent:e.consent})));O.push(...t.allowed),I.push(...t.skipped)}if(p(I),!O.length)return l(),I.length?{id:o,destination:i,queue:I}:{id:o,destination:i,skipped:!0};let x,D;i.dlq||(i.dlq=[]);const M=i.config.before,R=i.config.next,$=i.config?.cache,K=$?(0,f.compileCache)($):void 0,W=K?w(K,e):void 0,H=b(i.config?.state),N=H?.filter(e=>"get"===e.mode),Y=H?.filter(e=>"set"===e.mode);let X=0,J=0,Z=0;return await Promise.all(O.map(async t=>{let a,c;if(t.user=(0,f.assign)(r,t.user),K?.stop&&W){const e=(0,f.createMappingRoot)(y,t),n=await(0,f.checkCache)(K,W,e);if("HIT"===n?.status)return t;"MISS"===n?.status&&(a={key:n.key,ttl:n.rule.ttl})}let u=[{event:t,ingest:y}],d=n.respond;if(void 0!==M){const r=`destination.${o}.before`,i=await de(e,s,M,t,y,n.respond,r);if(0===i.copies.length){const n=h(e,(0,f.stepId)("destination",o),"destination","skip","string"==typeof t.id?t.id:"",Date.now(),g(t,y,e));return n.skipReason="dropped",n.meta={by:i.droppedBy??"route",at:r},(0,f.emitStep)(e,n),t}i.respond&&(d=i.respond),u=i.copies.map(e=>({event:e.event,ingest:e.ingest}))}const l=async(t,n,r)=>{let a=r,u=!1;if(K&&!K.stop&&W){const e=(0,f.createMappingRoot)(n,t??void 0),o=await(0,f.checkCache)(K,W,e);if("HIT"===o?.status)return!1;"MISS"===o?.status&&(a={key:o.key,ttl:o.rule.ttl},u=!0)}N&&N.length>0&&t&&(t=await k(e,N,t,n));const l=Date.now();let p=!1;const g=await(0,f.tryCatchAsync)(Mt,n=>{const r=i.type||"unknown";e.logger.scope(r).error("Push failed",{...Q(n),event:t.name}),x=n,p=!0;const s=i.dlq,a=i.config.id||o,c={max:i.config.dlqMax??z},u=P(s,[t,n],c);if(u.dropped>0){U(e,a);const t=G(e.status,(0,f.stepId)("destination",a),"dlq",u.dropped);T(s,e.logger.scope(i.type||"unknown"),"destination.dlq overflow; oldest entries dropped",{buffer:"dlq",destination:a,cap:c.max,droppedCount:t})}else s.length<c.max&&B(s)})(e,i,o,t,n,d);if(X+=Date.now()-l,a&&W&&void 0===i.config.mock&&(u?(0,f.storeCache)(W,a.key,g??!0,a.ttl):void 0===c&&(c=g??!0)),!p&&!kt(g)&&Y&&Y.length>0&&t&&(t=await k(e,Y,t,n)),void 0===g||kt(g)||(D=g),kt(g)&&J++,!p&&R){void 0!==g&&(n._response=g);const r=await de(e,s,R,t,n,d,`destination.${o}.next`);r.respond&&(d=r.respond)}return!0};for(const e of u)await l(e.event,e.ingest,a)&&Z++;return a&&W&&void 0!==c&&void 0===i.config.mock&&(0,f.storeCache)(W,a.key,c,a.ttl),t})),{id:o,destination:i,error:x,response:D,totalDuration:X,batchedCount:J,allowedCount:O.length,pushedCount:Z,canonicalId:a,breakerConfig:u}})),a={},c={},u={};for(const t of i){if(t.skipped)continue;const n=t.destination,o={type:n.type||"unknown",data:t.response};U(e,t.id);const r=e.status.destinations[t.id],s=Date.now();r.queuePushSize=n.queuePush?.length??0,r.dlqSize=n.dlq?.length??0;const i=t.breakerConfig,d=t.canonicalId?(0,f.stepId)("destination",t.canonicalId):void 0,l=t=>{i&&d&&V(e.status.breakers,d,t,i.threshold,i.cooldown)};if(t.error)o.error=t.error,u[t.id]=o,r.failed++,r.lastAt=s,r.duration+=t.totalDuration||0,e.status.failed++,l("transport-failure");else if(t.queue&&t.queue.length)c[t.id]=o;else{const n=t.batchedCount??0,i=t.allowedCount??0,c=t.pushedCount??i;(Math.max(0,c-n)>0||0===i)&&(a[t.id]=o,r.count++,r.lastAt=s,r.duration+=t.totalDuration||0,e.status.out++,l("success"))}}return Rt({event:t,...Object.keys(a).length&&{done:a},...Object.keys(c).length&&{queued:c},...Object.keys(u).length&&{failed:u}})}async function At(e,t,n,o){const r=await async function(e,t,n,o){const r=t.type||"unknown",s=e.logger.scope(r),i={collector:e,logger:s,id:o,config:t.config,env:Tt(t.env,t.config.env),reportError:N(e,"destination",o,s,t)};s.debug("init");const a=Date.now();let c;(0,f.emitStep)(e,h(e,(0,f.stepId)("destination",o),"destination","init","",a));try{c=await(0,f.useHooks)(n,"DestinationInit",e.hooks,e.logger)(i)}catch(t){const n=Date.now(),r=h(e,(0,f.stepId)("destination",o),"destination","error","",n);throw r.durationMs=n-a,r.error=m(t),(0,f.emitStep)(e,r),t}return!1!==c&&{...c||t.config,init:!0}}(e,t,n,o);if(!1===r)return!1;if(t.config=r,t.queueOn?.length){const n=Pe(e);!function(e){const t=e.queueOn?.find(({type:e})=>Ie(e));t&&et(e,t.type),Xe.set(e,{held:!!t})}(t);try{for(let n=t.queueOn?.shift();n;n=t.queueOn?.shift())await We(e,t,o,n.type,n.data)}catch(n){for(const{type:n}of t.queueOn||[])Ie(n)&&Je(e,t,n);throw t.queueOn=[],n}finally{!function(e,t){const n=Xe.get(t);Xe.delete(t),n?.held&&tt(e,t)}(e,t),n()}}return e.logger.scope(t.type||"unknown").debug("init done"),!0}var xt=new WeakMap;async function Dt(e,t,n,o=!1){if(t.init&&!t.config.init){if(!o&&function(e){const t=e.config.consent;return!!t&&Object.keys(t).length>0}(t))return e.logger.scope(t.type||"unknown").debug("init blocked: consent gate not cleared"),!1;const r=xt.get(t);if(r)return r;const s=At(e,t,t.init,n);xt.set(t,s);try{return await s}finally{xt.delete(t)}}return!0}async function Mt(e,t,n,o,r,s){const{config:i}=t,a=await(0,f.processEventMapping)(o,i,e);if(a.ignore)return!1;const c=t.type||"unknown",u=e.logger.scope(c),d={collector:e,logger:u,id:n,config:i,data:a.data,rule:a.mapping,ingest:r,env:{...Tt(t.env,i.env),...s?{respond:s}:{}},reportError:N(e,"destination",n,u,t)};if(void 0!==i.mock)return u.debug("mock",{event:a.event.name}),i.mock;const l=a.mapping,p=void 0!==l?.batch,v=p?a.mappingKey||"* *":St;if((p||void 0!==i.batch)&&t.pushBatch&&void 0===i.mock){if(t.batches=t.batches||{},!t.batches[v]){const o={key:v,entries:[],events:[],data:[]},r=Et(l?.batch),s=Et(i.batch),a=r.wait??s.wait??wt,c=r.size??s.size??yt,d=r.age??s.age??wt,y=Tt(t.env,i.env),w=async()=>{const o=t.batches[v],r=o.batched;if(0===r.entries.length)return;const s={key:r.key,entries:r.entries,events:r.events,data:r.data};r.entries=[],r.events=[],r.data=[];const a=s.entries[0],c={collector:e,logger:u,id:n,config:i,data:void 0,rule:o.isDefault?void 0:a.rule,ingest:a.ingest,env:{...y,...a.respond?{respond:a.respond}:{}},reportError:N(e,"destination",n,u,t)};u.debug("push batch",{events:s.entries.length});const d=t.config.id||n,l=U(e,d),p=F(t.config.breaker),w=(0,f.stepId)("destination",d),b=t=>{p&&V(e.status.breakers,w,t,p.threshold,p.cooldown)},k=Date.now(),S=new Map;let E,O=!1;const _=n=>{const o=t.dlq=t.dlq||[],r={max:t.config.dlqMax??z};let s=0;for(const e of n){s+=P(o,e,r).dropped}if(s>0){const t=G(e.status,(0,f.stepId)("destination",d),"dlq",s);T(o,u,"destination.dlq overflow; oldest entries dropped",{buffer:"dlq",destination:d,cap:r.max,droppedCount:t})}else o.length<r.max&&B(o);l.failed+=n.length,l.dlqSize=o.length,e.status.failed+=n.length};let q=s.entries.length;const C=ge(i.timeout),I=await(0,f.tryCatchAsync)((o,r)=>me(Promise.resolve((0,f.useHooks)(t.pushBatch,"DestinationPushBatch",e.hooks,e.logger)(o,r)),C,`Destination "${n}" batch delivery timed out after ${C}ms`),e=>{q=0,O=!0,E=e,_(s.entries.map(t=>[t.event,e])),b("transport-failure"),u.error("Push batch failed",{error:e instanceof Error?e.message:String(e),entries:s.entries.length})})(s,c);if(j=I,(0,f.isObject)(j)&&Array.isArray(j.failed)&&I.failed.length>0){const e=[];for(const t of I.failed){const n=s.entries[t.index];if(!n||S.has(t.index))continue;const o=t.error??new Error(`Push batch entry ${t.index} failed (no per-row error provided)`);S.set(t.index,o),e.push([n.event,o])}if(e.length>0){_(e),q=Math.max(0,s.entries.length-e.length);const t=new Map;for(const[,n]of e){const e=n instanceof Error&&"code"in n&&"string"==typeof n.code?n.code:n instanceof Error?n.name:"Error",o=t.get(e);o?o.count++:t.set(e,{code:e,count:1,message:n instanceof Error?n.message:String(n)})}u.error("Push batch partial failure",{failed:e.length,delivered:q,entries:s.entries.length,causes:[...t.values()]})}}var j;const A=Date.now();s.entries.forEach((t,o)=>{const r=O||S.has(o),i=g(t.event,t.ingest,e),a=h(e,(0,f.stepId)("destination",n),"destination",r?"error":"flush","string"==typeof t.event.id?t.event.id:"",A,i);if(a.batch={size:s.entries.length,index:o},a.durationMs=A-k,r){const e=O?E:S.get(o);a.error=m(e)}(0,f.emitStep)(e,a)}),u.debug("push batch done"),l.inFlightBatch=Math.max(0,(l.inFlightBatch??0)-s.entries.length),q>0&&(l.count+=q,l.lastAt=Date.now(),e.status.out+=q,b("success"))},b=(0,f.debounce)(w,{wait:a,size:c,age:d});t.batches[v]={batched:o,isDefault:!p,batchFn:()=>{b()},flush:async()=>{await b.flush()}}}const c=t.batches[v];c.batched.entries.push({event:a.event,ingest:r,respond:s,rule:l,data:a.data}),c.batched.events.push(a.event),(0,f.isDefined)(a.data)&&c.batched.data.push(a.data);const d="string"==typeof a.event.id?a.event.id:"",y=g(o,r,e),w=Date.now(),b=h(e,(0,f.stepId)("destination",n),"destination","in",d,w,y);a.mappingKey&&(b.mappingKey=a.mappingKey),a.event.consent&&(b.consent={...a.event.consent}),b.inEvent=a.event,(0,f.emitStep)(e,b);const k=h(e,(0,f.stepId)("destination",n),"destination","out",d,w,y);a.mappingKey&&(k.mappingKey=a.mappingKey),k.outEvent=a.event,k.batch={size:c.batched.entries.length,index:c.batched.entries.length-1},(0,f.emitStep)(e,k);const S=t.config.id||n,E=U(e,S);return E.inFlightBatch=(E.inFlightBatch??0)+1,c.batchFn(),bt}{let s;if(u.debug("push",{event:a.event.name}),("undefined"==typeof __WALKEROS_OBSERVE__||__WALKEROS_OBSERVE__)&&"trace"===e.observeLevel?.()&&Array.isArray(t.calls)&&t.calls.length>0){const e=q({...d.env,simulation:t.calls});d.env=e.wrappedEnv,s=e.calls,e.unresolved.length>0&&(e.wrappedEnv[f.OBSERVE_ENV_KEY]={paths:e.unresolved,record:(t,n)=>e.calls.push({fn:t,args:n,ts:Date.now()})})}const c="string"==typeof a.event.id?a.event.id:"",l=g(o,r,e),p=Date.now(),v=h(e,(0,f.stepId)("destination",n),"destination","in",c,p,l);a.mappingKey&&(v.mappingKey=a.mappingKey),a.event.consent&&(v.consent={...a.event.consent}),v.inEvent=a.event,(0,f.emitStep)(e,v);try{const o=ge(i.timeout),r=await me(Promise.resolve((0,f.useHooks)(t.push,"DestinationPush",e.hooks,e.logger)(a.event,d)),o,`Destination "${n}" delivery timed out after ${o}ms`),g=Date.now(),m=h(e,(0,f.stepId)("destination",n),"destination","out",c,g,l);return m.durationMs=g-p,m.outEvent=a.event,A(m,s),(0,f.isDefined)(r)&&(m.meta={...m.meta,response:r}),a.mappingKey&&(m.mappingKey=a.mappingKey),(0,f.emitStep)(e,m),u.debug("push done"),r}catch(t){const o=Date.now(),r=h(e,(0,f.stepId)("destination",n),"destination","error",c,o,l);throw r.durationMs=o-p,r.error=m(t),A(r,s),a.mappingKey&&(r.mappingKey=a.mappingKey),(0,f.emitStep)(e,r),t}}}function Rt(e){return{ok:!e?.failed,...e}}function Pt(e){const{code:t,config:n={},env:o={},cache:r,state:s}=e,{config:i}=J(e,"before"),{config:a}=J({...e,config:i},"next"),c={...t.config,...n,...a};r&&(c.cache=r),void 0!==s&&void 0===c.state&&(c.state=s);const u=Tt(t.env,o);return{...t,config:c,env:u}}async function $t(e,t={}){const n={};for(const[o,r]of Object.entries(t))S(e,(0,f.stepId)("destination",o),r.config?.state??r.code.config?.state??r.state),r.config?.require?.length?e.pending.destinations[o]=r:n[o]=Pt(r);return n}function Tt(e,t){return e||t?t?e&&(0,f.isObject)(e)&&(0,f.isObject)(t)?{...e,...t}:t:e:{}}var Bt=require("@walkeros/core"),Kt=require("@walkeros/core"),Wt=5e3;async function Lt(e){const t=e.logger;await Ft(e.sources,"source",t),await async function(e,t){const n=Object.entries(e).flatMap(([e,n])=>{const o=n.batches;if(!o)return[];const r=t.scope(n.type||"destination");return Object.values(o).map(async t=>{let n;try{await Promise.race([t.flush(),new Promise((t,o)=>{n=setTimeout(()=>o(new Error(`destination '${e}' batch flush timed out`)),Wt)})])}catch(t){r.error(`destination '${e}' batch flush failed: ${t}`)}finally{n&&clearTimeout(n)}})});await Promise.allSettled(n)}(e.destinations,t),await Ft(e.destinations,"destination",t),await Ft(e.transformers,"transformer",t),await Ft(e.stores,"store",t)}async function Ft(e,t,n){const o=Object.entries(e).map(async([e,o])=>{const r=o.destroy;if(!r)return;const s=o.type||"unknown",i=n.scope(s),a={id:e,config:o.config,env:o.env??{},logger:i};let c;try{await Promise.race([r(a),new Promise((n,o)=>{c=setTimeout(()=>o(new Error(`${t} '${e}' destroy timed out`)),Wt)})])}catch(n){i.error(`${t} '${e}' destroy failed: ${n}`)}finally{c&&clearTimeout(c)}});await Promise.allSettled(o)}function Vt(e,t){e.stateVersion++,e.cellVersion[t]=e.stateVersion}async function Ht(e,t,n){let o,r,s=!1;const i=[],a=Pe(e);try{return await async function(){switch(t){case c.Commands.Config:(0,Kt.isObject)(n)&&((0,Bt.assign)(e.config,n,{shallow:!1,merge:!1}),r=n,s=!0);break;case c.Commands.Consent:if((0,Kt.isObject)(n)){const{update:t}=d(e,n);Vt(e,c.Commands.Consent),r=t,s=!0}break;case c.Commands.Custom:(0,Kt.isObject)(n)&&(e.custom=(0,Bt.assign)(e.custom,n),Vt(e,c.Commands.Custom),r=n,s=!0);break;case c.Commands.Destination:(0,Kt.isObject)(n)&&"code"in n&&(0,Kt.isObject)(n.code)&&(o=await Ot(e,n));break;case c.Commands.Globals:(0,Kt.isObject)(n)&&(e.globals=(0,Bt.assign)(e.globals,n),Vt(e,c.Commands.Globals),r=n,s=!0);break;case c.Commands.Hook:if((0,Kt.isObject)(n)&&(0,Bt.isString)(n.name)&&(0,Bt.isFunction)(n.fn)){const{name:t,fn:o}=n;e.hooks[t]=o,r=n,s=!0}break;case c.Commands.On:if((0,Kt.isObject)(n)&&(0,Bt.isString)(n.type)){const{type:t,rules:o}=n;await Ke(e,t,o)}break;case c.Commands.Ready:s=!0;break;case c.Commands.Run:o=await Xt(e,n,i),s=!0;break;case c.Commands.Session:s=!0;break;case c.Commands.Shutdown:e.hasShutdown||(e.hasShutdown=!0,await Lt(e));break;case c.Commands.User:(0,Kt.isObject)(n)&&((0,Bt.assign)(e.user,n,{shallow:!1}),Vt(e,c.Commands.User),r=n,s=!0);break;default:return e.logger.warn("unknown command",{command:t}),Rt({ok:!1})}if(s){const n=await mt(e,t,void 0,r);i.push(...n.deliveries),_t(n.deliveries);const s=Ct(await It(e),await qt(e,i));if(o&&!1===o.ok){const e={...s.failed??{},...o.failed??{}};o={...s,ok:!1,...Object.keys(e).length>0?{failed:e}:{}}}else o=s}return o||Rt({ok:!0})}()}finally{a()}}function zt(e,t){return{timing:Math.round((Date.now()-e.timing)/10)/100,source:{type:"collector",schema:"4"},...t}}function Ut(e,t,n){return Qt(e,t,n,{globals:e.globals,user:e.user,consent:e.consent})}function Gt(e,t,n){return Qt(e,zt(e,t),n,{globals:{},user:{},consent:{}})}function Qt(e,t,n,o){const r=t.name;if("string"!=typeof r)throw new Bt.InvalidEventError(void 0===r?"Event name is required":"Event name is invalid");if(!r)throw new Bt.InvalidEventError("Event name is required");const[s,i]=r.split(" ");if(!s||!i)throw new Bt.InvalidEventError("Event name is invalid");const{timestamp:a=Date.now(),name:c=`${s} ${i}`,data:u={},context:d={},globals:l={},custom:f={},user:p=o.user,nested:g=[],consent:h=o.consent,id:m=(0,Bt.getSpanId)(),trigger:v="",entity:y=s,action:w=i,timing:b=0,source:k={type:"collector",schema:"4"}}=t,S=k??{type:"collector",schema:"4"},E=S.count??(e.count+=1),O=S.trace??n?._meta.trace??e.trace,_={...S,count:E};void 0!==O&&(_.trace=O);const q=e.name??S.platform??"default",C=e.release??"4.7.2";_.release={...S.release,[q]:C};return{name:c,data:u,context:d,globals:(0,Bt.assign)(o.globals,l),custom:f,user:p,nested:g,consent:h,id:m,trigger:v,entity:y,action:w,timestamp:a,timing:b,source:_}}function Nt(e,t,n){return Ut(e,zt(e,t),n)}async function Yt(e,t){const n=[];return Ct(await Xt(e,t,n),await qt(e,n))}async function Xt(e,t,n){e.allowed=!0,e.timing=Date.now(),e.trace=(0,Bt.getTraceId)(),e.count=0,t&&(t.consent&&(e.consent=(0,Bt.assign)(e.consent,t.consent),Vt(e,c.Commands.Consent)),t.user&&(e.user=(0,Bt.assign)(e.user,t.user),Vt(e,c.Commands.User)),t.globals&&(e.globals=(0,Bt.assign)(e.config.globalsStatic||{},t.globals),Vt(e,c.Commands.Globals)),t.custom&&(e.custom=(0,Bt.assign)(e.custom,t.custom),Vt(e,c.Commands.Custom))),Object.values(e.destinations).forEach(e=>{e.queuePush=[]}),e.queue=[],e.round++,await ke(e);const o=await pt(e);let r=!0;const s={};if(e.preRunQueue.length){const t=e.preRunQueue.splice(0);e.logger.debug("replaying pre-run events",{count:t.length});for(const{event:n,options:o}of t){const t=await e.push(n,o);!1===t.ok&&(r=!1),t.failed&&Object.assign(s,t.failed)}}_t(o);const i=await It(e);if(n.push(...o),r)return i;const a={...i.failed??{},...s};return{...i,ok:!1,...Object.keys(a).length>0?{failed:a}:{}}}var Jt="collector.next";async function Zt(e,t,n={}){const o=n.ingest??(0,l.createIngest)(n.id||"unknown"),r=e.config.next;if(void 0===r)return{copies:[{event:t,ingest:o}],respond:n.respond};const s=await de(e,e.transformers||{},r,t,o,n.respond,Jt),i=s.respond??n.respond;return 0===s.copies.length?(e.logger.debug("Event dropped by collector.next"+(s.droppedBy?` (${s.droppedBy})`:"")),v(e,t,o,{reason:"dropped",by:s.droppedBy,at:Jt}),{copies:[],respond:i,dropped:!0}):s.stopped?{copies:[],respond:i}:{copies:s.copies.map(t=>({event:Gt(e,t.event,t.ingest),ingest:t.ingest})),respond:i}}var en=require("@walkeros/core"),tn=require("@walkeros/core"),nn=require("@walkeros/core");function on(e,t){const n=(0,nn.useHooks)(async(n,o={})=>await(0,nn.tryCatchAsync)(async()=>{if(!e.allowed){const t=R(e.config.queueMax),r=P(e.preRunQueue,{event:n,options:o},{max:t});if(r.dropped>0){const n=G(e.status,"collector.preRun","queue",r.dropped);T(e.preRunQueue,e.logger,"collector.preRunQueue overflow; oldest events dropped",{buffer:"queue",cap:t,droppedCount:n})}else e.preRunQueue.length<t&&B(e.preRunQueue);return e.logger.debug("event held until run",{name:n.name,dropped:r.dropped}),Rt({ok:!0})}const r=Date.now(),{id:s,ingest:i,respond:a,mapping:c,preChain:u,include:d,exclude:l}=o;let f=a,p=n;const g=d||l?function(e,t,n){let o=e;return t&&(o=Object.fromEntries(Object.entries(o).filter(([e])=>t.includes(e)))),n&&(o=Object.fromEntries(Object.entries(o).filter(([e])=>!n.includes(e)))),o}(e.destinations,d,l):void 0;let h=i??(0,nn.createIngest)(s||"unknown");if(c){const t=await(0,nn.processEventMapping)(p,c,e);if(t.ignore)return Rt({ok:!0});if(c.consent){const n=t.event.consent;if(!(0,nn.getGrantedConsent)(c.consent,e.consent,n)){const o=s?`source.${s}`:"collector.push";return e.logger.debug("Event dropped by source consent",{at:o,required:c.consent}),v(e,t.event,h,{reason:"consent",at:o,required:c.consent,consent:{...e.consent,...n}}),Rt({ok:!0,dropped:!0})}}p=t.event}if(void 0!==u){const n=s?`source.${s}.next`:void 0,o=await de(e,e.transformers||{},u,p,h,f,n);if(0===o.copies.length)return e.logger.debug("Event dropped by transformer chain"+(o.droppedBy?` (${o.droppedBy})`:"")),v(e,p,h,{reason:"dropped",by:o.droppedBy,at:n??"collector.push.preChain"}),Rt({ok:!0,dropped:!0});if(o.stopped)return o.respond&&(f=o.respond),Rt({ok:!0});if(o.respond&&(f=o.respond),o.copies.length>1){const n=await Promise.all(o.copies.map(async n=>{const o=Ut(e,t(n.event),n.ingest);return It(e,o,{id:s,ingest:n.ingest,respond:f},g)}));if(s){e.status.sources[s]||(e.status.sources[s]={count:0,duration:0});const t=e.status.sources[s];t.count+=o.copies.length,t.lastAt=Date.now(),t.duration+=Date.now()-r}return n[0]??Rt({ok:!0})}p=o.copies[0].event,h=o.copies[0].ingest}const m=Nt(e,p,h),y=await It(e,m,{id:s,ingest:h,respond:f},g);if(s){e.status.sources[s]||(e.status.sources[s]={count:0,duration:0});const t=e.status.sources[s];t.count++,t.lastAt=Date.now(),t.duration+=Date.now()-r}return y},t=>{if(t instanceof nn.FatalError)throw t;if(t instanceof nn.InvalidEventError){const n=o.id;if(n){e.status.sources[n]||(e.status.sources[n]={count:0,duration:0});const t=e.status.sources[n];t.rejected=(t.rejected??0)+1}return e.logger.warn("invalid event rejected",{error:t.message}),Rt({ok:!1,invalid:!0,error:t.message})}return e.status.failed++,e.logger.error("push failed",{...Q(t),event:n.name}),Rt({ok:!1})})(),"Push",e.hooks,e.logger);return async(t,o)=>{const r="string"==typeof t.id&&""!==t.id?t:{...t,id:(0,nn.getSpanId)()},s="string"==typeof r.id?r.id:"",i=g(r,o?.ingest,e),a=Date.now(),c=h(e,"collector.push","collector","in",s,a,i);c.inEvent=r,(0,nn.emitStep)(e,c);try{const t=await n(r,o),c=Date.now(),u=h(e,"collector.push","collector","out",s,c,i);return u.durationMs=c-a,u.outEvent=t,(0,nn.emitStep)(e,u),t}catch(t){const n=Date.now(),o=h(e,"collector.push","collector","error",s,n,i);throw o.durationMs=n-a,o.error=m(t),(0,nn.emitStep)(e,o),t}}}var rn=require("@walkeros/core");var sn=require("@walkeros/core"),an=1e4,cn=6e4,un=.8;function dn(e={}){const t=e.maxEntries??an,n=e.lowWaterMark??un,o=e.sweepIntervalMs??cn,r=Math.floor(t*n),s=new Map,i={hits:0,misses:0,populates:0,writes:0,deletes:0,evictions_entries:0,evictions_ttl:0};let a;o>0&&(a=setInterval(function(){const e=Date.now();let t=0;for(const[n,o]of s)void 0!==o.expires&&o.expires<=e&&(s.delete(n),t++);i.evictions_ttl+=t},o),a&&"function"==typeof a.unref&&a.unref());return{type:"memory",config:{},get(e){const t=s.get(e);if(t)return void 0!==t.expires&&t.expires<=Date.now()?(s.delete(e),i.evictions_ttl++,void i.misses++):(s.delete(e),s.set(e,t),i.hits++,t.value);i.misses++},set(e,n,o){const a=!s.has(e);a||s.delete(e),s.set(e,{value:n,expires:void 0!==o?Date.now()+o:void 0}),i.writes++,a&&i.populates++,s.size>t&&function(){if(s.size<=t)return;const e=s.size-r;let n=0;for(const t of s.keys()){if(n>=e)break;s.delete(t),n++}i.evictions_entries+=n}()},delete(e){s.delete(e)&&i.deletes++},get counters(){return{...i}},destroy(){void 0!==a&&(clearInterval(a),a=void 0),s.clear()}}}var ln=require("@walkeros/core");function fn(e,t){const{cacheConfig:n,cacheStore:o,namespace:r,logger:s,storeId:i,collector:a}=t,c=(e,t)=>{if(!a)return;const n=h(a,`store.${i}`,"store","in","");n.meta={op:"cache",cached:"hit"===t,status:t,key:e},(0,ln.emitStep)(a,n)},u={hits:0,misses:0,populates:0,writes:0,deletes:0,inflight_dedups:0},d=n.rules.map(e=>({match:e.match?(0,ln.compileMatcher)(e.match):()=>!0,ttl:e.ttl})),l=e=>`${r}:${e}`;function f(e,t){const n=void 0===t?{key:e}:{key:e,value:t};return d.find(e=>e.match(n))}const p=new Map;return{type:e.type,config:e.config,setup:e.setup,get counters(){return{...u}},async get(t){const n=l(t),r=await o.get(n),s=(0,ln.readCacheEnvelope)(r);if(void 0!==s){if(!("expired"in s))return u.hits++,c(t,"hit"),s.value;try{await o.delete(n)}catch(e){g("delete",t,e)}}const i=p.get(n);if(i)return u.inflight_dedups++,c(t,"hit"),i;u.misses++,c(t,"miss");const a=(async()=>{try{const r=await e.get(t);if(void 0===r)return;const s=f(t,r);if(s)try{const e=1e3*s.ttl;await o.set(n,(0,ln.wrapCacheEnvelope)(r,e),e),u.populates++}catch(e){g("set",t,e)}return r}finally{p.delete(n)}})();return p.set(n,a),a},async set(t,n,r){u.writes++,await e.set(t,n,r);const s=f(t,n);if(s)try{const e=1e3*s.ttl;await o.set(l(t),(0,ln.wrapCacheEnvelope)(n,e),e)}catch(e){g("set",t,e)}},async delete(t){u.deletes++,await e.delete(t);try{await o.delete(l(t))}catch(e){g("delete",t,e)}}};function g(e,t,n){const o=`store-cache(${i}): cache ${e} failed for "${t}"; backing succeeded, continuing`;s?s.warn(o,Q(n)):console.warn(o,n)}}function pn(e,t,n){const o=`store.${n}`,r=(0,sn.useHooks)(t.get,"StoreGet",e.hooks,e.logger),s=(0,sn.useHooks)(t.set,"StoreSet",e.hooks,e.logger),i=(0,sn.useHooks)(t.delete,"StoreDelete",e.hooks,e.logger);t.get=async t=>{const n=Date.now(),s=h(e,o,"store","in","",n);s.meta={op:"get",key:t},(0,sn.emitStep)(e,s);try{const s=await r(t),i=Date.now(),a=h(e,o,"store","out","",i);return a.durationMs=i-n,a.meta={op:"get",key:t},(0,sn.emitStep)(e,a),s}catch(r){const s=Date.now(),i=h(e,o,"store","error","",s);throw i.durationMs=s-n,i.meta={op:"get",key:t},i.error=m(r),(0,sn.emitStep)(e,i),r}},t.set=async(t,n,r)=>{const i=Date.now(),a=h(e,o,"store","in","",i);a.meta={op:"set",key:t},(0,sn.emitStep)(e,a);try{await s(t,n,r);const a=Date.now(),c=h(e,o,"store","out","",a);c.durationMs=a-i,c.meta={op:"set",key:t},(0,sn.emitStep)(e,c)}catch(n){const r=Date.now(),s=h(e,o,"store","error","",r);throw s.durationMs=r-i,s.meta={op:"set",key:t},s.error=m(n),(0,sn.emitStep)(e,s),n}},t.delete=async t=>{const n=Date.now(),r=h(e,o,"store","in","",n);r.meta={op:"delete",key:t},(0,sn.emitStep)(e,r);try{await i(t);const r=Date.now(),s=h(e,o,"store","out","",r);s.durationMs=r-n,s.meta={op:"delete",key:t},(0,sn.emitStep)(e,s)}catch(r){const s=Date.now(),i=h(e,o,"store","error","",s);throw i.durationMs=s-n,i.meta={op:"delete",key:t},i.error=m(r),(0,sn.emitStep)(e,i),r}}}async function gn(e,t={}){const n={};for(const[o,r]of Object.entries(t)){const{code:t,config:s={},env:i={}}=r,a=e.logger.scope("store").scope(o),c={collector:e,logger:a,id:o,config:s,env:i,reportError:N(e,"store",o,a)},u=await t(c);n[o]=u}const o=t,r=function(e){const t={};for(const n of Object.keys(e))t[n]="WHITE";const n=[],o=[];function r(s){const i=t[s];if("BLACK"===i)return;if("GRAY"===i){const e=o.indexOf(s),t=o.slice(-1===e?0:e).concat(s).join(" -> ");throw new Error(`Cycle in cache.store chain: ${t}`)}t[s]="GRAY",o.push(s);const a=e[s].cache?.store;if(void 0!==a){if(!(a in e))throw new Error(`Store "${s}" cache.store references "${a}", which is not declared in flow.stores`);r(a)}o.pop(),t[s]="BLACK",n.push(s)}for(const n of Object.keys(e))"WHITE"===t[n]&&r(n);return n}(o);for(const t of r){const r=o[t].cache;if(!r)continue;let s,i;void 0!==r.store?(s=n[r.store],i=r.store):(n.__cache||(n.__cache=dn()),s=n.__cache,i="__cache");const a=r.namespace??t;e.logger.scope("store-cache").scope(t).info(`store "${t}" caches with namespace "${a}:" via ${i}`),n[t]=fn(n[t],{storeId:t,cacheConfig:r,cacheStore:s,namespace:a,logger:e.logger.scope("store-cache").scope(t),collector:e})}for(const[t,o]of Object.entries(n))"__cache"!==t&&pn(e,o,t);return n}async function hn(e){const t=(0,tn.assign)({globalsStatic:{},sessionStatic:{},run:!0,queueMax:1e3},e,{merge:!1,extend:!1}),n={level:e.logger?.level,handler:e.logger?.handler},o=(0,tn.createLogger)(n),r={...t.globalsStatic,...e.globals},s={allowed:!1,config:t,consent:e.consent||{},custom:e.custom||{},destinations:{},transformers:{},stores:{},globals:r,hooks:e.hooks||{},observers:new Set,logger:o,on:{},queue:[],preRunQueue:[],round:0,count:0,stateVersion:0,cellVersion:{},delivery:new WeakMap,session:void 0,status:{startedAt:Date.now(),in:0,out:0,failed:0,sources:{},destinations:{},dropped:{},connectionErrors:{},breakers:{}},timing:Date.now(),user:e.user||{},sources:{},pending:{destinations:{}},hasShutdown:!1,seenEvents:new Set,push:void 0,command:void 0,elb:void 0};void 0!==e.name&&(s.name=e.name),void 0!==e.release&&(s.release=e.release),void 0!==e.next&&(t.next=e.next),s.push=on(s,e=>zt(s,e)),s.command=function(e,t){return(0,rn.useHooks)(async(n,o,r)=>await(0,rn.tryCatchAsync)(async()=>await t(e,n,o,r),t=>{if(t instanceof rn.FatalError)throw t;return e.status.failed++,e.logger.error("command failed",{...Q(t),command:n}),Rt({ok:!1})})(),"Command",e.hooks,e.logger)}(s,Ht),s.elb=function(e){return async(t,n,o,r,s)=>{if("string"==typeof t&&t.startsWith("walker ")){const o=t.replace("walker ","");return e.command(o,n)}let i;if("string"==typeof t)i={name:t},n&&"object"==typeof n&&!Array.isArray(n)&&(i.data=n);else{if(!t||"object"!=typeof t||Array.isArray(t))return Rt({ok:!1});i={...t},n&&"object"==typeof n&&!Array.isArray(n)&&(i.data={...i.data||{},...n})}return o&&"object"==typeof o&&(i.context=o),r&&Array.isArray(r)&&(i.nested=r),s&&"object"==typeof s&&(i.custom=s),e.push(i)}}(s);const i=e.stores||{};return"undefined"==typeof __WALKEROS_STORES__||__WALKEROS_STORES__?(s.stores=await gn(s,i),function(e,t,n){const o=new Map;for(const[n,r]of Object.entries(e))t[n]&&o.set(r,t[n]);if(0!==o.size)for(const e of[n.transformers,n.destinations,n.sources])if(e)for(const t of Object.values(e))r(t.env);function r(e){if(e)for(const[t,n]of Object.entries(e))if("object"==typeof n&&null!==n){const r=o.get(n);r&&(e[t]=r)}}}(i,s.stores,e)):Object.keys(i).length>0&&o.warn("stores: not in this build, config ignored"),s.stores.__cache||(s.stores.__cache=dn()),s.destinations=await $t(s,e.destinations||{}),s.transformers=await async function(e,t={}){const n={};for(const[o,r]of Object.entries(t)){const{code:t,env:s={}}=r;if("undefined"==typeof __WALKEROS_VALIDATE__||__WALKEROS_VALIDATE__){const t=(0,X.validateStepEntry)(r,"Transformer");if(!t.ok){e.logger.warn(`Transformer ${o} invalid (${t.code}): ${t.reason}. Skipping.`);continue}}const{config:i}=J(r,"before"),{config:a}=J({...r,config:i},"next"),c=Object.keys(s).length>0?{...a,env:s}:a,{cache:u}=r,d=u?{...c,cache:u}:c,l=r.config?.state??r.state;S(e,(0,X.stepId)("transformer",o),l);const f=void 0!==l&&void 0===d.state?{...d,state:l}:d,p=e.logger.scope("transformer").scope(o),g={collector:e,logger:p,id:o,ingest:(0,X.createIngest)(o),config:f,env:s,reportError:N(e,"transformer",o,p)},h=(0,X.getTransformerMapping)(r);for(const t of(0,X.getTransformerMappingWarnings)(r))e.logger.warn(`Transformer ${o}: ${t}`);const m=t??(e=>h?{type:"pass",config:e.config,push:async t=>{const n=await(0,X.processEventMapping)(t,h,e.collector);return!n.ignore&&{event:n.event}}}:{type:"pass",config:e.config,push:e=>({event:e})}),v=await m(g);void 0!==r.before&&void 0===v.config?.before&&(v.config={...v.config??{},before:r.before}),void 0!==r.next&&void 0===v.config?.next&&(v.config={...v.config??{},next:r.next}),void 0!==l&&void 0===v.config?.state&&(v.config={...v.config??{},state:l}),n[o]=v}return n}(s,e.transformers||{}),s}var mn=globalThis;function vn(e){try{const t=mn.window;if(!t)return;t.localStorage.getItem(en.OBSERVE_STORAGE_KEY)===e&&t.localStorage.removeItem(en.OBSERVE_STORAGE_KEY)}catch{}}function yn(e,t){return void 0===t?e:n=>e({...n,release:t})}function wn(e,t){const n=t.observe;if(!n)return;const o=e.name??"default";if("binding"in n){const t=function(){const e=mn.window,t=mn.URLSearchParams;if(!e||!t)return null;try{const n=new t(e.location.search.replace(/^\?/,"")).getAll(en.OBSERVE_STORAGE_KEY);return n.length>0?n[n.length-1]??null:null}catch{return null}}(),r=t??function(){try{return mn.window?.localStorage.getItem(en.OBSERVE_STORAGE_KEY)??null}catch{return null}}();if(!r)return;const s=(0,en.parseObserveCredential)(r);if(!s)return void(null===t?(e.logger.warn("observe: malformed stored credential cleared"),vn(r)):e.logger.warn("observe: malformed credential ignored"));if(s.pb!==n.binding)return void e.logger.warn("observe: credential binding mismatch, credential ignored");let i;!function(e){try{mn.window?.localStorage.setItem(en.OBSERVE_STORAGE_KEY,e)}catch{}}(r),null!==t&&function(){const e=mn.window,t=mn.URLSearchParams;if(e&&t)try{const n=e.location.href,o=n.indexOf("#"),r=o>=0?n.slice(o):"",s=o>=0?n.slice(0,o):n,i=s.indexOf("?"),a=i>=0?s.slice(0,i):s,c=new t(i>=0?s.slice(i+1):"");c.delete(en.OBSERVE_STORAGE_KEY);const u=c.toString();e.history.replaceState({},"",`${a}${u?`?${u}`:""}${r}`)}catch{}}();const a=(0,en.createBatchedPoster)({url:`${n.url}/ingest/${s.ses}`,token:s.secret,headers:{"X-Walkeros-Binding":n.binding},onStatus:t=>{401===t&&(vn(r),i&&e.observers.delete(i))}});i=(0,en.createTelemetryObserver)(function(e,t){return void 0===t?e:n=>e({...n,flowId:t})}(yn(a,e.release),n.flowId),{flowId:n.flowId??o,...void 0!==n.level?{level:n.level}:{},...void 0!==n.sample?{sample:n.sample}:{}}),e.observers.add(i);const c=n.level;return void(void 0!==c&&(e.observeLevel=()=>c))}if("off"===n.level)return;const r=n.level;void 0!==r&&(e.observeLevel=()=>r),e.observers.add((0,en.createTelemetryObserver)(yn((0,en.createBatchedPoster)({url:`${n.url}/ingest/${n.sessionId}`,token:n.token}),e.release),{flowId:o,level:n.level,sample:n.sample}))}async function bn(e){const t=e??{},n=await hn(t);if(t.observers)for(const e of t.observers)n.observers.add(e);"undefined"==typeof __WALKEROS_OBSERVE__||__WALKEROS_OBSERVE__?wn(n,t):t.observe&&n.logger.warn("observe: not in this build, config ignored"),await be(n,t.sources||{});const{consent:o,user:r,globals:s,custom:i}=t;o&&await n.command("consent",o),r&&await n.command("user",r),s&&await n.command("globals",s),i&&await n.command("custom",i),n.config.run&&await n.command("run");let a=n.elb;const c=Object.values(n.sources),u=c.find(e=>e.config.primary);return u?a=u.push:c.length>0&&(a=c[0].push),{collector:n,elb:a}}//# sourceMappingURL=index.js.map
|
|
1
|
+
"use strict";var e,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,s={};((e,n)=>{for(var o in n)t(e,o,{get:n[o],enumerable:!0})})(s,{Code:()=>i,Commands:()=>a,Const:()=>c,DEFAULT_BREAKER_COOLDOWN_MS:()=>W,DEFAULT_BREAKER_THRESHOLD:()=>K,DEFAULT_DLQ_MAX:()=>z,addDestination:()=>Ot,buildReportError:()=>N,bumpDropped:()=>G,callDestinationOn:()=>We,commonHandleCommand:()=>Ht,completeEvent:()=>Gt,createEvent:()=>Ut,createPush:()=>on,createPushResult:()=>Rt,destinationInit:()=>Dt,destinationPush:()=>Mt,enrichEvent:()=>Nt,ensureDestStatus:()=>U,enterCascade:()=>Pe,errorMeta:()=>Q,fireCallbacks:()=>ot,flushSourceQueueOn:()=>ve,getCacheStore:()=>w,initDestinations:()=>$t,initSource:()=>we,initSources:()=>be,isBreakerProbePermitted:()=>H,isRequireSatisfied:()=>Ae,isSourceStarted:()=>ye,isStateDelivery:()=>Ie,isStatePresent:()=>je,mergeEnvironments:()=>Tt,on:()=>Ke,onApply:()=>gt,prepareEvent:()=>zt,processConsent:()=>d,pushToDestinations:()=>It,redeliverStateAtRun:()=>ft,registerDestination:()=>Pt,resolveBreakerConfig:()=>F,runCollector:()=>Yt,runCollectorNext:()=>Zt,runTransformerBefore:()=>le,runTransformerChain:()=>de,setMark:()=>De,shouldDeliver:()=>Me,startFlow:()=>bn,transformerInit:()=>Z,transformerPush:()=>ee,wrapEnv:()=>q}),module.exports=(e=s,((e,s,i,a)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let c of o(s))r.call(e,c)||c===i||t(e,c,{get:()=>s[c],enumerable:!(a=n(s,c))||a.enumerable});return e})(t({},"__esModule",{value:!0}),e));var i={},a={Action:"action",Actions:"actions",Config:"config",Consent:"consent",Context:"context",Custom:"custom",Destination:"destination",Elb:"elb",Globals:"globals",Hook:"hook",Init:"init",Link:"link",On:"on",Prefix:"data-elb",Ready:"ready",Run:"run",Scoped:"_",Session:"session",Shutdown:"shutdown",User:"user",Walker:"walker"},c={Commands:a,Utils:{Storage:{Cookie:"cookie",Local:"local",Session:"session"}}},u=require("@walkeros/core");function d(e,t){const n={};return Object.entries(t).forEach(([e,t])=>{n[e]=!!t}),e.consent=(0,u.assign)(e.consent,n),{update:n}}var l=require("@walkeros/core"),f=require("@walkeros/core"),p=require("@walkeros/core");function g(e,t,n){return{traceId:e.source?.trace??t?._meta.trace??n.trace,sourceId:t?._meta.path[0],parentEventId:t?._meta.parentEventId}}function h(e,t,n,o,r,s=Date.now(),i){const a={flowId:e.name??"default",stepId:t,stepType:n,phase:o,eventId:r,timestamp:new Date(s).toISOString(),elapsedMs:s-e.status.startedAt};return i?.traceId&&(a.traceId=i.traceId),i?.sourceId&&(a.sourceId=i.sourceId),i?.parentEventId&&(a.parentEventId=i.parentEventId),a}function m(e){return e instanceof Error?{name:e.name,message:e.message}:{message:String(e)}}function v(e,t,n,o){e.status.in++;const r=h(e,"collector.push","collector","skip","string"==typeof t.id?t.id:"",Date.now(),g(t,n,e));r.skipReason=o.reason,"consent"===o.reason?(r.consent={...o.consent},r.meta={at:o.at,required:{...o.required}}):r.meta={by:o.by??"route",at:o.at},(0,p.emitStep)(e,r)}var y=require("@walkeros/core");function w(e,t){return e.storeId&&t.stores[e.storeId]?t.stores[e.storeId]:t.stores.__cache}function b(e){return("undefined"==typeof __WALKEROS_STATE__||__WALKEROS_STATE__)&&e?(0,y.compileState)(e):void 0}function k(e,t,n,o){return"undefined"==typeof __WALKEROS_STATE__||__WALKEROS_STATE__?(0,y.applyState)(t,t=>function(e,t){return e?t.stores[e]:t.stores.__cache}(t,e),n,e,o):Promise.resolve(n)}function S(e,t,n){"undefined"==typeof __WALKEROS_STATE__||__WALKEROS_STATE__||void 0===n||e.logger.warn(`state: not in this build, ${t} state ignored`)}var E=require("@walkeros/core"),O=8;function _(e,t,n){if(null===e||"object"!=typeof e)return e;if(n>=O||!function(e){if(Array.isArray(e))return!0;const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(e))return e;const o=t.get(e);if(void 0!==o)return o;if(Array.isArray(e)){const o=[];t.set(e,o);for(const r of e)o.push(_(r,t,n+1));return o}const r={};t.set(e,r);for(const[o,s]of Object.entries(e))r[o]="function"==typeof s?s:_(s,t,n+1);return r}function q(e){const{simulation:t,...n}=e,o={},r=new WeakMap;for(const[e,t]of Object.entries(n))o[e]="function"==typeof t?t:_(t,r,1);const s=(0,E.observeEnv)(o,t);return{wrappedEnv:s.env,calls:s.calls,unresolved:s.unresolved}}var C=6;function I(e,t){try{return e[t]}catch{return"[unreadable]"}}function j(e){const t=new WeakSet,n=(e,o)=>{if(null===e)return null;if("function"==typeof e)return"[function]";if("string"==typeof e||"boolean"==typeof e)return e;if("number"==typeof e)return Number.isFinite(e)?e:null;if("bigint"==typeof e)return String(e);if("object"!=typeof e)return;const r=e;if(t.has(r))return"[circular]";if(o>=C)return"[truncated]";let s;t.add(r);try{if(Array.isArray(r))s=r.map(e=>n(e,o+1));else if(function(e){const t=Object.getPrototypeOf(e);return t===Object.prototype||null===t}(r)){const e={};for(const t of Object.keys(r))e[t]=n(I(r,t),o+1);s=e}else s=function(e){try{return String(e)}catch{return"[object]"}}(r)}catch{s="[unreadable]"}return t.delete(r),s};return e.map(e=>n(e,0))}function A(e,t){("undefined"==typeof __WALKEROS_OBSERVE__||__WALKEROS_OBSERVE__)&&t&&t.length>0&&(e.calls=function(e){return e.map(e=>({fn:e.fn,args:j(e.args),ts:e.ts}))}(t))}var x=require("@walkeros/core"),D=require("@walkeros/core"),M=require("@walkeros/core");function R(e){if(void 0===e)throw new Error("Collector.Config.queueMax is undefined; defaults must be seeded by collector()");return e}function P(e,t,n,o){if(!Number.isFinite(n.max)||n.max<=0)throw new Error(`pushBounded: max must be > 0 (got ${n.max})`);if("dropNewest"===(n.onOverflow??"dropOldest"))return e.length>=n.max?(o&&o([t]),{appended:!1,dropped:1}):(e.push(t),{appended:!0,dropped:0});const r=[];for(;e.length>=n.max;)r.push(e.shift());return e.push(t),r.length>0&&o&&o(r),{appended:!0,dropped:r.length}}var $=new WeakMap;function T(e,t,n,o){$.get(e)||($.set(e,!0),t.warn(n,o))}function B(e){$.delete(e)}var K=5,W=3e4,L=()=>Date.now();function F(e){if(void 0!==e)return"number"==typeof e?{threshold:e,cooldown:W}:{threshold:e.threshold??K,cooldown:e.cooldown??W}}function V(e,t,n,o,r){if("partial"===n)return;const s=function(e,t){return e[t]||(e[t]={state:"closed",consecutiveFailures:0}),e[t]}(e,t);return"success"===n?(s.consecutiveFailures=0,s.state="closed",s.probing=!1,void(s.openUntil=void 0)):(s.consecutiveFailures+=1,"half-open"===s.state?(s.state="open",s.probing=!1,void(s.openUntil=L()+r)):void(s.consecutiveFailures>=o&&(s.state="open",s.probing=!1,s.openUntil=L()+r)))}function H(e,t){return!e||("closed"===e.state||"half-open"===e.state||void 0!==e.openUntil&&t>=e.openUntil)}var z=100;function U(e,t){return e.status.destinations[t]||(e.status.destinations[t]={count:0,failed:0,duration:0,queuePushSize:0,dlqSize:0}),e.status.destinations[t]}function G(e,t,n,o){e.dropped[t]||(e.dropped[t]={});const r=e.dropped[t];return r[n]=(r[n]??0)+o,r[n]}function Q(e){const t={error:e instanceof Error?e.message:String(e)};if(e instanceof Error&&e.name&&"Error"!==e.name&&(t.name=e.name),"object"==typeof e&&null!==e&&"code"in e){const n=e;"number"!=typeof n.code&&"string"!=typeof n.code||(t.code=n.code)}return t}function N(e,t,n,o,r){const s=(0,M.stepId)(t,n);return(t,i)=>{try{if(i)return r?function(e,t,n,o,r,s){const i=t.dlq=t.dlq||[],a={max:t.config.dlqMax??z},c=P(i,[o,r],a);if(c.dropped>0){const t=G(e.status,(0,M.stepId)("destination",n),"dlq",c.dropped);T(i,s,"destination.dlq overflow; oldest entries dropped",{buffer:"dlq",destination:n,cap:a.max,droppedCount:t})}else i.length<a.max&&B(i);const u=U(e,n);u.failed++,u.dlqSize=i.length,e.status.failed++;const d=F(t.config.breaker);if(d){const o=t.config.id||n;V(e.status.breakers,(0,M.stepId)("destination",o),"transport-failure",d.threshold,d.cooldown)}}(e,r,n,i,t,o):e.status.failed++,void o.error("report error",{...Q(t),event:i.name});e.status.connectionErrors[s]=(e.status.connectionErrors[s]??0)+1,o.error("connection error",Q(t))}catch{}}}var Y=require("@walkeros/core"),X=require("@walkeros/core");function J(e,t){const n=e.config||{},o=e[t];return void 0!==o?{config:{...n,[t]:o},chainValue:o}:{config:n,chainValue:void 0}}async function Z(e,t,n){if(t.init&&!t.config.init){const o=t.type||"unknown",r=e.logger.scope(`transformer:${o}`),s={collector:e,logger:r,id:n,ingest:(0,X.createIngest)(n),config:t.config,env:fe(t.config.env),reportError:N(e,"transformer",n,r)};r.debug("init");const i=await(0,X.useHooks)(t.init,"TransformerInit",e.hooks,e.logger)(s);if(!1===i)return!1;t.config={...i||t.config,env:i?.env||t.config.env,init:!0},r.debug("init done")}return!0}async function ee(e,t,n,o,r,s){const i=t.type||"unknown",a=e.logger.scope(`transformer:${i}`),c={collector:e,logger:a,id:n,ingest:r,config:t.config,env:{...fe(t.config.env),...s?{respond:s}:{}},reportError:N(e,"transformer",n,a)};a.debug("push",{event:o.name});const u="string"==typeof o.id?o.id:"",d=g(o,r,e),l=Date.now(),f=h(e,(0,X.stepId)("transformer",n),"transformer","in",u,l,d);f.inEvent=o,(0,X.emitStep)(e,f);try{const r=await(0,X.useHooks)(t.push,"TransformerPush",e.hooks,e.logger)(o,c),s=Date.now(),i=h(e,(0,X.stepId)("transformer",n),"transformer","out",u,s,d);return i.durationMs=s-l,i.outEvent=r,(0,X.emitStep)(e,i),a.debug("push done"),r}catch(t){const o=Date.now(),r=h(e,(0,X.stepId)("transformer",n),"transformer","error",u,o,d);throw r.durationMs=o-l,r.error=m(t),(0,X.emitStep)(e,r),t}}var te=256;function ne(e){return"string"==typeof e.id?e.id:""}function oe(e,t){const n=ne(e);return""!==n&&""===ne(t)?{...t,id:n}:t}function re(e,t,n,o){const r=function(e){return{...e,_meta:{...e._meta,path:[...e._meta.path]}}}(n),s=(0,X.clone)(t),i=ne(e);if(""===i)return{event:s,ingest:r};r._meta.parentEventId=i;const a=ne(s);return""!==a&&a!==i||(s.id=(0,X.deriveSpanId)(i,o)),{event:s,ingest:r}}function se(e,t){return{copies:e,respond:t}}function ie(e,t){if(void 0===t)return e.rest;const n=e.ownNext?e.rest.slice(1):e.rest;return[{route:t,ancestry:e.ancestry},...n]}async function ae(e,t,n){const o=await Promise.all(t.map((t,n)=>(0,X.tryCatchAsync)(ce,t=>(e.collector.logger.scope("transformer:fork").error(`fork ${n} failed`,Q(t)),{copies:[]}))(e,t))),r=[];let s,i=n,a=o.length>0;return o.forEach((e,n)=>{void 0!==t[n].respond&&e.respond&&(i=e.respond),e.stopped||(a=!1),e.stopped||0===e.copies.length?void 0===s&&(s=e.droppedBy):r.push(...e.copies)}),0===r.length?{copies:r,respond:i,...a?{stopped:!0}:{},...void 0!==s?{droppedBy:s}:{}}:se(r,i)}async function ce(e,t){const{ingest:n}=t;let{stack:o,event:r,respond:s}=t,i=t.resume;for(;;){let t,a;if(i)t=i.member,a=i,i=void 0;else{const i=(0,X.advanceChain)(o,(0,X.createMappingRoot)(n,r),e.transformers);if("done"===i.kind)return se([{event:r,ingest:n}],s);if("stop"===i.kind)return{copies:[],respond:s,stopped:!0,...void 0!==i.owner?{droppedBy:i.owner}:{}};if("fork"===i.kind){const t=r;return ae(e,i.branches.map((e,o)=>({stack:e,...re(t,t,n,o),respond:void 0})),s)}const a=e.transformers[i.id];t={id:i.id,ancestry:i.ancestry,rest:i.rest,ownNext:!!a&&void 0!==a.config.next}}const c=await ue(e,t,r,n,s,a);if("halt"===c.kind)return c.result;if("fork"===c.kind)return ae(e,c.copies,s);r=c.event,s=c.respond,o=c.stack}}async function ue(e,t,n,o,r,s){const{collector:i,transformers:a,chainContext:c}=e,u=t.id,d=a[u];let l=n,f=r;const p=(e=t.rest)=>({kind:"continue",event:oe(n,l),respond:f,stack:e}),g=e=>({kind:"halt",result:e});if(!d)return i.logger.warn(`Transformer not found: ${u}`),p();const h=d.config?.cache,m=h?(0,X.compileCache)(h):void 0,v=m?w(m,i):void 0;let y=s?.cacheMiss;if(!s){if(o._meta.path.length>te)return i.logger.error(`Max path length exceeded at ${u}`),g({copies:[],respond:f});o._meta.hops++,o._meta.path.push(u);if(!await(0,X.tryCatchAsync)(Z,e=>{if(e instanceof X.FatalError)throw e;return i.status.failed++,i.logger.scope(`transformer:${d.type||"unknown"}`).error("transformer init failed",{transformer:u,...Q(e)}),!1})(i,d,u))return g({copies:[],respond:f});if(c&&void 0!==d.config?.chainMocks?.[c]){const e=d.config.chainMocks[c];return i.logger.scope(`transformer:${d.type||"unknown"}`).debug("chainMock",{chain:c}),l=e,p()}if(void 0!==d.config?.mock)return i.logger.scope(`transformer:${d.type||"unknown"}`).debug("mock"),l=d.config.mock,p();if(d.config?.disabled)return p();if(m&&v){const e=await(0,X.checkCache)(m,v,(0,X.createMappingRoot)(o,l));if("HIT"===e?.status&&e.value){if(l=e.value,m.stop){return g({copies:[{event:oe(n,l),ingest:o}],respond:f,stopped:!0})}return p()}"MISS"===e?.status&&(y={key:e.key,ttl:e.rule.ttl})}if(void 0!==d.config.before){const e=await le(i,a,u,l,o,f,c),n=e.respond??f;if(0===e.copies.length||e.stopped)return g({...e,respond:n});f=n;const[r]=e.copies;if(e.copies.length>1||r.ingest!==o){const n={member:t,cacheMiss:y};return{kind:"fork",copies:e.copies.map(e=>({stack:t.rest,event:e.event,ingest:e.ingest,respond:void 0,resume:n}))}}l=r.event}}const S=b(d.config?.state),E=S?.filter(e=>"get"===e.mode),O=S?.filter(e=>"set"===e.mode),_=async e=>O&&0!==O.length?k(i,O,e,o):e;E&&E.length>0&&(l=await k(i,E,l,o));const q=await(0,X.tryCatchAsync)(ee,e=>(i.status.failed++,i.logger.scope(`transformer:${d.type||"unknown"}`).error("Push failed",Q(e)),!1))(i,d,u,l,o,f);if(!1===q)return g({copies:[],respond:f,droppedBy:u});if(Array.isArray(q)&&1!==q.length){if(0===q.length)return g({copies:[],respond:f});const e=l,n=[];for(let r=0;r<q.length;r++){const s=q[r],i=await _(s.event||e);n.push({stack:ie(t,s.next),...re(e,i,o,r),respond:f})}return{kind:"fork",copies:n}}const C=Array.isArray(q)?q[0]:q;let I;return C&&"object"==typeof C&&(C.respond&&(f=C.respond),C.event&&(l=C.event),I=C.next),l=await _(l),y&&v&&(0,X.storeCache)(v,y.key,l,y.ttl),p(ie(t,I))}async function de(e,t,n,o,r,s,i){const a=r??(0,X.createIngest)("string"==typeof n?n:"chain");return void 0===n?se([{event:o,ingest:a}],s):(i&&(a._meta.chainPath=i),ce({collector:e,transformers:t,chainContext:i},{stack:(0,X.isChainContinuation)(n)?n:(0,X.startChain)(n),event:o,ingest:a,respond:s}))}async function le(e,t,n,o,r,s,i){const a=t[n],c=a?a.config.before:void 0,u=await de(e,t,c,o,r,s,i);return u.stopped&&0===u.copies.length&&!u.droppedBy?{...u,droppedBy:n}:u}function fe(e){return e&&(0,X.isObject)(e)?e:{}}var pe=1e4;function ge(e){return"number"==typeof e&&e>0?e:pe}var he=class extends Error{constructor(e){super(e),this.name="DestinationTimeoutError"}};function me(e,t,n){let o;const r=new Promise((e,r)=>{o=setTimeout(()=>r(new he(n)),t)});return Promise.race([e,r]).finally(()=>{o&&clearTimeout(o)})}async function ve(e,t,n){if(!t.on||!t.queueOn?.length)return;const o=t.queueOn;t.queueOn=[];const r=n||t.config?.id||"unknown";for(const{type:n,data:s}of o){if(Ie(n)&&!Me(e,t,n))continue;const o=t.on;let i=!1;await(0,Y.tryCatchAsync)(()=>me(Promise.resolve(o(n,s)),pe,`Source "${r}" on(${n}) did not settle within ${pe}ms`),t=>{if(t instanceof Y.FatalError)throw t;t instanceof he?i=!0:e.status.failed++,e.logger.scope("source").error("source on flush failed",{sourceId:r,type:n,...Q(t)})})(),Ie(n)&&!i&&De(e,t,n)}}function ye(e){return Boolean(e.config.init)&&!e.config.require?.length}async function we(e,t,n){const{code:o,config:r={},env:s={},primary:i,next:a,before:c,cache:u,terminus:d}=n,l=r.state??n.state,f=b(l);S(e,(0,Y.stepId)("source",t),l);const p=u,g=p?(0,Y.compileCache)({...p,stop:p.stop??!0}):void 0,h=d??e.push,m=Boolean(d),y=async(n,o,s)=>{if(m)return h(n);let i;const u="string"==typeof n.id&&""!==n.id?n:{...n,id:(0,Y.getSpanId)()};let d=[{event:u,ingest:s.ingest}];if(void 0!==c){const n=`source.${t}.before`,o=await de(e,e.transformers||{},c,u,s.ingest,s.respond,n);if(0===o.copies.length)return v(e,u,s.ingest,{reason:"dropped",by:o.droppedBy,at:n}),Rt({ok:!0,dropped:!0});if(o.stopped)return o.respond&&(s.respond=o.respond),{ok:!0};o.respond&&(s.respond=o.respond),d=o.copies}if(g){const t=w(g,e);if(t){const n=(0,Y.createMappingRoot)(s.ingest),o=await(0,Y.checkCache)(g,t,n);if(o){if("HIT"===o.status&&void 0!==o.value&&g.stop){let t=o.value;return o.rule.update&&(t=await(0,Y.applyUpdate)(t,o.rule.update,{...n,cache:{status:"HIT"}},e)),s.respond?.(t),{ok:!0}}if("MISS"===o.status&&g.stop&&s.respond){const r=s.respond,a=o.rule.update,c={...n,cache:{status:"MISS"}},u=o.key,d=o.rule.ttl,l=n=>{(0,Y.storeCache)(t,u,n,d),a?i=(async()=>{const t=await(0,Y.applyUpdate)(n,a,c,e);r(t)})():r(n)};s.respond=l}"MISS"!==o.status||g.stop||(0,Y.storeCache)(t,o.key,!0,o.rule.ttl)}}}f&&f.length>0&&(d=await Promise.all(d.map(async t=>({event:await k(e,f,t.event,t.ingest),ingest:t.ingest}))));let l={ok:!0};for(const e of d)l=await h(e.event,{...o,id:t,ingest:e.ingest,respond:s.respond,mapping:r,preChain:a});return i&&await i,l},E=async n=>{const o=(0,Y.createIngest)(t),s=(0,Y.parseTraceparent)((0,Y.isScope)(n)?n?.headers?.traceparent:void 0);if(s&&(o._meta.trace=s.trace,o._meta.parentEventId=s.parentSpan),!r.ingest||void 0===n)return o;const i=await(0,Y.getMappingValue)(n,r.ingest,{collector:e});return{...o,...i,_meta:o._meta}},O=e.logger.scope("source").scope(t),_={...s,push:async(e,n={})=>{const o={ingest:(0,Y.createIngest)(t),respond:void 0};return y(e,n,o)},command:e.command,sources:e.sources,elb:e.elb,logger:O},q={collector:e,logger:O,id:t,config:r,env:_,withScope:async(e,t,n)=>{const o={ingest:await E(e),respond:t};return n({..._,push:(e,t={})=>y(e,t,o),ingest:o.ingest,respond:o.respond})},reportError:N(e,"source",t,O)},C=await(0,Y.tryCatchAsync)(o,n=>{if(n instanceof Y.FatalError)throw n;e.status.failed++,e.logger.scope("source").error("source factory failed",{sourceId:t,...Q(n)})})(q);if(!C)return;const I=C.type||"unknown",j=e.logger.scope(I).scope(t);return _.logger=j,i&&(C.config={...C.config,primary:i}),C}async function be(e,t={}){const n={};for(const[o,r]of Object.entries(t)){const t=await we(e,o,r);if(!t)continue;const s=r.config?.require;t.config={...t.config,init:!1,...s?{require:[...s]}:{}},n[o]=t}Object.assign(e.sources,n);for(const t of Object.keys(n)){const n=e.sources[t];let o=!1;n.init&&await(0,Y.tryCatchAsync)(n.init.bind(n),n=>{if(n instanceof Y.FatalError)throw n;o=!0,e.status.failed++,e.logger.scope("source").error("source init failed",{sourceId:t,...Q(n)})})(),o||(n.config.init=!0,ye(n)&&await ve(e,n,t))}return await ke(e),n}async function ke(e){for(const[t,n]of Object.entries(e.sources)){if(ye(n))continue;const o=n.config.require;if(!o?.length)continue;const r=o.filter(t=>!Ae(e,t));r.length!==o.length&&(n.config.require=r,ye(n)&&await ve(e,n,t))}for(const[t,n]of Object.entries(e.pending.destinations)){if(!e.pending.destinations[t]||e.destinations[t])continue;const o=n.config?.require;if(!o)continue;const r=o.filter(t=>!Ae(e,t));if(n.config&&(n.config.require=r),r.length>0)continue;delete e.pending.destinations[t];const s=Pt(n);!1!==s.config.queue&&(s.queuePush=[...e.queue]),e.destinations[t]=s,await dt(e,s,t)}}function Se(e){if("object"!=typeof e||null===e)return!1;if(!("logger"in e))return!1;const t=e.logger;return"object"==typeof t&&null!==t&&("scope"in t&&"function"==typeof t.scope)}var Ee=!1;function Oe(){Ee||(Ee=!0,"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn("walkerOS: ignored an on-dispatch call with a non-collector argument"))}function _e(e,t,n,o){if(n instanceof x.FatalError)throw n;e.logger.scope("on").error("on callback failed",{kind:t,...o,...Q(n)})}var qe=["consent","user","globals","custom"];function Ce(e){return qe.includes(e)}function Ie(e){return Ce(e)}function je(e,t){return Ce(t)&&Object.keys(e[t]).length>0}function Ae(e,t){if(Ce(t))return je(e,t);switch(t){case c.Commands.Run:case c.Commands.Ready:return!0===e.allowed;default:return e.seenEvents.has(String(t))}}function xe(e,t){return e.cellVersion?.[String(t)]??0}function De(e,t,n){nt(e,t,n,xe(e,n))}function Me(e,t,n){return e.allowed&&xe(e,n)>function(e,t,n){const o=e.delivery.get(t),r=o?.[String(n)];return void 0===r?-1:r}(e,t,n)}var Re=8;function Pe(e){const t=e.cascade;if(t&&!$e.has(t))return()=>{};const n=t||{counts:new WeakMap};e.cascade=n,$e.set(n,($e.get(n)||0)+1);let o=!1;return()=>{if(o)return;o=!0;const t=($e.get(n)||1)-1;t>0?$e.set(n,t):($e.delete(n),e.cascade===n&&(e.cascade=void 0))}}var $e=new WeakMap;function Te(e,t,n){const o=e.cascade;if(!o)return!0;let r=o.counts.get(t);r||(r={},o.counts.set(t,r));const s=String(n),i=(r[s]||0)+1;return r[s]=i,i<=Re||(i===Re+1&&e.logger.error("state delivery did not converge",{type:s}),!1)}function Be(e,t){return{collector:e,logger:e.logger.scope("on").scope(String(t))}}async function Ke(e,t,n){if(!Se(e))return void Oe();const o=e.on,r=o[t]||[],s=(0,x.isArray)(n)?n:[n];s.forEach(e=>{r.push(e)}),o[t]=r,ot(e,t,s)}async function We(e,t,n,o,r){const s=t.on;if(!s)return!0;const i=Ie(o);if(i&&(Le.get(t)||Fe.has(t)))return Je(e,t,o),Le.get(t)||Ve.add(t),!1;const a=i?xe(e,o):0,c=i&&function(e,t,n,o){if(Ne.get(t)?.has(String(n)))return!0;const r=e.delivery?.get(t)?.[String(n)];return void 0===r||r<o-1}(e,t,o,a)?rt(e,o):r,u=t.type||"unknown",d=e.logger.scope(u).scope("on").scope(o),l={collector:e,logger:d,id:n,config:t.config,data:c,env:Tt(t.env,t.config.env),reportError:N(e,"destination",n,d,t)};i&&(et(t,o),function(e,t,n){let o=Ge.get(e);o||(o={},Ge.set(e,o));const r=String(t),s=o[r];(void 0===s||s<n)&&(o[r]=n)}(t,o,a),Fe.add(t));const f=ge(t.config.timeout);let p=Promise.resolve(),g=!0,h=!1,m=!0;try{await(0,D.tryCatchAsync)(()=>(p=Promise.resolve(s(o,l)),me(p,f,`Destination "${n}" on(${o}) did not settle within ${f}ms`)),t=>{g=!1,t instanceof he&&(h=!0),_e(e,"destination",t,{destId:n,type:o})})(),m=!1}finally{if(i){Fe.delete(t),m&&Ve.delete(t);const r=Ne.get(t);g?(nt(e,t,o,a),r?.delete(String(o))):Je(e,t,o),h?function(e,t,n,o,r,s,i){Le.set(t,(Le.get(t)||0)+1);const a=()=>{const s=(Le.get(t)||0)-1;s>0?Le.set(t,s):Le.delete(t),Ye(t,o),Qe(t,o,r),tt(e,t),i.debug("late settle after timeout"),Ve.delete(t),e.allowed&&e.destinations[n]===t&&function(e,t,n,o){(0,D.tryCatchAsync)(async()=>{await dt(e,t,n),!ze(t)&&t.queuePush?.length&&await It(e,void 0,{},{[n]:t})},e=>{o.error("state recovery failed",Q(e))})()}(e,t,n,i)};s.then(a,a)}(e,t,n,o,a,p,d):(Qe(t,o,a),tt(e,t))}}return i&&!h&&Ve.delete(t)&&await dt(e,t,n),g}var Le=new WeakMap,Fe=new WeakSet,Ve=new WeakSet;var He=new WeakMap;function ze(e){return He.get(e)}var Ue=new WeakMap,Ge=new WeakMap;function Qe(e,t,n){const o=Ge.get(e);o&&o[String(t)]===n&&delete o[String(t)]}var Ne=new WeakMap;function Ye(e,t){const n=Ne.get(e);n?n.add(String(t)):Ne.set(e,new Set([String(t)]))}var Xe=new WeakMap;function Je(e,t,n){!function(e,t,n){const o=e.delivery?.get(t);o&&delete o[String(n)]}(e,t,n),Ye(t,n),He.set(t,{type:n,since:Date.now()})}function Ze(e,t){return!!Ne.get(t)?.size||qe.some(n=>je(e,n)&&Me(e,t,n))}function et(e,t){Ue.set(e,(Ue.get(e)||0)+1),He.set(e,{type:t,since:Date.now()})}function tt(e,t){const n=(Ue.get(t)||0)-1;n>0?Ue.set(t,n):Ue.delete(t),function(e,t){if(!He.has(t))return;if(Ue.get(t))return;Ze(e,t)||He.delete(t)}(e,t)}function nt(e,t,n,o){let r=e.delivery.get(t);r||(r={},e.delivery.set(t,r));const s=String(n),i=r[s];(void 0===i||i<o)&&(r[s]=o)}function ot(e,t,n,o){if(!Se(e))return void Oe();const r=rt(e,t,o);if(n.length)switch(t){case c.Commands.Consent:!function(e,t,n){const o=n||e.consent,r=Be(e,c.Commands.Consent);t.forEach(t=>{Me(e,t,c.Commands.Consent)&&Te(e,t,c.Commands.Consent)&&(Object.keys(o).filter(e=>e in t).forEach(n=>{(0,D.tryCatch)(t[n],t=>_e(e,"consent",t,{key:n}))(o,r)}),De(e,t,c.Commands.Consent))})}(e,n,o);break;case c.Commands.Ready:!function(e,t){if(!e.allowed)return;const n=Be(e,c.Commands.Ready);t.forEach(t=>{(0,D.tryCatch)(t,t=>_e(e,"ready",t))(void 0,n)})}(e,n);break;case c.Commands.Run:!function(e,t){if(!e.allowed)return;const n=Be(e,c.Commands.Run);t.forEach(t=>{(0,D.tryCatch)(t,t=>_e(e,"run",t))(void 0,n)})}(e,n);break;case c.Commands.Session:!function(e,t){if(!e.session)return;const n=Be(e,c.Commands.Session);t.forEach(t=>{(0,D.tryCatch)(t,t=>_e(e,"session",t))(e.session,n)})}(e,n);break;default:{const o=Be(e,t),s=Ie(t);n.forEach(n=>{"function"==typeof n&&(s&&!Me(e,n,t)||s&&!Te(e,n,t)||((0,D.tryCatch)(n,n=>_e(e,"generic",n,{type:t}))(r,o),s&&De(e,n,t)))});break}}}function rt(e,t,n){if(Ce(t))return n||e[t];switch(t){case c.Commands.Session:return e.session;case c.Commands.Config:return n||e.config;default:return}}async function st(e,t,n,o,r){if(!t.on)return!1;if(Ie(o)&&!Me(e,t,o))return!1;if(Ie(o)&&!Te(e,t,o))return!1;const s=Ie(o);if(s&&it.has(t))return at.add(t),!1;const i=s?xe(e,o):0;s&&it.add(t);const a=t.on;let c,u=Promise.resolve(),d=!1;try{c=await(0,D.tryCatchAsync)(()=>(u=Promise.resolve(a(o,r)),me(u,pe,`Source "${n}" on(${o}) did not settle within ${pe}ms`)),t=>{t instanceof he&&(d=!0),_e(e,"source",t,{sourceId:n,type:o})})()}finally{s&&!d&&it.delete(t)}if(s)if(d){const o=()=>{it.delete(t),at.delete(t),e.allowed&&e.sources[n]===t&&(0,D.tryCatchAsync)(()=>ct(e,t,n),t=>{e.logger.scope("on").error("state recovery failed",Q(t))})()};u.then(o,o)}else nt(e,t,o,i),at.delete(t)&&await ct(e,t,n);return!1===c}var it=new WeakSet,at=new WeakSet;async function ct(e,t,n){const o=Pe(e);try{for(const o of qe)await st(e,t,n,o,rt(e,o))}finally{o()}}async function ut(e,t,n,o,r){if(!t.on)return;const s=Ie(o);if(s&&!Me(e,t,o))return;const i=Ge.get(t)?.[String(o)];if(s&&void 0!==i&&i>=xe(e,o))return;if(s&&!Te(e,t,o)){if(t.config.init)return void Je(e,t,o);const n=t.queueOn=t.queueOn||[],r={type:o,data:rt(e,o)},s=n[n.length-1];return s&&s.type===o?n[n.length-1]=r:n.push(r),De(e,t,o),void Ne.get(t)?.delete(String(o))}const a=Xe.get(t);if(!t.config.init||a)return t.queueOn=t.queueOn||[],t.queueOn.push({type:o,data:r}),void(s&&(De(e,t,o),a&&!a.held&&(et(t,o),a.held=!0)));await We(e,t,n,o,r)}async function dt(e,t,n){if(!t.on)return;const o=Pe(e);try{for(const o of qe)(je(e,o)||Ne.get(t)?.has(String(o)))&&await ut(e,t,n,o,rt(e,o))}finally{o()}}function lt(e){return(Ue.get(e)||0)>0}async function ft(e){const t=await pt(e);await Promise.all(t.map(({done:e})=>e))}async function pt(e){if(!Se(e))return Oe(),[];const t=[];for(const[n,o]of Object.entries(e.destinations)){if(!o.on)continue;const r=async()=>{for(const t of qe)je(e,t)&&await ut(e,o,n,t,rt(e,t))};t.push(ht(n,o,r()))}for(const t of qe){if(!je(e,t))continue;const n=rt(e,t);ot(e,t,e.on[t]||[]),await Promise.all(Object.entries(e.sources).filter(([,e])=>ye(e)).map(([o,r])=>st(e,r,o,t,n)))}return t}async function gt(e,t,n,o){const{ok:r,deliveries:s}=await mt(e,t,n,o);return await Promise.all(s.map(({done:e})=>e)),r}function ht(e,t,n){return n.catch(()=>{}),{id:e,destination:t,done:n}}async function mt(e,t,n,o){if(!Se(e))return Oe(),{ok:!0,deliveries:[]};e.seenEvents.add(String(t));let r=n||[];n||(r=e.on[t]||[]);const s=rt(e,t,o),i=[];for(const[n,o]of Object.entries(e.sources)){if(o.config.require?.length){const e=o.config.require.indexOf(t);-1!==e&&o.config.require.splice(e,1)}o.on&&(ye(o)?i.push(st(e,o,n,t,s)):(o.queueOn=o.queueOn||[],o.queueOn.push({type:t,data:s})))}const a=[];for(const[n,o]of Object.entries(e.destinations))o.on&&a.push(ht(n,o,ut(e,o,n,t,s)));let c=!1;if(i.length){c=(await Promise.all(i)).some(Boolean)}for(const[t,n]of Object.entries(e.sources))ye(n)&&n.queueOn?.length&&await ve(e,n,t);const u=Object.values(e.sources).some(e=>!ye(e)&&e.config.require?.length);return(Object.keys(e.pending.destinations).length>0||u)&&await ke(e),ot(e,t,r,o),{ok:!c,deliveries:a}}var vt=1e3,yt=1e3,wt=3e4,bt=Object.freeze({batched:!0});function kt(e){return e===bt}var St=" batch-all";function Et(e){return void 0===e?{}:"number"==typeof e?{wait:e}:{wait:e.wait,size:e.size,age:e.age}}async function Ot(e,t){const{code:n,config:o={},env:r={},before:s,next:i,cache:a,state:c}=t;if(!(0,f.isFunction)(n.push))return Rt({ok:!1,failed:{invalid:{type:"invalid",error:"Destination code must have a push method"}}});const u={...n.config,...o||{init:!1}};let d=s?{...u,before:s}:{...u};i&&(d={...d,next:i}),a&&(d={...d,cache:a}),void 0!==c&&void 0===d.state&&(d={...d,state:c});let l=d.id;if(!l)do{l=(0,f.getId)(5,"abcdefghijklmnopqrstuvwxyz")}while(e.destinations[l]||e.pending.destinations[l]);if(S(e,(0,f.stepId)("destination",l),d.state),d.require?.length){e.pending.destinations[l]=t,await ke(e);const n=e.destinations[l];return n?It(e,void 0,{},{[l]:n}):Rt({ok:!0})}const p={...n,config:d,env:Tt(n.env,r)};return e.destinations[l]=p,!1!==p.config.queue&&(p.queuePush=[...e.queue]),await dt(e,p,l),It(e,void 0,{},{[l]:p})}function _t(e){for(const t of e)ze(t.destination)&&(t.drain=!0)}async function qt(e,t){return(await Promise.all(t.map(async({id:t,destination:n,done:o,drain:r})=>{if(await o,r&&e.allowed&&!ze(n)&&n.queuePush?.length&&e.destinations[t]===n)return It(e,void 0,{},{[t]:n})}))).filter(f.isDefined)}function Ct(e,t){if(!t.length)return e;const n={...e.done??{}},o={...e.queued??{}},r={...e.failed??{}};for(const e of t){for(const[t,r]of Object.entries(e.done??{}))n[t]=r,delete o[t];for(const[t,n]of Object.entries(e.failed??{}))r[t]=n,delete o[t];Object.assign(o,e.queued??{})}const s={...e,ok:e.ok&&t.every(e=>e.ok)};return delete s.done,delete s.queued,delete s.failed,Object.keys(n).length&&(s.done=n),Object.keys(o).length&&(s.queued=o),Object.keys(r).length&&(s.failed=r),s}async function It(e,t,n={},o){if(!e.allowed)return Rt({ok:!1});if(!t)return jt(e,void 0,n,o);const r=await Zt(e,t,n);if(0===r.copies.length)return Rt({ok:!0,...r.dropped?{dropped:!0}:{}});const s=[];for(const t of r.copies)s.push(await jt(e,t.event,{id:n.id,ingest:t.ingest,respond:r.respond},o));return s[0]}async function jt(e,t,n,o){const{user:r}=e;if(t){const n=R(e.config.queueMax),o=P(e.queue,t,{max:n});if(o.dropped>0){const t=G(e.status,(0,f.stepId)("collector"),"queue",o.dropped);T(e.queue,e.logger,"collector.queue overflow; oldest events dropped",{buffer:"queue",cap:n,droppedCount:t})}else e.queue.length<n&&B(e.queue);e.status.in++}o||(o=e.destinations);const s=e.transformers||{},i=await Promise.all(Object.entries(o||{}).map(async([o,i])=>{if(i.config.disabled)return{id:o,destination:i,skipped:!0};const a=i.config.id||o,c=(0,f.stepId)("destination",a),u=F(i.config.breaker);if(u&&function(e,t,n){const o=e[t];if(!o||"closed"===o.state)return!1;if("half-open"===o.state)return!0===o.probing;const r=L();return void 0!==o.openUntil&&r<o.openUntil||(o.state="half-open",o.probing=!0,o.openUntil=r+n,!1)}(e.status.breakers,c,u.cooldown))return{id:o,destination:i,skipped:!0};const d=t=>{u&&V(e.status.breakers,c,t,u.threshold,u.cooldown)},l=()=>{u&&function(e,t){const n=e[t];n&&"half-open"===n.state&&!0===n.probing&&(n.state="open",n.probing=!1)}(e.status.breakers,c)},p=t=>{if(!t.length)return;i.queuePush||(i.queuePush=[]);const n=i.queuePush,r=i.config.id||o,s={max:i.config.queueMax??vt};let a=0;for(const e of t){a+=P(n,e,s).dropped}if(a>0){U(e,r);const t=G(e.status,(0,f.stepId)("destination",r),"queue",a);T(n,e.logger.scope(i.type||"unknown"),"destination.queuePush overflow; oldest events dropped",{buffer:"queuePush",destination:r,cap:s.max,droppedCount:t})}else n.length<s.max&&B(n)};i.on&&i.config.init&&!ze(i)&&!lt(i)&&Ze(e,i)&&await dt(e,i,o);const m=ze(i);if(m&&!lt(i)&&Date.now()-m.since>=ge(i.config.timeout)&&await dt(e,i,o),ze(i)){if(l(),!t)return{id:o,destination:i,skipped:!0};const e=[(0,f.clone)(t)];return p(e),{id:o,destination:i,queue:e}}let v=(i.queuePush||[]).map(t=>({...t,consent:e.consent}));i.queuePush=[],t&&v.push((0,f.clone)(t));const y=n.ingest?{...n.ingest,_meta:{...n.ingest._meta,path:[...n.ingest._meta.path]}}:(0,f.createIngest)("unknown");if(!v.length&&!i.queueOn?.length)return l(),{id:o,destination:i,skipped:!0};if(!v.length&&i.queueOn?.length){if(!(0,f.getGrantedConsent)(i.config.consent,e.consent))return l(),{id:o,destination:i,skipped:!0};let t=!1;try{t=await Dt(e,i,o,!0)}catch(t){e.status.failed++;const n=i.type||"unknown";e.logger.scope(n).error("destination init failed",{error:t instanceof Error?t.message:String(t)}),d("transport-failure")}if(ze(i))return l(),{id:o,destination:i,skipped:!0};if(!t||!i.queuePush?.length)return l(),{id:o,destination:i,skipped:!t};v=i.queuePush.map(t=>({...t,consent:e.consent})),i.queuePush=[]}const S=t=>{const n=e.consent,r=[],s=t.filter(t=>{const s=(0,f.getGrantedConsent)(i.config.consent,n,t.consent);if(s)return t.consent=s,r.push(t),!1;const a=h(e,(0,f.stepId)("destination",o),"destination","skip","string"==typeof t.id?t.id:"",Date.now(),g(t,y,e));return a.skipReason="consent",n&&(a.consent={...n}),i.config.consent&&(a.meta={required:{...i.config.consent}}),(0,f.emitStep)(e,a),!0});return{allowed:r,skipped:s}},E=e.consent,{allowed:O,skipped:_}=S(v);if(p(_),!O.length)return l(),{id:o,destination:i,queue:v};const q=new Set(i.queuePush);let C=!1;try{C=await Dt(e,i,o,!0)}catch(t){e.status.failed++;const n=i.type||"unknown";e.logger.scope(n).error("destination init failed",{error:t instanceof Error?t.message:String(t)}),d("transport-failure")}if(!C)return l(),{id:o,destination:i,queue:v};if(ze(i))return l(),p(O),{id:o,destination:i,queue:O};const I=[];if(e.consent!==E){const t=S(O.map(t=>({...t,consent:e.consent})));O.splice(0,O.length,...t.allowed),I.push(...t.skipped)}const j=i.queuePush||[],A=j.filter(e=>!q.has(e));if(A.length){i.queuePush=j.filter(e=>q.has(e));const t=S(A.map(t=>({...t,consent:e.consent})));O.push(...t.allowed),I.push(...t.skipped)}if(p(I),!O.length)return l(),I.length?{id:o,destination:i,queue:I}:{id:o,destination:i,skipped:!0};let x,D;i.dlq||(i.dlq=[]);const M=i.config.before,R=i.config.next,$=i.config?.cache,K=$?(0,f.compileCache)($):void 0,W=K?w(K,e):void 0,H=b(i.config?.state),N=H?.filter(e=>"get"===e.mode),Y=H?.filter(e=>"set"===e.mode);let X=0,J=0,Z=0;return await Promise.all(O.map(async t=>{let a,c;if(t.user=(0,f.assign)(r,t.user),K?.stop&&W){const e=(0,f.createMappingRoot)(y,t),n=await(0,f.checkCache)(K,W,e);if("HIT"===n?.status)return t;"MISS"===n?.status&&(a={key:n.key,ttl:n.rule.ttl})}let u=[{event:t,ingest:y}],d=n.respond;if(void 0!==M){const r=`destination.${o}.before`,i=await de(e,s,M,t,y,n.respond,r);if(0===i.copies.length){const n=h(e,(0,f.stepId)("destination",o),"destination","skip","string"==typeof t.id?t.id:"",Date.now(),g(t,y,e));return n.skipReason="dropped",n.meta={by:i.droppedBy??"route",at:r},(0,f.emitStep)(e,n),t}i.respond&&(d=i.respond),u=i.copies.map(e=>({event:e.event,ingest:e.ingest}))}const l=async(t,n,r)=>{let a=r,u=!1;if(K&&!K.stop&&W){const e=(0,f.createMappingRoot)(n,t??void 0),o=await(0,f.checkCache)(K,W,e);if("HIT"===o?.status)return!1;"MISS"===o?.status&&(a={key:o.key,ttl:o.rule.ttl},u=!0)}N&&N.length>0&&t&&(t=await k(e,N,t,n));const l=Date.now();let p=!1;const g=await(0,f.tryCatchAsync)(Mt,n=>{const r=i.type||"unknown";e.logger.scope(r).error("Push failed",{...Q(n),event:t.name}),x=n,p=!0;const s=i.dlq,a=i.config.id||o,c={max:i.config.dlqMax??z},u=P(s,[t,n],c);if(u.dropped>0){U(e,a);const t=G(e.status,(0,f.stepId)("destination",a),"dlq",u.dropped);T(s,e.logger.scope(i.type||"unknown"),"destination.dlq overflow; oldest entries dropped",{buffer:"dlq",destination:a,cap:c.max,droppedCount:t})}else s.length<c.max&&B(s)})(e,i,o,t,n,d);if(X+=Date.now()-l,a&&W&&void 0===i.config.mock&&(u?(0,f.storeCache)(W,a.key,g??!0,a.ttl):void 0===c&&(c=g??!0)),!p&&!kt(g)&&Y&&Y.length>0&&t&&(t=await k(e,Y,t,n)),void 0===g||kt(g)||(D=g),kt(g)&&J++,!p&&R){void 0!==g&&(n._response=g);const r=await de(e,s,R,t,n,d,`destination.${o}.next`);r.respond&&(d=r.respond)}return!0};for(const e of u)await l(e.event,e.ingest,a)&&Z++;return a&&W&&void 0!==c&&void 0===i.config.mock&&(0,f.storeCache)(W,a.key,c,a.ttl),t})),{id:o,destination:i,error:x,response:D,totalDuration:X,batchedCount:J,allowedCount:O.length,pushedCount:Z,canonicalId:a,breakerConfig:u}})),a={},c={},u={};for(const t of i){if(t.skipped)continue;const n=t.destination,o={type:n.type||"unknown",data:t.response};U(e,t.id);const r=e.status.destinations[t.id],s=Date.now();r.queuePushSize=n.queuePush?.length??0,r.dlqSize=n.dlq?.length??0;const i=t.breakerConfig,d=t.canonicalId?(0,f.stepId)("destination",t.canonicalId):void 0,l=t=>{i&&d&&V(e.status.breakers,d,t,i.threshold,i.cooldown)};if(t.error)o.error=t.error,u[t.id]=o,r.failed++,r.lastAt=s,r.duration+=t.totalDuration||0,e.status.failed++,l("transport-failure");else if(t.queue&&t.queue.length)c[t.id]=o;else{const n=t.batchedCount??0,i=t.allowedCount??0,c=t.pushedCount??i;(Math.max(0,c-n)>0||0===i)&&(a[t.id]=o,r.count++,r.lastAt=s,r.duration+=t.totalDuration||0,e.status.out++,l("success"))}}return Rt({event:t,...Object.keys(a).length&&{done:a},...Object.keys(c).length&&{queued:c},...Object.keys(u).length&&{failed:u}})}async function At(e,t,n,o){const r=await async function(e,t,n,o){const r=t.type||"unknown",s=e.logger.scope(r),i={collector:e,logger:s,id:o,config:t.config,env:Tt(t.env,t.config.env),reportError:N(e,"destination",o,s,t)};s.debug("init");const a=Date.now();let c;(0,f.emitStep)(e,h(e,(0,f.stepId)("destination",o),"destination","init","",a));try{c=await(0,f.useHooks)(n,"DestinationInit",e.hooks,e.logger)(i)}catch(t){const n=Date.now(),r=h(e,(0,f.stepId)("destination",o),"destination","error","",n);throw r.durationMs=n-a,r.error=m(t),(0,f.emitStep)(e,r),t}return!1!==c&&{...c||t.config,init:!0}}(e,t,n,o);if(!1===r)return!1;if(t.config=r,t.queueOn?.length){const n=Pe(e);!function(e){const t=e.queueOn?.find(({type:e})=>Ie(e));t&&et(e,t.type),Xe.set(e,{held:!!t})}(t);try{for(let n=t.queueOn?.shift();n;n=t.queueOn?.shift())await We(e,t,o,n.type,n.data)}catch(n){for(const{type:n}of t.queueOn||[])Ie(n)&&Je(e,t,n);throw t.queueOn=[],n}finally{!function(e,t){const n=Xe.get(t);Xe.delete(t),n?.held&&tt(e,t)}(e,t),n()}}return e.logger.scope(t.type||"unknown").debug("init done"),!0}var xt=new WeakMap;async function Dt(e,t,n,o=!1){if(t.init&&!t.config.init){if(!o&&function(e){const t=e.config.consent;return!!t&&Object.keys(t).length>0}(t))return e.logger.scope(t.type||"unknown").debug("init blocked: consent gate not cleared"),!1;const r=xt.get(t);if(r)return r;const s=At(e,t,t.init,n);xt.set(t,s);try{return await s}finally{xt.delete(t)}}return!0}async function Mt(e,t,n,o,r,s){const{config:i}=t,a=await(0,f.processEventMapping)(o,i,e);if(a.ignore)return!1;const c=t.type||"unknown",u=e.logger.scope(c),d={collector:e,logger:u,id:n,config:i,data:a.data,rule:a.mapping,ingest:r,env:{...Tt(t.env,i.env),...s?{respond:s}:{}},reportError:N(e,"destination",n,u,t)};if(void 0!==i.mock)return u.debug("mock",{event:a.event.name}),i.mock;const l=a.mapping,p=void 0!==l?.batch,v=p?a.mappingKey||"* *":St;if((p||void 0!==i.batch)&&t.pushBatch&&void 0===i.mock){if(t.batches=t.batches||{},!t.batches[v]){const o={key:v,entries:[],events:[],data:[]},r=Et(l?.batch),s=Et(i.batch),a=r.wait??s.wait??wt,c=r.size??s.size??yt,d=r.age??s.age??wt,y=Tt(t.env,i.env),w=async()=>{const o=t.batches[v],r=o.batched;if(0===r.entries.length)return;const s={key:r.key,entries:r.entries,events:r.events,data:r.data};r.entries=[],r.events=[],r.data=[];const a=s.entries[0],c={collector:e,logger:u,id:n,config:i,data:void 0,rule:o.isDefault?void 0:a.rule,ingest:a.ingest,env:{...y,...a.respond?{respond:a.respond}:{}},reportError:N(e,"destination",n,u,t)};u.debug("push batch",{events:s.entries.length});const d=t.config.id||n,l=U(e,d),p=F(t.config.breaker),w=(0,f.stepId)("destination",d),b=t=>{p&&V(e.status.breakers,w,t,p.threshold,p.cooldown)},k=Date.now(),S=new Map;let E,O=!1;const _=n=>{const o=t.dlq=t.dlq||[],r={max:t.config.dlqMax??z};let s=0;for(const e of n){s+=P(o,e,r).dropped}if(s>0){const t=G(e.status,(0,f.stepId)("destination",d),"dlq",s);T(o,u,"destination.dlq overflow; oldest entries dropped",{buffer:"dlq",destination:d,cap:r.max,droppedCount:t})}else o.length<r.max&&B(o);l.failed+=n.length,l.dlqSize=o.length,e.status.failed+=n.length};let q=s.entries.length;const C=ge(i.timeout),I=await(0,f.tryCatchAsync)((o,r)=>me(Promise.resolve((0,f.useHooks)(t.pushBatch,"DestinationPushBatch",e.hooks,e.logger)(o,r)),C,`Destination "${n}" batch delivery timed out after ${C}ms`),e=>{q=0,O=!0,E=e,_(s.entries.map(t=>[t.event,e])),b("transport-failure"),u.error("Push batch failed",{error:e instanceof Error?e.message:String(e),entries:s.entries.length})})(s,c);if(j=I,(0,f.isObject)(j)&&Array.isArray(j.failed)&&I.failed.length>0){const e=[];for(const t of I.failed){const n=s.entries[t.index];if(!n||S.has(t.index))continue;const o=t.error??new Error(`Push batch entry ${t.index} failed (no per-row error provided)`);S.set(t.index,o),e.push([n.event,o])}if(e.length>0){_(e),q=Math.max(0,s.entries.length-e.length);const t=new Map;for(const[,n]of e){const e=n instanceof Error&&"code"in n&&"string"==typeof n.code?n.code:n instanceof Error?n.name:"Error",o=t.get(e);o?o.count++:t.set(e,{code:e,count:1,message:n instanceof Error?n.message:String(n)})}u.error("Push batch partial failure",{failed:e.length,delivered:q,entries:s.entries.length,causes:[...t.values()]})}}var j;const A=Date.now();s.entries.forEach((t,o)=>{const r=O||S.has(o),i=g(t.event,t.ingest,e),a=h(e,(0,f.stepId)("destination",n),"destination",r?"error":"flush","string"==typeof t.event.id?t.event.id:"",A,i);if(a.batch={size:s.entries.length,index:o},a.durationMs=A-k,r){const e=O?E:S.get(o);a.error=m(e)}(0,f.emitStep)(e,a)}),u.debug("push batch done"),l.inFlightBatch=Math.max(0,(l.inFlightBatch??0)-s.entries.length),q>0&&(l.count+=q,l.lastAt=Date.now(),e.status.out+=q,b("success"))},b=(0,f.debounce)(w,{wait:a,size:c,age:d});t.batches[v]={batched:o,isDefault:!p,batchFn:()=>{b()},flush:async()=>{await b.flush()}}}const c=t.batches[v];c.batched.entries.push({event:a.event,ingest:r,respond:s,rule:l,data:a.data}),c.batched.events.push(a.event),(0,f.isDefined)(a.data)&&c.batched.data.push(a.data);const d="string"==typeof a.event.id?a.event.id:"",y=g(o,r,e),w=Date.now(),b=h(e,(0,f.stepId)("destination",n),"destination","in",d,w,y);a.mappingKey&&(b.mappingKey=a.mappingKey),a.event.consent&&(b.consent={...a.event.consent}),b.inEvent=a.event,(0,f.emitStep)(e,b);const k=h(e,(0,f.stepId)("destination",n),"destination","out",d,w,y);a.mappingKey&&(k.mappingKey=a.mappingKey),k.outEvent=a.event,k.batch={size:c.batched.entries.length,index:c.batched.entries.length-1},(0,f.emitStep)(e,k);const S=t.config.id||n,E=U(e,S);return E.inFlightBatch=(E.inFlightBatch??0)+1,c.batchFn(),bt}{let s;if(u.debug("push",{event:a.event.name}),("undefined"==typeof __WALKEROS_OBSERVE__||__WALKEROS_OBSERVE__)&&"trace"===e.observeLevel?.()&&Array.isArray(t.calls)&&t.calls.length>0){const e=q({...d.env,simulation:t.calls});d.env=e.wrappedEnv,s=e.calls,e.unresolved.length>0&&(e.wrappedEnv[f.OBSERVE_ENV_KEY]={paths:e.unresolved,record:(t,n)=>e.calls.push({fn:t,args:n,ts:Date.now()})})}const c="string"==typeof a.event.id?a.event.id:"",l=g(o,r,e),p=Date.now(),v=h(e,(0,f.stepId)("destination",n),"destination","in",c,p,l);a.mappingKey&&(v.mappingKey=a.mappingKey),a.event.consent&&(v.consent={...a.event.consent}),v.inEvent=a.event,(0,f.emitStep)(e,v);try{const o=ge(i.timeout),r=await me(Promise.resolve((0,f.useHooks)(t.push,"DestinationPush",e.hooks,e.logger)(a.event,d)),o,`Destination "${n}" delivery timed out after ${o}ms`),g=Date.now(),m=h(e,(0,f.stepId)("destination",n),"destination","out",c,g,l);return m.durationMs=g-p,m.outEvent=a.event,A(m,s),(0,f.isDefined)(r)&&(m.meta={...m.meta,response:r}),a.mappingKey&&(m.mappingKey=a.mappingKey),(0,f.emitStep)(e,m),u.debug("push done"),r}catch(t){const o=Date.now(),r=h(e,(0,f.stepId)("destination",n),"destination","error",c,o,l);throw r.durationMs=o-p,r.error=m(t),A(r,s),a.mappingKey&&(r.mappingKey=a.mappingKey),(0,f.emitStep)(e,r),t}}}function Rt(e){return{ok:!e?.failed,...e}}function Pt(e){const{code:t,config:n={},env:o={},cache:r,state:s}=e,{config:i}=J(e,"before"),{config:a}=J({...e,config:i},"next"),c={...t.config,...n,...a};r&&(c.cache=r),void 0!==s&&void 0===c.state&&(c.state=s);const u=Tt(t.env,o);return{...t,config:c,env:u}}async function $t(e,t={}){const n={};for(const[o,r]of Object.entries(t))S(e,(0,f.stepId)("destination",o),r.config?.state??r.code.config?.state??r.state),r.config?.require?.length?e.pending.destinations[o]=r:n[o]=Pt(r);return n}function Tt(e,t){return e||t?t?e&&(0,f.isObject)(e)&&(0,f.isObject)(t)?{...e,...t}:t:e:{}}var Bt=require("@walkeros/core"),Kt=require("@walkeros/core"),Wt=5e3;async function Lt(e){const t=e.logger;await Ft(e.sources,"source",t),await async function(e,t){const n=Object.entries(e).flatMap(([e,n])=>{const o=n.batches;if(!o)return[];const r=t.scope(n.type||"destination");return Object.values(o).map(async t=>{let n;try{await Promise.race([t.flush(),new Promise((t,o)=>{n=setTimeout(()=>o(new Error(`destination '${e}' batch flush timed out`)),Wt)})])}catch(t){r.error(`destination '${e}' batch flush failed: ${t}`)}finally{n&&clearTimeout(n)}})});await Promise.allSettled(n)}(e.destinations,t),await Ft(e.destinations,"destination",t),await Ft(e.transformers,"transformer",t),await Ft(e.stores,"store",t)}async function Ft(e,t,n){const o=Object.entries(e).map(async([e,o])=>{const r=o.destroy;if(!r)return;const s=o.type||"unknown",i=n.scope(s),a={id:e,config:o.config,env:o.env??{},logger:i};let c;try{await Promise.race([r(a),new Promise((n,o)=>{c=setTimeout(()=>o(new Error(`${t} '${e}' destroy timed out`)),Wt)})])}catch(n){i.error(`${t} '${e}' destroy failed: ${n}`)}finally{c&&clearTimeout(c)}});await Promise.allSettled(o)}function Vt(e,t){e.stateVersion++,e.cellVersion[t]=e.stateVersion}async function Ht(e,t,n){let o,r,s=!1;const i=[],a=Pe(e);try{return await async function(){switch(t){case c.Commands.Config:(0,Kt.isObject)(n)&&((0,Bt.assign)(e.config,n,{shallow:!1,merge:!1}),r=n,s=!0);break;case c.Commands.Consent:if((0,Kt.isObject)(n)){const{update:t}=d(e,n);Vt(e,c.Commands.Consent),r=t,s=!0}break;case c.Commands.Custom:(0,Kt.isObject)(n)&&(e.custom=(0,Bt.assign)(e.custom,n),Vt(e,c.Commands.Custom),r=n,s=!0);break;case c.Commands.Destination:(0,Kt.isObject)(n)&&"code"in n&&(0,Kt.isObject)(n.code)&&(o=await Ot(e,n));break;case c.Commands.Globals:(0,Kt.isObject)(n)&&(e.globals=(0,Bt.assign)(e.globals,n),Vt(e,c.Commands.Globals),r=n,s=!0);break;case c.Commands.Hook:if((0,Kt.isObject)(n)&&(0,Bt.isString)(n.name)&&(0,Bt.isFunction)(n.fn)){const{name:t,fn:o}=n;e.hooks[t]=o,r=n,s=!0}break;case c.Commands.On:if((0,Kt.isObject)(n)&&(0,Bt.isString)(n.type)){const{type:t,rules:o}=n;await Ke(e,t,o)}break;case c.Commands.Ready:s=!0;break;case c.Commands.Run:o=await Xt(e,n,i),s=!0;break;case c.Commands.Session:s=!0;break;case c.Commands.Shutdown:e.hasShutdown||(e.hasShutdown=!0,await Lt(e));break;case c.Commands.User:(0,Kt.isObject)(n)&&((0,Bt.assign)(e.user,n,{shallow:!1}),Vt(e,c.Commands.User),r=n,s=!0);break;default:return e.logger.warn("unknown command",{command:t}),Rt({ok:!1})}if(s){const n=await mt(e,t,void 0,r);i.push(...n.deliveries),_t(n.deliveries);const s=Ct(await It(e),await qt(e,i));if(o&&!1===o.ok){const e={...s.failed??{},...o.failed??{}};o={...s,ok:!1,...Object.keys(e).length>0?{failed:e}:{}}}else o=s}return o||Rt({ok:!0})}()}finally{a()}}function zt(e,t){return{timing:Math.round((Date.now()-e.timing)/10)/100,source:{type:"collector",schema:"4"},...t}}function Ut(e,t,n){return Qt(e,t,n,{globals:e.globals,user:e.user,consent:e.consent})}function Gt(e,t,n){return Qt(e,zt(e,t),n,{globals:{},user:{},consent:{}})}function Qt(e,t,n,o){const r=t.name;if("string"!=typeof r)throw new Bt.InvalidEventError(void 0===r?"Event name is required":"Event name is invalid");if(!r)throw new Bt.InvalidEventError("Event name is required");const[s,i]=r.split(" ");if(!s||!i)throw new Bt.InvalidEventError("Event name is invalid");const{timestamp:a=Date.now(),name:c=`${s} ${i}`,data:u={},context:d={},globals:l={},custom:f={},user:p=o.user,nested:g=[],consent:h=o.consent,id:m=(0,Bt.getSpanId)(),trigger:v="",entity:y=s,action:w=i,timing:b=0,source:k={type:"collector",schema:"4"}}=t,S=k??{type:"collector",schema:"4"},E=S.count??(e.count+=1),O=S.trace??n?._meta.trace??e.trace,_={...S,count:E};void 0!==O&&(_.trace=O);const q=e.name??S.platform??"default",C=e.release??"4.8.0-next-1791496487198";_.release={...S.release,[q]:C};return{name:c,data:u,context:d,globals:(0,Bt.assign)(o.globals,l),custom:f,user:p,nested:g,consent:h,id:m,trigger:v,entity:y,action:w,timestamp:a,timing:b,source:_}}function Nt(e,t,n){return Ut(e,zt(e,t),n)}async function Yt(e,t){const n=[];return Ct(await Xt(e,t,n),await qt(e,n))}async function Xt(e,t,n){e.allowed=!0,e.timing=Date.now(),e.trace=(0,Bt.getTraceId)(),e.count=0,t&&(t.consent&&(e.consent=(0,Bt.assign)(e.consent,t.consent),Vt(e,c.Commands.Consent)),t.user&&(e.user=(0,Bt.assign)(e.user,t.user),Vt(e,c.Commands.User)),t.globals&&(e.globals=(0,Bt.assign)(e.config.globalsStatic||{},t.globals),Vt(e,c.Commands.Globals)),t.custom&&(e.custom=(0,Bt.assign)(e.custom,t.custom),Vt(e,c.Commands.Custom))),Object.values(e.destinations).forEach(e=>{e.queuePush=[]}),e.queue=[],e.round++,await ke(e);const o=await pt(e);let r=!0;const s={};if(e.preRunQueue.length){const t=e.preRunQueue.splice(0);e.logger.debug("replaying pre-run events",{count:t.length});for(const{event:n,options:o}of t){const t=await e.push(n,o);!1===t.ok&&(r=!1),t.failed&&Object.assign(s,t.failed)}}_t(o);const i=await It(e);if(n.push(...o),r)return i;const a={...i.failed??{},...s};return{...i,ok:!1,...Object.keys(a).length>0?{failed:a}:{}}}var Jt="collector.next";async function Zt(e,t,n={}){const o=n.ingest??(0,l.createIngest)(n.id||"unknown"),r=e.config.next;if(void 0===r)return{copies:[{event:t,ingest:o}],respond:n.respond};const s=await de(e,e.transformers||{},r,t,o,n.respond,Jt),i=s.respond??n.respond;return 0===s.copies.length?(e.logger.debug("Event dropped by collector.next"+(s.droppedBy?` (${s.droppedBy})`:"")),v(e,t,o,{reason:"dropped",by:s.droppedBy,at:Jt}),{copies:[],respond:i,dropped:!0}):s.stopped?{copies:[],respond:i}:{copies:s.copies.map(t=>({event:Gt(e,t.event,t.ingest),ingest:t.ingest})),respond:i}}var en=require("@walkeros/core"),tn=require("@walkeros/core"),nn=require("@walkeros/core");function on(e,t){const n=(0,nn.useHooks)(async(n,o={})=>await(0,nn.tryCatchAsync)(async()=>{if(!e.allowed){const t=R(e.config.queueMax),r=P(e.preRunQueue,{event:n,options:o},{max:t});if(r.dropped>0){const n=G(e.status,"collector.preRun","queue",r.dropped);T(e.preRunQueue,e.logger,"collector.preRunQueue overflow; oldest events dropped",{buffer:"queue",cap:t,droppedCount:n})}else e.preRunQueue.length<t&&B(e.preRunQueue);return e.logger.debug("event held until run",{name:n.name,dropped:r.dropped}),Rt({ok:!0})}const r=Date.now(),{id:s,ingest:i,respond:a,mapping:c,preChain:u,include:d,exclude:l}=o;let f=a,p=n;const g=d||l?function(e,t,n){let o=e;return t&&(o=Object.fromEntries(Object.entries(o).filter(([e])=>t.includes(e)))),n&&(o=Object.fromEntries(Object.entries(o).filter(([e])=>!n.includes(e)))),o}(e.destinations,d,l):void 0;let h=i??(0,nn.createIngest)(s||"unknown");if(c){const t=await(0,nn.processEventMapping)(p,c,e);if(t.ignore)return Rt({ok:!0});if(c.consent){const n=t.event.consent;if(!(0,nn.getGrantedConsent)(c.consent,e.consent,n)){const o=s?`source.${s}`:"collector.push";return e.logger.debug("Event dropped by source consent",{at:o,required:c.consent}),v(e,t.event,h,{reason:"consent",at:o,required:c.consent,consent:{...e.consent,...n}}),Rt({ok:!0,dropped:!0})}}p=t.event}if(void 0!==u){const n=s?`source.${s}.next`:void 0,o=await de(e,e.transformers||{},u,p,h,f,n);if(0===o.copies.length)return e.logger.debug("Event dropped by transformer chain"+(o.droppedBy?` (${o.droppedBy})`:"")),v(e,p,h,{reason:"dropped",by:o.droppedBy,at:n??"collector.push.preChain"}),Rt({ok:!0,dropped:!0});if(o.stopped)return o.respond&&(f=o.respond),Rt({ok:!0});if(o.respond&&(f=o.respond),o.copies.length>1){const n=await Promise.all(o.copies.map(async n=>{const o=Ut(e,t(n.event),n.ingest);return It(e,o,{id:s,ingest:n.ingest,respond:f},g)}));if(s){e.status.sources[s]||(e.status.sources[s]={count:0,duration:0});const t=e.status.sources[s];t.count+=o.copies.length,t.lastAt=Date.now(),t.duration+=Date.now()-r}return n[0]??Rt({ok:!0})}p=o.copies[0].event,h=o.copies[0].ingest}const m=Nt(e,p,h),y=await It(e,m,{id:s,ingest:h,respond:f},g);if(s){e.status.sources[s]||(e.status.sources[s]={count:0,duration:0});const t=e.status.sources[s];t.count++,t.lastAt=Date.now(),t.duration+=Date.now()-r}return y},t=>{if(t instanceof nn.FatalError)throw t;if(t instanceof nn.InvalidEventError){const n=o.id;if(n){e.status.sources[n]||(e.status.sources[n]={count:0,duration:0});const t=e.status.sources[n];t.rejected=(t.rejected??0)+1}return e.logger.warn("invalid event rejected",{error:t.message}),Rt({ok:!1,invalid:!0,error:t.message})}return e.status.failed++,e.logger.error("push failed",{...Q(t),event:n.name}),Rt({ok:!1})})(),"Push",e.hooks,e.logger);return async(t,o)=>{const r="string"==typeof t.id&&""!==t.id?t:{...t,id:(0,nn.getSpanId)()},s="string"==typeof r.id?r.id:"",i=g(r,o?.ingest,e),a=Date.now(),c=h(e,"collector.push","collector","in",s,a,i);c.inEvent=r,(0,nn.emitStep)(e,c);try{const t=await n(r,o),c=Date.now(),u=h(e,"collector.push","collector","out",s,c,i);return u.durationMs=c-a,u.outEvent=t,(0,nn.emitStep)(e,u),t}catch(t){const n=Date.now(),o=h(e,"collector.push","collector","error",s,n,i);throw o.durationMs=n-a,o.error=m(t),(0,nn.emitStep)(e,o),t}}}var rn=require("@walkeros/core");var sn=require("@walkeros/core"),an=1e4,cn=6e4,un=.8;function dn(e={}){const t=e.maxEntries??an,n=e.lowWaterMark??un,o=e.sweepIntervalMs??cn,r=Math.floor(t*n),s=new Map,i={hits:0,misses:0,populates:0,writes:0,deletes:0,evictions_entries:0,evictions_ttl:0};let a;o>0&&(a=setInterval(function(){const e=Date.now();let t=0;for(const[n,o]of s)void 0!==o.expires&&o.expires<=e&&(s.delete(n),t++);i.evictions_ttl+=t},o),a&&"function"==typeof a.unref&&a.unref());return{type:"memory",config:{},get(e){const t=s.get(e);if(t)return void 0!==t.expires&&t.expires<=Date.now()?(s.delete(e),i.evictions_ttl++,void i.misses++):(s.delete(e),s.set(e,t),i.hits++,t.value);i.misses++},set(e,n,o){const a=!s.has(e);a||s.delete(e),s.set(e,{value:n,expires:void 0!==o?Date.now()+o:void 0}),i.writes++,a&&i.populates++,s.size>t&&function(){if(s.size<=t)return;const e=s.size-r;let n=0;for(const t of s.keys()){if(n>=e)break;s.delete(t),n++}i.evictions_entries+=n}()},delete(e){s.delete(e)&&i.deletes++},get counters(){return{...i}},destroy(){void 0!==a&&(clearInterval(a),a=void 0),s.clear()}}}var ln=require("@walkeros/core");function fn(e,t){const{cacheConfig:n,cacheStore:o,namespace:r,logger:s,storeId:i,collector:a}=t,c=(e,t)=>{if(!a)return;const n=h(a,`store.${i}`,"store","in","");n.meta={op:"cache",cached:"hit"===t,status:t,key:e},(0,ln.emitStep)(a,n)},u={hits:0,misses:0,populates:0,writes:0,deletes:0,inflight_dedups:0},d=n.rules.map(e=>({match:e.match?(0,ln.compileMatcher)(e.match):()=>!0,ttl:e.ttl})),l=e=>`${r}:${e}`;function f(e,t){const n=void 0===t?{key:e}:{key:e,value:t};return d.find(e=>e.match(n))}const p=new Map;return{type:e.type,config:e.config,setup:e.setup,get counters(){return{...u}},async get(t){const n=l(t),r=await o.get(n),s=(0,ln.readCacheEnvelope)(r);if(void 0!==s){if(!("expired"in s))return u.hits++,c(t,"hit"),s.value;try{await o.delete(n)}catch(e){g("delete",t,e)}}const i=p.get(n);if(i)return u.inflight_dedups++,c(t,"hit"),i;u.misses++,c(t,"miss");const a=(async()=>{try{const r=await e.get(t);if(void 0===r)return;const s=f(t,r);if(s)try{const e=1e3*s.ttl;await o.set(n,(0,ln.wrapCacheEnvelope)(r,e),e),u.populates++}catch(e){g("set",t,e)}return r}finally{p.delete(n)}})();return p.set(n,a),a},async set(t,n,r){u.writes++,await e.set(t,n,r);const s=f(t,n);if(s)try{const e=1e3*s.ttl;await o.set(l(t),(0,ln.wrapCacheEnvelope)(n,e),e)}catch(e){g("set",t,e)}},async delete(t){u.deletes++,await e.delete(t);try{await o.delete(l(t))}catch(e){g("delete",t,e)}}};function g(e,t,n){const o=`store-cache(${i}): cache ${e} failed for "${t}"; backing succeeded, continuing`;s?s.warn(o,Q(n)):console.warn(o,n)}}function pn(e,t,n){const o=`store.${n}`,r=(0,sn.useHooks)(t.get,"StoreGet",e.hooks,e.logger),s=(0,sn.useHooks)(t.set,"StoreSet",e.hooks,e.logger),i=(0,sn.useHooks)(t.delete,"StoreDelete",e.hooks,e.logger);t.get=async t=>{const n=Date.now(),s=h(e,o,"store","in","",n);s.meta={op:"get",key:t},(0,sn.emitStep)(e,s);try{const s=await r(t),i=Date.now(),a=h(e,o,"store","out","",i);return a.durationMs=i-n,a.meta={op:"get",key:t},(0,sn.emitStep)(e,a),s}catch(r){const s=Date.now(),i=h(e,o,"store","error","",s);throw i.durationMs=s-n,i.meta={op:"get",key:t},i.error=m(r),(0,sn.emitStep)(e,i),r}},t.set=async(t,n,r)=>{const i=Date.now(),a=h(e,o,"store","in","",i);a.meta={op:"set",key:t},(0,sn.emitStep)(e,a);try{await s(t,n,r);const a=Date.now(),c=h(e,o,"store","out","",a);c.durationMs=a-i,c.meta={op:"set",key:t},(0,sn.emitStep)(e,c)}catch(n){const r=Date.now(),s=h(e,o,"store","error","",r);throw s.durationMs=r-i,s.meta={op:"set",key:t},s.error=m(n),(0,sn.emitStep)(e,s),n}},t.delete=async t=>{const n=Date.now(),r=h(e,o,"store","in","",n);r.meta={op:"delete",key:t},(0,sn.emitStep)(e,r);try{await i(t);const r=Date.now(),s=h(e,o,"store","out","",r);s.durationMs=r-n,s.meta={op:"delete",key:t},(0,sn.emitStep)(e,s)}catch(r){const s=Date.now(),i=h(e,o,"store","error","",s);throw i.durationMs=s-n,i.meta={op:"delete",key:t},i.error=m(r),(0,sn.emitStep)(e,i),r}}}async function gn(e,t={}){const n={};for(const[o,r]of Object.entries(t)){const{code:t,config:s={},env:i={}}=r,a=e.logger.scope("store").scope(o),c={collector:e,logger:a,id:o,config:s,env:i,reportError:N(e,"store",o,a)},u=await t(c);n[o]=u}const o=t,r=function(e){const t={};for(const n of Object.keys(e))t[n]="WHITE";const n=[],o=[];function r(s){const i=t[s];if("BLACK"===i)return;if("GRAY"===i){const e=o.indexOf(s),t=o.slice(-1===e?0:e).concat(s).join(" -> ");throw new Error(`Cycle in cache.store chain: ${t}`)}t[s]="GRAY",o.push(s);const a=e[s].cache?.store;if(void 0!==a){if(!(a in e))throw new Error(`Store "${s}" cache.store references "${a}", which is not declared in flow.stores`);r(a)}o.pop(),t[s]="BLACK",n.push(s)}for(const n of Object.keys(e))"WHITE"===t[n]&&r(n);return n}(o);for(const t of r){const r=o[t].cache;if(!r)continue;let s,i;void 0!==r.store?(s=n[r.store],i=r.store):(n.__cache||(n.__cache=dn()),s=n.__cache,i="__cache");const a=r.namespace??t;e.logger.scope("store-cache").scope(t).info(`store "${t}" caches with namespace "${a}:" via ${i}`),n[t]=fn(n[t],{storeId:t,cacheConfig:r,cacheStore:s,namespace:a,logger:e.logger.scope("store-cache").scope(t),collector:e})}for(const[t,o]of Object.entries(n))"__cache"!==t&&pn(e,o,t);return n}async function hn(e){const t=(0,tn.assign)({globalsStatic:{},sessionStatic:{},run:!0,queueMax:1e3},e,{merge:!1,extend:!1}),n={level:e.logger?.level,handler:e.logger?.handler},o=(0,tn.createLogger)(n),r={...t.globalsStatic,...e.globals},s={allowed:!1,config:t,consent:e.consent||{},custom:e.custom||{},destinations:{},transformers:{},stores:{},globals:r,hooks:e.hooks||{},observers:new Set,logger:o,on:{},queue:[],preRunQueue:[],round:0,count:0,stateVersion:0,cellVersion:{},delivery:new WeakMap,session:void 0,status:{startedAt:Date.now(),in:0,out:0,failed:0,sources:{},destinations:{},dropped:{},connectionErrors:{},breakers:{}},timing:Date.now(),user:e.user||{},sources:{},pending:{destinations:{}},hasShutdown:!1,seenEvents:new Set,push:void 0,command:void 0,elb:void 0};void 0!==e.name&&(s.name=e.name),void 0!==e.release&&(s.release=e.release),void 0!==e.next&&(t.next=e.next),s.push=on(s,e=>zt(s,e)),s.command=function(e,t){return(0,rn.useHooks)(async(n,o,r)=>await(0,rn.tryCatchAsync)(async()=>await t(e,n,o,r),t=>{if(t instanceof rn.FatalError)throw t;return e.status.failed++,e.logger.error("command failed",{...Q(t),command:n}),Rt({ok:!1})})(),"Command",e.hooks,e.logger)}(s,Ht),s.elb=function(e){return async(t,n,o,r,s)=>{if("string"==typeof t&&t.startsWith("walker ")){const o=t.replace("walker ","");return e.command(o,n)}let i;if("string"==typeof t)i={name:t},n&&"object"==typeof n&&!Array.isArray(n)&&(i.data=n);else{if(!t||"object"!=typeof t||Array.isArray(t))return Rt({ok:!1});i={...t},n&&"object"==typeof n&&!Array.isArray(n)&&(i.data={...i.data||{},...n})}return o&&"object"==typeof o&&(i.context=o),r&&Array.isArray(r)&&(i.nested=r),s&&"object"==typeof s&&(i.custom=s),e.push(i)}}(s);const i=e.stores||{};return"undefined"==typeof __WALKEROS_STORES__||__WALKEROS_STORES__?(s.stores=await gn(s,i),function(e,t,n){const o=new Map;for(const[n,r]of Object.entries(e))t[n]&&o.set(r,t[n]);if(0!==o.size)for(const e of[n.transformers,n.destinations,n.sources])if(e)for(const t of Object.values(e))r(t.env);function r(e){if(e)for(const[t,n]of Object.entries(e))if("object"==typeof n&&null!==n){const r=o.get(n);r&&(e[t]=r)}}}(i,s.stores,e)):Object.keys(i).length>0&&o.warn("stores: not in this build, config ignored"),s.stores.__cache||(s.stores.__cache=dn()),s.destinations=await $t(s,e.destinations||{}),s.transformers=await async function(e,t={}){const n={};for(const[o,r]of Object.entries(t)){const{code:t,env:s={}}=r;if("undefined"==typeof __WALKEROS_VALIDATE__||__WALKEROS_VALIDATE__){const t=(0,X.validateStepEntry)(r,"Transformer");if(!t.ok){e.logger.warn(`Transformer ${o} invalid (${t.code}): ${t.reason}. Skipping.`);continue}}const{config:i}=J(r,"before"),{config:a}=J({...r,config:i},"next"),c=Object.keys(s).length>0?{...a,env:s}:a,{cache:u}=r,d=u?{...c,cache:u}:c,l=r.config?.state??r.state;S(e,(0,X.stepId)("transformer",o),l);const f=void 0!==l&&void 0===d.state?{...d,state:l}:d,p=e.logger.scope("transformer").scope(o),g={collector:e,logger:p,id:o,ingest:(0,X.createIngest)(o),config:f,env:s,reportError:N(e,"transformer",o,p)},h=(0,X.getTransformerMapping)(r);for(const t of(0,X.getTransformerMappingWarnings)(r))e.logger.warn(`Transformer ${o}: ${t}`);const m=t??(e=>h?{type:"pass",config:e.config,push:async t=>{const n=await(0,X.processEventMapping)(t,h,e.collector);return!n.ignore&&{event:n.event}}}:{type:"pass",config:e.config,push:e=>({event:e})}),v=await m(g);void 0!==r.before&&void 0===v.config?.before&&(v.config={...v.config??{},before:r.before}),void 0!==r.next&&void 0===v.config?.next&&(v.config={...v.config??{},next:r.next}),void 0!==l&&void 0===v.config?.state&&(v.config={...v.config??{},state:l}),n[o]=v}return n}(s,e.transformers||{}),s}var mn=globalThis;function vn(e){try{const t=mn.window;if(!t)return;t.localStorage.getItem(en.OBSERVE_STORAGE_KEY)===e&&t.localStorage.removeItem(en.OBSERVE_STORAGE_KEY)}catch{}}function yn(e,t){return void 0===t?e:n=>e({...n,release:t})}function wn(e,t){const n=t.observe;if(!n)return;const o=e.name??"default";if("binding"in n){const t=function(){const e=mn.window,t=mn.URLSearchParams;if(!e||!t)return null;try{const n=new t(e.location.search.replace(/^\?/,"")).getAll(en.OBSERVE_STORAGE_KEY);return n.length>0?n[n.length-1]??null:null}catch{return null}}(),r=t??function(){try{return mn.window?.localStorage.getItem(en.OBSERVE_STORAGE_KEY)??null}catch{return null}}();if(!r)return;const s=(0,en.parseObserveCredential)(r);if(!s)return void(null===t?(e.logger.warn("observe: malformed stored credential cleared"),vn(r)):e.logger.warn("observe: malformed credential ignored"));if(s.pb!==n.binding)return void e.logger.warn("observe: credential binding mismatch, credential ignored");let i;!function(e){try{mn.window?.localStorage.setItem(en.OBSERVE_STORAGE_KEY,e)}catch{}}(r),null!==t&&function(){const e=mn.window,t=mn.URLSearchParams;if(e&&t)try{const n=e.location.href,o=n.indexOf("#"),r=o>=0?n.slice(o):"",s=o>=0?n.slice(0,o):n,i=s.indexOf("?"),a=i>=0?s.slice(0,i):s,c=new t(i>=0?s.slice(i+1):"");c.delete(en.OBSERVE_STORAGE_KEY);const u=c.toString();e.history.replaceState({},"",`${a}${u?`?${u}`:""}${r}`)}catch{}}();const a=(0,en.createBatchedPoster)({url:`${n.url}/ingest/${s.ses}`,token:s.secret,headers:{"X-Walkeros-Binding":n.binding},onStatus:t=>{401===t&&(vn(r),i&&e.observers.delete(i))}});i=(0,en.createTelemetryObserver)(function(e,t){return void 0===t?e:n=>e({...n,flowId:t})}(yn(a,e.release),n.flowId),{flowId:n.flowId??o,...void 0!==n.level?{level:n.level}:{},...void 0!==n.sample?{sample:n.sample}:{}}),e.observers.add(i);const c=n.level;return void(void 0!==c&&(e.observeLevel=()=>c))}if("off"===n.level)return;const r=n.level;void 0!==r&&(e.observeLevel=()=>r),e.observers.add((0,en.createTelemetryObserver)(yn((0,en.createBatchedPoster)({url:`${n.url}/ingest/${n.sessionId}`,token:n.token}),e.release),{flowId:o,level:n.level,sample:n.sample}))}async function bn(e){const t=e??{},n=await hn(t);if(t.observers)for(const e of t.observers)n.observers.add(e);"undefined"==typeof __WALKEROS_OBSERVE__||__WALKEROS_OBSERVE__?wn(n,t):t.observe&&n.logger.warn("observe: not in this build, config ignored"),await be(n,t.sources||{});const{consent:o,user:r,globals:s,custom:i}=t;o&&await n.command("consent",o),r&&await n.command("user",r),s&&await n.command("globals",s),i&&await n.command("custom",i),n.config.run&&await n.command("run");let a=n.elb;const c=Object.values(n.sources),u=c.find(e=>e.config.primary);return u?a=u.push:c.length>0&&(a=c[0].push),{collector:n,elb:a}}//# sourceMappingURL=index.js.map
|