Socket
Socket
Sign inDemoInstall

@uniformdev/context

Package Overview
Dependencies
Maintainers
9
Versions
602
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@uniformdev/context - npm Package Compare versions

Comparing version 12.2.1-alpha.107 to 12.2.1-alpha.121

dist/api/api.d.ts

239

dist/index.d.ts

@@ -0,1 +1,2 @@

import { c as components, e as external } from './v2-manifest.swagger-d0899723';
import * as mitt from 'mitt';

@@ -349,7 +350,9 @@

* >: `l` is greater than the right hand side expression
* >= : `l` is greater than or equal to the right hand side expression
* <: `l` is less than the right hand side expression
* <= : `l` is less than or equal to the right hand side expression
* =: `l` is equal to the right hand side expression
* !=: `l` is not equal to the right hand side expression
*/
op: '+' | '-' | '>' | '<' | '=' | '!=';
op: '+' | '-' | '>' | '>=' | '<' | '<=' | '=' | '!=';
/**

@@ -583,234 +586,2 @@ * Right hand side of the match expression (not required for op = + or - which have no right side)

interface components {
schemas: {
ManifestV2: {
project: {
pz?: components['schemas']['PersonalizationManifest'];
/** A/B test settings */
test?: {
[key: string]: external['uniform-context-types.swagger.yml']['components']['schemas']['Test'];
};
};
};
PersonalizationManifest: {
/** Map of all signals defined for personalization criteria */
sig?: {
[key: string]: external['uniform-context-types.swagger.yml']['components']['schemas']['Signal'];
};
/** Map of all enrichment categories defined for personalization criteria */
enr?: {
[key: string]: external['uniform-context-types.swagger.yml']['components']['schemas']['EnrichmentCategory'];
};
/** Map of all aggregate dimensions (intents or audiences) defined for personalization criteria */
agg?: {
[key: string]: external['uniform-context-types.swagger.yml']['components']['schemas']['AggregateDimension'];
};
/** Percentage of visitors that will be used as a personalization control group (not shown any personalization) */
control?: number;
};
};
}
interface external {
'swagger.yml': {
paths: {};
components: {
schemas: {
Error: {
/** Error message(s) that occurred while processing the request */
errorMessage?: string[] | string;
};
};
responses: {
/** Request input validation failed */
BadRequestError: {
content: {
'application/json': external['swagger.yml']['components']['schemas']['Error'];
};
};
/** API key or token was not valid */
UnauthorizedError: {
content: {
'application/json': external['swagger.yml']['components']['schemas']['Error'];
};
};
/** Permission was denied */
ForbiddenError: {
content: {
'application/json': external['swagger.yml']['components']['schemas']['Error'];
};
};
/** Too many requests in allowed time period */
RateLimitError: unknown;
/** Execution error occurred */
InternalServerError: unknown;
};
};
operations: {};
};
'uniform-context-types.swagger.yml': {
paths: {};
components: {
schemas: {
EnrichmentCategory: {
/** The maximum visitor score allowed for enrichment keys in this category */
cap: number;
};
PreviewSignal: external['uniform-context-types.swagger.yml']['components']['schemas']['Signal'] & {
/** Friendly name of the signal */
name: string;
/** Description of the signal */
description?: string;
};
Signal: {
/** The signal strength per activation (each time its criteria are true, this score is added) */
str: number;
/** The maximum visitor score allowed for this signal */
cap: number;
/**
* How long the signal's score should persist
* 's' = current session (expires after a period of inactivity)
* 'p' = permanent (expires as far in the future as possible, may be limited by browser security settings)
* 't' = transient (score tracks the current state of the criteria every time scores are updated)
*/
dur: 's' | 'p' | 't';
crit: external['uniform-context-types.swagger.yml']['components']['schemas']['RootSignalCriteriaGroup'];
};
RootSignalCriteriaGroup: {
/** Criteria type (Group of other criteria) */
type: 'G';
/**
* The logical operator to apply to the criteria groups
* & = AND
* | = OR
*
* Default is `&` if unspecified.
*/
op?: '&' | '|';
/** The criteria clauses that make up this grouping of criteria */
clauses: (external['uniform-context-types.swagger.yml']['components']['schemas']['SignalCriteriaGroup'] | external['uniform-context-types.swagger.yml']['components']['schemas']['SignalCriteria'])[];
};
SignalCriteriaGroup: {
/** Criteria type (Group of other criteria) */
type: 'G';
/**
* The logical operator to apply to the criteria groups
* & = AND
* | = OR
*
* Default is `&` if unspecified.
*/
op?: '&' | '|';
/** The criteria clauses that make up this grouping of criteria */
clauses: (external['uniform-context-types.swagger.yml']['components']['schemas']['SignalCriteriaGroup'] | external['uniform-context-types.swagger.yml']['components']['schemas']['SignalCriteria'])[];
};
SignalCriteria: external['uniform-context-types.swagger.yml']['components']['schemas']['CookieCriteria'] | external['uniform-context-types.swagger.yml']['components']['schemas']['QueryStringCriteria'] | external['uniform-context-types.swagger.yml']['components']['schemas']['QuirkCriteria'] | external['uniform-context-types.swagger.yml']['components']['schemas']['EventCriteria'] | external['uniform-context-types.swagger.yml']['components']['schemas']['PageVisitedCriteria'] | external['uniform-context-types.swagger.yml']['components']['schemas']['PageViewCountCriteria'];
/** Matches a URL query string parameter value */
QueryStringCriteria: {
type: 'QS';
/** The name of the query string parameter to match */
queryName: string;
/** The value to match the query string parameter against */
match: external['uniform-context-types.swagger.yml']['components']['schemas']['StringMatch'];
};
/** Matches a web cookie value */
CookieCriteria: {
type: 'CK';
/** The name of the cookie to match */
cookieName: string;
/** The value to match the cookie against */
match: external['uniform-context-types.swagger.yml']['components']['schemas']['StringMatch'];
};
/** Matches a visitor quirk key and value */
QuirkCriteria: {
type: 'QK';
/** The name of the quirk key to match */
key: string;
/** The quirk value to match against */
match: external['uniform-context-types.swagger.yml']['components']['schemas']['StringMatch'];
};
/** Matches an analytics event name being fired */
EventCriteria: {
type: 'EVT';
/** How to match the event name */
event: external['uniform-context-types.swagger.yml']['components']['schemas']['StringMatch'];
};
/** Matches a page being visited */
PageVisitedCriteria: {
type: 'PV';
/** The page/route path to match as a page that has been visited */
path: external['uniform-context-types.swagger.yml']['components']['schemas']['StringMatch'];
};
PageViewCountCriteria: {
type: 'PVC';
/** The expression to match the page view count against */
match: external['uniform-context-types.swagger.yml']['components']['schemas']['NumberMatch'];
};
/** Describes a match expression on a string */
StringMatch: {
/** The expression to match on */
e?: string;
/** The case sensitivity of the match */
cs?: boolean;
/**
* The type of match to perform
* '=' = exact match (undefined values are defaulted to empty string)
* '~' = contains match (undefined values are defaulted to empty string)
* '*' = exists with any value (is not undefined or null)
* '//' = regular expression match (undefined values are defaulted to empty string)
*
* Any of the above can be prefixed with '!' to invert the match (i.e. != for 'not an exact match')
*/
t: '=' | '~' | '*' | '//' | '!=' | '!~' | '!*' | '!//';
};
/** Describes a match expression on a number */
NumberMatch: {
/** The expression to match on */
e: number;
/**
* The type of match to perform
* '=' = exact match
* '!=' = not an exact match
* '<' = less than match expression
* '>' = greater than match expression
*/
op: '=' | '<' | '>' | '!=';
};
/** Defines an aggregate dimension that is a grouping of other dimensions' scores; an intent or audience. */
AggregateDimension: {
/** Input dimensions to the aggregate dimension */
inputs: external['uniform-context-types.swagger.yml']['components']['schemas']['AggregateDimensionInput'][];
};
/** Defines an input dimension to an aggregate dimension */
AggregateDimensionInput: {
/**
* Dimension name to reference as an input.
* For enrichment inputs, use CATEGORY_KEY as the dimension.
* Enrichments, signals, and other aggregate dimensions may be referenced.
*
* Note that creating a cycle of aggregate dimensions is allowed, however
* the final score will _ignore_ the cycled aggregate dimension in the result.
* This can be used to create mutually exclusive aggregates.
*/
dim: string;
/**
* The sign of the input dimension controls how it affects the aggregate dimension's final score.
*
* '+' = add to the final score
* '-' = subtract from the final score
* 'c' = clear the final score (if the input dimension has any score at all, this aggreate will have no score regardless of other inputs)
*
* Default if unspecified: '+'
*/
sign?: '+' | '-' | 'c';
};
Test: {
/** Winning variation ID - if set, the test will not run and this variation is shown to all visitors (the test is closed) */
wv?: string;
};
};
};
operations: {};
};
}
declare type SharedTypes = external['uniform-context-types.swagger.yml']['components']['schemas'];

