@launchdarkly/cloudflare-server-sdk 2.5.8 → 2.5.10
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 +18 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/package.json +2 -2
package/dist/esm/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{EventEmitter as e}from"node:events";import t from"semver";import i from"crypto-js";var r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n={},a={};Object.defineProperty(a,"__esModule",{value:!0});a.default=class{constructor(e){this.onRequestStatus=e}getStatus(){return this.lastStatus}async requireStatus(){return this.lastStatus||await this.onRequestStatus(),this.lastStatus}notify(){var e;this.lastStatus&&(null===(e=this.listener)||void 0===e||e.call(this,this.lastStatus))}setListener(e){this.listener=e}setStatus(e){this.lastStatus=e}};var s={},o={},l={};function u(e){return e.indexOf("~")?e.replace(/~1/g,"/").replace(/~0/g,"~"):e}Object.defineProperty(l,"__esModule",{value:!0});class c{constructor(e,t=!1){if(t){const t=e;this.components=[t],this.isValid=""!==t,this.redactionName=t.startsWith("/")?`/${t.replace(/~/g,"~0").replace(/\//g,"~1")}`:t}else{if(this.redactionName=e,""===e||"/"===e||e.match(/\/\/|(^\/.*~[^0|^1])|~$/))return this.isValid=!1,void(this.components=[]);!function(e){return!e.startsWith("/")}(e)?e.indexOf("/",1)<0?this.components=[u(e.slice(1))]:this.components=function(e){return(e.startsWith("/")?e.substring(1):e).split("/").map((e=>u(e)))}(e):this.components=[e],"_meta"===this.components[0]?this.isValid=!1:this.isValid=!0}}get(e){const{components:t,isValid:i}=this;if(!i)return;let r=e;for(let e=0;e<t.length;e+=1){const i=t[e];if(null==r||!Object.prototype.hasOwnProperty.call(r,i)||"object"!=typeof r||Array.isArray(r))return;r=r[i]}return r}getComponent(e){return this.components[e]}get depth(){return this.components.length}get isKind(){return 1===this.components.length&&"kind"===this.components[0]}compare(e){return this.depth===e.depth&&this.components.every(((t,i)=>t===e.getComponent(i)))}}c.invalidReference=new c(""),l.default=c;var d={},h={},f={};Object.defineProperty(f,"__esModule",{value:!0}),f.TypeValidators=f.KindValidator=f.DateValidator=f.NullableBoolean=f.Function=f.StringMatchingRegex=f.NumberWithMinimum=f.TypeArray=f.Type=f.FactoryOrInstance=void 0;class v{is(e){if(Array.isArray(e))return!1;const t=typeof e;return"function"===t||"object"===t}getType(){return"factory method or object"}}f.FactoryOrInstance=v;class g{constructor(e,t){this.typeName=e,this.typeOf=typeof t}is(e){return!Array.isArray(e)&&typeof e===this.typeOf}getType(){return this.typeName}}f.Type=g;class p{constructor(e,t){this.typeName=e,this.typeOf=typeof t}is(e){return!!Array.isArray(e)&&(!(e.length>0)||e.every((e=>typeof e===this.typeOf)))}getType(){return this.typeName}}f.TypeArray=p;class y extends g{constructor(e){super(`number with minimum value of ${e}`,0),this.min=e}is(e){return typeof e===this.typeOf&&e>=this.min}}f.NumberWithMinimum=y;class m extends g{constructor(e){super(`string matching ${e}`,""),this.expression=e}is(e){return!!e.match(this.expression)}}f.StringMatchingRegex=m;class b{is(e){return"function"==typeof e}getType(){return"function"}}f.Function=b;class O{is(e){return"boolean"==typeof e||null==e}getType(){return"boolean | undefined | null"}}f.NullableBoolean=O;const w=/^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d\d*)?(Z|[-+]\d\d(:\d\d)?)/;class S{is(e){return"number"==typeof e||"string"==typeof e&&w.test(e)}getType(){return"date"}}f.DateValidator=S;class E extends m{constructor(){super(/^(\w|\.|-)+$/)}is(e){return super.is(e)&&"kind"!==e}}f.KindValidator=E;class _{static createTypeArray(e,t){return new p(e,t)}static numberWithMin(e){return new y(e)}static stringMatchingRegex(e){return new m(e)}}f.TypeValidators=_,_.String=new g("string",""),_.Number=new g("number",0),_.ObjectOrFactory=new v,_.Object=new g("object",{}),_.StringArray=new p("string[]",""),_.Boolean=new g("boolean",!0),_.Function=new b,_.Date=new S,_.Kind=new E,_.NullableBoolean=new O,Object.defineProperty(h,"__esModule",{value:!0}),h.isLegacyUser=h.isMultiKind=h.isSingleKind=void 0;const k=f;h.isSingleKind=function(e){return"kind"in e&&(k.TypeValidators.String.is(e.kind)&&"multi"!==e.kind)},h.isMultiKind=function(e){return"kind"in e&&(k.TypeValidators.String.is(e.kind)&&"multi"===e.kind)},h.isLegacyUser=function(e){return!("kind"in e)||null===e.kind||void 0===e.kind},Object.defineProperty(d,"__esModule",{value:!0});const P=l,M=h,D=f,x="user";function j(e){return e.includes("%")||e.includes(":")?e.replace(/%/g,"%25").replace(/:/g,"%3A"):e}function T(e){return D.TypeValidators.Kind.is(e)}function C(e){return D.TypeValidators.String.is(e)&&""!==e}function I(e,t=!1){return e?e.map((e=>new P.default(e,t))):[]}class F{constructor(e,t,i){this.isMulti=!1,this.isUser=!1,this.wasLegacy=!1,this.contexts={},this.kind=t,this.valid=e,this.message=i}static contextForError(e,t){return new F(!1,e,t)}static getValueFromContext(e,t){if(t&&e.isValid)return 1===e.depth&&"anonymous"===e.getComponent(0)?!!(null==t?void 0:t.anonymous):e.get(t)}contextForKind(e){return this.isMulti?this.contexts[e]:this.kind===e?this.context:void 0}static fromMultiKindContext(e){const t=Object.keys(e).filter((e=>"kind"!==e)),i=t.every(T);if(!t.length)return F.contextForError("multi","A multi-kind context must contain at least one kind");if(!i)return F.contextForError("multi","Context contains invalid kinds");const r={};let n=!0;const a=t.reduce(((t,i)=>{var a;const s=e[i];var o;return(o=s)&&D.TypeValidators.Object.is(o)?(t[i]=s,r[i]=I(null===(a=s._meta)||void 0===a?void 0:a.privateAttributes)):n=!1,t}),{});if(!n)return F.contextForError("multi","Context contained contexts that were not objects");if(!Object.values(a).every((e=>C(e.key))))return F.contextForError("multi","Context contained invalid keys");if(1===t.length){const e=t[0],i=new F(!0,e);return i.context=a[e],i.privateAttributeReferences=r,i.isUser="user"===e,i}const s=new F(!0,e.kind);return s.contexts=a,s.privateAttributeReferences=r,s.isMulti=!0,s}static fromSingleKindContext(e){var t;const{key:i,kind:r}=e,n=T(r),a=C(i);if(!n)return F.contextForError(null!=r?r:"unknown","The kind was not valid for the context");if(!a)return F.contextForError(r,"The key for the context was not valid");const s=I(null===(t=e._meta)||void 0===t?void 0:t.privateAttributes),o=new F(!0,r);return o.isUser="user"===r,o.context=e,o.privateAttributeReferences={[r]:s},o}static fromLegacyUser(e){if(!(void 0!==e.key&&null!==e.key))return F.contextForError("user","The key for the context was not valid");const t=new F(!0,"user");return t.isUser=!0,t.wasLegacy=!0,t.context=function(e){const t=Object.assign(Object.assign({},e.custom||[]),{kind:"user",key:String(e.key)});if(null!=e.anonymous){const i=!!e.anonymous;delete t.anonymous,t.anonymous=i}return null!==e.name&&void 0!==e.name&&(t.name=e.name),null!==e.ip&&void 0!==e.ip&&(t.ip=e.ip),null!==e.firstName&&void 0!==e.firstName&&(t.firstName=e.firstName),null!==e.lastName&&void 0!==e.lastName&&(t.lastName=e.lastName),null!==e.email&&void 0!==e.email&&(t.email=e.email),null!==e.avatar&&void 0!==e.avatar&&(t.avatar=e.avatar),null!==e.country&&void 0!==e.country&&(t.country=e.country),t}(e),t.privateAttributeReferences={user:I(e.privateAttributeNames,!0)},t}static fromLDContext(e){return e?(0,M.isSingleKind)(e)?F.fromSingleKindContext(e):(0,M.isMultiKind)(e)?F.fromMultiKindContext(e):(0,M.isLegacyUser)(e)?F.fromLegacyUser(e):F.contextForError("unknown","Context was not of a valid kind"):F.contextForError("unknown","No context specified. Returning default value")}valueForKind(e,t=x){return e.isKind?this.kinds:F.getValueFromContext(e,this.contextForKind(t))}key(e=x){var t;return null===(t=this.contextForKind(e))||void 0===t?void 0:t.key}get isMultiKind(){return this.isMulti}get canonicalKey(){return this.isUser?this.context.key:this.isMulti?Object.keys(this.contexts).sort().map((e=>`${e}:${j(this.contexts[e].key)}`)).join(":"):`${this.kind}:${j(this.context.key)}`}get kinds(){return this.isMulti?Object.keys(this.contexts):[this.kind]}get kindsAndKeys(){return this.isMulti?Object.entries(this.contexts).reduce(((e,[t,i])=>(e[t]=i.key,e)),{}):{[this.kind]:this.context.key}}privateAttributes(e){var t;return(null===(t=this.privateAttributeReferences)||void 0===t?void 0:t[e])||[]}getContexts(){return this.isMulti?Object.entries(this.contexts):[[this.kind,this.context]]}get legacy(){return this.wasLegacy}}F.userKind=x,d.default=F;var R={};Object.defineProperty(R,"__esModule",{value:!0});const V=l,A=["key","kind","_meta","anonymous"].map((e=>new V.default(e,!0))),L=["name","ip","firstName","lastName","email","avatar","country"];R.default=class{constructor(e,t){this.allAttributesPrivate=e,this.privateAttributes=t}filter(e,t=!1){const i=e.getContexts();if(1===i.length)return this.filterSingleKind(e,i[0][1],i[0][0],t);const r={kind:"multi"};return i.forEach((([i,n])=>{r[i]=this.filterSingleKind(e,n,i,t)})),r}getAttributesToFilter(e,t,i,r){return(r?Object.keys(t).map((e=>new V.default(e,!0))):[...this.privateAttributes,...e.privateAttributes(i)]).filter((e=>!A.some((t=>t.compare(e)))))}filterSingleKind(e,t,i,r){const n=this.allAttributesPrivate||r&&!0===t.anonymous,{cloned:a,excluded:s}=function(e,t){const i=[],r={},n=[];for(i.push(...Object.keys(e).map((t=>({key:t,ptr:[t],source:e,parent:r,visited:[e]}))));i.length;){const e=i.pop(),r=t.find((t=>{return i=t,r=e.ptr,i.depth===r.length&&r.every(((e,t)=>e===i.getComponent(t)));var i,r}));if(r)n.push(r.redactionName);else{const t=e.source[e.key];null===t?e.parent[e.key]=t:Array.isArray(t)?e.parent[e.key]=[...t]:"object"==typeof t?e.visited.includes(t)||(e.parent[e.key]={},i.push(...Object.keys(t).map((i=>({key:i,ptr:[...e.ptr,i],source:t,parent:e.parent[e.key],visited:[...e.visited,t]}))))):e.parent[e.key]=t}}return{cloned:r,excluded:n.sort()}}(t,this.getAttributesToFilter(e,t,i,n));return e.legacy&&L.forEach((e=>{e in a&&(a[e]=String(a[e]))})),s.length&&(a._meta||(a._meta={}),a._meta.redactedAttributes=s),a._meta&&(delete a._meta.privateAttributes,0===Object.keys(a._meta).length&&delete a._meta),a}};var N={},K={},$={};Object.defineProperty($,"__esModule",{value:!0});var U={};Object.defineProperty(U,"__esModule",{value:!0});var B={};Object.defineProperty(B,"__esModule",{value:!0});var z={};Object.defineProperty(z,"__esModule",{value:!0});var H={};Object.defineProperty(H,"__esModule",{value:!0});var q,W,J,G={};Object.defineProperty(G,"__esModule",{value:!0}),q=K,W=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),J=r&&r.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||W(t,e,i)},Object.defineProperty(q,"__esModule",{value:!0}),J($,q),J(U,q),J(B,q),J(z,q),J(H,q),J(G,q);var X={},Y={};Object.defineProperty(Y,"__esModule",{value:!0});var Q={};Object.defineProperty(Q,"__esModule",{value:!0});var Z={};Object.defineProperty(Z,"__esModule",{value:!0}),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(Y,e),i(Q,e),i(Z,e)}(X);var ee={},te={};Object.defineProperty(te,"__esModule",{value:!0});var ie={};Object.defineProperty(ie,"__esModule",{value:!0});var re={};Object.defineProperty(re,"__esModule",{value:!0});var ne={};Object.defineProperty(ne,"__esModule",{value:!0}),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(te,e),i(ie,e),i(re,e),i(ne,e)}(ee);var ae={};Object.defineProperty(ae,"__esModule",{value:!0});var se,oe,le={},ue={};Object.defineProperty(ue,"__esModule",{value:!0}),ue.AutoEnvAttributes=void 0,(oe=se||(ue.AutoEnvAttributes=se={}))[oe.Disabled=0]="Disabled",oe[oe.Enabled=1]="Enabled";var ce={};Object.defineProperty(ce,"__esModule",{value:!0});var de={};Object.defineProperty(de,"__esModule",{value:!0});var he={};Object.defineProperty(he,"__esModule",{value:!0});var fe={};Object.defineProperty(fe,"__esModule",{value:!0});var ve={};Object.defineProperty(ve,"__esModule",{value:!0});var ge={};Object.defineProperty(ge,"__esModule",{value:!0});var pe={};Object.defineProperty(pe,"__esModule",{value:!0});var ye={};Object.defineProperty(ye,"__esModule",{value:!0}),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(ue,e),i(ce,e),i(de,e),i(he,e),i(fe,e),i(ve,e),i(ge,e),i(pe,e),i(ye,e)}(le);var me,be,Oe,we,Se={},Ee={};Object.defineProperty(Ee,"__esModule",{value:!0}),Ee.LDDeliveryStatus=Ee.LDEventType=void 0,(be=me||(Ee.LDEventType=me={}))[be.AnalyticsEvents=0]="AnalyticsEvents",be[be.DiagnosticEvent=1]="DiagnosticEvent",(we=Oe||(Ee.LDDeliveryStatus=Oe={}))[we.Succeeded=0]="Succeeded",we[we.Failed=1]="Failed",we[we.FailedAndMustShutDown=2]="FailedAndMustShutDown",function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.LDEventType=e.LDDeliveryStatus=void 0;const t=Ee;Object.defineProperty(e,"LDDeliveryStatus",{enumerable:!0,get:function(){return t.LDDeliveryStatus}}),Object.defineProperty(e,"LDEventType",{enumerable:!0,get:function(){return t.LDEventType}})}(Se),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.subsystem=void 0,i(K,e),i(X,e),i(ee,e),i(ae,e),i(le,e),e.subsystem=Se}(N);var _e={},ke={},Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});const Me=f;function De(e){if("string"==typeof e)return e;if(void 0===e)return"undefined";if(null===e)return"null";if(Object.prototype.hasOwnProperty.call(e,"toString"))try{return e.toString()}catch(e){}if("bigint"==typeof e)return`${e}n`;try{return JSON.stringify(e)}catch(e){return e instanceof TypeError&&e.message.indexOf("circular")>=0?"[Circular]":"[Not Stringifiable]"}}const xe={s:e=>De(e),d:e=>function(e){return"symbol"==typeof e?"NaN":"bigint"==typeof e?`${e}n`:String(Number(e))}(e),i:e=>function(e){return"symbol"==typeof e?"NaN":"bigint"==typeof e?`${e}n`:String(parseInt(e,10))}(e),f:e=>function(e){return"symbol"==typeof e?"NaN":String(parseFloat(e))}(e),j:e=>De(e),o:e=>De(e),O:e=>De(e),c:()=>""};Pe.default=function(...e){var t;const i=e.shift();if(Me.TypeValidators.String.is(i)){let r="",n=0;for(;n<i.length;){const a=i.charAt(n);if("%"===a){if(n+1<i.length){const a=i.charAt(n+1);if(a in xe&&e.length){const i=e.shift();r+=null===(t=xe[a])||void 0===t?void 0:t.call(xe,i)}else r+="%"===a?"%":`%${a}`;n+=2}}else r+=a,n+=1}return e.length&&(r.length&&(r+=" "),r+=e.map(De).join(" ")),r}return e.map(De).join(" ")},Object.defineProperty(ke,"__esModule",{value:!0});const je=Pe,Te={debug:0,info:1,warn:2,error:3,none:4},Ce=["debug","info","warn","error","none"];class Ie{static get(){return new Ie({})}constructor(e){var t,i,r;this.logLevel=null!==(i=Te[null!==(t=e.level)&&void 0!==t?t:"info"])&&void 0!==i?i:Te.info,this.name=null!==(r=e.name)&&void 0!==r?r:"LaunchDarkly",this.destination=e.destination,this.formatter=e.formatter}tryFormat(...e){var t;try{return this.formatter?null===(t=this.formatter)||void 0===t?void 0:t.call(this,...e):(0,je.default)(...e)}catch(t){return(0,je.default)(...e)}}tryWrite(e){try{this.destination(e)}catch(t){console.error(e)}}log(e,t){if(e>=this.logLevel){const i=`${Ce[e]}: [${this.name}]`;try{this.destination?this.tryWrite(`${i} ${this.tryFormat(...t)}`):console.error(...t)}catch(e){console.error(...t)}}}error(...e){this.log(Te.error,e)}warn(...e){this.log(Te.warn,e)}info(...e){this.log(Te.info,e)}debug(...e){this.log(Te.debug,e)}}ke.default=Ie;var Fe={},Re={};Object.defineProperty(Re,"__esModule",{value:!0});const Ve=f,Ae={error:Ve.TypeValidators.Function,warn:Ve.TypeValidators.Function,info:Ve.TypeValidators.Function,debug:Ve.TypeValidators.Function};Re.default=class{constructor(e,t){Object.entries(Ae).forEach((([t,i])=>{if(!i.is(e[t]))throw new Error(`Provided logger instance must support logger.${t}(...) method`)})),this.logger=e,this.fallback=t}log(e,t){try{this.logger[e](...t)}catch(i){this.fallback[e](...t)}}error(...e){this.log("error",e)}warn(...e){this.log("warn",e)}info(...e){this.log("info",e)}debug(...e){this.log("debug",e)}},Object.defineProperty(Fe,"__esModule",{value:!0});const Le=ke,Ne=Pe,Ke=Re;Fe.default=e=>{const t=new Le.default({level:"info",destination:console.error,formatter:Ne.default});return e?new Ke.default(e,t):t},Object.defineProperty(_e,"__esModule",{value:!0}),_e.createSafeLogger=_e.SafeLogger=_e.BasicLogger=void 0;const $e=ke;_e.BasicLogger=$e.default;const Ue=Fe;_e.createSafeLogger=Ue.default;const Be=Re;_e.SafeLogger=Be.default;var ze={},He={},qe={};Object.defineProperty(qe,"__esModule",{value:!0});qe.default=class{static deprecated(e,t){return`"${e}" is deprecated, please use "${t}"`}static optionBelowMinimum(e,t,i){return`Config option "${e}" had invalid value of ${t}, using minimum of ${i} instead`}static unknownOption(e){return`Ignoring unknown config option "${e}"`}static wrongOptionType(e,t,i){return`Config option "${e}" should be of type ${t}, got ${i}, 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`}},Object.defineProperty(He,"__esModule",{value:!0});const We=qe,Je=f.TypeValidators.stringMatchingRegex(/^(\w|\.|-)+$/),Ge=(e,t)=>Je.is(e)?e.length>64?{valid:!1,message:We.default.tagValueTooLong(t)}:{valid:!0}:{valid:!1,message:We.default.invalidTagValue(t)};He.default=class{constructor(e){const t={},i=null==e?void 0:e.application,r=null==e?void 0:e.logger;i&&Object.entries(i).forEach((([e,i])=>{if(null!=i){const{valid:n,message:a}=Ge(i,`application.${e}`);n?"versionName"===e?t["application-version-name"]=[i]:t[`application-${e}`]=[i]:null==r||r.warn(a)}}));const n=Object.keys(t);n.length&&(this.value=n.sort().flatMap((e=>t[e].sort().map((t=>`${e}/${t}`)))).join(" "))}};var Xe={};Object.defineProperty(Xe,"__esModule",{value:!0});Xe.default=class{constructor(e,t,i){this.platform=i,this.basicConfiguration={tags:t.tags,logger:t.logger,offline:t.offline,serviceEndpoints:t.serviceEndpoints,sdkKey:e}}};var Ye={};function Qe(e){return e.replace(/\/+$/,"")}Object.defineProperty(Ye,"__esModule",{value:!0});class Ze{constructor(e,t,i=Ze.DEFAULT_EVENTS,r="/bulk",n="/diagnostic",a=!0){this.streaming=Qe(e),this.polling=Qe(t),this.events=Qe(i),this.analyticsEventPath=r,this.diagnosticEventPath=n,this.includeAuthorizationHeader=a}}Ze.DEFAULT_EVENTS="https://events.launchdarkly.com",Ye.default=Ze,Object.defineProperty(ze,"__esModule",{value:!0}),ze.ClientContext=ze.ServiceEndpoints=ze.OptionMessages=ze.ApplicationTags=void 0;const et=He;ze.ApplicationTags=et.default;const tt=Xe;ze.ClientContext=tt.default;const it=qe;ze.OptionMessages=it.default;const rt=Ye;ze.ServiceEndpoints=rt.default;var nt={},at={},st={};Object.defineProperty(st,"__esModule",{value:!0}),st.isHttpLocallyRecoverable=st.isHttpRecoverable=st.LDTimeoutError=st.LDClientError=st.LDUnexpectedResponseError=st.LDStreamingError=st.LDPollingError=st.LDFileDataSourceError=void 0;class ot extends Error{constructor(e){super(e),this.name="LaunchDarklyFileDataSourceError"}}st.LDFileDataSourceError=ot;class lt extends Error{constructor(e,t){super(e),this.status=t,this.name="LaunchDarklyPollingError"}}st.LDPollingError=lt;class ut extends Error{constructor(e,t){super(e),this.code=t,this.name="LaunchDarklyStreamingError"}}st.LDStreamingError=ut;class ct extends Error{constructor(e){super(e),this.name="LaunchDarklyUnexpectedResponseError"}}st.LDUnexpectedResponseError=ct;class dt extends Error{constructor(e){super(e),this.name="LaunchDarklyClientError"}}st.LDClientError=dt;class ht extends Error{constructor(e){super(e),this.name="LaunchDarklyTimeoutError"}}function ft(e){return!(e>=400&&e<500)||(400===e||408===e||429===e)}st.LDTimeoutError=ht,st.isHttpRecoverable=ft,st.isHttpLocallyRecoverable=function(e){return 413===e||ft(e)},Object.defineProperty(at,"__esModule",{value:!0}),at.cancelableTimedPromise=void 0;const vt=st;at.cancelableTimedPromise=function(e,t){let i,r;return{promise:new Promise(((n,a)=>{r=n,i=setTimeout((()=>{const i=`${t} timed out after ${e} seconds.`;a(new vt.LDTimeoutError(i))}),1e3*e)})),cancel:()=>{r(),clearTimeout(i)}}};var gt={};Object.defineProperty(gt,"__esModule",{value:!0}),gt.default=function(e){return null==e?e:JSON.parse(JSON.stringify(e))};var pt={};Object.defineProperty(pt,"__esModule",{value:!0}),pt.secondsToMillis=void 0,pt.secondsToMillis=function(e){return Math.trunc(1e3*e)};var yt={};Object.defineProperty(yt,"__esModule",{value:!0});yt.default=(e,t=5e3)=>{let i;return(...r)=>{clearTimeout(i),i=setTimeout((()=>{e(...r)}),t)}};var mt={},bt={};Object.defineProperty(bt,"__esModule",{value:!0});bt.default=e=>"{}"===JSON.stringify(e),Object.defineProperty(mt,"__esModule",{value:!0});const Ot=bt,wt=(e,t)=>e?Object.entries(e).reduce(((e,[i,r])=>(!Boolean(r)||(0,Ot.default)(r)||(null==t?void 0:t.includes(i))||(e[i]="object"==typeof r?wt(r,t):r),e)),{}):e;mt.default=wt;var St={};Object.defineProperty(St,"__esModule",{value:!0}),St.default=function e(t,i){if(t===i)return!0;if(t&&i&&"object"==typeof t&&"object"==typeof i){if(t.constructor!==i.constructor)return!1;var r,n,a;if(Array.isArray(t)){if((r=t.length)!=i.length)return!1;for(n=r;0!=n--;)if(!e(t[n],i[n]))return!1;return!0}if(t instanceof Map&&i instanceof Map){if(t.size!==i.size)return!1;for(n of t.entries())if(!i.has(n[0]))return!1;for(n of t.entries())if(!e(n[1],i.get(n[0])))return!1;return!0}if(t instanceof Set&&i instanceof Set){if(t.size!==i.size)return!1;for(n of t.entries())if(!i.has(n[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(i)){if((r=t.length)!=i.length)return!1;for(n=r;0!=n--;)if(t[n]!==i[n])return!1;return!0}if(t.constructor===RegExp)return t.source===i.source&&t.flags===i.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===i.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===i.toString();if((r=(a=Object.keys(t)).length)!==Object.keys(i).length)return!1;for(n=r;0!=n--;)if(!Object.prototype.hasOwnProperty.call(i,a[n]))return!1;for(n=r;0!=n--;){var s=a[n];if(!e(t[s],i[s]))return!1}return!0}return t!=t&&i!=i};var Et={};Object.defineProperty(Et,"__esModule",{value:!0}),Et.base64UrlEncode=Et.shouldRetry=Et.httpErrorMessage=Et.defaultHeaders=void 0;const _t=st;Et.defaultHeaders=function(e,t,i,r=!0){const{userAgentBase:n,version:a,wrapperName:s,wrapperVersion:o}=t.sdkData(),l={"user-agent":`${null!=n?n:"NodeJSClient"}/${a}`};return r&&(l.authorization=e),s&&(l["x-launchdarkly-wrapper"]=o?`${s}/${o}`:s),(null==i?void 0:i.value)&&(l["x-launchdarkly-tags"]=i.value),l},Et.httpErrorMessage=function(e,t,i){let r;return r=e.status?`error ${e.status}${401===e.status?" (invalid SDK key)":""}`:`I/O error (${e.message||"unknown error"})`,`Received ${r} for ${t} - ${null!=i?i:"giving up permanently"}`},Et.shouldRetry=function({status:e}){return!e||(0,_t.isHttpRecoverable)(e)};Et.base64UrlEncode=(e,t)=>t.btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"");var kt={};Object.defineProperty(kt,"__esModule",{value:!0}),kt.default=()=>{};var Pt={};Object.defineProperty(Pt,"__esModule",{value:!0});Pt.default=async(e=1e3)=>new Promise((t=>{setTimeout(t,e)}));var Mt={};Object.defineProperty(Mt,"__esModule",{value:!0});const Dt=st;Mt.default=(e,t)=>new Promise(((i,r)=>{setTimeout((()=>{const i=`${t} timed out after ${e} seconds.`;r(new Dt.LDTimeoutError(i))}),1e3*e)})),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.cancelableTimedPromise=e.timedPromise=e.sleep=e.secondsToMillis=e.shouldRetry=e.noop=e.httpErrorMessage=e.fastDeepEqual=e.defaultHeaders=e.deepCompact=e.debounce=e.clone=e.base64UrlEncode=void 0;const t=at;Object.defineProperty(e,"cancelableTimedPromise",{enumerable:!0,get:function(){return t.cancelableTimedPromise}});const i=gt;e.clone=i.default;const r=pt;Object.defineProperty(e,"secondsToMillis",{enumerable:!0,get:function(){return r.secondsToMillis}});const n=yt;e.debounce=n.default;const a=mt;e.deepCompact=a.default;const s=St;e.fastDeepEqual=s.default;const o=Et;Object.defineProperty(e,"base64UrlEncode",{enumerable:!0,get:function(){return o.base64UrlEncode}}),Object.defineProperty(e,"defaultHeaders",{enumerable:!0,get:function(){return o.defaultHeaders}}),Object.defineProperty(e,"httpErrorMessage",{enumerable:!0,get:function(){return o.httpErrorMessage}}),Object.defineProperty(e,"shouldRetry",{enumerable:!0,get:function(){return o.shouldRetry}});const l=kt;e.noop=l.default;const u=Pt;e.sleep=u.default;const c=Mt;e.timedPromise=c.default}(nt);var xt={},jt={},Tt={};Object.defineProperty(Tt,"__esModule",{value:!0});Tt.default=class{constructor(e,t,i){this.platform=t,this.diagnosticInitConfig=i,this.streamInits=[],this.startTime=Date.now(),this.dataSinceDate=this.startTime,this.id={diagnosticId:t.crypto.randomUUID(),sdkKeySuffix:e.length>6?e.substring(e.length-6):e}}createInitEvent(){var e,t,i;const r=this.platform.info.sdkData(),n=this.platform.info.platformData();return{kind:"diagnostic-init",id:this.id,creationDate:this.startTime,sdk:r,configuration:this.diagnosticInitConfig,platform:Object.assign({name:n.name,osArch:null===(e=n.os)||void 0===e?void 0:e.arch,osName:null===(t=n.os)||void 0===t?void 0:t.name,osVersion:null===(i=n.os)||void 0===i?void 0:i.version},n.additional||{})}}recordStreamInit(e,t,i){const r={timestamp:e,failed:t,durationMillis:i};this.streamInits.push(r)}createStatsEventAndReset(e,t,i){const r=Date.now(),n={kind:"diagnostic",id:this.id,creationDate:r,dataSinceDate:this.dataSinceDate,droppedEvents:e,deduplicatedUsers:t,eventsInLastBatch:i,streamInits:this.streamInits};return this.streamInits=[],this.dataSinceDate=r,n}},Object.defineProperty(jt,"__esModule",{value:!0}),jt.DiagnosticsManager=void 0;const Ct=Tt;jt.DiagnosticsManager=Ct.default;var It,Ft,Rt={},Vt={};Object.defineProperty(Vt,"__esModule",{value:!0}),(Ft=It||(It={})).MalformedFlag="MALFORMED_FLAG",Ft.UserNotSpecified="USER_NOT_SPECIFIED",Ft.FlagNotFound="FLAG_NOT_FOUND",Ft.ClientNotReady="CLIENT_NOT_READY",Ft.WrongType="WRONG_TYPE",Vt.default=It;var At={};Object.defineProperty(At,"__esModule",{value:!0}),At.createSuccessEvaluationDetail=At.createErrorEvaluationDetail=void 0;At.createErrorEvaluationDetail=(e,t)=>({value:null!=t?t:null,variationIndex:null,reason:{kind:"ERROR",errorKind:e}});At.createSuccessEvaluationDetail=(e,t,i)=>({value:e,variationIndex:null!=t?t:null,reason:null!=i?i:null});var Lt={},Nt={},Kt={};Object.defineProperty(Kt,"__esModule",{value:!0});let $t=class{static invalidMetricValue(e){return`The track function was called with a non-numeric "metricValue" (${e}), only numeric metric values are supported.`}};$t.missingContextKeyNoEvent="Context was unspecified or had no key; event will not be sent",Kt.default=$t;var Ut={},Bt={};Object.defineProperty(Bt,"__esModule",{value:!0});const zt=Se,Ht=st,qt=nt;Bt.default=class{constructor(e){const{basicConfiguration:t,platform:i}=e,{sdkKey:r,serviceEndpoints:{events:n,analyticsEventPath:a,diagnosticEventPath:s,includeAuthorizationHeader:o},tags:l}=t,{crypto:u,info:c,requests:d}=i;this.defaultHeaders=(0,qt.defaultHeaders)(r,c,l,o),this.eventsUri=`${n}${a}`,this.diagnosticEventsUri=`${n}${s}`,this.requests=d,this.crypto=u}async tryPostingEvents(e,t,i,r){const n={status:zt.LDDeliveryStatus.Succeeded},a=Object.assign(Object.assign({},this.defaultHeaders),{"content-type":"application/json"});let s;i&&(a["x-launchdarkly-payload-id"]=i,a["x-launchDarkly-event-schema"]="4");try{const{status:i,headers:r}=await this.requests.fetch(t,{headers:a,body:JSON.stringify(e),method:"POST"}),o=Date.parse(r.get("date")||"");if(o&&(n.serverTime=o),i<=204)return n;if(s=new Ht.LDUnexpectedResponseError((0,qt.httpErrorMessage)({status:i,message:"some events were dropped"},"event posting")),!(0,Ht.isHttpRecoverable)(i))return(0,Ht.isHttpLocallyRecoverable)(i)?n.status=zt.LDDeliveryStatus.Failed:n.status=zt.LDDeliveryStatus.FailedAndMustShutDown,n.error=s,n}catch(e){s=e}return s&&!r?(n.status=zt.LDDeliveryStatus.Failed,n.error=s,n):(await(0,qt.sleep)(),this.tryPostingEvents(e,this.eventsUri,i,!1))}async sendEventData(e,t){const i=e===zt.LDEventType.AnalyticsEvents?this.crypto.randomUUID():void 0,r=e===zt.LDEventType.AnalyticsEvents?this.eventsUri:this.diagnosticEventsUri;return this.tryPostingEvents(t,r,i,!0)}};var Wt={},Jt={};Object.defineProperty(Jt,"__esModule",{value:!0}),Jt.isMigration=Jt.isIdentify=Jt.isCustom=Jt.isFeature=void 0,Jt.isFeature=function(e){return"feature"===e.kind},Jt.isCustom=function(e){return"custom"===e.kind},Jt.isIdentify=function(e){return"identify"===e.kind},Jt.isMigration=function(e){return"migration_op"===e.kind};var Gt={};Object.defineProperty(Gt,"__esModule",{value:!0});Gt.default=class{constructor(e,t,i,r,n,a){this.count=e,this.key=t,this.value=i,this.version=n,this.variation=a,this.default=r}increment(){this.count+=1}},Object.defineProperty(Wt,"__esModule",{value:!0});const Xt=Jt,Yt=Gt;Wt.default=class{constructor(){this.startDate=0,this.endDate=0,this.counters={},this.contextKinds={}}summarizeEvent(e){if((0,Xt.isFeature)(e)&&!e.excludeFromSummaries){const t=function(e){return`${e.key}:${null!==e.variation&&void 0!==e.variation?e.variation:""}:${null!==e.version&&void 0!==e.version?e.version:""}`}(e),i=this.counters[t];let r=this.contextKinds[e.key];r||(r=new Set,this.contextKinds[e.key]=r),e.context.kinds.forEach((e=>r.add(e))),i?i.increment():this.counters[t]=new Yt.default(1,e.key,e.value,e.default,e.version,e.variation),(0===this.startDate||e.creationDate<this.startDate)&&(this.startDate=e.creationDate),e.creationDate>this.endDate&&(this.endDate=e.creationDate)}}getSummary(){const e=Object.values(this.counters).reduce(((e,t)=>{let i=e[t.key];i||(i={default:t.default,counters:[],contextKinds:[...this.contextKinds[t.key]]},e[t.key]=i);const r={value:t.value,count:t.count};return void 0!==t.variation&&null!==t.variation&&(r.variation=t.variation),void 0!==t.version&&null!==t.version?r.version=t.version:r.unknown=!0,i.counters.push(r),e}),{});return{startDate:this.startDate,endDate:this.endDate,features:e,kind:"summary"}}clearSummary(){this.startDate=0,this.endDate=0,this.counters={},this.contextKinds={}}};var Qt={};Object.defineProperty(Qt,"__esModule",{value:!0});class Zt extends Error{constructor(e){super(e),this.name="LaunchDarklyInvalidSDKKeyError"}}Qt.default=Zt;var ei={};Object.defineProperty(ei,"__esModule",{value:!0}),ei.default=function(e){const t=Math.trunc(e);return 1===t||0!==t&&0===Math.floor(Math.random()*t)},Object.defineProperty(Ut,"__esModule",{value:!0});const ti=Se,ii=l,ri=R,ni=Bt,ai=Wt,si=Jt,oi=Qt,li=ei;Ut.default=class{constructor(e,t,i,r,n=!0){this.config=e,this.contextDeduplicator=i,this.diagnosticsManager=r,this.summarizer=new ai.default,this.queue=[],this.lastKnownPastTime=0,this.droppedEvents=0,this.deduplicatedUsers=0,this.exceededCapacity=!1,this.eventsInLastBatch=0,this.shutdown=!1,this.flushUsersTimer=null,this.capacity=e.eventsCapacity,this.logger=t.basicConfiguration.logger,this.eventSender=new ni.default(t),this.contextFilter=new ri.default(e.allAttributesPrivate,e.privateAttributes.map((e=>new ii.default(e)))),n&&this.start()}start(){var e,t;if(void 0!==(null===(e=this.contextDeduplicator)||void 0===e?void 0:e.flushInterval)&&(this.flushUsersTimer=setInterval((()=>{var e;null===(e=this.contextDeduplicator)||void 0===e||e.flush()}),1e3*this.contextDeduplicator.flushInterval)),this.flushTimer=setInterval((async()=>{var e;try{await this.flush()}catch(t){null===(e=this.logger)||void 0===e||e.debug(`Flush failed: ${t}`)}}),1e3*this.config.flushInterval),this.diagnosticsManager){const e=this.diagnosticsManager.createInitEvent();this.postDiagnosticEvent(e),this.diagnosticsTimer=setInterval((()=>{const e=this.diagnosticsManager.createStatsEventAndReset(this.droppedEvents,this.deduplicatedUsers,this.eventsInLastBatch);this.droppedEvents=0,this.deduplicatedUsers=0,this.postDiagnosticEvent(e)}),1e3*this.config.diagnosticRecordingInterval)}null===(t=this.logger)||void 0===t||t.debug("Started EventProcessor.")}postDiagnosticEvent(e){this.eventSender.sendEventData(ti.LDEventType.DiagnosticEvent,e)}close(){clearInterval(this.flushTimer),this.flushUsersTimer&&clearInterval(this.flushUsersTimer),this.diagnosticsTimer&&clearInterval(this.diagnosticsTimer)}async flush(){var e;if(this.shutdown)throw new oi.default("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.");const t=this.queue;this.queue=[];const i=this.summarizer.getSummary();this.summarizer.clearSummary(),Object.keys(i.features).length&&t.push(i),t.length&&(this.eventsInLastBatch=t.length,null===(e=this.logger)||void 0===e||e.debug("Flushing %d events",t.length),await this.tryPostingEvents(t))}sendEvent(e){var t;if(this.shutdown)return;if((0,si.isMigration)(e)){if((0,li.default)(e.samplingRatio)){const t=Object.assign({},e);1===t.samplingRatio&&delete t.samplingRatio,this.enqueue(t)}return}this.summarizer.summarizeEvent(e);const i=(0,si.isFeature)(e),r=i&&e.trackEvents||!i,n=this.shouldDebugEvent(e),a=(0,si.isIdentify)(e),s=null===(t=this.contextDeduplicator)||void 0===t?void 0:t.processContext(e.context);s||a||(this.deduplicatedUsers+=1);s&&!a&&this.enqueue(this.makeOutputEvent({kind:"index",creationDate:e.creationDate,context:e.context,samplingRatio:1},!1)),r&&(0,li.default)(e.samplingRatio)&&this.enqueue(this.makeOutputEvent(e,!1)),n&&(0,li.default)(e.samplingRatio)&&this.enqueue(this.makeOutputEvent(e,!0))}makeOutputEvent(e,t){switch(e.kind){case"feature":{const i={kind:t?"debug":"feature",creationDate:e.creationDate,context:this.contextFilter.filter(e.context,!t),key:e.key,value:e.value,default:e.default};return 1!==e.samplingRatio&&(i.samplingRatio=e.samplingRatio),e.prereqOf&&(i.prereqOf=e.prereqOf),void 0!==e.variation&&(i.variation=e.variation),void 0!==e.version&&(i.version=e.version),e.reason&&(i.reason=e.reason),i}case"index":case"identify":{const t={kind:e.kind,creationDate:e.creationDate,context:this.contextFilter.filter(e.context)};return 1!==e.samplingRatio&&(t.samplingRatio=e.samplingRatio),t}case"custom":{const t={kind:"custom",creationDate:e.creationDate,key:e.key,contextKeys:e.context.kindsAndKeys};return 1!==e.samplingRatio&&(t.samplingRatio=e.samplingRatio),void 0!==e.data&&(t.data=e.data),void 0!==e.metricValue&&(t.metricValue=e.metricValue),t}default:return e}}enqueue(e){var t;this.queue.length<this.capacity?(this.queue.push(e),this.exceededCapacity=!1):(this.exceededCapacity||(this.exceededCapacity=!0,null===(t=this.logger)||void 0===t||t.warn("Exceeded event queue capacity. Increase capacity to avoid dropping events.")),this.droppedEvents+=1)}shouldDebugEvent(e){return(0,si.isFeature)(e)&&e.debugEventsUntilDate&&e.debugEventsUntilDate>this.lastKnownPastTime&&e.debugEventsUntilDate>Date.now()}async tryPostingEvents(e){const t=await this.eventSender.sendEventData(ti.LDEventType.AnalyticsEvents,e);if(t.status===ti.LDDeliveryStatus.FailedAndMustShutDown&&(this.shutdown=!0),t.serverTime&&(this.lastKnownPastTime=t.serverTime),t.error)throw t.error}};var ui={};Object.defineProperty(ui,"__esModule",{value:!0});ui.default=class{constructor(e,t,i,r,n=1){this.context=e,this.key=t,this.data=i,this.metricValue=r,this.samplingRatio=n,this.kind="custom",this.creationDate=Date.now(),this.context=e}};var ci={};Object.defineProperty(ci,"__esModule",{value:!0});ci.default=class{constructor(e,t,i,r,n,a,s,o,l,u,c,d,h=1){this.withReasons=e,this.context=t,this.key=i,this.samplingRatio=h,this.kind="feature",this.creationDate=Date.now(),this.value=r,this.default=n,void 0!==a&&(this.version=a),void 0!==s&&(this.variation=s),void 0!==o&&(this.trackEvents=o),void 0!==l&&(this.prereqOf=l),void 0!==u&&(this.reason=u),void 0!==c&&(this.debugEventsUntilDate=c),void 0!==d&&(this.excludeFromSummaries=d)}};var di={};Object.defineProperty(di,"__esModule",{value:!0});di.default=class{constructor(e,t=1){this.context=e,this.samplingRatio=t,this.kind="identify",this.creationDate=Date.now()}};var hi={};Object.defineProperty(hi,"__esModule",{value:!0});hi.default=class{close(){}async flush(){}sendEvent(){}},Object.defineProperty(Nt,"__esModule",{value:!0}),Nt.NullEventProcessor=Nt.shouldSample=Nt.EventProcessor=Nt.InputIdentifyEvent=Nt.InputEvalEvent=Nt.InputCustomEvent=Nt.ClientMessages=void 0;const fi=Kt;Nt.ClientMessages=fi.default;const vi=Ut;Nt.EventProcessor=vi.default;const gi=ui;Nt.InputCustomEvent=gi.default;const pi=ci;Nt.InputEvalEvent=pi.default;const yi=di;Nt.InputIdentifyEvent=yi.default;const mi=hi;Nt.NullEventProcessor=mi.default;const bi=ei;Nt.shouldSample=bi.default,Object.defineProperty(Lt,"__esModule",{value:!0});const Oi=Nt;Lt.default=class{constructor(e){this.withReasons=e}evalEvent(e){var t;return new Oi.InputEvalEvent(this.withReasons,e.context,e.flagKey,e.value,e.defaultVal,e.version,null!==(t=e.variation)&&void 0!==t?t:void 0,e.trackEvents||e.addExperimentData,e.prereqOfFlagKey,this.withReasons||e.addExperimentData?e.reason:void 0,e.debugEventsUntilDate,e.excludeFromSummaries,e.samplingRatio)}unknownFlagEvent(e,t,i){return new Oi.InputEvalEvent(this.withReasons,i,e,t,t,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}identifyEvent(e){return new Oi.InputIdentifyEvent(e,1)}customEvent(e,t,i,r,n=1){return new Oi.InputCustomEvent(t,e,null!=i?i:void 0,null!=r?r:void 0,n)}},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.EventFactoryBase=e.ErrorKinds=e.createErrorEvaluationDetail=e.createSuccessEvaluationDetail=void 0;const t=Vt;e.ErrorKinds=t.default;const i=At;Object.defineProperty(e,"createErrorEvaluationDetail",{enumerable:!0,get:function(){return i.createErrorEvaluationDetail}}),Object.defineProperty(e,"createSuccessEvaluationDetail",{enumerable:!0,get:function(){return i.createSuccessEvaluationDetail}});const r=Lt;e.EventFactoryBase=r.default}(Rt);var wi={},Si={};Object.defineProperty(Si,"__esModule",{value:!0});const Ei=st,_i=nt;Si.default=class{constructor(e,t,i,r,n,a,s=1){this.listeners=r,this.diagnosticsManager=n,this.errorHandler=a,this.streamInitialReconnectDelay=s;const{basicConfiguration:o,platform:l}=t,{logger:u,tags:c}=o,{info:d,requests:h}=l;this.headers=(0,_i.defaultHeaders)(e,d,c),this.logger=u,this.requests=h,this.streamUri=`${o.serviceEndpoints.streaming}${i}`}logConnectionStarted(){this.connectionAttemptStartTime=Date.now()}logConnectionResult(e){this.connectionAttemptStartTime&&this.diagnosticsManager&&this.diagnosticsManager.recordStreamInit(this.connectionAttemptStartTime,!e,Date.now()-this.connectionAttemptStartTime),this.connectionAttemptStartTime=void 0}retryAndHandleError(e){var t,i,r;return(0,_i.shouldRetry)(e)?(null===(r=this.logger)||void 0===r||r.warn((0,_i.httpErrorMessage)(e,"streaming request","will retry")),this.logConnectionResult(!1),this.logConnectionStarted(),!0):(this.logConnectionResult(!1),null===(t=this.errorHandler)||void 0===t||t.call(this,new Ei.LDStreamingError(e.message,e.status)),null===(i=this.logger)||void 0===i||i.error((0,_i.httpErrorMessage)(e,"streaming request")),!1)}start(){this.logConnectionStarted();const e=this.requests.createEventSource(this.streamUri,{headers:this.headers,errorFilter:e=>this.retryAndHandleError(e),initialRetryDelayMillis:1e3*this.streamInitialReconnectDelay,readTimeoutMillis:3e5,retryResetIntervalMillis:6e4});this.eventSource=e,e.onclose=()=>{var e;null===(e=this.logger)||void 0===e||e.info("Closed LaunchDarkly stream connection")},e.onerror=()=>{},e.onopen=()=>{var e;null===(e=this.logger)||void 0===e||e.info("Opened LaunchDarkly stream connection")},e.onretrying=e=>{var t;null===(t=this.logger)||void 0===t||t.info(`Will retry stream connection in ${e.delayMillis} milliseconds`)},this.listeners.forEach((({deserializeData:t,processJson:i},r)=>{e.addEventListener(r,(e=>{var n,a;if(null===(n=this.logger)||void 0===n||n.debug(`Received ${r} event`),null==e?void 0:e.data){this.logConnectionResult(!0);const{data:n}=e,a=t(n);if(!a)return void((e,t,i,r)=>{null==i||i.error(`Stream received invalid data in "${e}" message`),null==i||i.debug(`Invalid JSON follows: ${t}`),null==r||r(new Ei.LDStreamingError("Malformed JSON data in event stream"))})(r,n,this.logger,this.errorHandler);i(a)}else null===(a=this.errorHandler)||void 0===a||a.call(this,new Ei.LDStreamingError("Unexpected payload from event stream"))}))}))}stop(){var e;null===(e=this.eventSource)||void 0===e||e.close(),this.eventSource=void 0}close(){this.stop()}},Object.defineProperty(wi,"__esModule",{value:!0}),wi.StreamingProcessor=void 0;const ki=Si;wi.StreamingProcessor=ki.default,function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(jt,e),i(Rt,e),i(Nt,e),i(wi,e),i(h,e)}(xt),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.ContextFilter=e.Context=e.AttributeReference=e.internal=void 0;const n=l;e.AttributeReference=n.default;const a=d;e.Context=a.default;const s=R;e.ContextFilter=s.default,i(N,e),i(f,e),i(_e,e),i(ze,e),i(nt,e),e.internal=xt,i(st,e)}(o);var Pi={},Mi={},Di={};Object.defineProperty(Di,"__esModule",{value:!0});var xi={};Object.defineProperty(xi,"__esModule",{value:!0});var ji,Ti,Ci={};Object.defineProperty(Ci,"__esModule",{value:!0}),Ci.IsMigrationStage=Ci.LDMigrationStage=void 0,(Ti=ji||(Ci.LDMigrationStage=ji={})).Off="off",Ti.DualWrite="dualwrite",Ti.Shadow="shadow",Ti.Live="live",Ti.RampDown="rampdown",Ti.Complete="complete",Ci.IsMigrationStage=function(e){return Object.values(ji).includes(e)};var Ii={};Object.defineProperty(Ii,"__esModule",{value:!0});var Fi,Ri,Vi={};Object.defineProperty(Vi,"__esModule",{value:!0}),Vi.LDConsistencyCheck=void 0,(Ri=Fi||(Vi.LDConsistencyCheck=Fi={}))[Ri.Inconsistent=0]="Inconsistent",Ri[Ri.Consistent=1]="Consistent",Ri[Ri.NotChecked=2]="NotChecked",function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(Di,e),i(xi,e),i(Ci,e),i(Ii,e),i(Vi,e)}(Mi);var Ai={},Li={};Object.defineProperty(Li,"__esModule",{value:!0});var Ni={};Object.defineProperty(Ni,"__esModule",{value:!0});var Ki={};Object.defineProperty(Ki,"__esModule",{value:!0});var $i={};Object.defineProperty($i,"__esModule",{value:!0});var Ui,Bi,zi,Hi,qi={};Object.defineProperty(qi,"__esModule",{value:!0}),qi.LDConcurrentExecution=qi.LDSerialExecution=qi.LDExecution=qi.LDExecutionOrdering=void 0,(Bi=Ui||(qi.LDExecutionOrdering=Ui={}))[Bi.Fixed=0]="Fixed",Bi[Bi.Random=1]="Random",(Hi=zi||(qi.LDExecution=zi={}))[Hi.Serial=0]="Serial",Hi[Hi.Concurrent=1]="Concurrent";qi.LDSerialExecution=class{constructor(e){this.ordering=e,this.type=zi.Serial}};qi.LDConcurrentExecution=class{constructor(){this.type=zi.Concurrent}},function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(Li,e),i(Ni,e),i(Ki,e),i($i,e),i(qi,e)}(Ai);var Wi={};Object.defineProperty(Wi,"__esModule",{value:!0});var Ji={};Object.defineProperty(Ji,"__esModule",{value:!0});var Gi={};Object.defineProperty(Gi,"__esModule",{value:!0});var Xi={};Object.defineProperty(Xi,"__esModule",{value:!0});var Yi={};Object.defineProperty(Yi,"__esModule",{value:!0});var Qi={},Zi={};Object.defineProperty(Zi,"__esModule",{value:!0});var er={};Object.defineProperty(er,"__esModule",{value:!0}),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(Zi,e),i(er,e)}(Qi);var tr={},ir={};Object.defineProperty(ir,"__esModule",{value:!0});var rr={};Object.defineProperty(rr,"__esModule",{value:!0});var nr={};Object.defineProperty(nr,"__esModule",{value:!0});var ar={};Object.defineProperty(ar,"__esModule",{value:!0});var sr={};Object.defineProperty(sr,"__esModule",{value:!0});var or={};Object.defineProperty(or,"__esModule",{value:!0});var lr={};Object.defineProperty(lr,"__esModule",{value:!0});var ur={};Object.defineProperty(ur,"__esModule",{value:!0});var cr={};Object.defineProperty(cr,"__esModule",{value:!0});var dr={};Object.defineProperty(dr,"__esModule",{value:!0}),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(ir,e),i(rr,e),i(nr,e),i(ar,e),i(sr,e),i(Gi,e),i(or,e),i(lr,e),i(ur,e),i(cr,e),i(dr,e)}(tr);var hr={},fr={};Object.defineProperty(fr,"__esModule",{value:!0});var vr={};Object.defineProperty(vr,"__esModule",{value:!0}),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(fr,e),i(Xi,e),i(vr,e)}(hr),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.subsystems=e.interfaces=e.integrations=void 0,i(Mi,e),i(Ai,e),i(Wi,e),i(Ji,e),i(Gi,e),i(Xi,e),i(Yi,e),e.integrations=Qi,e.interfaces=tr,e.subsystems=hr}(Pi);var gr={},pr={};Object.defineProperty(pr,"__esModule",{value:!0});pr.default=class{constructor(e){this.keyMap=new Map,this.head=0,this.tail=0,this.size=0;const{max:t}=e;this.max=t,this.values=new Array(t),this.keys=new Array(t),this.next=new Uint32Array(t),this.prev=new Uint32Array(t),e.maxAge?(this.lastUpdated=new Array(t).fill(0),this.maxAge=e.maxAge):(this.lastUpdated=[],this.maxAge=0)}set(e,t){let i=this.keyMap.get(e);void 0===i?(i=this.index(),this.keys[i]=e,this.keyMap.set(e,i),this.next[this.tail]=i,this.prev[i]=this.tail,this.tail=i,this.size+=1):this.setTail(i),this.values[i]=t,this.maxAge&&(this.lastUpdated[i]=Date.now())}get(e){const t=this.keyMap.get(e);if(void 0!==t){if(this.maxAge){const e=this.lastUpdated[t];if(Date.now()-e>this.maxAge)return}return this.setTail(t),this.maxAge&&(this.lastUpdated[t]=Date.now()),this.values[t]}}clear(){this.head=0,this.tail=0,this.size=0,this.values.fill(void 0),this.keys.fill(void 0),this.next.fill(0),this.prev.fill(0),this.keyMap.clear()}index(){return 0===this.size?this.tail:this.size===this.max?this.evict():this.size}evict(){const{head:e}=this,t=this.keys[e];return this.head=this.next[e],this.keyMap.delete(t),this.size-=1,e}link(e,t){this.prev[t]=e,this.next[e]=t}setTail(e){e!==this.tail&&(e===this.head?this.head=this.next[e]:this.link(this.prev[e],this.next[e]),this.link(this.tail,e),this.tail=e)}},Object.defineProperty(gr,"__esModule",{value:!0});const yr=o,mr=a,br=pr;gr.default=class{constructor(e,t,i,r){this.store=e,this.logger=i,this.crypto=r,this.statusProvider=new mr.default((async()=>this.pollStoreAndUpdateStatus())),this.staleTimeMs=1e3*(yr.TypeValidators.Number.is(t.staleAfter)&&t.staleAfter>0?t.staleAfter:120);const n=1e3*(yr.TypeValidators.Number.is(t.statusPollInterval)&&t.statusPollInterval>0?t.statusPollInterval:5);this.pollHandle=e?setInterval((()=>this.pollStoreAndUpdateStatus()),n):null,e&&(this.cache=new br.default({max:t.userCacheSize||1e3,maxAge:1e3*(t.userCacheTime||5)}))}close(){this.pollHandle&&(clearInterval(this.pollHandle),this.pollHandle=void 0),this.store&&this.store.close()}async getUserMembership(e){var t,i,r;if(!this.store)return;const n=null===(t=this.cache)||void 0===t?void 0:t.get(e);let a;if(n)a=n.membership;else try{a=await this.store.getUserMembership(this.hashForUserKey(e));const t={membership:a};null===(i=this.cache)||void 0===i||i.set(e,t)}catch(e){return null===(r=this.logger)||void 0===r||r.error(`Big Segment store membership query returned error: ${e}`),[null,"STORE_ERROR"]}this.statusProvider.getStatus()||await this.pollStoreAndUpdateStatus();const s=this.statusProvider.getStatus();return s.available?[a||null,s.stale?"STALE":"HEALTHY"]:[a||null,"STORE_ERROR"]}async pollStoreAndUpdateStatus(){var e,t,i;if(!this.store)return void this.statusProvider.setStatus({available:!1,stale:!1});let r;null===(e=this.logger)||void 0===e||e.debug("Querying Big Segment store status");try{const e=await this.store.getMetadata();r={available:!0,stale:!e||!e.lastUpToDate||this.isStale(e.lastUpToDate)}}catch(e){null===(t=this.logger)||void 0===t||t.error(`Big Segment store status query returned error: ${e}`),r={available:!1,stale:!1}}const n=this.statusProvider.getStatus();n&&n.available===r.available&&n.stale===r.stale||(null===(i=this.logger)||void 0===i||i.debug("Big Segment store status changed from %s to %s",JSON.stringify(n),JSON.stringify(r)),this.statusProvider.setStatus(r),this.statusProvider.notify())}hashForUserKey(e){const t=this.crypto.createHash("sha256");return t.update(e),t.digest("base64")}isStale(e){return Date.now()-e>=this.staleTimeMs}};var Or={},wr={},Sr={};Object.defineProperty(Sr,"__esModule",{value:!0});class Er{static getKeyFromPath(e,t){return t.startsWith(e.streamApiPath)?t.substring(e.streamApiPath.length):void 0}}Er.Features={namespace:"features",streamApiPath:"/flags/"},Er.Segments={namespace:"segments",streamApiPath:"/segments/"},Sr.default=Er,Object.defineProperty(wr,"__esModule",{value:!0}),wr.deserializeSegment=wr.serializeSegment=wr.deserializeFlag=wr.serializeFlag=wr.deserializeDelete=wr.deserializePatch=wr.deserializePoll=wr.deserializeAll=wr.processSegment=wr.processFlag=wr.replacer=wr.reviver=void 0;const _r=o,kr=Sr,Pr=100;function Mr(e,t){if(null!==t)return t}function Dr(e,t){if(!(t instanceof _r.AttributeReference||Array.isArray(t)&&t[0]&&t[0]instanceof _r.AttributeReference))return t.generated_includedSet&&(t.included=[...t.generated_includedSet],delete t.generated_includedSet),t.generated_excludedSet&&(t.excluded=[...t.generated_excludedSet],delete t.generated_excludedSet),t.includedContexts&&t.includedContexts.forEach((e=>{e.generated_valuesSet&&(e.values=[...e.generated_valuesSet]),delete e.generated_valuesSet})),t.excludedContexts&&t.excludedContexts.forEach((e=>{e.generated_valuesSet&&(e.values=[...e.generated_valuesSet]),delete e.generated_valuesSet})),t}function xr(e){e&&e.bucketBy&&(e.bucketByAttributeReference=new _r.AttributeReference(e.bucketBy,!e.contextKind))}function jr(e){var t;if(e.fallthrough&&e.fallthrough.rollout){xr(e.fallthrough.rollout)}null===(t=null==e?void 0:e.rules)||void 0===t||t.forEach((e=>{var t;xr(e.rollout),null===(t=null==e?void 0:e.clauses)||void 0===t||t.forEach((e=>{e&&e.attribute?e.attributeReference=new _r.AttributeReference(e.attribute,!e.contextKind):e&&(e.attributeReference=_r.AttributeReference.invalidReference)}))}))}function Tr(e){var t,i,r,n,a;(null===(t=null==e?void 0:e.included)||void 0===t?void 0:t.length)&&e.included.length>Pr&&(e.generated_includedSet=new Set(e.included),delete e.included),(null===(i=null==e?void 0:e.excluded)||void 0===i?void 0:i.length)&&e.excluded.length>Pr&&(e.generated_excludedSet=new Set(e.excluded),delete e.excluded),(null===(r=null==e?void 0:e.includedContexts)||void 0===r?void 0:r.length)&&e.includedContexts.forEach((e=>{var t;(null===(t=null==e?void 0:e.values)||void 0===t?void 0:t.length)&&e.values.length>Pr&&(e.generated_valuesSet=new Set(e.values),e.values=[])})),(null===(n=null==e?void 0:e.excludedContexts)||void 0===n?void 0:n.length)&&e.excludedContexts.forEach((e=>{var t;(null===(t=null==e?void 0:e.values)||void 0===t?void 0:t.length)&&e.values.length>Pr&&(e.generated_valuesSet=new Set(e.values),e.values=[])})),null===(a=null==e?void 0:e.rules)||void 0===a||a.forEach((e=>{var t;e.bucketBy&&(e.bucketByAttributeReference=new _r.AttributeReference(e.bucketBy,!e.rolloutContextKind)),null===(t=null==e?void 0:e.clauses)||void 0===t||t.forEach((e=>{e&&e.attribute?e.attributeReference=new _r.AttributeReference(e.attribute,!e.contextKind):e&&(e.attributeReference=_r.AttributeReference.invalidReference)}))}))}function Cr(e){try{return JSON.parse(e,Mr)}catch(e){return}}wr.reviver=Mr,wr.replacer=Dr,wr.processFlag=jr,wr.processSegment=Tr,wr.deserializeAll=function(e){var t,i;const r=Cr(e);if(r)return Object.values((null===(t=null==r?void 0:r.data)||void 0===t?void 0:t.flags)||[]).forEach((e=>{jr(e)})),Object.values((null===(i=null==r?void 0:r.data)||void 0===i?void 0:i.segments)||[]).forEach((e=>{Tr(e)})),r},wr.deserializePoll=function(e){const t=Cr(e);if(t)return Object.values((null==t?void 0:t.flags)||[]).forEach((e=>{jr(e)})),Object.values((null==t?void 0:t.segments)||[]).forEach((e=>{Tr(e)})),t},wr.deserializePatch=function(e){const t=Cr(e);if(t)return t.path.startsWith(kr.default.Features.streamApiPath)?(jr(t.data),t.kind=kr.default.Features):t.path.startsWith(kr.default.Segments.streamApiPath)&&(Tr(t.data),t.kind=kr.default.Segments),t},wr.deserializeDelete=function(e){const t=Cr(e);if(t)return t.path.startsWith(kr.default.Features.streamApiPath)?t.kind=kr.default.Features:t.path.startsWith(kr.default.Segments.streamApiPath)&&(t.kind=kr.default.Segments),t},wr.serializeFlag=function(e){return JSON.stringify(e,Dr)},wr.deserializeFlag=function(e){const t=Cr(e);if(t)return jr(t),t},wr.serializeSegment=function(e){return JSON.stringify(e,Dr)},wr.deserializeSegment=function(e){const t=Cr(e);if(t)return Tr(t),t},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.createStreamListeners=e.createDeleteListener=e.createPatchListener=e.createPutListener=void 0;const t=wr,i=Sr;e.createPutListener=(e,r,n=(()=>{}))=>({deserializeData:t.deserializeAll,processJson:async({data:{flags:t,segments:a}})=>{const s={[i.default.Features.namespace]:t,[i.default.Segments.namespace]:a};null==r||r.debug("Initializing all data"),e.init(s,n)}});e.createPatchListener=(e,r,n=(()=>{}))=>({deserializeData:t.deserializePatch,processJson:async({data:t,kind:a,path:s})=>{if(a){const o=i.default.getKeyFromPath(a,s);o&&(null==r||r.debug(`Updating ${o} in ${a.namespace}`),e.upsert(a,t,n))}}});e.createDeleteListener=(e,r,n=(()=>{}))=>({deserializeData:t.deserializeDelete,processJson:async({kind:t,path:a,version:s})=>{if(t){const o=i.default.getKeyFromPath(t,a);o&&(null==r||r.debug(`Deleting ${o} in ${t.namespace}`),e.upsert(t,{key:o,version:s,deleted:!0},n))}}});e.createStreamListeners=(t,i,r)=>{const n=new Map;return n.set("put",(0,e.createPutListener)(t,i,null==r?void 0:r.put)),n.set("patch",(0,e.createPatchListener)(t,i,null==r?void 0:r.patch)),n.set("delete",(0,e.createDeleteListener)(t,i,null==r?void 0:r.delete)),n}}(Or);var Ir={},Fr={},Rr={};Object.defineProperty(Rr,"__esModule",{value:!0});Rr.default=class{constructor(){this.itemsByNamespace={}}get(e,t){var i;return null===(i=this.itemsByNamespace[e])||void 0===i?void 0:i[t]}set(e,t,i){e in this.itemsByNamespace||(this.itemsByNamespace[e]={}),this.itemsByNamespace[e][t]=i}remove(e,t){const i=this.itemsByNamespace[e];i&&delete i[t]}removeAll(){this.itemsByNamespace={}}enumerate(e){Object.entries(this.itemsByNamespace).forEach((([t,i])=>{Object.entries(i).forEach((([i,r])=>{e(t,i,r)}))}))}mergeFrom(e){e.enumerate(this.set.bind(this))}},Object.defineProperty(Fr,"__esModule",{value:!0});const Vr=Rr;Fr.default=class{constructor(){this.dependenciesFrom=new Vr.default,this.dependenciesTo=new Vr.default}updateDependenciesFrom(e,t,i){const r=this.dependenciesFrom.get(e,t);null==r||r.enumerate(((i,r)=>{const n=this.dependenciesTo.get(i,r);null==n||n.remove(e,t)})),this.dependenciesFrom.set(e,t,i),null==i||i.enumerate(((i,r)=>{let n=this.dependenciesTo.get(i,r);n||(n=new Vr.default,this.dependenciesTo.set(i,r,n)),n.set(e,t,!0)}))}updateModifiedItems(e,t,i){if(!e.get(t,i)){e.set(t,i,!0);const r=this.dependenciesTo.get(t,i);null==r||r.enumerate(((t,i)=>{this.updateModifiedItems(e,t,i)}))}}reset(){this.dependenciesFrom.removeAll(),this.dependenciesTo.removeAll()}},Object.defineProperty(Ir,"__esModule",{value:!0});const Ar=Sr,Lr=Fr,Nr=Rr;function Kr(e,t){var i,r;const n=new Nr.default,a=e===Ar.default.Features.namespace,s=e===Ar.default.Segments.namespace;if(a){const r=t;null===(i=null==r?void 0:r.prerequisites)||void 0===i||i.forEach((t=>{n.set(e,t.key,!0)}))}if(a||s){const e=t;null===(r=null==e?void 0:e.rules)||void 0===r||r.forEach((e=>{var t;null===(t=e.clauses)||void 0===t||t.forEach((e=>{"segmentMatch"===e.op&&e.values.forEach((e=>{n.set(Ar.default.Segments.namespace,e,!0)}))}))}))}return n}Ir.default=class{constructor(e,t,i){this.featureStore=e,this.hasEventListeners=t,this.onChange=i,this.dependencyTracker=new Lr.default}init(e,t){const i=this.hasEventListeners(),r=r=>{this.featureStore.init(e,(()=>{Promise.resolve().then((()=>{if(this.dependencyTracker.reset(),Object.entries(e).forEach((([e,t])=>{Object.keys(t||{}).forEach((i=>{const r=t[i];this.dependencyTracker.updateDependenciesFrom(e,i,Kr(e,r))}))})),i){const t=new Nr.default;Object.keys(e).forEach((i=>{const n=(null==r?void 0:r[i])||{},a=e[i],s=Object.assign(Object.assign({},n),a);Object.keys(s).forEach((e=>{this.addIfModified(i,e,n&&n[e],a&&a[e],t)}))})),this.sendChangeEvents(t)}})),null==t||t()}))};i?this.featureStore.all(Ar.default.Features,(e=>{this.featureStore.all(Ar.default.Segments,(t=>{const i={[Ar.default.Features.namespace]:e,[Ar.default.Segments.namespace]:t};r(i)}))})):r()}upsert(e,t,i){const{key:r}=t,n=this.hasEventListeners(),a=a=>{this.featureStore.upsert(e,t,(()=>{Promise.resolve().then((()=>{if(this.dependencyTracker.updateDependenciesFrom(e.namespace,r,Kr(e.namespace,t)),n){const i=new Nr.default;this.addIfModified(e.namespace,r,a,t,i),this.sendChangeEvents(i)}})),null==i||i()}))};n?this.featureStore.get(e,r,a):a()}addIfModified(e,t,i,r,n){r&&i&&r.version<=i.version||this.dependencyTracker.updateModifiedItems(n,e,t)}sendChangeEvents(e){e.enumerate(((e,t)=>{e===Ar.default.Features.namespace&&this.onChange(t)}))}};var $r={},Ur={},Br={},zr={};Object.defineProperty(zr,"__esModule",{value:!0}),zr.default=function(e){return new Promise((t=>{e((e=>{t(e)}))}))},Object.defineProperty(Br,"__esModule",{value:!0});const Hr=zr;Br.default=class{constructor(e){this.store=e}async get(e,t){return(0,Hr.default)((i=>{this.store.get(e,t,i)}))}async all(e){return(0,Hr.default)((t=>{this.store.all(e,t)}))}async init(e){return(0,Hr.default)((t=>{this.store.init(e,t)}))}async delete(e,t,i){return(0,Hr.default)((r=>{this.store.delete(e,t,i,r)}))}async upsert(e,t){return(0,Hr.default)((i=>{this.store.upsert(e,t,i)}))}async initialized(){return(0,Hr.default)((e=>{this.store.initialized(e)}))}close(){this.store.close()}};var qr={},Wr={};function Jr(e){return Date.now()>e.expiration}Object.defineProperty(Wr,"__esModule",{value:!0});Wr.default=class{constructor(e){this.options=e,this.storage=new Map,this.checkIntervalHandle=setInterval((()=>{this.purgeStale()}),1e3*e.checkInterval)}get(e){const t=this.storage.get(e);if(!t||!Jr(t))return null==t?void 0:t.value;this.storage.delete(e)}set(e,t){this.storage.set(e,{value:t,expiration:Date.now()+1e3*this.options.ttl})}delete(e){this.storage.delete(e)}clear(){this.storage.clear()}close(){this.clear(),this.checkIntervalHandle&&(clearInterval(this.checkIntervalHandle),this.checkIntervalHandle=null)}purgeStale(){this.storage.forEach(((e,t)=>{Jr(e)&&this.storage.delete(t)}))}get size(){return this.storage.size}};var Gr={};Object.defineProperty(Gr,"__esModule",{value:!0}),Gr.persistentStoreKinds=void 0;const Xr=wr,Yr=Sr;Gr.persistentStoreKinds={segments:{namespace:Yr.default.Segments.namespace,deserialize:e=>{const t=(0,Xr.deserializeSegment)(e);if(t)return{version:t.version,item:t}},serialize:e=>{const t=(0,Xr.serializeSegment)(e);return{version:e.version,deleted:e.deleted,serializedItem:t}},priority:0},features:{namespace:Yr.default.Features.namespace,deserialize:e=>{const t=(0,Xr.deserializeFlag)(e);if(t)return{version:t.version,item:t}},serialize:e=>{const t=(0,Xr.serializeFlag)(e);return{version:e.version,deleted:e.deleted,serializedItem:t}},priority:1}};var Qr={};Object.defineProperty(Qr,"__esModule",{value:!0});const Zr=Gr;function en(e,t){const i=[],r=new Set(Object.keys(t)),n=a=>{if(!r.has(a))return;r.delete(a);const s=t[a];var o;"features"===e.namespace&&(o=s,o.prerequisites&&o.prerequisites.length?o.prerequisites.map((e=>e.key)):[]).forEach((e=>{n(e)})),i.push({key:a,item:e.serialize(s)})};for(;r.size>0;){const e=r.values().next().value;n(e)}return i}Qr.default=function(e){const t=[];return Object.keys(e).forEach((i=>{const r=Zr.persistentStoreKinds[i];t.push({key:r,item:en(r,e[i])})})),t.sort(((e,t)=>e.key.priority-t.key.priority)),t};var tn={};Object.defineProperty(tn,"__esModule",{value:!0});tn.default=class{constructor(){this.queue=[]}enqueue(e,t){this.queue.push([e,t]),1===this.queue.length&&this.executePendingUpdates()}executePendingUpdates(){if(this.queue.length>0){const[e,t]=this.queue[0];e((()=>{this.queue.shift(),this.queue.length>0&&setTimeout((()=>this.executePendingUpdates()),0),null==t||t()}))}}},Object.defineProperty(qr,"__esModule",{value:!0});const rn=Wr,nn=Gr,an=Qr,sn=tn;function on(e,t){return`${e.namespace}:${t}`}function ln(e){return`$all:${e.namespace}`}const un="$checkedInit";function cn(e){return!e||e.item.deleted?null:e.item}function dn(e){return{version:e,item:{version:e,deleted:!0}}}function hn(e,t){if(t.deleted||!t.serializedItem)return dn(t.version);const i=e.deserialize(t.serializedItem);return void 0===i?dn(t.version):0===i.version||i.version===t.version||void 0===i.item?i:{version:t.version,item:i.item}}qr.default=class{constructor(e,t){this.core=e,this.isInitialized=!1,this.queue=new sn.default,t&&(this.itemCache=new rn.default({ttl:t,checkInterval:600}),this.allItemsCache=new rn.default({ttl:t,checkInterval:600}))}init(e,t){this.queue.enqueue((t=>{this.core.init((0,an.default)(e),(()=>{this.isInitialized=!0,this.itemCache&&(this.itemCache.clear(),this.allItemsCache.clear(),Object.keys(e).forEach((t=>{const i=nn.persistentStoreKinds[t],r=e[t];this.allItemsCache.set(ln(i),r),Object.keys(r).forEach((e=>{const t=r[e],n={version:t.version,item:t};this.itemCache.set(on(i,e),n)}))}))),t()}))}),t)}get(e,t,i){if(this.itemCache){const r=this.itemCache.get(on(e,t));if(r)return void i(cn(r))}const r=nn.persistentStoreKinds[e.namespace];this.core.get(r,t,(n=>{var a;if(n&&n.serializedItem){const s=hn(r,n);return null===(a=this.itemCache)||void 0===a||a.set(on(e,t),s),void i(cn(s))}i(null)}))}initialized(e){var t;this.isInitialized?e(!0):(null===(t=this.itemCache)||void 0===t?void 0:t.get(un))?e(!1):this.core.initialized((t=>{var i;this.isInitialized=t,this.isInitialized||null===(i=this.itemCache)||void 0===i||i.set(un,!0),e(this.isInitialized)}))}all(e,t){var i;const r=null===(i=this.allItemsCache)||void 0===i?void 0:i.get(ln(e));if(r)return void t(r);const n=nn.persistentStoreKinds[e.namespace];this.core.getAll(n,(i=>{var r;if(!i)return void t({});const a={};i.forEach((({key:e,item:t})=>{const i=cn(hn(n,t));i&&(a[e]=i)})),null===(r=this.allItemsCache)||void 0===r||r.set(ln(e),a),t(a)}))}upsert(e,t,i){this.queue.enqueue((i=>{this.allItemsCache&&this.allItemsCache.clear();const r=nn.persistentStoreKinds[e.namespace];this.core.upsert(r,t.key,r.serialize(t),((n,a)=>{var s,o;if(!n&&a)if(a.serializedItem){const i=hn(r,a);null===(s=this.itemCache)||void 0===s||s.set(on(e,t.key),i)}else a.deleted&&(null===(o=this.itemCache)||void 0===o||o.set(t.key,{key:t.key,version:a.version,deleted:!0}));i()}))}),i)}delete(e,t,i,r){this.upsert(e,{key:t,version:i,deleted:!0},r)}close(){var e,t;null===(e=this.itemCache)||void 0===e||e.close(),null===(t=this.allItemsCache)||void 0===t||t.close(),this.core.close()}getDescription(){return this.core.getDescription()}},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.deserializePoll=e.PersistentDataStoreWrapper=e.AsyncStoreFacade=void 0;const t=Br;e.AsyncStoreFacade=t.default;const i=qr;e.PersistentDataStoreWrapper=i.default;const r=wr;Object.defineProperty(e,"deserializePoll",{enumerable:!0,get:function(){return r.deserializePoll}})}(Ur),Object.defineProperty($r,"__esModule",{value:!0});const fn=o,vn=Ur,gn=Sr;$r.default=class{constructor(e,t,i,r=(()=>{}),n){this.requestor=t,this.featureStore=i,this.initSuccessHandler=r,this.errorHandler=n,this.stopped=!1,this.logger=e.logger,this.pollInterval=e.pollInterval}poll(){var e;if(this.stopped)return;const t=e=>{var t,i,r;null===(t=this.logger)||void 0===t||t.error("Polling received invalid data"),null===(i=this.logger)||void 0===i||i.debug(`Invalid JSON follows: ${e}`),null===(r=this.errorHandler)||void 0===r||r.call(this,new fn.LDPollingError("Malformed JSON data in polling response"))},i=Date.now();null===(e=this.logger)||void 0===e||e.debug("Polling LaunchDarkly for feature flag updates"),this.requestor.requestAllData(((e,r)=>{var n,a,s,o;const l=Date.now()-i,u=Math.max(1e3*this.pollInterval-l,0);if(null===(n=this.logger)||void 0===n||n.debug("Elapsed: %d ms, sleeping for %d ms",l,u),e){const{status:t}=e;if(t&&!(0,fn.isHttpRecoverable)(t)){const i=(0,fn.httpErrorMessage)(e,"polling request");return null===(a=this.logger)||void 0===a||a.error(i),void(null===(s=this.errorHandler)||void 0===s||s.call(this,new fn.LDPollingError(i,t)))}null===(o=this.logger)||void 0===o||o.warn((0,fn.httpErrorMessage)(e,"polling request","will retry"))}else if(r){const e=(0,vn.deserializePoll)(r);if(e){const t={[gn.default.Features.namespace]:e.flags,[gn.default.Segments.namespace]:e.segments};return void this.featureStore.init(t,(()=>{this.initSuccessHandler(),this.timeoutHandle=setTimeout((()=>{this.poll()}),u)}))}t(r)}this.timeoutHandle=setTimeout((()=>{this.poll()}),u)}))}start(){this.poll()}stop(){this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=void 0),this.stopped=!0}close(){this.stop()}};var pn={};Object.defineProperty(pn,"__esModule",{value:!0});const yn=o;pn.default=class{constructor(e,t,i,r){this.requests=r,this.eTagCache={},this.headers=(0,yn.defaultHeaders)(e,i,t.tags),this.uri=`${t.serviceEndpoints.polling}/sdk/latest-all`}async requestWithETagCache(e,t){const i=this.eTagCache[e],r=null==i?void 0:i.etag,n=r?Object.assign(Object.assign({},t),{headers:Object.assign(Object.assign({},t.headers),{"if-none-match":r})}):t,a=await this.requests.fetch(e,n);if(304===a.status&&i)return{res:a,body:i.body};const s=a.headers.get("etag"),o=await a.text();return s&&(this.eTagCache[e]={etag:s,body:o}),{res:a,body:o}}async requestAllData(e){const t={method:"GET",headers:this.headers};try{const{res:i,body:r}=await this.requestWithETagCache(this.uri,t);if(200!==i.status&&304!==i.status){return e(new yn.LDStreamingError(`Unexpected status code: ${i.status}`,i.status),void 0)}return e(void 0,304===i.status?null:r)}catch(t){return e(t,void 0)}}};var mn={},bn={},On={};Object.defineProperty(On,"__esModule",{value:!0});On.default=class{constructor(){this.allData={},this.initCalled=!1}addItem(e,t,i){let r=this.allData[e.namespace];if(r||(r={},this.allData[e.namespace]=r),Object.hasOwnProperty.call(r,t)){const e=r[t];(!e||e.version<i.version)&&(r[t]=i)}else r[t]=i}get(e,t,i){const r=this.allData[e.namespace];if(r&&Object.prototype.hasOwnProperty.call(r,t)){const e=r[t];if(e&&!e.deleted)return null==i?void 0:i(e)}return null==i?void 0:i(null)}all(e,t){var i;const r={},n=null!==(i=this.allData[e.namespace])&&void 0!==i?i:{};Object.entries(n).forEach((([e,t])=>{t&&!t.deleted&&(r[e]=t)})),null==t||t(r)}init(e,t){this.initCalled=!0,this.allData=e,null==t||t()}delete(e,t,i,r){const n={version:i,deleted:!0};this.addItem(e,t,n),null==r||r()}upsert(e,t,i){this.addItem(e,t.key,t),null==i||i()}initialized(e){return null==e?void 0:e(this.initCalled)}close(){}getDescription(){return"memory"}},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.defaultValues=void 0;const t=o,i=On,r={baseUri:t.TypeValidators.String,streamUri:t.TypeValidators.String,eventsUri:t.TypeValidators.String,timeout:t.TypeValidators.Number,capacity:t.TypeValidators.Number,logger:t.TypeValidators.Object,featureStore:t.TypeValidators.ObjectOrFactory,bigSegments:t.TypeValidators.Object,updateProcessor:t.TypeValidators.ObjectOrFactory,flushInterval:t.TypeValidators.Number,pollInterval:t.TypeValidators.numberWithMin(30),proxyOptions:t.TypeValidators.Object,offline:t.TypeValidators.Boolean,stream:t.TypeValidators.Boolean,streamInitialReconnectDelay:t.TypeValidators.Number,useLdd:t.TypeValidators.Boolean,sendEvents:t.TypeValidators.Boolean,allAttributesPrivate:t.TypeValidators.Boolean,privateAttributes:t.TypeValidators.StringArray,contextKeysCapacity:t.TypeValidators.Number,contextKeysFlushInterval:t.TypeValidators.Number,tlsParams:t.TypeValidators.Object,diagnosticOptOut:t.TypeValidators.Boolean,diagnosticRecordingInterval:t.TypeValidators.numberWithMin(60),wrapperName:t.TypeValidators.String,wrapperVersion:t.TypeValidators.String,application:t.TypeValidators.Object,hooks:t.TypeValidators.createTypeArray("Hook[]",{})};e.defaultValues={baseUri:"https://sdk.launchdarkly.com",streamUri:"https://stream.launchdarkly.com",eventsUri:t.ServiceEndpoints.DEFAULT_EVENTS,stream:!0,streamInitialReconnectDelay:1,sendEvents:!0,timeout:5,capacity:1e4,flushInterval:5,pollInterval:30,offline:!1,useLdd:!1,allAttributesPrivate:!1,privateAttributes:[],contextKeysCapacity:1e3,contextKeysFlushInterval:300,diagnosticOptOut:!1,diagnosticRecordingInterval:900,featureStore:()=>new i.default};e.default=class{constructor(i={},n={}){i=i||{},this.logger=i.logger;const{errors:a,validatedOptions:s}=function(i){const n=[],a=Object.assign({},e.defaultValues);return Object.keys(i).forEach((s=>{var o;const l=i[s],u=r[s];if(u)if(u.is(l))a[s]=l;else if("boolean"===u.getType())n.push(t.OptionMessages.wrongOptionTypeBoolean(s,typeof l)),a[s]=!!l;else if(u instanceof t.NumberWithMinimum&&t.TypeValidators.Number.is(l)){const{min:e}=u;n.push(t.OptionMessages.optionBelowMinimum(s,l,e)),a[s]=e}else n.push(t.OptionMessages.wrongOptionType(s,u.getType(),typeof l)),a[s]=e.defaultValues[s];else null===(o=i.logger)||void 0===o||o.warn(t.OptionMessages.unknownOption(s))})),{errors:n,validatedOptions:a}}(i);a.forEach((e=>{var t;null===(t=this.logger)||void 0===t||t.warn(e)})),function(e,i){var r,n,a;const{baseUri:s,streamUri:o,eventsUri:l}=e,u=null!=o,c=null!=s,d=null!=l;u===c&&u===d||(!u&&i.stream&&(null===(r=i.logger)||void 0===r||r.warn(t.OptionMessages.partialEndpoint("streamUri"))),c||null===(n=i.logger)||void 0===n||n.warn(t.OptionMessages.partialEndpoint("baseUri")),!d&&i.sendEvents&&(null===(a=i.logger)||void 0===a||a.warn(t.OptionMessages.partialEndpoint("eventsUri"))))}(i,s),this.serviceEndpoints=new t.ServiceEndpoints(s.streamUri,s.baseUri,s.eventsUri,n.analyticsEventPath,n.diagnosticEventPath,n.includeAuthorizationHeader),this.eventsCapacity=s.capacity,this.timeout=s.timeout,this.bigSegments=s.bigSegments,this.flushInterval=s.flushInterval,this.pollInterval=s.pollInterval,this.proxyOptions=s.proxyOptions,this.offline=s.offline,this.stream=s.stream,this.streamInitialReconnectDelay=s.streamInitialReconnectDelay,this.useLdd=s.useLdd,this.sendEvents=s.sendEvents,this.allAttributesPrivate=s.allAttributesPrivate,this.privateAttributes=s.privateAttributes,this.contextKeysCapacity=s.contextKeysCapacity,this.contextKeysFlushInterval=s.contextKeysFlushInterval,this.tlsParams=s.tlsParams,this.diagnosticOptOut=s.diagnosticOptOut,this.wrapperName=s.wrapperName,this.wrapperVersion=s.wrapperVersion,this.tags=new t.ApplicationTags(s),this.diagnosticRecordingInterval=s.diagnosticRecordingInterval,t.TypeValidators.Function.is(s.updateProcessor)?this.updateProcessorFactory=s.updateProcessor:this.updateProcessorFactory=()=>s.updateProcessor,t.TypeValidators.Function.is(s.featureStore)?this.featureStoreFactory=s.featureStore:this.featureStoreFactory=()=>s.featureStore,this.hooks=s.hooks}}}(bn),Object.defineProperty(mn,"__esModule",{value:!0});const wn=o,Sn=bn;mn.default=(e,t,i)=>{var r,n,a,s,o,l;return{customBaseURI:e.serviceEndpoints.polling!==Sn.defaultValues.baseUri,customStreamURI:e.serviceEndpoints.streaming!==Sn.defaultValues.streamUri,customEventsURI:e.serviceEndpoints.events!==Sn.defaultValues.eventsUri,eventsCapacity:e.eventsCapacity,connectTimeoutMillis:(0,wn.secondsToMillis)(e.timeout),socketTimeoutMillis:(0,wn.secondsToMillis)(e.timeout),eventsFlushIntervalMillis:(0,wn.secondsToMillis)(e.flushInterval),pollingIntervalMillis:(0,wn.secondsToMillis)(e.pollInterval),reconnectTimeMillis:(0,wn.secondsToMillis)(e.streamInitialReconnectDelay),contextKeysFlushIntervalMillis:(0,wn.secondsToMillis)(e.contextKeysFlushInterval),diagnosticRecordingIntervalMillis:(0,wn.secondsToMillis)(e.diagnosticRecordingInterval),streamingDisabled:!e.stream,usingRelayDaemon:e.useLdd,offline:e.offline,allAttributesPrivate:e.allAttributesPrivate,contextKeysCapacity:e.contextKeysCapacity,usingProxy:!!(null===(n=(r=t.requests).usingProxy)||void 0===n?void 0:n.call(r)),usingProxyAuthenticator:!!(null===(s=(a=t.requests).usingProxyAuth)||void 0===s?void 0:s.call(a)),dataStoreType:null!==(l=null===(o=i.getDescription)||void 0===o?void 0:o.call(i))&&void 0!==l?l:"memory"}};var En={};Object.defineProperty(En,"__esModule",{value:!0}),En.allAsync=En.firstSeriesAsync=En.allSeriesAsync=En.firstResult=void 0,En.firstResult=function(e,t){let i;return null==e||e.some(((e,r)=>(i=t(e,r),!!i))),i};const _n=50;function kn(e,t,i,r,n){e?r<(null==e?void 0:e.length)?t(e[r],r,(a=>{if(i){if(!a)return void n(!1)}else if(a)return void n(!0);e.length>_n?Promise.resolve().then((()=>{kn(e,t,i,r+1,n)})):kn(e,t,i,r+1,n)})):n(i):n(!1)}En.allSeriesAsync=function(e,t,i){kn(e,t,!0,0,i)},En.firstSeriesAsync=function(e,t,i){kn(e,t,!1,0,i)},En.allAsync=function(e,t,i){e?Promise.all(null==e?void 0:e.map((e=>new Promise((i=>{t(e,i)}))))).then((e=>{i(e.every((e=>e)))})):i(!1)};var Pn={},Mn={};Object.defineProperty(Mn,"__esModule",{value:!0});class Dn{static prerequisiteFailed(e){return{kind:"PREREQUISITE_FAILED",prerequisiteKey:e}}static ruleMatch(e,t){return{kind:"RULE_MATCH",ruleId:e,ruleIndex:t}}}Dn.Fallthrough={kind:"FALLTHROUGH"},Dn.Off={kind:"OFF"},Dn.TargetMatch={kind:"TARGET_MATCH"},Mn.default=Dn,Object.defineProperty(Pn,"__esModule",{value:!0});const xn=o,jn=Mn,{createErrorEvaluationDetail:Tn,createSuccessEvaluationDetail:Cn}=xn.internal;class In{constructor(e,t,i){this.isError=e,this.detail=t,this.message=i,this.isError=e,this.detail=t,this.message=i}get isOff(){return this.detail.reason.kind===jn.default.Off.kind}setDefault(e){this.detail.value=e}static forError(e,t,i){return new In(!0,Tn(e,i),t)}static forSuccess(e,t,i){const r=Cn(e,i,t);return new In(!1,r)}}Pn.default=In;var Fn={},Rn={};Object.defineProperty(Rn,"__esModule",{value:!0});Rn.default=class{constructor(e){this.crypto=e}sha1Hex(e){const t=this.crypto.createHash("sha1");return t.update(e),t.digest("hex")}bucket(e,t,i,r,n="user",a){const s=function(e){return"string"==typeof e?e:Number.isInteger(e)?String(e):null}(e.valueForKind(i,n));if(null===s){return[0,e.kinds.indexOf(n)>=0]}const o=`${a?Number(a):`${t}.${r}`}.${s}`;return[parseInt(this.sha1Hex(o).substring(0,15),16)/0x1000000000000000,!0]}};var Vn={},An={};Object.defineProperty(An,"__esModule",{value:!0}),An.getBucketBy=An.getOffVariation=An.getVariation=void 0;const Ln=o,Nn=Pn,{ErrorKinds:Kn}=Ln.internal,$n=new Ln.AttributeReference("key");function Un(e,t,i){return Ln.TypeValidators.Number.is(t)&&t>=0&&t<e.variations.length?Nn.default.forSuccess(e.variations[t],i,t):Nn.default.forError(Kn.MalformedFlag,"Invalid variation index in flag")}An.getVariation=Un,An.getOffVariation=function(e,t){return Ln.TypeValidators.Number.is(e.offVariation)?Un(e,e.offVariation,t):Nn.default.forSuccess(null,t)},An.getBucketBy=function(e,t){var i;return null!==(i=e?void 0:t)&&void 0!==i?i:$n},Object.defineProperty(Vn,"__esModule",{value:!0});const Bn=o,zn=En,Hn=Mn,qn=An;function Wn(e,t,i){const r=i.key(t.contextKind);if(void 0!==r){if(t.values.indexOf(r)>=0)return(0,qn.getVariation)(e,t.variation,Hn.default.TargetMatch)}}Vn.default=function(e,t){var i;return(null===(i=e.contextTargets)||void 0===i?void 0:i.length)?(0,zn.firstResult)(e.contextTargets,(i=>{if(!i.contextKind||i.contextKind===Bn.Context.userKind){const r=(e.targets||[]).find((e=>e.variation===i.variation));return r?Wn(e,r,t):void 0}return Wn(e,i,t)})):(0,zn.firstResult)(e.targets,(i=>Wn(e,i,t)))};var Jn={};Object.defineProperty(Jn,"__esModule",{value:!0}),Jn.default=function(e){return`${e.key}.g${e.generation}`};var Gn={},Xn={};Object.defineProperty(Xn,"__esModule",{value:!0});const Yn=t,Qn=o,Zn=/^\d+(\.\d+)?(\.\d+)?/;function ea(e){if(Qn.TypeValidators.String.is(e)&&!e.startsWith("v")){const t=(0,Yn.parse)(e);if(t)return t;const i=Zn.exec(e);if(i){let t=i[0];for(let e=1;e<i.length;e+=1)void 0===i[e]&&(t+=".0");return t+=e.substring(i[0].length),(0,Yn.parse)(t)}}return null}function ta(e){return(t,i)=>{const r=ea(t),n=ea(i);return!!(r&&n&&e(r,n))}}function ia(e,t,i){return(r,n)=>!(!t.is(r)||!t.is(n))&&(i?e(i(r),i(n)):e(r,n))}function ra(e){return"number"==typeof e?e:Date.parse(e)}const na={in:(e,t)=>e===t,endsWith:ia(((e,t)=>e.endsWith(t)),Qn.TypeValidators.String),startsWith:ia(((e,t)=>e.startsWith(t)),Qn.TypeValidators.String),matches:ia(((e,t)=>function(e,t){try{return new RegExp(e).test(t)}catch(e){return!1}}(t,e)),Qn.TypeValidators.String),contains:ia(((e,t)=>e.indexOf(t)>-1),Qn.TypeValidators.String),lessThan:ia(((e,t)=>e<t),Qn.TypeValidators.Number),lessThanOrEqual:ia(((e,t)=>e<=t),Qn.TypeValidators.Number),greaterThan:ia(((e,t)=>e>t),Qn.TypeValidators.Number),greaterThanOrEqual:ia(((e,t)=>e>=t),Qn.TypeValidators.Number),before:ia(((e,t)=>e<t),Qn.TypeValidators.Date,ra),after:ia(((e,t)=>e>t),Qn.TypeValidators.Date,ra),semVerEqual:ta(((e,t)=>0===e.compare(t))),semVerLessThan:ta(((e,t)=>e.compare(t)<0)),semVerGreaterThan:ta(((e,t)=>e.compare(t)>0))};Xn.default=class{static is(e){return Object.prototype.hasOwnProperty.call(na,e)}static execute(e,t,i){var r,n;return null!==(n=null===(r=na[e])||void 0===r?void 0:r.call(na,t,i))&&void 0!==n&&n}},Object.defineProperty(Gn,"__esModule",{value:!0}),Gn.maybeNegate=void 0;const aa=Xn;function sa(e,t){return e.negate?!t:t}function oa(e,t,i){return i.some((i=>aa.default.execute(e,t,i)))}Gn.maybeNegate=sa,Gn.default=function(e,t){const i=t.valueForKind(e.attributeReference,e.contextKind);return null!=i&&(Array.isArray(i)?sa(e,i.some((t=>oa(e.op,t,e.values)))):sa(e,oa(e.op,i,e.values)))};var la={};function ua(e,t,i,r){if(t)for(let i=0;i<t.length;i+=1){const r=t[i],n=e.key(r.contextKind);if(n)if(r.generated_valuesSet){if(r.generated_valuesSet.has(n))return!0}else if(r.values.includes(n))return!0}if(r){const t=e.key("user");if(t&&r.has(t))return!0}else if(i){const t=e.key("user");if(t&&i.includes(t))return!0}return!1}Object.defineProperty(la,"__esModule",{value:!0}),la.default=function(e,t){if(ua(t,e.includedContexts,e.included,e.generated_includedSet))return!0;const i=ua(t,e.excludedContexts,e.excluded,e.generated_excludedSet);return i?!i:void 0},Object.defineProperty(Fn,"__esModule",{value:!0});const ca=o,da=Rn,ha=En,fa=Pn,va=Vn,ga=Jn,pa=Gn,ya=la,ma=Mn,ba=An,{ErrorKinds:Oa}=ca.internal,wa={HEALTHY:1,STALE:2,STORE_ERROR:3,NOT_CONFIGURED:4};function Sa(e){return void 0!==e&&wa[e]||0}function Ea(e,t){return void 0!==e&&Sa(e)>Sa(t)?e:t}function _a(e){return{error:!1,isMatch:e,result:void 0}}function ka(e){return{error:!0,isMatch:!1,result:e}}Fn.default=class{constructor(e,t){this.queries=t,this.bucketer=new da.default(e.crypto)}async evaluate(e,t,i){return new Promise((r=>{const n={};this.evaluateInternal(e,t,n,[],(e=>{n.bigSegmentsStatus&&(e.detail.reason=Object.assign(Object.assign({},e.detail.reason),{bigSegmentsStatus:n.bigSegmentsStatus})),e.events=n.events,r(e)}),i)}))}evaluateCb(e,t,i,r){const n={};this.evaluateInternal(e,t,n,[],(e=>{n.bigSegmentsStatus&&(e.detail.reason=Object.assign(Object.assign({},e.detail.reason),{bigSegmentsStatus:n.bigSegmentsStatus})),e.events=n.events,i(e)}),r)}evaluateInternal(e,t,i,r,n,a){e.on?this.checkPrerequisites(e,t,i,r,(r=>{if(r)return void n(r);const a=(0,va.default)(e,t);a?n(a):this.evaluateRules(e,t,i,(i=>{n(i||this.variationForContext(e.fallthrough,t,e,ma.default.Fallthrough))}))}),a):n((0,ba.getOffVariation)(e,ma.default.Off))}checkPrerequisites(e,t,i,r,n,a){let s;e.prerequisites&&e.prerequisites.length?(0,ha.allSeriesAsync)(e.prerequisites,((n,o,l)=>{if(-1!==r.indexOf(n.key))return s=fa.default.forError(Oa.MalformedFlag,`Prerequisite of ${e.key} causing a circular reference. This is probably a temporary condition due to an incomplete update.`),void l(!0);const u=[...r,n.key];this.queries.getFlag(n.key,(r=>{if(!r)return s=(0,ba.getOffVariation)(e,ma.default.prerequisiteFailed(n.key)),void l(!1);this.evaluateInternal(r,t,i,u,(o=>{var u;return null!==(u=i.events)&&void 0!==u||(i.events=[]),a&&i.events.push(a.evalEventServer(r,t,o.detail,null,e)),o.isError?(s=o,l(!1)):o.isOff||o.detail.variationIndex!==n.variation?(s=(0,ba.getOffVariation)(e,ma.default.prerequisiteFailed(n.key)),l(!1)):l(!0)}),a)}))}),(()=>{n(s)})):n(void 0)}evaluateRules(e,t,i,r){let n;(0,ha.firstSeriesAsync)(e.rules,((r,a,s)=>{this.ruleMatchContext(e,r,a,t,i,[],(e=>{n=e,s(!!e)}))}),(()=>r(n)))}clauseMatchContext(e,t,i,r,n){let a;"segmentMatch"!==e.op?e.attributeReference.isValid?n(_a((0,pa.default)(e,t))):n(ka(fa.default.forError(Oa.MalformedFlag,"Invalid attribute reference in clause"))):(0,ha.firstSeriesAsync)(e.values,((e,n,s)=>{this.queries.getSegment(e,(e=>{if(e){if(i.includes(e.key))return a=fa.default.forError(Oa.MalformedFlag,`Segment rule referencing segment ${e.key} caused a circular reference. This is probably a temporary condition due to an incomplete update`),void s(!0);const n=[...i,null==e?void 0:e.key];this.segmentMatchContext(e,t,r,n,(e=>{e.error&&(a=e.result),s(e.error||e.isMatch)}))}else s(!1)}))}),(t=>n(a?ka(a):_a((0,pa.maybeNegate)(e,t)))))}ruleMatchContext(e,t,i,r,n,a,s){if(!t.clauses)return void s(void 0);let o;(0,ha.allSeriesAsync)(t.clauses,((e,t,i)=>{this.clauseMatchContext(e,r,a,n,(e=>(o=e.result,i(e.error||e.isMatch))))}),(n=>s(o||(n?this.variationForContext(t,r,e,ma.default.ruleMatch(t.id,i)):void 0))))}variationForContext(e,t,i,r){if(void 0===e)return fa.default.forError(Oa.MalformedFlag,"Fallthrough variation undefined");if(void 0!==e.variation)return(0,ba.getVariation)(i,e.variation,r);if(e.rollout){const{rollout:n}=e,{variations:a}=n,s="experiment"===n.kind;if(a&&a.length){const e=(0,ba.getBucketBy)(s,n.bucketByAttributeReference);if(!e.isValid)return fa.default.forError(Oa.MalformedFlag,"Invalid attribute reference for bucketBy in rollout");const[o,l]=this.bucketer.bucket(t,i.key,e,i.salt||"",n.contextKind,n.seed),u=Object.assign({},r);let c=0;for(let e=0;e<a.length;e+=1){const t=a[e];if(c+=t.weight/1e5,o<c)return s&&l&&!t.untracked&&(u.inExperiment=!0),(0,ba.getVariation)(i,t.variation,u)}const d=a[a.length-1];return s&&!d.untracked&&(u.inExperiment=!0),(0,ba.getVariation)(i,d.variation,u)}}return fa.default.forError(Oa.MalformedFlag,"Variation/rollout object with no variation or rollout")}segmentRuleMatchContext(e,t,i,r,n,a){let s;(0,ha.allSeriesAsync)(t.clauses,((e,t,a)=>{this.clauseMatchContext(e,i,n,r,(e=>{s=e.result,a(e.error||e.isMatch)}))}),(r=>{if(s)return a(ka(s));if(r){if(void 0===t.weight)return a(_a(r));const n=(0,ba.getBucketBy)(!1,t.bucketByAttributeReference);if(!n.isValid)return a(ka(fa.default.forError(Oa.MalformedFlag,"Invalid attribute reference in clause")));const[s]=this.bucketer.bucket(i,e.key,n,e.salt||"",t.rolloutContextKind);return a(_a(s<t.weight/1e5))}return a(_a(!1))}))}simpleSegmentMatchContext(e,t,i,r,n){if(!e.unbounded){const i=(0,ya.default)(e,t);if(void 0!==i)return void n(_a(i))}let a;(0,ha.firstSeriesAsync)(e.rules,((n,s,o)=>{this.segmentRuleMatchContext(e,n,t,i,r,(e=>(a=e.result,o(e.error||e.isMatch))))}),(e=>n(a?ka(a):_a(e))))}segmentMatchContext(e,t,i,r,n){if(!e.unbounded)return void this.simpleSegmentMatchContext(e,t,i,r,n);const a=e.unboundedContextKind||"user",s=t.key(a);if(s)return e.generation?void(i.bigSegmentsMembership&&i.bigSegmentsMembership[s]?this.bigSegmentMatchContext(i.bigSegmentsMembership[s],e,t,i).then(n):this.queries.getBigSegmentsMembership(s).then((r=>{if(i.bigSegmentsMembership=i.bigSegmentsMembership||{},r){const[e,t]=r;i.bigSegmentsMembership[s]=e,i.bigSegmentsStatus=Ea(i.bigSegmentsStatus,t)}else i.bigSegmentsStatus=Ea(i.bigSegmentsStatus,"NOT_CONFIGURED");this.bigSegmentMatchContext(i.bigSegmentsMembership[s],e,t,i).then(n)}))):(i.bigSegmentsStatus=Ea(i.bigSegmentsStatus,"NOT_CONFIGURED"),void n(_a(!1)));n(_a(!1))}bigSegmentMatchContext(e,t,i,r){const n=(0,ga.default)(t),a=null==e?void 0:e[n];return new Promise((e=>{null==a?this.simpleSegmentMatchContext(t,i,r,[],e):e(_a(a))}))}};var Pa={};Object.defineProperty(Pa,"__esModule",{value:!0});const Ma=pr;Pa.default=class{constructor(e){this.contextKeysCache=new Ma.default({max:e.contextKeysCapacity}),this.flushInterval=e.contextKeysFlushInterval}processContext(e){const{canonicalKey:t}=e,i=this.contextKeysCache.get(t);return this.contextKeysCache.set(t,!0),!i}flush(){this.contextKeysCache.clear()}};var Da={},xa={};Object.defineProperty(xa,"__esModule",{value:!0}),xa.default=function(e,t){if(t){if(t.inExperiment)return!0;switch(t.kind){case"RULE_MATCH":{const i=t.ruleIndex;if(void 0!==i){const t=e.rules||[];return i>=0&&i<t.length&&!!t[i].trackEvents}break}case"FALLTHROUGH":return!!e.trackEventsFallthrough}}return!1},Object.defineProperty(Da,"__esModule",{value:!0});const ja=o,Ta=xa;class Ca extends ja.internal.EventFactoryBase{evalEventServer(e,t,i,r,n){var a;const s=(0,Ta.default)(e,i.reason);return super.evalEvent({addExperimentData:s,context:t,debugEventsUntilDate:e.debugEventsUntilDate,defaultVal:r,excludeFromSummaries:e.excludeFromSummaries,flagKey:e.key,prereqOfFlagKey:null==n?void 0:n.key,reason:i.reason,samplingRatio:e.samplingRatio,trackEvents:e.trackEvents||s,value:i.value,variation:null!==(a=i.variationIndex)&&void 0!==a?a:void 0,version:e.version})}}Da.default=Ca;var Ia={};Object.defineProperty(Ia,"__esModule",{value:!0});Ia.default=class{constructor(e,t){this.valid=e,this.withReasons=t,this.flagValues={},this.flagMetadata={}}addFlag(e,t,i,r,n,a,s){this.flagValues[e.key]=t;const o={};void 0!==i&&(o.variation=i);const l=s&&!n&&!a&&void 0===e.debugEventsUntilDate;l||(o.version=e.version),r&&(a||this.withReasons&&!l)&&(o.reason=r),n&&(o.trackEvents=!0),a&&(o.trackReason=!0),void 0!==e.debugEventsUntilDate&&(o.debugEventsUntilDate=e.debugEventsUntilDate),this.flagMetadata[e.key]=o}build(){const e=this;return{valid:e.valid,allValues:()=>e.flagValues,getFlagValue:t=>e.flagValues[t],getFlagReason:t=>{var i;return null!==(i=e.flagMetadata[t]?e.flagMetadata[t].reason:null)&&void 0!==i?i:null},toJSON:()=>Object.assign(Object.assign({},e.flagValues),{$flagsState:e.flagMetadata,$valid:e.valid})}}};var Fa={};Object.defineProperty(Fa,"__esModule",{value:!0});const Ra="unknown hook";Fa.default=class{constructor(e,t){this.logger=e,this.hooks=[],this.hooks.push(...t)}async withEvaluationSeries(e,t,i,r,n){return 0===this.hooks.length?n():this.withEvaluationSeriesExtraDetail(e,t,i,r,(async()=>({detail:await n()}))).then((({detail:e})=>e))}async withEvaluationSeriesExtraDetail(e,t,i,r,n){if(0===this.hooks.length)return n();const{hooks:a,hookContext:s}=this.prepareHooks(e,t,i,r),o=this.executeBeforeEvaluation(a,s),l=await n();return this.executeAfterEvaluation(a,s,o,l.detail),l}tryExecuteStage(e,t,i){var r;try{return i()}catch(i){return null===(r=this.logger)||void 0===r||r.error(`An error was encountered in "${e}" of the "${t}" hook: ${i}`),{}}}hookName(e){var t,i;try{return null!==(t=null==e?void 0:e.getMetadata().name)&&void 0!==t?t:Ra}catch(e){return null===(i=this.logger)||void 0===i||i.error("Exception thrown getting metadata for hook. Unable to get hook name."),Ra}}executeAfterEvaluation(e,t,i,r){var n;for(let a=e.length-1;a>=0;a-=1){const s=e[a],o=null!==(n=i[a])&&void 0!==n?n:{};this.tryExecuteStage("afterEvaluation",this.hookName(s),(()=>{var e,i;return null!==(i=null===(e=null==s?void 0:s.afterEvaluation)||void 0===e?void 0:e.call(s,t,o,r))&&void 0!==i?i:{}}))}}executeBeforeEvaluation(e,t){return e.map((e=>this.tryExecuteStage("beforeEvaluation",this.hookName(e),(()=>{var i,r;return null!==(r=null===(i=null==e?void 0:e.beforeEvaluation)||void 0===i?void 0:i.call(e,t,{}))&&void 0!==r?r:{}}))))}prepareHooks(e,t,i,r){return{hooks:[...this.hooks],hookContext:{flagKey:e,context:t,defaultValue:i,method:r}}}addHook(e){this.hooks.push(e)}};var Va={};Object.defineProperty(Va,"__esModule",{value:!0});const Aa=o;function La(e){const t=e.old,i=e.new;return!(void 0!==t&&!Aa.TypeValidators.Boolean.is(t))&&!(void 0!==i&&!Aa.TypeValidators.Boolean.is(i))}function Na(e){if(Aa.TypeValidators.String.is(e.key)&&""!==e.key){if("latency_ms"===e.key){if(!Aa.TypeValidators.Object.is(e.values))return;if(!function(e){const t=e.old,i=e.new;return!(void 0!==t&&!Aa.TypeValidators.Number.is(t)||void 0!==i&&!Aa.TypeValidators.Number.is(i))}(e.values))return;return{key:e.key,values:{old:e.values.old,new:e.values.new}}}if(function(e){return"error"===e.key}(e)){if(!Aa.TypeValidators.Object.is(e.values))return;if(!La(e.values))return;return{key:e.key,values:{old:e.values.old,new:e.values.new}}}if(function(e){return"consistent"===e.key}(e)){if(!Aa.TypeValidators.Boolean.is(e.value)||!Aa.TypeValidators.Number.is(e.samplingRatio))return;return{key:e.key,value:e.value,samplingRatio:e.samplingRatio}}if(function(e){return"invoked"===e.key}(e)){if(!Aa.TypeValidators.Object.is(e.values))return;if(!La(e.values))return;return{key:e.key,values:{old:e.values.old,new:e.values.new}}}}}Va.default=function(e){var t,i;if("migration_op"!==e.kind)return;if(i=e.operation,!Aa.TypeValidators.String.is(i)||"read"!==i&&"write"!==i)return;if(!Aa.TypeValidators.Object.is(e.contextKeys))return;if(!Aa.TypeValidators.Number.is(e.creationDate))return;if(!Object.keys(e.contextKeys).every((e=>Aa.TypeValidators.Kind.is(e))))return;const r=null!==(t=e.samplingRatio)&&void 0!==t?t:1;if(!Aa.TypeValidators.Number.is(r))return;if(!Object.values(e.contextKeys).every((e=>Aa.TypeValidators.String.is(e)&&""!==e)))return;const n=function(e){if(!Aa.TypeValidators.String.is(e.key)||""===e.key)return;if(!Aa.TypeValidators.Object.is(e.reason))return;if(!Aa.TypeValidators.String.is(e.reason.kind)||""===e.reason.kind)return;const t={key:e.key,value:e.value,default:e.default,reason:{kind:e.reason.kind}},i=e.reason,r=t.reason;return Aa.TypeValidators.String.is(i.errorKind)&&(r.errorKind=i.errorKind),Aa.TypeValidators.String.is(i.ruleId)&&(r.ruleId=i.ruleId),Aa.TypeValidators.String.is(i.prerequisiteKey)&&(r.prerequisiteKey=i.prerequisiteKey),Aa.TypeValidators.Boolean.is(i.inExperiment)&&(r.inExperiment=i.inExperiment),Aa.TypeValidators.Number.is(i.ruleIndex)&&(r.ruleIndex=i.ruleIndex),Aa.TypeValidators.String.is(i.bigSegmentsStatus)&&(r.bigSegmentsStatus=i.bigSegmentsStatus),void 0!==e.variation&&Aa.TypeValidators.Number.is(e.variation)&&(t.variation=e.variation),void 0!==e.version&&Aa.TypeValidators.Number.is(e.version)&&(t.version=e.version),t}(e.evaluation);var a;return n?{kind:e.kind,operation:e.operation,creationDate:e.creationDate,contextKeys:Object.assign({},e.contextKeys),measurements:(a=e.measurements,a.map(Na).filter((e=>void 0!==e))),evaluation:n,samplingRatio:r}:void 0};var Ka={};Object.defineProperty(Ka,"__esModule",{value:!0});const $a=o,Ua=Mi;function Ba(e){return!Number.isNaN(e)}Ka.default=class{constructor(e,t,i,r,n,a,s,o,l,u){this.flagKey=e,this.contextKeys=t,this.defaultStage=i,this.stage=r,this.reason=n,this.checkRatio=a,this.variation=s,this.version=o,this.samplingRatio=l,this.logger=u,this.errors={old:!1,new:!1},this.wasInvoked={old:!1,new:!1},this.consistencyCheck=Ua.LDConsistencyCheck.NotChecked,this.latencyMeasurement={old:NaN,new:NaN}}op(e){this.operation=e}error(e){this.errors[e]=!0}consistency(e){var t,i;if($a.internal.shouldSample(null!==(t=this.checkRatio)&&void 0!==t?t:1))try{const t=e();this.consistencyCheck=t?Ua.LDConsistencyCheck.Consistent:Ua.LDConsistencyCheck.Inconsistent}catch(e){null===(i=this.logger)||void 0===i||i.error(`Exception when executing consistency check function for migration '${this.flagKey}' the consistency check will not be included in the generated migration op event. Exception: ${e}`)}}latency(e,t){this.latencyMeasurement[e]=t}invoked(e){this.wasInvoked[e]=!0}createEvent(){var e,t,i,r,n;if(!$a.TypeValidators.String.is(this.flagKey)||""===this.flagKey)return void(null===(e=this.logger)||void 0===e||e.error("The flag key for a migration operation must be a non-empty string."));if(!this.operation)return void(null===(t=this.logger)||void 0===t||t.error('The operation must be set using "op" before an event can be created.'));if(0===Object.keys(this.contextKeys).length)return void(null===(i=this.logger)||void 0===i||i.error("The migration was not done against a valid context and cannot generate an event."));if(!this.wasInvoked.old&&!this.wasInvoked.new)return void(null===(r=this.logger)||void 0===r||r.error('The migration invoked neither the "old" or "new" implementation andan event cannot be generated'));if(!this.measurementConsistencyCheck())return;const a=[];return this.populateInvoked(a),this.populateConsistency(a),this.populateLatency(a),this.populateErrors(a),{kind:"migration_op",operation:this.operation,creationDate:Date.now(),contextKeys:this.contextKeys,evaluation:{key:this.flagKey,value:this.stage,default:this.defaultStage,reason:this.reason,variation:this.variation,version:this.version},measurements:a,samplingRatio:null!==(n=this.samplingRatio)&&void 0!==n?n:1}}logTag(){return`For migration ${this.operation}-${this.flagKey}:`}latencyConsistencyMessage(e){return`Latency measurement for "${e}", but "${e}" was not invoked.`}errorConsistencyMessage(e){return`Error occurred for "${e}", but "${e}" was not invoked.`}consistencyCheckConsistencyMessage(e){return`Consistency check was done, but "${e}" was not invoked.Both "old" and "new" must be invoked to do a consistency check.`}checkOriginEventConsistency(e){var t,i,r;return!!this.wasInvoked[e]||(Number.isNaN(this.latencyMeasurement[e])?this.errors[e]?(null===(i=this.logger)||void 0===i||i.error(`${this.logTag()} ${this.errorConsistencyMessage(e)}`),!1):this.consistencyCheck===Ua.LDConsistencyCheck.NotChecked||(null===(r=this.logger)||void 0===r||r.error(`${this.logTag()} ${this.consistencyCheckConsistencyMessage(e)}`),!1):(null===(t=this.logger)||void 0===t||t.error(`${this.logTag()} ${this.latencyConsistencyMessage(e)}`),!1))}measurementConsistencyCheck(){return this.checkOriginEventConsistency("old")&&this.checkOriginEventConsistency("new")}populateInvoked(e){var t;const i={key:"invoked",values:{}};this.wasInvoked.old||this.wasInvoked.new||null===(t=this.logger)||void 0===t||t.error("Migration op completed without executing any origins (old/new)."),this.wasInvoked.old&&(i.values.old=!0),this.wasInvoked.new&&(i.values.new=!0),e.push(i)}populateConsistency(e){var t;void 0!==this.consistencyCheck&&this.consistencyCheck!==Ua.LDConsistencyCheck.NotChecked&&e.push({key:"consistent",value:this.consistencyCheck===Ua.LDConsistencyCheck.Consistent,samplingRatio:null!==(t=this.checkRatio)&&void 0!==t?t:1})}populateErrors(e){if(this.errors.new||this.errors.old){const t={key:"error",values:{}};this.errors.new&&(t.values.new=!0),this.errors.old&&(t.values.old=!0),e.push(t)}}populateLatency(e){const t=Ba(this.latencyMeasurement.new),i=Ba(this.latencyMeasurement.old);if(t||i){const r={};t&&(r.new=this.latencyMeasurement.new),i&&(r.old=this.latencyMeasurement.old),e.push({key:"latency_ms",values:r})}}},Object.defineProperty(s,"__esModule",{value:!0});const za=o,Ha=Pi,qa=gr,Wa=Or,Ja=Ir,Ga=$r,Xa=pn,Ya=mn,Qa=En,Za=Pn,es=Fn,ts=Pa,is=Da,rs=xa,ns=Ia,as=Fa,ss=Va,os=Ka,ls=bn,us=Sr,{ClientMessages:cs,ErrorKinds:ds,NullEventProcessor:hs}=za.internal;var fs,vs;(vs=fs||(fs={}))[vs.Initializing=0]="Initializing",vs[vs.Initialized=1]="Initialized",vs[vs.Failed=2]="Failed";s.default=class{constructor(e,t,i,r,n){var a,s,o,l,u;this.sdkKey=e,this.platform=t,this.initState=fs.Initializing,this.eventFactoryDefault=new is.default(!1),this.eventFactoryWithReasons=new is.default(!0),this.onError=r.onError,this.onFailed=r.onFailed,this.onReady=r.onReady;const{onUpdate:c,hasEventListeners:d}=r,h=new ls.default(i,n);if(this.hookRunner=new as.default(h.logger,h.hooks||[]),!e&&!h.offline)throw new Error("You must configure the client with an SDK key");this.config=h,this.logger=h.logger;const f=new za.ClientContext(e,h,t),v=h.featureStoreFactory(f),g=new Ja.default(v,d,c);!h.sendEvents||h.offline||h.diagnosticOptOut||(this.diagnosticsManager=new za.internal.DiagnosticsManager(e,t,(0,Ya.default)(h,t,v))),!h.sendEvents||h.offline?this.eventProcessor=new hs:this.eventProcessor=new za.internal.EventProcessor(h,f,new ts.default(h),this.diagnosticsManager),this.featureStore=v;const p=new qa.default(null===(s=null===(a=h.bigSegments)||void 0===a?void 0:a.store)||void 0===s?void 0:s.call(a,f),null!==(o=h.bigSegments)&&void 0!==o?o:{},h.logger,this.platform.crypto);this.bigSegmentsManager=p,this.bigSegmentStatusProviderInternal=p.statusProvider;const y={getFlag(e,t){v.get(us.default.Features,e,(e=>t(e)))},getSegment(e,t){v.get(us.default.Segments,e,(e=>t(e)))},getBigSegmentsMembership:e=>p.getUserMembership(e)};this.evaluator=new es.default(this.platform,y);const m=(0,Wa.createStreamListeners)(g,this.logger,{put:()=>this.initSuccess()}),b=()=>h.stream?new za.internal.StreamingProcessor(e,f,"/all",m,this.diagnosticsManager,(e=>this.dataSourceErrorHandler(e)),this.config.streamInitialReconnectDelay):new Ga.default(h,new Xa.default(e,h,this.platform.info,this.platform.requests),g,(()=>this.initSuccess()),(e=>this.dataSourceErrorHandler(e)));h.offline||h.useLdd||(this.updateProcessor=null!==(u=null===(l=h.updateProcessorFactory)||void 0===l?void 0:l.call(h,f,g,(()=>this.initSuccess()),(e=>this.dataSourceErrorHandler(e))))&&void 0!==u?u:b()),this.updateProcessor?this.updateProcessor.start():setTimeout((()=>this.initSuccess()),0)}initialized(){return this.initState===fs.Initialized}waitForInitialization(e){var t,i;return void 0===(null==e?void 0:e.timeout)&&void 0!==this.updateProcessor&&(null===(t=this.logger)||void 0===t||t.warn("The waitForInitialization function was called without a timeout specified. In a future version a default timeout will be applied.")),void 0!==(null==e?void 0:e.timeout)&&(null==e?void 0:e.timeout)>60&&void 0!==this.updateProcessor&&(null===(i=this.logger)||void 0===i||i.warn("The waitForInitialization function was called with a timeout greater than 60 seconds. We recommend a timeout of less than 60 seconds.")),this.initializedPromise?this.clientWithTimeout(this.initializedPromise,null==e?void 0:e.timeout,this.logger):this.initState===fs.Initialized?(this.initializedPromise=Promise.resolve(this),this.initializedPromise):this.initState===fs.Failed?(this.initializedPromise=Promise.reject(this.rejectionReason),this.initializedPromise):(this.initializedPromise||(this.initializedPromise=new Promise(((e,t)=>{this.initResolve=e,this.initReject=t}))),this.clientWithTimeout(this.initializedPromise,null==e?void 0:e.timeout,this.logger))}variation(e,t,i,r){return this.hookRunner.withEvaluationSeries(e,t,i,"LDClient.variation",(()=>new Promise((r=>{this.evaluateIfPossible(e,t,i,this.eventFactoryDefault,(e=>{r(e.detail)}))})))).then((e=>(null==r||r(null,e.value),e.value)))}variationDetail(e,t,i,r){return this.hookRunner.withEvaluationSeries(e,t,i,"LDClient.variationDetail",(()=>new Promise((n=>{this.evaluateIfPossible(e,t,i,this.eventFactoryWithReasons,(e=>{n(e.detail),null==r||r(null,e.detail)}))}))))}typedEval(e,t,i,r,n,a){return this.hookRunner.withEvaluationSeries(e,t,i,n,(()=>new Promise((n=>{this.evaluateIfPossible(e,t,i,r,(e=>{const t={value:e.detail.value,reason:e.detail.reason,variationIndex:e.detail.variationIndex};n(t)}),a)}))))}async boolVariation(e,t,i){return(await this.typedEval(e,t,i,this.eventFactoryDefault,"LDClient.boolVariation",(e=>[za.TypeValidators.Boolean.is(e),za.TypeValidators.Boolean.getType()]))).value}async numberVariation(e,t,i){return(await this.typedEval(e,t,i,this.eventFactoryDefault,"LDClient.numberVariation",(e=>[za.TypeValidators.Number.is(e),za.TypeValidators.Number.getType()]))).value}async stringVariation(e,t,i){return(await this.typedEval(e,t,i,this.eventFactoryDefault,"LDClient.stringVariation",(e=>[za.TypeValidators.String.is(e),za.TypeValidators.String.getType()]))).value}jsonVariation(e,t,i){return this.hookRunner.withEvaluationSeries(e,t,i,"LDClient.jsonVariation",(()=>new Promise((r=>{this.evaluateIfPossible(e,t,i,this.eventFactoryDefault,(e=>{r(e.detail)}))})))).then((e=>e.value))}boolVariationDetail(e,t,i){return this.typedEval(e,t,i,this.eventFactoryWithReasons,"LDClient.boolVariationDetail",(e=>[za.TypeValidators.Boolean.is(e),za.TypeValidators.Boolean.getType()]))}numberVariationDetail(e,t,i){return this.typedEval(e,t,i,this.eventFactoryWithReasons,"LDClient.numberVariationDetail",(e=>[za.TypeValidators.Number.is(e),za.TypeValidators.Number.getType()]))}stringVariationDetail(e,t,i){return this.typedEval(e,t,i,this.eventFactoryWithReasons,"LDClient.stringVariationDetail",(e=>[za.TypeValidators.String.is(e),za.TypeValidators.String.getType()]))}jsonVariationDetail(e,t,i){return this.hookRunner.withEvaluationSeries(e,t,i,"LDClient.jsonVariationDetail",(()=>new Promise((r=>{this.evaluateIfPossible(e,t,i,this.eventFactoryWithReasons,(e=>{r(e.detail)}))}))))}async migrationVariationInternal(e,t,i){var r;const n=za.Context.fromLDContext(t),a=await new Promise((r=>{this.evaluateIfPossible(e,t,i,this.eventFactoryWithReasons,(({detail:t},n)=>{if((0,Ha.IsMigrationStage)(t.value))r({detail:t,flag:n});else{const t=new Error(`Unrecognized MigrationState for "${e}"; returning default value.`);this.onError(t);const a={kind:"ERROR",errorKind:ds.WrongType};r({detail:{value:i,reason:a},flag:n})}}))})),{detail:s,flag:o}=a,l=n.valid?n.kindsAndKeys:{},u=null===(r=null==o?void 0:o.migration)||void 0===r?void 0:r.checkRatio,c=null==o?void 0:o.samplingRatio;return{detail:s,migration:{value:s.value,tracker:new os.default(e,l,i,s.value,s.reason,u,null===s.variationIndex?void 0:s.variationIndex,null==o?void 0:o.version,c,this.logger)}}}async migrationVariation(e,t,i){return(await this.hookRunner.withEvaluationSeriesExtraDetail(e,t,i,"LDClient.migrationVariation",(()=>this.migrationVariationInternal(e,t,i)))).migration}allFlagsState(e,t,i){var r,n,a;if(this.config.offline){null===(r=this.logger)||void 0===r||r.info("allFlagsState() called in offline mode. Returning empty state.");const e=new ns.default(!1,!1).build();return null==i||i(null,e),Promise.resolve(e)}const s=za.Context.fromLDContext(e);return s.valid?new Promise((e=>{const r=r=>this.featureStore.all(us.default.Features,(n=>{const a=new ns.default(r,!!(null==t?void 0:t.withReasons)),o=!!(null==t?void 0:t.clientSideOnly),l=!!(null==t?void 0:t.detailsOnlyForTrackedFlags);(0,Qa.allAsync)(Object.values(n),((e,t)=>{var i;const r=e;!o||(null===(i=r.clientSideAvailability)||void 0===i?void 0:i.usingEnvironmentId)?this.evaluator.evaluateCb(r,s,(e=>{var i;e.isError&&this.onError(new Error(`Error for feature flag "${r.key}" while evaluating all flags: ${e.message}`));const n=(0,rs.default)(r,e.detail.reason);a.addFlag(r,e.detail.value,null!==(i=e.detail.variationIndex)&&void 0!==i?i:void 0,e.detail.reason,r.trackEvents||n,n,l),t(!0)})):t(!0)}),(()=>{const t=a.build();null==i||i(null,t),e(t)}))}));this.initialized()?r(!0):this.featureStore.initialized((e=>{var t,i;let n=!0;e?null===(t=this.logger)||void 0===t||t.warn("Called allFlagsState before client initialization; using last known values from data store"):(null===(i=this.logger)||void 0===i||i.warn("Called allFlagsState before client initialization. Data store not available; returning empty state"),n=!1),r(n)}))})):(null===(n=this.logger)||void 0===n||n.info(`${null!==(a=s.message)&&void 0!==a?a:"Invalid context."}. Returning empty state.`),Promise.resolve(new ns.default(!1,!1).build()))}secureModeHash(e){const t=za.Context.fromLDContext(e),i=t.valid?t.canonicalKey:void 0,r=this.platform.crypto.createHmac("sha256",this.sdkKey);if(void 0===i)throw new za.LDClientError("Could not generate secure mode hash for invalid context");return r.update(i),r.digest("hex")}close(){var e;this.eventProcessor.close(),null===(e=this.updateProcessor)||void 0===e||e.close(),this.featureStore.close(),this.bigSegmentsManager.close()}isOffline(){return this.config.offline}track(e,t,i,r){var n,a;const s=za.Context.fromLDContext(t);s.valid?(void 0===r||za.TypeValidators.Number.is(r)||null===(a=this.logger)||void 0===a||a.warn(cs.invalidMetricValue(typeof r)),this.eventProcessor.sendEvent(this.eventFactoryDefault.customEvent(e,s,i,r))):null===(n=this.logger)||void 0===n||n.warn(cs.missingContextKeyNoEvent)}trackMigration(e){const t=(0,ss.default)(e);t&&this.eventProcessor.sendEvent(t)}identify(e){var t;const i=za.Context.fromLDContext(e);i.valid?this.eventProcessor.sendEvent(this.eventFactoryDefault.identifyEvent(i)):null===(t=this.logger)||void 0===t||t.warn(cs.missingContextKeyNoEvent)}async flush(e){try{await this.eventProcessor.flush()}catch(t){null==e||e(t,!1)}null==e||e(null,!0)}addHook(e){this.hookRunner.addHook(e)}variationInternal(e,t,i,r,n,a){var s,o;if(this.config.offline)return null===(s=this.logger)||void 0===s||s.info("Variation called in offline mode. Returning default value."),void n(Za.default.forError(ds.ClientNotReady,void 0,i));const l=za.Context.fromLDContext(t);if(!l.valid)return this.onError(new za.LDClientError(`${null!==(o=l.message)&&void 0!==o?o:"Context not valid;"} returning default value.`)),void n(Za.default.forError(ds.UserNotSpecified,void 0,i));this.featureStore.get(us.default.Features,e,(t=>{const s=t;if(!s){const t=new za.LDClientError(`Unknown feature flag "${e}"; returning default value`);this.onError(t);const r=Za.default.forError(ds.FlagNotFound,void 0,i);return this.eventProcessor.sendEvent(this.eventFactoryDefault.unknownFlagEvent(e,i,l)),void n(r)}this.evaluator.evaluateCb(s,l,(t=>{var o;if(void 0!==t.detail.variationIndex&&null!==t.detail.variationIndex||(null===(o=this.logger)||void 0===o||o.debug("Result value is null in variation"),t.setDefault(i)),a){const[o,u]=a(t.detail.value);if(!o){const t=Za.default.forError(ds.WrongType,`Did not receive expected type (${u}) evaluating feature flag "${e}"`,i);return this.sendEvalEvent(t,r,s,l,i),void n(t,s)}}this.sendEvalEvent(t,r,s,l,i),n(t,s)}),r)}))}sendEvalEvent(e,t,i,r,n){var a;null===(a=e.events)||void 0===a||a.forEach((e=>{this.eventProcessor.sendEvent(Object.assign({},e))})),this.eventProcessor.sendEvent(t.evalEventServer(i,r,e.detail,n,void 0))}evaluateIfPossible(e,t,i,r,n,a){this.initialized()?this.variationInternal(e,t,i,r,n,a):this.featureStore.initialized((s=>{var o,l;if(s)return null===(o=this.logger)||void 0===o||o.warn("Variation called before LaunchDarkly client initialization completed (did you wait for the 'ready' event?) - using last known values from feature store"),void this.variationInternal(e,t,i,r,n,a);null===(l=this.logger)||void 0===l||l.warn("Variation called before LaunchDarkly client initialization completed (did you wait for the'ready' event?) - using default value"),n(Za.default.forError(ds.ClientNotReady,void 0,i))}))}dataSourceErrorHandler(e){var t;const i=401===e.code?new Error("Authentication failed. Double check your SDK key."):e;this.onError(i),this.onFailed(i),this.initialized()||(this.initState=fs.Failed,this.rejectionReason=i,null===(t=this.initReject)||void 0===t||t.call(this,i))}initSuccess(){var e;this.initialized()||(this.initState=fs.Initialized,null===(e=this.initResolve)||void 0===e||e.call(this,this),this.onReady())}clientWithTimeout(e,t,i){if(t){const r=(0,za.cancelableTimedPromise)(t,"waitForInitialization");return Promise.race([e.then((()=>r.cancel())).then((()=>this)),r.promise.then((()=>this))]).catch((e=>{throw e instanceof za.LDTimeoutError&&(null==i||i.error(e.message)),e}))}return e}};var gs={};Object.defineProperty(gs,"__esModule",{value:!0}),gs.createMigration=gs.LDMigrationError=gs.LDMigrationSuccess=void 0;const ps=Pi,ys=qi;gs.LDMigrationSuccess=function(e){return{success:!0,result:e}},gs.LDMigrationError=function(e){return{success:!1,error:e}};class ms{constructor(e,t){var i,r;this.client=e,this.config=t,this.readTable={[ps.LDMigrationStage.Off]:async e=>this.doSingleOp(e,"old",this.config.readOld.bind(this.config)),[ps.LDMigrationStage.DualWrite]:async e=>this.doSingleOp(e,"old",this.config.readOld.bind(this.config)),[ps.LDMigrationStage.Shadow]:async e=>{const{fromOld:t,fromNew:i}=await this.doRead(e);return this.trackConsistency(e,t,i),t},[ps.LDMigrationStage.Live]:async e=>{const{fromNew:t,fromOld:i}=await this.doRead(e);return this.trackConsistency(e,i,t),t},[ps.LDMigrationStage.RampDown]:async e=>this.doSingleOp(e,"new",this.config.readNew.bind(this.config)),[ps.LDMigrationStage.Complete]:async e=>this.doSingleOp(e,"new",this.config.readNew.bind(this.config))},this.writeTable={[ps.LDMigrationStage.Off]:async e=>({authoritative:await this.doSingleOp(e,"old",this.config.writeOld.bind(this.config))}),[ps.LDMigrationStage.DualWrite]:async e=>{const t=await this.doSingleOp(e,"old",this.config.writeOld.bind(this.config));if(!t.success)return{authoritative:t};return{authoritative:t,nonAuthoritative:await this.doSingleOp(e,"new",this.config.writeNew.bind(this.config))}},[ps.LDMigrationStage.Shadow]:async e=>{const t=await this.doSingleOp(e,"old",this.config.writeOld.bind(this.config));if(!t.success)return{authoritative:t};return{authoritative:t,nonAuthoritative:await this.doSingleOp(e,"new",this.config.writeNew.bind(this.config))}},[ps.LDMigrationStage.Live]:async e=>{const t=await this.doSingleOp(e,"new",this.config.writeNew.bind(this.config));if(!t.success)return{authoritative:t};return{authoritative:t,nonAuthoritative:await this.doSingleOp(e,"old",this.config.writeOld.bind(this.config))}},[ps.LDMigrationStage.RampDown]:async e=>{const t=await this.doSingleOp(e,"new",this.config.writeNew.bind(this.config));if(!t.success)return{authoritative:t};return{authoritative:t,nonAuthoritative:await this.doSingleOp(e,"old",this.config.writeOld.bind(this.config))}},[ps.LDMigrationStage.Complete]:async e=>({authoritative:await this.doSingleOp(e,"new",this.config.writeNew.bind(this.config))})},this.config.execution?this.execution=this.config.execution:this.execution=new ys.LDConcurrentExecution,this.latencyTracking=null===(i=this.config.latencyTracking)||void 0===i||i,this.errorTracking=null===(r=this.config.errorTracking)||void 0===r||r}async read(e,t,i,r){const n=await this.client.migrationVariation(e,t,i),a=await this.readTable[n.value]({payload:r,tracker:n.tracker});return n.tracker.op("read"),this.sendEvent(n.tracker),a}async write(e,t,i,r){const n=await this.client.migrationVariation(e,t,i),a=await this.writeTable[n.value]({payload:r,tracker:n.tracker});return n.tracker.op("write"),this.sendEvent(n.tracker),a}sendEvent(e){const t=e.createEvent();t&&this.client.trackMigration(t)}trackConsistency(e,t,i){this.config.check&&t.success&&i.success&&e.tracker.consistency((()=>this.config.check(t.result,i.result)))}async readSequentialFixed(e){return{fromOld:await this.doSingleOp(e,"old",this.config.readOld.bind(this.config)),fromNew:await this.doSingleOp(e,"new",this.config.readNew.bind(this.config))}}async readConcurrent(e){const t=this.doSingleOp(e,"old",this.config.readOld.bind(this.config)),i=this.doSingleOp(e,"new",this.config.readNew.bind(this.config)),[r,n]=await Promise.all([t,i]);return{fromOld:r,fromNew:n}}async readSequentialRandom(e){if(0===Math.floor(2*Math.random())){return{fromOld:await this.doSingleOp(e,"old",this.config.readOld.bind(this.config)),fromNew:await this.doSingleOp(e,"new",this.config.readNew.bind(this.config))}}const t=await this.doSingleOp(e,"new",this.config.readNew.bind(this.config));return{fromOld:await this.doSingleOp(e,"old",this.config.readOld.bind(this.config)),fromNew:t}}async doRead(e){var t;if((null===(t=this.execution)||void 0===t?void 0:t.type)===ys.LDExecution.Serial){return this.execution.ordering===ys.LDExecutionOrdering.Fixed?this.readSequentialFixed(e):this.readSequentialRandom(e)}return this.readConcurrent(e)}async doSingleOp(e,t,i){e.tracker.invoked(t);const r=await this.trackLatency(e.tracker,t,(()=>async function(e){try{return await e()}catch(e){return{success:!1,error:e}}}((()=>i(e.payload)))));return!r.success&&this.errorTracking&&e.tracker.error(t),Object.assign({origin:t},r)}async trackLatency(e,t,i){if(!this.latencyTracking)return i();let r,n,a;"undefined"!=typeof performance?(r=performance.now(),a=await i(),n=performance.now()):(r=Date.now(),a=await i(),n=Date.now());const s=n-r;return e.latency(t,s),a}}gs.createMigration=function(e,t){return new ms(e,t)};var bs={},Os={},ws={},Ss={};Object.defineProperty(Ss,"__esModule",{value:!0});Ss.default=class{constructor(e,t,i,r){this.filesystem=e,this.paths=t,this.watch=i,this.callback=r,this.watchers=[],this.fileData={},this.fileTimestamps={}}async loadAndWatch(){const e=this.paths.map((async e=>({data:await this.filesystem.readFile(e),path:e,timeStamp:await this.filesystem.getFileTimestamp(e)}))),t=await Promise.all(e);t.forEach((e=>{this.fileData[e.path]=e.data,this.fileTimestamps[e.path]=e.timeStamp})),this.callback(t),this.watch&&this.paths.forEach((e=>{const t=this.filesystem.watch(e,(async(e,t)=>{const i=await this.filesystem.getFileTimestamp(t);if(i===this.fileTimestamps[t])return;this.fileTimestamps[t]=i;const r=await this.filesystem.readFile(t);this.fileData[t]=r,this.debounceCallback()}));this.watchers.push(t)}))}close(){this.watchers.forEach((e=>e.close()))}debounceCallback(){this.debounceHandle||(this.debounceHandle=setTimeout((()=>{this.debounceHandle=void 0,this.callback(Object.entries(this.fileData).reduce(((e,[t,i])=>(e.push({path:t,data:i}),e)),[]))}),10))}},Object.defineProperty(ws,"__esModule",{value:!0});const Es=wr,_s=Sr,ks=Ss;ws.default=class{constructor(e,t,i,r=(()=>{}),n){var a;this.featureStore=i,this.initSuccessHandler=r,this.errorHandler=n,this.allData={},this.fileLoader=new ks.default(t,e.paths,null!==(a=e.autoUpdate)&&void 0!==a&&a,(e=>{var t,i;try{this.processFileData(e)}catch(e){null===(t=this.errorHandler)||void 0===t||t.call(this,e),null===(i=this.logger)||void 0===i||i.error(`Error processing files: ${e}`)}})),this.logger=e.logger,this.yamlParser=e.yamlParser}start(){(async()=>{var e;try{await this.fileLoader.loadAndWatch()}catch(t){null===(e=this.errorHandler)||void 0===e||e.call(this,t)}})()}stop(){this.fileLoader.close()}close(){this.stop()}addItem(e,t){if(this.allData[e.namespace]||(this.allData[e.namespace]={}),this.allData[e.namespace][t.key])throw new Error(`found duplicate key: "${t.key}"`);this.allData[e.namespace][t.key]=t}processFileData(e){const t=this.allData;this.allData={},e.forEach((e=>{let i;if(e.path.endsWith(".yml")||e.path.endsWith(".yaml")){if(!this.yamlParser)throw new Error(`Attempted to parse yaml file (${e.path}) without parser.`);i=this.yamlParser(e.data)}else i=JSON.parse(e.data);this.processParsedData(i,t)})),this.featureStore.init(this.allData,(()=>{this.initSuccessHandler(),this.initSuccessHandler=()=>{}}))}processParsedData(e,t){Object.keys(e.flags||{}).forEach((t=>{(0,Es.processFlag)(e.flags[t]),this.addItem(_s.default.Features,e.flags[t])})),Object.keys(e.flagValues||{}).forEach((i=>{var r,n;const a=null===(r=t[_s.default.Features.namespace])||void 0===r?void 0:r[i];let{version:s}=null!=a?a:{version:1};a&&JSON.stringify(e.flagValues[i])!==JSON.stringify(null===(n=null==a?void 0:a.variations)||void 0===n?void 0:n[0])&&(s+=1);const o=function(e,t,i){return{key:e,on:!0,fallthrough:{variation:0},variations:[t],version:i}}(i,e.flagValues[i],s);(0,Es.processFlag)(o),this.addItem(_s.default.Features,o)})),Object.keys(e.segments||{}).forEach((t=>{(0,Es.processSegment)(e.segments[t]),this.addItem(_s.default.Segments,e.segments[t])}))}},Object.defineProperty(Os,"__esModule",{value:!0});const Ps=ws;Os.default=class{constructor(e){this.options=e}create(e,t,i,r){const n={paths:this.options.paths,autoUpdate:this.options.autoUpdate,logger:this.options.logger||e.basicConfiguration.logger,yamlParser:this.options.yamlParser};return new Ps.default(n,e.platform.fileSystem,t,i,r)}getFactory(){return(e,t,i,r)=>this.create(e,t,i,r)}};var Ms={},Ds={},xs={},js={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.variationForBoolean=e.FALSE_VARIATION_INDEX=e.TRUE_VARIATION_INDEX=void 0,e.TRUE_VARIATION_INDEX=0,e.FALSE_VARIATION_INDEX=1,e.variationForBoolean=function(t){return t?e.TRUE_VARIATION_INDEX:e.FALSE_VARIATION_INDEX}}(js);var Ts={};Object.defineProperty(Ts,"__esModule",{value:!0});const Cs=o,Is=js;class Fs{constructor(e,t,i){this.flagBuilder=e,this.clauses=[],t&&(this.clauses=[...t]),void 0!==i&&(this.variation=i)}andMatch(e,t,...i){return this.clauses.push({contextKind:e,attribute:t,attributeReference:new Cs.AttributeReference(t),op:"in",values:i,negate:!1}),this}andNotMatch(e,t,...i){return this.clauses.push({contextKind:e,attribute:t,attributeReference:new Cs.AttributeReference(t),op:"in",values:i,negate:!0}),this}thenReturn(e){return Cs.TypeValidators.Boolean.is(e)?(this.flagBuilder.booleanFlag(),this.thenReturn((0,Is.variationForBoolean)(e))):(this.variation=e,this.flagBuilder.addRule(this),this.flagBuilder)}build(e){return{id:`rule${e}`,variation:this.variation,clauses:this.clauses}}clone(){return new Fs(this.flagBuilder,this.clauses,this.variation)}}Ts.default=Fs,Object.defineProperty(xs,"__esModule",{value:!0});const Rs=o,Vs=js,As=Ts;class Ls{constructor(e,t){this.key=e,this.data={on:!0,variations:[]},t&&(this.data={on:t.on,variations:[...t.variations]},void 0!==t.offVariation&&(this.data.offVariation=t.offVariation),void 0!==t.fallthroughVariation&&(this.data.fallthroughVariation=t.fallthroughVariation),t.targetsByVariation&&(this.data.targetsByVariation=JSON.parse(JSON.stringify(t.targetsByVariation))),t.rules&&(this.data.rules=[],t.rules.forEach((e=>{var t;null===(t=this.data.rules)||void 0===t||t.push(e.clone())}))))}get isBooleanFlag(){return 2===this.data.variations.length&&!0===this.data.variations[Vs.TRUE_VARIATION_INDEX]&&!1===this.data.variations[Vs.FALSE_VARIATION_INDEX]}booleanFlag(){return this.isBooleanFlag?this:this.variations(!0,!1).fallthroughVariation(Vs.TRUE_VARIATION_INDEX).offVariation(Vs.FALSE_VARIATION_INDEX)}variations(...e){return this.data.variations=[...e],this}on(e){return this.data.on=e,this}fallthroughVariation(e){return Rs.TypeValidators.Boolean.is(e)?this.booleanFlag().fallthroughVariation((0,Vs.variationForBoolean)(e)):(this.data.fallthroughVariation=e,this)}offVariation(e){return Rs.TypeValidators.Boolean.is(e)?this.booleanFlag().offVariation((0,Vs.variationForBoolean)(e)):(this.data.offVariation=e,this)}variationForAll(e){return this.on(!0).clearRules().clearAllTargets().fallthroughVariation(e)}valueForAll(e){return this.variations(e).variationForAll(0)}variationForUser(e,t){return this.variationForContext("user",e,t)}variationForContext(e,t,i){return Rs.TypeValidators.Boolean.is(i)?this.booleanFlag().variationForContext(e,t,(0,Vs.variationForBoolean)(i)):(this.data.targetsByVariation||(this.data.targetsByVariation={}),this.data.variations.forEach(((r,n)=>{if(n===i){const i=this.data.targetsByVariation[n]||{};e in i||(i[e]=[]);-1!==i[e].indexOf(t)||i[e].push(t),this.data.targetsByVariation[n]=i}else{const i=this.data.targetsByVariation[n];if(i){const r=i[e];if(r){const n=r.indexOf(t);-1!==n&&(r.splice(n,1),r.length||delete i[e])}Object.keys(i).length||delete this.data.targetsByVariation[n]}}})),this)}clearRules(){return delete this.data.rules,this}clearAllTargets(){return delete this.data.targetsByVariation,this}ifMatch(e,t,...i){return new As.default(this).andMatch(e,t,...i)}ifNotMatch(e,t,...i){return new As.default(this).andNotMatch(e,t,...i)}checkRatio(e){var t;return this.data.migration=null!==(t=this.data.migration)&&void 0!==t?t:{},this.data.migration.checkRatio=e,this}samplingRatio(e){return this.data.samplingRatio=e,this}addRule(e){this.data.rules||(this.data.rules=[]),this.data.rules.push(e)}build(e){const t={key:this.key,version:e,on:this.data.on,offVariation:this.data.offVariation,fallthrough:{variation:this.data.fallthroughVariation},variations:[...this.data.variations],migration:this.data.migration,samplingRatio:this.data.samplingRatio};if(this.data.targetsByVariation){const e=[],i=[];Object.entries(this.data.targetsByVariation).forEach((([t,r])=>{Object.entries(r).forEach((([r,n])=>{const a=parseInt(t,10);e.push({contextKind:r,values:"user"===r?[]:n,variation:a}),"user"===r&&i.push({values:n,variation:a})}))})),t.targets=i,t.contextTargets=e}return this.data.rules&&(t.rules=this.data.rules.map(((e,t)=>e.build(String(t))))),t}clone(){return new Ls(this.key,this.data)}getKey(){return this.key}}xs.default=Ls;var Ns={};Object.defineProperty(Ns,"__esModule",{value:!0});Ns.default=class{constructor(e,t,i,r,n){this.featureStore=e,this.onStop=r,this.listeners=n,this.flags=Object.assign({},t),this.segments=Object.assign({},i)}async start(){this.listeners.forEach((({processJson:e})=>{e({data:{flags:this.flags,segments:this.segments}})}))}stop(){this.onStop(this)}close(){this.stop()}async upsert(e,t){return this.featureStore.upsert(e,t)}},Object.defineProperty(Ds,"__esModule",{value:!0});const Ks=Or,$s=Br,Us=wr,Bs=Sr,zs=xs,Hs=Ns;Ds.default=class{constructor(){this.currentFlags={},this.currentSegments={},this.dataSources=[],this.flagBuilders={}}getFactory(){return(e,t,i,r)=>{const n=(0,Ks.createStreamListeners)(t,e.basicConfiguration.logger,{put:i}),a=new Hs.default(new $s.default(t),this.currentFlags,this.currentSegments,(e=>{this.dataSources.splice(this.dataSources.indexOf(e))}),n);return this.dataSources.push(a),a}}flag(e){return this.flagBuilders[e]?this.flagBuilders[e].clone():new zs.default(e).booleanFlag()}update(e){const t=e.getKey(),i=this.currentFlags[t],r=i?i.version:0,n=e.build(r+1);return this.currentFlags[t]=n,this.flagBuilders[t]=e.clone(),Promise.all(this.dataSources.map((e=>e.upsert(Bs.default.Features,n))))}usePreconfiguredFlag(e){const t=JSON.parse(JSON.stringify(e)),i=this.currentFlags[t.key],r=Object.assign(Object.assign({},t),{version:i?i.version+1:t.version});return(0,Us.processFlag)(r),this.currentFlags[t.key]=r,Promise.all(this.dataSources.map((e=>e.upsert(Bs.default.Features,r))))}usePreconfiguredSegment(e){const t=JSON.parse(JSON.stringify(e)),i=this.currentSegments[t.key],r=Object.assign(Object.assign({},t),{version:i?i.version+1:t.version});return(0,Us.processSegment)(r),this.currentSegments[t.key]=r,Promise.all(this.dataSources.map((e=>e.upsert(Bs.default.Segments,r))))}},Object.defineProperty(Ms,"__esModule",{value:!0}),Ms.TestDataRuleBuilder=Ms.TestDataFlagBuilder=Ms.TestData=void 0;const qs=Ds;Ms.TestData=qs.default;const Ws=xs;Ms.TestDataFlagBuilder=Ws.default;const Js=Ts;Ms.TestDataRuleBuilder=Js.default,function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.FileDataSourceFactory=void 0;const n=Os;e.FileDataSourceFactory=n.default,i(Ms,e),i(Qi,e)}(bs);var Gs={},Xs={};Object.defineProperty(Xs,"__esModule",{value:!0});Xs.default=class{constructor(e,t){this.handlers={},this.closed=!1,this.url=e,this.options=t}addEventListener(e,t){this.handlers[e]=t}close(){this.closed=!0}simulateError(e){this.options.errorFilter(e)||(this.closed=!0)}},Object.defineProperty(Gs,"__esModule",{value:!0}),Gs.NullEventSource=void 0;const Ys=Xs;Gs.NullEventSource=Ys.default,function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.createMigration=e.LDMigrationSuccess=e.LDMigrationError=e.BigSegmentStoreStatusProviderImpl=e.LDClientImpl=e.platform=e.integrations=void 0;const n=a;e.BigSegmentStoreStatusProviderImpl=n.default;const l=s;e.LDClientImpl=l.default;const u=gs;Object.defineProperty(e,"createMigration",{enumerable:!0,get:function(){return u.createMigration}}),Object.defineProperty(e,"LDMigrationError",{enumerable:!0,get:function(){return u.LDMigrationError}}),Object.defineProperty(e,"LDMigrationSuccess",{enumerable:!0,get:function(){return u.LDMigrationSuccess}}),e.integrations=bs,e.platform=o,i(Pi,e),i(Ur,e),i(Gs,e),i(o,e)}(n);class Qs{constructor(e){let t;switch(e){case"sha1":t=i.algo.SHA1;break;case"sha256":t=i.algo.SHA256;break;default:throw new Error("unsupported hash algorithm. Only sha1 and sha256 are supported.")}this.cryptoJSHasher=t.create()}digest(e){const t=this.cryptoJSHasher.finalize();let r;switch(e){case"base64":r=i.enc.Base64;break;case"hex":r=i.enc.Hex;break;default:throw new Error("unsupported output encoding. Only base64 and hex are supported.")}return t.toString(r)}update(e){return this.cryptoJSHasher.update(e),this}}class Zs{constructor(e,t){let r;switch(e){case"sha1":r=i.algo.SHA1;break;case"sha256":r=i.algo.SHA256;break;default:throw new Error("unsupported hash algorithm. Only sha1 and sha256 are supported.")}this.CryptoJSHmac=i.algo.HMAC.create(r,t)}digest(e){const t=this.CryptoJSHmac.finalize();if("base64"===e)return t.toString(i.enc.Base64);if("hex"===e)return t.toString(i.enc.Hex);throw new Error("unsupported output encoding. Only base64 and hex are supported.")}update(e){return this.CryptoJSHmac.update(e),this}}class eo{createHash(e){return new Qs(e)}createHmac(e,t){return new Zs(e,t)}randomUUID(){return crypto.randomUUID()}}class to{fetch(e,t={}){return fetch(e,t)}createEventSource(e,t){return new n.NullEventSource(e,t)}}class io{constructor(e){this.crypto=new eo,this.requests=new to,this.info=e}}const ro={stream:!1,sendEvents:!1,useLdd:!0,diagnosticOptOut:!0,logger:n.BasicLogger.get()};class no extends n.LDClientImpl{constructor(t,i,r){const a=new e,s={analyticsEventPath:`/events/bulk/${t}`,diagnosticEventPath:`/events/diagnostic/${t}`,includeAuthorizationHeader:!1};var o;super(t,new io(i),(e=>{var t;const i=Object.assign(Object.assign({},ro),e);return null===(t=i.logger)||void 0===t||t.debug(`Using LD options: ${JSON.stringify(i)}`),i})(r),(o=a,{onError:e=>{o.listenerCount("error")&&o.emit("error",e)},onFailed:e=>{o.emit("failed",e)},onReady:()=>{o.emit("ready")},onUpdate:n.noop,hasEventListeners:()=>!1}),s),this.emitter=a}}class ao{constructor(e,t,i,r){this.edgeProvider=e,this.sdkKey=t,this.description=i,this.logger=r,this.close=n.noop,this.delete=n.noop,this.upsert=n.noop,this.rootKey=`LD-Env-${t}`}async get(e,t,i){const{namespace:r}=e,a="features"===r?"flags":r;this.logger.debug(`Requesting ${t} from ${this.rootKey}.${a}`);try{const e=await this.edgeProvider.get(this.rootKey);if(!e)throw new Error(`${this.rootKey}.${a} is not found in KV.`);const s=n.deserializePoll(e);if(!s)throw new Error(`Error deserializing ${a}`);switch(r){case"features":i(s.flags[t]);break;case"segments":i(s.segments[t]);break;default:i(null)}}catch(e){this.logger.error(e),i(null)}}async all(e,t=n.noop){const{namespace:i}=e,r="features"===i?"flags":i;this.logger.debug(`Requesting all from ${this.rootKey}.${r}`);try{const e=await this.edgeProvider.get(this.rootKey);if(!e)throw new Error(`${this.rootKey}.${r} is not found in KV.`);const a=n.deserializePoll(e);if(!a)throw new Error(`Error deserializing ${r}`);switch(i){case"features":t(a.flags);break;case"segments":t(a.segments);break;default:t({})}}catch(e){this.logger.error(e),t({})}}async initialized(e=n.noop){const t=null!==await this.edgeProvider.get(this.rootKey);this.logger.debug(`Is ${this.rootKey} initialized? ${t}`),e(t)}init(e,t){t()}getDescription(){return this.description}}const so=(e,t)=>{const{featureStore:i,logger:r,sendEvents:n}=t,a=function(e,t){var i={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(i[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(i[r[n]]=e[r[n]])}return i}(t,["featureStore","logger","sendEvents"]);if(!e)throw new Error("You must configure the client with a client key");if(!i||"object"!=typeof i||!i.get)throw new Error("You must configure the client with a feature store");if(!r)throw new Error("You must configure the client with a logger");if("{}"!==JSON.stringify(a))throw new Error(`Invalid configuration: ${Object.keys(a).toString()} not supported`);return!0};class oo{platformData(){return{name:"Cloudflare"}}sdkData(){return{name:"@launchdarkly/cloudflare-server-sdk",version:"2.5.8",userAgentBase:"CloudflareEdgeSDK"}}}var lo=Object.defineProperty,uo=Object.getOwnPropertySymbols,co=Object.prototype.hasOwnProperty,ho=Object.prototype.propertyIsEnumerable,fo=(e,t,i)=>t in e?lo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;const vo=(e,t,i={})=>{var r;const a=null!=(r=i.logger)?r:n.BasicLogger.get();return((e,t,i)=>(so(e,i),new no(e,t,i)))(e,new oo,((e,t)=>{for(var i in t||(t={}))co.call(t,i)&&fo(e,i,t[i]);if(uo)for(var i of uo(t))ho.call(t,i)&&fo(e,i,t[i]);return e})({featureStore:new ao(t,e,"Cloudflare",a),logger:a},i))};export{ao as EdgeFeatureStore,vo as init};
|
|
1
|
+
import{EventEmitter as e}from"node:events";import t from"semver";import i from"crypto-js";var r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n={},a={};Object.defineProperty(a,"__esModule",{value:!0});a.default=class{constructor(e){this.onRequestStatus=e}getStatus(){return this.lastStatus}async requireStatus(){return this.lastStatus||await this.onRequestStatus(),this.lastStatus}notify(){var e;this.lastStatus&&(null===(e=this.listener)||void 0===e||e.call(this,this.lastStatus))}setListener(e){this.listener=e}setStatus(e){this.lastStatus=e}};var s={},o={},l={};function u(e){return e.indexOf("~")?e.replace(/~1/g,"/").replace(/~0/g,"~"):e}Object.defineProperty(l,"__esModule",{value:!0});class c{constructor(e,t=!1){if(t){const t=e;this.components=[t],this.isValid=""!==t,this.redactionName=t.startsWith("/")?`/${t.replace(/~/g,"~0").replace(/\//g,"~1")}`:t}else{if(this.redactionName=e,""===e||"/"===e||e.match(/\/\/|(^\/.*~[^0|^1])|~$/))return this.isValid=!1,void(this.components=[]);!function(e){return!e.startsWith("/")}(e)?e.indexOf("/",1)<0?this.components=[u(e.slice(1))]:this.components=function(e){return(e.startsWith("/")?e.substring(1):e).split("/").map((e=>u(e)))}(e):this.components=[e],"_meta"===this.components[0]?this.isValid=!1:this.isValid=!0}}get(e){const{components:t,isValid:i}=this;if(!i)return;let r=e;for(let e=0;e<t.length;e+=1){const i=t[e];if(null==r||!Object.prototype.hasOwnProperty.call(r,i)||"object"!=typeof r||Array.isArray(r))return;r=r[i]}return r}getComponent(e){return this.components[e]}get depth(){return this.components.length}get isKind(){return 1===this.components.length&&"kind"===this.components[0]}compare(e){return this.depth===e.depth&&this.components.every(((t,i)=>t===e.getComponent(i)))}}c.invalidReference=new c(""),l.default=c;var d={},h={},f={};Object.defineProperty(f,"__esModule",{value:!0}),f.TypeValidators=f.KindValidator=f.DateValidator=f.NullableBoolean=f.Function=f.StringMatchingRegex=f.NumberWithMinimum=f.TypeArray=f.Type=f.FactoryOrInstance=void 0;class v{is(e){if(Array.isArray(e))return!1;const t=typeof e;return"function"===t||"object"===t}getType(){return"factory method or object"}}f.FactoryOrInstance=v;class g{constructor(e,t){this.typeName=e,this.typeOf=typeof t}is(e){return!Array.isArray(e)&&typeof e===this.typeOf}getType(){return this.typeName}}f.Type=g;class p{constructor(e,t){this.typeName=e,this.typeOf=typeof t}is(e){return!!Array.isArray(e)&&(!(e.length>0)||e.every((e=>typeof e===this.typeOf)))}getType(){return this.typeName}}f.TypeArray=p;class y extends g{constructor(e){super(`number with minimum value of ${e}`,0),this.min=e}is(e){return typeof e===this.typeOf&&e>=this.min}}f.NumberWithMinimum=y;class m extends g{constructor(e){super(`string matching ${e}`,""),this.expression=e}is(e){return!!e.match(this.expression)}}f.StringMatchingRegex=m;class b{is(e){return"function"==typeof e}getType(){return"function"}}f.Function=b;class O{is(e){return"boolean"==typeof e||null==e}getType(){return"boolean | undefined | null"}}f.NullableBoolean=O;const w=/^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d\d*)?(Z|[-+]\d\d(:\d\d)?)/;class S{is(e){return"number"==typeof e||"string"==typeof e&&w.test(e)}getType(){return"date"}}f.DateValidator=S;class E extends m{constructor(){super(/^(\w|\.|-)+$/)}is(e){return super.is(e)&&"kind"!==e}}f.KindValidator=E;class _{static createTypeArray(e,t){return new p(e,t)}static numberWithMin(e){return new y(e)}static stringMatchingRegex(e){return new m(e)}}f.TypeValidators=_,_.String=new g("string",""),_.Number=new g("number",0),_.ObjectOrFactory=new v,_.Object=new g("object",{}),_.StringArray=new p("string[]",""),_.Boolean=new g("boolean",!0),_.Function=new b,_.Date=new S,_.Kind=new E,_.NullableBoolean=new O,Object.defineProperty(h,"__esModule",{value:!0}),h.isLegacyUser=h.isMultiKind=h.isSingleKind=void 0;const k=f;h.isSingleKind=function(e){return"kind"in e&&(k.TypeValidators.String.is(e.kind)&&"multi"!==e.kind)},h.isMultiKind=function(e){return"kind"in e&&(k.TypeValidators.String.is(e.kind)&&"multi"===e.kind)},h.isLegacyUser=function(e){return!("kind"in e)||null===e.kind||void 0===e.kind},Object.defineProperty(d,"__esModule",{value:!0});const P=l,M=h,D=f,x="user";function j(e){return e.includes("%")||e.includes(":")?e.replace(/%/g,"%25").replace(/:/g,"%3A"):e}function T(e){return D.TypeValidators.Kind.is(e)}function C(e){return D.TypeValidators.String.is(e)&&""!==e}function I(e,t=!1){return e?e.map((e=>new P.default(e,t))):[]}class F{constructor(e,t,i){this.isMulti=!1,this.isUser=!1,this.wasLegacy=!1,this.contexts={},this.kind=t,this.valid=e,this.message=i}static contextForError(e,t){return new F(!1,e,t)}static getValueFromContext(e,t){if(t&&e.isValid)return 1===e.depth&&"anonymous"===e.getComponent(0)?!!(null==t?void 0:t.anonymous):e.get(t)}contextForKind(e){return this.isMulti?this.contexts[e]:this.kind===e?this.context:void 0}static fromMultiKindContext(e){const t=Object.keys(e).filter((e=>"kind"!==e)),i=t.every(T);if(!t.length)return F.contextForError("multi","A multi-kind context must contain at least one kind");if(!i)return F.contextForError("multi","Context contains invalid kinds");const r={};let n=!0;const a=t.reduce(((t,i)=>{var a;const s=e[i];var o;return(o=s)&&D.TypeValidators.Object.is(o)?(t[i]=s,r[i]=I(null===(a=s._meta)||void 0===a?void 0:a.privateAttributes)):n=!1,t}),{});if(!n)return F.contextForError("multi","Context contained contexts that were not objects");if(!Object.values(a).every((e=>C(e.key))))return F.contextForError("multi","Context contained invalid keys");if(1===t.length){const e=t[0],i=new F(!0,e);return i.context=a[e],i.privateAttributeReferences=r,i.isUser="user"===e,i}const s=new F(!0,e.kind);return s.contexts=a,s.privateAttributeReferences=r,s.isMulti=!0,s}static fromSingleKindContext(e){var t;const{key:i,kind:r}=e,n=T(r),a=C(i);if(!n)return F.contextForError(null!=r?r:"unknown","The kind was not valid for the context");if(!a)return F.contextForError(r,"The key for the context was not valid");const s=I(null===(t=e._meta)||void 0===t?void 0:t.privateAttributes),o=new F(!0,r);return o.isUser="user"===r,o.context=e,o.privateAttributeReferences={[r]:s},o}static fromLegacyUser(e){if(!(void 0!==e.key&&null!==e.key))return F.contextForError("user","The key for the context was not valid");const t=new F(!0,"user");return t.isUser=!0,t.wasLegacy=!0,t.context=function(e){const t=Object.assign(Object.assign({},e.custom||[]),{kind:"user",key:String(e.key)});if(null!=e.anonymous){const i=!!e.anonymous;delete t.anonymous,t.anonymous=i}return null!==e.name&&void 0!==e.name&&(t.name=e.name),null!==e.ip&&void 0!==e.ip&&(t.ip=e.ip),null!==e.firstName&&void 0!==e.firstName&&(t.firstName=e.firstName),null!==e.lastName&&void 0!==e.lastName&&(t.lastName=e.lastName),null!==e.email&&void 0!==e.email&&(t.email=e.email),null!==e.avatar&&void 0!==e.avatar&&(t.avatar=e.avatar),null!==e.country&&void 0!==e.country&&(t.country=e.country),null!==e.privateAttributeNames&&void 0!==e.privateAttributeNames&&(t._meta={privateAttributes:e.privateAttributeNames}),t}(e),t.privateAttributeReferences={user:I(e.privateAttributeNames,!0)},t}static fromLDContext(e){return e?(0,M.isSingleKind)(e)?F.fromSingleKindContext(e):(0,M.isMultiKind)(e)?F.fromMultiKindContext(e):(0,M.isLegacyUser)(e)?F.fromLegacyUser(e):F.contextForError("unknown","Context was not of a valid kind"):F.contextForError("unknown","No context specified. Returning default value")}static toLDContext(e){if(!e.valid)return;const t=e.getContexts();if(!e.isMulti)return t[0][1];const i={kind:"multi"};return t.forEach((e=>{const t=e[0],r=e[1];i[t]=r})),i}valueForKind(e,t=x){return e.isKind?this.kinds:F.getValueFromContext(e,this.contextForKind(t))}key(e=x){var t;return null===(t=this.contextForKind(e))||void 0===t?void 0:t.key}get isMultiKind(){return this.isMulti}get canonicalKey(){return this.isUser?this.context.key:this.isMulti?Object.keys(this.contexts).sort().map((e=>`${e}:${j(this.contexts[e].key)}`)).join(":"):`${this.kind}:${j(this.context.key)}`}get kinds(){return this.isMulti?Object.keys(this.contexts):[this.kind]}get kindsAndKeys(){return this.isMulti?Object.entries(this.contexts).reduce(((e,[t,i])=>(e[t]=i.key,e)),{}):{[this.kind]:this.context.key}}privateAttributes(e){var t;return(null===(t=this.privateAttributeReferences)||void 0===t?void 0:t[e])||[]}getContexts(){return this.isMulti?Object.entries(this.contexts):[[this.kind,this.context]]}get legacy(){return this.wasLegacy}}F.userKind=x,d.default=F;var R={};Object.defineProperty(R,"__esModule",{value:!0});const V=l,A=["key","kind","_meta","anonymous"].map((e=>new V.default(e,!0))),L=["name","ip","firstName","lastName","email","avatar","country"];R.default=class{constructor(e,t){this.allAttributesPrivate=e,this.privateAttributes=t}filter(e,t=!1){const i=e.getContexts();if(1===i.length)return this.filterSingleKind(e,i[0][1],i[0][0],t);const r={kind:"multi"};return i.forEach((([i,n])=>{r[i]=this.filterSingleKind(e,n,i,t)})),r}getAttributesToFilter(e,t,i,r){return(r?Object.keys(t).map((e=>new V.default(e,!0))):[...this.privateAttributes,...e.privateAttributes(i)]).filter((e=>!A.some((t=>t.compare(e)))))}filterSingleKind(e,t,i,r){const n=this.allAttributesPrivate||r&&!0===t.anonymous,{cloned:a,excluded:s}=function(e,t){const i=[],r={},n=[];for(i.push(...Object.keys(e).map((t=>({key:t,ptr:[t],source:e,parent:r,visited:[e]}))));i.length;){const e=i.pop(),r=t.find((t=>{return i=t,r=e.ptr,i.depth===r.length&&r.every(((e,t)=>e===i.getComponent(t)));var i,r}));if(r)n.push(r.redactionName);else{const t=e.source[e.key];null===t?e.parent[e.key]=t:Array.isArray(t)?e.parent[e.key]=[...t]:"object"==typeof t?e.visited.includes(t)||(e.parent[e.key]={},i.push(...Object.keys(t).map((i=>({key:i,ptr:[...e.ptr,i],source:t,parent:e.parent[e.key],visited:[...e.visited,t]}))))):e.parent[e.key]=t}}return{cloned:r,excluded:n.sort()}}(t,this.getAttributesToFilter(e,t,i,n));return e.legacy&&L.forEach((e=>{e in a&&(a[e]=String(a[e]))})),s.length&&(a._meta||(a._meta={}),a._meta.redactedAttributes=s),a._meta&&(delete a._meta.privateAttributes,0===Object.keys(a._meta).length&&delete a._meta),a}};var N={},K={},$={};Object.defineProperty($,"__esModule",{value:!0});var U={};Object.defineProperty(U,"__esModule",{value:!0});var B={};Object.defineProperty(B,"__esModule",{value:!0});var z={};Object.defineProperty(z,"__esModule",{value:!0});var H={};Object.defineProperty(H,"__esModule",{value:!0});var q,W,J,G={};Object.defineProperty(G,"__esModule",{value:!0}),q=K,W=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),J=r&&r.__exportStar||function(e,t){for(var i in e)"default"===i||Object.prototype.hasOwnProperty.call(t,i)||W(t,e,i)},Object.defineProperty(q,"__esModule",{value:!0}),J($,q),J(U,q),J(B,q),J(z,q),J(H,q),J(G,q);var X={},Y={};Object.defineProperty(Y,"__esModule",{value:!0});var Q={};Object.defineProperty(Q,"__esModule",{value:!0});var Z={};Object.defineProperty(Z,"__esModule",{value:!0}),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(Y,e),i(Q,e),i(Z,e)}(X);var ee={},te={};Object.defineProperty(te,"__esModule",{value:!0});var ie={};Object.defineProperty(ie,"__esModule",{value:!0});var re={};Object.defineProperty(re,"__esModule",{value:!0});var ne={};Object.defineProperty(ne,"__esModule",{value:!0}),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(te,e),i(ie,e),i(re,e),i(ne,e)}(ee);var ae={};Object.defineProperty(ae,"__esModule",{value:!0});var se,oe,le={},ue={};Object.defineProperty(ue,"__esModule",{value:!0}),ue.AutoEnvAttributes=void 0,(oe=se||(ue.AutoEnvAttributes=se={}))[oe.Disabled=0]="Disabled",oe[oe.Enabled=1]="Enabled";var ce={};Object.defineProperty(ce,"__esModule",{value:!0});var de={};Object.defineProperty(de,"__esModule",{value:!0});var he={};Object.defineProperty(he,"__esModule",{value:!0});var fe={};Object.defineProperty(fe,"__esModule",{value:!0});var ve={};Object.defineProperty(ve,"__esModule",{value:!0});var ge={};Object.defineProperty(ge,"__esModule",{value:!0});var pe={};Object.defineProperty(pe,"__esModule",{value:!0});var ye={};Object.defineProperty(ye,"__esModule",{value:!0}),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(ue,e),i(ce,e),i(de,e),i(he,e),i(fe,e),i(ve,e),i(ge,e),i(pe,e),i(ye,e)}(le);var me,be,Oe,we,Se={},Ee={};Object.defineProperty(Ee,"__esModule",{value:!0}),Ee.LDDeliveryStatus=Ee.LDEventType=void 0,(be=me||(Ee.LDEventType=me={}))[be.AnalyticsEvents=0]="AnalyticsEvents",be[be.DiagnosticEvent=1]="DiagnosticEvent",(we=Oe||(Ee.LDDeliveryStatus=Oe={}))[we.Succeeded=0]="Succeeded",we[we.Failed=1]="Failed",we[we.FailedAndMustShutDown=2]="FailedAndMustShutDown",function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.LDEventType=e.LDDeliveryStatus=void 0;const t=Ee;Object.defineProperty(e,"LDDeliveryStatus",{enumerable:!0,get:function(){return t.LDDeliveryStatus}}),Object.defineProperty(e,"LDEventType",{enumerable:!0,get:function(){return t.LDEventType}})}(Se),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.subsystem=void 0,i(K,e),i(X,e),i(ee,e),i(ae,e),i(le,e),e.subsystem=Se}(N);var _e={},ke={},Pe={};Object.defineProperty(Pe,"__esModule",{value:!0});const Me=f;function De(e){if("string"==typeof e)return e;if(void 0===e)return"undefined";if(null===e)return"null";if(Object.prototype.hasOwnProperty.call(e,"toString"))try{return e.toString()}catch(e){}if("bigint"==typeof e)return`${e}n`;try{return JSON.stringify(e)}catch(e){return e instanceof TypeError&&e.message.indexOf("circular")>=0?"[Circular]":"[Not Stringifiable]"}}const xe={s:e=>De(e),d:e=>function(e){return"symbol"==typeof e?"NaN":"bigint"==typeof e?`${e}n`:String(Number(e))}(e),i:e=>function(e){return"symbol"==typeof e?"NaN":"bigint"==typeof e?`${e}n`:String(parseInt(e,10))}(e),f:e=>function(e){return"symbol"==typeof e?"NaN":String(parseFloat(e))}(e),j:e=>De(e),o:e=>De(e),O:e=>De(e),c:()=>""};Pe.default=function(...e){var t;const i=e.shift();if(Me.TypeValidators.String.is(i)){let r="",n=0;for(;n<i.length;){const a=i.charAt(n);if("%"===a){if(n+1<i.length){const a=i.charAt(n+1);if(a in xe&&e.length){const i=e.shift();r+=null===(t=xe[a])||void 0===t?void 0:t.call(xe,i)}else r+="%"===a?"%":`%${a}`;n+=2}}else r+=a,n+=1}return e.length&&(r.length&&(r+=" "),r+=e.map(De).join(" ")),r}return e.map(De).join(" ")},Object.defineProperty(ke,"__esModule",{value:!0});const je=Pe,Te={debug:0,info:1,warn:2,error:3,none:4},Ce=["debug","info","warn","error","none"];class Ie{static get(){return new Ie({})}constructor(e){var t,i,r;this.logLevel=null!==(i=Te[null!==(t=e.level)&&void 0!==t?t:"info"])&&void 0!==i?i:Te.info,this.name=null!==(r=e.name)&&void 0!==r?r:"LaunchDarkly",this.destination=e.destination,this.formatter=e.formatter}tryFormat(...e){var t;try{return this.formatter?null===(t=this.formatter)||void 0===t?void 0:t.call(this,...e):(0,je.default)(...e)}catch(t){return(0,je.default)(...e)}}tryWrite(e){try{this.destination(e)}catch(t){console.error(e)}}log(e,t){if(e>=this.logLevel){const i=`${Ce[e]}: [${this.name}]`;try{this.destination?this.tryWrite(`${i} ${this.tryFormat(...t)}`):console.error(...t)}catch(e){console.error(...t)}}}error(...e){this.log(Te.error,e)}warn(...e){this.log(Te.warn,e)}info(...e){this.log(Te.info,e)}debug(...e){this.log(Te.debug,e)}}ke.default=Ie;var Fe={},Re={};Object.defineProperty(Re,"__esModule",{value:!0});const Ve=f,Ae={error:Ve.TypeValidators.Function,warn:Ve.TypeValidators.Function,info:Ve.TypeValidators.Function,debug:Ve.TypeValidators.Function};Re.default=class{constructor(e,t){Object.entries(Ae).forEach((([t,i])=>{if(!i.is(e[t]))throw new Error(`Provided logger instance must support logger.${t}(...) method`)})),this.logger=e,this.fallback=t}log(e,t){try{this.logger[e](...t)}catch(i){this.fallback[e](...t)}}error(...e){this.log("error",e)}warn(...e){this.log("warn",e)}info(...e){this.log("info",e)}debug(...e){this.log("debug",e)}},Object.defineProperty(Fe,"__esModule",{value:!0});const Le=ke,Ne=Pe,Ke=Re;Fe.default=e=>{const t=new Le.default({level:"info",destination:console.error,formatter:Ne.default});return e?new Ke.default(e,t):t},Object.defineProperty(_e,"__esModule",{value:!0}),_e.createSafeLogger=_e.SafeLogger=_e.BasicLogger=void 0;const $e=ke;_e.BasicLogger=$e.default;const Ue=Fe;_e.createSafeLogger=Ue.default;const Be=Re;_e.SafeLogger=Be.default;var ze={},He={},qe={};Object.defineProperty(qe,"__esModule",{value:!0});qe.default=class{static deprecated(e,t){return`"${e}" is deprecated, please use "${t}"`}static optionBelowMinimum(e,t,i){return`Config option "${e}" had invalid value of ${t}, using minimum of ${i} instead`}static unknownOption(e){return`Ignoring unknown config option "${e}"`}static wrongOptionType(e,t,i){return`Config option "${e}" should be of type ${t}, got ${i}, 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`}},Object.defineProperty(He,"__esModule",{value:!0});const We=qe,Je=f.TypeValidators.stringMatchingRegex(/^(\w|\.|-)+$/),Ge=(e,t)=>Je.is(e)?e.length>64?{valid:!1,message:We.default.tagValueTooLong(t)}:{valid:!0}:{valid:!1,message:We.default.invalidTagValue(t)};He.default=class{constructor(e){const t={},i=null==e?void 0:e.application,r=null==e?void 0:e.logger;i&&Object.entries(i).forEach((([e,i])=>{if(null!=i){const{valid:n,message:a}=Ge(i,`application.${e}`);n?"versionName"===e?t["application-version-name"]=[i]:t[`application-${e}`]=[i]:null==r||r.warn(a)}}));const n=Object.keys(t);n.length&&(this.value=n.sort().flatMap((e=>t[e].sort().map((t=>`${e}/${t}`)))).join(" "))}};var Xe={};Object.defineProperty(Xe,"__esModule",{value:!0});Xe.default=class{constructor(e,t,i){this.platform=i,this.basicConfiguration={tags:t.tags,logger:t.logger,offline:t.offline,serviceEndpoints:t.serviceEndpoints,sdkKey:e}}};var Ye={};function Qe(e){return e.replace(/\/+$/,"")}Object.defineProperty(Ye,"__esModule",{value:!0});class Ze{constructor(e,t,i=Ze.DEFAULT_EVENTS,r="/bulk",n="/diagnostic",a=!0){this.streaming=Qe(e),this.polling=Qe(t),this.events=Qe(i),this.analyticsEventPath=r,this.diagnosticEventPath=n,this.includeAuthorizationHeader=a}}Ze.DEFAULT_EVENTS="https://events.launchdarkly.com",Ye.default=Ze,Object.defineProperty(ze,"__esModule",{value:!0}),ze.ClientContext=ze.ServiceEndpoints=ze.OptionMessages=ze.ApplicationTags=void 0;const et=He;ze.ApplicationTags=et.default;const tt=Xe;ze.ClientContext=tt.default;const it=qe;ze.OptionMessages=it.default;const rt=Ye;ze.ServiceEndpoints=rt.default;var nt={},at={},st={};Object.defineProperty(st,"__esModule",{value:!0}),st.isHttpLocallyRecoverable=st.isHttpRecoverable=st.LDTimeoutError=st.LDClientError=st.LDUnexpectedResponseError=st.LDStreamingError=st.LDPollingError=st.LDFileDataSourceError=void 0;class ot extends Error{constructor(e){super(e),this.name="LaunchDarklyFileDataSourceError"}}st.LDFileDataSourceError=ot;class lt extends Error{constructor(e,t){super(e),this.status=t,this.name="LaunchDarklyPollingError"}}st.LDPollingError=lt;class ut extends Error{constructor(e,t){super(e),this.code=t,this.name="LaunchDarklyStreamingError"}}st.LDStreamingError=ut;class ct extends Error{constructor(e){super(e),this.name="LaunchDarklyUnexpectedResponseError"}}st.LDUnexpectedResponseError=ct;class dt extends Error{constructor(e){super(e),this.name="LaunchDarklyClientError"}}st.LDClientError=dt;class ht extends Error{constructor(e){super(e),this.name="LaunchDarklyTimeoutError"}}function ft(e){return!(e>=400&&e<500)||(400===e||408===e||429===e)}st.LDTimeoutError=ht,st.isHttpRecoverable=ft,st.isHttpLocallyRecoverable=function(e){return 413===e||ft(e)},Object.defineProperty(at,"__esModule",{value:!0}),at.cancelableTimedPromise=void 0;const vt=st;at.cancelableTimedPromise=function(e,t){let i,r;return{promise:new Promise(((n,a)=>{r=n,i=setTimeout((()=>{const i=`${t} timed out after ${e} seconds.`;a(new vt.LDTimeoutError(i))}),1e3*e)})),cancel:()=>{r(),clearTimeout(i)}}};var gt={};Object.defineProperty(gt,"__esModule",{value:!0}),gt.default=function(e){return null==e?e:JSON.parse(JSON.stringify(e))};var pt={};Object.defineProperty(pt,"__esModule",{value:!0}),pt.secondsToMillis=void 0,pt.secondsToMillis=function(e){return Math.trunc(1e3*e)};var yt={};Object.defineProperty(yt,"__esModule",{value:!0});yt.default=(e,t=5e3)=>{let i;return(...r)=>{clearTimeout(i),i=setTimeout((()=>{e(...r)}),t)}};var mt={},bt={};Object.defineProperty(bt,"__esModule",{value:!0});bt.default=e=>"{}"===JSON.stringify(e),Object.defineProperty(mt,"__esModule",{value:!0});const Ot=bt,wt=(e,t)=>e?Object.entries(e).reduce(((e,[i,r])=>(!Boolean(r)||(0,Ot.default)(r)||(null==t?void 0:t.includes(i))||(e[i]="object"==typeof r?wt(r,t):r),e)),{}):e;mt.default=wt;var St={};Object.defineProperty(St,"__esModule",{value:!0}),St.default=function e(t,i){if(t===i)return!0;if(t&&i&&"object"==typeof t&&"object"==typeof i){if(t.constructor!==i.constructor)return!1;var r,n,a;if(Array.isArray(t)){if((r=t.length)!=i.length)return!1;for(n=r;0!=n--;)if(!e(t[n],i[n]))return!1;return!0}if(t instanceof Map&&i instanceof Map){if(t.size!==i.size)return!1;for(n of t.entries())if(!i.has(n[0]))return!1;for(n of t.entries())if(!e(n[1],i.get(n[0])))return!1;return!0}if(t instanceof Set&&i instanceof Set){if(t.size!==i.size)return!1;for(n of t.entries())if(!i.has(n[0]))return!1;return!0}if(ArrayBuffer.isView(t)&&ArrayBuffer.isView(i)){if((r=t.length)!=i.length)return!1;for(n=r;0!=n--;)if(t[n]!==i[n])return!1;return!0}if(t.constructor===RegExp)return t.source===i.source&&t.flags===i.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===i.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===i.toString();if((r=(a=Object.keys(t)).length)!==Object.keys(i).length)return!1;for(n=r;0!=n--;)if(!Object.prototype.hasOwnProperty.call(i,a[n]))return!1;for(n=r;0!=n--;){var s=a[n];if(!e(t[s],i[s]))return!1}return!0}return t!=t&&i!=i};var Et={};Object.defineProperty(Et,"__esModule",{value:!0}),Et.base64UrlEncode=Et.shouldRetry=Et.httpErrorMessage=Et.defaultHeaders=void 0;const _t=st;Et.defaultHeaders=function(e,t,i,r=!0){const{userAgentBase:n,version:a,wrapperName:s,wrapperVersion:o}=t.sdkData(),l={"user-agent":`${null!=n?n:"NodeJSClient"}/${a}`};return r&&(l.authorization=e),s&&(l["x-launchdarkly-wrapper"]=o?`${s}/${o}`:s),(null==i?void 0:i.value)&&(l["x-launchdarkly-tags"]=i.value),l},Et.httpErrorMessage=function(e,t,i){let r;return r=e.status?`error ${e.status}${401===e.status?" (invalid SDK key)":""}`:`I/O error (${e.message||"unknown error"})`,`Received ${r} for ${t} - ${null!=i?i:"giving up permanently"}`},Et.shouldRetry=function({status:e}){return!e||(0,_t.isHttpRecoverable)(e)};Et.base64UrlEncode=(e,t)=>t.btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"");var kt={};Object.defineProperty(kt,"__esModule",{value:!0}),kt.default=()=>{};var Pt={};Object.defineProperty(Pt,"__esModule",{value:!0});Pt.default=async(e=1e3)=>new Promise((t=>{setTimeout(t,e)}));var Mt={};Object.defineProperty(Mt,"__esModule",{value:!0});const Dt=st;Mt.default=(e,t)=>new Promise(((i,r)=>{setTimeout((()=>{const i=`${t} timed out after ${e} seconds.`;r(new Dt.LDTimeoutError(i))}),1e3*e)})),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.cancelableTimedPromise=e.timedPromise=e.sleep=e.secondsToMillis=e.shouldRetry=e.noop=e.httpErrorMessage=e.fastDeepEqual=e.defaultHeaders=e.deepCompact=e.debounce=e.clone=e.base64UrlEncode=void 0;const t=at;Object.defineProperty(e,"cancelableTimedPromise",{enumerable:!0,get:function(){return t.cancelableTimedPromise}});const i=gt;e.clone=i.default;const r=pt;Object.defineProperty(e,"secondsToMillis",{enumerable:!0,get:function(){return r.secondsToMillis}});const n=yt;e.debounce=n.default;const a=mt;e.deepCompact=a.default;const s=St;e.fastDeepEqual=s.default;const o=Et;Object.defineProperty(e,"base64UrlEncode",{enumerable:!0,get:function(){return o.base64UrlEncode}}),Object.defineProperty(e,"defaultHeaders",{enumerable:!0,get:function(){return o.defaultHeaders}}),Object.defineProperty(e,"httpErrorMessage",{enumerable:!0,get:function(){return o.httpErrorMessage}}),Object.defineProperty(e,"shouldRetry",{enumerable:!0,get:function(){return o.shouldRetry}});const l=kt;e.noop=l.default;const u=Pt;e.sleep=u.default;const c=Mt;e.timedPromise=c.default}(nt);var xt={},jt={},Tt={};Object.defineProperty(Tt,"__esModule",{value:!0});Tt.default=class{constructor(e,t,i){this.platform=t,this.diagnosticInitConfig=i,this.streamInits=[],this.startTime=Date.now(),this.dataSinceDate=this.startTime,this.id={diagnosticId:t.crypto.randomUUID(),sdkKeySuffix:e.length>6?e.substring(e.length-6):e}}createInitEvent(){var e,t,i;const r=this.platform.info.sdkData(),n=this.platform.info.platformData();return{kind:"diagnostic-init",id:this.id,creationDate:this.startTime,sdk:r,configuration:this.diagnosticInitConfig,platform:Object.assign({name:n.name,osArch:null===(e=n.os)||void 0===e?void 0:e.arch,osName:null===(t=n.os)||void 0===t?void 0:t.name,osVersion:null===(i=n.os)||void 0===i?void 0:i.version},n.additional||{})}}recordStreamInit(e,t,i){const r={timestamp:e,failed:t,durationMillis:i};this.streamInits.push(r)}createStatsEventAndReset(e,t,i){const r=Date.now(),n={kind:"diagnostic",id:this.id,creationDate:r,dataSinceDate:this.dataSinceDate,droppedEvents:e,deduplicatedUsers:t,eventsInLastBatch:i,streamInits:this.streamInits};return this.streamInits=[],this.dataSinceDate=r,n}},Object.defineProperty(jt,"__esModule",{value:!0}),jt.DiagnosticsManager=void 0;const Ct=Tt;jt.DiagnosticsManager=Ct.default;var It,Ft,Rt={},Vt={};Object.defineProperty(Vt,"__esModule",{value:!0}),(Ft=It||(It={})).MalformedFlag="MALFORMED_FLAG",Ft.UserNotSpecified="USER_NOT_SPECIFIED",Ft.FlagNotFound="FLAG_NOT_FOUND",Ft.ClientNotReady="CLIENT_NOT_READY",Ft.WrongType="WRONG_TYPE",Vt.default=It;var At={};Object.defineProperty(At,"__esModule",{value:!0}),At.createSuccessEvaluationDetail=At.createErrorEvaluationDetail=void 0;At.createErrorEvaluationDetail=(e,t)=>({value:null!=t?t:null,variationIndex:null,reason:{kind:"ERROR",errorKind:e}});At.createSuccessEvaluationDetail=(e,t,i)=>({value:e,variationIndex:null!=t?t:null,reason:null!=i?i:null});var Lt={},Nt={},Kt={};Object.defineProperty(Kt,"__esModule",{value:!0});let $t=class{static invalidMetricValue(e){return`The track function was called with a non-numeric "metricValue" (${e}), only numeric metric values are supported.`}};$t.missingContextKeyNoEvent="Context was unspecified or had no key; event will not be sent",Kt.default=$t;var Ut={},Bt={};Object.defineProperty(Bt,"__esModule",{value:!0});const zt=Se,Ht=st,qt=nt;Bt.default=class{constructor(e){const{basicConfiguration:t,platform:i}=e,{sdkKey:r,serviceEndpoints:{events:n,analyticsEventPath:a,diagnosticEventPath:s,includeAuthorizationHeader:o},tags:l}=t,{crypto:u,info:c,requests:d}=i;this.defaultHeaders=(0,qt.defaultHeaders)(r,c,l,o),this.eventsUri=`${n}${a}`,this.diagnosticEventsUri=`${n}${s}`,this.requests=d,this.crypto=u}async tryPostingEvents(e,t,i,r){const n={status:zt.LDDeliveryStatus.Succeeded},a=Object.assign(Object.assign({},this.defaultHeaders),{"content-type":"application/json"});let s;i&&(a["x-launchdarkly-payload-id"]=i,a["x-launchDarkly-event-schema"]="4");try{const{status:i,headers:r}=await this.requests.fetch(t,{headers:a,body:JSON.stringify(e),method:"POST"}),o=Date.parse(r.get("date")||"");if(o&&(n.serverTime=o),i<=204)return n;if(s=new Ht.LDUnexpectedResponseError((0,qt.httpErrorMessage)({status:i,message:"some events were dropped"},"event posting")),!(0,Ht.isHttpRecoverable)(i))return(0,Ht.isHttpLocallyRecoverable)(i)?n.status=zt.LDDeliveryStatus.Failed:n.status=zt.LDDeliveryStatus.FailedAndMustShutDown,n.error=s,n}catch(e){s=e}return s&&!r?(n.status=zt.LDDeliveryStatus.Failed,n.error=s,n):(await(0,qt.sleep)(),this.tryPostingEvents(e,this.eventsUri,i,!1))}async sendEventData(e,t){const i=e===zt.LDEventType.AnalyticsEvents?this.crypto.randomUUID():void 0,r=e===zt.LDEventType.AnalyticsEvents?this.eventsUri:this.diagnosticEventsUri;return this.tryPostingEvents(t,r,i,!0)}};var Wt={},Jt={};Object.defineProperty(Jt,"__esModule",{value:!0}),Jt.isMigration=Jt.isIdentify=Jt.isCustom=Jt.isFeature=void 0,Jt.isFeature=function(e){return"feature"===e.kind},Jt.isCustom=function(e){return"custom"===e.kind},Jt.isIdentify=function(e){return"identify"===e.kind},Jt.isMigration=function(e){return"migration_op"===e.kind};var Gt={};Object.defineProperty(Gt,"__esModule",{value:!0});Gt.default=class{constructor(e,t,i,r,n,a){this.count=e,this.key=t,this.value=i,this.version=n,this.variation=a,this.default=r}increment(){this.count+=1}},Object.defineProperty(Wt,"__esModule",{value:!0});const Xt=Jt,Yt=Gt;Wt.default=class{constructor(){this.startDate=0,this.endDate=0,this.counters={},this.contextKinds={}}summarizeEvent(e){if((0,Xt.isFeature)(e)&&!e.excludeFromSummaries){const t=function(e){return`${e.key}:${null!==e.variation&&void 0!==e.variation?e.variation:""}:${null!==e.version&&void 0!==e.version?e.version:""}`}(e),i=this.counters[t];let r=this.contextKinds[e.key];r||(r=new Set,this.contextKinds[e.key]=r),e.context.kinds.forEach((e=>r.add(e))),i?i.increment():this.counters[t]=new Yt.default(1,e.key,e.value,e.default,e.version,e.variation),(0===this.startDate||e.creationDate<this.startDate)&&(this.startDate=e.creationDate),e.creationDate>this.endDate&&(this.endDate=e.creationDate)}}getSummary(){const e=Object.values(this.counters).reduce(((e,t)=>{let i=e[t.key];i||(i={default:t.default,counters:[],contextKinds:[...this.contextKinds[t.key]]},e[t.key]=i);const r={value:t.value,count:t.count};return void 0!==t.variation&&null!==t.variation&&(r.variation=t.variation),void 0!==t.version&&null!==t.version?r.version=t.version:r.unknown=!0,i.counters.push(r),e}),{});return{startDate:this.startDate,endDate:this.endDate,features:e,kind:"summary"}}clearSummary(){this.startDate=0,this.endDate=0,this.counters={},this.contextKinds={}}};var Qt={};Object.defineProperty(Qt,"__esModule",{value:!0});class Zt extends Error{constructor(e){super(e),this.name="LaunchDarklyInvalidSDKKeyError"}}Qt.default=Zt;var ei={};Object.defineProperty(ei,"__esModule",{value:!0}),ei.default=function(e){const t=Math.trunc(e);return 1===t||0!==t&&0===Math.floor(Math.random()*t)},Object.defineProperty(Ut,"__esModule",{value:!0});const ti=Se,ii=l,ri=R,ni=Bt,ai=Wt,si=Jt,oi=Qt,li=ei;Ut.default=class{constructor(e,t,i,r,n=!0){this.config=e,this.contextDeduplicator=i,this.diagnosticsManager=r,this.summarizer=new ai.default,this.queue=[],this.lastKnownPastTime=0,this.droppedEvents=0,this.deduplicatedUsers=0,this.exceededCapacity=!1,this.eventsInLastBatch=0,this.shutdown=!1,this.flushUsersTimer=null,this.capacity=e.eventsCapacity,this.logger=t.basicConfiguration.logger,this.eventSender=new ni.default(t),this.contextFilter=new ri.default(e.allAttributesPrivate,e.privateAttributes.map((e=>new ii.default(e)))),n&&this.start()}start(){var e,t;if(void 0!==(null===(e=this.contextDeduplicator)||void 0===e?void 0:e.flushInterval)&&(this.flushUsersTimer=setInterval((()=>{var e;null===(e=this.contextDeduplicator)||void 0===e||e.flush()}),1e3*this.contextDeduplicator.flushInterval)),this.flushTimer=setInterval((async()=>{var e;try{await this.flush()}catch(t){null===(e=this.logger)||void 0===e||e.debug(`Flush failed: ${t}`)}}),1e3*this.config.flushInterval),this.diagnosticsManager){const e=this.diagnosticsManager.createInitEvent();this.postDiagnosticEvent(e),this.diagnosticsTimer=setInterval((()=>{const e=this.diagnosticsManager.createStatsEventAndReset(this.droppedEvents,this.deduplicatedUsers,this.eventsInLastBatch);this.droppedEvents=0,this.deduplicatedUsers=0,this.postDiagnosticEvent(e)}),1e3*this.config.diagnosticRecordingInterval)}null===(t=this.logger)||void 0===t||t.debug("Started EventProcessor.")}postDiagnosticEvent(e){this.eventSender.sendEventData(ti.LDEventType.DiagnosticEvent,e)}close(){clearInterval(this.flushTimer),this.flushUsersTimer&&clearInterval(this.flushUsersTimer),this.diagnosticsTimer&&clearInterval(this.diagnosticsTimer)}async flush(){var e;if(this.shutdown)throw new oi.default("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.");const t=this.queue;this.queue=[];const i=this.summarizer.getSummary();this.summarizer.clearSummary(),Object.keys(i.features).length&&t.push(i),t.length&&(this.eventsInLastBatch=t.length,null===(e=this.logger)||void 0===e||e.debug("Flushing %d events",t.length),await this.tryPostingEvents(t))}sendEvent(e){var t;if(this.shutdown)return;if((0,si.isMigration)(e)){if((0,li.default)(e.samplingRatio)){const t=Object.assign({},e);1===t.samplingRatio&&delete t.samplingRatio,this.enqueue(t)}return}this.summarizer.summarizeEvent(e);const i=(0,si.isFeature)(e),r=i&&e.trackEvents||!i,n=this.shouldDebugEvent(e),a=(0,si.isIdentify)(e),s=null===(t=this.contextDeduplicator)||void 0===t?void 0:t.processContext(e.context);s||a||(this.deduplicatedUsers+=1);s&&!a&&this.enqueue(this.makeOutputEvent({kind:"index",creationDate:e.creationDate,context:e.context,samplingRatio:1},!1)),r&&(0,li.default)(e.samplingRatio)&&this.enqueue(this.makeOutputEvent(e,!1)),n&&(0,li.default)(e.samplingRatio)&&this.enqueue(this.makeOutputEvent(e,!0))}makeOutputEvent(e,t){switch(e.kind){case"feature":{const i={kind:t?"debug":"feature",creationDate:e.creationDate,context:this.contextFilter.filter(e.context,!t),key:e.key,value:e.value,default:e.default};return 1!==e.samplingRatio&&(i.samplingRatio=e.samplingRatio),e.prereqOf&&(i.prereqOf=e.prereqOf),void 0!==e.variation&&(i.variation=e.variation),void 0!==e.version&&(i.version=e.version),e.reason&&(i.reason=e.reason),i}case"index":case"identify":{const t={kind:e.kind,creationDate:e.creationDate,context:this.contextFilter.filter(e.context)};return 1!==e.samplingRatio&&(t.samplingRatio=e.samplingRatio),t}case"custom":{const t={kind:"custom",creationDate:e.creationDate,key:e.key,contextKeys:e.context.kindsAndKeys};return 1!==e.samplingRatio&&(t.samplingRatio=e.samplingRatio),void 0!==e.data&&(t.data=e.data),void 0!==e.metricValue&&(t.metricValue=e.metricValue),t}default:return e}}enqueue(e){var t;this.queue.length<this.capacity?(this.queue.push(e),this.exceededCapacity=!1):(this.exceededCapacity||(this.exceededCapacity=!0,null===(t=this.logger)||void 0===t||t.warn("Exceeded event queue capacity. Increase capacity to avoid dropping events.")),this.droppedEvents+=1)}shouldDebugEvent(e){return(0,si.isFeature)(e)&&e.debugEventsUntilDate&&e.debugEventsUntilDate>this.lastKnownPastTime&&e.debugEventsUntilDate>Date.now()}async tryPostingEvents(e){const t=await this.eventSender.sendEventData(ti.LDEventType.AnalyticsEvents,e);if(t.status===ti.LDDeliveryStatus.FailedAndMustShutDown&&(this.shutdown=!0),t.serverTime&&(this.lastKnownPastTime=t.serverTime),t.error)throw t.error}};var ui={};Object.defineProperty(ui,"__esModule",{value:!0});ui.default=class{constructor(e,t,i,r,n=1){this.context=e,this.key=t,this.data=i,this.metricValue=r,this.samplingRatio=n,this.kind="custom",this.creationDate=Date.now(),this.context=e}};var ci={};Object.defineProperty(ci,"__esModule",{value:!0});ci.default=class{constructor(e,t,i,r,n,a,s,o,l,u,c,d,h=1){this.withReasons=e,this.context=t,this.key=i,this.samplingRatio=h,this.kind="feature",this.creationDate=Date.now(),this.value=r,this.default=n,void 0!==a&&(this.version=a),void 0!==s&&(this.variation=s),void 0!==o&&(this.trackEvents=o),void 0!==l&&(this.prereqOf=l),void 0!==u&&(this.reason=u),void 0!==c&&(this.debugEventsUntilDate=c),void 0!==d&&(this.excludeFromSummaries=d)}};var di={};Object.defineProperty(di,"__esModule",{value:!0});di.default=class{constructor(e,t=1){this.context=e,this.samplingRatio=t,this.kind="identify",this.creationDate=Date.now()}};var hi={};Object.defineProperty(hi,"__esModule",{value:!0});hi.default=class{close(){}async flush(){}sendEvent(){}},Object.defineProperty(Nt,"__esModule",{value:!0}),Nt.NullEventProcessor=Nt.shouldSample=Nt.EventProcessor=Nt.InputIdentifyEvent=Nt.InputEvalEvent=Nt.InputCustomEvent=Nt.ClientMessages=void 0;const fi=Kt;Nt.ClientMessages=fi.default;const vi=Ut;Nt.EventProcessor=vi.default;const gi=ui;Nt.InputCustomEvent=gi.default;const pi=ci;Nt.InputEvalEvent=pi.default;const yi=di;Nt.InputIdentifyEvent=yi.default;const mi=hi;Nt.NullEventProcessor=mi.default;const bi=ei;Nt.shouldSample=bi.default,Object.defineProperty(Lt,"__esModule",{value:!0});const Oi=Nt;Lt.default=class{constructor(e){this.withReasons=e}evalEvent(e){var t;return new Oi.InputEvalEvent(this.withReasons,e.context,e.flagKey,e.value,e.defaultVal,e.version,null!==(t=e.variation)&&void 0!==t?t:void 0,e.trackEvents||e.addExperimentData,e.prereqOfFlagKey,this.withReasons||e.addExperimentData?e.reason:void 0,e.debugEventsUntilDate,e.excludeFromSummaries,e.samplingRatio)}unknownFlagEvent(e,t,i){return new Oi.InputEvalEvent(this.withReasons,i,e,t,t,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}identifyEvent(e){return new Oi.InputIdentifyEvent(e,1)}customEvent(e,t,i,r,n=1){return new Oi.InputCustomEvent(t,e,null!=i?i:void 0,null!=r?r:void 0,n)}},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.EventFactoryBase=e.ErrorKinds=e.createErrorEvaluationDetail=e.createSuccessEvaluationDetail=void 0;const t=Vt;e.ErrorKinds=t.default;const i=At;Object.defineProperty(e,"createErrorEvaluationDetail",{enumerable:!0,get:function(){return i.createErrorEvaluationDetail}}),Object.defineProperty(e,"createSuccessEvaluationDetail",{enumerable:!0,get:function(){return i.createSuccessEvaluationDetail}});const r=Lt;e.EventFactoryBase=r.default}(Rt);var wi={},Si={};Object.defineProperty(Si,"__esModule",{value:!0});const Ei=st,_i=nt;Si.default=class{constructor(e,t,i,r,n,a,s=1){this.listeners=r,this.diagnosticsManager=n,this.errorHandler=a,this.streamInitialReconnectDelay=s;const{basicConfiguration:o,platform:l}=t,{logger:u,tags:c}=o,{info:d,requests:h}=l;this.headers=(0,_i.defaultHeaders)(e,d,c),this.logger=u,this.requests=h,this.streamUri=`${o.serviceEndpoints.streaming}${i}`}logConnectionStarted(){this.connectionAttemptStartTime=Date.now()}logConnectionResult(e){this.connectionAttemptStartTime&&this.diagnosticsManager&&this.diagnosticsManager.recordStreamInit(this.connectionAttemptStartTime,!e,Date.now()-this.connectionAttemptStartTime),this.connectionAttemptStartTime=void 0}retryAndHandleError(e){var t,i,r;return(0,_i.shouldRetry)(e)?(null===(r=this.logger)||void 0===r||r.warn((0,_i.httpErrorMessage)(e,"streaming request","will retry")),this.logConnectionResult(!1),this.logConnectionStarted(),!0):(this.logConnectionResult(!1),null===(t=this.errorHandler)||void 0===t||t.call(this,new Ei.LDStreamingError(e.message,e.status)),null===(i=this.logger)||void 0===i||i.error((0,_i.httpErrorMessage)(e,"streaming request")),!1)}start(){this.logConnectionStarted();const e=this.requests.createEventSource(this.streamUri,{headers:this.headers,errorFilter:e=>this.retryAndHandleError(e),initialRetryDelayMillis:1e3*this.streamInitialReconnectDelay,readTimeoutMillis:3e5,retryResetIntervalMillis:6e4});this.eventSource=e,e.onclose=()=>{var e;null===(e=this.logger)||void 0===e||e.info("Closed LaunchDarkly stream connection")},e.onerror=()=>{},e.onopen=()=>{var e;null===(e=this.logger)||void 0===e||e.info("Opened LaunchDarkly stream connection")},e.onretrying=e=>{var t;null===(t=this.logger)||void 0===t||t.info(`Will retry stream connection in ${e.delayMillis} milliseconds`)},this.listeners.forEach((({deserializeData:t,processJson:i},r)=>{e.addEventListener(r,(e=>{var n,a;if(null===(n=this.logger)||void 0===n||n.debug(`Received ${r} event`),null==e?void 0:e.data){this.logConnectionResult(!0);const{data:n}=e,a=t(n);if(!a)return void((e,t,i,r)=>{null==i||i.error(`Stream received invalid data in "${e}" message`),null==i||i.debug(`Invalid JSON follows: ${t}`),null==r||r(new Ei.LDStreamingError("Malformed JSON data in event stream"))})(r,n,this.logger,this.errorHandler);i(a)}else null===(a=this.errorHandler)||void 0===a||a.call(this,new Ei.LDStreamingError("Unexpected payload from event stream"))}))}))}stop(){var e;null===(e=this.eventSource)||void 0===e||e.close(),this.eventSource=void 0}close(){this.stop()}},Object.defineProperty(wi,"__esModule",{value:!0}),wi.StreamingProcessor=void 0;const ki=Si;wi.StreamingProcessor=ki.default,function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(jt,e),i(Rt,e),i(Nt,e),i(wi,e),i(h,e)}(xt),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.ContextFilter=e.Context=e.AttributeReference=e.internal=void 0;const n=l;e.AttributeReference=n.default;const a=d;e.Context=a.default;const s=R;e.ContextFilter=s.default,i(N,e),i(f,e),i(_e,e),i(ze,e),i(nt,e),e.internal=xt,i(st,e)}(o);var Pi={},Mi={},Di={};Object.defineProperty(Di,"__esModule",{value:!0});var xi={};Object.defineProperty(xi,"__esModule",{value:!0});var ji,Ti,Ci={};Object.defineProperty(Ci,"__esModule",{value:!0}),Ci.IsMigrationStage=Ci.LDMigrationStage=void 0,(Ti=ji||(Ci.LDMigrationStage=ji={})).Off="off",Ti.DualWrite="dualwrite",Ti.Shadow="shadow",Ti.Live="live",Ti.RampDown="rampdown",Ti.Complete="complete",Ci.IsMigrationStage=function(e){return Object.values(ji).includes(e)};var Ii={};Object.defineProperty(Ii,"__esModule",{value:!0});var Fi,Ri,Vi={};Object.defineProperty(Vi,"__esModule",{value:!0}),Vi.LDConsistencyCheck=void 0,(Ri=Fi||(Vi.LDConsistencyCheck=Fi={}))[Ri.Inconsistent=0]="Inconsistent",Ri[Ri.Consistent=1]="Consistent",Ri[Ri.NotChecked=2]="NotChecked",function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(Di,e),i(xi,e),i(Ci,e),i(Ii,e),i(Vi,e)}(Mi);var Ai={},Li={};Object.defineProperty(Li,"__esModule",{value:!0});var Ni={};Object.defineProperty(Ni,"__esModule",{value:!0});var Ki={};Object.defineProperty(Ki,"__esModule",{value:!0});var $i={};Object.defineProperty($i,"__esModule",{value:!0});var Ui,Bi,zi,Hi,qi={};Object.defineProperty(qi,"__esModule",{value:!0}),qi.LDConcurrentExecution=qi.LDSerialExecution=qi.LDExecution=qi.LDExecutionOrdering=void 0,(Bi=Ui||(qi.LDExecutionOrdering=Ui={}))[Bi.Fixed=0]="Fixed",Bi[Bi.Random=1]="Random",(Hi=zi||(qi.LDExecution=zi={}))[Hi.Serial=0]="Serial",Hi[Hi.Concurrent=1]="Concurrent";qi.LDSerialExecution=class{constructor(e){this.ordering=e,this.type=zi.Serial}};qi.LDConcurrentExecution=class{constructor(){this.type=zi.Concurrent}},function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(Li,e),i(Ni,e),i(Ki,e),i($i,e),i(qi,e)}(Ai);var Wi={};Object.defineProperty(Wi,"__esModule",{value:!0});var Ji={};Object.defineProperty(Ji,"__esModule",{value:!0});var Gi={};Object.defineProperty(Gi,"__esModule",{value:!0});var Xi={};Object.defineProperty(Xi,"__esModule",{value:!0});var Yi={};Object.defineProperty(Yi,"__esModule",{value:!0});var Qi={},Zi={};Object.defineProperty(Zi,"__esModule",{value:!0});var er={};Object.defineProperty(er,"__esModule",{value:!0}),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(Zi,e),i(er,e)}(Qi);var tr={},ir={};Object.defineProperty(ir,"__esModule",{value:!0});var rr={};Object.defineProperty(rr,"__esModule",{value:!0});var nr={};Object.defineProperty(nr,"__esModule",{value:!0});var ar={};Object.defineProperty(ar,"__esModule",{value:!0});var sr={};Object.defineProperty(sr,"__esModule",{value:!0});var or={};Object.defineProperty(or,"__esModule",{value:!0});var lr={};Object.defineProperty(lr,"__esModule",{value:!0});var ur={};Object.defineProperty(ur,"__esModule",{value:!0});var cr={};Object.defineProperty(cr,"__esModule",{value:!0});var dr={};Object.defineProperty(dr,"__esModule",{value:!0}),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(ir,e),i(rr,e),i(nr,e),i(ar,e),i(sr,e),i(Gi,e),i(or,e),i(lr,e),i(ur,e),i(cr,e),i(dr,e)}(tr);var hr={},fr={};Object.defineProperty(fr,"__esModule",{value:!0});var vr={};Object.defineProperty(vr,"__esModule",{value:!0}),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),i(fr,e),i(Xi,e),i(vr,e)}(hr),function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.subsystems=e.interfaces=e.integrations=void 0,i(Mi,e),i(Ai,e),i(Wi,e),i(Ji,e),i(Gi,e),i(Xi,e),i(Yi,e),e.integrations=Qi,e.interfaces=tr,e.subsystems=hr}(Pi);var gr={},pr={};Object.defineProperty(pr,"__esModule",{value:!0});pr.default=class{constructor(e){this.keyMap=new Map,this.head=0,this.tail=0,this.size=0;const{max:t}=e;this.max=t,this.values=new Array(t),this.keys=new Array(t),this.next=new Uint32Array(t),this.prev=new Uint32Array(t),e.maxAge?(this.lastUpdated=new Array(t).fill(0),this.maxAge=e.maxAge):(this.lastUpdated=[],this.maxAge=0)}set(e,t){let i=this.keyMap.get(e);void 0===i?(i=this.index(),this.keys[i]=e,this.keyMap.set(e,i),this.next[this.tail]=i,this.prev[i]=this.tail,this.tail=i,this.size+=1):this.setTail(i),this.values[i]=t,this.maxAge&&(this.lastUpdated[i]=Date.now())}get(e){const t=this.keyMap.get(e);if(void 0!==t){if(this.maxAge){const e=this.lastUpdated[t];if(Date.now()-e>this.maxAge)return}return this.setTail(t),this.maxAge&&(this.lastUpdated[t]=Date.now()),this.values[t]}}clear(){this.head=0,this.tail=0,this.size=0,this.values.fill(void 0),this.keys.fill(void 0),this.next.fill(0),this.prev.fill(0),this.keyMap.clear()}index(){return 0===this.size?this.tail:this.size===this.max?this.evict():this.size}evict(){const{head:e}=this,t=this.keys[e];return this.head=this.next[e],this.keyMap.delete(t),this.size-=1,e}link(e,t){this.prev[t]=e,this.next[e]=t}setTail(e){e!==this.tail&&(e===this.head?this.head=this.next[e]:this.link(this.prev[e],this.next[e]),this.link(this.tail,e),this.tail=e)}},Object.defineProperty(gr,"__esModule",{value:!0});const yr=o,mr=a,br=pr;gr.default=class{constructor(e,t,i,r){this.store=e,this.logger=i,this.crypto=r,this.statusProvider=new mr.default((async()=>this.pollStoreAndUpdateStatus())),this.staleTimeMs=1e3*(yr.TypeValidators.Number.is(t.staleAfter)&&t.staleAfter>0?t.staleAfter:120);const n=1e3*(yr.TypeValidators.Number.is(t.statusPollInterval)&&t.statusPollInterval>0?t.statusPollInterval:5);this.pollHandle=e?setInterval((()=>this.pollStoreAndUpdateStatus()),n):null,e&&(this.cache=new br.default({max:t.userCacheSize||1e3,maxAge:1e3*(t.userCacheTime||5)}))}close(){this.pollHandle&&(clearInterval(this.pollHandle),this.pollHandle=void 0),this.store&&this.store.close()}async getUserMembership(e){var t,i,r;if(!this.store)return;const n=null===(t=this.cache)||void 0===t?void 0:t.get(e);let a;if(n)a=n.membership;else try{a=await this.store.getUserMembership(this.hashForUserKey(e));const t={membership:a};null===(i=this.cache)||void 0===i||i.set(e,t)}catch(e){return null===(r=this.logger)||void 0===r||r.error(`Big Segment store membership query returned error: ${e}`),[null,"STORE_ERROR"]}this.statusProvider.getStatus()||await this.pollStoreAndUpdateStatus();const s=this.statusProvider.getStatus();return s.available?[a||null,s.stale?"STALE":"HEALTHY"]:[a||null,"STORE_ERROR"]}async pollStoreAndUpdateStatus(){var e,t,i;if(!this.store)return void this.statusProvider.setStatus({available:!1,stale:!1});let r;null===(e=this.logger)||void 0===e||e.debug("Querying Big Segment store status");try{const e=await this.store.getMetadata();r={available:!0,stale:!e||!e.lastUpToDate||this.isStale(e.lastUpToDate)}}catch(e){null===(t=this.logger)||void 0===t||t.error(`Big Segment store status query returned error: ${e}`),r={available:!1,stale:!1}}const n=this.statusProvider.getStatus();n&&n.available===r.available&&n.stale===r.stale||(null===(i=this.logger)||void 0===i||i.debug("Big Segment store status changed from %s to %s",JSON.stringify(n),JSON.stringify(r)),this.statusProvider.setStatus(r),this.statusProvider.notify())}hashForUserKey(e){const t=this.crypto.createHash("sha256");return t.update(e),t.digest("base64")}isStale(e){return Date.now()-e>=this.staleTimeMs}};var Or={},wr={},Sr={};Object.defineProperty(Sr,"__esModule",{value:!0});class Er{static getKeyFromPath(e,t){return t.startsWith(e.streamApiPath)?t.substring(e.streamApiPath.length):void 0}}Er.Features={namespace:"features",streamApiPath:"/flags/"},Er.Segments={namespace:"segments",streamApiPath:"/segments/"},Sr.default=Er,Object.defineProperty(wr,"__esModule",{value:!0}),wr.deserializeSegment=wr.serializeSegment=wr.deserializeFlag=wr.serializeFlag=wr.deserializeDelete=wr.deserializePatch=wr.deserializePoll=wr.deserializeAll=wr.processSegment=wr.processFlag=wr.replacer=wr.reviver=void 0;const _r=o,kr=Sr,Pr=100;function Mr(e,t){if(null!==t)return t}function Dr(e,t){if(!(t instanceof _r.AttributeReference||Array.isArray(t)&&t[0]&&t[0]instanceof _r.AttributeReference))return t.generated_includedSet&&(t.included=[...t.generated_includedSet],delete t.generated_includedSet),t.generated_excludedSet&&(t.excluded=[...t.generated_excludedSet],delete t.generated_excludedSet),t.includedContexts&&t.includedContexts.forEach((e=>{e.generated_valuesSet&&(e.values=[...e.generated_valuesSet]),delete e.generated_valuesSet})),t.excludedContexts&&t.excludedContexts.forEach((e=>{e.generated_valuesSet&&(e.values=[...e.generated_valuesSet]),delete e.generated_valuesSet})),t}function xr(e){e&&e.bucketBy&&(e.bucketByAttributeReference=new _r.AttributeReference(e.bucketBy,!e.contextKind))}function jr(e){var t;if(e.fallthrough&&e.fallthrough.rollout){xr(e.fallthrough.rollout)}null===(t=null==e?void 0:e.rules)||void 0===t||t.forEach((e=>{var t;xr(e.rollout),null===(t=null==e?void 0:e.clauses)||void 0===t||t.forEach((e=>{e&&e.attribute?e.attributeReference=new _r.AttributeReference(e.attribute,!e.contextKind):e&&(e.attributeReference=_r.AttributeReference.invalidReference)}))}))}function Tr(e){var t,i,r,n,a;(null===(t=null==e?void 0:e.included)||void 0===t?void 0:t.length)&&e.included.length>Pr&&(e.generated_includedSet=new Set(e.included),delete e.included),(null===(i=null==e?void 0:e.excluded)||void 0===i?void 0:i.length)&&e.excluded.length>Pr&&(e.generated_excludedSet=new Set(e.excluded),delete e.excluded),(null===(r=null==e?void 0:e.includedContexts)||void 0===r?void 0:r.length)&&e.includedContexts.forEach((e=>{var t;(null===(t=null==e?void 0:e.values)||void 0===t?void 0:t.length)&&e.values.length>Pr&&(e.generated_valuesSet=new Set(e.values),e.values=[])})),(null===(n=null==e?void 0:e.excludedContexts)||void 0===n?void 0:n.length)&&e.excludedContexts.forEach((e=>{var t;(null===(t=null==e?void 0:e.values)||void 0===t?void 0:t.length)&&e.values.length>Pr&&(e.generated_valuesSet=new Set(e.values),e.values=[])})),null===(a=null==e?void 0:e.rules)||void 0===a||a.forEach((e=>{var t;e.bucketBy&&(e.bucketByAttributeReference=new _r.AttributeReference(e.bucketBy,!e.rolloutContextKind)),null===(t=null==e?void 0:e.clauses)||void 0===t||t.forEach((e=>{e&&e.attribute?e.attributeReference=new _r.AttributeReference(e.attribute,!e.contextKind):e&&(e.attributeReference=_r.AttributeReference.invalidReference)}))}))}function Cr(e){try{return JSON.parse(e,Mr)}catch(e){return}}wr.reviver=Mr,wr.replacer=Dr,wr.processFlag=jr,wr.processSegment=Tr,wr.deserializeAll=function(e){var t,i;const r=Cr(e);if(r)return Object.values((null===(t=null==r?void 0:r.data)||void 0===t?void 0:t.flags)||[]).forEach((e=>{jr(e)})),Object.values((null===(i=null==r?void 0:r.data)||void 0===i?void 0:i.segments)||[]).forEach((e=>{Tr(e)})),r},wr.deserializePoll=function(e){const t=Cr(e);if(t)return Object.values((null==t?void 0:t.flags)||[]).forEach((e=>{jr(e)})),Object.values((null==t?void 0:t.segments)||[]).forEach((e=>{Tr(e)})),t},wr.deserializePatch=function(e){const t=Cr(e);if(t)return t.path.startsWith(kr.default.Features.streamApiPath)?(jr(t.data),t.kind=kr.default.Features):t.path.startsWith(kr.default.Segments.streamApiPath)&&(Tr(t.data),t.kind=kr.default.Segments),t},wr.deserializeDelete=function(e){const t=Cr(e);if(t)return t.path.startsWith(kr.default.Features.streamApiPath)?t.kind=kr.default.Features:t.path.startsWith(kr.default.Segments.streamApiPath)&&(t.kind=kr.default.Segments),t},wr.serializeFlag=function(e){return JSON.stringify(e,Dr)},wr.deserializeFlag=function(e){const t=Cr(e);if(t)return jr(t),t},wr.serializeSegment=function(e){return JSON.stringify(e,Dr)},wr.deserializeSegment=function(e){const t=Cr(e);if(t)return Tr(t),t},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.createStreamListeners=e.createDeleteListener=e.createPatchListener=e.createPutListener=void 0;const t=wr,i=Sr;e.createPutListener=(e,r,n=()=>{})=>({deserializeData:t.deserializeAll,processJson:async({data:{flags:t,segments:a}})=>{const s={[i.default.Features.namespace]:t,[i.default.Segments.namespace]:a};null==r||r.debug("Initializing all data"),e.init(s,n)}});e.createPatchListener=(e,r,n=()=>{})=>({deserializeData:t.deserializePatch,processJson:async({data:t,kind:a,path:s})=>{if(a){const o=i.default.getKeyFromPath(a,s);o&&(null==r||r.debug(`Updating ${o} in ${a.namespace}`),e.upsert(a,t,n))}}});e.createDeleteListener=(e,r,n=()=>{})=>({deserializeData:t.deserializeDelete,processJson:async({kind:t,path:a,version:s})=>{if(t){const o=i.default.getKeyFromPath(t,a);o&&(null==r||r.debug(`Deleting ${o} in ${t.namespace}`),e.upsert(t,{key:o,version:s,deleted:!0},n))}}});e.createStreamListeners=(t,i,r)=>{const n=new Map;return n.set("put",(0,e.createPutListener)(t,i,null==r?void 0:r.put)),n.set("patch",(0,e.createPatchListener)(t,i,null==r?void 0:r.patch)),n.set("delete",(0,e.createDeleteListener)(t,i,null==r?void 0:r.delete)),n}}(Or);var Ir={},Fr={},Rr={};Object.defineProperty(Rr,"__esModule",{value:!0});Rr.default=class{constructor(){this.itemsByNamespace={}}get(e,t){var i;return null===(i=this.itemsByNamespace[e])||void 0===i?void 0:i[t]}set(e,t,i){e in this.itemsByNamespace||(this.itemsByNamespace[e]={}),this.itemsByNamespace[e][t]=i}remove(e,t){const i=this.itemsByNamespace[e];i&&delete i[t]}removeAll(){this.itemsByNamespace={}}enumerate(e){Object.entries(this.itemsByNamespace).forEach((([t,i])=>{Object.entries(i).forEach((([i,r])=>{e(t,i,r)}))}))}mergeFrom(e){e.enumerate(this.set.bind(this))}},Object.defineProperty(Fr,"__esModule",{value:!0});const Vr=Rr;Fr.default=class{constructor(){this.dependenciesFrom=new Vr.default,this.dependenciesTo=new Vr.default}updateDependenciesFrom(e,t,i){const r=this.dependenciesFrom.get(e,t);null==r||r.enumerate(((i,r)=>{const n=this.dependenciesTo.get(i,r);null==n||n.remove(e,t)})),this.dependenciesFrom.set(e,t,i),null==i||i.enumerate(((i,r)=>{let n=this.dependenciesTo.get(i,r);n||(n=new Vr.default,this.dependenciesTo.set(i,r,n)),n.set(e,t,!0)}))}updateModifiedItems(e,t,i){if(!e.get(t,i)){e.set(t,i,!0);const r=this.dependenciesTo.get(t,i);null==r||r.enumerate(((t,i)=>{this.updateModifiedItems(e,t,i)}))}}reset(){this.dependenciesFrom.removeAll(),this.dependenciesTo.removeAll()}},Object.defineProperty(Ir,"__esModule",{value:!0});const Ar=Sr,Lr=Fr,Nr=Rr;function Kr(e,t){var i,r;const n=new Nr.default,a=e===Ar.default.Features.namespace,s=e===Ar.default.Segments.namespace;if(a){const r=t;null===(i=null==r?void 0:r.prerequisites)||void 0===i||i.forEach((t=>{n.set(e,t.key,!0)}))}if(a||s){const e=t;null===(r=null==e?void 0:e.rules)||void 0===r||r.forEach((e=>{var t;null===(t=e.clauses)||void 0===t||t.forEach((e=>{"segmentMatch"===e.op&&e.values.forEach((e=>{n.set(Ar.default.Segments.namespace,e,!0)}))}))}))}return n}Ir.default=class{constructor(e,t,i){this.featureStore=e,this.hasEventListeners=t,this.onChange=i,this.dependencyTracker=new Lr.default}init(e,t){const i=this.hasEventListeners(),r=r=>{this.featureStore.init(e,(()=>{Promise.resolve().then((()=>{if(this.dependencyTracker.reset(),Object.entries(e).forEach((([e,t])=>{Object.keys(t||{}).forEach((i=>{const r=t[i];this.dependencyTracker.updateDependenciesFrom(e,i,Kr(e,r))}))})),i){const t=new Nr.default;Object.keys(e).forEach((i=>{const n=(null==r?void 0:r[i])||{},a=e[i],s=Object.assign(Object.assign({},n),a);Object.keys(s).forEach((e=>{this.addIfModified(i,e,n&&n[e],a&&a[e],t)}))})),this.sendChangeEvents(t)}})),null==t||t()}))};i?this.featureStore.all(Ar.default.Features,(e=>{this.featureStore.all(Ar.default.Segments,(t=>{const i={[Ar.default.Features.namespace]:e,[Ar.default.Segments.namespace]:t};r(i)}))})):r()}upsert(e,t,i){const{key:r}=t,n=this.hasEventListeners(),a=a=>{this.featureStore.upsert(e,t,(()=>{Promise.resolve().then((()=>{if(this.dependencyTracker.updateDependenciesFrom(e.namespace,r,Kr(e.namespace,t)),n){const i=new Nr.default;this.addIfModified(e.namespace,r,a,t,i),this.sendChangeEvents(i)}})),null==i||i()}))};n?this.featureStore.get(e,r,a):a()}addIfModified(e,t,i,r,n){r&&i&&r.version<=i.version||this.dependencyTracker.updateModifiedItems(n,e,t)}sendChangeEvents(e){e.enumerate(((e,t)=>{e===Ar.default.Features.namespace&&this.onChange(t)}))}};var $r={},Ur={},Br={},zr={};Object.defineProperty(zr,"__esModule",{value:!0}),zr.default=function(e){return new Promise((t=>{e((e=>{t(e)}))}))},Object.defineProperty(Br,"__esModule",{value:!0});const Hr=zr;Br.default=class{constructor(e){this.store=e}async get(e,t){return(0,Hr.default)((i=>{this.store.get(e,t,i)}))}async all(e){return(0,Hr.default)((t=>{this.store.all(e,t)}))}async init(e){return(0,Hr.default)((t=>{this.store.init(e,t)}))}async delete(e,t,i){return(0,Hr.default)((r=>{this.store.delete(e,t,i,r)}))}async upsert(e,t){return(0,Hr.default)((i=>{this.store.upsert(e,t,i)}))}async initialized(){return(0,Hr.default)((e=>{this.store.initialized(e)}))}close(){this.store.close()}};var qr={},Wr={};function Jr(e){return Date.now()>e.expiration}Object.defineProperty(Wr,"__esModule",{value:!0});Wr.default=class{constructor(e){this.options=e,this.storage=new Map,this.checkIntervalHandle=setInterval((()=>{this.purgeStale()}),1e3*e.checkInterval)}get(e){const t=this.storage.get(e);if(!t||!Jr(t))return null==t?void 0:t.value;this.storage.delete(e)}set(e,t){this.storage.set(e,{value:t,expiration:Date.now()+1e3*this.options.ttl})}delete(e){this.storage.delete(e)}clear(){this.storage.clear()}close(){this.clear(),this.checkIntervalHandle&&(clearInterval(this.checkIntervalHandle),this.checkIntervalHandle=null)}purgeStale(){this.storage.forEach(((e,t)=>{Jr(e)&&this.storage.delete(t)}))}get size(){return this.storage.size}};var Gr={};Object.defineProperty(Gr,"__esModule",{value:!0}),Gr.persistentStoreKinds=void 0;const Xr=wr,Yr=Sr;Gr.persistentStoreKinds={segments:{namespace:Yr.default.Segments.namespace,deserialize:e=>{const t=(0,Xr.deserializeSegment)(e);if(t)return{version:t.version,item:t}},serialize:e=>{const t=(0,Xr.serializeSegment)(e);return{version:e.version,deleted:e.deleted,serializedItem:t}},priority:0},features:{namespace:Yr.default.Features.namespace,deserialize:e=>{const t=(0,Xr.deserializeFlag)(e);if(t)return{version:t.version,item:t}},serialize:e=>{const t=(0,Xr.serializeFlag)(e);return{version:e.version,deleted:e.deleted,serializedItem:t}},priority:1}};var Qr={};Object.defineProperty(Qr,"__esModule",{value:!0});const Zr=Gr;function en(e,t){const i=[],r=new Set(Object.keys(t)),n=a=>{if(!r.has(a))return;r.delete(a);const s=t[a];var o;"features"===e.namespace&&(o=s,o.prerequisites&&o.prerequisites.length?o.prerequisites.map((e=>e.key)):[]).forEach((e=>{n(e)})),i.push({key:a,item:e.serialize(s)})};for(;r.size>0;){const e=r.values().next().value;n(e)}return i}Qr.default=function(e){const t=[];return Object.keys(e).forEach((i=>{const r=Zr.persistentStoreKinds[i];t.push({key:r,item:en(r,e[i])})})),t.sort(((e,t)=>e.key.priority-t.key.priority)),t};var tn={};Object.defineProperty(tn,"__esModule",{value:!0});tn.default=class{constructor(){this.queue=[]}enqueue(e,t){this.queue.push([e,t]),1===this.queue.length&&this.executePendingUpdates()}executePendingUpdates(){if(this.queue.length>0){const[e,t]=this.queue[0];e((()=>{this.queue.shift(),this.queue.length>0&&setTimeout((()=>this.executePendingUpdates()),0),null==t||t()}))}}},Object.defineProperty(qr,"__esModule",{value:!0});const rn=Wr,nn=Gr,an=Qr,sn=tn;function on(e,t){return`${e.namespace}:${t}`}function ln(e){return`$all:${e.namespace}`}const un="$checkedInit";function cn(e){return!e||e.item.deleted?null:e.item}function dn(e){return{version:e,item:{version:e,deleted:!0}}}function hn(e,t){if(t.deleted||!t.serializedItem)return dn(t.version);const i=e.deserialize(t.serializedItem);return void 0===i?dn(t.version):0===i.version||i.version===t.version||void 0===i.item?i:{version:t.version,item:i.item}}qr.default=class{constructor(e,t){this.core=e,this.isInitialized=!1,this.queue=new sn.default,t&&(this.itemCache=new rn.default({ttl:t,checkInterval:600}),this.allItemsCache=new rn.default({ttl:t,checkInterval:600}))}init(e,t){this.queue.enqueue((t=>{this.core.init((0,an.default)(e),(()=>{this.isInitialized=!0,this.itemCache&&(this.itemCache.clear(),this.allItemsCache.clear(),Object.keys(e).forEach((t=>{const i=nn.persistentStoreKinds[t],r=e[t];this.allItemsCache.set(ln(i),r),Object.keys(r).forEach((e=>{const t=r[e],n={version:t.version,item:t};this.itemCache.set(on(i,e),n)}))}))),t()}))}),t)}get(e,t,i){if(this.itemCache){const r=this.itemCache.get(on(e,t));if(r)return void i(cn(r))}const r=nn.persistentStoreKinds[e.namespace];this.core.get(r,t,(n=>{var a;if(n&&n.serializedItem){const s=hn(r,n);return null===(a=this.itemCache)||void 0===a||a.set(on(e,t),s),void i(cn(s))}i(null)}))}initialized(e){var t;this.isInitialized?e(!0):(null===(t=this.itemCache)||void 0===t?void 0:t.get(un))?e(!1):this.core.initialized((t=>{var i;this.isInitialized=t,this.isInitialized||null===(i=this.itemCache)||void 0===i||i.set(un,!0),e(this.isInitialized)}))}all(e,t){var i;const r=null===(i=this.allItemsCache)||void 0===i?void 0:i.get(ln(e));if(r)return void t(r);const n=nn.persistentStoreKinds[e.namespace];this.core.getAll(n,(i=>{var r;if(!i)return void t({});const a={};i.forEach((({key:e,item:t})=>{const i=cn(hn(n,t));i&&(a[e]=i)})),null===(r=this.allItemsCache)||void 0===r||r.set(ln(e),a),t(a)}))}upsert(e,t,i){this.queue.enqueue((i=>{this.allItemsCache&&this.allItemsCache.clear();const r=nn.persistentStoreKinds[e.namespace];this.core.upsert(r,t.key,r.serialize(t),((n,a)=>{var s,o;if(!n&&a)if(a.serializedItem){const i=hn(r,a);null===(s=this.itemCache)||void 0===s||s.set(on(e,t.key),i)}else a.deleted&&(null===(o=this.itemCache)||void 0===o||o.set(t.key,{key:t.key,version:a.version,deleted:!0}));i()}))}),i)}delete(e,t,i,r){this.upsert(e,{key:t,version:i,deleted:!0},r)}close(){var e,t;null===(e=this.itemCache)||void 0===e||e.close(),null===(t=this.allItemsCache)||void 0===t||t.close(),this.core.close()}getDescription(){return this.core.getDescription()}},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.deserializePoll=e.PersistentDataStoreWrapper=e.AsyncStoreFacade=void 0;const t=Br;e.AsyncStoreFacade=t.default;const i=qr;e.PersistentDataStoreWrapper=i.default;const r=wr;Object.defineProperty(e,"deserializePoll",{enumerable:!0,get:function(){return r.deserializePoll}})}(Ur),Object.defineProperty($r,"__esModule",{value:!0});const fn=o,vn=Ur,gn=Sr;$r.default=class{constructor(e,t,i,r=()=>{},n){this.requestor=t,this.featureStore=i,this.initSuccessHandler=r,this.errorHandler=n,this.stopped=!1,this.logger=e.logger,this.pollInterval=e.pollInterval}poll(){var e;if(this.stopped)return;const t=e=>{var t,i,r;null===(t=this.logger)||void 0===t||t.error("Polling received invalid data"),null===(i=this.logger)||void 0===i||i.debug(`Invalid JSON follows: ${e}`),null===(r=this.errorHandler)||void 0===r||r.call(this,new fn.LDPollingError("Malformed JSON data in polling response"))},i=Date.now();null===(e=this.logger)||void 0===e||e.debug("Polling LaunchDarkly for feature flag updates"),this.requestor.requestAllData(((e,r)=>{var n,a,s,o;const l=Date.now()-i,u=Math.max(1e3*this.pollInterval-l,0);if(null===(n=this.logger)||void 0===n||n.debug("Elapsed: %d ms, sleeping for %d ms",l,u),e){const{status:t}=e;if(t&&!(0,fn.isHttpRecoverable)(t)){const i=(0,fn.httpErrorMessage)(e,"polling request");return null===(a=this.logger)||void 0===a||a.error(i),void(null===(s=this.errorHandler)||void 0===s||s.call(this,new fn.LDPollingError(i,t)))}null===(o=this.logger)||void 0===o||o.warn((0,fn.httpErrorMessage)(e,"polling request","will retry"))}else if(r){const e=(0,vn.deserializePoll)(r);if(e){const t={[gn.default.Features.namespace]:e.flags,[gn.default.Segments.namespace]:e.segments};return void this.featureStore.init(t,(()=>{this.initSuccessHandler(),this.timeoutHandle=setTimeout((()=>{this.poll()}),u)}))}t(r)}this.timeoutHandle=setTimeout((()=>{this.poll()}),u)}))}start(){this.poll()}stop(){this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=void 0),this.stopped=!0}close(){this.stop()}};var pn={};Object.defineProperty(pn,"__esModule",{value:!0});const yn=o;pn.default=class{constructor(e,t,i,r){this.requests=r,this.eTagCache={},this.headers=(0,yn.defaultHeaders)(e,i,t.tags),this.uri=`${t.serviceEndpoints.polling}/sdk/latest-all`}async requestWithETagCache(e,t){const i=this.eTagCache[e],r=null==i?void 0:i.etag,n=r?Object.assign(Object.assign({},t),{headers:Object.assign(Object.assign({},t.headers),{"if-none-match":r})}):t,a=await this.requests.fetch(e,n);if(304===a.status&&i)return{res:a,body:i.body};const s=a.headers.get("etag"),o=await a.text();return s&&(this.eTagCache[e]={etag:s,body:o}),{res:a,body:o}}async requestAllData(e){const t={method:"GET",headers:this.headers};try{const{res:i,body:r}=await this.requestWithETagCache(this.uri,t);if(200!==i.status&&304!==i.status){return e(new yn.LDStreamingError(`Unexpected status code: ${i.status}`,i.status),void 0)}return e(void 0,304===i.status?null:r)}catch(t){return e(t,void 0)}}};var mn={},bn={},On={};Object.defineProperty(On,"__esModule",{value:!0});On.default=class{constructor(){this.allData={},this.initCalled=!1}addItem(e,t,i){let r=this.allData[e.namespace];if(r||(r={},this.allData[e.namespace]=r),Object.hasOwnProperty.call(r,t)){const e=r[t];(!e||e.version<i.version)&&(r[t]=i)}else r[t]=i}get(e,t,i){const r=this.allData[e.namespace];if(r&&Object.prototype.hasOwnProperty.call(r,t)){const e=r[t];if(e&&!e.deleted)return null==i?void 0:i(e)}return null==i?void 0:i(null)}all(e,t){var i;const r={},n=null!==(i=this.allData[e.namespace])&&void 0!==i?i:{};Object.entries(n).forEach((([e,t])=>{t&&!t.deleted&&(r[e]=t)})),null==t||t(r)}init(e,t){this.initCalled=!0,this.allData=e,null==t||t()}delete(e,t,i,r){const n={version:i,deleted:!0};this.addItem(e,t,n),null==r||r()}upsert(e,t,i){this.addItem(e,t.key,t),null==i||i()}initialized(e){return null==e?void 0:e(this.initCalled)}close(){}getDescription(){return"memory"}},function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.defaultValues=void 0;const t=o,i=On,r={baseUri:t.TypeValidators.String,streamUri:t.TypeValidators.String,eventsUri:t.TypeValidators.String,timeout:t.TypeValidators.Number,capacity:t.TypeValidators.Number,logger:t.TypeValidators.Object,featureStore:t.TypeValidators.ObjectOrFactory,bigSegments:t.TypeValidators.Object,updateProcessor:t.TypeValidators.ObjectOrFactory,flushInterval:t.TypeValidators.Number,pollInterval:t.TypeValidators.numberWithMin(30),proxyOptions:t.TypeValidators.Object,offline:t.TypeValidators.Boolean,stream:t.TypeValidators.Boolean,streamInitialReconnectDelay:t.TypeValidators.Number,useLdd:t.TypeValidators.Boolean,sendEvents:t.TypeValidators.Boolean,allAttributesPrivate:t.TypeValidators.Boolean,privateAttributes:t.TypeValidators.StringArray,contextKeysCapacity:t.TypeValidators.Number,contextKeysFlushInterval:t.TypeValidators.Number,tlsParams:t.TypeValidators.Object,diagnosticOptOut:t.TypeValidators.Boolean,diagnosticRecordingInterval:t.TypeValidators.numberWithMin(60),wrapperName:t.TypeValidators.String,wrapperVersion:t.TypeValidators.String,application:t.TypeValidators.Object,hooks:t.TypeValidators.createTypeArray("Hook[]",{})};e.defaultValues={baseUri:"https://sdk.launchdarkly.com",streamUri:"https://stream.launchdarkly.com",eventsUri:t.ServiceEndpoints.DEFAULT_EVENTS,stream:!0,streamInitialReconnectDelay:1,sendEvents:!0,timeout:5,capacity:1e4,flushInterval:5,pollInterval:30,offline:!1,useLdd:!1,allAttributesPrivate:!1,privateAttributes:[],contextKeysCapacity:1e3,contextKeysFlushInterval:300,diagnosticOptOut:!1,diagnosticRecordingInterval:900,featureStore:()=>new i.default};e.default=class{constructor(i={},n={}){i=i||{},this.logger=i.logger;const{errors:a,validatedOptions:s}=function(i){const n=[],a=Object.assign({},e.defaultValues);return Object.keys(i).forEach((s=>{var o;const l=i[s],u=r[s];if(u)if(u.is(l))a[s]=l;else if("boolean"===u.getType())n.push(t.OptionMessages.wrongOptionTypeBoolean(s,typeof l)),a[s]=!!l;else if(u instanceof t.NumberWithMinimum&&t.TypeValidators.Number.is(l)){const{min:e}=u;n.push(t.OptionMessages.optionBelowMinimum(s,l,e)),a[s]=e}else n.push(t.OptionMessages.wrongOptionType(s,u.getType(),typeof l)),a[s]=e.defaultValues[s];else null===(o=i.logger)||void 0===o||o.warn(t.OptionMessages.unknownOption(s))})),{errors:n,validatedOptions:a}}(i);a.forEach((e=>{var t;null===(t=this.logger)||void 0===t||t.warn(e)})),function(e,i){var r,n,a;const{baseUri:s,streamUri:o,eventsUri:l}=e,u=null!=o,c=null!=s,d=null!=l;u===c&&u===d||(!u&&i.stream&&(null===(r=i.logger)||void 0===r||r.warn(t.OptionMessages.partialEndpoint("streamUri"))),c||null===(n=i.logger)||void 0===n||n.warn(t.OptionMessages.partialEndpoint("baseUri")),!d&&i.sendEvents&&(null===(a=i.logger)||void 0===a||a.warn(t.OptionMessages.partialEndpoint("eventsUri"))))}(i,s),this.serviceEndpoints=new t.ServiceEndpoints(s.streamUri,s.baseUri,s.eventsUri,n.analyticsEventPath,n.diagnosticEventPath,n.includeAuthorizationHeader),this.eventsCapacity=s.capacity,this.timeout=s.timeout,this.bigSegments=s.bigSegments,this.flushInterval=s.flushInterval,this.pollInterval=s.pollInterval,this.proxyOptions=s.proxyOptions,this.offline=s.offline,this.stream=s.stream,this.streamInitialReconnectDelay=s.streamInitialReconnectDelay,this.useLdd=s.useLdd,this.sendEvents=s.sendEvents,this.allAttributesPrivate=s.allAttributesPrivate,this.privateAttributes=s.privateAttributes,this.contextKeysCapacity=s.contextKeysCapacity,this.contextKeysFlushInterval=s.contextKeysFlushInterval,this.tlsParams=s.tlsParams,this.diagnosticOptOut=s.diagnosticOptOut,this.wrapperName=s.wrapperName,this.wrapperVersion=s.wrapperVersion,this.tags=new t.ApplicationTags(s),this.diagnosticRecordingInterval=s.diagnosticRecordingInterval,t.TypeValidators.Function.is(s.updateProcessor)?this.updateProcessorFactory=s.updateProcessor:this.updateProcessorFactory=()=>s.updateProcessor,t.TypeValidators.Function.is(s.featureStore)?this.featureStoreFactory=s.featureStore:this.featureStoreFactory=()=>s.featureStore,this.hooks=s.hooks}}}(bn),Object.defineProperty(mn,"__esModule",{value:!0});const wn=o,Sn=bn;mn.default=(e,t,i)=>{var r,n,a,s,o,l;return{customBaseURI:e.serviceEndpoints.polling!==Sn.defaultValues.baseUri,customStreamURI:e.serviceEndpoints.streaming!==Sn.defaultValues.streamUri,customEventsURI:e.serviceEndpoints.events!==Sn.defaultValues.eventsUri,eventsCapacity:e.eventsCapacity,connectTimeoutMillis:(0,wn.secondsToMillis)(e.timeout),socketTimeoutMillis:(0,wn.secondsToMillis)(e.timeout),eventsFlushIntervalMillis:(0,wn.secondsToMillis)(e.flushInterval),pollingIntervalMillis:(0,wn.secondsToMillis)(e.pollInterval),reconnectTimeMillis:(0,wn.secondsToMillis)(e.streamInitialReconnectDelay),contextKeysFlushIntervalMillis:(0,wn.secondsToMillis)(e.contextKeysFlushInterval),diagnosticRecordingIntervalMillis:(0,wn.secondsToMillis)(e.diagnosticRecordingInterval),streamingDisabled:!e.stream,usingRelayDaemon:e.useLdd,offline:e.offline,allAttributesPrivate:e.allAttributesPrivate,contextKeysCapacity:e.contextKeysCapacity,usingProxy:!!(null===(n=(r=t.requests).usingProxy)||void 0===n?void 0:n.call(r)),usingProxyAuthenticator:!!(null===(s=(a=t.requests).usingProxyAuth)||void 0===s?void 0:s.call(a)),dataStoreType:null!==(l=null===(o=i.getDescription)||void 0===o?void 0:o.call(i))&&void 0!==l?l:"memory"}};var En={};Object.defineProperty(En,"__esModule",{value:!0}),En.allAsync=En.firstSeriesAsync=En.allSeriesAsync=En.firstResult=void 0,En.firstResult=function(e,t){let i;return null==e||e.some(((e,r)=>(i=t(e,r),!!i))),i};const _n=50;function kn(e,t,i,r,n){e?r<(null==e?void 0:e.length)?t(e[r],r,(a=>{if(i){if(!a)return void n(!1)}else if(a)return void n(!0);e.length>_n?Promise.resolve().then((()=>{kn(e,t,i,r+1,n)})):kn(e,t,i,r+1,n)})):n(i):n(!1)}En.allSeriesAsync=function(e,t,i){kn(e,t,!0,0,i)},En.firstSeriesAsync=function(e,t,i){kn(e,t,!1,0,i)},En.allAsync=function(e,t,i){e?Promise.all(null==e?void 0:e.map((e=>new Promise((i=>{t(e,i)}))))).then((e=>{i(e.every((e=>e)))})):i(!1)};var Pn={},Mn={};Object.defineProperty(Mn,"__esModule",{value:!0});class Dn{static prerequisiteFailed(e){return{kind:"PREREQUISITE_FAILED",prerequisiteKey:e}}static ruleMatch(e,t){return{kind:"RULE_MATCH",ruleId:e,ruleIndex:t}}}Dn.Fallthrough={kind:"FALLTHROUGH"},Dn.Off={kind:"OFF"},Dn.TargetMatch={kind:"TARGET_MATCH"},Mn.default=Dn,Object.defineProperty(Pn,"__esModule",{value:!0});const xn=o,jn=Mn,{createErrorEvaluationDetail:Tn,createSuccessEvaluationDetail:Cn}=xn.internal;class In{constructor(e,t,i){this.isError=e,this.detail=t,this.message=i,this.isError=e,this.detail=t,this.message=i}get isOff(){return this.detail.reason.kind===jn.default.Off.kind}setDefault(e){this.detail.value=e}static forError(e,t,i){return new In(!0,Tn(e,i),t)}static forSuccess(e,t,i){const r=Cn(e,i,t);return new In(!1,r)}}Pn.default=In;var Fn={},Rn={};Object.defineProperty(Rn,"__esModule",{value:!0});Rn.default=class{constructor(e){this.crypto=e}sha1Hex(e){const t=this.crypto.createHash("sha1");return t.update(e),t.digest("hex")}bucket(e,t,i,r,n="user",a){const s=function(e){return"string"==typeof e?e:Number.isInteger(e)?String(e):null}(e.valueForKind(i,n));if(null===s){return[0,e.kinds.indexOf(n)>=0]}const o=`${a?Number(a):`${t}.${r}`}.${s}`;return[parseInt(this.sha1Hex(o).substring(0,15),16)/0x1000000000000000,!0]}};var Vn={},An={};Object.defineProperty(An,"__esModule",{value:!0}),An.getBucketBy=An.getOffVariation=An.getVariation=void 0;const Ln=o,Nn=Pn,{ErrorKinds:Kn}=Ln.internal,$n=new Ln.AttributeReference("key");function Un(e,t,i){return Ln.TypeValidators.Number.is(t)&&t>=0&&t<e.variations.length?Nn.default.forSuccess(e.variations[t],i,t):Nn.default.forError(Kn.MalformedFlag,"Invalid variation index in flag")}An.getVariation=Un,An.getOffVariation=function(e,t){return Ln.TypeValidators.Number.is(e.offVariation)?Un(e,e.offVariation,t):Nn.default.forSuccess(null,t)},An.getBucketBy=function(e,t){var i;return null!==(i=e?void 0:t)&&void 0!==i?i:$n},Object.defineProperty(Vn,"__esModule",{value:!0});const Bn=o,zn=En,Hn=Mn,qn=An;function Wn(e,t,i){const r=i.key(t.contextKind);if(void 0!==r){if(t.values.indexOf(r)>=0)return(0,qn.getVariation)(e,t.variation,Hn.default.TargetMatch)}}Vn.default=function(e,t){var i;return(null===(i=e.contextTargets)||void 0===i?void 0:i.length)?(0,zn.firstResult)(e.contextTargets,(i=>{if(!i.contextKind||i.contextKind===Bn.Context.userKind){const r=(e.targets||[]).find((e=>e.variation===i.variation));return r?Wn(e,r,t):void 0}return Wn(e,i,t)})):(0,zn.firstResult)(e.targets,(i=>Wn(e,i,t)))};var Jn={};Object.defineProperty(Jn,"__esModule",{value:!0}),Jn.default=function(e){return`${e.key}.g${e.generation}`};var Gn={},Xn={};Object.defineProperty(Xn,"__esModule",{value:!0});const Yn=t,Qn=o,Zn=/^\d+(\.\d+)?(\.\d+)?/;function ea(e){if(Qn.TypeValidators.String.is(e)&&!e.startsWith("v")){const t=(0,Yn.parse)(e);if(t)return t;const i=Zn.exec(e);if(i){let t=i[0];for(let e=1;e<i.length;e+=1)void 0===i[e]&&(t+=".0");return t+=e.substring(i[0].length),(0,Yn.parse)(t)}}return null}function ta(e){return(t,i)=>{const r=ea(t),n=ea(i);return!!(r&&n&&e(r,n))}}function ia(e,t,i){return(r,n)=>!(!t.is(r)||!t.is(n))&&(i?e(i(r),i(n)):e(r,n))}function ra(e){return"number"==typeof e?e:Date.parse(e)}const na={in:(e,t)=>e===t,endsWith:ia(((e,t)=>e.endsWith(t)),Qn.TypeValidators.String),startsWith:ia(((e,t)=>e.startsWith(t)),Qn.TypeValidators.String),matches:ia(((e,t)=>function(e,t){try{return new RegExp(e).test(t)}catch(e){return!1}}(t,e)),Qn.TypeValidators.String),contains:ia(((e,t)=>e.indexOf(t)>-1),Qn.TypeValidators.String),lessThan:ia(((e,t)=>e<t),Qn.TypeValidators.Number),lessThanOrEqual:ia(((e,t)=>e<=t),Qn.TypeValidators.Number),greaterThan:ia(((e,t)=>e>t),Qn.TypeValidators.Number),greaterThanOrEqual:ia(((e,t)=>e>=t),Qn.TypeValidators.Number),before:ia(((e,t)=>e<t),Qn.TypeValidators.Date,ra),after:ia(((e,t)=>e>t),Qn.TypeValidators.Date,ra),semVerEqual:ta(((e,t)=>0===e.compare(t))),semVerLessThan:ta(((e,t)=>e.compare(t)<0)),semVerGreaterThan:ta(((e,t)=>e.compare(t)>0))};Xn.default=class{static is(e){return Object.prototype.hasOwnProperty.call(na,e)}static execute(e,t,i){var r,n;return null!==(n=null===(r=na[e])||void 0===r?void 0:r.call(na,t,i))&&void 0!==n&&n}},Object.defineProperty(Gn,"__esModule",{value:!0}),Gn.maybeNegate=void 0;const aa=Xn;function sa(e,t){return e.negate?!t:t}function oa(e,t,i){return i.some((i=>aa.default.execute(e,t,i)))}Gn.maybeNegate=sa,Gn.default=function(e,t){const i=t.valueForKind(e.attributeReference,e.contextKind);return null!=i&&(Array.isArray(i)?sa(e,i.some((t=>oa(e.op,t,e.values)))):sa(e,oa(e.op,i,e.values)))};var la={};function ua(e,t,i,r){if(t)for(let i=0;i<t.length;i+=1){const r=t[i],n=e.key(r.contextKind);if(n)if(r.generated_valuesSet){if(r.generated_valuesSet.has(n))return!0}else if(r.values.includes(n))return!0}if(r){const t=e.key("user");if(t&&r.has(t))return!0}else if(i){const t=e.key("user");if(t&&i.includes(t))return!0}return!1}Object.defineProperty(la,"__esModule",{value:!0}),la.default=function(e,t){if(ua(t,e.includedContexts,e.included,e.generated_includedSet))return!0;const i=ua(t,e.excludedContexts,e.excluded,e.generated_excludedSet);return i?!i:void 0},Object.defineProperty(Fn,"__esModule",{value:!0});const ca=o,da=Rn,ha=En,fa=Pn,va=Vn,ga=Jn,pa=Gn,ya=la,ma=Mn,ba=An,{ErrorKinds:Oa}=ca.internal,wa={HEALTHY:1,STALE:2,STORE_ERROR:3,NOT_CONFIGURED:4};function Sa(e){return void 0!==e&&wa[e]||0}function Ea(e,t){return void 0!==e&&Sa(e)>Sa(t)?e:t}function _a(e){return{error:!1,isMatch:e,result:void 0}}function ka(e){return{error:!0,isMatch:!1,result:e}}Fn.default=class{constructor(e,t){this.queries=t,this.bucketer=new da.default(e.crypto)}async evaluate(e,t,i){return new Promise((r=>{const n={};this.evaluateInternal(e,t,n,[],(e=>{n.bigSegmentsStatus&&(e.detail.reason=Object.assign(Object.assign({},e.detail.reason),{bigSegmentsStatus:n.bigSegmentsStatus})),e.events=n.events,r(e)}),i)}))}evaluateCb(e,t,i,r){const n={};this.evaluateInternal(e,t,n,[],(e=>{n.bigSegmentsStatus&&(e.detail.reason=Object.assign(Object.assign({},e.detail.reason),{bigSegmentsStatus:n.bigSegmentsStatus})),e.events=n.events,i(e)}),r)}evaluateInternal(e,t,i,r,n,a){e.on?this.checkPrerequisites(e,t,i,r,(r=>{if(r)return void n(r);const a=(0,va.default)(e,t);a?n(a):this.evaluateRules(e,t,i,(i=>{n(i||this.variationForContext(e.fallthrough,t,e,ma.default.Fallthrough))}))}),a):n((0,ba.getOffVariation)(e,ma.default.Off))}checkPrerequisites(e,t,i,r,n,a){let s;e.prerequisites&&e.prerequisites.length?(0,ha.allSeriesAsync)(e.prerequisites,((n,o,l)=>{if(-1!==r.indexOf(n.key))return s=fa.default.forError(Oa.MalformedFlag,`Prerequisite of ${e.key} causing a circular reference. This is probably a temporary condition due to an incomplete update.`),void l(!0);const u=[...r,n.key];this.queries.getFlag(n.key,(r=>{if(!r)return s=(0,ba.getOffVariation)(e,ma.default.prerequisiteFailed(n.key)),void l(!1);this.evaluateInternal(r,t,i,u,(o=>{var u;return null!==(u=i.events)&&void 0!==u||(i.events=[]),a&&i.events.push(a.evalEventServer(r,t,o.detail,null,e)),o.isError?(s=o,l(!1)):o.isOff||o.detail.variationIndex!==n.variation?(s=(0,ba.getOffVariation)(e,ma.default.prerequisiteFailed(n.key)),l(!1)):l(!0)}),a)}))}),(()=>{n(s)})):n(void 0)}evaluateRules(e,t,i,r){let n;(0,ha.firstSeriesAsync)(e.rules,((r,a,s)=>{this.ruleMatchContext(e,r,a,t,i,[],(e=>{n=e,s(!!e)}))}),(()=>r(n)))}clauseMatchContext(e,t,i,r,n){let a;"segmentMatch"!==e.op?e.attributeReference.isValid?n(_a((0,pa.default)(e,t))):n(ka(fa.default.forError(Oa.MalformedFlag,"Invalid attribute reference in clause"))):(0,ha.firstSeriesAsync)(e.values,((e,n,s)=>{this.queries.getSegment(e,(e=>{if(e){if(i.includes(e.key))return a=fa.default.forError(Oa.MalformedFlag,`Segment rule referencing segment ${e.key} caused a circular reference. This is probably a temporary condition due to an incomplete update`),void s(!0);const n=[...i,null==e?void 0:e.key];this.segmentMatchContext(e,t,r,n,(e=>{e.error&&(a=e.result),s(e.error||e.isMatch)}))}else s(!1)}))}),(t=>n(a?ka(a):_a((0,pa.maybeNegate)(e,t)))))}ruleMatchContext(e,t,i,r,n,a,s){if(!t.clauses)return void s(void 0);let o;(0,ha.allSeriesAsync)(t.clauses,((e,t,i)=>{this.clauseMatchContext(e,r,a,n,(e=>(o=e.result,i(e.error||e.isMatch))))}),(n=>s(o||(n?this.variationForContext(t,r,e,ma.default.ruleMatch(t.id,i)):void 0))))}variationForContext(e,t,i,r){if(void 0===e)return fa.default.forError(Oa.MalformedFlag,"Fallthrough variation undefined");if(void 0!==e.variation)return(0,ba.getVariation)(i,e.variation,r);if(e.rollout){const{rollout:n}=e,{variations:a}=n,s="experiment"===n.kind;if(a&&a.length){const e=(0,ba.getBucketBy)(s,n.bucketByAttributeReference);if(!e.isValid)return fa.default.forError(Oa.MalformedFlag,"Invalid attribute reference for bucketBy in rollout");const[o,l]=this.bucketer.bucket(t,i.key,e,i.salt||"",n.contextKind,n.seed),u=Object.assign({},r);let c=0;for(let e=0;e<a.length;e+=1){const t=a[e];if(c+=t.weight/1e5,o<c)return s&&l&&!t.untracked&&(u.inExperiment=!0),(0,ba.getVariation)(i,t.variation,u)}const d=a[a.length-1];return s&&!d.untracked&&(u.inExperiment=!0),(0,ba.getVariation)(i,d.variation,u)}}return fa.default.forError(Oa.MalformedFlag,"Variation/rollout object with no variation or rollout")}segmentRuleMatchContext(e,t,i,r,n,a){let s;(0,ha.allSeriesAsync)(t.clauses,((e,t,a)=>{this.clauseMatchContext(e,i,n,r,(e=>{s=e.result,a(e.error||e.isMatch)}))}),(r=>{if(s)return a(ka(s));if(r){if(void 0===t.weight)return a(_a(r));const n=(0,ba.getBucketBy)(!1,t.bucketByAttributeReference);if(!n.isValid)return a(ka(fa.default.forError(Oa.MalformedFlag,"Invalid attribute reference in clause")));const[s]=this.bucketer.bucket(i,e.key,n,e.salt||"",t.rolloutContextKind);return a(_a(s<t.weight/1e5))}return a(_a(!1))}))}simpleSegmentMatchContext(e,t,i,r,n){if(!e.unbounded){const i=(0,ya.default)(e,t);if(void 0!==i)return void n(_a(i))}let a;(0,ha.firstSeriesAsync)(e.rules,((n,s,o)=>{this.segmentRuleMatchContext(e,n,t,i,r,(e=>(a=e.result,o(e.error||e.isMatch))))}),(e=>n(a?ka(a):_a(e))))}segmentMatchContext(e,t,i,r,n){if(!e.unbounded)return void this.simpleSegmentMatchContext(e,t,i,r,n);const a=e.unboundedContextKind||"user",s=t.key(a);if(s)return e.generation?void(i.bigSegmentsMembership&&i.bigSegmentsMembership[s]?this.bigSegmentMatchContext(i.bigSegmentsMembership[s],e,t,i).then(n):this.queries.getBigSegmentsMembership(s).then((r=>{if(i.bigSegmentsMembership=i.bigSegmentsMembership||{},r){const[e,t]=r;i.bigSegmentsMembership[s]=e,i.bigSegmentsStatus=Ea(i.bigSegmentsStatus,t)}else i.bigSegmentsStatus=Ea(i.bigSegmentsStatus,"NOT_CONFIGURED");this.bigSegmentMatchContext(i.bigSegmentsMembership[s],e,t,i).then(n)}))):(i.bigSegmentsStatus=Ea(i.bigSegmentsStatus,"NOT_CONFIGURED"),void n(_a(!1)));n(_a(!1))}bigSegmentMatchContext(e,t,i,r){const n=(0,ga.default)(t),a=null==e?void 0:e[n];return new Promise((e=>{null==a?this.simpleSegmentMatchContext(t,i,r,[],e):e(_a(a))}))}};var Pa={};Object.defineProperty(Pa,"__esModule",{value:!0});const Ma=pr;Pa.default=class{constructor(e){this.contextKeysCache=new Ma.default({max:e.contextKeysCapacity}),this.flushInterval=e.contextKeysFlushInterval}processContext(e){const{canonicalKey:t}=e,i=this.contextKeysCache.get(t);return this.contextKeysCache.set(t,!0),!i}flush(){this.contextKeysCache.clear()}};var Da={},xa={};Object.defineProperty(xa,"__esModule",{value:!0}),xa.default=function(e,t){if(t){if(t.inExperiment)return!0;switch(t.kind){case"RULE_MATCH":{const i=t.ruleIndex;if(void 0!==i){const t=e.rules||[];return i>=0&&i<t.length&&!!t[i].trackEvents}break}case"FALLTHROUGH":return!!e.trackEventsFallthrough}}return!1},Object.defineProperty(Da,"__esModule",{value:!0});const ja=o,Ta=xa;class Ca extends ja.internal.EventFactoryBase{evalEventServer(e,t,i,r,n){var a;const s=(0,Ta.default)(e,i.reason);return super.evalEvent({addExperimentData:s,context:t,debugEventsUntilDate:e.debugEventsUntilDate,defaultVal:r,excludeFromSummaries:e.excludeFromSummaries,flagKey:e.key,prereqOfFlagKey:null==n?void 0:n.key,reason:i.reason,samplingRatio:e.samplingRatio,trackEvents:e.trackEvents||s,value:i.value,variation:null!==(a=i.variationIndex)&&void 0!==a?a:void 0,version:e.version})}}Da.default=Ca;var Ia={};Object.defineProperty(Ia,"__esModule",{value:!0});Ia.default=class{constructor(e,t){this.valid=e,this.withReasons=t,this.flagValues={},this.flagMetadata={}}addFlag(e,t,i,r,n,a,s){this.flagValues[e.key]=t;const o={};void 0!==i&&(o.variation=i);const l=s&&!n&&!a&&void 0===e.debugEventsUntilDate;l||(o.version=e.version),r&&(a||this.withReasons&&!l)&&(o.reason=r),n&&(o.trackEvents=!0),a&&(o.trackReason=!0),void 0!==e.debugEventsUntilDate&&(o.debugEventsUntilDate=e.debugEventsUntilDate),this.flagMetadata[e.key]=o}build(){const e=this;return{valid:e.valid,allValues:()=>e.flagValues,getFlagValue:t=>e.flagValues[t],getFlagReason:t=>{var i;return null!==(i=e.flagMetadata[t]?e.flagMetadata[t].reason:null)&&void 0!==i?i:null},toJSON:()=>Object.assign(Object.assign({},e.flagValues),{$flagsState:e.flagMetadata,$valid:e.valid})}}};var Fa={};Object.defineProperty(Fa,"__esModule",{value:!0});const Ra="unknown hook";Fa.default=class{constructor(e,t){this.logger=e,this.hooks=[],this.hooks.push(...t)}async withEvaluationSeries(e,t,i,r,n){return 0===this.hooks.length?n():this.withEvaluationSeriesExtraDetail(e,t,i,r,(async()=>({detail:await n()}))).then((({detail:e})=>e))}async withEvaluationSeriesExtraDetail(e,t,i,r,n){if(0===this.hooks.length)return n();const{hooks:a,hookContext:s}=this.prepareHooks(e,t,i,r),o=this.executeBeforeEvaluation(a,s),l=await n();return this.executeAfterEvaluation(a,s,o,l.detail),l}tryExecuteStage(e,t,i){var r;try{return i()}catch(i){return null===(r=this.logger)||void 0===r||r.error(`An error was encountered in "${e}" of the "${t}" hook: ${i}`),{}}}hookName(e){var t,i;try{return null!==(t=null==e?void 0:e.getMetadata().name)&&void 0!==t?t:Ra}catch(e){return null===(i=this.logger)||void 0===i||i.error("Exception thrown getting metadata for hook. Unable to get hook name."),Ra}}executeAfterEvaluation(e,t,i,r){var n;for(let a=e.length-1;a>=0;a-=1){const s=e[a],o=null!==(n=i[a])&&void 0!==n?n:{};this.tryExecuteStage("afterEvaluation",this.hookName(s),(()=>{var e,i;return null!==(i=null===(e=null==s?void 0:s.afterEvaluation)||void 0===e?void 0:e.call(s,t,o,r))&&void 0!==i?i:{}}))}}executeBeforeEvaluation(e,t){return e.map((e=>this.tryExecuteStage("beforeEvaluation",this.hookName(e),(()=>{var i,r;return null!==(r=null===(i=null==e?void 0:e.beforeEvaluation)||void 0===i?void 0:i.call(e,t,{}))&&void 0!==r?r:{}}))))}prepareHooks(e,t,i,r){return{hooks:[...this.hooks],hookContext:{flagKey:e,context:t,defaultValue:i,method:r}}}addHook(e){this.hooks.push(e)}};var Va={};Object.defineProperty(Va,"__esModule",{value:!0});const Aa=o;function La(e){const t=e.old,i=e.new;return!(void 0!==t&&!Aa.TypeValidators.Boolean.is(t))&&!(void 0!==i&&!Aa.TypeValidators.Boolean.is(i))}function Na(e){if(Aa.TypeValidators.String.is(e.key)&&""!==e.key){if("latency_ms"===e.key){if(!Aa.TypeValidators.Object.is(e.values))return;if(!function(e){const t=e.old,i=e.new;return!(void 0!==t&&!Aa.TypeValidators.Number.is(t)||void 0!==i&&!Aa.TypeValidators.Number.is(i))}(e.values))return;return{key:e.key,values:{old:e.values.old,new:e.values.new}}}if(function(e){return"error"===e.key}(e)){if(!Aa.TypeValidators.Object.is(e.values))return;if(!La(e.values))return;return{key:e.key,values:{old:e.values.old,new:e.values.new}}}if(function(e){return"consistent"===e.key}(e)){if(!Aa.TypeValidators.Boolean.is(e.value)||!Aa.TypeValidators.Number.is(e.samplingRatio))return;return{key:e.key,value:e.value,samplingRatio:e.samplingRatio}}if(function(e){return"invoked"===e.key}(e)){if(!Aa.TypeValidators.Object.is(e.values))return;if(!La(e.values))return;return{key:e.key,values:{old:e.values.old,new:e.values.new}}}}}Va.default=function(e){var t,i;if("migration_op"!==e.kind)return;if(i=e.operation,!Aa.TypeValidators.String.is(i)||"read"!==i&&"write"!==i)return;if(!Aa.TypeValidators.Object.is(e.contextKeys))return;if(!Aa.TypeValidators.Number.is(e.creationDate))return;if(!Object.keys(e.contextKeys).every((e=>Aa.TypeValidators.Kind.is(e))))return;const r=null!==(t=e.samplingRatio)&&void 0!==t?t:1;if(!Aa.TypeValidators.Number.is(r))return;if(!Object.values(e.contextKeys).every((e=>Aa.TypeValidators.String.is(e)&&""!==e)))return;const n=function(e){if(!Aa.TypeValidators.String.is(e.key)||""===e.key)return;if(!Aa.TypeValidators.Object.is(e.reason))return;if(!Aa.TypeValidators.String.is(e.reason.kind)||""===e.reason.kind)return;const t={key:e.key,value:e.value,default:e.default,reason:{kind:e.reason.kind}},i=e.reason,r=t.reason;return Aa.TypeValidators.String.is(i.errorKind)&&(r.errorKind=i.errorKind),Aa.TypeValidators.String.is(i.ruleId)&&(r.ruleId=i.ruleId),Aa.TypeValidators.String.is(i.prerequisiteKey)&&(r.prerequisiteKey=i.prerequisiteKey),Aa.TypeValidators.Boolean.is(i.inExperiment)&&(r.inExperiment=i.inExperiment),Aa.TypeValidators.Number.is(i.ruleIndex)&&(r.ruleIndex=i.ruleIndex),Aa.TypeValidators.String.is(i.bigSegmentsStatus)&&(r.bigSegmentsStatus=i.bigSegmentsStatus),void 0!==e.variation&&Aa.TypeValidators.Number.is(e.variation)&&(t.variation=e.variation),void 0!==e.version&&Aa.TypeValidators.Number.is(e.version)&&(t.version=e.version),t}(e.evaluation);var a;return n?{kind:e.kind,operation:e.operation,creationDate:e.creationDate,contextKeys:Object.assign({},e.contextKeys),measurements:(a=e.measurements,a.map(Na).filter((e=>void 0!==e))),evaluation:n,samplingRatio:r}:void 0};var Ka={};Object.defineProperty(Ka,"__esModule",{value:!0});const $a=o,Ua=Mi;function Ba(e){return!Number.isNaN(e)}Ka.default=class{constructor(e,t,i,r,n,a,s,o,l,u){this.flagKey=e,this.contextKeys=t,this.defaultStage=i,this.stage=r,this.reason=n,this.checkRatio=a,this.variation=s,this.version=o,this.samplingRatio=l,this.logger=u,this.errors={old:!1,new:!1},this.wasInvoked={old:!1,new:!1},this.consistencyCheck=Ua.LDConsistencyCheck.NotChecked,this.latencyMeasurement={old:NaN,new:NaN}}op(e){this.operation=e}error(e){this.errors[e]=!0}consistency(e){var t,i;if($a.internal.shouldSample(null!==(t=this.checkRatio)&&void 0!==t?t:1))try{const t=e();this.consistencyCheck=t?Ua.LDConsistencyCheck.Consistent:Ua.LDConsistencyCheck.Inconsistent}catch(e){null===(i=this.logger)||void 0===i||i.error(`Exception when executing consistency check function for migration '${this.flagKey}' the consistency check will not be included in the generated migration op event. Exception: ${e}`)}}latency(e,t){this.latencyMeasurement[e]=t}invoked(e){this.wasInvoked[e]=!0}createEvent(){var e,t,i,r,n;if(!$a.TypeValidators.String.is(this.flagKey)||""===this.flagKey)return void(null===(e=this.logger)||void 0===e||e.error("The flag key for a migration operation must be a non-empty string."));if(!this.operation)return void(null===(t=this.logger)||void 0===t||t.error('The operation must be set using "op" before an event can be created.'));if(0===Object.keys(this.contextKeys).length)return void(null===(i=this.logger)||void 0===i||i.error("The migration was not done against a valid context and cannot generate an event."));if(!this.wasInvoked.old&&!this.wasInvoked.new)return void(null===(r=this.logger)||void 0===r||r.error('The migration invoked neither the "old" or "new" implementation andan event cannot be generated'));if(!this.measurementConsistencyCheck())return;const a=[];return this.populateInvoked(a),this.populateConsistency(a),this.populateLatency(a),this.populateErrors(a),{kind:"migration_op",operation:this.operation,creationDate:Date.now(),contextKeys:this.contextKeys,evaluation:{key:this.flagKey,value:this.stage,default:this.defaultStage,reason:this.reason,variation:this.variation,version:this.version},measurements:a,samplingRatio:null!==(n=this.samplingRatio)&&void 0!==n?n:1}}logTag(){return`For migration ${this.operation}-${this.flagKey}:`}latencyConsistencyMessage(e){return`Latency measurement for "${e}", but "${e}" was not invoked.`}errorConsistencyMessage(e){return`Error occurred for "${e}", but "${e}" was not invoked.`}consistencyCheckConsistencyMessage(e){return`Consistency check was done, but "${e}" was not invoked.Both "old" and "new" must be invoked to do a consistency check.`}checkOriginEventConsistency(e){var t,i,r;return!!this.wasInvoked[e]||(Number.isNaN(this.latencyMeasurement[e])?this.errors[e]?(null===(i=this.logger)||void 0===i||i.error(`${this.logTag()} ${this.errorConsistencyMessage(e)}`),!1):this.consistencyCheck===Ua.LDConsistencyCheck.NotChecked||(null===(r=this.logger)||void 0===r||r.error(`${this.logTag()} ${this.consistencyCheckConsistencyMessage(e)}`),!1):(null===(t=this.logger)||void 0===t||t.error(`${this.logTag()} ${this.latencyConsistencyMessage(e)}`),!1))}measurementConsistencyCheck(){return this.checkOriginEventConsistency("old")&&this.checkOriginEventConsistency("new")}populateInvoked(e){var t;const i={key:"invoked",values:{}};this.wasInvoked.old||this.wasInvoked.new||null===(t=this.logger)||void 0===t||t.error("Migration op completed without executing any origins (old/new)."),this.wasInvoked.old&&(i.values.old=!0),this.wasInvoked.new&&(i.values.new=!0),e.push(i)}populateConsistency(e){var t;void 0!==this.consistencyCheck&&this.consistencyCheck!==Ua.LDConsistencyCheck.NotChecked&&e.push({key:"consistent",value:this.consistencyCheck===Ua.LDConsistencyCheck.Consistent,samplingRatio:null!==(t=this.checkRatio)&&void 0!==t?t:1})}populateErrors(e){if(this.errors.new||this.errors.old){const t={key:"error",values:{}};this.errors.new&&(t.values.new=!0),this.errors.old&&(t.values.old=!0),e.push(t)}}populateLatency(e){const t=Ba(this.latencyMeasurement.new),i=Ba(this.latencyMeasurement.old);if(t||i){const r={};t&&(r.new=this.latencyMeasurement.new),i&&(r.old=this.latencyMeasurement.old),e.push({key:"latency_ms",values:r})}}},Object.defineProperty(s,"__esModule",{value:!0});const za=o,Ha=Pi,qa=gr,Wa=Or,Ja=Ir,Ga=$r,Xa=pn,Ya=mn,Qa=En,Za=Pn,es=Fn,ts=Pa,is=Da,rs=xa,ns=Ia,as=Fa,ss=Va,os=Ka,ls=bn,us=Sr,{ClientMessages:cs,ErrorKinds:ds,NullEventProcessor:hs}=za.internal;var fs,vs;(vs=fs||(fs={}))[vs.Initializing=0]="Initializing",vs[vs.Initialized=1]="Initialized",vs[vs.Failed=2]="Failed";s.default=class{constructor(e,t,i,r,n){var a,s,o,l,u;this.sdkKey=e,this.platform=t,this.initState=fs.Initializing,this.eventFactoryDefault=new is.default(!1),this.eventFactoryWithReasons=new is.default(!0),this.onError=r.onError,this.onFailed=r.onFailed,this.onReady=r.onReady;const{onUpdate:c,hasEventListeners:d}=r,h=new ls.default(i,n);if(this.hookRunner=new as.default(h.logger,h.hooks||[]),!e&&!h.offline)throw new Error("You must configure the client with an SDK key");this.config=h,this.logger=h.logger;const f=new za.ClientContext(e,h,t),v=h.featureStoreFactory(f),g=new Ja.default(v,d,c);!h.sendEvents||h.offline||h.diagnosticOptOut||(this.diagnosticsManager=new za.internal.DiagnosticsManager(e,t,(0,Ya.default)(h,t,v))),!h.sendEvents||h.offline?this.eventProcessor=new hs:this.eventProcessor=new za.internal.EventProcessor(h,f,new ts.default(h),this.diagnosticsManager),this.featureStore=v;const p=new qa.default(null===(s=null===(a=h.bigSegments)||void 0===a?void 0:a.store)||void 0===s?void 0:s.call(a,f),null!==(o=h.bigSegments)&&void 0!==o?o:{},h.logger,this.platform.crypto);this.bigSegmentsManager=p,this.bigSegmentStatusProviderInternal=p.statusProvider;const y={getFlag(e,t){v.get(us.default.Features,e,(e=>t(e)))},getSegment(e,t){v.get(us.default.Segments,e,(e=>t(e)))},getBigSegmentsMembership:e=>p.getUserMembership(e)};this.evaluator=new es.default(this.platform,y);const m=(0,Wa.createStreamListeners)(g,this.logger,{put:()=>this.initSuccess()}),b=()=>h.stream?new za.internal.StreamingProcessor(e,f,"/all",m,this.diagnosticsManager,(e=>this.dataSourceErrorHandler(e)),this.config.streamInitialReconnectDelay):new Ga.default(h,new Xa.default(e,h,this.platform.info,this.platform.requests),g,(()=>this.initSuccess()),(e=>this.dataSourceErrorHandler(e)));h.offline||h.useLdd||(this.updateProcessor=null!==(u=null===(l=h.updateProcessorFactory)||void 0===l?void 0:l.call(h,f,g,(()=>this.initSuccess()),(e=>this.dataSourceErrorHandler(e))))&&void 0!==u?u:b()),this.updateProcessor?this.updateProcessor.start():setTimeout((()=>this.initSuccess()),0)}initialized(){return this.initState===fs.Initialized}waitForInitialization(e){var t,i;return void 0===(null==e?void 0:e.timeout)&&void 0!==this.updateProcessor&&(null===(t=this.logger)||void 0===t||t.warn("The waitForInitialization function was called without a timeout specified. In a future version a default timeout will be applied.")),void 0!==(null==e?void 0:e.timeout)&&(null==e?void 0:e.timeout)>60&&void 0!==this.updateProcessor&&(null===(i=this.logger)||void 0===i||i.warn("The waitForInitialization function was called with a timeout greater than 60 seconds. We recommend a timeout of less than 60 seconds.")),this.initializedPromise?this.clientWithTimeout(this.initializedPromise,null==e?void 0:e.timeout,this.logger):this.initState===fs.Initialized?(this.initializedPromise=Promise.resolve(this),this.initializedPromise):this.initState===fs.Failed?(this.initializedPromise=Promise.reject(this.rejectionReason),this.initializedPromise):(this.initializedPromise||(this.initializedPromise=new Promise(((e,t)=>{this.initResolve=e,this.initReject=t}))),this.clientWithTimeout(this.initializedPromise,null==e?void 0:e.timeout,this.logger))}variation(e,t,i,r){return this.hookRunner.withEvaluationSeries(e,t,i,"LDClient.variation",(()=>new Promise((r=>{this.evaluateIfPossible(e,t,i,this.eventFactoryDefault,(e=>{r(e.detail)}))})))).then((e=>(null==r||r(null,e.value),e.value)))}variationDetail(e,t,i,r){return this.hookRunner.withEvaluationSeries(e,t,i,"LDClient.variationDetail",(()=>new Promise((n=>{this.evaluateIfPossible(e,t,i,this.eventFactoryWithReasons,(e=>{n(e.detail),null==r||r(null,e.detail)}))}))))}typedEval(e,t,i,r,n,a){return this.hookRunner.withEvaluationSeries(e,t,i,n,(()=>new Promise((n=>{this.evaluateIfPossible(e,t,i,r,(e=>{const t={value:e.detail.value,reason:e.detail.reason,variationIndex:e.detail.variationIndex};n(t)}),a)}))))}async boolVariation(e,t,i){return(await this.typedEval(e,t,i,this.eventFactoryDefault,"LDClient.boolVariation",(e=>[za.TypeValidators.Boolean.is(e),za.TypeValidators.Boolean.getType()]))).value}async numberVariation(e,t,i){return(await this.typedEval(e,t,i,this.eventFactoryDefault,"LDClient.numberVariation",(e=>[za.TypeValidators.Number.is(e),za.TypeValidators.Number.getType()]))).value}async stringVariation(e,t,i){return(await this.typedEval(e,t,i,this.eventFactoryDefault,"LDClient.stringVariation",(e=>[za.TypeValidators.String.is(e),za.TypeValidators.String.getType()]))).value}jsonVariation(e,t,i){return this.hookRunner.withEvaluationSeries(e,t,i,"LDClient.jsonVariation",(()=>new Promise((r=>{this.evaluateIfPossible(e,t,i,this.eventFactoryDefault,(e=>{r(e.detail)}))})))).then((e=>e.value))}boolVariationDetail(e,t,i){return this.typedEval(e,t,i,this.eventFactoryWithReasons,"LDClient.boolVariationDetail",(e=>[za.TypeValidators.Boolean.is(e),za.TypeValidators.Boolean.getType()]))}numberVariationDetail(e,t,i){return this.typedEval(e,t,i,this.eventFactoryWithReasons,"LDClient.numberVariationDetail",(e=>[za.TypeValidators.Number.is(e),za.TypeValidators.Number.getType()]))}stringVariationDetail(e,t,i){return this.typedEval(e,t,i,this.eventFactoryWithReasons,"LDClient.stringVariationDetail",(e=>[za.TypeValidators.String.is(e),za.TypeValidators.String.getType()]))}jsonVariationDetail(e,t,i){return this.hookRunner.withEvaluationSeries(e,t,i,"LDClient.jsonVariationDetail",(()=>new Promise((r=>{this.evaluateIfPossible(e,t,i,this.eventFactoryWithReasons,(e=>{r(e.detail)}))}))))}async migrationVariationInternal(e,t,i){var r;const n=za.Context.fromLDContext(t),a=await new Promise((r=>{this.evaluateIfPossible(e,t,i,this.eventFactoryWithReasons,(({detail:t},n)=>{if((0,Ha.IsMigrationStage)(t.value))r({detail:t,flag:n});else{const t=new Error(`Unrecognized MigrationState for "${e}"; returning default value.`);this.onError(t);const a={kind:"ERROR",errorKind:ds.WrongType};r({detail:{value:i,reason:a},flag:n})}}))})),{detail:s,flag:o}=a,l=n.valid?n.kindsAndKeys:{},u=null===(r=null==o?void 0:o.migration)||void 0===r?void 0:r.checkRatio,c=null==o?void 0:o.samplingRatio;return{detail:s,migration:{value:s.value,tracker:new os.default(e,l,i,s.value,s.reason,u,null===s.variationIndex?void 0:s.variationIndex,null==o?void 0:o.version,c,this.logger)}}}async migrationVariation(e,t,i){return(await this.hookRunner.withEvaluationSeriesExtraDetail(e,t,i,"LDClient.migrationVariation",(()=>this.migrationVariationInternal(e,t,i)))).migration}allFlagsState(e,t,i){var r,n,a;if(this.config.offline){null===(r=this.logger)||void 0===r||r.info("allFlagsState() called in offline mode. Returning empty state.");const e=new ns.default(!1,!1).build();return null==i||i(null,e),Promise.resolve(e)}const s=za.Context.fromLDContext(e);return s.valid?new Promise((e=>{const r=r=>this.featureStore.all(us.default.Features,(n=>{const a=new ns.default(r,!!(null==t?void 0:t.withReasons)),o=!!(null==t?void 0:t.clientSideOnly),l=!!(null==t?void 0:t.detailsOnlyForTrackedFlags);(0,Qa.allAsync)(Object.values(n),((e,t)=>{var i;const r=e;!o||(null===(i=r.clientSideAvailability)||void 0===i?void 0:i.usingEnvironmentId)?this.evaluator.evaluateCb(r,s,(e=>{var i;e.isError&&this.onError(new Error(`Error for feature flag "${r.key}" while evaluating all flags: ${e.message}`));const n=(0,rs.default)(r,e.detail.reason);a.addFlag(r,e.detail.value,null!==(i=e.detail.variationIndex)&&void 0!==i?i:void 0,e.detail.reason,r.trackEvents||n,n,l),t(!0)})):t(!0)}),(()=>{const t=a.build();null==i||i(null,t),e(t)}))}));this.initialized()?r(!0):this.featureStore.initialized((e=>{var t,i;let n=!0;e?null===(t=this.logger)||void 0===t||t.warn("Called allFlagsState before client initialization; using last known values from data store"):(null===(i=this.logger)||void 0===i||i.warn("Called allFlagsState before client initialization. Data store not available; returning empty state"),n=!1),r(n)}))})):(null===(n=this.logger)||void 0===n||n.info(`${null!==(a=s.message)&&void 0!==a?a:"Invalid context."}. Returning empty state.`),Promise.resolve(new ns.default(!1,!1).build()))}secureModeHash(e){const t=za.Context.fromLDContext(e),i=t.valid?t.canonicalKey:void 0,r=this.platform.crypto.createHmac("sha256",this.sdkKey);if(void 0===i)throw new za.LDClientError("Could not generate secure mode hash for invalid context");return r.update(i),r.digest("hex")}close(){var e;this.eventProcessor.close(),null===(e=this.updateProcessor)||void 0===e||e.close(),this.featureStore.close(),this.bigSegmentsManager.close()}isOffline(){return this.config.offline}track(e,t,i,r){var n,a;const s=za.Context.fromLDContext(t);s.valid?(void 0===r||za.TypeValidators.Number.is(r)||null===(a=this.logger)||void 0===a||a.warn(cs.invalidMetricValue(typeof r)),this.eventProcessor.sendEvent(this.eventFactoryDefault.customEvent(e,s,i,r))):null===(n=this.logger)||void 0===n||n.warn(cs.missingContextKeyNoEvent)}trackMigration(e){const t=(0,ss.default)(e);t&&this.eventProcessor.sendEvent(t)}identify(e){var t;const i=za.Context.fromLDContext(e);i.valid?this.eventProcessor.sendEvent(this.eventFactoryDefault.identifyEvent(i)):null===(t=this.logger)||void 0===t||t.warn(cs.missingContextKeyNoEvent)}async flush(e){try{await this.eventProcessor.flush()}catch(t){null==e||e(t,!1)}null==e||e(null,!0)}addHook(e){this.hookRunner.addHook(e)}variationInternal(e,t,i,r,n,a){var s,o;if(this.config.offline)return null===(s=this.logger)||void 0===s||s.info("Variation called in offline mode. Returning default value."),void n(Za.default.forError(ds.ClientNotReady,void 0,i));const l=za.Context.fromLDContext(t);if(!l.valid)return this.onError(new za.LDClientError(`${null!==(o=l.message)&&void 0!==o?o:"Context not valid;"} returning default value.`)),void n(Za.default.forError(ds.UserNotSpecified,void 0,i));this.featureStore.get(us.default.Features,e,(t=>{const s=t;if(!s){const t=new za.LDClientError(`Unknown feature flag "${e}"; returning default value`);this.onError(t);const r=Za.default.forError(ds.FlagNotFound,void 0,i);return this.eventProcessor.sendEvent(this.eventFactoryDefault.unknownFlagEvent(e,i,l)),void n(r)}this.evaluator.evaluateCb(s,l,(t=>{var o;if(void 0!==t.detail.variationIndex&&null!==t.detail.variationIndex||(null===(o=this.logger)||void 0===o||o.debug("Result value is null in variation"),t.setDefault(i)),a){const[o,u]=a(t.detail.value);if(!o){const t=Za.default.forError(ds.WrongType,`Did not receive expected type (${u}) evaluating feature flag "${e}"`,i);return this.sendEvalEvent(t,r,s,l,i),void n(t,s)}}this.sendEvalEvent(t,r,s,l,i),n(t,s)}),r)}))}sendEvalEvent(e,t,i,r,n){var a;null===(a=e.events)||void 0===a||a.forEach((e=>{this.eventProcessor.sendEvent(Object.assign({},e))})),this.eventProcessor.sendEvent(t.evalEventServer(i,r,e.detail,n,void 0))}evaluateIfPossible(e,t,i,r,n,a){this.initialized()?this.variationInternal(e,t,i,r,n,a):this.featureStore.initialized((s=>{var o,l;if(s)return null===(o=this.logger)||void 0===o||o.warn("Variation called before LaunchDarkly client initialization completed (did you wait for the 'ready' event?) - using last known values from feature store"),void this.variationInternal(e,t,i,r,n,a);null===(l=this.logger)||void 0===l||l.warn("Variation called before LaunchDarkly client initialization completed (did you wait for the'ready' event?) - using default value"),n(Za.default.forError(ds.ClientNotReady,void 0,i))}))}dataSourceErrorHandler(e){var t;const i=401===e.code?new Error("Authentication failed. Double check your SDK key."):e;this.onError(i),this.onFailed(i),this.initialized()||(this.initState=fs.Failed,this.rejectionReason=i,null===(t=this.initReject)||void 0===t||t.call(this,i))}initSuccess(){var e;this.initialized()||(this.initState=fs.Initialized,null===(e=this.initResolve)||void 0===e||e.call(this,this),this.onReady())}clientWithTimeout(e,t,i){if(t){const r=(0,za.cancelableTimedPromise)(t,"waitForInitialization");return Promise.race([e.then((()=>r.cancel())).then((()=>this)),r.promise.then((()=>this))]).catch((e=>{throw e instanceof za.LDTimeoutError&&(null==i||i.error(e.message)),e}))}return e}};var gs={};Object.defineProperty(gs,"__esModule",{value:!0}),gs.createMigration=gs.LDMigrationError=gs.LDMigrationSuccess=void 0;const ps=Pi,ys=qi;gs.LDMigrationSuccess=function(e){return{success:!0,result:e}},gs.LDMigrationError=function(e){return{success:!1,error:e}};class ms{constructor(e,t){var i,r;this.client=e,this.config=t,this.readTable={[ps.LDMigrationStage.Off]:async e=>this.doSingleOp(e,"old",this.config.readOld.bind(this.config)),[ps.LDMigrationStage.DualWrite]:async e=>this.doSingleOp(e,"old",this.config.readOld.bind(this.config)),[ps.LDMigrationStage.Shadow]:async e=>{const{fromOld:t,fromNew:i}=await this.doRead(e);return this.trackConsistency(e,t,i),t},[ps.LDMigrationStage.Live]:async e=>{const{fromNew:t,fromOld:i}=await this.doRead(e);return this.trackConsistency(e,i,t),t},[ps.LDMigrationStage.RampDown]:async e=>this.doSingleOp(e,"new",this.config.readNew.bind(this.config)),[ps.LDMigrationStage.Complete]:async e=>this.doSingleOp(e,"new",this.config.readNew.bind(this.config))},this.writeTable={[ps.LDMigrationStage.Off]:async e=>({authoritative:await this.doSingleOp(e,"old",this.config.writeOld.bind(this.config))}),[ps.LDMigrationStage.DualWrite]:async e=>{const t=await this.doSingleOp(e,"old",this.config.writeOld.bind(this.config));if(!t.success)return{authoritative:t};return{authoritative:t,nonAuthoritative:await this.doSingleOp(e,"new",this.config.writeNew.bind(this.config))}},[ps.LDMigrationStage.Shadow]:async e=>{const t=await this.doSingleOp(e,"old",this.config.writeOld.bind(this.config));if(!t.success)return{authoritative:t};return{authoritative:t,nonAuthoritative:await this.doSingleOp(e,"new",this.config.writeNew.bind(this.config))}},[ps.LDMigrationStage.Live]:async e=>{const t=await this.doSingleOp(e,"new",this.config.writeNew.bind(this.config));if(!t.success)return{authoritative:t};return{authoritative:t,nonAuthoritative:await this.doSingleOp(e,"old",this.config.writeOld.bind(this.config))}},[ps.LDMigrationStage.RampDown]:async e=>{const t=await this.doSingleOp(e,"new",this.config.writeNew.bind(this.config));if(!t.success)return{authoritative:t};return{authoritative:t,nonAuthoritative:await this.doSingleOp(e,"old",this.config.writeOld.bind(this.config))}},[ps.LDMigrationStage.Complete]:async e=>({authoritative:await this.doSingleOp(e,"new",this.config.writeNew.bind(this.config))})},this.config.execution?this.execution=this.config.execution:this.execution=new ys.LDConcurrentExecution,this.latencyTracking=null===(i=this.config.latencyTracking)||void 0===i||i,this.errorTracking=null===(r=this.config.errorTracking)||void 0===r||r}async read(e,t,i,r){const n=await this.client.migrationVariation(e,t,i),a=await this.readTable[n.value]({payload:r,tracker:n.tracker});return n.tracker.op("read"),this.sendEvent(n.tracker),a}async write(e,t,i,r){const n=await this.client.migrationVariation(e,t,i),a=await this.writeTable[n.value]({payload:r,tracker:n.tracker});return n.tracker.op("write"),this.sendEvent(n.tracker),a}sendEvent(e){const t=e.createEvent();t&&this.client.trackMigration(t)}trackConsistency(e,t,i){this.config.check&&t.success&&i.success&&e.tracker.consistency((()=>this.config.check(t.result,i.result)))}async readSequentialFixed(e){return{fromOld:await this.doSingleOp(e,"old",this.config.readOld.bind(this.config)),fromNew:await this.doSingleOp(e,"new",this.config.readNew.bind(this.config))}}async readConcurrent(e){const t=this.doSingleOp(e,"old",this.config.readOld.bind(this.config)),i=this.doSingleOp(e,"new",this.config.readNew.bind(this.config)),[r,n]=await Promise.all([t,i]);return{fromOld:r,fromNew:n}}async readSequentialRandom(e){if(0===Math.floor(2*Math.random())){return{fromOld:await this.doSingleOp(e,"old",this.config.readOld.bind(this.config)),fromNew:await this.doSingleOp(e,"new",this.config.readNew.bind(this.config))}}const t=await this.doSingleOp(e,"new",this.config.readNew.bind(this.config));return{fromOld:await this.doSingleOp(e,"old",this.config.readOld.bind(this.config)),fromNew:t}}async doRead(e){var t;if((null===(t=this.execution)||void 0===t?void 0:t.type)===ys.LDExecution.Serial){return this.execution.ordering===ys.LDExecutionOrdering.Fixed?this.readSequentialFixed(e):this.readSequentialRandom(e)}return this.readConcurrent(e)}async doSingleOp(e,t,i){e.tracker.invoked(t);const r=await this.trackLatency(e.tracker,t,(()=>async function(e){try{return await e()}catch(e){return{success:!1,error:e}}}((()=>i(e.payload)))));return!r.success&&this.errorTracking&&e.tracker.error(t),Object.assign({origin:t},r)}async trackLatency(e,t,i){if(!this.latencyTracking)return i();let r,n,a;"undefined"!=typeof performance?(r=performance.now(),a=await i(),n=performance.now()):(r=Date.now(),a=await i(),n=Date.now());const s=n-r;return e.latency(t,s),a}}gs.createMigration=function(e,t){return new ms(e,t)};var bs={},Os={},ws={},Ss={};Object.defineProperty(Ss,"__esModule",{value:!0});Ss.default=class{constructor(e,t,i,r){this.filesystem=e,this.paths=t,this.watch=i,this.callback=r,this.watchers=[],this.fileData={},this.fileTimestamps={}}async loadAndWatch(){const e=this.paths.map((async e=>({data:await this.filesystem.readFile(e),path:e,timeStamp:await this.filesystem.getFileTimestamp(e)}))),t=await Promise.all(e);t.forEach((e=>{this.fileData[e.path]=e.data,this.fileTimestamps[e.path]=e.timeStamp})),this.callback(t),this.watch&&this.paths.forEach((e=>{const t=this.filesystem.watch(e,(async(e,t)=>{const i=await this.filesystem.getFileTimestamp(t);if(i===this.fileTimestamps[t])return;this.fileTimestamps[t]=i;const r=await this.filesystem.readFile(t);this.fileData[t]=r,this.debounceCallback()}));this.watchers.push(t)}))}close(){this.watchers.forEach((e=>e.close()))}debounceCallback(){this.debounceHandle||(this.debounceHandle=setTimeout((()=>{this.debounceHandle=void 0,this.callback(Object.entries(this.fileData).reduce(((e,[t,i])=>(e.push({path:t,data:i}),e)),[]))}),10))}},Object.defineProperty(ws,"__esModule",{value:!0});const Es=wr,_s=Sr,ks=Ss;ws.default=class{constructor(e,t,i,r=()=>{},n){var a;this.featureStore=i,this.initSuccessHandler=r,this.errorHandler=n,this.allData={},this.fileLoader=new ks.default(t,e.paths,null!==(a=e.autoUpdate)&&void 0!==a&&a,(e=>{var t,i;try{this.processFileData(e)}catch(e){null===(t=this.errorHandler)||void 0===t||t.call(this,e),null===(i=this.logger)||void 0===i||i.error(`Error processing files: ${e}`)}})),this.logger=e.logger,this.yamlParser=e.yamlParser}start(){(async()=>{var e;try{await this.fileLoader.loadAndWatch()}catch(t){null===(e=this.errorHandler)||void 0===e||e.call(this,t)}})()}stop(){this.fileLoader.close()}close(){this.stop()}addItem(e,t){if(this.allData[e.namespace]||(this.allData[e.namespace]={}),this.allData[e.namespace][t.key])throw new Error(`found duplicate key: "${t.key}"`);this.allData[e.namespace][t.key]=t}processFileData(e){const t=this.allData;this.allData={},e.forEach((e=>{let i;if(e.path.endsWith(".yml")||e.path.endsWith(".yaml")){if(!this.yamlParser)throw new Error(`Attempted to parse yaml file (${e.path}) without parser.`);i=this.yamlParser(e.data)}else i=JSON.parse(e.data);this.processParsedData(i,t)})),this.featureStore.init(this.allData,(()=>{this.initSuccessHandler(),this.initSuccessHandler=()=>{}}))}processParsedData(e,t){Object.keys(e.flags||{}).forEach((t=>{(0,Es.processFlag)(e.flags[t]),this.addItem(_s.default.Features,e.flags[t])})),Object.keys(e.flagValues||{}).forEach((i=>{var r,n;const a=null===(r=t[_s.default.Features.namespace])||void 0===r?void 0:r[i];let{version:s}=null!=a?a:{version:1};a&&JSON.stringify(e.flagValues[i])!==JSON.stringify(null===(n=null==a?void 0:a.variations)||void 0===n?void 0:n[0])&&(s+=1);const o=function(e,t,i){return{key:e,on:!0,fallthrough:{variation:0},variations:[t],version:i}}(i,e.flagValues[i],s);(0,Es.processFlag)(o),this.addItem(_s.default.Features,o)})),Object.keys(e.segments||{}).forEach((t=>{(0,Es.processSegment)(e.segments[t]),this.addItem(_s.default.Segments,e.segments[t])}))}},Object.defineProperty(Os,"__esModule",{value:!0});const Ps=ws;Os.default=class{constructor(e){this.options=e}create(e,t,i,r){const n={paths:this.options.paths,autoUpdate:this.options.autoUpdate,logger:this.options.logger||e.basicConfiguration.logger,yamlParser:this.options.yamlParser};return new Ps.default(n,e.platform.fileSystem,t,i,r)}getFactory(){return(e,t,i,r)=>this.create(e,t,i,r)}};var Ms={},Ds={},xs={},js={};!function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.variationForBoolean=e.FALSE_VARIATION_INDEX=e.TRUE_VARIATION_INDEX=void 0,e.TRUE_VARIATION_INDEX=0,e.FALSE_VARIATION_INDEX=1,e.variationForBoolean=function(t){return t?e.TRUE_VARIATION_INDEX:e.FALSE_VARIATION_INDEX}}(js);var Ts={};Object.defineProperty(Ts,"__esModule",{value:!0});const Cs=o,Is=js;class Fs{constructor(e,t,i){this.flagBuilder=e,this.clauses=[],t&&(this.clauses=[...t]),void 0!==i&&(this.variation=i)}andMatch(e,t,...i){return this.clauses.push({contextKind:e,attribute:t,attributeReference:new Cs.AttributeReference(t),op:"in",values:i,negate:!1}),this}andNotMatch(e,t,...i){return this.clauses.push({contextKind:e,attribute:t,attributeReference:new Cs.AttributeReference(t),op:"in",values:i,negate:!0}),this}thenReturn(e){return Cs.TypeValidators.Boolean.is(e)?(this.flagBuilder.booleanFlag(),this.thenReturn((0,Is.variationForBoolean)(e))):(this.variation=e,this.flagBuilder.addRule(this),this.flagBuilder)}build(e){return{id:`rule${e}`,variation:this.variation,clauses:this.clauses}}clone(){return new Fs(this.flagBuilder,this.clauses,this.variation)}}Ts.default=Fs,Object.defineProperty(xs,"__esModule",{value:!0});const Rs=o,Vs=js,As=Ts;class Ls{constructor(e,t){this.key=e,this.data={on:!0,variations:[]},t&&(this.data={on:t.on,variations:[...t.variations]},void 0!==t.offVariation&&(this.data.offVariation=t.offVariation),void 0!==t.fallthroughVariation&&(this.data.fallthroughVariation=t.fallthroughVariation),t.targetsByVariation&&(this.data.targetsByVariation=JSON.parse(JSON.stringify(t.targetsByVariation))),t.rules&&(this.data.rules=[],t.rules.forEach((e=>{var t;null===(t=this.data.rules)||void 0===t||t.push(e.clone())}))))}get isBooleanFlag(){return 2===this.data.variations.length&&!0===this.data.variations[Vs.TRUE_VARIATION_INDEX]&&!1===this.data.variations[Vs.FALSE_VARIATION_INDEX]}booleanFlag(){return this.isBooleanFlag?this:this.variations(!0,!1).fallthroughVariation(Vs.TRUE_VARIATION_INDEX).offVariation(Vs.FALSE_VARIATION_INDEX)}variations(...e){return this.data.variations=[...e],this}on(e){return this.data.on=e,this}fallthroughVariation(e){return Rs.TypeValidators.Boolean.is(e)?this.booleanFlag().fallthroughVariation((0,Vs.variationForBoolean)(e)):(this.data.fallthroughVariation=e,this)}offVariation(e){return Rs.TypeValidators.Boolean.is(e)?this.booleanFlag().offVariation((0,Vs.variationForBoolean)(e)):(this.data.offVariation=e,this)}variationForAll(e){return this.on(!0).clearRules().clearAllTargets().fallthroughVariation(e)}valueForAll(e){return this.variations(e).variationForAll(0)}variationForUser(e,t){return this.variationForContext("user",e,t)}variationForContext(e,t,i){return Rs.TypeValidators.Boolean.is(i)?this.booleanFlag().variationForContext(e,t,(0,Vs.variationForBoolean)(i)):(this.data.targetsByVariation||(this.data.targetsByVariation={}),this.data.variations.forEach(((r,n)=>{if(n===i){const i=this.data.targetsByVariation[n]||{};e in i||(i[e]=[]);-1!==i[e].indexOf(t)||i[e].push(t),this.data.targetsByVariation[n]=i}else{const i=this.data.targetsByVariation[n];if(i){const r=i[e];if(r){const n=r.indexOf(t);-1!==n&&(r.splice(n,1),r.length||delete i[e])}Object.keys(i).length||delete this.data.targetsByVariation[n]}}})),this)}clearRules(){return delete this.data.rules,this}clearAllTargets(){return delete this.data.targetsByVariation,this}ifMatch(e,t,...i){return new As.default(this).andMatch(e,t,...i)}ifNotMatch(e,t,...i){return new As.default(this).andNotMatch(e,t,...i)}checkRatio(e){var t;return this.data.migration=null!==(t=this.data.migration)&&void 0!==t?t:{},this.data.migration.checkRatio=e,this}samplingRatio(e){return this.data.samplingRatio=e,this}addRule(e){this.data.rules||(this.data.rules=[]),this.data.rules.push(e)}build(e){const t={key:this.key,version:e,on:this.data.on,offVariation:this.data.offVariation,fallthrough:{variation:this.data.fallthroughVariation},variations:[...this.data.variations],migration:this.data.migration,samplingRatio:this.data.samplingRatio};if(this.data.targetsByVariation){const e=[],i=[];Object.entries(this.data.targetsByVariation).forEach((([t,r])=>{Object.entries(r).forEach((([r,n])=>{const a=parseInt(t,10);e.push({contextKind:r,values:"user"===r?[]:n,variation:a}),"user"===r&&i.push({values:n,variation:a})}))})),t.targets=i,t.contextTargets=e}return this.data.rules&&(t.rules=this.data.rules.map(((e,t)=>e.build(String(t))))),t}clone(){return new Ls(this.key,this.data)}getKey(){return this.key}}xs.default=Ls;var Ns={};Object.defineProperty(Ns,"__esModule",{value:!0});Ns.default=class{constructor(e,t,i,r,n){this.featureStore=e,this.onStop=r,this.listeners=n,this.flags=Object.assign({},t),this.segments=Object.assign({},i)}async start(){this.listeners.forEach((({processJson:e})=>{e({data:{flags:this.flags,segments:this.segments}})}))}stop(){this.onStop(this)}close(){this.stop()}async upsert(e,t){return this.featureStore.upsert(e,t)}},Object.defineProperty(Ds,"__esModule",{value:!0});const Ks=Or,$s=Br,Us=wr,Bs=Sr,zs=xs,Hs=Ns;Ds.default=class{constructor(){this.currentFlags={},this.currentSegments={},this.dataSources=[],this.flagBuilders={}}getFactory(){return(e,t,i,r)=>{const n=(0,Ks.createStreamListeners)(t,e.basicConfiguration.logger,{put:i}),a=new Hs.default(new $s.default(t),this.currentFlags,this.currentSegments,(e=>{this.dataSources.splice(this.dataSources.indexOf(e))}),n);return this.dataSources.push(a),a}}flag(e){return this.flagBuilders[e]?this.flagBuilders[e].clone():new zs.default(e).booleanFlag()}update(e){const t=e.getKey(),i=this.currentFlags[t],r=i?i.version:0,n=e.build(r+1);return this.currentFlags[t]=n,this.flagBuilders[t]=e.clone(),Promise.all(this.dataSources.map((e=>e.upsert(Bs.default.Features,n))))}usePreconfiguredFlag(e){const t=JSON.parse(JSON.stringify(e)),i=this.currentFlags[t.key],r=Object.assign(Object.assign({},t),{version:i?i.version+1:t.version});return(0,Us.processFlag)(r),this.currentFlags[t.key]=r,Promise.all(this.dataSources.map((e=>e.upsert(Bs.default.Features,r))))}usePreconfiguredSegment(e){const t=JSON.parse(JSON.stringify(e)),i=this.currentSegments[t.key],r=Object.assign(Object.assign({},t),{version:i?i.version+1:t.version});return(0,Us.processSegment)(r),this.currentSegments[t.key]=r,Promise.all(this.dataSources.map((e=>e.upsert(Bs.default.Segments,r))))}},Object.defineProperty(Ms,"__esModule",{value:!0}),Ms.TestDataRuleBuilder=Ms.TestDataFlagBuilder=Ms.TestData=void 0;const qs=Ds;Ms.TestData=qs.default;const Ws=xs;Ms.TestDataFlagBuilder=Ws.default;const Js=Ts;Ms.TestDataRuleBuilder=Js.default,function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.FileDataSourceFactory=void 0;const n=Os;e.FileDataSourceFactory=n.default,i(Ms,e),i(Qi,e)}(bs);var Gs={},Xs={};Object.defineProperty(Xs,"__esModule",{value:!0});Xs.default=class{constructor(e,t){this.handlers={},this.closed=!1,this.url=e,this.options=t}addEventListener(e,t){this.handlers[e]=t}close(){this.closed=!0}simulateError(e){this.options.errorFilter(e)||(this.closed=!0)}},Object.defineProperty(Gs,"__esModule",{value:!0}),Gs.NullEventSource=void 0;const Ys=Xs;Gs.NullEventSource=Ys.default,function(e){var t=r&&r.__createBinding||(Object.create?function(e,t,i,r){void 0===r&&(r=i);var n=Object.getOwnPropertyDescriptor(t,i);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[i]}}),Object.defineProperty(e,r,n)}:function(e,t,i,r){void 0===r&&(r=i),e[r]=t[i]}),i=r&&r.__exportStar||function(e,i){for(var r in e)"default"===r||Object.prototype.hasOwnProperty.call(i,r)||t(i,e,r)};Object.defineProperty(e,"__esModule",{value:!0}),e.createMigration=e.LDMigrationSuccess=e.LDMigrationError=e.BigSegmentStoreStatusProviderImpl=e.LDClientImpl=e.platform=e.integrations=void 0;const n=a;e.BigSegmentStoreStatusProviderImpl=n.default;const l=s;e.LDClientImpl=l.default;const u=gs;Object.defineProperty(e,"createMigration",{enumerable:!0,get:function(){return u.createMigration}}),Object.defineProperty(e,"LDMigrationError",{enumerable:!0,get:function(){return u.LDMigrationError}}),Object.defineProperty(e,"LDMigrationSuccess",{enumerable:!0,get:function(){return u.LDMigrationSuccess}}),e.integrations=bs,e.platform=o,i(Pi,e),i(Ur,e),i(Gs,e),i(o,e)}(n);class Qs{constructor(e){let t;switch(e){case"sha1":t=i.algo.SHA1;break;case"sha256":t=i.algo.SHA256;break;default:throw new Error("unsupported hash algorithm. Only sha1 and sha256 are supported.")}this.cryptoJSHasher=t.create()}digest(e){const t=this.cryptoJSHasher.finalize();let r;switch(e){case"base64":r=i.enc.Base64;break;case"hex":r=i.enc.Hex;break;default:throw new Error("unsupported output encoding. Only base64 and hex are supported.")}return t.toString(r)}update(e){return this.cryptoJSHasher.update(e),this}}class Zs{constructor(e,t){let r;switch(e){case"sha1":r=i.algo.SHA1;break;case"sha256":r=i.algo.SHA256;break;default:throw new Error("unsupported hash algorithm. Only sha1 and sha256 are supported.")}this.CryptoJSHmac=i.algo.HMAC.create(r,t)}digest(e){const t=this.CryptoJSHmac.finalize();if("base64"===e)return t.toString(i.enc.Base64);if("hex"===e)return t.toString(i.enc.Hex);throw new Error("unsupported output encoding. Only base64 and hex are supported.")}update(e){return this.CryptoJSHmac.update(e),this}}class eo{createHash(e){return new Qs(e)}createHmac(e,t){return new Zs(e,t)}randomUUID(){return crypto.randomUUID()}}class to{fetch(e,t={}){return fetch(e,t)}createEventSource(e,t){return new n.NullEventSource(e,t)}}class io{constructor(e){this.crypto=new eo,this.requests=new to,this.info=e}}const ro={stream:!1,sendEvents:!1,useLdd:!0,diagnosticOptOut:!0,logger:n.BasicLogger.get()};class no extends n.LDClientImpl{constructor(t,i,r){const a=new e,s=new io(i),o={analyticsEventPath:`/events/bulk/${t}`,diagnosticEventPath:`/events/diagnostic/${t}`,includeAuthorizationHeader:!1},l=(e=>{var t;const i=Object.assign(Object.assign({},ro),e);return null===(t=i.logger)||void 0===t||t.debug(`Using LD options: ${JSON.stringify(i)}`),i})(r);var u,c;super(t,s,l,(u=a,c=l.logger,{onError:e=>{u.listenerCount("error")?u.emit("error",e):null==c||c.error(e.message)},onFailed:e=>{u.emit("failed",e)},onReady:()=>{u.emit("ready")},onUpdate:n.noop,hasEventListeners:()=>!1}),o),this.emitter=a}}class ao{constructor(e,t,i,r){this.edgeProvider=e,this.sdkKey=t,this.description=i,this.logger=r,this.close=n.noop,this.delete=n.noop,this.upsert=n.noop,this.rootKey=`LD-Env-${t}`}async get(e,t,i){const{namespace:r}=e,a="features"===r?"flags":r;this.logger.debug(`Requesting ${t} from ${this.rootKey}.${a}`);try{const e=await this.edgeProvider.get(this.rootKey);if(!e)throw new Error(`${this.rootKey}.${a} is not found in KV.`);const s=n.deserializePoll(e);if(!s)throw new Error(`Error deserializing ${a}`);switch(r){case"features":i(s.flags[t]);break;case"segments":i(s.segments[t]);break;default:i(null)}}catch(e){this.logger.error(e),i(null)}}async all(e,t=n.noop){const{namespace:i}=e,r="features"===i?"flags":i;this.logger.debug(`Requesting all from ${this.rootKey}.${r}`);try{const e=await this.edgeProvider.get(this.rootKey);if(!e)throw new Error(`${this.rootKey}.${r} is not found in KV.`);const a=n.deserializePoll(e);if(!a)throw new Error(`Error deserializing ${r}`);switch(i){case"features":t(a.flags);break;case"segments":t(a.segments);break;default:t({})}}catch(e){this.logger.error(e),t({})}}async initialized(e=n.noop){const t=null!==await this.edgeProvider.get(this.rootKey);this.logger.debug(`Is ${this.rootKey} initialized? ${t}`),e(t)}init(e,t){t()}getDescription(){return this.description}}const so=(e,t)=>{const{featureStore:i,logger:r,sendEvents:n}=t,a=function(e,t){var i={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(i[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var n=0;for(r=Object.getOwnPropertySymbols(e);n<r.length;n++)t.indexOf(r[n])<0&&Object.prototype.propertyIsEnumerable.call(e,r[n])&&(i[r[n]]=e[r[n]])}return i}(t,["featureStore","logger","sendEvents"]);if(!e)throw new Error("You must configure the client with a client key");if(!i||"object"!=typeof i||!i.get)throw new Error("You must configure the client with a feature store");if(!r)throw new Error("You must configure the client with a logger");if("{}"!==JSON.stringify(a))throw new Error(`Invalid configuration: ${Object.keys(a).toString()} not supported`);return!0};class oo{platformData(){return{name:"Cloudflare"}}sdkData(){return{name:"@launchdarkly/cloudflare-server-sdk",version:"2.5.10",userAgentBase:"CloudflareEdgeSDK"}}}var lo=Object.defineProperty,uo=Object.getOwnPropertySymbols,co=Object.prototype.hasOwnProperty,ho=Object.prototype.propertyIsEnumerable,fo=(e,t,i)=>t in e?lo(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;const vo=(e,t,i={})=>{var r;const a=null!=(r=i.logger)?r:n.BasicLogger.get();return((e,t,i)=>(so(e,i),new no(e,t,i)))(e,new oo,((e,t)=>{for(var i in t||(t={}))co.call(t,i)&&fo(e,i,t[i]);if(uo)for(var i of uo(t))ho.call(t,i)&&fo(e,i,t[i]);return e})({featureStore:new ao(t,e,"Cloudflare",a),logger:a},i))};export{ao as EdgeFeatureStore,vo as init};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|