const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CcrGV60Z.js","./HrMm8Q4M.js","./entry.B3cibgmx.css","./ClNc3BGS.js","./C9FEcaFV.js","./Dqoa0yLE.js","./BLH_OBOE.js","./X6h5wsol.js"])))=>i.map(i=>d[i]); var B=Object.defineProperty;var z=(i,r,e)=>r in i?B(i,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):i[r]=e;var C=(i,r,e)=>z(i,typeof r!="symbol"?r+"":r,e);import{aw as R,bh as M,bi as U,bj as y,bk as F,bl as $,bm as h,bn as d,bo as q,l as Y,at as m,bp as p,bq as G,aG as T}from"./HrMm8Q4M.js";import{g as Q,e as J,c as V,t as X,a as Z}from"./ClNc3BGS.js";import{a as K}from"./C9FEcaFV.js";function k(i){return new URL(window.location.href)}var x=function(){try{var i=Q(Object,"defineProperty");return i({},"",{}),i}catch{}}();function rr(i,r,e){r=="__proto__"&&x?x(i,r,{configurable:!0,enumerable:!0,value:e,writable:!0}):i[r]=e}var er=Object.prototype,tr=er.hasOwnProperty;function or(i,r,e){var t=i[r];(!(tr.call(i,r)&&J(t,e))||e===void 0&&!(r in i))&&rr(i,r,e)}function nr(i,r,e,t){if(!R(i))return i;r=V(r,i);for(var n=-1,o=r.length,a=o-1,s=i;s!=null&&++n0&&o[o.length-1])&&(l[0]===6||l[0]===2)){e=0;continue}if(l[0]===3&&(!o||l[1]>o[0]&&l[1]{const r=i.map(({providerName:e,error:t})=>({source:e,error:t})).flat();return new sr(`Provider errors occurred: ${r[0].source}: ${r[0].error}`,r)},N=(i,r)=>{const e=i.map((t,n)=>t.status==="rejected"?{error:t.reason,providerName:r[n].name}:null).filter(t=>!!t);if(e.length)throw j(e)};class H{shouldEvaluateThisProvider(r,e){return!(r.providerStatus===d.NOT_READY||r.providerStatus===d.FATAL)}shouldEvaluateNextProvider(r,e,t){return!0}hasError(r){return"thrownError"in r||!!r.details.errorCode}hasErrorWithCode(r,e){var t;return"thrownError"in r?((t=r.thrownError)===null||t===void 0?void 0:t.code)===e:r.details.errorCode===e}collectProviderErrors(r){var e;const t=[];for(const n of r)"thrownError"in n?t.push({providerName:n.providerName,error:n.thrownError}):n.details.errorCode&&t.push({providerName:n.providerName,error:new ar(n.details.errorCode,(e=n.details.errorMessage)!==null&&e!==void 0?e:"unknown error")});return{errors:t}}resolutionToFinalResult(r){return{details:r.details,provider:r.provider,providerName:r.providerName}}}class lr extends H{shouldEvaluateNextProvider(r,e,t){return this.hasErrorWithCode(t,F.FLAG_NOT_FOUND)?!0:(this.hasError(t),!1)}determineFinalResult(r,e,t){const n=t[t.length-1];return this.hasError(n)?this.collectProviderErrors(t):this.resolutionToFinalResult(n)}}class ur extends H{shouldEvaluateNextProvider(r,e,t){return this.hasError(t)}determineFinalResult(r,e,t){const n=t[t.length-1];return this.hasError(n)?this.collectProviderErrors(t):this.resolutionToFinalResult(n)}}class cr{constructor(r){this.events=r,this.providerStatuses={}}wrapEventHandler(r){var e,t,n,o;const a=r.provider;(e=a.events)===null||e===void 0||e.addHandler(h.Error,s=>{this.changeProviderStatus(r.name,d.ERROR,s)}),(t=a.events)===null||t===void 0||t.addHandler(h.Stale,s=>{this.changeProviderStatus(r.name,d.STALE,s)}),(n=a.events)===null||n===void 0||n.addHandler(h.ConfigurationChanged,s=>{this.events.emit(h.ConfigurationChanged,s)}),(o=a.events)===null||o===void 0||o.addHandler(h.Ready,s=>{this.changeProviderStatus(r.name,d.READY,s)})}providerStatus(r){return this.providerStatuses[r]}getStatusFromProviderStatuses(){const r=Object.values(this.providerStatuses);return r.includes(d.FATAL)?d.FATAL:r.includes(d.NOT_READY)?d.NOT_READY:r.includes(d.ERROR)?d.ERROR:r.includes(d.STALE)?d.STALE:d.READY}changeProviderStatus(r,e,t){const n=this.getStatusFromProviderStatuses();this.providerStatuses[r]=e;const o=this.getStatusFromProviderStatuses();n!==o&&(o===d.FATAL?this.events.emit(h.Error,t):o===d.ERROR?this.events.emit(h.Error,t):o===d.STALE?this.events.emit(h.Stale,t):o===d.READY&&this.events.emit(h.Ready,t))}}class S{constructor(r,e=new lr,t=new M){this.constructorProviders=r,this.evaluationStrategy=e,this.logger=t,this.runsOn="client",this.events=new U,this.hookContexts=new WeakMap,this.hookHints=new WeakMap,this.providerEntries=[],this.providerEntriesByName={},this.statusTracker=new cr(this.events),this.hookExecutor=new ir(this.logger),this.registerProviders(r);const n=Object.keys(this.providerEntriesByName).reduce((o,a)=>Object.assign(Object.assign({},o),{[a]:this.providerEntriesByName[a].provider.metadata}),{});this.metadata=Object.assign(Object.assign({},n),{name:S.name})}registerProviders(r){var e,t;const n={};for(const o of r){const a=o.provider.metadata.name,s=(e=o.name)!==null&&e!==void 0?e:a;if(o.name&&n[o.name])throw new Error("Provider names must be unique");(t=n[s])!==null&&t!==void 0||(n[s]=[]),n[s].push(o.provider)}for(const o of Object.keys(n)){const a=n[o].length>1;for(let s=0;s{var n,o;return(o=(n=t.provider).initialize)===null||o===void 0?void 0:o.call(n,r)}));N(e,this.providerEntries)})}onClose(){return b(this,void 0,void 0,function*(){const r=yield Promise.allSettled(this.providerEntries.map(e=>{var t,n;return(n=(t=e.provider).onClose)===null||n===void 0?void 0:n.call(t)}));N(r,this.providerEntries)})}onContextChange(r,e){return b(this,void 0,void 0,function*(){var t,n;for(const o of this.providerEntries)yield(n=(t=o.provider).onContextChange)===null||n===void 0?void 0:n.call(t,r,e)})}resolveBooleanEvaluation(r,e,t){return this.flagResolutionProxy(r,"boolean",e,t)}resolveStringEvaluation(r,e,t){return this.flagResolutionProxy(r,"string",e,t)}resolveNumberEvaluation(r,e,t){return this.flagResolutionProxy(r,"number",e,t)}resolveObjectEvaluation(r,e,t){return this.flagResolutionProxy(r,"object",e,t)}flagResolutionProxy(r,e,t,n){var o;const a=this.hookContexts.get(n),s=this.hookHints.get(n);if(!a||!s)throw new y("Hook context not available for evaluation");const u=[];for(const f of this.providerEntries){const[P,W]=this.evaluateProviderEntry(r,e,t,f,a,s,n);if(u.push(W),!P)break}const l=u.filter(f=>!!f),c=this.evaluationStrategy.determineFinalResult({flagKey:r,flagType:e},n,l);if(!((o=c.errors)===null||o===void 0)&&o.length)throw j(c.errors);if(!c.details)throw new y("No result was returned from any provider");return c.details}evaluateProviderEntry(r,e,t,n,o,a,s){let u;const l=n.provider,c={flagKey:r,flagType:e,provider:l,providerName:n.name,providerStatus:this.statusTracker.providerStatus(n.name)};if(!this.evaluationStrategy.shouldEvaluateThisProvider(c,s))return[!0,null];let f;try{u=this.evaluateProviderAndHooks(r,t,l,o,a),f={details:u,provider:l,providerName:n.name}}catch(P){f={thrownError:P,provider:l,providerName:n.name}}return[this.evaluationStrategy.shouldEvaluateNextProvider(c,s,f),f]}evaluateProviderAndHooks(r,e,t,n,o){var a;let s;try{this.hookExecutor.beforeHooks(t.hooks,n,o);const u=this.callProviderResolve(t,r,e,n.context);s=Object.assign(Object.assign({},u),{flagMetadata:Object.freeze((a=u.flagMetadata)!==null&&a!==void 0?a:{}),flagKey:r}),this.hookExecutor.afterHooks(t.hooks,n,s,o)}catch(u){this.hookExecutor.errorHooks(t.hooks,n,u,o),s=this.getErrorEvaluationDetails(r,e,u)}return this.hookExecutor.finallyHooks(t.hooks,n,s,o),s}callProviderResolve(r,e,t,n){switch(typeof t){case"string":return r.resolveStringEvaluation(e,t,n,this.logger);case"number":return r.resolveNumberEvaluation(e,t,n,this.logger);case"object":return r.resolveObjectEvaluation(e,t,n,this.logger);case"boolean":return r.resolveBooleanEvaluation(e,t,n,this.logger);default:throw new y("Invalid flag evaluation type")}}get hooks(){return[{before:(r,e)=>(this.hookContexts.set(r.context,r),this.hookHints.set(r.context,e??{}),r.context)}]}getErrorEvaluationDetails(r,e,t,n={}){const o=t==null?void 0:t.message;return{errorCode:(t==null?void 0:t.code)||F.GENERAL,errorMessage:o,value:e,reason:$.ERROR,flagMetadata:Object.freeze(n),flagKey:r}}}class dr{constructor(){C(this,"listeners",new Map)}on(r,e){this.listeners.has(r)||this.listeners.set(r,new Set),this.listeners.get(r).add(e)}off(r,e){this.listeners.has(r)&&this.listeners.get(r).delete(e)}emit(r,...e){this.listeners.has(r)&&this.listeners.get(r).forEach(t=>t(...e))}}const v=Y.withTag("openfeature"),vr=1*60*60;let E=null;function fr(){if(v.info("getOpenFeatureWebClient"),E)return v.log("Using existing OpenFeature client"),E;if(E=p.getClient(),!E)throw new Error("OpenFeature client is not initialized");return E}const _=G(fr),w=new dr;let g=null;async function D(i,r){if(v.info("createConfigCatWebProvider"),g)return v.log("Using existing ConfigCat provider"),g;const e=T(),{ConfigCatWebProvider:t}=await m(async()=>{const{ConfigCatWebProvider:s}=await import("./CcrGV60Z.js");return{ConfigCatWebProvider:s}},__vite__mapDeps([0,1,2,3,4]),import.meta.url),n=e.public.configCatBaseUrl,o=new Promise((s,u)=>{w.on("error",l=>{v.error("ConfigCat provider error:",l),u(l)}),w.on("clientReady",()=>{v.info("ConfigCat provider is ready"),s(a)})}),a=g||t.create(i,{pollIntervalSeconds:r,baseUrl:n,setupHooks:s=>{s.on("clientError",u=>{w.emit("error",u)}),s.on("clientReady",()=>{w.emit("clientReady",a)})}});return await a.initialize(),await o,g=a,a}function I(){return+(T().public.configCatPollIntervalSeconds||vr)}async function hr(i){try{v.log("registerFeatureFlagProvider",i);const{configCatKey:r}=i;if(r)try{const e=I();return await p.setProviderAndWait(await D(r,e)),_()}catch(e){v.warn("Error initializing ConfigCat provider:",e)}else{if(i.queryProvider){const{QueryProvider:t}=await m(async()=>{const{QueryProvider:o}=await import("./Dqoa0yLE.js");return{QueryProvider:o}},__vite__mapDeps([5,1,2,6]),import.meta.url),n=k();return await p.setProviderAndWait(new t(n.href)),_()}const{LocalProvider:e}=await m(async()=>{const{LocalProvider:t}=await import("./X6h5wsol.js");return{LocalProvider:t}},__vite__mapDeps([7,1,2]),import.meta.url);await p.setProviderAndWait(new e)}}catch(r){v.error(r)}return _()}async function gr(i){try{v.log("registerMultipleFeatureFlagProviders",i);const e=[],t=[];if(i.configCatKey){const o=I();t.push((async()=>{const a=await D(String(i.configCatKey),o);e.push({provider:a})})())}if(i.localProvider&&t.push((async()=>{const{LocalProvider:o}=await m(async()=>{const{LocalProvider:a}=await import("./X6h5wsol.js");return{LocalProvider:a}},__vite__mapDeps([7,1,2]),import.meta.url);e.push({provider:new o})})()),i.queryProvider&&t.push((async()=>{const{QueryProvider:o}=await m(async()=>{const{QueryProvider:s}=await import("./Dqoa0yLE.js");return{QueryProvider:s}},__vite__mapDeps([5,1,2,6]),import.meta.url),a=k();e.unshift({provider:new o(a.href)})})()),await Promise.all(t),e.length===0)throw new Error("No providers provided");const n=new S(e,new ur);try{await p.setProviderAndWait(n)}catch(o){v.error("Error initializing providers:",o)}}catch(e){v.error(e)}const r=_();return L(window,"openfeature",r),v.log("openfeature",r),r}async function pr(){v.log("Clearing OpenFeature client and providers"),typeof window<"u"&&Z(window,"openfeature")&&(v.log("Clearing existing OpenFeature client"),L(window,"openfeature",null)),await p.clearProviders(),g&&(v.log("Clearing existing ConfigCat provider"),g=null)}const Sr=Object.freeze(Object.defineProperty({__proto__:null,registerFeatureFlagProvider:hr,registerMultipleFeatureFlagProviders:gr,teardown:pr},Symbol.toStringTag,{value:"Module"}));export{_r as _,b as a,Pr as b,Or as c,br as d,A as e,Sr as f}; //# sourceMappingURL=D9Hnwi_S.js.map