@walkeros/web-source-browser 4.2.0-next-1780387694663 → 4.2.0-next-1780420352914

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 CHANGED
@@ -1,17 +1,24 @@
1
1
  # @walkeros/web-source-browser
2
2
 
3
- ## 4.2.0-next-1780387694663
3
+ ## 4.2.0-next-1780420352914
4
4
 
5
5
  ### Patch Changes
6
6
 
7
+ - 776e5f9: Step examples are no longer bundled into production output. They were
8
+ accidentally exported from the production entry of these packages and pulled
9
+ into bundled JS. Examples remain available via the package `./dev` subpath for
10
+ simulation and testing.
7
11
  - Updated dependencies [908d6f0]
8
12
  - Updated dependencies [654ba38]
9
13
  - Updated dependencies [f4a9013]
14
+ - Updated dependencies [d65bbde]
15
+ - Updated dependencies [d65bbde]
16
+ - Updated dependencies [126c0f1]
10
17
  - Updated dependencies [654ba38]
11
18
  - Updated dependencies [3eb2467]
12
- - @walkeros/collector@4.2.0-next-1780387694663
13
- - @walkeros/core@4.2.0-next-1780387694663
14
- - @walkeros/web-core@4.2.0-next-1780387694663
19
+ - @walkeros/collector@4.2.0-next-1780420352914
20
+ - @walkeros/core@4.2.0-next-1780420352914
21
+ - @walkeros/web-core@4.2.0-next-1780420352914
15
22
 
16
23
  ## 4.1.2
17
24
 