@@ -856,3 +627,3 @@ declare type ManifestV2 = components['schemas']['ManifestV2'];

/** Tests if a StringMatch matches a string value */
declare function isStringMatch(value: string | null | undefined, match: StringMatch): boolean;
declare function isStringMatch(lhs: string | null | undefined, match: StringMatch): boolean;

@@ -859,0 +630,0 @@ /** Computes aggregated scores based on other dimensions */

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

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

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

var _t=Object.create;var K=Object.defineProperty;var Ft=Object.getOwnPropertyDescriptor;var Qt=Object.getOwnPropertyNames;var Kt=Object.getPrototypeOf,Jt=Object.prototype.hasOwnProperty;var St=r=>K(r,"__esModule",{value:!0});var Bt=(r,t)=>{St(r);for(var e in t)K(r,e,{get:t[e],enumerable:!0})},Yt=(r,t,e)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Qt(t))!Jt.call(r,i)&&i!=="default"&&K(r,i,{get:()=>t[i],enumerable:!(e=Ft(t,i))||e.enumerable});return r},P=r=>Yt(St(K(r!=null?_t(Kt(r)):{},"default",r&&r.__esModule&&"default"in r?{get:()=>r.default,enumerable:!0}:{value:r,enumerable:!0})),r);var it=(r,t,e)=>{if(!t.has(r))throw TypeError("Cannot "+e)};var s=(r,t,e)=>(it(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)},m=(r,t,e,i)=>(it(r,t,"write to private field"),i?i.call(r,e):t.set(r,e),e);var f=(r,t,e)=>(it(r,t,"access private method"),e);Bt(exports,{Context:()=>Nt,CookieTransitionDataStore:()=>kt,EdgeNodeTagName:()=>ae,EdgeTransitionDataStore:()=>Ot,GroupCriteriaEvaluator:()=>R,ManifestInstance:()=>M,SERVER_STATE_ID:()=>xt,ScriptType:()=>jt,TransitionDataStore:()=>q,VisitorDataStore:()=>X,computeAggregateDimensions:()=>ot,consoleLogDrain:()=>se,cookieEvaluator:()=>nt,createLinearDecay:()=>te,debugConsoleLogDrain:()=>ne,emptyVisitorData:()=>j,evaluateVariantMatch:()=>ht,eventEvaluator:()=>dt,isStringMatch:()=>y,pageViewCountDimension:()=>J,pageViewCountEvaluator:()=>at,pageVisitedEvaluator:()=>pt,personalizeVariations:()=>gt,queryStringEvaluator:()=>ct,quirkEvaluator:()=>ut,testVariations:()=>et});function ot(r,t){let e={...r};for(let i in t){let o=yt(r,i,t,new Set([i]));o!==0&&(e[i]=o)}return e}function yt(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 g=new Set(i);g.add(a.dim),c=yt(r,a.dim,e,g)}if(c!==0)if(a.sign==="c"){o=0;break}else a.sign==="-"?o-=c:o+=c}return o}var $,V,st=class{constructor(t,e,i){u(this,$,void 0);u(this,V,void 0);m(this,V,t),this.signal=e,m(this,$,i)}computeSignals(t,e){if(t.scores[s(this,V)]>=this.signal.cap&&this.signal.dur!=="t")return;let o=s(this,$).evaluate(t,this.signal.crit,e,this.signal,s(this,V)),n=this.signal.dur==="s"||this.signal.dur==="t"?"modscoreS":"modscore";if(o)e.push({type:n,data:{dimension:s(this,V),delta:this.signal.str}});else if(this.signal.dur==="t"){let a=t.visitor.sessionScores[s(this,V)];a&&e.push({type:n,data:{dimension:s(this,V),delta:-a}})}}};$=new WeakMap,V=new WeakMap;var vt="_",C,N,M=class{constructor({manifest:t,evaluator:e=new R({})}){u(this,C,void 0);u(this,N,void 0);var i,o,n;m(this,C,(i=t.project)!=null?i:{}),m(this,N,Object.entries((n=(o=s(this,C).pz)==null?void 0:o.sig)!=null?n:[]).map(([a,c])=>new st(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,N).forEach(i=>{i.computeSignals(t,e)}),e}computeAggregateDimensions(t){var e,i;return ot(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,N=new WeakMap;var nt=(r,t)=>{var o;if(t.type!=="CK")return!1;let e=(o=r.state.cookies)==null?void 0:o[t.cookieName];return y(e,t.match)};function Dt(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.e;case"!=":return e!==t.e;case">":return e>t.e;case"<":return e<t.e;default:return console.warn(`Unknown match type ${t.op} is false.`),!1}}var J=M.getEnrichmentVectorKey("$pvc","v"),at=(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[J]||0)+1;if(Dt(n,t.match)){let d=e.some(g=>g.type==="modscoreS"&&g.data.dimension===J);return i&&!d&&e.push({type:"modscoreS",data:{dimension:J,delta:1}}),!0}return!1};var ct=(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 y(e,t.match)};var ut=(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 y(n,t.match)};var dt=(r,t)=>{var e,i;return t.type!=="EVT"?!1:(i=(e=r.state.events)==null?void 0:e.some(o=>y(o.event,t.event)))!=null?i:!1};var pt=(r,t)=>{var e;return t.type!=="PV"?!1:y((e=r.state.url)==null?void 0:e.pathname,t.path)};var G,R=class{constructor(t){u(this,G,void 0);m(this,G,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 g=s(this,G)[c.type];if(!g)throw new Error(`${c.type} signal criteria not registered`);d=g(t,c,i,o,n)}if(d===a)return a}return!a}};G=new WeakMap;function y(r,t){var n,a,c,d;let e=r,i=t==null?void 0:t.e;((n=t==null?void 0:t.cs)!=null?n:!1)||([e,i]=Ht(e,i));let o=(a=t==null?void 0:t.t)!=null?a:"=";if(o==="*")return r!==null&&typeof r!="undefined";if(o==="!*")return r===null||typeof r=="undefined";if(i===void 0)throw new Error(`Match expression is required for match type ${o}`);switch(o){case"=":return(e!=null?e:"")===i;case"!=":return(e!=null?e:"")!==i;case"~":return(c=(e!=null?e:"").includes(i))!=null?c:!1;case"!~":return!((d=e==null?void 0:e.includes(i))!=null?d:!0);case"//":return new RegExp(t.e,t.cs?"":"i").test(r!=null?r:"");case"!//":return!new RegExp(t.e,t.cs?"":"i").test(r!=null?r:"");default:throw new Error(`Unknown match type ${o}.`)}}function Ht(...r){return r.map(t=>t==null?void 0:t.toUpperCase())}var j=()=>({quirks:{},scores:{},sessionScores:{},tests:{},consent:!1,controlGroup:!1});var Ct=P(require("mitt")),Vt=P(require("dequal/lite")),xt="__UNIFORM_DATA__",k,L,q=class{constructor({initialData:t}){u(this,k,void 0);u(this,L,(0,Ct.default)());this.events={on:s(this,L).on,off:s(this,L).off};t&&m(this,k,t)}get data(){return s(this,k)}updateData(t,e){return m(this,k,e),this.handleUpdateData(t,e)}async delete(t){m(this,k,void 0),await this.handleDelete(t)}signalAsyncDataUpdate(t){(0,Vt.dequal)(this.data,t)||(m(this,k,t),s(this,L).emit("dataUpdatedAsync",t))}getClientTransitionState(){if(typeof document=="undefined")return;let t=document.getElementById(xt);return(t==null?void 0:t.textContent)?JSON.parse(t.textContent):void 0}};k=new WeakMap,L=new WeakMap;var B=P(require("number-to-base64")),bt=typeof window=="undefined",O,U,kt=class extends q{constructor({cookieAdapter:t,cookieName:e="ufvd"}){super({initialData:bt?Wt(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){bt||(e.consent?s(this,U).set(s(this,O),Xt(e)):s(this,U).remove(s(this,O)))}};O=new WeakMap,U=new WeakMap;var Tt="~",Et="!",wt="-";function Wt(r){if(!r)return;let t=r.split(Tt);if(t.length>3)return;let[e,i,o]=t;return{consent:!0,sessionScores:Pt(mt(i)),scores:Pt(mt(o)),tests:mt(e)}}function mt(r){return r.split(Et).map(e=>e.split(wt)).reduce((e,i)=>(i.length!==2||(e[i[0]]=i[1]),e),{})}function Pt(r){return Object.entries(r).reduce((t,[e,i])=>(t[e]=(0,B.bton)(i),t),{})}function Xt(r){return[lt(r.tests),lt(Mt(r.sessionScores)),lt(Mt(r.scores))].join(Tt)}function Mt(r){return Object.entries(r).reduce((t,[e,i])=>(t[e]=(0,B.ntob)(i),t),{})}function lt(r){return Object.entries(r).map(t=>t.join(wt)).join(Et)}var Y,Zt,Ot=class extends q{constructor({cookieAdapter:t,visitorIdCookieName:e="ufvi",...i}){super(i);u(this,Y);i.initialData||f(this,Y,Zt).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)}};Y=new WeakSet,Zt=async function(){let t=await new Promise(e=>{setTimeout(()=>{e(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};function te(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 w=n-a-t;if(w<=0)return!1;let Q=w/864e5,rt=1-Math.min(i,Q*e);return rt<=0?!1:(Ut(c,rt),Ut(d,rt),!0)}}function Ut(r,t){for(let e in r)r[e]*=t}var qt=P(require("mitt")),H=P(require("dequal/lite"));var ft=class{constructor(){this.inMemoryFallback={};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 It=P(require("rfdc"));var ee=(0,It.default)();function Rt(r,t,e){let i=t?ee(t):j();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 W="ufvisitor",S,I,A,h,v,T,x,z,Z,re,tt,ie,_,Lt,F,zt,X=class{constructor(t){u(this,v);u(this,x);u(this,Z);u(this,tt);u(this,_);u(this,F);u(this,S,(0,qt.default)());u(this,I,new ft);u(this,A,void 0);u(this,h,void 0);this.events={on:s(this,S).on,off:s(this,S).off};if(m(this,h,t),s(this,v,T)||f(this,x,z).call(this,f(this,F,zt).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=>{f(this,x,z).call(this,{...s(this,v,T).visitorData,...o})});let i=t.transitionStore.data;i&&f(this,x,z).call(this,{...s(this,v,T).visitorData,...i},!0)}}get data(){let t=s(this,v,T);if(f(this,tt,ie).call(this,t)){let{sessionScores:e,...i}=t.visitorData;return f(this,x,z).call(this,{...i,sessionScores:{}}),s(this,S).emit("log",["info",120]),s(this,v,T).visitorData}return t.visitorData}async updateData(t){var i,o;if(t.length===0)return;s(this,S).emit("log",["debug",101,t]);let e=Rt(t,this.data,(i=s(this,v,T))==null?void 0:i.visitorData.controlGroup);t.some(n=>n.type==="consent"&&!n.data)&&s(this,I).delete(W,!0),f(this,x,z).call(this,e),await((o=s(this,h).transitionStore)==null?void 0:o.updateData(t,s(this,v,T).visitorData))}async delete(t){var e;s(this,I).delete(W,!1),await((e=s(this,h).transitionStore)==null?void 0:e.delete(t)),s(this,S).emit("log",["info",103,t]),f(this,x,z).call(this,f(this,F,zt).call(this))}};S=new WeakMap,I=new WeakMap,A=new WeakMap,h=new WeakMap,v=new WeakSet,T=function(){return s(this,I).get(W)},x=new WeakSet,z=function(t,e=!1){var g,w;let i=s(this,v,T),o=Date.now();f(this,_,Lt).call(this,t.scores),f(this,_,Lt).call(this,t.sessionScores),(w=(g=s(this,h)).decay)==null||w.call(g,{now:o,lastUpd:i==null?void 0:i.updated,scores:t.scores,sessionScores:t.sessionScores});let n=!(0,H.dequal)(i==null?void 0:i.visitorData.scores,t.scores),a=!(0,H.dequal)(i==null?void 0:i.visitorData.sessionScores,t.sessionScores),c=!(0,H.dequal)(i==null?void 0:i.visitorData.quirks,t.quirks),d={updated:o,visitorData:t};f(this,Z,re).call(this),s(this,I).set(W,d,!!t.consent),s(this,S).emit("log",["debug",102,t]),e||((n||a)&&s(this,S).emit("scoresUpdated",t),c&&s(this,S).emit("quirksUpdated",t))},Z=new WeakSet,re=function(){typeof window=="undefined"||!s(this,h).visitLifespan||(s(this,A)&&window.clearTimeout(s(this,A)),m(this,A,window.setTimeout(()=>{this.data},s(this,h).visitLifespan+50)))},tt=new WeakSet,ie=function(t){let e=s(this,h).visitLifespan;return e?t.updated+e<Date.now():!1},_=new WeakSet,Lt=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,S).emit("log",["debug",110,{dim:e,score:i,cap:o.cap}]),t[e]=o.cap)}},F=new WeakSet,zt=function(){var t,e,i;return{...j(),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 $t=P(require("mitt"));function gt({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&&ht(d.pz,a)&&(n=!0,o.push(d))}return{personalized:n,variations:o}}function ht(r,t){return!r.op||r.op==="&"?r.crit.every(e=>At(e,t)):r.crit.some(e=>At(e,t))}function At(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;throw new Error(`Unknown op: ${e}`)}var oe=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},et=({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=oe(e),c=Math.floor(Math.random()*100),d=0;i=e.find((g,w)=>{let Q=a[w];if(c>d&&c<=d+Q)return g;d+=Q}),i&&t.setTestVariantId(r,(n=i.id)!=null?n:"Unknown")}return{result:i}};var b,E,D,l,Nt=class{constructor(t){u(this,b,void 0);u(this,E,{});u(this,D,void 0);u(this,l,(0,$t.default)());this.events={on:s(this,l).on,off:s(this,l).off};let{manifest:e,...i}=t;m(this,D,{}),m(this,b,new M({manifest:e,evaluator:new R({CK:nt,QS:ct,QK:ut,PVC:at,EVT:dt,PV:pt})})),this.storage=new X({manifest:s(this,b),...i}),this.storage.events.on("log",(...n)=>s(this,l).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),m(this,E,a),s(this,l).emit("scoresUpdated",a),s(this,l).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,E),state:s(this,D),previousState:s(this,D),visitor:this.storage.data});this.storage.updateData(a),s(this,l).emit("quirksUpdated",n.quirks),s(this,l).emit("log",["info",4,n.quirks])}),s(this,l).emit("log",["debug",1,{options:t,scores:s(this,E)}])}get scores(){return s(this,E)}async update(t){let e=[];s(this,l).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,D);m(this,D,{...s(this,D),...t}),e.push(...s(this,b).computeSignals({state:s(this,D),previousState:i,visitor:this.storage.data,scores:s(this,E)})),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,l).emit("log",["warn",401,t]),null)}setTestVariantId(t,e){this.storage.updateData([{type:"settest",data:{test:t,variant:e}}])}log(...t){s(this,l).emit("log",t)}test(t){var i;let e=et({...t,context:this});return s(this,l).emit("testResult",{name:t.name,variantId:(i=e.result)==null?void 0:i.id,control:this.storage.data.controlGroup}),e}personalize(t){let e=gt({...t,context:this});return t.name?s(this,l).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){m(this,D,{}),await this.storage.delete(t)}};b=new WeakMap,E=new WeakMap,D=new WeakMap,l=new WeakMap;var se=([r,t,...e])=>{console[r](`\u{1F94B} [${r}] Uniform event ID ${t}
`,...e.map(i=>JSON.stringify(i,null,2)))};var Gt={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 ne=([r,t,...e])=>{let i=Gt[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 jt=(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))(jt||{}),ae="nesitag";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});
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}
`,...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.107+b30768d5",
"version": "12.2.1-alpha.121+3d33c2be",
"description": "Uniform Context core package",

@@ -19,2 +19,6 @@ "license": "SEE LICENSE IN LICENSE.txt",

"require": "./dist/cli/cli.js"
},
"./api": {
"import": "./dist/api/api.mjs",
"require": "./dist/api/api.js"
}

@@ -25,3 +29,3 @@ },

"*": {
".": [
"*": [
"./dist/index.d.ts"

@@ -31,2 +35,5 @@ ],

"./dist/cli/cli.d.ts"
],
"api": [
"./dist/api/api.d.ts"
]

@@ -53,3 +60,3 @@ }

"@types/yargs": "17.0.8",
"@uniformdev/cli": "^12.2.1-alpha.107+b30768d5",
"@uniformdev/cli": "^12.2.1-alpha.121+3d33c2be",
"benny": "^3.7.1",

@@ -67,2 +74,3 @@ "eslint": "8.4.1",

"dependencies": {
"chalk": "^4.1.2",
"dequal": "^2.0.2",

@@ -76,3 +84,3 @@ "mitt": "^3.0.0",

],
"gitHead": "b30768d5d58d4c75b390274042724d50c1ee1041"
"gitHead": "3d33c2be484210ce3f056e80176fc6f56b69dabc"
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc