@walkeros/web-source-browser 4.0.0 → 4.0.1-next-1778068549946

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.
@@ -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:()=>bt,createTagger:()=>Rt,default:()=>Mt,examples:()=>ht,getAllEvents:()=>Ce,getElbAttributeName:()=>Oe,getElbValues:()=>Ee,getEvents:()=>Ae,getGlobals:()=>Se,sourceBrowser:()=>It});var i=Object.defineProperty;((e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})})({},{Level:()=>c});var a,c=((a=c||{})[a.ERROR=0]="ERROR",a[a.WARN=1]="WARN",a[a.INFO=2]="INFO",a[a.DEBUG=3]="DEBUG",a);function l(e){return{_meta:{hops:0,path:[e]}}}var u={merge:!0,shallow:!0,extend:!0};function f(e,t={},n={}){n={...u,...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 d(e){return Array.isArray(e)}function g(e){return void 0!==e}function p(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function m(e){return"function"==typeof e}function b(e){return"object"==typeof e&&null!==e&&!d(e)&&"[object Object]"===Object.prototype.toString.call(e)}function h(e){return"string"==typeof e}function v(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]=v(e[o],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(v(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 y(e,t="",n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const t=o[e];if("*"===t&&d(r)){const t=o.slice(e+1).join("."),s=[];for(const e of r){const o=y(e,t,n);s.push(o)}return s}if(r=r instanceof Object?r[t]:void 0,void 0===r)break}return g(r)?r:n}function w(e,t,n){if(!b(e))return e;const o=v(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}var k={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 x(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function j(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 O(){let e="";for(let t=0;t<16;t++)e+=(16*Math.random()|0).toString(16);return e}function E(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 C(e,t=1e3,n=!1){let o,r=null,s=!1;return(...i)=>new Promise(a=>{const c=n&&!s;r&&clearTimeout(r),r=setTimeout(()=>{r=null,n&&!s||(o=e(...i),a(o))},t),c&&(s=!0,o=e(...i),a(o))})}function A(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function S(e,t){let n,o={};return e instanceof Error?(n=e.message,o.error=A(e)):n=e,void 0!==t&&(t instanceof Error?o.error=A(t):"object"==typeof t&&null!==t?(o={...o,...t},"error"in o&&o.error instanceof Error&&(o.error=A(o.error))):o.value=t),{message:n,context:o}}var $=(e,t,n,o)=>{const r=`${c[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 D(e={}){return P({level:void 0!==e.level?(t=e.level,"string"==typeof t?c[t]:t):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]});var t}function P(e){const{level:t,handler:n,jsonHandler:o,scope:r}=e,s=(e,o,s)=>{if(e<=t){const t=S(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=S(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=>P({level:t,handler:n,jsonHandler:o,scope:[...r,e]})}}function q(e){return function(e){return"boolean"==typeof e}(e)||h(e)||function(e){return"number"==typeof e&&!Number.isNaN(e)}(e)||!g(e)||d(e)&&e.every(q)||b(e)&&Object.values(e).every(q)}function R(e){return q(e)?e:void 0}function T(e,t,n){return function(...o){try{return e(...o)}catch(e){if(!t)return;return t(e)}finally{null==n||n()}}}function I(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())}}}async function M(e,t={},n={}){var o,r;if(!g(e))return;const s=b(e)&&e.consent||n.consent||(null==(o=n.collector)?void 0:o.consent),i=null!=(r=n.event)?r:b(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=d(t)?t:[t];for(const t of c){const n=await I(L)(e,t,{...a,mapping:t});if(g(n))return n}}async function L(e,t,n){return(d(t)?t:[t]).reduce(async(t,o)=>{const r=await t;if(r)return r;const s=h(o)?{key:o}:o;if(!Object.keys(s).length)return;const{condition:i,consent:a,fn:c,key:l,loop:u,map:f,set:p,validate:m,value:b}=s,v={...n,mapping:o};if(i&&!await I(i)(e,v))return;if(a&&!j(a,v.consent))return b;let w=g(b)?b:e;if(c&&(w=await I(c)(e,v)),l&&(w=y(e,l,b)),u){const[t,n]=u,o="this"===t?[e]:await M(e,t,v);d(o)&&(w=(await Promise.all(o.map(e=>M(e,n,v)))).filter(g))}else f?w=await Object.entries(f).reduce(async(t,[n,o])=>{const r=await t,s=await M(e,o,v);return g(s)&&(r[n]=s),r},Promise.resolve({})):p&&(w=await Promise.all(p.map(t=>L(e,t,v))));m&&!await I(m)(w,v)&&(w=void 0);const k=R(w);return g(k)?k:R(b)},Promise.resolve(void 0))}async function N(e,t,n){var o;t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,o])=>{const r=await M(e,o,{collector:n,event:e});e=w(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(d(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:b(e)&&e.consent||n.consent};return Boolean(t.condition(e,o))})};t[c]||(c="*");const f=t[c];return f&&(f[l]||(l="*"),i=u(f[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 M(e,o,{collector:n,event:e});e=w(e,t,r)}));let i=t.data&&await M(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 M(e,r.data,{collector:n,event:e});i=b(i)&&b(t)?f(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(k):t;for(const t of o){const o=k[t];if(!o)continue;const r=o(e);if(b(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=b(i)?f(t,i):null!=i?i:t)}return{event:e,data:i,mapping:r,mappingKey:s,ignore:!1,silent:a}}function _(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function W(e,t,n,o){return function(...r){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:e},...r)}catch(t){u(`Hook ${String(i)} failed, falling back to original function`,t),s=e(...r)}else s=e(...r);if(l)try{s=l({fn:e,result:s},...r)}catch(e){u(`Hook ${String(a)} failed, keeping original result`,e)}return s}}function H(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(H);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(H);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=y(e,t),o=s(n);return r?!o:o}}(e)}function V(e){return Array.isArray(e)&&e.length>0&&"object"==typeof e[0]&&null!==e[0]&&"match"in e[0]}function U(e){if(null!=e){if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;return V(e)?{type:"routes",routes:e.map(e=>({match:H(e.match),next:U(e.next)}))}:{type:"chain",value:e}}}}function B(e,t={}){if(e){if("static"===e.type)return e.value;if("chain"===e.type)return e.value;for(const n of e.routes)if(n.match(t))return B(n.next,t)}}function G(e,t){const n={ingest:null!=e?e:{}};return void 0!==t&&(n.event=t),n}function z(e){var t;return{full:null!=(t=e.full)&&t,storeId:e.store,rules:e.rules.map(e=>({match:H(e.match),key:e.key,ttl:e.ttl,update:e.update}))}}function K(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=y(n,e))?t:"")});if(s.every(e=>""===e))return null;const i=`${o}:${s.join(":")}`,a=t.get(i);return void 0!==a?{status:"HIT",key:i,value:a,rule:r}:{status:"MISS",key:i,rule:r}}function F(e,t,n,o){e.set(t,n,1e3*o)}async function Y(e,t,n,o){if(!t)return e;let r=e;for(const[e,s]of Object.entries(t))r=w(r,e,await M(n,s,{collector:o}));return r}var J={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 X(e,t){return e.storeId&&t.stores[e.storeId]?t.stores[e.storeId]:t.stores.__cache}function Q(e){var t;const n={};for(const[o,r]of Object.entries(e)){const e=null==(t=r.config)?void 0:t.next;e&&!V(e)?n[o]={next:e}:n[o]={}}return n}function Z(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 ee(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 te(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:l(n),config:t.config,env:re(t.config.env)};r.debug("init");const i=await W(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 ne(e,t,n,o,r,s){const i=t.type||"unknown",a=e.logger.scope(`transformer:${i}`),c={collector:e,logger:a,id:n,ingest:r,config:t.config,env:{...re(t.config.env),...s?{respond:s}:{}}};a.debug("push",{event:o.name});const l=await W(t.push,"TransformerPush",e.hooks,e.logger)(o,c);return a.debug("push done"),l}async function oe(e,t,n,o,r,s,i){var a,c,u,f,d,g;i&&(null==r?void 0:r._meta)&&(r._meta.chainPath=i);let p=o,m=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:m};if(r&&r._meta&&(r._meta.hops++,r._meta.path.push(o)),!await I(te)(e,s,o))return e.logger.error(`Transformer init failed: ${o}`),{event:null,respond:m};if(i&&void 0!==(null==(c=null==(a=s.config)?void 0:a.chainMocks)?void 0:c[i])){const t=s.config.chainMocks[i];e.logger.scope(`transformer:${s.type||"unknown"}`).debug("chainMock",{chain:i}),p=t;continue}if(void 0!==(null==(u=s.config)?void 0:u.mock)){e.logger.scope(`transformer:${s.type||"unknown"}`).debug("mock"),p=s.config.mock;continue}if(null==(f=s.config)?void 0:f.disabled)continue;const b=null==(d=s.config)?void 0:d.cache,h=b?z(b):void 0,v=h?X(h,e):void 0;let y;if(h&&v){const e=K(h,v,G(r,p),`t:${o}`);if("HIT"===(null==e?void 0:e.status)&&e.value){if(p=e.value,h.full)return{event:p,respond:m};continue}"MISS"===(null==e?void 0:e.status)&&(y={key:e.key,ttl:e.rule.ttl})}const w=s.config.before;if(w){const n=ee("string"==typeof w||Array.isArray(w)&&!V(w)?w:B(U(w),G(r,p))||void 0,Q(t));if(n.length>0){const o=await oe(e,t,n,p,r,m,i);if(null===o.event)return{event:null,respond:null!=(g=o.respond)?g:m};o.respond&&(m=o.respond),p=Array.isArray(o.event)?o.event[0]:o.event}}const k=await I(ne,t=>(e.logger.scope(`transformer:${s.type||"unknown"}`).error("Push failed",{error:t}),!1))(e,s,o,p,r,m);if(!1===k)return{event:null,respond:m};if(Array.isArray(k)){const s=n.slice(n.indexOf(o)+1),a=await Promise.all(k.map(async n=>{const o=n.event||p,a=r?{...r,_meta:{...r._meta,path:[...r._meta.path]}}:l("unknown");if(n.next){let r=n.next;if(V(n.next)){r=B(U(n.next),G(a,o))}if(r){const n=ee(r,Q(t));if(n.length>0)return oe(e,t,n,o,a,m,i)}return{event:o,respond:m}}return s.length>0?oe(e,t,s,o,a,m,i):{event:o,respond:m}}));let c=m;const u=[];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)?u.push(...t.event):u.push(t.event)}else u.push(e);return 0===u.length?{event:null,respond:c}:1===u.length?{event:u[0],respond:c}:{event:u,respond:c}}if(k&&"object"==typeof k){const{event:n,respond:o,next:s}=k;if(o&&(m=o),s){let o=s;if(V(s)){if(o=B(U(s),G(r,p)),!o){n&&(p=n);continue}}const a=ee(o,Q(t));return a.length>0?oe(e,t,a,n||p,r,m,i):(e.logger.warn(`Branch target not found: ${JSON.stringify(s)}`),{event:null,respond:m})}n&&(p=n)}if(y&&v&&F(v,y.key,p,y.ttl),(!k||"object"==typeof k&&!k.next)&&s.config.next&&V(s.config.next)){const n=B(U(s.config.next),G(r,p));if(n){const o=ee(n,Q(t));if(o.length>0)return oe(e,t,o,p,r,m,i)}return{event:p,respond:m}}}return{event:p,respond:m}}function re(e){return e&&b(e)?e:{}}async function se(e,t,n){var o;const{code:r,config:s={},env:i={},primary:a,next:c,before:u,cache:f}=n;let d,g=l(t);const p=f?z({...f,full:null==(o=f.full)||o}):void 0,m=U(c),b=Array.isArray(c)&&V(c)||!m?void 0:ee(B(m),Q(e.transformers)),h=U(u),v=Array.isArray(u)&&V(u)||!h?void 0:ee(B(h),Q(e.transformers)),y=e.logger.scope("source").scope(t),w={push:async(n,o={})=>{let r,i=n;const a=null!=v?v:h?ee(B(h,G(g)),Q(e.transformers)):[];if(a.length>0&&e.transformers&&Object.keys(e.transformers).length>0){const n=await oe(e,e.transformers,a,i,g,d,`source.${t}.before`);if(null===n.event)return{ok:!0};n.respond&&(d=n.respond),i=Array.isArray(n.event)?n.event[0]:n.event}if(p){const n=X(p,e);if(n){const o=G(g),s=K(p,n,o,`s:${t}`);if(s){if("HIT"===s.status&&void 0!==s.value&&p.full){let t=s.value;return s.rule.update&&(t=await Y(t,s.rule.update,{...o,cache:{status:"HIT"}},e)),null==d||d(t),{ok:!0}}if("MISS"===s.status&&p.full&&d){const t=d,i=s.rule.update,a={...o,cache:{status:"MISS"}},c=s.key,l=s.rule.ttl;d=o=>{F(n,c,o,l),i?r=(async()=>{const n=await Y(o,i,a,e);t(n)})():t(o)}}"MISS"!==s.status||p.full||F(n,s.key,!0,s.rule.ttl)}}}const c=null!=b?b:m?ee(B(m,G(g)),Q(e.transformers)):[],l=await e.push(i,{...o,id:t,ingest:g,respond:d,mapping:s,preChain:c});return r&&await r,l},command:e.command,sources:e.sources,elb:e.sources.elb.push,logger:y,...i},k={collector:e,logger:y,id:t,config:s,env:w,setIngest:async n=>{if(!s.ingest)return void(g=l(t));const o=await M(n,s.ingest,{collector:e}),r=l(t);g={...r,...o,_meta:r._meta}},setRespond:e=>{d=e}},x=await I(r)(k);if(!x)return;const j=x.type||"unknown",O=e.logger.scope(j).scope(t);return w.logger=O,a&&(x.config={...x.config,primary:a}),x}function ie(e,t){return{collector:e,logger:e.logger.scope("on").scope(String(t))}}function ae(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:be(t.env,t.config.env)};T(t.on)(o,a)}function ce(e,t,n,o){let r;switch(t){case J.Commands.Consent:r=o||e.consent;break;case J.Commands.Session:r=e.session;break;case J.Commands.User:r=o||e.user;break;case J.Commands.Custom:r=o||e.custom;break;case J.Commands.Globals:r=o||e.globals;break;case J.Commands.Config:r=o||e.config;break;case J.Commands.Ready:case J.Commands.Run:default:r=void 0}if(n.length)switch(t){case J.Commands.Consent:!function(e,t,n){const o=n||e.consent,r=ie(e,J.Commands.Consent);t.forEach(e=>{Object.keys(o).filter(t=>t in e).forEach(t=>{T(e[t])(o,r)})})}(e,n,o);break;case J.Commands.Ready:!function(e,t){if(!e.allowed)return;const n=ie(e,J.Commands.Ready);t.forEach(e=>{T(e)(void 0,n)})}(e,n);break;case J.Commands.Run:!function(e,t){if(!e.allowed)return;const n=ie(e,J.Commands.Run);t.forEach(e=>{T(e)(void 0,n)})}(e,n);break;case J.Commands.Session:!function(e,t){if(!e.session)return;const n=ie(e,J.Commands.Session);t.forEach(t=>{T(t)(e.session,n)})}(e,n);break;default:{const o=ie(e,t);n.forEach(e=>{"function"==typeof e&&T(e)(r,o)});break}}}function le(e,t,n,o){if(!e)return[];if(t){const e=B(t,G(o));return e?ee(e,Q(n)):[]}return ee(e,Q(n))}async function ue(e,t,n){const{code:o,config:r={},env:s={},before:i,next:a,cache:c}=t;if(!m(o.push))return pe({ok:!1,failed:{invalid:{type:"invalid",error:"Destination code must have a push method"}}});const l=n||r||{init:!1};let u=i?{...l,before:i}:{...l};a&&(u={...u,next:a}),c&&(u={...u,cache:c});const f={...o,config:u,env:be(o.env,s)};let d=f.config.id;if(!d)do{d=E(5,"abcdefghijklmnopqrstuvwxyz")}while(e.destinations[d]);return e.destinations[d]=f,!1!==f.config.queue&&(f.queuePush=[...e.queue]),fe(e,void 0,{},{[d]:f})}async function fe(e,t,n={},o){const{allowed:r,consent:s,globals:i,user:a}=e;if(!r)return pe({ok:!1});t&&(e.queue.push(t),e.status.in++),o||(o=e.destinations);const c=await Promise.all(Object.entries(o||{}).map(async([o,r])=>{var c,u,d;if(r.config.disabled)return{id:o,destination:r,skipped:!0};let g=(r.queuePush||[]).map(e=>({...e,consent:s}));r.queuePush=[],t&&g.push(v(t));const p=n.ingest?{...n.ingest,_meta:{...n.ingest._meta,path:[...n.ingest._meta.path]}}:l("unknown");if(!g.length&&!(null==(c=r.queueOn)?void 0:c.length))return{id:o,destination:r,skipped:!0};if(!g.length&&(null==(u=r.queueOn)?void 0:u.length)){const t=await I(de)(e,r,o);return{id:o,destination:r,skipped:!t}}const m=[],b=g.filter(e=>{const t=j(r.config.consent,s,e.consent);return!t||(e.consent=t,m.push(e),!1)});if(r.queuePush.push(...b),!m.length)return{id:o,destination:r,queue:g};if(!await I(de)(e,r,o))return{id:o,destination:r,queue:g};let h,y;r.dlq||(r.dlq=[]);const w=r.config.before,k=le(w,w&&V(w)?U(w):void 0,e.transformers,p),x=r.config.next,O=x&&V(x)?U(x):void 0,E=null==(d=r.config)?void 0:d.cache,C=E?z(E):void 0,A=C?X(C,e):void 0;let S=0;return await Promise.all(m.map(async t=>{let s;if(t.globals=f(i,t.globals),t.user=f(a,t.user),(null==C?void 0:C.full)&&A){const e=G(p,t),n=K(C,A,e,`d:${o}`);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 c=t,l=n.respond;if(k.length>0&&e.transformers&&Object.keys(e.transformers).length>0){const r=await oe(e,e.transformers,k,t,p,n.respond,`destination.${o}.before`);if(null===r.event)return t;r.respond&&(l=r.respond),c=Array.isArray(r.event)?r.event[0]:r.event}if(C&&!C.full&&A){const e=G(p,c),n=K(C,A,e,`d:${o}`);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})}const u=Date.now();let d=!1;const g=await I(ge,t=>{const n=r.type||"unknown";e.logger.scope(n).error("Push failed",{error:t,event:c.name}),h=t,d=!0,r.dlq.push([c,t])})(e,r,o,c,p,l);if(S+=Date.now()-u,s&&A&&void 0===r.config.mock&&F(A,s.key,null==g||g,s.ttl),void 0!==g&&(y=g),!d&&x){void 0!==g&&(p._response=g);const t=le(x,O,e.transformers,p);if(t.length>0&&e.transformers&&Object.keys(e.transformers).length>0){const n=await oe(e,e.transformers,t,c,p,l,`destination.${o}.next`);n.respond&&(l=n.respond)}}return t})),{id:o,destination:r,error:h,response:y,totalDuration:S}})),u={},d={},g={};for(const t of c){if(t.skipped)continue;const n={type:t.destination.type||"unknown",data:t.response};e.status.destinations[t.id]||(e.status.destinations[t.id]={count:0,failed:0,duration:0});const o=e.status.destinations[t.id],r=Date.now();t.error?(n.error=t.error,g[t.id]=n,o.failed++,o.lastAt=r,o.duration+=t.totalDuration||0,e.status.failed++):t.queue&&t.queue.length?d[t.id]=n:(u[t.id]=n,o.count++,o.lastAt=r,o.duration+=t.totalDuration||0,e.status.out++)}return pe({event:t,...Object.keys(u).length&&{done:u},...Object.keys(d).length&&{queued:d},...Object.keys(g).length&&{failed:g}})}async function de(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:be(t.env,t.config.env)};s.debug("init");const a=await W(t.init,"DestinationInit",e.hooks,e.logger)(i);if(!1===a)return a;if(t.config={...a||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)ae(e,t,n,r,s)}s.debug("init done")}return!0}async function ge(e,t,n,o,r,s){const{config:i}=t,a=await N(o,i,e);if(a.ignore)return!1;const c=t.type||"unknown",l=e.logger.scope(c),u={collector:e,logger:l,id:n,config:i,data:a.data,rule:a.mapping,ingest:r,env:{...be(t.env,i.env),...s?{respond:s}:{}}};if(void 0!==i.mock)return l.debug("mock",{event:a.event.name}),i.mock;const f=a.mapping,d=a.mappingKey||"* *";if(!(null==f?void 0:f.batch)||!t.pushBatch||void 0!==i.mock){l.debug("push",{event:a.event.name});const n=await W(t.push,"DestinationPush",e.hooks,e.logger)(a.event,u);return l.debug("push done"),n}{if(t.batches=t.batches||{},!t.batches[d]){const o={key:d,events:[],data:[]};t.batches[d]={batched:o,batchFn:C(()=>{const o=t.batches[d].batched,a={collector:e,logger:l,id:n,config:i,data:void 0,rule:f,ingest:r,env:{...be(t.env,i.env),...s?{respond:s}:{}}};l.debug("push batch",{events:o.events.length}),W(t.pushBatch,"DestinationPushBatch",e.hooks,e.logger)(o,a),l.debug("push batch done"),o.events=[],o.data=[]},f.batch)}}const o=t.batches[d];o.batched.events.push(a.event),g(a.data)&&o.batched.data.push(a.data),o.batchFn()}return!0}function pe(e){return{ok:!(null==e?void 0:e.failed),...e}}function me(e){const{code:t,config:n={},env:o={},cache:r}=e,{config:s}=Z(e,"before"),{config:i}=Z({...e,config:s},"next"),a={...t.config,...n,...i};r&&(a.cache=r);const c=be(t.env,o);return{...t,config:a,env:c}}function be(e,t){return e||t?t?e&&b(e)&&b(t)?{...e,...t}:t:e:{}}async function he(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 ve(e,t,n,o){let r,s,i=!1;switch(t){case J.Commands.Config:b(n)&&(f(e.config,n,{shallow:!1}),s=n,i=!0);break;case J.Commands.Consent:if(b(n)){const{update:t}=function(e,t){const n={};return Object.entries(t).forEach(([e,t])=>{n[e]=!!t}),e.consent=f(e.consent,n),{update:n}}(e,n);s=t,i=!0}break;case J.Commands.Custom:b(n)&&(e.custom=f(e.custom,n),s=n,i=!0);break;case J.Commands.Destination:b(n)&&("code"in n&&b(n.code)?r=await ue(e,n,o):m(n.push)&&(r=await ue(e,{code:n},o)));break;case J.Commands.Globals:b(n)&&(e.globals=f(e.globals,n),s=n,i=!0);break;case J.Commands.On:h(n)&&await async function(e,t,n){const o=e.on,r=o[t]||[],s=d(n)?n:[n];s.forEach(e=>{r.push(e)}),o[t]=r,ce(e,t,s)}(e,n,o);break;case J.Commands.Ready:i=!0;break;case J.Commands.Run:r=await async function(e,t){return e.allowed=!0,e.timing=Date.now(),t&&(t.consent&&(e.consent=f(e.consent,t.consent)),t.user&&(e.user=f(e.user,t.user)),t.globals&&(e.globals=f(e.config.globalsStatic||{},t.globals)),t.custom&&(e.custom=f(e.custom,t.custom))),Object.values(e.destinations).forEach(e=>{e.queuePush=[]}),e.queue=[],e.round++,await fe(e)}(e,n),i=!0;break;case J.Commands.Session:i=!0;break;case J.Commands.Shutdown:await async function(e){const t=e.logger;await he(e.sources,"source",t),await he(e.destinations,"destination",t),await he(e.transformers,"transformer",t),await he(e.stores,"store",t)}(e);break;case J.Commands.User:b(n)&&(f(e.user,n,{shallow:!1}),s=n,i=!0)}return i&&(await async function(e,t,n,o){let r,s=n||[];switch(n||(s=e.on[t]||[]),t){case J.Commands.Consent:r=o||e.consent;break;case J.Commands.Session:r=e.session;break;case J.Commands.User:r=o||e.user;break;case J.Commands.Custom:r=o||e.custom;break;case J.Commands.Globals:r=o||e.globals;break;case J.Commands.Config:r=o||e.config;break;case J.Commands.Ready:case J.Commands.Run:default:r=void 0}let i=!1;for(const n of Object.values(e.sources))n.on&&!1===await I(n.on)(t,r)&&(i=!0);return 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:r});ae(e,o,n,t,r)}}),(Object.keys(e.pending.sources).length>0||Object.keys(e.pending.destinations).length>0)&&await async function(e,t){var n,o;for(const[o,r]of Object.entries(e.pending.sources)){if(!e.pending.sources[o]||e.sources[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.sources[o];const a=await se(e,o,r);a&&(e.sources[o]=a)}for(const[n,r]of Object.entries(e.pending.destinations)){if(!e.pending.destinations[n]||e.destinations[n])continue;const s=null==(o=r.config)?void 0:o.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[n];const a=me(r);!1!==a.config.queue&&(a.queuePush=[...e.queue]),e.destinations[n]=a}}(e,t),ce(e,t,s,o),!i}(e,t,void 0,s),r=await fe(e)),r||pe({ok:!0})}function ye(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:f=[],consent:d=e.consent,id:g=O(),trigger:p="",entity:m=n,action:b=o,timing:h=0,source:v={type:"collector",schema:"4"}}=t;return{name:s,data:i,context:a,globals:c,custom:l,user:u,nested:f,consent:d,id:g,trigger:p,entity:m,action:b,timestamp:r,timing:h,source:v}}async function we(e){var t,n;const o=f({globalsStatic:{},sessionStatic:{},run:!0},e,{merge:!1,extend:!1}),r=D({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||{},logger:r,on:{},queue:[],round:0,session:void 0,status:{startedAt:Date.now(),in:0,out:0,failed:0,sources:{},destinations:{}},timing:Date.now(),user:e.user||{},sources:{},pending:{sources:{},destinations:{}},push:void 0,command:void 0};var a,c;i.push=function(e,t){return W(async(n,o={})=>await I(async()=>{var r;const s=Date.now(),{id:i,ingest:a,respond:c,mapping:u,preChain:f,include:d,exclude:g}=o;let p=c,m=n;const b=d||g?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,g):void 0,h=null!=a?a:l(i||"unknown");if(u){const t=await N(m,u,e);if(t.ignore)return pe({ok:!0});if(u.consent&&!j(u.consent,e.consent,t.event.consent))return pe({ok:!0});m=t.event}if((null==f?void 0:f.length)&&e.transformers&&Object.keys(e.transformers).length>0){const n=await oe(e,e.transformers,f,m,h,p,i?`source.${i}.next`:void 0);if(null===n.event)return pe({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=ye(e,o);return fe(e,r,{id:i,ingest:h,respond:p},b)}));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:pe({ok:!0})}m=n.event}const v=t(m),y=ye(e,v),w=await fe(e,y,{id:i,ingest:h,respond:p},b);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},()=>pe({ok:!1}))(),"Push",e.hooks,e.logger)}(i,e=>({timing:Math.round((Date.now()-i.timing)/10)/100,source:{type:"collector",schema:"4",version:"4.0.0"},...e})),i.command=(c=ve,W(async(e,t,n)=>await I(async()=>await c(a,e,t,n),()=>pe({ok:!1}))(),"Command",(a=i).hooks,a.logger));const u=e.stores||{};if(i.stores=await async function(e,t={}){const n={};for(const[o,r]of Object.entries(t)){const{code:t,config:s={},env:i={}}=r,a=e.logger.scope("store").scope(o),c={collector:e,logger:a,id:o,config:s,env:i},l=await t(c),u=l.get,f=l.set,d=l.delete;l.get=W(u,"StoreGet",e.hooks,e.logger),l.set=W(f,"StoreSet",e.hooks,e.logger),l.delete=W(d,"StoreDelete",e.hooks,e.logger),n[o]=l}return n}(i,u),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)}}}(u,i.stores,e),!i.stores.__cache){const e=new Map;i.stores.__cache={type:"memory",config:{},get:t=>{const n=e.get(t);if(n){if(!(n.expires&&Date.now()>n.expires))return n.value;e.delete(t)}},set:(t,n,o)=>{e.set(t,{value:n,expires:o?Date.now()+o:void 0})},delete:t=>{e.delete(t)}}}return 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]=me(i);return r}(i,e.destinations||{}),i.transformers=await async function(e,t={}){const n={};for(const[o,r]of Object.entries(t)){const{code:t,env:s={}}=r,{config:i}=Z(r,"before"),{config:a}=Z({...r,config:i},"next"),c=Object.keys(s).length>0?{...a,env:s}:a,{cache:u}=r,f=u?{...c,cache:u}:c,d=e.logger.scope("transformer").scope(o),g={collector:e,logger:d,id:o,ingest:l(o),config:f,env:s},p=await t(g);n[o]=p}return n}(i,e.transformers||{}),i}async function ke(e){e=e||{};const t=await we(e),n=(o=t,{type:"elb",config:{},push:async(e,t,n,r,s,i)=>{if("string"==typeof e&&e.startsWith("walker ")){const r=e.replace("walker ","");return o.command(r,t,n)}let a;if("string"==typeof e)a={name:e},t&&"object"==typeof t&&!Array.isArray(t)&&(a.data=t);else{if(!e||"object"!=typeof e)return pe({ok:!1});a=e,t&&"object"==typeof t&&!Array.isArray(t)&&(a.data={...a.data||{},...t})}return r&&"object"==typeof r&&(a.context=r),s&&Array.isArray(s)&&(a.nested=s),i&&"object"==typeof i&&(a.custom=i),o.push(a)}});var o;t.sources.elb=n;const r=await async function(e,t={}){const n={};for(const[o,r]of Object.entries(t)){const{config:t={}}=r;if(t.require&&t.require.length>0){e.pending.sources[o]=r;continue}const s=await se(e,o,r);s&&(n[o]=s)}return n}(t,e.sources||{});Object.assign(t.sources,r);const{consent:s,user:i,globals:a,custom:c}=e;s&&await t.command("consent",s),i&&await t.command("user",i),a&&Object.assign(t.globals,a),c&&Object.assign(t.custom,c),t.config.run&&await t.command("run");let l=n.push;const u=Object.values(t.sources).filter(e=>"elb"!==e.type),f=u.find(e=>e.config.primary);return f?l=f.push:u.length>0&&(l=u[0].push),{collector:t,elb:l}}function xe(e,t){return(e.getAttribute(t)||"").trim()}function je(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 Oe(e,t,n=!0){return e+(t=null!=t?(n?"-":"")+t:"")}function Ee(e,t,n,o=!0){return Me(xe(t,Oe(e,n,o))||"").reduce((e,n)=>{let[o,r]=Le(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),d(e[o])||(e[o]=[]),e[o].push(x(r))):e[o]=x(r),e},{})}function Ce(e,t=J.Commands.Prefix){var n;const o=e;if(!o)return[];let r=[];const s=J.Commands.Action,i=`[${Oe(t,s,!1)}]`,a=e=>{Object.keys(Ee(t,e,s,!1)).forEach(n=>{r=r.concat(Ae(e,n,t))})};return o!==(o.ownerDocument||o)&&(null==(n=o.matches)?void 0:n.call(o,i))&&a(o),Ie(o,i,a),r}function Ae(e,t,n=J.Commands.Prefix){const o=[],{actions:r,nearestOnly:s}=function(e,t,n){let o=t;for(;o;){const t=xe(o,Oe(e,J.Commands.Actions,!1));if(t){const e=$e(t);if(e[n])return{actions:e[n],nearestOnly:!1}}const r=xe(o,Oe(e,J.Commands.Action,!1));if(r){const e=$e(r);if(e[n]||"click"!==n)return{actions:e[n]||[],nearestOnly:!0}}o=qe(e,o)}return{actions:[],nearestOnly:!1}}(n,e,t);return r.length?(r.forEach(r=>{const i=Me(r.actionParams||"",",").reduce((e,t)=>(e[_(t)]=!0,e),{}),a=De(n,e,i,s);if(!a.length){const t="page",o=`[${Oe(n,t)}]`,[r,s]=Re(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 Se(e=J.Commands.Prefix,t){if(!t)return{};const n=Oe(e,J.Commands.Globals,!1);let o={};return Te(t,`[${n}]`,t=>{o=f(o,Ee(e,t,J.Commands.Globals,!1))}),o}function $e(e){const t={};return Me(e).forEach(e=>{const[n,o]=Le(e),[r,s]=Ne(n);if(!r)return;let[i,a]=Ne(o||"");i=i||r,t[r]||(t[r]=[]),t[r].push({trigger:r,triggerParams:s,action:i,actionParams:a})}),t}function De(e,t,n,o=!1){const r=[];let s=t;for(n=0!==Object.keys(n||{}).length?n:void 0;s;){const i=Pe(e,s,t,n);if(i&&(r.push(i),o))break;s=qe(e,s)}return r}function Pe(e,t,n,o){const r=xe(t,Oe(e));if(!r||o&&!o[r])return null;const s=[t],i=`[${Oe(e,r)}],[${Oe(e,"")}]`,a=Oe(e,J.Commands.Link,!1);let c={};const l=[],[u,d]=Re(n||t,i,e,r);Ie(t,`[${a}]`,n=>{const[o,r]=Le(xe(n,a));"parent"===r&&Ie(t.ownerDocument.body,`[${a}="${o}:child"]`,t=>{s.push(t);const n=Pe(e,t);n&&l.push(n)})});const g=[];s.forEach(e=>{e.matches(i)&&g.push(e),Ie(e,i,e=>g.push(e))});let p={};return g.forEach(t=>{p=f(p,Ee(e,t,"")),c=f(c,Ee(e,t,r))}),c=f(f(p,c),u),s.forEach(t=>{Ie(t,`[${Oe(e)}]`,t=>{const n=Pe(e,t);n&&l.push(n)})}),{entity:r,data:c,context:d,nested:l}}function qe(e,t){const n=Oe(e,J.Commands.Link,!1);if(t.matches(`[${n}]`)){const[e,o]=Le(xe(t,n));if("child"===o){const o=t.ownerDocument;let r=null;return Te(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 Re(e,t,n,o){let r={};const s={};let i=e;const a=`[${Oe(n,J.Commands.Context,!1)}]`;let c=0;for(;i;)i.matches(t)&&(r=f(Ee(n,i,""),r),r=f(Ee(n,i,o),r)),i.matches(a)&&(Object.entries(Ee(n,i,J.Commands.Context,!1)).forEach(([e,t])=>{t&&!s[e]&&(s[e]=[t,c])}),++c),i=qe(n,i);return[r,s]}function Te(e,t,n){e.querySelectorAll(t).forEach(n)}function Ie(e,t,n){e.querySelectorAll(t).forEach(n);e instanceof(e.ownerDocument||e).defaultView.Element&&e.shadowRoot&&Ie(e.shadowRoot,t,n),e.querySelectorAll("*").forEach(e=>{e.shadowRoot&&Ie(e.shadowRoot,t,n)})}function Me(e,t=";"){if(!e)return[];const n=new RegExp(`(?:[^${t}']+|'[^']*')+`,"ig");return e.match(n)||[]}function Le(e){const[t,n]=e.split(/:(.+)/,2);return[_(t),_(n)]}function Ne(e){const[t,n]=e.split("(",2);return[t,n?n.slice(0,-1):""]}var _e=new WeakMap,We=new WeakMap,He=new WeakMap;function Ve(e){const t=Date.now();let n=We.get(e);if(!n||t-n.lastChecked>500){n={isVisible:je(e,e.ownerDocument.defaultView,e.ownerDocument),lastChecked:t},We.set(e,n)}return n.isVisible}function Ue(e){const t=(e.ownerDocument||e).defaultView;if(t&&t.IntersectionObserver)return T(()=>new t.IntersectionObserver(t=>{t.forEach(t=>{!function(e,t){var n,o;const r=t.target,s=He.get(e);if(!s)return;const i=s.timers.get(r);if(t.intersectionRatio>0){const o=Date.now();let a=_e.get(r);if(!a||o-a.lastChecked>1e3){const e=r.ownerDocument.defaultView;a={isLarge:r.offsetHeight>e.innerHeight,lastChecked:o},_e.set(r,a)}if(t.intersectionRatio>=.5||a.isLarge&&Ve(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(Ve(r)){const o=null==(t=s.elementConfigs)?void 0:t.get(r);(null==o?void 0:o.context)&&await at(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=He.get(e);if(!n)return;n.observer&&n.observer.unobserve(t);const o=n.timers.get(t);o&&(clearTimeout(o),n.timers.delete(t)),_e.delete(t),We.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 Be(e,t,n={multiple:!1}){var o;const r=e.settings.scope;if(!r)return;const s=He.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 Ge(e){if(!e)return;const t=He.get(e);t&&(t.observer&&t.observer.disconnect(),He.delete(e))}function ze(e,t,n,o,r,s,i){const{elb:a,settings:c}=e;if(h(t)&&t.startsWith("walker "))return a(t,n);if(b(t)){const e=t;if(!e.source&&c.scope){const t=c.scope.ownerDocument||c.scope,n=t.defaultView;e.source=Ke(n,t)}return!e.globals&&c.scope&&(e.globals=Se(c.prefix,c.scope)),a(e)}const[l]=String(b(t)?t.name:t).split(" ");let u,f=b(n)?n:{},d={},g=!1;if(p(n)&&(u=n,g=!0),p(r)?u=r:b(r)&&Object.keys(r).length&&(d=r),u){const e=De(c.prefix||"data-elb",u).find(e=>e.entity===l);e&&(g&&(f=e.data),e.context&&(d=e.context))}const m=c.scope?c.scope.ownerDocument||c.scope:void 0,v=null==m?void 0:m.defaultView;"page"===l&&v&&(f.id=f.id||v.location.pathname);const y=Se(c.prefix,c.scope);return a({name:String(t||""),data:f,context:d,globals:y,nested:s,custom:i,trigger:h(o)?o:"",source:v&&m?Ke(v,m):void 0})}function Ke(e,t){return{type:"browser",platform:"web",url:e.location.href,referrer:t.referrer}}var Fe,Ye=[],Je="click",Xe="hover",Qe="load",Ze="pulse",et="scroll",tt="submit",nt="impression",ot="visible",rt="wait";function st(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;if(!n)return;n.addEventListener("click",T(function(t){ut.call(this,e,t)})),n.addEventListener("submit",T(function(t){ft.call(this,e,t)}))}(e,t)}function it(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;Ye=[];const o=n;if(!o)return;Ge(o),function(e,t=1e3){He.has(e)||He.set(e,{observer:Ue(e),timers:new WeakMap,duration:t})}(o,1e3);const r=Oe(t.prefix,J.Commands.Action,!1),s=o.ownerDocument||o;o!==s&&ct(e,o,r,t);Ie(o,`[${r}]`,n=>{ct(e,n,r,t)}),Ye.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)||(at(t,e,et),!1)});Fe||(Fe=function(e,t=1e3){let n=null;return function(...o){if(null===n)return n=setTimeout(()=>{n=null},t),e(...o)}}(function(){Ye=r.call(t,Ye,e)}),t.addEventListener("scroll",Fe))}(e,o)}(e,t)}async function at(e,t,n){const o=Ae(t,n,e.settings.prefix);return Promise.all(o.map(t=>ze(e,{name:`${t.entity} ${t.action}`,...t,trigger:n})))}function ct(e,t,n,o){const r=xe(t,n);r&&Object.values($e(r)).forEach(n=>n.forEach(n=>{switch(n.trigger){case Xe:!function(e,t){t.addEventListener("mouseenter",T(function(t){const n=lt(t);n&&at(e,n,Xe)}))}(e,t);break;case Qe:!function(e,t){at(e,t,Qe)}(e,t);break;case Ze:!function(e,t,n=""){const o=t.ownerDocument;setInterval(()=>{o.hidden||at(e,t,Ze)},parseInt(n||"")||15e3)}(e,t,n.triggerParams);break;case et:!function(e,t=""){const n=parseInt(t||"")||50;if(n<0||n>100)return;Ye.push([e,n])}(t,n.triggerParams);break;case nt:Be(e,t);break;case ot:Be(e,t,{multiple:!0});break;case rt:!function(e,t,n=""){setTimeout(()=>at(e,t,rt),parseInt(n||"")||15e3)}(e,t,n.triggerParams)}}))}function lt(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 ut(e,t){const n=lt(t);n&&at(e,n,Je)}function ft(e,t){const n=lt(t);n&&at(e,n,tt)}function dt(e,t={}){const n=t.name||"elbLayer",o=t.window;if(!o)return;const r=o;r[n]||(r[n]=[]);const s=r[n],i=o.document;s.push=function(...n){if(mt(n[0])){const o=[...Array.from(n[0])],r=Array.prototype.push.apply(this,[o]);return pt(e,t.prefix,o,i),r}const o=Array.prototype.push.apply(this,n);return n.forEach(n=>{pt(e,t.prefix,n,i)}),o},Array.isArray(s)&&s.length>0&&function(e,t="data-elb",n,o){gt(e,t,n,!0,o),gt(e,t,n,!1,o),n.length=0}(e,t.prefix,s,i)}function gt(e,t,n,o,r){const s=[];let i=!0;n.forEach(e=>{const t=mt(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;if(Array.isArray(t)&&1===t.length&&!t[0])return;const r=t[0],a=!b(r)&&h(r)&&r.startsWith("walker ");if(b(r)){if("object"==typeof r&&0===Object.keys(r).length)return}else{const e=Array.from(t);if(!h(e[0])||""===e[0].trim())return;const n="walker run";i&&e[0]===n&&(i=!1)}(o&&a||!o&&!a)&&s.push(t)}),s.forEach(n=>{pt(e,t,n,r)})}function pt(e,t="data-elb",n,o){T(()=>{if(Array.isArray(n)){const[r,...s]=n;if(!r||h(r)&&""===r.trim())return;if(h(r)&&r.startsWith("walker "))return void e(r,s[0]);ze({elb:e,settings:{prefix:t,scope:o,pageview:!1,elb:"",elbLayer:!1}},r,...s)}else if(n&&"object"==typeof n){if(0===Object.keys(n).length)return;e(n)}},()=>{})()}function mt(e){return null!=e&&"object"==typeof e&&"[object Arguments]"===Object.prototype.toString.call(e)}var bt={},ht={};r(ht,{createTrigger:()=>Pt,env:()=>vt,step:()=>jt,trigger:()=>qt});var vt={};r(vt,{push:()=>xt});var yt=()=>{},wt=()=>()=>Promise.resolve({ok:!0}),kt={error:yt,warn:yt,info:yt,debug:yt,throw:e=>{throw"string"==typeof e?new Error(e):e},json:yt,scope:()=>kt},xt={get push(){return wt()},get command(){return wt()},get elb(){return wt()},get window(){return{addEventListener:yt,removeEventListener:yt,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:yt,removeEventListener:yt,querySelector:yt,querySelectorAll:()=>[],getElementById:yt,getElementsByClassName:()=>[],getElementsByTagName:()=>[],createElement:()=>({setAttribute:yt,getAttribute:yt,addEventListener:yt,removeEventListener:yt}),body:{appendChild:yt,removeChild:yt},documentElement:{scrollTop:0,scrollLeft:0},readyState:"complete",title:"Test Page",referrer:"",cookie:""}},logger:kt},jt={};r(jt,{clickEvent:()=>Et,contextAndGlobals:()=>Dt,dataAttributeTypes:()=>$t,impressionEvent:()=>At,nestedEntities:()=>St,pageView:()=>Ot,submitEvent:()=>Ct});var Ot={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/"}}]]},Et={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"}]]},Ct={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"}]]},At={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"}]]},St={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"}]]},$t={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"}]]},Dt={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"}]]},Pt=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 ke({...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 f=o.collector.sources[n];if(!f)return void console.warn(`Trigger: source "${n}" not found in collector`);const d={elb:o.elb,settings:f.config.settings};await at(d,u,t)}}},qt=(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 Rt(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(!g(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,o=e,f),data(e,t){const n=null!=o?o:"";return r[n]||(r[n]={}),h(e)?r[n][e]=t:Object.assign(r[n],e),f},action(e,t){if(h(e))if(g(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},actions(e,t){if(h(e))if(g(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},context:(e,t)=>(h(e)?a[e]=t:Object.assign(a,e),f),globals:(e,t)=>(h(e)?c[e]=t:Object.assign(c,e),f),link:(e,t)=>(h(e)?l[e]=t:Object.assign(l,e),f),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 f}}var Tt,It=async e=>{const{config:t,env:n}=e,{elb:o,command:r,window:s,document:i}=n,a=(null==t?void 0:t.settings)||{},c=s||(void 0!==globalThis.window?globalThis.window:void 0),l=i||(void 0!==globalThis.document?globalThis.document:void 0),u=function(e={},t){return{prefix:"data-elb",pageview:!0,elb:"elb",elbLayer:"elbLayer",scope:t||void 0,...e}}(a,l),f={settings:u},d={elb:o,settings:u},g=e=>{if(e.pageview){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]=Re(s,`[${Oe(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);ze(d,"page view",t,"load",n)}};c&&l&&(!1!==u.elbLayer&&o&&dt(o,{name:h(u.elbLayer)?u.elbLayer:"elbLayer",prefix:u.prefix,window:c}),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)}(st,d,u),h(u.elb)&&u.elb&&(c[u.elb]=(...e)=>{const[t,n,o,r,s,i]=e;return ze(d,t,n,o,r,s,i)}));return{type:"browser",config:f,push:(...e)=>{const[t,n,o,r,s,i]=e;return ze(d,t,n,o,r,s,i)},destroy:async()=>{l&&Ge(u.scope||l)},on:async e=>{switch(e){case"ready":default:break;case"run":l&&c&&(it(d,u),g(u))}}}},Mt=It;return Tt=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}),Tt)})();
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:()=>bt,createTagger:()=>Rt,default:()=>Mt,examples:()=>ht,getAllEvents:()=>Ce,getElbAttributeName:()=>Oe,getElbValues:()=>Ee,getEvents:()=>Ae,getGlobals:()=>Se,sourceBrowser:()=>It});var i=Object.defineProperty;((e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})})({},{Level:()=>c});var a,c=((a=c||{})[a.ERROR=0]="ERROR",a[a.WARN=1]="WARN",a[a.INFO=2]="INFO",a[a.DEBUG=3]="DEBUG",a);function l(e){return{_meta:{hops:0,path:[e]}}}var u={merge:!0,shallow:!0,extend:!0};function f(e,t={},n={}){n={...u,...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 d(e){return Array.isArray(e)}function g(e){return void 0!==e}function p(e){return!(!e||"object"!=typeof e)&&("body"in e||"tagName"in e)}function m(e){return"function"==typeof e}function b(e){return"object"==typeof e&&null!==e&&!d(e)&&"[object Object]"===Object.prototype.toString.call(e)}function h(e){return"string"==typeof e}function v(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]=v(e[o],t));return n}if("[object Array]"===n){const n=[];return t.set(e,n),e.forEach(e=>{n.push(v(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 y(e,t="",n){const o=t.split(".");let r=e;for(let e=0;e<o.length;e++){const t=o[e];if("*"===t&&d(r)){const t=o.slice(e+1).join("."),s=[];for(const e of r){const o=y(e,t,n);s.push(o)}return s}if(r=r instanceof Object?r[t]:void 0,void 0===r)break}return g(r)?r:n}function w(e,t,n){if(!b(e))return e;const o=v(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}var k={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 x(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function j(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 O(){let e="";for(let t=0;t<16;t++)e+=(16*Math.random()|0).toString(16);return e}function E(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 C(e,t=1e3,n=!1){let o,r=null,s=!1;return(...i)=>new Promise(a=>{const c=n&&!s;r&&clearTimeout(r),r=setTimeout(()=>{r=null,n&&!s||(o=e(...i),a(o))},t),c&&(s=!0,o=e(...i),a(o))})}function A(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function S(e,t){let n,o={};return e instanceof Error?(n=e.message,o.error=A(e)):n=e,void 0!==t&&(t instanceof Error?o.error=A(t):"object"==typeof t&&null!==t?(o={...o,...t},"error"in o&&o.error instanceof Error&&(o.error=A(o.error))):o.value=t),{message:n,context:o}}var $=(e,t,n,o)=>{const r=`${c[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 D(e={}){return P({level:void 0!==e.level?(t=e.level,"string"==typeof t?c[t]:t):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]});var t}function P(e){const{level:t,handler:n,jsonHandler:o,scope:r}=e,s=(e,o,s)=>{if(e<=t){const t=S(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=S(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=>P({level:t,handler:n,jsonHandler:o,scope:[...r,e]})}}function q(e){return function(e){return"boolean"==typeof e}(e)||h(e)||function(e){return"number"==typeof e&&!Number.isNaN(e)}(e)||!g(e)||d(e)&&e.every(q)||b(e)&&Object.values(e).every(q)}function R(e){return q(e)?e:void 0}function T(e,t,n){return function(...o){try{return e(...o)}catch(e){if(!t)return;return t(e)}finally{null==n||n()}}}function I(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())}}}async function M(e,t={},n={}){var o,r;if(!g(e))return;const s=b(e)&&e.consent||n.consent||(null==(o=n.collector)?void 0:o.consent),i=null!=(r=n.event)?r:b(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=d(t)?t:[t];for(const t of c){const n=await I(L)(e,t,{...a,mapping:t});if(g(n))return n}}async function L(e,t,n){return(d(t)?t:[t]).reduce(async(t,o)=>{const r=await t;if(r)return r;const s=h(o)?{key:o}:o;if(!Object.keys(s).length)return;const{condition:i,consent:a,fn:c,key:l,loop:u,map:f,set:p,validate:m,value:b}=s,v={...n,mapping:o};if(i&&!await I(i)(e,v))return;if(a&&!j(a,v.consent))return b;let w=g(b)?b:e;if(c&&(w=await I(c)(e,v)),l&&(w=y(e,l,b)),u){const[t,n]=u,o="this"===t?[e]:await M(e,t,v);d(o)&&(w=(await Promise.all(o.map(e=>M(e,n,v)))).filter(g))}else f?w=await Object.entries(f).reduce(async(t,[n,o])=>{const r=await t,s=await M(e,o,v);return g(s)&&(r[n]=s),r},Promise.resolve({})):p&&(w=await Promise.all(p.map(t=>L(e,t,v))));m&&!await I(m)(w,v)&&(w=void 0);const k=R(w);return g(k)?k:R(b)},Promise.resolve(void 0))}async function N(e,t,n){var o;t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,o])=>{const r=await M(e,o,{collector:n,event:e});e=w(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(d(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:b(e)&&e.consent||n.consent};return Boolean(t.condition(e,o))})};t[c]||(c="*");const f=t[c];return f&&(f[l]||(l="*"),i=u(f[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 M(e,o,{collector:n,event:e});e=w(e,t,r)}));let i=t.data&&await M(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 M(e,r.data,{collector:n,event:e});i=b(i)&&b(t)?f(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(k):t;for(const t of o){const o=k[t];if(!o)continue;const r=o(e);if(b(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=b(i)?f(t,i):null!=i?i:t)}return{event:e,data:i,mapping:r,mappingKey:s,ignore:!1,silent:a}}function _(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function W(e,t,n,o){return function(...r){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:e},...r)}catch(t){u(`Hook ${String(i)} failed, falling back to original function`,t),s=e(...r)}else s=e(...r);if(l)try{s=l({fn:e,result:s},...r)}catch(e){u(`Hook ${String(a)} failed, keeping original result`,e)}return s}}function H(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(H);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(H);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=y(e,t),o=s(n);return r?!o:o}}(e)}function V(e){return Array.isArray(e)&&e.length>0&&"object"==typeof e[0]&&null!==e[0]&&"match"in e[0]}function U(e){if(null!=e){if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;return V(e)?{type:"routes",routes:e.map(e=>({match:H(e.match),next:U(e.next)}))}:{type:"chain",value:e}}}}function B(e,t={}){if(e){if("static"===e.type)return e.value;if("chain"===e.type)return e.value;for(const n of e.routes)if(n.match(t))return B(n.next,t)}}function G(e,t){const n={ingest:null!=e?e:{}};return void 0!==t&&(n.event=t),n}function z(e){var t;return{full:null!=(t=e.full)&&t,storeId:e.store,rules:e.rules.map(e=>({match:H(e.match),key:e.key,ttl:e.ttl,update:e.update}))}}function K(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=y(n,e))?t:"")});if(s.every(e=>""===e))return null;const i=`${o}:${s.join(":")}`,a=t.get(i);return void 0!==a?{status:"HIT",key:i,value:a,rule:r}:{status:"MISS",key:i,rule:r}}function F(e,t,n,o){e.set(t,n,1e3*o)}async function Y(e,t,n,o){if(!t)return e;let r=e;for(const[e,s]of Object.entries(t))r=w(r,e,await M(n,s,{collector:o}));return r}var J={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 X(e,t){return e.storeId&&t.stores[e.storeId]?t.stores[e.storeId]:t.stores.__cache}function Q(e){var t;const n={};for(const[o,r]of Object.entries(e)){const e=null==(t=r.config)?void 0:t.next;e&&!V(e)?n[o]={next:e}:n[o]={}}return n}function Z(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 ee(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 te(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:l(n),config:t.config,env:re(t.config.env)};r.debug("init");const i=await W(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 ne(e,t,n,o,r,s){const i=t.type||"unknown",a=e.logger.scope(`transformer:${i}`),c={collector:e,logger:a,id:n,ingest:r,config:t.config,env:{...re(t.config.env),...s?{respond:s}:{}}};a.debug("push",{event:o.name});const l=await W(t.push,"TransformerPush",e.hooks,e.logger)(o,c);return a.debug("push done"),l}async function oe(e,t,n,o,r,s,i){var a,c,u,f,d,g;i&&(null==r?void 0:r._meta)&&(r._meta.chainPath=i);let p=o,m=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:m};if(r&&r._meta&&(r._meta.hops++,r._meta.path.push(o)),!await I(te)(e,s,o))return e.logger.error(`Transformer init failed: ${o}`),{event:null,respond:m};if(i&&void 0!==(null==(c=null==(a=s.config)?void 0:a.chainMocks)?void 0:c[i])){const t=s.config.chainMocks[i];e.logger.scope(`transformer:${s.type||"unknown"}`).debug("chainMock",{chain:i}),p=t;continue}if(void 0!==(null==(u=s.config)?void 0:u.mock)){e.logger.scope(`transformer:${s.type||"unknown"}`).debug("mock"),p=s.config.mock;continue}if(null==(f=s.config)?void 0:f.disabled)continue;const b=null==(d=s.config)?void 0:d.cache,h=b?z(b):void 0,v=h?X(h,e):void 0;let y;if(h&&v){const e=K(h,v,G(r,p),`t:${o}`);if("HIT"===(null==e?void 0:e.status)&&e.value){if(p=e.value,h.full)return{event:p,respond:m};continue}"MISS"===(null==e?void 0:e.status)&&(y={key:e.key,ttl:e.rule.ttl})}const w=s.config.before;if(w){const n=ee("string"==typeof w||Array.isArray(w)&&!V(w)?w:B(U(w),G(r,p))||void 0,Q(t));if(n.length>0){const o=await oe(e,t,n,p,r,m,i);if(null===o.event)return{event:null,respond:null!=(g=o.respond)?g:m};o.respond&&(m=o.respond),p=Array.isArray(o.event)?o.event[0]:o.event}}const k=await I(ne,t=>(e.logger.scope(`transformer:${s.type||"unknown"}`).error("Push failed",{error:t}),!1))(e,s,o,p,r,m);if(!1===k)return{event:null,respond:m};if(Array.isArray(k)){const s=n.slice(n.indexOf(o)+1),a=await Promise.all(k.map(async n=>{const o=n.event||p,a=r?{...r,_meta:{...r._meta,path:[...r._meta.path]}}:l("unknown");if(n.next){let r=n.next;if(V(n.next)){r=B(U(n.next),G(a,o))}if(r){const n=ee(r,Q(t));if(n.length>0)return oe(e,t,n,o,a,m,i)}return{event:o,respond:m}}return s.length>0?oe(e,t,s,o,a,m,i):{event:o,respond:m}}));let c=m;const u=[];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)?u.push(...t.event):u.push(t.event)}else u.push(e);return 0===u.length?{event:null,respond:c}:1===u.length?{event:u[0],respond:c}:{event:u,respond:c}}if(k&&"object"==typeof k){const{event:n,respond:o,next:s}=k;if(o&&(m=o),s){let o=s;if(V(s)){if(o=B(U(s),G(r,p)),!o){n&&(p=n);continue}}const a=ee(o,Q(t));return a.length>0?oe(e,t,a,n||p,r,m,i):(e.logger.warn(`Branch target not found: ${JSON.stringify(s)}`),{event:null,respond:m})}n&&(p=n)}if(y&&v&&F(v,y.key,p,y.ttl),(!k||"object"==typeof k&&!k.next)&&s.config.next&&V(s.config.next)){const n=B(U(s.config.next),G(r,p));if(n){const o=ee(n,Q(t));if(o.length>0)return oe(e,t,o,p,r,m,i)}return{event:p,respond:m}}}return{event:p,respond:m}}function re(e){return e&&b(e)?e:{}}async function se(e,t,n){var o;const{code:r,config:s={},env:i={},primary:a,next:c,before:u,cache:f}=n;let d,g=l(t);const p=f?z({...f,full:null==(o=f.full)||o}):void 0,m=U(c),b=Array.isArray(c)&&V(c)||!m?void 0:ee(B(m),Q(e.transformers)),h=U(u),v=Array.isArray(u)&&V(u)||!h?void 0:ee(B(h),Q(e.transformers)),y=e.logger.scope("source").scope(t),w={push:async(n,o={})=>{let r,i=n;const a=null!=v?v:h?ee(B(h,G(g)),Q(e.transformers)):[];if(a.length>0&&e.transformers&&Object.keys(e.transformers).length>0){const n=await oe(e,e.transformers,a,i,g,d,`source.${t}.before`);if(null===n.event)return{ok:!0};n.respond&&(d=n.respond),i=Array.isArray(n.event)?n.event[0]:n.event}if(p){const n=X(p,e);if(n){const o=G(g),s=K(p,n,o,`s:${t}`);if(s){if("HIT"===s.status&&void 0!==s.value&&p.full){let t=s.value;return s.rule.update&&(t=await Y(t,s.rule.update,{...o,cache:{status:"HIT"}},e)),null==d||d(t),{ok:!0}}if("MISS"===s.status&&p.full&&d){const t=d,i=s.rule.update,a={...o,cache:{status:"MISS"}},c=s.key,l=s.rule.ttl;d=o=>{F(n,c,o,l),i?r=(async()=>{const n=await Y(o,i,a,e);t(n)})():t(o)}}"MISS"!==s.status||p.full||F(n,s.key,!0,s.rule.ttl)}}}const c=null!=b?b:m?ee(B(m,G(g)),Q(e.transformers)):[],l=await e.push(i,{...o,id:t,ingest:g,respond:d,mapping:s,preChain:c});return r&&await r,l},command:e.command,sources:e.sources,elb:e.sources.elb.push,logger:y,...i},k={collector:e,logger:y,id:t,config:s,env:w,setIngest:async n=>{if(!s.ingest)return void(g=l(t));const o=await M(n,s.ingest,{collector:e}),r=l(t);g={...r,...o,_meta:r._meta}},setRespond:e=>{d=e}},x=await I(r)(k);if(!x)return;const j=x.type||"unknown",O=e.logger.scope(j).scope(t);return w.logger=O,a&&(x.config={...x.config,primary:a}),x}function ie(e,t){return{collector:e,logger:e.logger.scope("on").scope(String(t))}}function ae(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:be(t.env,t.config.env)};T(t.on)(o,a)}function ce(e,t,n,o){let r;switch(t){case J.Commands.Consent:r=o||e.consent;break;case J.Commands.Session:r=e.session;break;case J.Commands.User:r=o||e.user;break;case J.Commands.Custom:r=o||e.custom;break;case J.Commands.Globals:r=o||e.globals;break;case J.Commands.Config:r=o||e.config;break;case J.Commands.Ready:case J.Commands.Run:default:r=void 0}if(n.length)switch(t){case J.Commands.Consent:!function(e,t,n){const o=n||e.consent,r=ie(e,J.Commands.Consent);t.forEach(e=>{Object.keys(o).filter(t=>t in e).forEach(t=>{T(e[t])(o,r)})})}(e,n,o);break;case J.Commands.Ready:!function(e,t){if(!e.allowed)return;const n=ie(e,J.Commands.Ready);t.forEach(e=>{T(e)(void 0,n)})}(e,n);break;case J.Commands.Run:!function(e,t){if(!e.allowed)return;const n=ie(e,J.Commands.Run);t.forEach(e=>{T(e)(void 0,n)})}(e,n);break;case J.Commands.Session:!function(e,t){if(!e.session)return;const n=ie(e,J.Commands.Session);t.forEach(t=>{T(t)(e.session,n)})}(e,n);break;default:{const o=ie(e,t);n.forEach(e=>{"function"==typeof e&&T(e)(r,o)});break}}}function le(e,t,n,o){if(!e)return[];if(t){const e=B(t,G(o));return e?ee(e,Q(n)):[]}return ee(e,Q(n))}async function ue(e,t,n){const{code:o,config:r={},env:s={},before:i,next:a,cache:c}=t;if(!m(o.push))return pe({ok:!1,failed:{invalid:{type:"invalid",error:"Destination code must have a push method"}}});const l=n||r||{init:!1};let u=i?{...l,before:i}:{...l};a&&(u={...u,next:a}),c&&(u={...u,cache:c});const f={...o,config:u,env:be(o.env,s)};let d=f.config.id;if(!d)do{d=E(5,"abcdefghijklmnopqrstuvwxyz")}while(e.destinations[d]);return e.destinations[d]=f,!1!==f.config.queue&&(f.queuePush=[...e.queue]),fe(e,void 0,{},{[d]:f})}async function fe(e,t,n={},o){const{allowed:r,consent:s,globals:i,user:a}=e;if(!r)return pe({ok:!1});t&&(e.queue.push(t),e.status.in++),o||(o=e.destinations);const c=await Promise.all(Object.entries(o||{}).map(async([o,r])=>{var c,u,d;if(r.config.disabled)return{id:o,destination:r,skipped:!0};let g=(r.queuePush||[]).map(e=>({...e,consent:s}));r.queuePush=[],t&&g.push(v(t));const p=n.ingest?{...n.ingest,_meta:{...n.ingest._meta,path:[...n.ingest._meta.path]}}:l("unknown");if(!g.length&&!(null==(c=r.queueOn)?void 0:c.length))return{id:o,destination:r,skipped:!0};if(!g.length&&(null==(u=r.queueOn)?void 0:u.length)){const t=await I(de)(e,r,o);return{id:o,destination:r,skipped:!t}}const m=[],b=g.filter(e=>{const t=j(r.config.consent,s,e.consent);return!t||(e.consent=t,m.push(e),!1)});if(r.queuePush.push(...b),!m.length)return{id:o,destination:r,queue:g};if(!await I(de)(e,r,o))return{id:o,destination:r,queue:g};let h,y;r.dlq||(r.dlq=[]);const w=r.config.before,k=le(w,w&&V(w)?U(w):void 0,e.transformers,p),x=r.config.next,O=x&&V(x)?U(x):void 0,E=null==(d=r.config)?void 0:d.cache,C=E?z(E):void 0,A=C?X(C,e):void 0;let S=0;return await Promise.all(m.map(async t=>{let s;if(t.globals=f(i,t.globals),t.user=f(a,t.user),(null==C?void 0:C.full)&&A){const e=G(p,t),n=K(C,A,e,`d:${o}`);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 c=t,l=n.respond;if(k.length>0&&e.transformers&&Object.keys(e.transformers).length>0){const r=await oe(e,e.transformers,k,t,p,n.respond,`destination.${o}.before`);if(null===r.event)return t;r.respond&&(l=r.respond),c=Array.isArray(r.event)?r.event[0]:r.event}if(C&&!C.full&&A){const e=G(p,c),n=K(C,A,e,`d:${o}`);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})}const u=Date.now();let d=!1;const g=await I(ge,t=>{const n=r.type||"unknown";e.logger.scope(n).error("Push failed",{error:t,event:c.name}),h=t,d=!0,r.dlq.push([c,t])})(e,r,o,c,p,l);if(S+=Date.now()-u,s&&A&&void 0===r.config.mock&&F(A,s.key,null==g||g,s.ttl),void 0!==g&&(y=g),!d&&x){void 0!==g&&(p._response=g);const t=le(x,O,e.transformers,p);if(t.length>0&&e.transformers&&Object.keys(e.transformers).length>0){const n=await oe(e,e.transformers,t,c,p,l,`destination.${o}.next`);n.respond&&(l=n.respond)}}return t})),{id:o,destination:r,error:h,response:y,totalDuration:S}})),u={},d={},g={};for(const t of c){if(t.skipped)continue;const n={type:t.destination.type||"unknown",data:t.response};e.status.destinations[t.id]||(e.status.destinations[t.id]={count:0,failed:0,duration:0});const o=e.status.destinations[t.id],r=Date.now();t.error?(n.error=t.error,g[t.id]=n,o.failed++,o.lastAt=r,o.duration+=t.totalDuration||0,e.status.failed++):t.queue&&t.queue.length?d[t.id]=n:(u[t.id]=n,o.count++,o.lastAt=r,o.duration+=t.totalDuration||0,e.status.out++)}return pe({event:t,...Object.keys(u).length&&{done:u},...Object.keys(d).length&&{queued:d},...Object.keys(g).length&&{failed:g}})}async function de(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:be(t.env,t.config.env)};s.debug("init");const a=await W(t.init,"DestinationInit",e.hooks,e.logger)(i);if(!1===a)return a;if(t.config={...a||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)ae(e,t,n,r,s)}s.debug("init done")}return!0}async function ge(e,t,n,o,r,s){const{config:i}=t,a=await N(o,i,e);if(a.ignore)return!1;const c=t.type||"unknown",l=e.logger.scope(c),u={collector:e,logger:l,id:n,config:i,data:a.data,rule:a.mapping,ingest:r,env:{...be(t.env,i.env),...s?{respond:s}:{}}};if(void 0!==i.mock)return l.debug("mock",{event:a.event.name}),i.mock;const f=a.mapping,d=a.mappingKey||"* *";if(!(null==f?void 0:f.batch)||!t.pushBatch||void 0!==i.mock){l.debug("push",{event:a.event.name});const n=await W(t.push,"DestinationPush",e.hooks,e.logger)(a.event,u);return l.debug("push done"),n}{if(t.batches=t.batches||{},!t.batches[d]){const o={key:d,events:[],data:[]};t.batches[d]={batched:o,batchFn:C(()=>{const o=t.batches[d].batched,a={collector:e,logger:l,id:n,config:i,data:void 0,rule:f,ingest:r,env:{...be(t.env,i.env),...s?{respond:s}:{}}};l.debug("push batch",{events:o.events.length}),W(t.pushBatch,"DestinationPushBatch",e.hooks,e.logger)(o,a),l.debug("push batch done"),o.events=[],o.data=[]},f.batch)}}const o=t.batches[d];o.batched.events.push(a.event),g(a.data)&&o.batched.data.push(a.data),o.batchFn()}return!0}function pe(e){return{ok:!(null==e?void 0:e.failed),...e}}function me(e){const{code:t,config:n={},env:o={},cache:r}=e,{config:s}=Z(e,"before"),{config:i}=Z({...e,config:s},"next"),a={...t.config,...n,...i};r&&(a.cache=r);const c=be(t.env,o);return{...t,config:a,env:c}}function be(e,t){return e||t?t?e&&b(e)&&b(t)?{...e,...t}:t:e:{}}async function he(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 ve(e,t,n,o){let r,s,i=!1;switch(t){case J.Commands.Config:b(n)&&(f(e.config,n,{shallow:!1}),s=n,i=!0);break;case J.Commands.Consent:if(b(n)){const{update:t}=function(e,t){const n={};return Object.entries(t).forEach(([e,t])=>{n[e]=!!t}),e.consent=f(e.consent,n),{update:n}}(e,n);s=t,i=!0}break;case J.Commands.Custom:b(n)&&(e.custom=f(e.custom,n),s=n,i=!0);break;case J.Commands.Destination:b(n)&&("code"in n&&b(n.code)?r=await ue(e,n,o):m(n.push)&&(r=await ue(e,{code:n},o)));break;case J.Commands.Globals:b(n)&&(e.globals=f(e.globals,n),s=n,i=!0);break;case J.Commands.On:h(n)&&await async function(e,t,n){const o=e.on,r=o[t]||[],s=d(n)?n:[n];s.forEach(e=>{r.push(e)}),o[t]=r,ce(e,t,s)}(e,n,o);break;case J.Commands.Ready:i=!0;break;case J.Commands.Run:r=await async function(e,t){return e.allowed=!0,e.timing=Date.now(),t&&(t.consent&&(e.consent=f(e.consent,t.consent)),t.user&&(e.user=f(e.user,t.user)),t.globals&&(e.globals=f(e.config.globalsStatic||{},t.globals)),t.custom&&(e.custom=f(e.custom,t.custom))),Object.values(e.destinations).forEach(e=>{e.queuePush=[]}),e.queue=[],e.round++,await fe(e)}(e,n),i=!0;break;case J.Commands.Session:i=!0;break;case J.Commands.Shutdown:await async function(e){const t=e.logger;await he(e.sources,"source",t),await he(e.destinations,"destination",t),await he(e.transformers,"transformer",t),await he(e.stores,"store",t)}(e);break;case J.Commands.User:b(n)&&(f(e.user,n,{shallow:!1}),s=n,i=!0)}return i&&(await async function(e,t,n,o){let r,s=n||[];switch(n||(s=e.on[t]||[]),t){case J.Commands.Consent:r=o||e.consent;break;case J.Commands.Session:r=e.session;break;case J.Commands.User:r=o||e.user;break;case J.Commands.Custom:r=o||e.custom;break;case J.Commands.Globals:r=o||e.globals;break;case J.Commands.Config:r=o||e.config;break;case J.Commands.Ready:case J.Commands.Run:default:r=void 0}let i=!1;for(const n of Object.values(e.sources))n.on&&!1===await I(n.on)(t,r)&&(i=!0);return 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:r});ae(e,o,n,t,r)}}),(Object.keys(e.pending.sources).length>0||Object.keys(e.pending.destinations).length>0)&&await async function(e,t){var n,o;for(const[o,r]of Object.entries(e.pending.sources)){if(!e.pending.sources[o]||e.sources[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.sources[o];const a=await se(e,o,r);a&&(e.sources[o]=a)}for(const[n,r]of Object.entries(e.pending.destinations)){if(!e.pending.destinations[n]||e.destinations[n])continue;const s=null==(o=r.config)?void 0:o.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[n];const a=me(r);!1!==a.config.queue&&(a.queuePush=[...e.queue]),e.destinations[n]=a}}(e,t),ce(e,t,s,o),!i}(e,t,void 0,s),r=await fe(e)),r||pe({ok:!0})}function ye(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:f=[],consent:d=e.consent,id:g=O(),trigger:p="",entity:m=n,action:b=o,timing:h=0,source:v={type:"collector",schema:"4"}}=t;return{name:s,data:i,context:a,globals:c,custom:l,user:u,nested:f,consent:d,id:g,trigger:p,entity:m,action:b,timestamp:r,timing:h,source:v}}async function we(e){var t,n;const o=f({globalsStatic:{},sessionStatic:{},run:!0},e,{merge:!1,extend:!1}),r=D({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||{},logger:r,on:{},queue:[],round:0,session:void 0,status:{startedAt:Date.now(),in:0,out:0,failed:0,sources:{},destinations:{}},timing:Date.now(),user:e.user||{},sources:{},pending:{sources:{},destinations:{}},push:void 0,command:void 0};var a,c;i.push=function(e,t){return W(async(n,o={})=>await I(async()=>{var r;const s=Date.now(),{id:i,ingest:a,respond:c,mapping:u,preChain:f,include:d,exclude:g}=o;let p=c,m=n;const b=d||g?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,g):void 0,h=null!=a?a:l(i||"unknown");if(u){const t=await N(m,u,e);if(t.ignore)return pe({ok:!0});if(u.consent&&!j(u.consent,e.consent,t.event.consent))return pe({ok:!0});m=t.event}if((null==f?void 0:f.length)&&e.transformers&&Object.keys(e.transformers).length>0){const n=await oe(e,e.transformers,f,m,h,p,i?`source.${i}.next`:void 0);if(null===n.event)return pe({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=ye(e,o);return fe(e,r,{id:i,ingest:h,respond:p},b)}));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:pe({ok:!0})}m=n.event}const v=t(m),y=ye(e,v),w=await fe(e,y,{id:i,ingest:h,respond:p},b);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},()=>pe({ok:!1}))(),"Push",e.hooks,e.logger)}(i,e=>({timing:Math.round((Date.now()-i.timing)/10)/100,source:{type:"collector",schema:"4",version:"4.0.1-next-1778068549946"},...e})),i.command=(c=ve,W(async(e,t,n)=>await I(async()=>await c(a,e,t,n),()=>pe({ok:!1}))(),"Command",(a=i).hooks,a.logger));const u=e.stores||{};if(i.stores=await async function(e,t={}){const n={};for(const[o,r]of Object.entries(t)){const{code:t,config:s={},env:i={}}=r,a=e.logger.scope("store").scope(o),c={collector:e,logger:a,id:o,config:s,env:i},l=await t(c),u=l.get,f=l.set,d=l.delete;l.get=W(u,"StoreGet",e.hooks,e.logger),l.set=W(f,"StoreSet",e.hooks,e.logger),l.delete=W(d,"StoreDelete",e.hooks,e.logger),n[o]=l}return n}(i,u),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)}}}(u,i.stores,e),!i.stores.__cache){const e=new Map;i.stores.__cache={type:"memory",config:{},get:t=>{const n=e.get(t);if(n){if(!(n.expires&&Date.now()>n.expires))return n.value;e.delete(t)}},set:(t,n,o)=>{e.set(t,{value:n,expires:o?Date.now()+o:void 0})},delete:t=>{e.delete(t)}}}return 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]=me(i);return r}(i,e.destinations||{}),i.transformers=await async function(e,t={}){const n={};for(const[o,r]of Object.entries(t)){const{code:t,env:s={}}=r,{config:i}=Z(r,"before"),{config:a}=Z({...r,config:i},"next"),c=Object.keys(s).length>0?{...a,env:s}:a,{cache:u}=r,f=u?{...c,cache:u}:c,d=e.logger.scope("transformer").scope(o),g={collector:e,logger:d,id:o,ingest:l(o),config:f,env:s},p=await t(g);n[o]=p}return n}(i,e.transformers||{}),i}async function ke(e){e=e||{};const t=await we(e),n=(o=t,{type:"elb",config:{},push:async(e,t,n,r,s,i)=>{if("string"==typeof e&&e.startsWith("walker ")){const r=e.replace("walker ","");return o.command(r,t,n)}let a;if("string"==typeof e)a={name:e},t&&"object"==typeof t&&!Array.isArray(t)&&(a.data=t);else{if(!e||"object"!=typeof e)return pe({ok:!1});a=e,t&&"object"==typeof t&&!Array.isArray(t)&&(a.data={...a.data||{},...t})}return r&&"object"==typeof r&&(a.context=r),s&&Array.isArray(s)&&(a.nested=s),i&&"object"==typeof i&&(a.custom=i),o.push(a)}});var o;t.sources.elb=n;const r=await async function(e,t={}){const n={};for(const[o,r]of Object.entries(t)){const{config:t={}}=r;if(t.require&&t.require.length>0){e.pending.sources[o]=r;continue}const s=await se(e,o,r);s&&(n[o]=s)}return n}(t,e.sources||{});Object.assign(t.sources,r);const{consent:s,user:i,globals:a,custom:c}=e;s&&await t.command("consent",s),i&&await t.command("user",i),a&&Object.assign(t.globals,a),c&&Object.assign(t.custom,c),t.config.run&&await t.command("run");let l=n.push;const u=Object.values(t.sources).filter(e=>"elb"!==e.type),f=u.find(e=>e.config.primary);return f?l=f.push:u.length>0&&(l=u[0].push),{collector:t,elb:l}}function xe(e,t){return(e.getAttribute(t)||"").trim()}function je(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 Oe(e,t,n=!0){return e+(t=null!=t?(n?"-":"")+t:"")}function Ee(e,t,n,o=!0){return Me(xe(t,Oe(e,n,o))||"").reduce((e,n)=>{let[o,r]=Le(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),d(e[o])||(e[o]=[]),e[o].push(x(r))):e[o]=x(r),e},{})}function Ce(e,t=J.Commands.Prefix){var n;const o=e;if(!o)return[];let r=[];const s=J.Commands.Action,i=`[${Oe(t,s,!1)}]`,a=e=>{Object.keys(Ee(t,e,s,!1)).forEach(n=>{r=r.concat(Ae(e,n,t))})};return o!==(o.ownerDocument||o)&&(null==(n=o.matches)?void 0:n.call(o,i))&&a(o),Ie(o,i,a),r}function Ae(e,t,n=J.Commands.Prefix){const o=[],{actions:r,nearestOnly:s}=function(e,t,n){let o=t;for(;o;){const t=xe(o,Oe(e,J.Commands.Actions,!1));if(t){const e=$e(t);if(e[n])return{actions:e[n],nearestOnly:!1}}const r=xe(o,Oe(e,J.Commands.Action,!1));if(r){const e=$e(r);if(e[n]||"click"!==n)return{actions:e[n]||[],nearestOnly:!0}}o=qe(e,o)}return{actions:[],nearestOnly:!1}}(n,e,t);return r.length?(r.forEach(r=>{const i=Me(r.actionParams||"",",").reduce((e,t)=>(e[_(t)]=!0,e),{}),a=De(n,e,i,s);if(!a.length){const t="page",o=`[${Oe(n,t)}]`,[r,s]=Re(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 Se(e=J.Commands.Prefix,t){if(!t)return{};const n=Oe(e,J.Commands.Globals,!1);let o={};return Te(t,`[${n}]`,t=>{o=f(o,Ee(e,t,J.Commands.Globals,!1))}),o}function $e(e){const t={};return Me(e).forEach(e=>{const[n,o]=Le(e),[r,s]=Ne(n);if(!r)return;let[i,a]=Ne(o||"");i=i||r,t[r]||(t[r]=[]),t[r].push({trigger:r,triggerParams:s,action:i,actionParams:a})}),t}function De(e,t,n,o=!1){const r=[];let s=t;for(n=0!==Object.keys(n||{}).length?n:void 0;s;){const i=Pe(e,s,t,n);if(i&&(r.push(i),o))break;s=qe(e,s)}return r}function Pe(e,t,n,o){const r=xe(t,Oe(e));if(!r||o&&!o[r])return null;const s=[t],i=`[${Oe(e,r)}],[${Oe(e,"")}]`,a=Oe(e,J.Commands.Link,!1);let c={};const l=[],[u,d]=Re(n||t,i,e,r);Ie(t,`[${a}]`,n=>{const[o,r]=Le(xe(n,a));"parent"===r&&Ie(t.ownerDocument.body,`[${a}="${o}:child"]`,t=>{s.push(t);const n=Pe(e,t);n&&l.push(n)})});const g=[];s.forEach(e=>{e.matches(i)&&g.push(e),Ie(e,i,e=>g.push(e))});let p={};return g.forEach(t=>{p=f(p,Ee(e,t,"")),c=f(c,Ee(e,t,r))}),c=f(f(p,c),u),s.forEach(t=>{Ie(t,`[${Oe(e)}]`,t=>{const n=Pe(e,t);n&&l.push(n)})}),{entity:r,data:c,context:d,nested:l}}function qe(e,t){const n=Oe(e,J.Commands.Link,!1);if(t.matches(`[${n}]`)){const[e,o]=Le(xe(t,n));if("child"===o){const o=t.ownerDocument;let r=null;return Te(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 Re(e,t,n,o){let r={};const s={};let i=e;const a=`[${Oe(n,J.Commands.Context,!1)}]`;let c=0;for(;i;)i.matches(t)&&(r=f(Ee(n,i,""),r),r=f(Ee(n,i,o),r)),i.matches(a)&&(Object.entries(Ee(n,i,J.Commands.Context,!1)).forEach(([e,t])=>{t&&!s[e]&&(s[e]=[t,c])}),++c),i=qe(n,i);return[r,s]}function Te(e,t,n){e.querySelectorAll(t).forEach(n)}function Ie(e,t,n){e.querySelectorAll(t).forEach(n);e instanceof(e.ownerDocument||e).defaultView.Element&&e.shadowRoot&&Ie(e.shadowRoot,t,n),e.querySelectorAll("*").forEach(e=>{e.shadowRoot&&Ie(e.shadowRoot,t,n)})}function Me(e,t=";"){if(!e)return[];const n=new RegExp(`(?:[^${t}']+|'[^']*')+`,"ig");return e.match(n)||[]}function Le(e){const[t,n]=e.split(/:(.+)/,2);return[_(t),_(n)]}function Ne(e){const[t,n]=e.split("(",2);return[t,n?n.slice(0,-1):""]}var _e=new WeakMap,We=new WeakMap,He=new WeakMap;function Ve(e){const t=Date.now();let n=We.get(e);if(!n||t-n.lastChecked>500){n={isVisible:je(e,e.ownerDocument.defaultView,e.ownerDocument),lastChecked:t},We.set(e,n)}return n.isVisible}function Ue(e){const t=(e.ownerDocument||e).defaultView;if(t&&t.IntersectionObserver)return T(()=>new t.IntersectionObserver(t=>{t.forEach(t=>{!function(e,t){var n,o;const r=t.target,s=He.get(e);if(!s)return;const i=s.timers.get(r);if(t.intersectionRatio>0){const o=Date.now();let a=_e.get(r);if(!a||o-a.lastChecked>1e3){const e=r.ownerDocument.defaultView;a={isLarge:r.offsetHeight>e.innerHeight,lastChecked:o},_e.set(r,a)}if(t.intersectionRatio>=.5||a.isLarge&&Ve(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(Ve(r)){const o=null==(t=s.elementConfigs)?void 0:t.get(r);(null==o?void 0:o.context)&&await at(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=He.get(e);if(!n)return;n.observer&&n.observer.unobserve(t);const o=n.timers.get(t);o&&(clearTimeout(o),n.timers.delete(t)),_e.delete(t),We.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 Be(e,t,n={multiple:!1}){var o;const r=e.settings.scope;if(!r)return;const s=He.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 Ge(e){if(!e)return;const t=He.get(e);t&&(t.observer&&t.observer.disconnect(),He.delete(e))}function ze(e,t,n,o,r,s,i){const{elb:a,settings:c}=e;if(h(t)&&t.startsWith("walker "))return a(t,n);if(b(t)){const e=t;if(!e.source&&c.scope){const t=c.scope.ownerDocument||c.scope,n=t.defaultView;e.source=Ke(n,t)}return!e.globals&&c.scope&&(e.globals=Se(c.prefix,c.scope)),a(e)}const[l]=String(b(t)?t.name:t).split(" ");let u,f=b(n)?n:{},d={},g=!1;if(p(n)&&(u=n,g=!0),p(r)?u=r:b(r)&&Object.keys(r).length&&(d=r),u){const e=De(c.prefix||"data-elb",u).find(e=>e.entity===l);e&&(g&&(f=e.data),e.context&&(d=e.context))}const m=c.scope?c.scope.ownerDocument||c.scope:void 0,v=null==m?void 0:m.defaultView;"page"===l&&v&&(f.id=f.id||v.location.pathname);const y=Se(c.prefix,c.scope);return a({name:String(t||""),data:f,context:d,globals:y,nested:s,custom:i,trigger:h(o)?o:"",source:v&&m?Ke(v,m):void 0})}function Ke(e,t){return{type:"browser",platform:"web",url:e.location.href,referrer:t.referrer}}var Fe,Ye=[],Je="click",Xe="hover",Qe="load",Ze="pulse",et="scroll",tt="submit",nt="impression",ot="visible",rt="wait";function st(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;if(!n)return;n.addEventListener("click",T(function(t){ut.call(this,e,t)})),n.addEventListener("submit",T(function(t){ft.call(this,e,t)}))}(e,t)}function it(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;Ye=[];const o=n;if(!o)return;Ge(o),function(e,t=1e3){He.has(e)||He.set(e,{observer:Ue(e),timers:new WeakMap,duration:t})}(o,1e3);const r=Oe(t.prefix,J.Commands.Action,!1),s=o.ownerDocument||o;o!==s&&ct(e,o,r,t);Ie(o,`[${r}]`,n=>{ct(e,n,r,t)}),Ye.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)||(at(t,e,et),!1)});Fe||(Fe=function(e,t=1e3){let n=null;return function(...o){if(null===n)return n=setTimeout(()=>{n=null},t),e(...o)}}(function(){Ye=r.call(t,Ye,e)}),t.addEventListener("scroll",Fe))}(e,o)}(e,t)}async function at(e,t,n){const o=Ae(t,n,e.settings.prefix);return Promise.all(o.map(t=>ze(e,{name:`${t.entity} ${t.action}`,...t,trigger:n})))}function ct(e,t,n,o){const r=xe(t,n);r&&Object.values($e(r)).forEach(n=>n.forEach(n=>{switch(n.trigger){case Xe:!function(e,t){t.addEventListener("mouseenter",T(function(t){const n=lt(t);n&&at(e,n,Xe)}))}(e,t);break;case Qe:!function(e,t){at(e,t,Qe)}(e,t);break;case Ze:!function(e,t,n=""){const o=t.ownerDocument;setInterval(()=>{o.hidden||at(e,t,Ze)},parseInt(n||"")||15e3)}(e,t,n.triggerParams);break;case et:!function(e,t=""){const n=parseInt(t||"")||50;if(n<0||n>100)return;Ye.push([e,n])}(t,n.triggerParams);break;case nt:Be(e,t);break;case ot:Be(e,t,{multiple:!0});break;case rt:!function(e,t,n=""){setTimeout(()=>at(e,t,rt),parseInt(n||"")||15e3)}(e,t,n.triggerParams)}}))}function lt(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 ut(e,t){const n=lt(t);n&&at(e,n,Je)}function ft(e,t){const n=lt(t);n&&at(e,n,tt)}function dt(e,t={}){const n=t.name||"elbLayer",o=t.window;if(!o)return;const r=o;r[n]||(r[n]=[]);const s=r[n],i=o.document;s.push=function(...n){if(mt(n[0])){const o=[...Array.from(n[0])],r=Array.prototype.push.apply(this,[o]);return pt(e,t.prefix,o,i),r}const o=Array.prototype.push.apply(this,n);return n.forEach(n=>{pt(e,t.prefix,n,i)}),o},Array.isArray(s)&&s.length>0&&function(e,t="data-elb",n,o){gt(e,t,n,!0,o),gt(e,t,n,!1,o),n.length=0}(e,t.prefix,s,i)}function gt(e,t,n,o,r){const s=[];let i=!0;n.forEach(e=>{const t=mt(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;if(Array.isArray(t)&&1===t.length&&!t[0])return;const r=t[0],a=!b(r)&&h(r)&&r.startsWith("walker ");if(b(r)){if("object"==typeof r&&0===Object.keys(r).length)return}else{const e=Array.from(t);if(!h(e[0])||""===e[0].trim())return;const n="walker run";i&&e[0]===n&&(i=!1)}(o&&a||!o&&!a)&&s.push(t)}),s.forEach(n=>{pt(e,t,n,r)})}function pt(e,t="data-elb",n,o){T(()=>{if(Array.isArray(n)){const[r,...s]=n;if(!r||h(r)&&""===r.trim())return;if(h(r)&&r.startsWith("walker "))return void e(r,s[0]);ze({elb:e,settings:{prefix:t,scope:o,pageview:!1,elb:"",elbLayer:!1}},r,...s)}else if(n&&"object"==typeof n){if(0===Object.keys(n).length)return;e(n)}},()=>{})()}function mt(e){return null!=e&&"object"==typeof e&&"[object Arguments]"===Object.prototype.toString.call(e)}var bt={},ht={};r(ht,{createTrigger:()=>Pt,env:()=>vt,step:()=>jt,trigger:()=>qt});var vt={};r(vt,{push:()=>xt});var yt=()=>{},wt=()=>()=>Promise.resolve({ok:!0}),kt={error:yt,warn:yt,info:yt,debug:yt,throw:e=>{throw"string"==typeof e?new Error(e):e},json:yt,scope:()=>kt},xt={get push(){return wt()},get command(){return wt()},get elb(){return wt()},get window(){return{addEventListener:yt,removeEventListener:yt,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:yt,removeEventListener:yt,querySelector:yt,querySelectorAll:()=>[],getElementById:yt,getElementsByClassName:()=>[],getElementsByTagName:()=>[],createElement:()=>({setAttribute:yt,getAttribute:yt,addEventListener:yt,removeEventListener:yt}),body:{appendChild:yt,removeChild:yt},documentElement:{scrollTop:0,scrollLeft:0},readyState:"complete",title:"Test Page",referrer:"",cookie:""}},logger:kt},jt={};r(jt,{clickEvent:()=>Et,contextAndGlobals:()=>Dt,dataAttributeTypes:()=>$t,impressionEvent:()=>At,nestedEntities:()=>St,pageView:()=>Ot,submitEvent:()=>Ct});var Ot={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/"}}]]},Et={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"}]]},Ct={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"}]]},At={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"}]]},St={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"}]]},$t={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"}]]},Dt={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"}]]},Pt=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 ke({...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 f=o.collector.sources[n];if(!f)return void console.warn(`Trigger: source "${n}" not found in collector`);const d={elb:o.elb,settings:f.config.settings};await at(d,u,t)}}},qt=(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 Rt(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(!g(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,o=e,f),data(e,t){const n=null!=o?o:"";return r[n]||(r[n]={}),h(e)?r[n][e]=t:Object.assign(r[n],e),f},action(e,t){if(h(e))if(g(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},actions(e,t){if(h(e))if(g(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},context:(e,t)=>(h(e)?a[e]=t:Object.assign(a,e),f),globals:(e,t)=>(h(e)?c[e]=t:Object.assign(c,e),f),link:(e,t)=>(h(e)?l[e]=t:Object.assign(l,e),f),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 f}}var Tt,It=async e=>{const{config:t,env:n}=e,{elb:o,command:r,window:s,document:i}=n,a=(null==t?void 0:t.settings)||{},c=s||(void 0!==globalThis.window?globalThis.window:void 0),l=i||(void 0!==globalThis.document?globalThis.document:void 0),u=function(e={},t){return{prefix:"data-elb",pageview:!0,elb:"elb",elbLayer:"elbLayer",scope:t||void 0,...e}}(a,l),f={settings:u},d={elb:o,settings:u},g=e=>{if(e.pageview){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]=Re(s,`[${Oe(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);ze(d,"page view",t,"load",n)}};c&&l&&(!1!==u.elbLayer&&o&&dt(o,{name:h(u.elbLayer)?u.elbLayer:"elbLayer",prefix:u.prefix,window:c}),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)}(st,d,u),h(u.elb)&&u.elb&&(c[u.elb]=(...e)=>{const[t,n,o,r,s,i]=e;return ze(d,t,n,o,r,s,i)}));return{type:"browser",config:f,push:(...e)=>{const[t,n,o,r,s,i]=e;return ze(d,t,n,o,r,s,i)},destroy:async()=>{l&&Ge(u.scope||l)},on:async e=>{switch(e){case"ready":default:break;case"run":l&&c&&(it(d,u),g(u))}}}},Mt=It;return Tt=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}),Tt)})();