1"use strict";(globalThis.webpackChunkcore||=[]).push([[4279],{65050(e,t,i){var r=i(30786),n=(i(25543),i(88005)),s=i.n(n);const o=Math.pow(2,53);function a(e){return"number"==typeof e&&Math.abs(e)<=o}function l(e,t){if(!e)return{};const i={};return u(e,t,i),i}function u(e,t,i){e&&e.forEach(e=>{i[e[t]]=e})}function c(e){return Object.keys(e).map(t=>e[t])}function d(e,t){let i;for(const r of e)if(t(r)){i=r;break}return i}function h(e,...t){let i=0;return e.replace(/%s/g,function(){const e=t[i++],r=typeof e;return"function"===r?e():"string"===r?e:String(e)})}function g(e,t){return e.length===t.length&&e.every((e,i)=>e===t[i])}var f={checkArrayEquality:g,currentTimestamp:function(){return Math.round((new Date).getTime())},isSafeInteger:a,keyBy:l,uuid:function(){return(0,r.A)()},isNumber:function(e){return"number"==typeof e},getTimestamp:function(){return(new Date).getTime()},groupBy:function(e,t){const i={};return e.forEach(e=>{const r=t(e);i[r]=i[r]||[],i[r].push(e)}),c(i)},objectValues:c,objectEntries:function(e){return Object.keys(e).map(t=>[t,e[t]])},find:d,sprintf:h};
vendor: 9,959 bytes, line 1
1class p extends Error{constructor(e,...t){super(),this.resolved=!1,this.name="OptimizelyError",this.baseMessage=e,this.params=t,Object.setPrototypeOf(this,p.prototype)}setMessage(e){this.resolved||(this.message=h(e.resolve(this.baseMessage),...this.params),this.resolved=!0)}}const v="15",y="28",m="44",b="46",E="52",I="53",S={dispatchEvent:function(e){const{params:t,url:i}=e,r=new Blob([JSON.stringify(t)],{type:"application/json"});return navigator.sendBeacon(i,r)?Promise.resolve({}):Promise.reject(new p("62"))}};var x,k;(k=x||(x={}))[k.Debug=0]="Debug",k[k.Info=1]="Info",k[k.Warn=2]="Warn",k[k.Error=3]="Error",x.Debug,x.Info,x.Warn,x.Error;const M={[x.Debug]:"debug",[x.Info]:"info",[x.Warn]:"warn",[x.Error]:"error"},C="28",w=(x.Debug,x.Info,x.Warn,x.Error,Symbol(),Symbol()),O=Symbol(),P=["and","or","not"];function A(e,t){if(Array.isArray(e)){let i=e[0],r=e.slice(1);switch("string"==typeof i&&-1===P.indexOf(i)&&(i="or",r=e),i){case"and":return function(e,t){let i=!1;if(Array.isArray(e)){for(let r=0;r<e.length;r++){const n=A(e[r],t);if(!1===n)return!1;null===n&&(i=!0)}return!i||null}return null}(r,t);case"not":return function(e,t){if(Array.isArray(e)&&e.length>0){const i=A(e[0],t);return null===i?null:!i}return null}(r,t);default:return function(e,t){let i=!1;if(Array.isArray(e)){for(let r=0;r<e.length;r++){const n=A(e[r],t);if(!0===n)return!0;null===n&&(i=!0)}return!!i&&null}return null}(r,t)}}return t(e)}class D{constructor(e,t,i){var r,n;this.sdkKey=null!==(r=e.sdkKey)&&void 0!==r?r:"",this.environmentKey=null!==(n=e.environmentKey)&&void 0!==n?n:"",this.attributes=e.attributes,this.audiences=D.getAudiences(e),this.events=e.events,this.revision=e.revision;const s=(e.featureFlags||[]).reduce((e,t)=>(e[t.id]=t.variables,e),{}),o=D.getVariableIdMap(e),{experimentsMapById:a,experimentsMapByKey:l}=D.getExperimentsMap(e,s,o,i);this.experimentsMap=l,this.featuresMap=D.getFeaturesMap(e,s,a,o),this.datafile=t}getDatafile(){return this.datafile}static getAudiences(e){const t=[],i=[];return(e.typedAudiences||[]).forEach(e=>{t.push({id:e.id,conditions:JSON.stringify(e.conditions),name:e.name}),i.push(e.id)}),(e.audiences||[]).forEach(e=>{-1===i.indexOf(e.id)&&"$opt_dummy_audience"!=e.id&&t.push({id:e.id,conditions:JSON.stringify(e.conditions),name:e.name})}),t}static getSerializedAudiences(e,t){let i="";if(e){let r="";e.forEach(e=>{let n="";if(e instanceof Array)n=D.getSerializedAudiences(e,t),n=`(${n})`;else if(P.indexOf(e)>-1)r=e.toUpperCase();else{const n=t[e]?t[e].name:e;i||"NOT"===r?(r=""===r?"OR":r,i=""===i?`${r} "${t[e].name}"`:i.concat(` ${r} "${n}"`)):i=`"${n}"`}""!==n&&(""!==i||"NOT"===r?(r=""===r?"OR":r,i=""===i?`${r} ${n}`:i.concat(` ${r} ${n}`)):i=i.concat(n))})}return i}static getExperimentAudiences(e,t){return e.audienceConditions?D.getSerializedAudiences(e.audienceConditions,t.audiencesById):""}static mergeFeatureVariables(e,t,i,r,n){const s=(e[i]||[]).reduce((e,t)=>(e[t.key]={id:t.id,key:t.key,type:t.type,value:t.defaultValue},e),{});return(r||[]).forEach(e=>{const i=t[e.id],r={id:e.id,key:i.key,type:i.type,value:n?e.value:i.defaultValue};s[i.key]=r}),s}static getVariationsMap(e,t,i,r){let n={};return n=e.reduce((e,n)=>{const s=D.mergeFeatureVariables(t,i,r,n.variables,n.featureEnabled);return e[n.key]={id:n.id,key:n.key,featureEnabled:n.featureEnabled,variablesMap:s},e},{}),n}static getVariableIdMap(e){let t={};return t=(e.featureFlags||[]).reduce((e,t)=>(t.variables.forEach(t=>{e[t.id]=t}),e),{}),t}static getDeliveryRules(e,t,i,r,n){return r.map(r=>({id:r.id,key:r.key,audiences:D.getExperimentAudiences(r,e),variationsMap:D.getVariationsMap(r.variations,t,n,i)}))}static getRolloutExperimentIds(e){const t=[];return(e||[]).forEach(e=>{e.experiments.forEach(e=>{t.push(e.id)})}),t}static getExperimentsMap(e,t,i,r){const n=this.getRolloutExperimentIds(e.rollouts),s={},o={};return(e.experiments||[]).forEach(a=>{if(-1!==n.indexOf(a.id))return;const l=e.experimentFeatureMap[a.id];let u="";l&&l.length>0&&(u=l[0]);const c=D.getVariationsMap(a.variations,t,i,u.toString()),d={id:a.id,key:a.key,audiences:D.getExperimentAudiences(a,e),variationsMap:c};s[a.id]=d,o[a.key]&&r&&r.warn(`Duplicate experiment keys found in datafile: ${a.key}`),o[a.key]=d}),{experimentsMapById:s,experimentsMapByKey:o}}static getExperimentsKeyMap(e){const t={};for(const i in e){const r=e[i];t[r.key]=r}return t}static getFeaturesMap(e,t,i,r){const n={};return e.featureFlags.forEach(s=>{const o={},a=[];s.experimentIds.forEach(e=>{const t=i[e];t&&(o[t.key]=t),a.push(i[e])});const l=(s.variables||[]).reduce((e,t)=>(e[t.key]={id:t.id,key:t.key,type:t.type,value:t.defaultValue},e),{});let u=[];const c=e.rolloutIdMap[s.rolloutId];c&&(u=D.getDeliveryRules(e,t,s.id,c.experiments,r)),n[s.key]={id:s.id,key:s.key,experimentRules:a,deliveryRules:u,experimentsMap:o,variablesMap:l}}),n}}const F="$opt_bot_filtering",R="$opt_bucketing_id",_="6.6.0",j="feature-test",V="rollout",N="holdout",K="experiment",U="boolean",T="double",L="integer",z="string",B="json",q="Optimizely SDK not configured properly yet.";class H{constructor(e,t,i,r){this.apiKey=e,this.apiHost=t,this.pixelUrl=i,this.segmentsToCheck=r}equals(e){return this.apiHost===e.apiHost&&this.apiKey===e.apiKey&&this.pixelUrl===e.pixelUrl&&g(this.segmentsToCheck,e.segmentsToCheck)}}const J="Running",$="$opt_",G=Object.values({V2:"2",V3:"3",V4:"4"}),Q=(e,t)=>{var i;return null!==(i=e.ruleHoldoutsMap[t])&&void 0!==i?i:[]},W=e=>{const t=[];return function(e){return["and","or","not"].includes(e)}(e)?[]:(Array.isArray(e)?e.forEach(e=>t.push(...W(e))):"qualified"===e.match&&t.push(e.value),t)},Y=function(e,t){const i=e.experimentKeyMap[t];if(!i)throw new p("11",t);return i.status},X=function(e,t){if(e.experimentKeyMap.hasOwnProperty(t)){const i=e.experimentKeyMap[t];if(i)return i}throw new p("2",t)},Z=function(e,t,i){if(!e)return null;const r=d(e.flagVariationsMap[t],e=>e.key===i);return r||null},ee=function(e,t,i){if(e.featureKeyMap.hasOwnProperty(t)){const i=e.featureKeyMap[t];if(i)return i}return null==i||i.error("3",t),null},te=function(e){return!!e.sendFlagDecisions},ie=()=>{};function re(){let e=ie,t=ie;const i=new Promise((i,r)=>{e=i,t=r});return{promise:i,resolve:e,reject:t,then:i.then.bind(i)}}const ne="%s failed to start, reason: %s",se="%s stopped before running";var oe;!function(e){e[e.New=0]="New",e[e.Starting=1]="Starting",e[e.Running=2]="Running",e[e.Stopping=3]="Stopping",e[e.Terminated=4]="Terminated",e[e.Failed=5]="Failed"}(oe||(oe={}));class ae{constructor(e=[]){this.disposable=!1,this.state=oe.New,this.startPromise=re(),this.stopPromise=re(),this.startupLogs=e,this.startPromise.promise.catch(()=>{}),this.stopPromise.promise.catch(()=>{})}makeDisposable(){this.disposable=!0}setLogger(e){this.logger=e}printStartupLogs(){if(this.logger)for(const{level:e,message:t,params:i}of this.startupLogs){const r=M[e];this.logger[r].call(this.logger,t,...i)}}onRunning(){return this.startPromise.promise}onTerminated(){return this.stopPromise.promise}getState(){return this.state}isStarting(){return this.state===oe.Starting}isRunning(){return this.state===oe.Running}isNew(){return this.state===oe.New}isDone(){return[oe.Stopping,oe.Terminated,oe.Failed].includes(this.state)}start(){this.printStartupLogs()}}class le{constructor(){this.id=0,this.listeners={}}on(e,t){var i;this.listeners[e]||(this.listeners[e]=new Map);const r=this.id++;return null===(i=this.listeners[e])||void 0===i||i.set(r,t),()=>{var t;null===(t=this.listeners[e])||void 0===t||t.delete(r)}}emit(e,t){const i=this.listeners[e];i&&i.forEach(e=>{e(t)})}removeListeners(e){var t;null===(t=this.listeners[e])||void 0===t||t.clear()}removeAllListeners(){this.listeners={}}}class ue extends ae{constructor(e){super(),this.eventEmitter=new le,this.jsonSchemaValidator=e.jsonSchemaValidator,this.datafile=e.datafile,this.datafileManager=e.datafileManager,e.logger&&this.setLogger(e.logger)}setLogger(e){var t;this.logger=e,this.logger.setName("ProjectConfigManager"),null===(t=this.datafileManager)||void 0===t||t.setLogger(e.child())}start(){var e,t,i;this.isNew()&&(this.state=oe.Starting,this.datafile||this.datafileManager?(this.datafile&&this.handleNewDatafile(this.datafile,!0),null===(e=this.datafileManager)||void 0===e||e.start(),null===(t=this.datafileManager)||void 0===t||t.onUpdate(this.handleNewDatafile.bind(this)),null===(i=this.datafileManager)||void 0===i||i.onRunning().catch(e=>{this.handleDatafileManagerError(e)})):this.handleInitError(new Error("sdkKey or datafile must be provided")))}makeDisposable(){var e;super.makeDisposable(),null===(e=this.datafileManager)||void 0===e||e.makeDisposable()}handleInitError(e){var t,i;null===(t=this.logger)||void 0===t||t.error(e),this.state=oe.Failed,null===(i=this.datafileManager)||void 0===i||i.stop(),this.startPromise.reject(e),this.stopPromise.reject(e)}handleDatafileManagerError(e){var t;null===(t=this.logger)||void 0===t||t.error(ne,"DatafileManager",e.message),this.isStarting()&&this.handleInitError(new Error(h(ne,"DatafileManager",e.message)))}handleNewDatafile(e,t=!1){var i,r;if(!this.isDone())try{const t=function(e,t){var i,r;let n;try{n=JSON.parse(e)}catch(e){throw new p("7")}const s=n.version;if(-1===G.indexOf(s))throw new p("35",s);return(null==t?void 0:t.jsonSchemaValidator)?(t.jsonSchemaValidator(n),null===(i=t.logger)||void 0===i||i.info("21")):null===(r=null==t?void 0:t.logger)||void 0===r||r.info("13"),n.region||(n.region="US"),n.__datafileStr=e,(e=>{(e.audiences||[]).forEach(e=>{e.conditions=JSON.parse(e.conditions)}),e.audiencesById={},u(e.audiences,"id",e.audiencesById),u(e.typedAudiences,"id",e.audiencesById)})(n),(e=>{e.attributes=e.attributes||[],e.attributeKeyMap={},e.attributeIdMap={},e.attributes.forEach(t=>{e.attributeKeyMap[t.key]=t,e.attributeIdMap[t.id]=t})})(n),n.eventKeyMap=l(n.events,"key"),(e=>{e.groupIdMap={},(e.groups||[]).forEach(t=>{e.groupIdMap[t.id]=t,(t.experiments||[]).forEach(i=>{i.groupId=t.id,e.experiments.push(i)})})})(n),(e=>
1{e.rolloutIdMap={},(e.rollouts||[]).forEach(t=>{e.rolloutIdMap[t.id]=t,(t.experiments||[]).forEach(t=>{t.isRollout=!0,e.experiments.push(t)})})})(n),(e=>{const t=new Set;Object.keys(e.audiencesById).forEach(i=>{(function(e){return e.conditions?W(e.conditions):[]})(e.audiencesById[i]).forEach(e=>{t.add(e)})});const i=Array.from(t);let r=!1,n="",s="",o="";e.integrationKeyMap={},(e.integrations||[]).forEach(t=>{if(!("key"in t))throw new p("16");e.integrationKeyMap[t.key]=t,"odp"===t.key&&(r=!0,s=s||t.publicKey||"",n=n||t.host||"",o=o||t.pixelUrl||"")}),e.odpIntegrationConfig=r?{integrated:!0,odpConfig:new H(s,n,o,i)}:{integrated:!1}})(n),(e=>{e.experimentKeyMap={},e.experimentIdMap={},e.variationIdMap={},e.variationVariableUsageMap={},(e.experiments||[]).forEach(t=>{e.experimentKeyMap[t.key]=t,e.experimentIdMap[t.id]=t,t.variationKeyMap={},(t.variations||[]).forEach(i=>{t.variationKeyMap[i.key]=i,e.variationIdMap[i.id]=i,i.variables&&(e.variationVariableUsageMap[i.id]=l(i.variables,"id"))})})})(n),(e=>{e.experimentFeatureMap={},e.featureKeyMap={},e.flagRulesMap={},e.flagVariationsMap={},(e.featureFlags||[]).forEach(t=>{e.featureKeyMap[t.key]=t,t.variableKeyMap={}
vendor: 5,713 bytes, line 1
1,t.variables.forEach(e=>{e.type===z&&e.subType===B&&(e.type=B,delete e.subType),t.variableKeyMap[e.key]=e});const i=[],r={},n=function(e,t){if(!t.rolloutId)return null;const i=e.rolloutIdMap[t.rolloutId];if(!i||!i.experiments||0===i.experiments.length)return null;const r=i.experiments[i.experiments.length-1];return r.variations&&0!==r.variations.length?r.variations[0]:null}(e,t);(t.experimentIds||[]).forEach(s=>{e.experimentFeatureMap[s]=e.experimentFeatureMap[s]||[],e.experimentFeatureMap[s].push(t.id);const o=e.experimentIdMap[s];i.push(o),o&&"fr"===o.type&&n&&(o.variations.push(n),o.trafficAllocation.push({entityId:n.id,endOfRange:1e4}),o.variationKeyMap[n.key]=n),(o.variations||[]).forEach(e=>{r[e.id]=e})});const s=e.rolloutIdMap[t.rolloutId];s&&(s.experiments||[]).forEach(e=>{i.push(e),(e.variations||[]).forEach(e=>{r[e.id]=e})}),e.flagRulesMap[t.key]=i,e.flagVariationsMap[t.key]=Object.values(r)})})(n),((e,t)=>{e.holdouts=e.holdouts||[],e.localHoldouts=e.localHoldouts||[];const i={},r={},n=t=>{t.includedFlags=[],t.excludedFlags=[],t.variationKeyMap=l(t.variations,"key"),u(t.variations,"id",e.variationIdMap)};e.holdouts.forEach(e=>{n(e),delete e.includedRules,e.isGlobal=!0,r[e.id]=e}),e.localHoldouts.forEach(e=>{const s=e.includedRules;if(Array.isArray(s)&&0!==s.length){n(e),e.isGlobal=!1,r[e.id]=e;for(const t of s)i[t]||(i[t]=[]),i[t].push(e)}else null==t||t.error("72",e.key)}),e.holdoutIdMap=r,e.ruleHoldoutsMap=i})(n,null==t?void 0:t.logger),n}(e,{jsonSchemaValidator:this.jsonSchemaValidator,logger:this.logger});this.isStarting()&&(this.state=oe.Running,this.startPromise.resolve()),(null===(i=this.projectConfig)||void 0===i?void 0:i.revision)!==t.revision&&(this.projectConfig=t,this.optimizelyConfig=void 0,this.eventEmitter.emit("update",t))}catch(e){null===(r=this.logger)||void 0===r||r.error(e),(this.isStarting()&&!this.datafileManager||this.isStarting()&&!t)&&this.handleInitError(new Error("got invalid datafile"))}}getConfig(){return this.projectConfig}getOptimizelyConfig(){var e,t,i;return!this.optimizelyConfig&&this.projectConfig&&(this.optimizelyConfig=(e=this.projectConfig,t=this.projectConfig.__datafileStr,i=this.logger,new D(e,t,i))),this.optimizelyConfig}onUpdate(e){return this.eventEmitter.on("update",e)}stop(){if(!this.isDone()){if((this.isNew()||this.isStarting())&&this.startPromise.reject(new Error(h(se,"ProjectConfigManager"))),this.state=oe.Stopping,this.eventEmitter.removeAllListeners(),!this.datafileManager)return this.state=oe.Terminated,void this.stopPromise.resolve();this.datafileManager.stop(),this.datafileManager.onTerminated().then(()=>{this.state=oe.Terminated,this.stopPromise.resolve()}).catch(e=>{this.state=oe.Failed,this.stopPromise.reject(e)})}}}function ce(e,t,i,r){return new(i||(i=Promise))(function(n,s){function o(e){try{l(r.next(e))}catch(e){s(e)}}function a(e){try{l(r.throw(e))}catch(e){s(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i(function(e){e(t)})).then(o,a)}l((r=r.apply(e,t||[])).next())})}"function"==typeof SuppressedError&&SuppressedError;const de=e=>e>=200&&e<400;class he extends ae{constructor(e){super(e.startupLogs);const{autoUpdate:t=!1,sdkKey:i,datafileAccessToken:r,customHeaders:n,urlTemplate:s,cache:o,initRetry:a,repeater:l,requestHandler:u,logger:c}=e;this.cache=o,this.cacheKey="opt-datafile-"+i,this.sdkKey=i,this.datafileAccessToken=r,this.customHeaders=n,this.requestHandler=u,this.emitter=new le,this.autoUpdate=t,this.initRetryRemaining=a,this.repeater=l,c&&this.setLogger(c);const d=s||(r?"https://config.optimizely.com/datafiles/auth/%s.json":"https://cdn.optimizely.com/datafiles/%s.json");this.datafileUrl=h(d,this.sdkKey)}setLogger(e){this.logger=e,this.logger.setName("PollingDatafileManager")}onUpdate(e){return this.emitter.on("update",e)}get(){return this.currentDatafile}start(){this.isNew()&&(super.start(),this.state=oe.Starting,this.setDatafileFromCacheIfAvailable(),this.repeater.setTask(this.syncDatafile.bind(this)),this.repeater.start(!0))}makeDisposable(){var e;super.makeDisposable(),this.initRetryRemaining=Math.min(null!==(e=this.initRetryRemaining)&&void 0!==e?e:5,5)}stop(){var e;this.isDone()||((this.isNew()||this.isStarting())&&this.startPromise.reject(new Error(h(se,"PollingDatafileManager"))),this.state=oe.Terminated,this.repeater.stop(),null===(e=this.currentRequest)||void 0===e||e.abort(),this.emitter.removeAllListeners(),this.stopPromise.resolve())}handleInitFailure(){this.state=oe.Failed,this.repeater.stop();const e=new Error("Failed to fetch datafile");this.startPromise.reject(e),this.stopPromise.reject(e)}handleError(e){var t,i;this.isDone()||(e instanceof Error?null===(t=this.logger)||void 0===t||t.error("37",e.message,e):null===(i=this.logger)||void 0===i||i.error("38",e),this.isStarting()&&void 0!==this.initRetryRemaining&&(0===this.initRetryRemaining?this.handleInitFailure():this.initRetryRemaining--))}onRequestRejected(e){return ce(this,void 0,void 0,function*(){return this.handleError(e),Promise.reject(e)})}onRequestResolved(e){return ce(this,void 0,void 0,function*(){if(this.isDone())return;if(this.saveLastModified(e.headers),!de(e.statusCode))return this.handleError(e.statusCode),Promise.reject(new Error);const t=this.getDatafileFromResponse(e);t&&(this.handleDatafile(t),this.autoUpdate&&!this.disposable||this.repeater.stop())})}makeDatafileRequest(){var e,t;const i=Object.assign({},this.customHeaders);return this.lastResponseLastModified&&(i["if-modified-since"]=this.lastResponseLastModified),this.datafileAccessToken&&(null===(e=this.logger)||void 0===e||e.debug("30"),i.Authorization=`Bearer ${this.datafileAccessToken}`),null===(t=this.logger)||void 0===t||t.debug("31",this.datafileUrl,()=>
vendor: 5,268 bytes, line 1
1JSON.stringify(i)),this.requestHandler.makeRequest(this.datafileUrl,i,"GET")}syncDatafile(){return ce(this,void 0,void 0,function*(){return this.currentRequest=this.makeDatafileRequest(),this.currentRequest.responsePromise.then(this.onRequestResolved.bind(this),this.onRequestRejected.bind(this)).finally(()=>this.currentRequest=void 0)})}handleDatafile(e){var t;this.isDone()||(this.currentDatafile=e,null===(t=this.cache)||void 0===t||t.set(this.cacheKey,e),this.isStarting()&&(this.startPromise.resolve(),this.state=oe.Running),this.emitter.emit("update",e))}getDatafileFromResponse(e){var t;if(null===(t=this.logger)||void 0===t||t.debug("32",e.statusCode),304!==e.statusCode)return e.body}saveLastModified(e){var t;const i=e["last-modified"]||e["Last-Modified"];void 0!==i&&(this.lastResponseLastModified=i,null===(t=this.logger)||void 0===t||t.debug("33",this.lastResponseLastModified))}setDatafileFromCacheIfAvailable(){return ce(this,void 0,void 0,function*(){if(this.cache)try{const e=yield this.cache.get(this.cacheKey);e&&this.isStarting()&&this.handleDatafile(e)}catch(e){}})}}class ge{constructor(e,t,i){this.base=e,this.max=t,this.maxJitter=i,this.maxJitter>this.base/2&&(this.maxJitter=this.base/2),this.maxJitter=i,this.current=e}backoff(){const e=this.current+this.maxJitter*Math.random();return this.current=Math.min(2*this.current,this.max),e}reset(){this.current=this.base}}class fe{constructor(e){this.value=e}backoff(){return this.value}reset(){}}class pe{constructor(e,t){this.failureCount=0,this.running=!1,this.interval=e,this.backoffController=t}isRunning(){return this.running}handleSuccess(){var e;this.failureCount=0,null===(e=this.backoffController)||void 0===e||e.reset(),this.setTimer(this.interval)}handleFailure(){var e,t;this.failureCount++;const i=null!==(t=null===(e=this.backoffController)||void 0===e?void 0:e.backoff())&&void 0!==t?t:this.interval;this.setTimer(i)}setTimer(e){this.running&&(this.timeoutId=setTimeout(this.executeTask.bind(this),e))}executeTask(){this.task&&this.task(this.failureCount).then(this.handleSuccess.bind(this),this.handleFailure.bind(this))}start(e){var t;this.running=!0,e?(t=this.executeTask.bind(this),"function"==typeof queueMicrotask?queueMicrotask(t):Promise.resolve().then(t)):this.setTimer(this.interval)}stop(){this.running=!1,clearInterval(this.timeoutId)}reset(){var e;this.failureCount=0,null===(e=this.backoffController)||void 0===e||e.reset(),this.stop()}setTask(e){this.task=e}}const ve=e=>{const t=[];if(!e||"object"!=typeof e)throw new Error("Invalid store");for(const i of["set","get","remove","getKeys"])"function"!=typeof e[i]&&t.push("Invalid store method %s".replace("%s",i));if(t.length>0)throw new Error(t.join(", "))},ye="Invalid config manager",me=Symbol(),be=e=>{var t;e.cache&&ve(e.cache);const i=null!==(t=e.updateInterval)&&void 0!==t?t:3e5,r=new ge(1e3,i,500),n=new pe(i,r),s=[];i<3e4&&s.push({level:x.Warn,message:"Polling intervals below 30 seconds are not recommended.",params:[]});const o={sdkKey:e.sdkKey,autoUpdate:e.autoUpdate,urlTemplate:e.urlTemplate,datafileAccessToken:e.datafileAccessToken,customHeaders:e.customHeaders,requestHandler:e.requestHandler,cache:e.cache,repeater:n,startupLogs:s},a=new he(o);return new ue({datafile:e.datafile,datafileManager:a,jsonSchemaValidator:e.jsonSchemaValidator})};class Ee{constructor(){this.operation="sync"}}class Ie{constructor(){this.operation="async"}}const Se=(e,t)=>e instanceof Ee?e.getBatched(t):t.map(t=>e.get(t)),xe=(e,t)=>e instanceof Ie?e.getBatched(t):Promise.all(t.map(t=>e.get(t)));class ke extends Ee{constructor(e,t,i,r){super(),this.operation="sync",this.store=e,this.prefix=t,this.transformGet=i,this.transformSet=r}addPrefix(e){return`${this.prefix}${e}`}removePrefix(e){return e.substring(this.prefix.length)}set(e,t){return this.store.set(this.addPrefix(e),this.transformSet(t))}get(e){const t=this.store.get(this.addPrefix(e));return t?this.transformGet(t):void 0}remove(e){return this.store.remove(this.addPrefix(e))}getInternalKeys(){return this.store.getKeys().filter(e=>e.startsWith(this.prefix))}getKeys(){return this.getInternalKeys().map(e=>this.removePrefix(e))}getBatched(e){return Se(this.store,e.map(e=>this.addPrefix(e))).map(e=>e?this.transformGet(e):void 0)}}class Me{constructor(e,t,i,r){this.operation="async",this.cache=e,this.prefix=t,this.transformGet=i,this.transformSet=r}addPrefix(e){return`${this.prefix}${e}`}removePrefix(e){return e.substring(this.prefix.length)}set(e,t){return this.cache.set(this.addPrefix(e),this.transformSet(t))}get(e){return ce(this,void 0,void 0,function*(){const t=yield this.cache.get(this.addPrefix(e));return t?this.transformGet(t):void 0})}remove(e){return this.cache.remove(this.addPrefix(e))}getInternalKeys(){return ce(this,void 0,void 0,function*(){return this.cache.getKeys().then(e=>e.filter(e=>e.startsWith(this.prefix)))})}getKeys(){return ce(this,void 0,void 0,function*(){return this.getInternalKeys().then(e=>e.map(e=>this.removePrefix(e)))})}getBatched(e){return ce(this,void 0,void 0,function*(){return(yield xe(this.cache,e.map(e=>this.addPrefix(e)))).map(e=>e?this.transformGet(e):void 0)})}}const Ce={US:"https://logx.optimizely.com/v1/events",EU:"https://eu.logx.optimizely.com/v1/events"};function we(e){const t=[],i=e[0];
1return e.forEach(e=>{if("conversion"===e.type||"impression"===e.type){const i=function(e){const t={snapshots:[],visitor_id:e.user.id,attributes:[]};return e.user.attributes.forEach(e=>{t.attributes.push({entity_id:e.entityId,key:e.key,type:"custom",value:e.value})}),"boolean"==typeof e.context.botFiltering&&t.attributes.push({entity_id:F,key:F,type:"custom",value:e.context.botFiltering}),t}(e);"impression"===e.type?i.snapshots.push(function(e){var t;const{layer:i,experiment:r,variation:n,ruleKey:s,flagKey:o,ruleType:a,enabled:l,cmabUuid:u}=e,c=null==i?void 0:i.id,d=null!==(t=null==r?void 0:r.id)&&void 0!==t?t:"",h=c||d||null;var g;return{decisions:[{campaign_id:h,experiment_id:d,variation_id:(g=null==n?void 0:n.id)&&/^[0-9]+$/.test(g)?g:null,metadata:{flag_key:o,rule_key:s,rule_type:a,variation_key:n?n.key:"",enabled:l,cmab_uuid:u}}],events:[{entity_id:h,timestamp:e.timestamp,key:"campaign_activated",uuid:e.uuid}]}}(e)):"conversion"===e.type&&i.snapshots.push(function(e){const t=Object.assign({},e.tags);delete t.revenue,delete t.value;const i={entity_id:e.event.id,key:e.event.key,timestamp:e.timestamp,uuid:e.uuid};return e.tags&&(i.tags=e.tags),null!=e.value&&(i.value=e.value),null!=e.revenue&&(i.revenue=e.revenue),{events:[i]}}(e)),t.push(i)}}),{client_name:i.context.clientName,client_version:i.context.clientVersion,account_id:i.context.accountId,project_id:i.context.projectId,revision:i.context.revision,anonymize_ip:i.context.anonymizeIP,enrich_decisions:!0,visitors:t}}function Oe(e){var t;const i=(null===(t=e[0])||void 0===t?void 0:t.context.region)||"US";return{url:Ce[i]||Ce.US,httpVerb:"POST",params:we(e)}}const Pe=(e,t,i,r,n)=>{e().then(e=>{t.resolve(e)}).catch(s=>{var o;if(0===n)return void t.reject(s);if(i.cancelled)return void t.reject(new p("60"));const a=null!==(o=null==r?void 0:r.backoff())&&void 0!==o?o:0;setTimeout(()=>{Pe(e,t,i,r,n=void 0===n?void 0:n-1)},a)})},Ae=(e,t,i)=>{const r=re(),n={cancelled:!1};return Pe(e,r,n,t,i),{cancelRetry:()=>{n.cancelled=!0},result:r.promise}};class De{constructor(){this.idSuffixOffset=0}getId(){const e=1e4+this.idSuffixOffset;return this.idSuffixOffset=(this.idSuffixOffset+1)%1e4,`${Date.now()}${e}`}}function Fe(e){var t,i;return null!==(i=null===(t=e.experiment)||void 0===t?void 0:t.key)&&void 0!==i?i:""}function Re(e){var t,i;return null!==(i=null===(t=e.variation)||void 0===t?void 0:t.key)&&void 0!==i?i:""}function _e(e){var t,i;return null!==(i=null===(t=e.variation)||void 0===t?void 0:t.featureEnabled)&&void 0!==i&&i}const je={ACTIVATE:"ACTIVATE",DECISION:"DECISION",LOG_EVENT:"LOG_EVENT",OPTIMIZELY_CONFIG_UPDATE:"OPTIMIZELY_CONFIG_UPDATE",TRACK:"TRACK"};var Ve,Ne;!function(e){e.BOOLEAN="boolean",e.DOUBLE="double",e.INTEGER="integer",e.STRING="string",e.JSON="json"}(Ve||(Ve={})),function(e){e.DISABLE_DECISION_EVENT="DISABLE_DECISION_EVENT",e.ENABLED_FLAGS_ONLY="ENABLED_FLAGS_ONLY",e.IGNORE_USER_PROFILE_SERVICE="IGNORE_USER_PROFILE_SERVICE",e.INCLUDE_REASONS="INCLUDE_REASONS",e.EXCLUDE_VARIABLES="EXCLUDE_VARIABLES",e.IGNORE_CMAB_CACHE="IGNORE_CMAB_CACHE",e.RESET_CMAB_CACHE="RESET_CMAB_CACHE",e.INVALIDATE_USER_CMAB_CACHE="INVALIDATE_USER_CMAB_CACHE"}(Ne||(Ne={}));const Ke=(e,t)=>{const i=e.context,r=t.context;return(i.region||"US")===(r.region||"US")&&i.accountId===r.accountId&&i.projectId===r.projectId&&i.clientName===r.clientName&&i.clientVersion===r.clientVersion&&i.revision===r.revision&&i.anonymizeIP===r.anonymizeIP&&i.botFiltering===r.botFiltering},Ue=({configObj:e,userId:t,userAttributes:i,clientEngine:r,clientVersion:n,type:s})=>({type:s,timestamp:f.currentTimestamp(),uuid:f.uuid(),context:{region:e.region,accountId:e.accountId,projectId:e.projectId,revision:e.revision,clientName:r,clientVersion:n,anonymizeIP:e.anonymizeIP||!1,botFiltering:e.botFiltering},user:{id:t,attributes:Te(e,i)}}),Te=(e,t,i)=>{if(!t)return[];const r=[];return Object.keys(t).forEach(function(n){const s=t[n];if("object"!=typeof s&&void 0!==s&&function(e,t){return"string"==typeof e&&("string"==typeof t||"boolean"==typeof t||f.isNumber(t)&&f.isSafeInteger(t))}(n,s)){const t=function(e,t,i){const r=e.attributeKeyMap[t],n=0===t.indexOf($);return r?(n&&(null==i||i.warn("50",t,$)),r.id):n?t:(null==i||i.warn("27",t),null)}(e,n,i);t&&r.push({entityId:t,key:n,value:s})}}),r};class Le extends ae{constructor(e){var t;super(e.startupLogs),this.eventQueue=[],this.idGenerator=new De,this.runningTask=new Map,this.dispatchingEvents=new Map,this.eventEmitter=new le,this.eventDispatcher=e.eventDispatcher,this.closingEventDispatcher=e.closingEventDispatcher,this.batchSize=e.batchSize,this.eventStore=e.eventStore,this.retryConfig=e.retryConfig,this.dispatchRepeater=e.dispatchRepeater,this.dispatchRepeater.setTask(()=>this.flush()),this.failedEventRepeater=e.failedEventRepeater,null===(t=this.failedEventRepeater)||void 0===t||t.setTask(()=>this.retryFailedEvents()),e.logger&&this.setLogger(e.logger)}setLogger(e){this.logger=e,this.logger.setName("BatchEventProcessor")}onDispatch(e){return this.eventEmitter.on("dispatch",e)}retryFailedEvents(){return ce(this,void 0,void 0,function*(){if(!this.eventStore)return;const e=(yield this.eventStore.getKeys()).filter(e=>!this.dispatchingEvents.has(e)&&!this.eventQueue.find(t=>
vendor: 5,600 bytes, line 1
1t.id===e)),t=yield"sync"===this.eventStore.operation?Se(this.eventStore,e):xe(this.eventStore,e),i=[];if(t.forEach(e=>{e&&i.push(e)}),0==i.length)return;i.sort((e,t)=>e.id<t.id?-1:1);const r=[];let n=[];i.forEach(e=>{(n.length===this.batchSize||n.length>0&&!Ke(n[0].event,e.event))&&(r.push({request:Oe(n.map(e=>e.event)),events:n}),n=[]),n.push(e)}),n.length>0&&r.push({request:Oe(n.map(e=>e.event)),events:n}),r.forEach(e=>{this.dispatchBatch(e,!1)})})}createNewBatch(){if(0==this.eventQueue.length)return;const e=[],t=[];return this.eventQueue.forEach(i=>{e.push(i.event),t.push(i)}),this.eventQueue=[],{request:Oe(e),events:t}}executeDispatch(e,t=!1){return ce(this,void 0,void 0,function*(){return(t&&this.closingEventDispatcher?this.closingEventDispatcher:this.eventDispatcher).dispatchEvent(e).then(e=>e.statusCode&&!de(e.statusCode)?Promise.reject(new p("63",e.statusCode)):Promise.resolve(e))})}dispatchBatch(e,t){const{request:i,events:r}=e;r.forEach(e=>{this.dispatchingEvents.set(e.id,e)});const n=this.retryConfig?Ae(()=>this.executeDispatch(i,t),this.retryConfig.backoffProvider(),this.retryConfig.maxRetries):{result:this.executeDispatch(i,t),cancelRetry:()=>{}};this.eventEmitter.emit("dispatch",i);const s=this.idGenerator.getId();this.runningTask.set(s,n),n.result.then(e=>(r.forEach(e=>{var t;null===(t=this.eventStore)||void 0===t||t.remove(e.id)}),Promise.resolve())).catch(e=>{var t;null===(t=this.logger)||void 0===t||t.error(e)}).finally(()=>{this.runningTask.delete(s),r.forEach(e=>this.dispatchingEvents.delete(e.id))})}flush(e=!1){return ce(this,void 0,void 0,function*(){const t=this.createNewBatch();t&&(this.dispatchRepeater.reset(),this.dispatchBatch(t,e))})}process(e){var t;return ce(this,void 0,void 0,function*(){if(!this.isRunning())return Promise.reject(new p("70","BatchEventProcessor"));const i={id:this.idGenerator.getId(),event:e};yield Promise.resolve(null===(t=this.eventStore)||void 0===t?void 0:t.set(i.id,i)).catch(e=>{var t;null===(t=this.logger)||void 0===t||t.error(e)}),this.eventQueue.length>0&&!Ke(this.eventQueue[0].event,e)&&this.flush(),this.eventQueue.push(i),this.eventQueue.length==this.batchSize?this.flush():this.dispatchRepeater.isRunning()||this.dispatchRepeater.start()})}start(){var e;this.isNew()&&(super.start(),this.state=oe.Running,this.disposable||null===(e=this.failedEventRepeater)||void 0===e||e.start(),this.retryFailedEvents(),this.startPromise.resolve())}makeDisposable(){var e,t,i;super.makeDisposable(),this.batchSize=1,this.retryConfig={maxRetries:Math.min(null!==(t=null===(e=this.retryConfig)||void 0===e?void 0:e.maxRetries)&&void 0!==t?t:5,5),backoffProvider:(null===(i=this.retryConfig)||void 0===i?void 0:i.backoffProvider)||(()=>new ge(200,1e3,500))}}flushImmediately(){return this.isRunning()?this.flush(!0):Promise.resolve()}stop(){var e;this.isDone()||(this.isNew()&&this.startPromise.reject(new Error(h(se,"BatchEventProcessor"))),this.state=oe.Stopping,this.dispatchRepeater.stop(),null===(e=this.failedEventRepeater)||void 0===e||e.stop(),this.flush(!0),this.runningTask.forEach(e=>e.cancelRetry()),Promise.allSettled(Array.from(this.runningTask.values()).map(e=>e.result)).then(()=>{this.state=oe.Terminated,this.stopPromise.resolve()}))}}class ze{constructor(){this.waitPromise=Promise.resolve()}run(e){const t=this.waitPromise.then(e);return this.waitPromise=t.catch(()=>{}),t}}const Be=e=>e,qe="optly_event:";class He extends Ie{constructor(e){super(),this.operation="async",this.serializer=new ze;const{maxSize:t,ttl:i,store:r,logger:n}=e;"sync"===r.operation?this.store=new ke(r,qe,Be,Be):this.store=new Me(r,qe,Be,Be),n&&(n.setName("EventStore"),this.logger=n),this.maxSize=t||500,this.ttl=i||864e6}readKeys(){return ce(this,void 0,void 0,function*(){return this.serializer.run(()=>ce(this,void 0,void 0,function*(){var e;if(void 0===this.keys)try{this.keys=new Set(yield this.getKeys())}catch(t){null===(e=this.logger)||void 0===e||e.error(t)}}))})}set(e,t){var i;return ce(this,void 0,void 0,function*(){return yield this.readKeys(),void 0!==this.keys&&this.keys.size>=this.maxSize?Promise.reject(new p("71",t.event.uuid)):(null===(i=this.keys)||void 0===i||i.add(e),this.store.set(e,Object.assign(Object.assign({},t),{_time:{storedAt:Date.now(),ttl:this.ttl}})))})}processStoredEvent(e,t){if(t){if(void 0===t._time)return t._time={storedAt:Date.now(),ttl:this.ttl},this.set(e,t).catch(()=>{}),t;if(!(t._time.storedAt+this.ttl<=Date.now()))return t;this.remove(e).catch(()=>{})}}get(e){return ce(this,void 0,void 0,function*(){const t=yield this.store.get(e);return this.processStoredEvent(e,t)})}remove(e){var t;return ce(this,void 0,void 0,function*(){yield this.store.remove(e),null===(t=this.keys)||void 0===t||t.delete(e)})}getKeys(){return ce(this,void 0,void 0,function*(){const e=yield this.store.getKeys();return this.keys=new Set(e),e})}getBatched(e){return ce(this,void 0,void 0,function*(){return(yield this.store.getBatched(e)).map((t,i)=>this.processStoredEvent(e[i],t))})}}const Je=Symbol(),$e=e=>{if(!e||"object"!=typeof e||"function"!=typeof e.dispatchEvent)throw new Error("Invalid event dispatcher")};class Ge{constructor(e,t){this.operation="sync",this.data=new Map,this.maxSize=e,this.ttl=t}lookup(e){const t=this.data.get(e);if(t&&(this.data.delete(e),!(t.expiresAt&&t.expiresAt<=Date.now())))return this.data.set(e,t),t.value}save(e,t){if(this.data.delete(e),this.data.size===this.maxSize){const e=this.data.keys().next().value;this.data.delete(e)}this.data.set(e,{value:t,expiresAt:this.ttl?Date.now()+this.ttl:void 0})}remove(e){this.data.delete(e)}reset(){this.data.clear()}
1getKeys(){return Array.from(this.data.keys())}}var Qe,We;!function(e){e.VUID="vuid",e.FS_USER_ID="fs_user_id",e.FS_USER_ID_ALIAS="fs-user-id"}(Qe||(Qe={})),function(e){e.IDENTIFIED="identified",e.INITIALIZED="client_initialized"}(We||(We={}));class Ye{constructor(e,t,i,r){this.type=e,this.action=t,this.identifiers=null!=i?i:new Map,this.data=null!=r?r:new Map}}const Xe="vuid_";var Ze;!function(e){e.IGNORE_CACHE="IGNORE_CACHE",e.RESET_CACHE="RESET_CACHE"}(Ze||(Ze={}));const et=Symbol(),tt=Symbol();class it{constructor(e,t){this.logger=e,this.errorNotifier=t}report(e,...t){if("string"==typeof e)return e=new p(e,...t),void this.report(e);this.errorNotifier&&this.errorNotifier.notify(e),this.logger&&this.logger.error(e)}setLogger(e){this.logger=e}setErrorNotifier(e){this.errorNotifier=e}}class rt{constructor(e){this.removerId=1,this.eventEmitter=new le,this.removers=new Map,this.errorReporter=new it(e.logger,e.errorNotifier)}addNotificationListener(e,t){if(!(c(je).indexOf(e)>-1))return-1;const i=this.removerId++,r=this.eventEmitter.on(e,this.wrapWithErrorReporting(e,t));return this.removers.set(i,r),i}wrapWithErrorReporting(e,t){return i=>{try{t(i)}catch(t){const i=t instanceof Error?t.message:String(t);this.errorReporter.report("0",e,i)}}}removeNotificationListener(e){const t=this.removers.get(e);return!!t&&(t(),this.removers.delete(e),!0)}clearAllNotificationListeners(){this.eventEmitter.removeAllListeners()}clearNotificationListeners(e){this.eventEmitter.removeListeners(e)}sendNotifications(e,t){this.eventEmitter.emit(e,t)}}function nt(e,t,i){return{variationKey:null,enabled:!1,variables:{},ruleKey:null,flagKey:e,userContext:t,reasons:i}}const st="$opt_null_rule_key";
vendor: 47,127 bytes, line 1
1class ot{constructor({optimizely:e,userId:t,attributes:i}){this._qualifiedSegments=null,this.optimizely=e,this.userId=t,this.attributes=Object.assign({},i),this.forcedDecisionsMap={}}setAttribute(e,t){this.attributes[e]=t}getUserId(){return this.userId}getAttributes(){return Object.assign({},this.attributes)}getOptimizely(){return this.optimizely}get qualifiedSegments(){return this._qualifiedSegments}set qualifiedSegments(e){this._qualifiedSegments=e}decide(e,t=[]){return this.optimizely.decide(this.cloneUserContext(),e,t)}decideAsync(e,t){return this.optimizely.decideAsync(this.cloneUserContext(),e,t)}decideForKeys(e,t=[]){return this.optimizely.decideForKeys(this.cloneUserContext(),e,t)}decideForKeysAsync(e,t){return this.optimizely.decideForKeysAsync(this.cloneUserContext(),e,t)}decideAll(e=[]){return this.optimizely.decideAll(this.cloneUserContext(),e)}decideAllAsync(e=[]){return this.optimizely.decideAllAsync(this.cloneUserContext(),e)}trackEvent(e,t){this.optimizely.track(e,this.userId,this.attributes,t)}setForcedDecision(e,t){var i;const r=e.flagKey,n=null!==(i=e.ruleKey)&&void 0!==i?i:st,s={variationKey:t.variationKey};return this.forcedDecisionsMap[r]||(this.forcedDecisionsMap[r]={}),this.forcedDecisionsMap[r][n]=s,!0}getForcedDecision(e){return this.findForcedDecision(e)}removeForcedDecision(e){var t;const i=null!==(t=e.ruleKey)&&void 0!==t?t:st,r=e.flagKey;let n=!1;return this.forcedDecisionsMap.hasOwnProperty(r)&&(this.forcedDecisionsMap[r].hasOwnProperty(i)&&(delete this.forcedDecisionsMap[r][i],n=!0),0===Object.keys(this.forcedDecisionsMap[r]).length&&delete this.forcedDecisionsMap[r]),n}removeAllForcedDecisions(){return this.forcedDecisionsMap={},!0}findForcedDecision(e){var t;let i;const r=null!==(t=e.ruleKey)&&void 0!==t?t:st,n=e.flagKey;if(this.forcedDecisionsMap.hasOwnProperty(e.flagKey)){const e=this.forcedDecisionsMap[n];if(e.hasOwnProperty(r))return i=e[r].variationKey,{variationKey:i}}return null}cloneUserContext(){const e=new ot({optimizely:this.getOptimizely(),userId:this.getUserId(),attributes:this.getAttributes()});return Object.keys(this.forcedDecisionsMap).length>0&&(e.forcedDecisionsMap=Object.assign({},this.forcedDecisionsMap)),e._qualifiedSegments=this._qualifiedSegments,e}fetchQualifiedSegments(e){return ce(this,void 0,void 0,function*(){const t=yield this.optimizely.fetchQualifiedSegments(this.userId,e);return this.qualifiedSegments=t,null!==t})}isQualifiedFor(e){return!!this._qualifiedSegments&&this._qualifiedSegments.indexOf(e)>-1}}const at=Math.pow(2,32),lt=function(e){try{const t=s().v3(e,1)/at;return Math.floor(1e4*t)}catch(t){throw new p("5",e,t.message)}},ut="User %s is not in any experiment of group %s.",ct="User %s is not in experiment %s of group %s.",dt="User %s is in experiment %s of group %s.",ht="Assigned bucket %s to user with bucketing ID %s.",gt="Bucketed into an invalid variation ID. Returning null.",ft=function(e){var t,i,r,n,s;const o=[],a=e.experimentIdMap[e.experimentId],l=null==a?void 0:a.groupId;if(l){const n=e.groupIdMap[l];if(!n)throw new p("13",l);if("random"===n.policy){const s=pt(n,e.bucketingId,e.userId,e.logger);if(null===s)return null===(t=e.logger)||void 0===t||t.info(ut,e.userId,l),o.push([ut,e.userId,l]),{result:null,reasons:o};if(s!==e.experimentId)return null===(i=e.logger)||void 0===i||i.info(ct,e.userId,e.experimentKey,l),o.push([ct,e.userId,e.experimentKey,l]),{result:null,reasons:o};null===(r=e.logger)||void 0===r||r.info(dt,e.userId,e.experimentKey,l),o.push([dt,e.userId,e.experimentKey,l])}}const u=`${e.bucketingId}${e.experimentId}`,c=lt(u);null===(n=e.logger)||void 0===n||n.debug(ht,c,e.userId),o.push([ht,c,e.userId]);const d=vt(c,e.trafficAllocationConfig);return e.validateEntity&&null!==d&&!e.variationIdMap[d]?(d&&(null===(s=e.logger)||void 0===s||s.warn(gt),o.push([gt])),{result:null,reasons:o}):{result:d,reasons:o}},pt=function(e,t,i,r){const n=`${t}${e.id}`,s=lt(n);null==r||r.debug(ht,s,i);const o=e.trafficAllocation;return vt(s,o)},vt=function(e,t){for(let i=0;i<t.length;i++)if(e<t[i].endOfRange)return t[i].entityId;return null};function yt(e){return/^\d+$/.test(e)}function mt(e){const t=e.indexOf("-"),i=e.indexOf("+");return!(t<0)&&(i<0||t<i)}function bt(e){const t=e.indexOf("-"),i=e.indexOf("+");return!(i<0)&&(t<0||i<t)}function Et(e,t){let i=e,r="";if(function(e){return/\s/.test(e)}(e))return null==t||t.warn(m,e),null;if(mt(e)?(i=e.substring(0,e.indexOf("-")),r=e.substring(e.indexOf("-")+1)):bt(e)&&(i=e.substring(0,e.indexOf("+")),r=e.substring(e.indexOf("+")+1)),"string"!=typeof i||"string"!=typeof r)return null;const n=i.split(".").length-1;if(n>2)return null==t||t.warn(m,e),null;const s=i.split(".");if(s.length!=n+1)return null==t||t.warn(m,e),null;for(const i of s)if(!yt(i))return null==t||t.warn(m,e),null;return r&&s.push(r),s}const It="exact",St="exists",xt="semver_eq",kt="semver_ge",Mt="semver_gt",Ct="semver_le",wt="semver_lt",Ot="substring",Pt=[It,St,"gt","ge","lt","le",Ot,xt,wt,Ct,Mt,kt],At={};At[It]=Rt,At[St]=function(e,t,i){return null!=t.getAttributes()[e.name]},At.gt=function(e,t,i){const r=t.getAttributes()[e.name],n=e.value;return _t(e,t,i)&&null!==n?r>n:null},At.ge=function(e,t,i){const r=t.getAttributes()[e.name],n=e.value;return _t(e,t,i)&&null!==n?r>=n:null},At.lt=function(e,t,i){const r=t.getAttributes()[e.name],n=e.value;return _t(e,t,i)&&null!==n?r<n:null},At.le=function(e,t,i){const r=t.getAttributes()[e.name],n=e.value;return _t(e,t,i)&&null!==n?r<=n:null},At[Ot]=function(e,t,i){const r=t.getAttributes(),n=e.name,s=r[e.name],o=typeof s,a=e.value;return"string"!=typeof a?(null==i||i.warn(E,JSON.stringify(e)),null):null===s?(null==i||i.debug(C,JSON.stringify(e),n),null):"string"!=typeof s?(null==i||i.warn(I,JSON.stringify(e),o,n),null):-1!==s.indexOf(a)},At[xt]=function(e,t,i){const r=jt(e,t,i);return null===r?null:0===r},At[Mt]=function(e,t,i){const r=jt(e,t,i);return null===r?null:r>0},At[kt]=function(e,t,i){const r=jt(e,t,i);return null===r?null:r>=0},At[wt]=function(e,t,i){const r=jt(e,t,i);return null===r?null:r<0},At[Ct]=function(e,t,i){const r=jt(e,t,i);return null===r?null:r<=0};const Dt=e=>({evaluate:(t,i)=>function(e,t,i){const r=t.getAttributes(),n=e.match;if(void 0!==n&&-1===Pt.indexOf(n))return null==i||i.warn(m,JSON.stringify(e)),null;const s=e.name;if(!r.hasOwnProperty(s)&&n!=St)return null==i||i.debug("27",JSON.stringify(e),s),null;let o;return o=n&&At[n]||Rt,o(e,t,i)}(t,i,e)});function Ft(e){return"string"==typeof e||"boolean"==typeof e||f.isNumber(e)}function Rt(e,t,i){const r=t.getAttributes(),n=e.value,s=typeof n,o=e.name,a=r[o],l=typeof a;return!Ft(n)||f.isNumber(n)&&!f.isSafeInteger(n)?(null==i||i.warn(E,JSON.stringify(e)),null):null===a?(null==i||i.debug(C,JSON.stringify(e),o),null):Ft(a)&&s===l?f.isNumber(a)&&!f.isSafeInteger(a)?(null==i||i.warn("54",JSON.stringify(e),o),null):n===a:(null==i||i.warn(I,JSON.stringify(e),l,o),null)}function _t(e,t,i){const r=t.getAttributes(),n=e.name,s=r[n],o=typeof s,a=e.value;return null!==a&&f.isSafeInteger(a)?null===s?(null==i||i.debug(C,JSON.stringify(e),n),!1):f.isNumber(s)?!!f.isSafeInteger(s)||(null==i||i.warn("54",JSON.stringify(e),n),!1):(null==i||i.warn(I,JSON.stringify(e),o,n),!1):(null==i||i.warn(E,JSON.stringify(e)),!1)}function jt(e,t,i){const r=t.getAttributes(),n=e.name,s=r[n],o=typeof s,a=e.value;return"string"!=typeof a?(null==i||i.warn(E,JSON.stringify(e)),null):null===s?(null==i||i.debug(C,JSON.stringify(e),n),null):"string"!=typeof s?(null==i||i.warn(I,JSON.stringify(e),o,n),null):function(e,t,i){const r=Et(t,i),n=Et(e,i);if(!r||!n)return null;const s=r.length;for(let i=0;i<n.length;i++){if(s<=i)return mt(e)||bt(e)?1:-1;if(yt(r[i])){const e=parseInt(r[i]),t=parseInt(n[i]);if(e>t)return 1;if(e<t)return-1}else{if(r[i]<n[i])return mt(e)&&!mt(t)?1:-1;if(r[i]>n[i])return!mt(e)&&mt(t)?-1:1}}return mt(t)&&!mt(e)?-1:0}(a,s,i)}const Vt="qualified",Nt=[Vt],Kt={};Kt[Vt]=Tt;const Ut=e=>({evaluate:(t,i)=>function(e,t,i){const r=e.match;if(void 0!==r&&-1===Nt.indexOf(r))return null==i||i.warn(m,JSON.stringify(e)),null;let n;return n=r&&Kt[r]||Tt,n(e,t)}(t,i,e)});function Tt(e,t){return t.isQualifiedFor(e.value)}class Lt{constructor(e,t){this.logger=t,this.typeToEvaluatorMap=Object.assign(Object.assign({},e),{custom_attribute:Dt(this.logger),third_party_dimension:Ut(this.logger)})}evaluate(e,t,i){return!e||0===e.length||!!A(e,e=>{var r,n;const s=t[e];if(s){null===(r=this.logger)||void 0===r||r.debug("25",e,JSON.stringify(s.conditions));const t=A(s.conditions,this.evaluateConditionWithUserAttributes.bind(this,i)),o=null===t?"UNKNOWN":t.toString().toUpperCase();return null===(n=this.logger)||void 0===n||n.debug("26",e,o),t}return null})}evaluateConditionWithUserAttributes(e,t){var i,r;const n=this.typeToEvaluatorMap[t.type];if(!n)return null===(i=this.logger)||void 0===i||i.warn("43",JSON.stringify(t)),null;try{return n.evaluate(t,e)}catch(e){null===(r=this.logger)||void 0===r||r.error("1",t.type,e.message)}return null}}function zt(e){return"string"==typeof e&&""!==e}class Bt{constructor(e,t){this.op=e,this.val=t}get(){return this.val}then(e){if("sync"===this.op){const t=e(this.val);return Bt.of(this.op,t.get())}return Bt.of(this.op,this.val.then(e))}static of(e,t){if("sync"===e){if((e=>e&&"function"==typeof e.then)(t))throw new p("Promise value is not allowed in sync operation");return new Bt(e,t)}return new Bt(e,Promise.resolve(t))}}Bt.all=(e,t)=>{if("sync"===e){const i=t.map(e=>e.get());return Bt.of(e,i)}const i=t.map(e=>e.get());return Bt.of(e,Promise.all(i))};const qt="Experiment %s is not running.",Ht='Returning previously activated variation "%s" of experiment "%s" for user "%s" from user profile.',Jt="User %s does not meet conditions to be in experiment %s.",$t="User %s is in no variation of experiment %s.",Gt="User %s is in variation %s of experiment %s.",Qt="User %s is forced in variation %s.",Wt="Variation key %s is not in datafile. Not activating user %s.",Yt='Evaluating audiences for %s "%s": %s.',Xt="Audiences for %s %s collectively evaluated to %s.",Zt="User %s is in rollout of feature %s.",ei="User %s is not in rollout of feature %s.",ti="Feature %s is not attached to any experiments.",ii="User %s does not meet conditions for targeting rule %s.",ri="User %s not bucketed into targeting rule %s due to traffic allocation. Trying everyone rule.",ni="User %s bucketed into targeting rule %s.",si="There is no rollout of feature %s.",oi="Invalid rollout ID %s attached to feature %s",ai="Rollout of feature %s has no experiments",li="Experiment key %s is improperly formatted.",ui="Variation %s is mapped to experiment %s and user %s in the forced variation map.",ci="User %s meets conditions for targeting rule %s.",di="Variation (%s) is mapped to flag (%s), rule (%s) and user (%s) in the forced decision map.",hi="Variation (%s) is mapped to flag (%s) and user (%s) in the forced decision map.",gi="Invalid variation is mapped to flag (%s), rule (%s) and user (%s) in the forced decision map.",fi="Invalid variation is mapped to flag (%s) and user (%s) in the forced decision map.",pi="Failed to fetch CMAB data for experiment %s.",vi="Holdout %s is not running.",yi="User %s meets conditions for holdout %s.",mi="User %s does not meet conditions for holdout %s.",bi="User %s is in variation %s of holdout %s.",Ei="User %s is in no holdout variation.",Ii='Holdout "%s" has excludeTargetedDeliveries enabled, continuing to rollout evaluation.';class Si{constructor(e){var t,i,r;this.logger=e.logger,null===(t=this.logger)||void 0===t||t.setName("DecisionService"),this.audienceEvaluator=(i=e.UNSTABLE_conditionEvaluators,r=this.logger,new Lt(i,r)),this.forcedVariationMap={},this.userProfileService=e.userProfileService,this.userProfileServiceAsync=e.userProfileServiceAsync,this.cmabService=e.cmabService}isCmab(e){return!!e.cmab}resolveVariation(e,t,i,r,n,s){var o,a,l;const u=r.getUserId(),c=i.key;if(!function(e,t){return Y(e,t)===J}(t,c))return null===(o=this.logger)||void 0===o||o.info(qt,c),Bt.of(e,{result:{},reasons:[[qt,c]]});const d=[],h=this.getForcedVariation(t,c,u);d.push(...h.reasons);const g=h.result;if(g)return Bt.of(e,{result:{variationKey:g},reasons:d});const f=this.getWhitelistedVariation(i,u);d.push(...f.reasons);let p=f.result;if(p)return Bt.of(e,{result:{variationKey:p.key},reasons:d});if(s&&(p=this.getStoredVariation(t,i,u,s.userProfile),p))return null===(a=this.logger)||void 0===a||a.info(Ht,p.key,c,u),d.push([Ht,p.key,c,u]),Bt.of(e,{result:{variationKey:p.key},reasons:d});const v=this.checkIfUserIsInAudience(t,i,K,r,"");return d.push(...v.reasons),v.result?(this.isCmab(i)?this.getDecisionForCmabExperiment(e,t,i,r,n):this.getDecisionFromBucketer(e,t,i,r)).then(r=>{var n,o;if(d.push(...r.reasons),r.error)return Bt.of(e,{error:!0,result:{},reasons:d});const a=r.result.variationId;return p=a?t.variationIdMap[a]:null,p?(null===(o=this.logger)||void 0===o||o.info(Gt,u,p.key,c),d.push([Gt,u,p.key,c]),s&&!this.isCmab(i)&&this.updateUserProfile(i,p,s),Bt.of(e,{result:{variationKey:p.key,cmabUuid:r.result.cmabUuid},reasons:d})):(null===(n=this.logger)||void 0===n||n.debug($t,u,c),d.push([$t,u,c]),Bt.of(e,{result:{},reasons:d}))}):(null===(l=this.logger)||void 0===l||l.info(Jt,u,c),d.push([Jt,u,c]),Bt.of(e,{result:{},reasons:d}))}getDecisionForCmabExperiment(e,t,i,r,n){if("sync"===e)return Bt.of(e,{error:!1,result:{},reasons:[["CMAB is not supported in sync mode."]]});const s=r.getUserId(),o=r.getAttributes(),a=this.getBucketingId(s,o),l=this.buildBucketerParams(t,i,a,s),u=ft(l);if("$"!==u.result)return Bt.of(e,{error:!1,result:{},reasons:u.reasons});const c=this.cmabService.getDecision(t,r,i.id,n).then(e=>({error:!1,result:e,reasons:[]})).catch(e=>{var t;return null===(t=this.logger)||void 0===t||t.error(pi,i.key),{error:!0,result:{},reasons:[[pi,i.key]]}});return Bt.of(e,c)}getDecisionFromBucketer(e,t,i,r){const n=r.getUserId(),s=r.getAttributes(),o=this.getBucketingId(n,s),a=this.buildBucketerParams(t,i,o,n),l=ft(a);return Bt.of(e,{result:{variationId:l.result||void 0},reasons:l.reasons})}getVariation(e,t,i,r={}){const n=r[Ne.IGNORE_USER_PROFILE_SERVICE]?void 0:{isProfileUpdated:!1,userProfile:this.resolveExperimentBucketMap("sync",i.getUserId(),i.getAttributes()).get()},s=this.resolveVariation("sync",e,t,i,r,n).get();return n&&this.saveUserProfile("sync",i.getUserId(),n),{result:s.result.variationKey||null,reasons:s.reasons}}resolveExperimentBucketMap(e,t,i={}){const r=i.$opt_experiment_bucket_map||{};return this.getUserProfile(e,t).then(t=>{const i=(null==t?void 0:t.experiment_bucket_map)||{};return Bt.of(e,Object.assign(Object.assign({},i),r))})}getWhitelistedVariation(e,t){var i,r;const n=[];if(e.forcedVariations&&e.forcedVariations.hasOwnProperty(t)){const s=e.forcedVariations[t];return e.variationKeyMap.hasOwnProperty(s)?(null===(i=this.logger)||void 0===i||i.info(Qt,t,s),n.push([Qt,t,s]),{result:e.variationKeyMap[s],reasons:n}):(null===(r=this.logger)||void 0===r||r.error(Wt,s,t),n.push([Wt,s,t]),{result:null,reasons:n})}return{result:null,reasons:n}}checkIfUserIsInAudience(e,t,i,r,n){var s,o;const a=[],l=t.audienceConditions||t.audienceIds,u=e.audiencesById;null===(s=this.logger)||void 0===s||s.debug(Yt,i,n||t.key,JSON.stringify(l)),a.push([Yt,i,n||t.key,JSON.stringify(l)]);const c=this.audienceEvaluator.evaluate(l,u,r);return null===(o=this.logger)||void 0===o||o.info(Xt,i,n||t.key,c.toString().toUpperCase()),a.push([Xt,i,n||t.key,c.toString().toUpperCase()]),{result:c,reasons:a}}buildBucketerParams(e,t,i,r){let n=!0,s=t.trafficAllocation;return"cmab"in t&&t.cmab&&(s=[{entityId:"$",endOfRange:t.cmab.trafficAllocation}],n=!1),{bucketingId:i,experimentId:t.id,experimentKey:t.key,experimentIdMap:e.experimentIdMap,experimentKeyMap:e.experimentKeyMap,groupIdMap:e.groupIdMap,logger:this.logger,trafficAllocationConfig:s,userId:r,variationIdMap:e.variationIdMap,validateEntity:n}}getVariationForHoldout(e,t,i){var r,n,s,o,a;const l=i.getUserId(),u=[];if("Running"!==t.status){const e=[vi,t.key];return u.push(e),null===(r=this.logger)||void 0===r||r.info(vi,t.key),{result:{experiment:null,variation:null,decisionSource:N},reasons:u}}const c=this.checkIfUserIsInAudience(e,t,K,i);if(u.push(...c.reasons),!c.result){const e=[mi,l,t.key];return u.push(e),null===(n=this.logger)||void 0===n||n.info(mi,l,t.key),{result:{experiment:null,variation:null,decisionSource:N},reasons:u}}const d=[yi,l,t.key];u.push(d),null===(s=this.logger)||void 0===s||s.info(yi,l,t.key);const h=i.getAttributes(),g=this.getBucketingId(l,h),f=this.buildBucketerParams(e,t,g,l),p=ft(f);if(u.push(...p.reasons),p.result){const i=e.variationIdMap[p.result];if(i){const e=[bi,l,t.key,i.key];return u.push(e),null===(o=this.logger)||void 0===o||o.info(bi,l,t.key,i.key),{result:{experiment:t,variation:i,decisionSource:N},reasons:u}}}const v=[Ei,l];return u.push(v),null===(a=this.logger)||void 0===a||a.info(Ei,l),{result:{experiment:null,variation:null,decisionSource:N},reasons:u}}getStoredVariation(e,t,i,r){var n;if(null==r?void 0:r.hasOwnProperty(t.id)){const s=r[t.id],o=s.variation_id;if(e.variationIdMap.hasOwnProperty(o))return e.variationIdMap[s.variation_id];null===(n=this.logger)||void 0===n||n.info("11",i,o,t.key)}return null}getUserProfile(e,t){var i;const r={user_id:t,experiment_bucket_map:{}};if(this.userProfileService){try{return Bt.of(e,this.userProfileService.lookup(t))}catch(e){null===(i=this.logger)||void 0===i||i.error("30",t,e.message)}return Bt.of(e,r)}return this.userProfileServiceAsync&&"async"===e?Bt.of(e,this.userProfileServiceAsync.lookup(t).catch(e=>{var i;return null===(i=this.logger)||void 0===i||i.error("30",t,e.message),r})):Bt.of(e,r)}updateUserProfile(e,t,i){i.userProfile&&(i.userProfile[e.id]={variation_id:t.id},i.isProfileUpdated=!0)}saveUserProfile(e,t,i){var r,n;const{userProfile:s,isProfileUpdated:o}=i;if(!s||!o)return Bt.of(e,void 0);if("sync"===e&&!this.userProfileService)return Bt.of(e,void 0);if(this.userProfileService){try{this.userProfileService.save({user_id:t,experiment_bucket_map:s}),null===(r=this.logger)||void 0===r||r.info("10",t)}catch(e){null===(n=this.logger)||void 0===n||n.error("31",t,e.message)}return Bt.of(e,void 0)}return this.userProfileServiceAsync?Bt.of(e,this.userProfileServiceAsync.save({user_id:t,experiment_bucket_map:s}).catch(e=>{var i;null===(i=this.logger)||void 0===i||i.error("31",t,e.message)})):Bt.of(e,void 0)}getVariationsForFeatureList(e,t,i,r={}){return this.resolveVariationsForFeatureList("sync",e,t,i,r).get()}resolveVariationsForFeatureList(e,t,i,r,n){const s=r.getUserId(),o=r.getAttributes();return(n[Ne.IGNORE_USER_PROFILE_SERVICE]?Bt.of(e,void 0):this.resolveExperimentBucketMap(e,s,o).then(t=>Bt.of(e,{isProfileUpdated:!1,userProfile:t}))).then(o=>{const a=i.map(i=>this.resolveVariationForFlag(e,t,i,r,n,o)),l=Bt.all(e,a);return l.then(()=>(o&&this.saveUserProfile(e,s,o),l))})}resolveVariationForFlag(e,t,i,r,n,s){var o;const a=[],l=this.findValidatedForcedDecision(t,r,i.key);if(a.push(...l.reasons),l.result)return Bt.of(e,{result:{variation:l.result,experiment:null,decisionSource:j},reasons:a});const u=t.holdouts;let c;for(const i of u){const n=this.getVariationForHoldout(t,i,r);if(a.push(...n.reasons),n.result.variation){if(i.excludeTargetedDeliveries){null===(o=this.logger)||void 0===o||o.info(Ii,i.key),a.push([Ii,i.key]),c={experiment:i,variation:n.result.variation};break}return Bt.of(e,{result:n.result,reasons:a})}}return(c?Bt.of(e,{reasons:a,result:{experiment:null,variation:null,decisionSource:j}}):this.getVariationForFeatureExperiment(e,t,i,r,n,s)).then(n=>{var s,o;if(n.error||null!==n.result.variation)return Bt.of(e,Object.assign(Object.assign({},n),{reasons:[...a,...n.reasons]}));a.push(...n.reasons);const l=this.getVariationForRollout(t,i,r);a.push(...l.reasons);const u=l.result,d=r.getUserId();return u.variation?(null===(s=this.logger)||void 0===s||s.debug(Zt,d,i.key),a.push([Zt,d,i.key])):(null===(o=this.logger)||void 0===o||o.debug(ei,d,i.key),a.push([ei,d,i.key])),c&&(u.holdout=c),Bt.of(e,{result:u,reasons:a})})}getVariationForFeature(e,t,i,r={}){return this.resolveVariationsForFeatureList("sync",e,[t],i,r).get()[0]}getVariationForFeatureExperiment(e,t,i,r,n,s){var o;return 0===i.experimentIds.length?(null===(o=this.logger)||void 0===o||o.debug(ti,i.key),Bt.of(e,{result:{experiment:null,variation:null,decisionSource:j},reasons:[[ti,i.key]]})):this.traverseFeatureExperimentList(e,t,i,0,r,[],n,s)}traverseFeatureExperimentList(e,t,i,r,n,s,o,a){const l=i.experimentIds;if(r>=l.length)return Bt.of(e,{result:{experiment:null,variation:null,decisionSource:j},reasons:s});const u=function(e,t,i){if(e.experimentIdMap.hasOwnProperty(t)){const i=e.experimentIdMap[t];if(i)return i}return null==i||i.error("12",t),null}(t,l[r],this.logger);return u?this.getVariationFromExperimentRule(e,t,i.key,u,n,o,a).then(l=>{if(s.push(...l.reasons),l.holdoutDecision)return Bt.of(e,{result:l.result,reasons:s});if(l.error)return Bt.of(e,{error:!0,result:{experiment:u,variation:null,decisionSource:j},reasons:s});if(!l.result.variationKey)return this.traverseFeatureExperimentList(e,t,i,r+1,n,s,o,a);const c=l.result.variationKey;let d=u.variationKeyMap[c];return d||(d=Z(t,i.key,c)),Bt.of(e,{result:{cmabUuid:l.result.cmabUuid,experiment:u,variation:d,decisionSource:j},reasons:s})}):this.traverseFeatureExperimentList(e,t,i,r+1,n,s,o,a)}getVariationForRollout(e,t,i){var r,n,s;const o=[];if(!t.rolloutId)return null===(r=this.logger)||void 0===r||r.debug(si,t.key),o.push([si,t.key]),{result:{experiment:null,variation:null,decisionSource:V},reasons:o};const a=e.rolloutIdMap[t.rolloutId];if(!a)return null===(n=this.logger)||void 0===n||n.error(oi,t.rolloutId,t.key),o.push([oi,t.rolloutId,t.key]),{result:{experiment:null,variation:null,decisionSource:V},reasons:o};const l=a.experiments;if(0===l.length)return null===(s=this.logger)||void 0===s||s.error(ai,t.rolloutId),o.push([ai,t.rolloutId]),{result:{experiment:null,variation:null,decisionSource:V},reasons:o};let u=0;for(;u<l.length;){const r=this.getVariationFromDeliveryRule(e,t.key,l,u,i);if(o.push(...r.reasons),r.holdoutDecision)return{reasons:o,result:r.result};const n=r.result,s=r.skipToEveryoneElse;if(n)return{result:{experiment:e.experimentIdMap[l[u].id],variation:n,decisionSource:V},reasons:o};u=s?l.length-1:u+1}return{result:{experiment:null,variation:null,decisionSource:V},reasons:o}}getBucketingId(e,t){var i,r;let n=e;return null!=t&&"object"==typeof t&&t.hasOwnProperty(R)&&("string"==typeof t[R]?(n=String(t[R]),null===(i=this.logger)||void 0===i||i.debug("24",n)):null===(r=this.logger)||void 0===r||r.warn("51")),n}findValidatedForcedDecision(e,t,i,r){var n,s,o,a;const l=[],u=t.getForcedDecision({flagKey:i,ruleKey:r});let c,d=null;const h=t.getUserId();return e&&u&&(c=u.variationKey,d=Z(e,i,c),d?r?(null===(n=this.logger)||void 0===n||n.info(di,c,i,r,h),l.push([di,c,i,r,h])):(null===(s=this.logger)||void 0===s||s.info(hi,c,i,h),l.push([hi,c,i,h])):r?(null===(o=this.logger)||void 0===o||o.info(gi,i,r,h),l.push([gi,i,r,h])):(null===(a=this.logger)||void 0===a||a.info(fi,i,h),l.push([fi,i,h]))),{result:d,reasons:l}}removeForcedVariation(e,t,i){var r;if(!e)throw new p("14");if(!this.forcedVariationMap.hasOwnProperty(e))throw new p("29",e);delete this.forcedVariationMap[e][t],null===(r=this.logger)||void 0===r||r.debug("23",i,e)}setInForcedVariationMap(e,t,i){var r;this.forcedVariationMap.hasOwnProperty(e)||(this.forcedVariationMap[e]={}),this.forcedVariationMap[e][t]=i,null===(r=this.logger)||void 0===r||r.debug("15",i,t,e)}getForcedVariation(e,t,i){var r,n,s,o,a,l;const u=[],c=this.forcedVariationMap[i];if(!c)return null===(r=this.logger)||void 0===r||r.debug("16",i),{result:null,reasons:u};let d;try{const i=X(e,t);if(!i.hasOwnProperty("id"))return null===(n=this.logger)||void 0===n||n.error(li,t),u.push([li,t]),{result:null,reasons:u};d=i.id}catch(e){return null===(s=this.logger)||void 0===s||s.error(e),u.push(e.message),{result:null,reasons:u}}const h=c[d];if(!h)return null===(o=this.logger)||void 0===o||o.debug("34",t,i),{result:null,reasons:u};const g=function(e,t){return e.variationIdMap.hasOwnProperty(t)?e.variationIdMap[t].key:null}(e,h);return g?(null===(a=this.logger)||void 0===a||a.debug(ui,g,t,i),u.push([ui,g,t,i])):null===(l=this.logger)||void 0===l||l.debug("34",t,i),{result:g,reasons:u}}setForcedVariation(e,t,i,r){var n,s,o,a,l,u;if(null!=r&&!zt(r))return null===(n=this.logger)||void 0===n||n.error("36"),!1;let c;try{const i=X(e,t);if(!i.hasOwnProperty("id"))return null===(s=this.logger)||void 0===s||s.error(li,t),!1;c=i.id}catch(e){return null===(o=this.logger)||void 0===o||o.error(e),!1}if(null==r)try{return this.removeForcedVariation(i,c,t),!0}catch(e){return null===(a=this.logger)||void 0===a||a.error(e),!1}const d=function(e,t,i){const r=e.experimentKeyMap[t];return r.variationKeyMap.hasOwnProperty(i)?r.variationKeyMap[i].id:null}(e,t,r);if(!d)return null===(l=this.logger)||void 0===l||l.error("20",r,t),!1;try{return this.setInForcedVariationMap(i,c,d),!0}catch(e){return null===(u=this.logger)||void 0===u||u.error(e),!1}}getVariationFromExperimentRule(e,t,i,r,n,s,o){const a=[],l=this.findValidatedForcedDecision(t,n,i,r.key);a.push(...l.reasons);const u=l.result;if(u)return Bt.of(e,{result:{variationKey:u.key},reasons:a});const c=Q(t,r.id);for(const i of c){const r=this.getVariationForHoldout(t,i,n);if(a.push(...r.reasons),r.result.variation)return Bt.of(e,{result:r.result,reasons:a,holdoutDecision:!0})}return this.resolveVariation(e,t,r,n,s,o).then(t=>(a.push(...t.reasons),Bt.of(e,{error:t.error,result:t.result,reasons:a})))}getVariationFromDeliveryRule(e,t,i,r,n){var s,o,a,l;const u=[];let c=!1;const d=i[r],h=this.findValidatedForcedDecision(e,n,t,d.key);u.push(...h.reasons);const g=h.result;if(g)return{result:g,reasons:u,skipToEveryoneElse:c};const f=Q(e,d.id);for(const t of f){const i=this.getVariationForHoldout(e,t,n);if(u.push(...i.reasons),i.result.variation)return{result:i.result,reasons:u,holdoutDecision:!0}}const p=n.getUserId(),v=n.getAttributes(),y=this.getBucketingId(p,v),m=r===i.length-1,b=m?"Everyone Else":r+1;let E,I,S,x=null;const k=this.checkIfUserIsInAudience(e,d,"rule",n,b);var M,C;return u.push(...k.reasons),k.result?(null===(s=this.logger)||void 0===s||s.debug(ci,p,b),u.push([ci,p,b]),I=this.buildBucketerParams(e,d,y,p),S=ft(I),u.push(...S.reasons),E=S.result,E&&(C=E,x=(M=e).variationIdMap.hasOwnProperty(C)?M.variationIdMap[C]:null),x?(null===(o=this.logger)||void 0===o||o.debug(ni,p,b),u.push([ni,p,b])):m||(null===(a=this.logger)||void 0===a||a.debug(ri,p,b),u.push([ri,p,b]),c=!0)):(null===(l=this.logger)||void 0===l||l.debug(ii,p,b),u.push([ii,p,b])),{result:x,reasons:u,skipToEveryoneElse:c}}}class xi extends ae{constructor(e){var t,i,r,n,s,o,a,l,u,c,d;super(),this.cleanupTasks=new Map,this.nextCleanupTaskId=0;let h=e.clientEngine;h||(null===(t=e.logger)||void 0===t||t.info("4",h),h="node-sdk"),this.clientEngine=h,this.clientVersion=e.clientVersion||_,this.errorNotifier=e.errorNotifier,this.logger=e.logger,this.projectConfigManager=e.projectConfigManager,this.errorReporter=new it(this.logger,this.errorNotifier),this.odpManager=e.odpManager,this.vuidManager=e.vuidManager,this.eventProcessor=e.eventProcessor,e.disposable&&(this.projectConfigManager.makeDisposable(),null===(i=this.eventProcessor)||void 0===i||i.makeDisposable(),null===(r=this.odpManager)||void 0===r||r.makeDisposable()),this.logger&&(this.projectConfigManager.setLogger(this.logger.child()),null===(n=this.eventProcessor)||void 0===n||n.setLogger(this.logger.child()),null===(s=this.odpManager)||void 0===s||s.setLogger(this.logger.child()));let g=null!==(o=e.defaultDecideOptions)&&void 0!==o?o:[];Array.isArray(g)||(null===(a=this.logger)||void 0===a||a.debug("5"),g=[]);const f={};let y;if(g.forEach(e=>{var t;Ne[e]?f[e]=!0:null===(t=this.logger)||void 0===t||t.warn("45",e)}),this.defaultDecideOptions=f,this.projectConfigManager=e.projectConfigManager,this.projectConfigManager.onUpdate(e=>{var t;null===(t=this.logger)||void 0===t||t.info("29",e.revision,e.projectId),this.notificationCenter.sendNotifications(je.OPTIMIZELY_CONFIG_UPDATE,void 0),this.updateOdpSettings()}),this.eventProcessor=e.eventProcessor,null===(l=this.eventProcessor)||void 0===l||l.onDispatch(e=>{this.notificationCenter.sendNotifications(je.LOG_EVENT,e)}),this.odpManager=e.odpManager,e.userProfileService)try{(function(e){if("object"==typeof e&&null!==e){if("function"!=typeof e.lookup)throw new p(v,"Missing function 'lookup'");if("function"!=typeof e.save)throw new p(v,"Missing function 'save'");return!0}throw new p(v,"Not an object")})(e.userProfileService)&&(y=e.userProfileService,null===(u=this.logger)||void 0===u||u.info("22"))}catch(e){null===(c=this.logger)||void 0===c||c.warn(e)}var m;this.decisionService=(m={userProfileService:y,userProfileServiceAsync:e.userProfileServiceAsync||void 0,cmabService:e.cmabService,logger:null===(d=this.logger)||void 0===d?void 0:d.child(),UNSTABLE_conditionEvaluators:e.UNSTABLE_conditionEvaluators},new Si(m)),this.notificationCenter=function(e){return new rt(e)}({logger:this.logger,errorNotifier:this.errorNotifier}),this.start()}start(){var e,t;this.isNew()&&(super.start(),this.state=oe.Starting,this.projectConfigManager.start(),null===(e=this.eventProcessor)||void 0===e||e.start(),null===(t=this.odpManager)||void 0===t||t.start(),Promise.all([this.projectConfigManager.onRunning(),this.eventProcessor?this.eventProcessor.onRunning():Promise.resolve(),this.odpManager?this.odpManager.onRunning():Promise.resolve(),this.vuidManager?this.vuidManager.initialize():Promise.resolve()]).then(()=>{var e,t;this.state=oe.Running,this.startPromise.resolve();const i=null===(e=this.vuidManager)||void 0===e?void 0:e.getVuid();i&&(null===(t=this.odpManager)||void 0===t||t.setVuid(i))}).catch(e=>{this.state=oe.Failed,this.errorReporter.report(e),this.startPromise.reject(e)}))}getProjectConfig(){return this.projectConfigManager.getConfig()||null}activate(e,t,i){var r,n;try{const s=this.getProjectConfig();if(!s)return this.errorReporter.report(b,"activate"),null;if(!this.validateInputs({experiment_key:e,user_id:t},i))return this.notActivatingExperiment(e,t);try{const n=this.getVariation(e,t,i);if(null===n)return this.notActivatingExperiment(e,t);if(!function(e,t){return Y(e,t)===J}(s,e))return null===(r=this.logger)||void 0===r||r.debug("12",e),n;const o=X(s,e),a={experiment:o,variation:o.variationKeyMap[n],decisionSource:"experiment"};return this.sendImpressionEvent(a,"",t,!0,i),n}catch(i){return null===(n=this.logger)||void 0===n||n.info("7",t,e),this.errorReporter.report(i),null}}catch(e){return this.errorReporter.report(e),null}}sendImpressionEvent(e,t,i,r,n){var s;if(!this.eventProcessor)return void(null===(s=this.logger)||void 0===s||s.error("19"));const o=this.getProjectConfig();if(!o)return;const a=function({configObj:e,decisionObj:t,userId:i,flagKey:r,enabled:n,userAttributes:s,clientEngine:o,clientVersion:a}){const l=t.decisionSource,u=Fe(t),c=function(e){var t,i;return null!==(i=null===(t=e.experiment)||void 0===t?void 0:t.id)&&void 0!==i?i:null}(t),d=Re(t),h=function(e){var t,i;return null!==(i=null===(t=e.variation)||void 0===t?void 0:t.id)&&void 0!==i?i:null}(t),g=t.cmabUuid,f=null!==c?l===N?"":function(e,t){const i=e.experimentIdMap[t];if(!i)throw new p("12",t);return i.layerId}(e,c):null;return Object.assign(Object.assign({},Ue({configObj:e,userId:i,userAttributes:s,clientEngine:o,clientVersion:a,type:"impression"})),{layer:{id:f},experiment:{id:c,key:u},variation:{id:h,key:d},ruleKey:u,flagKey:r,ruleType:l,enabled:n,cmabUuid:g})}({decisionObj:e,flagKey:t,enabled:r,userId:i,userAttributes:n,clientEngine:this.clientEngine,clientVersion:this.clientVersion,configObj:o});this.eventProcessor.process(a);const l=Oe([a]),u={experiment:null,holdout:null,userId:i,attributes:n,variation:e.variation,logEvent:l};e.experiment&&(void 0===e.experiment.layerId?u.holdout=e.experiment:u.experiment=e.experiment),this.notificationCenter.sendNotifications(je.ACTIVATE,u)}track(e,t,i,r){var n,s,o,a,l;try{if(!this.eventProcessor)return void(null===(n=this.logger)||void 0===n||n.error("19"));const l=this.getProjectConfig();if(!l)return void this.errorReporter.report(b,"track");if(!this.validateInputs({user_id:t,event_key:e},i,r))return;if(!function(e,t){return e.eventKeyMap.hasOwnProperty(t)}(l,e))return null===(s=this.logger)||void 0===s||s.warn("47",e),void(null===(o=this.logger)||void 0===o||o.warn("48",t));const u=function({configObj:e,userId:t,userAttributes:i,clientEngine:r,clientVersion:n,eventKey:s,eventTags:o},a){const l=function(e,t){const i=e.eventKeyMap[t];return i?i.id:null}(e,s),u=o?function(e,t){const i=e.revenue;if(null==i)return null;const r="string"==typeof i?parseInt(i):Math.trunc(i);return isFinite(r)?(null==t||t.info("8",r),r):(null==t||t.info("3",i),null)}(o,a):null,c=o?function(e,t){const i=e.value;if(null==i)return null;const r="string"==typeof i?parseFloat(i):i;return isFinite(r)?(null==t||t.info("9",r),r):(null==t||t.info("2",i),null)}(o,a):null;return Object.assign(Object.assign({},Ue({configObj:e,userId:t,userAttributes:i,clientEngine:r,clientVersion:n,type:"conversion"})),{event:{id:l,key:s},revenue:u,value:c,tags:o})}({eventKey:e,eventTags:r=this.filterEmptyValues(r),userId:t,userAttributes:i,clientEngine:this.clientEngine,clientVersion:this.clientVersion,configObj:l},this.logger);null===(a=this.logger)||void 0===a||a.info("14",e,t),this.eventProcessor.process(u);const c=Oe([u]);this.notificationCenter.sendNotifications(je.TRACK,{eventKey:e,userId:t,attributes:i,eventTags:r,logEvent:c})}catch(e){this.errorReporter.report(e),null===(l=this.logger)||void 0===l||l.error("48",t)}}getVariation(e,t,i){var r,n,s;try{const o=this.getProjectConfig();if(!o)return this.errorReporter.report(b,"getVariation"),null;try{if(!this.validateInputs({experiment_key:e,user_id:t},i))return null;const a=o.experimentKeyMap[e];if(!a||a.isRollout)return null===(r=this.logger)||void 0===r||r.debug("35",e),null;const l=this.decisionService.getVariation(o,a,this.createInternalUserContext(t,i)).result,u=(n=o,s=a.id,n.experimentFeatureMap.hasOwnProperty(s)?"feature-test":"ab-test");return this.notificationCenter.sendNotifications(je.DECISION,{type:u,userId:t,attributes:i||{},decisionInfo:{experimentKey:e,variationKey:l}}),l}catch(e){return this.errorReporter.report(e),null}}catch(e){return this.errorReporter.report(e),null}}setForcedVariation(e,t,i){if(!this.validateInputs({experiment_key:e,user_id:t}))return!1;const r=this.getProjectConfig();if(!r)return!1;try{return this.decisionService.setForcedVariation(r,e,t,i)}catch(e){return this.errorReporter.report(e),!1}}getForcedVariation(e,t){if(!this.validateInputs({experiment_key:e,user_id:t}))return null;const i=this.getProjectConfig();if(!i)return null;try{return this.decisionService.getForcedVariation(i,e,t).result}catch(e){return this.errorReporter.report(e),null}}validateInputs(e,t,i){try{if(e.hasOwnProperty("user_id")){const t=e.user_id;if("string"!=typeof t||null===t||"undefined"===t)throw new p("34","user_id");delete e.user_id}return Object.keys(e).forEach(t=>{if(!zt(e[t]))throw new p("34",t)}),t&&function(e){if("object"!=typeof e||Array.isArray(e)||null===e)throw new p("4");Object.keys(e).forEach(function(t){if(void 0===e[t])throw new p("26",t)})}(t),i&&function(e){if("object"!=typeof e||Array.isArray(e)||null===e)throw new p("10")}(i),!0}catch(e){return this.errorReporter.report(e),!1}}notActivatingExperiment(e,t){var i;return null===(i=this.logger)||void 0===i||i.info("7",t,e),null}filterEmptyValues(e){for(const t in e){const i=t;!e.hasOwnProperty(i)||null!==e[i]&&void 0!==e[i]||delete e[i]}return e}isFeatureEnabled(e,t,i){var r,n;try{const s=this.getProjectConfig();if(!s)return this.errorReporter.report(b,"isFeatureEnabled"),!1;if(!this.validateInputs({feature_key:e,user_id:t},i))return!1;const o=ee(s,e,this.logger);if(!o)return!1;let a={};const l=this.createInternalUserContext(t,i),u=this.decisionService.getVariationForFeature(s,o,l).result,c=u.decisionSource,d=Fe(u),h=Re(u);let g=_e(u);c!==j&&c!==N||(a={experimentKey:d,variationKey:h}),(c===j||c===N||c===V&&te(s))&&this.sendImpressionEvent(u,o.key,t,g,i),!0===g?null===(r=this.logger)||void 0===r||r.info("0",e,t):(null===(n=this.logger)||void 0===n||n.info("1",e,t),g=!1);const f={featureKey:e,featureEnabled:g,source:u.decisionSource,sourceInfo:a};return this.notificationCenter.sendNotifications(je.DECISION,{type:"feature",userId:t,attributes:i||{},decisionInfo:f}),g}catch(e){return this.errorReporter.report(e),!1}}getEnabledFeatures(e,t){try{const i=[],r=this.getProjectConfig();return r?this.validateInputs({user_id:e})?(c(r.featureKeyMap).forEach(r=>{this.isFeatureEnabled(r.key,e,t)&&i.push(r.key)}),i):i:(this.errorReporter.report(b,"getEnabledFeatures"),i)}catch(e){return this.errorReporter.report(e),[]}}getFeatureVariable(e,t,i,r){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,null,i,r):(this.errorReporter.report(b,"getFeatureVariable"),null)}catch(e){return this.errorReporter.report(e),null}}getFeatureVariableForType(e,t,i,r,n){var s;if(!this.validateInputs({feature_key:e,variable_key:t,user_id:r},n))return null;const o=this.getProjectConfig();if(!o)return null;const a=ee(o,e,this.logger);if(!a)return null;const l=function(e,t,i,r){const n=e.featureKeyMap[t];return n?n.variableKeyMap[i]||(null==r||r.error("32",i,t),null):(null==r||r.error("3",t),null)}(o,e,t,this.logger);if(!l)return null;if(i&&l.type!==i)return null===(s=this.logger)||void 0===s||s.warn("49",i,l.type),null;const u=this.createInternalUserContext(r,n),c=this.decisionService.getVariationForFeature(o,a,u).result,d=_e(c),h=this.getFeatureVariableValueFromVariation(e,d,c.variation,l,r);let g={};return c.decisionSource===j&&null!==c.experiment&&null!==c.variation&&(g={experimentKey:c.experiment.key,variationKey:c.variation.key}),this.notificationCenter.sendNotifications(je.DECISION,{type:"feature-variable",userId:r,attributes:n||{},decisionInfo:{featureKey:e,featureEnabled:d,source:c.decisionSource,variableKey:t,variableValue:h,variableType:l.type,sourceInfo:g}}),h}getFeatureVariableValueFromVariation(e,t,i,r,n){var s,o,a,l;const u=this.getProjectConfig();if(!u)return null;let c=r.defaultValue;if(null!==i){const l=function(e,t,i,r){if(!t||!i)return null;if(!e.variationVariableUsageMap.hasOwnProperty(i.id))return null==r||r.error("33",i.id),null;const n=e.variationVariableUsageMap[i.id][t.id];return n?n.value:null}(u,r,i,this.logger);null!==l?t?(c=l,null===(s=this.logger)||void 0===s||s.info("20",c,r.key,e)):null===(o=this.logger)||void 0===o||o.info("18",e,n,c):null===(a=this.logger)||void 0===a||a.info("19",r.key,i.key)}else null===(l=this.logger)||void 0===l||l.info("17",n,r.key,e);return function(e,t,i){let r;switch(t){case U:"true"!==e&&"false"!==e?(null==i||i.error(y,e,t),r=null):r="true"===e;break;case L:r=parseInt(e,10),isNaN(r)&&(null==i||i.error(y,e,t),r=null);break;case T:r=parseFloat(e),isNaN(r)&&(null==i||i.error(y,e,t),r=null);break;case B:try{r=JSON.parse(e)}catch(n){null==i||i.error(y,e,t),r=null}break;default:r=e}return r}(c,r.type,this.logger)}getFeatureVariableBoolean(e,t,i,r){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,U,i,r):(this.errorReporter.report(b,"getFeatureVariableBoolean"),null)}catch(e){return this.errorReporter.report(e),null}}getFeatureVariableDouble(e,t,i,r){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,T,i,r):(this.errorReporter.report(b,"getFeatureVariableDouble"),null)}catch(e){return this.errorReporter.report(e),null}}getFeatureVariableInteger(e,t,i,r){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,L,i,r):(this.errorReporter.report(b,"getFeatureVariableInteger"),null)}catch(e){return this.errorReporter.report(e),null}}getFeatureVariableString(e,t,i,r){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,z,i,r):(this.errorReporter.report(b,"getFeatureVariableString"),null)}catch(e){return this.errorReporter.report(e),null}}getFeatureVariableJSON(e,t,i,r){try{return this.getProjectConfig()?this.getFeatureVariableForType(e,t,B,i,r):(this.errorReporter.report(b,"getFeatureVariableJSON"),null)}catch(e){return this.errorReporter.report(e),null}}getAllFeatureVariables(e,t,i){try{const r=this.getProjectConfig();if(!r)return this.errorReporter.report(b,"getAllFeatureVariables"),null;if(!this.validateInputs({feature_key:e,user_id:t},i))return null;const n=ee(r,e,this.logger);if(!n)return null;const s=this.createInternalUserContext(t,i),o=this.decisionService.getVariationForFeature(r,n,s).result,a=_e(o),l={};n.variables.forEach(i=>{l[i.key]=this.getFeatureVariableValueFromVariation(e,a,o.variation,i,t)});let u={};return o.decisionSource===j&&null!==o.experiment&&null!==o.variation&&(u={experimentKey:o.experiment.key,variationKey:o.variation.key}),this.notificationCenter.sendNotifications(je.DECISION,{type:"all-feature-variables",userId:t,attributes:i||{},decisionInfo:{featureKey:e,featureEnabled:a,source:o.decisionSource,variableValues:l,sourceInfo:u}}),l}catch(e){return this.errorReporter.report(e),null}}getOptimizelyConfig(){try{return this.getProjectConfig()&&this.projectConfigManager.getOptimizelyConfig()||null}catch(e){return this.errorReporter.report(e),null}}flushImmediately(){const e=[];return this.isRunning()?(this.eventProcessor&&e.push(this.eventProcessor.flushImmediately()),this.odpManager&&e.push(this.odpManager.flushImmediately()),Promise.all(e)):Promise.resolve()}close(){return this.stop(),this.onTerminated()}stop(){var e,t;this.isDone()||(this.isRunning()||this.startPromise.reject(new Error(h(se,"Client"))),this.state=oe.Stopping,this.projectConfigManager.stop(),null===(e=this.eventProcessor)||void 0===e||e.stop(),null===(t=this.odpManager)||void 0===t||t.stop(),this.notificationCenter.clearAllNotificationListeners(),this.cleanupTasks.forEach(e=>e()),Promise.all([this.projectConfigManager.onTerminated(),this.eventProcessor?this.eventProcessor.onTerminated():Promise.resolve(),this.odpManager?this.odpManager.onTerminated():Promise.resolve()]).then(()=>{this.state=oe.Terminated,this.stopPromise.resolve()}).catch(e=>{this.errorReporter.report(e),this.state=oe.Failed,this.stopPromise.reject(e)}))}onReady(e){let t;"object"==typeof e&&null!==e&&void 0!==e.timeout&&(t=e.timeout),a(t)||(t=3e4);const i=re(),r=this.nextCleanupTaskId++,n=setTimeout(()=>{this.cleanupTasks.delete(r),i.reject(new Error(h("onReady timeout expired after %s ms",t)))},t);return this.cleanupTasks.set(r,()=>{clearTimeout(n),i.reject(new Error("Instance closed"))}),Promise.race([this.onRunning().then(()=>{clearTimeout(n),this.cleanupTasks.delete(r)}),i])}createUserContext(e,t){var i;const r=null!=e?e:null===(i=this.vuidManager)||void 0===i?void 0:i.getVuid();if(void 0===r||!this.validateInputs({user_id:r}))throw new Error("Invalid identifier");if(!this.validateInputs({},t))throw new Error("Invalid attributes");const n=new ot({optimizely:this,userId:r,attributes:t});return this.onRunning().then(()=>{this.odpManager&&this.isOdpIntegrated()&&this.odpManager.identifyUser(r)}).catch(()=>{}),n}createInternalUserContext(e,t){return new ot({optimizely:this,userId:e,attributes:t})}decide(e,t,i=[]){return this.getProjectConfig()?this.decideForKeys(e,[t],i,!0)[t]:(this.errorReporter.report(b,"decide"),nt(t,e,[q]))}decideAsync(e,t,i=[]){return ce(this,void 0,void 0,function*(){return this.getProjectConfig()?(yield this.decideForKeysAsync(e,[t],i,!0))[t]:(this.errorReporter.report(b,"decide"),nt(t,e,[q]))})}getAllDecideOptions(e){var t;const i=Object.assign({},this.defaultDecideOptions);return Array.isArray(e)?e.forEach(e=>{var t;Ne[e]?i[e]=!0:null===(t=this.logger)||void 0===t||t.warn("45",e)}):null===(t=this.logger)||void 0===t||t.debug("6"),i}generateDecision(e,t,i,r,n,s){var o,a,l,u,c,d,g,f,p,v;const y=e.getUserId(),m=e.getAttributes(),b=s.featureKeyMap[t],E=i.decisionSource,I=null!==(a=null===(o=i.experiment)||void 0===o?void 0:o.key)&&void 0!==a?a:null,S=null!==(u=null===(l=i.experiment)||void 0===l?void 0:l.id)&&void 0!==u?u:null,x=null!==(d=null===(c=i.variation)||void 0===c?void 0:c.key)&&void 0!==d?d:null,k=null!==(f=null===(g=i.variation)||void 0===g?void 0:g.id)&&void 0!==f?f:null,M=_e(i),C={};let w=!1;if(M?null===(p=this.logger)||void 0===p||p.info("0",t,y):null===(v=this.logger)||void 0===v||v.info("1",t,y),n[Ne.EXCLUDE_VARIABLES]||b.variables.forEach(e=>{C[e.key]=this.getFeatureVariableValueFromVariation(t,M,i.variation,e,y)}),!n[Ne.DISABLE_DECISION_EVENT]&&(E===j||E===N||E===V&&te(s))&&(this.sendImpressionEvent(i,t,y,M,m),w=!0),i.holdout&&!n[Ne.DISABLE_DECISION_EVENT]){const e={experiment:i.holdout.experiment,variation:i.holdout.variation,decisionSource:N};this.sendImpressionEvent(e,t,y,_e(e),m),w=!0}let O=[];n[Ne.INCLUDE_REASONS]&&(O=r.map(e=>h(e[0],...e.slice(1))));const P={flagKey:t,enabled:M,variationKey:x,ruleKey:I,variables:C,reasons:O,decisionEventDispatched:w,experimentId:S,variationId:k};return this.notificationCenter.sendNotifications(je.DECISION,{type:"flag",userId:y,attributes:m,decisionInfo:P}),{variationKey:x,enabled:M,variables:C,ruleKey:I,flagKey:t,userContext:e,reasons:O}}decideForKeys(e,t,i=[],r){return this.getDecisionForKeys("sync",e,t,i,r).get()}decideForKeysAsync(e,t,i=[],r){return this.getDecisionForKeys("async",e,t,i,r).get()}getDecisionForKeys(e,t,i,r=[],n){var s;const o={},a={},l={},u=this.getProjectConfig();if(!u)return this.errorReporter.report(b,"decideForKeys"),Bt.of(e,o);if(0===i.length)return Bt.of(e,o);const c=this.getAllDecideOptions(r);n&&delete c[Ne.ENABLED_FLAGS_ONLY];const d=[];for(const e of i){const i=u.featureKeyMap[e];i?d.push(i):(null===(s=this.logger)||void 0===s||s.error("3",e),o[e]=nt(e,t,[h('No flag was found for key "%s".',e)]))}return this.decisionService.resolveVariationsForFeatureList(e,u,d,t,c).then(i=>{for(let e=0;e<d.length;e++){const r=d[e].key,n=i[e];n.error?o[r]=nt(r,t,n.reasons.map(e=>h(e[0],...e.slice(1)))):(a[r]=n.result,l[r]=n.reasons)}for(const e of d){const i=e.key;if(o[i])continue;const r=this.generateDecision(t,i,a[i],l[i],c,u);c[Ne.ENABLED_FLAGS_ONLY]&&!r.enabled||(o[i]=r)}return Bt.of(e,o)})}decideAll(e,t=[]){const i=this.getProjectConfig();if(!i)return this.errorReporter.report(b,"decideAll"),{};const r=Object.keys(i.featureKeyMap);return this.decideForKeys(e,r,t)}decideAllAsync(e,t=[]){return ce(this,void 0,void 0,function*(){const i=this.getProjectConfig();if(!i)return this.errorReporter.report(b,"decideAll"),{};const r=Object.keys(i.featureKeyMap);return this.decideForKeysAsync(e,r,t)})}updateOdpSettings(){const e=this.getProjectConfig();e&&this.odpManager&&this.odpManager.updateConfig(e.odpIntegrationConfig)}sendOdpEvent(e,t,i,r){var n,s;if(this.odpManager)try{const n=new Ye(t||"",e,i,r);this.odpManager.sendEvent(n)}catch(e){null===(s=this.logger)||void 0===s||s.error("22",e)}else null===(n=this.logger)||void 0===n||n.error("24","sendOdpEvent")}isOdpIntegrated(){var e,t,i;return null!==(i=null===(t=null===(e=this.getProjectConfig())||void 0===e?void 0:e.odpIntegrationConfig)||void 0===t?void 0:t.integrated)&&void 0!==i&&i}fetchQualifiedSegments(e,t){var i;
1return ce(this,void 0,void 0,function*(){return this.odpManager?yield this.odpManager.fetchQualifiedSegments(e,t):(null===(i=this.logger)||void 0===i||i.error("24","fetchQualifiedSegments"),null)})}getVuid(){var e;if(this.vuidManager)return this.vuidManager.getVuid();null===(e=this.logger)||void 0===e||e.error("42")}}class ki{constructor(e){this.predictionEndpointTemplate="https://prediction.cmab.optimizely.com/predict/%s",this.requestHandler=e.requestHandler,this.retryConfig=e.retryConfig,e.predictionEndpointTemplate&&(this.predictionEndpointTemplate=e.predictionEndpointTemplate)}fetchDecision(e,t,i,r){var n,s;return ce(this,void 0,void 0,function*(){const o=h(this.predictionEndpointTemplate,e),a=Object.keys(i).map(e=>({id:e,value:i[e],type:"custom_attribute"})),l={instances:[{visitorId:t,experimentId:e,attributes:a,cmabUUID:r}]};return yield this.retryConfig?Ae(()=>this.doFetch(o,JSON.stringify(l)),null===(s=(n=this.retryConfig).backoffProvider)||void 0===s?void 0:s.call(n),this.retryConfig.maxRetries).result:this.doFetch(o,JSON.stringify(l))})}doFetch(e,t){return ce(this,void 0,void 0,function*(){const i=yield this.requestHandler.makeRequest(e,{"Content-Type":"application/json"},"POST",t).responsePromise;if(!de(i.statusCode))return Promise.reject(new p("CMAB decision fetch failed with status: %s",i.statusCode));const r=JSON.parse(i.body);return this.validateResponse(r)?String(r.predictions[0].variation_id):Promise.reject(new p("Invalid CMAB fetch response"))})}validateResponse(e){return e.predictions&&e.predictions.length>0&&e.predictions[0].variation_id}}class Mi{constructor(e){var t;this.serializers=Array.from({length:1e3},()=>new ze),this.cmabCache=e.cmabCache,this.cmabClient=e.cmabClient,this.logger=e.logger,null===(t=this.logger)||void 0===t||t.setName("CmabService")}getSerializerIndex(e,t){const i=this.getCacheKey(e,t),r=s().v3(i);return Math.abs(r)%1e3}getDecision(e,t,i,r){return ce(this,void 0,void 0,function*(){const n=this.getSerializerIndex(t.getUserId(),i);return this.serializers[n].run(()=>this.getDecisionInternal(e,t,i,r))})}getDecisionInternal(e,t,i,r){var n,o,a,l,u,c;return ce(this,void 0,void 0,function*(){const d=t.getUserId(),h=this.filterAttributes(e,t,i);if(r[Ne.IGNORE_CMAB_CACHE])return null===(n=this.logger)||void 0===n||n.debug("36",d,i),this.fetchDecision(i,d,h);r[Ne.RESET_CMAB_CACHE]&&(null===(o=this.logger)||void 0===o||o.debug("37",d,i),this.cmabCache.reset());const g=this.getCacheKey(d,i);r[Ne.INVALIDATE_USER_CMAB_CACHE]&&(null===(a=this.logger)||void 0===a||a.debug("38",d,i),this.cmabCache.remove(g));const f=yield this.cmabCache.lookup(g),p=JSON.stringify(h,Object.keys(h).sort()),v=String(s().v3(p));if(f){if(f.attributesHash===v)return null===(l=this.logger)||void 0===l||l.debug("39",d,i),{variationId:f.variationId,cmabUuid:f.cmabUuid};null===(u=this.logger)||void 0===u||u.debug("40",d,i),this.cmabCache.remove(g)}else null===(c=this.logger)||void 0===c||c.debug("41",d,i);const y=yield this.fetchDecision(i,d,h);return this.cmabCache.save(g,{attributesHash:v,variationId:y.variationId,cmabUuid:y.cmabUuid}),y})}fetchDecision(e,t,i){return ce(this,void 0,void 0,function*(){const n=(0,r.A)();return{variationId:yield this.cmabClient.fetchDecision(e,t,i,n),cmabUuid:n}})}filterAttributes(e,t,i){const r={},n=t.getAttributes(),s=e.experimentIdMap[i];return s&&s.cmab?(s.cmab.attributeIds.forEach(t=>{const i=e.attributeIdMap[t];n.hasOwnProperty(i.key)&&(r[t]=n[i.key])}),r):r}getCacheKey(e,t){return`${e.length}-${e}-${t}`}}class Ci{constructor(e={}){var t;this.logger=e.logger,this.timeout=null!==(t=e.timeout)&&void 0!==t?t:6e4}
1makeRequest(e,t,i,r){const n=new XMLHttpRequest,s=new Promise((s,o)=>{n.open(i,e,!0),this.setHeadersInXhr(t,n),n.onreadystatechange=()=>{if(n.readyState===XMLHttpRequest.DONE){if(0===n.status)return void o(new p("56"));const e=this.parseHeadersFromXhr(n),t={statusCode:n.status,body:n.responseText,headers:e};s(t)}},n.timeout=this.timeout,n.ontimeout=()=>{var e;null===(e=this.logger)||void 0===e||e.warn("55")},n.send(r)});return{responsePromise:s,abort(){n.abort()}}}setHeadersInXhr(e,t){Object.keys(e).forEach(i=>{const r=e[i];"string"==typeof r&&t.setRequestHeader(i,r)})}parseHeadersFromXhr(e){const t=e.getAllResponseHeaders();if(null===t)return{};const i=t.split("\r\n"),r={};return i.forEach(e=>{var t;try{const t=e.indexOf(": ");if(t>-1){const i=e.slice(0,t),n=e.slice(t+2);i&&n&&(r[i]=n)}}catch(i){null===(t=this.logger)||void 0===t||t.warn("66",e)}}),r}}const wi=new class{constructor(e){this.requestHandler=e}dispatchEvent(e){return ce(this,void 0,void 0,function*(){if("POST"!==e.httpVerb)return Promise.reject(new p("61"));const t=JSON.stringify(e.params);return this.requestHandler.makeRequest(e.url,{"content-type":"application/json"},"POST",t).responsePromise})}}(new Ci);class Oi{constructor(){this.operation="sync"}set(e,t){localStorage.setItem(e,JSON.stringify(t))}get(e){const t=localStorage.getItem(e);return t?JSON.parse(t):void 0}remove(e){localStorage.removeItem(e)}clear(){localStorage.clear()}getKeys(){const e=[];for(let t=0;t<localStorage.length;t++){const i=localStorage.key(t);i&&e.push(i)}return e}getBatched(e){return e.map(e=>this.get(e))}}new class{constructor(e,t){this.vuidCacheKey="optimizely-vuid",this.waitPromise=Promise.resolve(),this.cache=e,this.logger=t}setCache(e){this.cache=e,this.vuid=void 0}setLogger(e){this.logger=e}serialize(e){return ce(this,void 0,void 0,function*(){const t=this.waitPromise.then(e,e);return this.waitPromise=t.catch(()=>{}),t})}remove(){return ce(this,void 0,void 0,function*(){return this.serialize(()=>ce(this,void 0,void 0,function*(){this.cache&&(this.vuid=void 0,yield this.cache.remove(this.vuidCacheKey))}))})}load(){return ce(this,void 0,void 0,function*(){return this.vuid?this.vuid:this.serialize(()=>ce(this,void 0,void 0,function*(){if(!this.cache)return;const e=yield this.cache.get(this.vuidCacheKey);if(e&&(e=>e.startsWith(Xe)&&e.length>5)(e))return this.vuid=e,this.vuid;const t=(()=>{const e=(0,r.A)().replace(/-/g,""),t=`${Xe}${e}`;return t.length<=32?t:t.substring(0,32)})();return yield this.cache.set(this.vuidCacheKey,t),this.vuid=t,t}))})}},i.d(t,["Cj",0,e=>{const t={autoUpdate:!1,requestHandler:new Ci};return i=Object.assign(Object.assign({},t),e),{[me]:be(i)};var i},"I9",0,je,"Q_",0,function(e){const t=(e=>{var t,i;const{clientEngine:r,clientVersion:n,jsonSchemaValidator:s,userProfileService:o,userProfileServiceAsync:a,defaultDecideOptions:l,disposable:u,requestHandler:c}=e,d=(e=>{if(!e||"object"!=typeof e)throw new Error(ye);if(!e[me])throw new Error(ye);return e[me]})(e.projectConfigManager),h=(e=>{if(e&&"object"==typeof e)return e[Je]})(e.eventProcessor),g=(e=>{if(e&&"object"==typeof e)return e[et]})(e.odpManager),f=(e=>{if(e&&"object"==typeof e)return e[tt]})(e.vuidManager),p=(e=>{if(e&&"object"==typeof e)return e[O]})(e.errorNotifier),v=(e=>{if(e&&"object"==typeof e)return e[w]})(e.logger),y=new ki({requestHandler:c,retryConfig:{maxRetries:1,backoffProvider:()=>new fe(100)},predictionEndpointTemplate:null===(t=e.cmab)||void 0===t?void 0:t.predictionEndpointTemplate}),m=(null===(i=e.cmab)||void 0===i?void 0:i.cache)?((e,t)=>{const i=(e,t)=>{if(void 0!==e)return t(e)},r={lookup:r=>"sync"===e.operation?i(e.lookup(r),t):e.lookup(r).then(e=>i(e,t)),save:(t,i)=>e.save(t,(e=>JSON.stringify(e))(i))};return Object.setPrototypeOf(r,e),r})(e.cmab.cache,e=>JSON.parse(e)):(()=>{var t,i;const r=(null===(t=e.cmab)||void 0===t?void 0:t.cacheSize)||1e4,n=(null===(i=e.cmab)||void 0===i?void 0:i.cacheTtl)||18e5;return new Ge(r,n)})(),b={cmabService:new Mi({cmabClient:y,cmabCache:m,logger:null==v?void 0:v.child()}),clientEngine:r||"javascript-sdk",clientVersion:n||_,jsonSchemaValidator:s,userProfileService:o,userProfileServiceAsync:a,defaultDecideOptions:l,disposable:u,logger:v,errorNotifier:p,projectConfigManager:d,eventProcessor:h,odpManager:g,vuidManager:f,UNSTABLE_conditionEvaluators:e.UNSTABLE_conditionEvaluators};return new xi(b)})(Object.assign(Object.assign({},e),{requestHandler:new Ci}));if(t){const e="onpagehide"in window?"pagehide":"unload";window.addEventListener(e,()=>{t.flushImmediately()})}return t},"lf",0,(e={})=>{var t;const i=e.eventStore?"async"===(r=e.eventStore).operation?new Me(r,qe,JSON.parse,JSON.stringify):new ke(r,qe,JSON.parse,JSON.stringify):new He({store:new Oi,maxSize:e.batchSize?Math.max(2*e.batchSize,500):500,ttl:e.storeTtl});var r;return((e,t=Le)=>(e=>({[Je]:e}))(((e,t=Le)=>{const{eventDispatcher:i,closingEventDispatcher:r,retryOptions:n,eventStore:s}=e;$e(i),r&&$e(r),s&&ve(s);const o=n?{maxRetries:n.maxRetries,backoffProvider:()=>{var e,t;const i=null!==(e=null==n?void 0:n.minBackoff)&&void 0!==e?e:200,r=null!==(t=null==n?void 0:n.maxBackoff)&&void 0!==t?t:1e3;return new ge(i,r,50)}}:void 0,a=[],{defaultFlushInterval:l,defaultBatchSize:u}=e;let c=l;void 0===e.flushInterval||e.flushInterval<=0?a.push({level:x.Warn,message:"Invalid flushInterval %s, defaulting to %s",params:[e.flushInterval,l]}):c=e.flushInterval;let d=u;return void 0===e.batchSize||e.batchSize<=0?a.push({level:x.Warn,message:"Invalid batchSize %s, defaulting to %s",params:[e.batchSize,u]}):d=e.batchSize,new t({eventDispatcher:i,closingEventDispatcher:r,dispatchRepeater:new pe(c),failedEventRepeater:e.failedEventRetryInterval?new pe(e.failedEventRetryInterval):void 0,retryConfig:o,batchSize:d,eventStore:s,startupLogs:a})})(e,t)))({eventDispatcher:e.eventDispatcher||wi,closingEventDispatcher:e.closingEventDispatcher||(e.eventDispatcher?void 0:S),flushInterval:e.flushInterval,batchSize:e.batchSize,defaultFlushInterval:1e3,defaultBatchSize:10,retryOptions:{maxRetries:null!==(t=e.maxRetries)&&void 0!==t?t:2},failedEventRetryInterval:2e4,eventStore:i,storeTtl:e.storeTtl})}])},50573(e,t,i){i.d(t,{I9:()=>r.I9,Q_:()=>u,WY:()=>p,ov:()=>v});var r=i(65050),n=i(96540),s=i(31635),o=i(19888);const a=Symbol("react-logger"),l=Symbol("react-client-meta");function u(e){let t;e.logger&&(t=e.logger[a],delete e.logger[a]);const i=(0,r.Q_)(Object.assign(Object.assign({},e),{clientEngine:"react-sdk",clientVersion:"4.2.0"})),n=Object.create(i);return n[l]={hasOdpManager:!!e.odpManager,hasVuidManager:!!e.vuidManager,logger:t},n}const c={userContext:null,error:null};class d{constructor(){this.notifyScheduled=!1,this.state=Object.assign({},c),this.listeners=new Set,this.forcedDecisionListeners=new Map,this.allForcedDecisionListeners=new Set}getState(){return this.state}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}setUserContext(e){e&&this.wrapForcedDecisionMethods(e),this.state=Object.assign(Object.assign({},this.state),{userContext:e}),this.notifyListeners()}setError(e){this.state.error!==e&&(this.state=Object.assign(Object.assign({},this.state),{error:e}),this.notifyListeners())}setState(e){this.state=Object.assign(Object.assign({},this.state),e),this.notifyListeners()}refresh(){this.state=Object.assign({},this.state),this.notifyListeners()}reset(){this.state=Object.assign({},c),this.forcedDecisionListeners.clear(),this.allForcedDecisionListeners.clear(),this.notifyListeners()}subscribeForcedDecision(e,t){this.forcedDecisionListeners.has(e)||this.forcedDecisionListeners.set(e,new Set);const i=this.forcedDecisionListeners.get(e);return i.add(t),()=>{i.delete(t),0===i.size&&this.forcedDecisionListeners.delete(e)}}subscribeAllForcedDecisions(e){return this.allForcedDecisionListeners.add(e),()=>{this.allForcedDecisionListeners.delete(e)}}notifyForcedDecision(e){this.notifyPerKeyForcedDecision(e),this.notifyAllForcedDecisionListeners()}notifyPerKeyForcedDecision(e){const t=this.forcedDecisionListeners.get(e);
1t&&t.forEach(e=>e())}notifyAllForcedDecisionListeners(){this.allForcedDecisionListeners.forEach(e=>e())}wrapForcedDecisionMethods(e){const t=new Set,i=e.setForcedDecision.bind(e),r=e.removeForcedDecision.bind(e),n=e.removeAllForcedDecisions.bind(e);e.setForcedDecision=(r,n)=>{const s=i(r,n);return s&&(t.add(r.flagKey),this.state.userContext===e&&this.notifyForcedDecision(r.flagKey)),s},e.removeForcedDecision=i=>{const n=r(i);return n&&(t.delete(i.flagKey),this.state.userContext===e&&this.notifyForcedDecision(i.flagKey)),n},e.removeAllForcedDecisions=()=>{const i=n();return i&&(this.state.userContext===e&&(t.forEach(e=>this.notifyPerKeyForcedDecision(e)),this.notifyAllForcedDecisionListeners()),t.clear()),i}}notifyListeners(){this.notifyScheduled||(this.notifyScheduled=!0,queueMicrotask(()=>{this.notifyScheduled=!1,this.listeners.forEach(e=>{e(this.state)})}))}}function h(e,t){if(e===t)return!0;if(!e||!t)return!1;if(e.length!==t.length)return!1;const i=[...e].sort(),r=[...t].sort();return i.every((e,t)=>e===r[t])}class g{constructor(e){this.requestId=0,this.disposed=!1,this.initialized=!1,this.skipSegments=!1,this.client=e.client,this.onUserContextChange=e.onUserContextChange,this.onError=e.onError,this.meta=this.client[l]}resolveUserContext(e,t,i=!1){if(this.initialized&&this.skipSegments===i&&function(e,t){if(e===t)return!0;if(!e&&!t)return!0;if(!e||!t)return!1;if(e.id!==t.id)return!1;const i=e.attributes||{},r=t.attributes||{},n=Object.keys(i),s=Object.keys(r);if(n.length!==s.length)return!1;for(const e of n)if(i[e]!==r[e])return!1;return!0}(this.prevUser,e)&&h(this.prevSegments,t))return;this.initialized=!0,this.skipSegments=i,this.prevUser=e,this.prevSegments=t;const r=++this.requestId;e?this.createUserContext(r,e,t).catch(e=>{this.isStale(r)||this.onError(e instanceof Error?e:new Error(String(e)))}):this.onUserContextChange(null)}dispose(){this.disposed=!0}createUserContext(e,t,i){return(0,s.sH)(this,void 0,void 0,function*(){if(!(null==t?void 0:t.id)&&this.meta.hasVuidManager&&(yield this.client.onReady(),this.isStale(e)))return;const r=this.client.createUserContext(null==t?void 0:t.id,null==t?void 0:t.attributes);if(void 0===i){if(!this.skipSegments&&this.meta.hasOdpManager){if(yield this.client.onReady(),this.isStale(e))return;if(this.client.isOdpIntegrated()&&(yield r.fetchQualifiedSegments(),this.isStale(e)))return}this.onUserContextChange(r)}else{if(r.qualifiedSegments=i,this.onUserContextChange(r),this.skipSegments)return;if(this.meta.hasOdpManager){if(yield this.client.onReady(),this.isStale(e))return;if(this.client.isOdpIntegrated()){const t=[...i];if(yield r.fetchQualifiedSegments(),this.isStale(e))return;h(t,r.qualifiedSegments)||this.onUserContextChange(r)}}}})}isStale(e){return this.disposed||e!==this.requestId}}const f=(0,n.createContext)(null);function p({client:e,user:t,timeout:i,skipSegments:s=!1,qualifiedSegments:o,children:a}){var l;const u=(0,n.useRef)(null),c=(0,n.useRef)(null),h=(0,n.useRef)(),p=(0,n.useMemo)(()=>{var t;return null===(t=null==e?void 0:e.getOptimizelyConfig())||void 0===t?void 0:t.revision},[e]);null===u.current&&(u.current=new d);const v=u.current,y=(0,n.useMemo)(()=>({store:v,client:e}),[e,v]);return e&&(null!==c.current&&h.current===e||(null===(l=c.current)||void 0===l||l.dispose(),c.current=new g({client:e,onUserContextChange:e=>v.setUserContext(e),onError:e=>v.setError(e)}),h.current=e),c.current.resolveUserContext(t,o,s)),(0,n.useEffect)(()=>{if(!e)return console.error("[OPTIMIZELY - REACT] OptimizelyProvider must be passed an Optimizely client instance"),void v.setError(new Error("Optimizely client is required"));let t,n=!0;return e.onReady({timeout:i}).then(()=>{var i;n&&((null===(i=e.getOptimizelyConfig())||void 0===i?void 0:i.revision)!==p&&v.refresh(),t=e.notificationCenter.addNotificationListener(r.I9.OPTIMIZELY_CONFIG_UPDATE,()=>v.refresh()))}).catch(e=>{if(!n)return;const t=e instanceof Error?e:new Error(String(e));v.setError(t)}),()=>{n=!1,void 0!==t&&e.notificationCenter.removeNotificationListener(t)}},[e,i,v,p]),n.createElement(f.Provider,{value:y},a)}function v(e,t){const{store:i,client:r}=function(){const e=(0,n.useContext)(f);if(!e)throw new Error("Optimizely hooks must be used within an <OptimizelyProvider>");return e}(),s=function(e){const t=(0,n.useRef)(e);return function(e,t){if(e===t)return!0;
1if(void 0===e||void 0===t)return!1;if(e.length!==t.length)return!1;const i=[...e].sort(),r=[...t].sort();for(let e=0;e<i.length;e++)if(i[e]!==r[e])return!1;return!0}(t.current,e)||(t.current=e),t.current}(null==t?void 0:t.decideOptions),a=function(e){const t=(0,n.useCallback)(t=>e.subscribe(t),[e]),i=(0,n.useCallback)(()=>e.getState(),[e]);return(0,o.useSyncExternalStore)(t,i,i)}(i),[l,u]=(0,n.useState)(0);return(0,n.useEffect)(()=>i.subscribeForcedDecision(e,()=>{u(e=>e+1)}),[i,e]),(0,n.useMemo)(()=>{const{userContext:t,error:i}=a,n=null!==r.getOptimizelyConfig();return i?{decision:null,isLoading:!1,error:i}:n&&null!==t?{decision:t.decide(e,s),isLoading:!1,error:null}:{decision:null,isLoading:!0,error:null}},[l,a,r,e,s])}}}]); 2//# sourceMappingURL=optimizely.e4b2fc117fe0e9322575.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.