@uniformdev/context 12.2.1-alpha.183 → 14.2.1-alpha.128
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/api.d.ts +17 -1401
- package/dist/api/api.js +2 -2
- package/dist/api/api.mjs +1 -1
- package/dist/chunk-5UOAJNMX.mjs +2 -0
- package/dist/{chunk-KZPEO35A.mjs → chunk-AFJ7PNM5.mjs} +0 -0
- package/dist/chunk-CEKV2MHL.mjs +1 -0
- package/dist/cli/cli.d.ts +14 -1
- package/dist/cli/cli.js +63 -53
- package/dist/cli/cli.mjs +62 -52
- package/dist/contextTypes-7f24fc7c.d.ts +1534 -0
- package/dist/index.d.ts +6 -5
- package/dist/index.esm.js +3 -3
- package/dist/index.js +3 -3
- package/dist/index.mjs +3 -3
- package/dist/{types-1ad8439c.d.ts → types-d77228a6.d.ts} +35 -290
- package/dist/v2-manifest.swagger-d0899723.d.ts +285 -0
- package/package.json +6 -19
- package/dist/chunk-GU2YFM6V.mjs +0 -1
- package/dist/chunk-JKQJOIRC.mjs +0 -2
package/dist/index.d.ts
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
-
import { C as CookieAdapter, T as TransitionDataStore, S as StorageCommands, V as VisitorData, a as TransitionDataStoreOptions, D as DecayFunction, O as OutputSeverity, L as LogDrain, b as ContextPlugin, c as CriteriaEvaluator, d as StringMatch, e as ScoreVector, A as AggregateDimension, f as VariantMatchCriteria } from './types-
|
2
|
-
export { A as AggregateDimension, l as AggregateDimensionInput,
|
1
|
+
import { C as CookieAdapter, T as TransitionDataStore, S as StorageCommands, V as VisitorData, a as TransitionDataStoreOptions, D as DecayFunction, O as OutputSeverity, L as LogDrain, b as ContextPlugin, c as CriteriaEvaluator, d as StringMatch, e as ScoreVector, A as AggregateDimension, f as VariantMatchCriteria } from './types-d77228a6';
|
2
|
+
export { A as AggregateDimension, l as AggregateDimensionInput, a8 as BehaviorTag, _ as Context, Z as ContextEvents, W as ContextOptions, b as ContextPlugin, r as ContextState, s as ContextStateUpdate, C as CookieAdapter, c as CriteriaEvaluator, m as CriteriaEvaluatorResult, D as DecayFunction, B as DecayOptions, ag as DevToolsActions, ak as DevToolsDataEvent, ah as DevToolsEvent, ai as DevToolsEvents, ao as DevToolsForgetEvent, al as DevToolsHelloEvent, aj as DevToolsLogEvent, an as DevToolsRawCommandsEvent, af as DevToolsState, ae as DevToolsUiVersion, am as DevToolsUpdateEvent, a7 as DimensionMatch, E as EnrichmentCategory, o as EnrichmentData, p as EventData, G as GroupCriteriaEvaluator, I as IdentifyCommand, L as LogDrain, a2 as LogMessage, $ as LogMessages, M as ManifestInstance, g as ManifestV2, a1 as MessageFunc, u as ModifyScoreCommand, v as ModifySessionScoreCommand, N as NumberMatch, O as OutputSeverity, X as PersonalizationEvent, P as PersonalizationManifest, a5 as PersonalizeOptions, aa as PersonalizedResult, a9 as PersonalizedVariant, Q as Quirks, R as SERVER_STATE_ID, e as ScoreVector, K as ServerToClientTransitionState, w as SetConsentCommand, z as SetControlGroupCommand, x as SetQuirkCommand, y as SetTestCommand, a0 as Severity, h as Signal, j as SignalCriteria, i as SignalCriteriaGroup, t as StorageCommand, S as StorageCommands, d as StringMatch, ad as TaggedContent, k as TestDefinition, Y as TestEvent, a4 as TestOptions, ac as TestResult, ab as TestVariant, n as Tests, T as TransitionDataStore, U as TransitionDataStoreEvents, a as TransitionDataStoreOptions, f as VariantMatchCriteria, V as VisitorData, J as VisitorDataStore, H as VisitorDataStoreEvents, F as VisitorDataStoreOptions, q as emptyVisitorData, a6 as personalizeVariations, a3 as testVariations } from './types-d77228a6';
|
3
|
+
import './v2-manifest.swagger-d0899723';
|
3
4
|
import 'mitt';
|
4
5
|
|
5
6
|
declare type CookieTransitionDataStoreOptions = {
|
@@ -88,10 +89,10 @@ declare const quirkEvaluator: CriteriaEvaluator;
|
|
88
89
|
|
89
90
|
declare const eventEvaluator: CriteriaEvaluator;
|
90
91
|
|
91
|
-
declare const
|
92
|
+
declare const currentPageEvaluator: CriteriaEvaluator;
|
92
93
|
|
93
94
|
/** Tests if a StringMatch matches a string value */
|
94
|
-
declare function isStringMatch(lhs: string | null | undefined, match: StringMatch): boolean;
|
95
|
+
declare function isStringMatch(lhs: string | number | null | undefined, match: StringMatch): boolean;
|
95
96
|
|
96
97
|
/** Computes aggregated scores based on other dimensions */
|
97
98
|
declare function computeAggregateDimensions(primitiveScores: ScoreVector, aggregates: Record<string, AggregateDimension>): ScoreVector;
|
@@ -125,4 +126,4 @@ declare const EdgeNodeTagName = "nesitag";
|
|
125
126
|
*/
|
126
127
|
declare function enableContextDevTools(): ContextPlugin;
|
127
128
|
|
128
|
-
export { CookieTransitionDataStore, CookieTransitionDataStoreOptions, EdgeNodeTagName, EdgePersonalizeComponentOptions, EdgeTestComponentOptions, EdgeTransitionDataStore, EdgeTransitionDataStoreOptions, LinearDecayOptions, ScriptType, computeAggregateDimensions, cookieEvaluator, createConsoleLogDrain, createDebugConsoleLogDrain, createLinearDecay, enableConsoleLogDrain, enableContextDevTools, enableDebugConsoleLogDrain, evaluateVariantMatch, eventEvaluator, getEnrichmentVectorKey, isStringMatch, pageViewCountDimension, pageViewCountEvaluator,
|
129
|
+
export { CookieTransitionDataStore, CookieTransitionDataStoreOptions, EdgeNodeTagName, EdgePersonalizeComponentOptions, EdgeTestComponentOptions, EdgeTransitionDataStore, EdgeTransitionDataStoreOptions, LinearDecayOptions, ScriptType, computeAggregateDimensions, cookieEvaluator, createConsoleLogDrain, createDebugConsoleLogDrain, createLinearDecay, currentPageEvaluator, enableConsoleLogDrain, enableContextDevTools, enableDebugConsoleLogDrain, evaluateVariantMatch, eventEvaluator, getEnrichmentVectorKey, isStringMatch, pageViewCountDimension, pageViewCountEvaluator, queryStringEvaluator, quirkEvaluator };
|
package/dist/index.esm.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
import{a as J}from"./chunk-GU2YFM6V.mjs";import{d as v,e as n,f as m,g,h as y,i as u}from"./chunk-KZPEO35A.mjs";u();u();u();function ht(r,t){let e={...r};for(let o in t){let i=St(r,o,t,new Set([o]));i!==0&&(e[o]=i)}return e}function St(r,t,e,o){var s;let i=0;for(let a of e[t].inputs){let c=(s=r[a.dim])!=null?s:0;if(!c&&e[a.dim]){if(o.has(a.dim))continue;let l=new Set(o);l.add(a.dim),c=St(r,a.dim,e,l)}if(c!==0)if(a.sign==="c"){i=0;break}else a.sign==="-"?i-=c:i+=c}return i}u();var N,k,rt=class{constructor(t,e,o){m(this,N,void 0);m(this,k,void 0);v(this,"signal");g(this,k,t),this.signal=e,g(this,N,o)}computeSignals(t,e){if(t.scores[n(this,k)]>=this.signal.cap&&this.signal.dur!=="t")return;let i=n(this,N).evaluate(t,this.signal.crit,e,this.signal,n(this,k)),s=this.signal.dur==="s"||this.signal.dur==="t"?"modscoreS":"modscore";if(i)e.push({type:s,data:{dimension:n(this,k),delta:this.signal.str}});else if(this.signal.dur==="t"){let a=t.visitor.sessionScores[n(this,k)];a&&e.push({type:s,data:{dimension:n(this,k),delta:-a}})}}};N=new WeakMap,k=new WeakMap;var b,$,ot=class{constructor({manifest:t,evaluator:e=new G({})}){v(this,"data");m(this,b,void 0);m(this,$,void 0);var o,i,s;g(this,b,(o=t.project)!=null?o:{}),this.data=t,g(this,$,Object.entries((s=(i=n(this,b).pz)==null?void 0:i.sig)!=null?s:[]).map(([a,c])=>new rt(a,c,e)))}rollForControlGroup(){var t,e;return Math.random()<((e=(t=n(this,b).pz)==null?void 0:t.control)!=null?e:0)}getTest(t){var e;return(e=n(this,b).test)==null?void 0:e[t]}computeSignals(t){let e=[];return n(this,$).forEach(o=>{o.computeSignals(t,e)}),e}computeAggregateDimensions(t){var e,o;return ht(t,(o=(e=n(this,b).pz)==null?void 0:e.agg)!=null?o:{})}getDimensionByKey(t){var o,i,s,a;let e=t.indexOf(J);return e<=0?(i=(o=n(this,b).pz)==null?void 0:o.sig)==null?void 0:i[t]:(a=(s=n(this,b).pz)==null?void 0:s.enr)==null?void 0:a[t.substring(0,e)]}};b=new WeakMap,$=new WeakMap;u();var vt=(r,t)=>{var i;if(t.type!=="CK")return!1;let e=(i=r.state.cookies)==null?void 0:i[t.cookieName];return E(e,t.match)};u();u();function yt(r,t){var o;if(typeof r=="undefined"||r===null)return!1;let e=Number(r);if(isNaN(e))return!1;switch((o=t==null?void 0:t.op)!=null?o:"="){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}}u();function B(r,t){return`${r}${J}${t}`}var it=B("$pvc","v"),Dt=(r,t,e)=>{var a,c;if(t.type!=="PVC")return!1;let o=!r.previousState||((a=r.state.url)==null?void 0:a.toString())!==((c=r.previousState.url)==null?void 0:c.toString()),s=(r.visitor.sessionScores[it]||0)+1;if(yt(s,t.match)){let d=e.some(l=>l.type==="modscoreS"&&l.data.dimension===it);return o&&!d&&e.push({type:"modscoreS",data:{dimension:it,delta:1}}),!0}return!1};u();var Ct=(r,t)=>{var o;if(t.type!=="QS")return!1;let e=(o=r.state.url)==null?void 0:o.searchParams.get(t.queryName);return E(e,t.match)};u();var Vt=(r,t,e,o,i)=>{if(t.type!=="QK")return!1;if(typeof window=="undefined"&&o.dur==="t"&&r.scores[i]>0)return!0;let s=r.visitor.quirks[t.key];return E(s,t.match)};u();var xt=(r,t)=>{var e,o;return t.type!=="EVT"?!1:(o=(e=r.state.events)==null?void 0:e.some(i=>E(i.event,t.event)))!=null?o:!1};u();var bt=(r,t)=>{var e;return t.type!=="PV"?!1:E((e=r.state.url)==null?void 0:e.pathname,t.path)};u();var _,G=class{constructor(t){m(this,_,void 0);g(this,_,t)}evaluate(t,e,o,i,s){let a=!(e.op==="&"||!e.op);for(let c of e.clauses){let d;if(c.type==="G")d=this.evaluate(t,c,o,i,s);else{let l=n(this,_)[c.type];if(!l)throw new Error(`${c.type} signal criteria not registered`);d=l(t,c,o,i,s)}if(d===a)return a}return!a}};_=new WeakMap;u();function E(r,t){var a,c,d,l;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 o=(c=t.cs)!=null?c:!1,i=o?r!=null?r:"":Et(r),s=o?t.rhs:Et(t.rhs);switch(e){case"=":return i===s;case"!=":return i!==s;case"~":return(d=i.includes(s))!=null?d:!1;case"!~":return!((l=i.includes(s))!=null?l:!0);case"//":return new RegExp(t.rhs,o?"":"i").test(r!=null?r:"");case"!//":return!new RegExp(t.rhs,o?"":"i").test(r!=null?r:"");default:throw new Error(`Unknown match type ${e}.`)}}function Et(r){var t;return(t=r==null?void 0:r.toUpperCase())!=null?t:""}u();var H=()=>({quirks:{},scores:{},sessionScores:{},tests:{},consent:!1,controlGroup:!1});u();u();import jt from"mitt";import{dequal as Ft}from"dequal/lite";var Qt="__UNIFORM_DATA__",P,I,j=class{constructor({initialData:t}){m(this,P,void 0);m(this,I,jt());v(this,"events",{on:n(this,I).on,off:n(this,I).off});t&&g(this,P,t)}get data(){return n(this,P)}updateData(t,e){return g(this,P,e),this.handleUpdateData(t,e)}async delete(t){g(this,P,void 0),await this.handleDelete(t)}signalAsyncDataUpdate(t){Ft(this.data,t)||(g(this,P,t),n(this,I).emit("dataUpdatedAsync",t))}getClientTransitionState(){if(typeof document=="undefined")return;let t=document.getElementById(Qt);return(t==null?void 0:t.textContent)?JSON.parse(t.textContent):void 0}};P=new WeakMap,I=new WeakMap;u();var nt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Tt=nt.split(""),kt=new Array(123);for(let r=0;r<nt.length;r++)kt[nt.charCodeAt(r)]=r;var st=r=>{if(r<0)return`-${st(-r)}`;let t=r>>>0,e=r/4294967296>>>0,o="";for(;e>0;)o=Tt[63&t]+o,t>>>=6,t|=(63&e)<<26,e>>>=6;let i="";do i=Tt[63&t]+i,t>>>=6;while(t>0);return i+o},wt=r=>{let t=0,e=r.charAt(0)==="-"?1:0;for(let o=e;o<r.length;o++)t=t*64+kt[r.charCodeAt(o)];return e?-t:t};var Pt=typeof window=="undefined",R,L,Kt=class extends j{constructor({cookieAdapter:t,cookieName:e="ufvd"}){super({initialData:Pt?Jt(t.get(e)):void 0});m(this,R,void 0);m(this,L,void 0);g(this,R,e),g(this,L,t)}handleDelete(){return n(this,L).remove(n(this,R)),Promise.resolve()}async handleUpdateData(t,e){Pt||(e.consent?n(this,L).set(n(this,R),Bt(e)):n(this,L).remove(n(this,R)))}};R=new WeakMap,L=new WeakMap;var Mt="~",Ot="!",Rt="-";function Jt(r){if(!r)return;let t=r.split(Mt);if(t.length>3)return;let[e,o,i]=t;return{consent:!0,sessionScores:Lt(at(o)),scores:Lt(at(i)),tests:at(e)}}function at(r){return r.split(Ot).map(e=>e.split(Rt)).reduce((e,o)=>(o.length!==2||(e[o[0]]=o[1]),e),{})}function Lt(r){return Object.entries(r).reduce((t,[e,o])=>(t[e]=wt(o),t),{})}function Bt(r){return[ut(r.tests),ut(At(r.sessionScores)),ut(At(r.scores))].join(Mt)}function At(r){return Object.entries(r).reduce((t,[e,o])=>(t[e]=st(o),t),{})}function ut(r){return Object.entries(r).map(t=>t.join(Rt)).join(Ot)}u();var Y,Yt,Ht=class extends j{constructor({cookieAdapter:t,visitorIdCookieName:e="ufvi",...o}){super(o);m(this,Y);o.initialData||y(this,Y,Yt).call(this).catch(i=>{console.error(i)})}handleDelete(t){throw new Error("Method not implemented.")}async handleUpdateData(t){let e=await new Promise(o=>{setTimeout(()=>{o(void 0)},2e3)});e&&this.signalAsyncDataUpdate(e)}};Y=new WeakSet,Yt=async function(){let t=await new Promise(e=>{setTimeout(()=>{e(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};u();function er(r){let{gracePeriod:t=864e5,decayRate:e=1/30,decayCap:o=.95}=r!=null?r:{};return function({now:s,lastUpd:a,scores:c,sessionScores:d}){if(typeof a!="number")return!1;let D=s-a-t;if(D<=0)return!1;let C=D/864e5,U=1-Math.min(o,C*e);return U<=0?!1:(Ut(c,U),Ut(d,U),!0)}}function Ut(r,t){for(let e in r)r[e]*=t}u();import Zt from"mitt";import{dequal as X}from"dequal/lite";u();var ct=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 o=localStorage.getItem(t);return o?JSON.parse(o):void 0}catch(o){return e}}set(t,e,o){if(this.inMemoryFallback[t]=e,!(!this.hasLocalStorageObject||!o))try{localStorage.setItem(t,JSON.stringify(e))}catch(i){console.warn(i)}}delete(t,e){e||delete this.inMemoryFallback[t];try{localStorage.removeItem(t)}catch(o){}}};u();import Xt from"rfdc";var Wt=Xt();function It(r,t,e){let o=t?Wt(t):H();return r.forEach(i=>{var s,a;switch(i.type){case"consent":o.consent=i.data;break;case"setquirk":o.quirks[i.data.key]=i.data.value;break;case"settest":o.tests[i.data.test]=i.data.variant;break;case"modscore":if(e)break;let c=Number(i.data.delta);if(isNaN(c))throw new Error("Non-number delta received");let d=(s=o.scores[i.data.dimension])!=null?s:0;o.scores[i.data.dimension]=d+c;break;case"modscoreS":if(e)break;let l=Number(i.data.delta);if(isNaN(l))throw new Error("Non-number delta received");let D=(a=o.sessionScores[i.data.dimension])!=null?a:0;o.sessionScores[i.data.dimension]=D+l;break;case"identify":break;case"setcontrol":o.controlGroup=i.data;break;default:throw new Error("Unknown command")}}),o}var W="ufvisitor",T,A,q,h,V,M,w,z,Z,te,tt,ee,F,zt,Q,qt,dt=class{constructor(t){m(this,V);m(this,w);m(this,Z);m(this,tt);m(this,F);m(this,Q);m(this,T,Zt());m(this,A,new ct);m(this,q,void 0);m(this,h,void 0);v(this,"events",{on:n(this,T).on,off:n(this,T).off});if(g(this,h,t),n(this,V,M)||y(this,w,z).call(this,y(this,Q,qt).call(this),!0),t.transitionStore){let e=t.transitionStore.getClientTransitionState();if(e){let i=[];e.quirks&&i.push(...Object.entries(e.quirks).map(([s,a])=>({type:"setquirk",data:{key:s,value:a}}))),e.tests&&i.push(...Object.entries(e.tests).map(([s,a])=>({type:"settest",data:{test:s,variant:a}}))),this.updateData(i),e.ssv&&t.onServerTransitionScoresReceived&&t.onServerTransitionScoresReceived(e.ssv)}t.transitionStore.events.on("dataUpdatedAsync",i=>{y(this,w,z).call(this,{...n(this,V,M).visitorData,...i})});let o=t.transitionStore.data;o&&y(this,w,z).call(this,{...n(this,V,M).visitorData,...o},!0)}}get data(){var e,o;let t=n(this,V,M);if(y(this,tt,ee).call(this,t)){let{sessionScores:i,...s}=t.visitorData;return y(this,w,z).call(this,{...s,sessionScores:{}}),(o=(e=n(this,h)).onLogMessage)==null||o.call(e,["info",120]),n(this,V,M).visitorData}return t.visitorData}get decayEnabled(){return!!n(this,h).decay}async updateData(t){var o,i,s,a;if(t.length===0)return;(i=(o=n(this,h)).onLogMessage)==null||i.call(o,["debug",101,t]);let e=It(t,this.data,(s=n(this,V,M))==null?void 0:s.visitorData.controlGroup);t.some(c=>c.type==="consent"&&!c.data)&&n(this,A).delete(W,!0),y(this,w,z).call(this,e),await((a=n(this,h).transitionStore)==null?void 0:a.updateData(t,n(this,V,M).visitorData))}async delete(t){var e,o,i;n(this,A).delete(W,!1),await((e=n(this,h).transitionStore)==null?void 0:e.delete(t)),y(this,w,z).call(this,y(this,Q,qt).call(this)),(i=(o=n(this,h)).onLogMessage)==null||i.call(o,["info",103,t])}};T=new WeakMap,A=new WeakMap,q=new WeakMap,h=new WeakMap,V=new WeakSet,M=function(){return n(this,A).get(W)},w=new WeakSet,z=function(t,e=!1){var D,C,U,ft,mt,gt;let o=n(this,V,M),i=Date.now();t.controlGroup?(t.scores={},t.sessionScores={}):(y(this,F,zt).call(this,t.scores),y(this,F,zt).call(this,t.sessionScores),(C=(D=n(this,h)).decay)==null||C.call(D,{now:i,lastUpd:o==null?void 0:o.updated,scores:t.scores,sessionScores:t.sessionScores}));let s=!X(o==null?void 0:o.visitorData.scores,t.scores),a=!X(o==null?void 0:o.visitorData.sessionScores,t.sessionScores),c=!X(o==null?void 0:o.visitorData.quirks,t.quirks),d=!X(o==null?void 0:o.visitorData.tests,t.tests),l={updated:i,visitorData:t};y(this,Z,te).call(this),n(this,A).set(W,l,!!t.consent),(ft=(U=n(this,h)).onLogMessage)==null||ft.call(U,["debug",102,t]),e||((s||a)&&n(this,T).emit("scoresUpdated",t),c&&n(this,T).emit("quirksUpdated",t),d&&n(this,T).emit("testsUpdated",t),((mt=o==null?void 0:o.visitorData)==null?void 0:mt.consent)!==t.consent&&n(this,T).emit("consentUpdated",t),((gt=o==null?void 0:o.visitorData)==null?void 0:gt.controlGroup)!==t.controlGroup&&n(this,T).emit("controlGroupUpdated",t))},Z=new WeakSet,te=function(){typeof window=="undefined"||!n(this,h).visitLifespan||(n(this,q)&&window.clearTimeout(n(this,q)),g(this,q,window.setTimeout(()=>{this.data},n(this,h).visitLifespan+50)))},tt=new WeakSet,ee=function(t){let e=n(this,h).visitLifespan;return e?t.updated+e<Date.now():!1},F=new WeakSet,zt=function(t){var e,o;if(!!n(this,h).manifest)for(let i in t){let s=t[i],a=n(this,h).manifest.getDimensionByKey(i);!a||s>a.cap&&((o=(e=n(this,h)).onLogMessage)==null||o.call(e,["debug",110,{dim:i,score:s,cap:a.cap}]),t[i]=a.cap)}},Q=new WeakSet,qt=function(){var t,e,o;return{...H(),consent:(t=n(this,h).defaultConsent)!=null?t:!1,controlGroup:(o=(e=n(this,h).manifest)==null?void 0:e.rollForControlGroup())!=null?o:!1}};u();import oe from"mitt";u();u();function Nt({context:r,variations:t,take:e=1}){var c,d;let o=(c=r.storage.data.controlGroup)!=null?c:!1,i=[],s=!1,a=r.scores;for(let l of t){if(i.length===e)break;if(!((d=l.pz)==null?void 0:d.crit.length)){i.push(l);continue}!o&&$t(l.pz,a)&&(s=!0,i.push(l))}return{personalized:s,variations:i}}u();function $t(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:o}=r,i=(a=t[o])!=null?a:0;if(e==="+")return Math.max(...Object.values(t))===i&&i>0;if(e==="-")return Math.min(...Object.values(t))===i&&i>0;let s=r.rDim?t[r.rDim]:r.r;if(s===void 0)return!1;if(e===">")return i>s;if(e===">=")return i>=s;if(e==="<")return i<s;if(e==="<=")return i<=s;if(e==="=")return i===s;if(e==="!=")return i!==s;throw new Error(`Unknown op: ${e}`)}u();var re=r=>{let{values:t,total:e,missingDistribution:o}=r.reduce((i,s)=>(s.testDistribution?i.total+=s.testDistribution:++i.missingDistribution,i.values.push(s.testDistribution),i),{values:[],total:0,missingDistribution:0});if(e>100)throw new Error(`Total distribution ${e} is over the maximum 100.`);if(e<100){let s=(100-e)/o;t.forEach((a,c)=>{typeof a=="undefined"&&(t[c]=s)})}return t},lt=({name:r,context:t,variations:e})=>{var s;let o,i=t.getTestVariantId(r);if(i===null)return{result:void 0,variantAssigned:!1};if(i&&(o=e.find(a=>a.id===i),o||t.log("warn",401,{test:r,variant:i})),!o){let a=re(e),c=Math.floor(Math.random()*100),d=0;o=e.find((l,D)=>{let C=a[D];if(c>d&&c<=d+C)return l;d+=C}),o&&t.setTestVariantId(r,(s=o.id)!=null?s:"Unknown")}return{result:o,variantAssigned:!i}};import{dequal as ie}from"dequal/lite";var O,x,K,S,ne=class{constructor(t){v(this,"manifest");m(this,O,{});m(this,x,void 0);m(this,K,{});m(this,S,oe());v(this,"events",{on:n(this,S).on,off:n(this,S).off});v(this,"storage");var a,c;let{manifest:e,...o}=t;g(this,x,{}),(a=t.plugins)==null||a.forEach(d=>{!d.logDrain||n(this,S).on("log",d.logDrain)}),this.manifest=new ot({manifest:e,evaluator:new G({CK:vt,QS:Ct,QK:Vt,PVC:Dt,EVT:xt,PV:bt})});let i=!1;this.storage=new dt({...o,manifest:this.manifest,onServerTransitionScoresReceived:d=>{g(this,O,d),i=!0,n(this,S).emit("log",["debug",130,d])},onLogMessage:d=>n(this,S).emit("log",d)});let s=d=>{var D;let l={...d.scores};for(let C in d.sessionScores)l[C]=((D=l[C])!=null?D:0)+d.sessionScores[C];l=this.manifest.computeAggregateDimensions(l),g(this,O,l),n(this,S).emit("scoresUpdated",l),n(this,S).emit("log",["info",3,l])};this.storage.events.on("scoresUpdated",s),i||s(this.storage.data),this.storage.events.on("quirksUpdated",d=>{let l=this.manifest.computeSignals({scores:n(this,O),state:n(this,x),previousState:n(this,x),visitor:this.storage.data});this.storage.updateData(l),n(this,S).emit("quirksUpdated",d.quirks),n(this,S).emit("log",["info",4,d.quirks])}),n(this,S).emit("log",["debug",1]),(c=t.plugins)==null||c.forEach(d=>{!d.init||d.init(this)})}get scores(){return n(this,O)}async update(t){var i;let e=[];n(this,S).emit("log",["info",2,{...t,url:(i=t.url)==null?void 0:i.toString()}]),t.quirks&&(e.push(...Object.entries(t.quirks).map(([s,a])=>({type:"setquirk",data:{key:s,value:a}}))),t.quirks=void 0),t.enrichments&&(e.push(...t.enrichments.map(s=>({type:"modscore",data:{dimension:B(s.cat,s.key),delta:s.str}}))),t.enrichments=void 0);let o=n(this,x);g(this,x,{...n(this,x),...t}),e.push(...this.manifest.computeSignals({state:n(this,x),previousState:o,visitor:this.storage.data,scores:n(this,O)})),await this.storage.updateData(e)}getTestVariantId(t){var o;let e=this.manifest.getTest(t);return e?(o=e.wv)!=null?o:this.storage.data.tests[t]:(n(this,S).emit("log",["warn",401,t]),null)}setTestVariantId(t,e){this.storage.updateData([{type:"settest",data:{test:t,variant:e}}])}log(...t){n(this,S).emit("log",t)}test(t){var o,i;let e=lt({...t,context:this});return n(this,S).emit("testResult",{name:t.name,variantId:(i=(o=e.result)==null?void 0:o.id)!=null?i:void 0,variantAssigned:e.variantAssigned}),e}personalize(t){let e=Nt({...t,context:this}),o=n(this,K)[t.name],i={name:t.name,variantIds:e.variations.map(s=>{var a;return(a=s.id)!=null?a:"Unknown"}),control:this.storage.data.controlGroup,changed:!0};return o&&ie(i.variantIds,o)&&(i.changed=!1),n(this,S).emit("personalizationResult",i),n(this,K)[t.name]=i.variantIds,e}async forget(t){g(this,x,{}),await this.storage.delete(t)}};O=new WeakMap,x=new WeakMap,K=new WeakMap,S=new WeakMap;u();u();function et(r,t){if(r==="none")return!1;switch(t){case"debug":return r==="debug";case"info":return r==="info"||r==="debug";case"warn":return r==="warn"||r==="info"||r==="debug";case"error":return r==="debug"||"info";default:return!1}}function se(r){return([t,e,...o])=>{!et(r,t)||console[t](`\u{1F94B} [${t}] Uniform event ID ${e}
|
2
|
-
`,...o.map(i=>JSON.stringify(i,null,2)))}}function
|
3
|
-
`,...
|
1
|
+
import{a as H}from"./chunk-CEKV2MHL.mjs";import{d as D,e as s,f as d,g as m,h as S,i as u}from"./chunk-AFJ7PNM5.mjs";u();u();u();function yt(r,t){let e={...r};for(let o in t){let i=Dt(r,o,t,new Set([o]));i!==0&&(e[o]=i)}return e}function Dt(r,t,e,o){var a;let i=0;for(let n of e[t].inputs){let c=(a=r[n.dim])!=null?a:0;if(!c&&e[n.dim]){if(o.has(n.dim))continue;let g=new Set(o);g.add(n.dim),c=Dt(r,n.dim,e,g)}if(c!==0)if(n.sign==="c"){i=0;break}else n.sign==="-"?i-=c:i+=c}return i}u();var G,w,it=class{constructor(t,e,o){d(this,G,void 0);d(this,w,void 0);D(this,"signal");m(this,w,t),this.signal=e,m(this,G,o)}computeSignal(t,e){if(t.scores[s(this,w)]>=this.signal.cap&&this.signal.dur!=="t")return;let i=s(this,G).evaluate(t,this.signal.crit,e,this.signal,s(this,w)),a=this.signal.dur==="s"||this.signal.dur==="t"?"modscoreS":"modscore";if(!!i.changed){if(i.result)e.push({type:a,data:{dimension:s(this,w),delta:this.signal.str}});else if(this.signal.dur==="t"){let n=t.visitor.sessionScores[s(this,w)];n&&e.push({type:a,data:{dimension:s(this,w),delta:-n}})}}}};G=new WeakMap,w=new WeakMap;var V,_,nt=class{constructor({manifest:t,evaluator:e=new j({})}){D(this,"data");d(this,V,void 0);d(this,_,void 0);var o,i,a;m(this,V,(o=t.project)!=null?o:{}),this.data=t,m(this,_,Object.entries((a=(i=s(this,V).pz)==null?void 0:i.sig)!=null?a:[]).map(([n,c])=>new it(n,c,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(o=>{o.computeSignal(t,e)}),e}computeAggregateDimensions(t){var e,o;return yt(t,(o=(e=s(this,V).pz)==null?void 0:e.agg)!=null?o:{})}getDimensionByKey(t){var o,i,a,n;let e=t.indexOf(H);return e<=0?(i=(o=s(this,V).pz)==null?void 0:o.sig)==null?void 0:i[t]:(n=(a=s(this,V).pz)==null?void 0:a.enr)==null?void 0:n[t.substring(0,e)]}};V=new WeakMap,_=new WeakMap;u();import{dequal as Jt}from"dequal/lite";var xt=(r,t)=>{var a,n;if(t.type!=="CK")return{result:!1,changed:!1};let e=!Jt(Ct(r.state.cookies),Ct((a=r.previousState)==null?void 0:a.cookies)),o=(n=r.state.cookies)==null?void 0:n[t.cookieName];return{result:b(o,t.match),changed:e}};function Ct(r){if(!r)return;if(!r.ufvd)return r;let{ufvd:t,...e}=r;return e}u();u();function Vt(r,t){var o;if(typeof r=="undefined"||r===null)return!1;let e=Number(r);if(isNaN(e))return!1;switch((o=t==null?void 0:t.op)!=null?o:"="){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}}u();function Y(r,t){return`${r}${H}${t}`}var st=Y("$pvc","v"),bt=(r,t,e)=>{var n,c;if(t.type!=="PVC")return{result:!1,changed:!1};let o=!r.previousState||((n=r.state.url)==null?void 0:n.toString())!==((c=r.previousState.url)==null?void 0:c.toString()),a=(r.visitor.sessionScores[st]||0)+1;if(Vt(a,t.match)){let l=e.some(g=>g.type==="modscoreS"&&g.data.dimension===st);return o&&!l&&e.push({type:"modscoreS",data:{dimension:st,delta:1}}),{result:!0,changed:o}}return{result:!1,changed:o}};u();var Et=(r,t)=>{var a,n,c,l,g;if(t.type!=="QS")return{result:!1,changed:!1};let e=!r.previousState||((n=(a=r.state.url)==null?void 0:a.searchParams)==null?void 0:n.toString())!==((l=(c=r.previousState.url)==null?void 0:c.searchParams)==null?void 0:l.toString()),o=(g=r.state.url)==null?void 0:g.searchParams.get(t.queryName);return{result:b(o,t.match),changed:e}};u();var Tt=(r,t,e,o,i)=>{var y;if(t.type!=="QK")return{result:!1,changed:!1};if(typeof window=="undefined"&&o.dur==="t"&&r.scores[i]>0)return{result:!0,changed:!1};let a=r.visitor.quirks[t.key],n=(y=r.state.quirks)==null?void 0:y[t.key],c=n!=null?n:a,l=Boolean(n&&a!==n);return{result:b(c,t.match),changed:l}};u();var wt=(r,t)=>{var o,i;if(t.type!=="EVT")return{result:!1,changed:!1};let e=(i=(o=r.state.events)==null?void 0:o.some(a=>b(a.event,t.event)))!=null?i:!1;return{result:e,changed:e}};u();var kt=(r,t)=>{var i,a,n,c,l;if(t.type!=="PV")return{result:!1,changed:!1};let e=!r.previousState||((a=(i=r.state.url)==null?void 0:i.pathname)==null?void 0:a.toString())!==((c=(n=r.previousState.url)==null?void 0:n.pathname)==null?void 0:c.toString());return{result:b((l=r.state.url)==null?void 0:l.pathname,t.path),changed:e}};u();var F,j=class{constructor(t){d(this,F,void 0);m(this,F,t)}evaluate(t,e,o,i,a){let n=!(e.op==="&"||!e.op),c=!1;for(let l of e.clauses){let g;if(l.type==="G")g=this.evaluate(t,l,o,i,a);else{let y=s(this,F)[l.type];if(!y)throw new Error(`${l.type} signal criteria not registered`);g=y(t,l,o,i,a)}if(g.changed&&(c=!0),g.result===n)return{result:n,changed:c}}return{result:!n,changed:c}}};F=new WeakMap;u();function b(r,t){var n,c,l,g,y,x;let e=(n=t==null?void 0:t.op)!=null?n:"=";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 o=(c=t.cs)!=null?c:!1,i=(o?r!=null?r:"":Pt(r)).toString(),a=(o?t.rhs:Pt(t.rhs)).toString();switch(e){case"=":return i===a;case"!=":return i!==a;case"~":return(l=i.includes(a))!=null?l:!1;case"!~":return!((g=i.includes(a))==null||g);case"//":return new RegExp(t.rhs.toString(),o?"":"i").test((y=r==null?void 0:r.toString())!=null?y:"");case"!//":return!new RegExp(t.rhs.toString(),o?"":"i").test((x=r==null?void 0:r.toString())!=null?x:"");default:throw new Error(`Unknown match type ${e}.`)}}function Pt(r){var t,e;return(e=(t=r==null?void 0:r.toString())==null?void 0:t.toUpperCase())!=null?e:""}u();var X=()=>({quirks:{},scores:{},sessionScores:{},tests:{},consent:!1,controlGroup:!1});u();u();import Ht from"mitt";import{dequal as Yt}from"dequal/lite";var Xt="__UNIFORM_DATA__",O,z,Q=class{constructor({initialData:t}){d(this,O,void 0);d(this,z,Ht());D(this,"events",{on:s(this,z).on,off:s(this,z).off});t&&m(this,O,t)}get data(){return s(this,O)}updateData(t,e){return m(this,O,e),this.handleUpdateData(t,e)}async delete(t){m(this,O,void 0),await this.handleDelete(t)}signalAsyncDataUpdate(t){Yt(this.data,t)||(m(this,O,t),s(this,z).emit("dataUpdatedAsync",t))}getClientTransitionState(){if(typeof document=="undefined")return;let t=document.getElementById(Xt);return t!=null&&t.textContent?JSON.parse(t.textContent):void 0}};O=new WeakMap,z=new WeakMap;u();var at="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ot=at.split(""),Mt=new Array(123);for(let r=0;r<at.length;r++)Mt[at.charCodeAt(r)]=r;var ut=r=>{if(r<0)return`-${ut(-r)}`;let t=r>>>0,e=r/4294967296>>>0,o="";for(;e>0;)o=Ot[63&t]+o,t>>>=6,t|=(63&e)<<26,e>>>=6;let i="";do i=Ot[63&t]+i,t>>>=6;while(t>0);return i+o},Rt=r=>{let t=0,e=r.charAt(0)==="-"?1:0;for(let o=e;o<r.length;o++)t=t*64+Mt[r.charCodeAt(o)];return e?-t:t};var Lt=typeof window=="undefined",R,L,Wt=class extends Q{constructor({cookieAdapter:t,cookieName:e="ufvd"}){super({initialData:Lt?Zt(t.get(e)):void 0});d(this,R,void 0);d(this,L,void 0);m(this,R,e),m(this,L,t)}handleDelete(){return s(this,L).remove(s(this,R)),Promise.resolve()}async handleUpdateData(t,e){Lt||(e.consent?s(this,L).set(s(this,R),te(e)):s(this,L).remove(s(this,R)))}};R=new WeakMap,L=new WeakMap;var It="~",zt="!",qt="-";function Zt(r){if(!r)return;let t=r.split(It);if(t.length>3)return;let[e,o,i]=t;return{consent:!0,sessionScores:Ut(ct(o)),scores:Ut(ct(i)),tests:ct(e)}}function ct(r){return r.split(zt).map(e=>e.split(qt)).reduce((e,o)=>(o.length!==2||(e[o[0]]=o[1]),e),{})}function Ut(r){return Object.entries(r).reduce((t,[e,o])=>(t[e]=Rt(o),t),{})}function te(r){return[lt(r.tests),lt(At(r.sessionScores)),lt(At(r.scores))].join(It)}function At(r){return Object.entries(r).reduce((t,[e,o])=>(t[e]=ut(o),t),{})}function lt(r){return Object.entries(r).map(t=>t.join(qt)).join(zt)}u();var W,re,ee=class extends Q{constructor({cookieAdapter:t,visitorIdCookieName:e="ufvi",...o}){super(o);d(this,W);o.initialData||S(this,W,re).call(this).catch(i=>{console.error(i)})}handleDelete(t){throw new Error("Method not implemented.")}async handleUpdateData(t){let e=await new Promise(o=>{setTimeout(()=>{o(void 0)},2e3)});e&&this.signalAsyncDataUpdate(e)}};W=new WeakSet,re=async function(){let t=await new Promise(e=>{setTimeout(()=>{e(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};u();function ar(r){let{gracePeriod:t=864e5,decayRate:e=1/30,decayCap:o=.95}=r!=null?r:{};return function({now:a,lastUpd:n,scores:c,sessionScores:l}){if(typeof n!="number")return!1;let y=a-n-t;if(y<=0)return!1;let x=y/864e5,I=1-Math.min(o,x*e);return I<=0?!1:(Nt(c,I),Nt(l,I),!0)}}function Nt(r,t){for(let e in r)r[e]*=t}u();import ne from"mitt";import{dequal as Z}from"dequal/lite";u();var dt=class{constructor(){D(this,"inMemoryFallback",{});D(this,"hasLocalStorageObject",typeof localStorage!="undefined")}get(t){let e=this.inMemoryFallback[t];if(!this.hasLocalStorageObject||e)return e;try{let o=localStorage.getItem(t);return o?JSON.parse(o):void 0}catch(o){return e}}set(t,e,o){if(this.inMemoryFallback[t]=e,!(!this.hasLocalStorageObject||!o))try{localStorage.setItem(t,JSON.stringify(e))}catch(i){console.warn(i)}}delete(t,e){e||delete this.inMemoryFallback[t];try{localStorage.removeItem(t)}catch(o){}}};u();import oe from"rfdc";var ie=oe();function $t(r,t,e){let o=t?ie(t):X();return r.forEach(i=>{var a,n;switch(i.type){case"consent":o.consent=i.data;break;case"setquirk":o.quirks[i.data.key]=i.data.value;break;case"settest":o.tests[i.data.test]=i.data.variant;break;case"modscore":if(e)break;let c=Number(i.data.delta);if(isNaN(c))throw new Error("Non-number delta received");let l=(a=o.scores[i.data.dimension])!=null?a:0;o.scores[i.data.dimension]=l+c;break;case"modscoreS":if(e)break;let g=Number(i.data.delta);if(isNaN(g))throw new Error("Non-number delta received");let y=(n=o.sessionScores[i.data.dimension])!=null?n:0;o.sessionScores[i.data.dimension]=y+g;break;case"identify":break;case"setcontrol":o.controlGroup=i.data;break;default:throw new Error("Unknown command")}}),o}var tt="ufvisitor",E,U,N,h,C,M,k,q,et,se,rt,ae,K,Gt,B,_t,pt=class{constructor(t){d(this,C);d(this,k);d(this,et);d(this,rt);d(this,K);d(this,B);d(this,E,ne());d(this,U,new dt);d(this,N,void 0);d(this,h,void 0);D(this,"events",{on:s(this,E).on,off:s(this,E).off});if(m(this,h,t),s(this,C,M)||S(this,k,q).call(this,S(this,B,_t).call(this),!0),t.transitionStore){let e=t.transitionStore.getClientTransitionState();if(e){let i=[];e.quirks&&i.push(...Object.entries(e.quirks).map(([a,n])=>({type:"setquirk",data:{key:a,value:n}}))),e.tests&&i.push(...Object.entries(e.tests).map(([a,n])=>({type:"settest",data:{test:a,variant:n}}))),this.updateData(i),e.ssv&&t.onServerTransitionScoresReceived&&t.onServerTransitionScoresReceived(e.ssv)}t.transitionStore.events.on("dataUpdatedAsync",i=>{S(this,k,q).call(this,{...s(this,C,M).visitorData,...i})});let o=t.transitionStore.data;o&&S(this,k,q).call(this,{...s(this,C,M).visitorData,...o},!0)}}get data(){var e,o;let t=s(this,C,M);if(S(this,rt,ae).call(this,t)){let{sessionScores:i,...a}=t.visitorData;return S(this,k,q).call(this,{...a,sessionScores:{}}),(o=(e=s(this,h)).onLogMessage)==null||o.call(e,["info",120]),s(this,C,M).visitorData}return t.visitorData}get decayEnabled(){return!!s(this,h).decay}async updateData(t){var o,i,a,n;if(t.length===0)return;(i=(o=s(this,h)).onLogMessage)==null||i.call(o,["debug",101,t]);let e=$t(t,this.data,(a=s(this,C,M))==null?void 0:a.visitorData.controlGroup);t.some(c=>c.type==="consent"&&!c.data)&&s(this,U).delete(tt,!0),S(this,k,q).call(this,e),await((n=s(this,h).transitionStore)==null?void 0:n.updateData(t,s(this,C,M).visitorData))}async delete(t){var e,o,i;s(this,U).delete(tt,!1),await((e=s(this,h).transitionStore)==null?void 0:e.delete(t)),S(this,k,q).call(this,S(this,B,_t).call(this)),(i=(o=s(this,h)).onLogMessage)==null||i.call(o,["info",103,t])}};E=new WeakMap,U=new WeakMap,N=new WeakMap,h=new WeakMap,C=new WeakSet,M=function(){return s(this,U).get(tt)},k=new WeakSet,q=function(t,e=!1){var y,x,I,ht,vt,St;let o=s(this,C,M),i=Date.now();t.controlGroup?(t.scores={},t.sessionScores={}):(S(this,K,Gt).call(this,t.scores),S(this,K,Gt).call(this,t.sessionScores),(x=(y=s(this,h)).decay)==null||x.call(y,{now:i,lastUpd:o==null?void 0:o.updated,scores:t.scores,sessionScores:t.sessionScores}));let a=!Z(o==null?void 0:o.visitorData.scores,t.scores),n=!Z(o==null?void 0:o.visitorData.sessionScores,t.sessionScores),c=!Z(o==null?void 0:o.visitorData.quirks,t.quirks),l=!Z(o==null?void 0:o.visitorData.tests,t.tests),g={updated:i,visitorData:t};S(this,et,se).call(this),s(this,U).set(tt,g,!!t.consent),(ht=(I=s(this,h)).onLogMessage)==null||ht.call(I,["debug",102,t]),e||((a||n)&&s(this,E).emit("scoresUpdated",t),c&&s(this,E).emit("quirksUpdated",t),l&&s(this,E).emit("testsUpdated",t),((vt=o==null?void 0:o.visitorData)==null?void 0:vt.consent)!==t.consent&&s(this,E).emit("consentUpdated",t),((St=o==null?void 0:o.visitorData)==null?void 0:St.controlGroup)!==t.controlGroup&&s(this,E).emit("controlGroupUpdated",t))},et=new WeakSet,se=function(){typeof window=="undefined"||!s(this,h).visitLifespan||(s(this,N)&&window.clearTimeout(s(this,N)),m(this,N,window.setTimeout(()=>{this.data},s(this,h).visitLifespan+50)))},rt=new WeakSet,ae=function(t){let e=s(this,h).visitLifespan;return e?t.updated+e<Date.now():!1},K=new WeakSet,Gt=function(t){var e,o;if(!!s(this,h).manifest)for(let i in t){let a=t[i],n=s(this,h).manifest.getDimensionByKey(i);!n||a>n.cap&&((o=(e=s(this,h)).onLogMessage)==null||o.call(e,["debug",110,{dim:i,score:a,cap:n.cap}]),t[i]=n.cap)}},B=new WeakSet,_t=function(){var t,e,o;return{...X(),consent:(t=s(this,h).defaultConsent)!=null?t:!1,controlGroup:(o=(e=s(this,h).manifest)==null?void 0:e.rollForControlGroup())!=null?o:!1}};u();import ce from"mitt";u();u();function jt({context:r,variations:t,take:e=1}){var c,l;let o=(c=r.storage.data.controlGroup)!=null?c:!1,i=[],a=!1,n=r.scores;for(let g of t){if(i.length===e)break;if(!((l=g.pz)!=null&&l.crit.length)){i.push(g);continue}!o&&Ft(g.pz,n)&&(a=!0,i.push(g))}return{personalized:a,variations:i}}u();function Ft(r,t){return r!=null&&r.crit?!r.op||r.op==="&"?r.crit.every(e=>Qt(e,t)):r.crit.some(e=>Qt(e,t)):!0}function Qt(r,t){var n;let{op:e,l:o}=r,i=(n=t[o])!=null?n:0;if(e==="+")return Math.max(...Object.values(t))===i&&i>0;if(e==="-")return Math.min(...Object.values(t))===i&&i>0;let a=r.rDim?t[r.rDim]:r.r;if(a===void 0)return!1;if(e===">")return i>a;if(e===">=")return i>=a;if(e==="<")return i<a;if(e==="<=")return i<=a;if(e==="=")return i===a;if(e==="!=")return i!==a;throw new Error(`Unknown op: ${e}`)}u();var ue=r=>{let{values:t,total:e,missingDistribution:o}=r.reduce((i,a)=>(a.testDistribution?i.total+=a.testDistribution:++i.missingDistribution,i.values.push(a.testDistribution),i),{values:[],total:0,missingDistribution:0});if(e>100)throw new Error(`Total distribution ${e} is over the maximum 100.`);if(e<100){let a=(100-e)/o;t.forEach((n,c)=>{typeof n=="undefined"&&(t[c]=a)})}return t},ft=({name:r,context:t,variations:e})=>{var a;let o,i=t.getTestVariantId(r);if(i===null)return{result:void 0,variantAssigned:!1};if(i&&(o=e.find(n=>n.id===i),o||t.log("warn",401,{test:r,variant:i})),!o){let n=ue(e),c=Math.floor(Math.random()*100),l=0;o=e.find((g,y)=>{let x=n[y];if(c>l&&c<=l+x)return g;l+=x}),o&&t.setTestVariantId(r,(a=o.id)!=null?a:"Unknown")}return{result:o,variantAssigned:!i}};import{dequal as Kt}from"dequal/lite";var A,P,T,J,v,$,gt,le=class{constructor(t){d(this,$);D(this,"manifest");d(this,A,!1);d(this,P,{});d(this,T,void 0);d(this,J,{});d(this,v,ce());D(this,"events",{on:s(this,v).on,off:s(this,v).off});D(this,"storage");var i,a;let{manifest:e,...o}=t;m(this,T,{}),(i=t.plugins)==null||i.forEach(n=>{!n.logDrain||s(this,v).on("log",n.logDrain)}),this.manifest=new nt({manifest:e,evaluator:new j({CK:xt,QS:Et,QK:Tt,PVC:bt,EVT:wt,PV:kt})}),this.storage=new pt({...o,manifest:this.manifest,onServerTransitionScoresReceived:n=>{m(this,P,n),m(this,A,!0),s(this,v).emit("log",["debug",130,n])},onLogMessage:n=>s(this,v).emit("log",n)}),this.storage.events.on("scoresUpdated",S(this,$,gt).bind(this)),s(this,A)||S(this,$,gt).call(this,this.storage.data),this.storage.events.on("quirksUpdated",n=>{let c=this.manifest.computeSignals({scores:s(this,P),state:s(this,T),previousState:s(this,T),visitor:this.storage.data});this.storage.updateData(c),s(this,v).emit("quirksUpdated",n.quirks),s(this,v).emit("log",["info",4,n.quirks])}),s(this,v).emit("log",["debug",1]),(a=t.plugins)==null||a.forEach(n=>{!n.init||n.init(this)})}get scores(){return s(this,P)}async update(t){var o;let e=[];t.quirks&&e.push(...Object.entries(t.quirks).map(([i,a])=>({type:"setquirk",data:{key:i,value:a}}))),t.enrichments&&t.enrichments.forEach(i=>{let a=Y(i.cat,i.key);this.manifest.getDimensionByKey(a)?e.push({type:"modscore",data:{dimension:a,delta:i.str}}):s(this,v).emit("log",["warn",5,i])}),e.push(...this.manifest.computeSignals({state:t,previousState:s(this,T),visitor:this.storage.data,scores:s(this,P)})),s(this,v).emit("log",["debug",2,{...t,url:(o=t.url)==null?void 0:o.toString()}]),m(this,T,{...s(this,T),...t}),await this.storage.updateData(e),s(this,A)&&(S(this,$,gt).call(this,this.storage.data),m(this,A,!1),s(this,v).emit("log",["debug",131]))}getTestVariantId(t){var o;let e=this.manifest.getTest(t);return e?(o=e.wv)!=null?o:this.storage.data.tests[t]:(s(this,v).emit("log",["warn",401,t]),null)}setTestVariantId(t,e){this.storage.updateData([{type:"settest",data:{test:t,variant:e}}])}log(...t){s(this,v).emit("log",t)}test(t){var o,i;let e=ft({...t,context:this});return s(this,v).emit("testResult",{name:t.name,variantId:(i=(o=e.result)==null?void 0:o.id)!=null?i:void 0,variantAssigned:e.variantAssigned}),e}personalize(t){let e=jt({...t,context:this}),o=s(this,J)[t.name],i={name:t.name,variantIds:e.variations.map(a=>{var n;return(n=a.id)!=null?n:"Unknown"}),control:this.storage.data.controlGroup,changed:!0};return o&&Kt(i.variantIds,o)&&(i.changed=!1),s(this,v).emit("personalizationResult",i),s(this,J)[t.name]=i.variantIds,e}async forget(t){m(this,T,{}),await this.storage.delete(t)}};A=new WeakMap,P=new WeakMap,T=new WeakMap,J=new WeakMap,v=new WeakMap,$=new WeakSet,gt=function(t){var i;let e={...t.scores};for(let a in t.sessionScores)e[a]=((i=e[a])!=null?i:0)+t.sessionScores[a];e=this.manifest.computeAggregateDimensions(e),!Kt(e,s(this,P))&&(m(this,P,e),s(this,v).emit("scoresUpdated",e),s(this,v).emit("log",["info",3,e]))};u();u();function ot(r,t){if(r==="none")return!1;switch(t){case"debug":return r==="debug";case"info":return r==="info"||r==="debug";case"warn":return r==="warn"||r==="info"||r==="debug";case"error":return r==="debug"||"info";default:return!1}}function de(r){return([t,e,...o])=>{!ot(r,t)||console[t](`\u{1F94B} [${t}] Uniform event ID ${e}
|
2
|
+
`,...o.map(i=>JSON.stringify(i,null,2)))}}function Qr(r){return{logDrain:de(r)}}u();u();var Bt={1:()=>["context","constructed"],2:r=>["context","received data update",r],3:r=>["context","new score vector",r],4:r=>["context","updated quirks",r],5:r=>["context","ignored enrichment update for unknown enrichment category",r.cat],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"],130:r=>["storage","server to client transition score data was loaded; it will persist until the next update event occurs",r],131:()=>["storage","server to client transition data was discarded"],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"]};function pe(r){return([t,e,...o])=>{if(!ot(r,t))return;let i=Bt[e],a=`\u{1F94B} [${new Date().toLocaleTimeString()}][${t}]`;if(!i){console[t](`${a} unknown event ID ${e} - ensure all Uniform packages are the same version`,...o);return}let[n,c,...l]=i(...o);console[t](`${a}[${n}] ${c} (Event ID: ${e})
|
3
|
+
`,...l.map(g=>JSON.stringify(g,null,2)))}}function Yr(r){return{logDrain:pe(r)}}u();var fe=(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))(fe||{}),Wr="nesitag";u();var mt=typeof top!="undefined";function to(){return{logDrain:r=>{!mt||top==null||top.postMessage({type:"uniform:context:log",message:r},window.location.origin)},init:r=>{let t=[],e=[],o=()=>{!mt||top==null||top.postMessage({type:"uniform:context:data",data:{scores:r.scores,data:r.storage.data,manifest:r.manifest.data,personalizations:t,tests:e}},window.location.origin)},i=n=>{!n.changed||(t.push(n),o())},a=n=>{!n.variantAssigned||(e.push(n),o())};if(mt){window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__=r;try{top==null||top.addEventListener("message",async n=>{if(!n.data)return;let c=n.data;await ge(c,r)})}catch(n){console.warn("Unable to initialize Uniform Context DevTools because it is in a cross-domain iframe.",n)}top==null||top.postMessage({type:"uniform:context:hello",uiVersion:2},window.location.origin),o()}return r.events.on("personalizationResult",i),r.events.on("testResult",a),r.storage.events.on("*",o),()=>{r.storage.events.off("*",o),r.events.off("personalizationResult",i),r.events.off("testResult",a)}}}}async function ge(r,t){r.type==="uniform-in:context:update"&&r.newData&&await t.update(r.newData),r.type==="uniform-in:context:commands"&&r.commands&&Array.isArray(r.commands)&&await t.storage.updateData(r.commands),r.type==="uniform-in:context:forget"&&await t.forget(!1)}export{le as Context,Wt as CookieTransitionDataStore,Wr as EdgeNodeTagName,ee as EdgeTransitionDataStore,j as GroupCriteriaEvaluator,nt as ManifestInstance,Xt as SERVER_STATE_ID,fe as ScriptType,Q as TransitionDataStore,pt as VisitorDataStore,yt as computeAggregateDimensions,xt as cookieEvaluator,de as createConsoleLogDrain,pe as createDebugConsoleLogDrain,ar as createLinearDecay,kt as currentPageEvaluator,X as emptyVisitorData,Qr as enableConsoleLogDrain,to as enableContextDevTools,Yr as enableDebugConsoleLogDrain,Ft as evaluateVariantMatch,wt as eventEvaluator,Y as getEnrichmentVectorKey,b as isStringMatch,st as pageViewCountDimension,bt as pageViewCountEvaluator,jt as personalizeVariations,Et as queryStringEvaluator,Tt as quirkEvaluator,ft as testVariations};
|
package/dist/index.js
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
var ne=Object.create;var q=Object.defineProperty;var se=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var ue=Object.getPrototypeOf,ce=Object.prototype.hasOwnProperty;var de=(e,t,r)=>t in e?q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Tt=e=>q(e,"__esModule",{value:!0});var le=(e,t)=>{for(var r in t)q(e,r,{get:t[r],enumerable:!0})},kt=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ae(t))!ce.call(e,i)&&(r||i!=="default")&&q(e,i,{get:()=>t[i],enumerable:!(o=se(t,i))||o.enumerable});return e},H=(e,t)=>kt(Tt(q(e!=null?ne(ue(e)):{},"default",!t&&e&&e.__esModule?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e),pe=(e=>(t,r)=>e&&e.get(t)||(r=kt(Tt({}),t,1),e&&e.set(t,r),r))(typeof WeakMap!="undefined"?new WeakMap:0);var h=(e,t,r)=>(de(e,typeof t!="symbol"?t+"":t,r),r),st=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)};var n=(e,t,r)=>(st(e,t,"read from private field"),r?r.call(e):t.get(e)),p=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},f=(e,t,r,o)=>(st(e,t,"write to private field"),o?o.call(e,r):t.set(e,r),r);var S=(e,t,r)=>(st(e,t,"access private method"),r);var Te={};le(Te,{Context:()=>te,CookieTransitionDataStore:()=>Nt,EdgeNodeTagName:()=>xe,EdgeTransitionDataStore:()=>Ft,GroupCriteriaEvaluator:()=>A,ManifestInstance:()=>X,SERVER_STATE_ID:()=>Lt,ScriptType:()=>ie,TransitionDataStore:()=>U,VisitorDataStore:()=>et,computeAggregateDimensions:()=>at,cookieEvaluator:()=>ct,createConsoleLogDrain:()=>ee,createDebugConsoleLogDrain:()=>oe,createLinearDecay:()=>he,emptyVisitorData:()=>F,enableConsoleLogDrain:()=>Ce,enableContextDevTools:()=>be,enableDebugConsoleLogDrain:()=>Ve,evaluateVariantMatch:()=>Ct,eventEvaluator:()=>ft,getEnrichmentVectorKey:()=>_,isStringMatch:()=>D,pageViewCountDimension:()=>W,pageViewCountEvaluator:()=>dt,pageVisitedEvaluator:()=>mt,personalizeVariations:()=>Dt,queryStringEvaluator:()=>lt,quirkEvaluator:()=>pt,testVariations:()=>it});function at(e,t){let r={...e};for(let o in t){let i=wt(e,o,t,new Set([o]));i!==0&&(r[o]=i)}return r}function wt(e,t,r,o){var s;let i=0;for(let a of r[t].inputs){let u=(s=e[a.dim])!=null?s:0;if(!u&&r[a.dim]){if(o.has(a.dim))continue;let d=new Set(o);d.add(a.dim),u=wt(e,a.dim,r,d)}if(u!==0)if(a.sign==="c"){i=0;break}else a.sign==="-"?i-=u:i+=u}return i}var Y="_";var $,E,ut=class{constructor(t,r,o){p(this,$,void 0);p(this,E,void 0);h(this,"signal");f(this,E,t),this.signal=r,f(this,$,o)}computeSignals(t,r){if(t.scores[n(this,E)]>=this.signal.cap&&this.signal.dur!=="t")return;let i=n(this,$).evaluate(t,this.signal.crit,r,this.signal,n(this,E)),s=this.signal.dur==="s"||this.signal.dur==="t"?"modscoreS":"modscore";if(i)r.push({type:s,data:{dimension:n(this,E),delta:this.signal.str}});else if(this.signal.dur==="t"){let a=t.visitor.sessionScores[n(this,E)];a&&r.push({type:s,data:{dimension:n(this,E),delta:-a}})}}};$=new WeakMap,E=new WeakMap;var x,G,X=class{constructor({manifest:t,evaluator:r=new A({})}){h(this,"data");p(this,x,void 0);p(this,G,void 0);var o,i,s;f(this,x,(o=t.project)!=null?o:{}),this.data=t,f(this,G,Object.entries((s=(i=n(this,x).pz)==null?void 0:i.sig)!=null?s:[]).map(([a,u])=>new ut(a,u,r)))}rollForControlGroup(){var t,r;return Math.random()<((r=(t=n(this,x).pz)==null?void 0:t.control)!=null?r:0)}getTest(t){var r;return(r=n(this,x).test)==null?void 0:r[t]}computeSignals(t){let r=[];return n(this,G).forEach(o=>{o.computeSignals(t,r)}),r}computeAggregateDimensions(t){var r,o;return at(t,(o=(r=n(this,x).pz)==null?void 0:r.agg)!=null?o:{})}getDimensionByKey(t){var o,i,s,a;let r=t.indexOf(Y);return r<=0?(i=(o=n(this,x).pz)==null?void 0:o.sig)==null?void 0:i[t]:(a=(s=n(this,x).pz)==null?void 0:s.enr)==null?void 0:a[t.substring(0,r)]}};x=new WeakMap,G=new WeakMap;var ct=(e,t)=>{var i;if(t.type!=="CK")return!1;let r=(i=e.state.cookies)==null?void 0:i[t.cookieName];return D(r,t.match)};function Pt(e,t){var o;if(typeof e=="undefined"||e===null)return!1;let r=Number(e);if(isNaN(r))return!1;switch((o=t==null?void 0:t.op)!=null?o:"="){case"=":return r===t.rhs;case"!=":return r!==t.rhs;case">":return r>t.rhs;case"<":return r<t.rhs;default:return console.warn(`Unknown match type ${t.op} is false.`),!1}}function _(e,t){return`${e}${Y}${t}`}var W=_("$pvc","v"),dt=(e,t,r)=>{var a,u;if(t.type!=="PVC")return!1;let o=!e.previousState||((a=e.state.url)==null?void 0:a.toString())!==((u=e.previousState.url)==null?void 0:u.toString()),s=(e.visitor.sessionScores[W]||0)+1;if(Pt(s,t.match)){let c=r.some(d=>d.type==="modscoreS"&&d.data.dimension===W);return o&&!c&&r.push({type:"modscoreS",data:{dimension:W,delta:1}}),!0}return!1};var lt=(e,t)=>{var o;if(t.type!=="QS")return!1;let r=(o=e.state.url)==null?void 0:o.searchParams.get(t.queryName);return D(r,t.match)};var pt=(e,t,r,o,i)=>{if(t.type!=="QK")return!1;if(typeof window=="undefined"&&o.dur==="t"&&e.scores[i]>0)return!0;let s=e.visitor.quirks[t.key];return D(s,t.match)};var ft=(e,t)=>{var r,o;return t.type!=="EVT"?!1:(o=(r=e.state.events)==null?void 0:r.some(i=>D(i.event,t.event)))!=null?o:!1};var mt=(e,t)=>{var r;return t.type!=="PV"?!1:D((r=e.state.url)==null?void 0:r.pathname,t.path)};var j,A=class{constructor(t){p(this,j,void 0);f(this,j,t)}evaluate(t,r,o,i,s){let a=!(r.op==="&"||!r.op);for(let u of r.clauses){let c;if(u.type==="G")c=this.evaluate(t,u,o,i,s);else{let d=n(this,j)[u.type];if(!d)throw new Error(`${u.type} signal criteria not registered`);c=d(t,u,o,i,s)}if(c===a)return a}return!a}};j=new WeakMap;function D(e,t){var a,u,c,d;let r=(a=t==null?void 0:t.op)!=null?a:"=";if(t.op==="*")return e!==null&&typeof e!="undefined";if(t.op==="!*")return e===null||typeof e=="undefined";if(!("rhs"in t))throw new Error(`Match expression is required for match type ${r}`);let o=(u=t.cs)!=null?u:!1,i=o?e!=null?e:"":Ot(e),s=o?t.rhs:Ot(t.rhs);switch(r){case"=":return i===s;case"!=":return i!==s;case"~":return(c=i.includes(s))!=null?c:!1;case"!~":return!((d=i.includes(s))!=null?d:!0);case"//":return new RegExp(t.rhs,o?"":"i").test(e!=null?e:"");case"!//":return!new RegExp(t.rhs,o?"":"i").test(e!=null?e:"");default:throw new Error(`Unknown match type ${r}.`)}}function Ot(e){var t;return(t=e==null?void 0:e.toUpperCase())!=null?t:""}var F=()=>({quirks:{},scores:{},sessionScores:{},tests:{},consent:!1,controlGroup:!1});var Mt=H(require("mitt")),Rt=require("dequal/lite"),Lt="__UNIFORM_DATA__",k,I,U=class{constructor({initialData:t}){p(this,k,void 0);p(this,I,(0,Mt.default)());h(this,"events",{on:n(this,I).on,off:n(this,I).off});t&&f(this,k,t)}get data(){return n(this,k)}updateData(t,r){return f(this,k,r),this.handleUpdateData(t,r)}async delete(t){f(this,k,void 0),await this.handleDelete(t)}signalAsyncDataUpdate(t){(0,Rt.dequal)(this.data,t)||(f(this,k,t),n(this,I).emit("dataUpdatedAsync",t))}getClientTransitionState(){if(typeof document=="undefined")return;let t=document.getElementById(Lt);return(t==null?void 0:t.textContent)?JSON.parse(t.textContent):void 0}};k=new WeakMap,I=new WeakMap;var gt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",At=gt.split(""),Ut=new Array(123);for(let e=0;e<gt.length;e++)Ut[gt.charCodeAt(e)]=e;var ht=e=>{if(e<0)return`-${ht(-e)}`;let t=e>>>0,r=e/4294967296>>>0,o="";for(;r>0;)o=At[63&t]+o,t>>>=6,t|=(63&r)<<26,r>>>=6;let i="";do i=At[63&t]+i,t>>>=6;while(t>0);return i+o},It=e=>{let t=0,r=e.charAt(0)==="-"?1:0;for(let o=r;o<e.length;o++)t=t*64+Ut[e.charCodeAt(o)];return r?-t:t};var zt=typeof window=="undefined",O,M,Nt=class extends U{constructor({cookieAdapter:t,cookieName:r="ufvd"}){super({initialData:zt?fe(t.get(r)):void 0});p(this,O,void 0);p(this,M,void 0);f(this,O,r),f(this,M,t)}handleDelete(){return n(this,M).remove(n(this,O)),Promise.resolve()}async handleUpdateData(t,r){zt||(r.consent?n(this,M).set(n(this,O),me(r)):n(this,M).remove(n(this,O)))}};O=new WeakMap,M=new WeakMap;var qt="~",$t="!",Gt="-";function fe(e){if(!e)return;let t=e.split(qt);if(t.length>3)return;let[r,o,i]=t;return{consent:!0,sessionScores:_t(St(o)),scores:_t(St(i)),tests:St(r)}}function St(e){return e.split($t).map(r=>r.split(Gt)).reduce((r,o)=>(o.length!==2||(r[o[0]]=o[1]),r),{})}function _t(e){return Object.entries(e).reduce((t,[r,o])=>(t[r]=It(o),t),{})}function me(e){return[vt(e.tests),vt(jt(e.sessionScores)),vt(jt(e.scores))].join(qt)}function jt(e){return Object.entries(e).reduce((t,[r,o])=>(t[r]=ht(o),t),{})}function vt(e){return Object.entries(e).map(t=>t.join(Gt)).join($t)}var Z,ge,Ft=class extends U{constructor({cookieAdapter:t,visitorIdCookieName:r="ufvi",...o}){super(o);p(this,Z);o.initialData||S(this,Z,ge).call(this).catch(i=>{console.error(i)})}handleDelete(t){throw new Error("Method not implemented.")}async handleUpdateData(t){let r=await new Promise(o=>{setTimeout(()=>{o(void 0)},2e3)});r&&this.signalAsyncDataUpdate(r)}};Z=new WeakSet,ge=async function(){let t=await new Promise(r=>{setTimeout(()=>{r(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};function he(e){let{gracePeriod:t=864e5,decayRate:r=1/30,decayCap:o=.95}=e!=null?e:{};return function({now:s,lastUpd:a,scores:u,sessionScores:c}){if(typeof a!="number")return!1;let v=s-a-t;if(v<=0)return!1;let y=v/864e5,L=1-Math.min(o,y*r);return L<=0?!1:(Qt(u,L),Qt(c,L),!0)}}function Qt(e,t){for(let r in e)e[r]*=t}var Bt=H(require("mitt")),Q=require("dequal/lite");var yt=class{constructor(){h(this,"inMemoryFallback",{});h(this,"hasLocalStorageObject",typeof localStorage!="undefined")}get(t){let r=this.inMemoryFallback[t];if(!this.hasLocalStorageObject||r)return r;try{let o=localStorage.getItem(t);return o?JSON.parse(o):void 0}catch(o){return r}}set(t,r,o){if(this.inMemoryFallback[t]=r,!(!this.hasLocalStorageObject||!o))try{localStorage.setItem(t,JSON.stringify(r))}catch(i){console.warn(i)}}delete(t,r){r||delete this.inMemoryFallback[t];try{localStorage.removeItem(t)}catch(o){}}};var Kt=H(require("rfdc"));var Se=(0,Kt.default)();function Jt(e,t,r){let o=t?Se(t):F();return e.forEach(i=>{var s,a;switch(i.type){case"consent":o.consent=i.data;break;case"setquirk":o.quirks[i.data.key]=i.data.value;break;case"settest":o.tests[i.data.test]=i.data.variant;break;case"modscore":if(r)break;let u=Number(i.data.delta);if(isNaN(u))throw new Error("Non-number delta received");let c=(s=o.scores[i.data.dimension])!=null?s:0;o.scores[i.data.dimension]=c+u;break;case"modscoreS":if(r)break;let d=Number(i.data.delta);if(isNaN(d))throw new Error("Non-number delta received");let v=(a=o.sessionScores[i.data.dimension])!=null?a:0;o.sessionScores[i.data.dimension]=v+d;break;case"identify":break;case"setcontrol":o.controlGroup=i.data;break;default:throw new Error("Unknown command")}}),o}var tt="ufvisitor",b,R,N,m,C,w,T,z,rt,ve,ot,ye,K,Ht,J,Yt,et=class{constructor(t){p(this,C);p(this,T);p(this,rt);p(this,ot);p(this,K);p(this,J);p(this,b,(0,Bt.default)());p(this,R,new yt);p(this,N,void 0);p(this,m,void 0);h(this,"events",{on:n(this,b).on,off:n(this,b).off});if(f(this,m,t),n(this,C,w)||S(this,T,z).call(this,S(this,J,Yt).call(this),!0),t.transitionStore){let r=t.transitionStore.getClientTransitionState();if(r){let i=[];r.quirks&&i.push(...Object.entries(r.quirks).map(([s,a])=>({type:"setquirk",data:{key:s,value:a}}))),r.tests&&i.push(...Object.entries(r.tests).map(([s,a])=>({type:"settest",data:{test:s,variant:a}}))),this.updateData(i),r.ssv&&t.onServerTransitionScoresReceived&&t.onServerTransitionScoresReceived(r.ssv)}t.transitionStore.events.on("dataUpdatedAsync",i=>{S(this,T,z).call(this,{...n(this,C,w).visitorData,...i})});let o=t.transitionStore.data;o&&S(this,T,z).call(this,{...n(this,C,w).visitorData,...o},!0)}}get data(){var r,o;let t=n(this,C,w);if(S(this,ot,ye).call(this,t)){let{sessionScores:i,...s}=t.visitorData;return S(this,T,z).call(this,{...s,sessionScores:{}}),(o=(r=n(this,m)).onLogMessage)==null||o.call(r,["info",120]),n(this,C,w).visitorData}return t.visitorData}get decayEnabled(){return!!n(this,m).decay}async updateData(t){var o,i,s,a;if(t.length===0)return;(i=(o=n(this,m)).onLogMessage)==null||i.call(o,["debug",101,t]);let r=Jt(t,this.data,(s=n(this,C,w))==null?void 0:s.visitorData.controlGroup);t.some(u=>u.type==="consent"&&!u.data)&&n(this,R).delete(tt,!0),S(this,T,z).call(this,r),await((a=n(this,m).transitionStore)==null?void 0:a.updateData(t,n(this,C,w).visitorData))}async delete(t){var r,o,i;n(this,R).delete(tt,!1),await((r=n(this,m).transitionStore)==null?void 0:r.delete(t)),S(this,T,z).call(this,S(this,J,Yt).call(this)),(i=(o=n(this,m)).onLogMessage)==null||i.call(o,["info",103,t])}};b=new WeakMap,R=new WeakMap,N=new WeakMap,m=new WeakMap,C=new WeakSet,w=function(){return n(this,R).get(tt)},T=new WeakSet,z=function(t,r=!1){var v,y,L,xt,bt,Et;let o=n(this,C,w),i=Date.now();t.controlGroup?(t.scores={},t.sessionScores={}):(S(this,K,Ht).call(this,t.scores),S(this,K,Ht).call(this,t.sessionScores),(y=(v=n(this,m)).decay)==null||y.call(v,{now:i,lastUpd:o==null?void 0:o.updated,scores:t.scores,sessionScores:t.sessionScores}));let s=!(0,Q.dequal)(o==null?void 0:o.visitorData.scores,t.scores),a=!(0,Q.dequal)(o==null?void 0:o.visitorData.sessionScores,t.sessionScores),u=!(0,Q.dequal)(o==null?void 0:o.visitorData.quirks,t.quirks),c=!(0,Q.dequal)(o==null?void 0:o.visitorData.tests,t.tests),d={updated:i,visitorData:t};S(this,rt,ve).call(this),n(this,R).set(tt,d,!!t.consent),(xt=(L=n(this,m)).onLogMessage)==null||xt.call(L,["debug",102,t]),r||((s||a)&&n(this,b).emit("scoresUpdated",t),u&&n(this,b).emit("quirksUpdated",t),c&&n(this,b).emit("testsUpdated",t),((bt=o==null?void 0:o.visitorData)==null?void 0:bt.consent)!==t.consent&&n(this,b).emit("consentUpdated",t),((Et=o==null?void 0:o.visitorData)==null?void 0:Et.controlGroup)!==t.controlGroup&&n(this,b).emit("controlGroupUpdated",t))},rt=new WeakSet,ve=function(){typeof window=="undefined"||!n(this,m).visitLifespan||(n(this,N)&&window.clearTimeout(n(this,N)),f(this,N,window.setTimeout(()=>{this.data},n(this,m).visitLifespan+50)))},ot=new WeakSet,ye=function(t){let r=n(this,m).visitLifespan;return r?t.updated+r<Date.now():!1},K=new WeakSet,Ht=function(t){var r,o;if(!!n(this,m).manifest)for(let i in t){let s=t[i],a=n(this,m).manifest.getDimensionByKey(i);!a||s>a.cap&&((o=(r=n(this,m)).onLogMessage)==null||o.call(r,["debug",110,{dim:i,score:s,cap:a.cap}]),t[i]=a.cap)}},J=new WeakSet,Yt=function(){var t,r,o;return{...F(),consent:(t=n(this,m).defaultConsent)!=null?t:!1,controlGroup:(o=(r=n(this,m).manifest)==null?void 0:r.rollForControlGroup())!=null?o:!1}};var Wt=H(require("mitt"));function Dt({context:e,variations:t,take:r=1}){var u,c;let o=(u=e.storage.data.controlGroup)!=null?u:!1,i=[],s=!1,a=e.scores;for(let d of t){if(i.length===r)break;if(!((c=d.pz)==null?void 0:c.crit.length)){i.push(d);continue}!o&&Ct(d.pz,a)&&(s=!0,i.push(d))}return{personalized:s,variations:i}}function Ct(e,t){return(e==null?void 0:e.crit)?!e.op||e.op==="&"?e.crit.every(r=>Xt(r,t)):e.crit.some(r=>Xt(r,t)):!0}function Xt(e,t){var a;let{op:r,l:o}=e,i=(a=t[o])!=null?a:0;if(r==="+")return Math.max(...Object.values(t))===i&&i>0;if(r==="-")return Math.min(...Object.values(t))===i&&i>0;let s=e.rDim?t[e.rDim]:e.r;if(s===void 0)return!1;if(r===">")return i>s;if(r===">=")return i>=s;if(r==="<")return i<s;if(r==="<=")return i<=s;if(r==="=")return i===s;if(r==="!=")return i!==s;throw new Error(`Unknown op: ${r}`)}var De=e=>{let{values:t,total:r,missingDistribution:o}=e.reduce((i,s)=>(s.testDistribution?i.total+=s.testDistribution:++i.missingDistribution,i.values.push(s.testDistribution),i),{values:[],total:0,missingDistribution:0});if(r>100)throw new Error(`Total distribution ${r} is over the maximum 100.`);if(r<100){let s=(100-r)/o;t.forEach((a,u)=>{typeof a=="undefined"&&(t[u]=s)})}return t},it=({name:e,context:t,variations:r})=>{var s;let o,i=t.getTestVariantId(e);if(i===null)return{result:void 0,variantAssigned:!1};if(i&&(o=r.find(a=>a.id===i),o||t.log("warn",401,{test:e,variant:i})),!o){let a=De(r),u=Math.floor(Math.random()*100),c=0;o=r.find((d,v)=>{let y=a[v];if(u>c&&u<=c+y)return d;c+=y}),o&&t.setTestVariantId(e,(s=o.id)!=null?s:"Unknown")}return{result:o,variantAssigned:!i}};var Zt=require("dequal/lite"),P,V,B,g,te=class{constructor(t){h(this,"manifest");p(this,P,{});p(this,V,void 0);p(this,B,{});p(this,g,(0,Wt.default)());h(this,"events",{on:n(this,g).on,off:n(this,g).off});h(this,"storage");var a,u;let{manifest:r,...o}=t;f(this,V,{}),(a=t.plugins)==null||a.forEach(c=>{!c.logDrain||n(this,g).on("log",c.logDrain)}),this.manifest=new X({manifest:r,evaluator:new A({CK:ct,QS:lt,QK:pt,PVC:dt,EVT:ft,PV:mt})});let i=!1;this.storage=new et({...o,manifest:this.manifest,onServerTransitionScoresReceived:c=>{f(this,P,c),i=!0,n(this,g).emit("log",["debug",130,c])},onLogMessage:c=>n(this,g).emit("log",c)});let s=c=>{var v;let d={...c.scores};for(let y in c.sessionScores)d[y]=((v=d[y])!=null?v:0)+c.sessionScores[y];d=this.manifest.computeAggregateDimensions(d),f(this,P,d),n(this,g).emit("scoresUpdated",d),n(this,g).emit("log",["info",3,d])};this.storage.events.on("scoresUpdated",s),i||s(this.storage.data),this.storage.events.on("quirksUpdated",c=>{let d=this.manifest.computeSignals({scores:n(this,P),state:n(this,V),previousState:n(this,V),visitor:this.storage.data});this.storage.updateData(d),n(this,g).emit("quirksUpdated",c.quirks),n(this,g).emit("log",["info",4,c.quirks])}),n(this,g).emit("log",["debug",1]),(u=t.plugins)==null||u.forEach(c=>{!c.init||c.init(this)})}get scores(){return n(this,P)}async update(t){var i;let r=[];n(this,g).emit("log",["info",2,{...t,url:(i=t.url)==null?void 0:i.toString()}]),t.quirks&&(r.push(...Object.entries(t.quirks).map(([s,a])=>({type:"setquirk",data:{key:s,value:a}}))),t.quirks=void 0),t.enrichments&&(r.push(...t.enrichments.map(s=>({type:"modscore",data:{dimension:_(s.cat,s.key),delta:s.str}}))),t.enrichments=void 0);let o=n(this,V);f(this,V,{...n(this,V),...t}),r.push(...this.manifest.computeSignals({state:n(this,V),previousState:o,visitor:this.storage.data,scores:n(this,P)})),await this.storage.updateData(r)}getTestVariantId(t){var o;let r=this.manifest.getTest(t);return r?(o=r.wv)!=null?o:this.storage.data.tests[t]:(n(this,g).emit("log",["warn",401,t]),null)}setTestVariantId(t,r){this.storage.updateData([{type:"settest",data:{test:t,variant:r}}])}log(...t){n(this,g).emit("log",t)}test(t){var o,i;let r=it({...t,context:this});return n(this,g).emit("testResult",{name:t.name,variantId:(i=(o=r.result)==null?void 0:o.id)!=null?i:void 0,variantAssigned:r.variantAssigned}),r}personalize(t){let r=Dt({...t,context:this}),o=n(this,B)[t.name],i={name:t.name,variantIds:r.variations.map(s=>{var a;return(a=s.id)!=null?a:"Unknown"}),control:this.storage.data.controlGroup,changed:!0};return o&&(0,Zt.dequal)(i.variantIds,o)&&(i.changed=!1),n(this,g).emit("personalizationResult",i),n(this,B)[t.name]=i.variantIds,r}async forget(t){f(this,V,{}),await this.storage.delete(t)}};P=new WeakMap,V=new WeakMap,B=new WeakMap,g=new WeakMap;function nt(e,t){if(e==="none")return!1;switch(t){case"debug":return e==="debug";case"info":return e==="info"||e==="debug";case"warn":return e==="warn"||e==="info"||e==="debug";case"error":return e==="debug"||"info";default:return!1}}function ee(e){return([t,r,...o])=>{!nt(e,t)||console[t](`\u{1F94B} [${t}] Uniform event ID ${r}
|
2
|
-
`,...o.map(i=>JSON.stringify(i,null,2)))}}function
|
3
|
-
`,...c.map(
|
1
|
+
var le=Object.create;var G=Object.defineProperty;var de=Object.getOwnPropertyDescriptor;var pe=Object.getOwnPropertyNames;var fe=Object.getPrototypeOf,ge=Object.prototype.hasOwnProperty;var me=(e,t,r)=>t in e?G(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var Ot=e=>G(e,"__esModule",{value:!0});var he=(e,t)=>{for(var r in t)G(e,r,{get:t[r],enumerable:!0})},Mt=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of pe(t))!ge.call(e,i)&&(r||i!=="default")&&G(e,i,{get:()=>t[i],enumerable:!(o=de(t,i))||o.enumerable});return e},X=(e,t)=>Mt(Ot(G(e!=null?le(fe(e)):{},"default",!t&&e&&e.__esModule?{get:()=>e.default,enumerable:!0}:{value:e,enumerable:!0})),e),ve=(e=>(t,r)=>e&&e.get(t)||(r=Mt(Ot({}),t,1),e&&e.set(t,r),r))(typeof WeakMap!="undefined"?new WeakMap:0);var S=(e,t,r)=>(me(e,typeof t!="symbol"?t+"":t,r),r),ut=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)};var s=(e,t,r)=>(ut(e,t,"read from private field"),r?r.call(e):t.get(e)),l=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},f=(e,t,r,o)=>(ut(e,t,"write to private field"),o?o.call(e,r):t.set(e,r),r);var h=(e,t,r)=>(ut(e,t,"access private method"),r);var Me={};he(Me,{Context:()=>ne,CookieTransitionDataStore:()=>Kt,EdgeNodeTagName:()=>ke,EdgeTransitionDataStore:()=>Yt,GroupCriteriaEvaluator:()=>U,ManifestInstance:()=>Z,SERVER_STATE_ID:()=>qt,ScriptType:()=>ce,TransitionDataStore:()=>z,VisitorDataStore:()=>nt,computeAggregateDimensions:()=>ct,cookieEvaluator:()=>dt,createConsoleLogDrain:()=>se,createDebugConsoleLogDrain:()=>ue,createLinearDecay:()=>Ce,currentPageEvaluator:()=>ht,emptyVisitorData:()=>K,enableConsoleLogDrain:()=>Te,enableContextDevTools:()=>Pe,enableDebugConsoleLogDrain:()=>we,evaluateVariantMatch:()=>Vt,eventEvaluator:()=>mt,getEnrichmentVectorKey:()=>F,isStringMatch:()=>y,pageViewCountDimension:()=>tt,pageViewCountEvaluator:()=>pt,personalizeVariations:()=>xt,queryStringEvaluator:()=>ft,quirkEvaluator:()=>gt,testVariations:()=>st});function ct(e,t){let r={...e};for(let o in t){let i=Rt(e,o,t,new Set([o]));i!==0&&(r[o]=i)}return r}function Rt(e,t,r,o){var a;let i=0;for(let n of r[t].inputs){let u=(a=e[n.dim])!=null?a:0;if(!u&&r[n.dim]){if(o.has(n.dim))continue;let p=new Set(o);p.add(n.dim),u=Rt(e,n.dim,r,p)}if(u!==0)if(n.sign==="c"){i=0;break}else n.sign==="-"?i-=u:i+=u}return i}var W="_";var _,E,lt=class{constructor(t,r,o){l(this,_,void 0);l(this,E,void 0);S(this,"signal");f(this,E,t),this.signal=r,f(this,_,o)}computeSignal(t,r){if(t.scores[s(this,E)]>=this.signal.cap&&this.signal.dur!=="t")return;let i=s(this,_).evaluate(t,this.signal.crit,r,this.signal,s(this,E)),a=this.signal.dur==="s"||this.signal.dur==="t"?"modscoreS":"modscore";if(!!i.changed){if(i.result)r.push({type:a,data:{dimension:s(this,E),delta:this.signal.str}});else if(this.signal.dur==="t"){let n=t.visitor.sessionScores[s(this,E)];n&&r.push({type:a,data:{dimension:s(this,E),delta:-n}})}}}};_=new WeakMap,E=new WeakMap;var x,j,Z=class{constructor({manifest:t,evaluator:r=new U({})}){S(this,"data");l(this,x,void 0);l(this,j,void 0);var o,i,a;f(this,x,(o=t.project)!=null?o:{}),this.data=t,f(this,j,Object.entries((a=(i=s(this,x).pz)==null?void 0:i.sig)!=null?a:[]).map(([n,u])=>new lt(n,u,r)))}rollForControlGroup(){var t,r;return Math.random()<((r=(t=s(this,x).pz)==null?void 0:t.control)!=null?r:0)}getTest(t){var r;return(r=s(this,x).test)==null?void 0:r[t]}computeSignals(t){let r=[];return s(this,j).forEach(o=>{o.computeSignal(t,r)}),r}computeAggregateDimensions(t){var r,o;return ct(t,(o=(r=s(this,x).pz)==null?void 0:r.agg)!=null?o:{})}getDimensionByKey(t){var o,i,a,n;let r=t.indexOf(W);return r<=0?(i=(o=s(this,x).pz)==null?void 0:o.sig)==null?void 0:i[t]:(n=(a=s(this,x).pz)==null?void 0:a.enr)==null?void 0:n[t.substring(0,r)]}};x=new WeakMap,j=new WeakMap;var Lt=require("dequal/lite"),dt=(e,t)=>{var a,n;if(t.type!=="CK")return{result:!1,changed:!1};let r=!(0,Lt.dequal)(At(e.state.cookies),At((a=e.previousState)==null?void 0:a.cookies)),o=(n=e.state.cookies)==null?void 0:n[t.cookieName];return{result:y(o,t.match),changed:r}};function At(e){if(!e)return;if(!e.ufvd)return e;let{ufvd:t,...r}=e;return r}function Ut(e,t){var o;if(typeof e=="undefined"||e===null)return!1;let r=Number(e);if(isNaN(r))return!1;switch((o=t==null?void 0:t.op)!=null?o:"="){case"=":return r===t.rhs;case"!=":return r!==t.rhs;case">":return r>t.rhs;case"<":return r<t.rhs;default:return console.warn(`Unknown match type ${t.op} is false.`),!1}}function F(e,t){return`${e}${W}${t}`}var tt=F("$pvc","v"),pt=(e,t,r)=>{var n,u;if(t.type!=="PVC")return{result:!1,changed:!1};let o=!e.previousState||((n=e.state.url)==null?void 0:n.toString())!==((u=e.previousState.url)==null?void 0:u.toString()),a=(e.visitor.sessionScores[tt]||0)+1;if(Ut(a,t.match)){let c=r.some(p=>p.type==="modscoreS"&&p.data.dimension===tt);return o&&!c&&r.push({type:"modscoreS",data:{dimension:tt,delta:1}}),{result:!0,changed:o}}return{result:!1,changed:o}};var ft=(e,t)=>{var a,n,u,c,p;if(t.type!=="QS")return{result:!1,changed:!1};let r=!e.previousState||((n=(a=e.state.url)==null?void 0:a.searchParams)==null?void 0:n.toString())!==((c=(u=e.previousState.url)==null?void 0:u.searchParams)==null?void 0:c.toString()),o=(p=e.state.url)==null?void 0:p.searchParams.get(t.queryName);return{result:y(o,t.match),changed:r}};var gt=(e,t,r,o,i)=>{var v;if(t.type!=="QK")return{result:!1,changed:!1};if(typeof window=="undefined"&&o.dur==="t"&&e.scores[i]>0)return{result:!0,changed:!1};let a=e.visitor.quirks[t.key],n=(v=e.state.quirks)==null?void 0:v[t.key],u=n!=null?n:a,c=Boolean(n&&a!==n);return{result:y(u,t.match),changed:c}};var mt=(e,t)=>{var o,i;if(t.type!=="EVT")return{result:!1,changed:!1};let r=(i=(o=e.state.events)==null?void 0:o.some(a=>y(a.event,t.event)))!=null?i:!1;return{result:r,changed:r}};var ht=(e,t)=>{var i,a,n,u,c;if(t.type!=="PV")return{result:!1,changed:!1};let r=!e.previousState||((a=(i=e.state.url)==null?void 0:i.pathname)==null?void 0:a.toString())!==((u=(n=e.previousState.url)==null?void 0:n.pathname)==null?void 0:u.toString());return{result:y((c=e.state.url)==null?void 0:c.pathname,t.path),changed:r}};var Q,U=class{constructor(t){l(this,Q,void 0);f(this,Q,t)}evaluate(t,r,o,i,a){let n=!(r.op==="&"||!r.op),u=!1;for(let c of r.clauses){let p;if(c.type==="G")p=this.evaluate(t,c,o,i,a);else{let v=s(this,Q)[c.type];if(!v)throw new Error(`${c.type} signal criteria not registered`);p=v(t,c,o,i,a)}if(p.changed&&(u=!0),p.result===n)return{result:n,changed:u}}return{result:!n,changed:u}}};Q=new WeakMap;function y(e,t){var n,u,c,p,v,C;let r=(n=t==null?void 0:t.op)!=null?n:"=";if(t.op==="*")return e!==null&&typeof e!="undefined";if(t.op==="!*")return e===null||typeof e=="undefined";if(!("rhs"in t))throw new Error(`Match expression is required for match type ${r}`);let o=(u=t.cs)!=null?u:!1,i=(o?e!=null?e:"":It(e)).toString(),a=(o?t.rhs:It(t.rhs)).toString();switch(r){case"=":return i===a;case"!=":return i!==a;case"~":return(c=i.includes(a))!=null?c:!1;case"!~":return!((p=i.includes(a))==null||p);case"//":return new RegExp(t.rhs.toString(),o?"":"i").test((v=e==null?void 0:e.toString())!=null?v:"");case"!//":return!new RegExp(t.rhs.toString(),o?"":"i").test((C=e==null?void 0:e.toString())!=null?C:"");default:throw new Error(`Unknown match type ${r}.`)}}function It(e){var t,r;return(r=(t=e==null?void 0:e.toString())==null?void 0:t.toUpperCase())!=null?r:""}var K=()=>({quirks:{},scores:{},sessionScores:{},tests:{},consent:!1,controlGroup:!1});var zt=X(require("mitt")),Nt=require("dequal/lite"),qt="__UNIFORM_DATA__",k,I,z=class{constructor({initialData:t}){l(this,k,void 0);l(this,I,(0,zt.default)());S(this,"events",{on:s(this,I).on,off:s(this,I).off});t&&f(this,k,t)}get data(){return s(this,k)}updateData(t,r){return f(this,k,r),this.handleUpdateData(t,r)}async delete(t){f(this,k,void 0),await this.handleDelete(t)}signalAsyncDataUpdate(t){(0,Nt.dequal)(this.data,t)||(f(this,k,t),s(this,I).emit("dataUpdatedAsync",t))}getClientTransitionState(){if(typeof document=="undefined")return;let t=document.getElementById(qt);return t!=null&&t.textContent?JSON.parse(t.textContent):void 0}};k=new WeakMap,I=new WeakMap;var vt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",$t=vt.split(""),Gt=new Array(123);for(let e=0;e<vt.length;e++)Gt[vt.charCodeAt(e)]=e;var St=e=>{if(e<0)return`-${St(-e)}`;let t=e>>>0,r=e/4294967296>>>0,o="";for(;r>0;)o=$t[63&t]+o,t>>>=6,t|=(63&r)<<26,r>>>=6;let i="";do i=$t[63&t]+i,t>>>=6;while(t>0);return i+o},_t=e=>{let t=0,r=e.charAt(0)==="-"?1:0;for(let o=r;o<e.length;o++)t=t*64+Gt[e.charCodeAt(o)];return r?-t:t};var jt=typeof window=="undefined",O,M,Kt=class extends z{constructor({cookieAdapter:t,cookieName:r="ufvd"}){super({initialData:jt?Se(t.get(r)):void 0});l(this,O,void 0);l(this,M,void 0);f(this,O,r),f(this,M,t)}handleDelete(){return s(this,M).remove(s(this,O)),Promise.resolve()}async handleUpdateData(t,r){jt||(r.consent?s(this,M).set(s(this,O),ye(r)):s(this,M).remove(s(this,O)))}};O=new WeakMap,M=new WeakMap;var Bt="~",Jt="!",Ht="-";function Se(e){if(!e)return;let t=e.split(Bt);if(t.length>3)return;let[r,o,i]=t;return{consent:!0,sessionScores:Ft(yt(o)),scores:Ft(yt(i)),tests:yt(r)}}function yt(e){return e.split(Jt).map(r=>r.split(Ht)).reduce((r,o)=>(o.length!==2||(r[o[0]]=o[1]),r),{})}function Ft(e){return Object.entries(e).reduce((t,[r,o])=>(t[r]=_t(o),t),{})}function ye(e){return[Dt(e.tests),Dt(Qt(e.sessionScores)),Dt(Qt(e.scores))].join(Bt)}function Qt(e){return Object.entries(e).reduce((t,[r,o])=>(t[r]=St(o),t),{})}function Dt(e){return Object.entries(e).map(t=>t.join(Ht)).join(Jt)}var et,De,Yt=class extends z{constructor({cookieAdapter:t,visitorIdCookieName:r="ufvi",...o}){super(o);l(this,et);o.initialData||h(this,et,De).call(this).catch(i=>{console.error(i)})}handleDelete(t){throw new Error("Method not implemented.")}async handleUpdateData(t){let r=await new Promise(o=>{setTimeout(()=>{o(void 0)},2e3)});r&&this.signalAsyncDataUpdate(r)}};et=new WeakSet,De=async function(){let t=await new Promise(r=>{setTimeout(()=>{r(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};function Ce(e){let{gracePeriod:t=864e5,decayRate:r=1/30,decayCap:o=.95}=e!=null?e:{};return function({now:a,lastUpd:n,scores:u,sessionScores:c}){if(typeof n!="number")return!1;let v=a-n-t;if(v<=0)return!1;let C=v/864e5,L=1-Math.min(o,C*r);return L<=0?!1:(Xt(u,L),Xt(c,L),!0)}}function Xt(e,t){for(let r in e)e[r]*=t}var re=X(require("mitt")),B=require("dequal/lite");var Ct=class{constructor(){S(this,"inMemoryFallback",{});S(this,"hasLocalStorageObject",typeof localStorage!="undefined")}get(t){let r=this.inMemoryFallback[t];if(!this.hasLocalStorageObject||r)return r;try{let o=localStorage.getItem(t);return o?JSON.parse(o):void 0}catch(o){return r}}set(t,r,o){if(this.inMemoryFallback[t]=r,!(!this.hasLocalStorageObject||!o))try{localStorage.setItem(t,JSON.stringify(r))}catch(i){console.warn(i)}}delete(t,r){r||delete this.inMemoryFallback[t];try{localStorage.removeItem(t)}catch(o){}}};var Wt=X(require("rfdc"));var xe=(0,Wt.default)();function Zt(e,t,r){let o=t?xe(t):K();return e.forEach(i=>{var a,n;switch(i.type){case"consent":o.consent=i.data;break;case"setquirk":o.quirks[i.data.key]=i.data.value;break;case"settest":o.tests[i.data.test]=i.data.variant;break;case"modscore":if(r)break;let u=Number(i.data.delta);if(isNaN(u))throw new Error("Non-number delta received");let c=(a=o.scores[i.data.dimension])!=null?a:0;o.scores[i.data.dimension]=c+u;break;case"modscoreS":if(r)break;let p=Number(i.data.delta);if(isNaN(p))throw new Error("Non-number delta received");let v=(n=o.sessionScores[i.data.dimension])!=null?n:0;o.sessionScores[i.data.dimension]=v+p;break;case"identify":break;case"setcontrol":o.controlGroup=i.data;break;default:throw new Error("Unknown command")}}),o}var rt="ufvisitor",V,R,q,g,D,P,T,N,ot,Ve,it,be,J,te,H,ee,nt=class{constructor(t){l(this,D);l(this,T);l(this,ot);l(this,it);l(this,J);l(this,H);l(this,V,(0,re.default)());l(this,R,new Ct);l(this,q,void 0);l(this,g,void 0);S(this,"events",{on:s(this,V).on,off:s(this,V).off});if(f(this,g,t),s(this,D,P)||h(this,T,N).call(this,h(this,H,ee).call(this),!0),t.transitionStore){let r=t.transitionStore.getClientTransitionState();if(r){let i=[];r.quirks&&i.push(...Object.entries(r.quirks).map(([a,n])=>({type:"setquirk",data:{key:a,value:n}}))),r.tests&&i.push(...Object.entries(r.tests).map(([a,n])=>({type:"settest",data:{test:a,variant:n}}))),this.updateData(i),r.ssv&&t.onServerTransitionScoresReceived&&t.onServerTransitionScoresReceived(r.ssv)}t.transitionStore.events.on("dataUpdatedAsync",i=>{h(this,T,N).call(this,{...s(this,D,P).visitorData,...i})});let o=t.transitionStore.data;o&&h(this,T,N).call(this,{...s(this,D,P).visitorData,...o},!0)}}get data(){var r,o;let t=s(this,D,P);if(h(this,it,be).call(this,t)){let{sessionScores:i,...a}=t.visitorData;return h(this,T,N).call(this,{...a,sessionScores:{}}),(o=(r=s(this,g)).onLogMessage)==null||o.call(r,["info",120]),s(this,D,P).visitorData}return t.visitorData}get decayEnabled(){return!!s(this,g).decay}async updateData(t){var o,i,a,n;if(t.length===0)return;(i=(o=s(this,g)).onLogMessage)==null||i.call(o,["debug",101,t]);let r=Zt(t,this.data,(a=s(this,D,P))==null?void 0:a.visitorData.controlGroup);t.some(u=>u.type==="consent"&&!u.data)&&s(this,R).delete(rt,!0),h(this,T,N).call(this,r),await((n=s(this,g).transitionStore)==null?void 0:n.updateData(t,s(this,D,P).visitorData))}async delete(t){var r,o,i;s(this,R).delete(rt,!1),await((r=s(this,g).transitionStore)==null?void 0:r.delete(t)),h(this,T,N).call(this,h(this,H,ee).call(this)),(i=(o=s(this,g)).onLogMessage)==null||i.call(o,["info",103,t])}};V=new WeakMap,R=new WeakMap,q=new WeakMap,g=new WeakMap,D=new WeakSet,P=function(){return s(this,R).get(rt)},T=new WeakSet,N=function(t,r=!1){var v,C,L,wt,kt,Pt;let o=s(this,D,P),i=Date.now();t.controlGroup?(t.scores={},t.sessionScores={}):(h(this,J,te).call(this,t.scores),h(this,J,te).call(this,t.sessionScores),(C=(v=s(this,g)).decay)==null||C.call(v,{now:i,lastUpd:o==null?void 0:o.updated,scores:t.scores,sessionScores:t.sessionScores}));let a=!(0,B.dequal)(o==null?void 0:o.visitorData.scores,t.scores),n=!(0,B.dequal)(o==null?void 0:o.visitorData.sessionScores,t.sessionScores),u=!(0,B.dequal)(o==null?void 0:o.visitorData.quirks,t.quirks),c=!(0,B.dequal)(o==null?void 0:o.visitorData.tests,t.tests),p={updated:i,visitorData:t};h(this,ot,Ve).call(this),s(this,R).set(rt,p,!!t.consent),(wt=(L=s(this,g)).onLogMessage)==null||wt.call(L,["debug",102,t]),r||((a||n)&&s(this,V).emit("scoresUpdated",t),u&&s(this,V).emit("quirksUpdated",t),c&&s(this,V).emit("testsUpdated",t),((kt=o==null?void 0:o.visitorData)==null?void 0:kt.consent)!==t.consent&&s(this,V).emit("consentUpdated",t),((Pt=o==null?void 0:o.visitorData)==null?void 0:Pt.controlGroup)!==t.controlGroup&&s(this,V).emit("controlGroupUpdated",t))},ot=new WeakSet,Ve=function(){typeof window=="undefined"||!s(this,g).visitLifespan||(s(this,q)&&window.clearTimeout(s(this,q)),f(this,q,window.setTimeout(()=>{this.data},s(this,g).visitLifespan+50)))},it=new WeakSet,be=function(t){let r=s(this,g).visitLifespan;return r?t.updated+r<Date.now():!1},J=new WeakSet,te=function(t){var r,o;if(!!s(this,g).manifest)for(let i in t){let a=t[i],n=s(this,g).manifest.getDimensionByKey(i);!n||a>n.cap&&((o=(r=s(this,g)).onLogMessage)==null||o.call(r,["debug",110,{dim:i,score:a,cap:n.cap}]),t[i]=n.cap)}},H=new WeakSet,ee=function(){var t,r,o;return{...K(),consent:(t=s(this,g).defaultConsent)!=null?t:!1,controlGroup:(o=(r=s(this,g).manifest)==null?void 0:r.rollForControlGroup())!=null?o:!1}};var ie=X(require("mitt"));function xt({context:e,variations:t,take:r=1}){var u,c;let o=(u=e.storage.data.controlGroup)!=null?u:!1,i=[],a=!1,n=e.scores;for(let p of t){if(i.length===r)break;if(!((c=p.pz)!=null&&c.crit.length)){i.push(p);continue}!o&&Vt(p.pz,n)&&(a=!0,i.push(p))}return{personalized:a,variations:i}}function Vt(e,t){return e!=null&&e.crit?!e.op||e.op==="&"?e.crit.every(r=>oe(r,t)):e.crit.some(r=>oe(r,t)):!0}function oe(e,t){var n;let{op:r,l:o}=e,i=(n=t[o])!=null?n:0;if(r==="+")return Math.max(...Object.values(t))===i&&i>0;if(r==="-")return Math.min(...Object.values(t))===i&&i>0;let a=e.rDim?t[e.rDim]:e.r;if(a===void 0)return!1;if(r===">")return i>a;if(r===">=")return i>=a;if(r==="<")return i<a;if(r==="<=")return i<=a;if(r==="=")return i===a;if(r==="!=")return i!==a;throw new Error(`Unknown op: ${r}`)}var Ee=e=>{let{values:t,total:r,missingDistribution:o}=e.reduce((i,a)=>(a.testDistribution?i.total+=a.testDistribution:++i.missingDistribution,i.values.push(a.testDistribution),i),{values:[],total:0,missingDistribution:0});if(r>100)throw new Error(`Total distribution ${r} is over the maximum 100.`);if(r<100){let a=(100-r)/o;t.forEach((n,u)=>{typeof n=="undefined"&&(t[u]=a)})}return t},st=({name:e,context:t,variations:r})=>{var a;let o,i=t.getTestVariantId(e);if(i===null)return{result:void 0,variantAssigned:!1};if(i&&(o=r.find(n=>n.id===i),o||t.log("warn",401,{test:e,variant:i})),!o){let n=Ee(r),u=Math.floor(Math.random()*100),c=0;o=r.find((p,v)=>{let C=n[v];if(u>c&&u<=c+C)return p;c+=C}),o&&t.setTestVariantId(e,(a=o.id)!=null?a:"Unknown")}return{result:o,variantAssigned:!i}};var Et=require("dequal/lite"),A,w,b,Y,m,$,bt,ne=class{constructor(t){l(this,$);S(this,"manifest");l(this,A,!1);l(this,w,{});l(this,b,void 0);l(this,Y,{});l(this,m,(0,ie.default)());S(this,"events",{on:s(this,m).on,off:s(this,m).off});S(this,"storage");var i,a;let{manifest:r,...o}=t;f(this,b,{}),(i=t.plugins)==null||i.forEach(n=>{!n.logDrain||s(this,m).on("log",n.logDrain)}),this.manifest=new Z({manifest:r,evaluator:new U({CK:dt,QS:ft,QK:gt,PVC:pt,EVT:mt,PV:ht})}),this.storage=new nt({...o,manifest:this.manifest,onServerTransitionScoresReceived:n=>{f(this,w,n),f(this,A,!0),s(this,m).emit("log",["debug",130,n])},onLogMessage:n=>s(this,m).emit("log",n)}),this.storage.events.on("scoresUpdated",h(this,$,bt).bind(this)),s(this,A)||h(this,$,bt).call(this,this.storage.data),this.storage.events.on("quirksUpdated",n=>{let u=this.manifest.computeSignals({scores:s(this,w),state:s(this,b),previousState:s(this,b),visitor:this.storage.data});this.storage.updateData(u),s(this,m).emit("quirksUpdated",n.quirks),s(this,m).emit("log",["info",4,n.quirks])}),s(this,m).emit("log",["debug",1]),(a=t.plugins)==null||a.forEach(n=>{!n.init||n.init(this)})}get scores(){return s(this,w)}async update(t){var o;let r=[];t.quirks&&r.push(...Object.entries(t.quirks).map(([i,a])=>({type:"setquirk",data:{key:i,value:a}}))),t.enrichments&&t.enrichments.forEach(i=>{let a=F(i.cat,i.key);this.manifest.getDimensionByKey(a)?r.push({type:"modscore",data:{dimension:a,delta:i.str}}):s(this,m).emit("log",["warn",5,i])}),r.push(...this.manifest.computeSignals({state:t,previousState:s(this,b),visitor:this.storage.data,scores:s(this,w)})),s(this,m).emit("log",["debug",2,{...t,url:(o=t.url)==null?void 0:o.toString()}]),f(this,b,{...s(this,b),...t}),await this.storage.updateData(r),s(this,A)&&(h(this,$,bt).call(this,this.storage.data),f(this,A,!1),s(this,m).emit("log",["debug",131]))}getTestVariantId(t){var o;let r=this.manifest.getTest(t);return r?(o=r.wv)!=null?o:this.storage.data.tests[t]:(s(this,m).emit("log",["warn",401,t]),null)}setTestVariantId(t,r){this.storage.updateData([{type:"settest",data:{test:t,variant:r}}])}log(...t){s(this,m).emit("log",t)}test(t){var o,i;let r=st({...t,context:this});return s(this,m).emit("testResult",{name:t.name,variantId:(i=(o=r.result)==null?void 0:o.id)!=null?i:void 0,variantAssigned:r.variantAssigned}),r}personalize(t){let r=xt({...t,context:this}),o=s(this,Y)[t.name],i={name:t.name,variantIds:r.variations.map(a=>{var n;return(n=a.id)!=null?n:"Unknown"}),control:this.storage.data.controlGroup,changed:!0};return o&&(0,Et.dequal)(i.variantIds,o)&&(i.changed=!1),s(this,m).emit("personalizationResult",i),s(this,Y)[t.name]=i.variantIds,r}async forget(t){f(this,b,{}),await this.storage.delete(t)}};A=new WeakMap,w=new WeakMap,b=new WeakMap,Y=new WeakMap,m=new WeakMap,$=new WeakSet,bt=function(t){var i;let r={...t.scores};for(let a in t.sessionScores)r[a]=((i=r[a])!=null?i:0)+t.sessionScores[a];r=this.manifest.computeAggregateDimensions(r),!(0,Et.dequal)(r,s(this,w))&&(f(this,w,r),s(this,m).emit("scoresUpdated",r),s(this,m).emit("log",["info",3,r]))};function at(e,t){if(e==="none")return!1;switch(t){case"debug":return e==="debug";case"info":return e==="info"||e==="debug";case"warn":return e==="warn"||e==="info"||e==="debug";case"error":return e==="debug"||"info";default:return!1}}function se(e){return([t,r,...o])=>{!at(e,t)||console[t](`\u{1F94B} [${t}] Uniform event ID ${r}
|
2
|
+
`,...o.map(i=>JSON.stringify(i,null,2)))}}function Te(e){return{logDrain:se(e)}}var ae={1:()=>["context","constructed"],2:e=>["context","received data update",e],3:e=>["context","new score vector",e],4:e=>["context","updated quirks",e],5:e=>["context","ignored enrichment update for unknown enrichment category",e.cat],101:e=>["storage","received update commands",e],102:e=>["storage","data was updated",e],103:e=>["storage",`data was deleted ${e?"from all devices":"from this device"}`],110:({dim:e,cap:t,score:r})=>["storage",`${e} score ${r} exceeded cap ${t}. Rounded down.`],120:()=>["storage","visitor data expired and was cleared"],130:e=>["storage","server to client transition score data was loaded; it will persist until the next update event occurs",e],131:()=>["storage","server to client transition data was discarded"],401:e=>["testing",`${e} was unknown; it will not be run.`],402:({test:e,variant:t})=>["testing",`${e} 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"]};function ue(e){return([t,r,...o])=>{if(!at(e,t))return;let i=ae[r],a=`\u{1F94B} [${new Date().toLocaleTimeString()}][${t}]`;if(!i){console[t](`${a} unknown event ID ${r} - ensure all Uniform packages are the same version`,...o);return}let[n,u,...c]=i(...o);console[t](`${a}[${n}] ${u} (Event ID: ${r})
|
3
|
+
`,...c.map(p=>JSON.stringify(p,null,2)))}}function we(e){return{logDrain:ue(e)}}var ce=(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))(ce||{}),ke="nesitag";var Tt=typeof top!="undefined";function Pe(){return{logDrain:e=>{!Tt||top==null||top.postMessage({type:"uniform:context:log",message:e},window.location.origin)},init:e=>{let t=[],r=[],o=()=>{!Tt||top==null||top.postMessage({type:"uniform:context:data",data:{scores:e.scores,data:e.storage.data,manifest:e.manifest.data,personalizations:t,tests:r}},window.location.origin)},i=n=>{!n.changed||(t.push(n),o())},a=n=>{!n.variantAssigned||(r.push(n),o())};if(Tt){window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__=e;try{top==null||top.addEventListener("message",async n=>{if(!n.data)return;let u=n.data;await Oe(u,e)})}catch(n){console.warn("Unable to initialize Uniform Context DevTools because it is in a cross-domain iframe.",n)}top==null||top.postMessage({type:"uniform:context:hello",uiVersion:2},window.location.origin),o()}return e.events.on("personalizationResult",i),e.events.on("testResult",a),e.storage.events.on("*",o),()=>{e.storage.events.off("*",o),e.events.off("personalizationResult",i),e.events.off("testResult",a)}}}}async function Oe(e,t){e.type==="uniform-in:context:update"&&e.newData&&await t.update(e.newData),e.type==="uniform-in:context:commands"&&e.commands&&Array.isArray(e.commands)&&await t.storage.updateData(e.commands),e.type==="uniform-in:context:forget"&&await t.forget(!1)}module.exports=ve(Me);0&&(module.exports={Context,CookieTransitionDataStore,EdgeNodeTagName,EdgeTransitionDataStore,GroupCriteriaEvaluator,ManifestInstance,SERVER_STATE_ID,ScriptType,TransitionDataStore,VisitorDataStore,computeAggregateDimensions,cookieEvaluator,createConsoleLogDrain,createDebugConsoleLogDrain,createLinearDecay,currentPageEvaluator,emptyVisitorData,enableConsoleLogDrain,enableContextDevTools,enableDebugConsoleLogDrain,evaluateVariantMatch,eventEvaluator,getEnrichmentVectorKey,isStringMatch,pageViewCountDimension,pageViewCountEvaluator,personalizeVariations,queryStringEvaluator,quirkEvaluator,testVariations});
|
package/dist/index.mjs
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
import{a as J}from"./chunk-GU2YFM6V.mjs";import{d as v,e as n,f as m,g,h as y,i as u}from"./chunk-KZPEO35A.mjs";u();u();u();function ht(r,t){let e={...r};for(let o in t){let i=St(r,o,t,new Set([o]));i!==0&&(e[o]=i)}return e}function St(r,t,e,o){var s;let i=0;for(let a of e[t].inputs){let c=(s=r[a.dim])!=null?s:0;if(!c&&e[a.dim]){if(o.has(a.dim))continue;let l=new Set(o);l.add(a.dim),c=St(r,a.dim,e,l)}if(c!==0)if(a.sign==="c"){i=0;break}else a.sign==="-"?i-=c:i+=c}return i}u();var N,k,rt=class{constructor(t,e,o){m(this,N,void 0);m(this,k,void 0);v(this,"signal");g(this,k,t),this.signal=e,g(this,N,o)}computeSignals(t,e){if(t.scores[n(this,k)]>=this.signal.cap&&this.signal.dur!=="t")return;let i=n(this,N).evaluate(t,this.signal.crit,e,this.signal,n(this,k)),s=this.signal.dur==="s"||this.signal.dur==="t"?"modscoreS":"modscore";if(i)e.push({type:s,data:{dimension:n(this,k),delta:this.signal.str}});else if(this.signal.dur==="t"){let a=t.visitor.sessionScores[n(this,k)];a&&e.push({type:s,data:{dimension:n(this,k),delta:-a}})}}};N=new WeakMap,k=new WeakMap;var b,$,ot=class{constructor({manifest:t,evaluator:e=new G({})}){v(this,"data");m(this,b,void 0);m(this,$,void 0);var o,i,s;g(this,b,(o=t.project)!=null?o:{}),this.data=t,g(this,$,Object.entries((s=(i=n(this,b).pz)==null?void 0:i.sig)!=null?s:[]).map(([a,c])=>new rt(a,c,e)))}rollForControlGroup(){var t,e;return Math.random()<((e=(t=n(this,b).pz)==null?void 0:t.control)!=null?e:0)}getTest(t){var e;return(e=n(this,b).test)==null?void 0:e[t]}computeSignals(t){let e=[];return n(this,$).forEach(o=>{o.computeSignals(t,e)}),e}computeAggregateDimensions(t){var e,o;return ht(t,(o=(e=n(this,b).pz)==null?void 0:e.agg)!=null?o:{})}getDimensionByKey(t){var o,i,s,a;let e=t.indexOf(J);return e<=0?(i=(o=n(this,b).pz)==null?void 0:o.sig)==null?void 0:i[t]:(a=(s=n(this,b).pz)==null?void 0:s.enr)==null?void 0:a[t.substring(0,e)]}};b=new WeakMap,$=new WeakMap;u();var vt=(r,t)=>{var i;if(t.type!=="CK")return!1;let e=(i=r.state.cookies)==null?void 0:i[t.cookieName];return E(e,t.match)};u();u();function yt(r,t){var o;if(typeof r=="undefined"||r===null)return!1;let e=Number(r);if(isNaN(e))return!1;switch((o=t==null?void 0:t.op)!=null?o:"="){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}}u();function B(r,t){return`${r}${J}${t}`}var it=B("$pvc","v"),Dt=(r,t,e)=>{var a,c;if(t.type!=="PVC")return!1;let o=!r.previousState||((a=r.state.url)==null?void 0:a.toString())!==((c=r.previousState.url)==null?void 0:c.toString()),s=(r.visitor.sessionScores[it]||0)+1;if(yt(s,t.match)){let d=e.some(l=>l.type==="modscoreS"&&l.data.dimension===it);return o&&!d&&e.push({type:"modscoreS",data:{dimension:it,delta:1}}),!0}return!1};u();var Ct=(r,t)=>{var o;if(t.type!=="QS")return!1;let e=(o=r.state.url)==null?void 0:o.searchParams.get(t.queryName);return E(e,t.match)};u();var Vt=(r,t,e,o,i)=>{if(t.type!=="QK")return!1;if(typeof window=="undefined"&&o.dur==="t"&&r.scores[i]>0)return!0;let s=r.visitor.quirks[t.key];return E(s,t.match)};u();var xt=(r,t)=>{var e,o;return t.type!=="EVT"?!1:(o=(e=r.state.events)==null?void 0:e.some(i=>E(i.event,t.event)))!=null?o:!1};u();var bt=(r,t)=>{var e;return t.type!=="PV"?!1:E((e=r.state.url)==null?void 0:e.pathname,t.path)};u();var _,G=class{constructor(t){m(this,_,void 0);g(this,_,t)}evaluate(t,e,o,i,s){let a=!(e.op==="&"||!e.op);for(let c of e.clauses){let d;if(c.type==="G")d=this.evaluate(t,c,o,i,s);else{let l=n(this,_)[c.type];if(!l)throw new Error(`${c.type} signal criteria not registered`);d=l(t,c,o,i,s)}if(d===a)return a}return!a}};_=new WeakMap;u();function E(r,t){var a,c,d,l;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 o=(c=t.cs)!=null?c:!1,i=o?r!=null?r:"":Et(r),s=o?t.rhs:Et(t.rhs);switch(e){case"=":return i===s;case"!=":return i!==s;case"~":return(d=i.includes(s))!=null?d:!1;case"!~":return!((l=i.includes(s))!=null?l:!0);case"//":return new RegExp(t.rhs,o?"":"i").test(r!=null?r:"");case"!//":return!new RegExp(t.rhs,o?"":"i").test(r!=null?r:"");default:throw new Error(`Unknown match type ${e}.`)}}function Et(r){var t;return(t=r==null?void 0:r.toUpperCase())!=null?t:""}u();var H=()=>({quirks:{},scores:{},sessionScores:{},tests:{},consent:!1,controlGroup:!1});u();u();import jt from"mitt";import{dequal as Ft}from"dequal/lite";var Qt="__UNIFORM_DATA__",P,I,j=class{constructor({initialData:t}){m(this,P,void 0);m(this,I,jt());v(this,"events",{on:n(this,I).on,off:n(this,I).off});t&&g(this,P,t)}get data(){return n(this,P)}updateData(t,e){return g(this,P,e),this.handleUpdateData(t,e)}async delete(t){g(this,P,void 0),await this.handleDelete(t)}signalAsyncDataUpdate(t){Ft(this.data,t)||(g(this,P,t),n(this,I).emit("dataUpdatedAsync",t))}getClientTransitionState(){if(typeof document=="undefined")return;let t=document.getElementById(Qt);return(t==null?void 0:t.textContent)?JSON.parse(t.textContent):void 0}};P=new WeakMap,I=new WeakMap;u();var nt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Tt=nt.split(""),kt=new Array(123);for(let r=0;r<nt.length;r++)kt[nt.charCodeAt(r)]=r;var st=r=>{if(r<0)return`-${st(-r)}`;let t=r>>>0,e=r/4294967296>>>0,o="";for(;e>0;)o=Tt[63&t]+o,t>>>=6,t|=(63&e)<<26,e>>>=6;let i="";do i=Tt[63&t]+i,t>>>=6;while(t>0);return i+o},wt=r=>{let t=0,e=r.charAt(0)==="-"?1:0;for(let o=e;o<r.length;o++)t=t*64+kt[r.charCodeAt(o)];return e?-t:t};var Pt=typeof window=="undefined",R,L,Kt=class extends j{constructor({cookieAdapter:t,cookieName:e="ufvd"}){super({initialData:Pt?Jt(t.get(e)):void 0});m(this,R,void 0);m(this,L,void 0);g(this,R,e),g(this,L,t)}handleDelete(){return n(this,L).remove(n(this,R)),Promise.resolve()}async handleUpdateData(t,e){Pt||(e.consent?n(this,L).set(n(this,R),Bt(e)):n(this,L).remove(n(this,R)))}};R=new WeakMap,L=new WeakMap;var Mt="~",Ot="!",Rt="-";function Jt(r){if(!r)return;let t=r.split(Mt);if(t.length>3)return;let[e,o,i]=t;return{consent:!0,sessionScores:Lt(at(o)),scores:Lt(at(i)),tests:at(e)}}function at(r){return r.split(Ot).map(e=>e.split(Rt)).reduce((e,o)=>(o.length!==2||(e[o[0]]=o[1]),e),{})}function Lt(r){return Object.entries(r).reduce((t,[e,o])=>(t[e]=wt(o),t),{})}function Bt(r){return[ut(r.tests),ut(At(r.sessionScores)),ut(At(r.scores))].join(Mt)}function At(r){return Object.entries(r).reduce((t,[e,o])=>(t[e]=st(o),t),{})}function ut(r){return Object.entries(r).map(t=>t.join(Rt)).join(Ot)}u();var Y,Yt,Ht=class extends j{constructor({cookieAdapter:t,visitorIdCookieName:e="ufvi",...o}){super(o);m(this,Y);o.initialData||y(this,Y,Yt).call(this).catch(i=>{console.error(i)})}handleDelete(t){throw new Error("Method not implemented.")}async handleUpdateData(t){let e=await new Promise(o=>{setTimeout(()=>{o(void 0)},2e3)});e&&this.signalAsyncDataUpdate(e)}};Y=new WeakSet,Yt=async function(){let t=await new Promise(e=>{setTimeout(()=>{e(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};u();function er(r){let{gracePeriod:t=864e5,decayRate:e=1/30,decayCap:o=.95}=r!=null?r:{};return function({now:s,lastUpd:a,scores:c,sessionScores:d}){if(typeof a!="number")return!1;let D=s-a-t;if(D<=0)return!1;let C=D/864e5,U=1-Math.min(o,C*e);return U<=0?!1:(Ut(c,U),Ut(d,U),!0)}}function Ut(r,t){for(let e in r)r[e]*=t}u();import Zt from"mitt";import{dequal as X}from"dequal/lite";u();var ct=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 o=localStorage.getItem(t);return o?JSON.parse(o):void 0}catch(o){return e}}set(t,e,o){if(this.inMemoryFallback[t]=e,!(!this.hasLocalStorageObject||!o))try{localStorage.setItem(t,JSON.stringify(e))}catch(i){console.warn(i)}}delete(t,e){e||delete this.inMemoryFallback[t];try{localStorage.removeItem(t)}catch(o){}}};u();import Xt from"rfdc";var Wt=Xt();function It(r,t,e){let o=t?Wt(t):H();return r.forEach(i=>{var s,a;switch(i.type){case"consent":o.consent=i.data;break;case"setquirk":o.quirks[i.data.key]=i.data.value;break;case"settest":o.tests[i.data.test]=i.data.variant;break;case"modscore":if(e)break;let c=Number(i.data.delta);if(isNaN(c))throw new Error("Non-number delta received");let d=(s=o.scores[i.data.dimension])!=null?s:0;o.scores[i.data.dimension]=d+c;break;case"modscoreS":if(e)break;let l=Number(i.data.delta);if(isNaN(l))throw new Error("Non-number delta received");let D=(a=o.sessionScores[i.data.dimension])!=null?a:0;o.sessionScores[i.data.dimension]=D+l;break;case"identify":break;case"setcontrol":o.controlGroup=i.data;break;default:throw new Error("Unknown command")}}),o}var W="ufvisitor",T,A,q,h,V,M,w,z,Z,te,tt,ee,F,zt,Q,qt,dt=class{constructor(t){m(this,V);m(this,w);m(this,Z);m(this,tt);m(this,F);m(this,Q);m(this,T,Zt());m(this,A,new ct);m(this,q,void 0);m(this,h,void 0);v(this,"events",{on:n(this,T).on,off:n(this,T).off});if(g(this,h,t),n(this,V,M)||y(this,w,z).call(this,y(this,Q,qt).call(this),!0),t.transitionStore){let e=t.transitionStore.getClientTransitionState();if(e){let i=[];e.quirks&&i.push(...Object.entries(e.quirks).map(([s,a])=>({type:"setquirk",data:{key:s,value:a}}))),e.tests&&i.push(...Object.entries(e.tests).map(([s,a])=>({type:"settest",data:{test:s,variant:a}}))),this.updateData(i),e.ssv&&t.onServerTransitionScoresReceived&&t.onServerTransitionScoresReceived(e.ssv)}t.transitionStore.events.on("dataUpdatedAsync",i=>{y(this,w,z).call(this,{...n(this,V,M).visitorData,...i})});let o=t.transitionStore.data;o&&y(this,w,z).call(this,{...n(this,V,M).visitorData,...o},!0)}}get data(){var e,o;let t=n(this,V,M);if(y(this,tt,ee).call(this,t)){let{sessionScores:i,...s}=t.visitorData;return y(this,w,z).call(this,{...s,sessionScores:{}}),(o=(e=n(this,h)).onLogMessage)==null||o.call(e,["info",120]),n(this,V,M).visitorData}return t.visitorData}get decayEnabled(){return!!n(this,h).decay}async updateData(t){var o,i,s,a;if(t.length===0)return;(i=(o=n(this,h)).onLogMessage)==null||i.call(o,["debug",101,t]);let e=It(t,this.data,(s=n(this,V,M))==null?void 0:s.visitorData.controlGroup);t.some(c=>c.type==="consent"&&!c.data)&&n(this,A).delete(W,!0),y(this,w,z).call(this,e),await((a=n(this,h).transitionStore)==null?void 0:a.updateData(t,n(this,V,M).visitorData))}async delete(t){var e,o,i;n(this,A).delete(W,!1),await((e=n(this,h).transitionStore)==null?void 0:e.delete(t)),y(this,w,z).call(this,y(this,Q,qt).call(this)),(i=(o=n(this,h)).onLogMessage)==null||i.call(o,["info",103,t])}};T=new WeakMap,A=new WeakMap,q=new WeakMap,h=new WeakMap,V=new WeakSet,M=function(){return n(this,A).get(W)},w=new WeakSet,z=function(t,e=!1){var D,C,U,ft,mt,gt;let o=n(this,V,M),i=Date.now();t.controlGroup?(t.scores={},t.sessionScores={}):(y(this,F,zt).call(this,t.scores),y(this,F,zt).call(this,t.sessionScores),(C=(D=n(this,h)).decay)==null||C.call(D,{now:i,lastUpd:o==null?void 0:o.updated,scores:t.scores,sessionScores:t.sessionScores}));let s=!X(o==null?void 0:o.visitorData.scores,t.scores),a=!X(o==null?void 0:o.visitorData.sessionScores,t.sessionScores),c=!X(o==null?void 0:o.visitorData.quirks,t.quirks),d=!X(o==null?void 0:o.visitorData.tests,t.tests),l={updated:i,visitorData:t};y(this,Z,te).call(this),n(this,A).set(W,l,!!t.consent),(ft=(U=n(this,h)).onLogMessage)==null||ft.call(U,["debug",102,t]),e||((s||a)&&n(this,T).emit("scoresUpdated",t),c&&n(this,T).emit("quirksUpdated",t),d&&n(this,T).emit("testsUpdated",t),((mt=o==null?void 0:o.visitorData)==null?void 0:mt.consent)!==t.consent&&n(this,T).emit("consentUpdated",t),((gt=o==null?void 0:o.visitorData)==null?void 0:gt.controlGroup)!==t.controlGroup&&n(this,T).emit("controlGroupUpdated",t))},Z=new WeakSet,te=function(){typeof window=="undefined"||!n(this,h).visitLifespan||(n(this,q)&&window.clearTimeout(n(this,q)),g(this,q,window.setTimeout(()=>{this.data},n(this,h).visitLifespan+50)))},tt=new WeakSet,ee=function(t){let e=n(this,h).visitLifespan;return e?t.updated+e<Date.now():!1},F=new WeakSet,zt=function(t){var e,o;if(!!n(this,h).manifest)for(let i in t){let s=t[i],a=n(this,h).manifest.getDimensionByKey(i);!a||s>a.cap&&((o=(e=n(this,h)).onLogMessage)==null||o.call(e,["debug",110,{dim:i,score:s,cap:a.cap}]),t[i]=a.cap)}},Q=new WeakSet,qt=function(){var t,e,o;return{...H(),consent:(t=n(this,h).defaultConsent)!=null?t:!1,controlGroup:(o=(e=n(this,h).manifest)==null?void 0:e.rollForControlGroup())!=null?o:!1}};u();import oe from"mitt";u();u();function Nt({context:r,variations:t,take:e=1}){var c,d;let o=(c=r.storage.data.controlGroup)!=null?c:!1,i=[],s=!1,a=r.scores;for(let l of t){if(i.length===e)break;if(!((d=l.pz)==null?void 0:d.crit.length)){i.push(l);continue}!o&&$t(l.pz,a)&&(s=!0,i.push(l))}return{personalized:s,variations:i}}u();function $t(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:o}=r,i=(a=t[o])!=null?a:0;if(e==="+")return Math.max(...Object.values(t))===i&&i>0;if(e==="-")return Math.min(...Object.values(t))===i&&i>0;let s=r.rDim?t[r.rDim]:r.r;if(s===void 0)return!1;if(e===">")return i>s;if(e===">=")return i>=s;if(e==="<")return i<s;if(e==="<=")return i<=s;if(e==="=")return i===s;if(e==="!=")return i!==s;throw new Error(`Unknown op: ${e}`)}u();var re=r=>{let{values:t,total:e,missingDistribution:o}=r.reduce((i,s)=>(s.testDistribution?i.total+=s.testDistribution:++i.missingDistribution,i.values.push(s.testDistribution),i),{values:[],total:0,missingDistribution:0});if(e>100)throw new Error(`Total distribution ${e} is over the maximum 100.`);if(e<100){let s=(100-e)/o;t.forEach((a,c)=>{typeof a=="undefined"&&(t[c]=s)})}return t},lt=({name:r,context:t,variations:e})=>{var s;let o,i=t.getTestVariantId(r);if(i===null)return{result:void 0,variantAssigned:!1};if(i&&(o=e.find(a=>a.id===i),o||t.log("warn",401,{test:r,variant:i})),!o){let a=re(e),c=Math.floor(Math.random()*100),d=0;o=e.find((l,D)=>{let C=a[D];if(c>d&&c<=d+C)return l;d+=C}),o&&t.setTestVariantId(r,(s=o.id)!=null?s:"Unknown")}return{result:o,variantAssigned:!i}};import{dequal as ie}from"dequal/lite";var O,x,K,S,ne=class{constructor(t){v(this,"manifest");m(this,O,{});m(this,x,void 0);m(this,K,{});m(this,S,oe());v(this,"events",{on:n(this,S).on,off:n(this,S).off});v(this,"storage");var a,c;let{manifest:e,...o}=t;g(this,x,{}),(a=t.plugins)==null||a.forEach(d=>{!d.logDrain||n(this,S).on("log",d.logDrain)}),this.manifest=new ot({manifest:e,evaluator:new G({CK:vt,QS:Ct,QK:Vt,PVC:Dt,EVT:xt,PV:bt})});let i=!1;this.storage=new dt({...o,manifest:this.manifest,onServerTransitionScoresReceived:d=>{g(this,O,d),i=!0,n(this,S).emit("log",["debug",130,d])},onLogMessage:d=>n(this,S).emit("log",d)});let s=d=>{var D;let l={...d.scores};for(let C in d.sessionScores)l[C]=((D=l[C])!=null?D:0)+d.sessionScores[C];l=this.manifest.computeAggregateDimensions(l),g(this,O,l),n(this,S).emit("scoresUpdated",l),n(this,S).emit("log",["info",3,l])};this.storage.events.on("scoresUpdated",s),i||s(this.storage.data),this.storage.events.on("quirksUpdated",d=>{let l=this.manifest.computeSignals({scores:n(this,O),state:n(this,x),previousState:n(this,x),visitor:this.storage.data});this.storage.updateData(l),n(this,S).emit("quirksUpdated",d.quirks),n(this,S).emit("log",["info",4,d.quirks])}),n(this,S).emit("log",["debug",1]),(c=t.plugins)==null||c.forEach(d=>{!d.init||d.init(this)})}get scores(){return n(this,O)}async update(t){var i;let e=[];n(this,S).emit("log",["info",2,{...t,url:(i=t.url)==null?void 0:i.toString()}]),t.quirks&&(e.push(...Object.entries(t.quirks).map(([s,a])=>({type:"setquirk",data:{key:s,value:a}}))),t.quirks=void 0),t.enrichments&&(e.push(...t.enrichments.map(s=>({type:"modscore",data:{dimension:B(s.cat,s.key),delta:s.str}}))),t.enrichments=void 0);let o=n(this,x);g(this,x,{...n(this,x),...t}),e.push(...this.manifest.computeSignals({state:n(this,x),previousState:o,visitor:this.storage.data,scores:n(this,O)})),await this.storage.updateData(e)}getTestVariantId(t){var o;let e=this.manifest.getTest(t);return e?(o=e.wv)!=null?o:this.storage.data.tests[t]:(n(this,S).emit("log",["warn",401,t]),null)}setTestVariantId(t,e){this.storage.updateData([{type:"settest",data:{test:t,variant:e}}])}log(...t){n(this,S).emit("log",t)}test(t){var o,i;let e=lt({...t,context:this});return n(this,S).emit("testResult",{name:t.name,variantId:(i=(o=e.result)==null?void 0:o.id)!=null?i:void 0,variantAssigned:e.variantAssigned}),e}personalize(t){let e=Nt({...t,context:this}),o=n(this,K)[t.name],i={name:t.name,variantIds:e.variations.map(s=>{var a;return(a=s.id)!=null?a:"Unknown"}),control:this.storage.data.controlGroup,changed:!0};return o&&ie(i.variantIds,o)&&(i.changed=!1),n(this,S).emit("personalizationResult",i),n(this,K)[t.name]=i.variantIds,e}async forget(t){g(this,x,{}),await this.storage.delete(t)}};O=new WeakMap,x=new WeakMap,K=new WeakMap,S=new WeakMap;u();u();function et(r,t){if(r==="none")return!1;switch(t){case"debug":return r==="debug";case"info":return r==="info"||r==="debug";case"warn":return r==="warn"||r==="info"||r==="debug";case"error":return r==="debug"||"info";default:return!1}}function se(r){return([t,e,...o])=>{!et(r,t)||console[t](`\u{1F94B} [${t}] Uniform event ID ${e}
|
2
|
-
`,...o.map(i=>JSON.stringify(i,null,2)))}}function
|
3
|
-
`,...
|
1
|
+
import{a as H}from"./chunk-CEKV2MHL.mjs";import{d as D,e as s,f as d,g as m,h as S,i as u}from"./chunk-AFJ7PNM5.mjs";u();u();u();function yt(r,t){let e={...r};for(let o in t){let i=Dt(r,o,t,new Set([o]));i!==0&&(e[o]=i)}return e}function Dt(r,t,e,o){var a;let i=0;for(let n of e[t].inputs){let c=(a=r[n.dim])!=null?a:0;if(!c&&e[n.dim]){if(o.has(n.dim))continue;let g=new Set(o);g.add(n.dim),c=Dt(r,n.dim,e,g)}if(c!==0)if(n.sign==="c"){i=0;break}else n.sign==="-"?i-=c:i+=c}return i}u();var G,w,it=class{constructor(t,e,o){d(this,G,void 0);d(this,w,void 0);D(this,"signal");m(this,w,t),this.signal=e,m(this,G,o)}computeSignal(t,e){if(t.scores[s(this,w)]>=this.signal.cap&&this.signal.dur!=="t")return;let i=s(this,G).evaluate(t,this.signal.crit,e,this.signal,s(this,w)),a=this.signal.dur==="s"||this.signal.dur==="t"?"modscoreS":"modscore";if(!!i.changed){if(i.result)e.push({type:a,data:{dimension:s(this,w),delta:this.signal.str}});else if(this.signal.dur==="t"){let n=t.visitor.sessionScores[s(this,w)];n&&e.push({type:a,data:{dimension:s(this,w),delta:-n}})}}}};G=new WeakMap,w=new WeakMap;var V,_,nt=class{constructor({manifest:t,evaluator:e=new j({})}){D(this,"data");d(this,V,void 0);d(this,_,void 0);var o,i,a;m(this,V,(o=t.project)!=null?o:{}),this.data=t,m(this,_,Object.entries((a=(i=s(this,V).pz)==null?void 0:i.sig)!=null?a:[]).map(([n,c])=>new it(n,c,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(o=>{o.computeSignal(t,e)}),e}computeAggregateDimensions(t){var e,o;return yt(t,(o=(e=s(this,V).pz)==null?void 0:e.agg)!=null?o:{})}getDimensionByKey(t){var o,i,a,n;let e=t.indexOf(H);return e<=0?(i=(o=s(this,V).pz)==null?void 0:o.sig)==null?void 0:i[t]:(n=(a=s(this,V).pz)==null?void 0:a.enr)==null?void 0:n[t.substring(0,e)]}};V=new WeakMap,_=new WeakMap;u();import{dequal as Jt}from"dequal/lite";var xt=(r,t)=>{var a,n;if(t.type!=="CK")return{result:!1,changed:!1};let e=!Jt(Ct(r.state.cookies),Ct((a=r.previousState)==null?void 0:a.cookies)),o=(n=r.state.cookies)==null?void 0:n[t.cookieName];return{result:b(o,t.match),changed:e}};function Ct(r){if(!r)return;if(!r.ufvd)return r;let{ufvd:t,...e}=r;return e}u();u();function Vt(r,t){var o;if(typeof r=="undefined"||r===null)return!1;let e=Number(r);if(isNaN(e))return!1;switch((o=t==null?void 0:t.op)!=null?o:"="){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}}u();function Y(r,t){return`${r}${H}${t}`}var st=Y("$pvc","v"),bt=(r,t,e)=>{var n,c;if(t.type!=="PVC")return{result:!1,changed:!1};let o=!r.previousState||((n=r.state.url)==null?void 0:n.toString())!==((c=r.previousState.url)==null?void 0:c.toString()),a=(r.visitor.sessionScores[st]||0)+1;if(Vt(a,t.match)){let l=e.some(g=>g.type==="modscoreS"&&g.data.dimension===st);return o&&!l&&e.push({type:"modscoreS",data:{dimension:st,delta:1}}),{result:!0,changed:o}}return{result:!1,changed:o}};u();var Et=(r,t)=>{var a,n,c,l,g;if(t.type!=="QS")return{result:!1,changed:!1};let e=!r.previousState||((n=(a=r.state.url)==null?void 0:a.searchParams)==null?void 0:n.toString())!==((l=(c=r.previousState.url)==null?void 0:c.searchParams)==null?void 0:l.toString()),o=(g=r.state.url)==null?void 0:g.searchParams.get(t.queryName);return{result:b(o,t.match),changed:e}};u();var Tt=(r,t,e,o,i)=>{var y;if(t.type!=="QK")return{result:!1,changed:!1};if(typeof window=="undefined"&&o.dur==="t"&&r.scores[i]>0)return{result:!0,changed:!1};let a=r.visitor.quirks[t.key],n=(y=r.state.quirks)==null?void 0:y[t.key],c=n!=null?n:a,l=Boolean(n&&a!==n);return{result:b(c,t.match),changed:l}};u();var wt=(r,t)=>{var o,i;if(t.type!=="EVT")return{result:!1,changed:!1};let e=(i=(o=r.state.events)==null?void 0:o.some(a=>b(a.event,t.event)))!=null?i:!1;return{result:e,changed:e}};u();var kt=(r,t)=>{var i,a,n,c,l;if(t.type!=="PV")return{result:!1,changed:!1};let e=!r.previousState||((a=(i=r.state.url)==null?void 0:i.pathname)==null?void 0:a.toString())!==((c=(n=r.previousState.url)==null?void 0:n.pathname)==null?void 0:c.toString());return{result:b((l=r.state.url)==null?void 0:l.pathname,t.path),changed:e}};u();var F,j=class{constructor(t){d(this,F,void 0);m(this,F,t)}evaluate(t,e,o,i,a){let n=!(e.op==="&"||!e.op),c=!1;for(let l of e.clauses){let g;if(l.type==="G")g=this.evaluate(t,l,o,i,a);else{let y=s(this,F)[l.type];if(!y)throw new Error(`${l.type} signal criteria not registered`);g=y(t,l,o,i,a)}if(g.changed&&(c=!0),g.result===n)return{result:n,changed:c}}return{result:!n,changed:c}}};F=new WeakMap;u();function b(r,t){var n,c,l,g,y,x;let e=(n=t==null?void 0:t.op)!=null?n:"=";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 o=(c=t.cs)!=null?c:!1,i=(o?r!=null?r:"":Pt(r)).toString(),a=(o?t.rhs:Pt(t.rhs)).toString();switch(e){case"=":return i===a;case"!=":return i!==a;case"~":return(l=i.includes(a))!=null?l:!1;case"!~":return!((g=i.includes(a))==null||g);case"//":return new RegExp(t.rhs.toString(),o?"":"i").test((y=r==null?void 0:r.toString())!=null?y:"");case"!//":return!new RegExp(t.rhs.toString(),o?"":"i").test((x=r==null?void 0:r.toString())!=null?x:"");default:throw new Error(`Unknown match type ${e}.`)}}function Pt(r){var t,e;return(e=(t=r==null?void 0:r.toString())==null?void 0:t.toUpperCase())!=null?e:""}u();var X=()=>({quirks:{},scores:{},sessionScores:{},tests:{},consent:!1,controlGroup:!1});u();u();import Ht from"mitt";import{dequal as Yt}from"dequal/lite";var Xt="__UNIFORM_DATA__",O,z,Q=class{constructor({initialData:t}){d(this,O,void 0);d(this,z,Ht());D(this,"events",{on:s(this,z).on,off:s(this,z).off});t&&m(this,O,t)}get data(){return s(this,O)}updateData(t,e){return m(this,O,e),this.handleUpdateData(t,e)}async delete(t){m(this,O,void 0),await this.handleDelete(t)}signalAsyncDataUpdate(t){Yt(this.data,t)||(m(this,O,t),s(this,z).emit("dataUpdatedAsync",t))}getClientTransitionState(){if(typeof document=="undefined")return;let t=document.getElementById(Xt);return t!=null&&t.textContent?JSON.parse(t.textContent):void 0}};O=new WeakMap,z=new WeakMap;u();var at="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ot=at.split(""),Mt=new Array(123);for(let r=0;r<at.length;r++)Mt[at.charCodeAt(r)]=r;var ut=r=>{if(r<0)return`-${ut(-r)}`;let t=r>>>0,e=r/4294967296>>>0,o="";for(;e>0;)o=Ot[63&t]+o,t>>>=6,t|=(63&e)<<26,e>>>=6;let i="";do i=Ot[63&t]+i,t>>>=6;while(t>0);return i+o},Rt=r=>{let t=0,e=r.charAt(0)==="-"?1:0;for(let o=e;o<r.length;o++)t=t*64+Mt[r.charCodeAt(o)];return e?-t:t};var Lt=typeof window=="undefined",R,L,Wt=class extends Q{constructor({cookieAdapter:t,cookieName:e="ufvd"}){super({initialData:Lt?Zt(t.get(e)):void 0});d(this,R,void 0);d(this,L,void 0);m(this,R,e),m(this,L,t)}handleDelete(){return s(this,L).remove(s(this,R)),Promise.resolve()}async handleUpdateData(t,e){Lt||(e.consent?s(this,L).set(s(this,R),te(e)):s(this,L).remove(s(this,R)))}};R=new WeakMap,L=new WeakMap;var It="~",zt="!",qt="-";function Zt(r){if(!r)return;let t=r.split(It);if(t.length>3)return;let[e,o,i]=t;return{consent:!0,sessionScores:Ut(ct(o)),scores:Ut(ct(i)),tests:ct(e)}}function ct(r){return r.split(zt).map(e=>e.split(qt)).reduce((e,o)=>(o.length!==2||(e[o[0]]=o[1]),e),{})}function Ut(r){return Object.entries(r).reduce((t,[e,o])=>(t[e]=Rt(o),t),{})}function te(r){return[lt(r.tests),lt(At(r.sessionScores)),lt(At(r.scores))].join(It)}function At(r){return Object.entries(r).reduce((t,[e,o])=>(t[e]=ut(o),t),{})}function lt(r){return Object.entries(r).map(t=>t.join(qt)).join(zt)}u();var W,re,ee=class extends Q{constructor({cookieAdapter:t,visitorIdCookieName:e="ufvi",...o}){super(o);d(this,W);o.initialData||S(this,W,re).call(this).catch(i=>{console.error(i)})}handleDelete(t){throw new Error("Method not implemented.")}async handleUpdateData(t){let e=await new Promise(o=>{setTimeout(()=>{o(void 0)},2e3)});e&&this.signalAsyncDataUpdate(e)}};W=new WeakSet,re=async function(){let t=await new Promise(e=>{setTimeout(()=>{e(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};u();function ar(r){let{gracePeriod:t=864e5,decayRate:e=1/30,decayCap:o=.95}=r!=null?r:{};return function({now:a,lastUpd:n,scores:c,sessionScores:l}){if(typeof n!="number")return!1;let y=a-n-t;if(y<=0)return!1;let x=y/864e5,I=1-Math.min(o,x*e);return I<=0?!1:(Nt(c,I),Nt(l,I),!0)}}function Nt(r,t){for(let e in r)r[e]*=t}u();import ne from"mitt";import{dequal as Z}from"dequal/lite";u();var dt=class{constructor(){D(this,"inMemoryFallback",{});D(this,"hasLocalStorageObject",typeof localStorage!="undefined")}get(t){let e=this.inMemoryFallback[t];if(!this.hasLocalStorageObject||e)return e;try{let o=localStorage.getItem(t);return o?JSON.parse(o):void 0}catch(o){return e}}set(t,e,o){if(this.inMemoryFallback[t]=e,!(!this.hasLocalStorageObject||!o))try{localStorage.setItem(t,JSON.stringify(e))}catch(i){console.warn(i)}}delete(t,e){e||delete this.inMemoryFallback[t];try{localStorage.removeItem(t)}catch(o){}}};u();import oe from"rfdc";var ie=oe();function $t(r,t,e){let o=t?ie(t):X();return r.forEach(i=>{var a,n;switch(i.type){case"consent":o.consent=i.data;break;case"setquirk":o.quirks[i.data.key]=i.data.value;break;case"settest":o.tests[i.data.test]=i.data.variant;break;case"modscore":if(e)break;let c=Number(i.data.delta);if(isNaN(c))throw new Error("Non-number delta received");let l=(a=o.scores[i.data.dimension])!=null?a:0;o.scores[i.data.dimension]=l+c;break;case"modscoreS":if(e)break;let g=Number(i.data.delta);if(isNaN(g))throw new Error("Non-number delta received");let y=(n=o.sessionScores[i.data.dimension])!=null?n:0;o.sessionScores[i.data.dimension]=y+g;break;case"identify":break;case"setcontrol":o.controlGroup=i.data;break;default:throw new Error("Unknown command")}}),o}var tt="ufvisitor",E,U,N,h,C,M,k,q,et,se,rt,ae,K,Gt,B,_t,pt=class{constructor(t){d(this,C);d(this,k);d(this,et);d(this,rt);d(this,K);d(this,B);d(this,E,ne());d(this,U,new dt);d(this,N,void 0);d(this,h,void 0);D(this,"events",{on:s(this,E).on,off:s(this,E).off});if(m(this,h,t),s(this,C,M)||S(this,k,q).call(this,S(this,B,_t).call(this),!0),t.transitionStore){let e=t.transitionStore.getClientTransitionState();if(e){let i=[];e.quirks&&i.push(...Object.entries(e.quirks).map(([a,n])=>({type:"setquirk",data:{key:a,value:n}}))),e.tests&&i.push(...Object.entries(e.tests).map(([a,n])=>({type:"settest",data:{test:a,variant:n}}))),this.updateData(i),e.ssv&&t.onServerTransitionScoresReceived&&t.onServerTransitionScoresReceived(e.ssv)}t.transitionStore.events.on("dataUpdatedAsync",i=>{S(this,k,q).call(this,{...s(this,C,M).visitorData,...i})});let o=t.transitionStore.data;o&&S(this,k,q).call(this,{...s(this,C,M).visitorData,...o},!0)}}get data(){var e,o;let t=s(this,C,M);if(S(this,rt,ae).call(this,t)){let{sessionScores:i,...a}=t.visitorData;return S(this,k,q).call(this,{...a,sessionScores:{}}),(o=(e=s(this,h)).onLogMessage)==null||o.call(e,["info",120]),s(this,C,M).visitorData}return t.visitorData}get decayEnabled(){return!!s(this,h).decay}async updateData(t){var o,i,a,n;if(t.length===0)return;(i=(o=s(this,h)).onLogMessage)==null||i.call(o,["debug",101,t]);let e=$t(t,this.data,(a=s(this,C,M))==null?void 0:a.visitorData.controlGroup);t.some(c=>c.type==="consent"&&!c.data)&&s(this,U).delete(tt,!0),S(this,k,q).call(this,e),await((n=s(this,h).transitionStore)==null?void 0:n.updateData(t,s(this,C,M).visitorData))}async delete(t){var e,o,i;s(this,U).delete(tt,!1),await((e=s(this,h).transitionStore)==null?void 0:e.delete(t)),S(this,k,q).call(this,S(this,B,_t).call(this)),(i=(o=s(this,h)).onLogMessage)==null||i.call(o,["info",103,t])}};E=new WeakMap,U=new WeakMap,N=new WeakMap,h=new WeakMap,C=new WeakSet,M=function(){return s(this,U).get(tt)},k=new WeakSet,q=function(t,e=!1){var y,x,I,ht,vt,St;let o=s(this,C,M),i=Date.now();t.controlGroup?(t.scores={},t.sessionScores={}):(S(this,K,Gt).call(this,t.scores),S(this,K,Gt).call(this,t.sessionScores),(x=(y=s(this,h)).decay)==null||x.call(y,{now:i,lastUpd:o==null?void 0:o.updated,scores:t.scores,sessionScores:t.sessionScores}));let a=!Z(o==null?void 0:o.visitorData.scores,t.scores),n=!Z(o==null?void 0:o.visitorData.sessionScores,t.sessionScores),c=!Z(o==null?void 0:o.visitorData.quirks,t.quirks),l=!Z(o==null?void 0:o.visitorData.tests,t.tests),g={updated:i,visitorData:t};S(this,et,se).call(this),s(this,U).set(tt,g,!!t.consent),(ht=(I=s(this,h)).onLogMessage)==null||ht.call(I,["debug",102,t]),e||((a||n)&&s(this,E).emit("scoresUpdated",t),c&&s(this,E).emit("quirksUpdated",t),l&&s(this,E).emit("testsUpdated",t),((vt=o==null?void 0:o.visitorData)==null?void 0:vt.consent)!==t.consent&&s(this,E).emit("consentUpdated",t),((St=o==null?void 0:o.visitorData)==null?void 0:St.controlGroup)!==t.controlGroup&&s(this,E).emit("controlGroupUpdated",t))},et=new WeakSet,se=function(){typeof window=="undefined"||!s(this,h).visitLifespan||(s(this,N)&&window.clearTimeout(s(this,N)),m(this,N,window.setTimeout(()=>{this.data},s(this,h).visitLifespan+50)))},rt=new WeakSet,ae=function(t){let e=s(this,h).visitLifespan;return e?t.updated+e<Date.now():!1},K=new WeakSet,Gt=function(t){var e,o;if(!!s(this,h).manifest)for(let i in t){let a=t[i],n=s(this,h).manifest.getDimensionByKey(i);!n||a>n.cap&&((o=(e=s(this,h)).onLogMessage)==null||o.call(e,["debug",110,{dim:i,score:a,cap:n.cap}]),t[i]=n.cap)}},B=new WeakSet,_t=function(){var t,e,o;return{...X(),consent:(t=s(this,h).defaultConsent)!=null?t:!1,controlGroup:(o=(e=s(this,h).manifest)==null?void 0:e.rollForControlGroup())!=null?o:!1}};u();import ce from"mitt";u();u();function jt({context:r,variations:t,take:e=1}){var c,l;let o=(c=r.storage.data.controlGroup)!=null?c:!1,i=[],a=!1,n=r.scores;for(let g of t){if(i.length===e)break;if(!((l=g.pz)!=null&&l.crit.length)){i.push(g);continue}!o&&Ft(g.pz,n)&&(a=!0,i.push(g))}return{personalized:a,variations:i}}u();function Ft(r,t){return r!=null&&r.crit?!r.op||r.op==="&"?r.crit.every(e=>Qt(e,t)):r.crit.some(e=>Qt(e,t)):!0}function Qt(r,t){var n;let{op:e,l:o}=r,i=(n=t[o])!=null?n:0;if(e==="+")return Math.max(...Object.values(t))===i&&i>0;if(e==="-")return Math.min(...Object.values(t))===i&&i>0;let a=r.rDim?t[r.rDim]:r.r;if(a===void 0)return!1;if(e===">")return i>a;if(e===">=")return i>=a;if(e==="<")return i<a;if(e==="<=")return i<=a;if(e==="=")return i===a;if(e==="!=")return i!==a;throw new Error(`Unknown op: ${e}`)}u();var ue=r=>{let{values:t,total:e,missingDistribution:o}=r.reduce((i,a)=>(a.testDistribution?i.total+=a.testDistribution:++i.missingDistribution,i.values.push(a.testDistribution),i),{values:[],total:0,missingDistribution:0});if(e>100)throw new Error(`Total distribution ${e} is over the maximum 100.`);if(e<100){let a=(100-e)/o;t.forEach((n,c)=>{typeof n=="undefined"&&(t[c]=a)})}return t},ft=({name:r,context:t,variations:e})=>{var a;let o,i=t.getTestVariantId(r);if(i===null)return{result:void 0,variantAssigned:!1};if(i&&(o=e.find(n=>n.id===i),o||t.log("warn",401,{test:r,variant:i})),!o){let n=ue(e),c=Math.floor(Math.random()*100),l=0;o=e.find((g,y)=>{let x=n[y];if(c>l&&c<=l+x)return g;l+=x}),o&&t.setTestVariantId(r,(a=o.id)!=null?a:"Unknown")}return{result:o,variantAssigned:!i}};import{dequal as Kt}from"dequal/lite";var A,P,T,J,v,$,gt,le=class{constructor(t){d(this,$);D(this,"manifest");d(this,A,!1);d(this,P,{});d(this,T,void 0);d(this,J,{});d(this,v,ce());D(this,"events",{on:s(this,v).on,off:s(this,v).off});D(this,"storage");var i,a;let{manifest:e,...o}=t;m(this,T,{}),(i=t.plugins)==null||i.forEach(n=>{!n.logDrain||s(this,v).on("log",n.logDrain)}),this.manifest=new nt({manifest:e,evaluator:new j({CK:xt,QS:Et,QK:Tt,PVC:bt,EVT:wt,PV:kt})}),this.storage=new pt({...o,manifest:this.manifest,onServerTransitionScoresReceived:n=>{m(this,P,n),m(this,A,!0),s(this,v).emit("log",["debug",130,n])},onLogMessage:n=>s(this,v).emit("log",n)}),this.storage.events.on("scoresUpdated",S(this,$,gt).bind(this)),s(this,A)||S(this,$,gt).call(this,this.storage.data),this.storage.events.on("quirksUpdated",n=>{let c=this.manifest.computeSignals({scores:s(this,P),state:s(this,T),previousState:s(this,T),visitor:this.storage.data});this.storage.updateData(c),s(this,v).emit("quirksUpdated",n.quirks),s(this,v).emit("log",["info",4,n.quirks])}),s(this,v).emit("log",["debug",1]),(a=t.plugins)==null||a.forEach(n=>{!n.init||n.init(this)})}get scores(){return s(this,P)}async update(t){var o;let e=[];t.quirks&&e.push(...Object.entries(t.quirks).map(([i,a])=>({type:"setquirk",data:{key:i,value:a}}))),t.enrichments&&t.enrichments.forEach(i=>{let a=Y(i.cat,i.key);this.manifest.getDimensionByKey(a)?e.push({type:"modscore",data:{dimension:a,delta:i.str}}):s(this,v).emit("log",["warn",5,i])}),e.push(...this.manifest.computeSignals({state:t,previousState:s(this,T),visitor:this.storage.data,scores:s(this,P)})),s(this,v).emit("log",["debug",2,{...t,url:(o=t.url)==null?void 0:o.toString()}]),m(this,T,{...s(this,T),...t}),await this.storage.updateData(e),s(this,A)&&(S(this,$,gt).call(this,this.storage.data),m(this,A,!1),s(this,v).emit("log",["debug",131]))}getTestVariantId(t){var o;let e=this.manifest.getTest(t);return e?(o=e.wv)!=null?o:this.storage.data.tests[t]:(s(this,v).emit("log",["warn",401,t]),null)}setTestVariantId(t,e){this.storage.updateData([{type:"settest",data:{test:t,variant:e}}])}log(...t){s(this,v).emit("log",t)}test(t){var o,i;let e=ft({...t,context:this});return s(this,v).emit("testResult",{name:t.name,variantId:(i=(o=e.result)==null?void 0:o.id)!=null?i:void 0,variantAssigned:e.variantAssigned}),e}personalize(t){let e=jt({...t,context:this}),o=s(this,J)[t.name],i={name:t.name,variantIds:e.variations.map(a=>{var n;return(n=a.id)!=null?n:"Unknown"}),control:this.storage.data.controlGroup,changed:!0};return o&&Kt(i.variantIds,o)&&(i.changed=!1),s(this,v).emit("personalizationResult",i),s(this,J)[t.name]=i.variantIds,e}async forget(t){m(this,T,{}),await this.storage.delete(t)}};A=new WeakMap,P=new WeakMap,T=new WeakMap,J=new WeakMap,v=new WeakMap,$=new WeakSet,gt=function(t){var i;let e={...t.scores};for(let a in t.sessionScores)e[a]=((i=e[a])!=null?i:0)+t.sessionScores[a];e=this.manifest.computeAggregateDimensions(e),!Kt(e,s(this,P))&&(m(this,P,e),s(this,v).emit("scoresUpdated",e),s(this,v).emit("log",["info",3,e]))};u();u();function ot(r,t){if(r==="none")return!1;switch(t){case"debug":return r==="debug";case"info":return r==="info"||r==="debug";case"warn":return r==="warn"||r==="info"||r==="debug";case"error":return r==="debug"||"info";default:return!1}}function de(r){return([t,e,...o])=>{!ot(r,t)||console[t](`\u{1F94B} [${t}] Uniform event ID ${e}
|
2
|
+
`,...o.map(i=>JSON.stringify(i,null,2)))}}function Qr(r){return{logDrain:de(r)}}u();u();var Bt={1:()=>["context","constructed"],2:r=>["context","received data update",r],3:r=>["context","new score vector",r],4:r=>["context","updated quirks",r],5:r=>["context","ignored enrichment update for unknown enrichment category",r.cat],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"],130:r=>["storage","server to client transition score data was loaded; it will persist until the next update event occurs",r],131:()=>["storage","server to client transition data was discarded"],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"]};function pe(r){return([t,e,...o])=>{if(!ot(r,t))return;let i=Bt[e],a=`\u{1F94B} [${new Date().toLocaleTimeString()}][${t}]`;if(!i){console[t](`${a} unknown event ID ${e} - ensure all Uniform packages are the same version`,...o);return}let[n,c,...l]=i(...o);console[t](`${a}[${n}] ${c} (Event ID: ${e})
|
3
|
+
`,...l.map(g=>JSON.stringify(g,null,2)))}}function Yr(r){return{logDrain:pe(r)}}u();var fe=(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))(fe||{}),Wr="nesitag";u();var mt=typeof top!="undefined";function to(){return{logDrain:r=>{!mt||top==null||top.postMessage({type:"uniform:context:log",message:r},window.location.origin)},init:r=>{let t=[],e=[],o=()=>{!mt||top==null||top.postMessage({type:"uniform:context:data",data:{scores:r.scores,data:r.storage.data,manifest:r.manifest.data,personalizations:t,tests:e}},window.location.origin)},i=n=>{!n.changed||(t.push(n),o())},a=n=>{!n.variantAssigned||(e.push(n),o())};if(mt){window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__=r;try{top==null||top.addEventListener("message",async n=>{if(!n.data)return;let c=n.data;await ge(c,r)})}catch(n){console.warn("Unable to initialize Uniform Context DevTools because it is in a cross-domain iframe.",n)}top==null||top.postMessage({type:"uniform:context:hello",uiVersion:2},window.location.origin),o()}return r.events.on("personalizationResult",i),r.events.on("testResult",a),r.storage.events.on("*",o),()=>{r.storage.events.off("*",o),r.events.off("personalizationResult",i),r.events.off("testResult",a)}}}}async function ge(r,t){r.type==="uniform-in:context:update"&&r.newData&&await t.update(r.newData),r.type==="uniform-in:context:commands"&&r.commands&&Array.isArray(r.commands)&&await t.storage.updateData(r.commands),r.type==="uniform-in:context:forget"&&await t.forget(!1)}export{le as Context,Wt as CookieTransitionDataStore,Wr as EdgeNodeTagName,ee as EdgeTransitionDataStore,j as GroupCriteriaEvaluator,nt as ManifestInstance,Xt as SERVER_STATE_ID,fe as ScriptType,Q as TransitionDataStore,pt as VisitorDataStore,yt as computeAggregateDimensions,xt as cookieEvaluator,de as createConsoleLogDrain,pe as createDebugConsoleLogDrain,ar as createLinearDecay,kt as currentPageEvaluator,X as emptyVisitorData,Qr as enableConsoleLogDrain,to as enableContextDevTools,Yr as enableDebugConsoleLogDrain,Ft as evaluateVariantMatch,wt as eventEvaluator,Y as getEnrichmentVectorKey,b as isStringMatch,st as pageViewCountDimension,bt as pageViewCountEvaluator,jt as personalizeVariations,Et as queryStringEvaluator,Tt as quirkEvaluator,ft as testVariations};
|