@launchdarkly/react-sdk 0.2.3 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
var An=Object.defineProperty,jn=Object.defineProperties;var Vn=Object.getOwnPropertyDescriptors;var Le=Object.getOwnPropertySymbols;var Ut=Object.prototype.hasOwnProperty,qt=Object.prototype.propertyIsEnumerable;var zt=(e,t,r)=>t in e?An(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,H=(e,t)=>{for(var r in t||(t={}))Ut.call(t,r)&&zt(e,r,t[r]);if(Le)for(var r of Le(t))qt.call(t,r)&&zt(e,r,t[r]);return e},ne=(e,t)=>jn(e,Vn(t));var Kt=(e,t)=>{var r={};for(var n in e)Ut.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Le)for(var n of Le(e))t.indexOf(n)<0&&qt.call(e,n)&&(r[n]=e[n]);return r};import{createContext as zn}from"react";function Bt(){return zn(null)}var J=Bt();import Co,{useEffect as So,useState as xo}from"react";var Un=Object.defineProperty,qn=Object.defineProperties,Kn=Object.getOwnPropertyDescriptors,Ne=Object.getOwnPropertySymbols,kr=Object.prototype.hasOwnProperty,Er=Object.prototype.propertyIsEnumerable,Ht=(e,t,r)=>t in e?Un(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,k=(e,t)=>{for(var r in t||(t={}))kr.call(t,r)&&Ht(e,r,t[r]);if(Ne)for(var r of Ne(t))Er.call(t,r)&&Ht(e,r,t[r]);return e},q=(e,t)=>qn(e,Kn(t)),yt=(e,t)=>{var r={};for(var n in e)kr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Ne)for(var n of Ne(e))t.indexOf(n)<0&&Er.call(e,n)&&(r[n]=e[n]);return r};function Bn(e){return`/${e.replace(/~/g,"~0").replace(/\//g,"~1")}`}function Dr(e){return e.indexOf("~")?e.replace(/~1/g,"/").replace(/~0/g,"~"):e}function Hn(e){return(e.startsWith("/")?e.substring(1):e).split("/").map(t=>Dr(t))}function Jn(e){return!e.startsWith("/")}function Gn(e){return!e.match(/\/\/|(^\/.*~[^0|^1])|~$/)}var me=class{constructor(e,t=!1){if(t){let r=e;this.y=[r],this.isValid=r!=="",this.redactionName=r.startsWith("/")?Bn(r):r}else{if(this.redactionName=e,e===""||e==="/"||!Gn(e)){this.isValid=!1,this.y=[];return}Jn(e)?this.y=[e]:e.indexOf("/",1)<0?this.y=[Dr(e.slice(1))]:this.y=Hn(e),this.y[0]==="_meta"?this.isValid=!1:this.isValid=!0}}get(e){let{y:t,isValid:r}=this;if(!r)return;let n=e;for(let i=0;i<t.length;i+=1){let a=t[i];if(n!=null&&Object.prototype.hasOwnProperty.call(n,a)&&typeof n=="object"&&!Array.isArray(n))n=n[a];else return}return n}getComponent(e){return this.y[e]}get depth(){return this.y.length}get isKind(){return this.y.length===1&&this.y[0]==="kind"}compare(e){return this.depth===e.depth&&this.y.every((t,r)=>t===e.getComponent(r))}get components(){return[...this.y]}};me.InvalidReference=new me("");var _n=class{is(e){if(Array.isArray(e))return!1;let t=typeof e;return t==="function"||t==="object"}getType(){return"factory method or object"}},be=class{constructor(e,t){this.pt=e,this.typeOf=typeof t}is(e){return Array.isArray(e)?!1:typeof e===this.typeOf}getType(){return this.pt}},Cr=class{constructor(e,t){this.pt=e,this.typeOf=typeof t}is(e){return Array.isArray(e)?e.length>0?e.every(t=>typeof t===this.typeOf):!0:!1}getType(){return this.pt}},Sr=class extends be{constructor(e){super(`number with minimum value of ${e}`,0),this.min=e}is(e){return typeof e===this.typeOf&&e>=this.min}},xr=class extends be{constructor(e){super(`string matching ${e}`,""),this.expression=e}is(e){return typeof e=="string"&&!!e.match(this.expression)}},Wn=class{is(e){return typeof e=="function"}getType(){return"function"}},Zn=class{is(e){return typeof e=="boolean"||typeof e=="undefined"||e===null}getType(){return"boolean | undefined | null"}},Yn=/^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d\d*)?(Z|[-+]\d\d(:\d\d)?)/,Qn=class{is(e){return typeof e=="number"||typeof e=="string"&&Yn.test(e)}getType(){return"date"}},Xn=class extends xr{constructor(){super(/^(\w|\.|-)+$/)}is(e){return super.is(e)&&e!=="kind"}},ei=class{constructor(e){this.Yt=e}is(e){return typeof e=="string"&&this.Yt.includes(e)}getType(){return this.Yt.join(" | ")}};function ie(e){return e==null}var p=class{static createTypeArray(e,t){return new Cr(e,t)}static numberWithMin(e){return new Sr(e)}static stringMatchingRegex(e){return new xr(e)}static oneOf(...e){return new ei(e)}};p.String=new be("string","");p.Number=new be("number",0);p.ObjectOrFactory=new _n;p.Object=new be("object",{});p.StringArray=new Cr("string[]","");p.Boolean=new be("boolean",!0);p.Function=new Wn;p.Date=new Qn;p.Kind=new Xn;p.NullableBoolean=new Zn;function Rr(e){return"kind"in e?p.String.is(e.kind)&&e.kind!=="multi":!1}function Or(e){return"kind"in e?p.String.is(e.kind)&&e.kind==="multi":!1}function Ir(e){return!("kind"in e)||e.kind===null||e.kind===void 0}function Ae(e,t=[]){if(e===null||typeof e!="object")return JSON.stringify(e);if(t.includes(e))throw new Error("Cycle detected");return Array.isArray(e)?`[${e.map(r=>Ae(r,[...t,e])).map(r=>r===void 0?"null":r).join(",")}]`:`{${Object.keys(e).sort().map(r=>{let n=Ae(e[r],[...t,e]);if(n!==void 0)return`${JSON.stringify(r)}:${n}`}).filter(r=>r!==void 0).join(",")}}`}var lt="user";function Jt(e){return e.includes("%")||e.includes(":")?e.replace(/%/g,"%25").replace(/:/g,"%3A"):e}function ti(e){return e&&p.Object.is(e)}function Gt(e){return p.Kind.is(e)}function _t(e){return p.String.is(e)&&e!==""}function Qe(e,t=!1){return e?e.map(r=>new me(r,t)):[]}function ri(e){return e!=null}function ni(e){let t=q(k({},e.custom||[]),{kind:"user",key:String(e.key)});if(ri(e.anonymous)){let r=!!e.anonymous;delete t.anonymous,t.anonymous=r}return e.name!==null&&e.name!==void 0&&(t.name=e.name),e.ip!==null&&e.ip!==void 0&&(t.ip=e.ip),e.firstName!==null&&e.firstName!==void 0&&(t.firstName=e.firstName),e.lastName!==null&&e.lastName!==void 0&&(t.lastName=e.lastName),e.email!==null&&e.email!==void 0&&(t.email=e.email),e.avatar!==null&&e.avatar!==void 0&&(t.avatar=e.avatar),e.country!==null&&e.country!==void 0&&(t.country=e.country),e.privateAttributeNames!==null&&e.privateAttributeNames!==void 0&&(t._meta={privateAttributes:e.privateAttributeNames}),t}var le=class L{constructor(t,r,n){this.P=!1,this.Q=!1,this.Zt=!1,this.M={},this.kind=r,this.valid=t,this.message=n}static D(t,r){return new L(!1,t,r)}static $e(t,r){if(!(!r||!t.isValid))return t.depth===1&&t.getComponent(0)==="anonymous"?!!(r!=null&&r.anonymous):t.get(r)}Xt(t){if(this.P)return this.M[t];if(this.kind===t)return this.v}static Re(t){let r=Object.keys(t).filter(l=>l!=="kind"),n=r.every(Gt);if(!r.length)return L.D("multi","A multi-kind context must contain at least one kind");if(!n)return L.D("multi","Context contains invalid kinds");let i={},a=!0,s=r.reduce((l,u)=>{var d;let c=t[u];return ti(c)?(l[u]=c,i[u]=Qe((d=c._meta)==null?void 0:d.privateAttributes)):a=!1,l},{});if(!a)return L.D("multi","Context contained contexts that were not objects");if(!Object.values(s).every(l=>_t(l.key)))return L.D("multi","Context contained invalid keys");if(r.length===1){let l=r[0],u=new L(!0,l);return u.v=q(k({},s[l]),{kind:l}),u.tt=i,u.Q=l==="user",u}let o=new L(!0,t.kind);return o.M=s,o.tt=i,o.P=!0,o}static Ne(t){var r;let{key:n,kind:i}=t,a=Gt(i),s=_t(n);if(!a)return L.D(i!=null?i:"unknown","The kind was not valid for the context");if(!s)return L.D(i,"The key for the context was not valid");let o=Qe((r=t._meta)==null?void 0:r.privateAttributes),l=new L(!0,i);return l.Q=i==="user",l.v=t,l.tt={[i]:o},l}static Ue(t){if(!(t.key!==void 0&&t.key!==null))return L.D("user","The key for the context was not valid");let r=new L(!0,"user");return r.Q=!0,r.Zt=!0,r.v=ni(t),r.tt={user:Qe(t.privateAttributeNames,!0)},r}static fromLDContext(t){return t?Rr(t)?L.Ne(t):Or(t)?L.Re(t):Ir(t)?L.Ue(t):L.D("unknown","Context was not of a valid kind"):L.D("unknown","No context specified. Returning default value")}static toLDContext(t){if(!t.valid)return;let r=t.getContexts();if(!t.P)return r[0][1];let n={kind:"multi"};return r.forEach(i=>{let a=i[0],s=i[1];n[a]=s}),n}valueForKind(t,r=lt){return t.isKind?this.kinds:L.$e(t,this.Xt(r))}key(t=lt){var r;return(r=this.Xt(t))==null?void 0:r.key}get isMultiKind(){return this.P}get canonicalKey(){return this.Q?this.v.key:this.P?Object.keys(this.M).sort().map(t=>`${t}:${Jt(this.M[t].key)}`).join(":"):`${this.kind}:${Jt(this.v.key)}`}get kinds(){return this.P?Object.keys(this.M):[this.kind]}get kindsAndKeys(){return this.P?Object.entries(this.M).reduce((t,[r,n])=>(t[r]=n.key,t),{}):{[this.kind]:this.v.key}}privateAttributes(t){var r;return((r=this.tt)==null?void 0:r[t])||[]}getContexts(){return this.P?Object.entries(this.M):[[this.kind,this.v]]}get legacy(){return this.Zt}canonicalUnfilteredJson(){if(this.valid){if(this.mt)return this.mt;try{this.mt=Ae(L.toLDContext(this))}catch(t){}return this.mt}}};le.UserKind=lt;var ii=["key","kind","_meta","anonymous"].map(e=>new me(e,!0)),ai=["name","ip","firstName","lastName","email","avatar","country"];function si(e,t){return e.depth===t.length&&t.every((r,n)=>r===e.getComponent(n))}function oi(e,t){let r=[],n={},i=[];for(r.push(...Object.keys(e).map(a=>({key:a,ptr:[a],source:e,parent:n,visited:[e]})));r.length;){let a=r.pop(),s=t.find(o=>si(o,a.ptr));if(s)i.push(s.redactionName);else{let o=a.source[a.key];o===null?a.parent[a.key]=o:Array.isArray(o)?a.parent[a.key]=[...o]:typeof o=="object"?a.visited.includes(o)||(a.parent[a.key]={},r.push(...Object.keys(o).map(l=>({key:l,ptr:[...a.ptr,l],source:o,parent:a.parent[a.key],visited:[...a.visited,o]})))):a.parent[a.key]=o}}return{cloned:n,excluded:i.sort()}}var li=class{constructor(e,t){this.ze=e,this.je=t}filter(e,t=!1){let r=e.getContexts();if(r.length===1)return this.Qt(e,r[0][1],r[0][0],t);let n={kind:"multi"};return r.forEach(([i,a])=>{n[i]=this.Qt(e,a,i,t)}),n}p(e,t,r,n){return(n?Object.keys(t).map(i=>new me(i,!0)):[...this.je,...e.privateAttributes(r)]).filter(i=>!ii.some(a=>a.compare(i)))}Qt(e,t,r,n){let i=this.ze||n&&t.anonymous===!0,{cloned:a,excluded:s}=oi(t,this.p(e,t,r,i));return e.legacy&&ai.forEach(o=>{o in a&&(a[o]=String(a[o]))}),s.length&&(a._meta||(a._meta={}),a._meta.redactedAttributes=s),a._meta&&(delete a._meta.privateAttributes,Object.keys(a._meta).length===0&&delete a._meta),a}},Wt=30*1e3,ui=.5,ci=class{constructor(e,t,r=Math.random){this.Ve=t,this.Be=r,this.yt=0,this.te=Math.max(1,e),this.He=Math.ceil(Math.log2(Wt/this.te))}x(){let e=Math.min(this.yt,this.He),t=this.te*2**e;return Math.min(t,Wt)}qe(e){return e-Math.trunc(this.Be()*ui*e)}success(e=Date.now()){this.gt=e}fail(e=Date.now()){this.gt!==void 0&&e-this.gt>this.Ve&&(this.yt=0),this.gt=void 0;let t=this.qe(this.x());return this.yt+=1,t}},Zt;(function(e){e[e.Valid=0]="Valid",e[e.Initializing=1]="Initializing",e[e.Interrupted=2]="Interrupted",e[e.Closed=3]="Closed"})(Zt||(Zt={}));var je=class extends Error{constructor(e,t,r,n=!0){super(t),this.kind=e,this.status=r,this.name="LaunchDarklyPollingError",this.recoverable=n}},ut=class extends Error{constructor(e,t,r,n=!0){super(t),this.kind=e,this.code=r,this.name="LaunchDarklyStreamingError",this.recoverable=n}},el=120*1e3,tl=300*1e3,T;(function(e){e.Unknown="UNKNOWN",e.NetworkError="NETWORK_ERROR",e.ErrorResponse="ERROR_RESPONSE",e.InvalidData="INVALID_DATA"})(T||(T={}));var Ve;(function(e){e[e.Disabled=0]="Disabled",e[e.Enabled=1]="Enabled"})(Ve||(Ve={}));var ye;(function(e){e[e.AnalyticsEvents=0]="AnalyticsEvents",e[e.DiagnosticEvent=1]="DiagnosticEvent"})(ye||(ye={}));var oe;(function(e){e[e.Succeeded=0]="Succeeded",e[e.Failed=1]="Failed",e[e.FailedAndMustShutDown=2]="FailedAndMustShutDown"})(oe||(oe={}));function pe(e){if(typeof e=="string")return e;if(e===void 0)return"undefined";if(e===null)return"null";if(Object.prototype.hasOwnProperty.call(e,"toString"))try{return e.toString()}catch(t){}if(typeof e=="bigint")return`${e}n`;try{return JSON.stringify(e)}catch(t){return t instanceof TypeError&&t.message.indexOf("circular")>=0?"[Circular]":"[Not Stringifiable]"}}function di(e){return typeof e=="symbol"?"NaN":typeof e=="bigint"?`${e}n`:String(Number(e))}function hi(e){return typeof e=="symbol"?"NaN":typeof e=="bigint"?`${e}n`:String(parseInt(e,10))}function fi(e){return typeof e=="symbol"?"NaN":String(parseFloat(e))}var Xe={s:e=>pe(e),d:e=>di(e),i:e=>hi(e),f:e=>fi(e),j:e=>pe(e),o:e=>pe(e),O:e=>pe(e),c:()=>""};function ct(...e){var t;let r=e.shift();if(p.String.is(r)){let n="",i=0;for(;i<r.length;){let a=r.charAt(i);if(a==="%"){if(i+1<r.length){let s=r.charAt(i+1);if(s in Xe&&e.length){let o=e.shift();n+=(t=Xe[s])==null?void 0:t.call(Xe,o)}else s==="%"?n+="%":n+=`%${s}`;i+=2}}else n+=a,i+=1}return e.length&&(n.length&&(n+=" "),n+=e.map(pe).join(" ")),n}return e.map(pe).join(" ")}var M;(function(e){e[e.debug=0]="debug",e[e.info=1]="info",e[e.warn=2]="warn",e[e.error=3]="error",e[e.none=4]="none"})(M||(M={}));var gi=["debug","info","warn","error","none"],Pr=class $r{static get(){return new $r({})}constructor(t){var r,n,i;if(this.Qe=(n=M[(r=t.level)!=null?r:"info"])!=null?n:M.info,this.tn=(i=t.name)!=null?i:"LaunchDarkly",this.se=t.formatter,typeof t.destination=="object")this.ae={[M.debug]:t.destination.debug,[M.info]:t.destination.info,[M.warn]:t.destination.warn,[M.error]:t.destination.error};else if(typeof t.destination=="function"){let{destination:a}=t;this.ae={[M.debug]:a,[M.info]:a,[M.warn]:a,[M.error]:a}}}en(...t){var r;try{return this.se?(r=this.se)==null?void 0:r.call(this,...t):ct(...t)}catch(n){return ct(...t)}}nn(t,r){try{t(r)}catch(n){console.error(r)}}S(t,r){var n;if(t>=this.Qe){let i=`${gi[t]}: [${this.tn}]`;try{let a=(n=this.ae)==null?void 0:n[t];a?this.nn(a,`${i} ${this.en(...r)}`):console.error(...r)}catch(a){console.error(...r)}}}error(...t){this.S(M.error,t)}warn(...t){this.S(M.warn,t)}info(...t){this.S(M.info,t)}debug(...t){this.S(M.debug,t)}},pi={error:p.Function,warn:p.Function,info:p.Function,debug:p.Function},Lr=class{constructor(e,t){Object.entries(pi).forEach(([r,n])=>{if(!n.is(e[r]))throw new Error(`Provided logger instance must support logger.${r}(...) method`)}),this.t=e,this.rn=t}S(e,t){try{this.t[e](...t)}catch(r){this.rn[e](...t)}}error(...e){this.S("error",e)}warn(...e){this.S("warn",e)}info(...e){this.S("info",e)}debug(...e){this.S("debug",e)}},Tr=e=>{let t=new Pr({level:"info",destination:console.error,formatter:ct});return e?new Lr(e,t):t},N=class{static deprecated(e,t){return`"${e}" is deprecated, please use "${t}"`}static optionBelowMinimum(e,t,r){return`Config option "${e}" had invalid value of ${t}, using minimum of ${r} instead`}static unknownOption(e){return`Ignoring unknown config option "${e}"`}static wrongOptionType(e,t,r){return`Config option "${e}" should be of type ${t}, got ${r}, using default value`}static wrongOptionTypeBoolean(e,t){return`Config option "${e}" should be a boolean, got ${t}, converting to boolean`}static invalidTagValue(e){return`Config option "${e}" must only contain letters, numbers, ., _ or -.`}static tagValueTooLong(e){return`Value of "${e}" was longer than 64 characters and was discarded.`}static partialEndpoint(e){return`You have set custom uris without specifying the ${e} URI; connections may not work properly`}},vi=/^(\w|\.|-)+$/,mi=p.stringMatchingRegex(vi),yi={is:(e,t)=>mi.is(e)?e.length>64?{valid:!1,message:N.tagValueTooLong(t)}:{valid:!0}:{valid:!1,message:N.invalidTagValue(t)}},wi=class{constructor(e){let t={},r=e==null?void 0:e.application,n=e==null?void 0:e.logger;r&&Object.entries(r).forEach(([a,s])=>{if(s!=null){let{valid:o,message:l}=yi.is(s,`application.${a}`);o?a==="versionName"?t["application-version-name"]=[s]:t[`application-${a}`]=[s]:n==null||n.warn(l)}});let i=Object.keys(t);i.length&&(this.value=i.sort().flatMap(a=>t[a].sort().map(s=>`${a}/${s}`)).join(" "))}},bi=class{constructor(e,t,r){this.platform=r,this.basicConfiguration={tags:t.tags,logger:t.logger,offline:t.offline,serviceEndpoints:t.serviceEndpoints,sdkKey:e}}};function et(e){return e.replace(/\/+$/,"")}function wt(e){return e.replace(/^\/+/,"").replace(/\?$/,"")}var we=class Fr{constructor(t,r,n=Fr.DEFAULT_EVENTS,i="/bulk",a="/diagnostic",s=!0,o){this.streaming=et(t),this.polling=et(r),this.events=et(n),this.analyticsEventPath=i,this.diagnosticEventPath=a,this.includeAuthorizationHeader=s,this.payloadFilterKey=o}};we.DEFAULT_EVENTS="https://events.launchdarkly.com";function bt(e,t=[]){if(t.length===0)return e;let r=t.map(({key:n,value:i})=>`${n}=${i}`);return`${e}?${r.join("&")}`}function Mr(e,t,r){let n=wt(t),i=[...r];return e.payloadFilterKey&&i.push({key:"filter",value:e.payloadFilterKey}),bt(`${e.streaming}/${n}`,i)}function Nr(e,t,r=[]){let n=wt(t),i=[...r];return e.payloadFilterKey&&i.push({key:"filter",value:e.payloadFilterKey}),bt(`${e.polling}/${n}`,i)}function Yt(e,t,r=[]){let n=wt(t);return bt(`${e.events}/${n}`,r)}var Ar=class extends Error{constructor(e){super(e),this.name="LaunchDarklyUnexpectedResponseError"}},ki=class extends Error{constructor(e){super(e),this.name="LaunchDarklyClientError"}},jr=class extends Error{constructor(e){super(e),this.name="LaunchDarklyTimeoutError"}};function ke(e){return e>=400&&e<500?e===400||e===408||e===429:!0}function Ei(e){return e===413?!0:ke(e)}function Vr(e,t){let r,n;return{promise:new Promise((i,a)=>{n=i,r=setTimeout(()=>{let s=`${t} timed out after ${e} seconds.`;a(new jr(s))},e*1e3)}),cancel:()=>{n(),clearTimeout(r)}}}function zr(e){return e==null?e:JSON.parse(JSON.stringify(e))}function tt(e){return Math.trunc(e*1e3)}var Di=e=>JSON.stringify(e)==="{}",kt=(e,t)=>e&&Object.entries(e).reduce((r,[n,i])=>(i&&!Di(i)&&!(t!=null&&t.includes(n))&&(r[n]=typeof i=="object"?kt(i,t):i),r),{});function Te(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var r,n,i;if(Array.isArray(e)){if(r=e.length,r!=t.length)return!1;for(n=r;n--!==0;)if(!Te(e[n],t[n]))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(n of e.entries())if(!t.has(n[0]))return!1;for(n of e.entries())if(!Te(n[1],t.get(n[0])))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(n of e.entries())if(!t.has(n[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(r=e.length,r!=t.length)return!1;for(n=r;n--!==0;)if(e[n]!==t[n])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(i=Object.keys(e),r=i.length,r!==Object.keys(t).length)return!1;for(n=r;n--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[n]))return!1;for(n=r;n--!==0;){var a=i[n];if(!Te(e[a],t[a]))return!1}return!0}return e!==e&&t!==t}function Ci(e,t,r,n=!0,i="user-agent"){let{userAgentBase:a,version:s,wrapperName:o,wrapperVersion:l}=t.sdkData(),u={[i]:`${a!=null?a:"NodeJSClient"}/${s}`};return n&&(u.authorization=e),o&&(u["x-launchdarkly-wrapper"]=l?`${o}/${l}`:o),r!=null&&r.value&&(u["x-launchdarkly-tags"]=r.value),u}function X(e,t,r){let n;e.status?n=`error ${e.status}${e.status===401?" (invalid SDK key)":""}`:n=`I/O error (${e.message||"unknown error"})`;let i=r!=null?r:"giving up permanently";return`Received ${n} for ${t} - ${i}`}function Et({status:e}){return e?ke(e):!0}var ze=(e,t)=>t.btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),Dt=async(e=1e3)=>new Promise(t=>{setTimeout(t,e)}),Si=class{constructor(e,t,r){this.a=t,this.sn=r,this.Et=[],this.oe=Date.now(),this.ce=this.oe,this.ue={diagnosticId:t.crypto.randomUUID(),sdkKeySuffix:e.length>6?e.substring(e.length-6):e}}createInitEvent(){var e,t,r;let n=this.a.info.sdkData(),i=this.a.info.platformData();return{kind:"diagnostic-init",id:this.ue,creationDate:this.oe,sdk:n,configuration:this.sn,platform:k({name:i.name,osArch:(e=i.os)==null?void 0:e.arch,osName:(t=i.os)==null?void 0:t.name,osVersion:(r=i.os)==null?void 0:r.version},i.additional||{})}}recordStreamInit(e,t,r){let n={timestamp:e,failed:t,durationMillis:r};this.Et.push(n)}createStatsEventAndReset(e,t,r){let n=Date.now(),i={kind:"diagnostic",id:this.ue,creationDate:n,dataSinceDate:this.ce,droppedEvents:e,deduplicatedUsers:t,eventsInLastBatch:r,streamInits:this.Et};return this.Et=[],this.ce=n,i}},dt;(function(e){e.MalformedFlag="MALFORMED_FLAG",e.UserNotSpecified="USER_NOT_SPECIFIED",e.FlagNotFound="FLAG_NOT_FOUND",e.ClientNotReady="CLIENT_NOT_READY",e.WrongType="WRONG_TYPE"})(dt||(dt={}));var xi=dt,Ur=class{static invalidMetricValue(e){return`The track function was called with a non-numeric "metricValue" (${e}), only numeric metric values are supported.`}};Ur.MissingContextKeyNoEvent="Context was unspecified or had no key; event will not be sent";var Ri=class{constructor(e,t){let{basicConfiguration:r,platform:n}=e,{serviceEndpoints:{analyticsEventPath:i,diagnosticEventPath:a}}=r,{crypto:s,requests:o}=n;this.an=k({},t),this.le=Yt(r.serviceEndpoints,i,[]),this.cn=Yt(r.serviceEndpoints,a,[]),this.z=o,this.un=s}async et(e,t,r,n){let i={status:oe.Succeeded},a=q(k({},this.an),{"content-type":"application/json"});r&&(a["x-launchdarkly-payload-id"]=r,a["x-launchDarkly-event-schema"]="4");let s;try{let{status:o,headers:l}=await this.z.fetch(t,{headers:a,body:JSON.stringify(e),compressBodyIfPossible:!0,method:"POST",keepalive:!0}),u=Date.parse(l.get("date")||"");if(u&&(i.serverTime=u),o<=204)return i;if(s=new Ar(X({status:o,message:"some events were dropped"},"event posting")),!ke(o))return Ei(o)?i.status=oe.Failed:i.status=oe.FailedAndMustShutDown,i.error=s,i}catch(o){s=o}return s&&!n?(i.status=oe.Failed,i.error=s,i):(await Dt(),this.et(e,this.le,r,!1))}async sendEventData(e,t){let r=e===ye.AnalyticsEvents?this.un.randomUUID():void 0,n=e===ye.AnalyticsEvents?this.le:this.cn;return this.et(t,n,r,!0)}};function Ue(e){return e.kind==="feature"}function Oi(e){return e.kind==="identify"}function Ii(e){return e.kind==="migration_op"}var Pi=class{constructor(e,t,r,n,i,a){this.count=e,this.key=t,this.value=r,this.version=i,this.variation=a,this.default=n}increment(){this.count+=1}};function $i(e){return`${e.key}:${e.variation!==null&&e.variation!==void 0?e.variation:""}:${e.version!==null&&e.version!==void 0?e.version:""}`}var qr=class{constructor(e=!1,t){this.ln=e,this.k=t,this.K=0,this.nt=0,this.it={},this.rt={}}summarizeEvent(e){if(Ue(e)&&!e.excludeFromSummaries){this.v||(this.v=e.context);let t=$i(e),r=this.it[t],n=this.rt[e.key];n||(n=new Set,this.rt[e.key]=n),e.context.kinds.forEach(i=>n.add(i)),r?r.increment():this.it[t]=new Pi(1,e.key,e.value,e.default,e.version,e.variation),(this.K===0||e.creationDate<this.K)&&(this.K=e.creationDate),e.creationDate>this.nt&&(this.nt=e.creationDate)}}getSummary(){var e;let t=Object.values(this.it).reduce((n,i)=>{let a=n[i.key];a||(a={default:i.default,counters:[],contextKinds:[...this.rt[i.key]]},n[i.key]=a);let s={value:i.value,count:i.count};return i.variation!==void 0&&i.variation!==null&&(s.variation=i.variation),i.version!==void 0&&i.version!==null?s.version=i.version:s.unknown=!0,a.counters.push(s),n},{}),r={startDate:this.K,endDate:this.nt,features:t,kind:"summary",context:this.v!==void 0&&this.ln?(e=this.k)==null?void 0:e.filter(this.v):void 0};return this.dn(),r}dn(){this.K=0,this.nt=0,this.it={},this.rt={}}},Li=class extends Error{constructor(e){super(e),this.name="LaunchDarklyInvalidSDKKeyError"}},Ti=class{constructor(e,t){this.k=e,this.t=t,this.J={}}summarizeEvent(e){var t;if(Ue(e)){let r=e.context.canonicalUnfilteredJson();if(!r){e.context.valid&&((t=this.t)==null||t.error("Unable to serialize context, likely the context contains a cycle."));return}let n=this.J[r];n||(this.J[r]=new qr(!0,this.k),n=this.J[r]),n.summarizeEvent(e)}}getSummaries(){let e=this.J;return this.J={},Object.values(e).map(t=>t.getSummary())}};function Fe(e){let t=Math.trunc(e);return t===1?!0:t===0?!1:Math.floor(Math.random()*t)===0}function Fi(e){return e.getSummaries!==void 0}var Mi=class{constructor(e,t,r,n,i,a=!0,s=!1){this.e=e,this.st=n,this.C=i,this.at=[],this.de=0,this.bt=0,this.Dt=0,this.St=!1,this.he=0,this.kt=!1,this.Ct=null,this.hn=e.eventsCapacity,this.t=t.basicConfiguration.logger,this.fe=new Ri(t,r),this.k=new li(e.allAttributesPrivate,e.privateAttributes.map(o=>new me(o))),s?this.W=new Ti(this.k,this.t):this.W=new qr,a&&this.start()}start(){var e,t;if(((e=this.st)==null?void 0:e.flushInterval)!==void 0&&(this.Ct=setInterval(()=>{var r;(r=this.st)==null||r.flush()},this.st.flushInterval*1e3)),this.fn=setInterval(async()=>{var r;try{await this.flush()}catch(n){(r=this.t)==null||r.debug(`Flush failed: ${n}`)}},this.e.flushInterval*1e3),this.C){let r=this.C.createInitEvent();this.pe(r),this.me=setInterval(()=>{let n=this.C.createStatsEventAndReset(this.bt,this.Dt,this.he);this.bt=0,this.Dt=0,this.pe(n)},this.e.diagnosticRecordingInterval*1e3)}(t=this.t)==null||t.debug("Started EventProcessor.")}pe(e){this.fe.sendEventData(ye.DiagnosticEvent,e)}close(){clearInterval(this.fn),this.Ct&&clearInterval(this.Ct),this.me&&clearInterval(this.me)}async flush(){var e;if(this.kt)throw new Li("Events cannot be posted because a permanent error has been encountered. This is most likely an invalid SDK key. The specific error information is logged independently.");let t=this.at;if(this.at=[],Fi(this.W))this.W.getSummaries().forEach(r=>{Object.keys(r.features).length&&t.push(r)});else{let r=this.W.getSummary();Object.keys(r.features).length&&t.push(r)}t.length&&(this.he=t.length,(e=this.t)==null||e.debug("Flushing %d events",t.length),await this.et(t))}sendEvent(e){var t;if(this.kt)return;if(Ii(e)){if(Fe(e.samplingRatio)){let o=q(k({},e),{context:e.context?this.k.filter(e.context):void 0});o.samplingRatio===1&&delete o.samplingRatio,this.ot(o)}return}this.W.summarizeEvent(e);let r=Ue(e),n=r&&e.trackEvents||!r,i=this.pn(e),a=Oi(e),s=(t=this.st)==null?void 0:t.processContext(e.context);s||a||(this.Dt+=1),s&&!a&&this.ot(this.It({kind:"index",creationDate:e.creationDate,context:e.context,samplingRatio:1},!1)),n&&Fe(e.samplingRatio)&&this.ot(this.It(e,!1)),i&&Fe(e.samplingRatio)&&this.ot(this.It(e,!0))}It(e,t){switch(e.kind){case"feature":{let r={kind:t?"debug":"feature",creationDate:e.creationDate,context:this.k.filter(e.context,!t),key:e.key,value:e.value,default:e.default};return e.samplingRatio!==1&&(r.samplingRatio=e.samplingRatio),e.prereqOf&&(r.prereqOf=e.prereqOf),e.variation!==void 0&&(r.variation=e.variation),e.version!==void 0&&(r.version=e.version),e.reason&&(r.reason=e.reason),r}case"index":case"identify":{let r={kind:e.kind,creationDate:e.creationDate,context:this.k.filter(e.context)};return e.samplingRatio!==1&&(r.samplingRatio=e.samplingRatio),r}case"custom":{let r={kind:"custom",creationDate:e.creationDate,key:e.key,context:this.k.filter(e.context)};return e.samplingRatio!==1&&(r.samplingRatio=e.samplingRatio),e.data!==void 0&&(r.data=e.data),e.metricValue!==void 0&&(r.metricValue=e.metricValue),e.url!==void 0&&(r.url=e.url),r}case"click":return{kind:"click",creationDate:e.creationDate,contextKeys:e.context.kindsAndKeys,key:e.key,url:e.url,selector:e.selector};case"pageview":return{kind:"pageview",creationDate:e.creationDate,contextKeys:e.context.kindsAndKeys,key:e.key,url:e.url};default:return e}}ot(e){var t;this.at.length<this.hn?(this.at.push(e),this.St=!1):(this.St||(this.St=!0,(t=this.t)==null||t.warn("Exceeded event queue capacity. Increase capacity to avoid dropping events.")),this.bt+=1)}pn(e){return Ue(e)&&e.debugEventsUntilDate&&e.debugEventsUntilDate>this.de&&e.debugEventsUntilDate>Date.now()}async et(e){let t=await this.fe.sendEventData(ye.AnalyticsEvents,e);if(t.status===oe.FailedAndMustShutDown&&(this.kt=!0),t.serverTime&&(this.de=t.serverTime),t.error)throw t.error}},Kr=class{constructor(e,t,r,n,i=1,a){this.context=e,this.key=t,this.data=r,this.metricValue=n,this.samplingRatio=i,this.url=a,this.kind="custom",this.creationDate=Date.now(),this.context=e}},ht=class{constructor(e,t,r,n,i,a,s,o,l,u,d,c,h=1){this.withReasons=e,this.context=t,this.key=r,this.samplingRatio=h,this.kind="feature",this.creationDate=Date.now(),this.value=n,this.default=i,a!==void 0&&(this.version=a),s!==void 0&&(this.variation=s),o!==void 0&&(this.trackEvents=o),l!==void 0&&(this.prereqOf=l),u!==void 0&&(this.reason=u),d!==void 0&&(this.debugEventsUntilDate=d),c!==void 0&&(this.excludeFromSummaries=c)}},Br=class{constructor(e,t=1){this.context=e,this.samplingRatio=t,this.kind="identify",this.creationDate=Date.now()}},Ni=class{close(){}async flush(){}sendEvent(){}},Ai=class{constructor(e){this.Pt=e}evalEvent(e){var t;return new ht(this.Pt,e.context,e.flagKey,e.value,e.defaultVal,e.version,(t=e.variation)!=null?t:void 0,e.trackEvents||e.addExperimentData,e.prereqOfFlagKey,this.Pt||e.addExperimentData?e.reason:void 0,e.debugEventsUntilDate,e.excludeFromSummaries,e.samplingRatio)}unknownFlagEvent(e,t,r){return new ht(this.Pt,r,e,t,t,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}identifyEvent(e){return new Br(e,1)}customEvent(e,t,r,n,i=1){return new Kr(t,e,r!=null?r:void 0,n!=null?n:void 0,i)}},Qt="FDv1Fallback";function ji(e){return{mn:e,ye:"",useSelector(t){return this.ye=t,this},processFullTransfer(t){let r=[{event:"server-intent",data:{payloads:[{id:Qt,target:1,intentCode:"xfer-full",reason:"payload-missing"}]}}];Object.entries((t==null?void 0:t.flags)||[]).forEach(([n,i])=>{r.push({event:"put-object",data:{kind:"flag",key:n,version:i.version||1,object:i}})}),Object.entries((t==null?void 0:t.segments)||[]).forEach(([n,i])=>{r.push({event:"put-object",data:{kind:"segment",key:n,version:i.version||1,object:i}})}),r.push({event:"payload-transferred",data:{state:this.ye,version:1,id:Qt}}),this.mn.processEvents(r)}}}var U={type:"none"};function Hr(e,t){let r="inactive",n="partial",i=[];function a(f,v){var m;return(m=e[f])==null?void 0:m.call(e,v)}function s(){r="inactive",n="partial",i=[]}function o(){r="changes",n="partial",i=[]}function l(){i=[]}function u(f){return ie(f.target)?(t==null||t.warn(`Ignoring 'none' intent with missing fields: target=${f.target}`),U):{type:"payload",payload:{version:f.target,type:"none",updates:[]}}}function d(f){var v;if(!((v=f.payloads)!=null&&v.length))return{type:"error",kind:"MISSING_PAYLOAD",message:"No payload present in server-intent"};let m=f.payloads[0];switch(m==null?void 0:m.intentCode){case"xfer-full":return r="full",i=[],n="full",U;case"xfer-changes":return r="changes",i=[],n="partial",U;case"none":return r="changes",i=[],n="partial",u(m);default:return t==null||t.warn(`Unable to process intent code '${m==null?void 0:m.intentCode}'.`),U}}function c(f){if(r==="inactive")return t==null||t.warn("Received put-object before server-intent was established. Ignoring."),U;if(!f.kind||!f.key||ie(f.version)||!f.object)return t==null||t.warn(`Ignoring put-object with missing fields: kind=${f.kind}, key=${f.key}, version=${f.version}`),U;let v=a(f.kind,f.object);return v?(i.push({kind:f.kind,key:f.key,version:f.version,object:v}),U):(t==null||t.warn(`Unable to process object for kind: '${f.kind}'`),U)}function h(f){return r==="inactive"?(t==null||t.warn("Received delete-object before server-intent was established. Ignoring."),U):!f.kind||!f.key||ie(f.version)?(t==null||t.warn(`Ignoring delete-object with missing fields: kind=${f.kind}, key=${f.key}, version=${f.version}`),U):(i.push({kind:f.kind,key:f.key,version:f.version,deleted:!0}),U)}function g(f){if(r==="inactive")return{type:"error",kind:"PROTOCOL_ERROR",message:"A payload transferred has been received without an intent having been established."};if(ie(f.state)||ie(f.version))return t==null||t.warn(`Ignoring payload-transferred with missing fields: state=${f.state}, version=${f.version}`),s(),U;let v={type:"payload",payload:{version:f.version,state:f.state,type:n,updates:i}};return o(),v}function D(f){return t==null||t.info(`Goodbye was received from the LaunchDarkly connection with reason: ${f.reason}.`),s(),{type:"goodbye",reason:f.reason}}function w(f){return t==null||t.info(`An issue was encountered receiving updates with reason: ${f.reason}.`),l(),{type:"serverError",id:f.payload_id,reason:f.reason}}return{get state(){return r},processEvent(f){switch(f.event){case"server-intent":return d(f.data);case"put-object":return c(f.data);case"delete-object":return h(f.data);case"payload-transferred":return g(f.data);case"goodbye":return D(f.data);case"error":return w(f.data);case"heart-beat":return U;default:return{type:"error",kind:"UNKNOWN_EVENT",message:`Received an unknown event of type '${f.event}'`}}},reset(){s()}}}function Vi(e){return e==="MISSING_PAYLOAD"||e==="PROTOCOL_ERROR"}var Jr=class{constructor(e,t,r){this.m=t,this.t=r,this.n=[],this.yn=Hr(e,r)}addPayloadListener(e){this.n.push(e)}removePayloadListener(e){let t=this.n.indexOf(e,0);t>-1&&this.n.splice(t,1)}processEvents(e){e.forEach(t=>{var r,n;let i=this.yn.processEvent(t);switch(i.type){case"payload":this.n.forEach(a=>a(i.payload));break;case"error":Vi(i.kind)?(r=this.m)==null||r.call(this,T.InvalidData,i.message):(n=this.t)==null||n.warn(i.message);break}})}},zi=class{constructor(e,t,r,n){this.m=r,this.t=n,this._(e,"server-intent"),this._(e,"put-object"),this._(e,"delete-object"),this._(e,"payload-transferred"),this._(e,"goodbye"),this._(e,"error"),this.xt=new Jr(t,r,n)}addPayloadListener(e){this.xt.addPayloadListener(e)}removePayloadListener(e){this.xt.removePayloadListener(e)}_(e,t){e.addEventListener(t,async r=>{var n,i,a,s,o;if(r!=null&&r.data){(n=this.t)==null||n.debug(`Received ${t} event. Data is ${r.data}`);try{this.xt.processEvents([{event:t,data:JSON.parse(r.data)}])}catch(l){(i=this.t)==null||i.error(`Stream received data that was unable to be processed in "${t}" message`),(a=this.t)==null||a.debug(`Data follows: ${r.data}`),(s=this.m)==null||s.call(this,T.InvalidData,"Malformed data in EventStream.")}}else(o=this.m)==null||o.call(this,T.Unknown,"Event from EventStream missing data.")})}};function Ui(e){if(e){let t=Object.keys(e).find(r=>r.toLowerCase()==="x-ld-envid");if(t)return{environmentId:e[t]}}}var Xt="unknown plugin";function qe(e,t){try{return t.getMetadata().name||Xt}catch(r){return e.error("Exception thrown getting metadata for plugin. Unable to get plugin name."),Xt}}function qi(e,t,r){let n=[];return r.forEach(i=>{var a;try{let s=(a=i.getHooks)==null?void 0:a.call(i,t);s===void 0?e.error(`Plugin ${qe(e,i)} returned undefined from getHooks.`):s&&s.length>0&&n.push(...s)}catch(s){e.error(`Exception thrown getting hooks for plugin ${qe(e,i)}. Unable to get hooks.`)}}),n}function Ki(e,t,r,n){n.forEach(i=>{try{i.register(r,t)}catch(a){e.error(`Exception thrown registering plugin ${qe(e,i)}.`)}})}var B=Object.freeze({__proto__:null,ClientMessages:Ur,DiagnosticsManager:Si,ErrorKinds:xi,EventFactoryBase:Ai,EventProcessor:Mi,FDv1PayloadAdaptor:ji,InputCustomEvent:Kr,InputEvalEvent:ht,InputIdentifyEvent:Br,NullEventProcessor:Ni,PayloadProcessor:Jr,PayloadStreamReader:zi,canonicalize:Ae,createProtocolHandler:Hr,initMetadataFromHeaders:Ui,isLegacyUser:Ir,isMultiKind:Or,isSingleKind:Rr,safeGetHooks:qi,safeGetName:qe,safeRegisterPlugins:Ki,shouldSample:Fe}),er={Initializing:"INITIALIZING",Valid:"VALID",Interrupted:"INTERRUPTED",SetOffline:"SET_OFFLINE",Closed:"CLOSED"};function Bi(e){return e>=200&&e<=299}var tr=class extends Error{constructor(e,t){super(e),this.status=t,this.name="LaunchDarklyRequestError"}};function ft(e,t,r,n,i,a,s,o,l,u){let d,c="GET",h=k({},a);l&&(c="REPORT",h["content-type"]="application/json",d=e);let g=l?r.pathReport(i,e):r.pathGet(i,e),D=[...s!=null?s:[]];o&&D.push({key:"withReasons",value:"true"}),u&&D.push({key:"h",value:u});let w=Nr(t,g,D);return{async requestPayload(){let f;try{let v=await n.fetch(w,{method:c,headers:h,body:d});if(Bi(v.status))return await v.text();f=v.status}catch(v){throw new tr(v==null?void 0:v.message)}throw new tr(`Unexpected status code: ${f}`,f)}}}var rr=new Error("Task has already been executed or shed. This is likely an implementation error. The task will not be executed again.");function Hi(e,t,r=!1){let n,i=new Promise(o=>{n=(l,u)=>{var d;try{(d=e.after)==null||d.call(e,l,u)}catch(c){t==null||t.error(`Error in after callback: ${c}`)}o(l)}}),a=e.before?e.before():Promise.resolve(void 0),s=!1;return{execute:()=>{s&&(t==null||t.error(rr)),s=!0,a.then(o=>{e.execute(o).then(l=>n({status:"complete",result:l},o)).catch(l=>n({status:"error",error:l},o))}).catch(o=>{t==null||t.error(o),n({status:"error",error:o},void 0)})},shed:()=>{s&&(t==null||t.error(rr)),s=!0,a.then(o=>{n({status:"shed"},o)})},promise:i,sheddable:r}}function Ji(e){let t,r=[];function n(){if(!t&&r.length>0){let i=r.shift();t=i.promise.finally(()=>{t=void 0,n()}),i.execute()}}return{execute(i,a=!1){var s,o;let l=Hi(i,e,a);return t?((s=r[r.length-1])!=null&&s.sheddable&&((o=r.pop())==null||o.shed()),r.push(l)):(t=l.promise.finally(()=>{t=void 0,n()}),l.execute()),l.promise},pendingCount(){return r.length}}}function Gr(e){return"validate"in e}function Be(e,t,r,n,i){let a=k({},r);return ie(e)?a:p.Object.is(e)?(Object.entries(e).forEach(([s,o])=>{let l=t[s],u=i?`${i}.${s}`:s;if(!l){n==null||n.warn(N.unknownOption(u));return}if(ie(o))return;if(Gr(l)){let c=l.validate(o,u,n,r[s]);c!==void 0&&(a[s]=c.value);return}if(l.is(o)){a[s]=o;return}let d=l.getType();d==="boolean"?(n==null||n.warn(N.wrongOptionTypeBoolean(u,typeof o)),a[s]=!!o):d==="boolean | undefined | null"?(n==null||n.warn(N.wrongOptionTypeBoolean(u,typeof o)),typeof o!="boolean"&&typeof o!="undefined"&&o!==null&&(a[s]=!!o)):l instanceof Sr&&p.Number.is(o)?(n==null||n.warn(N.optionBelowMinimum(u,o,l.min)),a[s]=l.min):n==null||n.warn(N.wrongOptionType(u,d,typeof o))}),a):(n==null||n.warn(N.wrongOptionType(i!=null?i:"config","object",typeof e)),a)}function ae(e,t){var r;let n=t==null?void 0:t.defaults;return{is:(r=t==null?void 0:t.is)!=null?r:(i=>p.Object.is(i)),getType:()=>"object",validate(i,a,s,o){if(!p.Object.is(i)){s==null||s.warn(N.wrongOptionType(a,"object",typeof i));return}let l=n!=null?n:p.Object.is(o)?o:{},u=Be(i,e,l,s,a);return Object.keys(u).length>0?{value:u}:void 0}}}function _r(e,t){return{is:r=>Array.isArray(r),getType:()=>"array",validate(r,n,i){if(!Array.isArray(r)){i==null||i.warn(N.wrongOptionType(n,"array",typeof r));return}let a=[];return r.forEach((s,o)=>{let l=`${n}[${o}]`;if(ie(s)||!p.Object.is(s)){i==null||i.warn(N.wrongOptionType(l,"object",typeof s));return}let u=s,d=u[e],c=typeof d=="string"?t[d]:void 0;if(!c){let h=Object.keys(t).join(" | "),g=typeof d=="string"?d:typeof d;i==null||i.warn(N.wrongOptionType(`${l}.${e}`,h,g));return}a.push(Be(u,c,{},i,l))}),{value:a}}}}function Gi(...e){return{is:t=>e.some(r=>r.is(t)),getType:()=>e.map(t=>t.getType()).join(" | "),validate(t,r,n,i){let a=e.find(s=>s.is(t));if(a)return Gr(a)?a.validate(t,r,n,i):{value:t};n==null||n.warn(N.wrongOptionType(r,this.getType(),typeof t))}}}function _i(e,t,r){let n=r==null?void 0:r.defaults;return{is:i=>p.Object.is(i),getType:()=>"object",validate(i,a,s,o){if(ie(i))return;if(!p.Object.is(i)){s==null||s.warn(N.wrongOptionType(a,"object",typeof i));return}let l=i,u={},d={};Object.keys(l).forEach(h=>{e.is(h)?(u[h]=l[h],d[h]=t):s==null||s.warn(N.wrongOptionType(a,e.getType(),h))});let c=n!=null?n:p.Object.is(o)?o:{};return{value:Be(u,d,c,s,a)}}}}var nr=300,ir=3600,Ct=p.oneOf("cache","polling","streaming"),St=p.oneOf("streaming","polling","offline","one-shot","background"),xt={pollingBaseUri:p.String,streamingBaseUri:p.String},Wi={type:Ct},Wr={type:Ct,pollInterval:p.numberWithMin(30),endpoints:ae(xt)},Zr={type:Ct,initialReconnectDelay:p.numberWithMin(1),endpoints:ae(xt)},Zi=_r("type",{cache:Wi,polling:Wr,streaming:Zr}),Yi=_r("type",{polling:Wr,streaming:Zr}),Qi={pollInterval:p.numberWithMin(30),endpoints:ae(xt)},Xi={initializers:Zi,synchronizers:Yi,fdv1Fallback:ae(Qi)},Me={streaming:{initializers:[{type:"cache"},{type:"polling"}],synchronizers:[{type:"streaming"},{type:"polling"}],fdv1Fallback:{pollInterval:nr}},polling:{initializers:[{type:"cache"}],synchronizers:[{type:"polling"}],fdv1Fallback:{pollInterval:nr}},offline:{initializers:[{type:"cache"}],synchronizers:[]},"one-shot":{initializers:[{type:"cache"},{type:"polling"},{type:"streaming"}],synchronizers:[]},background:{initializers:[{type:"cache"}],synchronizers:[{type:"polling",pollInterval:ir}],fdv1Fallback:{pollInterval:ir}}},ea=_i(St,ae(Xi));function ar(e,t){return p.Object.is(e)&&e.type===t}var ta={type:p.oneOf("automatic"),lifecycle:p.Boolean,network:p.Boolean},ra={type:p.oneOf("manual"),initialConnectionMode:St},na={backgroundConnectionMode:St,automaticModeSwitching:Gi(p.Boolean,ae(ta,{is:e=>ar(e,"automatic")}),ae(ra,{is:e=>ar(e,"manual")})),connectionModes:ea},sr={foregroundConnectionMode:"one-shot",backgroundConnectionMode:void 0,automaticModeSwitching:!1};function ia(e){return typeof e=="object"&&e!==null&&"type"in e&&e.type==="manual"}function aa(e,t){var r;return ia(e.automaticModeSwitching)?e.automaticModeSwitching.initialConnectionMode:(r=e.foregroundConnectionMode)!=null?r:t.foregroundConnectionMode}function sa(e){return{logger:p.Object,maxCachedContexts:p.numberWithMin(0),baseUri:p.String,streamUri:p.String,eventsUri:p.String,capacity:p.numberWithMin(1),diagnosticRecordingInterval:p.numberWithMin(2),flushInterval:p.numberWithMin(2),streamInitialReconnectDelay:p.numberWithMin(0),allAttributesPrivate:p.Boolean,debug:p.Boolean,diagnosticOptOut:p.Boolean,withReasons:p.Boolean,sendEvents:p.Boolean,pollInterval:p.numberWithMin(30),useReport:p.Boolean,privateAttributes:p.StringArray,disableCache:p.Boolean,applicationInfo:p.Object,wrapperName:p.String,wrapperVersion:p.String,payloadFilterKey:p.stringMatchingRegex(/^[a-zA-Z0-9](\w|\.|-)*$/),hooks:p.createTypeArray("Hook[]",{}),inspectors:p.createTypeArray("LDInspection",{}),cleanOldPersistentData:p.Boolean,dataSystem:e!=null&&e.dataSystemDefaults?ae(na,{defaults:q(k({},e.dataSystemDefaults),{connectionModes:Me})}):p.Object}}var oa=300,Yr="https://clientsdk.launchdarkly.com",Qr="https://clientstream.launchdarkly.com";function la(e){return e instanceof Lr?e:Tr(e)}var ua=class{constructor(e={},t={getImplementationHooks:()=>[],credentialType:"mobileKey"}){var r,n,i;this.logger=Tr(),this.baseUri=Yr,this.eventsUri=we.DEFAULT_EVENTS,this.streamUri=Qr,this.maxCachedContexts=5,this.disableCache=!1,this.capacity=100,this.diagnosticRecordingInterval=900,this.flushInterval=30,this.streamInitialReconnectDelay=1,this.allAttributesPrivate=!1,this.debug=!1,this.diagnosticOptOut=!1,this.sendEvents=!0,this.sendLDHeaders=!0,this.useReport=!1,this.withReasons=!1,this.privateAttributes=[],this.pollInterval=oa,this.hooks=[],this.inspectors=[],this.logger=la(e.logger);let a=sa({dataSystemDefaults:t.dataSystemDefaults}),s=Be(e,a,{},this.logger);Object.entries(s).forEach(([o,l])=>{o!=="logger"&&(this[o]=l)}),this.serviceEndpoints=new we(this.streamUri,this.baseUri,this.eventsUri,t.analyticsEventPath,t.diagnosticEventPath,t.includeAuthorizationHeader,e.payloadFilterKey),this.useReport=(r=e.useReport)!=null?r:!1,this.tags=new wi({application:this.applicationInfo,logger:this.logger}),this.userAgentHeaderName=(n=t.userAgentHeaderName)!=null?n:"user-agent",this.trackEventModifier=(i=t.trackEventModifier)!=null?i:(o=>o),this.credentialType=t.credentialType,this.getImplementationHooks=t.getImplementationHooks}};async function Rt(e,t){if(e.digest)return e.digest(t);if(e.asyncDigest)return e.asyncDigest(t);throw new Error("Platform must implement digest or asyncDigest")}var Xr=async(e,{crypto:t,storage:r},n)=>{let i=await(r==null?void 0:r.get(e));return i==null&&(n&&(i=await(r==null?void 0:r.get(n)),i!=null&&(await(r==null?void 0:r.set(e,i)),await(r==null?void 0:r.get(e))!=null&&await(r==null?void 0:r.clear(n)))),i==null&&(i=t.randomUUID(),await(r==null?void 0:r.set(e,i)))),i};function en(e){return async t=>Rt(e.createHash("sha256").update(t),"base64")}var Q=async e=>e;async function xe(e){return(await Promise.all(e.map(t=>t.transform(t.value)))).join("_")}async function tn(e,t){return xe([{value:"LaunchDarkly",transform:Q},{value:t,transform:en(e)}])}async function ca(e){return xe([{value:"LaunchDarkly",transform:Q},{value:"AnonymousKeys",transform:Q},{value:e,transform:Q}])}async function rn(e){return xe([{value:"LaunchDarkly",transform:Q},{value:"ContextKeys",transform:Q},{value:e,transform:Q}])}async function da(e){return xe([{value:e,transform:Q},{value:"ContextIndex",transform:Q}])}async function Ot(e,t,r){return xe([{value:t,transform:Q},{value:r.canonicalKey,transform:en(e)}])}var{isLegacyUser:ha,isSingleKind:rt,isMultiKind:or}=B,nn="1.0",fa=e=>{let t=e,{kind:r}=t,n=yt(t,["kind"]);return{kind:"multi",[r]:n}},ga=async({crypto:e,info:t},{applicationInfo:r})=>{var n;let{ld_application:i}=t.platformData(),a=(n=kt(i))!=null?n:{},s=(r==null?void 0:r.id)||(a==null?void 0:a.id);if(s){let o=(r==null?void 0:r.version)||(a==null?void 0:a.version),l=(r==null?void 0:r.name)||(a==null?void 0:a.name),u=(r==null?void 0:r.versionName)||(a==null?void 0:a.versionName);return a=k(k(k(q(k({},a),{id:s}),o?{version:o}:{}),l?{name:l}:{}),u?{versionName:u}:{}),a.key=await Rt(e.createHash("sha256").update(s),"base64"),a.envAttributesVersion=a.envAttributesVersion||nn,a}},pa=async e=>{var t,r,n,i;let{ld_device:a,os:s}=e.info.platformData(),o=(t=kt(a))!=null?t:{},l=(s==null?void 0:s.name)||((r=o.os)==null?void 0:r.name),u=(s==null?void 0:s.version)||((n=o.os)==null?void 0:n.version),d=(i=o.os)==null?void 0:i.family;if((l||u||d)&&(o.os=k(k(k({},l?{name:l}:{}),u?{version:u}:{}),d?{family:d}:{})),Object.keys(o).filter(c=>c!=="key"&&c!=="envAttributesVersion").length){let c=await rn("ld_device");return o.key=await Xr(c,e),o.envAttributesVersion=o.envAttributesVersion||nn,o}},va=async(e,t,r)=>{if(ha(e))return e;let n,i;if(rt(e)&&e.kind!=="ld_application"||or(e)&&!e.ld_application?n=await ga(t,r):r.logger.warn("Not adding ld_application environment attributes because it already exists."),rt(e)&&e.kind!=="ld_device"||or(e)&&!e.ld_device?i=await pa(t):r.logger.warn("Not adding ld_device environment attributes because it already exists."),n||i){let a=rt(e)?fa(e):e;return k(k(k({},a),n?{ld_application:n}:{}),i?{ld_device:i}:{})}return e};function ma(){let e,t;return{set(r,n){e=r,t=n},getContext(){return t},getUnwrappedContext(){return e},newIdentificationPromise(){let r,n;return{identifyPromise:new Promise((i,a)=>{r=i,n=a}),identifyResolve:r,identifyReject:n}},hasContext(){return t!==void 0},hasValidContext(){return this.hasContext()&&t.valid}}}var{isLegacyUser:ya,isMultiKind:wa,isSingleKind:ba}=B,It=async(e,t,r)=>{let{anonymous:n,key:i}=t;if(n&&!i){let a=await rn(e),s=await ca(e);t.key=await Xr(a,r,s)}},ka=async(e,t)=>{await It(e.kind,e,t)},Ea=async(e,t)=>{let r=e,{kind:n}=r,i=yt(r,["kind"]);return Promise.all(Object.entries(i).map(([a,s])=>It(a,s,t)))},Da=async(e,t)=>{await It("user",e,t)},Ca=async(e,t)=>{let r=zr(e);return ba(r)&&await ka(r,t),wa(r)&&await Ea(r,t),ya(r)&&await Da(r,t),r},Sa=e=>({customBaseURI:e.serviceEndpoints.polling!==Yr,customStreamURI:e.serviceEndpoints.streaming!==Qr,customEventsURI:e.serviceEndpoints.events!==we.DEFAULT_EVENTS,eventsCapacity:e.capacity,eventsFlushIntervalMillis:tt(e.flushInterval),reconnectTimeMillis:tt(e.streamInitialReconnectDelay),diagnosticRecordingIntervalMillis:tt(e.diagnosticRecordingInterval),allAttributesPrivate:e.allAttributesPrivate,usingSecureMode:!1,bootstrapMode:!1}),xa=(e,t,r)=>{if(t.sendEvents&&!t.diagnosticOptOut)return new B.DiagnosticsManager(e,r,Sa(t))};function lr(e,t){return{value:t!=null?t:null,variationIndex:null,reason:{kind:"ERROR",errorKind:e}}}function ur(e,t,r){return k({value:e,variationIndex:t!=null?t:null},r!==void 0&&{reason:r})}var Ra=(e,t,r,n,i)=>{if(t.sendEvents)return new B.EventProcessor(q(k({},t),{eventsCapacity:t.capacity}),new bi(e,t,r),n,void 0,i,!1,!0)},cr=class extends B.EventFactoryBase{evalEventClient(e,t,r,n,i,a){let{trackEvents:s,debugEventsUntilDate:o,trackReason:l,flagVersion:u,version:d,variation:c}=n;return super.evalEvent({addExperimentData:l,context:i,debugEventsUntilDate:o,defaultVal:r,flagKey:e,reason:a,trackEvents:!!s,value:t,variation:c,version:u!=null?u:d})}};function an(e,t){let r=Object.keys(t),n="$flagsState",i="$valid",a=t[n];!a&&r.length&&e.warn("LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly."),t[i]===!1&&e.warn("LaunchDarkly bootstrap data is not available because the back end could not read the flags.");let s={};return r.forEach(o=>{if(o!==n&&o!==i){let l;a&&a[o]?l=k({value:t[o]},a[o]):l={value:t[o],version:0},s[o]={version:l.version,flag:l}}}),s}var gt="_freshness";async function sn(e,t){let r=t.canonicalUnfilteredJson();if(r)return Rt(e.createHash("sha256").update(r),"base64")}async function Oa(e,t,r,n,i){let a=await Ot(t,r,n),s=await e.get(`${a}${gt}`);if(s!=null)try{let o=JSON.parse(s),l=await sn(t,n);return l===void 0||o.contextHash!==l?void 0:typeof o.timestamp=="number"&&!Number.isNaN(o.timestamp)?o.timestamp:void 0}catch(o){i==null||i.warn(`Could not read freshness data from persistent storage: ${o.message}`);return}}function Ia(e){return e!==null&&typeof e=="object"&&typeof e.version=="number"}async function on(e,t,r,n,i){let a=await Ot(t,r,n),s=await e.get(a),o=!1;if(s==null){if(s=await e.get(n.canonicalKey),s==null)return;o=!0}try{let l=JSON.parse(s);if(l===null||typeof l!="object"){i==null||i.warn("Cached flag data is not a valid object");return}let u=Object.entries(l),d=u.find(([,c])=>!Ia(c));if(d){i==null||i.warn(`Discarding cached flags due to invalid entry: ${d[0]}`);return}return{flags:u.reduce((c,[h,g])=>(c[h]=g,c),{}),storageKey:a,fromLegacyKey:o}}catch(l){i==null||i.warn(`Could not parse cached flag evaluations from persistent storage: ${l.message}`);return}}var nt=class ln{constructor(){this.container={index:new Array}}static fromJson(t){let r=new ln;try{r.container=JSON.parse(t)}catch(n){}return r}toJson(){return JSON.stringify(this.container)}notice(t,r){let n=this.container.index.find(i=>i.id===t);n===void 0?this.container.index.push({id:t,timestamp:r}):n.timestamp=r}prune(t){let r=Math.max(t,0);return this.container.index.length>r?(this.container.index.sort((n,i)=>n.timestamp-i.timestamp),this.container.index.splice(0,this.container.index.length-r)):[]}},Pa=class{constructor(e,t,r,n,i,a,s,o=()=>Date.now()){this.a=e,this.Lt=t,this.ct=r,this.ge=n,this.A=i,this.g=a,this.t=s,this.gn=o,this.ve=da(this.Lt)}async init(e,t){this.g.init(e,t),await this.At(e)}async upsert(e,t,r){return this.g.upsert(e,t,r)?(await this.At(e),!0):!1}async applyChanges(e,t,r){this.g.applyChanges(e,t,r),await this.At(e)}async loadCached(e){if(this.ge||this.ct<=0||!this.a.storage)return!1;let t=await on(this.a.storage,this.a.crypto,this.Lt,e,this.t);if(!t)return!1;t.fromLegacyKey&&(await this.a.storage.set(t.storageKey,JSON.stringify(t.flags)),await this.a.storage.clear(e.canonicalKey));let r=Object.entries(t.flags).reduce((n,[i,a])=>(n[i]={version:a.version,flag:a},n),{});return this.g.initCached(e,r),this.t.debug("Loaded cached flag evaluations from persistent storage"),!0}async vn(e,t,r){var n;let i=await sn(this.a.crypto,t);if(i===void 0){this.t.error("Could not serialize context for freshness tracking");return}let a={timestamp:r,contextHash:i};await((n=this.a.storage)==null?void 0:n.set(`${e}${gt}`,JSON.stringify(a)))}async wn(){var e;if(this.V!==void 0)return this.V;let t=await((e=this.a.storage)==null?void 0:e.get(await this.ve));if(!t)return this.V=new nt,this.V;try{this.V=nt.fromJson(t),this.t.debug("Loaded context index from persistent storage")}catch(r){this.t.warn(`Could not load index from persistent storage: ${r.message}`),this.V=new nt}return this.V}async At(e){var t,r;if(this.ge)return;let n=this.gn(),i=await this.wn(),a=await Ot(this.a.crypto,this.Lt,e);this.ct>0&&i.notice(a,n);let s=i.prune(this.ct),o=this.ct<=0||s.some(c=>c.id===a);if(await Promise.all(s.flatMap(c=>{var h,g;return[(h=this.a.storage)==null?void 0:h.clear(c.id),(g=this.a.storage)==null?void 0:g.clear(`${c.id}${gt}`)]})),await((t=this.a.storage)==null?void 0:t.set(await this.ve,i.toJson())),o)return;let l=this.A.getAll(),u=Object.entries(l).reduce((c,[h,g])=>(g.flag!==null&&g.flag!==void 0&&(c[h]=g.flag),c),{}),d=JSON.stringify(u);await((r=this.a.storage)==null?void 0:r.set(a,d));try{await this.vn(a,e,n)}catch(c){this.t.warn(`Failed to store freshness data: ${c.message}`)}}};function $a(){let e={};return{init(t){e=Object.entries(t).reduce((r,[n,i])=>(r[n]=i,r),{})},insertOrUpdate(t,r){e[t]=r},get(t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]},getAll(){return e},applyChanges(t,r){r==="full"?this.init(t):r==="partial"&&Object.entries(t).forEach(([n,i])=>{e[n]=i})}}}function dr(e,t){let r=[];return Object.entries(e).forEach(([n,i])=>{let a=t[n];(!a||!Te(i,a))&&r.push(n)}),Object.keys(t).forEach(n=>{e[n]||r.push(n)}),r}function La(e,t){let r=e,n=t,i,a=new Array;return{handleFlagChanges(s,o){i?a.forEach(l=>{try{l(i,s,o)}catch(u){}}):n.warn("Received a change event without an active context. Changes will not be propagated.")},init(s,o){i=s;let l=r.getAll();r.init(o);let u=dr(l,o);u.length>0&&this.handleFlagChanges(u,"init")},initCached(s,o){(i==null?void 0:i.canonicalKey)!==s.canonicalKey&&this.init(s,o)},applyChanges(s,o,l){i=s;let u=r.getAll();if(r.applyChanges(o,l),l==="full"){let d=dr(u,o);d.length>0&&this.handleFlagChanges(d,"init")}else if(l==="partial"){let d=Object.keys(o);d.length>0&&this.handleFlagChanges(d,"patch")}},upsert(s,o,l){if((i==null?void 0:i.canonicalKey)!==s.canonicalKey)return n.warn("Received an update for an inactive context."),!1;let u=r.get(o);return u!==void 0&&u.version>=l.version?!1:(r.insertOrUpdate(o,l),this.handleFlagChanges([o],"patch"),!0)},on(s){a.push(s)},off(s){let o=a.indexOf(s);o>-1&&a.splice(o,1)}}}var Ta=class{constructor(e,t,r,n,i,a=()=>Date.now()){this.A=$a(),this.g=La(this.A,i),this.ut=this.En(e,t,r,n,i,a)}async En(e,t,r,n,i,a=()=>Date.now()){let s=await tn(e.crypto,t);return new Pa(e,s,r,n,this.A,this.g,i,a)}get(e){return this.r&&Object.prototype.hasOwnProperty.call(this.r,e)?this.Ot(this.r[e]):this.A.get(e)}getAll(){return this.r?k(k({},this.A.getAll()),Object.entries(this.r).reduce((e,[t,r])=>(e[t]=this.Ot(r),e),{})):this.A.getAll()}presetFlags(e){this.A.init(e)}setBootstrap(e,t){this.g.init(e,t)}async init(e,t){return(await this.ut).init(e,t)}async upsert(e,t,r){return(await this.ut).upsert(e,t,r)}async loadCached(e){return(await this.ut).loadCached(e)}async applyChanges(e,t,r){return(await this.ut).applyChanges(e,t,r)}on(e){this.g.on(e)}off(e){this.g.off(e)}Ot(e){return{flag:{value:e,version:0},version:0}}setOverride(e,t){this.r||(this.r={}),this.r[e]=t,this.g.handleFlagChanges([e],"override")}removeOverride(e){!this.r||!Object.prototype.hasOwnProperty.call(this.r,e)||(delete this.r[e],Object.keys(this.r).length===0&&(this.r=void 0),this.g.handleFlagChanges([e],"override"))}clearAllOverrides(){if(this.r){let e=k({},this.r);this.r=void 0,this.g.handleFlagChanges(Object.keys(e),"override")}}getAllOverrides(){if(!this.r)return{};let e={};return Object.entries(this.r).forEach(([t,r])=>{e[t]=this.Ot(r)}),e}getDebugOverride(){return{setOverride:this.setOverride.bind(this),removeOverride:this.removeOverride.bind(this),clearAllOverrides:this.clearAllOverrides.bind(this),getAllOverrides:this.getAllOverrides.bind(this)}}},hr="unknown hook",un="beforeEvaluation",cn="afterEvaluation",Fa="afterTrack";function Re(e,t,r,n,i){try{return n()}catch(a){return e==null||e.error(`An error was encountered in "${t}" of the "${r}" hook: ${a}`),i}}function Oe(e,t){try{return t.getMetadata().name||hr}catch(r){return e.error("Exception thrown getting metadata for hook. Unable to get hook name."),hr}}function Ma(e,t,r){return t.map(n=>Re(e,un,Oe(e,n),()=>{var i,a;return(a=(i=n==null?void 0:n.beforeEvaluation)==null?void 0:i.call(n,r,{}))!=null?a:{}},{}))}function Na(e,t,r,n,i){for(let a=t.length-1;a>=0;a-=1){let s=t[a],o=n[a];Re(e,cn,Oe(e,s),()=>{var l,u;return(u=(l=s==null?void 0:s.afterEvaluation)==null?void 0:l.call(s,r,o,i))!=null?u:{}},{})}}function Aa(e,t,r){return t.map(n=>Re(e,un,Oe(e,n),()=>{var i,a;return(a=(i=n==null?void 0:n.beforeIdentify)==null?void 0:i.call(n,r,{}))!=null?a:{}},{}))}function ja(e,t,r,n,i){for(let a=t.length-1;a>=0;a-=1){let s=t[a],o=n[a];Re(e,cn,Oe(e,s),()=>{var l,u;return(u=(l=s==null?void 0:s.afterIdentify)==null?void 0:l.call(s,r,o,i))!=null?u:{}},{})}}function Va(e,t,r){for(let n=t.length-1;n>=0;n-=1){let i=t[n];Re(e,Fa,Oe(e,i),()=>{var a;return(a=i==null?void 0:i.afterTrack)==null?void 0:a.call(i,r)},void 0)}}var za=class{constructor(e,t){this.t=e,this.F=[],this.F.push(...t)}withEvaluation(e,t,r,n){if(this.F.length===0)return n();let i=[...this.F],a={flagKey:e,context:t,defaultValue:r},s=Ma(this.t,i,a),o=n();return Na(this.t,i,a,s,o),o}identify(e,t){let r=[...this.F],n={context:e,timeout:t},i=Aa(this.t,r,n);return a=>{ja(this.t,r,n,i,a)}}addHook(e){this.F.push(e)}afterTrack(e){if(this.F.length===0)return;let t=[...this.F];Va(this.t,t,e)}};function Ua(e){return{getMetadata(){return{name:"LaunchDarkly-Inspector-Adapter"}},afterEvaluation:(t,r,n)=>(e.onFlagUsed(t.flagKey,n,t.context),r),afterIdentify(t,r,n){return e.onIdentityChanged(t.context),r}}}function qa(e,t){return`an inspector: "${t}" of an invalid type (${e}) was configured`}function Ka(e,t){return`an inspector: "${t}" of type: "${e}" generated an exception`}function Ba(e,t){let r=!1,n={method:(...i)=>{try{e.method(...i)}catch(a){r||(r=!0,t.warn(Ka(n.type,n.name)))}},type:e.type,name:e.name,synchronous:e.synchronous};return n}var dn="flag-used",hn="flag-details-changed",fn="flag-detail-changed",gn="client-identity-changed",Ha=[dn,hn,fn,gn];function Ja(e,t){let r=Ha.includes(e.type)&&e.method&&typeof e.method=="function";return r||t.warn(qa(e.type,e.name)),r}var Ga=class{constructor(e,t){this.B=[];let r=e.filter(n=>Ja(n,t));this.B=r.map(n=>Ba(n,t))}hasInspectors(){return this.B.length!==0}onFlagUsed(e,t,r){this.B.forEach(n=>{n.type===dn&&n.method(e,t,r)})}onFlagsChanged(e){this.B.forEach(t=>{t.type===hn&&t.method(e)})}onFlagChanged(e,t){this.B.forEach(r=>{r.type===fn&&r.method(e,t)})}onIdentityChanged(e){this.B.forEach(t=>{t.type===gn&&t.method(e)})}},_a=class{constructor(e){this.t=e,this.n=new Map}on(e,t){var r,n;if(typeof e!="string"){(r=this.t)==null||r.warn("Only string event names are supported.");return}this.n.has(e)?(n=this.n.get(e))==null||n.push(t):this.n.set(e,[t])}off(e,t){let r=this.n.get(e);if(r){if(t){let n=r.filter(i=>i!==t);n.length===0?this.n.delete(e):this.n.set(e,n);return}this.n.delete(e)}}bn(e,t,...r){var n;try{e(...r)}catch(i){(n=this.t)==null||n.error(`Encountered error invoking handler for "${t}", detail: "${i}"`)}}emit(e,...t){let r=this.n.get(e);r==null||r.forEach(n=>this.bn(n,e,...t))}eventNames(){return[...this.n.keys()]}listenerCount(e){var t,r;return(r=(t=this.n.get(e))==null?void 0:t.length)!=null?r:0}};function Wa(e,t,r){let n=t.info.sdkData(),i;r.applicationInfo&&(r.applicationInfo.id&&(i=i!=null?i:{},i.id=r.applicationInfo.id),r.applicationInfo.version&&(i=i!=null?i:{},i.version=r.applicationInfo.version),r.applicationInfo.name&&(i=i!=null?i:{},i.name=r.applicationInfo.name),r.applicationInfo.versionName&&(i=i!=null?i:{},i.versionName=r.applicationInfo.versionName));let a={name:n.userAgentBase,version:n.version};n.wrapperName&&(a.wrapperName=n.wrapperName),n.wrapperVersion&&(a.wrapperVersion=n.wrapperVersion);let s={sdk:a,[r.credentialType]:e};return i&&(s.application=i),s}var{ClientMessages:fr,ErrorKinds:gr}=B,Za=5,Ya=class{constructor(e,t,r,n,i,a){var s,o;if(this.sdkKey=e,this.autoEnvAttributes=t,this.platform=r,this.u=ma(),this.Tt=15,this.T=new cr(!1),this.lt=new cr(!0),this.Mt=!1,this.Dn=Ji(),this.we=!1,!e)throw new Error("You must configure the client with a client-side SDK key");if(!r.encoding)throw new Error("Platform must implement Encoding because btoa is required.");this.e=new ua(n,a),this.logger=this.e.logger,this.we=(s=a==null?void 0:a.requiresStart)!=null?s:!1,this.initialContext=a==null?void 0:a.initialContext,this.Ee=Ci(this.sdkKey,this.platform.info,this.e.tags,this.e.serviceEndpoints.includeAuthorizationHeader,this.e.userAgentHeaderName),this.$=new Ta(this.platform,e,this.e.maxCachedContexts,(o=this.e.disableCache)!=null?o:!1,this.e.logger),this.C=xa(e,this.e,r),this.E=Ra(e,this.e,r,this.Ee,this.C),this.emitter=new _a,this.emitter.on("error",(u,d)=>{this.logger.error(`error: ${d}, context: ${JSON.stringify(u)}`)}),this.$.on((u,d,c)=>{this.Sn(d,c);let h=le.toLDContext(u);this.emitter.emit("change",h,d),d.forEach(g=>{this.emitter.emit(`change:${g}`,h)})}),this.dataManager=i(this.$,this.e,this.Ee,this.emitter,this.C),this.isFDv2=!!this.e.dataSystem,this.dataSystemConfig=this.e.dataSystem;let l=[...this.e.hooks];if(this.environmentMetadata=Wa(this.sdkKey,this.platform,this.e),this.e.getImplementationHooks(this.environmentMetadata).forEach(u=>{l.push(u)}),this.R=new za(this.logger,l),this.Y=new Ga(this.e.inspectors,this.logger),this.Y.hasInspectors()&&this.R.addHook(Ua(this.Y)),n.cleanOldPersistentData&&a!=null&&a.getLegacyStorageKeys&&this.platform.storage)try{this.logger.debug("Cleaning old persistent data."),Promise.all(a.getLegacyStorageKeys().map(u=>{var d;return(d=this.platform.storage)==null?void 0:d.clear(u)})).catch(u=>{this.logger.error(`Error cleaning old persistent data: ${u}`)}).finally(()=>{this.logger.debug("Cleaned old persistent data.")})}catch(u){this.logger.error(`Error cleaning old persistent data: ${u}`)}}allFlags(){return Object.entries(this.$.getAll()).reduce((e,[t,r])=>(r.flag!==null&&r.flag!==void 0&&!r.flag.deleted&&(e[t]=r.flag.value),e),{})}async close(){var e;await this.flush(),(e=this.E)==null||e.close(),this.dataManager.close(),this.logger.debug("Closed event processor and data source.")}async flush(){var e;try{await((e=this.E)==null?void 0:e.flush()),this.logger.debug("Successfully flushed event processor.")}catch(t){return this.logger.error(`Error flushing event processor: ${t}.`),{error:t,result:!1}}return{result:!0}}getContext(){return this.u.hasContext()?zr(this.u.getUnwrappedContext()):void 0}getInternalContext(){return this.u.getContext()}presetFlags(e){this.$.presetFlags(e)}start(e){var t,r;if(this.initializeResult)return Promise.resolve(this.initializeResult);if(this.startPromise)return this.startPromise;if(!this.initialContext)return this.logger.error("Initial context not set"),Promise.resolve({status:"failed",error:new Error("Initial context not set")});let n=q(k({},(t=e==null?void 0:e.identifyOptions)!=null?t:{}),{sheddable:!1});if(e!=null&&e.bootstrap&&!n.bootstrap&&(n.bootstrap=e.bootstrap),n.bootstrap)try{n.bootstrapParsed||(n.bootstrapParsed=an(this.logger,n.bootstrap)),n.bootstrapParsed&&this.presetFlags(n.bootstrapParsed)}catch(i){this.logger.error("Failed to bootstrap data",i)}return this.initializedPromise||(this.initializedPromise=new Promise(i=>{this.initResolve=i})),this.startPromise=this.Ft(this.initializedPromise,(r=e==null?void 0:e.timeout)!=null?r:5,"start"),this.identifyResult(this.initialContext,n),this.startPromise}async identify(e,t){let r=await this.identifyResult(e,t);if(r.status==="error")throw r.error;if(r.status==="timeout"){let n=new jr(`identify timed out after ${r.timeout} seconds.`);throw this.logger.error(n.message),n}}async identifyResult(e,t){var r,n;if(this.we&&!this.startPromise)return this.logger.error("The client must be started before a context can be identified. Call start() prior to identifying a context."),{status:"error",error:new Error("Identify called before start")};let i=(r=t==null?void 0:t.timeout)!=null?r:Za,a=(t==null?void 0:t.timeout)===void 0&&(t==null?void 0:t.noTimeout)===!0;i>this.Tt&&this.logger.warn(`The identify function was called with a timeout greater than ${this.Tt} seconds. We recommend a timeout of less than ${this.Tt} seconds.`);let s=this.Dn.execute({before:async()=>{let l=await Ca(e,this.platform);this.autoEnvAttributes===Ve.Enabled&&(l=await va(l,this.platform,this.e));let u=le.fromLDContext(l);if(u.valid){let d=this.R.identify(l,t==null?void 0:t.timeout);return{context:l,checkedContext:u,afterIdentify:d}}return{context:l,checkedContext:u}},execute:async l=>{var u;let{context:d,checkedContext:c}=l;if(!c.valid){let w=new Error("Context was unspecified or had no key");return this.emitter.emit("error",d,w),Promise.reject(w)}this.u.set(d,c),(u=this.E)==null||u.sendEvent(this.T.identifyEvent(c));let{identifyPromise:h,identifyResolve:g,identifyReject:D}=this.u.newIdentificationPromise();return this.logger.debug(`Identifying ${JSON.stringify(c)}`),await this.dataManager.identify(g,D,c,t),h},after:async(l,u)=>{var d,c,h;l.status==="complete"?(d=u==null?void 0:u.afterIdentify)==null||d.call(u,{status:"completed"}):l.status==="shed"?(c=u==null?void 0:u.afterIdentify)==null||c.call(u,{status:"shed"}):l.status==="error"&&((h=u==null?void 0:u.afterIdentify)==null||h.call(u,{status:"error"}))}},(n=t==null?void 0:t.sheddable)!=null?n:!1).then(l=>{if(l.status==="error"){let d={status:"error",error:l.error};return this.maybeSetInitializationResult({status:"failed",error:l.error}),d}if(l.status==="shed")return{status:"shed"};let u={status:"completed"};return this.maybeSetInitializationResult({status:"complete"}),u});if(a)return s;let o=new Promise(l=>{setTimeout(()=>{l({status:"timeout",timeout:i})},i*1e3)});return Promise.race([s,o])}maybeSetInitializationResult(e){this.initializeResult===void 0&&(this.initializeResult=e,this.emitter.emit("ready"),e.status==="complete"&&this.emitter.emit("initialized"),this.initResolve&&(this.initResolve(e),this.initResolve=void 0))}waitForInitialization(e){var t;let r=(t=e==null?void 0:e.timeout)!=null?t:5;return this.initializeResult?Promise.resolve(this.initializeResult):this.initializedPromise?this.Ft(this.initializedPromise,r):(this.initializedPromise||(this.initializedPromise=new Promise(n=>{this.initResolve=n})),this.Ft(this.initializedPromise,r))}Ft(e,t,r="waitForInitialization"){let n=Vr(t,r);return Promise.race([e.then(i=>(n.cancel(),i)),n.promise.then(()=>({status:"complete"})).catch(()=>({status:"timeout"}))]).catch(i=>{var a;return(a=this.logger)==null||a.error(i.message),{status:"failed",error:i}})}on(e,t){this.emitter.on(e,t)}off(e,t){this.emitter.off(e,t)}track(e,t,r){var n,i;if(!this.u.hasValidContext()){this.logger.warn(fr.MissingContextKeyNoEvent);return}r!==void 0&&!p.Number.is(r)&&((n=this.logger)==null||n.warn(fr.invalidMetricValue(typeof r))),(i=this.E)==null||i.sendEvent(this.e.trackEventModifier(this.T.customEvent(e,this.u.getContext(),t,r))),this.R.afterTrack({key:e,context:this.u.getUnwrappedContext(),data:t,metricValue:r})}dt(e,t,r,n){var i,a,s,o,l;let u=this.u.hasContext();u||(i=this.logger)==null||i.warn("Flag evaluation called before client is fully initialized, data from this evaulation could be stale.");let d=this.u.getContext(),c=this.$.get(e);if(c===void 0||c.flag.deleted){let v=t!=null?t:null;return(a=this.logger)==null||a.warn(`Unknown feature flag "${e}"; returning default value ${v}.`),u&&((s=this.E)==null||s.sendEvent(this.T.unknownFlagEvent(e,v,d))),lr(gr.FlagNotFound,t)}let{reason:h,value:g,variation:D,prerequisites:w}=c.flag;if(n){let[v,m]=n(g);if(!v){u&&((o=this.E)==null||o.sendEvent(r.evalEventClient(e,t,t,c.flag,d,h)));let S=new ki(`Wrong type "${m}" for feature flag "${e}"; returning default value`);return this.emitter.emit("error",this.u.getUnwrappedContext(),S),lr(gr.WrongType,t)}}let f=ur(g,D,h);return g==null&&(this.logger.debug("Result value is null. Providing default value."),f.value=t),w==null||w.forEach(v=>{this.dt(v,void 0,this.T)}),u&&((l=this.E)==null||l.sendEvent(r.evalEventClient(e,g,t,c.flag,d,h))),f}variation(e,t){let{value:r}=this.R.withEvaluation(e,this.u.getUnwrappedContext(),t,()=>this.dt(e,t,this.T));return r}variationDetail(e,t){return this.R.withEvaluation(e,this.u.getUnwrappedContext(),t,()=>this.dt(e,t,this.lt))}H(e,t,r,n){return this.R.withEvaluation(e,this.u.getUnwrappedContext(),t,()=>this.dt(e,t,r,n))}boolVariation(e,t){return this.H(e,t,this.T,r=>[p.Boolean.is(r),p.Boolean.getType()]).value}jsonVariation(e,t){return this.variation(e,t)}numberVariation(e,t){return this.H(e,t,this.T,r=>[p.Number.is(r),p.Number.getType()]).value}stringVariation(e,t){return this.H(e,t,this.T,r=>[p.String.is(r),p.String.getType()]).value}boolVariationDetail(e,t){return this.H(e,t,this.lt,r=>[p.Boolean.is(r),p.Boolean.getType()])}numberVariationDetail(e,t){return this.H(e,t,this.lt,r=>[p.Number.is(r),p.Number.getType()])}stringVariationDetail(e,t){return this.H(e,t,this.lt,r=>[p.String.is(r),p.String.getType()])}jsonVariationDetail(e,t){return this.variationDetail(e,t)}addHook(e){this.R.addHook(e)}setEventSendingEnabled(e,t){var r,n,i,a;this.Mt!==e&&(this.Mt=e,e?(this.logger.debug("Starting event processor"),(r=this.E)==null||r.start()):t?((n=this.logger)==null||n.debug("Flushing event processor before disabling."),this.flush().then(()=>{var s,o;this.Mt||((s=this.logger)==null||s.debug("Stopping event processor."),(o=this.E)==null||o.close())})):((i=this.logger)==null||i.debug("Stopping event processor."),(a=this.E)==null||a.close()))}sendEvent(e){var t;(t=this.E)==null||t.sendEvent(e)}getDebugOverrides(){var e,t;return(t=(e=this.$).getDebugOverride)==null?void 0:t.call(e)}Sn(e,t){if(!this.Y.hasInspectors())return;let r={};e.forEach(n=>{let i=this.$.get(n);if(i!=null&&i.flag&&!i.flag.deleted){let{reason:a,value:s,variation:o}=i.flag;r[n]=ur(s,o,a)}else r[n]={value:void 0,variationIndex:null}}),t==="init"?this.Y.onFlagsChanged(r):t==="patch"&&Object.entries(r).forEach(([n,i])=>{this.Y.onFlagChanged(n,i)})}};function Qa(e,t,r){r.forEach(n=>{var i;try{(i=n.registerDebug)==null||i.call(n,t)}catch(a){e.error(`Exception thrown registering plugin ${B.safeGetName(e,n)}.`)}})}function pr(e){return{polling:()=>({pathGet(t,r){return`/sdk/evalx/${e}/contexts/${ze(r,t)}`},pathReport(t,r){return`/sdk/evalx/${e}/context`},pathPost(t,r){throw new Error("Post for FDv1 unsupported.")},pathPing(t,r){throw new Error("Ping for polling unsupported.")}}),streaming:()=>({pathGet(t,r){return`/eval/${e}/${ze(r,t)}`},pathReport(t,r){return`/eval/${e}`},pathPost(t,r){throw new Error("Post for FDv1 unsupported.")},pathPing(t,r){return`/ping/${e}`}})}}function Xa(){return{polling:()=>({pathGet(e,t){return`/sdk/poll/eval/${ze(t,e)}`},pathReport(e,t){throw new Error("Report for FDv2 unsupported.")},pathPost(e,t){return"/sdk/poll/eval"},pathPing(e,t){throw new Error("Ping for polling unsupported.")}}),streaming:()=>({pathGet(e,t){return`/sdk/stream/eval/${ze(t,e)}`},pathReport(e,t){throw new Error("Report for FDv2 unsupported.")},pathPost(e,t){return"/sdk/stream/eval"},pathPing(e,t){throw new Error("Ping for streaming unsupported.")}})}}function es(e,t,r){return{async handlePut(n,i){r.debug(`Got PUT: ${Object.keys(i)}`);let a=Object.entries(i).reduce((s,[o,l])=>(s[o]={version:l.version,flag:l},s),{});await e.init(n,a),t.requestStateUpdate("VALID")},async handlePatch(n,i){r.debug(`Got PATCH ${JSON.stringify(i,null,2)}`),e.upsert(n,i.key,{version:i.version,flag:i})},async handleDelete(n,i){r.debug(`Got DELETE ${JSON.stringify(i,null,2)}`),e.upsert(n,i.key,{version:i.version,flag:q(k({},i),{deleted:!0,flagVersion:0,value:void 0,variation:0,trackEvents:!1})})},handleStreamingError(n){t.reportError(n.kind,n.message,n.code,n.recoverable)},handlePollingError(n){t.reportError(n.kind,n.message,n.status,n.recoverable)}}}function pn(e,t=()=>Date.now()){let r="CLOSED",n=t(),i;function a(){return{state:r,stateSince:n,lastError:i}}function s(o,l=!1){let u=o==="INTERRUPTED"&&r==="INITIALIZING"?"INITIALIZING":o,d=r!==u;d&&(r=u,n=t()),(d||l)&&e.emit("dataSourceStatus",a())}return{get status(){return a()},requestStateUpdate(o){s(o)},reportError(o,l,u,d=!1){i={kind:o,message:l,statusCode:u,time:t()},s(d?"INTERRUPTED":"CLOSED",!0)}}}function vr(e){e==null||e.debug("Poll completed after the processor was closed. Skipping processing.")}var ts=class{constructor(e,t,r,n,i){this.kn=e,this.Cn=t,this.In=r,this.m=n,this.t=i,this.h=!1}async be(){var e,t,r,n,i,a,s;if(this.h)return;let o=c=>{var h,g,D;(h=this.t)==null||h.error("Polling received invalid data"),(g=this.t)==null||g.debug(`Invalid JSON follows: ${c}`),(D=this.m)==null||D.call(this,new je(T.InvalidData,"Malformed JSON data in polling response"))};(e=this.t)==null||e.debug("Polling LaunchDarkly for feature flag updates");let l=Date.now();try{let c=await this.kn.requestPayload();try{if(this.h){vr(this.t);return}let h=JSON.parse(c);try{(t=this.In)==null||t.call(this,h)}catch(g){(r=this.t)==null||r.error(`Exception from data handler: ${g}`)}}catch(h){o(c)}}catch(c){if(this.h){vr(this.t);return}let h=c;if(h.status!==void 0&&!ke(h.status)){(n=this.t)==null||n.error(X(c,"polling request")),(i=this.m)==null||i.call(this,new je(T.ErrorResponse,h.message,h.status));return}(a=this.t)==null||a.error(X(c,"polling request","will retry"))}let u=Date.now()-l,d=Math.max(this.Cn*1e3-u,0);(s=this.t)==null||s.debug("Elapsed: %d ms, sleeping for %d ms",u,d),this.$t=setTimeout(()=>{this.be()},d)}start(){this.be()}stop(){this.$t&&(clearTimeout(this.$t),this.$t=void 0),this.h=!0}close(){this.stop()}},rs=(e,t,r,n)=>{r==null||r.error(`Stream received invalid data in "${e}" message`),r==null||r.debug(`Invalid JSON follows: ${t}`),n==null||n(new ut(T.InvalidData,"Malformed JSON data in event stream"))};function ns(e,t){t==null||t.debug(`Received ${e} event after processor was closed. Skipping processing.`)}function mr(e){e==null||e.debug("Ping completed after processor was closed. Skipping processing.")}var is=class{constructor(e,t,r,n,i,a,s,o,l){var u;this.Pn=e,this.Rt=t,this.n=r,this.z=n,this.xn=a,this.C=s,this.m=o,this.t=l,this.h=!1;let d;t.useReport&&!n.getEventSourceCapabilities().customMethod?d=t.paths.pathPing(i,e):d=t.useReport?t.paths.pathReport(i,e):t.paths.pathGet(i,e);let c=[...(u=t.queryParameters)!=null?u:[]];this.Rt.withReasons&&c.push({key:"withReasons",value:"true"}),this.z=n,this.De=k({},t.baseHeaders),this.t=l,this.Ln=Mr(t.serviceEndpoints,d,c)}Se(){this.ht=Date.now()}Nt(e){this.ht&&this.C&&this.C.recordStreamInit(this.ht,!e,Date.now()-this.ht),this.ht=void 0}An(e){var t,r,n;return Et(e)?((n=this.t)==null||n.warn(X(e,"streaming request","will retry")),this.Nt(!1),this.Se(),!0):(this.Nt(!1),(t=this.m)==null||t.call(this,new ut(T.ErrorResponse,e.message,e.status,!1)),(r=this.t)==null||r.error(X(e,"streaming request")),!1)}start(){this.Se();let e;this.Rt.useReport?(this.De["content-type"]="application/json",e={method:"REPORT",body:this.Pn}):e={};let t=this.z.createEventSource(this.Ln,q(k({headers:this.De},e),{errorFilter:r=>this.An(r),initialRetryDelayMillis:this.Rt.initialRetryDelayMillis,readTimeoutMillis:300*1e3,retryResetIntervalMillis:60*1e3}));this.ke=t,t.onclose=()=>{var r;(r=this.t)==null||r.info("Closed LaunchDarkly stream connection")},t.onerror=()=>{},t.onopen=()=>{var r;(r=this.t)==null||r.info("Opened LaunchDarkly stream connection")},t.onretrying=r=>{var n;(n=this.t)==null||n.info(`Will retry stream connection in ${r.delayMillis} milliseconds`)},this.n.forEach(({deserializeData:r,processJson:n},i)=>{t.addEventListener(i,a=>{var s,o;if(this.h){ns(i,this.t);return}if((s=this.t)==null||s.debug(`Received ${i} event`),a!=null&&a.data){this.Nt(!0);let{data:l}=a,u=r(l);if(!u){rs(i,l,this.t,this.m);return}n(u)}else(o=this.m)==null||o.call(this,new ut(T.InvalidData,"Unexpected payload from event stream"))})}),t.addEventListener("ping",async()=>{var r,n,i,a,s,o,l;(r=this.t)==null||r.debug("Got PING, going to poll LaunchDarkly for feature flag updates");try{let u=await this.xn.requestPayload();try{if(this.h){mr(this.t);return}let d=JSON.parse(u);try{(n=this.n.get("put"))==null||n.processJson(d)}catch(c){(i=this.t)==null||i.error(`Exception from data handler: ${c}`)}}catch(d){(a=this.t)==null||a.error("Polling after ping received invalid data"),(s=this.t)==null||s.debug(`Invalid JSON follows: ${u}`),(o=this.m)==null||o.call(this,new je(T.InvalidData,"Malformed JSON data in ping polling response"))}}catch(u){if(this.h){mr(this.t);return}let d=u;(l=this.m)==null||l.call(this,new je(T.ErrorResponse,d.message,d.status))}})}stop(){var e;(e=this.ke)==null||e.close(),this.ke=void 0,this.h=!0}close(){this.stop()}},as=class{constructor(e,t,r,n,i,a,s,o,l){this.platform=e,this.flagManager=t,this.credential=r,this.config=n,this.getPollingPaths=i,this.getStreamingPaths=a,this.baseHeaders=s,this.emitter=o,this.diagnosticsManager=l,this.closed=!1,this.logger=n.logger,this.dataSourceStatusManager=pn(o),this.q=es(t,this.dataSourceStatusManager,this.config.logger)}setConnectionParams(e){this.On=e}createPollingProcessor(e,t,r,n,i){let a=new ts(r,this.config.pollInterval,async s=>{await this.q.handlePut(t,s),n==null||n()},s=>{this.emitter.emit("error",e,s),this.q.handlePollingError(s),i==null||i(s)},this.logger);this.updateProcessor=this.Ce(a,this.dataSourceStatusManager)}createStreamingProcessor(e,t,r,n,i){var a;let s=new is(JSON.stringify(e),{credential:this.credential,serviceEndpoints:this.config.serviceEndpoints,paths:this.getStreamingPaths(),baseHeaders:this.baseHeaders,initialRetryDelayMillis:this.config.streamInitialReconnectDelay*1e3,withReasons:this.config.withReasons,useReport:this.config.useReport,queryParameters:(a=this.On)==null?void 0:a.queryParameters},this.createStreamListeners(t,n),this.platform.requests,this.platform.encoding,r,this.diagnosticsManager,o=>{this.emitter.emit("error",e,o),this.q.handleStreamingError(o),i==null||i(o)},this.logger);this.updateProcessor=this.Ce(s,this.dataSourceStatusManager)}createStreamListeners(e,t){let r=new Map;return r.set("put",{deserializeData:JSON.parse,processJson:async n=>{await this.q.handlePut(e,n),t==null||t()}}),r.set("patch",{deserializeData:JSON.parse,processJson:async n=>{this.q.handlePatch(e,n)}}),r.set("delete",{deserializeData:JSON.parse,processJson:async n=>{this.q.handleDelete(e,n)}}),r}Ce(e,t){return{start:()=>{t.requestStateUpdate("INITIALIZING"),e.start()},stop:()=>{e.stop(),t.requestStateUpdate("CLOSED")},close:()=>{e.close(),t.requestStateUpdate("CLOSED")}}}close(){var e;(e=this.updateProcessor)==null||e.close(),this.closed=!0}};function ss(e,t){return Object.entries(e).every(([r,n])=>n===void 0||t[r]===n)}var os={foreground:"foregroundMode",background:"backgroundMode"};function ls(e,t){let r=e.find(n=>ss(n.conditions,t));if(r){let{mode:n}=r;return typeof n=="object"?t[os[n.configured]]:n}return t.foregroundMode}var us=[{conditions:{networkAvailable:!1},mode:"offline"},{conditions:{},mode:{configured:"foreground"}}];function ue(e,t,r,n){return{type:"changeSet",payload:e,fdv1Fallback:t,environmentId:r,freshness:n}}function V(e,t){return{type:"status",state:"interrupted",errorInfo:e,fdv1Fallback:t}}function ee(){return{type:"status",state:"shutdown",fdv1Fallback:!1}}function Ce(e,t){return{type:"status",state:"terminal_error",errorInfo:e,fdv1Fallback:t}}function vn(e,t){return{type:"status",state:"goodbye",reason:e,fdv1Fallback:t}}function ve(e){return{kind:T.ErrorResponse,message:`Unexpected status code: ${e}`,statusCode:e,time:Date.now()}}function Ke(e){return{kind:T.NetworkError,message:e,time:Date.now()}}function ce(e){return{kind:T.InvalidData,message:e,time:Date.now()}}function pt(e){return{kind:T.Unknown,message:e,time:Date.now()}}function cs(e){let t=e,{version:r}=t;return yt(t,["version"])}async function ds(e){let{storage:t,crypto:r,environmentNamespace:n,context:i,logger:a}=e;if(!t)return a==null||a.debug("No storage available for cache initializer"),ue({version:0,type:"none",updates:[]},!1);let s=await on(t,r,n,i,a);if(!s)return a==null||a.debug("Cache miss for context"),ue({version:0,type:"none",updates:[]},!1);let o={version:0,type:"full",updates:Object.entries(s.flags).map(([u,d])=>({kind:"flag-eval",key:u,version:d.version,object:cs(d)}))},l=await Oa(t,r,n,i,a);return a==null||a.debug("Loaded cached flag evaluations via cache initializer"),ue(o,!1,void 0,l)}function hs(e){return{isCache:!0,create(t){let r,n=new Promise(i=>{r=i});return{async run(){return Promise.race([n,ds(e)])},close(){r==null||r(ee()),r=void 0}}}}}function mn(e,t,r,n,i,a,s,o){let l=k({},a),u,d="GET",c;return o?(d="POST",l["content-type"]="application/json",u=e,c=r.pathPost(i,e)):c=r.pathGet(i,e),{async poll(h){let g=[...s!=null?s:[]];h&&g.push({key:"basis",value:h});let D=Nr(t,c,g),w=await n.fetch(D,{method:d,headers:l,body:u}),f=w.status===304?null:await w.text();return{status:w.status,headers:w.headers,body:f}}}}function yn(e){return e}function fs(e){if(e.deleted)return{version:e.version,flag:{version:e.version,deleted:!0,value:void 0,trackEvents:!1}};let t=e.object;return{version:e.version,flag:q(k({},t),{version:e.version})}}function gs(e){let t={};return e.forEach(r=>{r.kind==="flag-eval"&&(t[r.key]=fs(r))}),t}function ps(e){let t=e.get("x-ld-fd-fallback");return t!==null&&t.toLowerCase()==="true"}function vs(e){var t;return(t=e.get("x-ld-envid"))!=null?t:void 0}function ms(e,t,r,n){let i=B.createProtocolHandler({"flag-eval":yn},n),a;if(e.forEach(o=>{if(a)return;let l=i.processEvent(o);switch(l.type){case"payload":a=ue(l.payload,t,r);break;case"goodbye":a=vn(l.reason,t);break;case"serverError":{let u=pt(l.reason);n==null||n.error(`Server error during polling: ${l.reason}`),a=V(u,t);break}case"error":{if(l.kind==="MISSING_PAYLOAD"||l.kind==="PROTOCOL_ERROR"){let u=ce(l.message);n==null||n.warn(`Protocol error during polling: ${l.message}`),a=V(u,t)}else n==null||n.warn(l.message);break}}}),a)return a;let s=pt("Unexpected end of polling response");return n==null||n.error("Unexpected end of polling response"),V(s,t)}async function Pt(e,t,r){var n;let i=!1,a;try{let s=await e.poll(t);if(i=ps(s.headers),a=vs(s.headers),s.status===304)return ue({version:0,type:"none",updates:[]},i,a);if(s.status<200||s.status>=300){let l=ve(s.status);return r==null||r.error(`Polling request failed with HTTP error: ${s.status}`),s.status<=0||ke(s.status)?V(l,i):Ce(l,i)}if(!s.body){let l=ce("Empty response body");return r==null||r.error("Polling request received empty response body"),V(l,i)}let o;try{o=JSON.parse(s.body)}catch(l){let u=ce("Malformed JSON data in polling response");return r==null||r.error("Polling request received malformed data"),V(u,i)}if(!Array.isArray(o.events)){let l=ce("Invalid polling response: missing or invalid events array");return r==null||r.error("Polling response does not contain a valid events array"),V(l,i)}return ms(o.events,i,a,r)}catch(s){let o=(n=s==null?void 0:s.message)!=null?n:String(s);r==null||r.error(`Polling request failed with network error: ${o}`);let l=Ke(o);return V(l,i)}}var it=Symbol("shutdown");function ys(e,t,r){let n,i=new Promise(a=>{n=a});return{async run(){let a=r(),s;for(let l=0;l<=3;l+=1){let u=await Promise.race([i,Pt(e,a,t)]);if(u===it)return ee();if(u.type==="changeSet"||u.state!=="interrupted")return u;if(s=u,l<3&&(t==null||t.warn(`Recoverable polling error (attempt ${l+1}/4), retrying in 1000ms...`),await Promise.race([i,Dt(1e3)])===it))return ee()}let o=s;return Ce(o.errorInfo,o.fdv1Fallback)},close(){n==null||n(it),n=void 0}}}function $t(){let e=[],t=[];return{put(r){let n=t.shift();n?n(r):e.push(r)},take(){return e.length>0?Promise.resolve(e.shift()):new Promise(r=>{t.push(r)})}}}function ws(e,t,r,n){let i=$t(),a,s=new Promise(d=>{a=d}),o,l=!1;async function u(){if(l)return;let d=Date.now();try{let c=await Pt(e,r(),t);if(l)return;let h=!1;if(c.type==="status")switch(c.state){case"terminal_error":l=!0,h=!0;break;case"interrupted":case"goodbye":break;case"shutdown":break;default:break}h?(a==null||a(c),a=void 0):i.put(c)}catch(c){t==null||t.debug(`Polling error: ${c}`)}if(!l){let c=Date.now()-d,h=Math.min(Math.max(n-c,0),n);o=setTimeout(()=>{u()},h)}}return u(),{async next(){return Promise.race([s,i.take()])},close(){l=!0,o!==void 0&&(clearTimeout(o),o=void 0),a==null||a(ee()),a=void 0}}}function vt(e,t){var r,n;let i=(r=t==null?void 0:t.isFDv1Fallback)!=null?r:!1,a=(n=t==null?void 0:t.initialState)!=null?n:i?"blocked":"available";return{factory:e,isFDv1Fallback:i,state:a}}function bs(e,t,r){let n,i=-1,a=-1,s=!1;function o(){n&&(n.close(),n=void 0)}function l(){return t.findIndex(u=>u.state==="available")}return{get isShutdown(){return s},getNextInitializerAndSetActive(){if(s||(i+=1,i>=e.length))return;o();let u=e[i].create(r);return n=u,u},getNextAvailableSynchronizerAndSetActive(){if(s||t.length===0)return;let u=0;for(;u<t.length;){a+=1,a>=t.length&&(a=0);let d=t[a];if(d.state==="available"){o();let c=d.factory.create(r);return n=c,c}u+=1}},blockCurrentSynchronizer(){a>=0&&a<t.length&&(t[a].state="blocked")},resetSourceIndex(){a=-1},fdv1Fallback(){t.forEach(u=>{u.state=u.isFDv1Fallback?"available":"blocked"}),a=-1},isPrimeSynchronizer(){return a===l()},getAvailableSynchronizerCount(){return t.filter(u=>u.state==="available").length},hasFDv1Fallback(){return t.some(u=>u.isFDv1Fallback)},close(){s=!0,o()}}}var ks=["server-intent","put-object","delete-object","payload-transferred","goodbye","error","heart-beat"];function Es(e){let t=$t(),r=B.createProtocolHandler({"flag-eval":yn},e.logger),n=k({},e.headers);function i(){var f;let v=[...e.parameters],m=(f=e.selectorGetter)==null?void 0:f.call(e);return m&&v.push({key:"basis",value:encodeURIComponent(m)}),Mr(e.serviceEndpoints,e.streamUriPath,v)}let a,s,o=!1,l=!1,u=!1;function d(){s=Date.now()}function c(f){s&&e.diagnosticsManager&&e.diagnosticsManager.recordStreamInit(s,!f,Date.now()-s),s=void 0}function h(f){switch(f.type){case"payload":c(!0),t.put(ue(f.payload,o));break;case"goodbye":t.put(vn(f.reason,o));break;case"serverError":t.put(V(pt(f.reason),o));break;case"error":(f.kind==="MISSING_PAYLOAD"||f.kind==="PROTOCOL_ERROR")&&t.put(V(ce(f.message),o));break}}function g(f){var v,m,S,E,R,I;return((v=f.headers)==null?void 0:v["x-ld-fd-fallback"])==="true"?(o=!0,c(!1),t.put(Ce(ve((m=f.status)!=null?m:0),!0)),!1):Et(f)?((R=e.logger)==null||R.warn(X(f,"streaming request","will retry")),c(!1),d(),t.put(V(ve((I=f.status)!=null?I:0),o)),!0):((S=e.logger)==null||S.error(X(f,"streaming request")),c(!1),t.put(Ce(ve((E=f.status)!=null?E:0),o)),!1)}function D(f){ks.forEach(v=>{f.addEventListener(v,m=>{var S,E,R,I,y;if(u){(S=e.logger)==null||S.debug(`Received ${v} event after processor was closed. Skipping.`);return}if(!(m!=null&&m.data)){v!=="error"&&((E=e.logger)==null||E.warn(`Event from EventStream missing data for "${v}".`));return}(R=e.logger)==null||R.debug(`Received ${v} event`);let C;try{C=JSON.parse(m.data)}catch(j){(I=e.logger)==null||I.error(`Stream received data that was unable to be parsed in "${v}" message`),(y=e.logger)==null||y.debug(`Data follows: ${m.data}`),t.put(V(ce("Malformed JSON in EventStream"),o));return}let F=r.processEvent({event:v,data:C});h(F)})})}function w(f){f.addEventListener("ping",async()=>{var v,m,S,E,R,I,y;if(u){(v=e.logger)==null||v.debug("Ping received after processor was closed. Skipping.");return}if((m=e.logger)==null||m.debug("Got PING, going to poll LaunchDarkly for feature flag updates"),!e.pingHandler){(S=e.logger)==null||S.warn("Ping event received but no ping handler configured.");return}try{let C=await e.pingHandler.handlePing();if(u){(E=e.logger)==null||E.debug("Ping completed after processor was closed. Skipping processing.");return}t.put(C)}catch(C){if(u)return;(I=e.logger)==null||I.error(`Error handling ping: ${(R=C==null?void 0:C.message)!=null?R:C}`),t.put(V(Ke((y=C==null?void 0:C.message)!=null?y:"Error during ping poll"),o))}})}return{start(){if(l||u)return;l=!0,d();let f=e.requests.createEventSource(i(),{headers:n,errorFilter:v=>g(v),initialRetryDelayMillis:e.initialRetryDelayMillis,readTimeoutMillis:300*1e3,retryResetIntervalMillis:60*1e3,urlBuilder:i});a=f,D(f),w(f),f.onclose=()=>{var v;(v=e.logger)==null||v.info("Closed LaunchDarkly stream connection")},f.onerror=v=>{var m;u||v&&typeof v.status=="number"||t.put(V(Ke((m=v==null?void 0:v.message)!=null?m:"IO Error"),o))},f.onopen=()=>{var v;(v=e.logger)==null||v.info("Opened LaunchDarkly stream connection"),r.reset()},f.onretrying=v=>{var m;(m=e.logger)==null||m.info(`Will retry stream connection in ${v.delayMillis} milliseconds`)}},close(){u||(u=!0,a==null||a.close(),a=void 0,t.put(ee()))},takeResult(){return t.take()}}}function Ds(e){let t=!1,r,n=new Promise(i=>{r=i});return{run(){return t?Promise.resolve(ee()):(e.start(),Promise.race([e.takeResult().then(i=>(e.close(),i)),n]))},close(){t||(t=!0,e.close(),r==null||r(ee()),r=void 0)}}}function Cs(e){let t=!1,r=!1,n,i=new Promise(a=>{n=a});return{next(){return r?Promise.resolve(ee()):(t||(t=!0,e.start()),Promise.race([e.takeResult(),i]))},close(){r||(r=!0,e.close(),n==null||n(ee()),n=void 0)}}}function Ss(e,t,r){return{handlePing:()=>Pt(e,t(),r)}}function wn(e,t){var r,n;return!(t!=null&&t.pollingBaseUri)&&!(t!=null&&t.streamingBaseUri)?e.serviceEndpoints:new we((r=t.streamingBaseUri)!=null?r:e.serviceEndpoints.streaming,(n=t.pollingBaseUri)!=null?n:e.serviceEndpoints.polling,e.serviceEndpoints.events,e.serviceEndpoints.analyticsEventPath,e.serviceEndpoints.diagnosticEventPath,e.serviceEndpoints.includeAuthorizationHeader,e.serviceEndpoints.payloadFilterKey)}function mt(e,t){if(!(t!=null&&t.pollingBaseUri))return e.requestor;let r=wn(e,t);return mn(e.plainContextString,r,e.polling.paths,e.requests,e.encoding,e.baseHeaders,e.queryParams)}function yr(e,t,r){var n;let i=wn(t,e.endpoints),a=mt(t,e.endpoints),s=t.streaming.paths.pathGet(t.encoding,t.plainContextString);return Es({requests:t.requests,serviceEndpoints:i,streamUriPath:s,parameters:t.queryParams,selectorGetter:r,headers:t.baseHeaders,initialRetryDelayMillis:((n=e.initialReconnectDelay)!=null?n:t.streaming.initialReconnectDelaySeconds)*1e3,logger:t.logger,pingHandler:Ss(a,r,t.logger)})}function xs(){return{createInitializerFactory(e,t){switch(e.type){case"polling":{let r=mt(t,e.endpoints);return{create:n=>ys(r,t.logger,n)}}case"streaming":return{create:r=>Ds(yr(e,t,r))};case"cache":return hs({storage:t.storage,crypto:t.crypto,environmentNamespace:t.environmentNamespace,context:t.context,logger:t.logger});default:return}},createSynchronizerSlot(e,t){var r;switch(e.type){case"polling":{let n=((r=e.pollInterval)!=null?r:t.polling.intervalSeconds)*1e3,i=mt(t,e.endpoints);return vt({create:a=>ws(i,t.logger,a,n)})}case"streaming":return vt({create:n=>Cs(yr(e,t,n))});default:return}}}}function Rs(e){return{version:1,type:"full",updates:Object.entries(e).map(([t,r])=>{var n;return{kind:"flag",key:t,version:(n=r.version)!=null?n:1,object:r}})}}function Os(e,t,r){let n=$t(),i,a=new Promise(c=>{i=c}),s,o=!1,l=!1;function u(c){if(!o){let h=Date.now()-c,g=Math.min(Math.max(t-h,0),t);s=setTimeout(d,g)}}async function d(){if(o)return;r==null||r.debug("Polling FDv1 endpoint for feature flag updates");let c=Date.now();try{let h=await e.requestPayload();if(o)return;let g;try{let D=JSON.parse(h);g=Rs(D)}catch(D){r==null||r.error("FDv1 polling received malformed data"),n.put({type:"status",state:"interrupted",errorInfo:ce("Malformed data in FDv1 polling response"),fdv1Fallback:!1}),u(c);return}n.put(ue(g,!1))}catch(h){if(o)return;let g=h;if(g.status!==void 0&&!ke(g.status)){r==null||r.error(X(h,"FDv1 polling request")),o=!0,i==null||i(Ce(ve(g.status),!1)),i=void 0;return}r==null||r.warn(X(h,"FDv1 polling request","will retry")),n.put({type:"status",state:"interrupted",errorInfo:g.status?ve(g.status):Ke(g.message),fdv1Fallback:!1})}u(c)}return{next(){return l||(l=!0,d()),Promise.race([a,n.take()])},close(){o=!0,s!==void 0&&(clearTimeout(s),s=void 0),i==null||i(ee()),i=void 0}}}var bn=120*1e3,kn=300*1e3;function Is(e,t,r){let n=Vr(e/1e3,r);return{promise:n.promise.then(()=>new Promise(()=>{}),()=>t),cancel:n.cancel}}function En(e,t,r){let n,i,a=!1,s=new Promise(u=>{n=u});function o(){!i&&!a&&(i=Is(e,t,`${t} condition`),i.promise.then(u=>{i=void 0,n==null||n(u)}))}function l(){i==null||i.cancel(),i=void 0}return r||o(),{promise:s,inform(u){a||r==null||r(u,{start:o,cancel:l})},close(){a=!0,l()}}}function wr(e){return En(e,"fallback",(t,{start:r,cancel:n})=>{t.type==="changeSet"?n():t.type==="status"&&t.state==="interrupted"&&r()})}function Ps(e){return En(e,"recovery")}function br(e){return{promise:e.length===0?void 0:Promise.race(e.map(t=>t.promise)),inform(t){e.forEach(r=>r.inform(t))},close(){e.forEach(t=>t.close())}}}function $s(e,t,r=bn,n=kn){return e<=1?br([]):br(t?[wr(r)]:[wr(r),Ps(n)])}function Ls(e){let{initializerFactories:t,synchronizerSlots:r,dataCallback:n,statusManager:i,selectorGetter:a,logger:s,fallbackTimeoutMs:o=bn,recoveryTimeoutMs:l=kn}=e,u=!1,d=!1,c=!1,h,g,D=t.length>0&&t.every(y=>y.isCache===!0)&&r.length===0,w=bs(t,r,a);function f(){u||(u=!0,h==null||h(),h=void 0,g=void 0)}function v(y){n(y.payload),i.requestStateUpdate("VALID")}function m(y){y.errorInfo&&i.reportError(y.errorInfo.kind,y.errorInfo.message,y.errorInfo.statusCode,y.state==="interrupted")}function S(y){return y.fdv1Fallback&&w.hasFDv1Fallback()?(w.fdv1Fallback(),!0):!1}async function E(){var y,C;let F=!1;for(;!d;){let j=w.getNextInitializerAndSetActive();if(j===void 0)break;let O=await j.run();if(d)return;if(O.type==="changeSet"&&O.payload.type!=="none"){if(v(O),S(O)){c=!0;break}if(O.payload.state){f();return}c=!0}else if(O.type==="status"){switch(O.state){case"interrupted":case"terminal_error":s==null||s.warn(`Initializer failed: ${(C=(y=O.errorInfo)==null?void 0:y.message)!=null?C:"unknown error"}`),m(O),F=!0;break;case"shutdown":return}S(O)}}d||(D?(!c&&!F&&i.requestStateUpdate("VALID"),f()):c&&f())}async function R(){for(var y,C,F,j;!d;){let O=w.getNextAvailableSynchronizerAndSetActive();if(O===void 0){u||(g==null||g(new Error("All data sources exhausted without receiving data.")),h=void 0,g=void 0);return}let _=$s(w.getAvailableSynchronizerCount(),w.isPrimeSynchronizer(),o,l);_.promise&&(s==null||s.debug("Fallback condition active for current synchronizer."));let te=!0;try{for(;!d&&te;){let de=[O.next().then(P=>({source:"sync",value:P}))];_.promise!==void 0&&de.push(_.promise.then(P=>({source:"condition",value:P})));let he=await Promise.race(de);if(d)return;if(he.source==="condition"){let P=he.value;P==="fallback"?s==null||s.warn("Fallback condition fired, moving to next synchronizer."):P==="recovery"&&(s==null||s.info("Recovery condition fired, resetting to primary synchronizer."),w.resetSourceIndex()),te=!1}else{let P=he.value;if(_.inform(P),P.type==="changeSet")v(P),u||f();else if(P.type==="status")switch(P.state){case"interrupted":s==null||s.warn(`Synchronizer interrupted: ${(C=(y=P.errorInfo)==null?void 0:y.message)!=null?C:"unknown error"}`),m(P);break;case"terminal_error":s==null||s.error(`Synchronizer terminal error: ${(j=(F=P.errorInfo)==null?void 0:F.message)!=null?j:"unknown error"}`),m(P),w.blockCurrentSynchronizer(),te=!1;break;case"shutdown":return;case"goodbye":break;default:break}S(P)&&(te=!1)}}}finally{_.close()}}}async function I(){if(t.length===0&&r.length===0){i.requestStateUpdate("VALID"),f();return}await E(),d||await R()}return{start(){return new Promise((y,C)=>{h=y,g=C,i.requestStateUpdate("INITIALIZING"),I().then(()=>{u||(g==null||g(new Error("Data source closed before initialization completed.")),h=void 0,g=void 0)}).catch(F=>{u?s==null||s.error(`Orchestration error: ${F}`):(g==null||g(F instanceof Error?F:new Error(String(F))),h=void 0,g=void 0)})})},close(){d=!0,w.close()}}}var Ts=1e3;function Fs(e){let{initialState:t,onReconcile:r,debounceMs:n=Ts}=e,{networkState:i,lifecycleState:a,requestedMode:s}=t,o,l=!1;function u(){return{networkState:i,lifecycleState:a,requestedMode:s}}function d(){l||(o!==void 0&&clearTimeout(o),o=setTimeout(()=>{o=void 0,l||r(u())},n))}return{setNetworkState(c){i!==c&&(i=c,d())},setLifecycleState(c){a!==c&&(a=c,d())},setRequestedMode(c){s!==c&&(s=c,d())},close(){l=!0,o!==void 0&&(clearTimeout(o),o=void 0)}}}var K="[FDv2DataManagerBase]";function Ms(e){var t;let{platform:r,flagManager:n,config:i,baseHeaders:a,emitter:s,transitionTable:o,foregroundMode:l,backgroundMode:u,modeTable:d,sourceFactoryProvider:c,buildQueryParams:h,fdv1Endpoints:g,fallbackTimeoutMs:D,recoveryTimeoutMs:w}=e,{logger:f}=i,v=pn(s),m=Xa(),S=(t=i.dataSystem)!=null&&t.connectionModes?k(k({},d),i.dataSystem.connectionModes):d,E,R=l,I=l,y,C,F,j,O=!1,_=!1,te=!1,de,he="fresh",P,We,Nt=!1,A,re,Ie="available",Ee="foreground";function At(b){return S[b]}function Pn(){return{lifecycle:Ee,networkAvailable:Ie==="available",foregroundMode:I,backgroundMode:u!=null?u:"offline"}}function jt(){return P!==void 0?P:ls(o,Pn())}function Vt(){return We===!0?"streaming":We===!1?l==="streaming"?"one-shot":l:Nt?"streaming":l}function Ze(){I=Vt(),C==null||C.setRequestedMode(I)}function $n(b,x,W){var z,Z,Y,Pe,De;let $e=[];W&&b.initializers.filter($=>!(_&&$.type==="cache")).forEach($=>{let se=c.createInitializerFactory($,x);se?$e.push(se):f.warn(`${K} Unsupported initializer type '${$.type}'. It will be skipped.`)});let fe=[];if(b.synchronizers.forEach($=>{let se=c.createSynchronizerSlot($,x);se?fe.push(se):f.warn(`${K} Unsupported synchronizer type '${$.type}'. It will be skipped.`)}),g&&fe.length>0){let $=b.fdv1Fallback,se=((z=$==null?void 0:$.pollInterval)!=null?z:i.pollInterval)*1e3,Fn=(Z=$==null?void 0:$.endpoints)!=null&&Z.pollingBaseUri||(Y=$==null?void 0:$.endpoints)!=null&&Y.streamingBaseUri?new we((Pe=$.endpoints.streamingBaseUri)!=null?Pe:x.serviceEndpoints.streaming,(De=$.endpoints.pollingBaseUri)!=null?De:x.serviceEndpoints.polling,x.serviceEndpoints.events,x.serviceEndpoints.analyticsEventPath,x.serviceEndpoints.diagnosticEventPath,x.serviceEndpoints.includeAuthorizationHeader,x.serviceEndpoints.payloadFilterKey):x.serviceEndpoints,Mn=()=>ft(x.plainContextString,Fn,g.polling(),x.requests,x.encoding,x.baseHeaders,x.queryParams,i.withReasons,i.useReport),Nn={create:()=>Os(Mn(),se,f)};fe.push(vt(Nn,{isFDv1Fallback:!0}))}return{initializerFactories:$e,synchronizerSlots:fe}}function Ln(b){var x;f.debug(`${K} dataCallback: type=${b.type}, updates=${b.updates.length}, state=${b.state}`),E=b.state;let W=F;if(!W){f.warn(`${K} dataCallback called without an identified context.`);return}let z=gs((x=b.updates)!=null?x:[]);n.applyChanges(W,z,b.type).catch(Z=>{f.warn(`${K} Failed to persist flag cache: ${Z}`)}),he==="cached"&&!O&&A&&(O=!0,A(),A=void 0,re=void 0)}function Ye(b,x){if(!j){f.warn(`${K} Cannot create data source without factory context.`);return}let W=At(b),{initializerFactories:z,synchronizerSlots:Z}=$n(W,j,x);if(R=b,z.length===0&&Z.length===0){f.debug(`${K} Mode '${b}' has no sources. No data source created.`),!O&&A&&(O=!0,A(),A=void 0,re=void 0);return}y=Ls({initializerFactories:z,synchronizerSlots:Z,dataCallback:Ln,statusManager:v,selectorGetter:()=>E,logger:f,fallbackTimeoutMs:D,recoveryTimeoutMs:w}),y.start().then(()=>{O=!0,A&&(A(),A=void 0,re=void 0)}).catch(Y=>{re&&(re(Y instanceof Error?Y:new Error(String(Y))),A=void 0,re=void 0)})}function Tn(b){if(te||!j)return;Ie=b.networkState,Ee=b.lifecycleState,I=b.requestedMode;let x=jt();if(x===R){f.debug(`${K} Reconcile: mode unchanged (${x}). No action.`);return}f.debug(`${K} Reconcile: mode switching from '${R}' to '${x}'.`),y==null||y.close(),y=void 0,Ye(x,!E)}return{get configuredForegroundMode(){return l},async identify(b,x,W,z){if(te){f.debug(`${K} Identify called after close.`);return}y==null||y.close(),y=void 0,C==null||C.close(),C=void 0,E=void 0,O=!1,_=!1,he=z!=null&&z.waitForNetworkResults?"fresh":"cached",F=W,A=b,re=x;let Z=JSON.stringify(le.toLDContext(W)),Y=h(z);i.withReasons&&Y.push({key:"withReasons",value:"true"});let Pe=m.streaming(),De=m.polling(),$e=mn(Z,i.serviceEndpoints,De,r.requests,r.encoding,a,Y),fe=await tn(r.crypto,e.credential);if(te){f.debug(`${K} Identify aborted: closed during async setup.`);return}j={requestor:$e,requests:r.requests,encoding:r.encoding,serviceEndpoints:i.serviceEndpoints,baseHeaders:a,queryParams:Y,plainContextString:Z,logger:f,polling:{paths:De,intervalSeconds:i.pollInterval},streaming:{paths:Pe,initialReconnectDelaySeconds:i.streamInitialReconnectDelay},storage:r.storage,crypto:r.crypto,environmentNamespace:fe,context:W},I=Vt();let $=jt();f.debug(`${K} Identify: initial mode resolved to '${$}'.`),_=(z==null?void 0:z.bootstrap)!==void 0,_?(O=!0,v.requestStateUpdate("VALID"),A==null||A(),A=void 0,re=void 0,At($).synchronizers.length>0&&Ye($,!1)):Ye($,!0),C=Fs({initialState:{networkState:Ie,lifecycleState:Ee,requestedMode:I},onReconcile:Tn})},close(){te=!0,y==null||y.close(),y=void 0,C==null||C.close(),C=void 0,A=void 0,re=void 0},setNetworkState(b){Ie=b,C==null||C.setNetworkState(b)},setLifecycleState(b){b==="background"&&Ee!=="background"&&(de==null||de()),Ee=b,C==null||C.setLifecycleState(b)},setConnectionMode(b){P=b,b!==void 0?C==null||C.setRequestedMode(b):Ze()},getCurrentMode(){return R},setFlushCallback(b){de=b},setForcedStreaming(b){We=b,Ze()},setAutomaticStreamingState(b){Nt=b,Ze()}}}function Lt(){return typeof document!="undefined"}function He(){return typeof window!="undefined"}function Dn(e,t,r){return Lt()?(document.addEventListener(e,t,r),()=>{document.removeEventListener(e,t,r)}):()=>{}}function Cn(e,t,r){return He()?(window.addEventListener(e,t,r),()=>{window.removeEventListener(e,t,r)}):()=>{}}function Se(){return He()?window.location.href:""}function Ns(){return He()?window.location.search:""}function As(){return He()?window.location.hash:""}function js(){if(typeof crypto!="undefined")return crypto;throw Error("Access to a web crypto API is required")}function Vs(){return Lt()?document.visibilityState:"visibile"}function zs(e){if(Lt())return document.querySelectorAll(e)}var Us="[BrowserDataManager]",qs=class extends as{constructor(e,t,r,n,i,a,s,o,l,u){super(e,t,r,n,a,s,o,l,u),this.Bn=i,this.Z=void 0,this.Ut=!1,this.Z=i.streaming}I(e,...t){this.logger.debug(`${Us} ${e}`,...t)}async identify(e,t,r,n){if(this.closed){this.I("Identify called after data manager was closed.");return}this.context=r;let i=n;i!=null&&i.hash?this.setConnectionParams({queryParameters:[{key:"h",value:i.hash}]}):this.setConnectionParams(),this.zt=i==null?void 0:i.hash,i!=null&&i.bootstrap?this.Tn(r,i,e):(await this.flagManager.loadCached(r)&&this.I("Identify - Flags loaded from cache. Continuing to initialize via a poll."),await this.Mn(r,e,t)),this.Ie(),this.jt()}async Fn(e){let t=JSON.stringify(le.toLDContext(e)),r=ft(t,this.config.serviceEndpoints,this.getPollingPaths(),this.platform.requests,this.platform.encoding,this.baseHeaders,[],this.config.withReasons,this.config.useReport,this.zt),n=3,i;for(let a=0;a<=n;a+=1)try{return await r.requestPayload()}catch(s){if(!Et(s))throw s;i=s,a<n&&(this.I(X(s,"initial poll request","will retry")),await Dt(1e3))}throw i}async Mn(e,t,r){var n,i;try{this.dataSourceStatusManager.requestStateUpdate(er.Initializing);let a=await this.Fn(e);try{let s=this.createStreamListeners(e,t).get("put");s.processJson(s.deserializeData(a))}catch(s){this.dataSourceStatusManager.reportError(T.InvalidData,(n=s.message)!=null?n:"Could not parse poll response")}}catch(a){this.dataSourceStatusManager.reportError(T.NetworkError,(i=a.message)!=null?i:"unexpected network error",a.status),r(a)}}Tn(e,t,r){let{bootstrapParsed:n}=t;n||(n=an(this.logger,t.bootstrap)),this.flagManager.setBootstrap(e,n),this.dataSourceStatusManager.requestStateUpdate(er.Valid),this.I("Identify - Initialization completed from bootstrap"),r()}setForcedStreaming(e){this.Z=e,this.jt()}setAutomaticStreamingState(e){this.Ut=e,this.jt()}jt(){let e=this.Z||this.Ut&&this.Z===void 0;this.I(`Updating streaming state. forced(${this.Z}) automatic(${this.Ut})`),e?this.$n():this.Ie()}Ie(){var e;this.updateProcessor&&this.I("Stopping update processor."),(e=this.updateProcessor)==null||e.close(),this.updateProcessor=void 0}$n(){if(this.updateProcessor){this.I("Update processor already active. Not changing state.");return}if(!this.context){this.I("Context not set, not starting update processor.");return}this.I("Starting update processor."),this.Rn(this.context)}Rn(e,t,r){var n;let i=le.toLDContext(e);(n=this.updateProcessor)==null||n.close();let a=JSON.stringify(le.toLDContext(e)),s=ft(a,this.config.serviceEndpoints,this.getPollingPaths(),this.platform.requests,this.platform.encoding,this.baseHeaders,[],this.config.withReasons,this.config.useReport,this.zt);this.createStreamingProcessor(i,e,s,t,r),this.updateProcessor.start()}};function Ks(e){let t=Dn("visibilitychange",()=>{Vs()==="hidden"&&e()}),r=Cn("pagehide",e);return()=>{t(),r()}}function at(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function Bs(e,t,r,n){let i=((e.kind==="substring"||e.kind==="regex")&&n.includes("/")?t:t.replace(n,"")).replace(r,"");switch(e.kind){case"exact":return new RegExp(`^${at(e.url)}/?$`).test(t);case"canonical":return new RegExp(`^${at(e.url)}/?$`).test(i);case"substring":return new RegExp(`.*${at(e.substring)}.*$`).test(i);case"regex":return new RegExp(e.pattern).test(i);default:return!1}}function Hs(e,t){let r=[];return t.forEach(n=>{let i=e.target,{selector:a}=n,s=zs(a);for(;i&&s!=null&&s.length;){for(let o=0;o<s.length;o+=1)if(i===s[o]){r.push(n);break}i=i.parentNode}}),r}var Js=class{constructor(e,t){let r=e.filter(a=>{var s;return(s=a.urls)==null?void 0:s.some(o=>Bs(o,Se(),Ns(),As()))}),n=r.filter(a=>a.kind==="pageview"),i=r.filter(a=>a.kind==="click");if(n.forEach(a=>t(a)),i.length){let a=s=>{Hs(s,i).forEach(o=>{t(o)})};this.Pe=Dn("click",a)}}close(){var e;(e=this.Pe)==null||e.call(this)}},Gs=300,_s=class{constructor(e){this.l=Se();let t=()=>{let n=Se();n!==this.l&&(this.l=n,e())};this.Vt=setInterval(t,Gs);let r=Cn("popstate",t);this.xe=()=>{r()}}close(){var e;this.Vt&&clearInterval(this.Vt),(e=this.xe)==null||e.call(this)}},Ws=class{constructor(e,t,r,n,i,a=s=>new _s(s)){this.z=t,this.zn=n,this.Un=i,this.ft=[],this.Ae=!1,this.X=`${r}/sdk/goals/${e}`,this.Le=a(()=>{this.Ht()})}async initialize(){await this.Nn(),this.Ht()}startTracking(){this.Ae=!0,this.Ht()}Ht(){var e;this.Ae&&((e=this.Bt)==null||e.close(),this.ft&&this.ft.length&&(this.Bt=new Js(this.ft,t=>{this.Un(Se(),t)})))}async Nn(){try{let e=await this.z.fetch(this.X);this.ft=await e.json()}catch(e){this.zn(new Ar(`Encountered error fetching goals: ${e}`))}}close(){var e,t;(e=this.Le)==null||e.close(),(t=this.Bt)==null||t.close()}};function Zs(e){return e.kind==="click"}var Ys=2,Sn={fetchGoals:!0,eventUrlTransformer:e=>e,streaming:void 0,plugins:[]},Qs={fetchGoals:p.Boolean,eventUrlTransformer:p.Function,streaming:p.Boolean,plugins:p.createTypeArray("LDPlugin",{})};function Xs(e){var t;let r=k({},e);return(t=r.flushInterval)!=null||(r.flushInterval=Ys),r}function eo(e){let t=Xs(e);return Object.keys(Sn).forEach(r=>{delete t[r]}),t}function to(e,t){let r=k({},Sn);return Object.entries(Qs).forEach(n=>{let[i,a]=n,s=e[i];s!==void 0&&(a.is(s)?r[i]=s:t.warn(N.wrongOptionType(i,a.getType(),typeof s)))}),r}var ro=class{constructor(e,t){switch(this.jn=e,this.Oe=[],t){case"sha1":this.qt="SHA-1";break;case"sha256":this.qt="SHA-256";break;default:throw new Error(`Algorithm is not supported ${t}`)}}async asyncDigest(e){let t=this.Oe.join(""),r=new TextEncoder().encode(t),n=await this.jn.subtle.digest(this.qt,r);switch(e){case"base64":return btoa(String.fromCharCode(...new Uint8Array(n)));case"hex":return[...new Uint8Array(n)].map(i=>i.toString(16).padStart(2,"0")).join("");default:throw new Error(`Encoding is not supported ${e}`)}}update(e){return this.Oe.push(e),this}},no={start:0,end:3},io={start:4,end:5},st={start:6,end:7},ot={start:8,end:8},ao={start:9,end:9},so={start:10,end:15};function oo(){if(typeof crypto!="undefined"&&crypto.getRandomValues){let t=new Uint8Array(16);return crypto.getRandomValues(t),[...t.values()]}let e=[];for(let t=0;t<16;t+=1)e.push(Math.floor(Math.random()*256));return e}function ge(e,t){let r="";for(let n=t.start;n<=t.end;n+=1)r+=e[n].toString(16).padStart(2,"0");return r}function lo(e){return e[ot.start]=(e[ot.start]|128)&191,e[st.start]=e[st.start]&15|64,`${ge(e,no)}-${ge(e,io)}-${ge(e,st)}-${ge(e,ot)}${ge(e,ao)}-${ge(e,so)}`}function uo(){let e=oo();return lo(e)}function co(){return typeof crypto!="undefined"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():uo()}var ho=class{createHash(e){return new ro(js(),e)}randomUUID(){return co()}};function fo(e){let t=Array.from(e,r=>String.fromCodePoint(r)).join("");return btoa(t)}var go=class{btoa(e){return fo(new TextEncoder().encode(e))}},po=class{constructor(e){this.e=e}platformData(){return{name:"JS"}}sdkData(){let e={name:"@launchdarkly/js-client-sdk",version:"4.6.2",userAgentBase:"JSClient"};return this.e.wrapperName&&(e.wrapperName=this.e.wrapperName),this.e.wrapperVersion&&(e.wrapperVersion=this.e.wrapperVersion),e}},vo=class{constructor(e,t){this.X=e,this.n={},this.x=new ci(t.initialRetryDelayMillis,t.retryResetIntervalMillis),this.Te=t.errorFilter,this.Gt=t.urlBuilder,this.Me()}Me(){this.Gt&&(this.X=this.Gt()),this.G=new EventSource(this.X),this.G.onopen=()=>{var e;this.x.success(),(e=this.onopen)==null||e.call(this)},this.G.onerror=e=>{var t;e instanceof MessageEvent||(this.b(e),(t=this.onerror)==null||t.call(this,e))},Object.entries(this.n).forEach(([e,t])=>{t.forEach(r=>{var n;(n=this.G)==null||n.addEventListener(e,r)})})}addEventListener(e,t){var r,n,i;(n=(r=this.n)[e])!=null||(r[e]=[]),this.n[e].push(t),(i=this.G)==null||i.addEventListener(e,t)}close(){var e,t;clearTimeout(this.Kt),this.Kt=void 0,(e=this.G)==null||e.close(),(t=this.onclose)==null||t.call(this)}Vn(e){var t;(t=this.onretrying)==null||t.call(this,{delayMillis:e}),this.Kt=setTimeout(()=>{this.Me()},e)}b(e){this.close(),!(typeof e.status=="number"&&!this.Te(e))&&this.Vn(this.x.fail())}},mo=class{fetch(e,t){return fetch(e,t)}createEventSource(e,t){return new vo(e,t)}getEventSourceCapabilities(){return{customMethod:!1,readTimeout:!1,headers:!1}}};function xn(){return typeof localStorage!="undefined"}function yo(){if(!xn())return[];let e=[];for(let t=0;t<localStorage.length;t+=1){let r=localStorage.key(t);r&&e.push(r)}return e}var wo=class{constructor(e){this.t=e}async clear(e){var t;try{localStorage.removeItem(e)}catch(r){(t=this.t)==null||t.error(`Error clearing key from localStorage: ${e}, reason: ${r}`)}}async get(e){var t;try{let r=localStorage.getItem(e);return r!=null?r:null}catch(r){return(t=this.t)==null||t.error(`Error getting key from localStorage: ${e}, reason: ${r}`),null}}async set(e,t){var r;try{localStorage.setItem(e,t)}catch(n){(r=this.t)==null||r.error(`Error setting key in localStorage: ${e}, reason: ${n}`)}}},bo=class{constructor(e,t){this.encoding=new go,this.crypto=new ho,this.requests=new mo,xn()&&(this.storage=new wo(e)),this.info=new po(t)}},ko=class extends Ya{constructor(e,t,r,n={},i){var a,s,o,l,u;let{logger:d,debug:c}=n,h=d!=null?d:new Pr({destination:{debug:console.debug,info:console.info,warn:console.warn,error:console.error},level:c?"debug":"info"}),g=(a=n.baseUri)!=null?a:"https://clientsdk.launchdarkly.com",D=i!=null?i:new bo(h,n),w=to(n,h),f=eo(q(k({},n),{logger:h})),{eventUrlTransformer:v}=w,m=pr(e),S=(E,R,I,y,C)=>R.dataSystem?Ms({platform:D,flagManager:E,credential:e,config:R,baseHeaders:I,emitter:y,transitionTable:us,foregroundMode:aa(R.dataSystem,sr),backgroundMode:void 0,modeTable:Me,sourceFactoryProvider:xs(),fdv1Endpoints:pr(e),buildQueryParams:F=>{let j=[{key:"auth",value:e}],O=F;return O!=null&&O.hash&&j.push({key:"h",value:O.hash}),j}}):new qs(D,E,e,R,w,m.polling,m.streaming,I,y,C);super(e,r,D,f,S,{getLegacyStorageKeys:()=>yo().filter(E=>E.startsWith(`ld:${e}:`)),analyticsEventPath:`/events/bulk/${e}`,diagnosticEventPath:`/events/diagnostic/${e}`,includeAuthorizationHeader:!1,highTimeoutThreshold:5,userAgentHeaderName:"x-launchdarkly-user-agent",dataSystemDefaults:sr,trackEventModifier:E=>new B.InputCustomEvent(E.context,E.key,E.data,E.metricValue,E.samplingRatio,v(Se())),getImplementationHooks:E=>B.safeGetHooks(h,E,w.plugins),credentialType:"clientSideId",requiresStart:!0,initialContext:t}),this.setEventSendingEnabled(!0,!1),w.streaming!==void 0&&((o=(s=this.dataManager).setForcedStreaming)==null||o.call(s,w.streaming)),(u=(l=this.dataManager).setFlushCallback)==null||u.call(l,()=>this.flush()),this.Wt=w.plugins,w.fetchGoals&&(this.Jt=new Ws(e,D.requests,g,E=>{h.error(E.message)},(E,R)=>{let I=this.getInternalContext();if(!I)return;let y=v(E);Zs(R)?this.sendEvent({kind:"click",url:y,samplingRatio:1,key:R.key,creationDate:Date.now(),context:I,selector:R.selector}):this.sendEvent({kind:"pageview",url:y,samplingRatio:1,key:R.key,creationDate:Date.now(),context:I})}),this.Jt.initialize(),w.automaticBackgroundHandling&&Ks(()=>this.flush()))}registerPlugins(e){B.safeRegisterPlugins(this.logger,this.environmentMetadata,e,this.Wt||[]);let t=this.getDebugOverrides();t&&Qa(this.logger,t,this.Wt||[])}async identify(e,t){return super.identify(e,t)}async identifyResult(e,t){var r;let n=(t==null?void 0:t.sheddable)===void 0?q(k({},t),{sheddable:!0}):t,i=await super.identifyResult(e,n);return this.startPromise&&((r=this.Jt)==null||r.startTracking()),i}setConnectionMode(e){if(!this.dataManager.setConnectionMode){this.logger.warn("setConnectionMode requires the FDv2 data system (dataSystem option). The call has no effect without it.");return}if(e!==void 0&&!(e in Me)){this.logger.warn(`setConnectionMode called with invalid mode '${e}'. Valid modes: ${Object.keys(Me).join(", ")}.`);return}this.dataManager.setConnectionMode(e)}setStreaming(e){var t,r;(r=(t=this.dataManager).setForcedStreaming)==null||r.call(t,e)}Fe(){var e,t;let r=this.emitter.eventNames().some(n=>n.startsWith("change:")||n==="change");(t=(e=this.dataManager).setAutomaticStreamingState)==null||t.call(e,r)}on(e,t){super.on(e,t),this.Fe()}off(e,t){super.off(e,t),this.Fe()}};function Eo(e,t,r,n={},i){let a=new ko(e,t,r,n,i),s={variation:(o,l)=>a.variation(o,l),variationDetail:(o,l)=>a.variationDetail(o,l),boolVariation:(o,l)=>a.boolVariation(o,l),boolVariationDetail:(o,l)=>a.boolVariationDetail(o,l),numberVariation:(o,l)=>a.numberVariation(o,l),numberVariationDetail:(o,l)=>a.numberVariationDetail(o,l),stringVariation:(o,l)=>a.stringVariation(o,l),stringVariationDetail:(o,l)=>a.stringVariationDetail(o,l),jsonVariation:(o,l)=>a.jsonVariation(o,l),jsonVariationDetail:(o,l)=>a.jsonVariationDetail(o,l),track:(o,l,u)=>a.track(o,l,u),on:(o,l)=>a.on(o,l),off:(o,l)=>a.off(o,l),flush:()=>a.flush(),setConnectionMode:o=>a.setConnectionMode(o),setStreaming:o=>a.setStreaming(o),identify:(o,l)=>a.identifyResult(o,l),getContext:()=>a.getContext(),close:()=>a.close(),allFlags:()=>a.allFlags(),addHook:o=>a.addHook(o),waitForInitialization:o=>a.waitForInitialization(o),logger:a.logger,start:o=>a.start(o)};return a.registerPlugins(s),s}function Rn(e,t,r){return Eo(e,t,Ve.Disabled,r)}function Do(e){return Object.fromEntries(Object.entries(e).filter(([t])=>!t.startsWith("$")))}function Je(e){let t=Do(e!=null?e:{}),r=e!==void 0;function n(h,g,D){return h in t&&D(t[h])?t[h]:g}function i(h,g){return h in t?t[h]:g}function a(h,g,D){return{value:D?n(h,g,D):i(h,g),variationIndex:null,reason:null}}let s=h=>typeof h=="boolean",o=h=>typeof h=="number",l=h=>typeof h=="string",u=()=>{},d=()=>u,c=()=>Promise.resolve();return{allFlags:()=>H({},t),getContext:()=>{},getInitializationState:()=>"initializing",getInitializationError:()=>{},isReady:()=>r,boolVariation:(h,g)=>n(h,g,s),numberVariation:(h,g)=>n(h,g,o),stringVariation:(h,g)=>n(h,g,l),jsonVariation:(h,g)=>i(h,g),boolVariationDetail:(h,g)=>a(h,g,s),numberVariationDetail:(h,g)=>a(h,g,o),stringVariationDetail:(h,g)=>a(h,g,l),jsonVariationDetail:(h,g)=>a(h,g),variation:(h,g)=>i(h,g),variationDetail:(h,g)=>a(h,g),on:u,off:u,onContextChange:d,onInitializationStatusChange:d,shouldUseCamelCaseFlagKeys:()=>!0,close:c,flush:c,identify:c,track:u,addHook:u,waitForInitialization:c,setStreaming:u,start:c,logger:{debug:u,info:u,warn:u,error:u}}}function Tt(e,t,r={}){var f,v;if(typeof window=="undefined")return Je();let w=r,{useCamelCaseFlagKeys:n=!0}=w,i=Kt(w,["useCamelCaseFlagKeys"]),a=ne(H({},i),{wrapperName:(f=i==null?void 0:i.wrapperName)!=null?f:"react-client-sdk",wrapperVersion:(v=i==null?void 0:i.wrapperVersion)!=null?v:"0.2.3"}),s=Rn(e,t,a),o="initializing",l=!1,u=!1,d=!1,c=new Set,h=new Set,g;function D(){let m=s.getContext();m&&c.forEach(S=>S(m))}return ne(H({},s),{start:m=>u?s.start(m):(u=!0,m!=null&&m.bootstrap&&(l=!0),s.start(m).then(S=>(o=S.status,g=S,d||(d=!0,D()),h.forEach(E=>E(S)),S))),identify:(m,S)=>s.identify(m,S).then(E=>(E.status==="completed"&&D(),E)),getInitializationState:()=>o,getInitializationError:()=>(g==null?void 0:g.status)==="failed"?g.error:void 0,onContextChange:m=>(c.add(m),()=>{c.delete(m)}),onInitializationStatusChange:m=>(g&&m(g),h.add(m),()=>{h.delete(m)}),isReady:()=>o!=="initializing"||l,shouldUseCamelCaseFlagKeys:()=>n})}function Ge(e,t){var i;let r=(i=t==null?void 0:t.Provider)!=null?i:J.Provider;return({children:a})=>{var l;let[s,o]=xo({client:e,context:(l=e.getContext())!=null?l:void 0,initializedState:e.getInitializationState(),error:e.getInitializationError()});return So(()=>{let u=!0,d=e.onInitializationStatusChange(h=>{u&&o(g=>g.initializedState===h.status?g:ne(H({},g),{initializedState:h.status,error:h.status==="failed"?h.error:void 0}))}),c=e.onContextChange(h=>{u&&o(g=>ne(H({},g),{context:h}))});return()=>{u=!1,d(),c()}},[]),Co.createElement(r,{value:s},a)}}function Ft(e,t,r){let{deferInitialization:n,startOptions:i,reactContext:a,ldOptions:s,bootstrap:o}=r!=null?r:{},l=Tt(e,t,s);if(!n){let u=o?ne(H({},i),{bootstrap:o}):i;l.start(u)}return Ge(l,a)}import Ro,{useRef as Oo}from"react";function Io({clientSideId:e,context:t,bootstrap:r,options:n,reactContext:i,children:a}){let s=Oo(null);s.current===null&&(typeof window=="undefined"?s.current=Ge(Je(r),i):s.current=Ft(e,t,ne(H({},n),{bootstrap:r,reactContext:i})));let o=s.current;return Ro.createElement(o,null,a)}import{useContext as Po,useEffect as In,useMemo as $o,useRef as Lo,useState as To}from"react";function On(e){return e.replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").split(/[-._\s]+/).filter(Boolean).map((t,r)=>{let n=t.toLowerCase();return r===0?n:n.charAt(0).toUpperCase()+n.slice(1)}).join("")}function Fo(e,t){let r=new Map,n=e.shouldUseCamelCaseFlagKeys(),i={},a={};return Object.keys(t).filter(s=>s.indexOf("$")!==0).forEach(s=>{if(n){let o=On(s);i[o]=t[s],a[o]=s}else i[s]=t[s]}),new Proxy(i,{get(s,o,l){var h;let u=Reflect.get(s,o,l);if(typeof o=="symbol"||!Object.prototype.hasOwnProperty.call(s,o))return u;if(u===void 0)return;if(r.has(o))return r.get(o);let d=n&&(h=a[o])!=null?h:o,c=e.variation(d,u);return r.set(o,c),c}})}function Mo(e){let{client:t,context:r}=Po(e!=null?e:J);In(()=>{t.logger.warn("[LaunchDarkly] useFlags is deprecated and will be removed in a future major version.")},[]);let[n,i]=To(()=>t.allFlags()),a=Lo(!1);return In(()=>{a.current&&i(t.allFlags()),a.current=!0;let s=()=>i(t.allFlags());return t.on("change",s),()=>t.off("change",s)},[t,r]),$o(()=>Fo(t,n),[t,n,r])}import{useContext as No}from"react";function Ao(e){let{initializedState:t,error:r}=No(e!=null?e:J);return t==="failed"?{status:"failed",error:r}:{status:t}}import{useContext as jo}from"react";function Vo(e){let{client:t}=jo(e!=null?e:J);return t}import{useContext as zo,useEffect as Uo,useRef as Mt,useState as qo}from"react";function G(e,t,r,n,i){let{client:a,context:s}=zo(n!=null?n:J),o=a.isReady(),l=Mt(t),u=Mt(r);l.current=t,u.current=r;let d=Mt(!1),[c,h]=qo(()=>o?r(a,e,t):i?i(t):t);return Uo(()=>{d.current&&o&&h(u.current(a,e,l.current)),d.current=!0;let g=()=>h(u.current(a,e,l.current));return a.on(`change:${e}`,g),()=>a.off(`change:${e}`,g)},[a,e,s,o]),c}function Ko(e,t,r){return G(e,t,(n,i,a)=>n.boolVariation(i,a),r)}function Bo(e,t,r){return G(e,t,(n,i,a)=>n.stringVariation(i,a),r)}function Ho(e,t,r){return G(e,t,(n,i,a)=>n.numberVariation(i,a),r)}function Jo(e,t,r){return G(e,t,(n,i,a)=>n.jsonVariation(i,a),r)}function _e(e){return{value:e,variationIndex:null,reason:{kind:"ERROR",errorKind:"CLIENT_NOT_READY"}}}function Go(e,t,r){return G(e,t,(n,i,a)=>n.boolVariationDetail(i,a),r,_e)}function _o(e,t,r){return G(e,t,(n,i,a)=>n.stringVariationDetail(i,a),r,_e)}function Wo(e,t,r){return G(e,t,(n,i,a)=>n.numberVariationDetail(i,a),r,_e)}function Zo(e,t,r){return G(e,t,(n,i,a)=>n.jsonVariationDetail(i,a),r,_e)}export{Io as LDIsomorphicClientProvider,J as LDReactContext,Tt as createClient,Ft as createLDReactProvider,Ge as createLDReactProviderWithClient,Bt as initLDReactContext,Ko as useBoolVariation,Go as useBoolVariationDetail,Mo as useFlags,Ao as useInitializationStatus,Jo as useJsonVariation,Zo as useJsonVariationDetail,Vo as useLDClient,Ho as useNumberVariation,Wo as useNumberVariationDetail,Bo as useStringVariation,_o as useStringVariationDetail};
|
|
2
|
+
var An=Object.defineProperty,jn=Object.defineProperties;var Vn=Object.getOwnPropertyDescriptors;var Le=Object.getOwnPropertySymbols;var Ut=Object.prototype.hasOwnProperty,qt=Object.prototype.propertyIsEnumerable;var zt=(e,t,r)=>t in e?An(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,H=(e,t)=>{for(var r in t||(t={}))Ut.call(t,r)&&zt(e,r,t[r]);if(Le)for(var r of Le(t))qt.call(t,r)&&zt(e,r,t[r]);return e},ne=(e,t)=>jn(e,Vn(t));var Kt=(e,t)=>{var r={};for(var n in e)Ut.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Le)for(var n of Le(e))t.indexOf(n)<0&&qt.call(e,n)&&(r[n]=e[n]);return r};import{createContext as zn}from"react";function Bt(){return zn(null)}var J=Bt();import Co,{useEffect as So,useState as xo}from"react";var Un=Object.defineProperty,qn=Object.defineProperties,Kn=Object.getOwnPropertyDescriptors,Ne=Object.getOwnPropertySymbols,kr=Object.prototype.hasOwnProperty,Er=Object.prototype.propertyIsEnumerable,Ht=(e,t,r)=>t in e?Un(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,k=(e,t)=>{for(var r in t||(t={}))kr.call(t,r)&&Ht(e,r,t[r]);if(Ne)for(var r of Ne(t))Er.call(t,r)&&Ht(e,r,t[r]);return e},q=(e,t)=>qn(e,Kn(t)),yt=(e,t)=>{var r={};for(var n in e)kr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&Ne)for(var n of Ne(e))t.indexOf(n)<0&&Er.call(e,n)&&(r[n]=e[n]);return r};function Bn(e){return`/${e.replace(/~/g,"~0").replace(/\//g,"~1")}`}function Dr(e){return e.indexOf("~")?e.replace(/~1/g,"/").replace(/~0/g,"~"):e}function Hn(e){return(e.startsWith("/")?e.substring(1):e).split("/").map(t=>Dr(t))}function Jn(e){return!e.startsWith("/")}function Gn(e){return!e.match(/\/\/|(^\/.*~[^0|^1])|~$/)}var me=class{constructor(e,t=!1){if(t){let r=e;this.y=[r],this.isValid=r!=="",this.redactionName=r.startsWith("/")?Bn(r):r}else{if(this.redactionName=e,e===""||e==="/"||!Gn(e)){this.isValid=!1,this.y=[];return}Jn(e)?this.y=[e]:e.indexOf("/",1)<0?this.y=[Dr(e.slice(1))]:this.y=Hn(e),this.y[0]==="_meta"?this.isValid=!1:this.isValid=!0}}get(e){let{y:t,isValid:r}=this;if(!r)return;let n=e;for(let i=0;i<t.length;i+=1){let a=t[i];if(n!=null&&Object.prototype.hasOwnProperty.call(n,a)&&typeof n=="object"&&!Array.isArray(n))n=n[a];else return}return n}getComponent(e){return this.y[e]}get depth(){return this.y.length}get isKind(){return this.y.length===1&&this.y[0]==="kind"}compare(e){return this.depth===e.depth&&this.y.every((t,r)=>t===e.getComponent(r))}get components(){return[...this.y]}};me.InvalidReference=new me("");var _n=class{is(e){if(Array.isArray(e))return!1;let t=typeof e;return t==="function"||t==="object"}getType(){return"factory method or object"}},be=class{constructor(e,t){this.pt=e,this.typeOf=typeof t}is(e){return Array.isArray(e)?!1:typeof e===this.typeOf}getType(){return this.pt}},Cr=class{constructor(e,t){this.pt=e,this.typeOf=typeof t}is(e){return Array.isArray(e)?e.length>0?e.every(t=>typeof t===this.typeOf):!0:!1}getType(){return this.pt}},Sr=class extends be{constructor(e){super(`number with minimum value of ${e}`,0),this.min=e}is(e){return typeof e===this.typeOf&&e>=this.min}},xr=class extends be{constructor(e){super(`string matching ${e}`,""),this.expression=e}is(e){return typeof e=="string"&&!!e.match(this.expression)}},Wn=class{is(e){return typeof e=="function"}getType(){return"function"}},Zn=class{is(e){return typeof e=="boolean"||typeof e=="undefined"||e===null}getType(){return"boolean | undefined | null"}},Yn=/^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d\d*)?(Z|[-+]\d\d(:\d\d)?)/,Qn=class{is(e){return typeof e=="number"||typeof e=="string"&&Yn.test(e)}getType(){return"date"}},Xn=class extends xr{constructor(){super(/^(\w|\.|-)+$/)}is(e){return super.is(e)&&e!=="kind"}},ei=class{constructor(e){this.Yt=e}is(e){return typeof e=="string"&&this.Yt.includes(e)}getType(){return this.Yt.join(" | ")}};function ie(e){return e==null}var p=class{static createTypeArray(e,t){return new Cr(e,t)}static numberWithMin(e){return new Sr(e)}static stringMatchingRegex(e){return new xr(e)}static oneOf(...e){return new ei(e)}};p.String=new be("string","");p.Number=new be("number",0);p.ObjectOrFactory=new _n;p.Object=new be("object",{});p.StringArray=new Cr("string[]","");p.Boolean=new be("boolean",!0);p.Function=new Wn;p.Date=new Qn;p.Kind=new Xn;p.NullableBoolean=new Zn;function Rr(e){return"kind"in e?p.String.is(e.kind)&&e.kind!=="multi":!1}function Or(e){return"kind"in e?p.String.is(e.kind)&&e.kind==="multi":!1}function Ir(e){return!("kind"in e)||e.kind===null||e.kind===void 0}function Ae(e,t=[]){if(e===null||typeof e!="object")return JSON.stringify(e);if(t.includes(e))throw new Error("Cycle detected");return Array.isArray(e)?`[${e.map(r=>Ae(r,[...t,e])).map(r=>r===void 0?"null":r).join(",")}]`:`{${Object.keys(e).sort().map(r=>{let n=Ae(e[r],[...t,e]);if(n!==void 0)return`${JSON.stringify(r)}:${n}`}).filter(r=>r!==void 0).join(",")}}`}var lt="user";function Jt(e){return e.includes("%")||e.includes(":")?e.replace(/%/g,"%25").replace(/:/g,"%3A"):e}function ti(e){return e&&p.Object.is(e)}function Gt(e){return p.Kind.is(e)}function _t(e){return p.String.is(e)&&e!==""}function Qe(e,t=!1){return e?e.map(r=>new me(r,t)):[]}function ri(e){return e!=null}function ni(e){let t=q(k({},e.custom||[]),{kind:"user",key:String(e.key)});if(ri(e.anonymous)){let r=!!e.anonymous;delete t.anonymous,t.anonymous=r}return e.name!==null&&e.name!==void 0&&(t.name=e.name),e.ip!==null&&e.ip!==void 0&&(t.ip=e.ip),e.firstName!==null&&e.firstName!==void 0&&(t.firstName=e.firstName),e.lastName!==null&&e.lastName!==void 0&&(t.lastName=e.lastName),e.email!==null&&e.email!==void 0&&(t.email=e.email),e.avatar!==null&&e.avatar!==void 0&&(t.avatar=e.avatar),e.country!==null&&e.country!==void 0&&(t.country=e.country),e.privateAttributeNames!==null&&e.privateAttributeNames!==void 0&&(t._meta={privateAttributes:e.privateAttributeNames}),t}var le=class L{constructor(t,r,n){this.P=!1,this.Q=!1,this.Zt=!1,this.M={},this.kind=r,this.valid=t,this.message=n}static D(t,r){return new L(!1,t,r)}static Fe(t,r){if(!(!r||!t.isValid))return t.depth===1&&t.getComponent(0)==="anonymous"?!!(r!=null&&r.anonymous):t.get(r)}Xt(t){if(this.P)return this.M[t];if(this.kind===t)return this.v}static Re(t){let r=Object.keys(t).filter(l=>l!=="kind"),n=r.every(Gt);if(!r.length)return L.D("multi","A multi-kind context must contain at least one kind");if(!n)return L.D("multi","Context contains invalid kinds");let i={},a=!0,s=r.reduce((l,u)=>{var d;let c=t[u];return ti(c)?(l[u]=c,i[u]=Qe((d=c._meta)==null?void 0:d.privateAttributes)):a=!1,l},{});if(!a)return L.D("multi","Context contained contexts that were not objects");if(!Object.values(s).every(l=>_t(l.key)))return L.D("multi","Context contained invalid keys");if(r.length===1){let l=r[0],u=new L(!0,l);return u.v=q(k({},s[l]),{kind:l}),u.tt=i,u.Q=l==="user",u}let o=new L(!0,t.kind);return o.M=s,o.tt=i,o.P=!0,o}static Ne(t){var r;let{key:n,kind:i}=t,a=Gt(i),s=_t(n);if(!a)return L.D(i!=null?i:"unknown","The kind was not valid for the context");if(!s)return L.D(i,"The key for the context was not valid");let o=Qe((r=t._meta)==null?void 0:r.privateAttributes),l=new L(!0,i);return l.Q=i==="user",l.v=t,l.tt={[i]:o},l}static Ue(t){if(!(t.key!==void 0&&t.key!==null))return L.D("user","The key for the context was not valid");let r=new L(!0,"user");return r.Q=!0,r.Zt=!0,r.v=ni(t),r.tt={user:Qe(t.privateAttributeNames,!0)},r}static fromLDContext(t){return t?Rr(t)?L.Ne(t):Or(t)?L.Re(t):Ir(t)?L.Ue(t):L.D("unknown","Context was not of a valid kind"):L.D("unknown","No context specified. Returning default value")}static toLDContext(t){if(!t.valid)return;let r=t.getContexts();if(!t.P)return r[0][1];let n={kind:"multi"};return r.forEach(i=>{let a=i[0],s=i[1];n[a]=s}),n}valueForKind(t,r=lt){return t.isKind?this.kinds:L.Fe(t,this.Xt(r))}key(t=lt){var r;return(r=this.Xt(t))==null?void 0:r.key}get isMultiKind(){return this.P}get canonicalKey(){return this.Q?this.v.key:this.P?Object.keys(this.M).sort().map(t=>`${t}:${Jt(this.M[t].key)}`).join(":"):`${this.kind}:${Jt(this.v.key)}`}get kinds(){return this.P?Object.keys(this.M):[this.kind]}get kindsAndKeys(){return this.P?Object.entries(this.M).reduce((t,[r,n])=>(t[r]=n.key,t),{}):{[this.kind]:this.v.key}}privateAttributes(t){var r;return((r=this.tt)==null?void 0:r[t])||[]}getContexts(){return this.P?Object.entries(this.M):[[this.kind,this.v]]}get legacy(){return this.Zt}canonicalUnfilteredJson(){if(this.valid){if(this.mt)return this.mt;try{this.mt=Ae(L.toLDContext(this))}catch(t){}return this.mt}}};le.UserKind=lt;var ii=["key","kind","_meta","anonymous"].map(e=>new me(e,!0)),ai=["name","ip","firstName","lastName","email","avatar","country"];function si(e,t){return e.depth===t.length&&t.every((r,n)=>r===e.getComponent(n))}function oi(e,t){let r=[],n={},i=[];for(r.push(...Object.keys(e).map(a=>({key:a,ptr:[a],source:e,parent:n,visited:[e]})));r.length;){let a=r.pop(),s=t.find(o=>si(o,a.ptr));if(s)i.push(s.redactionName);else{let o=a.source[a.key];o===null?a.parent[a.key]=o:Array.isArray(o)?a.parent[a.key]=[...o]:typeof o=="object"?a.visited.includes(o)||(a.parent[a.key]={},r.push(...Object.keys(o).map(l=>({key:l,ptr:[...a.ptr,l],source:o,parent:a.parent[a.key],visited:[...a.visited,o]})))):a.parent[a.key]=o}}return{cloned:n,excluded:i.sort()}}var li=class{constructor(e,t){this.ze=e,this.je=t}filter(e,t=!1){let r=e.getContexts();if(r.length===1)return this.Qt(e,r[0][1],r[0][0],t);let n={kind:"multi"};return r.forEach(([i,a])=>{n[i]=this.Qt(e,a,i,t)}),n}p(e,t,r,n){return(n?Object.keys(t).map(i=>new me(i,!0)):[...this.je,...e.privateAttributes(r)]).filter(i=>!ii.some(a=>a.compare(i)))}Qt(e,t,r,n){let i=this.ze||n&&t.anonymous===!0,{cloned:a,excluded:s}=oi(t,this.p(e,t,r,i));return e.legacy&&ai.forEach(o=>{o in a&&(a[o]=String(a[o]))}),s.length&&(a._meta||(a._meta={}),a._meta.redactedAttributes=s),a._meta&&(delete a._meta.privateAttributes,Object.keys(a._meta).length===0&&delete a._meta),a}},Wt=30*1e3,ui=.5,ci=class{constructor(e,t,r=Math.random){this.Ve=t,this.Be=r,this.yt=0,this.te=Math.max(1,e),this.He=Math.ceil(Math.log2(Wt/this.te))}x(){let e=Math.min(this.yt,this.He),t=this.te*2**e;return Math.min(t,Wt)}qe(e){return e-Math.trunc(this.Be()*ui*e)}success(e=Date.now()){this.gt=e}fail(e=Date.now()){this.gt!==void 0&&e-this.gt>this.Ve&&(this.yt=0),this.gt=void 0;let t=this.qe(this.x());return this.yt+=1,t}},Zt;(function(e){e[e.Valid=0]="Valid",e[e.Initializing=1]="Initializing",e[e.Interrupted=2]="Interrupted",e[e.Closed=3]="Closed"})(Zt||(Zt={}));var je=class extends Error{constructor(e,t,r,n=!0){super(t),this.kind=e,this.status=r,this.name="LaunchDarklyPollingError",this.recoverable=n}},ut=class extends Error{constructor(e,t,r,n=!0){super(t),this.kind=e,this.code=r,this.name="LaunchDarklyStreamingError",this.recoverable=n}},el=120*1e3,tl=300*1e3,T;(function(e){e.Unknown="UNKNOWN",e.NetworkError="NETWORK_ERROR",e.ErrorResponse="ERROR_RESPONSE",e.InvalidData="INVALID_DATA"})(T||(T={}));var Ve;(function(e){e[e.Disabled=0]="Disabled",e[e.Enabled=1]="Enabled"})(Ve||(Ve={}));var ye;(function(e){e[e.AnalyticsEvents=0]="AnalyticsEvents",e[e.DiagnosticEvent=1]="DiagnosticEvent"})(ye||(ye={}));var oe;(function(e){e[e.Succeeded=0]="Succeeded",e[e.Failed=1]="Failed",e[e.FailedAndMustShutDown=2]="FailedAndMustShutDown"})(oe||(oe={}));function pe(e){if(typeof e=="string")return e;if(e===void 0)return"undefined";if(e===null)return"null";if(Object.prototype.hasOwnProperty.call(e,"toString"))try{return e.toString()}catch(t){}if(typeof e=="bigint")return`${e}n`;try{return JSON.stringify(e)}catch(t){return t instanceof TypeError&&t.message.indexOf("circular")>=0?"[Circular]":"[Not Stringifiable]"}}function di(e){return typeof e=="symbol"?"NaN":typeof e=="bigint"?`${e}n`:String(Number(e))}function hi(e){return typeof e=="symbol"?"NaN":typeof e=="bigint"?`${e}n`:String(parseInt(e,10))}function fi(e){return typeof e=="symbol"?"NaN":String(parseFloat(e))}var Xe={s:e=>pe(e),d:e=>di(e),i:e=>hi(e),f:e=>fi(e),j:e=>pe(e),o:e=>pe(e),O:e=>pe(e),c:()=>""};function ct(...e){var t;let r=e.shift();if(p.String.is(r)){let n="",i=0;for(;i<r.length;){let a=r.charAt(i);if(a==="%"){if(i+1<r.length){let s=r.charAt(i+1);if(s in Xe&&e.length){let o=e.shift();n+=(t=Xe[s])==null?void 0:t.call(Xe,o)}else s==="%"?n+="%":n+=`%${s}`;i+=2}}else n+=a,i+=1}return e.length&&(n.length&&(n+=" "),n+=e.map(pe).join(" ")),n}return e.map(pe).join(" ")}var F;(function(e){e[e.debug=0]="debug",e[e.info=1]="info",e[e.warn=2]="warn",e[e.error=3]="error",e[e.none=4]="none"})(F||(F={}));var gi=["debug","info","warn","error","none"],Pr=class $r{static get(){return new $r({})}constructor(t){var r,n,i;if(this.Qe=(n=F[(r=t.level)!=null?r:"info"])!=null?n:F.info,this.tn=(i=t.name)!=null?i:"LaunchDarkly",this.se=t.formatter,typeof t.destination=="object")this.ae={[F.debug]:t.destination.debug,[F.info]:t.destination.info,[F.warn]:t.destination.warn,[F.error]:t.destination.error};else if(typeof t.destination=="function"){let{destination:a}=t;this.ae={[F.debug]:a,[F.info]:a,[F.warn]:a,[F.error]:a}}}en(...t){var r;try{return this.se?(r=this.se)==null?void 0:r.call(this,...t):ct(...t)}catch(n){return ct(...t)}}nn(t,r){try{t(r)}catch(n){console.error(r)}}S(t,r){var n;if(t>=this.Qe){let i=`${gi[t]}: [${this.tn}]`;try{let a=(n=this.ae)==null?void 0:n[t];a?this.nn(a,`${i} ${this.en(...r)}`):console.error(...r)}catch(a){console.error(...r)}}}error(...t){this.S(F.error,t)}warn(...t){this.S(F.warn,t)}info(...t){this.S(F.info,t)}debug(...t){this.S(F.debug,t)}},pi={error:p.Function,warn:p.Function,info:p.Function,debug:p.Function},Lr=class{constructor(e,t){Object.entries(pi).forEach(([r,n])=>{if(!n.is(e[r]))throw new Error(`Provided logger instance must support logger.${r}(...) method`)}),this.t=e,this.rn=t}S(e,t){try{this.t[e](...t)}catch(r){this.rn[e](...t)}}error(...e){this.S("error",e)}warn(...e){this.S("warn",e)}info(...e){this.S("info",e)}debug(...e){this.S("debug",e)}},Tr=e=>{let t=new Pr({level:"info",destination:console.error,formatter:ct});return e?new Lr(e,t):t},N=class{static deprecated(e,t){return`"${e}" is deprecated, please use "${t}"`}static optionBelowMinimum(e,t,r){return`Config option "${e}" had invalid value of ${t}, using minimum of ${r} instead`}static unknownOption(e){return`Ignoring unknown config option "${e}"`}static wrongOptionType(e,t,r){return`Config option "${e}" should be of type ${t}, got ${r}, using default value`}static wrongOptionTypeBoolean(e,t){return`Config option "${e}" should be a boolean, got ${t}, converting to boolean`}static invalidTagValue(e){return`Config option "${e}" must only contain letters, numbers, ., _ or -.`}static tagValueTooLong(e){return`Value of "${e}" was longer than 64 characters and was discarded.`}static partialEndpoint(e){return`You have set custom uris without specifying the ${e} URI; connections may not work properly`}},vi=/^(\w|\.|-)+$/,mi=p.stringMatchingRegex(vi),yi={is:(e,t)=>mi.is(e)?e.length>64?{valid:!1,message:N.tagValueTooLong(t)}:{valid:!0}:{valid:!1,message:N.invalidTagValue(t)}},wi=class{constructor(e){let t={},r=e==null?void 0:e.application,n=e==null?void 0:e.logger;r&&Object.entries(r).forEach(([a,s])=>{if(s!=null){let{valid:o,message:l}=yi.is(s,`application.${a}`);o?a==="versionName"?t["application-version-name"]=[s]:t[`application-${a}`]=[s]:n==null||n.warn(l)}});let i=Object.keys(t);i.length&&(this.value=i.sort().flatMap(a=>t[a].sort().map(s=>`${a}/${s}`)).join(" "))}},bi=class{constructor(e,t,r){this.platform=r,this.basicConfiguration={tags:t.tags,logger:t.logger,offline:t.offline,serviceEndpoints:t.serviceEndpoints,sdkKey:e}}};function et(e){return e.replace(/\/+$/,"")}function wt(e){return e.replace(/^\/+/,"").replace(/\?$/,"")}var we=class Mr{constructor(t,r,n=Mr.DEFAULT_EVENTS,i="/bulk",a="/diagnostic",s=!0,o){this.streaming=et(t),this.polling=et(r),this.events=et(n),this.analyticsEventPath=i,this.diagnosticEventPath=a,this.includeAuthorizationHeader=s,this.payloadFilterKey=o}};we.DEFAULT_EVENTS="https://events.launchdarkly.com";function bt(e,t=[]){if(t.length===0)return e;let r=t.map(({key:n,value:i})=>`${n}=${i}`);return`${e}?${r.join("&")}`}function Fr(e,t,r){let n=wt(t),i=[...r];return e.payloadFilterKey&&i.push({key:"filter",value:e.payloadFilterKey}),bt(`${e.streaming}/${n}`,i)}function Nr(e,t,r=[]){let n=wt(t),i=[...r];return e.payloadFilterKey&&i.push({key:"filter",value:e.payloadFilterKey}),bt(`${e.polling}/${n}`,i)}function Yt(e,t,r=[]){let n=wt(t);return bt(`${e.events}/${n}`,r)}var Ar=class extends Error{constructor(e){super(e),this.name="LaunchDarklyUnexpectedResponseError"}},ki=class extends Error{constructor(e){super(e),this.name="LaunchDarklyClientError"}},jr=class extends Error{constructor(e){super(e),this.name="LaunchDarklyTimeoutError"}};function ke(e){return e>=400&&e<500?e===400||e===408||e===429:!0}function Ei(e){return e===413?!0:ke(e)}function Vr(e,t){let r,n;return{promise:new Promise((i,a)=>{n=i,r=setTimeout(()=>{let s=`${t} timed out after ${e} seconds.`;a(new jr(s))},e*1e3)}),cancel:()=>{n(),clearTimeout(r)}}}function zr(e){return e==null?e:JSON.parse(JSON.stringify(e))}function tt(e){return Math.trunc(e*1e3)}var Di=e=>JSON.stringify(e)==="{}",kt=(e,t)=>e&&Object.entries(e).reduce((r,[n,i])=>(i&&!Di(i)&&!(t!=null&&t.includes(n))&&(r[n]=typeof i=="object"?kt(i,t):i),r),{});function Te(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var r,n,i;if(Array.isArray(e)){if(r=e.length,r!=t.length)return!1;for(n=r;n--!==0;)if(!Te(e[n],t[n]))return!1;return!0}if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(n of e.entries())if(!t.has(n[0]))return!1;for(n of e.entries())if(!Te(n[1],t.get(n[0])))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(n of e.entries())if(!t.has(n[0]))return!1;return!0}if(ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(r=e.length,r!=t.length)return!1;for(n=r;n--!==0;)if(e[n]!==t[n])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===t.toString();if(i=Object.keys(e),r=i.length,r!==Object.keys(t).length)return!1;for(n=r;n--!==0;)if(!Object.prototype.hasOwnProperty.call(t,i[n]))return!1;for(n=r;n--!==0;){var a=i[n];if(!Te(e[a],t[a]))return!1}return!0}return e!==e&&t!==t}function Ci(e,t,r,n=!0,i="user-agent"){let{userAgentBase:a,version:s,wrapperName:o,wrapperVersion:l}=t.sdkData(),u={[i]:`${a!=null?a:"NodeJSClient"}/${s}`};return n&&(u.authorization=e),o&&(u["x-launchdarkly-wrapper"]=l?`${o}/${l}`:o),r!=null&&r.value&&(u["x-launchdarkly-tags"]=r.value),u}function X(e,t,r){let n;e.status?n=`error ${e.status}${e.status===401?" (invalid SDK key)":""}`:n=`I/O error (${e.message||"unknown error"})`;let i=r!=null?r:"giving up permanently";return`Received ${n} for ${t} - ${i}`}function Et({status:e}){return e?ke(e):!0}var ze=(e,t)=>t.btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),Dt=async(e=1e3)=>new Promise(t=>{setTimeout(t,e)}),Si=class{constructor(e,t,r){this.a=t,this.sn=r,this.Et=[],this.oe=Date.now(),this.ce=this.oe,this.ue={diagnosticId:t.crypto.randomUUID(),sdkKeySuffix:e.length>6?e.substring(e.length-6):e}}createInitEvent(){var e,t,r;let n=this.a.info.sdkData(),i=this.a.info.platformData();return{kind:"diagnostic-init",id:this.ue,creationDate:this.oe,sdk:n,configuration:this.sn,platform:k({name:i.name,osArch:(e=i.os)==null?void 0:e.arch,osName:(t=i.os)==null?void 0:t.name,osVersion:(r=i.os)==null?void 0:r.version},i.additional||{})}}recordStreamInit(e,t,r){let n={timestamp:e,failed:t,durationMillis:r};this.Et.push(n)}createStatsEventAndReset(e,t,r){let n=Date.now(),i={kind:"diagnostic",id:this.ue,creationDate:n,dataSinceDate:this.ce,droppedEvents:e,deduplicatedUsers:t,eventsInLastBatch:r,streamInits:this.Et};return this.Et=[],this.ce=n,i}},dt;(function(e){e.MalformedFlag="MALFORMED_FLAG",e.UserNotSpecified="USER_NOT_SPECIFIED",e.FlagNotFound="FLAG_NOT_FOUND",e.ClientNotReady="CLIENT_NOT_READY",e.WrongType="WRONG_TYPE"})(dt||(dt={}));var xi=dt,Ur=class{static invalidMetricValue(e){return`The track function was called with a non-numeric "metricValue" (${e}), only numeric metric values are supported.`}};Ur.MissingContextKeyNoEvent="Context was unspecified or had no key; event will not be sent";var Ri=class{constructor(e,t){let{basicConfiguration:r,platform:n}=e,{serviceEndpoints:{analyticsEventPath:i,diagnosticEventPath:a}}=r,{crypto:s,requests:o}=n;this.an=k({},t),this.le=Yt(r.serviceEndpoints,i,[]),this.cn=Yt(r.serviceEndpoints,a,[]),this.z=o,this.un=s}async et(e,t,r,n){let i={status:oe.Succeeded},a=q(k({},this.an),{"content-type":"application/json"});r&&(a["x-launchdarkly-payload-id"]=r,a["x-launchDarkly-event-schema"]="4");let s;try{let{status:o,headers:l}=await this.z.fetch(t,{headers:a,body:JSON.stringify(e),compressBodyIfPossible:!0,method:"POST",keepalive:!0}),u=Date.parse(l.get("date")||"");if(u&&(i.serverTime=u),o<=204)return i;if(s=new Ar(X({status:o,message:"some events were dropped"},"event posting")),!ke(o))return Ei(o)?i.status=oe.Failed:i.status=oe.FailedAndMustShutDown,i.error=s,i}catch(o){s=o}return s&&!n?(i.status=oe.Failed,i.error=s,i):(await Dt(),this.et(e,this.le,r,!1))}async sendEventData(e,t){let r=e===ye.AnalyticsEvents?this.un.randomUUID():void 0,n=e===ye.AnalyticsEvents?this.le:this.cn;return this.et(t,n,r,!0)}};function Ue(e){return e.kind==="feature"}function Oi(e){return e.kind==="identify"}function Ii(e){return e.kind==="migration_op"}var Pi=class{constructor(e,t,r,n,i,a){this.count=e,this.key=t,this.value=r,this.version=i,this.variation=a,this.default=n}increment(){this.count+=1}};function $i(e){return`${e.key}:${e.variation!==null&&e.variation!==void 0?e.variation:""}:${e.version!==null&&e.version!==void 0?e.version:""}`}var qr=class{constructor(e=!1,t){this.ln=e,this.k=t,this.K=0,this.nt=0,this.it={},this.rt={}}summarizeEvent(e){if(Ue(e)&&!e.excludeFromSummaries){this.v||(this.v=e.context);let t=$i(e),r=this.it[t],n=this.rt[e.key];n||(n=new Set,this.rt[e.key]=n),e.context.kinds.forEach(i=>n.add(i)),r?r.increment():this.it[t]=new Pi(1,e.key,e.value,e.default,e.version,e.variation),(this.K===0||e.creationDate<this.K)&&(this.K=e.creationDate),e.creationDate>this.nt&&(this.nt=e.creationDate)}}getSummary(){var e;let t=Object.values(this.it).reduce((n,i)=>{let a=n[i.key];a||(a={default:i.default,counters:[],contextKinds:[...this.rt[i.key]]},n[i.key]=a);let s={value:i.value,count:i.count};return i.variation!==void 0&&i.variation!==null&&(s.variation=i.variation),i.version!==void 0&&i.version!==null?s.version=i.version:s.unknown=!0,a.counters.push(s),n},{}),r={startDate:this.K,endDate:this.nt,features:t,kind:"summary",context:this.v!==void 0&&this.ln?(e=this.k)==null?void 0:e.filter(this.v):void 0};return this.dn(),r}dn(){this.K=0,this.nt=0,this.it={},this.rt={}}},Li=class extends Error{constructor(e){super(e),this.name="LaunchDarklyInvalidSDKKeyError"}},Ti=class{constructor(e,t){this.k=e,this.t=t,this.J={}}summarizeEvent(e){var t;if(Ue(e)){let r=e.context.canonicalUnfilteredJson();if(!r){e.context.valid&&((t=this.t)==null||t.error("Unable to serialize context, likely the context contains a cycle."));return}let n=this.J[r];n||(this.J[r]=new qr(!0,this.k),n=this.J[r]),n.summarizeEvent(e)}}getSummaries(){let e=this.J;return this.J={},Object.values(e).map(t=>t.getSummary())}};function Me(e){let t=Math.trunc(e);return t===1?!0:t===0?!1:Math.floor(Math.random()*t)===0}function Mi(e){return e.getSummaries!==void 0}var Fi=class{constructor(e,t,r,n,i,a=!0,s=!1){this.e=e,this.st=n,this.C=i,this.at=[],this.de=0,this.bt=0,this.Dt=0,this.St=!1,this.he=0,this.kt=!1,this.Ct=null,this.hn=e.eventsCapacity,this.t=t.basicConfiguration.logger,this.fe=new Ri(t,r),this.k=new li(e.allAttributesPrivate,e.privateAttributes.map(o=>new me(o))),s?this.W=new Ti(this.k,this.t):this.W=new qr,a&&this.start()}start(){var e,t;if(((e=this.st)==null?void 0:e.flushInterval)!==void 0&&(this.Ct=setInterval(()=>{var r;(r=this.st)==null||r.flush()},this.st.flushInterval*1e3)),this.fn=setInterval(async()=>{var r;try{await this.flush()}catch(n){(r=this.t)==null||r.debug(`Flush failed: ${n}`)}},this.e.flushInterval*1e3),this.C){let r=this.C.createInitEvent();this.pe(r),this.me=setInterval(()=>{let n=this.C.createStatsEventAndReset(this.bt,this.Dt,this.he);this.bt=0,this.Dt=0,this.pe(n)},this.e.diagnosticRecordingInterval*1e3)}(t=this.t)==null||t.debug("Started EventProcessor.")}pe(e){this.fe.sendEventData(ye.DiagnosticEvent,e)}close(){clearInterval(this.fn),this.Ct&&clearInterval(this.Ct),this.me&&clearInterval(this.me)}async flush(){var e;if(this.kt)throw new Li("Events cannot be posted because a permanent error has been encountered. This is most likely an invalid SDK key. The specific error information is logged independently.");let t=this.at;if(this.at=[],Mi(this.W))this.W.getSummaries().forEach(r=>{Object.keys(r.features).length&&t.push(r)});else{let r=this.W.getSummary();Object.keys(r.features).length&&t.push(r)}t.length&&(this.he=t.length,(e=this.t)==null||e.debug("Flushing %d events",t.length),await this.et(t))}sendEvent(e){var t;if(this.kt)return;if(Ii(e)){if(Me(e.samplingRatio)){let o=q(k({},e),{context:e.context?this.k.filter(e.context):void 0});o.samplingRatio===1&&delete o.samplingRatio,this.ot(o)}return}this.W.summarizeEvent(e);let r=Ue(e),n=r&&e.trackEvents||!r,i=this.pn(e),a=Oi(e),s=(t=this.st)==null?void 0:t.processContext(e.context);s||a||(this.Dt+=1),s&&!a&&this.ot(this.It({kind:"index",creationDate:e.creationDate,context:e.context,samplingRatio:1},!1)),n&&Me(e.samplingRatio)&&this.ot(this.It(e,!1)),i&&Me(e.samplingRatio)&&this.ot(this.It(e,!0))}It(e,t){switch(e.kind){case"feature":{let r={kind:t?"debug":"feature",creationDate:e.creationDate,context:this.k.filter(e.context,!t),key:e.key,value:e.value,default:e.default};return e.samplingRatio!==1&&(r.samplingRatio=e.samplingRatio),e.prereqOf&&(r.prereqOf=e.prereqOf),e.variation!==void 0&&(r.variation=e.variation),e.version!==void 0&&(r.version=e.version),e.reason&&(r.reason=e.reason),r}case"index":case"identify":{let r={kind:e.kind,creationDate:e.creationDate,context:this.k.filter(e.context)};return e.samplingRatio!==1&&(r.samplingRatio=e.samplingRatio),r}case"custom":{let r={kind:"custom",creationDate:e.creationDate,key:e.key,context:this.k.filter(e.context)};return e.samplingRatio!==1&&(r.samplingRatio=e.samplingRatio),e.data!==void 0&&(r.data=e.data),e.metricValue!==void 0&&(r.metricValue=e.metricValue),e.url!==void 0&&(r.url=e.url),r}case"click":return{kind:"click",creationDate:e.creationDate,contextKeys:e.context.kindsAndKeys,key:e.key,url:e.url,selector:e.selector};case"pageview":return{kind:"pageview",creationDate:e.creationDate,contextKeys:e.context.kindsAndKeys,key:e.key,url:e.url};default:return e}}ot(e){var t;this.at.length<this.hn?(this.at.push(e),this.St=!1):(this.St||(this.St=!0,(t=this.t)==null||t.warn("Exceeded event queue capacity. Increase capacity to avoid dropping events.")),this.bt+=1)}pn(e){return Ue(e)&&e.debugEventsUntilDate&&e.debugEventsUntilDate>this.de&&e.debugEventsUntilDate>Date.now()}async et(e){let t=await this.fe.sendEventData(ye.AnalyticsEvents,e);if(t.status===oe.FailedAndMustShutDown&&(this.kt=!0),t.serverTime&&(this.de=t.serverTime),t.error)throw t.error}},Kr=class{constructor(e,t,r,n,i=1,a){this.context=e,this.key=t,this.data=r,this.metricValue=n,this.samplingRatio=i,this.url=a,this.kind="custom",this.creationDate=Date.now(),this.context=e}},ht=class{constructor(e,t,r,n,i,a,s,o,l,u,d,c,h=1){this.withReasons=e,this.context=t,this.key=r,this.samplingRatio=h,this.kind="feature",this.creationDate=Date.now(),this.value=n,this.default=i,a!==void 0&&(this.version=a),s!==void 0&&(this.variation=s),o!==void 0&&(this.trackEvents=o),l!==void 0&&(this.prereqOf=l),u!==void 0&&(this.reason=u),d!==void 0&&(this.debugEventsUntilDate=d),c!==void 0&&(this.excludeFromSummaries=c)}},Br=class{constructor(e,t=1){this.context=e,this.samplingRatio=t,this.kind="identify",this.creationDate=Date.now()}},Ni=class{close(){}async flush(){}sendEvent(){}},Ai=class{constructor(e){this.Pt=e}evalEvent(e){var t;return new ht(this.Pt,e.context,e.flagKey,e.value,e.defaultVal,e.version,(t=e.variation)!=null?t:void 0,e.trackEvents||e.addExperimentData,e.prereqOfFlagKey,this.Pt||e.addExperimentData?e.reason:void 0,e.debugEventsUntilDate,e.excludeFromSummaries,e.samplingRatio)}unknownFlagEvent(e,t,r){return new ht(this.Pt,r,e,t,t,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}identifyEvent(e){return new Br(e,1)}customEvent(e,t,r,n,i=1){return new Kr(t,e,r!=null?r:void 0,n!=null?n:void 0,i)}},Qt="FDv1Fallback";function ji(e){return{mn:e,ye:"",useSelector(t){return this.ye=t,this},processFullTransfer(t){let r=[{event:"server-intent",data:{payloads:[{id:Qt,target:1,intentCode:"xfer-full",reason:"payload-missing"}]}}];Object.entries((t==null?void 0:t.flags)||[]).forEach(([n,i])=>{r.push({event:"put-object",data:{kind:"flag",key:n,version:i.version||1,object:i}})}),Object.entries((t==null?void 0:t.segments)||[]).forEach(([n,i])=>{r.push({event:"put-object",data:{kind:"segment",key:n,version:i.version||1,object:i}})}),r.push({event:"payload-transferred",data:{state:this.ye,version:1,id:Qt}}),this.mn.processEvents(r)}}}var U={type:"none"};function Hr(e,t){let r="inactive",n="partial",i=[];function a(f,v){var m;return(m=e[f])==null?void 0:m.call(e,v)}function s(){r="inactive",n="partial",i=[]}function o(){r="changes",n="partial",i=[]}function l(){i=[]}function u(f){return ie(f.target)?(t==null||t.warn(`Ignoring 'none' intent with missing fields: target=${f.target}`),U):{type:"payload",payload:{version:f.target,type:"none",updates:[]}}}function d(f){var v;if(!((v=f.payloads)!=null&&v.length))return{type:"error",kind:"MISSING_PAYLOAD",message:"No payload present in server-intent"};let m=f.payloads[0];switch(m==null?void 0:m.intentCode){case"xfer-full":return r="full",i=[],n="full",U;case"xfer-changes":return r="changes",i=[],n="partial",U;case"none":return r="changes",i=[],n="partial",u(m);default:return t==null||t.warn(`Unable to process intent code '${m==null?void 0:m.intentCode}'.`),U}}function c(f){if(r==="inactive")return t==null||t.warn("Received put-object before server-intent was established. Ignoring."),U;if(!f.kind||!f.key||ie(f.version)||!f.object)return t==null||t.warn(`Ignoring put-object with missing fields: kind=${f.kind}, key=${f.key}, version=${f.version}`),U;let v=a(f.kind,f.object);return v?(i.push({kind:f.kind,key:f.key,version:f.version,object:v}),U):(t==null||t.warn(`Unable to process object for kind: '${f.kind}'`),U)}function h(f){return r==="inactive"?(t==null||t.warn("Received delete-object before server-intent was established. Ignoring."),U):!f.kind||!f.key||ie(f.version)?(t==null||t.warn(`Ignoring delete-object with missing fields: kind=${f.kind}, key=${f.key}, version=${f.version}`),U):(i.push({kind:f.kind,key:f.key,version:f.version,deleted:!0}),U)}function g(f){if(r==="inactive")return{type:"error",kind:"PROTOCOL_ERROR",message:"A payload transferred has been received without an intent having been established."};if(ie(f.state)||ie(f.version))return t==null||t.warn(`Ignoring payload-transferred with missing fields: state=${f.state}, version=${f.version}`),s(),U;let v={type:"payload",payload:{version:f.version,state:f.state,type:n,updates:i}};return o(),v}function D(f){return t==null||t.info(`Goodbye was received from the LaunchDarkly connection with reason: ${f.reason}.`),s(),{type:"goodbye",reason:f.reason}}function w(f){return t==null||t.info(`An issue was encountered receiving updates with reason: ${f.reason}.`),l(),{type:"serverError",id:f.payload_id,reason:f.reason}}return{get state(){return r},processEvent(f){switch(f.event){case"server-intent":return d(f.data);case"put-object":return c(f.data);case"delete-object":return h(f.data);case"payload-transferred":return g(f.data);case"goodbye":return D(f.data);case"error":return w(f.data);case"heart-beat":return U;default:return{type:"error",kind:"UNKNOWN_EVENT",message:`Received an unknown event of type '${f.event}'`}}},reset(){s()}}}function Vi(e){return e==="MISSING_PAYLOAD"||e==="PROTOCOL_ERROR"}var Jr=class{constructor(e,t,r){this.m=t,this.t=r,this.n=[],this.yn=Hr(e,r)}addPayloadListener(e){this.n.push(e)}removePayloadListener(e){let t=this.n.indexOf(e,0);t>-1&&this.n.splice(t,1)}processEvents(e){e.forEach(t=>{var r,n;let i=this.yn.processEvent(t);switch(i.type){case"payload":this.n.forEach(a=>a(i.payload));break;case"error":Vi(i.kind)?(r=this.m)==null||r.call(this,T.InvalidData,i.message):(n=this.t)==null||n.warn(i.message);break}})}},zi=class{constructor(e,t,r,n){this.m=r,this.t=n,this._(e,"server-intent"),this._(e,"put-object"),this._(e,"delete-object"),this._(e,"payload-transferred"),this._(e,"goodbye"),this._(e,"error"),this.xt=new Jr(t,r,n)}addPayloadListener(e){this.xt.addPayloadListener(e)}removePayloadListener(e){this.xt.removePayloadListener(e)}_(e,t){e.addEventListener(t,async r=>{var n,i,a,s,o;if(r!=null&&r.data){(n=this.t)==null||n.debug(`Received ${t} event. Data is ${r.data}`);try{this.xt.processEvents([{event:t,data:JSON.parse(r.data)}])}catch(l){(i=this.t)==null||i.error(`Stream received data that was unable to be processed in "${t}" message`),(a=this.t)==null||a.debug(`Data follows: ${r.data}`),(s=this.m)==null||s.call(this,T.InvalidData,"Malformed data in EventStream.")}}else(o=this.m)==null||o.call(this,T.Unknown,"Event from EventStream missing data.")})}};function Ui(e){if(e){let t=Object.keys(e).find(r=>r.toLowerCase()==="x-ld-envid");if(t)return{environmentId:e[t]}}}var Xt="unknown plugin";function qe(e,t){try{return t.getMetadata().name||Xt}catch(r){return e.error("Exception thrown getting metadata for plugin. Unable to get plugin name."),Xt}}function qi(e,t,r){let n=[];return r.forEach(i=>{var a;try{let s=(a=i.getHooks)==null?void 0:a.call(i,t);s===void 0?e.error(`Plugin ${qe(e,i)} returned undefined from getHooks.`):s&&s.length>0&&n.push(...s)}catch(s){e.error(`Exception thrown getting hooks for plugin ${qe(e,i)}. Unable to get hooks.`)}}),n}function Ki(e,t,r,n){n.forEach(i=>{try{i.register(r,t)}catch(a){e.error(`Exception thrown registering plugin ${qe(e,i)}.`)}})}var B=Object.freeze({__proto__:null,ClientMessages:Ur,DiagnosticsManager:Si,ErrorKinds:xi,EventFactoryBase:Ai,EventProcessor:Fi,FDv1PayloadAdaptor:ji,InputCustomEvent:Kr,InputEvalEvent:ht,InputIdentifyEvent:Br,NullEventProcessor:Ni,PayloadProcessor:Jr,PayloadStreamReader:zi,canonicalize:Ae,createProtocolHandler:Hr,initMetadataFromHeaders:Ui,isLegacyUser:Ir,isMultiKind:Or,isSingleKind:Rr,safeGetHooks:qi,safeGetName:qe,safeRegisterPlugins:Ki,shouldSample:Me}),er={Initializing:"INITIALIZING",Valid:"VALID",Interrupted:"INTERRUPTED",SetOffline:"SET_OFFLINE",Closed:"CLOSED"};function Bi(e){return e>=200&&e<=299}var tr=class extends Error{constructor(e,t){super(e),this.status=t,this.name="LaunchDarklyRequestError"}};function ft(e,t,r,n,i,a,s,o,l,u){let d,c="GET",h=k({},a);l&&(c="REPORT",h["content-type"]="application/json",d=e);let g=l?r.pathReport(i,e):r.pathGet(i,e),D=[...s!=null?s:[]];o&&D.push({key:"withReasons",value:"true"}),u&&D.push({key:"h",value:u});let w=Nr(t,g,D);return{async requestPayload(){let f;try{let v=await n.fetch(w,{method:c,headers:h,body:d});if(Bi(v.status))return await v.text();f=v.status}catch(v){throw new tr(v==null?void 0:v.message)}throw new tr(`Unexpected status code: ${f}`,f)}}}var rr=new Error("Task has already been executed or shed. This is likely an implementation error. The task will not be executed again.");function Hi(e,t,r=!1){let n,i=new Promise(o=>{n=(l,u)=>{var d;try{(d=e.after)==null||d.call(e,l,u)}catch(c){t==null||t.error(`Error in after callback: ${c}`)}o(l)}}),a=e.before?e.before():Promise.resolve(void 0),s=!1;return{execute:()=>{s&&(t==null||t.error(rr)),s=!0,a.then(o=>{e.execute(o).then(l=>n({status:"complete",result:l},o)).catch(l=>n({status:"error",error:l},o))}).catch(o=>{t==null||t.error(o),n({status:"error",error:o},void 0)})},shed:()=>{s&&(t==null||t.error(rr)),s=!0,a.then(o=>{n({status:"shed"},o)})},promise:i,sheddable:r}}function Ji(e){let t,r=[];function n(){if(!t&&r.length>0){let i=r.shift();t=i.promise.finally(()=>{t=void 0,n()}),i.execute()}}return{execute(i,a=!1){var s,o;let l=Hi(i,e,a);return t?((s=r[r.length-1])!=null&&s.sheddable&&((o=r.pop())==null||o.shed()),r.push(l)):(t=l.promise.finally(()=>{t=void 0,n()}),l.execute()),l.promise},pendingCount(){return r.length}}}function Gr(e){return"validate"in e}function Be(e,t,r,n,i){let a=k({},r);return ie(e)?a:p.Object.is(e)?(Object.entries(e).forEach(([s,o])=>{let l=t[s],u=i?`${i}.${s}`:s;if(!l){n==null||n.warn(N.unknownOption(u));return}if(ie(o))return;if(Gr(l)){let c=l.validate(o,u,n,r[s]);c!==void 0&&(a[s]=c.value);return}if(l.is(o)){a[s]=o;return}let d=l.getType();d==="boolean"?(n==null||n.warn(N.wrongOptionTypeBoolean(u,typeof o)),a[s]=!!o):d==="boolean | undefined | null"?(n==null||n.warn(N.wrongOptionTypeBoolean(u,typeof o)),typeof o!="boolean"&&typeof o!="undefined"&&o!==null&&(a[s]=!!o)):l instanceof Sr&&p.Number.is(o)?(n==null||n.warn(N.optionBelowMinimum(u,o,l.min)),a[s]=l.min):n==null||n.warn(N.wrongOptionType(u,d,typeof o))}),a):(n==null||n.warn(N.wrongOptionType(i!=null?i:"config","object",typeof e)),a)}function ae(e,t){var r;let n=t==null?void 0:t.defaults;return{is:(r=t==null?void 0:t.is)!=null?r:(i=>p.Object.is(i)),getType:()=>"object",validate(i,a,s,o){if(!p.Object.is(i)){s==null||s.warn(N.wrongOptionType(a,"object",typeof i));return}let l=n!=null?n:p.Object.is(o)?o:{},u=Be(i,e,l,s,a);return Object.keys(u).length>0?{value:u}:void 0}}}function _r(e,t){return{is:r=>Array.isArray(r),getType:()=>"array",validate(r,n,i){if(!Array.isArray(r)){i==null||i.warn(N.wrongOptionType(n,"array",typeof r));return}let a=[];return r.forEach((s,o)=>{let l=`${n}[${o}]`;if(ie(s)||!p.Object.is(s)){i==null||i.warn(N.wrongOptionType(l,"object",typeof s));return}let u=s,d=u[e],c=typeof d=="string"?t[d]:void 0;if(!c){let h=Object.keys(t).join(" | "),g=typeof d=="string"?d:typeof d;i==null||i.warn(N.wrongOptionType(`${l}.${e}`,h,g));return}a.push(Be(u,c,{},i,l))}),{value:a}}}}function Gi(...e){return{is:t=>e.some(r=>r.is(t)),getType:()=>e.map(t=>t.getType()).join(" | "),validate(t,r,n,i){let a=e.find(s=>s.is(t));if(a)return Gr(a)?a.validate(t,r,n,i):{value:t};n==null||n.warn(N.wrongOptionType(r,this.getType(),typeof t))}}}function _i(e,t,r){let n=r==null?void 0:r.defaults;return{is:i=>p.Object.is(i),getType:()=>"object",validate(i,a,s,o){if(ie(i))return;if(!p.Object.is(i)){s==null||s.warn(N.wrongOptionType(a,"object",typeof i));return}let l=i,u={},d={};Object.keys(l).forEach(h=>{e.is(h)?(u[h]=l[h],d[h]=t):s==null||s.warn(N.wrongOptionType(a,e.getType(),h))});let c=n!=null?n:p.Object.is(o)?o:{};return{value:Be(u,d,c,s,a)}}}}var nr=300,ir=3600,Ct=p.oneOf("cache","polling","streaming"),St=p.oneOf("streaming","polling","offline","one-shot","background"),xt={pollingBaseUri:p.String,streamingBaseUri:p.String},Wi={type:Ct},Wr={type:Ct,pollInterval:p.numberWithMin(30),endpoints:ae(xt)},Zr={type:Ct,initialReconnectDelay:p.numberWithMin(1),endpoints:ae(xt)},Zi=_r("type",{cache:Wi,polling:Wr,streaming:Zr}),Yi=_r("type",{polling:Wr,streaming:Zr}),Qi={pollInterval:p.numberWithMin(30),endpoints:ae(xt)},Xi={initializers:Zi,synchronizers:Yi,fdv1Fallback:ae(Qi)},Fe={streaming:{initializers:[{type:"cache"},{type:"polling"}],synchronizers:[{type:"streaming"},{type:"polling"}],fdv1Fallback:{pollInterval:nr}},polling:{initializers:[{type:"cache"}],synchronizers:[{type:"polling"}],fdv1Fallback:{pollInterval:nr}},offline:{initializers:[{type:"cache"}],synchronizers:[]},"one-shot":{initializers:[{type:"cache"},{type:"polling"},{type:"streaming"}],synchronizers:[]},background:{initializers:[{type:"cache"}],synchronizers:[{type:"polling",pollInterval:ir}],fdv1Fallback:{pollInterval:ir}}},ea=_i(St,ae(Xi));function ar(e,t){return p.Object.is(e)&&e.type===t}var ta={type:p.oneOf("automatic"),lifecycle:p.Boolean,network:p.Boolean},ra={type:p.oneOf("manual"),initialConnectionMode:St},na={backgroundConnectionMode:St,automaticModeSwitching:Gi(p.Boolean,ae(ta,{is:e=>ar(e,"automatic")}),ae(ra,{is:e=>ar(e,"manual")})),connectionModes:ea},sr={foregroundConnectionMode:"one-shot",backgroundConnectionMode:void 0,automaticModeSwitching:!1};function ia(e){return typeof e=="object"&&e!==null&&"type"in e&&e.type==="manual"}function aa(e,t){var r;return ia(e.automaticModeSwitching)?e.automaticModeSwitching.initialConnectionMode:(r=e.foregroundConnectionMode)!=null?r:t.foregroundConnectionMode}function sa(e){return{logger:p.Object,maxCachedContexts:p.numberWithMin(0),baseUri:p.String,streamUri:p.String,eventsUri:p.String,capacity:p.numberWithMin(1),diagnosticRecordingInterval:p.numberWithMin(2),flushInterval:p.numberWithMin(2),streamInitialReconnectDelay:p.numberWithMin(0),allAttributesPrivate:p.Boolean,debug:p.Boolean,diagnosticOptOut:p.Boolean,withReasons:p.Boolean,sendEvents:p.Boolean,pollInterval:p.numberWithMin(30),useReport:p.Boolean,privateAttributes:p.StringArray,disableCache:p.Boolean,applicationInfo:p.Object,wrapperName:p.String,wrapperVersion:p.String,payloadFilterKey:p.stringMatchingRegex(/^[a-zA-Z0-9](\w|\.|-)*$/),hooks:p.createTypeArray("Hook[]",{}),inspectors:p.createTypeArray("LDInspection",{}),cleanOldPersistentData:p.Boolean,dataSystem:e!=null&&e.dataSystemDefaults?ae(na,{defaults:q(k({},e.dataSystemDefaults),{connectionModes:Fe})}):p.Object}}var oa=300,Yr="https://clientsdk.launchdarkly.com",Qr="https://clientstream.launchdarkly.com";function la(e){return e instanceof Lr?e:Tr(e)}var ua=class{constructor(e={},t={getImplementationHooks:()=>[],credentialType:"mobileKey"}){var r,n,i;this.logger=Tr(),this.baseUri=Yr,this.eventsUri=we.DEFAULT_EVENTS,this.streamUri=Qr,this.maxCachedContexts=5,this.disableCache=!1,this.capacity=100,this.diagnosticRecordingInterval=900,this.flushInterval=30,this.streamInitialReconnectDelay=1,this.allAttributesPrivate=!1,this.debug=!1,this.diagnosticOptOut=!1,this.sendEvents=!0,this.sendLDHeaders=!0,this.useReport=!1,this.withReasons=!1,this.privateAttributes=[],this.pollInterval=oa,this.hooks=[],this.inspectors=[],this.logger=la(e.logger);let a=sa({dataSystemDefaults:t.dataSystemDefaults}),s=Be(e,a,{},this.logger);Object.entries(s).forEach(([o,l])=>{o!=="logger"&&(this[o]=l)}),this.serviceEndpoints=new we(this.streamUri,this.baseUri,this.eventsUri,t.analyticsEventPath,t.diagnosticEventPath,t.includeAuthorizationHeader,e.payloadFilterKey),this.useReport=(r=e.useReport)!=null?r:!1,this.tags=new wi({application:this.applicationInfo,logger:this.logger}),this.userAgentHeaderName=(n=t.userAgentHeaderName)!=null?n:"user-agent",this.trackEventModifier=(i=t.trackEventModifier)!=null?i:(o=>o),this.credentialType=t.credentialType,this.getImplementationHooks=t.getImplementationHooks}};async function Rt(e,t){if(e.digest)return e.digest(t);if(e.asyncDigest)return e.asyncDigest(t);throw new Error("Platform must implement digest or asyncDigest")}var Xr=async(e,{crypto:t,storage:r},n)=>{let i=await(r==null?void 0:r.get(e));return i==null&&(n&&(i=await(r==null?void 0:r.get(n)),i!=null&&(await(r==null?void 0:r.set(e,i)),await(r==null?void 0:r.get(e))!=null&&await(r==null?void 0:r.clear(n)))),i==null&&(i=t.randomUUID(),await(r==null?void 0:r.set(e,i)))),i};function en(e){return async t=>Rt(e.createHash("sha256").update(t),"base64")}var Q=async e=>e;async function xe(e){return(await Promise.all(e.map(t=>t.transform(t.value)))).join("_")}async function tn(e,t){return xe([{value:"LaunchDarkly",transform:Q},{value:t,transform:en(e)}])}async function ca(e){return xe([{value:"LaunchDarkly",transform:Q},{value:"AnonymousKeys",transform:Q},{value:e,transform:Q}])}async function rn(e){return xe([{value:"LaunchDarkly",transform:Q},{value:"ContextKeys",transform:Q},{value:e,transform:Q}])}async function da(e){return xe([{value:e,transform:Q},{value:"ContextIndex",transform:Q}])}async function Ot(e,t,r){return xe([{value:t,transform:Q},{value:r.canonicalKey,transform:en(e)}])}var{isLegacyUser:ha,isSingleKind:rt,isMultiKind:or}=B,nn="1.0",fa=e=>{let t=e,{kind:r}=t,n=yt(t,["kind"]);return{kind:"multi",[r]:n}},ga=async({crypto:e,info:t},{applicationInfo:r})=>{var n;let{ld_application:i}=t.platformData(),a=(n=kt(i))!=null?n:{},s=(r==null?void 0:r.id)||(a==null?void 0:a.id);if(s){let o=(r==null?void 0:r.version)||(a==null?void 0:a.version),l=(r==null?void 0:r.name)||(a==null?void 0:a.name),u=(r==null?void 0:r.versionName)||(a==null?void 0:a.versionName);return a=k(k(k(q(k({},a),{id:s}),o?{version:o}:{}),l?{name:l}:{}),u?{versionName:u}:{}),a.key=await Rt(e.createHash("sha256").update(s),"base64"),a.envAttributesVersion=a.envAttributesVersion||nn,a}},pa=async e=>{var t,r,n,i;let{ld_device:a,os:s}=e.info.platformData(),o=(t=kt(a))!=null?t:{},l=(s==null?void 0:s.name)||((r=o.os)==null?void 0:r.name),u=(s==null?void 0:s.version)||((n=o.os)==null?void 0:n.version),d=(i=o.os)==null?void 0:i.family;if((l||u||d)&&(o.os=k(k(k({},l?{name:l}:{}),u?{version:u}:{}),d?{family:d}:{})),Object.keys(o).filter(c=>c!=="key"&&c!=="envAttributesVersion").length){let c=await rn("ld_device");return o.key=await Xr(c,e),o.envAttributesVersion=o.envAttributesVersion||nn,o}},va=async(e,t,r)=>{if(ha(e))return e;let n,i;if(rt(e)&&e.kind!=="ld_application"||or(e)&&!e.ld_application?n=await ga(t,r):r.logger.warn("Not adding ld_application environment attributes because it already exists."),rt(e)&&e.kind!=="ld_device"||or(e)&&!e.ld_device?i=await pa(t):r.logger.warn("Not adding ld_device environment attributes because it already exists."),n||i){let a=rt(e)?fa(e):e;return k(k(k({},a),n?{ld_application:n}:{}),i?{ld_device:i}:{})}return e};function ma(){let e,t;return{set(r,n){e=r,t=n},getContext(){return t},getUnwrappedContext(){return e},newIdentificationPromise(){let r,n;return{identifyPromise:new Promise((i,a)=>{r=i,n=a}),identifyResolve:r,identifyReject:n}},hasContext(){return t!==void 0},hasValidContext(){return this.hasContext()&&t.valid}}}var{isLegacyUser:ya,isMultiKind:wa,isSingleKind:ba}=B,It=async(e,t,r)=>{let{anonymous:n,key:i}=t;if(n&&!i){let a=await rn(e),s=await ca(e);t.key=await Xr(a,r,s)}},ka=async(e,t)=>{await It(e.kind,e,t)},Ea=async(e,t)=>{let r=e,{kind:n}=r,i=yt(r,["kind"]);return Promise.all(Object.entries(i).map(([a,s])=>It(a,s,t)))},Da=async(e,t)=>{await It("user",e,t)},Ca=async(e,t)=>{let r=zr(e);return ba(r)&&await ka(r,t),wa(r)&&await Ea(r,t),ya(r)&&await Da(r,t),r},Sa=e=>({customBaseURI:e.serviceEndpoints.polling!==Yr,customStreamURI:e.serviceEndpoints.streaming!==Qr,customEventsURI:e.serviceEndpoints.events!==we.DEFAULT_EVENTS,eventsCapacity:e.capacity,eventsFlushIntervalMillis:tt(e.flushInterval),reconnectTimeMillis:tt(e.streamInitialReconnectDelay),diagnosticRecordingIntervalMillis:tt(e.diagnosticRecordingInterval),allAttributesPrivate:e.allAttributesPrivate,usingSecureMode:!1,bootstrapMode:!1}),xa=(e,t,r)=>{if(t.sendEvents&&!t.diagnosticOptOut)return new B.DiagnosticsManager(e,r,Sa(t))};function lr(e,t){return{value:t!=null?t:null,variationIndex:null,reason:{kind:"ERROR",errorKind:e}}}function ur(e,t,r){return k({value:e,variationIndex:t!=null?t:null},r!==void 0&&{reason:r})}var Ra=(e,t,r,n,i)=>{if(t.sendEvents)return new B.EventProcessor(q(k({},t),{eventsCapacity:t.capacity}),new bi(e,t,r),n,void 0,i,!1,!0)},cr=class extends B.EventFactoryBase{evalEventClient(e,t,r,n,i,a){let{trackEvents:s,debugEventsUntilDate:o,trackReason:l,flagVersion:u,version:d,variation:c}=n;return super.evalEvent({addExperimentData:l,context:i,debugEventsUntilDate:o,defaultVal:r,flagKey:e,reason:a,trackEvents:!!s,value:t,variation:c,version:u!=null?u:d})}};function an(e,t){let r=Object.keys(t),n="$flagsState",i="$valid",a=t[n];!a&&r.length&&e.warn("LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly."),t[i]===!1&&e.warn("LaunchDarkly bootstrap data is not available because the back end could not read the flags.");let s={};return r.forEach(o=>{if(o!==n&&o!==i){let l;a&&a[o]?l=k({value:t[o]},a[o]):l={value:t[o],version:0},s[o]={version:l.version,flag:l}}}),s}var gt="_freshness";async function sn(e,t){let r=t.canonicalUnfilteredJson();if(r)return Rt(e.createHash("sha256").update(r),"base64")}async function Oa(e,t,r,n,i){let a=await Ot(t,r,n),s=await e.get(`${a}${gt}`);if(s!=null)try{let o=JSON.parse(s),l=await sn(t,n);return l===void 0||o.contextHash!==l?void 0:typeof o.timestamp=="number"&&!Number.isNaN(o.timestamp)?o.timestamp:void 0}catch(o){i==null||i.warn(`Could not read freshness data from persistent storage: ${o.message}`);return}}function Ia(e){return e!==null&&typeof e=="object"&&typeof e.version=="number"}async function on(e,t,r,n,i){let a=await Ot(t,r,n),s=await e.get(a),o=!1;if(s==null){if(s=await e.get(n.canonicalKey),s==null)return;o=!0}try{let l=JSON.parse(s);if(l===null||typeof l!="object"){i==null||i.warn("Cached flag data is not a valid object");return}let u=Object.entries(l),d=u.find(([,c])=>!Ia(c));if(d){i==null||i.warn(`Discarding cached flags due to invalid entry: ${d[0]}`);return}return{flags:u.reduce((c,[h,g])=>(c[h]=g,c),{}),storageKey:a,fromLegacyKey:o}}catch(l){i==null||i.warn(`Could not parse cached flag evaluations from persistent storage: ${l.message}`);return}}var nt=class ln{constructor(){this.container={index:new Array}}static fromJson(t){let r=new ln;try{r.container=JSON.parse(t)}catch(n){}return r}toJson(){return JSON.stringify(this.container)}notice(t,r){let n=this.container.index.find(i=>i.id===t);n===void 0?this.container.index.push({id:t,timestamp:r}):n.timestamp=r}prune(t){let r=Math.max(t,0);return this.container.index.length>r?(this.container.index.sort((n,i)=>n.timestamp-i.timestamp),this.container.index.splice(0,this.container.index.length-r)):[]}},Pa=class{constructor(e,t,r,n,i,a,s,o=()=>Date.now()){this.a=e,this.Lt=t,this.ct=r,this.ge=n,this.A=i,this.g=a,this.t=s,this.gn=o,this.ve=da(this.Lt)}async init(e,t){this.g.init(e,t),await this.At(e)}async upsert(e,t,r){return this.g.upsert(e,t,r)?(await this.At(e),!0):!1}async applyChanges(e,t,r){this.g.applyChanges(e,t,r),await this.At(e)}async loadCached(e){if(this.ge||this.ct<=0||!this.a.storage)return!1;let t=await on(this.a.storage,this.a.crypto,this.Lt,e,this.t);if(!t)return!1;t.fromLegacyKey&&(await this.a.storage.set(t.storageKey,JSON.stringify(t.flags)),await this.a.storage.clear(e.canonicalKey));let r=Object.entries(t.flags).reduce((n,[i,a])=>(n[i]={version:a.version,flag:a},n),{});return this.g.initCached(e,r),this.t.debug("Loaded cached flag evaluations from persistent storage"),!0}async vn(e,t,r){var n;let i=await sn(this.a.crypto,t);if(i===void 0){this.t.error("Could not serialize context for freshness tracking");return}let a={timestamp:r,contextHash:i};await((n=this.a.storage)==null?void 0:n.set(`${e}${gt}`,JSON.stringify(a)))}async wn(){var e;if(this.V!==void 0)return this.V;let t=await((e=this.a.storage)==null?void 0:e.get(await this.ve));if(!t)return this.V=new nt,this.V;try{this.V=nt.fromJson(t),this.t.debug("Loaded context index from persistent storage")}catch(r){this.t.warn(`Could not load index from persistent storage: ${r.message}`),this.V=new nt}return this.V}async At(e){var t,r;if(this.ge)return;let n=this.gn(),i=await this.wn(),a=await Ot(this.a.crypto,this.Lt,e);this.ct>0&&i.notice(a,n);let s=i.prune(this.ct),o=this.ct<=0||s.some(c=>c.id===a);if(await Promise.all(s.flatMap(c=>{var h,g;return[(h=this.a.storage)==null?void 0:h.clear(c.id),(g=this.a.storage)==null?void 0:g.clear(`${c.id}${gt}`)]})),await((t=this.a.storage)==null?void 0:t.set(await this.ve,i.toJson())),o)return;let l=this.A.getAll(),u=Object.entries(l).reduce((c,[h,g])=>(g.flag!==null&&g.flag!==void 0&&(c[h]=g.flag),c),{}),d=JSON.stringify(u);await((r=this.a.storage)==null?void 0:r.set(a,d));try{await this.vn(a,e,n)}catch(c){this.t.warn(`Failed to store freshness data: ${c.message}`)}}};function $a(){let e={};return{init(t){e=Object.entries(t).reduce((r,[n,i])=>(r[n]=i,r),{})},insertOrUpdate(t,r){e[t]=r},get(t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]},getAll(){return e},applyChanges(t,r){r==="full"?this.init(t):r==="partial"&&Object.entries(t).forEach(([n,i])=>{e[n]=i})}}}function dr(e,t){let r=[];return Object.entries(e).forEach(([n,i])=>{let a=t[n];(!a||!Te(i,a))&&r.push(n)}),Object.keys(t).forEach(n=>{e[n]||r.push(n)}),r}function La(e,t){let r=e,n=t,i,a=new Array;return{handleFlagChanges(s,o){i?a.forEach(l=>{try{l(i,s,o)}catch(u){}}):n.warn("Received a change event without an active context. Changes will not be propagated.")},init(s,o){i=s;let l=r.getAll();r.init(o);let u=dr(l,o);u.length>0&&this.handleFlagChanges(u,"init")},initCached(s,o){(i==null?void 0:i.canonicalKey)!==s.canonicalKey&&this.init(s,o)},applyChanges(s,o,l){i=s;let u=r.getAll();if(r.applyChanges(o,l),l==="full"){let d=dr(u,o);d.length>0&&this.handleFlagChanges(d,"init")}else if(l==="partial"){let d=Object.keys(o);d.length>0&&this.handleFlagChanges(d,"patch")}},upsert(s,o,l){if((i==null?void 0:i.canonicalKey)!==s.canonicalKey)return n.warn("Received an update for an inactive context."),!1;let u=r.get(o);return u!==void 0&&u.version>=l.version?!1:(r.insertOrUpdate(o,l),this.handleFlagChanges([o],"patch"),!0)},on(s){a.push(s)},off(s){let o=a.indexOf(s);o>-1&&a.splice(o,1)}}}var Ta=class{constructor(e,t,r,n,i,a=()=>Date.now()){this.A=$a(),this.g=La(this.A,i),this.ut=this.En(e,t,r,n,i,a)}async En(e,t,r,n,i,a=()=>Date.now()){let s=await tn(e.crypto,t);return new Pa(e,s,r,n,this.A,this.g,i,a)}get(e){return this.r&&Object.prototype.hasOwnProperty.call(this.r,e)?this.Ot(this.r[e]):this.A.get(e)}getAll(){return this.r?k(k({},this.A.getAll()),Object.entries(this.r).reduce((e,[t,r])=>(e[t]=this.Ot(r),e),{})):this.A.getAll()}presetFlags(e){this.A.init(e)}setBootstrap(e,t){this.g.init(e,t)}async init(e,t){return(await this.ut).init(e,t)}async upsert(e,t,r){return(await this.ut).upsert(e,t,r)}async loadCached(e){return(await this.ut).loadCached(e)}async applyChanges(e,t,r){return(await this.ut).applyChanges(e,t,r)}on(e){this.g.on(e)}off(e){this.g.off(e)}Ot(e){return{flag:{value:e,version:0},version:0}}setOverride(e,t){this.r||(this.r={}),this.r[e]=t,this.g.handleFlagChanges([e],"override")}removeOverride(e){!this.r||!Object.prototype.hasOwnProperty.call(this.r,e)||(delete this.r[e],Object.keys(this.r).length===0&&(this.r=void 0),this.g.handleFlagChanges([e],"override"))}clearAllOverrides(){if(this.r){let e=k({},this.r);this.r=void 0,this.g.handleFlagChanges(Object.keys(e),"override")}}getAllOverrides(){if(!this.r)return{};let e={};return Object.entries(this.r).forEach(([t,r])=>{e[t]=this.Ot(r)}),e}getDebugOverride(){return{setOverride:this.setOverride.bind(this),removeOverride:this.removeOverride.bind(this),clearAllOverrides:this.clearAllOverrides.bind(this),getAllOverrides:this.getAllOverrides.bind(this)}}},hr="unknown hook",un="beforeEvaluation",cn="afterEvaluation",Ma="afterTrack";function Re(e,t,r,n,i){try{return n()}catch(a){return e==null||e.error(`An error was encountered in "${t}" of the "${r}" hook: ${a}`),i}}function Oe(e,t){try{return t.getMetadata().name||hr}catch(r){return e.error("Exception thrown getting metadata for hook. Unable to get hook name."),hr}}function Fa(e,t,r){return t.map(n=>Re(e,un,Oe(e,n),()=>{var i,a;return(a=(i=n==null?void 0:n.beforeEvaluation)==null?void 0:i.call(n,r,{}))!=null?a:{}},{}))}function Na(e,t,r,n,i){for(let a=t.length-1;a>=0;a-=1){let s=t[a],o=n[a];Re(e,cn,Oe(e,s),()=>{var l,u;return(u=(l=s==null?void 0:s.afterEvaluation)==null?void 0:l.call(s,r,o,i))!=null?u:{}},{})}}function Aa(e,t,r){return t.map(n=>Re(e,un,Oe(e,n),()=>{var i,a;return(a=(i=n==null?void 0:n.beforeIdentify)==null?void 0:i.call(n,r,{}))!=null?a:{}},{}))}function ja(e,t,r,n,i){for(let a=t.length-1;a>=0;a-=1){let s=t[a],o=n[a];Re(e,cn,Oe(e,s),()=>{var l,u;return(u=(l=s==null?void 0:s.afterIdentify)==null?void 0:l.call(s,r,o,i))!=null?u:{}},{})}}function Va(e,t,r){for(let n=t.length-1;n>=0;n-=1){let i=t[n];Re(e,Ma,Oe(e,i),()=>{var a;return(a=i==null?void 0:i.afterTrack)==null?void 0:a.call(i,r)},void 0)}}var za=class{constructor(e,t){this.t=e,this.$=[],this.$.push(...t)}withEvaluation(e,t,r,n){if(this.$.length===0)return n();let i=[...this.$],a={flagKey:e,context:t,defaultValue:r},s=Fa(this.t,i,a),o=n();return Na(this.t,i,a,s,o),o}identify(e,t){let r=[...this.$],n={context:e,timeout:t},i=Aa(this.t,r,n);return a=>{ja(this.t,r,n,i,a)}}addHook(e){this.$.push(e)}afterTrack(e){if(this.$.length===0)return;let t=[...this.$];Va(this.t,t,e)}};function Ua(e){return{getMetadata(){return{name:"LaunchDarkly-Inspector-Adapter"}},afterEvaluation:(t,r,n)=>(e.onFlagUsed(t.flagKey,n,t.context),r),afterIdentify(t,r,n){return e.onIdentityChanged(t.context),r}}}function qa(e,t){return`an inspector: "${t}" of an invalid type (${e}) was configured`}function Ka(e,t){return`an inspector: "${t}" of type: "${e}" generated an exception`}function Ba(e,t){let r=!1,n={method:(...i)=>{try{e.method(...i)}catch(a){r||(r=!0,t.warn(Ka(n.type,n.name)))}},type:e.type,name:e.name,synchronous:e.synchronous};return n}var dn="flag-used",hn="flag-details-changed",fn="flag-detail-changed",gn="client-identity-changed",Ha=[dn,hn,fn,gn];function Ja(e,t){let r=Ha.includes(e.type)&&e.method&&typeof e.method=="function";return r||t.warn(qa(e.type,e.name)),r}var Ga=class{constructor(e,t){this.B=[];let r=e.filter(n=>Ja(n,t));this.B=r.map(n=>Ba(n,t))}hasInspectors(){return this.B.length!==0}onFlagUsed(e,t,r){this.B.forEach(n=>{n.type===dn&&n.method(e,t,r)})}onFlagsChanged(e){this.B.forEach(t=>{t.type===hn&&t.method(e)})}onFlagChanged(e,t){this.B.forEach(r=>{r.type===fn&&r.method(e,t)})}onIdentityChanged(e){this.B.forEach(t=>{t.type===gn&&t.method(e)})}},_a=class{constructor(e){this.t=e,this.n=new Map}on(e,t){var r,n;if(typeof e!="string"){(r=this.t)==null||r.warn("Only string event names are supported.");return}this.n.has(e)?(n=this.n.get(e))==null||n.push(t):this.n.set(e,[t])}off(e,t){let r=this.n.get(e);if(r){if(t){let n=r.filter(i=>i!==t);n.length===0?this.n.delete(e):this.n.set(e,n);return}this.n.delete(e)}}bn(e,t,...r){var n;try{e(...r)}catch(i){(n=this.t)==null||n.error(`Encountered error invoking handler for "${t}", detail: "${i}"`)}}emit(e,...t){let r=this.n.get(e);r==null||r.forEach(n=>this.bn(n,e,...t))}eventNames(){return[...this.n.keys()]}listenerCount(e){var t,r;return(r=(t=this.n.get(e))==null?void 0:t.length)!=null?r:0}};function Wa(e,t,r){let n=t.info.sdkData(),i;r.applicationInfo&&(r.applicationInfo.id&&(i=i!=null?i:{},i.id=r.applicationInfo.id),r.applicationInfo.version&&(i=i!=null?i:{},i.version=r.applicationInfo.version),r.applicationInfo.name&&(i=i!=null?i:{},i.name=r.applicationInfo.name),r.applicationInfo.versionName&&(i=i!=null?i:{},i.versionName=r.applicationInfo.versionName));let a={name:n.userAgentBase,version:n.version};n.wrapperName&&(a.wrapperName=n.wrapperName),n.wrapperVersion&&(a.wrapperVersion=n.wrapperVersion);let s={sdk:a,[r.credentialType]:e};return i&&(s.application=i),s}var{ClientMessages:fr,ErrorKinds:gr}=B,Za=5,Ya=class{constructor(e,t,r,n,i,a){var s,o;if(this.sdkKey=e,this.autoEnvAttributes=t,this.platform=r,this.u=ma(),this.Tt=15,this.T=new cr(!1),this.lt=new cr(!0),this.Mt=!1,this.Dn=Ji(),this.we=!1,!e)throw new Error("You must configure the client with a client-side SDK key");if(!r.encoding)throw new Error("Platform must implement Encoding because btoa is required.");this.e=new ua(n,a),this.logger=this.e.logger,this.we=(s=a==null?void 0:a.requiresStart)!=null?s:!1,this.initialContext=a==null?void 0:a.initialContext,this.Ee=Ci(this.sdkKey,this.platform.info,this.e.tags,this.e.serviceEndpoints.includeAuthorizationHeader,this.e.userAgentHeaderName),this.F=new Ta(this.platform,e,this.e.maxCachedContexts,(o=this.e.disableCache)!=null?o:!1,this.e.logger),this.C=xa(e,this.e,r),this.E=Ra(e,this.e,r,this.Ee,this.C),this.emitter=new _a,this.emitter.on("error",(u,d)=>{this.logger.error(`error: ${d}, context: ${JSON.stringify(u)}`)}),this.F.on((u,d,c)=>{this.Sn(d,c);let h=le.toLDContext(u);this.emitter.emit("change",h,d),d.forEach(g=>{this.emitter.emit(`change:${g}`,h)})}),this.dataManager=i(this.F,this.e,this.Ee,this.emitter,this.C),this.isFDv2=!!this.e.dataSystem,this.dataSystemConfig=this.e.dataSystem;let l=[...this.e.hooks];if(this.environmentMetadata=Wa(this.sdkKey,this.platform,this.e),this.e.getImplementationHooks(this.environmentMetadata).forEach(u=>{l.push(u)}),this.R=new za(this.logger,l),this.Y=new Ga(this.e.inspectors,this.logger),this.Y.hasInspectors()&&this.R.addHook(Ua(this.Y)),n.cleanOldPersistentData&&a!=null&&a.getLegacyStorageKeys&&this.platform.storage)try{this.logger.debug("Cleaning old persistent data."),Promise.all(a.getLegacyStorageKeys().map(u=>{var d;return(d=this.platform.storage)==null?void 0:d.clear(u)})).catch(u=>{this.logger.error(`Error cleaning old persistent data: ${u}`)}).finally(()=>{this.logger.debug("Cleaned old persistent data.")})}catch(u){this.logger.error(`Error cleaning old persistent data: ${u}`)}}allFlags(){return Object.entries(this.F.getAll()).reduce((e,[t,r])=>(r.flag!==null&&r.flag!==void 0&&!r.flag.deleted&&(e[t]=r.flag.value),e),{})}async close(){var e;await this.flush(),(e=this.E)==null||e.close(),this.dataManager.close(),this.logger.debug("Closed event processor and data source.")}async flush(){var e;try{await((e=this.E)==null?void 0:e.flush()),this.logger.debug("Successfully flushed event processor.")}catch(t){return this.logger.error(`Error flushing event processor: ${t}.`),{error:t,result:!1}}return{result:!0}}getContext(){return this.u.hasContext()?zr(this.u.getUnwrappedContext()):void 0}getInternalContext(){return this.u.getContext()}presetFlags(e){this.F.presetFlags(e)}start(e){var t,r;if(this.initializeResult)return Promise.resolve(this.initializeResult);if(this.startPromise)return this.startPromise;if(!this.initialContext)return this.logger.error("Initial context not set"),Promise.resolve({status:"failed",error:new Error("Initial context not set")});let n=q(k({},(t=e==null?void 0:e.identifyOptions)!=null?t:{}),{sheddable:!1});if(e!=null&&e.bootstrap&&!n.bootstrap&&(n.bootstrap=e.bootstrap),n.bootstrap)try{n.bootstrapParsed||(n.bootstrapParsed=an(this.logger,n.bootstrap)),n.bootstrapParsed&&this.presetFlags(n.bootstrapParsed)}catch(i){this.logger.error("Failed to bootstrap data",i)}return this.initializedPromise||(this.initializedPromise=new Promise(i=>{this.initResolve=i})),this.startPromise=this.$t(this.initializedPromise,(r=e==null?void 0:e.timeout)!=null?r:5,"start"),this.identifyResult(this.initialContext,n),this.startPromise}async identify(e,t){let r=await this.identifyResult(e,t);if(r.status==="error")throw r.error;if(r.status==="timeout"){let n=new jr(`identify timed out after ${r.timeout} seconds.`);throw this.logger.error(n.message),n}}async identifyResult(e,t){var r,n;if(this.we&&!this.startPromise)return this.logger.error("The client must be started before a context can be identified. Call start() prior to identifying a context."),{status:"error",error:new Error("Identify called before start")};let i=(r=t==null?void 0:t.timeout)!=null?r:Za,a=(t==null?void 0:t.timeout)===void 0&&(t==null?void 0:t.noTimeout)===!0;i>this.Tt&&this.logger.warn(`The identify function was called with a timeout greater than ${this.Tt} seconds. We recommend a timeout of less than ${this.Tt} seconds.`);let s=this.Dn.execute({before:async()=>{let l=await Ca(e,this.platform);this.autoEnvAttributes===Ve.Enabled&&(l=await va(l,this.platform,this.e));let u=le.fromLDContext(l);if(u.valid){let d=this.R.identify(l,t==null?void 0:t.timeout);return{context:l,checkedContext:u,afterIdentify:d}}return{context:l,checkedContext:u}},execute:async l=>{var u;let{context:d,checkedContext:c}=l;if(!c.valid){let w=new Error("Context was unspecified or had no key");return this.emitter.emit("error",d,w),Promise.reject(w)}this.u.set(d,c),(u=this.E)==null||u.sendEvent(this.T.identifyEvent(c));let{identifyPromise:h,identifyResolve:g,identifyReject:D}=this.u.newIdentificationPromise();return this.logger.debug(`Identifying ${JSON.stringify(c)}`),await this.dataManager.identify(g,D,c,t),h},after:async(l,u)=>{var d,c,h;l.status==="complete"?(d=u==null?void 0:u.afterIdentify)==null||d.call(u,{status:"completed"}):l.status==="shed"?(c=u==null?void 0:u.afterIdentify)==null||c.call(u,{status:"shed"}):l.status==="error"&&((h=u==null?void 0:u.afterIdentify)==null||h.call(u,{status:"error"}))}},(n=t==null?void 0:t.sheddable)!=null?n:!1).then(l=>{if(l.status==="error"){let d={status:"error",error:l.error};return this.maybeSetInitializationResult({status:"failed",error:l.error}),d}if(l.status==="shed")return{status:"shed"};let u={status:"completed"};return this.maybeSetInitializationResult({status:"complete"}),u});if(a)return s;let o=new Promise(l=>{setTimeout(()=>{l({status:"timeout",timeout:i})},i*1e3)});return Promise.race([s,o])}maybeSetInitializationResult(e){this.initializeResult===void 0&&(this.initializeResult=e,this.emitter.emit("ready"),e.status==="complete"&&this.emitter.emit("initialized"),this.initResolve&&(this.initResolve(e),this.initResolve=void 0))}waitForInitialization(e){var t;let r=(t=e==null?void 0:e.timeout)!=null?t:5;return this.initializeResult?Promise.resolve(this.initializeResult):this.initializedPromise?this.$t(this.initializedPromise,r):(this.initializedPromise||(this.initializedPromise=new Promise(n=>{this.initResolve=n})),this.$t(this.initializedPromise,r))}$t(e,t,r="waitForInitialization"){let n=Vr(t,r);return Promise.race([e.then(i=>(n.cancel(),i)),n.promise.then(()=>({status:"complete"})).catch(()=>({status:"timeout"}))]).catch(i=>{var a;return(a=this.logger)==null||a.error(i.message),{status:"failed",error:i}})}on(e,t){this.emitter.on(e,t)}off(e,t){this.emitter.off(e,t)}track(e,t,r){var n,i;if(!this.u.hasValidContext()){this.logger.warn(fr.MissingContextKeyNoEvent);return}r!==void 0&&!p.Number.is(r)&&((n=this.logger)==null||n.warn(fr.invalidMetricValue(typeof r))),(i=this.E)==null||i.sendEvent(this.e.trackEventModifier(this.T.customEvent(e,this.u.getContext(),t,r))),this.R.afterTrack({key:e,context:this.u.getUnwrappedContext(),data:t,metricValue:r})}dt(e,t,r,n){var i,a,s,o,l;let u=this.u.hasContext();u||(i=this.logger)==null||i.warn("Flag evaluation called before client is fully initialized, data from this evaulation could be stale.");let d=this.u.getContext(),c=this.F.get(e);if(c===void 0||c.flag.deleted){let v=t!=null?t:null;return(a=this.logger)==null||a.warn(`Unknown feature flag "${e}"; returning default value ${v}.`),u&&((s=this.E)==null||s.sendEvent(this.T.unknownFlagEvent(e,v,d))),lr(gr.FlagNotFound,t)}let{reason:h,value:g,variation:D,prerequisites:w}=c.flag;if(n){let[v,m]=n(g);if(!v){u&&((o=this.E)==null||o.sendEvent(r.evalEventClient(e,t,t,c.flag,d,h)));let S=new ki(`Wrong type "${m}" for feature flag "${e}"; returning default value`);return this.emitter.emit("error",this.u.getUnwrappedContext(),S),lr(gr.WrongType,t)}}let f=ur(g,D,h);return g==null&&(this.logger.debug("Result value is null. Providing default value."),f.value=t),w==null||w.forEach(v=>{this.dt(v,void 0,this.T)}),u&&((l=this.E)==null||l.sendEvent(r.evalEventClient(e,g,t,c.flag,d,h))),f}variation(e,t){let{value:r}=this.R.withEvaluation(e,this.u.getUnwrappedContext(),t,()=>this.dt(e,t,this.T));return r}variationDetail(e,t){return this.R.withEvaluation(e,this.u.getUnwrappedContext(),t,()=>this.dt(e,t,this.lt))}H(e,t,r,n){return this.R.withEvaluation(e,this.u.getUnwrappedContext(),t,()=>this.dt(e,t,r,n))}boolVariation(e,t){return this.H(e,t,this.T,r=>[p.Boolean.is(r),p.Boolean.getType()]).value}jsonVariation(e,t){return this.variation(e,t)}numberVariation(e,t){return this.H(e,t,this.T,r=>[p.Number.is(r),p.Number.getType()]).value}stringVariation(e,t){return this.H(e,t,this.T,r=>[p.String.is(r),p.String.getType()]).value}boolVariationDetail(e,t){return this.H(e,t,this.lt,r=>[p.Boolean.is(r),p.Boolean.getType()])}numberVariationDetail(e,t){return this.H(e,t,this.lt,r=>[p.Number.is(r),p.Number.getType()])}stringVariationDetail(e,t){return this.H(e,t,this.lt,r=>[p.String.is(r),p.String.getType()])}jsonVariationDetail(e,t){return this.variationDetail(e,t)}addHook(e){this.R.addHook(e)}setEventSendingEnabled(e,t){var r,n,i,a;this.Mt!==e&&(this.Mt=e,e?(this.logger.debug("Starting event processor"),(r=this.E)==null||r.start()):t?((n=this.logger)==null||n.debug("Flushing event processor before disabling."),this.flush().then(()=>{var s,o;this.Mt||((s=this.logger)==null||s.debug("Stopping event processor."),(o=this.E)==null||o.close())})):((i=this.logger)==null||i.debug("Stopping event processor."),(a=this.E)==null||a.close()))}sendEvent(e){var t;(t=this.E)==null||t.sendEvent(e)}getDebugOverrides(){var e,t;return(t=(e=this.F).getDebugOverride)==null?void 0:t.call(e)}Sn(e,t){if(!this.Y.hasInspectors())return;let r={};e.forEach(n=>{let i=this.F.get(n);if(i!=null&&i.flag&&!i.flag.deleted){let{reason:a,value:s,variation:o}=i.flag;r[n]=ur(s,o,a)}else r[n]={value:void 0,variationIndex:null}}),t==="init"?this.Y.onFlagsChanged(r):t==="patch"&&Object.entries(r).forEach(([n,i])=>{this.Y.onFlagChanged(n,i)})}};function Qa(e,t,r){r.forEach(n=>{var i;try{(i=n.registerDebug)==null||i.call(n,t)}catch(a){e.error(`Exception thrown registering plugin ${B.safeGetName(e,n)}.`)}})}function pr(e){return{polling:()=>({pathGet(t,r){return`/sdk/evalx/${e}/contexts/${ze(r,t)}`},pathReport(t,r){return`/sdk/evalx/${e}/context`},pathPost(t,r){throw new Error("Post for FDv1 unsupported.")},pathPing(t,r){throw new Error("Ping for polling unsupported.")}}),streaming:()=>({pathGet(t,r){return`/eval/${e}/${ze(r,t)}`},pathReport(t,r){return`/eval/${e}`},pathPost(t,r){throw new Error("Post for FDv1 unsupported.")},pathPing(t,r){return`/ping/${e}`}})}}function Xa(){return{polling:()=>({pathGet(e,t){return`/sdk/poll/eval/${ze(t,e)}`},pathReport(e,t){throw new Error("Report for FDv2 unsupported.")},pathPost(e,t){return"/sdk/poll/eval"},pathPing(e,t){throw new Error("Ping for polling unsupported.")}}),streaming:()=>({pathGet(e,t){return`/sdk/stream/eval/${ze(t,e)}`},pathReport(e,t){throw new Error("Report for FDv2 unsupported.")},pathPost(e,t){return"/sdk/stream/eval"},pathPing(e,t){throw new Error("Ping for streaming unsupported.")}})}}function es(e,t,r){return{async handlePut(n,i){r.debug(`Got PUT: ${Object.keys(i)}`);let a=Object.entries(i).reduce((s,[o,l])=>(s[o]={version:l.version,flag:l},s),{});await e.init(n,a),t.requestStateUpdate("VALID")},async handlePatch(n,i){r.debug(`Got PATCH ${JSON.stringify(i,null,2)}`),e.upsert(n,i.key,{version:i.version,flag:i})},async handleDelete(n,i){r.debug(`Got DELETE ${JSON.stringify(i,null,2)}`),e.upsert(n,i.key,{version:i.version,flag:q(k({},i),{deleted:!0,flagVersion:0,value:void 0,variation:0,trackEvents:!1})})},handleStreamingError(n){t.reportError(n.kind,n.message,n.code,n.recoverable)},handlePollingError(n){t.reportError(n.kind,n.message,n.status,n.recoverable)}}}function pn(e,t=()=>Date.now()){let r="CLOSED",n=t(),i;function a(){return{state:r,stateSince:n,lastError:i}}function s(o,l=!1){let u=o==="INTERRUPTED"&&r==="INITIALIZING"?"INITIALIZING":o,d=r!==u;d&&(r=u,n=t()),(d||l)&&e.emit("dataSourceStatus",a())}return{get status(){return a()},requestStateUpdate(o){s(o)},reportError(o,l,u,d=!1){i={kind:o,message:l,statusCode:u,time:t()},s(d?"INTERRUPTED":"CLOSED",!0)}}}function vr(e){e==null||e.debug("Poll completed after the processor was closed. Skipping processing.")}var ts=class{constructor(e,t,r,n,i){this.kn=e,this.Cn=t,this.In=r,this.m=n,this.t=i,this.h=!1}async be(){var e,t,r,n,i,a,s;if(this.h)return;let o=c=>{var h,g,D;(h=this.t)==null||h.error("Polling received invalid data"),(g=this.t)==null||g.debug(`Invalid JSON follows: ${c}`),(D=this.m)==null||D.call(this,new je(T.InvalidData,"Malformed JSON data in polling response"))};(e=this.t)==null||e.debug("Polling LaunchDarkly for feature flag updates");let l=Date.now();try{let c=await this.kn.requestPayload();try{if(this.h){vr(this.t);return}let h=JSON.parse(c);try{(t=this.In)==null||t.call(this,h)}catch(g){(r=this.t)==null||r.error(`Exception from data handler: ${g}`)}}catch(h){o(c)}}catch(c){if(this.h){vr(this.t);return}let h=c;if(h.status!==void 0&&!ke(h.status)){(n=this.t)==null||n.error(X(c,"polling request")),(i=this.m)==null||i.call(this,new je(T.ErrorResponse,h.message,h.status));return}(a=this.t)==null||a.error(X(c,"polling request","will retry"))}let u=Date.now()-l,d=Math.max(this.Cn*1e3-u,0);(s=this.t)==null||s.debug("Elapsed: %d ms, sleeping for %d ms",u,d),this.Ft=setTimeout(()=>{this.be()},d)}start(){this.be()}stop(){this.Ft&&(clearTimeout(this.Ft),this.Ft=void 0),this.h=!0}close(){this.stop()}},rs=(e,t,r,n)=>{r==null||r.error(`Stream received invalid data in "${e}" message`),r==null||r.debug(`Invalid JSON follows: ${t}`),n==null||n(new ut(T.InvalidData,"Malformed JSON data in event stream"))};function ns(e,t){t==null||t.debug(`Received ${e} event after processor was closed. Skipping processing.`)}function mr(e){e==null||e.debug("Ping completed after processor was closed. Skipping processing.")}var is=class{constructor(e,t,r,n,i,a,s,o,l){var u;this.Pn=e,this.Rt=t,this.n=r,this.z=n,this.xn=a,this.C=s,this.m=o,this.t=l,this.h=!1;let d;t.useReport&&!n.getEventSourceCapabilities().customMethod?d=t.paths.pathPing(i,e):d=t.useReport?t.paths.pathReport(i,e):t.paths.pathGet(i,e);let c=[...(u=t.queryParameters)!=null?u:[]];this.Rt.withReasons&&c.push({key:"withReasons",value:"true"}),this.z=n,this.De=k({},t.baseHeaders),this.t=l,this.Ln=Fr(t.serviceEndpoints,d,c)}Se(){this.ht=Date.now()}Nt(e){this.ht&&this.C&&this.C.recordStreamInit(this.ht,!e,Date.now()-this.ht),this.ht=void 0}An(e){var t,r,n;return Et(e)?((n=this.t)==null||n.warn(X(e,"streaming request","will retry")),this.Nt(!1),this.Se(),!0):(this.Nt(!1),(t=this.m)==null||t.call(this,new ut(T.ErrorResponse,e.message,e.status,!1)),(r=this.t)==null||r.error(X(e,"streaming request")),!1)}start(){this.Se();let e;this.Rt.useReport?(this.De["content-type"]="application/json",e={method:"REPORT",body:this.Pn}):e={};let t=this.z.createEventSource(this.Ln,q(k({headers:this.De},e),{errorFilter:r=>this.An(r),initialRetryDelayMillis:this.Rt.initialRetryDelayMillis,readTimeoutMillis:300*1e3,retryResetIntervalMillis:60*1e3}));this.ke=t,t.onclose=()=>{var r;(r=this.t)==null||r.info("Closed LaunchDarkly stream connection")},t.onerror=()=>{},t.onopen=()=>{var r;(r=this.t)==null||r.info("Opened LaunchDarkly stream connection")},t.onretrying=r=>{var n;(n=this.t)==null||n.info(`Will retry stream connection in ${r.delayMillis} milliseconds`)},this.n.forEach(({deserializeData:r,processJson:n},i)=>{t.addEventListener(i,a=>{var s,o;if(this.h){ns(i,this.t);return}if((s=this.t)==null||s.debug(`Received ${i} event`),a!=null&&a.data){this.Nt(!0);let{data:l}=a,u=r(l);if(!u){rs(i,l,this.t,this.m);return}n(u)}else(o=this.m)==null||o.call(this,new ut(T.InvalidData,"Unexpected payload from event stream"))})}),t.addEventListener("ping",async()=>{var r,n,i,a,s,o,l;(r=this.t)==null||r.debug("Got PING, going to poll LaunchDarkly for feature flag updates");try{let u=await this.xn.requestPayload();try{if(this.h){mr(this.t);return}let d=JSON.parse(u);try{(n=this.n.get("put"))==null||n.processJson(d)}catch(c){(i=this.t)==null||i.error(`Exception from data handler: ${c}`)}}catch(d){(a=this.t)==null||a.error("Polling after ping received invalid data"),(s=this.t)==null||s.debug(`Invalid JSON follows: ${u}`),(o=this.m)==null||o.call(this,new je(T.InvalidData,"Malformed JSON data in ping polling response"))}}catch(u){if(this.h){mr(this.t);return}let d=u;(l=this.m)==null||l.call(this,new je(T.ErrorResponse,d.message,d.status))}})}stop(){var e;(e=this.ke)==null||e.close(),this.ke=void 0,this.h=!0}close(){this.stop()}},as=class{constructor(e,t,r,n,i,a,s,o,l){this.platform=e,this.flagManager=t,this.credential=r,this.config=n,this.getPollingPaths=i,this.getStreamingPaths=a,this.baseHeaders=s,this.emitter=o,this.diagnosticsManager=l,this.closed=!1,this.logger=n.logger,this.dataSourceStatusManager=pn(o),this.q=es(t,this.dataSourceStatusManager,this.config.logger)}setConnectionParams(e){this.On=e}createPollingProcessor(e,t,r,n,i){let a=new ts(r,this.config.pollInterval,async s=>{await this.q.handlePut(t,s),n==null||n()},s=>{this.emitter.emit("error",e,s),this.q.handlePollingError(s),i==null||i(s)},this.logger);this.updateProcessor=this.Ce(a,this.dataSourceStatusManager)}createStreamingProcessor(e,t,r,n,i){var a;let s=new is(JSON.stringify(e),{credential:this.credential,serviceEndpoints:this.config.serviceEndpoints,paths:this.getStreamingPaths(),baseHeaders:this.baseHeaders,initialRetryDelayMillis:this.config.streamInitialReconnectDelay*1e3,withReasons:this.config.withReasons,useReport:this.config.useReport,queryParameters:(a=this.On)==null?void 0:a.queryParameters},this.createStreamListeners(t,n),this.platform.requests,this.platform.encoding,r,this.diagnosticsManager,o=>{this.emitter.emit("error",e,o),this.q.handleStreamingError(o),i==null||i(o)},this.logger);this.updateProcessor=this.Ce(s,this.dataSourceStatusManager)}createStreamListeners(e,t){let r=new Map;return r.set("put",{deserializeData:JSON.parse,processJson:async n=>{await this.q.handlePut(e,n),t==null||t()}}),r.set("patch",{deserializeData:JSON.parse,processJson:async n=>{this.q.handlePatch(e,n)}}),r.set("delete",{deserializeData:JSON.parse,processJson:async n=>{this.q.handleDelete(e,n)}}),r}Ce(e,t){return{start:()=>{t.requestStateUpdate("INITIALIZING"),e.start()},stop:()=>{e.stop(),t.requestStateUpdate("CLOSED")},close:()=>{e.close(),t.requestStateUpdate("CLOSED")}}}close(){var e;(e=this.updateProcessor)==null||e.close(),this.closed=!0}};function ss(e,t){return Object.entries(e).every(([r,n])=>n===void 0||t[r]===n)}var os={foreground:"foregroundMode",background:"backgroundMode"};function ls(e,t){let r=e.find(n=>ss(n.conditions,t));if(r){let{mode:n}=r;return typeof n=="object"?t[os[n.configured]]:n}return t.foregroundMode}var us=[{conditions:{networkAvailable:!1},mode:"offline"},{conditions:{},mode:{configured:"foreground"}}];function ue(e,t,r,n){return{type:"changeSet",payload:e,fdv1Fallback:t,environmentId:r,freshness:n}}function V(e,t){return{type:"status",state:"interrupted",errorInfo:e,fdv1Fallback:t}}function ee(){return{type:"status",state:"shutdown",fdv1Fallback:!1}}function Ce(e,t){return{type:"status",state:"terminal_error",errorInfo:e,fdv1Fallback:t}}function vn(e,t){return{type:"status",state:"goodbye",reason:e,fdv1Fallback:t}}function ve(e){return{kind:T.ErrorResponse,message:`Unexpected status code: ${e}`,statusCode:e,time:Date.now()}}function Ke(e){return{kind:T.NetworkError,message:e,time:Date.now()}}function ce(e){return{kind:T.InvalidData,message:e,time:Date.now()}}function pt(e){return{kind:T.Unknown,message:e,time:Date.now()}}function cs(e){let t=e,{version:r}=t;return yt(t,["version"])}async function ds(e){let{storage:t,crypto:r,environmentNamespace:n,context:i,logger:a}=e;if(!t)return a==null||a.debug("No storage available for cache initializer"),ue({version:0,type:"none",updates:[]},!1);let s=await on(t,r,n,i,a);if(!s)return a==null||a.debug("Cache miss for context"),ue({version:0,type:"none",updates:[]},!1);let o={version:0,type:"full",updates:Object.entries(s.flags).map(([u,d])=>({kind:"flag-eval",key:u,version:d.version,object:cs(d)}))},l=await Oa(t,r,n,i,a);return a==null||a.debug("Loaded cached flag evaluations via cache initializer"),ue(o,!1,void 0,l)}function hs(e){return{isCache:!0,create(t){let r,n=new Promise(i=>{r=i});return{async run(){return Promise.race([n,ds(e)])},close(){r==null||r(ee()),r=void 0}}}}}function mn(e,t,r,n,i,a,s,o){let l=k({},a),u,d="GET",c;return o?(d="POST",l["content-type"]="application/json",u=e,c=r.pathPost(i,e)):c=r.pathGet(i,e),{async poll(h){let g=[...s!=null?s:[]];h&&g.push({key:"basis",value:h});let D=Nr(t,c,g),w=await n.fetch(D,{method:d,headers:l,body:u}),f=w.status===304?null:await w.text();return{status:w.status,headers:w.headers,body:f}}}}function yn(e){return e}function fs(e){if(e.deleted)return{version:e.version,flag:{version:e.version,deleted:!0,value:void 0,trackEvents:!1}};let t=e.object;return{version:e.version,flag:q(k({},t),{version:e.version})}}function gs(e){let t={};return e.forEach(r=>{r.kind==="flag-eval"&&(t[r.key]=fs(r))}),t}function ps(e){let t=e.get("x-ld-fd-fallback");return t!==null&&t.toLowerCase()==="true"}function vs(e){var t;return(t=e.get("x-ld-envid"))!=null?t:void 0}function ms(e,t,r,n){let i=B.createProtocolHandler({"flag-eval":yn},n),a;if(e.forEach(o=>{if(a)return;let l=i.processEvent(o);switch(l.type){case"payload":a=ue(l.payload,t,r);break;case"goodbye":a=vn(l.reason,t);break;case"serverError":{let u=pt(l.reason);n==null||n.error(`Server error during polling: ${l.reason}`),a=V(u,t);break}case"error":{if(l.kind==="MISSING_PAYLOAD"||l.kind==="PROTOCOL_ERROR"){let u=ce(l.message);n==null||n.warn(`Protocol error during polling: ${l.message}`),a=V(u,t)}else n==null||n.warn(l.message);break}}}),a)return a;let s=pt("Unexpected end of polling response");return n==null||n.error("Unexpected end of polling response"),V(s,t)}async function Pt(e,t,r){var n;let i=!1,a;try{let s=await e.poll(t);if(i=ps(s.headers),a=vs(s.headers),s.status===304)return ue({version:0,type:"none",updates:[]},i,a);if(s.status<200||s.status>=300){let l=ve(s.status);return r==null||r.error(`Polling request failed with HTTP error: ${s.status}`),s.status<=0||ke(s.status)?V(l,i):Ce(l,i)}if(!s.body){let l=ce("Empty response body");return r==null||r.error("Polling request received empty response body"),V(l,i)}let o;try{o=JSON.parse(s.body)}catch(l){let u=ce("Malformed JSON data in polling response");return r==null||r.error("Polling request received malformed data"),V(u,i)}if(!Array.isArray(o.events)){let l=ce("Invalid polling response: missing or invalid events array");return r==null||r.error("Polling response does not contain a valid events array"),V(l,i)}return ms(o.events,i,a,r)}catch(s){let o=(n=s==null?void 0:s.message)!=null?n:String(s);r==null||r.error(`Polling request failed with network error: ${o}`);let l=Ke(o);return V(l,i)}}var it=Symbol("shutdown");function ys(e,t,r){let n,i=new Promise(a=>{n=a});return{async run(){let a=r(),s;for(let l=0;l<=3;l+=1){let u=await Promise.race([i,Pt(e,a,t)]);if(u===it)return ee();if(u.type==="changeSet"||u.state!=="interrupted")return u;if(s=u,l<3&&(t==null||t.warn(`Recoverable polling error (attempt ${l+1}/4), retrying in 1000ms...`),await Promise.race([i,Dt(1e3)])===it))return ee()}let o=s;return Ce(o.errorInfo,o.fdv1Fallback)},close(){n==null||n(it),n=void 0}}}function $t(){let e=[],t=[];return{put(r){let n=t.shift();n?n(r):e.push(r)},take(){return e.length>0?Promise.resolve(e.shift()):new Promise(r=>{t.push(r)})}}}function ws(e,t,r,n){let i=$t(),a,s=new Promise(d=>{a=d}),o,l=!1;async function u(){if(l)return;let d=Date.now();try{let c=await Pt(e,r(),t);if(l)return;let h=!1;if(c.type==="status")switch(c.state){case"terminal_error":l=!0,h=!0;break;case"interrupted":case"goodbye":break;case"shutdown":break;default:break}h?(a==null||a(c),a=void 0):i.put(c)}catch(c){t==null||t.debug(`Polling error: ${c}`)}if(!l){let c=Date.now()-d,h=Math.min(Math.max(n-c,0),n);o=setTimeout(()=>{u()},h)}}return u(),{async next(){return Promise.race([s,i.take()])},close(){l=!0,o!==void 0&&(clearTimeout(o),o=void 0),a==null||a(ee()),a=void 0}}}function vt(e,t){var r,n;let i=(r=t==null?void 0:t.isFDv1Fallback)!=null?r:!1,a=(n=t==null?void 0:t.initialState)!=null?n:i?"blocked":"available";return{factory:e,isFDv1Fallback:i,state:a}}function bs(e,t,r){let n,i=-1,a=-1,s=!1;function o(){n&&(n.close(),n=void 0)}function l(){return t.findIndex(u=>u.state==="available")}return{get isShutdown(){return s},getNextInitializerAndSetActive(){if(s||(i+=1,i>=e.length))return;o();let u=e[i].create(r);return n=u,u},getNextAvailableSynchronizerAndSetActive(){if(s||t.length===0)return;let u=0;for(;u<t.length;){a+=1,a>=t.length&&(a=0);let d=t[a];if(d.state==="available"){o();let c=d.factory.create(r);return n=c,c}u+=1}},blockCurrentSynchronizer(){a>=0&&a<t.length&&(t[a].state="blocked")},resetSourceIndex(){a=-1},fdv1Fallback(){t.forEach(u=>{u.state=u.isFDv1Fallback?"available":"blocked"}),a=-1},isPrimeSynchronizer(){return a===l()},getAvailableSynchronizerCount(){return t.filter(u=>u.state==="available").length},hasFDv1Fallback(){return t.some(u=>u.isFDv1Fallback)},close(){s=!0,o()}}}var ks=["server-intent","put-object","delete-object","payload-transferred","goodbye","error","heart-beat"];function Es(e){let t=$t(),r=B.createProtocolHandler({"flag-eval":yn},e.logger),n=k({},e.headers);function i(){var f;let v=[...e.parameters],m=(f=e.selectorGetter)==null?void 0:f.call(e);return m&&v.push({key:"basis",value:encodeURIComponent(m)}),Fr(e.serviceEndpoints,e.streamUriPath,v)}let a,s,o=!1,l=!1,u=!1;function d(){s=Date.now()}function c(f){s&&e.diagnosticsManager&&e.diagnosticsManager.recordStreamInit(s,!f,Date.now()-s),s=void 0}function h(f){switch(f.type){case"payload":c(!0),t.put(ue(f.payload,o));break;case"goodbye":t.put(vn(f.reason,o));break;case"serverError":t.put(V(pt(f.reason),o));break;case"error":(f.kind==="MISSING_PAYLOAD"||f.kind==="PROTOCOL_ERROR")&&t.put(V(ce(f.message),o));break}}function g(f){var v,m,S,E,R,I;return((v=f.headers)==null?void 0:v["x-ld-fd-fallback"])==="true"?(o=!0,c(!1),t.put(Ce(ve((m=f.status)!=null?m:0),!0)),!1):Et(f)?((R=e.logger)==null||R.warn(X(f,"streaming request","will retry")),c(!1),d(),t.put(V(ve((I=f.status)!=null?I:0),o)),!0):((S=e.logger)==null||S.error(X(f,"streaming request")),c(!1),t.put(Ce(ve((E=f.status)!=null?E:0),o)),!1)}function D(f){ks.forEach(v=>{f.addEventListener(v,m=>{var S,E,R,I,y;if(u){(S=e.logger)==null||S.debug(`Received ${v} event after processor was closed. Skipping.`);return}if(!(m!=null&&m.data)){v!=="error"&&((E=e.logger)==null||E.warn(`Event from EventStream missing data for "${v}".`));return}(R=e.logger)==null||R.debug(`Received ${v} event`);let C;try{C=JSON.parse(m.data)}catch(j){(I=e.logger)==null||I.error(`Stream received data that was unable to be parsed in "${v}" message`),(y=e.logger)==null||y.debug(`Data follows: ${m.data}`),t.put(V(ce("Malformed JSON in EventStream"),o));return}let M=r.processEvent({event:v,data:C});h(M)})})}function w(f){f.addEventListener("ping",async()=>{var v,m,S,E,R,I,y;if(u){(v=e.logger)==null||v.debug("Ping received after processor was closed. Skipping.");return}if((m=e.logger)==null||m.debug("Got PING, going to poll LaunchDarkly for feature flag updates"),!e.pingHandler){(S=e.logger)==null||S.warn("Ping event received but no ping handler configured.");return}try{let C=await e.pingHandler.handlePing();if(u){(E=e.logger)==null||E.debug("Ping completed after processor was closed. Skipping processing.");return}t.put(C)}catch(C){if(u)return;(I=e.logger)==null||I.error(`Error handling ping: ${(R=C==null?void 0:C.message)!=null?R:C}`),t.put(V(Ke((y=C==null?void 0:C.message)!=null?y:"Error during ping poll"),o))}})}return{start(){if(l||u)return;l=!0,d();let f=e.requests.createEventSource(i(),{headers:n,errorFilter:v=>g(v),initialRetryDelayMillis:e.initialRetryDelayMillis,readTimeoutMillis:300*1e3,retryResetIntervalMillis:60*1e3,urlBuilder:i});a=f,D(f),w(f),f.onclose=()=>{var v;(v=e.logger)==null||v.info("Closed LaunchDarkly stream connection")},f.onerror=v=>{var m;u||v&&typeof v.status=="number"||t.put(V(Ke((m=v==null?void 0:v.message)!=null?m:"IO Error"),o))},f.onopen=()=>{var v;(v=e.logger)==null||v.info("Opened LaunchDarkly stream connection"),r.reset()},f.onretrying=v=>{var m;(m=e.logger)==null||m.info(`Will retry stream connection in ${v.delayMillis} milliseconds`)}},close(){u||(u=!0,a==null||a.close(),a=void 0,t.put(ee()))},takeResult(){return t.take()}}}function Ds(e){let t=!1,r,n=new Promise(i=>{r=i});return{run(){return t?Promise.resolve(ee()):(e.start(),Promise.race([e.takeResult().then(i=>(e.close(),i)),n]))},close(){t||(t=!0,e.close(),r==null||r(ee()),r=void 0)}}}function Cs(e){let t=!1,r=!1,n,i=new Promise(a=>{n=a});return{next(){return r?Promise.resolve(ee()):(t||(t=!0,e.start()),Promise.race([e.takeResult(),i]))},close(){r||(r=!0,e.close(),n==null||n(ee()),n=void 0)}}}function Ss(e,t,r){return{handlePing:()=>Pt(e,t(),r)}}function wn(e,t){var r,n;return!(t!=null&&t.pollingBaseUri)&&!(t!=null&&t.streamingBaseUri)?e.serviceEndpoints:new we((r=t.streamingBaseUri)!=null?r:e.serviceEndpoints.streaming,(n=t.pollingBaseUri)!=null?n:e.serviceEndpoints.polling,e.serviceEndpoints.events,e.serviceEndpoints.analyticsEventPath,e.serviceEndpoints.diagnosticEventPath,e.serviceEndpoints.includeAuthorizationHeader,e.serviceEndpoints.payloadFilterKey)}function mt(e,t){if(!(t!=null&&t.pollingBaseUri))return e.requestor;let r=wn(e,t);return mn(e.plainContextString,r,e.polling.paths,e.requests,e.encoding,e.baseHeaders,e.queryParams)}function yr(e,t,r){var n;let i=wn(t,e.endpoints),a=mt(t,e.endpoints),s=t.streaming.paths.pathGet(t.encoding,t.plainContextString);return Es({requests:t.requests,serviceEndpoints:i,streamUriPath:s,parameters:t.queryParams,selectorGetter:r,headers:t.baseHeaders,initialRetryDelayMillis:((n=e.initialReconnectDelay)!=null?n:t.streaming.initialReconnectDelaySeconds)*1e3,logger:t.logger,pingHandler:Ss(a,r,t.logger)})}function xs(){return{createInitializerFactory(e,t){switch(e.type){case"polling":{let r=mt(t,e.endpoints);return{create:n=>ys(r,t.logger,n)}}case"streaming":return{create:r=>Ds(yr(e,t,r))};case"cache":return hs({storage:t.storage,crypto:t.crypto,environmentNamespace:t.environmentNamespace,context:t.context,logger:t.logger});default:return}},createSynchronizerSlot(e,t){var r;switch(e.type){case"polling":{let n=((r=e.pollInterval)!=null?r:t.polling.intervalSeconds)*1e3,i=mt(t,e.endpoints);return vt({create:a=>ws(i,t.logger,a,n)})}case"streaming":return vt({create:n=>Cs(yr(e,t,n))});default:return}}}}function Rs(e){return{version:1,type:"full",updates:Object.entries(e).map(([t,r])=>{var n;return{kind:"flag",key:t,version:(n=r.version)!=null?n:1,object:r}})}}function Os(e,t,r){let n=$t(),i,a=new Promise(c=>{i=c}),s,o=!1,l=!1;function u(c){if(!o){let h=Date.now()-c,g=Math.min(Math.max(t-h,0),t);s=setTimeout(d,g)}}async function d(){if(o)return;r==null||r.debug("Polling FDv1 endpoint for feature flag updates");let c=Date.now();try{let h=await e.requestPayload();if(o)return;let g;try{let D=JSON.parse(h);g=Rs(D)}catch(D){r==null||r.error("FDv1 polling received malformed data"),n.put({type:"status",state:"interrupted",errorInfo:ce("Malformed data in FDv1 polling response"),fdv1Fallback:!1}),u(c);return}n.put(ue(g,!1))}catch(h){if(o)return;let g=h;if(g.status!==void 0&&!ke(g.status)){r==null||r.error(X(h,"FDv1 polling request")),o=!0,i==null||i(Ce(ve(g.status),!1)),i=void 0;return}r==null||r.warn(X(h,"FDv1 polling request","will retry")),n.put({type:"status",state:"interrupted",errorInfo:g.status?ve(g.status):Ke(g.message),fdv1Fallback:!1})}u(c)}return{next(){return l||(l=!0,d()),Promise.race([a,n.take()])},close(){o=!0,s!==void 0&&(clearTimeout(s),s=void 0),i==null||i(ee()),i=void 0}}}var bn=120*1e3,kn=300*1e3;function Is(e,t,r){let n=Vr(e/1e3,r);return{promise:n.promise.then(()=>new Promise(()=>{}),()=>t),cancel:n.cancel}}function En(e,t,r){let n,i,a=!1,s=new Promise(u=>{n=u});function o(){!i&&!a&&(i=Is(e,t,`${t} condition`),i.promise.then(u=>{i=void 0,n==null||n(u)}))}function l(){i==null||i.cancel(),i=void 0}return r||o(),{promise:s,inform(u){a||r==null||r(u,{start:o,cancel:l})},close(){a=!0,l()}}}function wr(e){return En(e,"fallback",(t,{start:r,cancel:n})=>{t.type==="changeSet"?n():t.type==="status"&&t.state==="interrupted"&&r()})}function Ps(e){return En(e,"recovery")}function br(e){return{promise:e.length===0?void 0:Promise.race(e.map(t=>t.promise)),inform(t){e.forEach(r=>r.inform(t))},close(){e.forEach(t=>t.close())}}}function $s(e,t,r=bn,n=kn){return e<=1?br([]):br(t?[wr(r)]:[wr(r),Ps(n)])}function Ls(e){let{initializerFactories:t,synchronizerSlots:r,dataCallback:n,statusManager:i,selectorGetter:a,logger:s,fallbackTimeoutMs:o=bn,recoveryTimeoutMs:l=kn}=e,u=!1,d=!1,c=!1,h,g,D=t.length>0&&t.every(y=>y.isCache===!0)&&r.length===0,w=bs(t,r,a);function f(){u||(u=!0,h==null||h(),h=void 0,g=void 0)}function v(y){n(y.payload),i.requestStateUpdate("VALID")}function m(y){y.errorInfo&&i.reportError(y.errorInfo.kind,y.errorInfo.message,y.errorInfo.statusCode,y.state==="interrupted")}function S(y){return y.fdv1Fallback&&w.hasFDv1Fallback()?(w.fdv1Fallback(),!0):!1}async function E(){var y,C;let M=!1;for(;!d;){let j=w.getNextInitializerAndSetActive();if(j===void 0)break;let O=await j.run();if(d)return;if(O.type==="changeSet"&&O.payload.type!=="none"){if(v(O),S(O)){c=!0;break}if(O.payload.state){f();return}c=!0}else if(O.type==="status"){switch(O.state){case"interrupted":case"terminal_error":s==null||s.warn(`Initializer failed: ${(C=(y=O.errorInfo)==null?void 0:y.message)!=null?C:"unknown error"}`),m(O),M=!0;break;case"shutdown":return}S(O)}}d||(D?(!c&&!M&&i.requestStateUpdate("VALID"),f()):c&&f())}async function R(){for(var y,C,M,j;!d;){let O=w.getNextAvailableSynchronizerAndSetActive();if(O===void 0){u||(g==null||g(new Error("All data sources exhausted without receiving data.")),h=void 0,g=void 0);return}let _=$s(w.getAvailableSynchronizerCount(),w.isPrimeSynchronizer(),o,l);_.promise&&(s==null||s.debug("Fallback condition active for current synchronizer."));let te=!0;try{for(;!d&&te;){let de=[O.next().then(P=>({source:"sync",value:P}))];_.promise!==void 0&&de.push(_.promise.then(P=>({source:"condition",value:P})));let he=await Promise.race(de);if(d)return;if(he.source==="condition"){let P=he.value;P==="fallback"?s==null||s.warn("Fallback condition fired, moving to next synchronizer."):P==="recovery"&&(s==null||s.info("Recovery condition fired, resetting to primary synchronizer."),w.resetSourceIndex()),te=!1}else{let P=he.value;if(_.inform(P),P.type==="changeSet")v(P),u||f();else if(P.type==="status")switch(P.state){case"interrupted":s==null||s.warn(`Synchronizer interrupted: ${(C=(y=P.errorInfo)==null?void 0:y.message)!=null?C:"unknown error"}`),m(P);break;case"terminal_error":s==null||s.error(`Synchronizer terminal error: ${(j=(M=P.errorInfo)==null?void 0:M.message)!=null?j:"unknown error"}`),m(P),w.blockCurrentSynchronizer(),te=!1;break;case"shutdown":return;case"goodbye":break;default:break}S(P)&&(te=!1)}}}finally{_.close()}}}async function I(){if(t.length===0&&r.length===0){i.requestStateUpdate("VALID"),f();return}await E(),d||await R()}return{start(){return new Promise((y,C)=>{h=y,g=C,i.requestStateUpdate("INITIALIZING"),I().then(()=>{u||(g==null||g(new Error("Data source closed before initialization completed.")),h=void 0,g=void 0)}).catch(M=>{u?s==null||s.error(`Orchestration error: ${M}`):(g==null||g(M instanceof Error?M:new Error(String(M))),h=void 0,g=void 0)})})},close(){d=!0,w.close()}}}var Ts=1e3;function Ms(e){let{initialState:t,onReconcile:r,debounceMs:n=Ts}=e,{networkState:i,lifecycleState:a,requestedMode:s}=t,o,l=!1;function u(){return{networkState:i,lifecycleState:a,requestedMode:s}}function d(){l||(o!==void 0&&clearTimeout(o),o=setTimeout(()=>{o=void 0,l||r(u())},n))}return{setNetworkState(c){i!==c&&(i=c,d())},setLifecycleState(c){a!==c&&(a=c,d())},setRequestedMode(c){s!==c&&(s=c,d())},close(){l=!0,o!==void 0&&(clearTimeout(o),o=void 0)}}}var K="[FDv2DataManagerBase]";function Fs(e){var t;let{platform:r,flagManager:n,config:i,baseHeaders:a,emitter:s,transitionTable:o,foregroundMode:l,backgroundMode:u,modeTable:d,sourceFactoryProvider:c,buildQueryParams:h,fdv1Endpoints:g,fallbackTimeoutMs:D,recoveryTimeoutMs:w}=e,{logger:f}=i,v=pn(s),m=Xa(),S=(t=i.dataSystem)!=null&&t.connectionModes?k(k({},d),i.dataSystem.connectionModes):d,E,R=l,I=l,y,C,M,j,O=!1,_=!1,te=!1,de,he="fresh",P,We,Nt=!1,A,re,Ie="available",Ee="foreground";function At(b){return S[b]}function Pn(){return{lifecycle:Ee,networkAvailable:Ie==="available",foregroundMode:I,backgroundMode:u!=null?u:"offline"}}function jt(){return P!==void 0?P:ls(o,Pn())}function Vt(){return We===!0?"streaming":We===!1?l==="streaming"?"one-shot":l:Nt?"streaming":l}function Ze(){I=Vt(),C==null||C.setRequestedMode(I)}function $n(b,x,W){var z,Z,Y,Pe,De;let $e=[];W&&b.initializers.filter($=>!(_&&$.type==="cache")).forEach($=>{let se=c.createInitializerFactory($,x);se?$e.push(se):f.warn(`${K} Unsupported initializer type '${$.type}'. It will be skipped.`)});let fe=[];if(b.synchronizers.forEach($=>{let se=c.createSynchronizerSlot($,x);se?fe.push(se):f.warn(`${K} Unsupported synchronizer type '${$.type}'. It will be skipped.`)}),g&&fe.length>0){let $=b.fdv1Fallback,se=((z=$==null?void 0:$.pollInterval)!=null?z:i.pollInterval)*1e3,Mn=(Z=$==null?void 0:$.endpoints)!=null&&Z.pollingBaseUri||(Y=$==null?void 0:$.endpoints)!=null&&Y.streamingBaseUri?new we((Pe=$.endpoints.streamingBaseUri)!=null?Pe:x.serviceEndpoints.streaming,(De=$.endpoints.pollingBaseUri)!=null?De:x.serviceEndpoints.polling,x.serviceEndpoints.events,x.serviceEndpoints.analyticsEventPath,x.serviceEndpoints.diagnosticEventPath,x.serviceEndpoints.includeAuthorizationHeader,x.serviceEndpoints.payloadFilterKey):x.serviceEndpoints,Fn=()=>ft(x.plainContextString,Mn,g.polling(),x.requests,x.encoding,x.baseHeaders,x.queryParams,i.withReasons,i.useReport),Nn={create:()=>Os(Fn(),se,f)};fe.push(vt(Nn,{isFDv1Fallback:!0}))}return{initializerFactories:$e,synchronizerSlots:fe}}function Ln(b){var x;f.debug(`${K} dataCallback: type=${b.type}, updates=${b.updates.length}, state=${b.state}`),E=b.state;let W=M;if(!W){f.warn(`${K} dataCallback called without an identified context.`);return}let z=gs((x=b.updates)!=null?x:[]);n.applyChanges(W,z,b.type).catch(Z=>{f.warn(`${K} Failed to persist flag cache: ${Z}`)}),he==="cached"&&!O&&A&&(O=!0,A(),A=void 0,re=void 0)}function Ye(b,x){if(!j){f.warn(`${K} Cannot create data source without factory context.`);return}let W=At(b),{initializerFactories:z,synchronizerSlots:Z}=$n(W,j,x);if(R=b,z.length===0&&Z.length===0){f.debug(`${K} Mode '${b}' has no sources. No data source created.`),!O&&A&&(O=!0,A(),A=void 0,re=void 0);return}y=Ls({initializerFactories:z,synchronizerSlots:Z,dataCallback:Ln,statusManager:v,selectorGetter:()=>E,logger:f,fallbackTimeoutMs:D,recoveryTimeoutMs:w}),y.start().then(()=>{O=!0,A&&(A(),A=void 0,re=void 0)}).catch(Y=>{re&&(re(Y instanceof Error?Y:new Error(String(Y))),A=void 0,re=void 0)})}function Tn(b){if(te||!j)return;Ie=b.networkState,Ee=b.lifecycleState,I=b.requestedMode;let x=jt();if(x===R){f.debug(`${K} Reconcile: mode unchanged (${x}). No action.`);return}f.debug(`${K} Reconcile: mode switching from '${R}' to '${x}'.`),y==null||y.close(),y=void 0,Ye(x,!E)}return{get configuredForegroundMode(){return l},async identify(b,x,W,z){if(te){f.debug(`${K} Identify called after close.`);return}y==null||y.close(),y=void 0,C==null||C.close(),C=void 0,E=void 0,O=!1,_=!1,he=z!=null&&z.waitForNetworkResults?"fresh":"cached",M=W,A=b,re=x;let Z=JSON.stringify(le.toLDContext(W)),Y=h(z);i.withReasons&&Y.push({key:"withReasons",value:"true"});let Pe=m.streaming(),De=m.polling(),$e=mn(Z,i.serviceEndpoints,De,r.requests,r.encoding,a,Y),fe=await tn(r.crypto,e.credential);if(te){f.debug(`${K} Identify aborted: closed during async setup.`);return}j={requestor:$e,requests:r.requests,encoding:r.encoding,serviceEndpoints:i.serviceEndpoints,baseHeaders:a,queryParams:Y,plainContextString:Z,logger:f,polling:{paths:De,intervalSeconds:i.pollInterval},streaming:{paths:Pe,initialReconnectDelaySeconds:i.streamInitialReconnectDelay},storage:r.storage,crypto:r.crypto,environmentNamespace:fe,context:W},I=Vt();let $=jt();f.debug(`${K} Identify: initial mode resolved to '${$}'.`),_=(z==null?void 0:z.bootstrap)!==void 0,_?(O=!0,v.requestStateUpdate("VALID"),A==null||A(),A=void 0,re=void 0,At($).synchronizers.length>0&&Ye($,!1)):Ye($,!0),C=Ms({initialState:{networkState:Ie,lifecycleState:Ee,requestedMode:I},onReconcile:Tn})},close(){te=!0,y==null||y.close(),y=void 0,C==null||C.close(),C=void 0,A=void 0,re=void 0},setNetworkState(b){Ie=b,C==null||C.setNetworkState(b)},setLifecycleState(b){b==="background"&&Ee!=="background"&&(de==null||de()),Ee=b,C==null||C.setLifecycleState(b)},setConnectionMode(b){P=b,b!==void 0?C==null||C.setRequestedMode(b):Ze()},getCurrentMode(){return R},setFlushCallback(b){de=b},setForcedStreaming(b){We=b,Ze()},setAutomaticStreamingState(b){Nt=b,Ze()}}}function Lt(){return typeof document!="undefined"}function He(){return typeof window!="undefined"}function Dn(e,t,r){return Lt()?(document.addEventListener(e,t,r),()=>{document.removeEventListener(e,t,r)}):()=>{}}function Cn(e,t,r){return He()?(window.addEventListener(e,t,r),()=>{window.removeEventListener(e,t,r)}):()=>{}}function Se(){return He()?window.location.href:""}function Ns(){return He()?window.location.search:""}function As(){return He()?window.location.hash:""}function js(){if(typeof crypto!="undefined")return crypto;throw Error("Access to a web crypto API is required")}function Vs(){return Lt()?document.visibilityState:"visibile"}function zs(e){if(Lt())return document.querySelectorAll(e)}var Us="[BrowserDataManager]",qs=class extends as{constructor(e,t,r,n,i,a,s,o,l,u){super(e,t,r,n,a,s,o,l,u),this.Bn=i,this.Z=void 0,this.Ut=!1,this.Z=i.streaming}I(e,...t){this.logger.debug(`${Us} ${e}`,...t)}async identify(e,t,r,n){if(this.closed){this.I("Identify called after data manager was closed.");return}this.context=r;let i=n;i!=null&&i.hash?this.setConnectionParams({queryParameters:[{key:"h",value:i.hash}]}):this.setConnectionParams(),this.zt=i==null?void 0:i.hash,i!=null&&i.bootstrap?this.Tn(r,i,e):(await this.flagManager.loadCached(r)&&this.I("Identify - Flags loaded from cache. Continuing to initialize via a poll."),await this.Mn(r,e,t)),this.Ie(),this.jt()}async $n(e){let t=JSON.stringify(le.toLDContext(e)),r=ft(t,this.config.serviceEndpoints,this.getPollingPaths(),this.platform.requests,this.platform.encoding,this.baseHeaders,[],this.config.withReasons,this.config.useReport,this.zt),n=3,i;for(let a=0;a<=n;a+=1)try{return await r.requestPayload()}catch(s){if(!Et(s))throw s;i=s,a<n&&(this.I(X(s,"initial poll request","will retry")),await Dt(1e3))}throw i}async Mn(e,t,r){var n,i;try{this.dataSourceStatusManager.requestStateUpdate(er.Initializing);let a=await this.$n(e);try{let s=this.createStreamListeners(e,t).get("put");s.processJson(s.deserializeData(a))}catch(s){this.dataSourceStatusManager.reportError(T.InvalidData,(n=s.message)!=null?n:"Could not parse poll response")}}catch(a){this.dataSourceStatusManager.reportError(T.NetworkError,(i=a.message)!=null?i:"unexpected network error",a.status),r(a)}}Tn(e,t,r){let{bootstrapParsed:n}=t;n||(n=an(this.logger,t.bootstrap)),this.flagManager.setBootstrap(e,n),this.dataSourceStatusManager.requestStateUpdate(er.Valid),this.I("Identify - Initialization completed from bootstrap"),r()}setForcedStreaming(e){this.Z=e,this.jt()}setAutomaticStreamingState(e){this.Ut=e,this.jt()}jt(){let e=this.Z||this.Ut&&this.Z===void 0;this.I(`Updating streaming state. forced(${this.Z}) automatic(${this.Ut})`),e?this.Fn():this.Ie()}Ie(){var e;this.updateProcessor&&this.I("Stopping update processor."),(e=this.updateProcessor)==null||e.close(),this.updateProcessor=void 0}Fn(){if(this.updateProcessor){this.I("Update processor already active. Not changing state.");return}if(!this.context){this.I("Context not set, not starting update processor.");return}this.I("Starting update processor."),this.Rn(this.context)}Rn(e,t,r){var n;let i=le.toLDContext(e);(n=this.updateProcessor)==null||n.close();let a=JSON.stringify(le.toLDContext(e)),s=ft(a,this.config.serviceEndpoints,this.getPollingPaths(),this.platform.requests,this.platform.encoding,this.baseHeaders,[],this.config.withReasons,this.config.useReport,this.zt);this.createStreamingProcessor(i,e,s,t,r),this.updateProcessor.start()}};function Ks(e){let t=Dn("visibilitychange",()=>{Vs()==="hidden"&&e()}),r=Cn("pagehide",e);return()=>{t(),r()}}function at(e){if(typeof e!="string")throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}function Bs(e,t,r,n){let i=((e.kind==="substring"||e.kind==="regex")&&n.includes("/")?t:t.replace(n,"")).replace(r,"");switch(e.kind){case"exact":return new RegExp(`^${at(e.url)}/?$`).test(t);case"canonical":return new RegExp(`^${at(e.url)}/?$`).test(i);case"substring":return new RegExp(`.*${at(e.substring)}.*$`).test(i);case"regex":return new RegExp(e.pattern).test(i);default:return!1}}function Hs(e,t){let r=[];return t.forEach(n=>{let i=e.target,{selector:a}=n,s=zs(a);for(;i&&s!=null&&s.length;){for(let o=0;o<s.length;o+=1)if(i===s[o]){r.push(n);break}i=i.parentNode}}),r}var Js=class{constructor(e,t){let r=e.filter(a=>{var s;return(s=a.urls)==null?void 0:s.some(o=>Bs(o,Se(),Ns(),As()))}),n=r.filter(a=>a.kind==="pageview"),i=r.filter(a=>a.kind==="click");if(n.forEach(a=>t(a)),i.length){let a=s=>{Hs(s,i).forEach(o=>{t(o)})};this.Pe=Dn("click",a)}}close(){var e;(e=this.Pe)==null||e.call(this)}},Gs=300,_s=class{constructor(e){this.l=Se();let t=()=>{let n=Se();n!==this.l&&(this.l=n,e())};this.Vt=setInterval(t,Gs);let r=Cn("popstate",t);this.xe=()=>{r()}}close(){var e;this.Vt&&clearInterval(this.Vt),(e=this.xe)==null||e.call(this)}},Ws=class{constructor(e,t,r,n,i,a=s=>new _s(s)){this.z=t,this.zn=n,this.Un=i,this.ft=[],this.Ae=!1,this.X=`${r}/sdk/goals/${e}`,this.Le=a(()=>{this.Ht()})}async initialize(){await this.Nn(),this.Ht()}startTracking(){this.Ae=!0,this.Ht()}Ht(){var e;this.Ae&&((e=this.Bt)==null||e.close(),this.ft&&this.ft.length&&(this.Bt=new Js(this.ft,t=>{this.Un(Se(),t)})))}async Nn(){try{let e=await this.z.fetch(this.X);this.ft=await e.json()}catch(e){this.zn(new Ar(`Encountered error fetching goals: ${e}`))}}close(){var e,t;(e=this.Le)==null||e.close(),(t=this.Bt)==null||t.close()}};function Zs(e){return e.kind==="click"}var Ys=2,Sn={fetchGoals:!0,eventUrlTransformer:e=>e,streaming:void 0,plugins:[]},Qs={fetchGoals:p.Boolean,eventUrlTransformer:p.Function,streaming:p.Boolean,plugins:p.createTypeArray("LDPlugin",{})};function Xs(e){var t;let r=k({},e);return(t=r.flushInterval)!=null||(r.flushInterval=Ys),r}function eo(e){let t=Xs(e);return Object.keys(Sn).forEach(r=>{delete t[r]}),t}function to(e,t){let r=k({},Sn);return Object.entries(Qs).forEach(n=>{let[i,a]=n,s=e[i];s!==void 0&&(a.is(s)?r[i]=s:t.warn(N.wrongOptionType(i,a.getType(),typeof s)))}),r}var ro=class{constructor(e,t){switch(this.jn=e,this.Oe=[],t){case"sha1":this.qt="SHA-1";break;case"sha256":this.qt="SHA-256";break;default:throw new Error(`Algorithm is not supported ${t}`)}}async asyncDigest(e){let t=this.Oe.join(""),r=new TextEncoder().encode(t),n=await this.jn.subtle.digest(this.qt,r);switch(e){case"base64":return btoa(String.fromCharCode(...new Uint8Array(n)));case"hex":return[...new Uint8Array(n)].map(i=>i.toString(16).padStart(2,"0")).join("");default:throw new Error(`Encoding is not supported ${e}`)}}update(e){return this.Oe.push(e),this}},no={start:0,end:3},io={start:4,end:5},st={start:6,end:7},ot={start:8,end:8},ao={start:9,end:9},so={start:10,end:15};function oo(){if(typeof crypto!="undefined"&&crypto.getRandomValues){let t=new Uint8Array(16);return crypto.getRandomValues(t),[...t.values()]}let e=[];for(let t=0;t<16;t+=1)e.push(Math.floor(Math.random()*256));return e}function ge(e,t){let r="";for(let n=t.start;n<=t.end;n+=1)r+=e[n].toString(16).padStart(2,"0");return r}function lo(e){return e[ot.start]=(e[ot.start]|128)&191,e[st.start]=e[st.start]&15|64,`${ge(e,no)}-${ge(e,io)}-${ge(e,st)}-${ge(e,ot)}${ge(e,ao)}-${ge(e,so)}`}function uo(){let e=oo();return lo(e)}function co(){return typeof crypto!="undefined"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():uo()}var ho=class{createHash(e){return new ro(js(),e)}randomUUID(){return co()}};function fo(e){let t=Array.from(e,r=>String.fromCodePoint(r)).join("");return btoa(t)}var go=class{btoa(e){return fo(new TextEncoder().encode(e))}},po=class{constructor(e){this.e=e}platformData(){return{name:"JS"}}sdkData(){let e={name:"@launchdarkly/js-client-sdk",version:"4.6.3",userAgentBase:"JSClient"};return this.e.wrapperName&&(e.wrapperName=this.e.wrapperName),this.e.wrapperVersion&&(e.wrapperVersion=this.e.wrapperVersion),e}},vo=class{constructor(e,t){this.X=e,this.n={},this.x=new ci(t.initialRetryDelayMillis,t.retryResetIntervalMillis),this.Te=t.errorFilter,this.Gt=t.urlBuilder,this.Me()}Me(){this.Gt&&(this.X=this.Gt()),this.G=new EventSource(this.X),this.G.onopen=()=>{var e;this.x.success(),(e=this.onopen)==null||e.call(this)},this.G.onerror=e=>{var t;e instanceof MessageEvent||(this.b(e),(t=this.onerror)==null||t.call(this,e))},Object.entries(this.n).forEach(([e,t])=>{t.forEach(r=>{var n;(n=this.G)==null||n.addEventListener(e,r)})})}addEventListener(e,t){var r,n,i;(n=(r=this.n)[e])!=null||(r[e]=[]),this.n[e].push(t),(i=this.G)==null||i.addEventListener(e,t)}close(){var e,t;clearTimeout(this.Kt),this.Kt=void 0,(e=this.G)==null||e.close(),(t=this.onclose)==null||t.call(this)}Vn(e){var t;(t=this.onretrying)==null||t.call(this,{delayMillis:e}),this.Kt=setTimeout(()=>{this.Me()},e)}b(e){this.close(),!(typeof e.status=="number"&&!this.Te(e))&&this.Vn(this.x.fail())}},mo=class{fetch(e,t){return fetch(e,t)}createEventSource(e,t){return new vo(e,t)}getEventSourceCapabilities(){return{customMethod:!1,readTimeout:!1,headers:!1}}};function xn(){return typeof localStorage!="undefined"}function yo(){if(!xn())return[];let e=[];for(let t=0;t<localStorage.length;t+=1){let r=localStorage.key(t);r&&e.push(r)}return e}var wo=class{constructor(e){this.t=e}async clear(e){var t;try{localStorage.removeItem(e)}catch(r){(t=this.t)==null||t.error(`Error clearing key from localStorage: ${e}, reason: ${r}`)}}async get(e){var t;try{let r=localStorage.getItem(e);return r!=null?r:null}catch(r){return(t=this.t)==null||t.error(`Error getting key from localStorage: ${e}, reason: ${r}`),null}}async set(e,t){var r;try{localStorage.setItem(e,t)}catch(n){(r=this.t)==null||r.error(`Error setting key in localStorage: ${e}, reason: ${n}`)}}},bo=class{constructor(e,t){this.encoding=new go,this.crypto=new ho,this.requests=new mo,xn()&&(this.storage=new wo(e)),this.info=new po(t)}},ko=class extends Ya{constructor(e,t,r,n={},i){var a,s,o,l,u;let{logger:d,debug:c}=n,h=d!=null?d:new Pr({destination:{debug:console.debug,info:console.info,warn:console.warn,error:console.error},level:c?"debug":"info"}),g=(a=n.baseUri)!=null?a:"https://clientsdk.launchdarkly.com",D=i!=null?i:new bo(h,n),w=to(n,h),f=eo(q(k({},n),{logger:h})),{eventUrlTransformer:v}=w,m=pr(e),S=(E,R,I,y,C)=>R.dataSystem?Fs({platform:D,flagManager:E,credential:e,config:R,baseHeaders:I,emitter:y,transitionTable:us,foregroundMode:aa(R.dataSystem,sr),backgroundMode:void 0,modeTable:Fe,sourceFactoryProvider:xs(),fdv1Endpoints:pr(e),buildQueryParams:M=>{let j=[{key:"auth",value:e}],O=M;return O!=null&&O.hash&&j.push({key:"h",value:O.hash}),j}}):new qs(D,E,e,R,w,m.polling,m.streaming,I,y,C);super(e,r,D,f,S,{getLegacyStorageKeys:()=>yo().filter(E=>E.startsWith(`ld:${e}:`)),analyticsEventPath:`/events/bulk/${e}`,diagnosticEventPath:`/events/diagnostic/${e}`,includeAuthorizationHeader:!1,highTimeoutThreshold:5,userAgentHeaderName:"x-launchdarkly-user-agent",dataSystemDefaults:sr,trackEventModifier:E=>new B.InputCustomEvent(E.context,E.key,E.data,E.metricValue,E.samplingRatio,v(Se())),getImplementationHooks:E=>B.safeGetHooks(h,E,w.plugins),credentialType:"clientSideId",requiresStart:!0,initialContext:t}),this.setEventSendingEnabled(!0,!1),w.streaming!==void 0&&((o=(s=this.dataManager).setForcedStreaming)==null||o.call(s,w.streaming)),(u=(l=this.dataManager).setFlushCallback)==null||u.call(l,()=>this.flush()),this.Wt=w.plugins,w.fetchGoals&&(this.Jt=new Ws(e,D.requests,g,E=>{h.error(E.message)},(E,R)=>{let I=this.getInternalContext();if(!I)return;let y=v(E);Zs(R)?this.sendEvent({kind:"click",url:y,samplingRatio:1,key:R.key,creationDate:Date.now(),context:I,selector:R.selector}):this.sendEvent({kind:"pageview",url:y,samplingRatio:1,key:R.key,creationDate:Date.now(),context:I})}),this.Jt.initialize(),w.automaticBackgroundHandling&&Ks(()=>this.flush()))}registerPlugins(e){B.safeRegisterPlugins(this.logger,this.environmentMetadata,e,this.Wt||[]);let t=this.getDebugOverrides();t&&Qa(this.logger,t,this.Wt||[])}async identify(e,t){return super.identify(e,t)}async identifyResult(e,t){var r;let n=(t==null?void 0:t.sheddable)===void 0?q(k({},t),{sheddable:!0}):t,i=await super.identifyResult(e,n);return this.startPromise&&((r=this.Jt)==null||r.startTracking()),i}setConnectionMode(e){if(!this.dataManager.setConnectionMode){this.logger.warn("setConnectionMode requires the FDv2 data system (dataSystem option). The call has no effect without it.");return}if(e!==void 0&&!(e in Fe)){this.logger.warn(`setConnectionMode called with invalid mode '${e}'. Valid modes: ${Object.keys(Fe).join(", ")}.`);return}this.dataManager.setConnectionMode(e)}setStreaming(e){var t,r;(r=(t=this.dataManager).setForcedStreaming)==null||r.call(t,e)}$e(){var e,t;let r=this.emitter.eventNames().some(n=>n.startsWith("change:")||n==="change");(t=(e=this.dataManager).setAutomaticStreamingState)==null||t.call(e,r)}on(e,t){super.on(e,t),this.$e()}off(e,t){super.off(e,t),this.$e()}};function Eo(e,t,r,n={},i){let a=new ko(e,t,r,n,i),s={variation:(o,l)=>a.variation(o,l),variationDetail:(o,l)=>a.variationDetail(o,l),boolVariation:(o,l)=>a.boolVariation(o,l),boolVariationDetail:(o,l)=>a.boolVariationDetail(o,l),numberVariation:(o,l)=>a.numberVariation(o,l),numberVariationDetail:(o,l)=>a.numberVariationDetail(o,l),stringVariation:(o,l)=>a.stringVariation(o,l),stringVariationDetail:(o,l)=>a.stringVariationDetail(o,l),jsonVariation:(o,l)=>a.jsonVariation(o,l),jsonVariationDetail:(o,l)=>a.jsonVariationDetail(o,l),track:(o,l,u)=>a.track(o,l,u),on:(o,l)=>a.on(o,l),off:(o,l)=>a.off(o,l),flush:()=>a.flush(),setConnectionMode:o=>a.setConnectionMode(o),setStreaming:o=>a.setStreaming(o),identify:(o,l)=>a.identifyResult(o,l),getContext:()=>a.getContext(),close:()=>a.close(),allFlags:()=>a.allFlags(),addHook:o=>a.addHook(o),waitForInitialization:o=>a.waitForInitialization(o),logger:a.logger,start:o=>a.start(o)};return a.registerPlugins(s),s}function Rn(e,t,r){return Eo(e,t,Ve.Disabled,r)}function Do(e){return Object.fromEntries(Object.entries(e).filter(([t])=>!t.startsWith("$")))}function Je(e){let t=Do(e!=null?e:{}),r=e!==void 0;function n(h,g,D){return h in t&&D(t[h])?t[h]:g}function i(h,g){return h in t?t[h]:g}function a(h,g,D){return{value:D?n(h,g,D):i(h,g),variationIndex:null,reason:null}}let s=h=>typeof h=="boolean",o=h=>typeof h=="number",l=h=>typeof h=="string",u=()=>{},d=()=>u,c=()=>Promise.resolve();return{allFlags:()=>H({},t),getContext:()=>{},getInitializationState:()=>"initializing",getInitializationError:()=>{},isReady:()=>r,boolVariation:(h,g)=>n(h,g,s),numberVariation:(h,g)=>n(h,g,o),stringVariation:(h,g)=>n(h,g,l),jsonVariation:(h,g)=>i(h,g),boolVariationDetail:(h,g)=>a(h,g,s),numberVariationDetail:(h,g)=>a(h,g,o),stringVariationDetail:(h,g)=>a(h,g,l),jsonVariationDetail:(h,g)=>a(h,g),variation:(h,g)=>i(h,g),variationDetail:(h,g)=>a(h,g),on:u,off:u,onContextChange:d,onInitializationStatusChange:d,shouldUseCamelCaseFlagKeys:()=>!0,close:c,flush:c,identify:c,track:u,addHook:u,waitForInitialization:c,setStreaming:u,start:c,logger:{debug:u,info:u,warn:u,error:u}}}function Tt(e,t,r={}){var f,v;if(typeof window=="undefined")return Je();let w=r,{useCamelCaseFlagKeys:n=!0}=w,i=Kt(w,["useCamelCaseFlagKeys"]),a=ne(H({},i),{wrapperName:(f=i==null?void 0:i.wrapperName)!=null?f:"react-client-sdk",wrapperVersion:(v=i==null?void 0:i.wrapperVersion)!=null?v:"0.2.4"}),s=Rn(e,t,a),o="initializing",l=!1,u=!1,d=!1,c=new Set,h=new Set,g;function D(){let m=s.getContext();m&&c.forEach(S=>S(m))}return ne(H({},s),{start:m=>u?s.start(m):(u=!0,m!=null&&m.bootstrap&&(l=!0),s.start(m).then(S=>(o=S.status,g=S,d||(d=!0,D()),h.forEach(E=>E(S)),S))),identify:(m,S)=>s.identify(m,S).then(E=>(E.status==="completed"&&D(),E)),getInitializationState:()=>o,getInitializationError:()=>(g==null?void 0:g.status)==="failed"?g.error:void 0,onContextChange:m=>(c.add(m),()=>{c.delete(m)}),onInitializationStatusChange:m=>(g&&m(g),h.add(m),()=>{h.delete(m)}),isReady:()=>o!=="initializing"||l,shouldUseCamelCaseFlagKeys:()=>n})}function Ge(e,t){var i;let r=(i=t==null?void 0:t.Provider)!=null?i:J.Provider;return({children:a})=>{var l;let[s,o]=xo({client:e,context:(l=e.getContext())!=null?l:void 0,initializedState:e.getInitializationState(),error:e.getInitializationError()});return So(()=>{let u=!0,d=e.onInitializationStatusChange(h=>{u&&o(g=>g.initializedState===h.status?g:ne(H({},g),{initializedState:h.status,error:h.status==="failed"?h.error:void 0}))}),c=e.onContextChange(h=>{u&&o(g=>ne(H({},g),{context:h}))});return()=>{u=!1,d(),c()}},[]),Co.createElement(r,{value:s},a)}}function Mt(e,t,r){let{deferInitialization:n,startOptions:i,reactContext:a,ldOptions:s,bootstrap:o}=r!=null?r:{},l=Tt(e,t,s);if(!n){let u=o?ne(H({},i),{bootstrap:o}):i;l.start(u)}return Ge(l,a)}import Ro,{useRef as Oo}from"react";function Io({clientSideId:e,context:t,bootstrap:r,options:n,reactContext:i,children:a}){let s=Oo(null);s.current===null&&(typeof window=="undefined"?s.current=Ge(Je(r),i):s.current=Mt(e,t,ne(H({},n),{bootstrap:r,reactContext:i})));let o=s.current;return Ro.createElement(o,null,a)}import{useContext as Po,useEffect as In,useMemo as $o,useRef as Lo,useState as To}from"react";function On(e){return e.replace(/([a-z\d])([A-Z])/g,"$1 $2").replace(/([A-Z]+)([A-Z][a-z])/g,"$1 $2").split(/[-._\s]+/).filter(Boolean).map((t,r)=>{let n=t.toLowerCase();return r===0?n:n.charAt(0).toUpperCase()+n.slice(1)}).join("")}function Mo(e,t){let r=new Map,n=e.shouldUseCamelCaseFlagKeys(),i={},a={};return Object.keys(t).filter(s=>s.indexOf("$")!==0).forEach(s=>{if(n){let o=On(s);i[o]=t[s],a[o]=s}else i[s]=t[s]}),new Proxy(i,{get(s,o,l){var h;let u=Reflect.get(s,o,l);if(typeof o=="symbol"||!Object.prototype.hasOwnProperty.call(s,o))return u;if(u===void 0)return;if(r.has(o))return r.get(o);let d=n&&(h=a[o])!=null?h:o,c=e.variation(d,u);return r.set(o,c),c}})}function Fo(e){let{client:t,context:r}=Po(e!=null?e:J);In(()=>{t.logger.warn("[LaunchDarkly] useFlags is deprecated and will be removed in a future major version.")},[]);let[n,i]=To(()=>t.allFlags()),a=Lo(!1);return In(()=>{a.current&&i(t.allFlags()),a.current=!0;let s=()=>i(t.allFlags());return t.on("change",s),()=>t.off("change",s)},[t,r]),$o(()=>Mo(t,n),[t,n,r])}import{useContext as No}from"react";function Ao(e){let{initializedState:t,error:r}=No(e!=null?e:J);return t==="failed"?{status:"failed",error:r}:{status:t}}import{useContext as jo}from"react";function Vo(e){let{client:t}=jo(e!=null?e:J);return t}import{useContext as zo,useEffect as Uo,useRef as Ft,useState as qo}from"react";function G(e,t,r,n,i){let{client:a,context:s}=zo(n!=null?n:J),o=a.isReady(),l=Ft(t),u=Ft(r);l.current=t,u.current=r;let d=Ft(!1),[c,h]=qo(()=>o?r(a,e,t):i?i(t):t);return Uo(()=>{d.current&&o&&h(u.current(a,e,l.current)),d.current=!0;let g=()=>h(u.current(a,e,l.current));return a.on(`change:${e}`,g),()=>a.off(`change:${e}`,g)},[a,e,s,o]),c}function Ko(e,t,r){return G(e,t,(n,i,a)=>n.boolVariation(i,a),r)}function Bo(e,t,r){return G(e,t,(n,i,a)=>n.stringVariation(i,a),r)}function Ho(e,t,r){return G(e,t,(n,i,a)=>n.numberVariation(i,a),r)}function Jo(e,t,r){return G(e,t,(n,i,a)=>n.jsonVariation(i,a),r)}function _e(e){return{value:e,variationIndex:null,reason:{kind:"ERROR",errorKind:"CLIENT_NOT_READY"}}}function Go(e,t,r){return G(e,t,(n,i,a)=>n.boolVariationDetail(i,a),r,_e)}function _o(e,t,r){return G(e,t,(n,i,a)=>n.stringVariationDetail(i,a),r,_e)}function Wo(e,t,r){return G(e,t,(n,i,a)=>n.numberVariationDetail(i,a),r,_e)}function Zo(e,t,r){return G(e,t,(n,i,a)=>n.jsonVariationDetail(i,a),r,_e)}export{Io as LDIsomorphicClientProvider,J as LDReactContext,Tt as createClient,Mt as createLDReactProvider,Ge as createLDReactProviderWithClient,Bt as initLDReactContext,Ko as useBoolVariation,Go as useBoolVariationDetail,Fo as useFlags,Ao as useInitializationStatus,Jo as useJsonVariation,Zo as useJsonVariationDetail,Vo as useLDClient,Ho as useNumberVariation,Wo as useNumberVariationDetail,Bo as useStringVariation,_o as useStringVariationDetail};
|