@uniformdev/context 14.2.1-alpha.119 → 14.2.1-alpha.177
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 +4 -4
- package/dist/chunk-A5FZYSIL.mjs +76 -0
- package/dist/chunk-FJWWKKCL.mjs +307 -0
- package/dist/chunk-YGARAHYJ.mjs +11 -0
- package/dist/cli/cli.d.ts +2 -2
- package/dist/{contextTypes-7f24fc7c.d.ts → contextTypes-572b0d33.d.ts} +1 -1
- package/dist/index.d.ts +48 -22
- package/dist/index.esm.js +3 -3
- package/dist/index.js +3 -3
- package/dist/index.mjs +3 -3
- package/dist/types-5f88cc63.d.ts +772 -0
- package/dist/{types-d77228a6.d.ts → types-ef0eef65.d.ts} +137 -64
- package/dist/{v2-manifest.swagger-d0899723.d.ts → v2-manifest.swagger-ff2af13e.d.ts} +9 -0
- package/package.json +5 -3
package/dist/index.esm.js
CHANGED
@@ -1,3 +1,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 x,_,nt=class{constructor({manifest:t,evaluator:e=new j({})}){D(this,"data");d(this,x,void 0);d(this,_,void 0);var o,i,a;m(this,x,(o=t.project)!=null?o:{}),this.data=t,m(this,_,Object.entries((a=(i=s(this,x).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,x).pz)==null?void 0:t.control)!=null?e:0)}getTest(t){var e;return(e=s(this,x).test)==null?void 0:e[t]}computeSignals(t){let e=[];return s(this,_).forEach(o=>{o.computeSignal(t,e)}),e}computeAggregateDimensions(t){var e,o;return yt(t,(o=(e=s(this,x).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,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,e)]}};x=new WeakMap,_=new WeakMap;u();import{dequal as Jt}from"dequal/lite";var Vt=(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 xt(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(xt(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,V;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((V=r==null?void 0:r.toString())!=null?V:"");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:At(ct(o)),scores:At(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 At(r){return Object.entries(r).reduce((t,[e,o])=>(t[e]=Rt(o),t),{})}function te(r){return[lt(r.tests),lt(Ut(r.sessionScores)),lt(Ut(r.scores))].join(It)}function Ut(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 V=y/864e5,I=1-Math.min(o,V*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,A,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,A,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,A).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,A).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,A=new WeakMap,N=new WeakMap,h=new WeakMap,C=new WeakSet,M=function(){return s(this,A).get(tt)},k=new WeakSet,q=function(t,e=!1){var y,V,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),(V=(y=s(this,h)).decay)==null||V.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,A).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 V=n[y];if(c>l&&c<=l+V)return g;l+=V}),o&&t.setTestVariantId(r,(a=o.id)!=null?a:"Unknown")}return{result:o,variantAssigned:!i}};import{dequal as Kt}from"dequal/lite";var U,P,T,J,v,$,gt,le=class{constructor(t){d(this,$);D(this,"manifest");d(this,U,!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:Vt,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,U,!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,U)||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,U)&&(S(this,$,gt).call(this,this.storage.data),m(this,U,!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)}};U=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
|
-
`,...
|
3
|
-
`,...
|
1
|
+
import{a as tt}from"./chunk-CEKV2MHL.mjs";import{d as x,e as a,f,g as v,h as C,i as l}from"./chunk-AFJ7PNM5.mjs";l();l();l();function Pt(e,t){let r={...e};for(let i in t){let n=wt(e,i,t,new Set([i]));n!==0&&(r[i]=n)}return r}function wt(e,t,r,i){var s;let n=0;for(let o of r[t].inputs){let u=(s=e[o.dim])!=null?s:0;if(!u&&r[o.dim]){if(i.has(o.dim))continue;let c=new Set(i);c.add(o.dim),u=wt(e,o.dim,r,c)}if(u!==0)if(o.sign==="c"){n=0;break}else o.sign==="-"?n-=u:n+=u}return n}l();var Q,K,lt=class{constructor(t,r,i){f(this,Q,void 0);f(this,K,void 0);x(this,"signal");this.signal=t,v(this,Q,r),v(this,K,i)}computeSignal(t,r){if(t.scores[this.signal.id]>=this.signal.cap&&this.signal.dur!=="t")return;let n=a(this,Q).evaluate(t,this.signal.crit,r,this.signal,a(this,K)),s=this.signal.dur==="s"||this.signal.dur==="t"?"modscoreS":"modscore";if(!!n.changed){if(n.result)r.push({type:s,data:{dimension:this.signal.id,delta:this.signal.str}});else if(this.signal.dur==="t"){let o=t.visitor.sessionScores[this.signal.id];o&&r.push({type:s,data:{dimension:this.signal.id,delta:-o}})}}}};Q=new WeakMap,K=new WeakMap;var E,B,R,ct=class{constructor({manifest:t,evaluator:r=new H({}),onLogMessage:i=()=>{}}){x(this,"data");f(this,E,void 0);f(this,B,void 0);f(this,R,void 0);var n,s,o;v(this,E,(n=t.project)!=null?n:{}),this.data=t,v(this,B,Object.entries((o=(s=a(this,E).pz)==null?void 0:s.sig)!=null?o:[]).map(([u,d])=>new lt({...d,id:u},r,i))),v(this,R,i)}rollForControlGroup(){var t,r;return Math.random()<((r=(t=a(this,E).pz)==null?void 0:t.control)!=null?r:0)}getTest(t){var r;return(r=a(this,E).test)==null?void 0:r[t]}computeSignals(t){let r=[];a(this,R).call(this,["debug",200,"GROUP"]);try{a(this,B).forEach(i=>{a(this,R).call(this,["debug",201,"GROUP",i.signal]);try{i.computeSignal(t,r)}finally{a(this,R).call(this,["debug",201,"ENDGROUP"])}})}finally{a(this,R).call(this,["debug",200,"ENDGROUP"])}return r}computeAggregateDimensions(t){var r,i;return Pt(t,(i=(r=a(this,E).pz)==null?void 0:r.agg)!=null?i:{})}getDimensionByKey(t){var i,n,s,o;let r=t.indexOf(tt);return r<=0?(n=(i=a(this,E).pz)==null?void 0:i.sig)==null?void 0:n[t]:(o=(s=a(this,E).pz)==null?void 0:s.enr)==null?void 0:o[t.substring(0,r)]}};E=new WeakMap,B=new WeakMap,R=new WeakMap;l();import{dequal as re}from"dequal/lite";l();function T(e,t){var o,u,d,c,h,g;let r=(o=t==null?void 0:t.op)!=null?o:"=";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 i=(u=t.cs)!=null?u:!1,n=(i?e!=null?e:"":Ot(e)).toString(),s=(i?t.rhs:Ot(t.rhs)).toString();switch(r){case"=":return n===s;case"!=":return n!==s;case"~":return(d=n.includes(s))!=null?d:!1;case"!~":return!((c=n.includes(s))==null||c);case"//":return new RegExp(t.rhs.toString(),i?"":"i").test((h=e==null?void 0:e.toString())!=null?h:"");case"!//":return!new RegExp(t.rhs.toString(),i?"":"i").test((g=e==null?void 0:e.toString())!=null?g:"");default:throw new Error(`Unknown match type ${r}.`)}}function U(e,t){return`'${("cs"in t?t.cs:!1)?e:e==null?void 0:e.toString().toUpperCase()}' ${dt(t)}`}function dt(e){return"rhs"in e?`${e.op} '${e.cs?e.rhs:e.rhs.toString().toUpperCase()}'`:`${e.op==="*"?"exists":"does not exist"}`}function Ot(e){var t,r;return(r=(t=e==null?void 0:e.toString())==null?void 0:t.toUpperCase())!=null?r:""}var Ut=({update:e,criteria:t,onLogMessage:r})=>{var u,d;if(t.type!=="CK")return{result:!1,changed:!1};let i=!re(Rt(e.state.cookies),Rt((u=e.previousState)==null?void 0:u.cookies)),n=(d=e.state.cookies)==null?void 0:d[t.cookieName],o={result:T(n,t.match),changed:i};return r==null||r(["debug",203,{criteria:t,result:o,explanation:U(n,t.match)}]),o};function Rt(e){if(!e)return;if(!e.ufvd)return e;let{ufvd:t,...r}=e;return r}l();l();function $t(e,t){var i;if(typeof e=="undefined"||e===null)return!1;let r=Number(e);if(isNaN(r))return!1;switch((i=t==null?void 0:t.op)!=null?i:"="){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 At(e,t){return`${e} ${ie(t)}`}function ie(e){return`${e.op} ${e.rhs}`}l();function et(e,t){return`${e}${tt}${t}`}var ft=et("$pvc","v"),pt=({update:e,criteria:t,commands:r,onLogMessage:i})=>{var c,h;if(t.type!=="PVC")return{result:!1,changed:!1};let n=Boolean(e.state.url&&(!e.previousState||((c=e.state.url)==null?void 0:c.toString())!==((h=e.previousState.url)==null?void 0:h.toString()))),o=(e.visitor.sessionScores[ft]||0)+1,u={result:!1,changed:n},d=r.some(g=>g.type==="modscoreS"&&g.data.dimension===ft);return n&&!d&&r.push({type:"modscoreS",data:{dimension:ft,delta:1}}),$t(o,t.match)&&(u.result=!0),i==null||i(["debug",203,{criteria:t,result:u,explanation:At(o,t.match)}]),u};pt.alwaysExecute=!0;l();var Nt=({update:e,criteria:t,onLogMessage:r})=>{var u,d,c,h,g;if(t.type!=="QS")return{result:!1,changed:!1};let i=!e.previousState||((d=(u=e.state.url)==null?void 0:u.searchParams)==null?void 0:d.toString())!==((h=(c=e.previousState.url)==null?void 0:c.searchParams)==null?void 0:h.toString()),n=(g=e.state.url)==null?void 0:g.searchParams.get(t.queryName),o={result:T(n,t.match),changed:i};return r==null||r(["debug",203,{criteria:t,result:o,explanation:U(n,t.match)}]),o};l();var Gt=({update:e,criteria:t,signal:r,onLogMessage:i})=>{var h;if(t.type!=="QK")return{result:!1,changed:!1};if(typeof document=="undefined"&&r.dur==="t"&&e.scores[r.id]>0)return{result:!0,changed:!1};let n=e.visitor.quirks[t.key],s=(h=e.state.quirks)==null?void 0:h[t.key],o=s!=null?s:n,u=Boolean(s&&n!==s),c={result:T(o,t.match),changed:u};return i==null||i(["debug",203,{criteria:t,result:c,explanation:U(o,t.match)}]),c};l();var zt=({update:e,criteria:t,onLogMessage:r})=>{var s,o,u;if(t.type!=="EVT")return{result:!1,changed:!1};let i=(o=(s=e.state.events)==null?void 0:s.some(d=>T(d.event,t.event)))!=null?o:!1,n={result:i,changed:i};return r==null||r(["debug",203,{criteria:t,result:n,explanation:`'${(u=e.state.events)==null?void 0:u.join("', '")}' ${dt(t.event)}`}]),n};l();var It=({update:e,criteria:t,onLogMessage:r})=>{var u,d,c;if(t.type!=="PV")return{result:!1,changed:!1};let i=(u=e.state.url)==null?void 0:u.pathname,n=!e.previousState||(i==null?void 0:i.toString())!==((c=(d=e.previousState.url)==null?void 0:d.pathname)==null?void 0:c.toString()),o={result:T(i,t.path),changed:n};return r==null||r(["debug",203,{criteria:t,result:o,explanation:U(i,t.path)}]),o};l();var J,H=class{constructor(t){f(this,J,void 0);v(this,J,t)}evaluate(t,r,i,n,s){let o=r.clauses.length>1;o&&(s==null||s(["debug",202,"GROUP",r]));try{let u=!(r.op==="&"||!r.op),d=null,c=!1;for(let g of r.clauses){let D;if(g.type==="G")D=this.evaluate(t,g,i,n,s);else{let b=a(this,J)[g.type];if(d&&!b.alwaysExecute)continue;if(!b)throw new Error(`${g.type} signal criteria not registered`);D=b({update:t,criteria:g,commands:i,signal:n,onLogMessage:s})}D.changed&&(c=!0),!d&&D.result===u&&(d={result:u,changed:c})}let h=d!=null?d:{result:!u,changed:c};return o&&(s==null||s(["debug",204,h])),h}finally{o&&(s==null||s(["debug",202,"ENDGROUP"]))}}};J=new WeakMap;l();var rt=()=>({quirks:{},scores:{},sessionScores:{},tests:{},consent:!1,controlGroup:!1});l();l();import ne from"mitt";import{dequal as oe}from"dequal/lite";var se="__UNIFORM_DATA__",$,I,Y=class{constructor({initialData:t}){f(this,$,void 0);f(this,I,ne());x(this,"events",{on:a(this,I).on,off:a(this,I).off});t&&v(this,$,t)}get data(){return a(this,$)}updateData(t,r){return v(this,$,r),this.handleUpdateData(t,r)}async delete(t){v(this,$,void 0),await this.handleDelete(t)}signalAsyncDataUpdate(t){oe(this.data,t)||(v(this,$,t),a(this,I).emit("dataUpdatedAsync",t))}getClientTransitionState(){if(typeof document=="undefined")return;let t=document.getElementById(se);return t!=null&&t.textContent?JSON.parse(t.textContent):void 0}};$=new WeakMap,I=new WeakMap;l();var mt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",qt=mt.split(""),_t=new Array(123);for(let e=0;e<mt.length;e++)_t[mt.charCodeAt(e)]=e;var ht=e=>{if(e<0)return`-${ht(-e)}`;let t=e>>>0,r=e/4294967296>>>0,i="";for(;r>0;)i=qt[63&t]+i,t>>>=6,t|=(63&r)<<26,r>>>=6;let n="";do n=qt[63&t]+n,t>>>=6;while(t>0);return n+i},jt=e=>{let t=0,r=e.charAt(0)==="-"?1:0;for(let i=r;i<e.length;i++)t=t*64+_t[e.charCodeAt(i)];return r?-t:t};import gt from"js-cookie";var vt=typeof document=="undefined",ae="ufvd",N,W,ue=class extends Y{constructor({serverCookieValue:t,cookieName:r=ae,cookieAttributes:i={sameSite:"lax"}}){super({initialData:vt?le(t):void 0});f(this,N,void 0);f(this,W,void 0);v(this,N,r),v(this,W,i)}handleDelete(){return vt||gt.remove(a(this,N)),Promise.resolve()}async handleUpdateData(t,r){vt||(r.consent?gt.set(a(this,N),ce(r),a(this,W)):gt.remove(a(this,N)))}};N=new WeakMap,W=new WeakMap;var Kt="~",Bt="!",Ht="-";function le(e){if(!e)return;let t=e.split(Kt);if(t.length>3)return;let[r,i,n]=t;return{consent:!0,sessionScores:Ft(St(i)),scores:Ft(St(n)),tests:St(r)}}function St(e){return e.split(Bt).map(r=>r.split(Ht)).reduce((r,i)=>(i.length!==2||(r[i[0]]=i[1]),r),{})}function Ft(e){return Object.entries(e).reduce((t,[r,i])=>(t[r]=jt(i),t),{})}function ce(e){return[yt(e.tests),yt(Qt(e.sessionScores)),yt(Qt(e.scores))].join(Kt)}function Qt(e){return Object.entries(e).reduce((t,[r,i])=>(t[r]=ht(i),t),{})}function yt(e){return Object.entries(e).map(t=>t.join(Ht)).join(Bt)}l();var it,fe,de=class extends Y{constructor({serverCookieValue:t,visitorIdCookieName:r="ufvi",...i}){super(i);f(this,it);i.initialData||C(this,it,fe).call(this).catch(n=>{console.error(n)})}handleDelete(t){throw new Error("Method not implemented.")}async handleUpdateData(t){let r=await new Promise(i=>{setTimeout(()=>{i(void 0)},2e3)});r&&this.signalAsyncDataUpdate(r)}};it=new WeakSet,fe=async function(){let t=await new Promise(r=>{setTimeout(()=>{r(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};l();function Vr(e){let{gracePeriod:t=864e5,decayRate:r=1/30,decayCap:i=.95}=e!=null?e:{};return function({now:s,lastUpd:o,scores:u,sessionScores:d,onLogMessage:c}){if(typeof o!="number")return!1;let g=s-o-t;if(g<=0)return!1;let D=g/864e5,b=1-Math.min(i,D*r);return b<=0?!1:(Jt(u,b),Jt(d,b),c==null||c(["info",140,`linear decay factor ${b.toPrecision(6)}`]),!0)}}function Jt(e,t){for(let r in e)r.startsWith("$")||(e[r]*=t)}l();import he from"mitt";import{dequal as nt}from"dequal/lite";l();var Dt=class{constructor(){x(this,"inMemoryFallback",{});x(this,"hasLocalStorageObject",typeof localStorage!="undefined")}get(t){let r=this.inMemoryFallback[t];if(!this.hasLocalStorageObject||r)return r;try{let i=localStorage.getItem(t);return i?JSON.parse(i):void 0}catch(i){return r}}set(t,r,i){if(this.inMemoryFallback[t]=r,!(!this.hasLocalStorageObject||!i))try{localStorage.setItem(t,JSON.stringify(r))}catch(n){console.warn(n)}}delete(t,r){r||delete this.inMemoryFallback[t];try{localStorage.removeItem(t)}catch(i){}}};l();import pe from"rfdc";var me=pe();function Yt(e,t,r){let i=t?me(t):rt();return e.forEach(n=>{var s,o;switch(n.type){case"consent":i.consent=n.data;break;case"setquirk":i.quirks[n.data.key]=n.data.value;break;case"settest":i.tests[n.data.test]=n.data.variant;break;case"modscore":if(r)break;let u=Number(n.data.delta);if(isNaN(u))throw new Error("Non-number delta received");let d=(s=i.scores[n.data.dimension])!=null?s:0;i.scores[n.data.dimension]=d+u;break;case"modscoreS":if(r)break;let c=Number(n.data.delta);if(isNaN(c))throw new Error("Non-number delta received");let h=(o=i.sessionScores[n.data.dimension])!=null?o:0;i.sessionScores[n.data.dimension]=h+c;break;case"identify":break;case"setcontrol":i.controlGroup=n.data;break;default:throw new Error("Unknown command")}}),i}var ot="ufvisitor",k,G,_,y,V,A,w,q,st,ge,at,ve,X,Wt,Z,Xt,Ct=class{constructor(t){f(this,V);f(this,w);f(this,st);f(this,at);f(this,X);f(this,Z);f(this,k,he());f(this,G,new Dt);f(this,_,void 0);f(this,y,void 0);x(this,"events",{on:a(this,k).on,off:a(this,k).off});if(v(this,y,t),a(this,V,A)||C(this,w,q).call(this,C(this,Z,Xt).call(this),!0),t.transitionStore){let r=t.transitionStore.getClientTransitionState();if(r){let n=[];r.quirks&&n.push(...Object.entries(r.quirks).map(([s,o])=>({type:"setquirk",data:{key:s,value:o}}))),r.tests&&n.push(...Object.entries(r.tests).map(([s,o])=>({type:"settest",data:{test:s,variant:o}}))),this.updateData(n),r.ssv&&t.onServerTransitionScoresReceived&&t.onServerTransitionScoresReceived(r.ssv)}t.transitionStore.events.on("dataUpdatedAsync",n=>{C(this,w,q).call(this,{...a(this,V,A).visitorData,...n})});let i=t.transitionStore.data;i&&C(this,w,q).call(this,{...a(this,V,A).visitorData,...i},!0)}}get data(){var r,i;let t=a(this,V,A);if(C(this,at,ve).call(this,t)){let{sessionScores:n,...s}=t.visitorData;return C(this,w,q).call(this,{...s,sessionScores:{}}),(i=(r=a(this,y)).onLogMessage)==null||i.call(r,["info",120]),a(this,V,A).visitorData}return t.visitorData}get decayEnabled(){return!!a(this,y).decay}async updateData(t){var i,n,s,o;if(t.length===0)return;(n=(i=a(this,y)).onLogMessage)==null||n.call(i,["debug",101,t]);let r=Yt(t,this.data,(s=a(this,V,A))==null?void 0:s.visitorData.controlGroup);t.some(u=>u.type==="consent"&&!u.data)&&a(this,G).delete(ot,!0),C(this,w,q).call(this,r),await((o=a(this,y).transitionStore)==null?void 0:o.updateData(t,a(this,V,A).visitorData))}async delete(t){var r,i,n,s,o;(i=(r=a(this,y)).onLogMessage)==null||i.call(r,["info",103,"GROUP",t]);try{a(this,G).delete(ot,!1),await((n=a(this,y).transitionStore)==null?void 0:n.delete(t)),C(this,w,q).call(this,C(this,Z,Xt).call(this))}finally{(o=(s=a(this,y)).onLogMessage)==null||o.call(s,["info",103,"ENDGROUP"])}}};k=new WeakMap,G=new WeakMap,_=new WeakMap,y=new WeakMap,V=new WeakSet,A=function(){return a(this,G).get(ot)},w=new WeakSet,q=function(t,r=!1){var h,g,D,b,L,Et,Tt,kt;let i=a(this,V,A),n=Date.now();t.controlGroup?(t.scores={},t.sessionScores={}):(C(this,X,Wt).call(this,t.scores),C(this,X,Wt).call(this,t.sessionScores),(g=(h=a(this,y)).decay)==null||g.call(h,{now:n,lastUpd:i==null?void 0:i.updated,scores:t.scores,sessionScores:t.sessionScores,onLogMessage:a(this,y).onLogMessage}));let s=!nt(i==null?void 0:i.visitorData.scores,t.scores),o=!nt(i==null?void 0:i.visitorData.sessionScores,t.sessionScores),u=!nt(i==null?void 0:i.visitorData.quirks,t.quirks),d=!nt(i==null?void 0:i.visitorData.tests,t.tests),c={updated:n,visitorData:t};C(this,st,ge).call(this),a(this,G).set(ot,c,!!t.consent),(b=(D=a(this,y)).onLogMessage)==null||b.call(D,["debug",102,t]),r||((s||o)&&a(this,k).emit("scoresUpdated",t),u&&a(this,k).emit("quirksUpdated",t),d&&a(this,k).emit("testsUpdated",t),((L=i==null?void 0:i.visitorData)==null?void 0:L.consent)!==t.consent&&a(this,k).emit("consentUpdated",t),((Et=i==null?void 0:i.visitorData)==null?void 0:Et.controlGroup)!==t.controlGroup&&(a(this,k).emit("controlGroupUpdated",t),(kt=(Tt=a(this,y)).onLogMessage)==null||kt.call(Tt,["debug",104,t.controlGroup])))},st=new WeakSet,ge=function(){typeof document=="undefined"||!a(this,y).visitLifespan||(a(this,_)&&window.clearTimeout(a(this,_)),v(this,_,window.setTimeout(()=>{this.data},a(this,y).visitLifespan+50)))},at=new WeakSet,ve=function(t){let r=a(this,y).visitLifespan;return r?t.updated+r<Date.now():!1},X=new WeakSet,Wt=function(t){var r,i;if(!!a(this,y).manifest)for(let n in t){let s=t[n],o=a(this,y).manifest.getDimensionByKey(n);!o||s>o.cap&&((i=(r=a(this,y)).onLogMessage)==null||i.call(r,["debug",110,{dim:n,score:s,cap:o.cap}]),t[n]=o.cap)}},Z=new WeakSet,Xt=function(){var t,r,i;return{...rt(),consent:(t=a(this,y).defaultConsent)!=null?t:!1,controlGroup:(i=(r=a(this,y).manifest)==null?void 0:r.rollForControlGroup())!=null?i:!1}};l();import ye from"mitt";l();l();function Zt({name:e,context:t,variations:r,take:i=1,onLogMessage:n}){var s,o,u;n==null||n(["info",300,"GROUP",{name:e,take:i}]);try{let d=(s=t.storage.data.controlGroup)!=null?s:!1,c=[],h=!1,g=t.scores;for(let D of r){if(c.length===i)break;if(!((o=D.pz)!=null&&o.crit.length)){n==null||n(["info",301,"GROUP",{id:D.id,op:(u=D.pz)==null?void 0:u.op}]),n==null||n(["info",302,{matched:!0,description:"default variation"}]),n==null||n(["info",303,!0]),n==null||n(["info",301,"ENDGROUP"]),c.push(D);continue}d||Mt(D.id,D.pz,g,n)&&(h=!0,c.push(D))}return{personalized:h,variations:c}}finally{n==null||n(["info",300,"ENDGROUP"])}}l();function Mt(e,t,r,i){i==null||i(["info",301,"GROUP",{id:e,op:t==null?void 0:t.op}]);let n;try{t!=null&&t.crit?!t.op||t.op==="&"?n=t.crit.every(s=>Lt(s,r,i)):n=t.crit.some(s=>Lt(s,r,i)):(i==null||i(["info",302,{matched:!0,description:"default variation"}]),n=!0),i==null||i(["info",303,n])}finally{i==null||i(["info",301,"ENDGROUP"])}return n}function Lt(e,t,r){var u,d;let{op:i,l:n}=e,s=(u=t[n])!=null?u:0;if(i==="+"){let c=Math.max(...Object.values(t))===s&&s>0;return r==null||r(["info",302,{matched:c,description:`${e.l} has the highest score`}]),c}else if(i==="-"){let c=Math.min(...Object.values(t))===s&&s>0;return r==null||r(["info",302,{matched:c,description:`${e.l} has the lowest non-zero score`}]),c}let o=e.rDim?t[e.rDim]:e.r;if(o===void 0)return r==null||r(["info",302,{matched:!1,description:`${(d=e.rDim)!=null?d:e.r} has no score value`}]),!1;if(i===">"){let c=s>o;return j(r,c,e,s,o),c}else if(i===">="){let c=s>=o;return j(r,c,e,s,o),c}else if(i==="<"){let c=s<o;return j(r,c,e,s,o),c}else if(i==="<="){let c=s<=o;return j(r,c,e,s,o),c}else if(i==="="){let c=s===o;return j(r,c,e,s,o),c}else if(i==="!="){let c=s!==o;return j(r,c,e,s,o),c}else throw new Error(`Unknown op: ${i}`)}function j(e,t,r,i,n){e==null||e(["info",302,{matched:t,description:`${r.l}[${i}] ${r.op} ${r.rDim?`${r.rDim}[${n}]`:r.r}`}])}l();var Se=e=>{let{values:t,total:r,missingDistribution:i}=e.reduce((n,s)=>(s.testDistribution?n.total+=s.testDistribution:++n.missingDistribution,n.values.push(s.testDistribution),n),{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)/i;t.forEach((o,u)=>{typeof o=="undefined"&&(t[u]=s)})}return t},xt=({name:e,context:t,variations:r,onLogMessage:i})=>{i==null||i(["info",400,"GROUP",e]);try{let n,s=t.getTestVariantId(e);if(s===null)return i==null||i(["error",401,e]),{result:void 0,variantAssigned:!1};if(s&&(n=r.find(o=>o.id===s),n||i==null||i(["warn",402,{missingVariant:s,variants:r.map(o=>o.id)}])),!n){let o=Se(r),u=Math.floor(Math.random()*100),d=0;n=r.find((c,h)=>{let g=o[h];if(u>d&&u<=d+g)return c;d+=g}),n&&(i==null||i(["info",403,n.id]),t.setTestVariantId(e,n.id))}return n&&(i==null||i(["info",404,n.id])),{result:n,variantAssigned:!s}}finally{i==null||i(["info",400,"ENDGROUP"])}};import{dequal as te}from"dequal/lite";var z,O,P,M,S,F,bt,De=class{constructor(t){f(this,F);x(this,"manifest");f(this,z,!1);f(this,O,{});f(this,P,void 0);f(this,M,{});f(this,S,ye());x(this,"events",{on:a(this,S).on,off:a(this,S).off});x(this,"storage");var n,s;let{manifest:r,...i}=t;v(this,P,{}),(n=t.plugins)==null||n.forEach(o=>{!o.logDrain||a(this,S).on("log",o.logDrain)}),a(this,S).emit("log",["info",1,"GROUP"]);try{this.manifest=new ct({onLogMessage:o=>a(this,S).emit("log",o),manifest:r,evaluator:new H({CK:Ut,QS:Nt,QK:Gt,PVC:pt,EVT:zt,PV:It})}),this.storage=new Ct({...i,manifest:this.manifest,onServerTransitionScoresReceived:o=>{v(this,O,o),v(this,z,!0),a(this,S).emit("log",["debug",130,o])},onLogMessage:o=>a(this,S).emit("log",o)}),this.storage.events.on("scoresUpdated",C(this,F,bt).bind(this)),a(this,z)||C(this,F,bt).call(this,this.storage.data),this.storage.events.on("quirksUpdated",o=>{let u=this.manifest.computeSignals({scores:a(this,O),state:a(this,P),previousState:a(this,P),visitor:this.storage.data});this.storage.updateData(u),a(this,S).emit("quirksUpdated",o.quirks),a(this,S).emit("log",["info",4,o.quirks])}),(s=t.plugins)==null||s.forEach(o=>{!o.init||o.init(this)})}finally{a(this,S).emit("log",["info",1,"ENDGROUP"])}}get scores(){return a(this,O)}async update(t){var i;let r=[];try{a(this,S).emit("log",["info",2,"GROUP",{...t,url:(i=t.url)==null?void 0:i.toString()}]),t.quirks&&r.push(...Object.entries(t.quirks).map(([n,s])=>({type:"setquirk",data:{key:n,value:s}}))),t.enrichments&&t.enrichments.forEach(n=>{let s=et(n.cat,n.key);this.manifest.getDimensionByKey(s)?r.push({type:"modscore",data:{dimension:s,delta:n.str}}):a(this,S).emit("log",["warn",5,n])}),r.push(...this.manifest.computeSignals({state:t,previousState:a(this,P),visitor:this.storage.data,scores:a(this,O)})),v(this,P,{...a(this,P),...t}),await this.storage.updateData(r),a(this,z)&&(C(this,F,bt).call(this,this.storage.data),v(this,z,!1),a(this,S).emit("log",["debug",131]))}finally{a(this,S).emit("log",["info",2,"ENDGROUP"])}}getTestVariantId(t){var i;let r=this.manifest.getTest(t);return r?(i=r.wv)!=null?i:this.storage.data.tests[t]:(a(this,S).emit("log",["warn",401,t]),null)}setTestVariantId(t,r){this.storage.updateData([{type:"settest",data:{test:t,variant:r}}])}log(...t){a(this,S).emit("log",t)}test(t){var i,n;let r=xt({...t,context:this,onLogMessage:s=>a(this,S).emit("log",s)});return a(this,S).emit("testResult",{name:t.name,variantId:(n=(i=r.result)==null?void 0:i.id)!=null?n:void 0,variantAssigned:r.variantAssigned}),r}personalize(t){let r=Zt({...t,context:this,onLogMessage:s=>a(this,S).emit("log",s)}),i=a(this,M)[t.name],n={name:t.name,variantIds:r.variations.map(s=>{var o;return(o=s.id)!=null?o:"Unknown"}),control:this.storage.data.controlGroup,changed:!0};return i&&te(n.variantIds,i)&&(n.changed=!1),a(this,S).emit("personalizationResult",n),a(this,M)[t.name]=n.variantIds,r}async forget(t){v(this,P,{}),await this.storage.delete(t)}};z=new WeakMap,O=new WeakMap,P=new WeakMap,M=new WeakMap,S=new WeakMap,F=new WeakSet,bt=function(t){var n;let r={...t.scores};for(let s in t.sessionScores)r[s]=((n=r[s])!=null?n:0)+t.sessionScores[s];r=this.manifest.computeAggregateDimensions(r),!te(r,a(this,O))&&(v(this,O,r),a(this,S).emit("scoresUpdated",r),a(this,S).emit("log",["info",3,r]))};l();import Ce from"rfdc";l();function ut(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}}var xe=Ce();function be(e){return([t,...r])=>{if(!ut(e,t))return;let[i,...n]=r;console[t](`\u{1F94B} [${t}] Uniform event ID ${i}
|
2
|
+
`,...n.map(xe))}}function li(e){return{logDrain:be(e)}}l();l();var ee={1:()=>["context","initializing Uniform Context"],2:e=>["context","received 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",`deleting visitor data ${e?"from all devices":"from this device"}`],104:e=>["context",e?"Visitor assigned to personalization control group":"Visitor assigned to personalization experiment group"],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"],140:e=>["storage",`score decay was applied: ${e}`],200:()=>["signals","evaluating signals"],201:e=>["signals",`evaluating signal ${e.id} (${e.dur})`],202:e=>["signals",e.op==="|"?"OR":"AND"],203:({criteria:e,result:t,explanation:r})=>["signals",`${e.type}: ${r} is ${t.result} [${t.changed?"CHANGED":"unchanged"}]`],204:e=>["signals",`group result: ${e.result} [${e.changed?"CHANGED":"unchanged"}]`],300:e=>["personalization",`executing personalization '${e.name}'`],301:({id:e,op:t})=>["personalization",`testing variation ${e} (${t==="|"?"OR":"AND"})`],302:({matched:e,description:t})=>["personalization",`${t} is ${e}`],303:e=>["personalization",e?"selected variation":"did not select variation"],400:e=>["testing",`executing A/B test '${e}'`],401:e=>["testing",`${e} is not registered in the manifest; it will not be run.`],402:({missingVariant:e,variants:t})=>["testing",`test variation '${e}' previously assigned to the visitor for this test no longer exists as a variant. It will be removed. This may indicate changing test variations after publishing a test, which will make results invalid. Known variants: ${t.join(", ")}`],403:e=>["testing",`assigned new test variant '${e}'`],404:e=>["testing",`displaying variation '${e}'`],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"]};import Ve from"rfdc";var Ee=Ve();function Te(e,t){let r=typeof document=="undefined",{enableOnServer:i=!1}=t!=null?t:{};return([n,...s])=>{if(!ut(e,n)||r&&!i)return;let[o,...u]=s,d=console[n];if(u[0]==="GROUP"&&(u.shift(),d=console.groupCollapsed),u[0]==="ENDGROUP"){console.groupEnd();return}let c=ee[o],h="";switch(n){case"debug":h="\u{1F41E}";break;case"info":h="\u{1F4AC}";break;case"warn":h="\u26A0\uFE0F";break;case"error":h="\u{1F4A5}";break}let g=h;if(!c){d(`${g} unknown event ID ${o}. Log messages data may be older than Uniform Context package.`,...u);return}let[D,b,...L]=c(...u);d(`${g}[${D}] ${b}
|
3
|
+
`,...L.map(Ee))}}function hi(e,t){return{logDrain:Te(e,t)}}l();var ke=(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))(ke||{}),vi="nesitag";l();var Vt=typeof top!="undefined";function yi(){return{logDrain:e=>{!Vt||top==null||top.postMessage({type:"uniform:context:log",message:e},window.location.origin)},init:e=>{let t=[],r=[],i=()=>{!Vt||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)},n=o=>{!o.changed||(t.push(o),i())},s=o=>{!o.variantAssigned||(r.push(o),i())};if(Vt){window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__=e;try{top==null||top.addEventListener("message",async o=>{if(!o.data)return;let u=o.data;await Pe(u,e)})}catch(o){console.warn("Unable to initialize Uniform Context DevTools because it is in a cross-domain iframe.",o)}top==null||top.postMessage({type:"uniform:context:hello",uiVersion:2},window.location.origin),i()}return e.events.on("personalizationResult",n),e.events.on("testResult",s),e.storage.events.on("*",i),()=>{e.storage.events.off("*",i),e.events.off("personalizationResult",n),e.events.off("testResult",s)}}}}async function Pe(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)}export{De as Context,ue as CookieTransitionDataStore,vi as EdgeNodeTagName,de as EdgeTransitionDataStore,H as GroupCriteriaEvaluator,ct as ManifestInstance,se as SERVER_STATE_ID,ke as ScriptType,Y as TransitionDataStore,ae as UNIFORM_DEFAULT_COOKIE_NAME,Ct as VisitorDataStore,Pt as computeAggregateDimensions,Ut as cookieEvaluator,be as createConsoleLogDrain,Te as createDebugConsoleLogDrain,Vr as createLinearDecay,It as currentPageEvaluator,rt as emptyVisitorData,li as enableConsoleLogDrain,yi as enableContextDevTools,hi as enableDebugConsoleLogDrain,Mt as evaluateVariantMatch,zt as eventEvaluator,U as explainStringMatch,dt as explainStringMatchCriteria,et as getEnrichmentVectorKey,T as isStringMatch,ft as pageViewCountDimension,pt as pageViewCountEvaluator,Zt as personalizeVariations,Nt as queryStringEvaluator,Gt as quirkEvaluator,xt as testVariations};
|
package/dist/index.js
CHANGED
@@ -1,3 +1,3 @@
|
|
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
|
-
`,...
|
3
|
-
`,...
|
1
|
+
var Ce=Object.create;var K=Object.defineProperty;var xe=Object.getOwnPropertyDescriptor;var be=Object.getOwnPropertyNames;var Ve=Object.getPrototypeOf,Ee=Object.prototype.hasOwnProperty;var Te=(e,t,r)=>t in e?K(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var It=e=>K(e,"__esModule",{value:!0});var ke=(e,t)=>{for(var r in t)K(e,r,{get:t[r],enumerable:!0})},qt=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of be(t))!Ee.call(e,n)&&(r||n!=="default")&&K(e,n,{get:()=>t[n],enumerable:!(i=xe(t,n))||i.enumerable});return e},$=(e,t)=>qt(It(K(e!=null?Ce(Ve(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=qt(It({}),t,1),e&&e.set(t,r),r))(typeof WeakMap!="undefined"?new WeakMap:0);var D=(e,t,r)=>(Te(e,typeof t!="symbol"?t+"":t,r),r),gt=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)};var a=(e,t,r)=>(gt(e,t,"read from private field"),r?r.call(e):t.get(e)),d=(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)},h=(e,t,r,i)=>(gt(e,t,"write to private field"),i?i.call(e,r):t.set(e,r),r);var y=(e,t,r)=>(gt(e,t,"access private method"),r);var Be={};ke(Be,{Context:()=>me,CookieTransitionDataStore:()=>ee,EdgeNodeTagName:()=>Fe,EdgeTransitionDataStore:()=>oe,GroupCriteriaEvaluator:()=>z,ManifestInstance:()=>nt,SERVER_STATE_ID:()=>Yt,ScriptType:()=>De,TransitionDataStore:()=>q,UNIFORM_DEFAULT_COOKIE_NAME:()=>te,VisitorDataStore:()=>pt,computeAggregateDimensions:()=>vt,cookieEvaluator:()=>yt,createConsoleLogDrain:()=>ge,createDebugConsoleLogDrain:()=>ye,createLinearDecay:()=>$e,currentPageEvaluator:()=>bt,emptyVisitorData:()=>X,enableConsoleLogDrain:()=>qe,enableContextDevTools:()=>Qe,enableDebugConsoleLogDrain:()=>je,evaluateVariantMatch:()=>Ot,eventEvaluator:()=>xt,explainStringMatch:()=>k,explainStringMatchCriteria:()=>ot,getEnrichmentVectorKey:()=>Y,isStringMatch:()=>x,pageViewCountDimension:()=>st,pageViewCountEvaluator:()=>at,personalizeVariations:()=>Rt,queryStringEvaluator:()=>Dt,quirkEvaluator:()=>Ct,testVariations:()=>mt});function vt(e,t){let r={...e};for(let i in t){let n=_t(e,i,t,new Set([i]));n!==0&&(r[i]=n)}return r}function _t(e,t,r,i){var s;let n=0;for(let o of r[t].inputs){let u=(s=e[o.dim])!=null?s:0;if(!u&&r[o.dim]){if(i.has(o.dim))continue;let l=new Set(i);l.add(o.dim),u=_t(e,o.dim,r,l)}if(u!==0)if(o.sign==="c"){n=0;break}else o.sign==="-"?n-=u:n+=u}return n}var it="_";var B,H,St=class{constructor(t,r,i){d(this,B,void 0);d(this,H,void 0);D(this,"signal");this.signal=t,h(this,B,r),h(this,H,i)}computeSignal(t,r){if(t.scores[this.signal.id]>=this.signal.cap&&this.signal.dur!=="t")return;let n=a(this,B).evaluate(t,this.signal.crit,r,this.signal,a(this,H)),s=this.signal.dur==="s"||this.signal.dur==="t"?"modscoreS":"modscore";if(!!n.changed){if(n.result)r.push({type:s,data:{dimension:this.signal.id,delta:this.signal.str}});else if(this.signal.dur==="t"){let o=t.visitor.sessionScores[this.signal.id];o&&r.push({type:s,data:{dimension:this.signal.id,delta:-o}})}}}};B=new WeakMap,H=new WeakMap;var V,J,R,nt=class{constructor({manifest:t,evaluator:r=new z({}),onLogMessage:i=()=>{}}){D(this,"data");d(this,V,void 0);d(this,J,void 0);d(this,R,void 0);var n,s,o;h(this,V,(n=t.project)!=null?n:{}),this.data=t,h(this,J,Object.entries((o=(s=a(this,V).pz)==null?void 0:s.sig)!=null?o:[]).map(([u,c])=>new St({...c,id:u},r,i))),h(this,R,i)}rollForControlGroup(){var t,r;return Math.random()<((r=(t=a(this,V).pz)==null?void 0:t.control)!=null?r:0)}getTest(t){var r;return(r=a(this,V).test)==null?void 0:r[t]}computeSignals(t){let r=[];a(this,R).call(this,["debug",200,"GROUP"]);try{a(this,J).forEach(i=>{a(this,R).call(this,["debug",201,"GROUP",i.signal]);try{i.computeSignal(t,r)}finally{a(this,R).call(this,["debug",201,"ENDGROUP"])}})}finally{a(this,R).call(this,["debug",200,"ENDGROUP"])}return r}computeAggregateDimensions(t){var r,i;return vt(t,(i=(r=a(this,V).pz)==null?void 0:r.agg)!=null?i:{})}getDimensionByKey(t){var i,n,s,o;let r=t.indexOf(it);return r<=0?(n=(i=a(this,V).pz)==null?void 0:i.sig)==null?void 0:n[t]:(o=(s=a(this,V).pz)==null?void 0:s.enr)==null?void 0:o[t.substring(0,r)]}};V=new WeakMap,J=new WeakMap,R=new WeakMap;var Qt=require("dequal/lite");function x(e,t){var o,u,c,l,p,m;let r=(o=t==null?void 0:t.op)!=null?o:"=";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 i=(u=t.cs)!=null?u:!1,n=(i?e!=null?e:"":jt(e)).toString(),s=(i?t.rhs:jt(t.rhs)).toString();switch(r){case"=":return n===s;case"!=":return n!==s;case"~":return(c=n.includes(s))!=null?c:!1;case"!~":return!((l=n.includes(s))==null||l);case"//":return new RegExp(t.rhs.toString(),i?"":"i").test((p=e==null?void 0:e.toString())!=null?p:"");case"!//":return!new RegExp(t.rhs.toString(),i?"":"i").test((m=e==null?void 0:e.toString())!=null?m:"");default:throw new Error(`Unknown match type ${r}.`)}}function k(e,t){return`'${("cs"in t?t.cs:!1)?e:e==null?void 0:e.toString().toUpperCase()}' ${ot(t)}`}function ot(e){return"rhs"in e?`${e.op} '${e.cs?e.rhs:e.rhs.toString().toUpperCase()}'`:`${e.op==="*"?"exists":"does not exist"}`}function jt(e){var t,r;return(r=(t=e==null?void 0:e.toString())==null?void 0:t.toUpperCase())!=null?r:""}var yt=({update:e,criteria:t,onLogMessage:r})=>{var u,c;if(t.type!=="CK")return{result:!1,changed:!1};let i=!(0,Qt.dequal)(Ft(e.state.cookies),Ft((u=e.previousState)==null?void 0:u.cookies)),n=(c=e.state.cookies)==null?void 0:c[t.cookieName],o={result:x(n,t.match),changed:i};return r==null||r(["debug",203,{criteria:t,result:o,explanation:k(n,t.match)}]),o};function Ft(e){if(!e)return;if(!e.ufvd)return e;let{ufvd:t,...r}=e;return r}function Kt(e,t){var i;if(typeof e=="undefined"||e===null)return!1;let r=Number(e);if(isNaN(r))return!1;switch((i=t==null?void 0:t.op)!=null?i:"="){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 Bt(e,t){return`${e} ${we(t)}`}function we(e){return`${e.op} ${e.rhs}`}function Y(e,t){return`${e}${it}${t}`}var st=Y("$pvc","v"),at=({update:e,criteria:t,commands:r,onLogMessage:i})=>{var l,p;if(t.type!=="PVC")return{result:!1,changed:!1};let n=Boolean(e.state.url&&(!e.previousState||((l=e.state.url)==null?void 0:l.toString())!==((p=e.previousState.url)==null?void 0:p.toString()))),o=(e.visitor.sessionScores[st]||0)+1,u={result:!1,changed:n},c=r.some(m=>m.type==="modscoreS"&&m.data.dimension===st);return n&&!c&&r.push({type:"modscoreS",data:{dimension:st,delta:1}}),Kt(o,t.match)&&(u.result=!0),i==null||i(["debug",203,{criteria:t,result:u,explanation:Bt(o,t.match)}]),u};at.alwaysExecute=!0;var Dt=({update:e,criteria:t,onLogMessage:r})=>{var u,c,l,p,m;if(t.type!=="QS")return{result:!1,changed:!1};let i=!e.previousState||((c=(u=e.state.url)==null?void 0:u.searchParams)==null?void 0:c.toString())!==((p=(l=e.previousState.url)==null?void 0:l.searchParams)==null?void 0:p.toString()),n=(m=e.state.url)==null?void 0:m.searchParams.get(t.queryName),o={result:x(n,t.match),changed:i};return r==null||r(["debug",203,{criteria:t,result:o,explanation:k(n,t.match)}]),o};var Ct=({update:e,criteria:t,signal:r,onLogMessage:i})=>{var p;if(t.type!=="QK")return{result:!1,changed:!1};if(typeof document=="undefined"&&r.dur==="t"&&e.scores[r.id]>0)return{result:!0,changed:!1};let n=e.visitor.quirks[t.key],s=(p=e.state.quirks)==null?void 0:p[t.key],o=s!=null?s:n,u=Boolean(s&&n!==s),l={result:x(o,t.match),changed:u};return i==null||i(["debug",203,{criteria:t,result:l,explanation:k(o,t.match)}]),l};var xt=({update:e,criteria:t,onLogMessage:r})=>{var s,o,u;if(t.type!=="EVT")return{result:!1,changed:!1};let i=(o=(s=e.state.events)==null?void 0:s.some(c=>x(c.event,t.event)))!=null?o:!1,n={result:i,changed:i};return r==null||r(["debug",203,{criteria:t,result:n,explanation:`'${(u=e.state.events)==null?void 0:u.join("', '")}' ${ot(t.event)}`}]),n};var bt=({update:e,criteria:t,onLogMessage:r})=>{var u,c,l;if(t.type!=="PV")return{result:!1,changed:!1};let i=(u=e.state.url)==null?void 0:u.pathname,n=!e.previousState||(i==null?void 0:i.toString())!==((l=(c=e.previousState.url)==null?void 0:c.pathname)==null?void 0:l.toString()),o={result:x(i,t.path),changed:n};return r==null||r(["debug",203,{criteria:t,result:o,explanation:k(i,t.path)}]),o};var W,z=class{constructor(t){d(this,W,void 0);h(this,W,t)}evaluate(t,r,i,n,s){let o=r.clauses.length>1;o&&(s==null||s(["debug",202,"GROUP",r]));try{let u=!(r.op==="&"||!r.op),c=null,l=!1;for(let m of r.clauses){let S;if(m.type==="G")S=this.evaluate(t,m,i,n,s);else{let C=a(this,W)[m.type];if(c&&!C.alwaysExecute)continue;if(!C)throw new Error(`${m.type} signal criteria not registered`);S=C({update:t,criteria:m,commands:i,signal:n,onLogMessage:s})}S.changed&&(l=!0),!c&&S.result===u&&(c={result:u,changed:l})}let p=c!=null?c:{result:!u,changed:l};return o&&(s==null||s(["debug",204,p])),p}finally{o&&(s==null||s(["debug",202,"ENDGROUP"]))}}};W=new WeakMap;var X=()=>({quirks:{},scores:{},sessionScores:{},tests:{},consent:!1,controlGroup:!1});var Ht=$(require("mitt")),Jt=require("dequal/lite"),Yt="__UNIFORM_DATA__",O,I,q=class{constructor({initialData:t}){d(this,O,void 0);d(this,I,(0,Ht.default)());D(this,"events",{on:a(this,I).on,off:a(this,I).off});t&&h(this,O,t)}get data(){return a(this,O)}updateData(t,r){return h(this,O,r),this.handleUpdateData(t,r)}async delete(t){h(this,O,void 0),await this.handleDelete(t)}signalAsyncDataUpdate(t){(0,Jt.dequal)(this.data,t)||(h(this,O,t),a(this,I).emit("dataUpdatedAsync",t))}getClientTransitionState(){if(typeof document=="undefined")return;let t=document.getElementById(Yt);return t!=null&&t.textContent?JSON.parse(t.textContent):void 0}};O=new WeakMap,I=new WeakMap;var Vt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Wt=Vt.split(""),Xt=new Array(123);for(let e=0;e<Vt.length;e++)Xt[Vt.charCodeAt(e)]=e;var Et=e=>{if(e<0)return`-${Et(-e)}`;let t=e>>>0,r=e/4294967296>>>0,i="";for(;r>0;)i=Wt[63&t]+i,t>>>=6,t|=(63&r)<<26,r>>>=6;let n="";do n=Wt[63&t]+n,t>>>=6;while(t>0);return n+i},Zt=e=>{let t=0,r=e.charAt(0)==="-"?1:0;for(let i=r;i<e.length;i++)t=t*64+Xt[e.charCodeAt(i)];return r?-t:t};var ut=$(require("js-cookie")),Tt=typeof document=="undefined",te="ufvd",A,Z,ee=class extends q{constructor({serverCookieValue:t,cookieName:r=te,cookieAttributes:i={sameSite:"lax"}}){super({initialData:Tt?Re(t):void 0});d(this,A,void 0);d(this,Z,void 0);h(this,A,r),h(this,Z,i)}handleDelete(){return Tt||ut.default.remove(a(this,A)),Promise.resolve()}async handleUpdateData(t,r){Tt||(r.consent?ut.default.set(a(this,A),Oe(r),a(this,Z)):ut.default.remove(a(this,A)))}};A=new WeakMap,Z=new WeakMap;var re="~",ie="!",ne="-";function Re(e){if(!e)return;let t=e.split(re);if(t.length>3)return;let[r,i,n]=t;return{consent:!0,sessionScores:Mt(kt(i)),scores:Mt(kt(n)),tests:kt(r)}}function kt(e){return e.split(ie).map(r=>r.split(ne)).reduce((r,i)=>(i.length!==2||(r[i[0]]=i[1]),r),{})}function Mt(e){return Object.entries(e).reduce((t,[r,i])=>(t[r]=Zt(i),t),{})}function Oe(e){return[Pt(e.tests),Pt(Lt(e.sessionScores)),Pt(Lt(e.scores))].join(re)}function Lt(e){return Object.entries(e).reduce((t,[r,i])=>(t[r]=Et(i),t),{})}function Pt(e){return Object.entries(e).map(t=>t.join(ne)).join(ie)}var lt,Ue,oe=class extends q{constructor({serverCookieValue:t,visitorIdCookieName:r="ufvi",...i}){super(i);d(this,lt);i.initialData||y(this,lt,Ue).call(this).catch(n=>{console.error(n)})}handleDelete(t){throw new Error("Method not implemented.")}async handleUpdateData(t){let r=await new Promise(i=>{setTimeout(()=>{i(void 0)},2e3)});r&&this.signalAsyncDataUpdate(r)}};lt=new WeakSet,Ue=async function(){let t=await new Promise(r=>{setTimeout(()=>{r(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};function $e(e){let{gracePeriod:t=864e5,decayRate:r=1/30,decayCap:i=.95}=e!=null?e:{};return function({now:s,lastUpd:o,scores:u,sessionScores:c,onLogMessage:l}){if(typeof o!="number")return!1;let m=s-o-t;if(m<=0)return!1;let S=m/864e5,C=1-Math.min(i,S*r);return C<=0?!1:(se(u,C),se(c,C),l==null||l(["info",140,`linear decay factor ${C.toPrecision(6)}`]),!0)}}function se(e,t){for(let r in e)r.startsWith("$")||(e[r]*=t)}var de=$(require("mitt")),M=require("dequal/lite");var wt=class{constructor(){D(this,"inMemoryFallback",{});D(this,"hasLocalStorageObject",typeof localStorage!="undefined")}get(t){let r=this.inMemoryFallback[t];if(!this.hasLocalStorageObject||r)return r;try{let i=localStorage.getItem(t);return i?JSON.parse(i):void 0}catch(i){return r}}set(t,r,i){if(this.inMemoryFallback[t]=r,!(!this.hasLocalStorageObject||!i))try{localStorage.setItem(t,JSON.stringify(r))}catch(n){console.warn(n)}}delete(t,r){r||delete this.inMemoryFallback[t];try{localStorage.removeItem(t)}catch(i){}}};var ae=$(require("rfdc"));var Ae=(0,ae.default)();function ue(e,t,r){let i=t?Ae(t):X();return e.forEach(n=>{var s,o;switch(n.type){case"consent":i.consent=n.data;break;case"setquirk":i.quirks[n.data.key]=n.data.value;break;case"settest":i.tests[n.data.test]=n.data.variant;break;case"modscore":if(r)break;let u=Number(n.data.delta);if(isNaN(u))throw new Error("Non-number delta received");let c=(s=i.scores[n.data.dimension])!=null?s:0;i.scores[n.data.dimension]=c+u;break;case"modscoreS":if(r)break;let l=Number(n.data.delta);if(isNaN(l))throw new Error("Non-number delta received");let p=(o=i.sessionScores[n.data.dimension])!=null?o:0;i.sessionScores[n.data.dimension]=p+l;break;case"identify":break;case"setcontrol":i.controlGroup=n.data;break;default:throw new Error("Unknown command")}}),i}var ct="ufvisitor",E,N,j,v,b,U,P,_,dt,Ne,ft,Ge,L,le,tt,ce,pt=class{constructor(t){d(this,b);d(this,P);d(this,dt);d(this,ft);d(this,L);d(this,tt);d(this,E,(0,de.default)());d(this,N,new wt);d(this,j,void 0);d(this,v,void 0);D(this,"events",{on:a(this,E).on,off:a(this,E).off});if(h(this,v,t),a(this,b,U)||y(this,P,_).call(this,y(this,tt,ce).call(this),!0),t.transitionStore){let r=t.transitionStore.getClientTransitionState();if(r){let n=[];r.quirks&&n.push(...Object.entries(r.quirks).map(([s,o])=>({type:"setquirk",data:{key:s,value:o}}))),r.tests&&n.push(...Object.entries(r.tests).map(([s,o])=>({type:"settest",data:{test:s,variant:o}}))),this.updateData(n),r.ssv&&t.onServerTransitionScoresReceived&&t.onServerTransitionScoresReceived(r.ssv)}t.transitionStore.events.on("dataUpdatedAsync",n=>{y(this,P,_).call(this,{...a(this,b,U).visitorData,...n})});let i=t.transitionStore.data;i&&y(this,P,_).call(this,{...a(this,b,U).visitorData,...i},!0)}}get data(){var r,i;let t=a(this,b,U);if(y(this,ft,Ge).call(this,t)){let{sessionScores:n,...s}=t.visitorData;return y(this,P,_).call(this,{...s,sessionScores:{}}),(i=(r=a(this,v)).onLogMessage)==null||i.call(r,["info",120]),a(this,b,U).visitorData}return t.visitorData}get decayEnabled(){return!!a(this,v).decay}async updateData(t){var i,n,s,o;if(t.length===0)return;(n=(i=a(this,v)).onLogMessage)==null||n.call(i,["debug",101,t]);let r=ue(t,this.data,(s=a(this,b,U))==null?void 0:s.visitorData.controlGroup);t.some(u=>u.type==="consent"&&!u.data)&&a(this,N).delete(ct,!0),y(this,P,_).call(this,r),await((o=a(this,v).transitionStore)==null?void 0:o.updateData(t,a(this,b,U).visitorData))}async delete(t){var r,i,n,s,o;(i=(r=a(this,v)).onLogMessage)==null||i.call(r,["info",103,"GROUP",t]);try{a(this,N).delete(ct,!1),await((n=a(this,v).transitionStore)==null?void 0:n.delete(t)),y(this,P,_).call(this,y(this,tt,ce).call(this))}finally{(o=(s=a(this,v)).onLogMessage)==null||o.call(s,["info",103,"ENDGROUP"])}}};E=new WeakMap,N=new WeakMap,j=new WeakMap,v=new WeakMap,b=new WeakSet,U=function(){return a(this,N).get(ct)},P=new WeakSet,_=function(t,r=!1){var p,m,S,C,rt,Nt,Gt,zt;let i=a(this,b,U),n=Date.now();t.controlGroup?(t.scores={},t.sessionScores={}):(y(this,L,le).call(this,t.scores),y(this,L,le).call(this,t.sessionScores),(m=(p=a(this,v)).decay)==null||m.call(p,{now:n,lastUpd:i==null?void 0:i.updated,scores:t.scores,sessionScores:t.sessionScores,onLogMessage:a(this,v).onLogMessage}));let s=!(0,M.dequal)(i==null?void 0:i.visitorData.scores,t.scores),o=!(0,M.dequal)(i==null?void 0:i.visitorData.sessionScores,t.sessionScores),u=!(0,M.dequal)(i==null?void 0:i.visitorData.quirks,t.quirks),c=!(0,M.dequal)(i==null?void 0:i.visitorData.tests,t.tests),l={updated:n,visitorData:t};y(this,dt,Ne).call(this),a(this,N).set(ct,l,!!t.consent),(C=(S=a(this,v)).onLogMessage)==null||C.call(S,["debug",102,t]),r||((s||o)&&a(this,E).emit("scoresUpdated",t),u&&a(this,E).emit("quirksUpdated",t),c&&a(this,E).emit("testsUpdated",t),((rt=i==null?void 0:i.visitorData)==null?void 0:rt.consent)!==t.consent&&a(this,E).emit("consentUpdated",t),((Nt=i==null?void 0:i.visitorData)==null?void 0:Nt.controlGroup)!==t.controlGroup&&(a(this,E).emit("controlGroupUpdated",t),(zt=(Gt=a(this,v)).onLogMessage)==null||zt.call(Gt,["debug",104,t.controlGroup])))},dt=new WeakSet,Ne=function(){typeof document=="undefined"||!a(this,v).visitLifespan||(a(this,j)&&window.clearTimeout(a(this,j)),h(this,j,window.setTimeout(()=>{this.data},a(this,v).visitLifespan+50)))},ft=new WeakSet,Ge=function(t){let r=a(this,v).visitLifespan;return r?t.updated+r<Date.now():!1},L=new WeakSet,le=function(t){var r,i;if(!!a(this,v).manifest)for(let n in t){let s=t[n],o=a(this,v).manifest.getDimensionByKey(n);!o||s>o.cap&&((i=(r=a(this,v)).onLogMessage)==null||i.call(r,["debug",110,{dim:n,score:s,cap:o.cap}]),t[n]=o.cap)}},tt=new WeakSet,ce=function(){var t,r,i;return{...X(),consent:(t=a(this,v).defaultConsent)!=null?t:!1,controlGroup:(i=(r=a(this,v).manifest)==null?void 0:r.rollForControlGroup())!=null?i:!1}};var pe=$(require("mitt"));function Rt({name:e,context:t,variations:r,take:i=1,onLogMessage:n}){var s,o,u;n==null||n(["info",300,"GROUP",{name:e,take:i}]);try{let c=(s=t.storage.data.controlGroup)!=null?s:!1,l=[],p=!1,m=t.scores;for(let S of r){if(l.length===i)break;if(!((o=S.pz)!=null&&o.crit.length)){n==null||n(["info",301,"GROUP",{id:S.id,op:(u=S.pz)==null?void 0:u.op}]),n==null||n(["info",302,{matched:!0,description:"default variation"}]),n==null||n(["info",303,!0]),n==null||n(["info",301,"ENDGROUP"]),l.push(S);continue}c||Ot(S.id,S.pz,m,n)&&(p=!0,l.push(S))}return{personalized:p,variations:l}}finally{n==null||n(["info",300,"ENDGROUP"])}}function Ot(e,t,r,i){i==null||i(["info",301,"GROUP",{id:e,op:t==null?void 0:t.op}]);let n;try{t!=null&&t.crit?!t.op||t.op==="&"?n=t.crit.every(s=>fe(s,r,i)):n=t.crit.some(s=>fe(s,r,i)):(i==null||i(["info",302,{matched:!0,description:"default variation"}]),n=!0),i==null||i(["info",303,n])}finally{i==null||i(["info",301,"ENDGROUP"])}return n}function fe(e,t,r){var u,c;let{op:i,l:n}=e,s=(u=t[n])!=null?u:0;if(i==="+"){let l=Math.max(...Object.values(t))===s&&s>0;return r==null||r(["info",302,{matched:l,description:`${e.l} has the highest score`}]),l}else if(i==="-"){let l=Math.min(...Object.values(t))===s&&s>0;return r==null||r(["info",302,{matched:l,description:`${e.l} has the lowest non-zero score`}]),l}let o=e.rDim?t[e.rDim]:e.r;if(o===void 0)return r==null||r(["info",302,{matched:!1,description:`${(c=e.rDim)!=null?c:e.r} has no score value`}]),!1;if(i===">"){let l=s>o;return F(r,l,e,s,o),l}else if(i===">="){let l=s>=o;return F(r,l,e,s,o),l}else if(i==="<"){let l=s<o;return F(r,l,e,s,o),l}else if(i==="<="){let l=s<=o;return F(r,l,e,s,o),l}else if(i==="="){let l=s===o;return F(r,l,e,s,o),l}else if(i==="!="){let l=s!==o;return F(r,l,e,s,o),l}else throw new Error(`Unknown op: ${i}`)}function F(e,t,r,i,n){e==null||e(["info",302,{matched:t,description:`${r.l}[${i}] ${r.op} ${r.rDim?`${r.rDim}[${n}]`:r.r}`}])}var ze=e=>{let{values:t,total:r,missingDistribution:i}=e.reduce((n,s)=>(s.testDistribution?n.total+=s.testDistribution:++n.missingDistribution,n.values.push(s.testDistribution),n),{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)/i;t.forEach((o,u)=>{typeof o=="undefined"&&(t[u]=s)})}return t},mt=({name:e,context:t,variations:r,onLogMessage:i})=>{i==null||i(["info",400,"GROUP",e]);try{let n,s=t.getTestVariantId(e);if(s===null)return i==null||i(["error",401,e]),{result:void 0,variantAssigned:!1};if(s&&(n=r.find(o=>o.id===s),n||i==null||i(["warn",402,{missingVariant:s,variants:r.map(o=>o.id)}])),!n){let o=ze(r),u=Math.floor(Math.random()*100),c=0;n=r.find((l,p)=>{let m=o[p];if(u>c&&u<=c+m)return l;c+=m}),n&&(i==null||i(["info",403,n.id]),t.setTestVariantId(e,n.id))}return n&&(i==null||i(["info",404,n.id])),{result:n,variantAssigned:!s}}finally{i==null||i(["info",400,"ENDGROUP"])}};var $t=require("dequal/lite"),G,w,T,et,g,Q,Ut,me=class{constructor(t){d(this,Q);D(this,"manifest");d(this,G,!1);d(this,w,{});d(this,T,void 0);d(this,et,{});d(this,g,(0,pe.default)());D(this,"events",{on:a(this,g).on,off:a(this,g).off});D(this,"storage");var n,s;let{manifest:r,...i}=t;h(this,T,{}),(n=t.plugins)==null||n.forEach(o=>{!o.logDrain||a(this,g).on("log",o.logDrain)}),a(this,g).emit("log",["info",1,"GROUP"]);try{this.manifest=new nt({onLogMessage:o=>a(this,g).emit("log",o),manifest:r,evaluator:new z({CK:yt,QS:Dt,QK:Ct,PVC:at,EVT:xt,PV:bt})}),this.storage=new pt({...i,manifest:this.manifest,onServerTransitionScoresReceived:o=>{h(this,w,o),h(this,G,!0),a(this,g).emit("log",["debug",130,o])},onLogMessage:o=>a(this,g).emit("log",o)}),this.storage.events.on("scoresUpdated",y(this,Q,Ut).bind(this)),a(this,G)||y(this,Q,Ut).call(this,this.storage.data),this.storage.events.on("quirksUpdated",o=>{let u=this.manifest.computeSignals({scores:a(this,w),state:a(this,T),previousState:a(this,T),visitor:this.storage.data});this.storage.updateData(u),a(this,g).emit("quirksUpdated",o.quirks),a(this,g).emit("log",["info",4,o.quirks])}),(s=t.plugins)==null||s.forEach(o=>{!o.init||o.init(this)})}finally{a(this,g).emit("log",["info",1,"ENDGROUP"])}}get scores(){return a(this,w)}async update(t){var i;let r=[];try{a(this,g).emit("log",["info",2,"GROUP",{...t,url:(i=t.url)==null?void 0:i.toString()}]),t.quirks&&r.push(...Object.entries(t.quirks).map(([n,s])=>({type:"setquirk",data:{key:n,value:s}}))),t.enrichments&&t.enrichments.forEach(n=>{let s=Y(n.cat,n.key);this.manifest.getDimensionByKey(s)?r.push({type:"modscore",data:{dimension:s,delta:n.str}}):a(this,g).emit("log",["warn",5,n])}),r.push(...this.manifest.computeSignals({state:t,previousState:a(this,T),visitor:this.storage.data,scores:a(this,w)})),h(this,T,{...a(this,T),...t}),await this.storage.updateData(r),a(this,G)&&(y(this,Q,Ut).call(this,this.storage.data),h(this,G,!1),a(this,g).emit("log",["debug",131]))}finally{a(this,g).emit("log",["info",2,"ENDGROUP"])}}getTestVariantId(t){var i;let r=this.manifest.getTest(t);return r?(i=r.wv)!=null?i:this.storage.data.tests[t]:(a(this,g).emit("log",["warn",401,t]),null)}setTestVariantId(t,r){this.storage.updateData([{type:"settest",data:{test:t,variant:r}}])}log(...t){a(this,g).emit("log",t)}test(t){var i,n;let r=mt({...t,context:this,onLogMessage:s=>a(this,g).emit("log",s)});return a(this,g).emit("testResult",{name:t.name,variantId:(n=(i=r.result)==null?void 0:i.id)!=null?n:void 0,variantAssigned:r.variantAssigned}),r}personalize(t){let r=Rt({...t,context:this,onLogMessage:s=>a(this,g).emit("log",s)}),i=a(this,et)[t.name],n={name:t.name,variantIds:r.variations.map(s=>{var o;return(o=s.id)!=null?o:"Unknown"}),control:this.storage.data.controlGroup,changed:!0};return i&&(0,$t.dequal)(n.variantIds,i)&&(n.changed=!1),a(this,g).emit("personalizationResult",n),a(this,et)[t.name]=n.variantIds,r}async forget(t){h(this,T,{}),await this.storage.delete(t)}};G=new WeakMap,w=new WeakMap,T=new WeakMap,et=new WeakMap,g=new WeakMap,Q=new WeakSet,Ut=function(t){var n;let r={...t.scores};for(let s in t.sessionScores)r[s]=((n=r[s])!=null?n:0)+t.sessionScores[s];r=this.manifest.computeAggregateDimensions(r),!(0,$t.dequal)(r,a(this,w))&&(h(this,w,r),a(this,g).emit("scoresUpdated",r),a(this,g).emit("log",["info",3,r]))};var he=$(require("rfdc"));function ht(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}}var Ie=(0,he.default)();function ge(e){return([t,...r])=>{if(!ht(e,t))return;let[i,...n]=r;console[t](`\u{1F94B} [${t}] Uniform event ID ${i}
|
2
|
+
`,...n.map(Ie))}}function qe(e){return{logDrain:ge(e)}}var ve={1:()=>["context","initializing Uniform Context"],2:e=>["context","received 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",`deleting visitor data ${e?"from all devices":"from this device"}`],104:e=>["context",e?"Visitor assigned to personalization control group":"Visitor assigned to personalization experiment group"],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"],140:e=>["storage",`score decay was applied: ${e}`],200:()=>["signals","evaluating signals"],201:e=>["signals",`evaluating signal ${e.id} (${e.dur})`],202:e=>["signals",e.op==="|"?"OR":"AND"],203:({criteria:e,result:t,explanation:r})=>["signals",`${e.type}: ${r} is ${t.result} [${t.changed?"CHANGED":"unchanged"}]`],204:e=>["signals",`group result: ${e.result} [${e.changed?"CHANGED":"unchanged"}]`],300:e=>["personalization",`executing personalization '${e.name}'`],301:({id:e,op:t})=>["personalization",`testing variation ${e} (${t==="|"?"OR":"AND"})`],302:({matched:e,description:t})=>["personalization",`${t} is ${e}`],303:e=>["personalization",e?"selected variation":"did not select variation"],400:e=>["testing",`executing A/B test '${e}'`],401:e=>["testing",`${e} is not registered in the manifest; it will not be run.`],402:({missingVariant:e,variants:t})=>["testing",`test variation '${e}' previously assigned to the visitor for this test no longer exists as a variant. It will be removed. This may indicate changing test variations after publishing a test, which will make results invalid. Known variants: ${t.join(", ")}`],403:e=>["testing",`assigned new test variant '${e}'`],404:e=>["testing",`displaying variation '${e}'`],700:()=>["gtag","gtag is not defined, skipping analytics event emission. Ensure you have added the gtag script to your page."],701:()=>["gtag","enabled gtag event signal redirection"]};var Se=$(require("rfdc")),_e=(0,Se.default)();function ye(e,t){let r=typeof document=="undefined",{enableOnServer:i=!1}=t!=null?t:{};return([n,...s])=>{if(!ht(e,n)||r&&!i)return;let[o,...u]=s,c=console[n];if(u[0]==="GROUP"&&(u.shift(),c=console.groupCollapsed),u[0]==="ENDGROUP"){console.groupEnd();return}let l=ve[o],p="";switch(n){case"debug":p="\u{1F41E}";break;case"info":p="\u{1F4AC}";break;case"warn":p="\u26A0\uFE0F";break;case"error":p="\u{1F4A5}";break}let m=p;if(!l){c(`${m} unknown event ID ${o}. Log messages data may be older than Uniform Context package.`,...u);return}let[S,C,...rt]=l(...u);c(`${m}[${S}] ${C}
|
3
|
+
`,...rt.map(_e))}}function je(e,t){return{logDrain:ye(e,t)}}var De=(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))(De||{}),Fe="nesitag";var At=typeof top!="undefined";function Qe(){return{logDrain:e=>{!At||top==null||top.postMessage({type:"uniform:context:log",message:e},window.location.origin)},init:e=>{let t=[],r=[],i=()=>{!At||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)},n=o=>{!o.changed||(t.push(o),i())},s=o=>{!o.variantAssigned||(r.push(o),i())};if(At){window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__=e;try{top==null||top.addEventListener("message",async o=>{if(!o.data)return;let u=o.data;await Ke(u,e)})}catch(o){console.warn("Unable to initialize Uniform Context DevTools because it is in a cross-domain iframe.",o)}top==null||top.postMessage({type:"uniform:context:hello",uiVersion:2},window.location.origin),i()}return e.events.on("personalizationResult",n),e.events.on("testResult",s),e.storage.events.on("*",i),()=>{e.storage.events.off("*",i),e.events.off("personalizationResult",n),e.events.off("testResult",s)}}}}async function Ke(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=Pe(Be);0&&(module.exports={Context,CookieTransitionDataStore,EdgeNodeTagName,EdgeTransitionDataStore,GroupCriteriaEvaluator,ManifestInstance,SERVER_STATE_ID,ScriptType,TransitionDataStore,UNIFORM_DEFAULT_COOKIE_NAME,VisitorDataStore,computeAggregateDimensions,cookieEvaluator,createConsoleLogDrain,createDebugConsoleLogDrain,createLinearDecay,currentPageEvaluator,emptyVisitorData,enableConsoleLogDrain,enableContextDevTools,enableDebugConsoleLogDrain,evaluateVariantMatch,eventEvaluator,explainStringMatch,explainStringMatchCriteria,getEnrichmentVectorKey,isStringMatch,pageViewCountDimension,pageViewCountEvaluator,personalizeVariations,queryStringEvaluator,quirkEvaluator,testVariations});
|
package/dist/index.mjs
CHANGED
@@ -1,3 +1,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 x,_,nt=class{constructor({manifest:t,evaluator:e=new j({})}){D(this,"data");d(this,x,void 0);d(this,_,void 0);var o,i,a;m(this,x,(o=t.project)!=null?o:{}),this.data=t,m(this,_,Object.entries((a=(i=s(this,x).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,x).pz)==null?void 0:t.control)!=null?e:0)}getTest(t){var e;return(e=s(this,x).test)==null?void 0:e[t]}computeSignals(t){let e=[];return s(this,_).forEach(o=>{o.computeSignal(t,e)}),e}computeAggregateDimensions(t){var e,o;return yt(t,(o=(e=s(this,x).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,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,e)]}};x=new WeakMap,_=new WeakMap;u();import{dequal as Jt}from"dequal/lite";var Vt=(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 xt(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(xt(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,V;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((V=r==null?void 0:r.toString())!=null?V:"");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:At(ct(o)),scores:At(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 At(r){return Object.entries(r).reduce((t,[e,o])=>(t[e]=Rt(o),t),{})}function te(r){return[lt(r.tests),lt(Ut(r.sessionScores)),lt(Ut(r.scores))].join(It)}function Ut(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 V=y/864e5,I=1-Math.min(o,V*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,A,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,A,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,A).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,A).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,A=new WeakMap,N=new WeakMap,h=new WeakMap,C=new WeakSet,M=function(){return s(this,A).get(tt)},k=new WeakSet,q=function(t,e=!1){var y,V,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),(V=(y=s(this,h)).decay)==null||V.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,A).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 V=n[y];if(c>l&&c<=l+V)return g;l+=V}),o&&t.setTestVariantId(r,(a=o.id)!=null?a:"Unknown")}return{result:o,variantAssigned:!i}};import{dequal as Kt}from"dequal/lite";var U,P,T,J,v,$,gt,le=class{constructor(t){d(this,$);D(this,"manifest");d(this,U,!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:Vt,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,U,!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,U)||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,U)&&(S(this,$,gt).call(this,this.storage.data),m(this,U,!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)}};U=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
|
-
`,...
|
3
|
-
`,...
|
1
|
+
import{a as tt}from"./chunk-CEKV2MHL.mjs";import{d as x,e as a,f,g as v,h as C,i as l}from"./chunk-AFJ7PNM5.mjs";l();l();l();function Pt(e,t){let r={...e};for(let i in t){let n=wt(e,i,t,new Set([i]));n!==0&&(r[i]=n)}return r}function wt(e,t,r,i){var s;let n=0;for(let o of r[t].inputs){let u=(s=e[o.dim])!=null?s:0;if(!u&&r[o.dim]){if(i.has(o.dim))continue;let c=new Set(i);c.add(o.dim),u=wt(e,o.dim,r,c)}if(u!==0)if(o.sign==="c"){n=0;break}else o.sign==="-"?n-=u:n+=u}return n}l();var Q,K,lt=class{constructor(t,r,i){f(this,Q,void 0);f(this,K,void 0);x(this,"signal");this.signal=t,v(this,Q,r),v(this,K,i)}computeSignal(t,r){if(t.scores[this.signal.id]>=this.signal.cap&&this.signal.dur!=="t")return;let n=a(this,Q).evaluate(t,this.signal.crit,r,this.signal,a(this,K)),s=this.signal.dur==="s"||this.signal.dur==="t"?"modscoreS":"modscore";if(!!n.changed){if(n.result)r.push({type:s,data:{dimension:this.signal.id,delta:this.signal.str}});else if(this.signal.dur==="t"){let o=t.visitor.sessionScores[this.signal.id];o&&r.push({type:s,data:{dimension:this.signal.id,delta:-o}})}}}};Q=new WeakMap,K=new WeakMap;var E,B,R,ct=class{constructor({manifest:t,evaluator:r=new H({}),onLogMessage:i=()=>{}}){x(this,"data");f(this,E,void 0);f(this,B,void 0);f(this,R,void 0);var n,s,o;v(this,E,(n=t.project)!=null?n:{}),this.data=t,v(this,B,Object.entries((o=(s=a(this,E).pz)==null?void 0:s.sig)!=null?o:[]).map(([u,d])=>new lt({...d,id:u},r,i))),v(this,R,i)}rollForControlGroup(){var t,r;return Math.random()<((r=(t=a(this,E).pz)==null?void 0:t.control)!=null?r:0)}getTest(t){var r;return(r=a(this,E).test)==null?void 0:r[t]}computeSignals(t){let r=[];a(this,R).call(this,["debug",200,"GROUP"]);try{a(this,B).forEach(i=>{a(this,R).call(this,["debug",201,"GROUP",i.signal]);try{i.computeSignal(t,r)}finally{a(this,R).call(this,["debug",201,"ENDGROUP"])}})}finally{a(this,R).call(this,["debug",200,"ENDGROUP"])}return r}computeAggregateDimensions(t){var r,i;return Pt(t,(i=(r=a(this,E).pz)==null?void 0:r.agg)!=null?i:{})}getDimensionByKey(t){var i,n,s,o;let r=t.indexOf(tt);return r<=0?(n=(i=a(this,E).pz)==null?void 0:i.sig)==null?void 0:n[t]:(o=(s=a(this,E).pz)==null?void 0:s.enr)==null?void 0:o[t.substring(0,r)]}};E=new WeakMap,B=new WeakMap,R=new WeakMap;l();import{dequal as re}from"dequal/lite";l();function T(e,t){var o,u,d,c,h,g;let r=(o=t==null?void 0:t.op)!=null?o:"=";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 i=(u=t.cs)!=null?u:!1,n=(i?e!=null?e:"":Ot(e)).toString(),s=(i?t.rhs:Ot(t.rhs)).toString();switch(r){case"=":return n===s;case"!=":return n!==s;case"~":return(d=n.includes(s))!=null?d:!1;case"!~":return!((c=n.includes(s))==null||c);case"//":return new RegExp(t.rhs.toString(),i?"":"i").test((h=e==null?void 0:e.toString())!=null?h:"");case"!//":return!new RegExp(t.rhs.toString(),i?"":"i").test((g=e==null?void 0:e.toString())!=null?g:"");default:throw new Error(`Unknown match type ${r}.`)}}function U(e,t){return`'${("cs"in t?t.cs:!1)?e:e==null?void 0:e.toString().toUpperCase()}' ${dt(t)}`}function dt(e){return"rhs"in e?`${e.op} '${e.cs?e.rhs:e.rhs.toString().toUpperCase()}'`:`${e.op==="*"?"exists":"does not exist"}`}function Ot(e){var t,r;return(r=(t=e==null?void 0:e.toString())==null?void 0:t.toUpperCase())!=null?r:""}var Ut=({update:e,criteria:t,onLogMessage:r})=>{var u,d;if(t.type!=="CK")return{result:!1,changed:!1};let i=!re(Rt(e.state.cookies),Rt((u=e.previousState)==null?void 0:u.cookies)),n=(d=e.state.cookies)==null?void 0:d[t.cookieName],o={result:T(n,t.match),changed:i};return r==null||r(["debug",203,{criteria:t,result:o,explanation:U(n,t.match)}]),o};function Rt(e){if(!e)return;if(!e.ufvd)return e;let{ufvd:t,...r}=e;return r}l();l();function $t(e,t){var i;if(typeof e=="undefined"||e===null)return!1;let r=Number(e);if(isNaN(r))return!1;switch((i=t==null?void 0:t.op)!=null?i:"="){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 At(e,t){return`${e} ${ie(t)}`}function ie(e){return`${e.op} ${e.rhs}`}l();function et(e,t){return`${e}${tt}${t}`}var ft=et("$pvc","v"),pt=({update:e,criteria:t,commands:r,onLogMessage:i})=>{var c,h;if(t.type!=="PVC")return{result:!1,changed:!1};let n=Boolean(e.state.url&&(!e.previousState||((c=e.state.url)==null?void 0:c.toString())!==((h=e.previousState.url)==null?void 0:h.toString()))),o=(e.visitor.sessionScores[ft]||0)+1,u={result:!1,changed:n},d=r.some(g=>g.type==="modscoreS"&&g.data.dimension===ft);return n&&!d&&r.push({type:"modscoreS",data:{dimension:ft,delta:1}}),$t(o,t.match)&&(u.result=!0),i==null||i(["debug",203,{criteria:t,result:u,explanation:At(o,t.match)}]),u};pt.alwaysExecute=!0;l();var Nt=({update:e,criteria:t,onLogMessage:r})=>{var u,d,c,h,g;if(t.type!=="QS")return{result:!1,changed:!1};let i=!e.previousState||((d=(u=e.state.url)==null?void 0:u.searchParams)==null?void 0:d.toString())!==((h=(c=e.previousState.url)==null?void 0:c.searchParams)==null?void 0:h.toString()),n=(g=e.state.url)==null?void 0:g.searchParams.get(t.queryName),o={result:T(n,t.match),changed:i};return r==null||r(["debug",203,{criteria:t,result:o,explanation:U(n,t.match)}]),o};l();var Gt=({update:e,criteria:t,signal:r,onLogMessage:i})=>{var h;if(t.type!=="QK")return{result:!1,changed:!1};if(typeof document=="undefined"&&r.dur==="t"&&e.scores[r.id]>0)return{result:!0,changed:!1};let n=e.visitor.quirks[t.key],s=(h=e.state.quirks)==null?void 0:h[t.key],o=s!=null?s:n,u=Boolean(s&&n!==s),c={result:T(o,t.match),changed:u};return i==null||i(["debug",203,{criteria:t,result:c,explanation:U(o,t.match)}]),c};l();var zt=({update:e,criteria:t,onLogMessage:r})=>{var s,o,u;if(t.type!=="EVT")return{result:!1,changed:!1};let i=(o=(s=e.state.events)==null?void 0:s.some(d=>T(d.event,t.event)))!=null?o:!1,n={result:i,changed:i};return r==null||r(["debug",203,{criteria:t,result:n,explanation:`'${(u=e.state.events)==null?void 0:u.join("', '")}' ${dt(t.event)}`}]),n};l();var It=({update:e,criteria:t,onLogMessage:r})=>{var u,d,c;if(t.type!=="PV")return{result:!1,changed:!1};let i=(u=e.state.url)==null?void 0:u.pathname,n=!e.previousState||(i==null?void 0:i.toString())!==((c=(d=e.previousState.url)==null?void 0:d.pathname)==null?void 0:c.toString()),o={result:T(i,t.path),changed:n};return r==null||r(["debug",203,{criteria:t,result:o,explanation:U(i,t.path)}]),o};l();var J,H=class{constructor(t){f(this,J,void 0);v(this,J,t)}evaluate(t,r,i,n,s){let o=r.clauses.length>1;o&&(s==null||s(["debug",202,"GROUP",r]));try{let u=!(r.op==="&"||!r.op),d=null,c=!1;for(let g of r.clauses){let D;if(g.type==="G")D=this.evaluate(t,g,i,n,s);else{let b=a(this,J)[g.type];if(d&&!b.alwaysExecute)continue;if(!b)throw new Error(`${g.type} signal criteria not registered`);D=b({update:t,criteria:g,commands:i,signal:n,onLogMessage:s})}D.changed&&(c=!0),!d&&D.result===u&&(d={result:u,changed:c})}let h=d!=null?d:{result:!u,changed:c};return o&&(s==null||s(["debug",204,h])),h}finally{o&&(s==null||s(["debug",202,"ENDGROUP"]))}}};J=new WeakMap;l();var rt=()=>({quirks:{},scores:{},sessionScores:{},tests:{},consent:!1,controlGroup:!1});l();l();import ne from"mitt";import{dequal as oe}from"dequal/lite";var se="__UNIFORM_DATA__",$,I,Y=class{constructor({initialData:t}){f(this,$,void 0);f(this,I,ne());x(this,"events",{on:a(this,I).on,off:a(this,I).off});t&&v(this,$,t)}get data(){return a(this,$)}updateData(t,r){return v(this,$,r),this.handleUpdateData(t,r)}async delete(t){v(this,$,void 0),await this.handleDelete(t)}signalAsyncDataUpdate(t){oe(this.data,t)||(v(this,$,t),a(this,I).emit("dataUpdatedAsync",t))}getClientTransitionState(){if(typeof document=="undefined")return;let t=document.getElementById(se);return t!=null&&t.textContent?JSON.parse(t.textContent):void 0}};$=new WeakMap,I=new WeakMap;l();var mt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",qt=mt.split(""),_t=new Array(123);for(let e=0;e<mt.length;e++)_t[mt.charCodeAt(e)]=e;var ht=e=>{if(e<0)return`-${ht(-e)}`;let t=e>>>0,r=e/4294967296>>>0,i="";for(;r>0;)i=qt[63&t]+i,t>>>=6,t|=(63&r)<<26,r>>>=6;let n="";do n=qt[63&t]+n,t>>>=6;while(t>0);return n+i},jt=e=>{let t=0,r=e.charAt(0)==="-"?1:0;for(let i=r;i<e.length;i++)t=t*64+_t[e.charCodeAt(i)];return r?-t:t};import gt from"js-cookie";var vt=typeof document=="undefined",ae="ufvd",N,W,ue=class extends Y{constructor({serverCookieValue:t,cookieName:r=ae,cookieAttributes:i={sameSite:"lax"}}){super({initialData:vt?le(t):void 0});f(this,N,void 0);f(this,W,void 0);v(this,N,r),v(this,W,i)}handleDelete(){return vt||gt.remove(a(this,N)),Promise.resolve()}async handleUpdateData(t,r){vt||(r.consent?gt.set(a(this,N),ce(r),a(this,W)):gt.remove(a(this,N)))}};N=new WeakMap,W=new WeakMap;var Kt="~",Bt="!",Ht="-";function le(e){if(!e)return;let t=e.split(Kt);if(t.length>3)return;let[r,i,n]=t;return{consent:!0,sessionScores:Ft(St(i)),scores:Ft(St(n)),tests:St(r)}}function St(e){return e.split(Bt).map(r=>r.split(Ht)).reduce((r,i)=>(i.length!==2||(r[i[0]]=i[1]),r),{})}function Ft(e){return Object.entries(e).reduce((t,[r,i])=>(t[r]=jt(i),t),{})}function ce(e){return[yt(e.tests),yt(Qt(e.sessionScores)),yt(Qt(e.scores))].join(Kt)}function Qt(e){return Object.entries(e).reduce((t,[r,i])=>(t[r]=ht(i),t),{})}function yt(e){return Object.entries(e).map(t=>t.join(Ht)).join(Bt)}l();var it,fe,de=class extends Y{constructor({serverCookieValue:t,visitorIdCookieName:r="ufvi",...i}){super(i);f(this,it);i.initialData||C(this,it,fe).call(this).catch(n=>{console.error(n)})}handleDelete(t){throw new Error("Method not implemented.")}async handleUpdateData(t){let r=await new Promise(i=>{setTimeout(()=>{i(void 0)},2e3)});r&&this.signalAsyncDataUpdate(r)}};it=new WeakSet,fe=async function(){let t=await new Promise(r=>{setTimeout(()=>{r(void 0)},2e3)});t&&this.signalAsyncDataUpdate(t)};l();function Vr(e){let{gracePeriod:t=864e5,decayRate:r=1/30,decayCap:i=.95}=e!=null?e:{};return function({now:s,lastUpd:o,scores:u,sessionScores:d,onLogMessage:c}){if(typeof o!="number")return!1;let g=s-o-t;if(g<=0)return!1;let D=g/864e5,b=1-Math.min(i,D*r);return b<=0?!1:(Jt(u,b),Jt(d,b),c==null||c(["info",140,`linear decay factor ${b.toPrecision(6)}`]),!0)}}function Jt(e,t){for(let r in e)r.startsWith("$")||(e[r]*=t)}l();import he from"mitt";import{dequal as nt}from"dequal/lite";l();var Dt=class{constructor(){x(this,"inMemoryFallback",{});x(this,"hasLocalStorageObject",typeof localStorage!="undefined")}get(t){let r=this.inMemoryFallback[t];if(!this.hasLocalStorageObject||r)return r;try{let i=localStorage.getItem(t);return i?JSON.parse(i):void 0}catch(i){return r}}set(t,r,i){if(this.inMemoryFallback[t]=r,!(!this.hasLocalStorageObject||!i))try{localStorage.setItem(t,JSON.stringify(r))}catch(n){console.warn(n)}}delete(t,r){r||delete this.inMemoryFallback[t];try{localStorage.removeItem(t)}catch(i){}}};l();import pe from"rfdc";var me=pe();function Yt(e,t,r){let i=t?me(t):rt();return e.forEach(n=>{var s,o;switch(n.type){case"consent":i.consent=n.data;break;case"setquirk":i.quirks[n.data.key]=n.data.value;break;case"settest":i.tests[n.data.test]=n.data.variant;break;case"modscore":if(r)break;let u=Number(n.data.delta);if(isNaN(u))throw new Error("Non-number delta received");let d=(s=i.scores[n.data.dimension])!=null?s:0;i.scores[n.data.dimension]=d+u;break;case"modscoreS":if(r)break;let c=Number(n.data.delta);if(isNaN(c))throw new Error("Non-number delta received");let h=(o=i.sessionScores[n.data.dimension])!=null?o:0;i.sessionScores[n.data.dimension]=h+c;break;case"identify":break;case"setcontrol":i.controlGroup=n.data;break;default:throw new Error("Unknown command")}}),i}var ot="ufvisitor",k,G,_,y,V,A,w,q,st,ge,at,ve,X,Wt,Z,Xt,Ct=class{constructor(t){f(this,V);f(this,w);f(this,st);f(this,at);f(this,X);f(this,Z);f(this,k,he());f(this,G,new Dt);f(this,_,void 0);f(this,y,void 0);x(this,"events",{on:a(this,k).on,off:a(this,k).off});if(v(this,y,t),a(this,V,A)||C(this,w,q).call(this,C(this,Z,Xt).call(this),!0),t.transitionStore){let r=t.transitionStore.getClientTransitionState();if(r){let n=[];r.quirks&&n.push(...Object.entries(r.quirks).map(([s,o])=>({type:"setquirk",data:{key:s,value:o}}))),r.tests&&n.push(...Object.entries(r.tests).map(([s,o])=>({type:"settest",data:{test:s,variant:o}}))),this.updateData(n),r.ssv&&t.onServerTransitionScoresReceived&&t.onServerTransitionScoresReceived(r.ssv)}t.transitionStore.events.on("dataUpdatedAsync",n=>{C(this,w,q).call(this,{...a(this,V,A).visitorData,...n})});let i=t.transitionStore.data;i&&C(this,w,q).call(this,{...a(this,V,A).visitorData,...i},!0)}}get data(){var r,i;let t=a(this,V,A);if(C(this,at,ve).call(this,t)){let{sessionScores:n,...s}=t.visitorData;return C(this,w,q).call(this,{...s,sessionScores:{}}),(i=(r=a(this,y)).onLogMessage)==null||i.call(r,["info",120]),a(this,V,A).visitorData}return t.visitorData}get decayEnabled(){return!!a(this,y).decay}async updateData(t){var i,n,s,o;if(t.length===0)return;(n=(i=a(this,y)).onLogMessage)==null||n.call(i,["debug",101,t]);let r=Yt(t,this.data,(s=a(this,V,A))==null?void 0:s.visitorData.controlGroup);t.some(u=>u.type==="consent"&&!u.data)&&a(this,G).delete(ot,!0),C(this,w,q).call(this,r),await((o=a(this,y).transitionStore)==null?void 0:o.updateData(t,a(this,V,A).visitorData))}async delete(t){var r,i,n,s,o;(i=(r=a(this,y)).onLogMessage)==null||i.call(r,["info",103,"GROUP",t]);try{a(this,G).delete(ot,!1),await((n=a(this,y).transitionStore)==null?void 0:n.delete(t)),C(this,w,q).call(this,C(this,Z,Xt).call(this))}finally{(o=(s=a(this,y)).onLogMessage)==null||o.call(s,["info",103,"ENDGROUP"])}}};k=new WeakMap,G=new WeakMap,_=new WeakMap,y=new WeakMap,V=new WeakSet,A=function(){return a(this,G).get(ot)},w=new WeakSet,q=function(t,r=!1){var h,g,D,b,L,Et,Tt,kt;let i=a(this,V,A),n=Date.now();t.controlGroup?(t.scores={},t.sessionScores={}):(C(this,X,Wt).call(this,t.scores),C(this,X,Wt).call(this,t.sessionScores),(g=(h=a(this,y)).decay)==null||g.call(h,{now:n,lastUpd:i==null?void 0:i.updated,scores:t.scores,sessionScores:t.sessionScores,onLogMessage:a(this,y).onLogMessage}));let s=!nt(i==null?void 0:i.visitorData.scores,t.scores),o=!nt(i==null?void 0:i.visitorData.sessionScores,t.sessionScores),u=!nt(i==null?void 0:i.visitorData.quirks,t.quirks),d=!nt(i==null?void 0:i.visitorData.tests,t.tests),c={updated:n,visitorData:t};C(this,st,ge).call(this),a(this,G).set(ot,c,!!t.consent),(b=(D=a(this,y)).onLogMessage)==null||b.call(D,["debug",102,t]),r||((s||o)&&a(this,k).emit("scoresUpdated",t),u&&a(this,k).emit("quirksUpdated",t),d&&a(this,k).emit("testsUpdated",t),((L=i==null?void 0:i.visitorData)==null?void 0:L.consent)!==t.consent&&a(this,k).emit("consentUpdated",t),((Et=i==null?void 0:i.visitorData)==null?void 0:Et.controlGroup)!==t.controlGroup&&(a(this,k).emit("controlGroupUpdated",t),(kt=(Tt=a(this,y)).onLogMessage)==null||kt.call(Tt,["debug",104,t.controlGroup])))},st=new WeakSet,ge=function(){typeof document=="undefined"||!a(this,y).visitLifespan||(a(this,_)&&window.clearTimeout(a(this,_)),v(this,_,window.setTimeout(()=>{this.data},a(this,y).visitLifespan+50)))},at=new WeakSet,ve=function(t){let r=a(this,y).visitLifespan;return r?t.updated+r<Date.now():!1},X=new WeakSet,Wt=function(t){var r,i;if(!!a(this,y).manifest)for(let n in t){let s=t[n],o=a(this,y).manifest.getDimensionByKey(n);!o||s>o.cap&&((i=(r=a(this,y)).onLogMessage)==null||i.call(r,["debug",110,{dim:n,score:s,cap:o.cap}]),t[n]=o.cap)}},Z=new WeakSet,Xt=function(){var t,r,i;return{...rt(),consent:(t=a(this,y).defaultConsent)!=null?t:!1,controlGroup:(i=(r=a(this,y).manifest)==null?void 0:r.rollForControlGroup())!=null?i:!1}};l();import ye from"mitt";l();l();function Zt({name:e,context:t,variations:r,take:i=1,onLogMessage:n}){var s,o,u;n==null||n(["info",300,"GROUP",{name:e,take:i}]);try{let d=(s=t.storage.data.controlGroup)!=null?s:!1,c=[],h=!1,g=t.scores;for(let D of r){if(c.length===i)break;if(!((o=D.pz)!=null&&o.crit.length)){n==null||n(["info",301,"GROUP",{id:D.id,op:(u=D.pz)==null?void 0:u.op}]),n==null||n(["info",302,{matched:!0,description:"default variation"}]),n==null||n(["info",303,!0]),n==null||n(["info",301,"ENDGROUP"]),c.push(D);continue}d||Mt(D.id,D.pz,g,n)&&(h=!0,c.push(D))}return{personalized:h,variations:c}}finally{n==null||n(["info",300,"ENDGROUP"])}}l();function Mt(e,t,r,i){i==null||i(["info",301,"GROUP",{id:e,op:t==null?void 0:t.op}]);let n;try{t!=null&&t.crit?!t.op||t.op==="&"?n=t.crit.every(s=>Lt(s,r,i)):n=t.crit.some(s=>Lt(s,r,i)):(i==null||i(["info",302,{matched:!0,description:"default variation"}]),n=!0),i==null||i(["info",303,n])}finally{i==null||i(["info",301,"ENDGROUP"])}return n}function Lt(e,t,r){var u,d;let{op:i,l:n}=e,s=(u=t[n])!=null?u:0;if(i==="+"){let c=Math.max(...Object.values(t))===s&&s>0;return r==null||r(["info",302,{matched:c,description:`${e.l} has the highest score`}]),c}else if(i==="-"){let c=Math.min(...Object.values(t))===s&&s>0;return r==null||r(["info",302,{matched:c,description:`${e.l} has the lowest non-zero score`}]),c}let o=e.rDim?t[e.rDim]:e.r;if(o===void 0)return r==null||r(["info",302,{matched:!1,description:`${(d=e.rDim)!=null?d:e.r} has no score value`}]),!1;if(i===">"){let c=s>o;return j(r,c,e,s,o),c}else if(i===">="){let c=s>=o;return j(r,c,e,s,o),c}else if(i==="<"){let c=s<o;return j(r,c,e,s,o),c}else if(i==="<="){let c=s<=o;return j(r,c,e,s,o),c}else if(i==="="){let c=s===o;return j(r,c,e,s,o),c}else if(i==="!="){let c=s!==o;return j(r,c,e,s,o),c}else throw new Error(`Unknown op: ${i}`)}function j(e,t,r,i,n){e==null||e(["info",302,{matched:t,description:`${r.l}[${i}] ${r.op} ${r.rDim?`${r.rDim}[${n}]`:r.r}`}])}l();var Se=e=>{let{values:t,total:r,missingDistribution:i}=e.reduce((n,s)=>(s.testDistribution?n.total+=s.testDistribution:++n.missingDistribution,n.values.push(s.testDistribution),n),{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)/i;t.forEach((o,u)=>{typeof o=="undefined"&&(t[u]=s)})}return t},xt=({name:e,context:t,variations:r,onLogMessage:i})=>{i==null||i(["info",400,"GROUP",e]);try{let n,s=t.getTestVariantId(e);if(s===null)return i==null||i(["error",401,e]),{result:void 0,variantAssigned:!1};if(s&&(n=r.find(o=>o.id===s),n||i==null||i(["warn",402,{missingVariant:s,variants:r.map(o=>o.id)}])),!n){let o=Se(r),u=Math.floor(Math.random()*100),d=0;n=r.find((c,h)=>{let g=o[h];if(u>d&&u<=d+g)return c;d+=g}),n&&(i==null||i(["info",403,n.id]),t.setTestVariantId(e,n.id))}return n&&(i==null||i(["info",404,n.id])),{result:n,variantAssigned:!s}}finally{i==null||i(["info",400,"ENDGROUP"])}};import{dequal as te}from"dequal/lite";var z,O,P,M,S,F,bt,De=class{constructor(t){f(this,F);x(this,"manifest");f(this,z,!1);f(this,O,{});f(this,P,void 0);f(this,M,{});f(this,S,ye());x(this,"events",{on:a(this,S).on,off:a(this,S).off});x(this,"storage");var n,s;let{manifest:r,...i}=t;v(this,P,{}),(n=t.plugins)==null||n.forEach(o=>{!o.logDrain||a(this,S).on("log",o.logDrain)}),a(this,S).emit("log",["info",1,"GROUP"]);try{this.manifest=new ct({onLogMessage:o=>a(this,S).emit("log",o),manifest:r,evaluator:new H({CK:Ut,QS:Nt,QK:Gt,PVC:pt,EVT:zt,PV:It})}),this.storage=new Ct({...i,manifest:this.manifest,onServerTransitionScoresReceived:o=>{v(this,O,o),v(this,z,!0),a(this,S).emit("log",["debug",130,o])},onLogMessage:o=>a(this,S).emit("log",o)}),this.storage.events.on("scoresUpdated",C(this,F,bt).bind(this)),a(this,z)||C(this,F,bt).call(this,this.storage.data),this.storage.events.on("quirksUpdated",o=>{let u=this.manifest.computeSignals({scores:a(this,O),state:a(this,P),previousState:a(this,P),visitor:this.storage.data});this.storage.updateData(u),a(this,S).emit("quirksUpdated",o.quirks),a(this,S).emit("log",["info",4,o.quirks])}),(s=t.plugins)==null||s.forEach(o=>{!o.init||o.init(this)})}finally{a(this,S).emit("log",["info",1,"ENDGROUP"])}}get scores(){return a(this,O)}async update(t){var i;let r=[];try{a(this,S).emit("log",["info",2,"GROUP",{...t,url:(i=t.url)==null?void 0:i.toString()}]),t.quirks&&r.push(...Object.entries(t.quirks).map(([n,s])=>({type:"setquirk",data:{key:n,value:s}}))),t.enrichments&&t.enrichments.forEach(n=>{let s=et(n.cat,n.key);this.manifest.getDimensionByKey(s)?r.push({type:"modscore",data:{dimension:s,delta:n.str}}):a(this,S).emit("log",["warn",5,n])}),r.push(...this.manifest.computeSignals({state:t,previousState:a(this,P),visitor:this.storage.data,scores:a(this,O)})),v(this,P,{...a(this,P),...t}),await this.storage.updateData(r),a(this,z)&&(C(this,F,bt).call(this,this.storage.data),v(this,z,!1),a(this,S).emit("log",["debug",131]))}finally{a(this,S).emit("log",["info",2,"ENDGROUP"])}}getTestVariantId(t){var i;let r=this.manifest.getTest(t);return r?(i=r.wv)!=null?i:this.storage.data.tests[t]:(a(this,S).emit("log",["warn",401,t]),null)}setTestVariantId(t,r){this.storage.updateData([{type:"settest",data:{test:t,variant:r}}])}log(...t){a(this,S).emit("log",t)}test(t){var i,n;let r=xt({...t,context:this,onLogMessage:s=>a(this,S).emit("log",s)});return a(this,S).emit("testResult",{name:t.name,variantId:(n=(i=r.result)==null?void 0:i.id)!=null?n:void 0,variantAssigned:r.variantAssigned}),r}personalize(t){let r=Zt({...t,context:this,onLogMessage:s=>a(this,S).emit("log",s)}),i=a(this,M)[t.name],n={name:t.name,variantIds:r.variations.map(s=>{var o;return(o=s.id)!=null?o:"Unknown"}),control:this.storage.data.controlGroup,changed:!0};return i&&te(n.variantIds,i)&&(n.changed=!1),a(this,S).emit("personalizationResult",n),a(this,M)[t.name]=n.variantIds,r}async forget(t){v(this,P,{}),await this.storage.delete(t)}};z=new WeakMap,O=new WeakMap,P=new WeakMap,M=new WeakMap,S=new WeakMap,F=new WeakSet,bt=function(t){var n;let r={...t.scores};for(let s in t.sessionScores)r[s]=((n=r[s])!=null?n:0)+t.sessionScores[s];r=this.manifest.computeAggregateDimensions(r),!te(r,a(this,O))&&(v(this,O,r),a(this,S).emit("scoresUpdated",r),a(this,S).emit("log",["info",3,r]))};l();import Ce from"rfdc";l();function ut(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}}var xe=Ce();function be(e){return([t,...r])=>{if(!ut(e,t))return;let[i,...n]=r;console[t](`\u{1F94B} [${t}] Uniform event ID ${i}
|
2
|
+
`,...n.map(xe))}}function li(e){return{logDrain:be(e)}}l();l();var ee={1:()=>["context","initializing Uniform Context"],2:e=>["context","received 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",`deleting visitor data ${e?"from all devices":"from this device"}`],104:e=>["context",e?"Visitor assigned to personalization control group":"Visitor assigned to personalization experiment group"],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"],140:e=>["storage",`score decay was applied: ${e}`],200:()=>["signals","evaluating signals"],201:e=>["signals",`evaluating signal ${e.id} (${e.dur})`],202:e=>["signals",e.op==="|"?"OR":"AND"],203:({criteria:e,result:t,explanation:r})=>["signals",`${e.type}: ${r} is ${t.result} [${t.changed?"CHANGED":"unchanged"}]`],204:e=>["signals",`group result: ${e.result} [${e.changed?"CHANGED":"unchanged"}]`],300:e=>["personalization",`executing personalization '${e.name}'`],301:({id:e,op:t})=>["personalization",`testing variation ${e} (${t==="|"?"OR":"AND"})`],302:({matched:e,description:t})=>["personalization",`${t} is ${e}`],303:e=>["personalization",e?"selected variation":"did not select variation"],400:e=>["testing",`executing A/B test '${e}'`],401:e=>["testing",`${e} is not registered in the manifest; it will not be run.`],402:({missingVariant:e,variants:t})=>["testing",`test variation '${e}' previously assigned to the visitor for this test no longer exists as a variant. It will be removed. This may indicate changing test variations after publishing a test, which will make results invalid. Known variants: ${t.join(", ")}`],403:e=>["testing",`assigned new test variant '${e}'`],404:e=>["testing",`displaying variation '${e}'`],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"]};import Ve from"rfdc";var Ee=Ve();function Te(e,t){let r=typeof document=="undefined",{enableOnServer:i=!1}=t!=null?t:{};return([n,...s])=>{if(!ut(e,n)||r&&!i)return;let[o,...u]=s,d=console[n];if(u[0]==="GROUP"&&(u.shift(),d=console.groupCollapsed),u[0]==="ENDGROUP"){console.groupEnd();return}let c=ee[o],h="";switch(n){case"debug":h="\u{1F41E}";break;case"info":h="\u{1F4AC}";break;case"warn":h="\u26A0\uFE0F";break;case"error":h="\u{1F4A5}";break}let g=h;if(!c){d(`${g} unknown event ID ${o}. Log messages data may be older than Uniform Context package.`,...u);return}let[D,b,...L]=c(...u);d(`${g}[${D}] ${b}
|
3
|
+
`,...L.map(Ee))}}function hi(e,t){return{logDrain:Te(e,t)}}l();var ke=(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))(ke||{}),vi="nesitag";l();var Vt=typeof top!="undefined";function yi(){return{logDrain:e=>{!Vt||top==null||top.postMessage({type:"uniform:context:log",message:e},window.location.origin)},init:e=>{let t=[],r=[],i=()=>{!Vt||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)},n=o=>{!o.changed||(t.push(o),i())},s=o=>{!o.variantAssigned||(r.push(o),i())};if(Vt){window.__UNIFORM_DEVTOOLS_CONTEXT_INSTANCE__=e;try{top==null||top.addEventListener("message",async o=>{if(!o.data)return;let u=o.data;await Pe(u,e)})}catch(o){console.warn("Unable to initialize Uniform Context DevTools because it is in a cross-domain iframe.",o)}top==null||top.postMessage({type:"uniform:context:hello",uiVersion:2},window.location.origin),i()}return e.events.on("personalizationResult",n),e.events.on("testResult",s),e.storage.events.on("*",i),()=>{e.storage.events.off("*",i),e.events.off("personalizationResult",n),e.events.off("testResult",s)}}}}async function Pe(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)}export{De as Context,ue as CookieTransitionDataStore,vi as EdgeNodeTagName,de as EdgeTransitionDataStore,H as GroupCriteriaEvaluator,ct as ManifestInstance,se as SERVER_STATE_ID,ke as ScriptType,Y as TransitionDataStore,ae as UNIFORM_DEFAULT_COOKIE_NAME,Ct as VisitorDataStore,Pt as computeAggregateDimensions,Ut as cookieEvaluator,be as createConsoleLogDrain,Te as createDebugConsoleLogDrain,Vr as createLinearDecay,It as currentPageEvaluator,rt as emptyVisitorData,li as enableConsoleLogDrain,yi as enableContextDevTools,hi as enableDebugConsoleLogDrain,Mt as evaluateVariantMatch,zt as eventEvaluator,U as explainStringMatch,dt as explainStringMatchCriteria,et as getEnrichmentVectorKey,T as isStringMatch,ft as pageViewCountDimension,pt as pageViewCountEvaluator,Zt as personalizeVariations,Nt as queryStringEvaluator,Gt as quirkEvaluator,xt as testVariations};
|