@launchdarkly/cloudflare-server-sdk 2.2.0-alpha → 2.3.0-alpha

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 CHANGED
@@ -2,6 +2,25 @@
2
2
 
3
3
  All notable changes to the LaunchDarkly SDK for Cloudflare Workers will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org).
4
4
 
5
+ ## [2.2.0](https://github.com/launchdarkly/js-core/compare/cloudflare-server-sdk-v2.1.4...cloudflare-server-sdk-v2.2.0) (2023-09-21)
6
+
7
+
8
+ ### Features
9
+
10
+ * rollup cloudflare sdk ([#279](https://github.com/launchdarkly/js-core/issues/279)) ([7af4f6e](https://github.com/launchdarkly/js-core/commit/7af4f6e2d029b87396087d96904cdfa7d39a8cb3))
11
+
12
+ ## [2.1.4](https://github.com/launchdarkly/js-core/compare/cloudflare-server-sdk-v2.1.3...cloudflare-server-sdk-v2.1.4) (2023-09-06)
13
+
14
+ ### Bug Fixes
15
+
16
+ * Use clientSideAvailability instead of clientSide for filtering client side flags. ([#270](https://github.com/launchdarkly/js-core/issues/270)) ([2702342](https://github.com/launchdarkly/js-core/commit/27023429d36986466cda46aa4d95eb01c10cd455))
17
+
18
+ ### Dependencies
19
+
20
+ * The following workspace dependencies were updated
21
+ * dependencies
22
+ * @launchdarkly/js-server-sdk-common-edge bumped from 1.0.12 to 1.0.13
23
+
5
24
  ### Dependencies
6
25
 
7
26
  * The following workspace dependencies were updated
@@ -14,6 +33,7 @@ All notable changes to the LaunchDarkly SDK for Cloudflare Workers will be docum
14
33
  * dependencies
15
34
  * @launchdarkly/js-server-sdk-common-edge bumped from 1.0.11 to 1.0.12
16
35
 
36
+
17
37
  ## [2.1.1](https://github.com/launchdarkly/js-core/compare/cloudflare-server-sdk-v2.1.0...cloudflare-server-sdk-v2.1.1) (2023-08-14)
18
38
 
19
39
  Updated common dependency includes performance improvements.
@@ -0,0 +1,2 @@
1
+ "use strict";var e=require("semver"),t=require("node:events"),i=require("crypto-js"),r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},n={},s={};Object.defineProperty(s,"__esModule",{value:!0});s.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 a={},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={};Object.defineProperty(h,"__esModule",{value:!0}),h.TypeValidators=h.DateValidator=h.Function=h.StringMatchingRegex=h.NumberWithMinimum=h.TypeArray=h.Type=h.FactoryOrInstance=void 0;class f{is(e){if(Array.isArray(e))return!1;const t=typeof e;return"function"===t||"object"===t}getType(){return"factory method or object"}}h.FactoryOrInstance=f;class v{constructor(e,t){this.typeName=e,this.typeOf=typeof t}is(e){return!Array.isArray(e)&&typeof e===this.typeOf}getType(){return this.typeName}}h.Type=v;class g{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}}h.TypeArray=g;class p extends v{constructor(e){super(`number with minimum value of ${e}`,0),this.min=e}is(e){return typeof e===this.typeOf&&e>=this.min}}h.NumberWithMinimum=p;class y extends v{constructor(e){super(`string matching ${e}`,""),this.expression=e}is(e){return!!e.match(this.expression)}}h.StringMatchingRegex=y;class m{is(e){return"function"==typeof e}getType(){return"function"}}h.Function=m;const b=/^\d\d\d\d-\d\d-\d\dT\d\d:\d\d:\d\d(\.\d\d*)?(Z|[-+]\d\d(:\d\d)?)/;class O{is(e){return"number"==typeof e||"string"==typeof e&&b.test(e)}getType(){return"date"}}h.DateValidator=O;class _{static numberWithMin(e){return new p(e)}static stringMatchingRegex(e){return new y(e)}}h.TypeValidators=_,_.String=new v("string",""),_.Number=new v("number",0),_.ObjectOrFactory=new f,_.Object=new v("object",{}),_.StringArray=new g("string[]",""),_.Boolean=new v("boolean",!0),_.Function=new m,_.Date=new O,Object.defineProperty(d,"__esModule",{value:!0});const S=l,w=h,E=w.TypeValidators.stringMatchingRegex(/^(\w|\.|-)+$/),P="user";function k(e){return e.includes("%")||e.includes(":")?e.replace(/%/g,"%25").replace(/:/g,"%3A"):e}function x(e){return E.is(e)&&"kind"!==e}function j(e){return w.TypeValidators.String.is(e)&&""!==e}function M(e,t=!1){return e?e.map((e=>new S.default(e,t))):[]}class D{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 D(!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(x);if(!t.length)return D.contextForError("multi","A multi-kind context must contain at least one kind");if(!i)return D.contextForError("multi","Context contains invalid kinds");const r={};let n=!0;const s=t.reduce(((t,i)=>{var s;const a=e[i];var o;return(o=a)&&w.TypeValidators.Object.is(o)?(t[i]=a,r[i]=M(null===(s=a._meta)||void 0===s?void 0:s.privateAttributes)):n=!1,t}),{});if(!n)return D.contextForError("multi","Context contained contexts that were not objects");if(!Object.values(s).every((e=>j(e.key))))return D.contextForError("multi","Context contained invalid keys");if(1===t.length){const e=t[0],i=new D(!0,e);return i.context=s[e],i.privateAttributeReferences=r,i.isUser="user"===e,i}const a=new D(!0,e.kind);return a.contexts=s,a.privateAttributeReferences=r,a.isMulti=!0,a}static fromSingleKindContext(e){var t;const{key:i,kind:r}=e,n=x(r),s=j(i);if(!n)return D.contextForError(null!=r?r:"unknown","The kind was not valid for the context");if(!s)return D.contextForError(r,"The key for the context was not valid");const a=M(null===(t=e._meta)||void 0===t?void 0:t.privateAttributes),o=new D(!0,r);return o.isUser="user"===r,o.context=e,o.privateAttributeReferences={[r]:a},o}static fromLegacyUser(e){if(!(void 0!==e.key&&null!==e.key))return D.contextForError("user","The key for the context was not valid");const t=new D(!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:M(e.privateAttributeNames,!0)},t}static fromLDContext(e){return e?function(e){return"kind"in e&&w.TypeValidators.String.is(e.kind)&&"multi"!==e.kind}(e)?D.fromSingleKindContext(e):function(e){return"kind"in e&&w.TypeValidators.String.is(e.kind)&&"multi"===e.kind}(e)?D.fromMultiKindContext(e):function(e){return!("kind"in e)||null===e.kind||void 0===e.kind}(e)?D.fromLegacyUser(e):D.contextForError("unknown","Context was not of a valid kind"):D.contextForError("unknown","No context specified. Returning default value")}valueForKind(e,t=P){return e.isKind?this.kinds:D.getValueFromContext(e,this.contextForKind(t))}key(e=P){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}:${k(this.contexts[e].key)}`)).join(":"):`${this.kind}:${k(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}}D.userKind=P,d.default=D;var I={};Object.defineProperty(I,"__esModule",{value:!0});const F=l,T=["key","kind","_meta","anonymous"].map((e=>new F.default(e,!0))),A=["name","ip","firstName","lastName","email","avatar","country"];I.default=class{constructor(e,t){this.allAttributesPrivate=e,this.privateAttributes=t}filter(e){const t=e.getContexts();if(1===t.length)return this.filterSingleKind(e,t[0][1],t[0][0]);const i={kind:"multi"};return t.forEach((([t,r])=>{i[t]=this.filterSingleKind(e,r,t)})),i}getAttributesToFilter(e,t,i){return(this.allAttributesPrivate?Object.keys(t).map((e=>new F.default(e,!0))):[...this.privateAttributes,...e.privateAttributes(i)]).filter((e=>!T.some((t=>t.compare(e)))))}filterSingleKind(e,t,i){const{cloned:r,excluded:n}=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));return e.legacy&&A.forEach((e=>{e in r&&(r[e]=String(r[e]))})),n.length&&(r._meta||(r._meta={}),r._meta.redactedAttributes=n),r._meta&&(delete r._meta.privateAttributes,0===Object.keys(r._meta).length&&delete r._meta),r}};var C={},R={},V={};Object.defineProperty(V,"__esModule",{value:!0});var N={};Object.defineProperty(N,"__esModule",{value:!0});var L={};Object.defineProperty(L,"__esModule",{value:!0});var U={};Object.defineProperty(U,"__esModule",{value:!0});var B={};Object.defineProperty(B,"__esModule",{value:!0});var K={};Object.defineProperty(K,"__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(V,e),i(N,e),i(L,e),i(U,e),i(B,e),i(K,e)}(R);var $={},z={};Object.defineProperty(z,"__esModule",{value:!0});var q={};Object.defineProperty(q,"__esModule",{value:!0});var H={};Object.defineProperty(H,"__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(z,e),i(q,e),i(H,e)}($);var W={},J={};Object.defineProperty(J,"__esModule",{value:!0});var G={};Object.defineProperty(G,"__esModule",{value:!0});var X={};Object.defineProperty(X,"__esModule",{value:!0});var Y={};Object.defineProperty(Y,"__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(J,e),i(G,e),i(X,e),i(Y,e)}(W);var Q={};Object.defineProperty(Q,"__esModule",{value:!0});var Z={},ee={};Object.defineProperty(ee,"__esModule",{value:!0});var 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});var se={};Object.defineProperty(se,"__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(ee,e),i(te,e),i(ie,e),i(re,e),i(ne,e),i(se,e)}(Z);var ae,oe,le,ue,ce={},de={};Object.defineProperty(de,"__esModule",{value:!0}),de.LDDeliveryStatus=de.LDEventType=void 0,(oe=ae||(de.LDEventType=ae={}))[oe.AnalyticsEvents=0]="AnalyticsEvents",oe[oe.DiagnosticEvent=1]="DiagnosticEvent",(ue=le||(de.LDDeliveryStatus=le={}))[ue.Succeeded=0]="Succeeded",ue[ue.Failed=1]="Failed",ue[ue.FailedAndMustShutDown=2]="FailedAndMustShutDown",function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.LDEventType=e.LDDeliveryStatus=void 0;const t=de;Object.defineProperty(e,"LDDeliveryStatus",{enumerable:!0,get:function(){return t.LDDeliveryStatus}}),Object.defineProperty(e,"LDEventType",{enumerable:!0,get:function(){return t.LDEventType}})}(ce),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(R,e),i($,e),i(W,e),i(Q,e),i(Z,e),e.subsystem=ce}(C);var he={},fe={},ve={};Object.defineProperty(ve,"__esModule",{value:!0});const ge=h;function pe(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 ye={s:e=>pe(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=>pe(e),o:e=>pe(e),O:e=>pe(e),c:()=>""};ve.default=function(...e){var t;const i=e.shift();if(ge.TypeValidators.String.is(i)){let r="",n=0;for(;n<i.length;){const s=i.charAt(n);if("%"===s){if(n+1<i.length){const s=i.charAt(n+1);if(s in ye&&e.length){const i=e.shift();r+=null===(t=ye[s])||void 0===t?void 0:t.call(ye,i)}else r+="%"===s?"%":`%${s}`;n+=2}}else r+=s,n+=1}return e.length&&(r.length&&(r+=" "),r+=e.map(pe).join(" ")),r}return e.map(pe).join(" ")},Object.defineProperty(fe,"__esModule",{value:!0});const me=ve,be={debug:0,info:1,warn:2,error:3,none:4},Oe=["debug","info","warn","error","none"];class _e{static get(){return new _e({})}constructor(e){var t,i,r;this.logLevel=null!==(i=be[null!==(t=e.level)&&void 0!==t?t:"info"])&&void 0!==i?i:be.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,me.default)(...e)}catch(t){return(0,me.default)(...e)}}tryWrite(e){try{this.destination(e)}catch(t){console.error(e)}}log(e,t){if(e>=this.logLevel){const i=`${Oe[e]}: [${this.name}]`;try{this.destination?this.tryWrite(`${i} ${this.tryFormat(...t)}`):console.error(...t)}catch(e){console.error(...t)}}}error(...e){this.log(be.error,e)}warn(...e){this.log(be.warn,e)}info(...e){this.log(be.info,e)}debug(...e){this.log(be.debug,e)}}fe.default=_e;var Se={};Object.defineProperty(Se,"__esModule",{value:!0});const we=h,Ee={error:we.TypeValidators.Function,warn:we.TypeValidators.Function,info:we.TypeValidators.Function,debug:we.TypeValidators.Function};Se.default=class{constructor(e,t){Object.entries(Ee).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(he,"__esModule",{value:!0}),he.SafeLogger=he.BasicLogger=void 0;const Pe=fe;he.BasicLogger=Pe.default;const ke=Se;he.SafeLogger=ke.default;var xe={},je={},Me={};Object.defineProperty(Me,"__esModule",{value:!0});Me.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(je,"__esModule",{value:!0});const De=Me,Ie=h.TypeValidators.stringMatchingRegex(/^(\w|\.|-)+$/),Fe=(e,t)=>Ie.is(e)?e.length>64?{valid:!1,message:De.default.tagValueTooLong(t)}:{valid:!0}:{valid:!1,message:De.default.invalidTagValue(t)};je.default=class{constructor(e){var t,i;const r={},n=null==e?void 0:e.application;if(null!==(null==n?void 0:n.id)&&void 0!==(null==n?void 0:n.id)){const{valid:i,message:s}=Fe(n.id,"application.id");i?r["application-id"]=[n.id]:null===(t=e.logger)||void 0===t||t.warn(s)}if(null!==(null==n?void 0:n.version)&&void 0!==(null==n?void 0:n.version)){const{valid:t,message:s}=Fe(n.version,"application.version");t?r["application-version"]=[n.version]:null===(i=e.logger)||void 0===i||i.warn(s)}const s=Object.keys(r);s.length&&(this.value=s.sort().flatMap((e=>r[e].sort().map((t=>`${e}/${t}`)))).join(" "))}};var Te={};Object.defineProperty(Te,"__esModule",{value:!0});Te.default=class{constructor(e,t,i){this.platform=i,this.basicConfiguration={logger:t.logger,offline:t.offline,sdkKey:e,serviceEndpoints:t.serviceEndpoints}}};var Ae={};function Ce(e){return e.replace(/\/+$/,"")}Object.defineProperty(Ae,"__esModule",{value:!0});Ae.default=class{constructor(e,t,i,r="/bulk",n="/diagnostic",s=!0){this.streaming=Ce(e),this.polling=Ce(t),this.events=Ce(i),this.analyticsEventPath=r,this.diagnosticEventPath=n,this.includeAuthorizationHeader=s}},Object.defineProperty(xe,"__esModule",{value:!0}),xe.ClientContext=xe.ServiceEndpoints=xe.OptionMessages=xe.ApplicationTags=void 0;const Re=je;xe.ApplicationTags=Re.default;const Ve=Te;xe.ClientContext=Ve.default;const Ne=Me;xe.OptionMessages=Ne.default;const Le=Ae;xe.ServiceEndpoints=Le.default;var Ue={},Be={};Object.defineProperty(Be,"__esModule",{value:!0}),Be.default=()=>{},Object.defineProperty(Ue,"__esModule",{value:!0}),Ue.noop=void 0;const Ke=Be;Ue.noop=Ke.default;var $e={},ze={},qe={},He={},We={};Object.defineProperty(We,"__esModule",{value:!0}),We.isIdentify=We.isCustom=We.isFeature=void 0,We.isFeature=function(e){return"feature"===e.kind},We.isCustom=function(e){return"custom"===e.kind},We.isIdentify=function(e){return"identify"===e.kind};var Je={};Object.defineProperty(Je,"__esModule",{value:!0});Je.default=class{constructor(e,t,i,r,n,s){this.count=e,this.key=t,this.value=i,this.version=n,this.variation=s,this.default=r}increment(){this.count+=1}},Object.defineProperty(He,"__esModule",{value:!0});const Ge=We,Xe=Je;He.default=class{constructor(){this.startDate=0,this.endDate=0,this.counters={},this.contextKinds={}}summarizeEvent(e){if((0,Ge.isFeature)(e)){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 Xe.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 Ye={};Object.defineProperty(Ye,"__esModule",{value:!0});class Qe extends Error{constructor(e){super(e),this.name="LaunchDarklyInvalidSDKKeyError"}}Ye.default=Qe,Object.defineProperty(qe,"__esModule",{value:!0});const Ze=de,et=l,tt=I,it=He,rt=We,nt=Ye;qe.default=class{constructor(e,t,i,r,n){if(this.eventSender=i,this.contextDeduplicator=r,this.diagnosticsManager=n,this.summarizer=new it.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.contextFilter=new tt.default(e.allAttributesPrivate,e.privateAttributes.map((e=>new et.default(e)))),void 0!==this.contextDeduplicator.flushInterval&&(this.flushUsersTimer=setInterval((()=>{this.contextDeduplicator.flush()}),1e3*this.contextDeduplicator.flushInterval)),this.flushTimer=setInterval((async()=>{try{await this.flush()}catch(e){}}),1e3*e.flushInterval),this.diagnosticsManager){const t=n.createInitEvent();this.postDiagnosticEvent(t),this.diagnosticsTimer=setInterval((()=>{const e=this.diagnosticsManager.createStatsEventAndReset(this.droppedEvents,this.deduplicatedUsers,this.eventsInLastBatch);this.droppedEvents=0,this.deduplicatedUsers=0,this.postDiagnosticEvent(e)}),1e3*e.diagnosticRecordingInterval)}}postDiagnosticEvent(e){this.eventSender.sendEventData(Ze.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 nt.default("Events cannot be posted because SDK key is invalid");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){if(this.shutdown)return;this.summarizer.summarizeEvent(e);const t=(0,rt.isFeature)(e),i=t&&e.trackEvents||!t,r=this.shouldDebugEvent(e),n=(0,rt.isIdentify)(e),s=this.contextDeduplicator.processContext(e.context);s||n||(this.deduplicatedUsers+=1);s&&!n&&this.enqueue({kind:"index",creationDate:e.creationDate,context:this.contextFilter.filter(e.context)}),i&&this.enqueue(this.makeOutputEvent(e,!1)),r&&this.enqueue(this.makeOutputEvent(e,!0))}makeOutputEvent(e,t){switch(e.kind){case"feature":{const i={kind:t?"debug":"feature",creationDate:e.creationDate,key:e.key,value:e.value,default:e.default,prereqOf:e.prereqOf};return void 0!==e.variation&&(i.variation=e.variation),void 0!==e.version&&(i.version=e.version),e.reason&&(i.reason=e.reason),t?i.context=this.contextFilter.filter(e.context):i.contextKeys=e.context.kindsAndKeys,i}case"identify":return{kind:"identify",creationDate:e.creationDate,context:this.contextFilter.filter(e.context)};case"custom":{const t={kind:"custom",creationDate:e.creationDate,key:e.key,contextKeys:e.context.kindsAndKeys};return 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,rt.isFeature)(e)&&e.debugEventsUntilDate&&e.debugEventsUntilDate>this.lastKnownPastTime&&e.debugEventsUntilDate>Date.now()}async tryPostingEvents(e){const t=await this.eventSender.sendEventData(Ze.LDEventType.AnalyticsEvents,e);if(t.status===Ze.LDDeliveryStatus.FailedAndMustShutDown&&(this.shutdown=!0),t.serverTime&&(this.lastKnownPastTime=t.serverTime),t.error)throw t.error}};var st={};Object.defineProperty(st,"__esModule",{value:!0});st.default=class{constructor(e,t,i,r){this.key=t,this.data=i,this.metricValue=r,this.kind="custom",this.creationDate=Date.now(),this.context=e}};var at={};Object.defineProperty(at,"__esModule",{value:!0});at.default=class{constructor(e,t,i,r,n,s,a,o,l,u,c){var d;this.key=i,this.kind="feature",this.creationDate=Date.now(),this.context=t,this.default=r,this.variation=null!==(d=n.variationIndex)&&void 0!==d?d:void 0,this.value=n.value,void 0!==s&&(this.version=s),void 0!==a&&(this.variation=a),void 0!==o&&(this.trackEvents=o),void 0!==l&&(this.prereqOf=l),void 0!==u&&(this.reason=u),void 0!==c&&(this.debugEventsUntilDate=c)}};var ot={};Object.defineProperty(ot,"__esModule",{value:!0});ot.default=class{constructor(e){this.kind="identify",this.creationDate=Date.now(),this.context=e}},Object.defineProperty(ze,"__esModule",{value:!0}),ze.InputIdentifyEvent=ze.InputEvalEvent=ze.InputCustomEvent=ze.EventProcessor=void 0;const lt=qe;ze.EventProcessor=lt.default;const ut=st;ze.InputCustomEvent=ut.default;const ct=at;ze.InputEvalEvent=ct.default;const dt=ot;ze.InputIdentifyEvent=dt.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(ze,e)}($e),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 s=d;e.Context=s.default;const a=I;e.ContextFilter=a.default,i(C,e),i(h,e),i(he,e),i(xe,e),i(Ue,e),e.internal=$e}(o);var ht={},ft={};Object.defineProperty(ft,"__esModule",{value:!0});ft.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)}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(ht,"__esModule",{value:!0});const vt=o,gt=s,pt=ft;ht.default=class{constructor(e,t,i,r){this.store=e,this.logger=i,this.crypto=r,this.statusProvider=new gt.default((async()=>this.pollStoreAndUpdateStatus())),this.staleTimeMs=1e3*(vt.TypeValidators.Number.is(t.staleAfter)&&t.staleAfter>0?t.staleAfter:120);const n=1e3*(vt.TypeValidators.Number.is(t.statusPollInterval)&&t.statusPollInterval>0?t.statusPollInterval:5);this.pollHandle=e?setInterval((()=>this.pollStoreAndUpdateStatus()),n):null,e&&(this.cache=new pt.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 s;if(n)s=n.membership;else try{s=await this.store.getUserMembership(this.hashForUserKey(e));const t={membership:s};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 a=this.statusProvider.getStatus();return a.available?[s||null,a.stale?"STALE":"HEALTHY"]:[s||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 yt={};Object.defineProperty(yt,"__esModule",{value:!0});class mt{}mt.missingContextKeyNoEvent="Context was unspecified or had no key; event will not be sent",yt.default=mt;var bt={},Ot={};Object.defineProperty(Ot,"__esModule",{value:!0});class _t{}_t.Features={namespace:"features",streamApiPath:"/flags/",requestPath:"/sdk/latest-flags/"},_t.Segments={namespace:"segments",streamApiPath:"/segments/",requestPath:"/sdk/latest-segments/"},Ot.default=_t;var St={},wt={};Object.defineProperty(wt,"__esModule",{value:!0});wt.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(St,"__esModule",{value:!0});const Et=wt;St.default=class{constructor(){this.dependenciesFrom=new Et.default,this.dependenciesTo=new Et.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 Et.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(bt,"__esModule",{value:!0});const Pt=Ot,kt=St,xt=wt;function jt(e,t){var i,r;const n=new xt.default,s=e===Pt.default.Features.namespace,a=e===Pt.default.Segments.namespace;if(s){const r=t;null===(i=null==r?void 0:r.prerequisites)||void 0===i||i.forEach((t=>{n.set(e,t.key,!0)}))}if(s||a){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(Pt.default.Segments.namespace,e,!0)}))}))}))}return n}bt.default=class{constructor(e,t,i){this.featureStore=e,this.hasEventListeners=t,this.onChange=i,this.dependencyTracker=new kt.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,jt(e,r))}))})),i){const t=new xt.default;Object.keys(e).forEach((i=>{const n=(null==r?void 0:r[i])||{},s=e[i],a=Object.assign(Object.assign({},n),s);Object.keys(a).forEach((e=>{this.addIfModified(i,e,n&&n[e],s&&s[e],t)}))})),this.sendChangeEvents(t)}})),null==t||t()}))};i?this.featureStore.all(Pt.default.Features,(e=>{this.featureStore.all(Pt.default.Segments,(t=>{const i={[Pt.default.Features.namespace]:e,[Pt.default.Segments.namespace]:t};r(i)}))})):r()}upsert(e,t,i){const{key:r}=t,n=this.hasEventListeners(),s=s=>{this.featureStore.upsert(e,t,(()=>{Promise.resolve().then((()=>{if(this.dependencyTracker.updateDependenciesFrom(e.namespace,r,jt(e.namespace,t)),n){const i=new xt.default;this.addIfModified(e.namespace,r,s,t,i),this.sendChangeEvents(i)}})),null==i||i()}))};n?this.featureStore.get(e,r,s):s()}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===Pt.default.Features.namespace&&this.onChange(t)}))}};var Mt={};Object.defineProperty(Mt,"__esModule",{value:!0});Mt.default=class{start(e){setTimeout((()=>null==e?void 0:e()),0)}stop(){}close(){}};var Dt={},It={};Object.defineProperty(It,"__esModule",{value:!0}),It.isHttpRecoverable=It.LDClientError=It.LDUnexpectedResponseError=It.LDStreamingError=It.LDPollingError=void 0;class Ft extends Error{constructor(e){super(e),this.name="LaunchDarklyPollingError"}}It.LDPollingError=Ft;class Tt extends Error{constructor(e,t){super(e),this.code=t,this.name="LaunchDarklyStreamingError"}}It.LDStreamingError=Tt;class At extends Error{constructor(e){super(e),this.name="LaunchDarklyUnexpectedResponseError"}}It.LDUnexpectedResponseError=At;class Ct extends Error{constructor(e){super(e),this.name="LaunchDarklyClientError"}}It.LDClientError=Ct,It.isHttpRecoverable=function(e){return!(e>=400&&e<500)||(400===e||408===e||429===e)};var Rt={};Object.defineProperty(Rt,"__esModule",{value:!0}),Rt.deserializeSegment=Rt.serializeSegment=Rt.deserializeFlag=Rt.serializeFlag=Rt.deserializeDelete=Rt.deserializePatch=Rt.deserializePoll=Rt.deserializeAll=Rt.processSegment=Rt.processFlag=Rt.replacer=Rt.reviver=void 0;const Vt=o,Nt=Ot,Lt=100;function Ut(e,t){if(null!==t)return t}function Bt(e,t){if(!(t instanceof Vt.AttributeReference||Array.isArray(t)&&t[0]&&t[0]instanceof Vt.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 Kt(e){e&&e.bucketBy&&(e.bucketByAttributeReference=new Vt.AttributeReference(e.bucketBy,!e.contextKind))}function $t(e){var t;if(e.fallthrough&&e.fallthrough.rollout){Kt(e.fallthrough.rollout)}null===(t=null==e?void 0:e.rules)||void 0===t||t.forEach((e=>{var t;Kt(e.rollout),null===(t=null==e?void 0:e.clauses)||void 0===t||t.forEach((e=>{e&&e.attribute?e.attributeReference=new Vt.AttributeReference(e.attribute,!e.contextKind):e&&(e.attributeReference=Vt.AttributeReference.invalidReference)}))}))}function zt(e){var t,i,r,n,s;(null===(t=null==e?void 0:e.included)||void 0===t?void 0:t.length)&&e.included.length>Lt&&(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>Lt&&(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>Lt&&(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>Lt&&(e.generated_valuesSet=new Set(e.values),e.values=[])})),null===(s=null==e?void 0:e.rules)||void 0===s||s.forEach((e=>{var t;e.bucketBy&&(e.bucketByAttributeReference=new Vt.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 Vt.AttributeReference(e.attribute,!e.contextKind):e&&(e.attributeReference=Vt.AttributeReference.invalidReference)}))}))}function qt(e){try{return JSON.parse(e,Ut)}catch(e){return}}Rt.reviver=Ut,Rt.replacer=Bt,Rt.processFlag=$t,Rt.processSegment=zt,Rt.deserializeAll=function(e){var t,i;const r=qt(e);if(r)return Object.values((null===(t=null==r?void 0:r.data)||void 0===t?void 0:t.flags)||[]).forEach((e=>{$t(e)})),Object.values((null===(i=null==r?void 0:r.data)||void 0===i?void 0:i.segments)||[]).forEach((e=>{zt(e)})),r},Rt.deserializePoll=function(e){const t=qt(e);if(t)return Object.values((null==t?void 0:t.flags)||[]).forEach((e=>{$t(e)})),Object.values((null==t?void 0:t.segments)||[]).forEach((e=>{zt(e)})),t},Rt.deserializePatch=function(e){const t=qt(e);if(t)return t.path.startsWith(Nt.default.Features.streamApiPath)?($t(t.data),t.kind=Nt.default.Features):t.path.startsWith(Nt.default.Segments.streamApiPath)&&(zt(t.data),t.kind=Nt.default.Segments),t},Rt.deserializeDelete=function(e){const t=qt(e);if(t)return t.path.startsWith(Nt.default.Features.streamApiPath)?t.kind=Nt.default.Features:t.path.startsWith(Nt.default.Segments.streamApiPath)&&(t.kind=Nt.default.Segments),t},Rt.serializeFlag=function(e){return JSON.stringify(e,Bt)},Rt.deserializeFlag=function(e){const t=qt(e);if(t)return $t(t),t},Rt.serializeSegment=function(e){return JSON.stringify(e,Bt)},Rt.deserializeSegment=function(e){const t=qt(e);if(t)return zt(t),t};var Ht={};Object.defineProperty(Ht,"__esModule",{value:!0}),Ht.default=function(e,t,i){let r;return r=e.status?`error ${e.status}${401===e.status?" (invalid SDK key)":""}`:`I/O error (${e.message||e})`,`Received ${r} for ${t} - ${null!=i?i:"giving up permanently"}`},Object.defineProperty(Dt,"__esModule",{value:!0});const Wt=It,Jt=Rt,Gt=Ot,Xt=Ht;Dt.default=class{constructor(e,t,i){this.requestor=t,this.featureStore=i,this.stopped=!1,this.logger=e.logger,this.pollInterval=e.pollInterval,this.featureStore=i}poll(e){var t;if(this.stopped)return;const i=t=>{var i,r;null===(i=this.logger)||void 0===i||i.error("Polling received invalid data"),null===(r=this.logger)||void 0===r||r.debug(`Invalid JSON follows: ${t}`),null==e||e(new Wt.LDPollingError("Malformed JSON data in polling response"))},r=Date.now();null===(t=this.logger)||void 0===t||t.debug("Polling LaunchDarkly for feature flag updates"),this.requestor.requestAllData(((t,n)=>{var s,a,o;const l=Date.now()-r,u=Math.max(1e3*this.pollInterval-l,0);if(null===(s=this.logger)||void 0===s||s.debug("Elapsed: %d ms, sleeping for %d ms",l,u),t){if(t.status&&!(0,Wt.isHttpRecoverable)(t.status)){const i=(0,Xt.default)(t,"polling request");return null===(a=this.logger)||void 0===a||a.error(i),void(null==e||e(new Wt.LDPollingError(i)))}null===(o=this.logger)||void 0===o||o.warn((0,Xt.default)(t,"polling request","will retry"))}else if(n){const t=(0,Jt.deserializePoll)(n);if(t){const i={[Gt.default.Features.namespace]:t.flags,[Gt.default.Segments.namespace]:t.segments};return void this.featureStore.init(i,(()=>{null==e||e(),this.timeoutHandle=setTimeout((()=>{this.poll(e)}),u)}))}i(n)}this.timeoutHandle=setTimeout((()=>{this.poll(e)}),u)}))}start(e){this.poll(e)}stop(){this.timeoutHandle&&(clearTimeout(this.timeoutHandle),this.timeoutHandle=void 0),this.stopped=!0}close(){this.stop()}};var Yt={},Qt={};Object.defineProperty(Qt,"__esModule",{value:!0}),Qt.default=function(e,t,i,r=!0){const n=i.sdkData(),s={"user-agent":`${n.userAgentBase?n.userAgentBase:"NodeJSClient"}/${n.version}`};r&&(s.authorization=e),n.wrapperName&&(s["x-launchdarkly-wrapper"]=n.wrapperVersion?`${n.wrapperName}/${n.wrapperVersion}`:n.wrapperName);const a=t.tags.value;return a&&(s["x-launchdarkly-tags"]=a),s},Object.defineProperty(Yt,"__esModule",{value:!0});const Zt=It,ei=Qt;Yt.default=class{constructor(e,t,i,r){this.requests=r,this.eTagCache={},this.headers=(0,ei.default)(e,t,i),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,s=await this.requests.fetch(e,n);if(304===s.status&&i)return{res:s,body:i.body};const a=s.headers.get("etag"),o=await s.text();return a&&(this.eTagCache[e]={etag:a,body:o}),{res:s,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 Zt.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 ti={};Object.defineProperty(ti,"__esModule",{value:!0});const ii=It,ri=Rt,ni=Ot,si=Qt,ai=Ht;function oi(e,t){return t.startsWith(e.streamApiPath)?t.substring(e.streamApiPath.length):void 0}ti.default=class{constructor(e,t,i,r,n,s){this.featureStore=n,this.diagnosticsManager=s,this.headers=(0,si.default)(e,t,r),this.logger=t.logger,this.streamInitialReconnectDelay=t.streamInitialReconnectDelay,this.requests=i,this.streamUri=`${t.serviceEndpoints.streaming}/all`}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}start(e){this.logConnectionStarted();const t=(t,i)=>{var r,n;null===(r=this.logger)||void 0===r||r.error(`Stream received invalid data in "${t}" message`),null===(n=this.logger)||void 0===n||n.debug(`Invalid JSON follows: ${i}`),null==e||e(new ii.LDStreamingError("Malformed JSON data in event stream"))},i=this.requests.createEventSource(this.streamUri,{headers:this.headers,errorFilter:t=>{var i,r;return t.status&&!(0,ii.isHttpRecoverable)(t.status)?(this.logConnectionResult(!1),null==e||e(new ii.LDStreamingError(t.message,t.status)),null===(i=this.logger)||void 0===i||i.error((0,ai.default)(t,"streaming request")),!1):(null===(r=this.logger)||void 0===r||r.warn((0,ai.default)(t,"streaming request","will retry")),this.logConnectionResult(!1),this.logConnectionStarted(),!0)},initialRetryDelayMillis:1e3*this.streamInitialReconnectDelay,readTimeoutMillis:3e5,retryResetIntervalMillis:6e4});this.eventSource=i,i.onclose=()=>{var e;null===(e=this.logger)||void 0===e||e.info("Closed LaunchDarkly stream connection")},i.onerror=()=>{},i.onopen=()=>{var e;null===(e=this.logger)||void 0===e||e.info("Opened LaunchDarkly stream connection")},i.onretrying=e=>{var t;null===(t=this.logger)||void 0===t||t.info(`Will retry stream connection in ${e.delayMillis} milliseconds`)},i.addEventListener("put",(i=>{var r;if(null===(r=this.logger)||void 0===r||r.debug("Received put event"),i&&i.data){this.logConnectionResult(!0);const r=(0,ri.deserializeAll)(i.data);if(!r)return void t("put",i.data);const n={[ni.default.Features.namespace]:r.data.flags,[ni.default.Segments.namespace]:r.data.segments};this.featureStore.init(n,(()=>null==e?void 0:e()))}else null==e||e(new ii.LDStreamingError("Unexpected payload from event stream"))})),i.addEventListener("patch",(i=>{var r,n;if(null===(r=this.logger)||void 0===r||r.debug("Received patch event"),i&&i.data){const e=(0,ri.deserializePatch)(i.data);if(!e)return void t("patch",i.data);if(e.kind){const t=oi(e.kind,e.path);t&&(null===(n=this.logger)||void 0===n||n.debug(`Updating ${t} in ${e.kind.namespace}`),this.featureStore.upsert(e.kind,e.data,(()=>{})))}}else null==e||e(new ii.LDStreamingError("Unexpected payload from event stream"))})),i.addEventListener("delete",(i=>{var r,n;if(null===(r=this.logger)||void 0===r||r.debug("Received delete event"),i&&i.data){const e=(0,ri.deserializeDelete)(i.data);if(!e)return void t("delete",i.data);if(e.kind){const t=oi(e.kind,e.path);t&&(null===(n=this.logger)||void 0===n||n.debug(`Deleting ${t} in ${e.kind.namespace}`),this.featureStore.upsert(e.kind,{key:t,version:e.version,deleted:!0},(()=>{})))}}else null==e||e(new ii.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()}};var li={};Object.defineProperty(li,"__esModule",{value:!0}),li.allAsync=li.firstSeriesAsync=li.allSeriesAsync=li.firstResult=void 0,li.firstResult=function(e,t){let i;return null==e||e.some(((e,r)=>(i=t(e,r),!!i))),i};const ui=50;function ci(e,t,i,r,n){e?r<(null==e?void 0:e.length)?t(e[r],r,(s=>{if(i){if(!s)return void n(!1)}else if(s)return void n(!0);e.length>ui?Promise.resolve().then((()=>{ci(e,t,i,r+1,n)})):ci(e,t,i,r+1,n)})):n(i):n(!1)}li.allSeriesAsync=function(e,t,i){ci(e,t,!0,0,i)},li.firstSeriesAsync=function(e,t,i){ci(e,t,!1,0,i)},li.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 di,hi,fi={};Object.defineProperty(fi,"__esModule",{value:!0}),(hi=di||(di={})).MalformedFlag="MALFORMED_FLAG",hi.UserNotSpecified="USER_NOT_SPECIFIED",hi.FlagNotFound="FLAG_NOT_FOUND",hi.ClientNotReady="CLIENT_NOT_READY",fi.default=di;var vi={},gi={};Object.defineProperty(gi,"__esModule",{value:!0});class pi{static prerequisiteFailed(e){return{kind:"PREREQUISITE_FAILED",prerequisiteKey:e}}static ruleMatch(e,t){return{kind:"RULE_MATCH",ruleId:e,ruleIndex:t}}}pi.Fallthrough={kind:"FALLTHROUGH"},pi.Off={kind:"OFF"},pi.TargetMatch={kind:"TARGET_MATCH"},gi.default=pi,Object.defineProperty(vi,"__esModule",{value:!0});const yi=gi;class mi{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===yi.default.Off.kind}setDefault(e){this.detail.value=e}static forError(e,t,i){return new mi(!0,{value:null!=i?i:null,variationIndex:null,reason:{kind:"ERROR",errorKind:e}},t)}static forSuccess(e,t,i){return new mi(!1,{value:e,variationIndex:void 0===i?null:i,reason:t})}}vi.default=mi;var bi={},Oi={};Object.defineProperty(Oi,"__esModule",{value:!0});Oi.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",s){const a=function(e){return"string"==typeof e?e:Number.isInteger(e)?String(e):null}(e.valueForKind(i,n));if(null===a){return[0,e.kinds.indexOf(n)>=0]}const o=`${s?Number(s):`${t}.${r}`}.${a}`;return[parseInt(this.sha1Hex(o).substring(0,15),16)/0x1000000000000000,!0]}};var _i={},Si={};Object.defineProperty(Si,"__esModule",{value:!0}),Si.getBucketBy=Si.getOffVariation=Si.getVariation=void 0;const wi=o,Ei=fi,Pi=vi,ki=new wi.AttributeReference("key");function xi(e,t,i){return wi.TypeValidators.Number.is(t)&&t>=0&&t<e.variations.length?Pi.default.forSuccess(e.variations[t],i,t):Pi.default.forError(Ei.default.MalformedFlag,"Invalid variation index in flag")}Si.getVariation=xi,Si.getOffVariation=function(e,t){return wi.TypeValidators.Number.is(e.offVariation)?xi(e,e.offVariation,t):Pi.default.forSuccess(null,t)},Si.getBucketBy=function(e,t){var i;return null!==(i=e?void 0:t)&&void 0!==i?i:ki},Object.defineProperty(_i,"__esModule",{value:!0});const ji=o,Mi=li,Di=gi,Ii=Si;function Fi(e,t,i){const r=i.key(t.contextKind);if(void 0!==r){if(t.values.indexOf(r)>=0)return(0,Ii.getVariation)(e,t.variation,Di.default.TargetMatch)}}_i.default=function(e,t){var i;return(null===(i=e.contextTargets)||void 0===i?void 0:i.length)?(0,Mi.firstResult)(e.contextTargets,(i=>{if(!i.contextKind||i.contextKind===ji.Context.userKind){const r=(e.targets||[]).find((e=>e.variation===i.variation));return r?Fi(e,r,t):void 0}return Fi(e,i,t)})):(0,Mi.firstResult)(e.targets,(i=>Fi(e,i,t)))};var Ti={};Object.defineProperty(Ti,"__esModule",{value:!0}),Ti.default=function(e){return`${e.key}.g${e.generation}`};var Ai={},Ci={};Object.defineProperty(Ci,"__esModule",{value:!0});const Ri=e,Vi=o,Ni=/^\d+(\.\d+)?(\.\d+)?/;function Li(e){if(Vi.TypeValidators.String.is(e)&&!e.startsWith("v")){const t=(0,Ri.parse)(e);if(t)return t;const i=Ni.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,Ri.parse)(t)}}return null}function Ui(e){return(t,i)=>{const r=Li(t),n=Li(i);return!!(r&&n&&e(r,n))}}function Bi(e,t,i){return(r,n)=>!(!t.is(r)||!t.is(n))&&(i?e(i(r),i(n)):e(r,n))}function Ki(e){return"number"==typeof e?e:Date.parse(e)}const $i={in:(e,t)=>e===t,endsWith:Bi(((e,t)=>e.endsWith(t)),Vi.TypeValidators.String),startsWith:Bi(((e,t)=>e.startsWith(t)),Vi.TypeValidators.String),matches:Bi(((e,t)=>function(e,t){try{return new RegExp(e).test(t)}catch(e){return!1}}(t,e)),Vi.TypeValidators.String),contains:Bi(((e,t)=>e.indexOf(t)>-1),Vi.TypeValidators.String),lessThan:Bi(((e,t)=>e<t),Vi.TypeValidators.Number),lessThanOrEqual:Bi(((e,t)=>e<=t),Vi.TypeValidators.Number),greaterThan:Bi(((e,t)=>e>t),Vi.TypeValidators.Number),greaterThanOrEqual:Bi(((e,t)=>e>=t),Vi.TypeValidators.Number),before:Bi(((e,t)=>e<t),Vi.TypeValidators.Date,Ki),after:Bi(((e,t)=>e>t),Vi.TypeValidators.Date,Ki),semVerEqual:Ui(((e,t)=>0===e.compare(t))),semVerLessThan:Ui(((e,t)=>e.compare(t)<0)),semVerGreaterThan:Ui(((e,t)=>e.compare(t)>0))};Ci.default=class{static is(e){return Object.prototype.hasOwnProperty.call($i,e)}static execute(e,t,i){var r,n;return null!==(n=null===(r=$i[e])||void 0===r?void 0:r.call($i,t,i))&&void 0!==n&&n}},Object.defineProperty(Ai,"__esModule",{value:!0}),Ai.maybeNegate=void 0;const zi=Ci;function qi(e,t){return e.negate?!t:t}function Hi(e,t,i){return i.some((i=>zi.default.execute(e,t,i)))}Ai.maybeNegate=qi,Ai.default=function(e,t){const i=t.valueForKind(e.attributeReference,e.contextKind);return null!=i&&(Array.isArray(i)?qi(e,i.some((t=>Hi(e.op,t,e.values)))):qi(e,Hi(e.op,i,e.values)))};var Wi={};function Ji(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(Wi,"__esModule",{value:!0}),Wi.default=function(e,t){if(Ji(t,e.includedContexts,e.included,e.generated_includedSet))return!0;const i=Ji(t,e.excludedContexts,e.excluded,e.generated_excludedSet);return i?!i:void 0},Object.defineProperty(bi,"__esModule",{value:!0});const Gi=Oi,Xi=li,Yi=fi,Qi=vi,Zi=_i,er=Ti,tr=Ai,ir=Wi,rr=gi,nr=Si,sr={HEALTHY:1,STALE:2,STORE_ERROR:3,NOT_CONFIGURED:4};function ar(e){return void 0!==e&&sr[e]||0}function or(e,t){return void 0!==e&&ar(e)>ar(t)?e:t}function lr(e){return{error:!1,isMatch:e,result:void 0}}function ur(e){return{error:!0,isMatch:!1,result:e}}bi.default=class{constructor(e,t){this.queries=t,this.bucketer=new Gi.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,s){e.on?this.checkPrerequisites(e,t,i,r,(r=>{if(r)return void n(r);const s=(0,Zi.default)(e,t);s?n(s):this.evaluateRules(e,t,i,(i=>{n(i||this.variationForContext(e.fallthrough,t,e,rr.default.Fallthrough))}))}),s):n((0,nr.getOffVariation)(e,rr.default.Off))}checkPrerequisites(e,t,i,r,n,s){let a;e.prerequisites&&e.prerequisites.length?(0,Xi.allSeriesAsync)(e.prerequisites,((n,o,l)=>{if(-1!==r.indexOf(n.key))return a=Qi.default.forError(Yi.default.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 a=(0,nr.getOffVariation)(e,rr.default.prerequisiteFailed(n.key)),void l(!1);this.evaluateInternal(r,t,i,u,(o=>{var u;return i.events=null!==(u=i.events)&&void 0!==u?u:[],s&&i.events.push(s.evalEvent(r,t,o.detail,null,e)),o.isError?(a=o,l(!1)):o.isOff||o.detail.variationIndex!==n.variation?(a=(0,nr.getOffVariation)(e,rr.default.prerequisiteFailed(n.key)),l(!1)):l(!0)}),s)}))}),(()=>{n(a)})):n(void 0)}evaluateRules(e,t,i,r){let n;(0,Xi.firstSeriesAsync)(e.rules,((r,s,a)=>{this.ruleMatchContext(e,r,s,t,i,[],(e=>{n=e,a(!!e)}))}),(()=>r(n)))}clauseMatchContext(e,t,i,r,n){let s;"segmentMatch"!==e.op?e.attributeReference.isValid?n(lr((0,tr.default)(e,t))):n(ur(Qi.default.forError(Yi.default.MalformedFlag,"Invalid attribute reference in clause"))):(0,Xi.firstSeriesAsync)(e.values,((e,n,a)=>{this.queries.getSegment(e,(e=>{if(e){if(i.includes(e.key))return s=Qi.default.forError(Yi.default.MalformedFlag,`Segment rule referencing segment ${e.key} caused a circular reference. This is probably a temporary condition due to an incomplete update`),void a(!0);const n=[...i,null==e?void 0:e.key];this.segmentMatchContext(e,t,r,n,(e=>{e.error&&(s=e.result),a(e.error||e.isMatch)}))}else a(!1)}))}),(t=>n(s?ur(s):lr((0,tr.maybeNegate)(e,t)))))}ruleMatchContext(e,t,i,r,n,s,a){if(!t.clauses)return void a(void 0);let o;(0,Xi.allSeriesAsync)(t.clauses,((e,t,i)=>{this.clauseMatchContext(e,r,s,n,(e=>(o=e.result,i(e.error||e.isMatch))))}),(n=>a(o||(n?this.variationForContext(t,r,e,rr.default.ruleMatch(t.id,i)):void 0))))}variationForContext(e,t,i,r){if(void 0===e)return Qi.default.forError(Yi.default.MalformedFlag,"Fallthrough variation undefined");if(void 0!==e.variation)return(0,nr.getVariation)(i,e.variation,r);if(e.rollout){const{rollout:n}=e,{variations:s}=n,a="experiment"===n.kind;if(s&&s.length){const e=(0,nr.getBucketBy)(a,n.bucketByAttributeReference);if(!e.isValid)return Qi.default.forError(Yi.default.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<s.length;e+=1){const t=s[e];if(c+=t.weight/1e5,o<c)return a&&l&&!t.untracked&&(u.inExperiment=!0),(0,nr.getVariation)(i,t.variation,u)}const d=s[s.length-1];return a&&!d.untracked&&(u.inExperiment=!0),(0,nr.getVariation)(i,d.variation,u)}}return Qi.default.forError(Yi.default.MalformedFlag,"Variation/rollout object with no variation or rollout")}segmentRuleMatchContext(e,t,i,r,n,s){let a;(0,Xi.allSeriesAsync)(t.clauses,((e,t,s)=>{this.clauseMatchContext(e,i,n,r,(e=>{a=e.result,s(e.error||e.isMatch)}))}),(r=>{if(a)return s(ur(a));if(r){if(void 0===t.weight)return s(lr(r));const n=(0,nr.getBucketBy)(!1,t.bucketByAttributeReference);if(!n.isValid)return s(ur(Qi.default.forError(Yi.default.MalformedFlag,"Invalid attribute reference in clause")));const[a]=this.bucketer.bucket(i,e.key,n,e.salt||"",t.rolloutContextKind);return s(lr(a<t.weight/1e5))}return s(lr(!1))}))}simpleSegmentMatchContext(e,t,i,r,n){if(!e.unbounded){const i=(0,ir.default)(e,t);if(void 0!==i)return void n(lr(i))}let s;(0,Xi.firstSeriesAsync)(e.rules,((n,a,o)=>{this.segmentRuleMatchContext(e,n,t,i,r,(e=>(s=e.result,o(e.error||e.isMatch))))}),(e=>n(s?ur(s):lr(e))))}segmentMatchContext(e,t,i,r,n){if(!e.unbounded)return void this.simpleSegmentMatchContext(e,t,i,r,n);const s=e.unboundedContextKind||"user",a=t.key(s);if(a)return e.generation?void(i.bigSegmentsMembership&&i.bigSegmentsMembership[a]?this.bigSegmentMatchContext(i.bigSegmentsMembership[a],e,t,i).then(n):this.queries.getBigSegmentsMembership(a).then((r=>{if(i.bigSegmentsMembership=i.bigSegmentsMembership||{},r){const[e,t]=r;i.bigSegmentsMembership[a]=e,i.bigSegmentsStatus=or(i.bigSegmentsStatus,t)}else i.bigSegmentsStatus=or(i.bigSegmentsStatus,"NOT_CONFIGURED");this.bigSegmentMatchContext(i.bigSegmentsMembership[a],e,t,i).then(n)}))):(i.bigSegmentsStatus=or(i.bigSegmentsStatus,"NOT_CONFIGURED"),void n(lr(!1)));n(lr(!1))}bigSegmentMatchContext(e,t,i,r){const n=(0,er.default)(t),s=null==e?void 0:e[n];return new Promise((e=>{null==s?this.simpleSegmentMatchContext(t,i,r,[],e):e(lr(s))}))}};var cr={};Object.defineProperty(cr,"__esModule",{value:!0});const dr=ft;cr.default=class{constructor(e){this.contextKeysCache=new dr.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 hr={},fr={},vr={};Object.defineProperty(vr,"__esModule",{value:!0});vr.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=vr,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};e.defaultValues={baseUri:"https://sdk.launchdarkly.com",streamUri:"https://stream.launchdarkly.com",eventsUri:"https://events.launchdarkly.com",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:s,validatedOptions:a}=function(i){const n=[],s=Object.assign({},e.defaultValues);return Object.keys(i).forEach((a=>{var o;const l=i[a],u=r[a];if(u)if(u.is(l))s[a]=l;else if("boolean"===u.getType())n.push(t.OptionMessages.wrongOptionTypeBoolean(a,typeof l)),s[a]=!!l;else if(u instanceof t.NumberWithMinimum&&t.TypeValidators.Number.is(l)){const{min:e}=u;n.push(t.OptionMessages.optionBelowMinimum(a,l,e)),s[a]=e}else n.push(t.OptionMessages.wrongOptionType(a,u.getType(),typeof l)),s[a]=e.defaultValues[a];else null===(o=i.logger)||void 0===o||o.warn(t.OptionMessages.unknownOption(a))})),{errors:n,validatedOptions:s}}(i);s.forEach((e=>{var t;null===(t=this.logger)||void 0===t||t.warn(e)})),function(e,i){var r,n,s;const{baseUri:a,streamUri:o,eventsUri:l}=e,u=null!=o,c=null!=a,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===(s=i.logger)||void 0===s||s.warn(t.OptionMessages.partialEndpoint("eventsUri"))))}(i,a),this.serviceEndpoints=new t.ServiceEndpoints(a.streamUri,a.baseUri,a.eventsUri,n.analyticsEventPath,n.diagnosticEventPath),this.eventsCapacity=a.capacity,this.timeout=a.timeout,this.bigSegments=a.bigSegments,this.flushInterval=a.flushInterval,this.pollInterval=a.pollInterval,this.proxyOptions=a.proxyOptions,this.offline=a.offline,this.stream=a.stream,this.streamInitialReconnectDelay=a.streamInitialReconnectDelay,this.useLdd=a.useLdd,this.sendEvents=a.sendEvents,this.allAttributesPrivate=a.allAttributesPrivate,this.privateAttributes=a.privateAttributes,this.contextKeysCapacity=a.contextKeysCapacity,this.contextKeysFlushInterval=a.contextKeysFlushInterval,this.tlsParams=a.tlsParams,this.diagnosticOptOut=a.diagnosticOptOut,this.wrapperName=a.wrapperName,this.wrapperVersion=a.wrapperVersion,this.tags=new t.ApplicationTags(a),this.diagnosticRecordingInterval=a.diagnosticRecordingInterval,t.TypeValidators.Function.is(a.updateProcessor)?this.updateProcessorFactory=a.updateProcessor:this.updateProcessorFactory=()=>a.updateProcessor,t.TypeValidators.Function.is(a.featureStore)?this.featureStoreFactory=a.featureStore:this.featureStoreFactory=()=>a.featureStore}}}(fr),Object.defineProperty(hr,"__esModule",{value:!0});const gr=fr;function pr(e){return Math.trunc(1e3*e)}hr.default=class{constructor(e,t,i,r){this.config=t,this.platform=i,this.featureStore=r,this.streamInits=[],this.startTime=Date.now(),this.dataSinceDate=this.startTime,this.id={diagnosticId:i.crypto.randomUUID(),sdkKeySuffix:e.length>6?e.substring(e.length-6):e}}createInitEvent(){var e,t,i,r,n,s,a,o,l,u;const c=this.platform.info.sdkData(),d=this.platform.info.platformData();return{kind:"diagnostic-init",id:this.id,creationDate:this.startTime,sdk:c,configuration:{customBaseURI:this.config.serviceEndpoints.polling!==gr.defaultValues.baseUri,customStreamURI:this.config.serviceEndpoints.streaming!==gr.defaultValues.streamUri,customEventsURI:this.config.serviceEndpoints.events!==gr.defaultValues.eventsUri,eventsCapacity:this.config.eventsCapacity,connectTimeoutMillis:pr(this.config.timeout),socketTimeoutMillis:pr(this.config.timeout),eventsFlushIntervalMillis:pr(this.config.flushInterval),pollingIntervalMillis:pr(this.config.pollInterval),reconnectTimeMillis:pr(this.config.streamInitialReconnectDelay),streamingDisabled:!this.config.stream,usingRelayDaemon:this.config.useLdd,offline:this.config.offline,allAttributesPrivate:this.config.allAttributesPrivate,contextKeysCapacity:this.config.contextKeysCapacity,contextKeysFlushIntervalMillis:pr(this.config.contextKeysFlushInterval),usingProxy:!!(null===(t=(e=this.platform.requests).usingProxy)||void 0===t?void 0:t.call(e)),usingProxyAuthenticator:!!(null===(r=(i=this.platform.requests).usingProxyAuth)||void 0===r?void 0:r.call(i)),diagnosticRecordingIntervalMillis:pr(this.config.diagnosticRecordingInterval),dataStoreType:null!==(a=null===(s=(n=this.featureStore).getDescription)||void 0===s?void 0:s.call(n))&&void 0!==a?a:"memory"},platform:Object.assign({name:d.name,osArch:null===(o=d.os)||void 0===o?void 0:o.arch,osName:null===(l=d.os)||void 0===l?void 0:l.name,osVersion:null===(u=d.os)||void 0===u?void 0:u.version},d.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}};var yr={},mr={};Object.defineProperty(mr,"__esModule",{value:!0}),mr.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(yr,"__esModule",{value:!0});const br=o,Or=mr;yr.default=class{constructor(e){this.withReasons=e}evalEvent(e,t,i,r,n){var s;const a=(0,Or.default)(e,i.reason);return new br.internal.InputEvalEvent(this.withReasons,t,e.key,r,i,e.version,null!==(s=i.variationIndex)&&void 0!==s?s:void 0,e.trackEvents||a,null==n?void 0:n.key,this.withReasons||a?i.reason:void 0,e.debugEventsUntilDate)}unknownFlagEvent(e,t,i){return new br.internal.InputEvalEvent(this.withReasons,t,e,i.value,i)}identifyEvent(e){return new br.internal.InputIdentifyEvent(e)}customEvent(e,t,i,r){return new br.internal.InputCustomEvent(t,e,null!=i?i:void 0,null!=r?r:void 0)}};var _r={};Object.defineProperty(_r,"__esModule",{value:!0});const Sr=o,wr=Qt,Er=Ht,Pr=It;_r.default=class{constructor(e,t){const{basicConfiguration:{sdkKey:i,serviceEndpoints:{events:r,analyticsEventPath:n,diagnosticEventPath:s,includeAuthorizationHeader:a}},platform:{info:o,requests:l,crypto:u}}=t;this.defaultHeaders=Object.assign({},(0,wr.default)(i,e,o,a)),this.eventsUri=`${r}${n}`,this.diagnosticEventsUri=`${r}${s}`,this.requests=l,this.crypto=u}async tryPostingEvents(e,t,i,r){const n={status:Sr.subsystem.LDDeliveryStatus.Succeeded},s=Object.assign(Object.assign({},this.defaultHeaders),{"content-type":"application/json"});let a;i&&(s["x-launchdarkly-payload-id"]=i,s["x-launchDarkly-event-schema"]="4");try{const i=await this.requests.fetch(t,{headers:s,body:JSON.stringify(e),method:"POST"}),r=Date.parse(i.headers.get("date")||"");if(r&&(n.serverTime=r),i.status<=204)return n;if(a=new Pr.LDUnexpectedResponseError((0,Er.default)({status:i.status,message:"some events were dropped"},"event posting")),!(0,Pr.isHttpRecoverable)(i.status))return n.status=Sr.subsystem.LDDeliveryStatus.FailedAndMustShutDown,n.error=a,n}catch(e){a=e}return a&&!r?(n.status=Sr.subsystem.LDDeliveryStatus.Failed,n.error=a,n):(await new Promise((e=>{setTimeout(e,1e3)})),this.tryPostingEvents(e,this.eventsUri,i,!1))}async sendEventData(e,t){const i=e===Sr.subsystem.LDEventType.AnalyticsEvents?this.crypto.randomUUID():void 0,r=e===Sr.subsystem.LDEventType.AnalyticsEvents?this.eventsUri:this.diagnosticEventsUri;return this.tryPostingEvents(t,r,i,!0)}};var kr={};Object.defineProperty(kr,"__esModule",{value:!0});kr.default=class{close(){}async flush(){}sendEvent(e){}};var xr={};Object.defineProperty(xr,"__esModule",{value:!0});xr.default=class{constructor(e,t){this.valid=e,this.withReasons=t,this.flagValues={},this.flagMetadata={}}addFlag(e,t,i,r,n,s,a){this.flagValues[e.key]=t;const o={};void 0!==i&&(o.variation=i);const l=a&&!n&&!s&&void 0===e.debugEventsUntilDate;l||(o.version=e.version),r&&(s||this.withReasons&&!l)&&(o.reason=r),n&&(o.trackEvents=!0),s&&(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 jr={},Mr={},Dr={};Object.defineProperty(Dr,"__esModule",{value:!0}),Dr.default=function(e){return new Promise((t=>{e((e=>{t(e)}))}))},Object.defineProperty(Mr,"__esModule",{value:!0});const Ir=Dr;Mr.default=class{constructor(e){this.store=e}async get(e,t){return(0,Ir.default)((i=>{this.store.get(e,t,i)}))}async all(e){return(0,Ir.default)((t=>{this.store.all(e,t)}))}async init(e){return(0,Ir.default)((t=>{this.store.init(e,t)}))}async delete(e,t,i){return(0,Ir.default)((r=>{this.store.delete(e,t,i,r)}))}async upsert(e,t){return(0,Ir.default)((i=>{this.store.upsert(e,t,i)}))}async initialized(){return(0,Ir.default)((e=>{this.store.initialized(e)}))}close(){this.store.close()}};var Fr={},Tr={};function Ar(e){return Date.now()>e.expiration}Object.defineProperty(Tr,"__esModule",{value:!0});Tr.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||!Ar(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)=>{Ar(e)&&this.storage.delete(t)}))}get size(){return this.storage.size}};var Cr={};Object.defineProperty(Cr,"__esModule",{value:!0}),Cr.persistentStoreKinds=void 0;const Rr=Rt,Vr=Ot;Cr.persistentStoreKinds={segments:{namespace:Vr.default.Segments.namespace,deserialize:e=>{const t=(0,Rr.deserializeSegment)(e);if(t)return{version:t.version,item:t}},serialize:e=>{const t=(0,Rr.serializeSegment)(e);return{version:e.version,deleted:e.deleted,serializedItem:t}},priority:0},features:{namespace:Vr.default.Features.namespace,deserialize:e=>{const t=(0,Rr.deserializeFlag)(e);if(t)return{version:t.version,item:t}},serialize:e=>{const t=(0,Rr.serializeFlag)(e);return{version:e.version,deleted:e.deleted,serializedItem:t}},priority:1}};var Nr={};Object.defineProperty(Nr,"__esModule",{value:!0});const Lr=Cr;function Ur(e,t){const i=[],r=new Set(Object.keys(t)),n=s=>{if(!r.has(s))return;r.delete(s);const a=t[s];var o;"features"===e.namespace&&(o=a,o.prerequisites&&o.prerequisites.length?o.prerequisites.map((e=>e.key)):[]).forEach((e=>{n(e)})),i.push({key:s,item:e.serialize(a)})};for(;r.size>0;){const e=r.values().next().value;n(e)}return i}Nr.default=function(e){const t=[];return Object.keys(e).forEach((i=>{const r=Lr.persistentStoreKinds[i];t.push({key:r,item:Ur(r,e[i])})})),t.sort(((e,t)=>e.key.priority-t.key.priority)),t};var Br={};Object.defineProperty(Br,"__esModule",{value:!0});Br.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(Fr,"__esModule",{value:!0});const Kr=Tr,$r=Cr,zr=Nr,qr=Br;function Hr(e,t){return`${e.namespace}:${t}`}function Wr(e){return`$all:${e.namespace}`}const Jr="$checkedInit";function Gr(e){return!e||e.item.deleted?null:e.item}function Xr(e){return{version:e,item:{version:e,deleted:!0}}}function Yr(e,t){if(t.deleted||!t.serializedItem)return Xr(t.version);const i=e.deserialize(t.serializedItem);return void 0===i?Xr(t.version):0===i.version||i.version===t.version||void 0===i.item?i:{version:t.version,item:i.item}}Fr.default=class{constructor(e,t){this.core=e,this.isInitialized=!1,this.queue=new qr.default,t&&(this.itemCache=new Kr.default({ttl:t,checkInterval:600}),this.allItemsCache=new Kr.default({ttl:t,checkInterval:600}))}init(e,t){this.queue.enqueue((t=>{this.core.init((0,zr.default)(e),(()=>{this.isInitialized=!0,this.itemCache&&(this.itemCache.clear(),this.allItemsCache.clear(),Object.keys(e).forEach((t=>{const i=$r.persistentStoreKinds[t],r=e[t];this.allItemsCache.set(Wr(i),r),Object.keys(r).forEach((e=>{const t=r[e],n={version:t.version,item:t};this.itemCache.set(Hr(i,e),n)}))}))),t()}))}),t)}get(e,t,i){if(this.itemCache){const r=this.itemCache.get(Hr(e,t));if(r)return void i(Gr(r))}const r=$r.persistentStoreKinds[e.namespace];this.core.get(r,t,(n=>{var s;if(n&&n.serializedItem){const a=Yr(r,n);return null===(s=this.itemCache)||void 0===s||s.set(Hr(e,t),a),void i(Gr(a))}i(null)}))}initialized(e){var t;this.isInitialized?e(!0):(null===(t=this.itemCache)||void 0===t?void 0:t.get(Jr))?e(!1):this.core.initialized((t=>{var i;this.isInitialized=t,this.isInitialized||null===(i=this.itemCache)||void 0===i||i.set(Jr,!0),e(this.isInitialized)}))}all(e,t){var i;const r=null===(i=this.allItemsCache)||void 0===i?void 0:i.get(Wr(e));if(r)return void t(r);const n=$r.persistentStoreKinds[e.namespace];this.core.getAll(n,(i=>{var r;if(!i)return void t({});const s={};i.forEach((({key:e,item:t})=>{const i=Gr(Yr(n,t));i&&(s[e]=i)})),null===(r=this.allItemsCache)||void 0===r||r.set(Wr(e),s),t(s)}))}upsert(e,t,i){this.queue.enqueue((i=>{this.allItemsCache&&this.allItemsCache.clear();const r=$r.persistentStoreKinds[e.namespace];this.core.upsert(r,t.key,r.serialize(t),((n,s)=>{var a,o;if(!n&&s)if(s.serializedItem){const i=Yr(r,s);null===(a=this.itemCache)||void 0===a||a.set(Hr(e,t.key),i)}else s.deleted&&(null===(o=this.itemCache)||void 0===o||o.set(t.key,{key:t.key,version:s.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=Mr;e.AsyncStoreFacade=t.default;const i=Fr;e.PersistentDataStoreWrapper=i.default;const r=Rt;Object.defineProperty(e,"deserializePoll",{enumerable:!0,get:function(){return r.deserializePoll}})}(jr),Object.defineProperty(a,"__esModule",{value:!0});const Qr=o,Zr=ht,en=yt,tn=bt,rn=Mt,nn=Dt,sn=Yt,an=ti,on=It,ln=li,un=fi,cn=vi,dn=bi,hn=cr,fn=hr,vn=yr,gn=_r,pn=mr,yn=kr,mn=xr,bn=fr,On=jr,_n=Ot;var Sn,wn;(wn=Sn||(Sn={}))[wn.Initializing=0]="Initializing",wn[wn.Initialized=1]="Initialized",wn[wn.Failed=2]="Failed";a.default=class{constructor(e,t,i,r,n){var s,a,o,l,u;this.sdkKey=e,this.platform=t,this.initState=Sn.Initializing,this.eventFactoryDefault=new vn.default(!1),this.eventFactoryWithReasons=new vn.default(!0),this.onError=r.onError,this.onFailed=r.onFailed,this.onReady=r.onReady;const{onUpdate:c,hasEventListeners:d}=r,h=new bn.default(i,n);if(!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 Qr.ClientContext(e,h,t),v=h.featureStoreFactory(f);this.asyncFeatureStore=new On.AsyncStoreFacade(v);const g=new tn.default(v,d,c);!h.sendEvents||h.offline||h.diagnosticOptOut||(this.diagnosticsManager=new fn.default(e,h,t,v));const p=()=>h.stream?new an.default(e,h,this.platform.requests,this.platform.info,g,this.diagnosticsManager):new nn.default(h,new sn.default(e,h,this.platform.info,this.platform.requests),g);h.offline||h.useLdd?this.updateProcessor=new rn.default:this.updateProcessor=null!==(a=null===(s=h.updateProcessorFactory)||void 0===s?void 0:s.call(h,f,g))&&void 0!==a?a:p(),!h.sendEvents||h.offline?this.eventProcessor=new yn.default:this.eventProcessor=new Qr.internal.EventProcessor(h,f,new gn.default(h,f),new hn.default(h),this.diagnosticsManager),this.featureStore=v;const y=new Zr.default(null===(l=null===(o=h.bigSegments)||void 0===o?void 0:o.store)||void 0===l?void 0:l.call(o,f),null!==(u=h.bigSegments)&&void 0!==u?u:{},h.logger,this.platform.crypto);this.bigSegmentsManager=y,this.bigSegmentStatusProviderInternal=y.statusProvider;const m={getFlag(e,t){v.get(_n.default.Features,e,(e=>t(e)))},getSegment(e,t){v.get(_n.default.Segments,e,(e=>t(e)))},getBigSegmentsMembership:e=>y.getUserMembership(e)};this.evaluator=new dn.default(this.platform,m),this.updateProcessor.start((e=>{var t,i;if(e){let i;i=e.status&&401===e.status||e.code&&401===e.code?new Error("Authentication failed. Double check your SDK key."):e,this.onError(i),this.onFailed(i),this.initialized()||(this.initState=Sn.Failed,null===(t=this.initReject)||void 0===t||t.call(this,i))}else this.initialized()||(this.initState=Sn.Initialized,null===(i=this.initResolve)||void 0===i||i.call(this,this),this.onReady())}))}initialized(){return this.initState===Sn.Initialized}waitForInitialization(){return this.initState===Sn.Initialized?Promise.resolve(this):(this.initializedPromise||(this.initializedPromise=new Promise(((e,t)=>{this.initResolve=e,this.initReject=t}))),this.initializedPromise)}variation(e,t,i,r){return new Promise((n=>{this.evaluateIfPossible(e,t,i,this.eventFactoryDefault,(e=>{n(e.detail.value),null==r||r(null,e.detail.value)}))}))}variationDetail(e,t,i,r){return new Promise((n=>{this.evaluateIfPossible(e,t,i,this.eventFactoryWithReasons,(e=>{n(e.detail),null==r||r(null,e.detail)}))}))}allFlagsState(e,t,i){var r,n,s;if(this.config.offline){null===(r=this.logger)||void 0===r||r.info("allFlagsState() called in offline mode. Returning empty state.");const e=new mn.default(!1,!1).build();return null==i||i(null,e),Promise.resolve(e)}const a=Qr.Context.fromLDContext(e);return a.valid?new Promise((e=>{const r=r=>this.featureStore.all(_n.default.Features,(n=>{const s=new mn.default(r,!!(null==t?void 0:t.withReasons)),o=!!(null==t?void 0:t.clientSideOnly),l=!!(null==t?void 0:t.detailsOnlyForTrackedFlags);(0,ln.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,a,(e=>{var i;e.isError&&this.onError(new Error(`Error for feature flag "${r.key}" while evaluating all flags: ${e.message}`));const n=(0,pn.default)(r,e.detail.reason);s.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=s.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!==(s=a.message)&&void 0!==s?s:"Invalid context."}. Returning empty state.`),Promise.resolve(new mn.default(!1,!1).build()))}secureModeHash(e){const t=Qr.Context.fromLDContext(e),i=t.valid?t.canonicalKey:void 0,r=this.platform.crypto.createHmac("sha256",this.sdkKey);if(void 0===i)throw new on.LDClientError("Could not generate secure mode hash for invalid context");return r.update(i),r.digest("hex")}close(){this.eventProcessor.close(),this.updateProcessor.close(),this.featureStore.close(),this.bigSegmentsManager.close()}isOffline(){return this.config.offline}track(e,t,i,r){var n;const s=Qr.Context.fromLDContext(t);s.valid?this.eventProcessor.sendEvent(this.eventFactoryDefault.customEvent(e,s,i,r)):null===(n=this.logger)||void 0===n||n.warn(en.default.missingContextKeyNoEvent)}identify(e){var t;const i=Qr.Context.fromLDContext(e);i.valid?this.eventProcessor.sendEvent(this.eventFactoryDefault.identifyEvent(i)):null===(t=this.logger)||void 0===t||t.warn(en.default.missingContextKeyNoEvent)}async flush(e){try{await this.eventProcessor.flush()}catch(t){null==e||e(t,!1)}null==e||e(null,!0)}variationInternal(e,t,i,r,n){var s,a;if(this.config.offline)return null===(s=this.logger)||void 0===s||s.info("Variation called in offline mode. Returning default value."),void n(cn.default.forError(un.default.ClientNotReady,void 0,i));const o=Qr.Context.fromLDContext(t);if(!o.valid)return this.onError(new on.LDClientError(`${null!==(a=o.message)&&void 0!==a?a:"Context not valid;"} returning default value.`)),void n(cn.default.forError(un.default.UserNotSpecified,void 0,i));this.featureStore.get(_n.default.Features,e,(t=>{const s=t;if(!s){const t=new on.LDClientError(`Unknown feature flag "${e}"; returning default value`);this.onError(t);const r=cn.default.forError(un.default.FlagNotFound,void 0,i);return this.eventProcessor.sendEvent(this.eventFactoryDefault.unknownFlagEvent(e,o,r.detail)),void n(r)}this.evaluator.evaluateCb(s,o,(e=>{var t,a;void 0!==e.detail.variationIndex&&null!==e.detail.variationIndex||(null===(t=this.logger)||void 0===t||t.debug("Result value is null in variation"),e.setDefault(i)),null===(a=e.events)||void 0===a||a.forEach((e=>{this.eventProcessor.sendEvent(e)})),this.eventProcessor.sendEvent(r.evalEvent(s,o,e.detail,i)),n(e)}),r)}))}evaluateIfPossible(e,t,i,r,n){this.initialized()?this.variationInternal(e,t,i,r,n):this.featureStore.initialized((s=>{var a,o;if(s)return null===(a=this.logger)||void 0===a||a.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);null===(o=this.logger)||void 0===o||o.warn("Variation called before LaunchDarkly client initialization completed (did you wait for the'ready' event?) - using default value"),n(cn.default.forError(un.default.ClientNotReady,void 0,i))}))}};var En={},Pn={},kn={},xn={};Object.defineProperty(xn,"__esModule",{value:!0});xn.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(kn,"__esModule",{value:!0});const jn=Rt,Mn=Ot,Dn=xn;kn.default=class{constructor(e,t,i){var r;this.featureStore=i,this.allData={},this.fileLoader=new Dn.default(t,e.paths,null!==(r=e.autoUpdate)&&void 0!==r&&r,(e=>{var t,i;try{this.processFileData(e)}catch(e){null===(t=this.initCallback)||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(e){this.initCallback=e,(async()=>{try{await this.fileLoader.loadAndWatch()}catch(t){null==e||e(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){this.allData={},e.forEach((e=>{let t;if(e.path.endsWith(".yml")||e.path.endsWith(".yaml")){if(!this.yamlParser)throw new Error(`Attempted to parse yaml file (${e.path}) without parser.`);t=this.yamlParser(e.data)}else t=JSON.parse(e.data);this.processParsedData(t)})),this.featureStore.init(this.allData,(()=>{var e;null===(e=this.initCallback)||void 0===e||e.call(this),this.initCallback=void 0}))}processParsedData(e){Object.keys(e.flags||{}).forEach((t=>{(0,jn.processFlag)(e.flags[t]),this.addItem(Mn.default.Features,e.flags[t])})),Object.keys(e.flagValues||{}).forEach((t=>{const i=function(e,t){return{key:e,on:!0,fallthrough:{variation:0},variations:[t],version:1}}(t,e.flagValues[t]);(0,jn.processFlag)(i),this.addItem(Mn.default.Features,i)})),Object.keys(e.segments||{}).forEach((t=>{(0,jn.processSegment)(e.segments[t]),this.addItem(Mn.default.Segments,e.segments[t])}))}},Object.defineProperty(Pn,"__esModule",{value:!0});const In=kn;Pn.default=class{constructor(e){this.options=e}create(e,t){const i={paths:this.options.paths,autoUpdate:this.options.autoUpdate,logger:this.options.logger||e.basicConfiguration.logger,yamlParser:this.options.yamlParser};return new In.default(i,e.platform.fileSystem,t)}getFactory(){return(e,t)=>this.create(e,t)}};var Fn={},Tn={},An={},Cn={};!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}}(Cn);var Rn={};Object.defineProperty(Rn,"__esModule",{value:!0});const Vn=o,Nn=Cn;class Ln{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 Vn.AttributeReference(t),op:"in",values:i,negate:!1}),this}andNotMatch(e,t,...i){return this.clauses.push({contextKind:e,attribute:t,attributeReference:new Vn.AttributeReference(t),op:"in",values:i,negate:!0}),this}thenReturn(e){return Vn.TypeValidators.Boolean.is(e)?(this.flagBuilder.booleanFlag(),this.thenReturn((0,Nn.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 Ln(this.flagBuilder,this.clauses,this.variation)}}Rn.default=Ln,Object.defineProperty(An,"__esModule",{value:!0});const Un=o,Bn=Cn,Kn=Rn;class $n{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[Bn.TRUE_VARIATION_INDEX]&&!1===this.data.variations[Bn.FALSE_VARIATION_INDEX]}booleanFlag(){return this.isBooleanFlag?this:this.variations(!0,!1).fallthroughVariation(Bn.TRUE_VARIATION_INDEX).offVariation(Bn.FALSE_VARIATION_INDEX)}variations(...e){return this.data.variations=[...e],this}on(e){return this.data.on=e,this}fallthroughVariation(e){return Un.TypeValidators.Boolean.is(e)?this.booleanFlag().fallthroughVariation((0,Bn.variationForBoolean)(e)):(this.data.fallthroughVariation=e,this)}offVariation(e){return Un.TypeValidators.Boolean.is(e)?this.booleanFlag().offVariation((0,Bn.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 Un.TypeValidators.Boolean.is(i)?this.booleanFlag().variationForContext(e,t,(0,Bn.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 Kn.default(this).andMatch(e,t,...i)}ifNotMatch(e,t,...i){return new Kn.default(this).andNotMatch(e,t,...i)}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]};if(this.data.targetsByVariation){const e=[],i=[];Object.entries(this.data.targetsByVariation).forEach((([t,r])=>{Object.entries(r).forEach((([r,n])=>{const s=parseInt(t,10);e.push({contextKind:r,values:"user"===r?[]:n,variation:s}),"user"===r&&i.push({values:n,variation:s})}))})),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 $n(this.key,this.data)}getKey(){return this.key}}An.default=$n;var zn={};Object.defineProperty(zn,"__esModule",{value:!0});const qn=Ot;zn.default=class{constructor(e,t,i,r){this.featureStore=e,this.flags=t,this.segments=i,this.onStop=r}async start(e){await this.featureStore.init({[qn.default.Features.namespace]:Object.assign({},this.flags),[qn.default.Segments.namespace]:Object.assign({},this.segments)}),null==e||e()}stop(){this.onStop(this)}close(){this.stop()}async upsert(e,t){return this.featureStore.upsert(e,t)}},Object.defineProperty(Tn,"__esModule",{value:!0});const Hn=Mr,Wn=Rt,Jn=Ot,Gn=An,Xn=zn;Tn.default=class{constructor(){this.currentFlags={},this.currentSegments={},this.dataSources=[],this.flagBuilders={}}getFactory(){return(e,t)=>{const i=new Xn.default(new Hn.default(t),this.currentFlags,this.currentSegments,(e=>{this.dataSources.splice(this.dataSources.indexOf(e))}));return this.dataSources.push(i),i}}flag(e){return this.flagBuilders[e]?this.flagBuilders[e].clone():new Gn.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(Jn.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,Wn.processFlag)(r),this.currentFlags[t.key]=r,Promise.all(this.dataSources.map((e=>e.upsert(Jn.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,Wn.processSegment)(r),this.currentSegments[t.key]=r,Promise.all(this.dataSources.map((e=>e.upsert(Jn.default.Segments,r))))}},Object.defineProperty(Fn,"__esModule",{value:!0}),Fn.TestDataRuleBuilder=Fn.TestDataFlagBuilder=Fn.TestData=void 0;const Yn=Tn;Fn.TestData=Yn.default;const Qn=An;Fn.TestDataFlagBuilder=Qn.default;const Zn=Rn;Fn.TestDataRuleBuilder=Zn.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=Pn;e.FileDataSourceFactory=n.default,i(Fn,e)}(En);var es={},ts={},is={};Object.defineProperty(is,"__esModule",{value:!0});var rs={};Object.defineProperty(rs,"__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(is,e),i(rs,e)}(ts);var ns={},ss={};Object.defineProperty(ss,"__esModule",{value:!0});var as={};Object.defineProperty(as,"__esModule",{value:!0});var os={};Object.defineProperty(os,"__esModule",{value:!0});var ls={};Object.defineProperty(ls,"__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(ss,e),i(as,e),i(os,e),i(ls,e)}(ns);var us={};Object.defineProperty(us,"__esModule",{value:!0});var cs={};Object.defineProperty(cs,"__esModule",{value:!0});var ds={};Object.defineProperty(ds,"__esModule",{value:!0});var hs={};Object.defineProperty(hs,"__esModule",{value:!0});var fs={},vs={};Object.defineProperty(vs,"__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(vs,e)}(fs);var gs={},ps={};Object.defineProperty(ps,"__esModule",{value:!0});var ys={};Object.defineProperty(ys,"__esModule",{value:!0});var ms={};Object.defineProperty(ms,"__esModule",{value:!0});var bs={};Object.defineProperty(bs,"__esModule",{value:!0});var Os={};Object.defineProperty(Os,"__esModule",{value:!0});var _s={};Object.defineProperty(_s,"__esModule",{value:!0});var Ss={};Object.defineProperty(Ss,"__esModule",{value:!0});var ws={};Object.defineProperty(ws,"__esModule",{value:!0});var Es={};Object.defineProperty(Es,"__esModule",{value:!0});var Ps={};Object.defineProperty(Ps,"__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(ps,e),i(ys,e),i(ms,e),i(bs,e),i(Os,e),i(cs,e),i(_s,e),i(Ss,e),i(ws,e),i(Es,e),i(Ps,e)}(gs);var ks={},xs={};Object.defineProperty(xs,"__esModule",{value:!0});var js={};Object.defineProperty(js,"__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(xs,e),i(ds,e),i(hs,e),i(js,e)}(ks),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(ts,e),i(ns,e),i(us,e),i(cs,e),i(ds,e),i(hs,e),e.integrations=fs,e.interfaces=gs,e.subsystems=ks}(es);var Ms={},Ds={};Object.defineProperty(Ds,"__esModule",{value:!0});Ds.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(Ms,"__esModule",{value:!0}),Ms.NullEventSource=void 0;const Is=Ds;Ms.NullEventSource=Is.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.BigSegmentStoreStatusProviderImpl=e.LDClientImpl=e.platform=e.integrations=void 0;const n=s;e.BigSegmentStoreStatusProviderImpl=n.default;const l=a;e.LDClientImpl=l.default,e.integrations=En,e.platform=o,i(es,e),i(jr,e),i(Ms,e),i(o,e)}(n);class Fs{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,s="features"===r?"flags":r;this.logger.debug(`Requesting ${t} from ${this.rootKey}.${s}`);try{const e=await this.edgeProvider.get(this.rootKey);if(!e)throw new Error(`${this.rootKey}.${s} is not found in KV.`);const a=n.deserializePoll(e);if(!a)throw new Error(`Error deserializing ${s}`);switch(r){case"features":i(a.flags[t]);break;case"segments":i(a.segments[t]);break;default:throw new Error(`Unsupported DataKind: ${r}`)}}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 s=n.deserializePoll(e);if(!s)throw new Error(`Error deserializing ${r}`);switch(i){case"features":t(s.flags);break;case"segments":t(s.segments);break;default:throw new Error(`Unsupported DataKind: ${i}`)}}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}}class Ts{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 As{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 Cs{createHash(e){return new Ts(e)}createHmac(e,t){return new As(e,t)}randomUUID(){return crypto.randomUUID()}}class Rs{fetch(e,t={}){return fetch(e,t)}createEventSource(e,t){return new n.NullEventSource(e,t)}}class Vs{constructor(e){this.crypto=new Cs,this.requests=new Rs,this.info=e}}const Ns={stream:!1,sendEvents:!1,useLdd:!0,diagnosticOptOut:!0,logger:n.BasicLogger.get()};class Ls extends n.LDClientImpl{constructor(e,i,r){const s=new t.EventEmitter,a={analyticsEventPath:`/events/bulk/${e}`,diagnosticEventPath:`/events/diagnostic/${e}`,includeAuthorizationHeader:!1};var o;super(e,new Vs(i),(e=>{var t;const i=Object.assign(Object.assign({},Ns),e);return null===(t=i.logger)||void 0===t||t.debug(`Using LD options: ${JSON.stringify(i)}`),i})(r),(o=s,{onError:e=>{o.listenerCount("error")&&o.emit("error",e)},onFailed:e=>{o.emit("failed",e)},onReady:()=>{o.emit("ready")},onUpdate:n.noop,hasEventListeners:()=>!1}),a),this.emitter=s}}const Us=(e,t)=>{const{featureStore:i,logger:r,sendEvents:n}=t,s=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(s))throw new Error(`Invalid configuration: ${Object.keys(s).toString()} not supported`);return!0};class Bs{platformData(){return{name:"Cloudflare"}}sdkData(){return{name:"@launchdarkly/cloudflare-server-sdk",version:"2.3.0-alpha",userAgentBase:"CloudflareEdgeSDK"}}}var Ks=Object.defineProperty,$s=Object.getOwnPropertySymbols,zs=Object.prototype.hasOwnProperty,qs=Object.prototype.propertyIsEnumerable,Hs=(e,t,i)=>t in e?Ks(e,t,{enumerable:!0,configurable:!0,writable:!0,value:i}):e[t]=i;exports.EdgeFeatureStore=Fs,exports.init=(e,t,i={})=>{var r;const s=null!=(r=i.logger)?r:n.BasicLogger.get();return((e,t,i)=>(Us(e,i),new Ls(e,t,i)))(e,new Bs,((e,t)=>{for(var i in t||(t={}))zs.call(t,i)&&Hs(e,i,t[i]);if($s)for(var i of $s(t))qs.call(t,i)&&Hs(e,i,t[i]);return e})({featureStore:new Fs(t,e,"Cloudflare",s),logger:s},i))};
2
+ //# sourceMappingURL=index.js.map