Socket
Socket
Sign inDemoInstall

@uniformdev/context

Package Overview
Dependencies
6
Maintainers
8
Versions
551
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 12.2.1-alpha.135 to 12.2.1-alpha.141

2

dist/index.d.ts

@@ -325,3 +325,3 @@ import { c as components, e as external } from './v2-manifest.swagger-d0899723';

declare function evaluateVariantMatch(match: VariantMatchCriteria, vec: ScoreVector): boolean;
declare function evaluateVariantMatch(match: VariantMatchCriteria | undefined | null, vec: ScoreVector): boolean;

@@ -328,0 +328,0 @@ declare type VariantMatchCriteria = {

@@ -1,3 +0,3 @@

import{b as y,c as s,d as u,e as m,f as h}from"./chunk-TRWANXVF.mjs";function nt(i,t){let e={...i};for(let r in t){let o=at(i,r,t,new Set([r]));o!==0&&(e[r]=o)}return e}function at(i,t,e,r){var n;let o=0;for(let a of e[t].inputs){let c=(n=i[a.dim])!=null?n:0;if(!c&&e[a.dim]){if(r.has(a.dim))continue;let f=new Set(r);f.add(a.dim),c=at(i,a.dim,e,f)}if(c!==0)if(a.sign==="c"){o=0;break}else a.sign==="-"?o-=c:o+=c}return o}var A,k,X=class{constructor(t,e,r){u(this,A,void 0);u(this,k,void 0);y(this,"signal");m(this,k,t),this.signal=e,m(this,A,r)}computeSignals(t,e){if(t.scores[s(this,k)]>=this.signal.cap&&this.signal.dur!=="t")return;let o=s(this,A).evaluate(t,this.signal.crit,e,this.signal,s(this,k)),n=this.signal.dur==="s"||this.signal.dur==="t"?"modscoreS":"modscore";if(o)e.push({type:n,data:{dimension:s(this,k),delta:this.signal.str}});else if(this.signal.dur==="t"){let a=t.visitor.sessionScores[s(this,k)];a&&e.push({type:n,data:{dimension:s(this,k),delta:-a}})}}};A=new WeakMap,k=new WeakMap;var ct="_",C,$,R=class{constructor({manifest:t,evaluator:e=new N({})}){u(this,C,void 0);u(this,$,void 0);var r,o,n;m(this,C,(r=t.project)!=null?r:{}),m(this,$,Object.entries((n=(o=s(this,C).pz)==null?void 0:o.sig)!=null?n:[]).map(([a,c])=>new X(a,c,e)))}rollForControlGroup(){var t,e;return Math.random()<((e=(t=s(this,C).pz)==null?void 0:t.control)!=null?e:0)}getTest(t){var e;return(e=s(this,C).test)==null?void 0:e[t]}computeSignals(t){let e=[];return s(this,$).forEach(r=>{r.computeSignals(t,e)}),e}computeAggregateDimensions(t){var e,r;return nt(t,(r=(e=s(this,C).pz)==null?void 0:e.agg)!=null?r:{})}getDimensionByKey(t){var r,o,n,a;let e=t.indexOf(ct);return e<=0?(o=(r=s(this,C).pz)==null?void 0:r.sig)==null?void 0:o[t]:(a=(n=s(this,C).pz)==null?void 0:n.enr)==null?void 0:a[t.substring(0,e)]}static getEnrichmentVectorKey(t,e){return`${t}${ct}${e}`}};C=new WeakMap,$=new WeakMap;var ut=(i,t)=>{var o;if(t.type!=="CK")return!1;let e=(o=i.state.cookies)==null?void 0:o[t.cookieName];return x(e,t.match)};function dt(i,t){var r;if(typeof i=="undefined"||i===null)return!1;let e=Number(i);if(isNaN(e))return!1;switch((r=t==null?void 0:t.op)!=null?r:"="){case"=":return e===t.rhs;case"!=":return e!==t.rhs;case">":return e>t.rhs;case"<":return e<t.rhs;default:return console.warn(`Unknown match type ${t.op} is false.`),!1}}var Z=R.getEnrichmentVectorKey("$pvc","v"),lt=(i,t,e)=>{var a,c;if(t.type!=="PVC")return!1;let r=!i.previousState||((a=i.state.url)==null?void 0:a.toString())!==((c=i.previousState.url)==null?void 0:c.toString()),n=(i.visitor.sessionScores[Z]||0)+1;if(dt(n,t.match)){let d=e.some(f=>f.type==="modscoreS"&&f.data.dimension===Z);return r&&!d&&e.push({type:"modscoreS",data:{dimension:Z,delta:1}}),!0}return!1};var pt=(i,t)=>{var r;if(t.type!=="QS")return!1;let e=(r=i.state.url)==null?void 0:r.searchParams.get(t.queryName);return x(e,t.match)};var mt=(i,t,e,r,o)=>{if(t.type!=="QK")return!1;if(typeof window=="undefined"&&r.dur==="t"&&i.scores[o]>0)return!0;let n=i.visitor.quirks[t.key];return x(n,t.match)};var ft=(i,t)=>{var e,r;return t.type!=="EVT"?!1:(r=(e=i.state.events)==null?void 0:e.some(o=>x(o.event,t.event)))!=null?r:!1};var gt=(i,t)=>{var e;return t.type!=="PV"?!1:x((e=i.state.url)==null?void 0:e.pathname,t.path)};var G,N=class{constructor(t){u(this,G,void 0);m(this,G,t)}evaluate(t,e,r,o,n){let a=!(e.op==="&"||!e.op);for(let c of e.clauses){let d;if(c.type==="G")d=this.evaluate(t,c,r,o,n);else{let f=s(this,G)[c.type];if(!f)throw new Error(`${c.type} signal criteria not registered`);d=f(t,c,r,o,n)}if(d===a)return a}return!a}};G=new WeakMap;function x(i,t){var a,c,d,f;let e=(a=t==null?void 0:t.op)!=null?a:"=";if(t.op==="*")return i!==null&&typeof i!="undefined";if(t.op==="!*")return i===null||typeof i=="undefined";if(!("rhs"in t))throw new Error(`Match expression is required for match type ${e}`);let r=(c=t.cs)!=null?c:!1,o=r?i!=null?i:"":ht(i),n=r?t.rhs:ht(t.rhs);switch(e){case"=":return o===n;case"!=":return o!==n;case"~":return(d=o.includes(n))!=null?d:!1;case"!~":return!((f=o.includes(n))!=null?f:!0);case"//":return new RegExp(t.rhs,r?"":"i").test(i!=null?i:"");case"!//":return!new RegExp(t.rhs,r?"":"i").test(i!=null?i:"");default:throw new Error(`Unknown match type ${e}.`)}}function ht(i){var t;return(t=i==null?void 0:i.toUpperCase())!=null?t:""}var K=()=>({quirks:{},scores:{},sessionScores:{},tests:{},consent:!1,controlGroup:!1});import Ot from"mitt";import{dequal as Ut}from"dequal/lite";var It="__UNIFORM_DATA__",T,q,j=class{constructor({initialData:t}){u(this,T,void 0);u(this,q,Ot());y(this,"events",{on:s(this,q).on,off:s(this,q).off});t&&m(this,T,t)}get data(){return s(this,T)}updateData(t,e){return m(this,T,e),this.handleUpdateData(t,e)}async delete(t){m(this,T,void 0),await this.handleDelete(t)}signalAsyncDataUpdate(t){Ut(this.data,t)||(m(this,T,t),s(this,q).emit("dataUpdatedAsync",t))}getClientTransitionState(){if(typeof document=="undefined")return;let t=document.getElementById(It);return(t==null?void 0:t.textContent)?JSON.parse(t.textContent):void 0}};T=new WeakMap,q=new WeakMap;import{ntob as Rt,bton as qt}from"number-to-base64";var St=typeof window=="undefined",O,U,Lt=class extends j{constructor({cookieAdapter:t,cookieName:e="ufvd"}){super({initialData:St?zt(t.get(e)):void 0});u(this,O,void 0);u(this,U,void 0);m(this,O,e),m(this,U,t)}handleDelete(){return s(this,U).remove(s(this,O)),Promise.resolve()}async handleUpdateData(t,e){St||(e.consent?s(this,U).set(s(this,O),At(e)):s(this,U).remove(s(this,O)))}};O=new WeakMap,U=new WeakMap;var yt="~",vt="!",Dt="-";function zt(i){if(!i)return;let t=i.split(yt);if(t.length>3)return;let[e,r,o]=t;return{consent:!0,sessionScores:Vt(tt(r)),scores:Vt(tt(o)),tests:tt(e)}}function tt(i){return i.split(vt).map(e=>e.split(Dt)).reduce((e,r)=>(r.length!==2||(e[r[0]]=r[1]),e),{})}function Vt(i){return Object.entries(i).reduce((t,[e,r])=>(t[e]=qt(r),t),{})}function At(i){return[et(i.tests),et(Ct(i.sessionScores)),et(Ct(i.scores))].join(yt)}function Ct(i){return Object.entries(i).reduce((t,[e,r])=>(t[e]=Rt(r),t),{})}function et(i){return Object.entries(i).map(t=>t.join(Dt)).join(vt)}var J,Nt,$t=class extends j{constructor({cookieAdapter:t,visitorIdCookieName:e="ufvi",...r}){super(r);u(this,J);r.initialData||h(this,J,Nt).call(this).catch(o=>{console.error(o)})}handleDelete(t){throw new Error("Method not implemented.")}async handleUpdateData(t){let e=await new Promise(r=>{setTimeout(()=>{r(void 0)},2e3)});e&&this.signalAsyncDataUpdate(e)}};J=new WeakSet,Nt=async function(){let t=await new Promise(e=>{setTimeout(()=>{e(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};function Ae(i){let{gracePeriod:t=864e5,decayRate:e=1/30,decayCap:r=.95}=i!=null?i:{};return function({now:n,lastUpd:a,scores:c,sessionScores:d}){if(typeof a!="number")return!1;let M=n-a-t;if(M<=0)return!1;let Q=M/864e5,W=1-Math.min(r,Q*e);return W<=0?!1:(xt(c,W),xt(d,W),!0)}}function xt(i,t){for(let e in i)i[e]*=t}import _t from"mitt";import{dequal as it}from"dequal/lite";var rt=class{constructor(){y(this,"inMemoryFallback",{});y(this,"hasLocalStorageObject",typeof localStorage!="undefined")}get(t){let e=this.inMemoryFallback[t];if(!this.hasLocalStorageObject||e)return e;try{let r=localStorage.getItem(t);return r?JSON.parse(r):void 0}catch(r){return e}}set(t,e,r){if(this.inMemoryFallback[t]=e,!(!this.hasLocalStorageObject||!r))try{localStorage.setItem(t,JSON.stringify(e))}catch(o){console.warn(o)}}delete(t,e){e||delete this.inMemoryFallback[t];try{localStorage.removeItem(t)}catch(r){}}};import Gt from"rfdc";var jt=Gt();function kt(i,t,e){let r=t?jt(t):K();return i.forEach(o=>{var n,a;switch(o.type){case"consent":r.consent=o.data;break;case"setquirk":r.quirks[o.data.key]=o.data.value;break;case"settest":r.tests[o.data.test]=o.data.variant;break;case"modscore":if(e)break;let c=(n=r.scores[o.data.dimension])!=null?n:0;r.scores[o.data.dimension]=c+o.data.delta;break;case"modscoreS":if(e)break;let d=(a=r.sessionScores[o.data.dimension])!=null?a:0;r.sessionScores[o.data.dimension]=d+o.data.delta;break;case"identify":break;default:throw new Error("Unknown command")}}),r}var B="ufvisitor",v,I,z,S,D,w,b,L,Y,Ft,H,Qt,_,bt,F,Et,ot=class{constructor(t){u(this,D);u(this,b);u(this,Y);u(this,H);u(this,_);u(this,F);u(this,v,_t());u(this,I,new rt);u(this,z,void 0);u(this,S,void 0);y(this,"events",{on:s(this,v).on,off:s(this,v).off});if(m(this,S,t),s(this,D,w)||h(this,b,L).call(this,h(this,F,Et).call(this),!0),t.transitionStore){let e=t.transitionStore.getClientTransitionState();e&&e.quirks&&this.updateData(Object.entries(e.quirks).map(([o,n])=>({type:"setquirk",data:{key:o,value:n}}))),t.transitionStore.events.on("dataUpdatedAsync",o=>{h(this,b,L).call(this,{...s(this,D,w).visitorData,...o})});let r=t.transitionStore.data;r&&h(this,b,L).call(this,{...s(this,D,w).visitorData,...r},!0)}}get data(){let t=s(this,D,w);if(h(this,H,Qt).call(this,t)){let{sessionScores:e,...r}=t.visitorData;return h(this,b,L).call(this,{...r,sessionScores:{}}),s(this,v).emit("log",["info",120]),s(this,D,w).visitorData}return t.visitorData}async updateData(t){var r,o;if(t.length===0)return;s(this,v).emit("log",["debug",101,t]);let e=kt(t,this.data,(r=s(this,D,w))==null?void 0:r.visitorData.controlGroup);t.some(n=>n.type==="consent"&&!n.data)&&s(this,I).delete(B,!0),h(this,b,L).call(this,e),await((o=s(this,S).transitionStore)==null?void 0:o.updateData(t,s(this,D,w).visitorData))}async delete(t){var e;s(this,I).delete(B,!1),await((e=s(this,S).transitionStore)==null?void 0:e.delete(t)),s(this,v).emit("log",["info",103,t]),h(this,b,L).call(this,h(this,F,Et).call(this))}};v=new WeakMap,I=new WeakMap,z=new WeakMap,S=new WeakMap,D=new WeakSet,w=function(){return s(this,I).get(B)},b=new WeakSet,L=function(t,e=!1){var f,M;let r=s(this,D,w),o=Date.now();h(this,_,bt).call(this,t.scores),h(this,_,bt).call(this,t.sessionScores),(M=(f=s(this,S)).decay)==null||M.call(f,{now:o,lastUpd:r==null?void 0:r.updated,scores:t.scores,sessionScores:t.sessionScores});let n=!it(r==null?void 0:r.visitorData.scores,t.scores),a=!it(r==null?void 0:r.visitorData.sessionScores,t.sessionScores),c=!it(r==null?void 0:r.visitorData.quirks,t.quirks),d={updated:o,visitorData:t};h(this,Y,Ft).call(this),s(this,I).set(B,d,!!t.consent),s(this,v).emit("log",["debug",102,t]),e||((n||a)&&s(this,v).emit("scoresUpdated",t),c&&s(this,v).emit("quirksUpdated",t))},Y=new WeakSet,Ft=function(){typeof window=="undefined"||!s(this,S).visitLifespan||(s(this,z)&&window.clearTimeout(s(this,z)),m(this,z,window.setTimeout(()=>{this.data},s(this,S).visitLifespan+50)))},H=new WeakSet,Qt=function(t){let e=s(this,S).visitLifespan;return e?t.updated+e<Date.now():!1},_=new WeakSet,bt=function(t){if(!!s(this,S).manifest)for(let e in t){let r=t[e],o=s(this,S).manifest.getDimensionByKey(e);!o||r>o.cap&&(s(this,v).emit("log",["debug",110,{dim:e,score:r,cap:o.cap}]),t[e]=o.cap)}},F=new WeakSet,Et=function(){var t,e,r;return{...K(),consent:(t=s(this,S).defaultConsent)!=null?t:!1,controlGroup:(r=(e=s(this,S).manifest)==null?void 0:e.rollForControlGroup())!=null?r:!1}};import Jt from"mitt";function Tt({context:i,variations:t,take:e=1}){var c;let r=(c=i.storage.data.controlGroup)!=null?c:!1,o=[],n=!1,a=i.scores;for(let d of t){if(o.length===e)break;if(!d.pz){o.push(d);continue}!r&&wt(d.pz,a)&&(n=!0,o.push(d))}return{personalized:n,variations:o}}function wt(i,t){return!i.op||i.op==="&"?i.crit.every(e=>Pt(e,t)):i.crit.some(e=>Pt(e,t))}function Pt(i,t){var a;let{op:e,l:r}=i,o=(a=t[r])!=null?a:0;if(e==="+")return Math.max(...Object.values(t))===o&&o>0;if(e==="-")return Math.min(...Object.values(t))===o&&o>0;let n=i.rDim?t[i.rDim]:i.r;if(n===void 0)return!1;if(e===">")return o>n;if(e===">=")return o>=n;if(e==="<")return o<n;if(e==="<=")return o<=n;if(e==="=")return o===n;if(e==="!=")return o!==n;throw new Error(`Unknown op: ${e}`)}var Kt=i=>{let{values:t,total:e,missingDistribution:r}=i.reduce((o,n)=>(n.testDistribution?o.total+=n.testDistribution:++o.missingDistribution,o.values.push(n.testDistribution),o),{values:[],total:0,missingDistribution:0});if(e>100)throw new Error(`Total distribution ${e} is over the maximum 100.`);if(e<100){let n=(100-e)/r;t.forEach((a,c)=>{typeof a=="undefined"&&(t[c]=n)})}return t},st=({name:i,context:t,variations:e})=>{var n;let r,o=t.getTestVariantId(i);if(o===null)return{result:void 0};if(o&&(r=e.find(a=>a.id===o),r||t.log("warn",401,{test:i,variant:o})),!r){let a=Kt(e),c=Math.floor(Math.random()*100),d=0;r=e.find((f,M)=>{let Q=a[M];if(c>d&&c<=d+Q)return f;d+=Q}),r&&t.setTestVariantId(i,(n=r.id)!=null?n:"Unknown")}return{result:r}};var E,P,V,g,Bt=class{constructor(t){u(this,E,void 0);u(this,P,{});u(this,V,void 0);u(this,g,Jt());y(this,"events",{on:s(this,g).on,off:s(this,g).off});y(this,"storage");let{manifest:e,...r}=t;m(this,V,{}),m(this,E,new R({manifest:e,evaluator:new N({CK:ut,QS:pt,QK:mt,PVC:lt,EVT:ft,PV:gt})})),this.storage=new ot({manifest:s(this,E),...r}),this.storage.events.on("log",(...n)=>s(this,g).emit("log",...n));let o=n=>{var c;let a={...n.scores};for(let d in n.sessionScores)a[d]=((c=a[d])!=null?c:0)+n.sessionScores[d];a=s(this,E).computeAggregateDimensions(a),m(this,P,a),s(this,g).emit("scoresUpdated",a),s(this,g).emit("log",["info",3,a])};this.storage.events.on("scoresUpdated",o),o(this.storage.data),this.storage.events.on("quirksUpdated",n=>{let a=s(this,E).computeSignals({scores:s(this,P),state:s(this,V),previousState:s(this,V),visitor:this.storage.data});this.storage.updateData(a),s(this,g).emit("quirksUpdated",n.quirks),s(this,g).emit("log",["info",4,n.quirks])}),s(this,g).emit("log",["debug",1,{options:t,scores:s(this,P)}])}get scores(){return s(this,P)}async update(t){let e=[];s(this,g).emit("log",["info",2,t]),t.quirks&&(e.push(...Object.entries(t.quirks).map(([o,n])=>({type:"setquirk",data:{key:o,value:n}}))),t.quirks=void 0),t.enrichments&&(e.push(...t.enrichments.map(o=>({type:"modscore",data:{dimension:R.getEnrichmentVectorKey(o.cat,o.key),delta:o.str}}))),t.enrichments=void 0);let r=s(this,V);m(this,V,{...s(this,V),...t}),e.push(...s(this,E).computeSignals({state:s(this,V),previousState:r,visitor:this.storage.data,scores:s(this,P)})),await this.storage.updateData(e)}getTestVariantId(t){var r;let e=s(this,E).getTest(t);return e?(r=e.wv)!=null?r:this.storage.data.tests[t]:(s(this,g).emit("log",["warn",401,t]),null)}setTestVariantId(t,e){this.storage.updateData([{type:"settest",data:{test:t,variant:e}}])}log(...t){s(this,g).emit("log",t)}test(t){var r;let e=st({...t,context:this});return s(this,g).emit("testResult",{name:t.name,variantId:(r=e.result)==null?void 0:r.id,control:this.storage.data.controlGroup}),e}personalize(t){let e=Tt({...t,context:this});return t.name?s(this,g).emit("personalizationResult",{name:t.name,variantIds:e.variations.map(r=>{var o;return(o=r.id)!=null?o:"Unknown"}),control:this.storage.data.controlGroup}):this.log("warn",301),e}async forget(t){m(this,V,{}),await this.storage.delete(t)}};E=new WeakMap,P=new WeakMap,V=new WeakMap,g=new WeakMap;var Dr=([i,t,...e])=>{console[i](`\u{1F94B} [${i}] Uniform event ID ${t}
import{b as y,c as s,d as u,e as m,f as h}from"./chunk-TRWANXVF.mjs";function nt(i,t){let e={...i};for(let r in t){let o=at(i,r,t,new Set([r]));o!==0&&(e[r]=o)}return e}function at(i,t,e,r){var n;let o=0;for(let a of e[t].inputs){let c=(n=i[a.dim])!=null?n:0;if(!c&&e[a.dim]){if(r.has(a.dim))continue;let f=new Set(r);f.add(a.dim),c=at(i,a.dim,e,f)}if(c!==0)if(a.sign==="c"){o=0;break}else a.sign==="-"?o-=c:o+=c}return o}var A,k,X=class{constructor(t,e,r){u(this,A,void 0);u(this,k,void 0);y(this,"signal");m(this,k,t),this.signal=e,m(this,A,r)}computeSignals(t,e){if(t.scores[s(this,k)]>=this.signal.cap&&this.signal.dur!=="t")return;let o=s(this,A).evaluate(t,this.signal.crit,e,this.signal,s(this,k)),n=this.signal.dur==="s"||this.signal.dur==="t"?"modscoreS":"modscore";if(o)e.push({type:n,data:{dimension:s(this,k),delta:this.signal.str}});else if(this.signal.dur==="t"){let a=t.visitor.sessionScores[s(this,k)];a&&e.push({type:n,data:{dimension:s(this,k),delta:-a}})}}};A=new WeakMap,k=new WeakMap;var ct="_",C,$,R=class{constructor({manifest:t,evaluator:e=new N({})}){u(this,C,void 0);u(this,$,void 0);var r,o,n;m(this,C,(r=t.project)!=null?r:{}),m(this,$,Object.entries((n=(o=s(this,C).pz)==null?void 0:o.sig)!=null?n:[]).map(([a,c])=>new X(a,c,e)))}rollForControlGroup(){var t,e;return Math.random()<((e=(t=s(this,C).pz)==null?void 0:t.control)!=null?e:0)}getTest(t){var e;return(e=s(this,C).test)==null?void 0:e[t]}computeSignals(t){let e=[];return s(this,$).forEach(r=>{r.computeSignals(t,e)}),e}computeAggregateDimensions(t){var e,r;return nt(t,(r=(e=s(this,C).pz)==null?void 0:e.agg)!=null?r:{})}getDimensionByKey(t){var r,o,n,a;let e=t.indexOf(ct);return e<=0?(o=(r=s(this,C).pz)==null?void 0:r.sig)==null?void 0:o[t]:(a=(n=s(this,C).pz)==null?void 0:n.enr)==null?void 0:a[t.substring(0,e)]}static getEnrichmentVectorKey(t,e){return`${t}${ct}${e}`}};C=new WeakMap,$=new WeakMap;var ut=(i,t)=>{var o;if(t.type!=="CK")return!1;let e=(o=i.state.cookies)==null?void 0:o[t.cookieName];return x(e,t.match)};function dt(i,t){var r;if(typeof i=="undefined"||i===null)return!1;let e=Number(i);if(isNaN(e))return!1;switch((r=t==null?void 0:t.op)!=null?r:"="){case"=":return e===t.rhs;case"!=":return e!==t.rhs;case">":return e>t.rhs;case"<":return e<t.rhs;default:return console.warn(`Unknown match type ${t.op} is false.`),!1}}var Z=R.getEnrichmentVectorKey("$pvc","v"),lt=(i,t,e)=>{var a,c;if(t.type!=="PVC")return!1;let r=!i.previousState||((a=i.state.url)==null?void 0:a.toString())!==((c=i.previousState.url)==null?void 0:c.toString()),n=(i.visitor.sessionScores[Z]||0)+1;if(dt(n,t.match)){let d=e.some(f=>f.type==="modscoreS"&&f.data.dimension===Z);return r&&!d&&e.push({type:"modscoreS",data:{dimension:Z,delta:1}}),!0}return!1};var pt=(i,t)=>{var r;if(t.type!=="QS")return!1;let e=(r=i.state.url)==null?void 0:r.searchParams.get(t.queryName);return x(e,t.match)};var mt=(i,t,e,r,o)=>{if(t.type!=="QK")return!1;if(typeof window=="undefined"&&r.dur==="t"&&i.scores[o]>0)return!0;let n=i.visitor.quirks[t.key];return x(n,t.match)};var ft=(i,t)=>{var e,r;return t.type!=="EVT"?!1:(r=(e=i.state.events)==null?void 0:e.some(o=>x(o.event,t.event)))!=null?r:!1};var gt=(i,t)=>{var e;return t.type!=="PV"?!1:x((e=i.state.url)==null?void 0:e.pathname,t.path)};var G,N=class{constructor(t){u(this,G,void 0);m(this,G,t)}evaluate(t,e,r,o,n){let a=!(e.op==="&"||!e.op);for(let c of e.clauses){let d;if(c.type==="G")d=this.evaluate(t,c,r,o,n);else{let f=s(this,G)[c.type];if(!f)throw new Error(`${c.type} signal criteria not registered`);d=f(t,c,r,o,n)}if(d===a)return a}return!a}};G=new WeakMap;function x(i,t){var a,c,d,f;let e=(a=t==null?void 0:t.op)!=null?a:"=";if(t.op==="*")return i!==null&&typeof i!="undefined";if(t.op==="!*")return i===null||typeof i=="undefined";if(!("rhs"in t))throw new Error(`Match expression is required for match type ${e}`);let r=(c=t.cs)!=null?c:!1,o=r?i!=null?i:"":ht(i),n=r?t.rhs:ht(t.rhs);switch(e){case"=":return o===n;case"!=":return o!==n;case"~":return(d=o.includes(n))!=null?d:!1;case"!~":return!((f=o.includes(n))!=null?f:!0);case"//":return new RegExp(t.rhs,r?"":"i").test(i!=null?i:"");case"!//":return!new RegExp(t.rhs,r?"":"i").test(i!=null?i:"");default:throw new Error(`Unknown match type ${e}.`)}}function ht(i){var t;return(t=i==null?void 0:i.toUpperCase())!=null?t:""}var K=()=>({quirks:{},scores:{},sessionScores:{},tests:{},consent:!1,controlGroup:!1});import Ot from"mitt";import{dequal as Ut}from"dequal/lite";var It="__UNIFORM_DATA__",T,q,j=class{constructor({initialData:t}){u(this,T,void 0);u(this,q,Ot());y(this,"events",{on:s(this,q).on,off:s(this,q).off});t&&m(this,T,t)}get data(){return s(this,T)}updateData(t,e){return m(this,T,e),this.handleUpdateData(t,e)}async delete(t){m(this,T,void 0),await this.handleDelete(t)}signalAsyncDataUpdate(t){Ut(this.data,t)||(m(this,T,t),s(this,q).emit("dataUpdatedAsync",t))}getClientTransitionState(){if(typeof document=="undefined")return;let t=document.getElementById(It);return(t==null?void 0:t.textContent)?JSON.parse(t.textContent):void 0}};T=new WeakMap,q=new WeakMap;import{ntob as Rt,bton as qt}from"number-to-base64";var St=typeof window=="undefined",O,U,Lt=class extends j{constructor({cookieAdapter:t,cookieName:e="ufvd"}){super({initialData:St?zt(t.get(e)):void 0});u(this,O,void 0);u(this,U,void 0);m(this,O,e),m(this,U,t)}handleDelete(){return s(this,U).remove(s(this,O)),Promise.resolve()}async handleUpdateData(t,e){St||(e.consent?s(this,U).set(s(this,O),At(e)):s(this,U).remove(s(this,O)))}};O=new WeakMap,U=new WeakMap;var yt="~",vt="!",Dt="-";function zt(i){if(!i)return;let t=i.split(yt);if(t.length>3)return;let[e,r,o]=t;return{consent:!0,sessionScores:Vt(tt(r)),scores:Vt(tt(o)),tests:tt(e)}}function tt(i){return i.split(vt).map(e=>e.split(Dt)).reduce((e,r)=>(r.length!==2||(e[r[0]]=r[1]),e),{})}function Vt(i){return Object.entries(i).reduce((t,[e,r])=>(t[e]=qt(r),t),{})}function At(i){return[et(i.tests),et(Ct(i.sessionScores)),et(Ct(i.scores))].join(yt)}function Ct(i){return Object.entries(i).reduce((t,[e,r])=>(t[e]=Rt(r),t),{})}function et(i){return Object.entries(i).map(t=>t.join(Dt)).join(vt)}var J,Nt,$t=class extends j{constructor({cookieAdapter:t,visitorIdCookieName:e="ufvi",...r}){super(r);u(this,J);r.initialData||h(this,J,Nt).call(this).catch(o=>{console.error(o)})}handleDelete(t){throw new Error("Method not implemented.")}async handleUpdateData(t){let e=await new Promise(r=>{setTimeout(()=>{r(void 0)},2e3)});e&&this.signalAsyncDataUpdate(e)}};J=new WeakSet,Nt=async function(){let t=await new Promise(e=>{setTimeout(()=>{e(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};function Ae(i){let{gracePeriod:t=864e5,decayRate:e=1/30,decayCap:r=.95}=i!=null?i:{};return function({now:n,lastUpd:a,scores:c,sessionScores:d}){if(typeof a!="number")return!1;let M=n-a-t;if(M<=0)return!1;let Q=M/864e5,W=1-Math.min(r,Q*e);return W<=0?!1:(xt(c,W),xt(d,W),!0)}}function xt(i,t){for(let e in i)i[e]*=t}import _t from"mitt";import{dequal as it}from"dequal/lite";var rt=class{constructor(){y(this,"inMemoryFallback",{});y(this,"hasLocalStorageObject",typeof localStorage!="undefined")}get(t){let e=this.inMemoryFallback[t];if(!this.hasLocalStorageObject||e)return e;try{let r=localStorage.getItem(t);return r?JSON.parse(r):void 0}catch(r){return e}}set(t,e,r){if(this.inMemoryFallback[t]=e,!(!this.hasLocalStorageObject||!r))try{localStorage.setItem(t,JSON.stringify(e))}catch(o){console.warn(o)}}delete(t,e){e||delete this.inMemoryFallback[t];try{localStorage.removeItem(t)}catch(r){}}};import Gt from"rfdc";var jt=Gt();function kt(i,t,e){let r=t?jt(t):K();return i.forEach(o=>{var n,a;switch(o.type){case"consent":r.consent=o.data;break;case"setquirk":r.quirks[o.data.key]=o.data.value;break;case"settest":r.tests[o.data.test]=o.data.variant;break;case"modscore":if(e)break;let c=(n=r.scores[o.data.dimension])!=null?n:0;r.scores[o.data.dimension]=c+o.data.delta;break;case"modscoreS":if(e)break;let d=(a=r.sessionScores[o.data.dimension])!=null?a:0;r.sessionScores[o.data.dimension]=d+o.data.delta;break;case"identify":break;default:throw new Error("Unknown command")}}),r}var B="ufvisitor",v,I,z,S,D,w,b,L,Y,Ft,H,Qt,_,bt,F,Et,ot=class{constructor(t){u(this,D);u(this,b);u(this,Y);u(this,H);u(this,_);u(this,F);u(this,v,_t());u(this,I,new rt);u(this,z,void 0);u(this,S,void 0);y(this,"events",{on:s(this,v).on,off:s(this,v).off});if(m(this,S,t),s(this,D,w)||h(this,b,L).call(this,h(this,F,Et).call(this),!0),t.transitionStore){let e=t.transitionStore.getClientTransitionState();e&&e.quirks&&this.updateData(Object.entries(e.quirks).map(([o,n])=>({type:"setquirk",data:{key:o,value:n}}))),t.transitionStore.events.on("dataUpdatedAsync",o=>{h(this,b,L).call(this,{...s(this,D,w).visitorData,...o})});let r=t.transitionStore.data;r&&h(this,b,L).call(this,{...s(this,D,w).visitorData,...r},!0)}}get data(){let t=s(this,D,w);if(h(this,H,Qt).call(this,t)){let{sessionScores:e,...r}=t.visitorData;return h(this,b,L).call(this,{...r,sessionScores:{}}),s(this,v).emit("log",["info",120]),s(this,D,w).visitorData}return t.visitorData}async updateData(t){var r,o;if(t.length===0)return;s(this,v).emit("log",["debug",101,t]);let e=kt(t,this.data,(r=s(this,D,w))==null?void 0:r.visitorData.controlGroup);t.some(n=>n.type==="consent"&&!n.data)&&s(this,I).delete(B,!0),h(this,b,L).call(this,e),await((o=s(this,S).transitionStore)==null?void 0:o.updateData(t,s(this,D,w).visitorData))}async delete(t){var e;s(this,I).delete(B,!1),await((e=s(this,S).transitionStore)==null?void 0:e.delete(t)),s(this,v).emit("log",["info",103,t]),h(this,b,L).call(this,h(this,F,Et).call(this))}};v=new WeakMap,I=new WeakMap,z=new WeakMap,S=new WeakMap,D=new WeakSet,w=function(){return s(this,I).get(B)},b=new WeakSet,L=function(t,e=!1){var f,M;let r=s(this,D,w),o=Date.now();h(this,_,bt).call(this,t.scores),h(this,_,bt).call(this,t.sessionScores),(M=(f=s(this,S)).decay)==null||M.call(f,{now:o,lastUpd:r==null?void 0:r.updated,scores:t.scores,sessionScores:t.sessionScores});let n=!it(r==null?void 0:r.visitorData.scores,t.scores),a=!it(r==null?void 0:r.visitorData.sessionScores,t.sessionScores),c=!it(r==null?void 0:r.visitorData.quirks,t.quirks),d={updated:o,visitorData:t};h(this,Y,Ft).call(this),s(this,I).set(B,d,!!t.consent),s(this,v).emit("log",["debug",102,t]),e||((n||a)&&s(this,v).emit("scoresUpdated",t),c&&s(this,v).emit("quirksUpdated",t))},Y=new WeakSet,Ft=function(){typeof window=="undefined"||!s(this,S).visitLifespan||(s(this,z)&&window.clearTimeout(s(this,z)),m(this,z,window.setTimeout(()=>{this.data},s(this,S).visitLifespan+50)))},H=new WeakSet,Qt=function(t){let e=s(this,S).visitLifespan;return e?t.updated+e<Date.now():!1},_=new WeakSet,bt=function(t){if(!!s(this,S).manifest)for(let e in t){let r=t[e],o=s(this,S).manifest.getDimensionByKey(e);!o||r>o.cap&&(s(this,v).emit("log",["debug",110,{dim:e,score:r,cap:o.cap}]),t[e]=o.cap)}},F=new WeakSet,Et=function(){var t,e,r;return{...K(),consent:(t=s(this,S).defaultConsent)!=null?t:!1,controlGroup:(r=(e=s(this,S).manifest)==null?void 0:e.rollForControlGroup())!=null?r:!1}};import Jt from"mitt";function Tt({context:i,variations:t,take:e=1}){var c;let r=(c=i.storage.data.controlGroup)!=null?c:!1,o=[],n=!1,a=i.scores;for(let d of t){if(o.length===e)break;if(!d.pz){o.push(d);continue}!r&&wt(d.pz,a)&&(n=!0,o.push(d))}return{personalized:n,variations:o}}function wt(i,t){return(i==null?void 0:i.crit)?!i.op||i.op==="&"?i.crit.every(e=>Pt(e,t)):i.crit.some(e=>Pt(e,t)):!0}function Pt(i,t){var a;let{op:e,l:r}=i,o=(a=t[r])!=null?a:0;if(e==="+")return Math.max(...Object.values(t))===o&&o>0;if(e==="-")return Math.min(...Object.values(t))===o&&o>0;let n=i.rDim?t[i.rDim]:i.r;if(n===void 0)return!1;if(e===">")return o>n;if(e===">=")return o>=n;if(e==="<")return o<n;if(e==="<=")return o<=n;if(e==="=")return o===n;if(e==="!=")return o!==n;throw new Error(`Unknown op: ${e}`)}var Kt=i=>{let{values:t,total:e,missingDistribution:r}=i.reduce((o,n)=>(n.testDistribution?o.total+=n.testDistribution:++o.missingDistribution,o.values.push(n.testDistribution),o),{values:[],total:0,missingDistribution:0});if(e>100)throw new Error(`Total distribution ${e} is over the maximum 100.`);if(e<100){let n=(100-e)/r;t.forEach((a,c)=>{typeof a=="undefined"&&(t[c]=n)})}return t},st=({name:i,context:t,variations:e})=>{var n;let r,o=t.getTestVariantId(i);if(o===null)return{result:void 0};if(o&&(r=e.find(a=>a.id===o),r||t.log("warn",401,{test:i,variant:o})),!r){let a=Kt(e),c=Math.floor(Math.random()*100),d=0;r=e.find((f,M)=>{let Q=a[M];if(c>d&&c<=d+Q)return f;d+=Q}),r&&t.setTestVariantId(i,(n=r.id)!=null?n:"Unknown")}return{result:r}};var E,P,V,g,Bt=class{constructor(t){u(this,E,void 0);u(this,P,{});u(this,V,void 0);u(this,g,Jt());y(this,"events",{on:s(this,g).on,off:s(this,g).off});y(this,"storage");let{manifest:e,...r}=t;m(this,V,{}),m(this,E,new R({manifest:e,evaluator:new N({CK:ut,QS:pt,QK:mt,PVC:lt,EVT:ft,PV:gt})})),this.storage=new ot({manifest:s(this,E),...r}),this.storage.events.on("log",(...n)=>s(this,g).emit("log",...n));let o=n=>{var c;let a={...n.scores};for(let d in n.sessionScores)a[d]=((c=a[d])!=null?c:0)+n.sessionScores[d];a=s(this,E).computeAggregateDimensions(a),m(this,P,a),s(this,g).emit("scoresUpdated",a),s(this,g).emit("log",["info",3,a])};this.storage.events.on("scoresUpdated",o),o(this.storage.data),this.storage.events.on("quirksUpdated",n=>{let a=s(this,E).computeSignals({scores:s(this,P),state:s(this,V),previousState:s(this,V),visitor:this.storage.data});this.storage.updateData(a),s(this,g).emit("quirksUpdated",n.quirks),s(this,g).emit("log",["info",4,n.quirks])}),s(this,g).emit("log",["debug",1,{options:t,scores:s(this,P)}])}get scores(){return s(this,P)}async update(t){let e=[];s(this,g).emit("log",["info",2,t]),t.quirks&&(e.push(...Object.entries(t.quirks).map(([o,n])=>({type:"setquirk",data:{key:o,value:n}}))),t.quirks=void 0),t.enrichments&&(e.push(...t.enrichments.map(o=>({type:"modscore",data:{dimension:R.getEnrichmentVectorKey(o.cat,o.key),delta:o.str}}))),t.enrichments=void 0);let r=s(this,V);m(this,V,{...s(this,V),...t}),e.push(...s(this,E).computeSignals({state:s(this,V),previousState:r,visitor:this.storage.data,scores:s(this,P)})),await this.storage.updateData(e)}getTestVariantId(t){var r;let e=s(this,E).getTest(t);return e?(r=e.wv)!=null?r:this.storage.data.tests[t]:(s(this,g).emit("log",["warn",401,t]),null)}setTestVariantId(t,e){this.storage.updateData([{type:"settest",data:{test:t,variant:e}}])}log(...t){s(this,g).emit("log",t)}test(t){var r;let e=st({...t,context:this});return s(this,g).emit("testResult",{name:t.name,variantId:(r=e.result)==null?void 0:r.id,control:this.storage.data.controlGroup}),e}personalize(t){let e=Tt({...t,context:this});return t.name?s(this,g).emit("personalizationResult",{name:t.name,variantIds:e.variations.map(r=>{var o;return(o=r.id)!=null?o:"Unknown"}),control:this.storage.data.controlGroup}):this.log("warn",301),e}async forget(t){m(this,V,{}),await this.storage.delete(t)}};E=new WeakMap,P=new WeakMap,V=new WeakMap,g=new WeakMap;var Dr=([i,t,...e])=>{console[i](`\u{1F94B} [${i}] Uniform event ID ${t}
`,...e.map(r=>JSON.stringify(r,null,2)))};var Mt={1:({options:i,scores:t})=>["tracker","constructed",i,t],2:i=>["tracker","received data update",i],3:i=>["tracker","new score vector",i],4:i=>["tracker","updated quirks",i],101:i=>["storage","received update commands",i],102:i=>["storage","data was updated",i],103:i=>["storage",`data was deleted ${i?"from all devices":"from this device"}`],110:({dim:i,cap:t,score:e})=>["storage",`${i} score ${e} exceeded cap ${t}. Rounded down.`],120:()=>["storage","visitor data expired and was cleared"],301:()=>["placement","Missing `name` field on personalization. Analytics events will not be triggered."],401:i=>["testing",`${i} was unknown; it will not be run.`],402:({test:i,variant:t})=>["testing",`${i} no longer has visitor's variant ${t}; it will be removed.`],700:()=>["gtag","gtag is not defined, skipping analytics event emission. Ensure you have added the gtag script to your page."],701:()=>["gtag","enabled gtag event signal redirection"]};var kr=([i,t,...e])=>{let r=Mt[t],o=`\u{1F94B} [${new Date().toLocaleTimeString()}][${i}]`;r||console[i](`${o} unknown message ID ${t} - ensure all Uniform packages are the same version`,...e);let[n,a,...c]=r(...e);console[i](`${o}[${n}] ${a} (Event ID: ${t})
`,...c.map(d=>JSON.stringify(d,null,2)))};var Yt=(c=>(c.ListStart="nesi-list-start",c.ListEnd="nesi-list-end",c.ListItem="nesi-list-item-html",c.ListItemSettings="nesi-list-item-settings",c.TestStart="nesi-test-start",c.TestEnd="nesi-test-end",c.Unknown="unknown",c))(Yt||{}),Er="nesitag";export{Bt as Context,Lt as CookieTransitionDataStore,Er as EdgeNodeTagName,$t as EdgeTransitionDataStore,N as GroupCriteriaEvaluator,R as ManifestInstance,It as SERVER_STATE_ID,Yt as ScriptType,j as TransitionDataStore,ot as VisitorDataStore,nt as computeAggregateDimensions,Dr as consoleLogDrain,ut as cookieEvaluator,Ae as createLinearDecay,kr as debugConsoleLogDrain,K as emptyVisitorData,wt as evaluateVariantMatch,ft as eventEvaluator,x as isStringMatch,Z as pageViewCountDimension,lt as pageViewCountEvaluator,gt as pageVisitedEvaluator,Tt as personalizeVariations,pt as queryStringEvaluator,mt as quirkEvaluator,st as testVariations};

@@ -1,3 +0,3 @@

var Kt=Object.create;var $=Object.defineProperty;var Jt=Object.getOwnPropertyDescriptor;var Bt=Object.getOwnPropertyNames;var Yt=Object.getPrototypeOf,Ht=Object.prototype.hasOwnProperty;var Wt=(r,t,e)=>t in r?$(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var yt=r=>$(r,"__esModule",{value:!0});var Xt=(r,t)=>{for(var e in t)$(r,e,{get:t[e],enumerable:!0})},vt=(r,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Bt(t))!Ht.call(r,o)&&(e||o!=="default")&&$(r,o,{get:()=>t[o],enumerable:!(i=Jt(t,o))||i.enumerable});return r},J=(r,t)=>vt(yt($(r!=null?Kt(Yt(r)):{},"default",!t&&r&&r.__esModule?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r),Zt=(r=>(t,e)=>r&&r.get(t)||(e=vt(yt({}),t,1),r&&r.set(t,e),e))(typeof WeakMap!="undefined"?new WeakMap:0);var S=(r,t,e)=>(Wt(r,typeof t!="symbol"?t+"":t,e),e),ot=(r,t,e)=>{if(!t.has(r))throw TypeError("Cannot "+e)};var s=(r,t,e)=>(ot(r,t,"read from private field"),e?e.call(r):t.get(r)),u=(r,t,e)=>{if(t.has(r))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(r):t.set(r,e)},p=(r,t,e,i)=>(ot(r,t,"write to private field"),i?i.call(r,e):t.set(r,e),e);var g=(r,t,e)=>(ot(r,t,"access private method"),e);var le={};Xt(le,{Context:()=>_t,CookieTransitionDataStore:()=>wt,EdgeNodeTagName:()=>de,EdgeTransitionDataStore:()=>Rt,GroupCriteriaEvaluator:()=>R,ManifestInstance:()=>M,SERVER_STATE_ID:()=>Et,ScriptType:()=>Qt,TransitionDataStore:()=>q,VisitorDataStore:()=>Z,computeAggregateDimensions:()=>st,consoleLogDrain:()=>ce,cookieEvaluator:()=>at,createLinearDecay:()=>ie,debugConsoleLogDrain:()=>ue,emptyVisitorData:()=>_,evaluateVariantMatch:()=>St,eventEvaluator:()=>lt,isStringMatch:()=>v,pageViewCountDimension:()=>B,pageViewCountEvaluator:()=>ct,pageVisitedEvaluator:()=>pt,personalizeVariations:()=>ht,queryStringEvaluator:()=>ut,quirkEvaluator:()=>dt,testVariations:()=>rt});function st(r,t){let e={...r};for(let i in t){let o=Dt(r,i,t,new Set([i]));o!==0&&(e[i]=o)}return e}function Dt(r,t,e,i){var n;let o=0;for(let a of e[t].inputs){let c=(n=r[a.dim])!=null?n:0;if(!c&&e[a.dim]){if(i.has(a.dim))continue;let m=new Set(i);m.add(a.dim),c=Dt(r,a.dim,e,m)}if(c!==0)if(a.sign==="c"){o=0;break}else a.sign==="-"?o-=c:o+=c}return o}var N,x,nt=class{constructor(t,e,i){u(this,N,void 0);u(this,x,void 0);S(this,"signal");p(this,x,t),this.signal=e,p(this,N,i)}computeSignals(t,e){if(t.scores[s(this,x)]>=this.signal.cap&&this.signal.dur!=="t")return;let o=s(this,N).evaluate(t,this.signal.crit,e,this.signal,s(this,x)),n=this.signal.dur==="s"||this.signal.dur==="t"?"modscoreS":"modscore";if(o)e.push({type:n,data:{dimension:s(this,x),delta:this.signal.str}});else if(this.signal.dur==="t"){let a=t.visitor.sessionScores[s(this,x)];a&&e.push({type:n,data:{dimension:s(this,x),delta:-a}})}}};N=new WeakMap,x=new WeakMap;var Vt="_",C,G,M=class{constructor({manifest:t,evaluator:e=new R({})}){u(this,C,void 0);u(this,G,void 0);var i,o,n;p(this,C,(i=t.project)!=null?i:{}),p(this,G,Object.entries((n=(o=s(this,C).pz)==null?void 0:o.sig)!=null?n:[]).map(([a,c])=>new nt(a,c,e)))}rollForControlGroup(){var t,e;return Math.random()<((e=(t=s(this,C).pz)==null?void 0:t.control)!=null?e:0)}getTest(t){var e;return(e=s(this,C).test)==null?void 0:e[t]}computeSignals(t){let e=[];return s(this,G).forEach(i=>{i.computeSignals(t,e)}),e}computeAggregateDimensions(t){var e,i;return st(t,(i=(e=s(this,C).pz)==null?void 0:e.agg)!=null?i:{})}getDimensionByKey(t){var i,o,n,a;let e=t.indexOf(Vt);return e<=0?(o=(i=s(this,C).pz)==null?void 0:i.sig)==null?void 0:o[t]:(a=(n=s(this,C).pz)==null?void 0:n.enr)==null?void 0:a[t.substring(0,e)]}static getEnrichmentVectorKey(t,e){return`${t}${Vt}${e}`}};C=new WeakMap,G=new WeakMap;var at=(r,t)=>{var o;if(t.type!=="CK")return!1;let e=(o=r.state.cookies)==null?void 0:o[t.cookieName];return v(e,t.match)};function Ct(r,t){var i;if(typeof r=="undefined"||r===null)return!1;let e=Number(r);if(isNaN(e))return!1;switch((i=t==null?void 0:t.op)!=null?i:"="){case"=":return e===t.rhs;case"!=":return e!==t.rhs;case">":return e>t.rhs;case"<":return e<t.rhs;default:return console.warn(`Unknown match type ${t.op} is false.`),!1}}var B=M.getEnrichmentVectorKey("$pvc","v"),ct=(r,t,e)=>{var a,c;if(t.type!=="PVC")return!1;let i=!r.previousState||((a=r.state.url)==null?void 0:a.toString())!==((c=r.previousState.url)==null?void 0:c.toString()),n=(r.visitor.sessionScores[B]||0)+1;if(Ct(n,t.match)){let d=e.some(m=>m.type==="modscoreS"&&m.data.dimension===B);return i&&!d&&e.push({type:"modscoreS",data:{dimension:B,delta:1}}),!0}return!1};var ut=(r,t)=>{var i;if(t.type!=="QS")return!1;let e=(i=r.state.url)==null?void 0:i.searchParams.get(t.queryName);return v(e,t.match)};var dt=(r,t,e,i,o)=>{if(t.type!=="QK")return!1;if(typeof window=="undefined"&&i.dur==="t"&&r.scores[o]>0)return!0;let n=r.visitor.quirks[t.key];return v(n,t.match)};var lt=(r,t)=>{var e,i;return t.type!=="EVT"?!1:(i=(e=r.state.events)==null?void 0:e.some(o=>v(o.event,t.event)))!=null?i:!1};var pt=(r,t)=>{var e;return t.type!=="PV"?!1:v((e=r.state.url)==null?void 0:e.pathname,t.path)};var j,R=class{constructor(t){u(this,j,void 0);p(this,j,t)}evaluate(t,e,i,o,n){let a=!(e.op==="&"||!e.op);for(let c of e.clauses){let d;if(c.type==="G")d=this.evaluate(t,c,i,o,n);else{let m=s(this,j)[c.type];if(!m)throw new Error(`${c.type} signal criteria not registered`);d=m(t,c,i,o,n)}if(d===a)return a}return!a}};j=new WeakMap;function v(r,t){var a,c,d,m;let e=(a=t==null?void 0:t.op)!=null?a:"=";if(t.op==="*")return r!==null&&typeof r!="undefined";if(t.op==="!*")return r===null||typeof r=="undefined";if(!("rhs"in t))throw new Error(`Match expression is required for match type ${e}`);let i=(c=t.cs)!=null?c:!1,o=i?r!=null?r:"":xt(r),n=i?t.rhs:xt(t.rhs);switch(e){case"=":return o===n;case"!=":return o!==n;case"~":return(d=o.includes(n))!=null?d:!1;case"!~":return!((m=o.includes(n))!=null?m:!0);case"//":return new RegExp(t.rhs,i?"":"i").test(r!=null?r:"");case"!//":return!new RegExp(t.rhs,i?"":"i").test(r!=null?r:"");default:throw new Error(`Unknown match type ${e}.`)}}function xt(r){var t;return(t=r==null?void 0:r.toUpperCase())!=null?t:""}var _=()=>({quirks:{},scores:{},sessionScores:{},tests:{},consent:!1,controlGroup:!1});var kt=J(require("mitt")),bt=require("dequal/lite"),Et="__UNIFORM_DATA__",E,L,q=class{constructor({initialData:t}){u(this,E,void 0);u(this,L,(0,kt.default)());S(this,"events",{on:s(this,L).on,off:s(this,L).off});t&&p(this,E,t)}get data(){return s(this,E)}updateData(t,e){return p(this,E,e),this.handleUpdateData(t,e)}async delete(t){p(this,E,void 0),await this.handleDelete(t)}signalAsyncDataUpdate(t){(0,bt.dequal)(this.data,t)||(p(this,E,t),s(this,L).emit("dataUpdatedAsync",t))}getClientTransitionState(){if(typeof document=="undefined")return;let t=document.getElementById(Et);return(t==null?void 0:t.textContent)?JSON.parse(t.textContent):void 0}};E=new WeakMap,L=new WeakMap;var Y=require("number-to-base64"),Tt=typeof window=="undefined",O,U,wt=class extends q{constructor({cookieAdapter:t,cookieName:e="ufvd"}){super({initialData:Tt?te(t.get(e)):void 0});u(this,O,void 0);u(this,U,void 0);p(this,O,e),p(this,U,t)}handleDelete(){return s(this,U).remove(s(this,O)),Promise.resolve()}async handleUpdateData(t,e){Tt||(e.consent?s(this,U).set(s(this,O),ee(e)):s(this,U).remove(s(this,O)))}};O=new WeakMap,U=new WeakMap;var Pt="~",Mt="!",Ot="-";function te(r){if(!r)return;let t=r.split(Pt);if(t.length>3)return;let[e,i,o]=t;return{consent:!0,sessionScores:Ut(mt(i)),scores:Ut(mt(o)),tests:mt(e)}}function mt(r){return r.split(Mt).map(e=>e.split(Ot)).reduce((e,i)=>(i.length!==2||(e[i[0]]=i[1]),e),{})}function Ut(r){return Object.entries(r).reduce((t,[e,i])=>(t[e]=(0,Y.bton)(i),t),{})}function ee(r){return[ft(r.tests),ft(It(r.sessionScores)),ft(It(r.scores))].join(Pt)}function It(r){return Object.entries(r).reduce((t,[e,i])=>(t[e]=(0,Y.ntob)(i),t),{})}function ft(r){return Object.entries(r).map(t=>t.join(Ot)).join(Mt)}var H,re,Rt=class extends q{constructor({cookieAdapter:t,visitorIdCookieName:e="ufvi",...i}){super(i);u(this,H);i.initialData||g(this,H,re).call(this).catch(o=>{console.error(o)})}handleDelete(t){throw new Error("Method not implemented.")}async handleUpdateData(t){let e=await new Promise(i=>{setTimeout(()=>{i(void 0)},2e3)});e&&this.signalAsyncDataUpdate(e)}};H=new WeakSet,re=async function(){let t=await new Promise(e=>{setTimeout(()=>{e(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};function ie(r){let{gracePeriod:t=864e5,decayRate:e=1/30,decayCap:i=.95}=r!=null?r:{};return function({now:n,lastUpd:a,scores:c,sessionScores:d}){if(typeof a!="number")return!1;let P=n-a-t;if(P<=0)return!1;let K=P/864e5,it=1-Math.min(i,K*e);return it<=0?!1:(qt(c,it),qt(d,it),!0)}}function qt(r,t){for(let e in r)r[e]*=t}var At=J(require("mitt")),W=require("dequal/lite");var gt=class{constructor(){S(this,"inMemoryFallback",{});S(this,"hasLocalStorageObject",typeof localStorage!="undefined")}get(t){let e=this.inMemoryFallback[t];if(!this.hasLocalStorageObject||e)return e;try{let i=localStorage.getItem(t);return i?JSON.parse(i):void 0}catch(i){return e}}set(t,e,i){if(this.inMemoryFallback[t]=e,!(!this.hasLocalStorageObject||!i))try{localStorage.setItem(t,JSON.stringify(e))}catch(o){console.warn(o)}}delete(t,e){e||delete this.inMemoryFallback[t];try{localStorage.removeItem(t)}catch(i){}}};var Lt=J(require("rfdc"));var oe=(0,Lt.default)();function zt(r,t,e){let i=t?oe(t):_();return r.forEach(o=>{var n,a;switch(o.type){case"consent":i.consent=o.data;break;case"setquirk":i.quirks[o.data.key]=o.data.value;break;case"settest":i.tests[o.data.test]=o.data.variant;break;case"modscore":if(e)break;let c=(n=i.scores[o.data.dimension])!=null?n:0;i.scores[o.data.dimension]=c+o.data.delta;break;case"modscoreS":if(e)break;let d=(a=i.sessionScores[o.data.dimension])!=null?a:0;i.sessionScores[o.data.dimension]=d+o.data.delta;break;case"identify":break;default:throw new Error("Unknown command")}}),i}var X="ufvisitor",y,I,A,h,D,T,k,z,tt,se,et,ne,F,$t,Q,Nt,Z=class{constructor(t){u(this,D);u(this,k);u(this,tt);u(this,et);u(this,F);u(this,Q);u(this,y,(0,At.default)());u(this,I,new gt);u(this,A,void 0);u(this,h,void 0);S(this,"events",{on:s(this,y).on,off:s(this,y).off});if(p(this,h,t),s(this,D,T)||g(this,k,z).call(this,g(this,Q,Nt).call(this),!0),t.transitionStore){let e=t.transitionStore.getClientTransitionState();e&&e.quirks&&this.updateData(Object.entries(e.quirks).map(([o,n])=>({type:"setquirk",data:{key:o,value:n}}))),t.transitionStore.events.on("dataUpdatedAsync",o=>{g(this,k,z).call(this,{...s(this,D,T).visitorData,...o})});let i=t.transitionStore.data;i&&g(this,k,z).call(this,{...s(this,D,T).visitorData,...i},!0)}}get data(){let t=s(this,D,T);if(g(this,et,ne).call(this,t)){let{sessionScores:e,...i}=t.visitorData;return g(this,k,z).call(this,{...i,sessionScores:{}}),s(this,y).emit("log",["info",120]),s(this,D,T).visitorData}return t.visitorData}async updateData(t){var i,o;if(t.length===0)return;s(this,y).emit("log",["debug",101,t]);let e=zt(t,this.data,(i=s(this,D,T))==null?void 0:i.visitorData.controlGroup);t.some(n=>n.type==="consent"&&!n.data)&&s(this,I).delete(X,!0),g(this,k,z).call(this,e),await((o=s(this,h).transitionStore)==null?void 0:o.updateData(t,s(this,D,T).visitorData))}async delete(t){var e;s(this,I).delete(X,!1),await((e=s(this,h).transitionStore)==null?void 0:e.delete(t)),s(this,y).emit("log",["info",103,t]),g(this,k,z).call(this,g(this,Q,Nt).call(this))}};y=new WeakMap,I=new WeakMap,A=new WeakMap,h=new WeakMap,D=new WeakSet,T=function(){return s(this,I).get(X)},k=new WeakSet,z=function(t,e=!1){var m,P;let i=s(this,D,T),o=Date.now();g(this,F,$t).call(this,t.scores),g(this,F,$t).call(this,t.sessionScores),(P=(m=s(this,h)).decay)==null||P.call(m,{now:o,lastUpd:i==null?void 0:i.updated,scores:t.scores,sessionScores:t.sessionScores});let n=!(0,W.dequal)(i==null?void 0:i.visitorData.scores,t.scores),a=!(0,W.dequal)(i==null?void 0:i.visitorData.sessionScores,t.sessionScores),c=!(0,W.dequal)(i==null?void 0:i.visitorData.quirks,t.quirks),d={updated:o,visitorData:t};g(this,tt,se).call(this),s(this,I).set(X,d,!!t.consent),s(this,y).emit("log",["debug",102,t]),e||((n||a)&&s(this,y).emit("scoresUpdated",t),c&&s(this,y).emit("quirksUpdated",t))},tt=new WeakSet,se=function(){typeof window=="undefined"||!s(this,h).visitLifespan||(s(this,A)&&window.clearTimeout(s(this,A)),p(this,A,window.setTimeout(()=>{this.data},s(this,h).visitLifespan+50)))},et=new WeakSet,ne=function(t){let e=s(this,h).visitLifespan;return e?t.updated+e<Date.now():!1},F=new WeakSet,$t=function(t){if(!!s(this,h).manifest)for(let e in t){let i=t[e],o=s(this,h).manifest.getDimensionByKey(e);!o||i>o.cap&&(s(this,y).emit("log",["debug",110,{dim:e,score:i,cap:o.cap}]),t[e]=o.cap)}},Q=new WeakSet,Nt=function(){var t,e,i;return{..._(),consent:(t=s(this,h).defaultConsent)!=null?t:!1,controlGroup:(i=(e=s(this,h).manifest)==null?void 0:e.rollForControlGroup())!=null?i:!1}};var jt=J(require("mitt"));function ht({context:r,variations:t,take:e=1}){var c;let i=(c=r.storage.data.controlGroup)!=null?c:!1,o=[],n=!1,a=r.scores;for(let d of t){if(o.length===e)break;if(!d.pz){o.push(d);continue}!i&&St(d.pz,a)&&(n=!0,o.push(d))}return{personalized:n,variations:o}}function St(r,t){return!r.op||r.op==="&"?r.crit.every(e=>Gt(e,t)):r.crit.some(e=>Gt(e,t))}function Gt(r,t){var a;let{op:e,l:i}=r,o=(a=t[i])!=null?a:0;if(e==="+")return Math.max(...Object.values(t))===o&&o>0;if(e==="-")return Math.min(...Object.values(t))===o&&o>0;let n=r.rDim?t[r.rDim]:r.r;if(n===void 0)return!1;if(e===">")return o>n;if(e===">=")return o>=n;if(e==="<")return o<n;if(e==="<=")return o<=n;if(e==="=")return o===n;if(e==="!=")return o!==n;throw new Error(`Unknown op: ${e}`)}var ae=r=>{let{values:t,total:e,missingDistribution:i}=r.reduce((o,n)=>(n.testDistribution?o.total+=n.testDistribution:++o.missingDistribution,o.values.push(n.testDistribution),o),{values:[],total:0,missingDistribution:0});if(e>100)throw new Error(`Total distribution ${e} is over the maximum 100.`);if(e<100){let n=(100-e)/i;t.forEach((a,c)=>{typeof a=="undefined"&&(t[c]=n)})}return t},rt=({name:r,context:t,variations:e})=>{var n;let i,o=t.getTestVariantId(r);if(o===null)return{result:void 0};if(o&&(i=e.find(a=>a.id===o),i||t.log("warn",401,{test:r,variant:o})),!i){let a=ae(e),c=Math.floor(Math.random()*100),d=0;i=e.find((m,P)=>{let K=a[P];if(c>d&&c<=d+K)return m;d+=K}),i&&t.setTestVariantId(r,(n=i.id)!=null?n:"Unknown")}return{result:i}};var b,w,V,f,_t=class{constructor(t){u(this,b,void 0);u(this,w,{});u(this,V,void 0);u(this,f,(0,jt.default)());S(this,"events",{on:s(this,f).on,off:s(this,f).off});S(this,"storage");let{manifest:e,...i}=t;p(this,V,{}),p(this,b,new M({manifest:e,evaluator:new R({CK:at,QS:ut,QK:dt,PVC:ct,EVT:lt,PV:pt})})),this.storage=new Z({manifest:s(this,b),...i}),this.storage.events.on("log",(...n)=>s(this,f).emit("log",...n));let o=n=>{var c;let a={...n.scores};for(let d in n.sessionScores)a[d]=((c=a[d])!=null?c:0)+n.sessionScores[d];a=s(this,b).computeAggregateDimensions(a),p(this,w,a),s(this,f).emit("scoresUpdated",a),s(this,f).emit("log",["info",3,a])};this.storage.events.on("scoresUpdated",o),o(this.storage.data),this.storage.events.on("quirksUpdated",n=>{let a=s(this,b).computeSignals({scores:s(this,w),state:s(this,V),previousState:s(this,V),visitor:this.storage.data});this.storage.updateData(a),s(this,f).emit("quirksUpdated",n.quirks),s(this,f).emit("log",["info",4,n.quirks])}),s(this,f).emit("log",["debug",1,{options:t,scores:s(this,w)}])}get scores(){return s(this,w)}async update(t){let e=[];s(this,f).emit("log",["info",2,t]),t.quirks&&(e.push(...Object.entries(t.quirks).map(([o,n])=>({type:"setquirk",data:{key:o,value:n}}))),t.quirks=void 0),t.enrichments&&(e.push(...t.enrichments.map(o=>({type:"modscore",data:{dimension:M.getEnrichmentVectorKey(o.cat,o.key),delta:o.str}}))),t.enrichments=void 0);let i=s(this,V);p(this,V,{...s(this,V),...t}),e.push(...s(this,b).computeSignals({state:s(this,V),previousState:i,visitor:this.storage.data,scores:s(this,w)})),await this.storage.updateData(e)}getTestVariantId(t){var i;let e=s(this,b).getTest(t);return e?(i=e.wv)!=null?i:this.storage.data.tests[t]:(s(this,f).emit("log",["warn",401,t]),null)}setTestVariantId(t,e){this.storage.updateData([{type:"settest",data:{test:t,variant:e}}])}log(...t){s(this,f).emit("log",t)}test(t){var i;let e=rt({...t,context:this});return s(this,f).emit("testResult",{name:t.name,variantId:(i=e.result)==null?void 0:i.id,control:this.storage.data.controlGroup}),e}personalize(t){let e=ht({...t,context:this});return t.name?s(this,f).emit("personalizationResult",{name:t.name,variantIds:e.variations.map(i=>{var o;return(o=i.id)!=null?o:"Unknown"}),control:this.storage.data.controlGroup}):this.log("warn",301),e}async forget(t){p(this,V,{}),await this.storage.delete(t)}};b=new WeakMap,w=new WeakMap,V=new WeakMap,f=new WeakMap;var ce=([r,t,...e])=>{console[r](`\u{1F94B} [${r}] Uniform event ID ${t}
var Kt=Object.create;var $=Object.defineProperty;var Jt=Object.getOwnPropertyDescriptor;var Bt=Object.getOwnPropertyNames;var Yt=Object.getPrototypeOf,Ht=Object.prototype.hasOwnProperty;var Wt=(r,t,e)=>t in r?$(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e;var yt=r=>$(r,"__esModule",{value:!0});var Xt=(r,t)=>{for(var e in t)$(r,e,{get:t[e],enumerable:!0})},vt=(r,t,e,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Bt(t))!Ht.call(r,o)&&(e||o!=="default")&&$(r,o,{get:()=>t[o],enumerable:!(i=Jt(t,o))||i.enumerable});return r},J=(r,t)=>vt(yt($(r!=null?Kt(Yt(r)):{},"default",!t&&r&&r.__esModule?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r),Zt=(r=>(t,e)=>r&&r.get(t)||(e=vt(yt({}),t,1),r&&r.set(t,e),e))(typeof WeakMap!="undefined"?new WeakMap:0);var S=(r,t,e)=>(Wt(r,typeof t!="symbol"?t+"":t,e),e),ot=(r,t,e)=>{if(!t.has(r))throw TypeError("Cannot "+e)};var s=(r,t,e)=>(ot(r,t,"read from private field"),e?e.call(r):t.get(r)),u=(r,t,e)=>{if(t.has(r))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(r):t.set(r,e)},p=(r,t,e,i)=>(ot(r,t,"write to private field"),i?i.call(r,e):t.set(r,e),e);var g=(r,t,e)=>(ot(r,t,"access private method"),e);var le={};Xt(le,{Context:()=>_t,CookieTransitionDataStore:()=>wt,EdgeNodeTagName:()=>de,EdgeTransitionDataStore:()=>Rt,GroupCriteriaEvaluator:()=>R,ManifestInstance:()=>M,SERVER_STATE_ID:()=>Et,ScriptType:()=>Qt,TransitionDataStore:()=>q,VisitorDataStore:()=>Z,computeAggregateDimensions:()=>st,consoleLogDrain:()=>ce,cookieEvaluator:()=>at,createLinearDecay:()=>ie,debugConsoleLogDrain:()=>ue,emptyVisitorData:()=>_,evaluateVariantMatch:()=>St,eventEvaluator:()=>lt,isStringMatch:()=>v,pageViewCountDimension:()=>B,pageViewCountEvaluator:()=>ct,pageVisitedEvaluator:()=>pt,personalizeVariations:()=>ht,queryStringEvaluator:()=>ut,quirkEvaluator:()=>dt,testVariations:()=>rt});function st(r,t){let e={...r};for(let i in t){let o=Dt(r,i,t,new Set([i]));o!==0&&(e[i]=o)}return e}function Dt(r,t,e,i){var n;let o=0;for(let a of e[t].inputs){let c=(n=r[a.dim])!=null?n:0;if(!c&&e[a.dim]){if(i.has(a.dim))continue;let m=new Set(i);m.add(a.dim),c=Dt(r,a.dim,e,m)}if(c!==0)if(a.sign==="c"){o=0;break}else a.sign==="-"?o-=c:o+=c}return o}var N,x,nt=class{constructor(t,e,i){u(this,N,void 0);u(this,x,void 0);S(this,"signal");p(this,x,t),this.signal=e,p(this,N,i)}computeSignals(t,e){if(t.scores[s(this,x)]>=this.signal.cap&&this.signal.dur!=="t")return;let o=s(this,N).evaluate(t,this.signal.crit,e,this.signal,s(this,x)),n=this.signal.dur==="s"||this.signal.dur==="t"?"modscoreS":"modscore";if(o)e.push({type:n,data:{dimension:s(this,x),delta:this.signal.str}});else if(this.signal.dur==="t"){let a=t.visitor.sessionScores[s(this,x)];a&&e.push({type:n,data:{dimension:s(this,x),delta:-a}})}}};N=new WeakMap,x=new WeakMap;var Vt="_",C,G,M=class{constructor({manifest:t,evaluator:e=new R({})}){u(this,C,void 0);u(this,G,void 0);var i,o,n;p(this,C,(i=t.project)!=null?i:{}),p(this,G,Object.entries((n=(o=s(this,C).pz)==null?void 0:o.sig)!=null?n:[]).map(([a,c])=>new nt(a,c,e)))}rollForControlGroup(){var t,e;return Math.random()<((e=(t=s(this,C).pz)==null?void 0:t.control)!=null?e:0)}getTest(t){var e;return(e=s(this,C).test)==null?void 0:e[t]}computeSignals(t){let e=[];return s(this,G).forEach(i=>{i.computeSignals(t,e)}),e}computeAggregateDimensions(t){var e,i;return st(t,(i=(e=s(this,C).pz)==null?void 0:e.agg)!=null?i:{})}getDimensionByKey(t){var i,o,n,a;let e=t.indexOf(Vt);return e<=0?(o=(i=s(this,C).pz)==null?void 0:i.sig)==null?void 0:o[t]:(a=(n=s(this,C).pz)==null?void 0:n.enr)==null?void 0:a[t.substring(0,e)]}static getEnrichmentVectorKey(t,e){return`${t}${Vt}${e}`}};C=new WeakMap,G=new WeakMap;var at=(r,t)=>{var o;if(t.type!=="CK")return!1;let e=(o=r.state.cookies)==null?void 0:o[t.cookieName];return v(e,t.match)};function Ct(r,t){var i;if(typeof r=="undefined"||r===null)return!1;let e=Number(r);if(isNaN(e))return!1;switch((i=t==null?void 0:t.op)!=null?i:"="){case"=":return e===t.rhs;case"!=":return e!==t.rhs;case">":return e>t.rhs;case"<":return e<t.rhs;default:return console.warn(`Unknown match type ${t.op} is false.`),!1}}var B=M.getEnrichmentVectorKey("$pvc","v"),ct=(r,t,e)=>{var a,c;if(t.type!=="PVC")return!1;let i=!r.previousState||((a=r.state.url)==null?void 0:a.toString())!==((c=r.previousState.url)==null?void 0:c.toString()),n=(r.visitor.sessionScores[B]||0)+1;if(Ct(n,t.match)){let d=e.some(m=>m.type==="modscoreS"&&m.data.dimension===B);return i&&!d&&e.push({type:"modscoreS",data:{dimension:B,delta:1}}),!0}return!1};var ut=(r,t)=>{var i;if(t.type!=="QS")return!1;let e=(i=r.state.url)==null?void 0:i.searchParams.get(t.queryName);return v(e,t.match)};var dt=(r,t,e,i,o)=>{if(t.type!=="QK")return!1;if(typeof window=="undefined"&&i.dur==="t"&&r.scores[o]>0)return!0;let n=r.visitor.quirks[t.key];return v(n,t.match)};var lt=(r,t)=>{var e,i;return t.type!=="EVT"?!1:(i=(e=r.state.events)==null?void 0:e.some(o=>v(o.event,t.event)))!=null?i:!1};var pt=(r,t)=>{var e;return t.type!=="PV"?!1:v((e=r.state.url)==null?void 0:e.pathname,t.path)};var j,R=class{constructor(t){u(this,j,void 0);p(this,j,t)}evaluate(t,e,i,o,n){let a=!(e.op==="&"||!e.op);for(let c of e.clauses){let d;if(c.type==="G")d=this.evaluate(t,c,i,o,n);else{let m=s(this,j)[c.type];if(!m)throw new Error(`${c.type} signal criteria not registered`);d=m(t,c,i,o,n)}if(d===a)return a}return!a}};j=new WeakMap;function v(r,t){var a,c,d,m;let e=(a=t==null?void 0:t.op)!=null?a:"=";if(t.op==="*")return r!==null&&typeof r!="undefined";if(t.op==="!*")return r===null||typeof r=="undefined";if(!("rhs"in t))throw new Error(`Match expression is required for match type ${e}`);let i=(c=t.cs)!=null?c:!1,o=i?r!=null?r:"":xt(r),n=i?t.rhs:xt(t.rhs);switch(e){case"=":return o===n;case"!=":return o!==n;case"~":return(d=o.includes(n))!=null?d:!1;case"!~":return!((m=o.includes(n))!=null?m:!0);case"//":return new RegExp(t.rhs,i?"":"i").test(r!=null?r:"");case"!//":return!new RegExp(t.rhs,i?"":"i").test(r!=null?r:"");default:throw new Error(`Unknown match type ${e}.`)}}function xt(r){var t;return(t=r==null?void 0:r.toUpperCase())!=null?t:""}var _=()=>({quirks:{},scores:{},sessionScores:{},tests:{},consent:!1,controlGroup:!1});var kt=J(require("mitt")),bt=require("dequal/lite"),Et="__UNIFORM_DATA__",E,L,q=class{constructor({initialData:t}){u(this,E,void 0);u(this,L,(0,kt.default)());S(this,"events",{on:s(this,L).on,off:s(this,L).off});t&&p(this,E,t)}get data(){return s(this,E)}updateData(t,e){return p(this,E,e),this.handleUpdateData(t,e)}async delete(t){p(this,E,void 0),await this.handleDelete(t)}signalAsyncDataUpdate(t){(0,bt.dequal)(this.data,t)||(p(this,E,t),s(this,L).emit("dataUpdatedAsync",t))}getClientTransitionState(){if(typeof document=="undefined")return;let t=document.getElementById(Et);return(t==null?void 0:t.textContent)?JSON.parse(t.textContent):void 0}};E=new WeakMap,L=new WeakMap;var Y=require("number-to-base64"),Tt=typeof window=="undefined",O,U,wt=class extends q{constructor({cookieAdapter:t,cookieName:e="ufvd"}){super({initialData:Tt?te(t.get(e)):void 0});u(this,O,void 0);u(this,U,void 0);p(this,O,e),p(this,U,t)}handleDelete(){return s(this,U).remove(s(this,O)),Promise.resolve()}async handleUpdateData(t,e){Tt||(e.consent?s(this,U).set(s(this,O),ee(e)):s(this,U).remove(s(this,O)))}};O=new WeakMap,U=new WeakMap;var Pt="~",Mt="!",Ot="-";function te(r){if(!r)return;let t=r.split(Pt);if(t.length>3)return;let[e,i,o]=t;return{consent:!0,sessionScores:Ut(mt(i)),scores:Ut(mt(o)),tests:mt(e)}}function mt(r){return r.split(Mt).map(e=>e.split(Ot)).reduce((e,i)=>(i.length!==2||(e[i[0]]=i[1]),e),{})}function Ut(r){return Object.entries(r).reduce((t,[e,i])=>(t[e]=(0,Y.bton)(i),t),{})}function ee(r){return[ft(r.tests),ft(It(r.sessionScores)),ft(It(r.scores))].join(Pt)}function It(r){return Object.entries(r).reduce((t,[e,i])=>(t[e]=(0,Y.ntob)(i),t),{})}function ft(r){return Object.entries(r).map(t=>t.join(Ot)).join(Mt)}var H,re,Rt=class extends q{constructor({cookieAdapter:t,visitorIdCookieName:e="ufvi",...i}){super(i);u(this,H);i.initialData||g(this,H,re).call(this).catch(o=>{console.error(o)})}handleDelete(t){throw new Error("Method not implemented.")}async handleUpdateData(t){let e=await new Promise(i=>{setTimeout(()=>{i(void 0)},2e3)});e&&this.signalAsyncDataUpdate(e)}};H=new WeakSet,re=async function(){let t=await new Promise(e=>{setTimeout(()=>{e(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};function ie(r){let{gracePeriod:t=864e5,decayRate:e=1/30,decayCap:i=.95}=r!=null?r:{};return function({now:n,lastUpd:a,scores:c,sessionScores:d}){if(typeof a!="number")return!1;let P=n-a-t;if(P<=0)return!1;let K=P/864e5,it=1-Math.min(i,K*e);return it<=0?!1:(qt(c,it),qt(d,it),!0)}}function qt(r,t){for(let e in r)r[e]*=t}var At=J(require("mitt")),W=require("dequal/lite");var gt=class{constructor(){S(this,"inMemoryFallback",{});S(this,"hasLocalStorageObject",typeof localStorage!="undefined")}get(t){let e=this.inMemoryFallback[t];if(!this.hasLocalStorageObject||e)return e;try{let i=localStorage.getItem(t);return i?JSON.parse(i):void 0}catch(i){return e}}set(t,e,i){if(this.inMemoryFallback[t]=e,!(!this.hasLocalStorageObject||!i))try{localStorage.setItem(t,JSON.stringify(e))}catch(o){console.warn(o)}}delete(t,e){e||delete this.inMemoryFallback[t];try{localStorage.removeItem(t)}catch(i){}}};var Lt=J(require("rfdc"));var oe=(0,Lt.default)();function zt(r,t,e){let i=t?oe(t):_();return r.forEach(o=>{var n,a;switch(o.type){case"consent":i.consent=o.data;break;case"setquirk":i.quirks[o.data.key]=o.data.value;break;case"settest":i.tests[o.data.test]=o.data.variant;break;case"modscore":if(e)break;let c=(n=i.scores[o.data.dimension])!=null?n:0;i.scores[o.data.dimension]=c+o.data.delta;break;case"modscoreS":if(e)break;let d=(a=i.sessionScores[o.data.dimension])!=null?a:0;i.sessionScores[o.data.dimension]=d+o.data.delta;break;case"identify":break;default:throw new Error("Unknown command")}}),i}var X="ufvisitor",y,I,A,h,D,T,k,z,tt,se,et,ne,F,$t,Q,Nt,Z=class{constructor(t){u(this,D);u(this,k);u(this,tt);u(this,et);u(this,F);u(this,Q);u(this,y,(0,At.default)());u(this,I,new gt);u(this,A,void 0);u(this,h,void 0);S(this,"events",{on:s(this,y).on,off:s(this,y).off});if(p(this,h,t),s(this,D,T)||g(this,k,z).call(this,g(this,Q,Nt).call(this),!0),t.transitionStore){let e=t.transitionStore.getClientTransitionState();e&&e.quirks&&this.updateData(Object.entries(e.quirks).map(([o,n])=>({type:"setquirk",data:{key:o,value:n}}))),t.transitionStore.events.on("dataUpdatedAsync",o=>{g(this,k,z).call(this,{...s(this,D,T).visitorData,...o})});let i=t.transitionStore.data;i&&g(this,k,z).call(this,{...s(this,D,T).visitorData,...i},!0)}}get data(){let t=s(this,D,T);if(g(this,et,ne).call(this,t)){let{sessionScores:e,...i}=t.visitorData;return g(this,k,z).call(this,{...i,sessionScores:{}}),s(this,y).emit("log",["info",120]),s(this,D,T).visitorData}return t.visitorData}async updateData(t){var i,o;if(t.length===0)return;s(this,y).emit("log",["debug",101,t]);let e=zt(t,this.data,(i=s(this,D,T))==null?void 0:i.visitorData.controlGroup);t.some(n=>n.type==="consent"&&!n.data)&&s(this,I).delete(X,!0),g(this,k,z).call(this,e),await((o=s(this,h).transitionStore)==null?void 0:o.updateData(t,s(this,D,T).visitorData))}async delete(t){var e;s(this,I).delete(X,!1),await((e=s(this,h).transitionStore)==null?void 0:e.delete(t)),s(this,y).emit("log",["info",103,t]),g(this,k,z).call(this,g(this,Q,Nt).call(this))}};y=new WeakMap,I=new WeakMap,A=new WeakMap,h=new WeakMap,D=new WeakSet,T=function(){return s(this,I).get(X)},k=new WeakSet,z=function(t,e=!1){var m,P;let i=s(this,D,T),o=Date.now();g(this,F,$t).call(this,t.scores),g(this,F,$t).call(this,t.sessionScores),(P=(m=s(this,h)).decay)==null||P.call(m,{now:o,lastUpd:i==null?void 0:i.updated,scores:t.scores,sessionScores:t.sessionScores});let n=!(0,W.dequal)(i==null?void 0:i.visitorData.scores,t.scores),a=!(0,W.dequal)(i==null?void 0:i.visitorData.sessionScores,t.sessionScores),c=!(0,W.dequal)(i==null?void 0:i.visitorData.quirks,t.quirks),d={updated:o,visitorData:t};g(this,tt,se).call(this),s(this,I).set(X,d,!!t.consent),s(this,y).emit("log",["debug",102,t]),e||((n||a)&&s(this,y).emit("scoresUpdated",t),c&&s(this,y).emit("quirksUpdated",t))},tt=new WeakSet,se=function(){typeof window=="undefined"||!s(this,h).visitLifespan||(s(this,A)&&window.clearTimeout(s(this,A)),p(this,A,window.setTimeout(()=>{this.data},s(this,h).visitLifespan+50)))},et=new WeakSet,ne=function(t){let e=s(this,h).visitLifespan;return e?t.updated+e<Date.now():!1},F=new WeakSet,$t=function(t){if(!!s(this,h).manifest)for(let e in t){let i=t[e],o=s(this,h).manifest.getDimensionByKey(e);!o||i>o.cap&&(s(this,y).emit("log",["debug",110,{dim:e,score:i,cap:o.cap}]),t[e]=o.cap)}},Q=new WeakSet,Nt=function(){var t,e,i;return{..._(),consent:(t=s(this,h).defaultConsent)!=null?t:!1,controlGroup:(i=(e=s(this,h).manifest)==null?void 0:e.rollForControlGroup())!=null?i:!1}};var jt=J(require("mitt"));function ht({context:r,variations:t,take:e=1}){var c;let i=(c=r.storage.data.controlGroup)!=null?c:!1,o=[],n=!1,a=r.scores;for(let d of t){if(o.length===e)break;if(!d.pz){o.push(d);continue}!i&&St(d.pz,a)&&(n=!0,o.push(d))}return{personalized:n,variations:o}}function St(r,t){return(r==null?void 0:r.crit)?!r.op||r.op==="&"?r.crit.every(e=>Gt(e,t)):r.crit.some(e=>Gt(e,t)):!0}function Gt(r,t){var a;let{op:e,l:i}=r,o=(a=t[i])!=null?a:0;if(e==="+")return Math.max(...Object.values(t))===o&&o>0;if(e==="-")return Math.min(...Object.values(t))===o&&o>0;let n=r.rDim?t[r.rDim]:r.r;if(n===void 0)return!1;if(e===">")return o>n;if(e===">=")return o>=n;if(e==="<")return o<n;if(e==="<=")return o<=n;if(e==="=")return o===n;if(e==="!=")return o!==n;throw new Error(`Unknown op: ${e}`)}var ae=r=>{let{values:t,total:e,missingDistribution:i}=r.reduce((o,n)=>(n.testDistribution?o.total+=n.testDistribution:++o.missingDistribution,o.values.push(n.testDistribution),o),{values:[],total:0,missingDistribution:0});if(e>100)throw new Error(`Total distribution ${e} is over the maximum 100.`);if(e<100){let n=(100-e)/i;t.forEach((a,c)=>{typeof a=="undefined"&&(t[c]=n)})}return t},rt=({name:r,context:t,variations:e})=>{var n;let i,o=t.getTestVariantId(r);if(o===null)return{result:void 0};if(o&&(i=e.find(a=>a.id===o),i||t.log("warn",401,{test:r,variant:o})),!i){let a=ae(e),c=Math.floor(Math.random()*100),d=0;i=e.find((m,P)=>{let K=a[P];if(c>d&&c<=d+K)return m;d+=K}),i&&t.setTestVariantId(r,(n=i.id)!=null?n:"Unknown")}return{result:i}};var b,w,V,f,_t=class{constructor(t){u(this,b,void 0);u(this,w,{});u(this,V,void 0);u(this,f,(0,jt.default)());S(this,"events",{on:s(this,f).on,off:s(this,f).off});S(this,"storage");let{manifest:e,...i}=t;p(this,V,{}),p(this,b,new M({manifest:e,evaluator:new R({CK:at,QS:ut,QK:dt,PVC:ct,EVT:lt,PV:pt})})),this.storage=new Z({manifest:s(this,b),...i}),this.storage.events.on("log",(...n)=>s(this,f).emit("log",...n));let o=n=>{var c;let a={...n.scores};for(let d in n.sessionScores)a[d]=((c=a[d])!=null?c:0)+n.sessionScores[d];a=s(this,b).computeAggregateDimensions(a),p(this,w,a),s(this,f).emit("scoresUpdated",a),s(this,f).emit("log",["info",3,a])};this.storage.events.on("scoresUpdated",o),o(this.storage.data),this.storage.events.on("quirksUpdated",n=>{let a=s(this,b).computeSignals({scores:s(this,w),state:s(this,V),previousState:s(this,V),visitor:this.storage.data});this.storage.updateData(a),s(this,f).emit("quirksUpdated",n.quirks),s(this,f).emit("log",["info",4,n.quirks])}),s(this,f).emit("log",["debug",1,{options:t,scores:s(this,w)}])}get scores(){return s(this,w)}async update(t){let e=[];s(this,f).emit("log",["info",2,t]),t.quirks&&(e.push(...Object.entries(t.quirks).map(([o,n])=>({type:"setquirk",data:{key:o,value:n}}))),t.quirks=void 0),t.enrichments&&(e.push(...t.enrichments.map(o=>({type:"modscore",data:{dimension:M.getEnrichmentVectorKey(o.cat,o.key),delta:o.str}}))),t.enrichments=void 0);let i=s(this,V);p(this,V,{...s(this,V),...t}),e.push(...s(this,b).computeSignals({state:s(this,V),previousState:i,visitor:this.storage.data,scores:s(this,w)})),await this.storage.updateData(e)}getTestVariantId(t){var i;let e=s(this,b).getTest(t);return e?(i=e.wv)!=null?i:this.storage.data.tests[t]:(s(this,f).emit("log",["warn",401,t]),null)}setTestVariantId(t,e){this.storage.updateData([{type:"settest",data:{test:t,variant:e}}])}log(...t){s(this,f).emit("log",t)}test(t){var i;let e=rt({...t,context:this});return s(this,f).emit("testResult",{name:t.name,variantId:(i=e.result)==null?void 0:i.id,control:this.storage.data.controlGroup}),e}personalize(t){let e=ht({...t,context:this});return t.name?s(this,f).emit("personalizationResult",{name:t.name,variantIds:e.variations.map(i=>{var o;return(o=i.id)!=null?o:"Unknown"}),control:this.storage.data.controlGroup}):this.log("warn",301),e}async forget(t){p(this,V,{}),await this.storage.delete(t)}};b=new WeakMap,w=new WeakMap,V=new WeakMap,f=new WeakMap;var ce=([r,t,...e])=>{console[r](`\u{1F94B} [${r}] Uniform event ID ${t}
`,...e.map(i=>JSON.stringify(i,null,2)))};var Ft={1:({options:r,scores:t})=>["tracker","constructed",r,t],2:r=>["tracker","received data update",r],3:r=>["tracker","new score vector",r],4:r=>["tracker","updated quirks",r],101:r=>["storage","received update commands",r],102:r=>["storage","data was updated",r],103:r=>["storage",`data was deleted ${r?"from all devices":"from this device"}`],110:({dim:r,cap:t,score:e})=>["storage",`${r} score ${e} exceeded cap ${t}. Rounded down.`],120:()=>["storage","visitor data expired and was cleared"],301:()=>["placement","Missing `name` field on personalization. Analytics events will not be triggered."],401:r=>["testing",`${r} was unknown; it will not be run.`],402:({test:r,variant:t})=>["testing",`${r} no longer has visitor's variant ${t}; it will be removed.`],700:()=>["gtag","gtag is not defined, skipping analytics event emission. Ensure you have added the gtag script to your page."],701:()=>["gtag","enabled gtag event signal redirection"]};var ue=([r,t,...e])=>{let i=Ft[t],o=`\u{1F94B} [${new Date().toLocaleTimeString()}][${r}]`;i||console[r](`${o} unknown message ID ${t} - ensure all Uniform packages are the same version`,...e);let[n,a,...c]=i(...e);console[r](`${o}[${n}] ${a} (Event ID: ${t})
`,...c.map(d=>JSON.stringify(d,null,2)))};var Qt=(c=>(c.ListStart="nesi-list-start",c.ListEnd="nesi-list-end",c.ListItem="nesi-list-item-html",c.ListItemSettings="nesi-list-item-settings",c.TestStart="nesi-test-start",c.TestEnd="nesi-test-end",c.Unknown="unknown",c))(Qt||{}),de="nesitag";module.exports=Zt(le);0&&(module.exports={Context,CookieTransitionDataStore,EdgeNodeTagName,EdgeTransitionDataStore,GroupCriteriaEvaluator,ManifestInstance,SERVER_STATE_ID,ScriptType,TransitionDataStore,VisitorDataStore,computeAggregateDimensions,consoleLogDrain,cookieEvaluator,createLinearDecay,debugConsoleLogDrain,emptyVisitorData,evaluateVariantMatch,eventEvaluator,isStringMatch,pageViewCountDimension,pageViewCountEvaluator,pageVisitedEvaluator,personalizeVariations,queryStringEvaluator,quirkEvaluator,testVariations});
{
"name": "@uniformdev/context",
"version": "12.2.1-alpha.135+7a372e5f",
"version": "12.2.1-alpha.141+f7de3b59",
"description": "Uniform Context core package",

@@ -57,3 +57,3 @@ "license": "SEE LICENSE IN LICENSE.txt",

"@types/yargs": "17.0.8",
"@uniformdev/cli": "^12.2.1-alpha.135+7a372e5f",
"@uniformdev/cli": "^12.2.1-alpha.141+f7de3b59",
"benny": "^3.7.1",

@@ -81,3 +81,6 @@ "eslint": "8.7.0",

],
"gitHead": "7a372e5f5dddf0b615e61d765f5545d0dc642216"
"publishConfig": {
"access": "public"
},
"gitHead": "f7de3b595650c7b8b09c8cde7e840682c1499e0e"
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc