@walkeros/web-source-browser 3.3.1 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dev.js +1 -1
- package/dist/dev.js.map +1 -1
- package/dist/dev.mjs +1 -1
- package/dist/dev.mjs.map +1 -1
- package/dist/index.browser.js +1 -1
- package/dist/index.es5.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/walkerOS.json +198 -96
- package/package.json +3 -3
package/dist/index.browser.js
CHANGED
|
@@ -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:()=>pt,createTagger:()=>Pt,default:()=>Rt,examples:()=>mt,getAllEvents:()=>xe,getElbAttributeName:()=>je,getElbValues:()=>Oe,getEvents:()=>Ee,getGlobals:()=>Ce,sourceBrowser:()=>Tt});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 u(e){return{_meta:{hops:0,path:[e]}}}var l={merge:!0,shallow:!0,extend:!0};function f(e,t={},n={}){n={...l,...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 h(e){return"object"==typeof e&&null!==e&&!d(e)&&"[object Object]"===Object.prototype.toString.call(e)}function b(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(!h(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,version:e=>e.version,event:e=>({entity:e.entity,action:e.action,id:e.id,timestamp:e.timestamp,name:e.name,trigger:e.trigger,group:e.group,count:e.count,timing:e.timing})};function j(e){if("true"===e)return!0;if("false"===e)return!1;const t=Number(e);return e==t&&""!==e?t:String(e)}function O(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 x(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 E(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 C(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function A(e,t){let n,o={};return e instanceof Error?(n=e.message,o.error=C(e)):n=e,void 0!==t&&(t instanceof Error?o.error=C(t):"object"==typeof t&&null!==t?(o={...o,...t},"error"in o&&o.error instanceof Error&&(o.error=C(o.error))):o.value=t),{message:n,context:o}}var S=(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 $(e={}){return D({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 D(e){const{level:t,handler:n,jsonHandler:o,scope:r}=e,s=(e,o,s)=>{if(e<=t){const t=A(o,s);n?n(e,t.message,t.context,r,S):S(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=A(e,t);throw n?n(0,o.message,o.context,r,S):S(0,o.message,o.context,r),new Error(o.message)},json:e=>{o?o(e):console.log(JSON.stringify(e,null,2))},scope:e=>D({level:t,handler:n,jsonHandler:o,scope:[...r,e]})}}function P(e){return function(e){return"boolean"==typeof e}(e)||b(e)||function(e){return"number"==typeof e&&!Number.isNaN(e)}(e)||!g(e)||d(e)&&e.every(P)||h(e)&&Object.values(e).every(P)}function q(e){return P(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 R(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 I(e,t={},n={}){var o;if(!g(e))return;const r=h(e)&&e.consent||n.consent||(null==(o=n.collector)?void 0:o.consent),s=d(t)?t:[t];for(const t of s){const o=await R(_)(e,t,{...n,consent:r});if(g(o))return o}}async function _(e,t,n={}){const{collector:o,consent:r}=n;return(d(t)?t:[t]).reduce(async(t,s)=>{const i=await t;if(i)return i;const a=b(s)?{key:s}:s;if(!Object.keys(a).length)return;const{condition:c,consent:u,fn:l,key:f,loop:p,map:m,set:h,validate:v,value:w}=a;if(c&&!await R(c)(e,s,o))return;if(u&&!O(u,r))return w;let k=g(w)?w:e;if(l&&(k=await R(l)(e,s,n)),f&&(k=y(e,f,w)),p){const[t,o]=p,r="this"===t?[e]:await I(e,t,n);d(r)&&(k=(await Promise.all(r.map(e=>I(e,o,n)))).filter(g))}else m?k=await Object.entries(m).reduce(async(t,[o,r])=>{const s=await t,i=await I(e,r,n);return g(i)&&(s[o]=i),s},Promise.resolve({})):h&&(k=await Promise.all(h.map(t=>_(e,t,n))));v&&!await R(v)(k)&&(k=void 0);const j=q(k);return g(j)?j:q(w)},Promise.resolve(void 0))}async function L(e,t,n){var o;t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,o])=>{const r=await I(e,o,{collector:n});e=w(e,t,r)}));const{eventMapping:r,mappingKey:s}=await async function(e,t){var n;const[o,r]=(e.name||"").split(" ");if(!t||!o||!r)return{};let s,i="",a=o,c=r;const u=t=>{if(t)return(t=d(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[a]||(a="*");const l=t[a];return l&&(l[c]||(c="*"),s=u(l[c])),s||(a="*",c="*",s=u(null==(n=t[a])?void 0:n[c])),s&&(i=`${a} ${c}`),{eventMapping:s,mappingKey:i}}(e,t.mapping);(null==r?void 0:r.policy)&&await Promise.all(Object.entries(r.policy).map(async([t,o])=>{const r=await I(e,o,{collector:n});e=w(e,t,r)}));let i=t.data&&await I(e,t.data,{collector:n});const a=Boolean(null==r?void 0:r.skip);if(r){if(r.ignore)return{event:e,data:i,mapping:r,mappingKey:s,ignore:!0,skip:a};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await I(e,r.data,{collector:n});i=h(i)&&h(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(h(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=h(i)?f(t,i):null!=i?i:t)}return{event:e,data:i,mapping:r,mappingKey:s,ignore:!1,skip:a}}function M(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function N(e,t,n){return function(...o){let r;const s="post"+t,i=n["pre"+t],a=n[s];return r=i?i({fn:e},...o):e(...o),a&&(r=a({fn:e,result:r},...o)),r}}function W(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(W);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(W);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 H(e){return Array.isArray(e)&&e.length>0&&"object"==typeof e[0]&&null!==e[0]&&"match"in e[0]}function V(e){if(null!=e){if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;return H(e)?{type:"routes",routes:e.map(e=>({match:W(e.match),next:V(e.next)}))}:{type:"chain",value:e}}}}function U(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 U(n.next,t)}}function B(e,t){const n={ingest:null!=e?e:{}};return void 0!==t&&(n.event=t),n}function G(e){var t;return{full:null!=(t=e.full)&&t,storeId:e.store,rules:e.rules.map(e=>({match:W(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 z(e,t,n,o){e.set(t,n,1e3*o)}async function F(e,t,n){if(!t)return e;let o=e;for(const[e,r]of Object.entries(t))o=w(o,e,await I(n,r));return o}var Y={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 J(e,t){return e.storeId&&t.stores[e.storeId]?t.stores[e.storeId]:t.stores.__cache}function X(e){var t;const n={};for(const[o,r]of Object.entries(e)){const e=null==(t=r.config)?void 0:t.next;e&&!H(e)?n[o]={next:e}:n[o]={}}return n}function Q(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 Z(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 ee(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:u(n),config:t.config,env:oe(t.config.env)};r.debug("init");const i=await N(t.init,"TransformerInit",e.hooks)(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 te(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:{...oe(t.config.env),...s?{respond:s}:{}}};a.debug("push",{event:o.name});const u=await N(t.push,"TransformerPush",e.hooks)(o,c);return a.debug("push done"),u}async function ne(e,t,n,o,r,s,i){var a,c,l,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 R(ee)(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==(l=s.config)?void 0:l.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 h=null==(d=s.config)?void 0:d.cache,b=h?G(h):void 0,v=b?J(b,e):void 0;let y;if(b&&v){const e=K(b,v,B(r,p),`t:${o}`);if("HIT"===(null==e?void 0:e.status)&&e.value){if(p=e.value,b.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=Z("string"==typeof w||Array.isArray(w)&&!H(w)?w:U(V(w),B(r,p))||void 0,X(t));if(n.length>0){const o=await ne(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 R(te,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]}}:u("unknown");if(n.next){let r=n.next;if(H(n.next)){r=U(V(n.next),B(a,o))}if(r){const n=Z(r,X(t));if(n.length>0)return ne(e,t,n,o,a,m,i)}return{event:o,respond:m}}return s.length>0?ne(e,t,s,o,a,m,i):{event:o,respond:m}}));let c=m;const l=[];for(const e of a.flat())if(null!==e)if(e&&"object"==typeof e&&"event"in e){const t=e;if(t.respond&&(c=t.respond),null===t.event)continue;Array.isArray(t.event)?l.push(...t.event):l.push(t.event)}else l.push(e);return 0===l.length?{event:null,respond:c}:1===l.length?{event:l[0],respond:c}:{event:l,respond:c}}if(k&&"object"==typeof k){const{event:n,respond:o,next:s}=k;if(o&&(m=o),s){let o=s;if(H(s)){if(o=U(V(s),B(r,p)),!o){n&&(p=n);continue}}const a=Z(o,X(t));return a.length>0?ne(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&&z(v,y.key,p,y.ttl),(!k||"object"==typeof k&&!k.next)&&s.config.next&&H(s.config.next)){const n=U(V(s.config.next),B(r,p));if(n){const o=Z(n,X(t));if(o.length>0)return ne(e,t,o,p,r,m,i)}return{event:p,respond:m}}}return{event:p,respond:m}}function oe(e){return e&&h(e)?e:{}}async function re(e,t,n){var o;const{code:r,config:s={},env:i={},primary:a,next:c,before:l,cache:f}=n;let d,g=u(t);const p=f?G({...f,full:null==(o=f.full)||o}):void 0,m=V(c),h=Array.isArray(c)&&H(c)||!m?void 0:Z(U(m),X(e.transformers)),b=V(l),v=Array.isArray(l)&&H(l)||!b?void 0:Z(U(b),X(e.transformers)),y=e.logger.scope("source").scope(t),w={push:async(n,o={})=>{let r,i=n;const a=null!=v?v:b?Z(U(b,B(g)),X(e.transformers)):[];if(a.length>0&&e.transformers&&Object.keys(e.transformers).length>0){const n=await ne(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=J(p,e);if(n){const e=B(g),o=K(p,n,e,`s:${t}`);if(o){if("HIT"===o.status&&void 0!==o.value&&p.full){let t=o.value;return o.rule.update&&(t=await F(t,o.rule.update,{...e,cache:{status:"HIT"}})),null==d||d(t),{ok:!0}}if("MISS"===o.status&&p.full&&d){const t=d,s=o.rule.update,i={...e,cache:{status:"MISS"}},a=o.key,c=o.rule.ttl;d=e=>{z(n,a,e,c),s?r=(async()=>{const n=await F(e,s,i);t(n)})():t(e)}}"MISS"!==o.status||p.full||z(n,o.key,!0,o.rule.ttl)}}}const c=null!=h?h:m?Z(U(m,B(g)),X(e.transformers)):[],u=await e.push(i,{...o,id:t,ingest:g,respond:d,mapping:s,preChain:c});return r&&await r,u},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=u(t));const o=await I(n,s.ingest,{collector:e}),r=u(t);g={...r,...o,_meta:r._meta}},setRespond:e=>{d=e}},j=await R(r)(k);if(!j)return;const O=j.type||"unknown",x=e.logger.scope(O).scope(t);return w.logger=x,a&&(j.config={...j.config,primary:a}),j}function se(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:pe(t.env,t.config.env)};T(t.on)(o,a)}function ie(e,t,n,o){let r;switch(t){case Y.Commands.Consent:r=o||e.consent;break;case Y.Commands.Session:r=e.session;break;case Y.Commands.User:r=o||e.user;break;case Y.Commands.Custom:r=o||e.custom;break;case Y.Commands.Globals:r=o||e.globals;break;case Y.Commands.Config:r=o||e.config;break;case Y.Commands.Ready:case Y.Commands.Run:default:r=void 0}if(n.length)switch(t){case Y.Commands.Consent:!function(e,t,n){const o=n||e.consent;t.forEach(t=>{Object.keys(o).filter(e=>e in t).forEach(n=>{T(t[n])(e,o)})})}(e,n,o);break;case Y.Commands.Ready:case Y.Commands.Run:i=n,(s=e).allowed&&i.forEach(e=>{T(e)(s)});break;case Y.Commands.Session:!function(e,t){e.session&&t.forEach(t=>{T(t)(e,e.session)})}(e,n);break;default:n.forEach(t=>{"function"==typeof t&&T(t)(e,r)})}var s,i}function ae(e,t,n,o){if(!e)return[];if(t){const e=U(t,B(o));return e?Z(e,X(n)):[]}return Z(e,X(n))}async function ce(e,t,n){const{code:o,config:r={},env:s={},before:i,next:a,cache:c}=t;if(!m(o.push))return de({ok:!1,failed:{invalid:{type:"invalid",error:"Destination code must have a push method"}}});const u=n||r||{init:!1};let l=i?{...u,before:i}:{...u};a&&(l={...l,next:a}),c&&(l={...l,cache:c});const f={...o,config:l,env:pe(o.env,s)};let d=f.config.id;if(!d)do{d=x(5,"abcdefghijklmnopqrstuvwxyz")}while(e.destinations[d]);return e.destinations[d]=f,!1!==f.config.queue&&(f.queuePush=[...e.queue]),ue(e,void 0,{},{[d]:f})}async function ue(e,t,n={},o){const{allowed:r,consent:s,globals:i,user:a}=e;if(!r)return de({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,l,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]}}:u("unknown");if(!g.length&&!(null==(c=r.queueOn)?void 0:c.length))return{id:o,destination:r,skipped:!0};if(!g.length&&(null==(l=r.queueOn)?void 0:l.length)){const t=await R(le)(e,r,o);return{id:o,destination:r,skipped:!t}}const m=[],h=g.filter(e=>{const t=O(r.config.consent,s,e.consent);return!t||(e.consent=t,m.push(e),!1)});if(r.queuePush.push(...h),!m.length)return{id:o,destination:r,queue:g};if(!await R(le)(e,r,o))return{id:o,destination:r,queue:g};let b,y;r.dlq||(r.dlq=[]);const w=r.config.before,k=ae(w,w&&H(w)?V(w):void 0,e.transformers,p),j=r.config.next,x=j&&H(j)?V(j):void 0,E=null==(d=r.config)?void 0:d.cache,C=E?G(E):void 0,A=C?J(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=B(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,u=n.respond;if(k.length>0&&e.transformers&&Object.keys(e.transformers).length>0){const r=await ne(e,e.transformers,k,t,p,n.respond,`destination.${o}.before`);if(null===r.event)return t;r.respond&&(u=r.respond),c=Array.isArray(r.event)?r.event[0]:r.event}if(C&&!C.full&&A){const e=B(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 l=Date.now();let d=!1;const g=await R(fe,t=>{const n=r.type||"unknown";e.logger.scope(n).error("Push failed",{error:t,event:c.name}),b=t,d=!0,r.dlq.push([c,t])})(e,r,o,c,p,u);if(S+=Date.now()-l,s&&A&&void 0===r.config.mock&&z(A,s.key,null==g||g,s.ttl),void 0!==g&&(y=g),!d&&j){void 0!==g&&(p._response=g);const t=ae(j,x,e.transformers,p);if(t.length>0&&e.transformers&&Object.keys(e.transformers).length>0){const n=await ne(e,e.transformers,t,c,p,u,`destination.${o}.next`);n.respond&&(u=n.respond)}}return t})),{id:o,destination:r,error:b,response:y,totalDuration:S}})),l={},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:(l[t.id]=n,o.count++,o.lastAt=r,o.duration+=t.totalDuration||0,e.status.out++)}return de({event:t,...Object.keys(l).length&&{done:l},...Object.keys(d).length&&{queued:d},...Object.keys(g).length&&{failed:g}})}async function le(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:pe(t.env,t.config.env)};s.debug("init");const a=await N(t.init,"DestinationInit",e.hooks)(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)se(e,t,n,r,s)}s.debug("init done")}return!0}async function fe(e,t,n,o,r,s){const{config:i}=t,a=await L(o,i,e);if(a.ignore)return!1;const c=t.type||"unknown",u=e.logger.scope(c),l={collector:e,logger:u,id:n,config:i,data:a.data,rule:a.mapping,ingest:r,env:{...pe(t.env,i.env),...s?{respond:s}:{}}};if(void 0!==i.mock)return u.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){u.debug("push",{event:a.event.name});const n=await N(t.push,"DestinationPush",e.hooks)(a.event,l);return u.debug("push done"),n}{if(t.batches=t.batches||{},!t.batches[d]){const o={key:d,events:[],data:[]};t.batches[d]={batched:o,batchFn:E(()=>{const o=t.batches[d].batched,a={collector:e,logger:u,id:n,config:i,data:void 0,rule:f,ingest:r,env:{...pe(t.env,i.env),...s?{respond:s}:{}}};u.debug("push batch",{events:o.events.length}),N(t.pushBatch,"DestinationPushBatch",e.hooks)(o,a),u.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 de(e){return{ok:!(null==e?void 0:e.failed),...e}}function ge(e){const{code:t,config:n={},env:o={},cache:r}=e,{config:s}=Q(e,"before"),{config:i}=Q({...e,config:s},"next"),a={...t.config,...n,...i};r&&(a.cache=r);const c=pe(t.env,o);return{...t,config:a,env:c}}function pe(e,t){return e||t?t?e&&h(e)&&h(t)?{...e,...t}:t:e:{}}async function me(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 he(e,t,n,o){let r,s,i=!1;switch(t){case Y.Commands.Config:h(n)&&(f(e.config,n,{shallow:!1}),s=n,i=!0);break;case Y.Commands.Consent:if(h(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 Y.Commands.Custom:h(n)&&(e.custom=f(e.custom,n),s=n,i=!0);break;case Y.Commands.Destination:h(n)&&("code"in n&&h(n.code)?r=await ce(e,n,o):m(n.push)&&(r=await ce(e,{code:n},o)));break;case Y.Commands.Globals:h(n)&&(e.globals=f(e.globals,n),s=n,i=!0);break;case Y.Commands.On:b(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,ie(e,t,s)}(e,n,o);break;case Y.Commands.Ready:i=!0;break;case Y.Commands.Run:r=await async function(e,t){return e.allowed=!0,e.count=0,e.group=x(),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 ue(e)}(e,n),i=!0;break;case Y.Commands.Session:i=!0;break;case Y.Commands.Shutdown:await async function(e){const t=e.logger;await me(e.sources,"source",t),await me(e.destinations,"destination",t),await me(e.transformers,"transformer",t),await me(e.stores,"store",t)}(e);break;case Y.Commands.User:h(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 Y.Commands.Consent:r=o||e.consent;break;case Y.Commands.Session:r=e.session;break;case Y.Commands.User:r=o||e.user;break;case Y.Commands.Custom:r=o||e.custom;break;case Y.Commands.Globals:r=o||e.globals;break;case Y.Commands.Config:r=o||e.config;break;case Y.Commands.Ready:case Y.Commands.Run:default:r=void 0}let i=!1;for(const n of Object.values(e.sources))n.on&&!1===await R(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});se(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 re(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=ge(r);!1!==a.config.queue&&(a.queuePush=[...e.queue]),e.destinations[n]=a}}(e,t),ie(e,t,s,o),!i}(e,t,void 0,s),r=await ue(e)),r||de({ok:!0})}function be(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");++e.count;const{timestamp:r=Date.now(),group:s=e.group,count:i=e.count}=t,{name:a=`${n} ${o}`,data:c={},context:u={},globals:l=e.globals,custom:f={},user:d=e.user,nested:g=[],consent:p=e.consent,id:m=`${r}-${s}-${i}`,trigger:h="",entity:b=n,action:v=o,timing:y=0,version:w={source:e.version,tagging:e.config.tagging||0},source:k={type:"collector",id:"",previous_id:""}}=t;return{name:a,data:c,context:u,globals:l,custom:f,user:d,nested:g,consent:p,id:m,trigger:h,entity:b,action:v,timestamp:r,timing:y,group:s,count:i,version:w,source:k}}async function ve(e){var t,n;const o=f({globalsStatic:{},sessionStatic:{},tagging:0,run:!0},e,{merge:!1,extend:!1}),r=$({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||{},count:0,custom:e.custom||{},destinations:{},transformers:{},stores:{},globals:s,group:"",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||{},version:"3.3.1",sources:{},pending:{sources:{},destinations:{}},push:void 0,command:void 0};var a,c;i.push=function(e,t){return N(async(n,o={})=>await R(async()=>{var r;const s=Date.now(),{id:i,ingest:a,respond:c,mapping:l,preChain:f,include:d,exclude:g}=o;let p=c,m=n;const h=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,b=null!=a?a:u(i||"unknown");if(l){const t=await L(m,l,e);if(t.ignore)return de({ok:!0});if(l.consent&&!O(l.consent,e.consent,t.event.consent))return de({ok:!0});m=t.event}if((null==f?void 0:f.length)&&e.transformers&&Object.keys(e.transformers).length>0){const n=await ne(e,e.transformers,f,m,b,p,i?`source.${i}.next`:void 0);if(null===n.event)return de({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=be(e,o);return ue(e,r,{id:i,ingest:b,respond:p},h)}));if(i){e.status.sources[i]||(e.status.sources[i]={count:0,duration:0});const t=e.status.sources[i];t.count+=n.event.length,t.lastAt=Date.now(),t.duration+=Date.now()-s}return null!=(r=o[0])?r:de({ok:!0})}m=n.event}const v=t(m),y=be(e,v),w=await ue(e,y,{id:i,ingest:b,respond:p},h);if(i){e.status.sources[i]||(e.status.sources[i]={count:0,duration:0});const t=e.status.sources[i];t.count++,t.lastAt=Date.now(),t.duration+=Date.now()-s}return w},()=>de({ok:!1}))(),"Push",e.hooks)}(i,e=>({timing:Math.round((Date.now()-i.timing)/10)/100,source:{type:"collector",id:"",previous_id:""},...e})),i.command=(c=he,N(async(e,t,n)=>await R(async()=>await c(a,e,t,n),()=>de({ok:!1}))(),"Command",(a=i).hooks));const l=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},u=await t(c),l=u.get,f=u.set,d=u.delete;u.get=N(l,"StoreGet",e.hooks),u.set=N(f,"StoreSet",e.hooks),u.delete=N(d,"StoreDelete",e.hooks),n[o]=u}return n}(i,l),function(e,t,n){const o=new Map;for(const[n,r]of Object.entries(e))t[n]&&o.set(r,t[n]);if(0!==o.size)for(const e of[n.transformers,n.destinations,n.sources])if(e)for(const t of Object.values(e))r(t.env);function r(e){if(e)for(const[t,n]of Object.entries(e))if("object"==typeof n&&null!==n){const r=o.get(n);r&&(e[t]=r)}}}(l,i.stores,e),!i.stores.__cache){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]=ge(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}=Q(r,"before"),{config:a}=Q({...r,config:i},"next"),c=Object.keys(s).length>0?{...a,env:s}:a,{cache:l}=r,f=l?{...c,cache:l}:c,d=e.logger.scope("transformer").scope(o),g={collector:e,logger:d,id:o,ingest:u(o),config:f,env:s},p=await t(g);n[o]=p}return n}(i,e.transformers||{}),i}async function ye(e){e=e||{};const t=await ve(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 de({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 re(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 u=n.push;const l=Object.values(t.sources).filter(e=>"elb"!==e.type),f=l.find(e=>e.config.primary);return f?u=f.push:l.length>0&&(u=l[0].push),{collector:t,elb:u}}function we(e,t){return(e.getAttribute(t)||"").trim()}function ke(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,u=c+a,l={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(l.x<0)return!1;if(l.x>(n.documentElement.clientWidth||t.innerWidth))return!1;if(l.y<0)return!1;if(l.y>(n.documentElement.clientHeight||t.innerHeight))return!1;r=n.elementFromPoint(l.x,l.y)}else{const e=s/2;if(c<0&&u<e)return!1;if(u>s&&c>e)return!1;r=n.elementFromPoint(l.x,s/2)}if(r)do{if(r===e)return!0}while(r=r.parentElement);return!1}function je(e,t,n=!0){return e+(t=null!=t?(n?"-":"")+t:"")}function Oe(e,t,n,o=!0){return Re(we(t,je(e,n,o))||"").reduce((e,n)=>{let[o,r]=Ie(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(j(r))):e[o]=j(r),e},{})}function xe(e,t=Y.Commands.Prefix){var n;const o=e;if(!o)return[];let r=[];const s=Y.Commands.Action,i=`[${je(t,s,!1)}]`,a=e=>{Object.keys(Oe(t,e,s,!1)).forEach(n=>{r=r.concat(Ee(e,n,t))})};return o!==(o.ownerDocument||o)&&(null==(n=o.matches)?void 0:n.call(o,i))&&a(o),Te(o,i,a),r}function Ee(e,t,n=Y.Commands.Prefix){const o=[],{actions:r,nearestOnly:s}=function(e,t,n){let o=t;for(;o;){const t=we(o,je(e,Y.Commands.Actions,!1));if(t){const e=Ae(t);if(e[n])return{actions:e[n],nearestOnly:!1}}const r=we(o,je(e,Y.Commands.Action,!1));if(r){const e=Ae(r);if(e[n]||"click"!==n)return{actions:e[n]||[],nearestOnly:!0}}o=De(e,o)}return{actions:[],nearestOnly:!1}}(n,e,t);return r.length?(r.forEach(r=>{const i=Re(r.actionParams||"",",").reduce((e,t)=>(e[M(t)]=!0,e),{}),a=Se(n,e,i,s);if(!a.length){const t="page",o=`[${je(n,t)}]`,[r,s]=Pe(e,o,n,t);a.push({entity:t,data:r,nested:[],context:s})}a.forEach(e=>{o.push({entity:e.entity,action:r.action,data:e.data,trigger:t,context:e.context,nested:e.nested})})}),o):o}function Ce(e=Y.Commands.Prefix,t){if(!t)return{};const n=je(e,Y.Commands.Globals,!1);let o={};return qe(t,`[${n}]`,t=>{o=f(o,Oe(e,t,Y.Commands.Globals,!1))}),o}function Ae(e){const t={};return Re(e).forEach(e=>{const[n,o]=Ie(e),[r,s]=_e(n);if(!r)return;let[i,a]=_e(o||"");i=i||r,t[r]||(t[r]=[]),t[r].push({trigger:r,triggerParams:s,action:i,actionParams:a})}),t}function Se(e,t,n,o=!1){const r=[];let s=t;for(n=0!==Object.keys(n||{}).length?n:void 0;s;){const i=$e(e,s,t,n);if(i&&(r.push(i),o))break;s=De(e,s)}return r}function $e(e,t,n,o){const r=we(t,je(e));if(!r||o&&!o[r])return null;const s=[t],i=`[${je(e,r)}],[${je(e,"")}]`,a=je(e,Y.Commands.Link,!1);let c={};const u=[],[l,d]=Pe(n||t,i,e,r);Te(t,`[${a}]`,n=>{const[o,r]=Ie(we(n,a));"parent"===r&&Te(t.ownerDocument.body,`[${a}="${o}:child"]`,t=>{s.push(t);const n=$e(e,t);n&&u.push(n)})});const g=[];s.forEach(e=>{e.matches(i)&&g.push(e),Te(e,i,e=>g.push(e))});let p={};return g.forEach(t=>{p=f(p,Oe(e,t,"")),c=f(c,Oe(e,t,r))}),c=f(f(p,c),l),s.forEach(t=>{Te(t,`[${je(e)}]`,t=>{const n=$e(e,t);n&&u.push(n)})}),{entity:r,data:c,context:d,nested:u}}function De(e,t){const n=je(e,Y.Commands.Link,!1);if(t.matches(`[${n}]`)){const[e,o]=Ie(we(t,n));if("child"===o){const o=t.ownerDocument;let r=null;return qe(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 Pe(e,t,n,o){let r={};const s={};let i=e;const a=`[${je(n,Y.Commands.Context,!1)}]`;let c=0;for(;i;)i.matches(t)&&(r=f(Oe(n,i,""),r),r=f(Oe(n,i,o),r)),i.matches(a)&&(Object.entries(Oe(n,i,Y.Commands.Context,!1)).forEach(([e,t])=>{t&&!s[e]&&(s[e]=[t,c])}),++c),i=De(n,i);return[r,s]}function qe(e,t,n){e.querySelectorAll(t).forEach(n)}function Te(e,t,n){e.querySelectorAll(t).forEach(n);e instanceof(e.ownerDocument||e).defaultView.Element&&e.shadowRoot&&Te(e.shadowRoot,t,n),e.querySelectorAll("*").forEach(e=>{e.shadowRoot&&Te(e.shadowRoot,t,n)})}function Re(e,t=";"){if(!e)return[];const n=new RegExp(`(?:[^${t}']+|'[^']*')+`,"ig");return e.match(n)||[]}function Ie(e){const[t,n]=e.split(/:(.+)/,2);return[M(t),M(n)]}function _e(e){const[t,n]=e.split("(",2);return[t,n?n.slice(0,-1):""]}var Le=new WeakMap,Me=new WeakMap,Ne=new WeakMap;function We(e){const t=Date.now();let n=Me.get(e);if(!n||t-n.lastChecked>500){n={isVisible:ke(e,e.ownerDocument.defaultView,e.ownerDocument),lastChecked:t},Me.set(e,n)}return n.isVisible}function He(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=Ne.get(e);if(!s)return;const i=s.timers.get(r);if(t.intersectionRatio>0){const o=Date.now();let a=Le.get(r);if(!a||o-a.lastChecked>1e3){const e=r.ownerDocument.defaultView;a={isLarge:r.offsetHeight>e.innerHeight,lastChecked:o},Le.set(r,a)}if(t.intersectionRatio>=.5||a.isLarge&&We(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(We(r)){const o=null==(t=s.elementConfigs)?void 0:t.get(r);(null==o?void 0:o.context)&&await st(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=Ne.get(e);if(!n)return;n.observer&&n.observer.unobserve(t);const o=n.timers.get(t);o&&(clearTimeout(o),n.timers.delete(t)),Le.delete(t),Me.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 Ve(e,t,n={multiple:!1}){var o;const r=e.settings.scope;if(!r)return;const s=Ne.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 Ue(e){if(!e)return;const t=Ne.get(e);t&&(t.observer&&t.observer.disconnect(),Ne.delete(e))}function Be(e,t,n,o,r,s,i){const{elb:a,settings:c}=e;if(b(t)&&t.startsWith("walker "))return a(t,n);if(h(t)){const e=t;if(!e.source&&c.scope){const t=c.scope.ownerDocument||c.scope,n=t.defaultView;e.source=Ge(n,t)}return!e.globals&&c.scope&&(e.globals=Ce(c.prefix,c.scope)),a(e)}const[u]=String(h(t)?t.name:t).split(" ");let l,f=h(n)?n:{},d={},g=!1;if(p(n)&&(l=n,g=!0),p(r)?l=r:h(r)&&Object.keys(r).length&&(d=r),l){const e=Se(c.prefix||"data-elb",l).find(e=>e.entity===u);e&&(g&&(f=e.data),d=e.context)}const m=c.scope?c.scope.ownerDocument||c.scope:void 0,v=null==m?void 0:m.defaultView;"page"===u&&v&&(f.id=f.id||v.location.pathname);const y=Ce(c.prefix,c.scope);return a({name:String(t||""),data:f,context:d,globals:y,nested:s,custom:i,trigger:b(o)?o:"",source:v&&m?Ge(v,m):void 0})}function Ge(e,t){return{type:"browser",id:e.location.href,previous_id:t.referrer}}var Ke,ze=[],Fe="click",Ye="hover",Je="load",Xe="pulse",Qe="scroll",Ze="submit",et="impression",tt="visible",nt="wait";function ot(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;if(!n)return;n.addEventListener("click",T(function(t){ct.call(this,e,t)})),n.addEventListener("submit",T(function(t){ut.call(this,e,t)}))}(e,t)}function rt(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;ze=[];const o=n;if(!o)return;Ue(o),function(e,t=1e3){Ne.has(e)||Ne.set(e,{observer:He(e),timers:new WeakMap,duration:t})}(o,1e3);const r=je(t.prefix,Y.Commands.Action,!1),s=o.ownerDocument||o;o!==s&&it(e,o,r,t);Te(o,`[${r}]`,n=>{it(e,n,r,t)}),ze.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)||(st(t,e,Qe),!1)});Ke||(Ke=function(e,t=1e3){let n=null;return function(...o){if(null===n)return n=setTimeout(()=>{n=null},t),e(...o)}}(function(){ze=r.call(t,ze,e)}),t.addEventListener("scroll",Ke))}(e,o)}(e,t)}async function st(e,t,n){const o=Ee(t,n,e.settings.prefix);return Promise.all(o.map(t=>Be(e,{name:`${t.entity} ${t.action}`,...t,trigger:n})))}function it(e,t,n,o){const r=we(t,n);r&&Object.values(Ae(r)).forEach(n=>n.forEach(n=>{switch(n.trigger){case Ye:!function(e,t){t.addEventListener("mouseenter",T(function(t){const n=at(t);n&&st(e,n,Ye)}))}(e,t);break;case Je:!function(e,t){st(e,t,Je)}(e,t);break;case Xe:!function(e,t,n=""){const o=t.ownerDocument;setInterval(()=>{o.hidden||st(e,t,Xe)},parseInt(n||"")||15e3)}(e,t,n.triggerParams);break;case Qe:!function(e,t=""){const n=parseInt(t||"")||50;if(n<0||n>100)return;ze.push([e,n])}(t,n.triggerParams);break;case et:Ve(e,t);break;case tt:Ve(e,t,{multiple:!0});break;case nt:!function(e,t,n=""){setTimeout(()=>st(e,t,nt),parseInt(n||"")||15e3)}(e,t,n.triggerParams)}}))}function at(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 ct(e,t){const n=at(t);n&&st(e,n,Fe)}function ut(e,t){const n=at(t);n&&st(e,n,Ze)}function lt(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(gt(n[0])){const o=[...Array.from(n[0])],r=Array.prototype.push.apply(this,[o]);return dt(e,t.prefix,o,i),r}const o=Array.prototype.push.apply(this,n);return n.forEach(n=>{dt(e,t.prefix,n,i)}),o},Array.isArray(s)&&s.length>0&&function(e,t="data-elb",n,o){ft(e,t,n,!0,o),ft(e,t,n,!1,o),n.length=0}(e,t.prefix,s,i)}function ft(e,t,n,o,r){const s=[];let i=!0;n.forEach(e=>{const t=gt(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=!h(r)&&b(r)&&r.startsWith("walker ");if(h(r)){if("object"==typeof r&&0===Object.keys(r).length)return}else{const e=Array.from(t);if(!b(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=>{dt(e,t,n,r)})}function dt(e,t="data-elb",n,o){T(()=>{if(Array.isArray(n)){const[r,...s]=n;if(!r||b(r)&&""===r.trim())return;if(b(r)&&r.startsWith("walker "))return void e(r,s[0]);Be({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 gt(e){return null!=e&&"object"==typeof e&&"[object Arguments]"===Object.prototype.toString.call(e)}var pt={},mt={};r(mt,{createTrigger:()=>$t,env:()=>ht,step:()=>kt,trigger:()=>Dt});var ht={};r(ht,{push:()=>wt});var bt=()=>{},vt=()=>()=>Promise.resolve({ok:!0}),yt={error:bt,warn:bt,info:bt,debug:bt,throw:e=>{throw"string"==typeof e?new Error(e):e},json:bt,scope:()=>yt},wt={get push(){return vt()},get command(){return vt()},get elb(){return vt()},get window(){return{addEventListener:bt,removeEventListener:bt,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:bt,removeEventListener:bt,querySelector:bt,querySelectorAll:()=>[],getElementById:bt,getElementsByClassName:()=>[],getElementsByTagName:()=>[],createElement:()=>({setAttribute:bt,getAttribute:bt,addEventListener:bt,removeEventListener:bt}),body:{appendChild:bt,removeChild:bt},documentElement:{scrollTop:0,scrollLeft:0},readyState:"complete",title:"Test Page",referrer:"",cookie:""}},logger:yt},kt={};r(kt,{clickEvent:()=>Ot,contextAndGlobals:()=>St,dataAttributeTypes:()=>At,impressionEvent:()=>Et,nestedEntities:()=>Ct,pageView:()=>jt,submitEvent:()=>xt});var jt={trigger:{type:"load",options:{url:"https://example.com/docs",title:"Documentation",referrer:"https://example.com/"}},in:"",out:{name:"page view",data:{domain:"example.com",title:"Documentation",referrer:"https://example.com/",id:"/docs"},trigger:"load",entity:"page",action:"view",source:{type:"browser",id:"https://example.com/docs",previous_id:"https://example.com/"}}},Ot={trigger:{type:"click",options:"button"},in:'<button data-elb="cta" data-elb-cta="label:Sign Up" data-elbaction="click:click">Sign Up</button>',out:{name:"cta click",data:{label:"Sign Up"},trigger:"click",entity:"cta",action:"click"}},xt={trigger:{type:"submit",options:"form"},in:'<form data-elb="signup" data-elb-signup="plan:premium" data-elbaction="submit:complete"></form>',out:{name:"signup complete",data:{plan:"premium"},trigger:"submit",entity:"signup",action:"complete"}},Et={trigger:{type:"impression",options:"div"},in:'<div data-elb="banner" data-elb-banner="type:promotional;position:sidebar" data-elbaction="impression:view"></div>',out:{name:"banner view",data:{type:"promotional",position:"sidebar"},trigger:"impression",entity:"banner",action:"view"}},Ct={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:{name:"product view",data:{id:"SKU-42",name:"Sneakers"},trigger:"load",entity:"product",action:"view",nested:[{entity:"size",data:{selected:"large",inStock:!0}}]}},At={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:{name:"product select",data:{price:99.99,available:!0,colors:["red","blue"]},trigger:"click",entity:"product",action:"select"}},St={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:{name:"cta signup",data:{label:"Try Now"},trigger:"click",entity:"cta",action:"signup",context:{test:["engagement_flow",0]},globals:{language:"en",plan:"premium"}}},$t=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 ye({...e,run:null==(c=e.run)||c});o={collector:t.collector,elb:t.elb}}if(!t||"load"===t)return;const u="string"==typeof i?i:void 0,l=u?r.querySelector(u):null;if(!l)return void console.warn(`Trigger: element not found for selector "${u}"`);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 st(d,l,t)}}},Dt=(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 Pt(e={}){const t=e.prefix||"data-elb";return function(e){let n,o=e;const r={},s={},i={},a={},c={},u={};function l(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]={}),b(e)?r[n][e]=t:Object.assign(r[n],e),f},action(e,t){if(b(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(b(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)=>(b(e)?a[e]=t:Object.assign(a,e),f),globals:(e,t)=>(b(e)?c[e]=t:Object.assign(c,e),f),link:(e,t)=>(b(e)?u[e]=t:Object.assign(u,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}-`]=l(o)}}),Object.keys(s).length>0&&(e[`${t}action`]=l(s)),Object.keys(i).length>0&&(e[`${t}actions`]=l(i)),Object.keys(a).length>0&&(e[`${t}context`]=l(a)),Object.keys(c).length>0&&(e[`${t}globals`]=l(c)),Object.keys(u).length>0&&(e[`${t}link`]=l(u)),e}};return f}}var qt,Tt=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),u=i||(void 0!==globalThis.document?globalThis.document:void 0),l=function(e={},t){return{prefix:"data-elb",pageview:!0,elb:"elb",elbLayer:"elbLayer",scope:t||void 0,...e}}(a,u),f={settings:l},d={elb:o,settings:l},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]=Pe(s,`[${je(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);Be(d,"page view",t,"load",n)}};c&&u&&(!1!==l.elbLayer&&o&<(o,{name:b(l.elbLayer)?l.elbLayer:"elbLayer",prefix:l.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)}(ot,d,l),b(l.elb)&&l.elb&&(c[l.elb]=(...e)=>{const[t,n,o,r,s,i]=e;return Be(d,t,n,o,r,s,i)}));return{type:"browser",config:f,push:(...e)=>{const[t,n,o,r,s,i]=e;return Be(d,t,n,o,r,s,i)},destroy:async()=>{u&&Ue(l.scope||u)},on:async e=>{switch(e){case"ready":default:break;case"run":u&&c&&(rt(d,l),g(l))}}}},Rt=Tt;return qt=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}),qt)})();
|
|
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:()=>pt,createTagger:()=>Pt,default:()=>Tt,examples:()=>mt,getAllEvents:()=>Oe,getElbAttributeName:()=>xe,getElbValues:()=>je,getEvents:()=>Ee,getGlobals:()=>Ce,sourceBrowser:()=>_t});var i=Object.defineProperty;((e,t)=>{for(var n in t)i(e,n,{get:t[n],enumerable:!0})})({},{Level:()=>a});var c,a=((c=a||{})[c.ERROR=0]="ERROR",c[c.WARN=1]="WARN",c[c.INFO=2]="INFO",c[c.DEBUG=3]="DEBUG",c);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,version:e=>e.version,event:e=>({entity:e.entity,action:e.action,id:e.id,timestamp:e.timestamp,name:e.name,trigger:e.trigger,group:e.group,count:e.count,timing:e.timing})};function 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(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 E(e,t=1e3,n=!1){let o,r=null,s=!1;return(...i)=>new Promise(c=>{const a=n&&!s;r&&clearTimeout(r),r=setTimeout(()=>{r=null,n&&!s||(o=e(...i),c(o))},t),a&&(s=!0,o=e(...i),c(o))})}function C(e){return{message:e.message,name:e.name,stack:e.stack,cause:e.cause}}function A(e,t){let n,o={};return e instanceof Error?(n=e.message,o.error=C(e)):n=e,void 0!==t&&(t instanceof Error?o.error=C(t):"object"==typeof t&&null!==t?(o={...o,...t},"error"in o&&o.error instanceof Error&&(o.error=C(o.error))):o.value=t),{message:n,context:o}}var S=(e,t,n,o)=>{const r=`${a[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 $(e={}){return D({level:void 0!==e.level?(t=e.level,"string"==typeof t?a[t]:t):0,handler:e.handler,jsonHandler:e.jsonHandler,scope:[]});var t}function D(e){const{level:t,handler:n,jsonHandler:o,scope:r}=e,s=(e,o,s)=>{if(e<=t){const t=A(o,s);n?n(e,t.message,t.context,r,S):S(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=A(e,t);throw n?n(0,o.message,o.context,r,S):S(0,o.message,o.context,r),new Error(o.message)},json:e=>{o?o(e):console.log(JSON.stringify(e,null,2))},scope:e=>D({level:t,handler:n,jsonHandler:o,scope:[...r,e]})}}function P(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(P)||b(e)&&Object.values(e).every(P)}function q(e){return P(e)?e:void 0}function _(e,t,n){return function(...o){try{return e(...o)}catch(e){if(!t)return;return t(e)}finally{null==n||n()}}}function T(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 R(e,t={},n={}){var o;if(!g(e))return;const r=b(e)&&e.consent||n.consent||(null==(o=n.collector)?void 0:o.consent),s=d(t)?t:[t];for(const t of s){const o=await T(I)(e,t,{...n,consent:r});if(g(o))return o}}async function I(e,t,n={}){const{collector:o,consent:r}=n;return(d(t)?t:[t]).reduce(async(t,s)=>{const i=await t;if(i)return i;const c=h(s)?{key:s}:s;if(!Object.keys(c).length)return;const{condition:a,consent:l,fn:u,key:f,loop:p,map:m,set:b,validate:v,value:w}=c;if(a&&!await T(a)(e,s,o))return;if(l&&!j(l,r))return w;let k=g(w)?w:e;if(u&&(k=await T(u)(e,s,n)),f&&(k=y(e,f,w)),p){const[t,o]=p,r="this"===t?[e]:await R(e,t,n);d(r)&&(k=(await Promise.all(r.map(e=>R(e,o,n)))).filter(g))}else m?k=await Object.entries(m).reduce(async(t,[o,r])=>{const s=await t,i=await R(e,r,n);return g(i)&&(s[o]=i),s},Promise.resolve({})):b&&(k=await Promise.all(b.map(t=>I(e,t,n))));v&&!await T(v)(k)&&(k=void 0);const x=q(k);return g(x)?x:q(w)},Promise.resolve(void 0))}async function L(e,t,n){var o;t.policy&&await Promise.all(Object.entries(t.policy).map(async([t,o])=>{const r=await R(e,o,{collector:n});e=w(e,t,r)}));const{eventMapping:r,mappingKey:s}=await async function(e,t){var n;const[o,r]=(e.name||"").split(" ");if(!t||!o||!r)return{};let s,i="",c=o,a=r;const l=t=>{if(t)return(t=d(t)?t:[t]).find(t=>!t.condition||t.condition(e))};t[c]||(c="*");const u=t[c];return u&&(u[a]||(a="*"),s=l(u[a])),s||(c="*",a="*",s=l(null==(n=t[c])?void 0:n[a])),s&&(i=`${c} ${a}`),{eventMapping:s,mappingKey:i}}(e,t.mapping);(null==r?void 0:r.policy)&&await Promise.all(Object.entries(r.policy).map(async([t,o])=>{const r=await R(e,o,{collector:n});e=w(e,t,r)}));let i=t.data&&await R(e,t.data,{collector:n});const c=Boolean(null==r?void 0:r.skip);if(r){if(r.ignore)return{event:e,data:i,mapping:r,mappingKey:s,ignore:!0,skip:c};if(r.name&&(e.name=r.name),r.data){const t=r.data&&await R(e,r.data,{collector:n});i=b(i)&&b(t)?f(i,t):t}}const a=null!=(o=null==r?void 0:r.include)?o:t.include;if(a&&a.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,a);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,skip:c}}function M(e){return e?e.trim().replace(/^'|'$/g,"").trim():""}function N(e,t,n){return function(...o){let r;const s="post"+t,i=n["pre"+t],c=n[s];return r=i?i({fn:e},...o):e(...o),c&&(r=c({fn:e,result:r},...o)),r}}function W(e){if("*"===e)return()=>!0;if("and"in e){const t=e.and.map(W);return e=>t.every(t=>t(e))}if("or"in e){const t=e.or.map(W);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 H(e){return Array.isArray(e)&&e.length>0&&"object"==typeof e[0]&&null!==e[0]&&"match"in e[0]}function V(e){if(null!=e){if("string"==typeof e)return{type:"static",value:e};if(Array.isArray(e)){if(0===e.length)return;return H(e)?{type:"routes",routes:e.map(e=>({match:W(e.match),next:V(e.next)}))}:{type:"chain",value:e}}}}function U(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 U(n.next,t)}}function B(e,t){const n={ingest:null!=e?e:{}};return void 0!==t&&(n.event=t),n}function G(e){var t;return{full:null!=(t=e.full)&&t,storeId:e.store,rules:e.rules.map(e=>({match:W(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(":")}`,c=t.get(i);return void 0!==c?{status:"HIT",key:i,value:c,rule:r}:{status:"MISS",key:i,rule:r}}function z(e,t,n,o){e.set(t,n,1e3*o)}async function F(e,t,n){if(!t)return e;let o=e;for(const[e,r]of Object.entries(t))o=w(o,e,await R(n,r));return o}var Y={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 J(e,t){return e.storeId&&t.stores[e.storeId]?t.stores[e.storeId]:t.stores.__cache}function X(e){var t;const n={};for(const[o,r]of Object.entries(e)){const e=null==(t=r.config)?void 0:t.next;e&&!H(e)?n[o]={next:e}:n[o]={}}return n}function Q(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 Z(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 ee(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:oe(t.config.env)};r.debug("init");const i=await N(t.init,"TransformerInit",e.hooks)(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 te(e,t,n,o,r,s){const i=t.type||"unknown",c=e.logger.scope(`transformer:${i}`),a={collector:e,logger:c,id:n,ingest:r,config:t.config,env:{...oe(t.config.env),...s?{respond:s}:{}}};c.debug("push",{event:o.name});const l=await N(t.push,"TransformerPush",e.hooks)(o,a);return c.debug("push done"),l}async function ne(e,t,n,o,r,s,i){var c,a,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 T(ee)(e,s,o))return e.logger.error(`Transformer init failed: ${o}`),{event:null,respond:m};if(i&&void 0!==(null==(a=null==(c=s.config)?void 0:c.chainMocks)?void 0:a[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?G(b):void 0,v=h?J(h,e):void 0;let y;if(h&&v){const e=K(h,v,B(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=Z("string"==typeof w||Array.isArray(w)&&!H(w)?w:U(V(w),B(r,p))||void 0,X(t));if(n.length>0){const o=await ne(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 T(te,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),c=await Promise.all(k.map(async n=>{const o=n.event||p,c=r?{...r,_meta:{...r._meta,path:[...r._meta.path]}}:l("unknown");if(n.next){let r=n.next;if(H(n.next)){r=U(V(n.next),B(c,o))}if(r){const n=Z(r,X(t));if(n.length>0)return ne(e,t,n,o,c,m,i)}return{event:o,respond:m}}return s.length>0?ne(e,t,s,o,c,m,i):{event:o,respond:m}}));let a=m;const u=[];for(const e of c.flat())if(null!==e)if(e&&"object"==typeof e&&"event"in e){const t=e;if(t.respond&&(a=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:a}:1===u.length?{event:u[0],respond:a}:{event:u,respond:a}}if(k&&"object"==typeof k){const{event:n,respond:o,next:s}=k;if(o&&(m=o),s){let o=s;if(H(s)){if(o=U(V(s),B(r,p)),!o){n&&(p=n);continue}}const c=Z(o,X(t));return c.length>0?ne(e,t,c,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&&z(v,y.key,p,y.ttl),(!k||"object"==typeof k&&!k.next)&&s.config.next&&H(s.config.next)){const n=U(V(s.config.next),B(r,p));if(n){const o=Z(n,X(t));if(o.length>0)return ne(e,t,o,p,r,m,i)}return{event:p,respond:m}}}return{event:p,respond:m}}function oe(e){return e&&b(e)?e:{}}async function re(e,t,n){var o;const{code:r,config:s={},env:i={},primary:c,next:a,before:u,cache:f}=n;let d,g=l(t);const p=f?G({...f,full:null==(o=f.full)||o}):void 0,m=V(a),b=Array.isArray(a)&&H(a)||!m?void 0:Z(U(m),X(e.transformers)),h=V(u),v=Array.isArray(u)&&H(u)||!h?void 0:Z(U(h),X(e.transformers)),y=e.logger.scope("source").scope(t),w={push:async(n,o={})=>{let r,i=n;const c=null!=v?v:h?Z(U(h,B(g)),X(e.transformers)):[];if(c.length>0&&e.transformers&&Object.keys(e.transformers).length>0){const n=await ne(e,e.transformers,c,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=J(p,e);if(n){const e=B(g),o=K(p,n,e,`s:${t}`);if(o){if("HIT"===o.status&&void 0!==o.value&&p.full){let t=o.value;return o.rule.update&&(t=await F(t,o.rule.update,{...e,cache:{status:"HIT"}})),null==d||d(t),{ok:!0}}if("MISS"===o.status&&p.full&&d){const t=d,s=o.rule.update,i={...e,cache:{status:"MISS"}},c=o.key,a=o.rule.ttl;d=e=>{z(n,c,e,a),s?r=(async()=>{const n=await F(e,s,i);t(n)})():t(e)}}"MISS"!==o.status||p.full||z(n,o.key,!0,o.rule.ttl)}}}const a=null!=b?b:m?Z(U(m,B(g)),X(e.transformers)):[],l=await e.push(i,{...o,id:t,ingest:g,respond:d,mapping:s,preChain:a});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 R(n,s.ingest,{collector:e}),r=l(t);g={...r,...o,_meta:r._meta}},setRespond:e=>{d=e}},x=await T(r)(k);if(!x)return;const j=x.type||"unknown",O=e.logger.scope(j).scope(t);return w.logger=O,c&&(x.config={...x.config,primary:c}),x}function se(e,t,n,o,r){if(!t.on)return;const s=t.type||"unknown",i=e.logger.scope(s).scope("on").scope(o),c={collector:e,logger:i,id:n,config:t.config,data:r,env:pe(t.env,t.config.env)};_(t.on)(o,c)}function ie(e,t,n,o){let r;switch(t){case Y.Commands.Consent:r=o||e.consent;break;case Y.Commands.Session:r=e.session;break;case Y.Commands.User:r=o||e.user;break;case Y.Commands.Custom:r=o||e.custom;break;case Y.Commands.Globals:r=o||e.globals;break;case Y.Commands.Config:r=o||e.config;break;case Y.Commands.Ready:case Y.Commands.Run:default:r=void 0}if(n.length)switch(t){case Y.Commands.Consent:!function(e,t,n){const o=n||e.consent;t.forEach(t=>{Object.keys(o).filter(e=>e in t).forEach(n=>{_(t[n])(e,o)})})}(e,n,o);break;case Y.Commands.Ready:case Y.Commands.Run:i=n,(s=e).allowed&&i.forEach(e=>{_(e)(s)});break;case Y.Commands.Session:!function(e,t){e.session&&t.forEach(t=>{_(t)(e,e.session)})}(e,n);break;default:n.forEach(t=>{"function"==typeof t&&_(t)(e,r)})}var s,i}function ce(e,t,n,o){if(!e)return[];if(t){const e=U(t,B(o));return e?Z(e,X(n)):[]}return Z(e,X(n))}async function ae(e,t,n){const{code:o,config:r={},env:s={},before:i,next:c,cache:a}=t;if(!m(o.push))return de({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};c&&(u={...u,next:c}),a&&(u={...u,cache:a});const f={...o,config:u,env:pe(o.env,s)};let d=f.config.id;if(!d)do{d=O(5,"abcdefghijklmnopqrstuvwxyz")}while(e.destinations[d]);return e.destinations[d]=f,!1!==f.config.queue&&(f.queuePush=[...e.queue]),le(e,void 0,{},{[d]:f})}async function le(e,t,n={},o){const{allowed:r,consent:s,globals:i,user:c}=e;if(!r)return de({ok:!1});t&&(e.queue.push(t),e.status.in++),o||(o=e.destinations);const a=await Promise.all(Object.entries(o||{}).map(async([o,r])=>{var a,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==(a=r.queueOn)?void 0:a.length))return{id:o,destination:r,skipped:!0};if(!g.length&&(null==(u=r.queueOn)?void 0:u.length)){const t=await T(ue)(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 T(ue)(e,r,o))return{id:o,destination:r,queue:g};let h,y;r.dlq||(r.dlq=[]);const w=r.config.before,k=ce(w,w&&H(w)?V(w):void 0,e.transformers,p),x=r.config.next,O=x&&H(x)?V(x):void 0,E=null==(d=r.config)?void 0:d.cache,C=E?G(E):void 0,A=C?J(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(c,t.user),(null==C?void 0:C.full)&&A){const e=B(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 a=t,l=n.respond;if(k.length>0&&e.transformers&&Object.keys(e.transformers).length>0){const r=await ne(e,e.transformers,k,t,p,n.respond,`destination.${o}.before`);if(null===r.event)return t;r.respond&&(l=r.respond),a=Array.isArray(r.event)?r.event[0]:r.event}if(C&&!C.full&&A){const e=B(p,a),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 T(fe,t=>{const n=r.type||"unknown";e.logger.scope(n).error("Push failed",{error:t,event:a.name}),h=t,d=!0,r.dlq.push([a,t])})(e,r,o,a,p,l);if(S+=Date.now()-u,s&&A&&void 0===r.config.mock&&z(A,s.key,null==g||g,s.ttl),void 0!==g&&(y=g),!d&&x){void 0!==g&&(p._response=g);const t=ce(x,O,e.transformers,p);if(t.length>0&&e.transformers&&Object.keys(e.transformers).length>0){const n=await ne(e,e.transformers,t,a,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 a){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 de({event:t,...Object.keys(u).length&&{done:u},...Object.keys(d).length&&{queued:d},...Object.keys(g).length&&{failed:g}})}async function ue(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:pe(t.env,t.config.env)};s.debug("init");const c=await N(t.init,"DestinationInit",e.hooks)(i);if(!1===c)return c;if(t.config={...c||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)se(e,t,n,r,s)}s.debug("init done")}return!0}async function fe(e,t,n,o,r,s){const{config:i}=t,c=await L(o,i,e);if(c.ignore)return!1;const a=t.type||"unknown",l=e.logger.scope(a),u={collector:e,logger:l,id:n,config:i,data:c.data,rule:c.mapping,ingest:r,env:{...pe(t.env,i.env),...s?{respond:s}:{}}};if(void 0!==i.mock)return l.debug("mock",{event:c.event.name}),i.mock;const f=c.mapping,d=c.mappingKey||"* *";if(!(null==f?void 0:f.batch)||!t.pushBatch||void 0!==i.mock){l.debug("push",{event:c.event.name});const n=await N(t.push,"DestinationPush",e.hooks)(c.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:E(()=>{const o=t.batches[d].batched,c={collector:e,logger:l,id:n,config:i,data:void 0,rule:f,ingest:r,env:{...pe(t.env,i.env),...s?{respond:s}:{}}};l.debug("push batch",{events:o.events.length}),N(t.pushBatch,"DestinationPushBatch",e.hooks)(o,c),l.debug("push batch done"),o.events=[],o.data=[]},f.batch)}}const o=t.batches[d];o.batched.events.push(c.event),g(c.data)&&o.batched.data.push(c.data),o.batchFn()}return!0}function de(e){return{ok:!(null==e?void 0:e.failed),...e}}function ge(e){const{code:t,config:n={},env:o={},cache:r}=e,{config:s}=Q(e,"before"),{config:i}=Q({...e,config:s},"next"),c={...t.config,...n,...i};r&&(c.cache=r);const a=pe(t.env,o);return{...t,config:c,env:a}}function pe(e,t){return e||t?t?e&&b(e)&&b(t)?{...e,...t}:t:e:{}}async function me(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",c=n.scope(i),a={id:e,config:o.config,env:null!=(r=o.env)?r:{},logger:c};try{await Promise.race([s(a),new Promise((n,o)=>setTimeout(()=>o(new Error(`${t} '${e}' destroy timed out`)),5e3))])}catch(n){c.error(`${t} '${e}' destroy failed: ${n}`)}});await Promise.allSettled(o)}async function be(e,t,n,o){let r,s,i=!1;switch(t){case Y.Commands.Config:b(n)&&(f(e.config,n,{shallow:!1}),s=n,i=!0);break;case Y.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 Y.Commands.Custom:b(n)&&(e.custom=f(e.custom,n),s=n,i=!0);break;case Y.Commands.Destination:b(n)&&("code"in n&&b(n.code)?r=await ae(e,n,o):m(n.push)&&(r=await ae(e,{code:n},o)));break;case Y.Commands.Globals:b(n)&&(e.globals=f(e.globals,n),s=n,i=!0);break;case Y.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,ie(e,t,s)}(e,n,o);break;case Y.Commands.Ready:i=!0;break;case Y.Commands.Run:r=await async function(e,t){return e.allowed=!0,e.count=0,e.group=O(),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 le(e)}(e,n),i=!0;break;case Y.Commands.Session:i=!0;break;case Y.Commands.Shutdown:await async function(e){const t=e.logger;await me(e.sources,"source",t),await me(e.destinations,"destination",t),await me(e.transformers,"transformer",t),await me(e.stores,"store",t)}(e);break;case Y.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 Y.Commands.Consent:r=o||e.consent;break;case Y.Commands.Session:r=e.session;break;case Y.Commands.User:r=o||e.user;break;case Y.Commands.Custom:r=o||e.custom;break;case Y.Commands.Globals:r=o||e.globals;break;case Y.Commands.Config:r=o||e.config;break;case Y.Commands.Ready:case Y.Commands.Run:default:r=void 0}let i=!1;for(const n of Object.values(e.sources))n.on&&!1===await T(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});se(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 c=await re(e,o,r);c&&(e.sources[o]=c)}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 c=ge(r);!1!==c.config.queue&&(c.queuePush=[...e.queue]),e.destinations[n]=c}}(e,t),ie(e,t,s,o),!i}(e,t,void 0,s),r=await le(e)),r||de({ok:!0})}function he(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");++e.count;const{timestamp:r=Date.now(),group:s=e.group,count:i=e.count}=t,{name:c=`${n} ${o}`,data:a={},context:l={},globals:u=e.globals,custom:f={},user:d=e.user,nested:g=[],consent:p=e.consent,id:m=`${r}-${s}-${i}`,trigger:b="",entity:h=n,action:v=o,timing:y=0,version:w={source:e.version,tagging:e.config.tagging||0},source:k={type:"collector",id:"",previous_id:""}}=t;return{name:c,data:a,context:l,globals:u,custom:f,user:d,nested:g,consent:p,id:m,trigger:b,entity:h,action:v,timestamp:r,timing:y,group:s,count:i,version:w,source:k}}async function ve(e){var t,n;const o=f({globalsStatic:{},sessionStatic:{},tagging:0,run:!0},e,{merge:!1,extend:!1}),r=$({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||{},count:0,custom:e.custom||{},destinations:{},transformers:{},stores:{},globals:s,group:"",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||{},version:"3.4.0",sources:{},pending:{sources:{},destinations:{}},push:void 0,command:void 0};var c,a;i.push=function(e,t){return N(async(n,o={})=>await T(async()=>{var r;const s=Date.now(),{id:i,ingest:c,respond:a,mapping:u,preChain:f,include:d,exclude:g}=o;let p=a,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!=c?c:l(i||"unknown");if(u){const t=await L(m,u,e);if(t.ignore)return de({ok:!0});if(u.consent&&!j(u.consent,e.consent,t.event.consent))return de({ok:!0});m=t.event}if((null==f?void 0:f.length)&&e.transformers&&Object.keys(e.transformers).length>0){const n=await ne(e,e.transformers,f,m,h,p,i?`source.${i}.next`:void 0);if(null===n.event)return de({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=he(e,o);return le(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:de({ok:!0})}m=n.event}const v=t(m),y=he(e,v),w=await le(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},()=>de({ok:!1}))(),"Push",e.hooks)}(i,e=>({timing:Math.round((Date.now()-i.timing)/10)/100,source:{type:"collector",id:"",previous_id:""},...e})),i.command=(a=be,N(async(e,t,n)=>await T(async()=>await a(c,e,t,n),()=>de({ok:!1}))(),"Command",(c=i).hooks));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,c=e.logger.scope("store").scope(o),a={collector:e,logger:c,id:o,config:s,env:i},l=await t(a),u=l.get,f=l.set,d=l.delete;l.get=N(u,"StoreGet",e.hooks),l.set=N(f,"StoreSet",e.hooks),l.delete=N(d,"StoreDelete",e.hooks),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]=ge(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}=Q(r,"before"),{config:c}=Q({...r,config:i},"next"),a=Object.keys(s).length>0?{...c,env:s}:c,{cache:u}=r,f=u?{...a,cache:u}:a,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 ye(e){e=e||{};const t=await ve(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 c;if("string"==typeof e)c={name:e},t&&"object"==typeof t&&!Array.isArray(t)&&(c.data=t);else{if(!e||"object"!=typeof e)return de({ok:!1});c=e,t&&"object"==typeof t&&!Array.isArray(t)&&(c.data={...c.data||{},...t})}return r&&"object"==typeof r&&(c.context=r),s&&Array.isArray(s)&&(c.nested=s),i&&"object"==typeof i&&(c.custom=i),o.push(c)}});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 re(e,o,r);s&&(n[o]=s)}return n}(t,e.sources||{});Object.assign(t.sources,r);const{consent:s,user:i,globals:c,custom:a}=e;s&&await t.command("consent",s),i&&await t.command("user",i),c&&Object.assign(t.globals,c),a&&Object.assign(t.custom,a),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 we(e,t){return(e.getAttribute(t)||"").trim()}function ke(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(),c=i.height,a=i.y,l=a+c,u={x:i.x+e.offsetWidth/2,y:i.y+e.offsetHeight/2};if(c<=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(a<0&&l<e)return!1;if(l>s&&a>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 xe(e,t,n=!0){return e+(t=null!=t?(n?"-":"")+t:"")}function je(e,t,n,o=!0){return Te(we(t,xe(e,n,o))||"").reduce((e,n)=>{let[o,r]=Re(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 Oe(e,t=Y.Commands.Prefix){var n;const o=e;if(!o)return[];let r=[];const s=Y.Commands.Action,i=`[${xe(t,s,!1)}]`,c=e=>{Object.keys(je(t,e,s,!1)).forEach(n=>{r=r.concat(Ee(e,n,t))})};return o!==(o.ownerDocument||o)&&(null==(n=o.matches)?void 0:n.call(o,i))&&c(o),_e(o,i,c),r}function Ee(e,t,n=Y.Commands.Prefix){const o=[],{actions:r,nearestOnly:s}=function(e,t,n){let o=t;for(;o;){const t=we(o,xe(e,Y.Commands.Actions,!1));if(t){const e=Ae(t);if(e[n])return{actions:e[n],nearestOnly:!1}}const r=we(o,xe(e,Y.Commands.Action,!1));if(r){const e=Ae(r);if(e[n]||"click"!==n)return{actions:e[n]||[],nearestOnly:!0}}o=De(e,o)}return{actions:[],nearestOnly:!1}}(n,e,t);return r.length?(r.forEach(r=>{const i=Te(r.actionParams||"",",").reduce((e,t)=>(e[M(t)]=!0,e),{}),c=Se(n,e,i,s);if(!c.length){const t="page",o=`[${xe(n,t)}]`,[r,s]=Pe(e,o,n,t);c.push({entity:t,data:r,nested:[],context:s})}c.forEach(e=>{o.push({entity:e.entity,action:r.action,data:e.data,trigger:t,context:e.context,nested:e.nested})})}),o):o}function Ce(e=Y.Commands.Prefix,t){if(!t)return{};const n=xe(e,Y.Commands.Globals,!1);let o={};return qe(t,`[${n}]`,t=>{o=f(o,je(e,t,Y.Commands.Globals,!1))}),o}function Ae(e){const t={};return Te(e).forEach(e=>{const[n,o]=Re(e),[r,s]=Ie(n);if(!r)return;let[i,c]=Ie(o||"");i=i||r,t[r]||(t[r]=[]),t[r].push({trigger:r,triggerParams:s,action:i,actionParams:c})}),t}function Se(e,t,n,o=!1){const r=[];let s=t;for(n=0!==Object.keys(n||{}).length?n:void 0;s;){const i=$e(e,s,t,n);if(i&&(r.push(i),o))break;s=De(e,s)}return r}function $e(e,t,n,o){const r=we(t,xe(e));if(!r||o&&!o[r])return null;const s=[t],i=`[${xe(e,r)}],[${xe(e,"")}]`,c=xe(e,Y.Commands.Link,!1);let a={};const l=[],[u,d]=Pe(n||t,i,e,r);_e(t,`[${c}]`,n=>{const[o,r]=Re(we(n,c));"parent"===r&&_e(t.ownerDocument.body,`[${c}="${o}:child"]`,t=>{s.push(t);const n=$e(e,t);n&&l.push(n)})});const g=[];s.forEach(e=>{e.matches(i)&&g.push(e),_e(e,i,e=>g.push(e))});let p={};return g.forEach(t=>{p=f(p,je(e,t,"")),a=f(a,je(e,t,r))}),a=f(f(p,a),u),s.forEach(t=>{_e(t,`[${xe(e)}]`,t=>{const n=$e(e,t);n&&l.push(n)})}),{entity:r,data:a,context:d,nested:l}}function De(e,t){const n=xe(e,Y.Commands.Link,!1);if(t.matches(`[${n}]`)){const[e,o]=Re(we(t,n));if("child"===o){const o=t.ownerDocument;let r=null;return qe(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 Pe(e,t,n,o){let r={};const s={};let i=e;const c=`[${xe(n,Y.Commands.Context,!1)}]`;let a=0;for(;i;)i.matches(t)&&(r=f(je(n,i,""),r),r=f(je(n,i,o),r)),i.matches(c)&&(Object.entries(je(n,i,Y.Commands.Context,!1)).forEach(([e,t])=>{t&&!s[e]&&(s[e]=[t,a])}),++a),i=De(n,i);return[r,s]}function qe(e,t,n){e.querySelectorAll(t).forEach(n)}function _e(e,t,n){e.querySelectorAll(t).forEach(n);e instanceof(e.ownerDocument||e).defaultView.Element&&e.shadowRoot&&_e(e.shadowRoot,t,n),e.querySelectorAll("*").forEach(e=>{e.shadowRoot&&_e(e.shadowRoot,t,n)})}function Te(e,t=";"){if(!e)return[];const n=new RegExp(`(?:[^${t}']+|'[^']*')+`,"ig");return e.match(n)||[]}function Re(e){const[t,n]=e.split(/:(.+)/,2);return[M(t),M(n)]}function Ie(e){const[t,n]=e.split("(",2);return[t,n?n.slice(0,-1):""]}var Le=new WeakMap,Me=new WeakMap,Ne=new WeakMap;function We(e){const t=Date.now();let n=Me.get(e);if(!n||t-n.lastChecked>500){n={isVisible:ke(e,e.ownerDocument.defaultView,e.ownerDocument),lastChecked:t},Me.set(e,n)}return n.isVisible}function He(e){const t=(e.ownerDocument||e).defaultView;if(t&&t.IntersectionObserver)return _(()=>new t.IntersectionObserver(t=>{t.forEach(t=>{!function(e,t){var n,o;const r=t.target,s=Ne.get(e);if(!s)return;const i=s.timers.get(r);if(t.intersectionRatio>0){const o=Date.now();let c=Le.get(r);if(!c||o-c.lastChecked>1e3){const e=r.ownerDocument.defaultView;c={isLarge:r.offsetHeight>e.innerHeight,lastChecked:o},Le.set(r,c)}if(t.intersectionRatio>=.5||c.isLarge&&We(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(We(r)){const o=null==(t=s.elementConfigs)?void 0:t.get(r);(null==o?void 0:o.context)&&await st(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=Ne.get(e);if(!n)return;n.observer&&n.observer.unobserve(t);const o=n.timers.get(t);o&&(clearTimeout(o),n.timers.delete(t)),Le.delete(t),Me.delete(t)}(e,r)}},s.duration);s.timers.set(r,t)}return}}i&&(clearTimeout(i),s.timers.delete(r));const c=null==(o=s.elementConfigs)?void 0:o.get(r);(null==c?void 0:c.multiple)&&(c.blocked=!1)}(e,t)})},{rootMargin:"0px",threshold:[0,.5]}),()=>{})()}function Ve(e,t,n={multiple:!1}){var o;const r=e.settings.scope;if(!r)return;const s=Ne.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 Ue(e){if(!e)return;const t=Ne.get(e);t&&(t.observer&&t.observer.disconnect(),Ne.delete(e))}function Be(e,t,n,o,r,s,i){const{elb:c,settings:a}=e;if(h(t)&&t.startsWith("walker "))return c(t,n);if(b(t)){const e=t;if(!e.source&&a.scope){const t=a.scope.ownerDocument||a.scope,n=t.defaultView;e.source=Ge(n,t)}return!e.globals&&a.scope&&(e.globals=Ce(a.prefix,a.scope)),c(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=Se(a.prefix||"data-elb",u).find(e=>e.entity===l);e&&(g&&(f=e.data),d=e.context)}const m=a.scope?a.scope.ownerDocument||a.scope:void 0,v=null==m?void 0:m.defaultView;"page"===l&&v&&(f.id=f.id||v.location.pathname);const y=Ce(a.prefix,a.scope);return c({name:String(t||""),data:f,context:d,globals:y,nested:s,custom:i,trigger:h(o)?o:"",source:v&&m?Ge(v,m):void 0})}function Ge(e,t){return{type:"browser",id:e.location.href,previous_id:t.referrer}}var Ke,ze=[],Fe="click",Ye="hover",Je="load",Xe="pulse",Qe="scroll",Ze="submit",et="impression",tt="visible",nt="wait";function ot(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;if(!n)return;n.addEventListener("click",_(function(t){at.call(this,e,t)})),n.addEventListener("submit",_(function(t){lt.call(this,e,t)}))}(e,t)}function rt(e,t){if(!t.scope)return;!function(e,t){const n=t.scope;ze=[];const o=n;if(!o)return;Ue(o),function(e,t=1e3){Ne.has(e)||Ne.set(e,{observer:He(e),timers:new WeakMap,duration:t})}(o,1e3);const r=xe(t.prefix,Y.Commands.Action,!1),s=o.ownerDocument||o;o!==s&&it(e,o,r,t);_e(o,`[${r}]`,n=>{it(e,n,r,t)}),ze.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)||(st(t,e,Qe),!1)});Ke||(Ke=function(e,t=1e3){let n=null;return function(...o){if(null===n)return n=setTimeout(()=>{n=null},t),e(...o)}}(function(){ze=r.call(t,ze,e)}),t.addEventListener("scroll",Ke))}(e,o)}(e,t)}async function st(e,t,n){const o=Ee(t,n,e.settings.prefix);return Promise.all(o.map(t=>Be(e,{name:`${t.entity} ${t.action}`,...t,trigger:n})))}function it(e,t,n,o){const r=we(t,n);r&&Object.values(Ae(r)).forEach(n=>n.forEach(n=>{switch(n.trigger){case Ye:!function(e,t){t.addEventListener("mouseenter",_(function(t){const n=ct(t);n&&st(e,n,Ye)}))}(e,t);break;case Je:!function(e,t){st(e,t,Je)}(e,t);break;case Xe:!function(e,t,n=""){const o=t.ownerDocument;setInterval(()=>{o.hidden||st(e,t,Xe)},parseInt(n||"")||15e3)}(e,t,n.triggerParams);break;case Qe:!function(e,t=""){const n=parseInt(t||"")||50;if(n<0||n>100)return;ze.push([e,n])}(t,n.triggerParams);break;case et:Ve(e,t);break;case tt:Ve(e,t,{multiple:!0});break;case nt:!function(e,t,n=""){setTimeout(()=>st(e,t,nt),parseInt(n||"")||15e3)}(e,t,n.triggerParams)}}))}function ct(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 at(e,t){const n=ct(t);n&&st(e,n,Fe)}function lt(e,t){const n=ct(t);n&&st(e,n,Ze)}function ut(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(gt(n[0])){const o=[...Array.from(n[0])],r=Array.prototype.push.apply(this,[o]);return dt(e,t.prefix,o,i),r}const o=Array.prototype.push.apply(this,n);return n.forEach(n=>{dt(e,t.prefix,n,i)}),o},Array.isArray(s)&&s.length>0&&function(e,t="data-elb",n,o){ft(e,t,n,!0,o),ft(e,t,n,!1,o),n.length=0}(e,t.prefix,s,i)}function ft(e,t,n,o,r){const s=[];let i=!0;n.forEach(e=>{const t=gt(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],c=!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&&c||!o&&!c)&&s.push(t)}),s.forEach(n=>{dt(e,t,n,r)})}function dt(e,t="data-elb",n,o){_(()=>{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]);Be({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 gt(e){return null!=e&&"object"==typeof e&&"[object Arguments]"===Object.prototype.toString.call(e)}var pt={},mt={};r(mt,{createTrigger:()=>$t,env:()=>bt,step:()=>kt,trigger:()=>Dt});var bt={};r(bt,{push:()=>wt});var ht=()=>{},vt=()=>()=>Promise.resolve({ok:!0}),yt={error:ht,warn:ht,info:ht,debug:ht,throw:e=>{throw"string"==typeof e?new Error(e):e},json:ht,scope:()=>yt},wt={get push(){return vt()},get command(){return vt()},get elb(){return vt()},get window(){return{addEventListener:ht,removeEventListener:ht,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:ht,removeEventListener:ht,querySelector:ht,querySelectorAll:()=>[],getElementById:ht,getElementsByClassName:()=>[],getElementsByTagName:()=>[],createElement:()=>({setAttribute:ht,getAttribute:ht,addEventListener:ht,removeEventListener:ht}),body:{appendChild:ht,removeChild:ht},documentElement:{scrollTop:0,scrollLeft:0},readyState:"complete",title:"Test Page",referrer:"",cookie:""}},logger:yt},kt={};r(kt,{clickEvent:()=>jt,contextAndGlobals:()=>St,dataAttributeTypes:()=>At,impressionEvent:()=>Et,nestedEntities:()=>Ct,pageView:()=>xt,submitEvent:()=>Ot});var xt={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",id:"https://example.com/docs",previous_id:"https://example.com/"}}]]},jt={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",id:"https://example.com/",previous_id:""},trigger:"click"}]]},Ot={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",id:"https://example.com/",previous_id:""},trigger:"submit"}]]},Et={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",id:"https://example.com/",previous_id:""},trigger:"impression"}]]},Ct={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",id:"https://example.com/",previous_id:""}}],["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",id:"https://example.com/",previous_id:""},trigger:"load"}]]},At={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",id:"https://example.com/",previous_id:""},trigger:"click"}]]},St={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",id:"https://example.com/",previous_id:""},trigger:"click"}]]},$t=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 c=>{var a;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(c&&(r.body.innerHTML=c),!o){const t=await ye({...e,run:null==(a=e.run)||a});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 st(d,u,t)}}},Dt=(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 Pt(e={}){const t=e.prefix||"data-elb";return function(e){let n,o=e;const r={},s={},i={},c={},a={},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)?c[e]=t:Object.assign(c,e),f),globals:(e,t)=>(h(e)?a[e]=t:Object.assign(a,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(c).length>0&&(e[`${t}context`]=u(c)),Object.keys(a).length>0&&(e[`${t}globals`]=u(a)),Object.keys(l).length>0&&(e[`${t}link`]=u(l)),e}};return f}}var qt,_t=async e=>{const{config:t,env:n}=e,{elb:o,command:r,window:s,document:i}=n,c=(null==t?void 0:t.settings)||{},a=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}}(c,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,c]=Pe(s,`[${xe(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,c]}(e.prefix||"data-elb",e.scope);Be(d,"page view",t,"load",n)}};a&&l&&(!1!==u.elbLayer&&o&&ut(o,{name:h(u.elbLayer)?u.elbLayer:"elbLayer",prefix:u.prefix,window:a}),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)}(ot,d,u),h(u.elb)&&u.elb&&(a[u.elb]=(...e)=>{const[t,n,o,r,s,i]=e;return Be(d,t,n,o,r,s,i)}));return{type:"browser",config:f,push:(...e)=>{const[t,n,o,r,s,i]=e;return Be(d,t,n,o,r,s,i)},destroy:async()=>{l&&Ue(u.scope||l)},on:async e=>{switch(e){case"ready":default:break;case"run":l&&a&&(rt(d,u),g(u))}}}},Tt=_t;return qt=s,((r,s,i,c)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let a of n(s))o.call(r,a)||a===i||e(r,a,{get:()=>s[a],enumerable:!(c=t(s,a))||c.enumerable});return r})(e({},"__esModule",{value:!0}),qt)})();
|