@@ -1 +1 @@
1
- "use strict";var Source=(()=>{var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,o=Object.prototype.hasOwnProperty,r=(t,n)=>{for(var o in n)e(t,o,{get:n[o],enumerable:!0})},s={};r(s,{SourceBrowser:()=>dn,__resetInstanceCountForTests:()=>$n,createTagger:()=>An,default:()=>Tn,examples:()=>fn,getAllEvents:()=>mt,getElbAttributeName:()=>pt,getElbValues:()=>gt,getEvents:()=>ht,getGlobals:()=>vt,sourceBrowser:()=>Dn});var i=Object.defineProperty,a=(e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})};function c(e,t){if("collector"===e)return"collector";if(!t)throw new Error(`stepId(${e}) requires an id`);return`${e}.${t}`}a({},{stepId:()=>c});function l(e,t){const n=e.destinations[t];if(!n)throw new Error(`Destination not found: ${t}`);return n}a({},{getDestination:()=>l});a({},{Level:()=>d});var u,d=((u=d||{})[u.ERROR=0]="ERROR",u[u.WARN=1]="WARN",u[u.INFO=2]="INFO",u[u.DEBUG=3]="DEBUG",u);function f(e,t){const n=e.transformers[t];if(!n)throw new Error(`Transformer not found: ${t}`);return n}a({},{getTransformer:()=>f});function p(e,t){const n=e.sources[t];if(!n)throw new Error(`Source not found: ${t}`);return n}a({},{getSource:()=>p});function g(e,t){const n=e.stores[t];if(!n)throw new Error(`Store not found: ${t}`);return n}function m(e){return{_meta:{hops:0,path:[e]}}}a({},{getStore:()=>g});var h={merge:!0,shallow:!0,extend:!0};function v(e,t={},n={}){n={...h,...n};const o=Object.entries(t).reduce((t,[o,r])=>{const s=e[o];return n.merge&&Array.isArray(s)&&Array.isArray(r)?t[o]=r.reduce((e,t)=>e.includes(t)?e:[...e,t],[...s]):(n.extend||o in e)&&(t[o]=r),t},{});return n.shallow?{...e,...o}:(Object.assign(e,o),e)}function y(e){return Array.isArray(e)}function b(e){return void 0!==e}function w(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function k(e){return"function"==typeof e}function x(e){return"object"==typeof e&&null!==e&&!y(e)&&"[object Object]"===Object.prototype.toString.call(e)}function C(e){return"string"==typeof e}function O(e,t=new WeakMap){if("object"!=typeof e||null===e)return e;if(t.has(e))return t.get(e);const n=Object.prototype.toString.call(e);if("[object Object]"===n){const n={};t.set(e,n);for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=O(e[o],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(O(e,t))}),n}if("[object Date]"===n)return new Date(e.getTime());if("[object RegExp]"===n){const t=e;return new RegExp(t.source,t.flags)}return e}function j(e,t="",n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const t=o[e];if("*"===t&&y(r)){const t=o.slice(e+1).join("."),s=[];for(const e of r){const o=j(e,t,n);s.push(o)}return s}if(r=x(r)||y(r)?r[t]:void 0,void 0===r)break}return b(r)?r:n}function E(e,t,n){if(!x(e))return e;const o=O(e),r=t.split(".");let s=o;for(let e=0;e<r.length;e++){const t=r[e];e===r.length-1?s[t]=n:(t in s&&"object"==typeof s[t]&&null!==s[t]||(s[t]={}),s=s[t])}return o}function S(e,t){if(!x(e)&&!y(e))return e;const n=O(e),o=t.split(".");let r=n;for(let e=0;e<o.length;e++){const t=o[e],s=e===o.length-1;if(y(r)){const e=Number(t);if(!Number.isInteger(e)||e<0||e>=r.length)return n;if(s)r.splice(e,1);else{const t=r[e];if(!x(t)&&!y(t))return n;r=t}}else if(s)delete r[t];else{const e=r[t];if(!x(e)&&!y(e))return n;r=e}}return n}var A={data:e=>e.data,globals:e=>e.globals,context:e=>e.context,user:e=>e.user,source:e=>e.source,event:e=>({entity:e.entity,action:e.action,id:e.id,timestamp:e.timestamp,name:e.name,trigger:e.trigger,timing:e.timing})};function I(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function $(e,t={},n={}){const o={...t,...n},r={};let s=!e||0===Object.keys(e).length;return Object.keys(o).forEach(t=>{o[t]&&(r[t]=!0,e&&e[t]&&(s=!0))}),!!s&&r}function q(){let e="";for(let t=0;t<16;t++)e+=(16*Math.random()|0).toString(16);return e}function D(e=6,t){if(t){const n=t.length;let o="";for(let r=0;r<e;r++)o+=t[Math.random()*n|0];return o}let n="";for(let t=36;n.length<e;)n+=(Math.random()*t|0).toString(t);return n}function T(e,t){var n;return"number"==typeof e?{wait:e}:e?{wait:null!=(n=e.wait)?n:t,size:e.size,age:e.age}:{wait:t}}function P(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function M(e,t){let n,o={};return e instanceof Error?(n=e.message,o.error=P(e)):n=e,void 0!==t&&(t instanceof Error?o.error=P(t):"object"==typeof t&&null!==t?(o={...o,...t},"error"in o&&o.error instanceof Error&&(o.error=P(o.error))):o.value=t),{message:n,context:o}}var _=(e,t,n,o)=>{const r=`${d[e]}${o.length>0?` [${o.join(":")}]`:""}`,s=Object.keys(n).length>0,i=0===e?console.error:1===e?console.warn:console.log;s?i(r,t,n):i(r,t)};function L(e={}){return N({level:void 0!==e.level?(t=e.level,"string"==typeof t?d[t]:t):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]});var t}function N(e){const{level:t,handler:n,jsonHandler:o,scope:r}=e,s=(e,o,s)=>{if(e<=t){const t=M(o,s);n?n(e,t.message,t.context,r,_):_(e,t.message,t.context,r)}};return{error:(e,t)=>s(0,e,t),warn:(e,t)=>s(1,e,t),info:(e,t)=>s(2,e,t),debug:(e,t)=>s(3,e,t),throw:(e,t)=>{const o=M(e,t);throw n?n(0,o.message,o.context,r,_):_(0,o.message,o.context,r),new Error(o.message)},json:e=>{o?o(e):console.log(JSON.stringify(e,null,2))},scope:e=>N({level:t,handler:n,jsonHandler:o,scope:[...r,e]})}}function R(e){return function(e){return"boolean"==typeof e}(e)||C(e)||function(e){return"number"==typeof e&&!Number.isNaN(e)}(e)||!b(e)||y(e)&&e.every(R)||x(e)&&Object.values(e).every(R)}function W(e){return R(e)?e:void 0}function z(e,t,n){return function(...o){try{return e(...o)}catch(e){if(!t)return;return t(e)}finally{null==n||n()}}}function V(e,t,n){return async function(...o){try{return await e(...o)}catch(e){if(!t)return;return await t(e)}finally{await(null==n?void 0:n())}}}var H=class e extends Error{constructor(t,n){super(t,n),this.name="FatalError",Object.setPrototypeOf(this,e.prototype)}};async function B(e,t={},n={}){var o,r;if(!b(e))return;const s=x(e)&&e.consent||n.consent||(null==(o=n.collector)?void 0:o.consent),i=null!=(r=n.event)?r:x(e)?e:{};if(!n.collector)throw new Error("getMappingValue: context.collector is required");const a={event:i,mapping:t,collector:n.collector,logger:n.collector.logger,consent:s},c=y(t)?t:[t];for(const t of c){const o=await V(U,e=>{if(e instanceof H)throw e;n.collector&&n.collector.status.failed++,a.logger.error("mapping processing failed",{event:i,error:e})})(e,t,{...a,mapping:t});if(b(o))return o}}async function U(e,t,n){return(y(t)?t:[t]).reduce(async(t,o)=>{const r=await t;if(r)return r;const s=C(o)?{key:o}:o;if(!Object.keys(s).length)return;const{condition:i,consent:a,fn:c,key:l,loop:u,map:d,set:f,validate:p,value:g}=s,m={...n,mapping:o};if(i&&!await V(i,e=>{if(e instanceof H)throw e;return m.logger.error("mapping condition failed",{event:m.event,error:e}),!1})(e,m))return;if(a&&!$(a,m.consent))return g;let h=b(g)?g:e;if(c&&(h=await V(c,e=>{if(e instanceof H)throw e;m.logger.error("mapping fn failed",{event:m.event,error:e})})(e,m)),l&&(h=j(e,l,g)),u){const[t,n]=u,o="this"===t?[e]:await B(e,t,m);y(o)&&(h=(await Promise.all(o.map(e=>B(e,n,m)))).filter(b))}else d?h=await Object.entries(d).reduce(async(t,[n,o])=>{const r=await t,s=await B(e,o,m);return b(s)&&(r[n]=s),r},Promise.resolve({})):f&&(h=await Promise.all(f.map(t=>U(e,t,m))));p&&!await V(p,e=>{if(e instanceof H)throw e;return m.logger.error("mapping validate failed",{event:m.event,error:e}),!1})(h,m)&&(h=void 0);const v=W(h);return b(v)?v:W(g)},Promise.resolve(void 0))}async function K(e,t,n){var o;t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,o])=>{const r=await B(e,o,{collector:n,event:e});e=E(e,t,r)}));const{eventMapping:r,mappingKey:s}=await async function(e,t,n){var o;const[r,s]=(e.name||"").split(" ");if(!t||!r||!s)return{};let i,a="",c=r,l=s;const u=t=>{if(t)return(y(t)?t:[t]).find(t=>{if(!t.condition)return!0;if(!n)return Boolean(t.condition(e,void 0));const o={event:e,mapping:t,collector:n,logger:n.logger,consent:x(e)&&e.consent||n.consent};return Boolean(t.condition(e,o))})};t[c]||(c="*");const d=t[c];return d&&(d[l]||(l="*"),i=u(d[l])),i||(c="*",l="*",i=u(null==(o=t[c])?void 0:o[l])),i&&(a=`${c} ${l}`),{eventMapping:i,mappingKey:a}}(e,t.mapping,n);(null==r?void 0:r.policy)&&await Promise.all(Object.entries(r.policy).map(async([t,o])=>{const r=await B(e,o,{collector:n,event:e});e=E(e,t,r)}));let i=t.data&&await B(e,t.data,{collector:n,event:e});const a=Boolean(null==r?void 0:r.silent);if(r){if(r.ignore)return{event:e,data:i,mapping:r,mappingKey:s,ignore:!0,silent:a};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await B(e,r.data,{collector:n,event:e});i=x(i)&&x(t)?v(i,t):t}}const c=null!=(o=null==r?void 0:r.include)?o:t.include;if(c&&c.length>0){const t=function(e,t){const n={},o=t.includes("all")?Object.keys(A):t;for(const t of o){const o=A[t];if(!o)continue;const r=o(e);if(x(r))for(const[e,o]of Object.entries(r)){if(void 0===o)continue;const r="context"===t&&Array.isArray(o)?o[0]:o;n[`${t}_${e}`]=r}}return n}(e,c);Object.keys(t).length>0&&(i=x(i)?v(t,i):null!=i?i:t)}if((null==r?void 0:r.remove)&&x(i))for(const e of r.remove)i=S(i,e);return{event:e,data:i,mapping:r,mappingKey:s,ignore:!1,silent:a}}function G(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function F(e,t,n,o){const r=e;return function(...e){let s;const i="pre"+t,a="post"+t,c=n[i],l=n[a],u=(e,t)=>{o?o.warn(e,{error:t}):console.warn(e,t)};if(c)try{s=c({fn:r},...e)}catch(t){u(`Hook ${String(i)} failed, falling back to original function`,t),s=r(...e)}else s=r(...e);if(l)try{s=l({fn:r,result:s},...e)}catch(e){u(`Hook ${String(a)} failed, keeping original result`,e)}return s}}function Y(e,t){if(0===e.observers.size)return;const n=Array.from(e.observers);for(const e of n)try{e(t)}catch(e){}}function J(e){if(void 0===e||"*"===e)return()=>!0;if("and"in e){const t=e.and.map(J);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(J);return e=>t.some(t=>t(e))}return function(e){const{key:t,operator:n,value:o,not:r}=e,s=function(e,t){switch(e){case"eq":return e=>String(null!=e?e:"")===t;case"contains":return e=>String(null!=e?e:"").includes(t);case"prefix":return e=>String(null!=e?e:"").startsWith(t);case"suffix":return e=>String(null!=e?e:"").endsWith(t);case"regex":{const e=new RegExp(t);return t=>e.test(String(null!=t?t:""))}case"gt":{const e=Number(t);return t=>Number(t)>e}case"lt":{const e=Number(t);return t=>Number(t)<e}case"exists":return e=>null!=e}}(n,o);return e=>{const n=j(e,t),o=s(n);return r?!o:o}}(e)}function X(e){return Array.isArray(e)&&e.length>0&&e.every(e=>function(e){return"object"==typeof e&&null!==e&&!Array.isArray(e)&&("match"in e||"next"in e||"one"in e||"many"in e)}(e))}function Z(e){return e.map(e=>{var t,n;if("string"==typeof e)return{match:()=>!0,next:{type:"static",value:e}};if(Array.isArray(e))return{match:()=>!0,next:null!=(t=Q(e))?t:{type:"chain",value:[]}};const o=e;return{match:o.match?J(o.match):()=>!0,next:null!=(n=Q(o))?n:{type:"chain",value:[]}}})}function Q(e){if(null==e)return;if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;if(X(e))return Q({one:e});if(e.every(e=>"string"==typeof e))return{type:"chain",value:e};const t=[];for(const n of e){const e=Q(n);void 0!==e&&t.push(e)}if(0===t.length)return;return{type:"sequence",value:t}}const t=e;if("next"in t&&void 0!==t.next)return t.match?{type:"gate",match:J(t.match),next:Q(t.next)}:Q(t.next);if("one"in t&&t.one){const e=Z(t.one);return t.match?{type:"gate",match:J(t.match),next:{type:"one",routes:e}}:{type:"one",routes:e}}if("many"in t&&t.many){const e=Z(t.many);return t.match?{type:"gate",match:J(t.match),next:{type:"many",routes:e}}:{type:"many",routes:e}}return t.match?{type:"gate",match:J(t.match)}:void 0}var ee=new WeakMap;function te(e,t={}){if(null==e)return[];let n;if("object"==typeof e){const t=ee.get(e);t?n=t:(n=Q(e),n&&ee.set(e,n))}else n=Q(e);if(!n)return[];const o=ne(n,t);return void 0===o?[]:Array.isArray(o)?o:[o]}function ne(e,t={}){if(e){if("static"===e.type)return e.value;if("chain"===e.type)return e.value;if("gate"===e.type){if(!e.match(t))return;return ne(e.next,t)}if("sequence"===e.type){const n=[];for(const o of e.value){const e=ne(o,t);void 0!==e&&(Array.isArray(e)?n.push(...e):n.push(e))}return n.length>0?n:void 0}if("many"===e.type){const n=[];for(const o of e.routes){if(!o.match(t))continue;const e=ne(o.next,t);void 0!==e&&(Array.isArray(e)?n.push(...e):n.push(e))}return n.length>0?n:void 0}for(const n of e.routes)if(n.match(t))return ne(n.next,t)}}function oe(e,t){const n={ingest:null!=e?e:{}};return void 0!==t&&(n.event=t),n}function re(e){var t;return{stop:null!=(t=e.stop)&&t,storeId:e.store,namespace:e.namespace,rules:e.rules.map(e=>({match:e.match?J(e.match):()=>!0,key:e.key,ttl:e.ttl,update:e.update}))}}async function se(e,t,n,o){const r=e.rules.find(e=>e.match(n));if(!r)return null;const s=r.key.map(e=>{var t;return String(null!=(t=j(n,e))?t:"")});if(s.every(e=>""===e))return null;const i=s.join(":"),a=null!=o?o:e.namespace,c=a?`${a}:${i}`:i,l=await t.get(c);return void 0!==l?{status:"HIT",key:c,value:l,rule:r}:{status:"MISS",key:c,rule:r}}function ie(e,t,n,o){e.set(t,n,1e3*o)}async function ae(e,t,n,o){if(!t)return e;let r=e;for(const[e,s]of Object.entries(t))r=E(r,e,await B(n,s,{collector:o}));return r}function ce(e){return y(e)?e:[e]}async function le(e,t,n,o){let r=n;for(const n of e)await V(async()=>{const e=t(n.store);if(!e)return;const s=await B(r,n.key,{collector:o,event:r});if(!C(s))return;const i=n.store?s:`state:${s}`;if("set"===n.mode){const t=await B(r,n.value,{collector:o,event:r});if(!b(t))return;await e.set(i,t)}else{const t=C(a=n.value)?a:x(a)&&C(a.key)?a.key:void 0;if(!t)return;const o=await e.get(i);if(!b(o))return;r=E(r,t,o)}var a},e=>{var t,n;if(e instanceof H)throw e;null==(n=null==(t=o.logger)?void 0:t.error)||n.call(t,"[state] operation failed",e)})();return r}var ue={Source:["code","package","import","before","next","cache","state"],Transformer:["code","package","import","before","next","cache","state","mapping"],Destination:["code","package","import","before","next","cache","state"],Store:["code","package","import","cache"]},de=["config","env","validate","variables","examples","disabled","id","logger","mock","chainMocks"],fe={Source:["primary"],Transformer:[],Destination:[],Store:[]},pe=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function ge(e,t){const n=(o=t,new Set([...ue[o],...de,...fe[o]]));var o;for(const o of Object.keys(e))if(!n.has(o))return{ok:!1,code:"UNKNOWN_KEY",key:o,reason:`Unknown key "${o}" on ${t}. Allowed: ${[...n].sort().join(", ")}.`};const r=void 0!==e.package,s=void 0!==e.import,i=void 0!==e.code;return i&&"string"==typeof e.code?{ok:!1,code:"OBSOLETE_CODE_STRING",key:"code",reason:`code: "<name>" is no longer supported. Use import: "${e.code}" with the package field instead.`}:i&&("object"!=typeof e.code&&"function"!=typeof e.code||null===e.code||Array.isArray(e.code))?{ok:!1,code:"INVALID_CODE_SHAPE",key:"code",reason:"code must be an object ({ push, type?, init? }) or a resolved function value."}:i&&r?{ok:!1,code:"CONFLICT",key:"package",reason:"Cannot specify both `code` and `package`. Use one or the other."}:i&&s?{ok:!1,code:"CONFLICT",key:"import",reason:"Cannot specify both `code` and `import`."}:s&&!r?{ok:!1,code:"MISSING_PACKAGE",key:"import",reason:"`import` requires `package` to be set."}:!s||"string"==typeof e.import&&pe.test(e.import)?{ok:!0}:{ok:!1,code:"INVALID_IMPORT",key:"import",reason:`import must match ${pe.source}. Got: ${JSON.stringify(e.import)}.`}}var me={Commands:{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",Session:"session",Shutdown:"shutdown",User:"user",Walker:"walker"},Utils:{Storage:{Cookie:"cookie",Local:"local",Session:"session"}}};function he(e,t){const n=e.status.startedAt;return{flowId:"default",stepId:t.stepId,stepType:t.stepType,phase:t.phase,eventId:t.eventId,timestamp:new Date(t.now).toISOString(),elapsedMs:t.now-n}}function ve(e,t){return e.storeId&&t.stores[e.storeId]?t.stores[e.storeId]:t.stores.__cache}function ye(e,t){return e?t.stores[e]:t.stores.__cache}function be(e){var t;const n={};for(const[o,r]of Object.entries(e)){const e=null==(t=r.config)?void 0:t.next;"string"==typeof e||Array.isArray(e)&&e.every(e=>"string"==typeof e)?n[o]={next:e}:n[o]={}}return n}function we(e,t){const n=e.config||{},o=e[t];return void 0!==o?{config:{...n,[t]:o},chainValue:o}:{config:n,chainValue:void 0}}function ke(e,t={}){if(!e)return[];if(Array.isArray(e))return e;const n=[],o=new Set;let r=e;for(;r&&t[r]&&!o.has(r);){o.add(r),n.push(r);const e=t[r].next;if(Array.isArray(e)){n.push(...e);break}r=e}return n}async function xe(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:m(n),config:t.config,env:Ee(t.config.env)};r.debug("init");const i=await F(t.init,"TransformerInit",e.hooks,e.logger)(s);if(!1===i)return!1;t.config={...i||t.config,env:(null==i?void 0:i.env)||t.config.env,init:!0},r.debug("init done")}return!0}async function Ce(e,t,n,o,r,s){const i=t.type||"unknown",a=e.logger.scope(`transformer:${i}`),l={collector:e,logger:a,id:n,ingest:r,config:t.config,env:{...Ee(t.config.env),...s?{respond:s}:{}}};a.debug("push",{event:o.name});const u="string"==typeof o.id?o.id:"",d=Date.now();Y(e,he(e,{stepId:c("transformer",n),stepType:"transformer",phase:"in",eventId:u,now:d}));try{const r=await F(t.push,"TransformerPush",e.hooks,e.logger)(o,l),s=Date.now(),i=he(e,{stepId:c("transformer",n),stepType:"transformer",phase:"out",eventId:u,now:s});return i.durationMs=s-d,i.outEvent=r,Y(e,i),a.debug("push done"),r}catch(t){const o=Date.now(),r=he(e,{stepId:c("transformer",n),stepType:"transformer",phase:"error",eventId:u,now:o});throw r.durationMs=o-d,r.error=t instanceof Error?{name:t.name,message:t.message}:{message:String(t)},Y(e,r),t}}function Oe(e,t){return e?{...e,_meta:{...e._meta,path:[...e._meta.path]}}:m(t)}async function je(e,t,n,o,r,s,i){var a,c,l,u,d,f,p,g,h;r||(r=m(null!=(a=n[0])?a:"chain")),i&&r._meta&&(r._meta.chainPath=i);let v=o,y=s;for(const o of n){const s=t[o];if(!s){e.logger.warn(`Transformer not found: ${o}`);continue}if(r&&r._meta&&r._meta.path.length>256)return e.logger.error(`Max path length exceeded at ${o}`),{event:null,respond:y};if(r&&r._meta&&(r._meta.hops++,r._meta.path.push(o)),!await V(xe,t=>{if(t instanceof H)throw t;return e.status.failed++,e.logger.scope(`transformer:${s.type||"unknown"}`).error("transformer init failed",{transformer:o,error:t}),!1})(e,s,o))return{event:null,respond:y};if(i&&void 0!==(null==(l=null==(c=s.config)?void 0:c.chainMocks)?void 0:l[i])){const t=s.config.chainMocks[i];e.logger.scope(`transformer:${s.type||"unknown"}`).debug("chainMock",{chain:i}),v=t;continue}if(void 0!==(null==(u=s.config)?void 0:u.mock)){e.logger.scope(`transformer:${s.type||"unknown"}`).debug("mock"),v=s.config.mock;continue}if(null==(d=s.config)?void 0:d.disabled)continue;const a=null==(f=s.config)?void 0:f.cache,m=a?re(a):void 0,b=m?ve(m,e):void 0,w=(null==(p=s.config)?void 0:p.state)?ce(s.config.state):void 0,k=null==w?void 0:w.filter(e=>"get"===e.mode),x=null==w?void 0:w.filter(e=>"set"===e.mode),C=async t=>x&&0!==x.length?le(x,t=>ye(t,e),t,e):t;let O;if(m&&b){const e=oe(r,v),t=await se(m,b,e);if("HIT"===(null==t?void 0:t.status)&&t.value){if(v=t.value,m.stop)return{event:v,respond:y,stopped:!0};continue}"MISS"===(null==t?void 0:t.status)&&(O={key:t.key,ttl:t.rule.ttl})}const j=s.config.before;if(j){const n=te(j,oe(r,v));if(1===n.length){const o=ke(n[0],be(t));if(o.length>0){const n=await je(e,t,o,v,r,y,i);if(null===n.event)return{event:null,respond:null!=(g=n.respond)?g:y};if(n.stopped)return{event:Array.isArray(n.event)?n.event[0]:n.event,respond:null!=(h=n.respond)?h:y,stopped:!0};n.respond&&(y=n.respond),v=Array.isArray(n.event)?n.event[0]:n.event}}else n.length>1&&await Promise.all(n.map(n=>V(je,t=>(e.logger.scope("transformer:many").error(`many branch ${n} failed`,{error:t}),{event:null,respond:void 0}))(e,t,ke(n,be(t)),v,Oe(r,n),void 0,i)))}k&&k.length>0&&(v=await le(k,t=>ye(t,e),v,e));const E=await V(Ce,t=>(e.logger.scope(`transformer:${s.type||"unknown"}`).error("Push failed",{error:t}),!1))(e,s,o,v,r,y);if(!1===E)return{event:null,respond:y};if(Array.isArray(E)){const s=n.slice(n.indexOf(o)+1),a=await Promise.all(E.map(async n=>{const o=await C(n.event||v),a=Oe(r,"unknown");if(n.next){const r=te(n.next,oe(a,o));if(0===r.length)return{event:o,respond:y};if(1===r.length){const n=ke(r[0],be(t));return n.length>0?je(e,t,n,o,a,y,i):{event:o,respond:y}}return(await Promise.all(r.map(n=>V(je,t=>(e.logger.scope("transformer:many").error(`many branch ${n} failed`,{error:t}),{event:null,respond:void 0}))(e,t,ke(n,be(t)),o,Oe(a,n),void 0,i)))).map(e=>({event:e.event,respond:void 0}))}return s.length>0?je(e,t,s,o,a,y,i):{event:o,respond:y}}));let c=y;const l=[];for(const e of a.flat())if(null!==e)if(e&&"object"==typeof e&&"event"in e){const t=e;if(t.respond&&(c=t.respond),null===t.event)continue;Array.isArray(t.event)?l.push(...t.event):l.push(t.event)}else l.push(e);return 0===l.length?{event:null,respond:c}:1===l.length?{event:l[0],respond:c}:{event:l,respond:c}}if(E&&"object"==typeof E){const{event:n,respond:o,next:s}=E;if(o&&(y=o),void 0!==s){const o=await C(n||v),a=te(s,oe(r,o));if(0===a.length){v=o;continue}if(1===a.length){const n=ke(a[0],be(t));return n.length>0?je(e,t,n,o,r,y,i):(e.logger.warn(`Branch target not found: ${JSON.stringify(s)}`),{event:null,respond:y})}return await Promise.all(a.map(n=>V(je,t=>(e.logger.scope("transformer:many").error(`many branch ${n} failed`,{error:t}),{event:null,respond:void 0}))(e,t,ke(n,be(t)),o,Oe(r,n),void 0,i))),{event:null,respond:void 0}}n&&(v=n)}x&&x.length>0&&(v=await le(x,t=>ye(t,e),v,e)),O&&b&&ie(b,O.key,v,O.ttl);const S=s.config.next,A="string"==typeof S||Array.isArray(S)&&S.every(e=>"string"==typeof e),I=void 0!==S&&!A;if((!E||"object"==typeof E&&!E.next)&&I){const n=te(s.config.next,oe(r,v));if(1===n.length){const o=ke(n[0],be(t));return o.length>0?je(e,t,o,v,r,y,i):{event:v,respond:y}}return n.length>1?(await Promise.all(n.map(n=>V(je,t=>(e.logger.scope("transformer:many").error(`many branch ${n} failed`,{error:t}),{event:null,respond:void 0}))(e,t,ke(n,be(t)),v,Oe(r,n),void 0,i))),{event:null,respond:void 0}):{event:v,respond:y}}}return{event:v,respond:y}}function Ee(e){return e&&x(e)?e:{}}function Se(e){return"string"==typeof e||!(!Array.isArray(e)||!e.every(e=>"string"==typeof e))}async function Ae(e,t,n){var o,r;if(!t.on||!(null==(o=t.queueOn)?void 0:o.length))return;const s=t.queueOn;t.queueOn=[];const i=n||(null==(r=t.config)?void 0:r.id)||"unknown";for(const{type:n,data:o}of s)De(n)&&!Pe(e,t)||(await V(t.on,t=>{if(t instanceof H)throw t;e.status.failed++,e.logger.scope("source").error("source on flush failed",{sourceId:i,type:n,error:t})})(n,o),De(n)&&Te(e,t))}function Ie(e){var t;return Boolean(e.config.init)&&!(null==(t=e.config.require)?void 0:t.length)}async function $e(e,t,n){var o,r;const{code:s,config:i={},env:a={},primary:c,next:l,before:u,cache:d}=n,f=null!=(o=i.state)?o:n.state,p=f?ce(f):void 0,g=d,h=g?re({...g,stop:null==(r=g.stop)||r}):void 0,v=Se(l)?ke(l,be(e.transformers)):void 0,y=Se(u)?ke(u,be(e.transformers)):void 0,b=a.push,w=null!=b?b:e.push,k=Boolean(b),x=async(n,o,r)=>{var s;let a;const c=null!=y?y:void 0!==u?(()=>{const t=te(u,oe(r.ingest));return 0===t.length?[]:ke(1===t.length?t[0]:t,be(e.transformers))})():[];let d=[n];if(c.length>0&&e.transformers&&Object.keys(e.transformers).length>0){const o=await je(e,e.transformers,c,n,r.ingest,r.respond,`source.${t}.before`);if(null===o.event)return{ok:!0};if(o.stopped)return o.respond&&(r.respond=o.respond),{ok:!0};o.respond&&(r.respond=o.respond),d=Array.isArray(o.event)?o.event:[o.event]}if(h){const t=ve(h,e);if(t){const n=oe(r.ingest),o=await se(h,t,n);if(o){if("HIT"===o.status&&void 0!==o.value&&h.stop){let t=o.value;return o.rule.update&&(t=await ae(t,o.rule.update,{...n,cache:{status:"HIT"}},e)),null==(s=r.respond)||s.call(r,t),{ok:!0}}if("MISS"===o.status&&h.stop&&r.respond){const s=r.respond,i=o.rule.update,c={...n,cache:{status:"MISS"}},l=o.key,u=o.rule.ttl,d=n=>{ie(t,l,n,u),i?a=(async()=>{const t=await ae(n,i,c,e);s(t)})():s(n)};r.respond=d}"MISS"!==o.status||h.stop||ie(t,o.key,!0,o.rule.ttl)}}}const f=v?{kind:"single",preChain:v}:void 0!==l?(()=>{const t=te(l,oe(r.ingest));return 0===t.length?{kind:"single",preChain:[]}:1===t.length?{kind:"single",preChain:ke(t[0],be(e.transformers))}:{kind:"many",branches:t.map(t=>ke(t,be(e.transformers)))}})():{kind:"single",preChain:[]};!k&&p&&p.length>0&&(d=await Promise.all(d.map(t=>le(p,t=>ye(t,e),t,e))));let g={ok:!0};for(const n of d)"many"===f.kind?(await Promise.all(f.branches.map((s,a)=>V(async()=>k?w(n):w(n,{...o,id:t,ingest:Oe(r.ingest,`${t}.${a}`),respond:void 0,mapping:i,preChain:s}),t=>(e.logger.scope("source:many").error(`many branch ${a} failed`,{error:t}),{ok:!0}))())),g={ok:!0}):g=k?await w(n):await w(n,{...o,id:t,ingest:r.ingest,respond:r.respond,mapping:i,preChain:f.preChain});return a&&await a,g},C=async n=>{const o=m(t);if(!i.ingest||void 0===n)return o;const r=await B(n,i.ingest,{collector:e});return{...o,...r,_meta:o._meta}},O=e.logger.scope("source").scope(t),j={command:e.command,sources:e.sources,elb:e.sources.elb.push,logger:O,...a,push:async(e,n={})=>{const o={ingest:m(t),respond:void 0};return x(e,n,o)}},E={collector:e,logger:O,id:t,config:i,env:j,withScope:async(e,t,n)=>{const o={ingest:await C(e),respond:t};return n({...j,push:(e,t={})=>x(e,t,o),ingest:o.ingest,respond:o.respond})}},S=await V(s,n=>{if(n instanceof H)throw n;e.status.failed++,e.logger.scope("source").error("source factory failed",{sourceId:t,error:n})})(E);if(!S)return;const A=S.type||"unknown",I=e.logger.scope(A).scope(t);return j.logger=I,c&&(S.config={...S.config,primary:c}),S}function qe(e,t,n,o){if(n instanceof H)throw n;e.logger.scope("on").error("on callback failed",{kind:t,...o,error:n})}function De(e){return e===me.Commands.Consent||e===me.Commands.User||e===me.Commands.Globals||e===me.Commands.Custom}function Te(e,t){e.delivery.set(t,e.stateVersion)}function Pe(e,t){return e.allowed&&e.stateVersion>function(e,t){const n=e.delivery.get(t);return void 0===n?-1:n}(e,t)}function Me(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<=8||(9===i&&e.logger.error("state delivery did not converge",{type:s}),!1)}function _e(e,t){return{collector:e,logger:e.logger.scope("on").scope(String(t))}}function Le(e,t,n,o,r){if(!t.on)return;const s=t.type||"unknown",i=e.logger.scope(s).scope("on").scope(o),a={collector:e,logger:i,id:n,config:t.config,data:r,env:nt(t.env,t.config.env)};z(t.on,t=>qe(e,"destination",t,{destId:n,type:o}))(o,a)}function Ne(e,t,n,o){let r;switch(t){case me.Commands.Consent:r=o||e.consent;break;case me.Commands.Session:r=e.session;break;case me.Commands.User:r=o||e.user;break;case me.Commands.Custom:r=o||e.custom;break;case me.Commands.Globals:r=o||e.globals;break;case me.Commands.Config:r=o||e.config;break;case me.Commands.Ready:case me.Commands.Run:default:r=void 0}if(n.length)switch(t){case me.Commands.Consent:!function(e,t,n){const o=n||e.consent,r=_e(e,me.Commands.Consent);t.forEach(t=>{Pe(e,t)&&Me(e,t,me.Commands.Consent)&&(Object.keys(o).filter(e=>e in t).forEach(n=>{z(t[n],t=>qe(e,"consent",t,{key:n}))(o,r)}),Te(e,t))})}(e,n,o);break;case me.Commands.Ready:!function(e,t){if(!e.allowed)return;const n=_e(e,me.Commands.Ready);t.forEach(t=>{z(t,t=>qe(e,"ready",t))(void 0,n)})}(e,n);break;case me.Commands.Run:!function(e,t){if(!e.allowed)return;const n=_e(e,me.Commands.Run);t.forEach(t=>{z(t,t=>qe(e,"run",t))(void 0,n)})}(e,n);break;case me.Commands.Session:!function(e,t){if(!e.session)return;const n=_e(e,me.Commands.Session);t.forEach(t=>{z(t,t=>qe(e,"session",t))(e.session,n)})}(e,n);break;default:{const o=_e(e,t),s=De(t);n.forEach(n=>{"function"==typeof n&&(s&&!Pe(e,n)||s&&!Me(e,n,t)||(z(n,n=>qe(e,"generic",n,{type:t}))(r,o),s&&Te(e,n)))});break}}}function Re(e,t,n){switch(t){case me.Commands.Consent:return n||e.consent;case me.Commands.Session:return e.session;case me.Commands.User:return n||e.user;case me.Commands.Custom:return n||e.custom;case me.Commands.Globals:return n||e.globals;case me.Commands.Config:return n||e.config;default:return}}async function We(e,t,n,o,r){if(!t.on)return!1;if(De(o)&&!Pe(e,t))return!1;if(De(o)&&!Me(e,t,o))return!1;const s=await V(t.on,t=>qe(e,"source",t,{sourceId:n,type:o}))(o,r);return De(o)&&Te(e,t),!1===s}function ze(e,t,n,o){var r;if(!Number.isFinite(n.max)||n.max<=0)throw new Error(`pushBounded: max must be > 0 (got ${n.max})`);if("dropNewest"===(null!=(r=n.onOverflow)?r:"dropOldest"))return e.length>=n.max?(o&&o([t]),{appended:!1,dropped:1}):(e.push(t),{appended:!0,dropped:0});const s=[];for(;e.length>=n.max;)s.push(e.shift());return e.push(t),s.length>0&&o&&o(s),{appended:!0,dropped:s.length}}var Ve=new WeakMap;function He(e,t,n,o){Ve.get(e)||(Ve.set(e,!0),t.warn(n,o))}function Be(e){Ve.delete(e)}var Ue=Object.freeze({batched:!0});function Ke(e){return e===Ue}function Ge(e){return void 0===e?{}:"number"==typeof e?{wait:e}:{wait:e.wait,size:e.size,age:e.age}}function Fe(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 Ye(e,t,n,o){var r;e.dropped[t]||(e.dropped[t]={});const s=e.dropped[t];return s[n]=(null!=(r=s[n])?r:0)+o,s[n]}function Je(e,t,n){if(!e)return[];if(Array.isArray(e)&&e.every(e=>"string"==typeof e))return ke(e,t);if("string"==typeof e)return ke(e,t);const o=te(e,oe(n));return 0===o.length?[]:1===o.length?ke(o[0],t):ke(o,t)}async function Xe(e,t,n={},o){var r,s,i,a,l,u;const{allowed:d,consent:f,globals:p,user:g}=e;if(!d)return et({ok:!1});if(t){const n=e.config.queueMax;if(void 0===n)throw new Error("Collector.Config.queueMax is undefined; defaults must be seeded by collector()");const o=ze(e.queue,t,{max:n});if(o.dropped>0){const t=Ye(e.status,c("collector"),"queue",o.dropped);He(e.queue,e.logger,"collector.queue overflow; oldest events dropped",{buffer:"queue",cap:n,droppedCount:t})}else e.queue.length<n&&Be(e.queue);e.status.in++}o||(o=e.destinations);const h=e.transformers?be(e.transformers):{},y=await Promise.all(Object.entries(o||{}).map(async([o,r])=>{var s,i,a,l,u;if(r.config.disabled)return{id:o,destination:r,skipped:!0};let d=(r.queuePush||[]).map(e=>({...e,consent:f}));r.queuePush=[],t&&d.push(O(t));const y=n.ingest?{...n.ingest,_meta:{...n.ingest._meta,path:[...n.ingest._meta.path]}}:m("unknown");if(!d.length&&!(null==(s=r.queueOn)?void 0:s.length))return{id:o,destination:r,skipped:!0};if(!d.length&&(null==(i=r.queueOn)?void 0:i.length)){let t=!1;try{t=await Ze(e,r,o)}catch(t){e.status.failed++;const n=r.type||"unknown";e.logger.scope(n).error("destination init failed",{error:t instanceof Error?t.message:String(t)})}return{id:o,destination:r,skipped:!t}}const b=[],w=d.filter(t=>{const n=$(r.config.consent,f,t.consent);if(n)return t.consent=n,b.push(t),!1;const s=he(e,{stepId:c("destination",o),stepType:"destination",phase:"skip",eventId:"string"==typeof t.id?t.id:"",now:Date.now()});return s.skipReason="consent",f&&(s.consent={...f}),r.config.consent&&(s.meta={required:{...r.config.consent}}),Y(e,s),!0});if(w.length>0){const t=r.queuePush,n=r.config.id||o,s={max:null!=(a=r.config.queueMax)?a:1e3};let i=0;for(const e of w)i+=ze(t,e,s).dropped;if(i>0){Fe(e,n);const o=Ye(e.status,c("destination",n),"queue",i);He(t,e.logger.scope(r.type||"unknown"),"destination.queuePush overflow; oldest events dropped",{buffer:"queuePush",destination:n,cap:s.max,droppedCount:o})}else t.length<s.max&&Be(t)}if(!b.length)return{id:o,destination:r,queue:d};let k,x,C=!1;try{C=await Ze(e,r,o)}catch(t){e.status.failed++;const n=r.type||"unknown";e.logger.scope(n).error("destination init failed",{error:t instanceof Error?t.message:String(t)})}if(!C)return{id:o,destination:r,queue:d};r.dlq||(r.dlq=[]);const j=Je(r.config.before,h,y),E=r.config.next,S=null==(l=r.config)?void 0:l.cache,A=S?re(S):void 0,I=A?ve(A,e):void 0,q=(null==(u=r.config)?void 0:u.state)?ce(r.config.state):void 0,D=null==q?void 0:q.filter(e=>"get"===e.mode),T=null==q?void 0:q.filter(e=>"set"===e.mode);let P=0,M=0;return await Promise.all(b.map(async t=>{let s;if(t.globals=v(p,t.globals),t.user=v(g,t.user),(null==A?void 0:A.stop)&&I){const e=oe(y,t),n=await se(A,I,e);if("HIT"===(null==n?void 0:n.status))return t;"MISS"===(null==n?void 0:n.status)&&(s={key:n.key,ttl:n.rule.ttl})}let i=t,a=n.respond;if(j.length>0&&e.transformers&&Object.keys(e.transformers).length>0){const r=await je(e,e.transformers,j,t,y,n.respond,`destination.${o}.before`);if(null===r.event)return t;r.respond&&(a=r.respond),i=Array.isArray(r.event)?r.event[0]:r.event}if(A&&!A.stop&&I){const e=oe(y,i),n=await se(A,I,e);if("HIT"===(null==n?void 0:n.status))return t;"MISS"===(null==n?void 0:n.status)&&(s={key:n.key,ttl:n.rule.ttl})}D&&D.length>0&&i&&(i=await le(D,t=>ye(t,e),i,e));const l=Date.now();let u=!1;const d=await V(Qe,t=>{var n;const s=r.type||"unknown";e.logger.scope(s).error("Push failed",{error:t,event:i.name}),k=t,u=!0;const a=r.dlq,l=r.config.id||o,d={max:null!=(n=r.config.dlqMax)?n:100},f=ze(a,[i,t],d);if(f.dropped>0){Fe(e,l);const t=Ye(e.status,c("destination",l),"dlq",f.dropped);He(a,e.logger.scope(r.type||"unknown"),"destination.dlq overflow; oldest entries dropped",{buffer:"dlq",destination:l,cap:d.max,droppedCount:t})}else a.length<d.max&&Be(a)})(e,r,o,i,y,a);if(P+=Date.now()-l,s&&I&&void 0===r.config.mock&&ie(I,s.key,null==d||d,s.ttl),!u&&!Ke(d)&&T&&T.length>0&&i&&(i=await le(T,t=>ye(t,e),i,e)),void 0===d||Ke(d)||(x=d),Ke(d)&&M++,!u&&E){void 0!==d&&(y._response=d);const t=Je(E,h,y);if(t.length>0&&e.transformers&&Object.keys(e.transformers).length>0){const n=await je(e,e.transformers,t,i,y,a,`destination.${o}.next`);n.respond&&(a=n.respond)}}return t})),{id:o,destination:r,error:k,response:x,totalDuration:P,batchedCount:M,allowedCount:b.length}})),b={},w={},k={};for(const t of y){if(t.skipped)continue;const n=t.destination,o={type:n.type||"unknown",data:t.response};Fe(e,t.id);const c=e.status.destinations[t.id],d=Date.now();if(c.queuePushSize=null!=(s=null==(r=n.queuePush)?void 0:r.length)?s:0,c.dlqSize=null!=(a=null==(i=n.dlq)?void 0:i.length)?a:0,t.error)o.error=t.error,k[t.id]=o,c.failed++,c.lastAt=d,c.duration+=t.totalDuration||0,e.status.failed++;else if(t.queue&&t.queue.length)w[t.id]=o;else{const n=null!=(l=t.batchedCount)?l:0,r=null!=(u=t.allowedCount)?u:0;(Math.max(0,r-n)>0||0===r)&&(b[t.id]=o,c.count++,c.lastAt=d,c.duration+=t.totalDuration||0,e.status.out++)}}return et({event:t,...Object.keys(b).length&&{done:b},...Object.keys(w).length&&{queued:w},...Object.keys(k).length&&{failed:k}})}async function Ze(e,t,n){var o;if(t.init&&!t.config.init){const r=t.type||"unknown",s=e.logger.scope(r),i={collector:e,logger:s,id:n,config:t.config,env:nt(t.env,t.config.env)};s.debug("init");const a=Date.now();let l;Y(e,he(e,{stepId:c("destination",n),stepType:"destination",phase:"init",eventId:"",now:a}));try{l=await F(t.init,"DestinationInit",e.hooks,e.logger)(i)}catch(t){const o=Date.now(),r=he(e,{stepId:c("destination",n),stepType:"destination",phase:"error",eventId:"",now:o});throw r.durationMs=o-a,r.error=t instanceof Error?{name:t.name,message:t.message}:{message:String(t)},Y(e,r),t}if(!1===l)return l;if(t.config={...l||t.config,init:!0},null==(o=t.queueOn)?void 0:o.length){const o=t.queueOn;t.queueOn=[];for(const{type:r,data:s}of o)Le(e,t,n,r,s)}s.debug("init done")}return!0}async function Qe(e,t,n,o,r,s){var i,a,l,u,d,f,p;const{config:g}=t,m=await K(o,g,e);if(m.ignore)return!1;const h=t.type||"unknown",v=e.logger.scope(h),y={collector:e,logger:v,id:n,config:g,data:m.data,rule:m.mapping,ingest:r,env:{...nt(t.env,g.env),...s?{respond:s}:{}}};if(void 0!==g.mock)return v.debug("mock",{event:m.event.name}),g.mock;const w=m.mapping,k=m.mappingKey||"* *";if((null==w?void 0:w.batch)&&t.pushBatch&&void 0===g.mock){if(t.batches=t.batches||{},!t.batches[k]){const o={key:k,entries:[],events:[],data:[]},r=Ge(w.batch),s=Ge(g.batch),p=null!=(a=null!=(i=r.wait)?i:s.wait)?a:3e4,m=null!=(u=null!=(l=r.size)?l:s.size)?u:1e3,h=null!=(f=null!=(d=r.age)?d:s.age)?f:3e4,y=nt(t.env,g.env),b=function(e,t=1e3,n=!1){const{wait:o,size:r,age:s}=T(t,1e3);let i,a,c=null,l=null,u=!1,d=[],f=0;const p=()=>{c&&(clearTimeout(c),c=null),l&&(clearTimeout(l),l=null),f=0,a=void 0},g=()=>{const t=a,n=d;if(p(),d=[],t)return i=e(...t),n.forEach(e=>e(i)),i;n.forEach(e=>e(void 0))},m=(...t)=>new Promise(p=>{const m=n&&!u;if(a=t,f+=1,d.push(p),c&&clearTimeout(c),c=setTimeout(()=>{c=null,n&&!u||g()},o),void 0===s||l||(l=setTimeout(()=>{l=null,g()},s)),void 0!==r&&f>=r)g();else if(m){u=!0,i=e(...t);const n=d;d=[],n.forEach(e=>e(i))}});return m.flush=()=>a||0!==d.length?new Promise(e=>{d.push(e),g()}):Promise.resolve(void 0),m.cancel=()=>{const e=d;d=[],p(),e.forEach(e=>e(void 0))},m.size=()=>f,m}(async()=>{var o;const r=t.batches[k].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 i=s.entries[0],a={collector:e,logger:v,id:n,config:g,data:void 0,rule:i.rule,ingest:i.ingest,env:{...y,...i.respond?{respond:i.respond}:{}}};v.debug("push batch",{events:s.entries.length});const l=t.config.id||n,u=Fe(e,l),d=Date.now(),f=he(e,{stepId:c("destination",n),stepType:"destination",phase:"flush",eventId:"",now:d});f.batch={size:s.entries.length,index:0},Y(e,f);let p=!0;await V(F(t.pushBatch,"DestinationPushBatch",e.hooks,e.logger),o=>{var r;p=!1;const i=Date.now(),a=he(e,{stepId:c("destination",n),stepType:"destination",phase:"error",eventId:"",now:i});a.durationMs=i-d,a.error=o instanceof Error?{name:o.name,message:o.message}:{message:String(o)},a.batch={size:s.entries.length,index:0},Y(e,a);const f=t.dlq=t.dlq||[],g={max:null!=(r=t.config.dlqMax)?r:100};let m=0;for(const e of s.entries)m+=ze(f,[e.event,o],g).dropped;if(m>0){const t=Ye(e.status,c("destination",l),"dlq",m);He(f,v,"destination.dlq overflow; oldest entries dropped",{buffer:"dlq",destination:l,cap:g.max,droppedCount:t})}else f.length<g.max&&Be(f);u.failed+=s.entries.length,u.dlqSize=f.length,e.status.failed+=s.entries.length,v.error("Push batch failed",{error:o instanceof Error?o.message:String(o),entries:s.entries.length})})(s,a),v.debug("push batch done"),u.inFlightBatch=Math.max(0,(null!=(o=u.inFlightBatch)?o:0)-s.entries.length),p&&(u.count+=s.entries.length,u.lastAt=Date.now(),e.status.out+=s.entries.length)},{wait:p,size:m,age:h});t.batches[k]={batched:o,batchFn:()=>{b()},flush:async()=>{await b.flush()}}}const o=t.batches[k];o.batched.entries.push({event:m.event,ingest:r,respond:s,rule:w,data:m.data}),o.batched.events.push(m.event),b(m.data)&&o.batched.data.push(m.data);const h=t.config.id||n,y=Fe(e,h);return y.inFlightBatch=(null!=(p=y.inFlightBatch)?p:0)+1,o.batchFn(),Ue}{v.debug("push",{event:m.event.name});const o="string"==typeof m.event.id?m.event.id:"",r=Date.now(),s=he(e,{stepId:c("destination",n),stepType:"destination",phase:"in",eventId:o,now:r});m.mappingKey&&(s.mappingKey=m.mappingKey),m.event.consent&&(s.consent={...m.event.consent}),Y(e,s);try{const s=await F(t.push,"DestinationPush",e.hooks,e.logger)(m.event,y),i=Date.now(),a=he(e,{stepId:c("destination",n),stepType:"destination",phase:"out",eventId:o,now:i});return a.durationMs=i-r,a.outEvent=s,m.mappingKey&&(a.mappingKey=m.mappingKey),Y(e,a),v.debug("push done"),s}catch(t){const s=Date.now(),i=he(e,{stepId:c("destination",n),stepType:"destination",phase:"error",eventId:o,now:s});throw i.durationMs=s-r,i.error=t instanceof Error?{name:t.name,message:t.message}:{message:String(t)},m.mappingKey&&(i.mappingKey=m.mappingKey),Y(e,i),t}}}function et(e){return{ok:!(null==e?void 0:e.failed),...e}}function tt(e){const{code:t,config:n={},env:o={},cache:r,state:s}=e,{config:i}=we(e,"before"),{config:a}=we({...e,config:i},"next"),c={...t.config,...n,...a};r&&(c.cache=r),void 0!==s&&void 0===c.state&&(c.state=s);const l=nt(t.env,o);return{...t,config:c,env:l}}function nt(e,t){return e||t?t?e&&x(e)&&x(t)?{...e,...t}:t:e:{}}async function ot(e,t,n){const o=Object.entries(e).map(async([e,o])=>{var r;const s=o.destroy;if(!s)return;const i=o.type||"unknown",a=n.scope(i),c={id:e,config:o.config,env:null!=(r=o.env)?r:{},logger:a};try{await Promise.race([s(c),new Promise((n,o)=>setTimeout(()=>o(new Error(`${t} '${e}' destroy timed out`)),5e3))])}catch(n){a.error(`${t} '${e}' destroy failed: ${n}`)}});await Promise.allSettled(o)}async function rt(e,t,n){let o,r,s=!1;const i=function(e){return e.cascade?()=>{}:(e.cascade={counts:new WeakMap},()=>{e.cascade=void 0})}(e);try{return await async function(){switch(t){case me.Commands.Config:x(n)&&(v(e.config,n,{shallow:!1}),r=n,s=!0);break;case me.Commands.Consent:if(x(n)){const{update:t}=function(e,t){const n={};return Object.entries(t).forEach(([e,t])=>{n[e]=!!t}),e.consent=v(e.consent,n),{update:n}}(e,n);e.stateVersion++,r=t,s=!0}break;case me.Commands.Custom:x(n)&&(e.custom=v(e.custom,n),e.stateVersion++,r=n,s=!0);break;case me.Commands.Destination:x(n)&&"code"in n&&x(n.code)&&(o=await async function(e,t){const{code:n,config:o={},env:r={},before:s,next:i,cache:a,state:c}=t;if(!k(n.push))return et({ok:!1,failed:{invalid:{type:"invalid",error:"Destination code must have a push method"}}});const l=o||{init:!1};let u=s?{...l,before:s}:{...l};i&&(u={...u,next:i}),a&&(u={...u,cache:a}),void 0!==c&&void 0===u.state&&(u={...u,state:c});const d={...n,config:u,env:nt(n.env,r)};let f=d.config.id;if(!f)do{f=D(5,"abcdefghijklmnopqrstuvwxyz")}while(e.destinations[f]);return e.destinations[f]=d,!1!==d.config.queue&&(d.queuePush=[...e.queue]),Xe(e,void 0,{},{[f]:d})}(e,n));break;case me.Commands.Globals:x(n)&&(e.globals=v(e.globals,n),e.stateVersion++,r=n,s=!0);break;case me.Commands.Hook:if(x(n)&&C(n.name)&&k(n.fn)){const{name:t,fn:o}=n;e.hooks[t]=o,r=n,s=!0}break;case me.Commands.On:if(x(n)&&C(n.type)){const{type:t,rules:o}=n;await async function(e,t,n){const o=e.on,r=o[t]||[],s=y(n)?n:[n];s.forEach(e=>{r.push(e)}),o[t]=r,Ne(e,t,s)}(e,t,o)}break;case me.Commands.Ready:s=!0;break;case me.Commands.Run:o=await async function(e,t){return e.allowed=!0,e.timing=Date.now(),t&&(t.consent&&(e.consent=v(e.consent,t.consent),e.stateVersion++),t.user&&(e.user=v(e.user,t.user),e.stateVersion++),t.globals&&(e.globals=v(e.config.globalsStatic||{},t.globals),e.stateVersion++),t.custom&&(e.custom=v(e.custom,t.custom),e.stateVersion++)),Object.values(e.destinations).forEach(e=>{e.queuePush=[]}),e.queue=[],e.round++,await async function(e){const t=[{type:me.Commands.Consent,nonEmpty:Object.keys(e.consent).length>0},{type:me.Commands.User,nonEmpty:Object.keys(e.user).length>0},{type:me.Commands.Globals,nonEmpty:Object.keys(e.globals).length>0},{type:me.Commands.Custom,nonEmpty:Object.keys(e.custom).length>0}];for(const{type:n,nonEmpty:o}of t){if(!o)continue;const t=Re(e,n);Ne(e,n,e.on[n]||[]);for(const[o,r]of Object.entries(e.sources))Ie(r)&&await We(e,r,o,n,t)}}(e),await Xe(e)}(e,n),s=!0;break;case me.Commands.Session:s=!0;break;case me.Commands.Shutdown:await async function(e){const t=e.logger;await ot(e.sources,"source",t),await ot(e.destinations,"destination",t),await ot(e.transformers,"transformer",t),await ot(e.stores,"store",t)}(e);break;case me.Commands.User:x(n)&&(v(e.user,n,{shallow:!1}),e.stateVersion++,r=n,s=!0)}return s&&(await async function(e,t,n,o){var r,s;let i,a=n||[];switch(n||(a=e.on[t]||[]),t){case me.Commands.Consent:i=o||e.consent;break;case me.Commands.Session:i=e.session;break;case me.Commands.User:i=o||e.user;break;case me.Commands.Custom:i=o||e.custom;break;case me.Commands.Globals:i=o||e.globals;break;case me.Commands.Config:i=o||e.config;break;case me.Commands.Ready:case me.Commands.Run:default:i=void 0}let c=!1;for(const[n,o]of Object.entries(e.sources)){if(null==(r=o.config.require)?void 0:r.length){const e=o.config.require.indexOf(t);-1!==e&&o.config.require.splice(e,1)}o.on&&(Ie(o)?await We(e,o,n,t,i)&&(c=!0):(o.queueOn=o.queueOn||[],o.queueOn.push({type:t,data:i})))}Object.entries(e.destinations).forEach(([n,o])=>{if(o.on){if(!o.config.init)return o.queueOn=o.queueOn||[],void o.queueOn.push({type:t,data:i});Le(e,o,n,t,i)}});for(const[t,n]of Object.entries(e.sources))Ie(n)&&(null==(s=n.queueOn)?void 0:s.length)&&await Ae(e,n,t);return Object.keys(e.pending.destinations).length>0&&await async function(e,t){var n;for(const[o,r]of Object.entries(e.pending.destinations)){if(!e.pending.destinations[o]||e.destinations[o])continue;const s=null==(n=r.config)?void 0:n.require;if(!s)continue;const i=s.indexOf(t);if(-1===i)continue;if(s.splice(i,1),s.length>0)continue;delete e.pending.destinations[o];const a=tt(r);!1!==a.config.queue&&(a.queuePush=[...e.queue]),e.destinations[o]=a}}(e,t),Ne(e,t,a,o),!c}(e,t,void 0,r),o=await Xe(e)),o||et({ok:!0})}()}finally{i()}}function st(e,t){if(!t.name)throw new Error("Event name is required");const[n,o]=t.name.split(" ");if(!n||!o)throw new Error("Event name is invalid");const{timestamp:r=Date.now(),name:s=`${n} ${o}`,data:i={},context:a={},globals:c=e.globals,custom:l={},user:u=e.user,nested:d=[],consent:f=e.consent,id:p=q(),trigger:g="",entity:m=n,action:h=o,timing:v=0,source:y={type:"collector",schema:"4"}}=t;return{name:s,data:i,context:a,globals:c,custom:l,user:u,nested:d,consent:f,id:p,trigger:g,entity:m,action:h,timestamp:r,timing:v,source:y}}function it(e={}){var t,n,o;const r=null!=(t=e.maxEntries)?t:1e4,s=null!=(n=e.lowWaterMark)?n:.8,i=null!=(o=e.sweepIntervalMs)?o:6e4,a=Math.floor(r*s),c=new Map,l={hits:0,misses:0,populates:0,writes:0,deletes:0,evictions_entries:0,evictions_ttl:0};let u;return i>0&&(u=setInterval(function(){const e=Date.now();let t=0;for(const[n,o]of c)void 0!==o.expires&&o.expires<=e&&(c.delete(n),t++);l.evictions_ttl+=t},i),u&&"function"==typeof u.unref&&u.unref()),{type:"memory",config:{},get(e){const t=c.get(e);if(t)return void 0!==t.expires&&t.expires<=Date.now()?(c.delete(e),l.evictions_ttl++,void l.misses++):(c.delete(e),c.set(e,t),l.hits++,t.value);l.misses++},set(e,t,n){const o=!c.has(e);o||c.delete(e),c.set(e,{value:t,expires:void 0!==n?Date.now()+n:void 0}),l.writes++,o&&l.populates++,c.size>r&&function(){if(c.size<=r)return;const e=c.size-a;let t=0;for(const n of c.keys()){if(t>=e)break;c.delete(n),t++}l.evictions_entries+=t}()},delete(e){c.delete(e)&&l.deletes++},get counters(){return{...l}},destroy(){void 0!==u&&(clearInterval(u),u=void 0),c.clear()}}}function at(e,t){const{cacheConfig:n,cacheStore:o,namespace:r,logger:s,storeId:i,collector:a}=t,c=(e,t)=>{if(!a)return;const n=he(a,{stepId:`store.${i}`,stepType:"store",phase:"in",eventId:"",now:Date.now()});n.meta={op:"cache",cached:"hit"===t,status:t,key:e},Y(a,n)},l={hits:0,misses:0,populates:0,writes:0,deletes:0,inflight_dedups:0},u=n.rules.map(e=>({match:e.match?J(e.match):()=>!0,ttl:e.ttl})),d=e=>`${r}:${e}`;function f(e,t){const n=void 0===t?{key:e}:{key:e,value:t};return u.find(e=>e.match(n))}const p=new Map;return{type:e.type,config:e.config,setup:e.setup,get counters(){return{...l}},async get(t){const n=d(t),r=await o.get(n);if(void 0!==r)return l.hits++,c(t,"hit"),r;const s=p.get(n);if(s)return l.inflight_dedups++,c(t,"hit"),s;l.misses++,c(t,"miss");const i=(async()=>{try{const r=await e.get(t);if(void 0===r)return;const s=f(t,r);if(s)try{await o.set(n,r,1e3*s.ttl),l.populates++}catch(e){g("set",t,e)}return r}finally{p.delete(n)}})();return p.set(n,i),i},async set(t,n,r){l.writes++,await e.set(t,n,r);const s=f(t,n);if(s)try{await o.set(d(t),n,1e3*s.ttl)}catch(e){g("set",t,e)}},async delete(t){l.deletes++,await e.delete(t);try{await o.delete(d(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,{error:n}):console.warn(o,n)}}function ct(e,t,n){const o=`store.${n}`,r=F(t.get,"StoreGet",e.hooks,e.logger),s=F(t.set,"StoreSet",e.hooks,e.logger),i=F(t.delete,"StoreDelete",e.hooks,e.logger);t.get=async t=>{const n=Date.now(),s=he(e,{stepId:o,stepType:"store",phase:"in",eventId:"",now:n});s.meta={op:"get",key:t},Y(e,s);try{const s=await r(t),i=Date.now(),a=he(e,{stepId:o,stepType:"store",phase:"out",eventId:"",now:i});return a.durationMs=i-n,a.meta={op:"get",key:t},Y(e,a),s}catch(r){const s=Date.now(),i=he(e,{stepId:o,stepType:"store",phase:"error",eventId:"",now:s});throw i.durationMs=s-n,i.meta={op:"get",key:t},i.error=r instanceof Error?{name:r.name,message:r.message}:{message:String(r)},Y(e,i),r}},t.set=async(t,n,r)=>{const i=Date.now(),a=he(e,{stepId:o,stepType:"store",phase:"in",eventId:"",now:i});a.meta={op:"set",key:t},Y(e,a);try{await s(t,n,r);const a=Date.now(),c=he(e,{stepId:o,stepType:"store",phase:"out",eventId:"",now:a});c.durationMs=a-i,c.meta={op:"set",key:t},Y(e,c)}catch(n){const r=Date.now(),s=he(e,{stepId:o,stepType:"store",phase:"error",eventId:"",now:r});throw s.durationMs=r-i,s.meta={op:"set",key:t},s.error=n instanceof Error?{name:n.name,message:n.message}:{message:String(n)},Y(e,s),n}},t.delete=async t=>{const n=Date.now(),r=he(e,{stepId:o,stepType:"store",phase:"in",eventId:"",now:n});r.meta={op:"delete",key:t},Y(e,r);try{await i(t);const r=Date.now(),s=he(e,{stepId:o,stepType:"store",phase:"out",eventId:"",now:r});s.durationMs=r-n,s.meta={op:"delete",key:t},Y(e,s)}catch(r){const s=Date.now(),i=he(e,{stepId:o,stepType:"store",phase:"error",eventId:"",now:s});throw i.durationMs=s-n,i.meta={op:"delete",key:t},i.error=r instanceof Error?{name:r.name,message:r.message}:{message:String(r)},Y(e,i),r}}}async function lt(e){var t,n;const o=v({globalsStatic:{},sessionStatic:{},run:!0,queueMax:1e3},e,{merge:!1,extend:!1}),r=L({level:null==(t=e.logger)?void 0:t.level,handler:null==(n=e.logger)?void 0:n.handler}),s={...o.globalsStatic,...e.globals},i={allowed:!1,config:o,consent:e.consent||{},custom:e.custom||{},destinations:{},transformers:{},stores:{},globals:s,hooks:e.hooks||{},observers:new Set,logger:r,on:{},queue:[],round:0,stateVersion:0,delivery:new WeakMap,session:void 0,status:{startedAt:Date.now(),in:0,out:0,failed:0,sources:{},destinations:{},dropped:{}},timing:Date.now(),user:e.user||{},sources:{},pending:{destinations:{}},push:void 0,command:void 0};var a,c;i.push=function(e,t){const n=F(async(n,o={})=>await V(async()=>{var r;const s=Date.now(),{id:i,ingest:a,respond:c,mapping:l,preChain:u,include:d,exclude:f}=o;let p=c,g=n;const h=d||f?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,f):void 0,v=null!=a?a:m(i||"unknown");if(l){const t=await K(g,l,e);if(t.ignore)return et({ok:!0});if(l.consent&&!$(l.consent,e.consent,t.event.consent))return et({ok:!0});g=t.event}if((null==u?void 0:u.length)&&e.transformers&&Object.keys(e.transformers).length>0){const n=await je(e,e.transformers,u,g,v,p,i?`source.${i}.next`:void 0);if(null===n.event)return et({ok:!0});if(n.stopped)return n.respond&&(p=n.respond),et({ok:!0});if(n.respond&&(p=n.respond),Array.isArray(n.event)){const o=await Promise.all(n.event.map(async n=>{const o=t(n),r=st(e,o);return Xe(e,r,{id:i,ingest:v,respond:p},h)}));if(i){e.status.sources[i]||(e.status.sources[i]={count:0,duration:0});const t=e.status.sources[i];t.count+=n.event.length,t.lastAt=Date.now(),t.duration+=Date.now()-s}return null!=(r=o[0])?r:et({ok:!0})}g=n.event}const y=t(g),b=st(e,y),w=await Xe(e,b,{id:i,ingest:v,respond:p},h);if(i){e.status.sources[i]||(e.status.sources[i]={count:0,duration:0});const t=e.status.sources[i];t.count++,t.lastAt=Date.now(),t.duration+=Date.now()-s}return w},t=>{if(t instanceof H)throw t;return e.status.failed++,e.logger.error("push failed",{event:n,ingest:o.ingest,error:t}),et({ok:!1})})(),"Push",e.hooks,e.logger);return async(t,o)=>{const r="string"==typeof t.id?t.id:"",s=Date.now();Y(e,he(e,{stepId:"collector.push",stepType:"collector",phase:"in",eventId:r,now:s}));try{const i=await n(t,o),a=Date.now(),c=he(e,{stepId:"collector.push",stepType:"collector",phase:"out",eventId:r,now:a});return c.durationMs=a-s,c.outEvent=i,Y(e,c),i}catch(t){const n=Date.now(),o=he(e,{stepId:"collector.push",stepType:"collector",phase:"error",eventId:r,now:n});throw o.durationMs=n-s,o.error=t instanceof Error?{name:t.name,message:t.message}:{message:String(t)},Y(e,o),t}}}(i,e=>({timing:Math.round((Date.now()-i.timing)/10)/100,source:{type:"collector",schema:"4",version:"4.2.0-next-1780387694663"},...e})),i.command=(c=rt,F(async(e,t,n)=>await V(async()=>await c(a,e,t,n),n=>{if(n instanceof H)throw n;return a.status.failed++,a.logger.error("command failed",{command:e,data:t,error:n}),et({ok:!1})})(),"Command",(a=i).hooks,a.logger));const l=e.stores||{};return i.stores=await async function(e,t={}){var n;const o={};for(const[n,r]of Object.entries(t)){const{code:t,config:s={},env:i={}}=r,a=e.logger.scope("store").scope(n),c={collector:e,logger:a,id:n,config:s,env:i},l=await t(c);o[n]=l}const r=t,s=function(e){const t={};for(const n of Object.keys(e))t[n]="WHITE";const n=[],o=[];function r(s){var i;const a=t[s];if("BLACK"===a)return;if("GRAY"===a){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 c=null==(i=e[s].cache)?void 0:i.store;if(void 0!==c){if(!(c in e))throw new Error(`Store "${s}" cache.store references "${c}", which is not declared in flow.stores`);r(c)}o.pop(),t[s]="BLACK",n.push(s)}for(const n of Object.keys(e))"WHITE"===t[n]&&r(n);return n}(r);for(const t of s){const s=r[t].cache;if(!s)continue;let i,a;void 0!==s.store?(i=o[s.store],a=s.store):(o.__cache||(o.__cache=it()),i=o.__cache,a="__cache");const c=null!=(n=s.namespace)?n:t;e.logger.scope("store-cache").scope(t).info(`store "${t}" caches with namespace "${c}:" via ${a}`),o[t]=at(o[t],{storeId:t,cacheConfig:s,cacheStore:i,namespace:c,logger:e.logger.scope("store-cache").scope(t),collector:e})}for(const[t,n]of Object.entries(o))"__cache"!==t&&ct(e,n,t);return o}(i,l),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)}}}(l,i.stores,e),i.stores.__cache||(i.stores.__cache=it()),i.destinations=await async function(e,t={}){var n,o;const r={};for(const[s,i]of Object.entries(t))(null==(o=null==(n=i.config)?void 0:n.require)?void 0:o.length)?e.pending.destinations[s]=i:r[s]=tt(i);return r}(i,e.destinations||{}),i.transformers=await async function(e,t={}){var n,o,r,s,i,a,c,l;const u={};for(const[d,f]of Object.entries(t)){const{code:t,env:p={}}=f,g=ge(f,"Transformer");if(!g.ok){e.logger.warn(`Transformer ${d} invalid (${g.code}): ${g.reason}. Skipping.`);continue}const{config:h}=we(f,"before"),{config:v}=we({...f,config:h},"next"),y=Object.keys(p).length>0?{...v,env:p}:v,{cache:b}=f,w=b?{...y,cache:b}:y,k=null!=(o=null==(n=f.config)?void 0:n.state)?o:f.state,x=void 0!==k&&void 0===w.state?{...w,state:k}:w,C=e.logger.scope("transformer").scope(d),O={collector:e,logger:C,id:d,ingest:m(d),config:x,env:p},j=null!=t?t:e=>{const t=f.mapping;if(t){const n=[];if(void 0!==t.data&&n.push("data"),t.mapping)for(const[e,o]of Object.entries(t.mapping))if("object"==typeof o&&null!==o)for(const[t,r]of Object.entries(o)){if("object"!=typeof r||null===r)continue;const o=r;void 0!==o.data&&n.push(`mapping[${e}][${t}].data`),void 0!==o.silent&&n.push(`mapping[${e}][${t}].silent`)}return n.length>0&&e.collector.logger.warn(`Transformer ${d}: \`${n.join(", ")}\` ignored at transformer position (only event-mutating fields apply).`),{type:"pass",config:e.config,push:async n=>{const o=await K(n,t,e.collector);return!o.ignore&&{event:o.event}}}}return{type:"pass",config:e.config,push:e=>({event:e})}},E=await j(O);void 0!==f.before&&void 0===(null==(r=E.config)?void 0:r.before)&&(E.config={...null!=(s=E.config)?s:{},before:f.before}),void 0!==f.next&&void 0===(null==(i=E.config)?void 0:i.next)&&(E.config={...null!=(a=E.config)?a:{},next:f.next}),void 0!==k&&void 0===(null==(c=E.config)?void 0:c.state)&&(E.config={...null!=(l=E.config)?l:{},state:k}),u[d]=E}return u}(i,e.transformers||{}),i}async function ut(e){e=e||{};const t=await lt(e),n=(o=t,{type:"elb",config:{},push:async(e,t,n,r,s)=>{if("string"==typeof e&&e.startsWith("walker ")){const n=e.replace("walker ","");return o.command(n,t)}let i;if("string"==typeof e)i={name:e},t&&"object"==typeof t&&!Array.isArray(t)&&(i.data=t);else{if(!e||"object"!=typeof e)return et({ok:!1});i=e,t&&"object"==typeof t&&!Array.isArray(t)&&(i.data={...i.data||{},...t})}return n&&"object"==typeof n&&(i.context=n),r&&Array.isArray(r)&&(i.nested=r),s&&"object"==typeof s&&(i.custom=s),o.push(i)}});var o;t.sources.elb=n,await async function(e,t={}){var n;const o={};for(const[r,s]of Object.entries(t)){const t=await $e(e,r,s);if(!t)continue;const i=null==(n=s.config)?void 0:n.require;t.config={...t.config,init:!1,...i?{require:[...i]}:{}},o[r]=t}Object.assign(e.sources,o);for(const t of Object.keys(o)){const n=e.sources[t];let o=!1;n.init&&await V(n.init.bind(n),n=>{if(n instanceof H)throw n;o=!0,e.status.failed++,e.logger.scope("source").error("source init failed",{sourceId:t,error:n})})(),o||(n.config.init=!0,Ie(n)&&await Ae(e,n,t))}return o}(t,e.sources||{});const{consent:r,user:s,globals:i,custom:a}=e;r&&await t.command("consent",r),s&&await t.command("user",s),i&&Object.assign(t.globals,i),a&&Object.assign(t.custom,a),t.config.run&&await t.command("run");let c=n.push;const l=Object.values(t.sources).filter(e=>"elb"!==e.type),u=l.find(e=>e.config.primary);return u?c=u.push:l.length>0&&(c=l[0].push),{collector:t,elb:c}}function dt(e,t){return(e.getAttribute(t)||"").trim()}function ft(e,t,n){const o=t.getComputedStyle(e);if("none"===o.display)return!1;if("visible"!==o.visibility)return!1;if(o.opacity&&Number(o.opacity)<.1)return!1;let r;const s=t.innerHeight,i=e.getBoundingClientRect(),a=i.height,c=i.y,l=c+a,u={x:i.x+e.offsetWidth/2,y:i.y+e.offsetHeight/2};if(a<=s){if(e.offsetWidth+i.width===0||e.offsetHeight+i.height===0)return!1;if(u.x<0)return!1;if(u.x>(n.documentElement.clientWidth||t.innerWidth))return!1;if(u.y<0)return!1;if(u.y>(n.documentElement.clientHeight||t.innerHeight))return!1;r=n.elementFromPoint(u.x,u.y)}else{const e=s/2;if(c<0&&l<e)return!1;if(l>s&&c>e)return!1;r=n.elementFromPoint(u.x,s/2)}if(r)do{if(r===e)return!0}while(r=r.parentElement);return!1}function pt(e,t,n=!0){return e+(t=null!=t?(n?"-":"")+t:"")}function gt(e,t,n,o=!0){return jt(dt(t,pt(e,n,o))||"").reduce((e,n)=>{let[o,r]=Et(n);if(!o)return e;if(r||(o.endsWith(":")&&(o=o.slice(0,-1)),r=""),r.startsWith("#")){r=r.slice(1);try{let e=t[r];e||"selected"!==r||(e=t.options[t.selectedIndex].text),r=String(e)}catch(e){r=""}}return o.endsWith("[]")?(o=o.slice(0,-2),y(e[o])||(e[o]=[]),e[o].push(I(r))):e[o]=I(r),e},{})}function mt(e,t=me.Commands.Prefix){var n;const o=e;if(!o)return[];let r=[];const s=me.Commands.Action,i=`[${pt(t,s,!1)}]`,a=e=>{Object.keys(gt(t,e,s,!1)).forEach(n=>{r=r.concat(ht(e,n,t))})};return o!==(o.ownerDocument||o)&&(null==(n=o.matches)?void 0:n.call(o,i))&&a(o),Ot(o,i,a),r}function ht(e,t,n=me.Commands.Prefix){const o=[],{actions:r,nearestOnly:s}=function(e,t,n){let o=t;for(;o;){const t=dt(o,pt(e,me.Commands.Actions,!1));if(t){const e=yt(t);if(e[n])return{actions:e[n],nearestOnly:!1}}const r=dt(o,pt(e,me.Commands.Action,!1));if(r){const e=yt(r);if(e[n]||"click"!==n)return{actions:e[n]||[],nearestOnly:!0}}o=kt(e,o)}return{actions:[],nearestOnly:!1}}(n,e,t);return r.length?(r.forEach(r=>{const i=jt(r.actionParams||"",",").reduce((e,t)=>(e[G(t)]=!0,e),{}),a=bt(n,e,i,s);if(!a.length){const t="page",o=`[${pt(n,t)}]`,[r,s]=xt(e,o,n,t);a.push({entity:t,data:r,nested:[],context:s})}a.forEach(e=>{var n;o.push({entity:e.entity,action:r.action,data:e.data,trigger:t,context:e.context,nested:null!=(n=e.nested)?n:[]})})}),o):o}function vt(e=me.Commands.Prefix,t){if(!t)return{};const n=pt(e,me.Commands.Globals,!1);let o={};return Ct(t,`[${n}]`,t=>{o=v(o,gt(e,t,me.Commands.Globals,!1))}),o}function yt(e){const t={};return jt(e).forEach(e=>{const[n,o]=Et(e),[r,s]=St(n);if(!r)return;let[i,a]=St(o||"");i=i||r,t[r]||(t[r]=[]),t[r].push({trigger:r,triggerParams:s,action:i,actionParams:a})}),t}function bt(e,t,n,o=!1){const r=[];let s=t;for(n=0!==Object.keys(n||{}).length?n:void 0;s;){const i=wt(e,s,t,n);if(i&&(r.push(i),o))break;s=kt(e,s)}return r}function wt(e,t,n,o){const r=dt(t,pt(e));if(!r||o&&!o[r])return null;const s=[t],i=`[${pt(e,r)}],[${pt(e,"")}]`,a=pt(e,me.Commands.Link,!1);let c={};const l=[],[u,d]=xt(n||t,i,e,r);Ot(t,`[${a}]`,n=>{const[o,r]=Et(dt(n,a));"parent"===r&&Ot(t.ownerDocument.body,`[${a}="${o}:child"]`,t=>{s.push(t);const n=wt(e,t);n&&l.push(n)})});const f=[];s.forEach(e=>{e.matches(i)&&f.push(e),Ot(e,i,e=>f.push(e))});let p={};return f.forEach(t=>{p=v(p,gt(e,t,"")),c=v(c,gt(e,t,r))}),c=v(v(p,c),u),s.forEach(t=>{Ot(t,`[${pt(e)}]`,t=>{const n=wt(e,t);n&&l.push(n)})}),{entity:r,data:c,context:d,nested:l}}function kt(e,t){const n=pt(e,me.Commands.Link,!1);if(t.matches(`[${n}]`)){const[e,o]=Et(dt(t,n));if("child"===o){const o=t.ownerDocument;let r=null;return Ct(o,`[${n}="${e}:parent"]`,e=>{r||(r=e)}),r}}const o=t.ownerDocument.defaultView;return!t.parentElement&&t.getRootNode&&t.getRootNode()instanceof o.ShadowRoot?t.getRootNode().host:t.parentElement}function xt(e,t,n,o){let r={};const s={};let i=e;const a=`[${pt(n,me.Commands.Context,!1)}]`;let c=0;for(;i;)i.matches(t)&&(r=v(gt(n,i,""),r),r=v(gt(n,i,o),r)),i.matches(a)&&(Object.entries(gt(n,i,me.Commands.Context,!1)).forEach(([e,t])=>{t&&!s[e]&&(s[e]=[t,c])}),++c),i=kt(n,i);return[r,s]}function Ct(e,t,n){e.querySelectorAll(t).forEach(n)}function Ot(e,t,n){e.querySelectorAll(t).forEach(n);e instanceof(e.ownerDocument||e).defaultView.Element&&e.shadowRoot&&Ot(e.shadowRoot,t,n),e.querySelectorAll("*").forEach(e=>{e.shadowRoot&&Ot(e.shadowRoot,t,n)})}function jt(e,t=";"){if(!e)return[];const n=new RegExp(`(?:[^${t}']+|'[^']*')+`,"ig");return e.match(n)||[]}function Et(e){const[t,n]=e.split(/:(.+)/,2);return[G(t),G(n)]}function St(e){const[t,n]=e.split("(",2);return[t,n?n.slice(0,-1):""]}var At=new WeakMap,It=new WeakMap,$t=new WeakMap;function qt(e){const t=Date.now();let n=It.get(e);if(!n||t-n.lastChecked>500){n={isVisible:ft(e,e.ownerDocument.defaultView,e.ownerDocument),lastChecked:t},It.set(e,n)}return n.isVisible}function Dt(e){const t=(e.ownerDocument||e).defaultView;if(t&&t.IntersectionObserver)return z(()=>new t.IntersectionObserver(t=>{t.forEach(t=>{!function(e,t){var n,o;const r=t.target,s=$t.get(e);if(!s)return;const i=s.timers.get(r);if(t.intersectionRatio>0){const o=Date.now();let a=At.get(r);if(!a||o-a.lastChecked>1e3){const e=r.ownerDocument.defaultView;a={isLarge:r.offsetHeight>e.innerHeight,lastChecked:o},At.set(r,a)}if(t.intersectionRatio>=.5||a.isLarge&&qt(r)){const t=null==(n=s.elementConfigs)?void 0:n.get(r);if((null==t?void 0:t.multiple)&&t.blocked)return;if(!i){const t=r.ownerDocument.defaultView.setTimeout(async()=>{var t,n;if(qt(r)){const o=null==(t=s.elementConfigs)?void 0:t.get(r);(null==o?void 0:o.context)&&await tn(o.context,r,o.trigger);const i=null==(n=s.elementConfigs)?void 0:n.get(r);(null==i?void 0:i.multiple)?i.blocked=!0:function(e,t){const n=$t.get(e);if(!n)return;n.observer&&n.observer.unobserve(t);const o=n.timers.get(t);o&&(clearTimeout(o),n.timers.delete(t)),At.delete(t),It.delete(t)}(e,r)}},s.duration);s.timers.set(r,t)}return}}i&&(clearTimeout(i),s.timers.delete(r));const a=null==(o=s.elementConfigs)?void 0:o.get(r);(null==a?void 0:a.multiple)&&(a.blocked=!1)}(e,t)})},{rootMargin:"0px",threshold:[0,.5]}),()=>{})()}function Tt(e,t,n={multiple:!1}){var o;const r=e.settings.scope;if(!r)return;const s=$t.get(r);(null==s?void 0:s.observer)&&t&&(s.elementConfigs||(s.elementConfigs=new WeakMap),s.elementConfigs.set(t,{multiple:null!=(o=n.multiple)&&o,blocked:!1,context:e,trigger:n.multiple?"visible":"impression"}),s.observer.observe(t))}function Pt(e){if(!e)return;const t=$t.get(e);t&&(t.observer&&t.observer.disconnect(),$t.delete(e))}function Mt(e,t,n,o,r,s,i){const{elb:a,settings:c}=e;if(C(t)&&t.startsWith("walker ")){if("walker init"===t&&e.initScope){const t=function(e,t){if(Lt(e))return[e];if(Array.isArray(e)){const t=[];for(const n of e)Lt(n)&&t.push(n);return t}if(void 0===e){const e=t.scope;if(Lt(e))return[e];if(void 0!==globalThis.document)return[globalThis.document]}return[]}(n,c);for(const n of t)e.initScope(e,{...c,scope:n});return Promise.resolve(et({ok:!0}))}return a(t,n)}if(x(t)){const e=t;if(!e.source&&c.scope){const t=c.scope.ownerDocument||c.scope,n=t.defaultView;e.source=_t(n,t)}return!e.globals&&c.scope&&(e.globals=vt(c.prefix,c.scope)),a(e)}const[l]=String(x(t)?t.name:t).split(" ");let u,d=x(n)?n:{},f={},p=!1;if(w(n)&&(u=n,p=!0),w(r)?u=r:x(r)&&Object.keys(r).length&&(f=r),u){const e=bt(c.prefix||"data-elb",u).find(e=>e.entity===l);e&&(p&&(d=e.data),e.context&&(f=e.context))}const g=c.scope?c.scope.ownerDocument||c.scope:void 0,m=null==g?void 0:g.defaultView;"page"===l&&m&&(d.id=d.id||m.location.pathname);const h=vt(c.prefix,c.scope);return a({name:String(t||""),data:d,context:f,globals:h,nested:s,custom:i,trigger:C(o)?o:"",source:m&&g?_t(m,g):void 0})}function _t(e,t){return{type:"browser",platform:"web",url:e.location.href,referrer:t.referrer}}function Lt(e){if(!e||"object"!=typeof e)return!1;if("undefined"!=typeof Element&&e instanceof Element)return!0;if("undefined"!=typeof Document&&e instanceof Document)return!0;if("nodeType"in e){const t=e.nodeType;return 1===t||9===t}return!1}var Nt,Rt,Wt=[],zt=[],Vt=[];function Ht(){return Rt||(Rt=new AbortController),Rt}var Bt="click",Ut="hover",Kt="load",Gt="pulse",Ft="scroll",Yt="submit",Jt="impression",Xt="visible",Zt="wait";function Qt(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;if(!n)return;Rt&&Rt.abort();Rt=new AbortController;const{signal:o}=Rt;n.addEventListener("click",z(function(t){rn.call(this,e,t)}),{signal:o}),n.addEventListener("submit",z(function(t){sn.call(this,e,t)}),{signal:o})}(e,t)}function en(e,t){const n=t.scope;Wt=[];const o=n;if(!o)return;Pt(o),function(e,t=1e3){$t.has(e)||$t.set(e,{observer:Dt(e),timers:new WeakMap,duration:t})}(o,1e3);const r=pt(t.prefix,me.Commands.Action,!1);o!==(o.ownerDocument||o)&&nn(e,o,r,t),Ot(o,`[${r}]`,n=>{nn(e,n,r,t)}),Wt.length&&function(e,t){const n=t.ownerDocument||t,o=n.defaultView,r=(e,t)=>e.filter(([e,n])=>{const r=o.scrollY+o.innerHeight,s=e.offsetTop;if(r<s)return!0;const i=e.clientHeight;return!(100*(1-(s+i-r)/(i||1))>=n)||(tn(t,e,Ft),!1)});Nt||(Nt=function(e,t=1e3){const{wait:n}=T(t,1e3);let o=null;return function(...t){if(null===o)return o=setTimeout(()=>{o=null},n),e(...t)}}(function(){Wt=r.call(t,Wt,e)}),t.addEventListener("scroll",Nt,{signal:Ht().signal}))}(e,o)}async function tn(e,t,n){const o=ht(t,n,e.settings.prefix);return Promise.all(o.map(t=>Mt(e,{name:`${t.entity} ${t.action}`,...t,trigger:n})))}function nn(e,t,n,o){const r=dt(t,n);r&&Object.values(yt(r)).forEach(n=>n.forEach(n=>{switch(n.trigger){case Ut:!function(e,t){t.addEventListener("mouseenter",z(function(t){const n=on(t);n&&tn(e,n,Ut)}),{signal:Ht().signal})}(e,t);break;case Kt:!function(e,t){tn(e,t,Kt)}(e,t);break;case Gt:!function(e,t,n=""){const o=t.ownerDocument,r=setInterval(()=>{o.hidden||tn(e,t,Gt)},parseInt(n||"")||15e3);zt.push(r)}(e,t,n.triggerParams);break;case Ft:!function(e,t=""){const n=parseInt(t||"")||50;if(n<0||n>100)return;Wt.push([e,n])}(t,n.triggerParams);break;case Jt:Tt(e,t);break;case Xt:Tt(e,t,{multiple:!0});break;case Zt:!function(e,t,n=""){const o=setTimeout(()=>tn(e,t,Zt),parseInt(n||"")||15e3);Vt.push(o)}(e,t,n.triggerParams)}}))}function on(e){var t;const n=null==(t=e.composedPath)?void 0:t.call(e),o=(null==n?void 0:n.length)?n[0]:e.target;if(o&&"object"==typeof o&&"tagName"in o)return o}function rn(e,t){const n=on(t);n&&tn(e,n,Bt)}function sn(e,t){const n=on(t);n&&tn(e,n,Yt)}function an(e,t={}){var n;const o=t.name||"elbLayer",r=t.window,s=t.logger;if(!r)return;const i=r;i[o]||(i[o]=[]);const a=i[o],c=r.document;null==s||s.debug("initElbLayer enter",{layerName:o,queuedItems:a.length}),a.push=function(...n){if(un(n[0])){const o=[...Array.from(n[0])],r=Array.prototype.push.apply(this,[o]);return ln(e,t.prefix,o,c,s),r}const o=Array.prototype.push.apply(this,n);return n.forEach(n=>{ln(e,t.prefix,n,c,s)}),o},Array.isArray(a)&&a.length>0&&(null==s||s.debug("initElbLayer drain walker commands",{count:a.length}),function(e,t,n,o,r){const s="walker ",i=[...n],a=new Set;i.forEach((n,i)=>{const c=cn(n);if(!c)return;const l=c[0];!x(l)&&C(l)&&l.startsWith(s)&&(a.add(i),ln(e,t,c,o,r))});const c=[...a].sort((e,t)=>t-e);for(const e of c)n.splice(e,1);null==r||r.debug("drainWalkerCommands done",{consumed:a.size,remaining:n.length})}(e,null!=(n=t.prefix)?n:"data-elb",a,c,s))}function cn(e){const t=un(e)?[...Array.from(e)]:null!=(n=e)&&"object"==typeof n&&"length"in n&&"number"==typeof n.length?Array.from(e):[e];var n;if(!Array.isArray(t)||0===t.length)return null;if(1===t.length&&!t[0])return null;const o=t[0];return x(o)&&0===Object.keys(o).length||!x(o)&&C(o)&&""===o.trim()?null:t}function ln(e,t="data-elb",n,o,r){z(()=>{if(Array.isArray(n)){const[s,...i]=n;if(!s||C(s)&&""===s.trim())return void(null==r||r.debug("pushCommand skipped (empty/invalid action)",{item:n}));if(C(s)&&s.startsWith("walker "))return null==r||r.debug("pushCommand walker command",{action:s,data:i[0]}),void e(s,i[0]);null==r||r.debug("pushCommand event (translated)",{action:s,rest:i}),Mt({elb:e,settings:{prefix:t,scope:o,pageview:!1,elb:"",elbLayer:!1}},s,...i)}else if(n&&"object"==typeof n){if(0===Object.keys(n).length)return void(null==r||r.debug("pushCommand skipped (empty object)"));null==r||r.debug("pushCommand object event",{item:n}),e(n)}},e=>{null==r||r.warn("pushCommand failed",{error:e,item:n})})()}function un(e){return null!=e&&"object"==typeof e&&"[object Arguments]"===Object.prototype.toString.call(e)}var dn={},fn={};r(fn,{createTrigger:()=>En,env:()=>pn,step:()=>yn,trigger:()=>Sn});var pn={};r(pn,{push:()=>vn});var gn=()=>{},mn=()=>()=>Promise.resolve({ok:!0}),hn={error:gn,warn:gn,info:gn,debug:gn,throw:e=>{throw"string"==typeof e?new Error(e):e},json:gn,scope:()=>hn},vn={get push(){return mn()},get command(){return mn()},get elb(){return mn()},get window(){return{addEventListener:gn,removeEventListener:gn,location:{href:"https://example.com/page",pathname:"/page",search:"?query=test",hash:"#section",host:"example.com",hostname:"example.com",origin:"https://example.com",protocol:"https:"},document:{},navigator:{language:"en-US",userAgent:"Mozilla/5.0 (Test)"},screen:{width:1920,height:1080},innerWidth:1920,innerHeight:1080,pageXOffset:0,pageYOffset:0,scrollX:0,scrollY:0}},get document(){return{addEventListener:gn,removeEventListener:gn,querySelector:gn,querySelectorAll:()=>[],getElementById:gn,getElementsByClassName:()=>[],getElementsByTagName:()=>[],createElement:()=>({setAttribute:gn,getAttribute:gn,addEventListener:gn,removeEventListener:gn}),body:{appendChild:gn,removeChild:gn},documentElement:{scrollTop:0,scrollLeft:0},readyState:"complete",title:"Test Page",referrer:"",cookie:""}},logger:hn},yn={};r(yn,{clickEvent:()=>wn,contextAndGlobals:()=>jn,dataAttributeTypes:()=>On,impressionEvent:()=>xn,nestedEntities:()=>Cn,pageView:()=>bn,submitEvent:()=>kn});var bn={title:"Page view",description:"A page load trigger captures the current URL, title, and referrer as a walker page view event.",trigger:{type:"load",options:{url:"https://example.com/docs",title:"Documentation",referrer:"https://example.com/"}},in:"",out:[["elb",{name:"page view",data:{domain:"example.com",title:"Documentation",referrer:"https://example.com/",id:"/docs"},context:{},globals:{},nested:void 0,custom:void 0,trigger:"load",source:{type:"browser",platform:"web",url:"https://example.com/docs",referrer:"https://example.com/"}}]]},wn={title:"Click event",description:"A button click with walker data attributes is captured as an entity action event with the mapped label data.",trigger:{type:"click",options:"button"},in:'<button data-elb="cta" data-elb-cta="label:Sign Up" data-elbaction="click:click">Sign Up</button>',out:[["elb",{name:"cta click",entity:"cta",action:"click",data:{label:"Sign Up"},context:{},globals:{},nested:[],source:{type:"browser",platform:"web",url:"https://example.com/",referrer:""},trigger:"click"}]]},kn={title:"Submit event",description:"A form submit with walker data attributes produces a signup complete event carrying the selected plan.",trigger:{type:"submit",options:"form"},in:'<form data-elb="signup" data-elb-signup="plan:premium" data-elbaction="submit:complete"></form>',out:[["elb",{name:"signup complete",entity:"signup",action:"complete",data:{plan:"premium"},context:{},globals:{},nested:[],source:{type:"browser",platform:"web",url:"https://example.com/",referrer:""},trigger:"submit"}]]},xn={title:"Impression event",description:"An intersection observer impression on a div with walker attributes emits a banner view event.",trigger:{type:"impression",options:"div"},in:'<div data-elb="banner" data-elb-banner="type:promotional;position:sidebar" data-elbaction="impression:view"></div>',out:[["elb",{name:"banner view",entity:"banner",action:"view",data:{type:"promotional",position:"sidebar"},context:{},globals:{},nested:[],source:{type:"browser",platform:"web",url:"https://example.com/",referrer:""},trigger:"impression"}]]},Cn={title:"Nested entities",description:"A page load produces a page view plus a product view whose nested size entity is captured on the product event.",trigger:{type:"load"},in:'<div data-elb="product" data-elb-product="id:SKU-42;name:Sneakers" data-elbaction="load:view"><div data-elb="size" data-elb-size="selected:large;inStock:true"></div></div>',out:[["elb",{name:"page view",data:{domain:"example.com",title:"",referrer:"",id:"/"},context:{},globals:{},nested:void 0,custom:void 0,trigger:"load",source:{type:"browser",platform:"web",url:"https://example.com/",referrer:""}}],["elb",{name:"product view",entity:"product",action:"view",data:{id:"SKU-42",name:"Sneakers"},context:{},globals:{},nested:[{entity:"size",data:{selected:"large",inStock:!0},context:{},nested:[]}],source:{type:"browser",platform:"web",url:"https://example.com/",referrer:""},trigger:"load"}]]},On={title:"Data attribute types",description:"Walker data attributes parse scalar, boolean, and array values into typed fields on the emitted event.",trigger:{type:"click",options:"div"},in:'<div data-elb="product" data-elb-product="price:99.99;available:true;colors[]:red;colors[]:blue" data-elbaction="click:select"></div>',out:[["elb",{name:"product select",entity:"product",action:"select",data:{price:99.99,available:!0,colors:["red","blue"]},context:{},globals:{},nested:[],source:{type:"browser",platform:"web",url:"https://example.com/",referrer:""},trigger:"click"}]]},jn={title:"Context and globals",description:"Walker context and globals attributes attach ambient metadata to events emitted by the browser source.",trigger:{type:"click",options:'[data-elb="cta"]'},in:'<div data-elbcontext="test:engagement_flow" data-elbglobals="language:en;plan:premium"><div data-elb="cta" data-elb-cta="label:Try Now" data-elbaction="click:signup">Try Now</div></div>',out:[["elb",{name:"cta signup",entity:"cta",action:"signup",data:{label:"Try Now"},context:{test:["engagement_flow",0]},globals:{language:"en",plan:"premium"},nested:[],source:{type:"browser",platform:"web",url:"https://example.com/",referrer:""},trigger:"click"}]]},En=async(e,t)=>{const n=(null==t?void 0:t.sourceId)||"browser";let o;const r=document,s=window;return{get flow(){return o},trigger:(t,i)=>async a=>{var c;if("load"===t||!t){const e="object"==typeof i&&null!==i?i:{};if(e.url){const t=new URL(e.url);s.history.replaceState({},"",t.pathname)}e.title&&(r.title=e.title),e.referrer&&Object.defineProperty(r,"referrer",{value:e.referrer,configurable:!0})}if(a&&(r.body.innerHTML=a),!o){const t=await ut({...e,run:null==(c=e.run)||c});o={collector:t.collector,elb:t.elb}}if(!t||"load"===t)return;const l="string"==typeof i?i:void 0,u=l?r.querySelector(l):null;if(!u)return void console.warn(`Trigger: element not found for selector "${l}"`);const d=o.collector.sources[n];if(!d)return void console.warn(`Trigger: source "${n}" not found in collector`);const f={elb:o.elb,settings:d.config.settings};await tn(f,u,t)}}},Sn=(e,t)=>{if(!e||"object"!=typeof e)return;const n=e,o=t.document,r=t.window,s=()=>{var e,t;if(!n.attributes)return;const r=(null==(t=null==(e=n.element)?void 0:e.match(/^(\w+)/))?void 0:t[1])||"div",s=o.createElement(r);for(const[e,t]of Object.entries(n.attributes))s.setAttribute(e,t);if(n.children)for(const e of n.children){const t=o.createElement("div");for(const[n,o]of Object.entries(e))t.setAttribute(n,o);s.appendChild(t)}return o.body.appendChild(s),s};if(!n.trigger||"load"===n.trigger){if(n.url){const e=new URL(n.url);r.history.replaceState({},"",e.pathname)}return n.title&&(o.title=n.title),n.referrer&&Object.defineProperty(o,"referrer",{value:n.referrer}),void s()}return()=>{const e=s();if(e)switch(n.trigger){case"click":e.dispatchEvent(new MouseEvent("click",{bubbles:!0}));break;case"submit":e.dispatchEvent(new Event("submit",{bubbles:!0}));break;case"hover":e.dispatchEvent(new MouseEvent("mouseenter",{bubbles:!0}));break;case"scroll":r.dispatchEvent(new Event("scroll"))}}};function An(e={}){const t=e.prefix||"data-elb";return function(e){let n,o=e;const r={},s={},i={},a={},c={},l={};function u(e){return Object.entries(e).map(([e,t])=>`${e}:${function(e){if(!b(e)||null===e)return"undefined";let t=String(e);return t=t.replace(/\\/g,"\\\\"),t=t.replace(/;/g,"\\;"),t=t.replace(/:/g,"\\:"),t=t.replace(/'/g,"\\'"),t}(t)}`).join(";")}const d={entity:e=>(n=e,o=e,d),data(e,t){const n=null!=o?o:"";return r[n]||(r[n]={}),C(e)?r[n][e]=t:Object.assign(r[n],e),d},action(e,t){if(C(e))if(b(t))s[e]=t;else if(e.includes(":")){const[t,n]=e.split(":",2);s[t]=n}else s[e]=e;else Object.assign(s,e);return d},actions(e,t){if(C(e))if(b(t))i[e]=t;else if(e.includes(":")){const[t,n]=e.split(":",2);i[t]=n}else i[e]=e;else Object.assign(i,e);return d},context:(e,t)=>(C(e)?a[e]=t:Object.assign(a,e),d),globals:(e,t)=>(C(e)?c[e]=t:Object.assign(c,e),d),link:(e,t)=>(C(e)?l[e]=t:Object.assign(l,e),d),get(){const e={};return n&&(e[t]=n),Object.entries(r).forEach(([n,o])=>{if(Object.keys(o).length>0){e[n?`${t}-${n}`:`${t}-`]=u(o)}}),Object.keys(s).length>0&&(e[`${t}action`]=u(s)),Object.keys(i).length>0&&(e[`${t}actions`]=u(i)),Object.keys(a).length>0&&(e[`${t}context`]=u(a)),Object.keys(c).length>0&&(e[`${t}globals`]=u(c)),Object.keys(l).length>0&&(e[`${t}link`]=u(l)),e}};return d}}var In=0;function $n(){In=0}var qn,Dn=async e=>{if(In>0&&void 0!==globalThis.window)throw new Error("walker.js browser source is single-instance per window. See packages/web/sources/browser/src/trigger.ts for the invariant note.");In+=1;const{config:t,env:n,logger:o}=e,{elb:r,command:s,window:i,document:a}=n,c=(null==t?void 0:t.settings)||{},l=i||(void 0!==globalThis.window?globalThis.window:void 0),u=a||(void 0!==globalThis.document?globalThis.document:void 0),d=function(e={},t){return{prefix:"data-elb",pageview:!0,elb:"elb",elbLayer:"elbLayer",scope:t||void 0,...e}}(c,u),f={elb:r,settings:d,initScope:en},p=e=>{if(!e.pageview)return;const[t,n]=function(e,t){const n=t.ownerDocument||t,o=n.defaultView.location,r="page",s="body"in t?t.body:t,[i,a]=xt(s,`[${pt(e,r)}]`,e,r);return i.domain=o.hostname,i.title=n.title,i.referrer=n.referrer,o.search&&(i.search=o.search),o.hash&&(i.hash=o.hash),[i,a]}(e.prefix||"data-elb",e.scope);Mt(f,"page view",t,"load",n)};return{type:"browser",config:{settings:d},push:(...e)=>{const[t,n,o,r,s,i]=e;return Mt(f,t,n,o,r,s,i)},on:async e=>{if("run"===e)u&&l&&(!function(e,t){if(!t.scope)return;en(e,t)}(f,d),function(e,t,n,o){const r=C(t.elbLayer)?t.elbLayer:"elbLayer",s=t.prefix||"data-elb",i=n[r];if(!Array.isArray(i))return;const a=n.document;let c=-1;i.forEach((e,t)=>{const n=cn(e);n&&C(n[0])&&"walker run"===n[0]&&(c=t)});const l=[];for(let e=c+1;e<i.length;e++){const t=cn(i[e]);t&&l.push(t)}i.length=c+1,null==o||o.debug("drainNonWalkerEvents",{anchor:c,drained:l.length}),l.forEach(t=>ln(e,s,t,a,o))}(r,d,l,o),p(d))},init:async()=>{l&&u&&(!1!==d.elbLayer&&r&&an(r,{name:C(d.elbLayer)?d.elbLayer:"elbLayer",prefix:d.prefix,window:l,logger:o}),await async function(e,t,n){const o=()=>{e(t,n)},r=n.scope;if(!r)return void o();const s=r.ownerDocument||r;"loading"!==s.readyState?o():s.addEventListener("DOMContentLoaded",o)}(Qt,f,d),C(d.elb)&&d.elb&&(l[d.elb]=(...e)=>{const[t,n,o,r,s,i]=e;return Mt(f,t,n,o,r,s,i)}))},destroy:async()=>{Rt&&(Rt.abort(),Rt=void 0),Nt=void 0,Wt=[],zt.forEach(e=>clearInterval(e)),zt=[],Vt.forEach(e=>clearTimeout(e)),Vt=[],u&&Pt(d.scope||u)}}},Tn=Dn;return qn=s,((r,s,i,a)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let c of n(s))o.call(r,c)||c===i||e(r,c,{get:()=>s[c],enumerable:!(a=t(s,c))||a.enumerable});return r})(e({},"__esModule",{value:!0}),qn)})();
1
+ "use strict";var Source=(()=>{var e=Object.defineProperty,t=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,r=Object.prototype.hasOwnProperty,o={};((t,n)=>{for(var r in n)e(t,r,{get:n[r],enumerable:!0})})(o,{SourceBrowser:()=>xe,__resetInstanceCountForTests:()=>Ae,createTagger:()=>Oe,default:()=>Se,getAllEvents:()=>D,getElbAttributeName:()=>A,getElbValues:()=>$,getEvents:()=>S,getGlobals:()=>L,sourceBrowser:()=>De});var i=Object.defineProperty,s=(e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})};function c(e,t){if("collector"===e)return"collector";if(!t)throw new Error(`stepId(${e}) requires an id`);return`${e}.${t}`}s({},{stepId:()=>c});function a(e,t){const n=e.destinations[t];if(!n)throw new Error(`Destination not found: ${t}`);return n}s({},{getDestination:()=>a});s({},{Level:()=>u});var l,u=((l=u||{})[l.ERROR=0]="ERROR",l[l.WARN=1]="WARN",l[l.INFO=2]="INFO",l[l.DEBUG=3]="DEBUG",l);function f(e,t){const n=e.transformers[t];if(!n)throw new Error(`Transformer not found: ${t}`);return n}s({},{getTransformer:()=>f});function d(e,t){const n=e.sources[t];if(!n)throw new Error(`Source not found: ${t}`);return n}s({},{getSource:()=>d});function g(e,t){const n=e.stores[t];if(!n)throw new Error(`Store not found: ${t}`);return n}s({},{getStore:()=>g});var m={merge:!0,shallow:!0,extend:!0};function p(e,t={},n={}){n={...m,...n};const r=Object.entries(t).reduce((t,[r,o])=>{const i=e[r];return n.merge&&Array.isArray(i)&&Array.isArray(o)?t[r]=o.reduce((e,t)=>e.includes(t)?e:[...e,t],[...i]):(n.extend||r in e)&&(t[r]=o),t},{});return n.shallow?{...e,...r}:(Object.assign(e,r),e)}function b(e){return Array.isArray(e)}function h(e){return void 0!==e}function y(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function w(e){return"object"==typeof e&&null!==e&&!b(e)&&"[object Object]"===Object.prototype.toString.call(e)}function v(e){return"string"==typeof e}function k(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function E(e,t,n){return function(...r){try{return e(...r)}catch(e){if(!t)return;return t(e)}finally{null==n||n()}}}function C(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}var x={Commands:{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",Session:"session",Shutdown:"shutdown",User:"user",Walker:"walker"},Utils:{Storage:{Cookie:"cookie",Local:"local",Session:"session"}}};x.Commands.Consent,x.Commands.User,x.Commands.Globals,x.Commands.Custom,Object.freeze({batched:!0});function O(e,t){return(e.getAttribute(t)||"").trim()}function j(e,t,n){const r=t.getComputedStyle(e);if("none"===r.display)return!1;if("visible"!==r.visibility)return!1;if(r.opacity&&Number(r.opacity)<.1)return!1;let o;const i=t.innerHeight,s=e.getBoundingClientRect(),c=s.height,a=s.y,l=a+c,u={x:s.x+e.offsetWidth/2,y:s.y+e.offsetHeight/2};if(c<=i){if(e.offsetWidth+s.width===0||e.offsetHeight+s.height===0)return!1;if(u.x<0)return!1;if(u.x>(n.documentElement.clientWidth||t.innerWidth))return!1;if(u.y<0)return!1;if(u.y>(n.documentElement.clientHeight||t.innerHeight))return!1;o=n.elementFromPoint(u.x,u.y)}else{const e=i/2;if(a<0&&l<e)return!1;if(l>i&&a>e)return!1;o=n.elementFromPoint(u.x,i/2)}if(o)do{if(o===e)return!0}while(o=o.parentElement);return!1}function A(e,t,n=!0){return e+(t=null!=t?(n?"-":"")+t:"")}function $(e,t,n,r=!0){return H(O(t,A(e,n,r))||"").reduce((e,n)=>{let[r,o]=M(n);if(!r)return e;if(o||(r.endsWith(":")&&(r=r.slice(0,-1)),o=""),o.startsWith("#")){o=o.slice(1);try{let e=t[o];e||"selected"!==o||(e=t.options[t.selectedIndex].text),o=String(e)}catch(e){o=""}}return r.endsWith("[]")?(r=r.slice(0,-2),b(e[r])||(e[r]=[]),e[r].push(k(o))):e[r]=k(o),e},{})}function D(e,t=x.Commands.Prefix){var n;const r=e;if(!r)return[];let o=[];const i=x.Commands.Action,s=`[${A(t,i,!1)}]`,c=e=>{Object.keys($(t,e,i,!1)).forEach(n=>{o=o.concat(S(e,n,t))})};return r!==(r.ownerDocument||r)&&(null==(n=r.matches)?void 0:n.call(r,s))&&c(r),V(r,s,c),o}function S(e,t,n=x.Commands.Prefix){const r=[],{actions:o,nearestOnly:i}=function(e,t,n){let r=t;for(;r;){const t=O(r,A(e,x.Commands.Actions,!1));if(t){const e=R(t);if(e[n])return{actions:e[n],nearestOnly:!1}}const o=O(r,A(e,x.Commands.Action,!1));if(o){const e=R(o);if(e[n]||"click"!==n)return{actions:e[n]||[],nearestOnly:!0}}r=W(e,r)}return{actions:[],nearestOnly:!1}}(n,e,t);return o.length?(o.forEach(o=>{const s=H(o.actionParams||"",",").reduce((e,t)=>(e[C(t)]=!0,e),{}),c=P(n,e,s,i);if(!c.length){const t="page",r=`[${A(n,t)}]`,[o,i]=I(e,r,n,t);c.push({entity:t,data:o,nested:[],context:i})}c.forEach(e=>{var n;r.push({entity:e.entity,action:o.action,data:e.data,trigger:t,context:e.context,nested:null!=(n=e.nested)?n:[]})})}),r):r}function L(e=x.Commands.Prefix,t){if(!t)return{};const n=A(e,x.Commands.Globals,!1);let r={};return N(t,`[${n}]`,t=>{r=p(r,$(e,t,x.Commands.Globals,!1))}),r}function R(e){const t={};return H(e).forEach(e=>{const[n,r]=M(e),[o,i]=G(n);if(!o)return;let[s,c]=G(r||"");s=s||o,t[o]||(t[o]=[]),t[o].push({trigger:o,triggerParams:i,action:s,actionParams:c})}),t}function P(e,t,n,r=!1){const o=[];let i=t;for(n=0!==Object.keys(n||{}).length?n:void 0;i;){const s=T(e,i,t,n);if(s&&(o.push(s),r))break;i=W(e,i)}return o}function T(e,t,n,r){const o=O(t,A(e));if(!o||r&&!r[o])return null;const i=[t],s=`[${A(e,o)}],[${A(e,"")}]`,c=A(e,x.Commands.Link,!1);let a={};const l=[],[u,f]=I(n||t,s,e,o);V(t,`[${c}]`,n=>{const[r,o]=M(O(n,c));"parent"===o&&V(t.ownerDocument.body,`[${c}="${r}:child"]`,t=>{i.push(t);const n=T(e,t);n&&l.push(n)})});const d=[];i.forEach(e=>{e.matches(s)&&d.push(e),V(e,s,e=>d.push(e))});let g={};return d.forEach(t=>{g=p(g,$(e,t,"")),a=p(a,$(e,t,o))}),a=p(p(g,a),u),i.forEach(t=>{V(t,`[${A(e)}]`,t=>{const n=T(e,t);n&&l.push(n)})}),{entity:o,data:a,context:f,nested:l}}function W(e,t){const n=A(e,x.Commands.Link,!1);if(t.matches(`[${n}]`)){const[e,r]=M(O(t,n));if("child"===r){const r=t.ownerDocument;let o=null;return N(r,`[${n}="${e}:parent"]`,e=>{o||(o=e)}),o}}const r=t.ownerDocument.defaultView;return!t.parentElement&&t.getRootNode&&t.getRootNode()instanceof r.ShadowRoot?t.getRootNode().host:t.parentElement}function I(e,t,n,r){let o={};const i={};let s=e;const c=`[${A(n,x.Commands.Context,!1)}]`;let a=0;for(;s;)s.matches(t)&&(o=p($(n,s,""),o),o=p($(n,s,r),o)),s.matches(c)&&(Object.entries($(n,s,x.Commands.Context,!1)).forEach(([e,t])=>{t&&!i[e]&&(i[e]=[t,a])}),++a),s=W(n,s);return[o,i]}function N(e,t,n){e.querySelectorAll(t).forEach(n)}function V(e,t,n){e.querySelectorAll(t).forEach(n);e instanceof(e.ownerDocument||e).defaultView.Element&&e.shadowRoot&&V(e.shadowRoot,t,n),e.querySelectorAll("*").forEach(e=>{e.shadowRoot&&V(e.shadowRoot,t,n)})}function H(e,t=";"){if(!e)return[];const n=new RegExp(`(?:[^${t}']+|'[^']*')+`,"ig");return e.match(n)||[]}function M(e){const[t,n]=e.split(/:(.+)/,2);return[C(t),C(n)]}function G(e){const[t,n]=e.split("(",2);return[t,n?n.slice(0,-1):""]}var q=new WeakMap,B=new WeakMap,F=new WeakMap;function U(e){const t=Date.now();let n=B.get(e);if(!n||t-n.lastChecked>500){n={isVisible:j(e,e.ownerDocument.defaultView,e.ownerDocument),lastChecked:t},B.set(e,n)}return n.isVisible}function z(e){const t=(e.ownerDocument||e).defaultView;if(t&&t.IntersectionObserver)return E(()=>new t.IntersectionObserver(t=>{t.forEach(t=>{!function(e,t){var n,r;const o=t.target,i=F.get(e);if(!i)return;const s=i.timers.get(o);if(t.intersectionRatio>0){const r=Date.now();let c=q.get(o);if(!c||r-c.lastChecked>1e3){const e=o.ownerDocument.defaultView;c={isLarge:o.offsetHeight>e.innerHeight,lastChecked:r},q.set(o,c)}if(t.intersectionRatio>=.5||c.isLarge&&U(o)){const t=null==(n=i.elementConfigs)?void 0:n.get(o);if((null==t?void 0:t.multiple)&&t.blocked)return;if(!s){const t=o.ownerDocument.defaultView.setTimeout(async()=>{var t,n;if(U(o)){const r=null==(t=i.elementConfigs)?void 0:t.get(o);(null==r?void 0:r.context)&&await pe(r.context,o,r.trigger);const s=null==(n=i.elementConfigs)?void 0:n.get(o);(null==s?void 0:s.multiple)?s.blocked=!0:function(e,t){const n=F.get(e);if(!n)return;n.observer&&n.observer.unobserve(t);const r=n.timers.get(t);r&&(clearTimeout(r),n.timers.delete(t)),q.delete(t),B.delete(t)}(e,o)}},i.duration);i.timers.set(o,t)}return}}s&&(clearTimeout(s),i.timers.delete(o));const c=null==(r=i.elementConfigs)?void 0:r.get(o);(null==c?void 0:c.multiple)&&(c.blocked=!1)}(e,t)})},{rootMargin:"0px",threshold:[0,.5]}),()=>{})()}function _(e,t,n={multiple:!1}){var r;const o=e.settings.scope;if(!o)return;const i=F.get(o);(null==i?void 0:i.observer)&&t&&(i.elementConfigs||(i.elementConfigs=new WeakMap),i.elementConfigs.set(t,{multiple:null!=(r=n.multiple)&&r,blocked:!1,context:e,trigger:n.multiple?"visible":"impression"}),i.observer.observe(t))}function Y(e){if(!e)return;const t=F.get(e);t&&(t.observer&&t.observer.disconnect(),F.delete(e))}function J(e,t,n,r,o,i,s){const{elb:c,settings:a}=e;if(v(t)&&t.startsWith("walker ")){if("walker init"===t&&e.initScope){const t=function(e,t){if(Q(e))return[e];if(Array.isArray(e)){const t=[];for(const n of e)Q(n)&&t.push(n);return t}if(void 0===e){const e=t.scope;if(Q(e))return[e];if(void 0!==globalThis.document)return[globalThis.document]}return[]}(n,a);for(const n of t)e.initScope(e,{...a,scope:n});return Promise.resolve(function(e){return{ok:!(null==e?void 0:e.failed),...e}}({ok:!0}))}return c(t,n)}if(w(t)){const e=t;if(!e.source&&a.scope){const t=a.scope.ownerDocument||a.scope,n=t.defaultView;e.source=K(n,t)}return!e.globals&&a.scope&&(e.globals=L(a.prefix,a.scope)),c(e)}const[l]=String(w(t)?t.name:t).split(" ");let u,f=w(n)?n:{},d={},g=!1;if(y(n)&&(u=n,g=!0),y(o)?u=o:w(o)&&Object.keys(o).length&&(d=o),u){const e=P(a.prefix||"data-elb",u).find(e=>e.entity===l);e&&(g&&(f=e.data),e.context&&(d=e.context))}const m=a.scope?a.scope.ownerDocument||a.scope:void 0,p=null==m?void 0:m.defaultView;"page"===l&&p&&(f.id=f.id||p.location.pathname);const b=L(a.prefix,a.scope);return c({name:String(t||""),data:f,context:d,globals:b,nested:i,custom:s,trigger:v(r)?r:"",source:p&&m?K(p,m):void 0})}function K(e,t){return{type:"browser",platform:"web",url:e.location.href,referrer:t.referrer}}function Q(e){if(!e||"object"!=typeof e)return!1;if("undefined"!=typeof Element&&e instanceof Element)return!0;if("undefined"!=typeof Document&&e instanceof Document)return!0;if("nodeType"in e){const t=e.nodeType;return 1===t||9===t}return!1}var X,Z,ee=[],te=[],ne=[];function re(){return Z||(Z=new AbortController),Z}var oe="click",ie="hover",se="load",ce="pulse",ae="scroll",le="submit",ue="impression",fe="visible",de="wait";function ge(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;if(!n)return;Z&&Z.abort();Z=new AbortController;const{signal:r}=Z;n.addEventListener("click",E(function(t){ye.call(this,e,t)}),{signal:r}),n.addEventListener("submit",E(function(t){we.call(this,e,t)}),{signal:r})}(e,t)}function me(e,t){const n=t.scope;ee=[];const r=n;if(!r)return;Y(r),function(e,t=1e3){F.has(e)||F.set(e,{observer:z(e),timers:new WeakMap,duration:t})}(r,1e3);const o=A(t.prefix,x.Commands.Action,!1);r!==(r.ownerDocument||r)&&be(e,r,o,t),V(r,`[${o}]`,n=>{be(e,n,o,t)}),ee.length&&function(e,t){const n=t.ownerDocument||t,r=n.defaultView,o=(e,t)=>e.filter(([e,n])=>{const o=r.scrollY+r.innerHeight,i=e.offsetTop;if(o<i)return!0;const s=e.clientHeight;return!(100*(1-(i+s-o)/(s||1))>=n)||(pe(t,e,ae),!1)});X||(X=function(e,t=1e3){const{wait:n}=function(e,t){var n;return"number"==typeof e?{wait:e}:e?{wait:null!=(n=e.wait)?n:t,size:e.size,age:e.age}:{wait:t}}(t,1e3);let r=null;return function(...t){if(null===r)return r=setTimeout(()=>{r=null},n),e(...t)}}(function(){ee=o.call(t,ee,e)}),t.addEventListener("scroll",X,{signal:re().signal}))}(e,r)}async function pe(e,t,n){const r=S(t,n,e.settings.prefix);return Promise.all(r.map(t=>J(e,{name:`${t.entity} ${t.action}`,...t,trigger:n})))}function be(e,t,n,r){const o=O(t,n);o&&Object.values(R(o)).forEach(n=>n.forEach(n=>{switch(n.trigger){case ie:!function(e,t){t.addEventListener("mouseenter",E(function(t){const n=he(t);n&&pe(e,n,ie)}),{signal:re().signal})}(e,t);break;case se:!function(e,t){pe(e,t,se)}(e,t);break;case ce:!function(e,t,n=""){const r=t.ownerDocument,o=setInterval(()=>{r.hidden||pe(e,t,ce)},parseInt(n||"")||15e3);te.push(o)}(e,t,n.triggerParams);break;case ae:!function(e,t=""){const n=parseInt(t||"")||50;if(n<0||n>100)return;ee.push([e,n])}(t,n.triggerParams);break;case ue:_(e,t);break;case fe:_(e,t,{multiple:!0});break;case de:!function(e,t,n=""){const r=setTimeout(()=>pe(e,t,de),parseInt(n||"")||15e3);ne.push(r)}(e,t,n.triggerParams)}}))}function he(e){var t;const n=null==(t=e.composedPath)?void 0:t.call(e),r=(null==n?void 0:n.length)?n[0]:e.target;if(r&&"object"==typeof r&&"tagName"in r)return r}function ye(e,t){const n=he(t);n&&pe(e,n,oe)}function we(e,t){const n=he(t);n&&pe(e,n,le)}function ve(e,t={}){var n;const r=t.name||"elbLayer",o=t.window,i=t.logger;if(!o)return;const s=o;s[r]||(s[r]=[]);const c=s[r],a=o.document;null==i||i.debug("initElbLayer enter",{layerName:r,queuedItems:c.length}),c.push=function(...n){if(Ce(n[0])){const r=[...Array.from(n[0])],o=Array.prototype.push.apply(this,[r]);return Ee(e,t.prefix,r,a,i),o}const r=Array.prototype.push.apply(this,n);return n.forEach(n=>{Ee(e,t.prefix,n,a,i)}),r},Array.isArray(c)&&c.length>0&&(null==i||i.debug("initElbLayer drain walker commands",{count:c.length}),function(e,t,n,r,o){const i="walker ",s=[...n],c=new Set;s.forEach((n,s)=>{const a=ke(n);if(!a)return;const l=a[0];!w(l)&&v(l)&&l.startsWith(i)&&(c.add(s),Ee(e,t,a,r,o))});const a=[...c].sort((e,t)=>t-e);for(const e of a)n.splice(e,1);null==o||o.debug("drainWalkerCommands done",{consumed:c.size,remaining:n.length})}(e,null!=(n=t.prefix)?n:"data-elb",c,a,i))}function ke(e){const t=Ce(e)?[...Array.from(e)]:null!=(n=e)&&"object"==typeof n&&"length"in n&&"number"==typeof n.length?Array.from(e):[e];var n;if(!Array.isArray(t)||0===t.length)return null;if(1===t.length&&!t[0])return null;const r=t[0];return w(r)&&0===Object.keys(r).length||!w(r)&&v(r)&&""===r.trim()?null:t}function Ee(e,t="data-elb",n,r,o){E(()=>{if(Array.isArray(n)){const[i,...s]=n;if(!i||v(i)&&""===i.trim())return void(null==o||o.debug("pushCommand skipped (empty/invalid action)",{item:n}));if(v(i)&&i.startsWith("walker "))return null==o||o.debug("pushCommand walker command",{action:i,data:s[0]}),void e(i,s[0]);null==o||o.debug("pushCommand event (translated)",{action:i,rest:s}),J({elb:e,settings:{prefix:t,scope:r,pageview:!1,elb:"",elbLayer:!1}},i,...s)}else if(n&&"object"==typeof n){if(0===Object.keys(n).length)return void(null==o||o.debug("pushCommand skipped (empty object)"));null==o||o.debug("pushCommand object event",{item:n}),e(n)}},e=>{null==o||o.warn("pushCommand failed",{error:e,item:n})})()}function Ce(e){return null!=e&&"object"==typeof e&&"[object Arguments]"===Object.prototype.toString.call(e)}var xe={};function Oe(e={}){const t=e.prefix||"data-elb";return function(e){let n,r=e;const o={},i={},s={},c={},a={},l={};function u(e){return Object.entries(e).map(([e,t])=>`${e}:${function(e){if(!h(e)||null===e)return"undefined";let t=String(e);return t=t.replace(/\\/g,"\\\\"),t=t.replace(/;/g,"\\;"),t=t.replace(/:/g,"\\:"),t=t.replace(/'/g,"\\'"),t}(t)}`).join(";")}const f={entity:e=>(n=e,r=e,f),data(e,t){const n=null!=r?r:"";return o[n]||(o[n]={}),v(e)?o[n][e]=t:Object.assign(o[n],e),f},action(e,t){if(v(e))if(h(t))i[e]=t;else if(e.includes(":")){const[t,n]=e.split(":",2);i[t]=n}else i[e]=e;else Object.assign(i,e);return f},actions(e,t){if(v(e))if(h(t))s[e]=t;else if(e.includes(":")){const[t,n]=e.split(":",2);s[t]=n}else s[e]=e;else Object.assign(s,e);return f},context:(e,t)=>(v(e)?c[e]=t:Object.assign(c,e),f),globals:(e,t)=>(v(e)?a[e]=t:Object.assign(a,e),f),link:(e,t)=>(v(e)?l[e]=t:Object.assign(l,e),f),get(){const e={};return n&&(e[t]=n),Object.entries(o).forEach(([n,r])=>{if(Object.keys(r).length>0){e[n?`${t}-${n}`:`${t}-`]=u(r)}}),Object.keys(i).length>0&&(e[`${t}action`]=u(i)),Object.keys(s).length>0&&(e[`${t}actions`]=u(s)),Object.keys(c).length>0&&(e[`${t}context`]=u(c)),Object.keys(a).length>0&&(e[`${t}globals`]=u(a)),Object.keys(l).length>0&&(e[`${t}link`]=u(l)),e}};return f}}var je=0;function Ae(){je=0}var $e,De=async e=>{if(je>0&&void 0!==globalThis.window)throw new Error("walker.js browser source is single-instance per window. See packages/web/sources/browser/src/trigger.ts for the invariant note.");je+=1;const{config:t,env:n,logger:r}=e,{elb:o,command:i,window:s,document:c}=n,a=(null==t?void 0:t.settings)||{},l=s||(void 0!==globalThis.window?globalThis.window:void 0),u=c||(void 0!==globalThis.document?globalThis.document:void 0),f=function(e={},t){return{prefix:"data-elb",pageview:!0,elb:"elb",elbLayer:"elbLayer",scope:t||void 0,...e}}(a,u),d={elb:o,settings:f,initScope:me},g=e=>{if(!e.pageview)return;const[t,n]=function(e,t){const n=t.ownerDocument||t,r=n.defaultView.location,o="page",i="body"in t?t.body:t,[s,c]=I(i,`[${A(e,o)}]`,e,o);return s.domain=r.hostname,s.title=n.title,s.referrer=n.referrer,r.search&&(s.search=r.search),r.hash&&(s.hash=r.hash),[s,c]}(e.prefix||"data-elb",e.scope);J(d,"page view",t,"load",n)};return{type:"browser",config:{settings:f},push:(...e)=>{const[t,n,r,o,i,s]=e;return J(d,t,n,r,o,i,s)},on:async e=>{if("run"===e)u&&l&&(!function(e,t){if(!t.scope)return;me(e,t)}(d,f),function(e,t,n,r){const o=v(t.elbLayer)?t.elbLayer:"elbLayer",i=t.prefix||"data-elb",s=n[o];if(!Array.isArray(s))return;const c=n.document;let a=-1;s.forEach((e,t)=>{const n=ke(e);n&&v(n[0])&&"walker run"===n[0]&&(a=t)});const l=[];for(let e=a+1;e<s.length;e++){const t=ke(s[e]);t&&l.push(t)}s.length=a+1,null==r||r.debug("drainNonWalkerEvents",{anchor:a,drained:l.length}),l.forEach(t=>Ee(e,i,t,c,r))}(o,f,l,r),g(f))},init:async()=>{l&&u&&(!1!==f.elbLayer&&o&&ve(o,{name:v(f.elbLayer)?f.elbLayer:"elbLayer",prefix:f.prefix,window:l,logger:r}),await async function(e,t,n){const r=()=>{e(t,n)},o=n.scope;if(!o)return void r();const i=o.ownerDocument||o;"loading"!==i.readyState?r():i.addEventListener("DOMContentLoaded",r)}(ge,d,f),v(f.elb)&&f.elb&&(l[f.elb]=(...e)=>{const[t,n,r,o,i,s]=e;return J(d,t,n,r,o,i,s)}))},destroy:async()=>{Z&&(Z.abort(),Z=void 0),X=void 0,ee=[],te.forEach(e=>clearInterval(e)),te=[],ne.forEach(e=>clearTimeout(e)),ne=[],u&&Y(f.scope||u)}}},Se=De;return $e=o,((o,i,s,c)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let a of n(i))r.call(o,a)||a===s||e(o,a,{get:()=>i[a],enumerable:!(c=t(i,a))||c.enumerable});return o})(e({},"__esModule",{value:!0}),$e)})();
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { Elb, WalkerOS, Collector, Source, Flow, Trigger as Trigger$1 } from '@walkeros/core';
1
+ import { Elb, WalkerOS, Collector, Source } from '@walkeros/core';
2
2
  import { z } from '@walkeros/core/dev';
3
3
  import { DestinationWeb, Walker } from '@walkeros/web-core';
4
4
 
@@ -69,90 +69,27 @@ interface ELBLayerConfig {
69
69
  }
70
70
  type Scope = Document | Element;
71
71
 
72
- type index$1_BrowserArguments<R = Promise<Elb.PushResult>> = BrowserArguments<R>;
73
- type index$1_BrowserPush<R = Promise<Elb.PushResult>> = BrowserPush<R>;
74
- type index$1_BrowserPushContext = BrowserPushContext;
75
- type index$1_BrowserPushData = BrowserPushData;
76
- type index$1_BrowserPushOptions = BrowserPushOptions;
77
- type index$1_Config = Config;
78
- type index$1_Context = Context;
79
- type index$1_ELBLayer = ELBLayer;
80
- type index$1_ELBLayerConfig = ELBLayerConfig;
81
- type index$1_Env = Env;
82
- type index$1_InitSettings = InitSettings;
83
- type index$1_Layer = Layer;
84
- type index$1_Mapping = Mapping;
85
- type index$1_Push = Push;
86
- type index$1_PushResult = PushResult;
87
- type index$1_Scope = Scope;
88
- type index$1_Settings = Settings;
89
- type index$1_Trigger = Trigger;
90
- type index$1_Types = Types;
91
- declare namespace index$1 {
92
- export type { index$1_BrowserArguments as BrowserArguments, index$1_BrowserPush as BrowserPush, index$1_BrowserPushContext as BrowserPushContext, index$1_BrowserPushData as BrowserPushData, index$1_BrowserPushOptions as BrowserPushOptions, index$1_Config as Config, index$1_Context as Context, index$1_ELBLayer as ELBLayer, index$1_ELBLayerConfig as ELBLayerConfig, index$1_Env as Env, index$1_InitSettings as InitSettings, index$1_Layer as Layer, index$1_Mapping as Mapping, index$1_Push as Push, index$1_PushResult as PushResult, index$1_Scope as Scope, index$1_Settings as Settings, index$1_Trigger as Trigger, index$1_Types as Types };
93
- }
94
-
95
- /**
96
- * Standard mock environment for testing browser source
97
- *
98
- * Use this for testing event capture, DOM interactions, and pageview tracking
99
- * without requiring a real browser environment.
100
- */
101
- declare const push: Env;
102
-
103
- declare const env_push: typeof push;
104
- declare namespace env {
105
- export { env_push as push };
106
- }
107
-
108
- declare const pageView: Flow.StepExample;
109
- declare const clickEvent: Flow.StepExample;
110
- declare const submitEvent: Flow.StepExample;
111
- declare const impressionEvent: Flow.StepExample;
112
- declare const nestedEntities: Flow.StepExample;
113
- declare const dataAttributeTypes: Flow.StepExample;
114
- declare const contextAndGlobals: Flow.StepExample;
115
-
116
- declare const step_clickEvent: typeof clickEvent;
117
- declare const step_contextAndGlobals: typeof contextAndGlobals;
118
- declare const step_dataAttributeTypes: typeof dataAttributeTypes;
119
- declare const step_impressionEvent: typeof impressionEvent;
120
- declare const step_nestedEntities: typeof nestedEntities;
121
- declare const step_pageView: typeof pageView;
122
- declare const step_submitEvent: typeof submitEvent;
123
- declare namespace step {
124
- export { step_clickEvent as clickEvent, step_contextAndGlobals as contextAndGlobals, step_dataAttributeTypes as dataAttributeTypes, step_impressionEvent as impressionEvent, step_nestedEntities as nestedEntities, step_pageView as pageView, step_submitEvent as submitEvent };
125
- }
126
-
127
- /**
128
- * Browser source createTrigger.
129
- *
130
- * Injects HTML into the DOM, lazily starts the flow, then calls
131
- * handleTrigger directly — the same convergence point as production.
132
- * For load triggers, the source's DOM scan during startFlow handles
133
- * event capture automatically.
134
- *
135
- * @example
136
- * const { trigger } = await createTrigger(config);
137
- * await trigger('click', 'button')('<button data-elb="cta" data-elbaction="click:cta click">Click</button>');
138
- *
139
- * @example
140
- * // Impression trigger — handleTrigger reads data-elbaction directly
141
- * await trigger('impression', '[data-elb="promo"]')('<div data-elb="promo" data-elbaction="visible:promo seen">Ad</div>');
142
- */
143
- declare const createTrigger: Trigger$1.CreateFn<string, void>;
144
- /**
145
- * Browser source trigger (legacy).
146
- * Converts step example `in` data into DOM elements and dispatches events.
147
- */
148
- declare const trigger: (input: unknown, env: Record<string, unknown>) => void | (() => void);
149
-
150
- declare const index_createTrigger: typeof createTrigger;
151
- declare const index_env: typeof env;
152
- declare const index_step: typeof step;
153
- declare const index_trigger: typeof trigger;
72
+ type index_BrowserArguments<R = Promise<Elb.PushResult>> = BrowserArguments<R>;
73
+ type index_BrowserPush<R = Promise<Elb.PushResult>> = BrowserPush<R>;
74
+ type index_BrowserPushContext = BrowserPushContext;
75
+ type index_BrowserPushData = BrowserPushData;
76
+ type index_BrowserPushOptions = BrowserPushOptions;
77
+ type index_Config = Config;
78
+ type index_Context = Context;
79
+ type index_ELBLayer = ELBLayer;
80
+ type index_ELBLayerConfig = ELBLayerConfig;
81
+ type index_Env = Env;
82
+ type index_InitSettings = InitSettings;
83
+ type index_Layer = Layer;
84
+ type index_Mapping = Mapping;
85
+ type index_Push = Push;
86
+ type index_PushResult = PushResult;
87
+ type index_Scope = Scope;
88
+ type index_Settings = Settings;
89
+ type index_Trigger = Trigger;
90
+ type index_Types = Types;
154
91
  declare namespace index {
155
- export { index_createTrigger as createTrigger, index_env as env, index_step as step, index_trigger as trigger };
92
+ export type { index_BrowserArguments as BrowserArguments, index_BrowserPush as BrowserPush, index_BrowserPushContext as BrowserPushContext, index_BrowserPushData as BrowserPushData, index_BrowserPushOptions as BrowserPushOptions, index_Config as Config, index_Context as Context, index_ELBLayer as ELBLayer, index_ELBLayerConfig as ELBLayerConfig, index_Env as Env, index_InitSettings as InitSettings, index_Layer as Layer, index_Mapping as Mapping, index_Push as Push, index_PushResult as PushResult, index_Scope as Scope, index_Settings as Settings, index_Trigger as Trigger, index_Types as Types };
156
93
  }
157
94
 
158
95
  declare function getElbAttributeName(prefix: string, name?: string, isProperty?: boolean): string;
@@ -197,4 +134,4 @@ declare function __resetInstanceCountForTests(): void;
197
134
  */
198
135
  declare const sourceBrowser: Source.Init<Types>;
199
136
 
200
- export { index$1 as SourceBrowser, type TaggerConfig, type TaggerInstance, __resetInstanceCountForTests, createTagger, sourceBrowser as default, index as examples, getAllEvents, getElbAttributeName, getElbValues, getEvents, getGlobals, sourceBrowser };
137
+ export { index as SourceBrowser, type TaggerConfig, type TaggerInstance, __resetInstanceCountForTests, createTagger, sourceBrowser as default, getAllEvents, getElbAttributeName, getElbValues, getEvents, getGlobals, sourceBrowser };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Elb, WalkerOS, Collector, Source, Flow, Trigger as Trigger$1 } from '@walkeros/core';
1
+ import { Elb, WalkerOS, Collector, Source } from '@walkeros/core';
2
2
  import { z } from '@walkeros/core/dev';
3
3
  import { DestinationWeb, Walker } from '@walkeros/web-core';
4
4
 
@@ -69,90 +69,27 @@ interface ELBLayerConfig {
69
69
  }
70
70
  type Scope = Document | Element;
71
71
 
72
- type index$1_BrowserArguments<R = Promise<Elb.PushResult>> = BrowserArguments<R>;
73
- type index$1_BrowserPush<R = Promise<Elb.PushResult>> = BrowserPush<R>;
74
- type index$1_BrowserPushContext = BrowserPushContext;
75
- type index$1_BrowserPushData = BrowserPushData;
76
- type index$1_BrowserPushOptions = BrowserPushOptions;
77
- type index$1_Config = Config;
78
- type index$1_Context = Context;
79
- type index$1_ELBLayer = ELBLayer;
80
- type index$1_ELBLayerConfig = ELBLayerConfig;
81
- type index$1_Env = Env;
82
- type index$1_InitSettings = InitSettings;
83
- type index$1_Layer = Layer;
84
- type index$1_Mapping = Mapping;
85
- type index$1_Push = Push;
86
- type index$1_PushResult = PushResult;
87
- type index$1_Scope = Scope;
88
- type index$1_Settings = Settings;
89
- type index$1_Trigger = Trigger;
90
- type index$1_Types = Types;
91
- declare namespace index$1 {
92
- export type { index$1_BrowserArguments as BrowserArguments, index$1_BrowserPush as BrowserPush, index$1_BrowserPushContext as BrowserPushContext, index$1_BrowserPushData as BrowserPushData, index$1_BrowserPushOptions as BrowserPushOptions, index$1_Config as Config, index$1_Context as Context, index$1_ELBLayer as ELBLayer, index$1_ELBLayerConfig as ELBLayerConfig, index$1_Env as Env, index$1_InitSettings as InitSettings, index$1_Layer as Layer, index$1_Mapping as Mapping, index$1_Push as Push, index$1_PushResult as PushResult, index$1_Scope as Scope, index$1_Settings as Settings, index$1_Trigger as Trigger, index$1_Types as Types };
93
- }
94
-
95
- /**
96
- * Standard mock environment for testing browser source
97
- *
98
- * Use this for testing event capture, DOM interactions, and pageview tracking
99
- * without requiring a real browser environment.
100
- */
101
- declare const push: Env;
102
-
103
- declare const env_push: typeof push;
104
- declare namespace env {
105
- export { env_push as push };
106
- }
107
-
108
- declare const pageView: Flow.StepExample;
109
- declare const clickEvent: Flow.StepExample;
110
- declare const submitEvent: Flow.StepExample;
111
- declare const impressionEvent: Flow.StepExample;
112
- declare const nestedEntities: Flow.StepExample;
113
- declare const dataAttributeTypes: Flow.StepExample;
114
- declare const contextAndGlobals: Flow.StepExample;
115
-
116
- declare const step_clickEvent: typeof clickEvent;
117
- declare const step_contextAndGlobals: typeof contextAndGlobals;
118
- declare const step_dataAttributeTypes: typeof dataAttributeTypes;
119
- declare const step_impressionEvent: typeof impressionEvent;
120
- declare const step_nestedEntities: typeof nestedEntities;
121
- declare const step_pageView: typeof pageView;
122
- declare const step_submitEvent: typeof submitEvent;
123
- declare namespace step {
124
- export { step_clickEvent as clickEvent, step_contextAndGlobals as contextAndGlobals, step_dataAttributeTypes as dataAttributeTypes, step_impressionEvent as impressionEvent, step_nestedEntities as nestedEntities, step_pageView as pageView, step_submitEvent as submitEvent };
125
- }
126
-
127
- /**
128
- * Browser source createTrigger.
129
- *
130
- * Injects HTML into the DOM, lazily starts the flow, then calls
131
- * handleTrigger directly — the same convergence point as production.
132
- * For load triggers, the source's DOM scan during startFlow handles
133
- * event capture automatically.
134
- *
135
- * @example
136
- * const { trigger } = await createTrigger(config);
137
- * await trigger('click', 'button')('<button data-elb="cta" data-elbaction="click:cta click">Click</button>');
138
- *
139
- * @example
140
- * // Impression trigger — handleTrigger reads data-elbaction directly
141
- * await trigger('impression', '[data-elb="promo"]')('<div data-elb="promo" data-elbaction="visible:promo seen">Ad</div>');
142
- */
143
- declare const createTrigger: Trigger$1.CreateFn<string, void>;
144
- /**
145
- * Browser source trigger (legacy).
146
- * Converts step example `in` data into DOM elements and dispatches events.
147
- */
148
- declare const trigger: (input: unknown, env: Record<string, unknown>) => void | (() => void);
149
-
150
- declare const index_createTrigger: typeof createTrigger;
151
- declare const index_env: typeof env;
152
- declare const index_step: typeof step;
153
- declare const index_trigger: typeof trigger;
72
+ type index_BrowserArguments<R = Promise<Elb.PushResult>> = BrowserArguments<R>;
73
+ type index_BrowserPush<R = Promise<Elb.PushResult>> = BrowserPush<R>;
74
+ type index_BrowserPushContext = BrowserPushContext;
75
+ type index_BrowserPushData = BrowserPushData;
76
+ type index_BrowserPushOptions = BrowserPushOptions;
77
+ type index_Config = Config;
78
+ type index_Context = Context;
79
+ type index_ELBLayer = ELBLayer;
80
+ type index_ELBLayerConfig = ELBLayerConfig;
81
+ type index_Env = Env;
82
+ type index_InitSettings = InitSettings;
83
+ type index_Layer = Layer;
84
+ type index_Mapping = Mapping;
85
+ type index_Push = Push;
86
+ type index_PushResult = PushResult;
87
+ type index_Scope = Scope;
88
+ type index_Settings = Settings;
89
+ type index_Trigger = Trigger;
90
+ type index_Types = Types;
154
91
  declare namespace index {
155
- export { index_createTrigger as createTrigger, index_env as env, index_step as step, index_trigger as trigger };
92
+ export type { index_BrowserArguments as BrowserArguments, index_BrowserPush as BrowserPush, index_BrowserPushContext as BrowserPushContext, index_BrowserPushData as BrowserPushData, index_BrowserPushOptions as BrowserPushOptions, index_Config as Config, index_Context as Context, index_ELBLayer as ELBLayer, index_ELBLayerConfig as ELBLayerConfig, index_Env as Env, index_InitSettings as InitSettings, index_Layer as Layer, index_Mapping as Mapping, index_Push as Push, index_PushResult as PushResult, index_Scope as Scope, index_Settings as Settings, index_Trigger as Trigger, index_Types as Types };
156
93
  }
157
94
 
158
95
  declare function getElbAttributeName(prefix: string, name?: string, isProperty?: boolean): string;
@@ -197,4 +134,4 @@ declare function __resetInstanceCountForTests(): void;
197
134
  */
198
135
  declare const sourceBrowser: Source.Init<Types>;
199
136
 
200
- export { index$1 as SourceBrowser, type TaggerConfig, type TaggerInstance, __resetInstanceCountForTests, createTagger, sourceBrowser as default, index as examples, getAllEvents, getElbAttributeName, getElbValues, getEvents, getGlobals, sourceBrowser };
137
+ export { index as SourceBrowser, type TaggerConfig, type TaggerInstance, __resetInstanceCountForTests, createTagger, sourceBrowser as default, getAllEvents, getElbAttributeName, getElbValues, getEvents, getGlobals, sourceBrowser };