Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

launchdarkly-js-sdk-common

Package Overview
Dependencies
Maintainers
1
Versions
79
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

launchdarkly-js-sdk-common - npm Package Compare versions

Comparing version 3.3.2 to 3.3.3

2

dist/ldclient-common.cjs.js

@@ -1,2 +0,2 @@

"use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ownKeys(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function _objectSpread2(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(n,!0).forEach(function(e){_defineProperty(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ownKeys(n).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function createCustomError(e){function t(e,t){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.message=e,this.code=t}return(t.prototype=new Error).name=e,t.prototype.constructor=t}Object.defineProperty(exports,"__esModule",{value:!0});var LDUnexpectedResponseError=createCustomError("LaunchDarklyUnexpectedResponseError"),LDInvalidEnvironmentIdError=createCustomError("LaunchDarklyInvalidEnvironmentIdError"),LDInvalidUserError=createCustomError("LaunchDarklyInvalidUserError"),LDInvalidEventKeyError=createCustomError("LaunchDarklyInvalidEventKeyError"),LDInvalidArgumentError=createCustomError("LaunchDarklyInvalidArgumentError"),LDFlagFetchError=createCustomError("LaunchDarklyFlagFetchError");function isHttpErrorRecoverable(e){return!(400<=e&&e<500)||(400===e||408===e||429===e)}for(var errors=Object.freeze({__proto__:null,LDUnexpectedResponseError:LDUnexpectedResponseError,LDInvalidEnvironmentIdError:LDInvalidEnvironmentIdError,LDInvalidUserError:LDInvalidUserError,LDInvalidEventKeyError:LDInvalidEventKeyError,LDInvalidArgumentError:LDInvalidArgumentError,LDFlagFetchError:LDFlagFetchError,isHttpErrorRecoverable:isHttpErrorRecoverable}),fromByteArray_1=fromByteArray,lookup=[],revLookup=[],code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,len=code.length;i<len;++i)lookup[i]=code[i],revLookup[code.charCodeAt(i)]=i;function tripletToBase64(e){return lookup[e>>18&63]+lookup[e>>12&63]+lookup[e>>6&63]+lookup[63&e]}function encodeChunk(e,t,n){for(var r,o=[],i=t;i<n;i+=3)r=(e[i]<<16&16711680)+(e[i+1]<<8&65280)+(255&e[i+2]),o.push(tripletToBase64(r));return o.join("")}function fromByteArray(e){for(var t,n=e.length,r=n%3,o=[],i=16383,a=0,s=n-r;a<s;a+=i)o.push(encodeChunk(e,a,s<a+i?s:a+i));return 1==r?(t=e[n-1],o.push(lookup[t>>2]+lookup[t<<4&63]+"==")):2==r&&(t=(e[n-2]<<8)+e[n-1],o.push(lookup[t>>10]+lookup[t>>4&63]+lookup[t<<2&63]+"=")),o.join("")}revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63;var isArray=Array.isArray,keyList=Object.keys,hasProp=Object.prototype.hasOwnProperty,fastDeepEqual=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){var r,o,i,a=isArray(t),s=isArray(n);if(a&&s){if((o=t.length)!=n.length)return!1;for(r=o;0!=r--;)if(!e(t[r],n[r]))return!1;return!0}if(a!=s)return!1;var u=t instanceof Date,c=n instanceof Date;if(u!=c)return!1;if(u&&c)return t.getTime()==n.getTime();var l=t instanceof RegExp,f=n instanceof RegExp;if(l!=f)return!1;if(l&&f)return t.toString()==n.toString();var d=keyList(t);if((o=d.length)!==keyList(n).length)return!1;for(r=o;0!=r--;)if(!hasProp.call(n,d[r]))return!1;for(r=o;0!=r--;)if(!e(t[i=d[r]],n[i]))return!1;return!0}return t!=t&&n!=n},userAttrsToStringify=["key","secondary","ip","country","email","firstName","lastName","avatar","name"];function btoa(e){var t=unescape(encodeURIComponent(e));return fromByteArray_1(stringToBytes(t))}function stringToBytes(e){for(var t=[],n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t}function base64URLEncode(e){return btoa(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function clone(e){return JSON.parse(JSON.stringify(e))}function deepEquals(e,t){return fastDeepEqual(e,t)}function onNextTick(e){setTimeout(e,0)}function wrapPromiseCallback(e,t){var n=e.then(function(e){return t&&setTimeout(function(){t(null,e)},0),e},function(e){if(!t)return Promise.reject(e);setTimeout(function(){t(e,null)},0)});return t?void 0:n}function transformValuesToVersionedValues(e){var t={};for(var n in e)objectHasOwnProperty(e,n)&&(t[n]={value:e[n],version:0});return t}function transformVersionedValuesToValues(e){var t={};for(var n in e)objectHasOwnProperty(e,n)&&(t[n]=e[n].value);return t}function chunkUserEventsForUrl(e,t){for(var n,r=t.slice(0),o=[],i=e;0<r.length;){for(n=[];0<i;){var a=r.shift();if(!a)break;(i-=base64URLEncode(JSON.stringify(a)).length)<0&&0<n.length?r.unshift(a):n.push(a)}i=e,o.push(n)}return o}function getLDUserAgentString(e){var t=e.version||"3.3.2";return e.userAgent+"/"+t}function getLDHeaders(e,t){if(t&&!t.sendLDHeaders)return{};var n={"X-LaunchDarkly-User-Agent":getLDUserAgentString(e)};return t&&t.wrapperName&&(n["X-LaunchDarkly-Wrapper"]=t.wrapperVersion?t.wrapperName+"/"+t.wrapperVersion:t.wrapperName),n}function extend(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce(function(e,t){return _objectSpread2({},e,{},t)},{})}function objectHasOwnProperty(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function sanitizeUser(e){if(!e)return e;var t;for(var n in userAttrsToStringify){var r=userAttrsToStringify[n],o=e[r];void 0!==o&&"string"!=typeof o&&((t=t||_objectSpread2({},e))[r]=String(o))}return t||e}var utils=Object.freeze({__proto__:null,btoa:btoa,base64URLEncode:base64URLEncode,clone:clone,deepEquals:deepEquals,onNextTick:onNextTick,wrapPromiseCallback:wrapPromiseCallback,transformValuesToVersionedValues:transformValuesToVersionedValues,transformVersionedValuesToValues:transformVersionedValuesToValues,chunkUserEventsForUrl:chunkUserEventsForUrl,getLDUserAgentString:getLDUserAgentString,getLDHeaders:getLDHeaders,extend:extend,objectHasOwnProperty:objectHasOwnProperty,sanitizeUser:sanitizeUser});function createCommonjsModule(e,t){return e(t={exports:{}},t.exports),t.exports}for(var rngBrowser=createCommonjsModule(function(e){var t="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(t){var n=new Uint8Array(16);e.exports=function(){return t(n),n}}else{var r=new Array(16);e.exports=function(){for(var e,t=0;t<16;t++)0==(3&t)&&(e=4294967296*Math.random()),r[t]=e>>>((3&t)<<3)&255;return r}}}),byteToHex=[],i$1=0;i$1<256;++i$1)byteToHex[i$1]=(i$1+256).toString(16).substr(1);function bytesToUuid(e,t){var n=t||0,r=byteToHex;return[r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],"-",r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]],r[e[n++]]].join("")}var _nodeId,_clockseq,bytesToUuid_1=bytesToUuid,_lastMSecs=0,_lastNSecs=0;function v1(e,t,n){var r=t&&n||0,o=t||[],i=(e=e||{}).node||_nodeId,a=void 0!==e.clockseq?e.clockseq:_clockseq;if(null==i||null==a){var s=rngBrowser();null==i&&(i=_nodeId=[1|s[0],s[1],s[2],s[3],s[4],s[5]]),null==a&&(a=_clockseq=16383&(s[6]<<8|s[7]))}var u=void 0!==e.msecs?e.msecs:(new Date).getTime(),c=void 0!==e.nsecs?e.nsecs:_lastNSecs+1,l=u-_lastMSecs+(c-_lastNSecs)/1e4;if(l<0&&void 0===e.clockseq&&(a=a+1&16383),(l<0||_lastMSecs<u)&&void 0===e.nsecs&&(c=0),1e4<=c)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=u,_clockseq=a;var f=(1e4*(268435455&(u+=122192928e5))+(_lastNSecs=c))%4294967296;o[r++]=f>>>24&255,o[r++]=f>>>16&255,o[r++]=f>>>8&255,o[r++]=255&f;var d=u/4294967296*1e4&268435455;o[r++]=d>>>8&255,o[r++]=255&d,o[r++]=d>>>24&15|16,o[r++]=d>>>16&255,o[r++]=a>>>8|128,o[r++]=255&a;for(var v=0;v<6;++v)o[r+v]=i[v];return t||bytesToUuid_1(o)}var v1_1=v1,MAX_URL_LENGTH=2e3;function EventSender(s,e,t){var n="/a/"+e+".gif",u=extend({"Content-Type":"application/json"},getLDHeaders(s,t)),c=s.httpFallbackPing,l={};return l.sendChunk=function(e,r,o,t){var i=JSON.stringify(e),a=o?null:v1_1();return t?function t(n){var e=o?u:extend({},u,{"X-LaunchDarkly-Event-Schema":"3","X-LaunchDarkly-Payload-ID":a});return s.httpRequest("POST",r,e,i).promise.then(function(e){if(e)return 400<=e.status&&isHttpErrorRecoverable(e.status)&&n?t(!1):function(e){var t={status:e.status},n=e.header("date");if(n){var r=Date.parse(n);r&&(t.serverTime=r)}return t}(e)}).catch(function(){return n?t(!1):Promise.reject()})}(!0).catch(function(){}):(c&&c(r+n+"?d="+base64URLEncode(i)),Promise.resolve())},l.sendEvents=function(e,t,n){if(!s.httpRequest)return Promise.resolve();var r,o=s.httpAllowsPost();r=o?[e]:chunkUserEventsForUrl(MAX_URL_LENGTH-t.length,e);for(var i=[],a=0;a<r.length;a++)i.push(l.sendChunk(r[a],t,n,o));return Promise.all(i)},l}function EventSummarizer(){var e={},a=0,s=0,u={};return e.summarizeEvent=function(e){if("feature"===e.kind){var t=e.key+":"+(null!==e.variation&&void 0!==e.variation?e.variation:"")+":"+(null!==e.version&&void 0!==e.version?e.version:""),n=u[t];n?n.count=n.count+1:u[t]={count:1,key:e.key,variation:e.variation,version:e.version,value:e.value,default:e.default},(0===a||e.creationDate<a)&&(a=e.creationDate),e.creationDate>s&&(s=e.creationDate)}},e.getSummary=function(){var e={},t=!0;for(var n in u){var r=u[n],o=e[r.key];o||(o={default:r.default,counters:[]},e[r.key]=o);var i={value:r.value,count:r.count};void 0!==r.variation&&null!==r.variation&&(i.variation=r.variation),r.version?i.version=r.version:i.unknown=!0,o.counters.push(i),t=!1}return t?null:{startDate:a,endDate:s,features:e}},e.clearSummary=function(){s=a=0,u={}},e}function UserFilter(e){var t={},u=e.allAttributesPrivate,c=e.privateAttributeNames||[],l={key:!0,custom:!0,anonymous:!0},f={key:!0,secondary:!0,ip:!0,country:!0,email:!0,firstName:!0,lastName:!0,avatar:!0,name:!0,anonymous:!0,custom:!0};return t.filterUser=function(e){if(!e)return null;function t(r,o){return Object.keys(r).reduce(function(e,t){var n=e;return o(t)&&(!function(e){return!l[e]&&(u||-1!==i.indexOf(e)||-1!==c.indexOf(e))}(t)?n[0][t]=r[t]:n[1][t]=!0),n},[{},{}])}var i=e.privateAttributeNames||[],n=t(e,function(e){return f[e]}),r=n[0],o=n[1];if(e.custom){var a=t(e.custom,function(){return!0});r.custom=a[0],o=extend({},o,a[1])}var s=Object.keys(o);return s.length&&(s.sort(),r.privateAttrs=s),r},t}function errorString(e){return e&&e.message?e.message:"string"==typeof e||e instanceof String?e:JSON.stringify(e)}var clientInitialized=function(){return"LaunchDarkly client initialized"},docLink=" Please see https://docs.launchdarkly.com/docs/js-sdk-reference#initializing-the-client for instructions on SDK initialization.",clientNotReady=function(){return"LaunchDarkly client is not ready"},eventCapacityExceeded=function(){return"Exceeded event queue capacity. Increase capacity to avoid dropping events."},eventWithoutUser=function(){return"Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/docs/js-sdk-reference#section-analytics-events"},invalidContentType=function(e){return'Expected application/json content type but got "'+e+'"'},invalidKey=function(){return"Event key must be a string"},localStorageUnavailable=function(){return"localStorage is unavailable"},localStorageUnavailableForUserId=function(){return"localStorage is unavailable, so anonymous user ID cannot be cached"},networkError=function(e){return"network error"+(e?" ("+e+")":"")},unknownCustomEventKey=function(e){return'Custom event "'+e+'" does not exist'},environmentNotFound=function(){return"Environment not found. Double check that you specified a valid environment/client-side ID."+docLink},environmentNotSpecified=function(){return"No environment/client-side ID was specified."+docLink},errorFetchingFlags=function(e){return"Error fetching flag settings: "+errorString(e)},userNotSpecified=function(){return"No user specified."+docLink},invalidUser=function(){return"Invalid user specified."+docLink},bootstrapOldFormat=function(){return"LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly."+docLink},bootstrapInvalid=function(){return"LaunchDarkly bootstrap data is not available because the back end could not read the flags."},deprecated=function(e,t){return t?'"'+e+'" is deprecated, please use "'+t+'"':'"'+e+'" is deprecated'},httpErrorMessage=function(e,t,n){return"Received error "+e+(401===e?" (invalid SDK key)":"")+" for "+t+" - "+(isHttpErrorRecoverable(e)?n:"giving up permanently")},httpUnavailable=function(){return"Cannot make HTTP requests in this environment."+docLink},identifyDisabled=function(){return"identify() has no effect here; it must be called on the main client instance"},streamClosing=function(){return"Closing stream connection"},streamConnecting=function(e){return"Opening stream connection to "+e},streamError=function(e,t){return"Error on stream connection: "+errorString(e)+", will continue retrying every "+t+" milliseconds."},unknownOption=function(e){return'Ignoring unknown config option "'+e+'"'},wrongOptionType=function(e,t,n){return'Config option "'+e+'" should be of type '+t+", got "+n+", using default value"},wrongOptionTypeBoolean=function(e,t){return'Config option "'+e+'" should be a boolean, got '+t+", converting to boolean"},optionBelowMinimum=function(e,t,n){return'Config option "'+e+'" was set to '+t+", changing to minimum value of "+n},debugPolling=function(e){return"polling for feature flags at "+e},debugStreamPing=function(){return"received ping message from stream"},debugStreamPut=function(){return"received streaming update for all flags"},debugStreamPatch=function(e){return'received streaming update for flag "'+e+'"'},debugStreamPatchIgnored=function(e){return'received streaming update for flag "'+e+'" but ignored due to version check'},debugStreamDelete=function(e){return'received streaming deletion for flag "'+e+'"'},debugStreamDeleteIgnored=function(e){return'received streaming deletion for flag "'+e+'" but ignored due to version check'},debugEnqueueingEvent=function(e){return'enqueueing "'+e+'" event'},debugPostingEvents=function(e){return"sending "+e+" events"},debugPostingDiagnosticEvent=function(e){return"sending diagnostic event ("+e.kind+")"},messages=Object.freeze({__proto__:null,clientInitialized:clientInitialized,clientNotReady:clientNotReady,eventCapacityExceeded:eventCapacityExceeded,eventWithoutUser:eventWithoutUser,invalidContentType:invalidContentType,invalidKey:invalidKey,localStorageUnavailable:localStorageUnavailable,localStorageUnavailableForUserId:localStorageUnavailableForUserId,networkError:networkError,unknownCustomEventKey:unknownCustomEventKey,environmentNotFound:environmentNotFound,environmentNotSpecified:environmentNotSpecified,errorFetchingFlags:errorFetchingFlags,userNotSpecified:userNotSpecified,invalidUser:invalidUser,bootstrapOldFormat:bootstrapOldFormat,bootstrapInvalid:bootstrapInvalid,deprecated:deprecated,httpErrorMessage:httpErrorMessage,httpUnavailable:httpUnavailable,identifyDisabled:identifyDisabled,streamClosing:streamClosing,streamConnecting:streamConnecting,streamError:streamError,unknownOption:unknownOption,wrongOptionType:wrongOptionType,wrongOptionTypeBoolean:wrongOptionTypeBoolean,optionBelowMinimum:optionBelowMinimum,debugPolling:debugPolling,debugStreamPing:debugStreamPing,debugStreamPut:debugStreamPut,debugStreamPatch:debugStreamPatch,debugStreamPatchIgnored:debugStreamPatchIgnored,debugStreamDelete:debugStreamDelete,debugStreamDeleteIgnored:debugStreamDeleteIgnored,debugEnqueueingEvent:debugEnqueueingEvent,debugPostingEvents:debugPostingEvents,debugPostingDiagnosticEvent:debugPostingDiagnosticEvent});function EventProcessor(e,t,n){var r,o=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,i=4<arguments.length&&void 0!==arguments[4]?arguments[4]:null,a={},s=(5<arguments.length&&void 0!==arguments[5]?arguments[5]:null)||EventSender(e,n,t),u=t.eventsUrl+"/events/bulk/"+n,c=EventSummarizer(),l=UserFilter(t),f=t.inlineUsersInEvents,d=t.samplingInterval,v=t.eventCapacity,g=t.flushInterval,p=t.logger,m=[],y=0,h=!1,b=!1;function E(){return 0===d||0===Math.floor(Math.random()*d)}function k(e){m.length<v?(m.push(e),b=!1):(b||(b=!0,p.warn(eventCapacityExceeded())),o&&o.incrementDroppedEvents())}return a.enqueue=function(e){if(!h){var t=!1,n=!1;if(c.summarizeEvent(e),"feature"===e.kind?E()&&(t=!!e.trackEvents,n=function(e){return!!e.debugEventsUntilDate&&(e.debugEventsUntilDate>y&&e.debugEventsUntilDate>(new Date).getTime())}(e)):t=E(),t&&k(function(e){var t=extend({},e);return"alias"===e.kind||(f||"identify"===e.kind?t.user=l.filterUser(e.user):(t.userKey=e.user.key,delete t.user),"feature"===e.kind&&(delete t.trackEvents,delete t.debugEventsUntilDate)),t}(e)),n){var r=extend({},e,{kind:"debug"});r.user=l.filterUser(r.user),delete r.trackEvents,delete r.debugEventsUntilDate,k(r)}}},a.flush=function(){if(h)return Promise.resolve();var e=m,t=c.getSummary();return c.clearSummary(),t&&(t.kind="summary",e.push(t)),o&&o.setEventsInLastBatch(e.length),0===e.length?Promise.resolve():(m=[],p.debug(debugPostingEvents(e.length)),s.sendEvents(e,u).then(function(e){e&&(e.serverTime&&(y=e.serverTime),isHttpErrorRecoverable(e.status)||(h=!0),400<=e.status&&onNextTick(function(){i.maybeReportError(new LDUnexpectedResponseError(httpErrorMessage(e.status,"event posting","some events were dropped")))}))}))},a.start=function(){r=setTimeout(function e(){a.flush(),r=setTimeout(e,g)},g)},a.stop=function(){clearTimeout(r)},a}function EventEmitter(t){var e={},o={};return e.on=function(e,t,n){o[e]=o[e]||[],o[e]=o[e].concat({handler:t,context:n})},e.off=function(e,t,n){if(o[e])for(var r=0;r<o[e].length;r++)o[e][r].handler===t&&o[e][r].context===n&&(o[e]=o[e].slice(0,r).concat(o[e].slice(r+1)))},e.emit=function(e){if(o[e])for(var t=o[e].slice(0),n=0;n<t.length;n++)t[n].handler.apply(t[n].context,Array.prototype.slice.call(arguments,1))},e.getEvents=function(){return Object.keys(o)},e.getEventListenerCount=function(e){return o[e]?o[e].length:0},e.maybeReportError=function(e){e&&(!function(e){return!!o[e]}("error")?(t||console).error(e.message):this.emit("error",e))},e}var readyEvent="ready",successEvent="initialized",failureEvent="failed";function InitializationStateTracker(r){var t=!1,n=!1,o=null,e=null,i=new Promise(function(t){r.on(readyEvent,function e(){r.off(readyEvent,e),t()})}).catch(function(){});return{getInitializationPromise:function(){return e||(t?Promise.resolve():n?Promise.reject(o):e=new Promise(function(t,n){r.on(successEvent,function e(){r.off(successEvent,e),t()}),r.on(failureEvent,function e(t){r.off(failureEvent,e),n(t)})}))},getReadyPromise:function(){return i},signalSuccess:function(){t||n||(t=!0,r.emit(successEvent),r.emit(readyEvent))},signalFailure:function(e){t||n||(n=!0,o=e,r.emit(failureEvent,e),r.emit(readyEvent)),r.maybeReportError(e)}}}var InitializationState=InitializationStateTracker;function Store(n,r,o,i,a){var s={};function u(){var e="",t=i.getUser();return t&&(e=o||btoa(JSON.stringify(t))),"ld:"+r+":"+e}return s.loadFlags=function(){return n.get(u()).then(function(e){if(null==e)return null;try{var t=JSON.parse(e);if(t){var n=t.$schema;void 0===n||n<1?t=transformValuesToVersionedValues(t):delete t.$schema}return t}catch(e){return s.clearFlags().then(function(){return Promise.reject(e)})}}).catch(function(e){return a.warn(localStorageUnavailable()),Promise.reject(e)})},s.saveFlags=function(e){var t=extend({},e,{$schema:1});return n.set(u(),JSON.stringify(t)).catch(function(e){return a.warn(localStorageUnavailable()),Promise.reject(e)})},s.clearFlags=function(){return n.clear(u()).catch(function(e){return a.warn(localStorageUnavailable()),Promise.reject(e)})},s}var streamReadTimeoutMillis=3e5;function Stream(o,e,i,t){var a,s=e.streamUrl,u=e.logger,n={},c=s+"/eval/"+i,l=e.useReport,f=e.evaluationReasons,r=e.streamReconnectDelay,d=getLDHeaders(o,e),v=!1,g=null,p=null,m=null,y=null,h=null;function b(e){v||(u.warn(streamError(e,r)),v=!0),D(!1),S(),E(r)}function E(e){p||(e?p=setTimeout(k,e):k())}function k(){var e;p=null;var t="",n={headers:d,readTimeoutMillis:streamReadTimeoutMillis};if(o.eventSourceFactory){for(var r in null!=y&&(t="h="+y),l?o.eventSourceAllowsReport?(e=c,n.method="REPORT",n.headers["Content-Type"]="application/json",n.body=JSON.stringify(m)):(e=s+"/ping/"+i,t=""):e=c+"/"+base64URLEncode(JSON.stringify(m)),f&&(t=t+(t?"&":"")+"withReasons=true"),e=e+(t?"?":"")+t,S(),u.info(streamConnecting(e)),a=(new Date).getTime(),g=o.eventSourceFactory(e,n),h)objectHasOwnProperty(h,r)&&g.addEventListener(r,h[r]);g.onerror=b}}function S(){g&&(u.info(streamClosing()),g.close(),g=null)}function D(e){a&&t&&t.recordStreamInit(a,!e,(new Date).getTime()-a),a=null}return n.connect=function(e,t,n){m=e,y=t,h={};function r(t){h[t]=function(e){D(!(v=!1)),n[t]&&n[t](e)}}for(var o in n||{})r(o);E()},n.disconnect=function(){clearTimeout(p),p=null,S()},n.isConnected=function(){return!!(g&&o.eventSourceIsActive&&o.eventSourceIsActive(g))},n}function promiseCoalescer(n){var r,o,i,a,e={addPromise:function(t,e){r=t,o&&o(),o=e,t.then(function(e){r===t&&(i(e),n&&n())},function(e){r===t&&(a(e),n&&n())})}};return e.resultPromise=new Promise(function(e,t){i=e,a=t}),e}var jsonContentType="application/json";function getResponseError(e){return 404===e.status?new LDInvalidEnvironmentIdError(environmentNotFound()):new LDFlagFetchError(errorFetchingFlags(e.statusText||String(e.status)))}function Requestor(s,u,a){var c=u.baseUrl,l=u.useReport,f=u.evaluationReasons,d=u.logger,e={},v={};function g(e,t){if(!s.httpRequest)return new Promise(function(e,t){t(new LDFlagFetchError(httpUnavailable()))});var n=t?"REPORT":"GET",r=getLDHeaders(s,u);t&&(r["Content-Type"]=jsonContentType);var o=v[e];o||(o=promiseCoalescer(function(){delete v[e]}),v[e]=o);var i=s.httpRequest(n,e,r,t),a=i.promise.then(function(e){if(200!==e.status)return Promise.reject(getResponseError(e));if(e.header("content-type")&&e.header("content-type").substring(0,jsonContentType.length)===jsonContentType)return JSON.parse(e.body);var t=invalidContentType(e.header("content-type")||"");return Promise.reject(new LDFlagFetchError(t))},function(e){return Promise.reject(new LDFlagFetchError(networkError(e)))});return o.addPromise(a,function(){i.cancel&&i.cancel()}),o.resultPromise}return e.fetchJSON=function(e){return g(c+e,null)},e.fetchFlagSettings=function(e,t){var n,r,o,i="";return l?(r=[c,"/sdk/evalx/",a,"/user"].join(""),o=JSON.stringify(e)):(n=base64URLEncode(JSON.stringify(e)),r=[c,"/sdk/evalx/",a,"/users/",n].join("")),t&&(i="h="+t),f&&(i=i+(i?"&":"")+"withReasons=true"),r=r+(i?"?":"")+i,d.debug(debugPolling(r)),g(r,o)},e}function Identity(e,n){var r,t={};return t.setUser=function(e){var t=r&&clone(r);(r=sanitizeUser(e))&&n&&n(clone(r),t)},t.getUser=function(){return r?clone(r):null},e&&t.setUser(e),t}var ldUserIdKey="ld:$anonUserId";function UserValidator(r,o){var e={};return e.validateUser=function(e){if(!e)return Promise.reject(new LDInvalidUserError(userNotSpecified()));var n=clone(e);return null!==n.key&&void 0!==n.key?(n.key=n.key.toString(),Promise.resolve(n)):n.anonymous?(r?r.get(ldUserIdKey).catch(function(){return null}):Promise.resolve(null)).then(function(e){if(e)return n.key=e,n;var t=v1_1();return function(e){return r?r.set(ldUserIdKey,e).catch(function(){o.warn(localStorageUnavailableForUserId())}):Promise.resolve()}(n.key=t).then(function(){return n})}):Promise.reject(new LDInvalidUserError(invalidUser()))},e}var baseOptionDefs={baseUrl:{default:"https://app.launchdarkly.com"},streamUrl:{default:"https://clientstream.launchdarkly.com"},eventsUrl:{default:"https://events.launchdarkly.com"},sendEvents:{default:!0},streaming:{type:"boolean"},sendLDHeaders:{default:!0},inlineUsersInEvents:{default:!1},allowFrequentDuplicateEvents:{default:!1},sendEventsOnlyForVariation:{default:!1},useReport:{default:!1},evaluationReasons:{default:!1},eventCapacity:{default:100,minimum:1},flushInterval:{default:2e3,minimum:2e3},samplingInterval:{default:0,minimum:0},streamReconnectDelay:{default:1e3,minimum:0},allAttributesPrivate:{default:!1},privateAttributeNames:{default:[]},bootstrap:{type:"string|object"},diagnosticRecordingInterval:{default:9e5,minimum:2e3},diagnosticOptOut:{default:!1},wrapperName:{type:"string"},wrapperVersion:{type:"string"},stateProvider:{type:"object"},autoAliasingOptOut:{default:!1}};function validate(e,t,n,r){var a=extend({logger:{default:r}},baseOptionDefs,n),o={all_attributes_private:"allAttributesPrivate",private_attribute_names:"privateAttributeNames",samplingInterval:null};function s(e){onNextTick(function(){t&&t.maybeReportError(new LDInvalidArgumentError(e))})}var i,u,c,l,f=extend({},e||{});function d(e){if(null===e)return"any";if(void 0!==e){if(Array.isArray(e))return"array";var t=_typeof(e);return"boolean"===t||"string"===t||"number"===t||"function"===t?t:"object"}}return i=f,Object.keys(o).forEach(function(e){if(void 0!==i[e]){var t=o[e];r&&r.warn(deprecated(e,t)),t&&(void 0===i[t]&&(i[t]=i[e]),delete i[e])}}),u=extend({},f),Object.keys(a).forEach(function(e){void 0!==u[e]&&null!==u[e]||(u[e]=a[e]&&a[e].default)}),l=extend({},c=f=u),Object.keys(c).forEach(function(e){var t=c[e];if(null!=t){var n=a[e];if(void 0===n)s(unknownOption(e));else{var r=n.type||d(n.default);if("any"!==r){var o=r.split("|"),i=d(t);o.indexOf(i)<0?"boolean"===r?(l[e]=!!t,s(wrongOptionTypeBoolean(e,i))):(s(wrongOptionType(e,r,i)),l[e]=n.default):"number"===i&&void 0!==n.minimum&&t<n.minimum&&(s(optionBelowMinimum(e,t,n.minimum)),l[e]=n.minimum)}}}}),f=l}var configuration=Object.freeze({__proto__:null,baseOptionDefs:baseOptionDefs,validate:validate}),baseOptionDefs$1=configuration.baseOptionDefs;function DiagnosticId(e){var t={diagnosticId:v1_1()};return e&&(t.sdkKeySuffix=6<e.length?e.substring(e.length-6):e),t}function DiagnosticsAccumulator(e){var t,n,r,o;function i(e){t=e,r=n=0,o=[]}return i(e),{getProps:function(){return{dataSinceDate:t,droppedEvents:n,eventsInLastBatch:r,streamInits:o}},setProps:function(e){t=e.dataSinceDate,n=e.droppedEvents||0,r=e.eventsInLastBatch||0,o=e.streamInits||[]},incrementDroppedEvents:function(){n++},setEventsInLastBatch:function(e){r=e},recordStreamInit:function(e,t,n){var r={timestamp:e,failed:t,durationMillis:n};o.push(r)},reset:i}}function DiagnosticsManager(t,e,n,r,o,i){var a,s,u=!!t.diagnosticUseCombinedEvent,c="ld:"+r+":$diagnostics",l=o.eventsUrl+"/events/diagnostic/"+r,f=o.diagnosticRecordingInterval,d=e,v=!!o.streaming,g={};function p(){return{sdk:function(){var e=_objectSpread2({},t.diagnosticSdkData);o.wrapperName&&(e.wrapperName=o.wrapperName);o.wrapperVersion&&(e.wrapperVersion=o.wrapperVersion);return e}(),configuration:{customBaseURI:o.baseUrl!==baseOptionDefs$1.baseUrl.default,customStreamURI:o.streamUrl!==baseOptionDefs$1.streamUrl.default,customEventsURI:o.eventsUrl!==baseOptionDefs$1.eventsUrl.default,eventsCapacity:o.eventCapacity,eventsFlushIntervalMillis:o.flushInterval,reconnectTimeMillis:o.streamReconnectDelay,streamingDisabled:!v,allAttributesPrivate:!!o.allAttributesPrivate,inlineUsersInEvents:!!o.inlineUsersInEvents,diagnosticRecordingIntervalMillis:o.diagnosticRecordingInterval,usingSecureMode:!!o.hash,bootstrapMode:!!o.bootstrap,fetchGoalsDisabled:!o.fetchGoals,allowFrequentDuplicateEvents:!!o.allowFrequentDuplicateEvents,sendEventsOnlyForVariation:!!o.sendEventsOnlyForVariation,autoAliasingOptOut:!!o.autoAliasingOptOut},platform:t.diagnosticPlatformData}}function m(e){o.logger&&o.logger.debug(messages.debugPostingDiagnosticEvent(e)),n.sendEvents(e,l,!0).then(function(){}).catch(function(){})}function y(){m(function(){var e=(new Date).getTime(),t=_objectSpread2({kind:u?"diagnostic-combined":"diagnostic",id:i,creationDate:e},d.getProps());return u&&(t=_objectSpread2({},t,{},p())),d.reset(e),t}()),s=setTimeout(y,f),a=(new Date).getTime(),u&&function(){if(t.localStorage){var e=_objectSpread2({},d.getProps());t.localStorage.set(c,JSON.stringify(e),function(){})}}()}return g.start=function(){u?function(n){if(!t.localStorage)return n(!1);t.localStorage.get(c).then(function(e){if(e)try{var t=JSON.parse(e);d.setProps(t),a=t.dataSinceDate}catch(e){}n(!0)}).catch(function(){n(!1)})}(function(e){if(e){var t=(a||0)+f,n=(new Date).getTime();t<=n?y():s=setTimeout(y,t-n)}else 0===Math.floor(4*Math.random())?y():s=setTimeout(y,f)}):(m(_objectSpread2({kind:"diagnostic-init",id:i,creationDate:d.getProps().dataSinceDate},p())),s=setTimeout(y,f))},g.stop=function(){s&&clearTimeout(s)},g.setStreaming=function(e){v=e},g}var diagnosticEvents={DiagnosticId:DiagnosticId,DiagnosticsAccumulator:DiagnosticsAccumulator,DiagnosticsManager:DiagnosticsManager},diagnosticEvents_1=diagnosticEvents.DiagnosticId,diagnosticEvents_2=diagnosticEvents.DiagnosticsAccumulator,diagnosticEvents_3=diagnosticEvents.DiagnosticsManager;function createConsoleLogger(e,t){var i,a=["debug","info","warn","error"];i=null!=t?""===t?"":t+" ":"LD: ";var s=0;e&&(s="none"===e?100:a.indexOf(e));var n={};function r(e,t,n){if(s<=e&&console){var r=console[t];if(r){var o=e<a.length?a[e]:"?";r.call(console,i+"["+o+"] "+n)}}}return n.debug=function(e){return r(0,"log",e)},n.info=function(e){return r(1,"info",e)},n.warn=function(e){return r(2,"warn",e)},n.error=function(e){return r(3,"error",e)},n}var changeEvent="change",internalChangeEvent="internal-change";function initialize(e,t,n,i,r){var a,o,s,u,c=function(){if(n&&n.logger)return n.logger;return r&&r.logger&&r.logger.default||createConsoleLogger("warn")}(),l=EventEmitter(c),f=InitializationState(l),d=validate(n,l,r,c),v=d.sendEvents,g=e,p=d.hash,m=EventSender(i,g,d),y=d.sendEvents&&!d.diagnosticOptOut,h=y?diagnosticEvents_1(g):null,b=y?diagnosticEvents_2((new Date).getTime()):null,E=y?diagnosticEvents_3(i,b,m,g,d,h):null,k=Stream(i,d,g,b),S=d.eventProcessor||EventProcessor(i,d,g,b,l,m),D=Requestor(i,d,g),w={},U={},P=d.streaming,O=!1,I=!1,T=!0,L=d.stateProvider,C=Identity(null,function(e,t){(function(e){if(L)return;e&&j({kind:"identify",key:e.key,user:e,creationDate:(new Date).getTime()})})(e),!d.autoAliasingOptOut&&t&&t.anonymous&&e&&!e.anonymous&&A(e,t)}),F=UserValidator(i.localStorage,c);function j(e){if(g&&!(L&&L.enqueueEvent&&L.enqueueEvent(e))){if("alias"!==e.kind){if(!e.user)return void(T&&(c.warn(eventWithoutUser()),T=!1));T=!1}!v||I||i.isDoNotTrack()||(c.debug(debugEnqueueingEvent(e.kind)),S.enqueue(e))}}function R(e,t,n,r){var o=C.getUser(),i=new Date,a=t?t.value:null;if(!d.allowFrequentDuplicateEvents){var s=JSON.stringify(a)+(o&&o.key?o.key:"")+e,u=w[s];if(u&&i-u<3e5)return;w[s]=i}var c={kind:"feature",key:e,user:o,value:a,variation:t?t.variationIndex:null,default:n,creationDate:i.getTime()};o&&o.anonymous&&(c.contextKind=N(o));var l=U[e];l&&(c.version=l.flagVersion?l.flagVersion:l.version,c.trackEvents=l.trackEvents,c.debugEventsUntilDate=l.debugEventsUntilDate),(r||l&&l.trackReason)&&t&&(c.reason=t.reason),j(c)}function _(e,t,n,r){var o;if(U&&objectHasOwnProperty(U,e)&&U[e]&&!U[e].deleted){var i=U[e];o=x(i),null!==i.value&&void 0!==i.value||(o.value=t)}else o={value:t,variationIndex:null,reason:{kind:"ERROR",errorKind:"FLAG_NOT_FOUND"}};return n&&R(e,o,t,r),o}function x(e){return{value:e.value,variationIndex:void 0===e.variation?null:e.variation,reason:e.reason||null}}function N(e){return e.anonymous?"anonymousUser":"user"}function A(e,t){L||e&&t&&j({kind:"alias",key:e.key,contextKind:N(e),previousKey:t.key,previousContextKind:N(t),creationDate:(new Date).getTime()})}function V(){o=!0,C.getUser()&&k.connect(C.getUser(),p,{ping:function(){c.debug(debugStreamPing());var t=C.getUser();D.fetchFlagSettings(t,p).then(function(e){deepEquals(t,C.getUser())&&M(e||{})}).catch(function(e){l.maybeReportError(new LDFlagFetchError(errorFetchingFlags(e)))})},put:function(e){var t=JSON.parse(e.data);c.debug(debugStreamPut()),M(t)},patch:function(e){var t=JSON.parse(e.data),n=U[t.key];if(!n||!n.version||!t.version||n.version<t.version){c.debug(debugStreamPatch(t.key));var r={},o=extend({},t);delete o.key;var i=x(U[t.key]=o);r[t.key]=n?{previous:n.value,current:i}:{current:i},z(r)}else c.debug(debugStreamPatchIgnored(t.key))},delete:function(e){var t=JSON.parse(e.data);if(!U[t.key]||U[t.key].version<t.version){c.debug(debugStreamDelete(t.key));var n={};U[t.key]&&!U[t.key].deleted&&(n[t.key]={previous:U[t.key].value}),U[t.key]={version:t.version,deleted:!0},z(n)}else c.debug(debugStreamDeleteIgnored(t.key))}})}function q(){o&&(k.disconnect(),o=!1)}function M(e){var t={};if(!e)return Promise.resolve();for(var n in U)objectHasOwnProperty(U,n)&&U[n]&&(e[n]&&!deepEquals(e[n].value,U[n].value)?t[n]={previous:U[n].value,current:x(e[n])}:e[n]&&!e[n].deleted||(t[n]={previous:U[n].value}));for(var r in e)objectHasOwnProperty(e,r)&&e[r]&&(!U[r]||U[r].deleted)&&(t[r]={current:x(e[r])});return U=_objectSpread2({},e),z(t).catch(function(){})}function z(o){var e=Object.keys(o);if(0<e.length){var i={};e.forEach(function(e){var t=o[e].current,n=t?t.value:void 0,r=o[e].previous;l.emit(changeEvent+":"+e,n,r),i[e]=t?{current:n,previous:r}:{previous:r}}),l.emit(changeEvent,i),l.emit(internalChangeEvent,U),d.sendEventsOnlyForVariation||L||e.forEach(function(e){R(e,o[e].current)})}return a&&u?u.saveFlags(U).catch(function(){return null}):Promise.resolve()}function H(){var e=P||s&&void 0===P;e&&!o?V():!e&&o&&q(),E&&E.setStreaming(e)}function K(e){return e===changeEvent||e.substr(0,changeEvent.length+1)===changeEvent+":"}if(i.localStorage&&(u=new Store(i.localStorage,g,p,C,c)),"string"==typeof d.bootstrap&&"LOCALSTORAGE"===d.bootstrap.toUpperCase()&&(u?a=!0:c.warn(localStorageUnavailable())),"object"===_typeof(d.bootstrap)&&(U=function(n){var e=Object.keys(n),r="$flagsState",o=n[r];!o&&e.length&&c.warn(bootstrapOldFormat()),!1===n.$valid&&c.warn(bootstrapInvalid());var i={};return e.forEach(function(e){if(e!==r&&"$valid"!==e){var t={value:n[e]};o&&o[e]?t=extend(t,o[e]):t.version=0,i[e]=t}}),i}(d.bootstrap)),L){var B=L.getInitialState();B?J(B):L.on("init",J),L.on("update",function(e){e.user&&C.setUser(e.user);e.flags&&M(e.flags)})}else(e?F.validateUser(t).then(function(e){return C.setUser(e),"object"===_typeof(d.bootstrap)?$():a?u.loadFlags().catch(function(){return null}).then(function(e){return null==e?(U={},D.fetchFlagSettings(C.getUser(),p).then(function(e){return M(e||{})}).then($).catch(function(e){G(new LDFlagFetchError(errorFetchingFlags(e)))})):(U=e,onNextTick($),D.fetchFlagSettings(C.getUser(),p).then(function(e){return M(e)}).catch(function(e){return l.maybeReportError(e)}))}):D.fetchFlagSettings(C.getUser(),p).then(function(e){U=e||{},$()}).catch(function(e){U={},G(e)})}):Promise.reject(new LDInvalidEnvironmentIdError(environmentNotSpecified()))).catch(G);function J(e){g=e.environment,C.setUser(e.user),U=_objectSpread2({},e.flags),onNextTick($)}function $(){c.info(clientInitialized()),O=!0,H(),f.signalSuccess()}function G(e){f.signalFailure(e)}return{client:{waitForInitialization:function(){return f.getInitializationPromise()},waitUntilReady:function(){return f.getReadyPromise()},identify:function(e,r,t){return I?wrapPromiseCallback(Promise.resolve({}),t):L?(c.warn(identifyDisabled()),wrapPromiseCallback(Promise.resolve(transformVersionedValuesToValues(U)),t)):wrapPromiseCallback((a&&u?u.clearFlags():Promise.resolve()).then(function(){return F.validateUser(e)}).then(function(n){return D.fetchFlagSettings(n,r).then(function(e){var t=transformVersionedValuesToValues(e);return C.setUser(n),p=r,e?M(e).then(function(){return t}):t})}).then(function(e){return o&&V(),e}).catch(function(e){return l.maybeReportError(e),Promise.reject(e)}),t)},getUser:function(){return C.getUser()},variation:function(e,t){return _(e,t,!0,!1).value},variationDetail:function(e,t){return _(e,t,!0,!0)},track:function(e,t,n){if("string"==typeof e){i.customEventFilter&&!i.customEventFilter(e)&&c.warn(unknownCustomEventKey(e));var r=C.getUser(),o={kind:"custom",key:e,user:r,url:i.getCurrentUrl(),creationDate:(new Date).getTime()};r&&r.anonymous&&(o.contextKind=N(r)),null!=t&&(o.data=t),null!=n&&(o.metricValue=n),j(o)}else l.maybeReportError(new LDInvalidEventKeyError(unknownCustomEventKey(e)))},alias:A,on:function(e,t,n){K(e)?(s=!0,O&&H(),l.on(e,t,n)):l.on.apply(l,arguments)},off:function(e){if(l.off.apply(l,arguments),K(e)){var t=!1;l.getEvents().forEach(function(e){K(e)&&0<l.getEventListenerCount(e)&&(t=!0)}),t||(s=!1,o&&void 0===P&&q())}},setStreaming:function(e){var t=null===e?void 0:e;t!==P&&(P=t,H())},flush:function(e){return wrapPromiseCallback(v?S.flush():Promise.resolve(),e)},allFlags:function(){var e={};if(!U)return e;for(var t in U)objectHasOwnProperty(U,t)&&(e[t]=_(t,null,!d.sendEventsOnlyForVariation).value);return e},close:function(e){if(I)return wrapPromiseCallback(Promise.resolve(),e);function t(){I=!0,U={}}return wrapPromiseCallback(Promise.resolve().then(function(){if(q(),E&&E.stop(),v)return S.stop(),S.flush()}).then(t).catch(t),e)}},options:d,emitter:l,ident:C,logger:c,requestor:D,start:function(){v&&(E&&E.start(),S.start())},enqueueEvent:j,getFlagsInternal:function(){return U},getEnvironmentId:function(){return g},internalChangeEventName:internalChangeEvent}}var version="3.3.2";exports.createConsoleLogger=createConsoleLogger,exports.errors=errors,exports.initialize=initialize,exports.messages=messages,exports.utils=utils,exports.version=version;
"use strict";function _typeof(e){return(_typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _defineProperty(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ownKeys(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),n.push.apply(n,r)}return n}function _objectSpread2(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?ownKeys(n,!0).forEach(function(e){_defineProperty(t,e,n[e])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):ownKeys(n).forEach(function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))})}return t}function createCustomError(e){function t(e,t){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.message=e,this.code=t}return(t.prototype=new Error).name=e,t.prototype.constructor=t}Object.defineProperty(exports,"__esModule",{value:!0});var LDUnexpectedResponseError=createCustomError("LaunchDarklyUnexpectedResponseError"),LDInvalidEnvironmentIdError=createCustomError("LaunchDarklyInvalidEnvironmentIdError"),LDInvalidUserError=createCustomError("LaunchDarklyInvalidUserError"),LDInvalidEventKeyError=createCustomError("LaunchDarklyInvalidEventKeyError"),LDInvalidArgumentError=createCustomError("LaunchDarklyInvalidArgumentError"),LDFlagFetchError=createCustomError("LaunchDarklyFlagFetchError");function isHttpErrorRecoverable(e){return!(400<=e&&e<500)||(400===e||408===e||429===e)}for(var errors=Object.freeze({__proto__:null,LDUnexpectedResponseError:LDUnexpectedResponseError,LDInvalidEnvironmentIdError:LDInvalidEnvironmentIdError,LDInvalidUserError:LDInvalidUserError,LDInvalidEventKeyError:LDInvalidEventKeyError,LDInvalidArgumentError:LDInvalidArgumentError,LDFlagFetchError:LDFlagFetchError,isHttpErrorRecoverable:isHttpErrorRecoverable}),fromByteArray_1=fromByteArray,lookup=[],revLookup=[],code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,len=code.length;i<len;++i)lookup[i]=code[i],revLookup[code.charCodeAt(i)]=i;function tripletToBase64(e){return lookup[e>>18&63]+lookup[e>>12&63]+lookup[e>>6&63]+lookup[63&e]}function encodeChunk(e,t,n){for(var r,o=[],i=t;i<n;i+=3)r=(e[i]<<16&16711680)+(e[i+1]<<8&65280)+(255&e[i+2]),o.push(tripletToBase64(r));return o.join("")}function fromByteArray(e){for(var t,n=e.length,r=n%3,o=[],i=16383,a=0,s=n-r;a<s;a+=i)o.push(encodeChunk(e,a,s<a+i?s:a+i));return 1==r?(t=e[n-1],o.push(lookup[t>>2]+lookup[t<<4&63]+"==")):2==r&&(t=(e[n-2]<<8)+e[n-1],o.push(lookup[t>>10]+lookup[t>>4&63]+lookup[t<<2&63]+"=")),o.join("")}revLookup["-".charCodeAt(0)]=62,revLookup["_".charCodeAt(0)]=63;var isArray=Array.isArray,keyList=Object.keys,hasProp=Object.prototype.hasOwnProperty,fastDeepEqual=function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){var r,o,i,a=isArray(t),s=isArray(n);if(a&&s){if((o=t.length)!=n.length)return!1;for(r=o;0!=r--;)if(!e(t[r],n[r]))return!1;return!0}if(a!=s)return!1;var u=t instanceof Date,c=n instanceof Date;if(u!=c)return!1;if(u&&c)return t.getTime()==n.getTime();var l=t instanceof RegExp,d=n instanceof RegExp;if(l!=d)return!1;if(l&&d)return t.toString()==n.toString();var f=keyList(t);if((o=f.length)!==keyList(n).length)return!1;for(r=o;0!=r--;)if(!hasProp.call(n,f[r]))return!1;for(r=o;0!=r--;)if(!e(t[i=f[r]],n[i]))return!1;return!0}return t!=t&&n!=n},userAttrsToStringify=["key","secondary","ip","country","email","firstName","lastName","avatar","name"];function btoa(e){var t=unescape(encodeURIComponent(e));return fromByteArray_1(stringToBytes(t))}function stringToBytes(e){for(var t=[],n=0;n<e.length;n++)t.push(e.charCodeAt(n));return t}function base64URLEncode(e){return btoa(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function clone(e){return JSON.parse(JSON.stringify(e))}function deepEquals(e,t){return fastDeepEqual(e,t)}function onNextTick(e){setTimeout(e,0)}function wrapPromiseCallback(e,t){var n=e.then(function(e){return t&&setTimeout(function(){t(null,e)},0),e},function(e){if(!t)return Promise.reject(e);setTimeout(function(){t(e,null)},0)});return t?void 0:n}function transformValuesToVersionedValues(e){var t={};for(var n in e)objectHasOwnProperty(e,n)&&(t[n]={value:e[n],version:0});return t}function transformVersionedValuesToValues(e){var t={};for(var n in e)objectHasOwnProperty(e,n)&&(t[n]=e[n].value);return t}function chunkUserEventsForUrl(e,t){for(var n,r=t.slice(0),o=[],i=e;0<r.length;){for(n=[];0<i;){var a=r.shift();if(!a)break;(i-=base64URLEncode(JSON.stringify(a)).length)<0&&0<n.length?r.unshift(a):n.push(a)}i=e,o.push(n)}return o}function getLDUserAgentString(e){var t=e.version||"3.3.3";return e.userAgent+"/"+t}function getLDHeaders(e,t){if(t&&!t.sendLDHeaders)return{};var n={"X-LaunchDarkly-User-Agent":getLDUserAgentString(e)};return t&&t.wrapperName&&(n["X-LaunchDarkly-Wrapper"]=t.wrapperVersion?t.wrapperName+"/"+t.wrapperVersion:t.wrapperName),n}function extend(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.reduce(function(e,t){return _objectSpread2({},e,{},t)},{})}function objectHasOwnProperty(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function sanitizeUser(e){if(!e)return e;var t;for(var n in userAttrsToStringify){var r=userAttrsToStringify[n],o=e[r];void 0!==o&&"string"!=typeof o&&((t=t||_objectSpread2({},e))[r]=String(o))}return t||e}var utils=Object.freeze({__proto__:null,btoa:btoa,base64URLEncode:base64URLEncode,clone:clone,deepEquals:deepEquals,onNextTick:onNextTick,wrapPromiseCallback:wrapPromiseCallback,transformValuesToVersionedValues:transformValuesToVersionedValues,transformVersionedValuesToValues:transformVersionedValuesToValues,chunkUserEventsForUrl:chunkUserEventsForUrl,getLDUserAgentString:getLDUserAgentString,getLDHeaders:getLDHeaders,extend:extend,objectHasOwnProperty:objectHasOwnProperty,sanitizeUser:sanitizeUser}),_require=require("uuid"),uuidv1=_require.v1,MAX_URL_LENGTH=2e3;function EventSender(s,e,t){var n="/a/"+e+".gif",u=extend({"Content-Type":"application/json"},getLDHeaders(s,t)),c=s.httpFallbackPing,l={};return l.sendChunk=function(e,r,o,t){var i=JSON.stringify(e),a=o?null:uuidv1();return t?function t(n){var e=o?u:extend({},u,{"X-LaunchDarkly-Event-Schema":"3","X-LaunchDarkly-Payload-ID":a});return s.httpRequest("POST",r,e,i).promise.then(function(e){if(e)return 400<=e.status&&isHttpErrorRecoverable(e.status)&&n?t(!1):function(e){var t={status:e.status},n=e.header("date");if(n){var r=Date.parse(n);r&&(t.serverTime=r)}return t}(e)}).catch(function(){return n?t(!1):Promise.reject()})}(!0).catch(function(){}):(c&&c(r+n+"?d="+base64URLEncode(i)),Promise.resolve())},l.sendEvents=function(e,t,n){if(!s.httpRequest)return Promise.resolve();var r,o=s.httpAllowsPost();r=o?[e]:chunkUserEventsForUrl(MAX_URL_LENGTH-t.length,e);for(var i=[],a=0;a<r.length;a++)i.push(l.sendChunk(r[a],t,n,o));return Promise.all(i)},l}function EventSummarizer(){var e={},a=0,s=0,u={};return e.summarizeEvent=function(e){if("feature"===e.kind){var t=e.key+":"+(null!==e.variation&&void 0!==e.variation?e.variation:"")+":"+(null!==e.version&&void 0!==e.version?e.version:""),n=u[t];n?n.count=n.count+1:u[t]={count:1,key:e.key,variation:e.variation,version:e.version,value:e.value,default:e.default},(0===a||e.creationDate<a)&&(a=e.creationDate),e.creationDate>s&&(s=e.creationDate)}},e.getSummary=function(){var e={},t=!0;for(var n in u){var r=u[n],o=e[r.key];o||(o={default:r.default,counters:[]},e[r.key]=o);var i={value:r.value,count:r.count};void 0!==r.variation&&null!==r.variation&&(i.variation=r.variation),r.version?i.version=r.version:i.unknown=!0,o.counters.push(i),t=!1}return t?null:{startDate:a,endDate:s,features:e}},e.clearSummary=function(){s=a=0,u={}},e}function UserFilter(e){var t={},u=e.allAttributesPrivate,c=e.privateAttributeNames||[],l={key:!0,custom:!0,anonymous:!0},d={key:!0,secondary:!0,ip:!0,country:!0,email:!0,firstName:!0,lastName:!0,avatar:!0,name:!0,anonymous:!0,custom:!0};return t.filterUser=function(e){if(!e)return null;function t(r,o){return Object.keys(r).reduce(function(e,t){var n=e;return o(t)&&(!function(e){return!l[e]&&(u||-1!==i.indexOf(e)||-1!==c.indexOf(e))}(t)?n[0][t]=r[t]:n[1][t]=!0),n},[{},{}])}var i=e.privateAttributeNames||[],n=t(e,function(e){return d[e]}),r=n[0],o=n[1];if(e.custom){var a=t(e.custom,function(){return!0});r.custom=a[0],o=extend({},o,a[1])}var s=Object.keys(o);return s.length&&(s.sort(),r.privateAttrs=s),r},t}function errorString(e){return e&&e.message?e.message:"string"==typeof e||e instanceof String?e:JSON.stringify(e)}var clientInitialized=function(){return"LaunchDarkly client initialized"},docLink=" Please see https://docs.launchdarkly.com/sdk/client-side/javascript#initializing-the-client for instructions on SDK initialization.",clientNotReady=function(){return"LaunchDarkly client is not ready"},eventCapacityExceeded=function(){return"Exceeded event queue capacity. Increase capacity to avoid dropping events."},eventWithoutUser=function(){return"Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript"},invalidContentType=function(e){return'Expected application/json content type but got "'+e+'"'},invalidKey=function(){return"Event key must be a string"},localStorageUnavailable=function(){return"localStorage is unavailable"},localStorageUnavailableForUserId=function(){return"localStorage is unavailable, so anonymous user ID cannot be cached"},networkError=function(e){return"network error"+(e?" ("+e+")":"")},unknownCustomEventKey=function(e){return'Custom event "'+e+'" does not exist'},environmentNotFound=function(){return"Environment not found. Double check that you specified a valid environment/client-side ID."+docLink},environmentNotSpecified=function(){return"No environment/client-side ID was specified."+docLink},errorFetchingFlags=function(e){return"Error fetching flag settings: "+errorString(e)},userNotSpecified=function(){return"No user specified."+docLink},invalidUser=function(){return"Invalid user specified."+docLink},bootstrapOldFormat=function(){return"LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly."+docLink},bootstrapInvalid=function(){return"LaunchDarkly bootstrap data is not available because the back end could not read the flags."},deprecated=function(e,t){return t?'"'+e+'" is deprecated, please use "'+t+'"':'"'+e+'" is deprecated'},httpErrorMessage=function(e,t,n){return"Received error "+e+(401===e?" (invalid SDK key)":"")+" for "+t+" - "+(isHttpErrorRecoverable(e)?n:"giving up permanently")},httpUnavailable=function(){return"Cannot make HTTP requests in this environment."+docLink},identifyDisabled=function(){return"identify() has no effect here; it must be called on the main client instance"},streamClosing=function(){return"Closing stream connection"},streamConnecting=function(e){return"Opening stream connection to "+e},streamError=function(e,t){return"Error on stream connection: "+errorString(e)+", will continue retrying every "+t+" milliseconds."},unknownOption=function(e){return'Ignoring unknown config option "'+e+'"'},wrongOptionType=function(e,t,n){return'Config option "'+e+'" should be of type '+t+", got "+n+", using default value"},wrongOptionTypeBoolean=function(e,t){return'Config option "'+e+'" should be a boolean, got '+t+", converting to boolean"},optionBelowMinimum=function(e,t,n){return'Config option "'+e+'" was set to '+t+", changing to minimum value of "+n},debugPolling=function(e){return"polling for feature flags at "+e},debugStreamPing=function(){return"received ping message from stream"},debugStreamPut=function(){return"received streaming update for all flags"},debugStreamPatch=function(e){return'received streaming update for flag "'+e+'"'},debugStreamPatchIgnored=function(e){return'received streaming update for flag "'+e+'" but ignored due to version check'},debugStreamDelete=function(e){return'received streaming deletion for flag "'+e+'"'},debugStreamDeleteIgnored=function(e){return'received streaming deletion for flag "'+e+'" but ignored due to version check'},debugEnqueueingEvent=function(e){return'enqueueing "'+e+'" event'},debugPostingEvents=function(e){return"sending "+e+" events"},debugPostingDiagnosticEvent=function(e){return"sending diagnostic event ("+e.kind+")"},messages=Object.freeze({__proto__:null,clientInitialized:clientInitialized,clientNotReady:clientNotReady,eventCapacityExceeded:eventCapacityExceeded,eventWithoutUser:eventWithoutUser,invalidContentType:invalidContentType,invalidKey:invalidKey,localStorageUnavailable:localStorageUnavailable,localStorageUnavailableForUserId:localStorageUnavailableForUserId,networkError:networkError,unknownCustomEventKey:unknownCustomEventKey,environmentNotFound:environmentNotFound,environmentNotSpecified:environmentNotSpecified,errorFetchingFlags:errorFetchingFlags,userNotSpecified:userNotSpecified,invalidUser:invalidUser,bootstrapOldFormat:bootstrapOldFormat,bootstrapInvalid:bootstrapInvalid,deprecated:deprecated,httpErrorMessage:httpErrorMessage,httpUnavailable:httpUnavailable,identifyDisabled:identifyDisabled,streamClosing:streamClosing,streamConnecting:streamConnecting,streamError:streamError,unknownOption:unknownOption,wrongOptionType:wrongOptionType,wrongOptionTypeBoolean:wrongOptionTypeBoolean,optionBelowMinimum:optionBelowMinimum,debugPolling:debugPolling,debugStreamPing:debugStreamPing,debugStreamPut:debugStreamPut,debugStreamPatch:debugStreamPatch,debugStreamPatchIgnored:debugStreamPatchIgnored,debugStreamDelete:debugStreamDelete,debugStreamDeleteIgnored:debugStreamDeleteIgnored,debugEnqueueingEvent:debugEnqueueingEvent,debugPostingEvents:debugPostingEvents,debugPostingDiagnosticEvent:debugPostingDiagnosticEvent});function EventProcessor(e,t,n){var r,o=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null,i=4<arguments.length&&void 0!==arguments[4]?arguments[4]:null,a={},s=(5<arguments.length&&void 0!==arguments[5]?arguments[5]:null)||EventSender(e,n,t),u=t.eventsUrl+"/events/bulk/"+n,c=EventSummarizer(),l=UserFilter(t),d=t.inlineUsersInEvents,f=t.samplingInterval,v=t.eventCapacity,g=t.flushInterval,m=t.logger,p=[],y=0,h=!1,b=!1;function E(){return 0===f||0===Math.floor(Math.random()*f)}function k(e){p.length<v?(p.push(e),b=!1):(b||(b=!0,m.warn(eventCapacityExceeded())),o&&o.incrementDroppedEvents())}return a.enqueue=function(e){if(!h){var t=!1,n=!1;if(c.summarizeEvent(e),"feature"===e.kind?E()&&(t=!!e.trackEvents,n=function(e){return!!e.debugEventsUntilDate&&(e.debugEventsUntilDate>y&&e.debugEventsUntilDate>(new Date).getTime())}(e)):t=E(),t&&k(function(e){var t=extend({},e);return"alias"===e.kind||(d||"identify"===e.kind?t.user=l.filterUser(e.user):(t.userKey=e.user.key,delete t.user),"feature"===e.kind&&(delete t.trackEvents,delete t.debugEventsUntilDate)),t}(e)),n){var r=extend({},e,{kind:"debug"});r.user=l.filterUser(r.user),delete r.trackEvents,delete r.debugEventsUntilDate,k(r)}}},a.flush=function(){if(h)return Promise.resolve();var e=p,t=c.getSummary();return c.clearSummary(),t&&(t.kind="summary",e.push(t)),o&&o.setEventsInLastBatch(e.length),0===e.length?Promise.resolve():(p=[],m.debug(debugPostingEvents(e.length)),s.sendEvents(e,u).then(function(e){e&&(e.serverTime&&(y=e.serverTime),isHttpErrorRecoverable(e.status)||(h=!0),400<=e.status&&onNextTick(function(){i.maybeReportError(new LDUnexpectedResponseError(httpErrorMessage(e.status,"event posting","some events were dropped")))}))}))},a.start=function(){r=setTimeout(function e(){a.flush(),r=setTimeout(e,g)},g)},a.stop=function(){clearTimeout(r)},a}function EventEmitter(t){var e={},o={};return e.on=function(e,t,n){o[e]=o[e]||[],o[e]=o[e].concat({handler:t,context:n})},e.off=function(e,t,n){if(o[e])for(var r=0;r<o[e].length;r++)o[e][r].handler===t&&o[e][r].context===n&&(o[e]=o[e].slice(0,r).concat(o[e].slice(r+1)))},e.emit=function(e){if(o[e])for(var t=o[e].slice(0),n=0;n<t.length;n++)t[n].handler.apply(t[n].context,Array.prototype.slice.call(arguments,1))},e.getEvents=function(){return Object.keys(o)},e.getEventListenerCount=function(e){return o[e]?o[e].length:0},e.maybeReportError=function(e){e&&(!function(e){return!!o[e]}("error")?(t||console).error(e.message):this.emit("error",e))},e}var readyEvent="ready",successEvent="initialized",failureEvent="failed";function InitializationStateTracker(r){var t=!1,n=!1,o=null,e=null,i=new Promise(function(t){r.on(readyEvent,function e(){r.off(readyEvent,e),t()})}).catch(function(){});return{getInitializationPromise:function(){return e||(t?Promise.resolve():n?Promise.reject(o):e=new Promise(function(t,n){r.on(successEvent,function e(){r.off(successEvent,e),t()}),r.on(failureEvent,function e(t){r.off(failureEvent,e),n(t)})}))},getReadyPromise:function(){return i},signalSuccess:function(){t||n||(t=!0,r.emit(successEvent),r.emit(readyEvent))},signalFailure:function(e){t||n||(n=!0,o=e,r.emit(failureEvent,e),r.emit(readyEvent)),r.maybeReportError(e)}}}var InitializationState=InitializationStateTracker;function Store(n,r,o,i,a){var s={};function u(){var e="",t=i.getUser();return t&&(e=o||btoa(JSON.stringify(t))),"ld:"+r+":"+e}return s.loadFlags=function(){return n.get(u()).then(function(e){if(null==e)return null;try{var t=JSON.parse(e);if(t){var n=t.$schema;void 0===n||n<1?t=transformValuesToVersionedValues(t):delete t.$schema}return t}catch(e){return s.clearFlags().then(function(){return Promise.reject(e)})}}).catch(function(e){return a.warn(localStorageUnavailable()),Promise.reject(e)})},s.saveFlags=function(e){var t=extend({},e,{$schema:1});return n.set(u(),JSON.stringify(t)).catch(function(e){return a.warn(localStorageUnavailable()),Promise.reject(e)})},s.clearFlags=function(){return n.clear(u()).catch(function(e){return a.warn(localStorageUnavailable()),Promise.reject(e)})},s}var streamReadTimeoutMillis=3e5;function Stream(o,e,i,t){var a,s=e.streamUrl,u=e.logger,n={},c=s+"/eval/"+i,l=e.useReport,d=e.evaluationReasons,r=e.streamReconnectDelay,f=getLDHeaders(o,e),v=!1,g=null,m=null,p=null,y=null,h=null;function b(e){v||(u.warn(streamError(e,r)),v=!0),D(!1),S(),E(r)}function E(e){m||(e?m=setTimeout(k,e):k())}function k(){var e;m=null;var t="",n={headers:f,readTimeoutMillis:streamReadTimeoutMillis};if(o.eventSourceFactory){for(var r in null!=y&&(t="h="+y),l?o.eventSourceAllowsReport?(e=c,n.method="REPORT",n.headers["Content-Type"]="application/json",n.body=JSON.stringify(p)):(e=s+"/ping/"+i,t=""):e=c+"/"+base64URLEncode(JSON.stringify(p)),d&&(t=t+(t?"&":"")+"withReasons=true"),e=e+(t?"?":"")+t,S(),u.info(streamConnecting(e)),a=(new Date).getTime(),g=o.eventSourceFactory(e,n),h)objectHasOwnProperty(h,r)&&g.addEventListener(r,h[r]);g.onerror=b}}function S(){g&&(u.info(streamClosing()),g.close(),g=null)}function D(e){a&&t&&t.recordStreamInit(a,!e,(new Date).getTime()-a),a=null}return n.connect=function(e,t,n){p=e,y=t,h={};function r(t){h[t]=function(e){D(!(v=!1)),n[t]&&n[t](e)}}for(var o in n||{})r(o);E()},n.disconnect=function(){clearTimeout(m),m=null,S()},n.isConnected=function(){return!!(g&&o.eventSourceIsActive&&o.eventSourceIsActive(g))},n}function promiseCoalescer(n){var r,o,i,a,e={addPromise:function(t,e){r=t,o&&o(),o=e,t.then(function(e){r===t&&(i(e),n&&n())},function(e){r===t&&(a(e),n&&n())})}};return e.resultPromise=new Promise(function(e,t){i=e,a=t}),e}var jsonContentType="application/json";function getResponseError(e){return 404===e.status?new LDInvalidEnvironmentIdError(environmentNotFound()):new LDFlagFetchError(errorFetchingFlags(e.statusText||String(e.status)))}function Requestor(s,u,a){var c=u.baseUrl,l=u.useReport,d=u.evaluationReasons,f=u.logger,e={},v={};function g(e,t){if(!s.httpRequest)return new Promise(function(e,t){t(new LDFlagFetchError(httpUnavailable()))});var n=t?"REPORT":"GET",r=getLDHeaders(s,u);t&&(r["Content-Type"]=jsonContentType);var o=v[e];o||(o=promiseCoalescer(function(){delete v[e]}),v[e]=o);var i=s.httpRequest(n,e,r,t),a=i.promise.then(function(e){if(200!==e.status)return Promise.reject(getResponseError(e));if(e.header("content-type")&&e.header("content-type").substring(0,jsonContentType.length)===jsonContentType)return JSON.parse(e.body);var t=invalidContentType(e.header("content-type")||"");return Promise.reject(new LDFlagFetchError(t))},function(e){return Promise.reject(new LDFlagFetchError(networkError(e)))});return o.addPromise(a,function(){i.cancel&&i.cancel()}),o.resultPromise}return e.fetchJSON=function(e){return g(c+e,null)},e.fetchFlagSettings=function(e,t){var n,r,o,i="";return l?(r=[c,"/sdk/evalx/",a,"/user"].join(""),o=JSON.stringify(e)):(n=base64URLEncode(JSON.stringify(e)),r=[c,"/sdk/evalx/",a,"/users/",n].join("")),t&&(i="h="+t),d&&(i=i+(i?"&":"")+"withReasons=true"),r=r+(i?"?":"")+i,f.debug(debugPolling(r)),g(r,o)},e}function Identity(e,n){var r,t={};return t.setUser=function(e){var t=r&&clone(r);(r=sanitizeUser(e))&&n&&n(clone(r),t)},t.getUser=function(){return r?clone(r):null},e&&t.setUser(e),t}var _require$1=require("uuid"),uuidv1$1=_require$1.v1,ldUserIdKey="ld:$anonUserId";function UserValidator(r,o){var e={};return e.validateUser=function(e){if(!e)return Promise.reject(new LDInvalidUserError(userNotSpecified()));var n=clone(e);return null!==n.key&&void 0!==n.key?(n.key=n.key.toString(),Promise.resolve(n)):n.anonymous?(r?r.get(ldUserIdKey).catch(function(){return null}):Promise.resolve(null)).then(function(e){if(e)return n.key=e,n;var t=uuidv1$1();return function(e){return r?r.set(ldUserIdKey,e).catch(function(){o.warn(localStorageUnavailableForUserId())}):Promise.resolve()}(n.key=t).then(function(){return n})}):Promise.reject(new LDInvalidUserError(invalidUser()))},e}var baseOptionDefs={baseUrl:{default:"https://app.launchdarkly.com"},streamUrl:{default:"https://clientstream.launchdarkly.com"},eventsUrl:{default:"https://events.launchdarkly.com"},sendEvents:{default:!0},streaming:{type:"boolean"},sendLDHeaders:{default:!0},inlineUsersInEvents:{default:!1},allowFrequentDuplicateEvents:{default:!1},sendEventsOnlyForVariation:{default:!1},useReport:{default:!1},evaluationReasons:{default:!1},eventCapacity:{default:100,minimum:1},flushInterval:{default:2e3,minimum:2e3},samplingInterval:{default:0,minimum:0},streamReconnectDelay:{default:1e3,minimum:0},allAttributesPrivate:{default:!1},privateAttributeNames:{default:[]},bootstrap:{type:"string|object"},diagnosticRecordingInterval:{default:9e5,minimum:2e3},diagnosticOptOut:{default:!1},wrapperName:{type:"string"},wrapperVersion:{type:"string"},stateProvider:{type:"object"},autoAliasingOptOut:{default:!1}};function validate(e,t,n,r){var a=extend({logger:{default:r}},baseOptionDefs,n),o={all_attributes_private:"allAttributesPrivate",private_attribute_names:"privateAttributeNames",samplingInterval:null};function s(e){onNextTick(function(){t&&t.maybeReportError(new LDInvalidArgumentError(e))})}var i,u,c,l,d=extend({},e||{});function f(e){if(null===e)return"any";if(void 0!==e){if(Array.isArray(e))return"array";var t=_typeof(e);return"boolean"===t||"string"===t||"number"===t||"function"===t?t:"object"}}return i=d,Object.keys(o).forEach(function(e){if(void 0!==i[e]){var t=o[e];r&&r.warn(deprecated(e,t)),t&&(void 0===i[t]&&(i[t]=i[e]),delete i[e])}}),u=extend({},d),Object.keys(a).forEach(function(e){void 0!==u[e]&&null!==u[e]||(u[e]=a[e]&&a[e].default)}),l=extend({},c=d=u),Object.keys(c).forEach(function(e){var t=c[e];if(null!=t){var n=a[e];if(void 0===n)s(unknownOption(e));else{var r=n.type||f(n.default);if("any"!==r){var o=r.split("|"),i=f(t);o.indexOf(i)<0?"boolean"===r?(l[e]=!!t,s(wrongOptionTypeBoolean(e,i))):(s(wrongOptionType(e,r,i)),l[e]=n.default):"number"===i&&void 0!==n.minimum&&t<n.minimum&&(s(optionBelowMinimum(e,t,n.minimum)),l[e]=n.minimum)}}}}),d=l}var getRandomValues,configuration=Object.freeze({__proto__:null,baseOptionDefs:baseOptionDefs,validate:validate}),rnds8=new Uint8Array(16);function rng(){if(!getRandomValues&&!(getRandomValues="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return getRandomValues(rnds8)}var REGEX=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function validate$1(e){return"string"==typeof e&&REGEX.test(e)}for(var _nodeId,_clockseq,byteToHex=[],i$1=0;i$1<256;++i$1)byteToHex.push((i$1+256).toString(16).substr(1));function stringify(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,n=(byteToHex[e[t+0]]+byteToHex[e[t+1]]+byteToHex[e[t+2]]+byteToHex[e[t+3]]+"-"+byteToHex[e[t+4]]+byteToHex[e[t+5]]+"-"+byteToHex[e[t+6]]+byteToHex[e[t+7]]+"-"+byteToHex[e[t+8]]+byteToHex[e[t+9]]+"-"+byteToHex[e[t+10]]+byteToHex[e[t+11]]+byteToHex[e[t+12]]+byteToHex[e[t+13]]+byteToHex[e[t+14]]+byteToHex[e[t+15]]).toLowerCase();if(!validate$1(n))throw TypeError("Stringified UUID is invalid");return n}var _lastMSecs=0,_lastNSecs=0;function v1(e,t,n){var r=t&&n||0,o=t||new Array(16),i=(e=e||{}).node||_nodeId,a=void 0!==e.clockseq?e.clockseq:_clockseq;if(null==i||null==a){var s=e.random||(e.rng||rng)();null==i&&(i=_nodeId=[1|s[0],s[1],s[2],s[3],s[4],s[5]]),null==a&&(a=_clockseq=16383&(s[6]<<8|s[7]))}var u=void 0!==e.msecs?e.msecs:Date.now(),c=void 0!==e.nsecs?e.nsecs:_lastNSecs+1,l=u-_lastMSecs+(c-_lastNSecs)/1e4;if(l<0&&void 0===e.clockseq&&(a=a+1&16383),(l<0||_lastMSecs<u)&&void 0===e.nsecs&&(c=0),1e4<=c)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");_lastMSecs=u,_clockseq=a;var d=(1e4*(268435455&(u+=122192928e5))+(_lastNSecs=c))%4294967296;o[r++]=d>>>24&255,o[r++]=d>>>16&255,o[r++]=d>>>8&255,o[r++]=255&d;var f=u/4294967296*1e4&268435455;o[r++]=f>>>8&255,o[r++]=255&f,o[r++]=f>>>24&15|16,o[r++]=f>>>16&255,o[r++]=a>>>8|128,o[r++]=255&a;for(var v=0;v<6;++v)o[r+v]=i[v];return t||stringify(o)}function parse(e){if(!validate$1(e))throw TypeError("Invalid UUID");var t,n=new Uint8Array(16);return n[0]=(t=parseInt(e.slice(0,8),16))>>>24,n[1]=t>>>16&255,n[2]=t>>>8&255,n[3]=255&t,n[4]=(t=parseInt(e.slice(9,13),16))>>>8,n[5]=255&t,n[6]=(t=parseInt(e.slice(14,18),16))>>>8,n[7]=255&t,n[8]=(t=parseInt(e.slice(19,23),16))>>>8,n[9]=255&t,n[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,n[11]=t/4294967296&255,n[12]=t>>>24&255,n[13]=t>>>16&255,n[14]=t>>>8&255,n[15]=255&t,n}function stringToBytes$1(e){e=unescape(encodeURIComponent(e));for(var t=[],n=0;n<e.length;++n)t.push(e.charCodeAt(n));return t}var DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8";function v35(e,a,s){function t(e,t,n,r){if("string"==typeof e&&(e=stringToBytes$1(e)),"string"==typeof t&&(t=parse(t)),16!==t.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var o=new Uint8Array(16+e.length);if(o.set(t),o.set(e,t.length),(o=s(o))[6]=15&o[6]|a,o[8]=63&o[8]|128,n){r=r||0;for(var i=0;i<16;++i)n[r+i]=o[i];return n}return stringify(o)}try{t.name=e}catch(e){}return t.DNS=DNS,t.URL=URL,t}function md5(e){if("string"==typeof e){var t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(var n=0;n<t.length;++n)e[n]=t.charCodeAt(n)}return md5ToHexEncodedArray(wordsToMd5(bytesToWords(e),8*e.length))}function md5ToHexEncodedArray(e){for(var t=[],n=32*e.length,r="0123456789abcdef",o=0;o<n;o+=8){var i=e[o>>5]>>>o%32&255,a=parseInt(r.charAt(i>>>4&15)+r.charAt(15&i),16);t.push(a)}return t}function getOutputLength(e){return 14+(e+64>>>9<<4)+1}function wordsToMd5(e,t){e[t>>5]|=128<<t%32,e[getOutputLength(t)-1]=t;for(var n=1732584193,r=-271733879,o=-1732584194,i=271733878,a=0;a<e.length;a+=16){var s=n,u=r,c=o,l=i;r=md5ii(r=md5ii(r=md5ii(r=md5ii(r=md5hh(r=md5hh(r=md5hh(r=md5hh(r=md5gg(r=md5gg(r=md5gg(r=md5gg(r=md5ff(r=md5ff(r=md5ff(r=md5ff(r,o=md5ff(o,i=md5ff(i,n=md5ff(n,r,o,i,e[a],7,-680876936),r,o,e[a+1],12,-389564586),n,r,e[a+2],17,606105819),i,n,e[a+3],22,-1044525330),o=md5ff(o,i=md5ff(i,n=md5ff(n,r,o,i,e[a+4],7,-176418897),r,o,e[a+5],12,1200080426),n,r,e[a+6],17,-1473231341),i,n,e[a+7],22,-45705983),o=md5ff(o,i=md5ff(i,n=md5ff(n,r,o,i,e[a+8],7,1770035416),r,o,e[a+9],12,-1958414417),n,r,e[a+10],17,-42063),i,n,e[a+11],22,-1990404162),o=md5ff(o,i=md5ff(i,n=md5ff(n,r,o,i,e[a+12],7,1804603682),r,o,e[a+13],12,-40341101),n,r,e[a+14],17,-1502002290),i,n,e[a+15],22,1236535329),o=md5gg(o,i=md5gg(i,n=md5gg(n,r,o,i,e[a+1],5,-165796510),r,o,e[a+6],9,-1069501632),n,r,e[a+11],14,643717713),i,n,e[a],20,-373897302),o=md5gg(o,i=md5gg(i,n=md5gg(n,r,o,i,e[a+5],5,-701558691),r,o,e[a+10],9,38016083),n,r,e[a+15],14,-660478335),i,n,e[a+4],20,-405537848),o=md5gg(o,i=md5gg(i,n=md5gg(n,r,o,i,e[a+9],5,568446438),r,o,e[a+14],9,-1019803690),n,r,e[a+3],14,-187363961),i,n,e[a+8],20,1163531501),o=md5gg(o,i=md5gg(i,n=md5gg(n,r,o,i,e[a+13],5,-1444681467),r,o,e[a+2],9,-51403784),n,r,e[a+7],14,1735328473),i,n,e[a+12],20,-1926607734),o=md5hh(o,i=md5hh(i,n=md5hh(n,r,o,i,e[a+5],4,-378558),r,o,e[a+8],11,-2022574463),n,r,e[a+11],16,1839030562),i,n,e[a+14],23,-35309556),o=md5hh(o,i=md5hh(i,n=md5hh(n,r,o,i,e[a+1],4,-1530992060),r,o,e[a+4],11,1272893353),n,r,e[a+7],16,-155497632),i,n,e[a+10],23,-1094730640),o=md5hh(o,i=md5hh(i,n=md5hh(n,r,o,i,e[a+13],4,681279174),r,o,e[a],11,-358537222),n,r,e[a+3],16,-722521979),i,n,e[a+6],23,76029189),o=md5hh(o,i=md5hh(i,n=md5hh(n,r,o,i,e[a+9],4,-640364487),r,o,e[a+12],11,-421815835),n,r,e[a+15],16,530742520),i,n,e[a+2],23,-995338651),o=md5ii(o,i=md5ii(i,n=md5ii(n,r,o,i,e[a],6,-198630844),r,o,e[a+7],10,1126891415),n,r,e[a+14],15,-1416354905),i,n,e[a+5],21,-57434055),o=md5ii(o,i=md5ii(i,n=md5ii(n,r,o,i,e[a+12],6,1700485571),r,o,e[a+3],10,-1894986606),n,r,e[a+10],15,-1051523),i,n,e[a+1],21,-2054922799),o=md5ii(o,i=md5ii(i,n=md5ii(n,r,o,i,e[a+8],6,1873313359),r,o,e[a+15],10,-30611744),n,r,e[a+6],15,-1560198380),i,n,e[a+13],21,1309151649),o=md5ii(o,i=md5ii(i,n=md5ii(n,r,o,i,e[a+4],6,-145523070),r,o,e[a+11],10,-1120210379),n,r,e[a+2],15,718787259),i,n,e[a+9],21,-343485551),n=safeAdd(n,s),r=safeAdd(r,u),o=safeAdd(o,c),i=safeAdd(i,l)}return[n,r,o,i]}function bytesToWords(e){if(0===e.length)return[];for(var t=8*e.length,n=new Uint32Array(getOutputLength(t)),r=0;r<t;r+=8)n[r>>5]|=(255&e[r/8])<<r%32;return n}function safeAdd(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}function bitRotateLeft(e,t){return e<<t|e>>>32-t}function md5cmn(e,t,n,r,o,i){return safeAdd(bitRotateLeft(safeAdd(safeAdd(t,e),safeAdd(r,i)),o),n)}function md5ff(e,t,n,r,o,i,a){return md5cmn(t&n|~t&r,e,t,o,i,a)}function md5gg(e,t,n,r,o,i,a){return md5cmn(t&r|n&~r,e,t,o,i,a)}function md5hh(e,t,n,r,o,i,a){return md5cmn(t^n^r,e,t,o,i,a)}function md5ii(e,t,n,r,o,i,a){return md5cmn(n^(t|~r),e,t,o,i,a)}var v3=v35("v3",48,md5);function v4(e,t,n){var r=(e=e||{}).random||(e.rng||rng)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,t){n=n||0;for(var o=0;o<16;++o)t[n+o]=r[o];return t}return stringify(r)}function f(e,t,n,r){switch(e){case 0:return t&n^~t&r;case 1:return t^n^r;case 2:return t&n^t&r^n&r;case 3:return t^n^r}}function ROTL(e,t){return e<<t|e>>>32-t}function sha1(e){var t=[1518500249,1859775393,2400959708,3395469782],n=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var r=unescape(encodeURIComponent(e));e=[];for(var o=0;o<r.length;++o)e.push(r.charCodeAt(o))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);for(var i=e.length/4+2,a=Math.ceil(i/16),s=new Array(a),u=0;u<a;++u){for(var c=new Uint32Array(16),l=0;l<16;++l)c[l]=e[64*u+4*l]<<24|e[64*u+4*l+1]<<16|e[64*u+4*l+2]<<8|e[64*u+4*l+3];s[u]=c}s[a-1][14]=8*(e.length-1)/Math.pow(2,32),s[a-1][14]=Math.floor(s[a-1][14]),s[a-1][15]=8*(e.length-1)&4294967295;for(var d=0;d<a;++d){for(var v=new Uint32Array(80),g=0;g<16;++g)v[g]=s[d][g];for(var m=16;m<80;++m)v[m]=ROTL(v[m-3]^v[m-8]^v[m-14]^v[m-16],1);for(var p=n[0],y=n[1],h=n[2],b=n[3],E=n[4],k=0;k<80;++k){var S=Math.floor(k/20),D=ROTL(p,5)+f(S,y,h,b)+E+t[S]+v[k]>>>0;E=b,b=h,h=ROTL(y,30)>>>0,y=p,p=D}n[0]=n[0]+p>>>0,n[1]=n[1]+y>>>0,n[2]=n[2]+h>>>0,n[3]=n[3]+b>>>0,n[4]=n[4]+E>>>0}return[n[0]>>24&255,n[0]>>16&255,n[0]>>8&255,255&n[0],n[1]>>24&255,n[1]>>16&255,n[1]>>8&255,255&n[1],n[2]>>24&255,n[2]>>16&255,n[2]>>8&255,255&n[2],n[3]>>24&255,n[3]>>16&255,n[3]>>8&255,255&n[3],n[4]>>24&255,n[4]>>16&255,n[4]>>8&255,255&n[4]]}var v5=v35("v5",80,sha1),nil="00000000-0000-0000-0000-000000000000";function version(e){if(!validate$1(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}var esmBrowser=Object.freeze({__proto__:null,v1:v1,v3:v3,v4:v4,v5:v5,NIL:nil,version:version,validate:validate$1,stringify:stringify,parse:parse}),uuidv1$2=esmBrowser.v1,baseOptionDefs$1=configuration.baseOptionDefs;function DiagnosticId(e){var t={diagnosticId:uuidv1$2()};return e&&(t.sdkKeySuffix=6<e.length?e.substring(e.length-6):e),t}function DiagnosticsAccumulator(e){var t,n,r,o;function i(e){t=e,r=n=0,o=[]}return i(e),{getProps:function(){return{dataSinceDate:t,droppedEvents:n,eventsInLastBatch:r,streamInits:o}},setProps:function(e){t=e.dataSinceDate,n=e.droppedEvents||0,r=e.eventsInLastBatch||0,o=e.streamInits||[]},incrementDroppedEvents:function(){n++},setEventsInLastBatch:function(e){r=e},recordStreamInit:function(e,t,n){var r={timestamp:e,failed:t,durationMillis:n};o.push(r)},reset:i}}function DiagnosticsManager(t,e,n,r,o,i){var a,s,u=!!t.diagnosticUseCombinedEvent,c="ld:"+r+":$diagnostics",l=o.eventsUrl+"/events/diagnostic/"+r,d=o.diagnosticRecordingInterval,f=e,v=!!o.streaming,g={};function m(){return{sdk:function(){var e=_objectSpread2({},t.diagnosticSdkData);o.wrapperName&&(e.wrapperName=o.wrapperName);o.wrapperVersion&&(e.wrapperVersion=o.wrapperVersion);return e}(),configuration:{customBaseURI:o.baseUrl!==baseOptionDefs$1.baseUrl.default,customStreamURI:o.streamUrl!==baseOptionDefs$1.streamUrl.default,customEventsURI:o.eventsUrl!==baseOptionDefs$1.eventsUrl.default,eventsCapacity:o.eventCapacity,eventsFlushIntervalMillis:o.flushInterval,reconnectTimeMillis:o.streamReconnectDelay,streamingDisabled:!v,allAttributesPrivate:!!o.allAttributesPrivate,inlineUsersInEvents:!!o.inlineUsersInEvents,diagnosticRecordingIntervalMillis:o.diagnosticRecordingInterval,usingSecureMode:!!o.hash,bootstrapMode:!!o.bootstrap,fetchGoalsDisabled:!o.fetchGoals,allowFrequentDuplicateEvents:!!o.allowFrequentDuplicateEvents,sendEventsOnlyForVariation:!!o.sendEventsOnlyForVariation,autoAliasingOptOut:!!o.autoAliasingOptOut},platform:t.diagnosticPlatformData}}function p(e){o.logger&&o.logger.debug(messages.debugPostingDiagnosticEvent(e)),n.sendEvents(e,l,!0).then(function(){}).catch(function(){})}function y(){p(function(){var e=(new Date).getTime(),t=_objectSpread2({kind:u?"diagnostic-combined":"diagnostic",id:i,creationDate:e},f.getProps());return u&&(t=_objectSpread2({},t,{},m())),f.reset(e),t}()),s=setTimeout(y,d),a=(new Date).getTime(),u&&function(){if(t.localStorage){var e=_objectSpread2({},f.getProps());t.localStorage.set(c,JSON.stringify(e),function(){})}}()}return g.start=function(){u?function(n){if(!t.localStorage)return n(!1);t.localStorage.get(c).then(function(e){if(e)try{var t=JSON.parse(e);f.setProps(t),a=t.dataSinceDate}catch(e){}n(!0)}).catch(function(){n(!1)})}(function(e){if(e){var t=(a||0)+d,n=(new Date).getTime();t<=n?y():s=setTimeout(y,t-n)}else 0===Math.floor(4*Math.random())?y():s=setTimeout(y,d)}):(p(_objectSpread2({kind:"diagnostic-init",id:i,creationDate:f.getProps().dataSinceDate},m())),s=setTimeout(y,d))},g.stop=function(){s&&clearTimeout(s)},g.setStreaming=function(e){v=e},g}var diagnosticEvents={DiagnosticId:DiagnosticId,DiagnosticsAccumulator:DiagnosticsAccumulator,DiagnosticsManager:DiagnosticsManager},diagnosticEvents_1=diagnosticEvents.DiagnosticId,diagnosticEvents_2=diagnosticEvents.DiagnosticsAccumulator,diagnosticEvents_3=diagnosticEvents.DiagnosticsManager;function createConsoleLogger(e,t){var i,a=["debug","info","warn","error"];i=null!=t?""===t?"":t+" ":"LD: ";var s=0;e&&(s="none"===e?100:a.indexOf(e));var n={};function r(e,t,n){if(s<=e&&console){var r=console[t];if(r){var o=e<a.length?a[e]:"?";r.call(console,i+"["+o+"] "+n)}}}return n.debug=function(e){return r(0,"log",e)},n.info=function(e){return r(1,"info",e)},n.warn=function(e){return r(2,"warn",e)},n.error=function(e){return r(3,"error",e)},n}var changeEvent="change",internalChangeEvent="internal-change";function initialize(e,t,n,i,r){var a,o,s,u,c=function(){if(n&&n.logger)return n.logger;return r&&r.logger&&r.logger.default||createConsoleLogger("warn")}(),l=EventEmitter(c),d=InitializationState(l),f=validate(n,l,r,c),v=f.sendEvents,g=e,m=f.hash,p=EventSender(i,g,f),y=f.sendEvents&&!f.diagnosticOptOut,h=y?diagnosticEvents_1(g):null,b=y?diagnosticEvents_2((new Date).getTime()):null,E=y?diagnosticEvents_3(i,b,p,g,f,h):null,k=Stream(i,f,g,b),S=f.eventProcessor||EventProcessor(i,f,g,b,l,p),D=Requestor(i,f,g),w={},U={},P=f.streaming,I=!1,O=!1,T=!0,L=f.stateProvider,R=Identity(null,function(e,t){(function(e){if(L)return;e&&A({kind:"identify",key:e.key,user:e,creationDate:(new Date).getTime()})})(e),!f.autoAliasingOptOut&&t&&t.anonymous&&e&&!e.anonymous&&N(e,t)}),C=UserValidator(i.localStorage,c);function A(e){if(g&&!(L&&L.enqueueEvent&&L.enqueueEvent(e))){if("alias"!==e.kind){if(!e.user)return void(T&&(c.warn(eventWithoutUser()),T=!1));T=!1}!v||O||i.isDoNotTrack()||(c.debug(debugEnqueueingEvent(e.kind)),S.enqueue(e))}}function F(e,t,n,r){var o=R.getUser(),i=new Date,a=t?t.value:null;if(!f.allowFrequentDuplicateEvents){var s=JSON.stringify(a)+(o&&o.key?o.key:"")+e,u=w[s];if(u&&i-u<3e5)return;w[s]=i}var c={kind:"feature",key:e,user:o,value:a,variation:t?t.variationIndex:null,default:n,creationDate:i.getTime()};o&&o.anonymous&&(c.contextKind=_(o));var l=U[e];l&&(c.version=l.flagVersion?l.flagVersion:l.version,c.trackEvents=l.trackEvents,c.debugEventsUntilDate=l.debugEventsUntilDate),(r||l&&l.trackReason)&&t&&(c.reason=t.reason),A(c)}function j(e,t,n,r){var o;if(U&&objectHasOwnProperty(U,e)&&U[e]&&!U[e].deleted){var i=U[e];o=x(i),null!==i.value&&void 0!==i.value||(o.value=t)}else o={value:t,variationIndex:null,reason:{kind:"ERROR",errorKind:"FLAG_NOT_FOUND"}};return n&&F(e,o,t,r),o}function x(e){return{value:e.value,variationIndex:void 0===e.variation?null:e.variation,reason:e.reason||null}}function _(e){return e.anonymous?"anonymousUser":"user"}function N(e,t){L||e&&t&&A({kind:"alias",key:e.key,contextKind:_(e),previousKey:t.key,previousContextKind:_(t),creationDate:(new Date).getTime()})}function V(){o=!0,R.getUser()&&k.connect(R.getUser(),m,{ping:function(){c.debug(debugStreamPing());var t=R.getUser();D.fetchFlagSettings(t,m).then(function(e){deepEquals(t,R.getUser())&&q(e||{})}).catch(function(e){l.maybeReportError(new LDFlagFetchError(errorFetchingFlags(e)))})},put:function(e){var t=JSON.parse(e.data);c.debug(debugStreamPut()),q(t)},patch:function(e){var t=JSON.parse(e.data),n=U[t.key];if(!n||!n.version||!t.version||n.version<t.version){c.debug(debugStreamPatch(t.key));var r={},o=extend({},t);delete o.key;var i=x(U[t.key]=o);r[t.key]=n?{previous:n.value,current:i}:{current:i},M(r)}else c.debug(debugStreamPatchIgnored(t.key))},delete:function(e){var t=JSON.parse(e.data);if(!U[t.key]||U[t.key].version<t.version){c.debug(debugStreamDelete(t.key));var n={};U[t.key]&&!U[t.key].deleted&&(n[t.key]={previous:U[t.key].value}),U[t.key]={version:t.version,deleted:!0},M(n)}else c.debug(debugStreamDeleteIgnored(t.key))}})}function H(){o&&(k.disconnect(),o=!1)}function q(e){var t={};if(!e)return Promise.resolve();for(var n in U)objectHasOwnProperty(U,n)&&U[n]&&(e[n]&&!deepEquals(e[n].value,U[n].value)?t[n]={previous:U[n].value,current:x(e[n])}:e[n]&&!e[n].deleted||(t[n]={previous:U[n].value}));for(var r in e)objectHasOwnProperty(e,r)&&e[r]&&(!U[r]||U[r].deleted)&&(t[r]={current:x(e[r])});return U=_objectSpread2({},e),M(t).catch(function(){})}function M(o){var e=Object.keys(o);if(0<e.length){var i={};e.forEach(function(e){var t=o[e].current,n=t?t.value:void 0,r=o[e].previous;l.emit(changeEvent+":"+e,n,r),i[e]=t?{current:n,previous:r}:{previous:r}}),l.emit(changeEvent,i),l.emit(internalChangeEvent,U),f.sendEventsOnlyForVariation||L||e.forEach(function(e){F(e,o[e].current)})}return a&&u?u.saveFlags(U).catch(function(){return null}):Promise.resolve()}function z(){var e=P||s&&void 0===P;e&&!o?V():!e&&o&&H(),E&&E.setStreaming(e)}function $(e){return e===changeEvent||e.substr(0,changeEvent.length+1)===changeEvent+":"}if(i.localStorage&&(u=new Store(i.localStorage,g,m,R,c)),"string"==typeof f.bootstrap&&"LOCALSTORAGE"===f.bootstrap.toUpperCase()&&(u?a=!0:c.warn(localStorageUnavailable())),"object"===_typeof(f.bootstrap)&&(U=function(n){var e=Object.keys(n),r="$flagsState",o=n[r];!o&&e.length&&c.warn(bootstrapOldFormat()),!1===n.$valid&&c.warn(bootstrapInvalid());var i={};return e.forEach(function(e){if(e!==r&&"$valid"!==e){var t={value:n[e]};o&&o[e]?t=extend(t,o[e]):t.version=0,i[e]=t}}),i}(f.bootstrap)),L){var K=L.getInitialState();K?B(K):L.on("init",B),L.on("update",function(e){e.user&&R.setUser(e.user);e.flags&&q(e.flags)})}else(e?C.validateUser(t).then(function(e){return R.setUser(e),"object"===_typeof(f.bootstrap)?J():a?u.loadFlags().catch(function(){return null}).then(function(e){return null==e?(U={},D.fetchFlagSettings(R.getUser(),m).then(function(e){return q(e||{})}).then(J).catch(function(e){G(new LDFlagFetchError(errorFetchingFlags(e)))})):(U=e,onNextTick(J),D.fetchFlagSettings(R.getUser(),m).then(function(e){return q(e)}).catch(function(e){return l.maybeReportError(e)}))}):D.fetchFlagSettings(R.getUser(),m).then(function(e){U=e||{},J()}).catch(function(e){U={},G(e)})}):Promise.reject(new LDInvalidEnvironmentIdError(environmentNotSpecified()))).catch(G);function B(e){g=e.environment,R.setUser(e.user),U=_objectSpread2({},e.flags),onNextTick(J)}function J(){c.info(clientInitialized()),I=!0,z(),d.signalSuccess()}function G(e){d.signalFailure(e)}return{client:{waitForInitialization:function(){return d.getInitializationPromise()},waitUntilReady:function(){return d.getReadyPromise()},identify:function(e,r,t){return O?wrapPromiseCallback(Promise.resolve({}),t):L?(c.warn(identifyDisabled()),wrapPromiseCallback(Promise.resolve(transformVersionedValuesToValues(U)),t)):wrapPromiseCallback((a&&u?u.clearFlags():Promise.resolve()).then(function(){return C.validateUser(e)}).then(function(n){return D.fetchFlagSettings(n,r).then(function(e){var t=transformVersionedValuesToValues(e);return R.setUser(n),m=r,e?q(e).then(function(){return t}):t})}).then(function(e){return o&&V(),e}).catch(function(e){return l.maybeReportError(e),Promise.reject(e)}),t)},getUser:function(){return R.getUser()},variation:function(e,t){return j(e,t,!0,!1).value},variationDetail:function(e,t){return j(e,t,!0,!0)},track:function(e,t,n){if("string"==typeof e){i.customEventFilter&&!i.customEventFilter(e)&&c.warn(unknownCustomEventKey(e));var r=R.getUser(),o={kind:"custom",key:e,user:r,url:i.getCurrentUrl(),creationDate:(new Date).getTime()};r&&r.anonymous&&(o.contextKind=_(r)),null!=t&&(o.data=t),null!=n&&(o.metricValue=n),A(o)}else l.maybeReportError(new LDInvalidEventKeyError(unknownCustomEventKey(e)))},alias:N,on:function(e,t,n){$(e)?(s=!0,I&&z(),l.on(e,t,n)):l.on.apply(l,arguments)},off:function(e){if(l.off.apply(l,arguments),$(e)){var t=!1;l.getEvents().forEach(function(e){$(e)&&0<l.getEventListenerCount(e)&&(t=!0)}),t||(s=!1,o&&void 0===P&&H())}},setStreaming:function(e){var t=null===e?void 0:e;t!==P&&(P=t,z())},flush:function(e){return wrapPromiseCallback(v?S.flush():Promise.resolve(),e)},allFlags:function(){var e={};if(!U)return e;for(var t in U)objectHasOwnProperty(U,t)&&(e[t]=j(t,null,!f.sendEventsOnlyForVariation).value);return e},close:function(e){if(O)return wrapPromiseCallback(Promise.resolve(),e);function t(){O=!0,U={}}return wrapPromiseCallback(Promise.resolve().then(function(){if(H(),E&&E.stop(),v)return S.stop(),S.flush()}).then(t).catch(t),e)}},options:f,emitter:l,ident:R,logger:c,requestor:D,start:function(){v&&(E&&E.start(),S.start())},enqueueEvent:A,getFlagsInternal:function(){return U},getEnvironmentId:function(){return g},internalChangeEventName:internalChangeEvent}}var version$1="3.3.3";exports.createConsoleLogger=createConsoleLogger,exports.errors=errors,exports.initialize=initialize,exports.messages=messages,exports.utils=utils,exports.version=version$1;
//# sourceMappingURL=ldclient-common.cjs.js.map

@@ -1,2 +0,2 @@

function e(n){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(n)}function n(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function t(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function r(e){for(var r=1;r<arguments.length;r++){var i=null!=arguments[r]?arguments[r]:{};r%2?t(i,!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):t(i).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(i,n))}))}return e}function i(e){function n(e,n){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.message=e,this.code=n}return n.prototype=new Error,n.prototype.name=e,n.prototype.constructor=n,n}var o=i("LaunchDarklyUnexpectedResponseError"),a=i("LaunchDarklyInvalidEnvironmentIdError"),u=i("LaunchDarklyInvalidUserError"),s=i("LaunchDarklyInvalidEventKeyError"),c=i("LaunchDarklyInvalidArgumentError"),l=i("LaunchDarklyFlagFetchError");function f(e){return!(e>=400&&e<500)||(400===e||408===e||429===e)}for(var v=Object.freeze({__proto__:null,LDUnexpectedResponseError:o,LDInvalidEnvironmentIdError:a,LDInvalidUserError:u,LDInvalidEventKeyError:s,LDInvalidArgumentError:c,LDFlagFetchError:l,isHttpErrorRecoverable:f}),d=function(e){for(var n,t=e.length,r=t%3,i=[],o=0,a=t-r;o<a;o+=16383)i.push(b(e,o,o+16383>a?a:o+16383));1===r?(n=e[t-1],i.push(g[n>>2]+g[n<<4&63]+"==")):2===r&&(n=(e[t-2]<<8)+e[t-1],i.push(g[n>>10]+g[n>>4&63]+g[n<<2&63]+"="));return i.join("")},g=[],m=[],p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",y=0,h=p.length;y<h;++y)g[y]=p[y],m[p.charCodeAt(y)]=y;function b(e,n,t){for(var r,i,o=[],a=n;a<t;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),o.push(g[(i=r)>>18&63]+g[i>>12&63]+g[i>>6&63]+g[63&i]);return o.join("")}m["-".charCodeAt(0)]=62,m["_".charCodeAt(0)]=63;var k=Array.isArray,E=Object.keys,w=Object.prototype.hasOwnProperty,D=["key","secondary","ip","country","email","firstName","lastName","avatar","name"];function S(e){var n=unescape(encodeURIComponent(e));return d(function(e){for(var n=[],t=0;t<e.length;t++)n.push(e.charCodeAt(t));return n}(n))}function O(e){return S(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function P(e){return JSON.parse(JSON.stringify(e))}function U(e,n){return function e(n,t){if(n===t)return!0;if(n&&t&&"object"==typeof n&&"object"==typeof t){var r,i,o,a=k(n),u=k(t);if(a&&u){if((i=n.length)!=t.length)return!1;for(r=i;0!=r--;)if(!e(n[r],t[r]))return!1;return!0}if(a!=u)return!1;var s=n instanceof Date,c=t instanceof Date;if(s!=c)return!1;if(s&&c)return n.getTime()==t.getTime();var l=n instanceof RegExp,f=t instanceof RegExp;if(l!=f)return!1;if(l&&f)return n.toString()==t.toString();var v=E(n);if((i=v.length)!==E(t).length)return!1;for(r=i;0!=r--;)if(!w.call(t,v[r]))return!1;for(r=i;0!=r--;)if(!e(n[o=v[r]],t[o]))return!1;return!0}return n!=n&&t!=t}(e,n)}function I(e){setTimeout(e,0)}function j(e,n){var t=e.then((function(e){return n&&setTimeout((function(){n(null,e)}),0),e}),(function(e){if(!n)return Promise.reject(e);setTimeout((function(){n(e,null)}),0)}));return n?void 0:t}function R(e){var n={};for(var t in e)A(e,t)&&(n[t]={value:e[t],version:0});return n}function T(e){var n={};for(var t in e)A(e,t)&&(n[t]=e[t].value);return n}function N(e,n){for(var t,r=n.slice(0),i=[],o=e;r.length>0;){for(t=[];o>0;){var a=r.shift();if(!a)break;(o-=O(JSON.stringify(a)).length)<0&&t.length>0?r.unshift(a):t.push(a)}o=e,i.push(t)}return i}function F(e){var n=e.version||"3.3.2";return e.userAgent+"/"+n}function C(e,n){if(n&&!n.sendLDHeaders)return{};var t={"X-LaunchDarkly-User-Agent":F(e)};return n&&n.wrapperName&&(t["X-LaunchDarkly-Wrapper"]=n.wrapperVersion?n.wrapperName+"/"+n.wrapperVersion:n.wrapperName),t}function L(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return n.reduce((function(e,n){return r({},e,{},n)}),{})}function A(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function x(e){if(!e)return e;var n;for(var t in D){var i=D[t],o=e[i];void 0!==o&&"string"!=typeof o&&((n=n||r({},e))[i]=String(o))}return n||e}var V=Object.freeze({__proto__:null,btoa:S,base64URLEncode:O,clone:P,deepEquals:U,onNextTick:I,wrapPromiseCallback:j,transformValuesToVersionedValues:R,transformVersionedValuesToValues:T,chunkUserEventsForUrl:N,getLDUserAgentString:F,getLDHeaders:C,extend:L,objectHasOwnProperty:A,sanitizeUser:x});for(var q=function(e,n){return e(n={exports:{}},n.exports),n.exports}((function(e){var n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var t=new Uint8Array(16);e.exports=function(){return n(t),t}}else{var r=new Array(16);e.exports=function(){for(var e,n=0;n<16;n++)0==(3&n)&&(e=4294967296*Math.random()),r[n]=e>>>((3&n)<<3)&255;return r}}})),_=[],J=0;J<256;++J)_[J]=(J+256).toString(16).substr(1);var z,M,K=function(e,n){var t=n||0,r=_;return[r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]]].join("")},B=0,$=0;var H=function(e,n,t){var r=n&&t||0,i=n||[],o=(e=e||{}).node||z,a=void 0!==e.clockseq?e.clockseq:M;if(null==o||null==a){var u=q();null==o&&(o=z=[1|u[0],u[1],u[2],u[3],u[4],u[5]]),null==a&&(a=M=16383&(u[6]<<8|u[7]))}var s=void 0!==e.msecs?e.msecs:(new Date).getTime(),c=void 0!==e.nsecs?e.nsecs:$+1,l=s-B+(c-$)/1e4;if(l<0&&void 0===e.clockseq&&(a=a+1&16383),(l<0||s>B)&&void 0===e.nsecs&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");B=s,$=c,M=a;var f=(1e4*(268435455&(s+=122192928e5))+c)%4294967296;i[r++]=f>>>24&255,i[r++]=f>>>16&255,i[r++]=f>>>8&255,i[r++]=255&f;var v=s/4294967296*1e4&268435455;i[r++]=v>>>8&255,i[r++]=255&v,i[r++]=v>>>24&15|16,i[r++]=v>>>16&255,i[r++]=a>>>8|128,i[r++]=255&a;for(var d=0;d<6;++d)i[r+d]=o[d];return n||K(i)};function G(e,n,t){var r="/a/"+n+".gif",i=L({"Content-Type":"application/json"},C(e,t)),o=e.httpFallbackPing,a={};return a.sendChunk=function(n,t,a,u){var s=JSON.stringify(n),c=a?null:H();return u?function n(r){var o=a?i:L({},i,{"X-LaunchDarkly-Event-Schema":"3","X-LaunchDarkly-Payload-ID":c});return e.httpRequest("POST",t,o,s).promise.then((function(e){if(e)return e.status>=400&&f(e.status)&&r?n(!1):function(e){var n={status:e.status},t=e.header("date");if(t){var r=Date.parse(t);r&&(n.serverTime=r)}return n}(e)})).catch((function(){return r?n(!1):Promise.reject()}))}(!0).catch((function(){})):(o&&o(t+r+"?d="+O(s)),Promise.resolve())},a.sendEvents=function(n,t,r){if(!e.httpRequest)return Promise.resolve();var i,o=e.httpAllowsPost();i=o?[n]:N(2e3-t.length,n);for(var u=[],s=0;s<i.length;s++)u.push(a.sendChunk(i[s],t,r,o));return Promise.all(u)},a}function X(){var e={},n=0,t=0,r={};return e.summarizeEvent=function(e){if("feature"===e.kind){var i=e.key+":"+(null!==e.variation&&void 0!==e.variation?e.variation:"")+":"+(null!==e.version&&void 0!==e.version?e.version:""),o=r[i];o?o.count=o.count+1:r[i]={count:1,key:e.key,variation:e.variation,version:e.version,value:e.value,default:e.default},(0===n||e.creationDate<n)&&(n=e.creationDate),e.creationDate>t&&(t=e.creationDate)}},e.getSummary=function(){var e={},i=!0;for(var o in r){var a=r[o],u=e[a.key];u||(u={default:a.default,counters:[]},e[a.key]=u);var s={value:a.value,count:a.count};void 0!==a.variation&&null!==a.variation&&(s.variation=a.variation),a.version?s.version=a.version:s.unknown=!0,u.counters.push(s),i=!1}return i?null:{startDate:n,endDate:t,features:e}},e.clearSummary=function(){n=0,t=0,r={}},e}function W(e){var n={},t=e.allAttributesPrivate,r=e.privateAttributeNames||[],i={key:!0,custom:!0,anonymous:!0},o={key:!0,secondary:!0,ip:!0,country:!0,email:!0,firstName:!0,lastName:!0,avatar:!0,name:!0,anonymous:!0,custom:!0};return n.filterUser=function(e){if(!e)return null;var n=e.privateAttributeNames||[],a=function(e,o){return Object.keys(e).reduce((function(a,u){var s=a;return o(u)&&(!function(e){return!i[e]&&(t||-1!==n.indexOf(e)||-1!==r.indexOf(e))}(u)?s[0][u]=e[u]:s[1][u]=!0),s}),[{},{}])},u=a(e,(function(e){return o[e]})),s=u[0],c=u[1];if(e.custom){var l=a(e.custom,(function(){return!0}));s.custom=l[0],c=L({},c,l[1])}var f=Object.keys(c);return f.length&&(f.sort(),s.privateAttrs=f),s},n}function Q(e){return e&&e.message?e.message:"string"==typeof e||e instanceof String?e:JSON.stringify(e)}var Y=function(){return"LaunchDarkly client initialized"},Z=" Please see https://docs.launchdarkly.com/docs/js-sdk-reference#initializing-the-client for instructions on SDK initialization.",ee=function(){return"Exceeded event queue capacity. Increase capacity to avoid dropping events."},ne=function(){return"Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/docs/js-sdk-reference#section-analytics-events"},te=function(e){return'Expected application/json content type but got "'+e+'"'},re=function(){return"localStorage is unavailable"},ie=function(){return"localStorage is unavailable, so anonymous user ID cannot be cached"},oe=function(e){return"network error"+(e?" ("+e+")":"")},ae=function(e){return'Custom event "'+e+'" does not exist'},ue=function(){return"Environment not found. Double check that you specified a valid environment/client-side ID."+Z},se=function(){return"No environment/client-side ID was specified."+Z},ce=function(e){return"Error fetching flag settings: "+Q(e)},le=function(){return"No user specified."+Z},fe=function(){return"Invalid user specified."+Z},ve=function(){return"LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly."+Z},de=function(){return"LaunchDarkly bootstrap data is not available because the back end could not read the flags."},ge=function(e,n){return n?'"'+e+'" is deprecated, please use "'+n+'"':'"'+e+'" is deprecated'},me=function(e,n,t){return"Received error "+e+(401===e?" (invalid SDK key)":"")+" for "+n+" - "+(f(e)?t:"giving up permanently")},pe=function(){return"Cannot make HTTP requests in this environment."+Z},ye=function(){return"identify() has no effect here; it must be called on the main client instance"},he=function(){return"Closing stream connection"},be=function(e){return"Opening stream connection to "+e},ke=function(e,n){return"Error on stream connection: "+Q(e)+", will continue retrying every "+n+" milliseconds."},Ee=function(e){return'Ignoring unknown config option "'+e+'"'},we=function(e,n,t){return'Config option "'+e+'" should be of type '+n+", got "+t+", using default value"},De=function(e,n){return'Config option "'+e+'" should be a boolean, got '+n+", converting to boolean"},Se=function(e,n,t){return'Config option "'+e+'" was set to '+n+", changing to minimum value of "+t},Oe=function(e){return"polling for feature flags at "+e},Pe=function(){return"received ping message from stream"},Ue=function(){return"received streaming update for all flags"},Ie=function(e){return'received streaming update for flag "'+e+'"'},je=function(e){return'received streaming update for flag "'+e+'" but ignored due to version check'},Re=function(e){return'received streaming deletion for flag "'+e+'"'},Te=function(e){return'received streaming deletion for flag "'+e+'" but ignored due to version check'},Ne=function(e){return'enqueueing "'+e+'" event'},Fe=function(e){return"sending "+e+" events"},Ce=Object.freeze({__proto__:null,clientInitialized:Y,clientNotReady:function(){return"LaunchDarkly client is not ready"},eventCapacityExceeded:ee,eventWithoutUser:ne,invalidContentType:te,invalidKey:function(){return"Event key must be a string"},localStorageUnavailable:re,localStorageUnavailableForUserId:ie,networkError:oe,unknownCustomEventKey:ae,environmentNotFound:ue,environmentNotSpecified:se,errorFetchingFlags:ce,userNotSpecified:le,invalidUser:fe,bootstrapOldFormat:ve,bootstrapInvalid:de,deprecated:ge,httpErrorMessage:me,httpUnavailable:pe,identifyDisabled:ye,streamClosing:he,streamConnecting:be,streamError:ke,unknownOption:Ee,wrongOptionType:we,wrongOptionTypeBoolean:De,optionBelowMinimum:Se,debugPolling:Oe,debugStreamPing:Pe,debugStreamPut:Ue,debugStreamPatch:Ie,debugStreamPatchIgnored:je,debugStreamDelete:Re,debugStreamDeleteIgnored:Te,debugEnqueueingEvent:Ne,debugPostingEvents:Fe,debugPostingDiagnosticEvent:function(e){return"sending diagnostic event ("+e.kind+")"}});function Le(e){var n={},t={};return n.on=function(e,n,r){t[e]=t[e]||[],t[e]=t[e].concat({handler:n,context:r})},n.off=function(e,n,r){if(t[e])for(var i=0;i<t[e].length;i++)t[e][i].handler===n&&t[e][i].context===r&&(t[e]=t[e].slice(0,i).concat(t[e].slice(i+1)))},n.emit=function(e){if(t[e])for(var n=t[e].slice(0),r=0;r<n.length;r++)n[r].handler.apply(n[r].context,Array.prototype.slice.call(arguments,1))},n.getEvents=function(){return Object.keys(t)},n.getEventListenerCount=function(e){return t[e]?t[e].length:0},n.maybeReportError=function(n){n&&(t["error"]?this.emit("error",n):(e||console).error(n.message))},n}var Ae=function(e){var n=!1,t=!1,r=null,i=null,o=new Promise((function(n){e.on("ready",(function t(){e.off("ready",t),n()}))})).catch((function(){}));return{getInitializationPromise:function(){return i||(n?Promise.resolve():t?Promise.reject(r):i=new Promise((function(n,t){e.on("initialized",(function t(){e.off("initialized",t),n()})),e.on("failed",(function n(r){e.off("failed",n),t(r)}))})))},getReadyPromise:function(){return o},signalSuccess:function(){n||t||(n=!0,e.emit("initialized"),e.emit("ready"))},signalFailure:function(i){n||t||(t=!0,r=i,e.emit("failed",i),e.emit("ready")),e.maybeReportError(i)}}};function xe(e,n,t,r,i){var o={};function a(){var e="",i=r.getUser();return i&&(e=t||S(JSON.stringify(i))),"ld:"+n+":"+e}return o.loadFlags=function(){return e.get(a()).then((function(e){if(null==e)return null;try{var n=JSON.parse(e);if(n){var t=n.$schema;void 0===t||t<1?n=R(n):delete n.$schema}return n}catch(e){return o.clearFlags().then((function(){return Promise.reject(e)}))}})).catch((function(e){return i.warn("localStorage is unavailable"),Promise.reject(e)}))},o.saveFlags=function(n){var t=L({},n,{$schema:1});return e.set(a(),JSON.stringify(t)).catch((function(e){return i.warn("localStorage is unavailable"),Promise.reject(e)}))},o.clearFlags=function(){return e.clear(a()).catch((function(e){return i.warn("localStorage is unavailable"),Promise.reject(e)}))},o}function Ve(e,n,t,r){var i,o=n.streamUrl,a=n.logger,u={},s=o+"/eval/"+t,c=n.useReport,l=n.evaluationReasons,f=n.streamReconnectDelay,v=C(e,n),d=!1,g=null,m=null,p=null,y=null,h=null;function b(e){d||(a.warn(ke(e,f)),d=!0),D(!1),w(),k(f)}function k(e){m||(e?m=setTimeout(E,e):E())}function E(){var n;m=null;var r="",u={headers:v,readTimeoutMillis:3e5};if(e.eventSourceFactory){for(var f in null!=y&&(r="h="+y),c?e.eventSourceAllowsReport?(n=s,u.method="REPORT",u.headers["Content-Type"]="application/json",u.body=JSON.stringify(p)):(n=o+"/ping/"+t,r=""):n=s+"/"+O(JSON.stringify(p)),l&&(r=r+(r?"&":"")+"withReasons=true"),n=n+(r?"?":"")+r,w(),a.info(be(n)),i=(new Date).getTime(),g=e.eventSourceFactory(n,u),h)A(h,f)&&g.addEventListener(f,h[f]);g.onerror=b}}function w(){g&&(a.info("Closing stream connection"),g.close(),g=null)}function D(e){i&&r&&r.recordStreamInit(i,!e,(new Date).getTime()-i),i=null}return u.connect=function(e,n,t){p=e,y=n,h={};var r=function(e){h[e]=function(n){d=!1,D(!0),t[e]&&t[e](n)}};for(var i in t||{})r(i);k()},u.disconnect=function(){clearTimeout(m),m=null,w()},u.isConnected=function(){return!!(g&&e.eventSourceIsActive&&e.eventSourceIsActive(g))},u}function qe(e,n,t){var r=n.baseUrl,i=n.useReport,o=n.evaluationReasons,u=n.logger,s={},c={};function f(t,r){if(!e.httpRequest)return new Promise((function(e,n){n(new l(pe()))}));var i=r?"REPORT":"GET",o=C(e,n);r&&(o["Content-Type"]="application/json");var u=c[t];u||(u=function(e){var n,t,r,i,o={addPromise:function(o,a){n=o,t&&t(),t=a,o.then((function(t){n===o&&(r(t),e&&e())}),(function(t){n===o&&(i(t),e&&e())}))}};return o.resultPromise=new Promise((function(e,n){r=e,i=n})),o}((function(){delete c[t]})),c[t]=u);var s=e.httpRequest(i,t,o,r),f=s.promise.then((function(e){if(200===e.status){if(e.header("content-type")&&"application/json"===e.header("content-type").substring(0,"application/json".length))return JSON.parse(e.body);var n=te(e.header("content-type")||"");return Promise.reject(new l(n))}return Promise.reject(function(e){return 404===e.status?new a(ue()):new l(ce(e.statusText||String(e.status)))}(e))}),(function(e){return Promise.reject(new l(oe(e)))}));return u.addPromise(f,(function(){s.cancel&&s.cancel()})),u.resultPromise}return s.fetchJSON=function(e){return f(r+e,null)},s.fetchFlagSettings=function(e,n){var a,s,c,l="";return i?(s=[r,"/sdk/evalx/",t,"/user"].join(""),c=JSON.stringify(e)):(a=O(JSON.stringify(e)),s=[r,"/sdk/evalx/",t,"/users/",a].join("")),n&&(l="h="+n),o&&(l=l+(l?"&":"")+"withReasons=true"),s=s+(l?"?":"")+l,u.debug(Oe(s)),f(s,c)},s}function _e(e,n){var t={};return t.validateUser=function(t){if(!t)return Promise.reject(new u(le()));var r=P(t);return null!==r.key&&void 0!==r.key?(r.key=r.key.toString(),Promise.resolve(r)):r.anonymous?(e?e.get("ld:$anonUserId").catch((function(){return null})):Promise.resolve(null)).then((function(t){if(t)return r.key=t,r;var i=H();return r.key=i,function(t){return e?e.set("ld:$anonUserId",t).catch((function(){n.warn("localStorage is unavailable, so anonymous user ID cannot be cached")})):Promise.resolve()}(i).then((function(){return r}))})):Promise.reject(new u(fe()))},t}var Je={baseUrl:{default:"https://app.launchdarkly.com"},streamUrl:{default:"https://clientstream.launchdarkly.com"},eventsUrl:{default:"https://events.launchdarkly.com"},sendEvents:{default:!0},streaming:{type:"boolean"},sendLDHeaders:{default:!0},inlineUsersInEvents:{default:!1},allowFrequentDuplicateEvents:{default:!1},sendEventsOnlyForVariation:{default:!1},useReport:{default:!1},evaluationReasons:{default:!1},eventCapacity:{default:100,minimum:1},flushInterval:{default:2e3,minimum:2e3},samplingInterval:{default:0,minimum:0},streamReconnectDelay:{default:1e3,minimum:0},allAttributesPrivate:{default:!1},privateAttributeNames:{default:[]},bootstrap:{type:"string|object"},diagnosticRecordingInterval:{default:9e5,minimum:2e3},diagnosticOptOut:{default:!1},wrapperName:{type:"string"},wrapperVersion:{type:"string"},stateProvider:{type:"object"},autoAliasingOptOut:{default:!1}};function ze(n,t,r,i){var o=L({logger:{default:i}},Je,r),a={all_attributes_private:"allAttributesPrivate",private_attribute_names:"privateAttributeNames",samplingInterval:null};function u(e){I((function(){t&&t.maybeReportError(new c(e))}))}var s=L({},n||{});return function(e){var n=e;Object.keys(a).forEach((function(e){if(void 0!==n[e]){var t=a[e];i&&i.warn(ge(e,t)),t&&(void 0===n[t]&&(n[t]=n[e]),delete n[e])}}))}(s),s=function(n){var t=L({},n),r=function(n){if(null===n)return"any";if(void 0!==n){if(Array.isArray(n))return"array";var t=e(n);return"boolean"===t||"string"===t||"number"===t||"function"===t?t:"object"}};return Object.keys(n).forEach((function(e){var i=n[e];if(null!=i){var a=o[e];if(void 0===a)u(Ee(e));else{var s=a.type||r(a.default);if("any"!==s){var c=s.split("|"),l=r(i);c.indexOf(l)<0?"boolean"===s?(t[e]=!!i,u(De(e,l))):(u(we(e,s,l)),t[e]=a.default):"number"===l&&void 0!==a.minimum&&i<a.minimum&&(u(Se(e,i,a.minimum)),t[e]=a.minimum)}}}})),t}(s=function(e){var n=L({},e);return Object.keys(o).forEach((function(e){void 0!==n[e]&&null!==n[e]||(n[e]=o[e]&&o[e].default)})),n}(s))}var Me=Object.freeze({__proto__:null,baseOptionDefs:Je,validate:ze}).baseOptionDefs;var Ke=function(e){var n={diagnosticId:H()};return e&&(n.sdkKeySuffix=e.length>6?e.substring(e.length-6):e),n},Be=function(e){var n,t,r,i;function o(e){n=e,t=0,r=0,i=[]}return o(e),{getProps:function(){return{dataSinceDate:n,droppedEvents:t,eventsInLastBatch:r,streamInits:i}},setProps:function(e){n=e.dataSinceDate,t=e.droppedEvents||0,r=e.eventsInLastBatch||0,i=e.streamInits||[]},incrementDroppedEvents:function(){t++},setEventsInLastBatch:function(e){r=e},recordStreamInit:function(e,n,t){var r={timestamp:e,failed:n,durationMillis:t};i.push(r)},reset:o}},$e=function(e,n,t,i,o,a){var u,s,c=!!e.diagnosticUseCombinedEvent,l="ld:"+i+":$diagnostics",f=o.eventsUrl+"/events/diagnostic/"+i,v=o.diagnosticRecordingInterval,d=n,g=!!o.streaming,m={};function p(){return{sdk:b(),configuration:(n={customBaseURI:o.baseUrl!==Me.baseUrl.default,customStreamURI:o.streamUrl!==Me.streamUrl.default,customEventsURI:o.eventsUrl!==Me.eventsUrl.default,eventsCapacity:o.eventCapacity,eventsFlushIntervalMillis:o.flushInterval,reconnectTimeMillis:o.streamReconnectDelay,streamingDisabled:!g,allAttributesPrivate:!!o.allAttributesPrivate,inlineUsersInEvents:!!o.inlineUsersInEvents,diagnosticRecordingIntervalMillis:o.diagnosticRecordingInterval,usingSecureMode:!!o.hash,bootstrapMode:!!o.bootstrap,fetchGoalsDisabled:!o.fetchGoals,allowFrequentDuplicateEvents:!!o.allowFrequentDuplicateEvents,sendEventsOnlyForVariation:!!o.sendEventsOnlyForVariation,autoAliasingOptOut:!!o.autoAliasingOptOut},n),platform:e.diagnosticPlatformData};var n}function y(e){o.logger&&o.logger.debug(Ce.debugPostingDiagnosticEvent(e)),t.sendEvents(e,f,!0).then((function(){})).catch((function(){}))}function h(){var n,t;y((n=(new Date).getTime(),t=r({kind:c?"diagnostic-combined":"diagnostic",id:a,creationDate:n},d.getProps()),c&&(t=r({},t,{},p())),d.reset(n),t)),s=setTimeout(h,v),u=(new Date).getTime(),c&&function(){if(e.localStorage){var n=r({},d.getProps());e.localStorage.set(l,JSON.stringify(n),(function(){}))}}()}function b(){var n=r({},e.diagnosticSdkData);return o.wrapperName&&(n.wrapperName=o.wrapperName),o.wrapperVersion&&(n.wrapperVersion=o.wrapperVersion),n}return m.start=function(){c?function(n){if(!e.localStorage)return n(!1);e.localStorage.get(l).then((function(e){if(e)try{var t=JSON.parse(e);d.setProps(t),u=t.dataSinceDate}catch(e){}n(!0)})).catch((function(){n(!1)}))}((function(e){if(e){var n=(u||0)+v,t=(new Date).getTime();t>=n?h():s=setTimeout(h,n-t)}else 0===Math.floor(4*Math.random())?h():s=setTimeout(h,v)})):(y(r({kind:"diagnostic-init",id:a,creationDate:d.getProps().dataSinceDate},p())),s=setTimeout(h,v))},m.stop=function(){s&&clearTimeout(s)},m.setStreaming=function(e){g=e},m};function He(e,n){var t,r=["debug","info","warn","error"];t=null!=n?""===n?"":n+" ":"LD: ";var i=0;e&&(i="none"===e?100:r.indexOf(e));var o={};function a(e,n,o){if(e>=i&&console){var a=console[n];if(a){var u=e<r.length?r[e]:"?";a.call(console,t+"["+u+"] "+o)}}}return o.debug=function(e){return a(0,"log",e)},o.info=function(e){return a(1,"info",e)},o.warn=function(e){return a(2,"warn",e)},o.error=function(e){return a(3,"error",e)},o}function Ge(n,t,i,u,c){var v,d,g,m,p=function(){if(i&&i.logger)return i.logger;return c&&c.logger&&c.logger.default||He("warn")}(),y=Le(p),h=Ae(y),b=ze(i,y,c,p),k=b.sendEvents,E=n,w=b.hash,D=G(u,E,b),S=b.sendEvents&&!b.diagnosticOptOut,O=S?Ke(E):null,R=S?Be((new Date).getTime()):null,N=S?$e(u,R,D,E,b,O):null,F=Ve(u,b,E,R),C=b.eventProcessor||function(e,n,t){var r,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,u=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,s={},c=u||G(e,t,n),l=n.eventsUrl+"/events/bulk/"+t,v=X(),d=W(n),g=n.inlineUsersInEvents,m=n.samplingInterval,p=n.eventCapacity,y=n.flushInterval,h=n.logger,b=[],k=0,E=!1,w=!1;function D(){return 0===m||0===Math.floor(Math.random()*m)}function S(e){return!!e.debugEventsUntilDate&&(e.debugEventsUntilDate>k&&e.debugEventsUntilDate>(new Date).getTime())}function O(e){var n=L({},e);return"alias"===e.kind?n:(g||"identify"===e.kind?n.user=d.filterUser(e.user):(n.userKey=e.user.key,delete n.user),"feature"===e.kind&&(delete n.trackEvents,delete n.debugEventsUntilDate),n)}function P(e){b.length<p?(b.push(e),w=!1):(w||(w=!0,h.warn("Exceeded event queue capacity. Increase capacity to avoid dropping events.")),i&&i.incrementDroppedEvents())}return s.enqueue=function(e){if(!E){var n=!1,t=!1;if(v.summarizeEvent(e),"feature"===e.kind?D()&&(n=!!e.trackEvents,t=S(e)):n=D(),n&&P(O(e)),t){var r=L({},e,{kind:"debug"});r.user=d.filterUser(r.user),delete r.trackEvents,delete r.debugEventsUntilDate,P(r)}}},s.flush=function(){if(E)return Promise.resolve();var e=b,n=v.getSummary();return v.clearSummary(),n&&(n.kind="summary",e.push(n)),i&&i.setEventsInLastBatch(e.length),0===e.length?Promise.resolve():(b=[],h.debug(Fe(e.length)),c.sendEvents(e,l).then((function(e){e&&(e.serverTime&&(k=e.serverTime),f(e.status)||(E=!0),e.status>=400&&I((function(){a.maybeReportError(new o(me(e.status,"event posting","some events were dropped")))})))})))},s.start=function(){r=setTimeout((function e(){s.flush(),r=setTimeout(e,y)}),y)},s.stop=function(){clearTimeout(r)},s}(u,b,E,R,y,D),V=qe(u,b,E),q={},_={},J=b.streaming,z=!1,M=!1,K=!0,B=b.stateProvider,$=function(e,n){var t,r={};return r.setUser=function(e){var r=t&&P(t);(t=x(e))&&n&&n(P(t),r)},r.getUser=function(){return t?P(t):null},e&&r.setUser(e),r}(null,(function(e,n){(function(e){if(B)return;e&&Q({kind:"identify",key:e.key,user:e,creationDate:(new Date).getTime()})})(e),!b.autoAliasingOptOut&&n&&n.anonymous&&e&&!e.anonymous&&te(e,n)})),H=_e(u.localStorage,p);function Q(e){if(E&&!(B&&B.enqueueEvent&&B.enqueueEvent(e))){if("alias"!==e.kind){if(!e.user)return void(K&&(p.warn("Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/docs/js-sdk-reference#section-analytics-events"),K=!1));K=!1}!k||M||u.isDoNotTrack()||(p.debug(Ne(e.kind)),C.enqueue(e))}}function Y(e,n,t,r){var i=$.getUser(),o=new Date,a=n?n.value:null;if(!b.allowFrequentDuplicateEvents){var u=JSON.stringify(a)+(i&&i.key?i.key:"")+e,s=q[u];if(s&&o-s<3e5)return;q[u]=o}var c={kind:"feature",key:e,user:i,value:a,variation:n?n.variationIndex:null,default:t,creationDate:o.getTime()};i&&i.anonymous&&(c.contextKind=ne(i));var l=_[e];l&&(c.version=l.flagVersion?l.flagVersion:l.version,c.trackEvents=l.trackEvents,c.debugEventsUntilDate=l.debugEventsUntilDate),(r||l&&l.trackReason)&&n&&(c.reason=n.reason),Q(c)}function Z(e,n,t,r){var i;if(_&&A(_,e)&&_[e]&&!_[e].deleted){var o=_[e];i=ee(o),null!==o.value&&void 0!==o.value||(i.value=n)}else i={value:n,variationIndex:null,reason:{kind:"ERROR",errorKind:"FLAG_NOT_FOUND"}};return t&&Y(e,i,n,r),i}function ee(e){return{value:e.value,variationIndex:void 0===e.variation?null:e.variation,reason:e.reason||null}}function ne(e){return e.anonymous?"anonymousUser":"user"}function te(e,n){B||e&&n&&Q({kind:"alias",key:e.key,contextKind:ne(e),previousKey:n.key,previousContextKind:ne(n),creationDate:(new Date).getTime()})}function re(){d=!0,$.getUser()&&F.connect($.getUser(),w,{ping:function(){p.debug("received ping message from stream");var e=$.getUser();V.fetchFlagSettings(e,w).then((function(n){U(e,$.getUser())&&oe(n||{})})).catch((function(e){y.maybeReportError(new l(ce(e)))}))},put:function(e){var n=JSON.parse(e.data);p.debug("received streaming update for all flags"),oe(n)},patch:function(e){var n=JSON.parse(e.data),t=_[n.key];if(!t||!t.version||!n.version||t.version<n.version){p.debug(Ie(n.key));var r={},i=L({},n);delete i.key,_[n.key]=i;var o=ee(i);r[n.key]=t?{previous:t.value,current:o}:{current:o},ue(r)}else p.debug(je(n.key))},delete:function(e){var n=JSON.parse(e.data);if(!_[n.key]||_[n.key].version<n.version){p.debug(Re(n.key));var t={};_[n.key]&&!_[n.key].deleted&&(t[n.key]={previous:_[n.key].value}),_[n.key]={version:n.version,deleted:!0},ue(t)}else p.debug(Te(n.key))}})}function ie(){d&&(F.disconnect(),d=!1)}function oe(e){var n={};if(!e)return Promise.resolve();for(var t in _)A(_,t)&&_[t]&&(e[t]&&!U(e[t].value,_[t].value)?n[t]={previous:_[t].value,current:ee(e[t])}:e[t]&&!e[t].deleted||(n[t]={previous:_[t].value}));for(var i in e)A(e,i)&&e[i]&&(!_[i]||_[i].deleted)&&(n[i]={current:ee(e[i])});return _=r({},e),ue(n).catch((function(){}))}function ue(e){var n=Object.keys(e);if(n.length>0){var t={};n.forEach((function(n){var r=e[n].current,i=r?r.value:void 0,o=e[n].previous;y.emit("change:"+n,i,o),t[n]=r?{current:i,previous:o}:{previous:o}})),y.emit("change",t),y.emit("internal-change",_),b.sendEventsOnlyForVariation||B||n.forEach((function(n){Y(n,e[n].current)}))}return v&&m?m.saveFlags(_).catch((function(){return null})):Promise.resolve()}function le(){var e=J||g&&void 0===J;e&&!d?re():!e&&d&&ie(),N&&N.setStreaming(e)}function fe(e){return"change"===e||"change:"===e.substr(0,"change".length+1)}if(u.localStorage&&(m=new xe(u.localStorage,E,w,$,p)),"string"==typeof b.bootstrap&&"LOCALSTORAGE"===b.bootstrap.toUpperCase()&&(m?v=!0:p.warn("localStorage is unavailable")),"object"===e(b.bootstrap)&&(_=function(e){var n=Object.keys(e),t=e.$flagsState;!t&&n.length&&p.warn(ve()),!1===e.$valid&&p.warn("LaunchDarkly bootstrap data is not available because the back end could not read the flags.");var r={};return n.forEach((function(n){if("$flagsState"!==n&&"$valid"!==n){var i={value:e[n]};t&&t[n]?i=L(i,t[n]):i.version=0,r[n]=i}})),r}(b.bootstrap)),B){var de=B.getInitialState();de?ge(de):B.on("init",ge),B.on("update",(function(e){e.user&&$.setUser(e.user);e.flags&&oe(e.flags)}))}else(function(){if(!n)return Promise.reject(new a(se()));return H.validateUser(t).then((function(n){return $.setUser(n),"object"===e(b.bootstrap)?pe():v?m.loadFlags().catch((function(){return null})).then((function(e){return null==e?(_={},V.fetchFlagSettings($.getUser(),w).then((function(e){return oe(e||{})})).then(pe).catch((function(e){ye(new l(ce(e)))}))):(_=e,I(pe),V.fetchFlagSettings($.getUser(),w).then((function(e){return oe(e)})).catch((function(e){return y.maybeReportError(e)})))})):V.fetchFlagSettings($.getUser(),w).then((function(e){_=e||{},pe()})).catch((function(e){_={},ye(e)}))}))})().catch(ye);function ge(e){E=e.environment,$.setUser(e.user),_=r({},e.flags),I(pe)}function pe(){p.info("LaunchDarkly client initialized"),z=!0,le(),h.signalSuccess()}function ye(e){h.signalFailure(e)}return{client:{waitForInitialization:function(){return h.getInitializationPromise()},waitUntilReady:function(){return h.getReadyPromise()},identify:function(e,n,t){return M?j(Promise.resolve({}),t):B?(p.warn("identify() has no effect here; it must be called on the main client instance"),j(Promise.resolve(T(_)),t)):j((v&&m?m.clearFlags():Promise.resolve()).then((function(){return H.validateUser(e)})).then((function(e){return V.fetchFlagSettings(e,n).then((function(t){var r=T(t);return $.setUser(e),w=n,t?oe(t).then((function(){return r})):r}))})).then((function(e){return d&&re(),e})).catch((function(e){return y.maybeReportError(e),Promise.reject(e)})),t)},getUser:function(){return $.getUser()},variation:function(e,n){return Z(e,n,!0,!1).value},variationDetail:function(e,n){return Z(e,n,!0,!0)},track:function(e,n,t){if("string"==typeof e){u.customEventFilter&&!u.customEventFilter(e)&&p.warn(ae(e));var r=$.getUser(),i={kind:"custom",key:e,user:r,url:u.getCurrentUrl(),creationDate:(new Date).getTime()};r&&r.anonymous&&(i.contextKind=ne(r)),null!=n&&(i.data=n),null!=t&&(i.metricValue=t),Q(i)}else y.maybeReportError(new s(ae(e)))},alias:te,on:function(e,n,t){fe(e)?(g=!0,z&&le(),y.on(e,n,t)):y.on.apply(y,arguments)},off:function(e){if(y.off.apply(y,arguments),fe(e)){var n=!1;y.getEvents().forEach((function(e){fe(e)&&y.getEventListenerCount(e)>0&&(n=!0)})),n||(g=!1,d&&void 0===J&&ie())}},setStreaming:function(e){var n=null===e?void 0:e;n!==J&&(J=n,le())},flush:function(e){return j(k?C.flush():Promise.resolve(),e)},allFlags:function(){var e={};if(!_)return e;for(var n in _)A(_,n)&&(e[n]=Z(n,null,!b.sendEventsOnlyForVariation).value);return e},close:function(e){if(M)return j(Promise.resolve(),e);var n=function(){M=!0,_={}};return j(Promise.resolve().then((function(){if(ie(),N&&N.stop(),k)return C.stop(),C.flush()})).then(n).catch(n),e)}},options:b,emitter:y,ident:$,logger:p,requestor:V,start:function(){k&&(N&&N.start(),C.start())},enqueueEvent:Q,getFlagsInternal:function(){return _},getEnvironmentId:function(){return E},internalChangeEventName:"internal-change"}}var Xe="3.3.2";export{He as createConsoleLogger,v as errors,Ge as initialize,Ce as messages,V as utils,Xe as version};
function e(n){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(n)}function n(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function t(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function r(e){for(var r=1;r<arguments.length;r++){var i=null!=arguments[r]?arguments[r]:{};r%2?t(i,!0).forEach((function(t){n(e,t,i[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(i)):t(i).forEach((function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(i,n))}))}return e}function i(e){function n(e,n){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.message=e,this.code=n}return n.prototype=new Error,n.prototype.name=e,n.prototype.constructor=n,n}var a=i("LaunchDarklyUnexpectedResponseError"),o=i("LaunchDarklyInvalidEnvironmentIdError"),u=i("LaunchDarklyInvalidUserError"),s=i("LaunchDarklyInvalidEventKeyError"),c=i("LaunchDarklyInvalidArgumentError"),l=i("LaunchDarklyFlagFetchError");function f(e){return!(e>=400&&e<500)||(400===e||408===e||429===e)}for(var v=Object.freeze({__proto__:null,LDUnexpectedResponseError:a,LDInvalidEnvironmentIdError:o,LDInvalidUserError:u,LDInvalidEventKeyError:s,LDInvalidArgumentError:c,LDFlagFetchError:l,isHttpErrorRecoverable:f}),d=function(e){for(var n,t=e.length,r=t%3,i=[],a=0,o=t-r;a<o;a+=16383)i.push(b(e,a,a+16383>o?o:a+16383));1===r?(n=e[t-1],i.push(g[n>>2]+g[n<<4&63]+"==")):2===r&&(n=(e[t-2]<<8)+e[t-1],i.push(g[n>>10]+g[n>>4&63]+g[n<<2&63]+"="));return i.join("")},g=[],p=[],m="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",h=0,y=m.length;h<y;++h)g[h]=m[h],p[m.charCodeAt(h)]=h;function b(e,n,t){for(var r,i,a=[],o=n;o<t;o+=3)r=(e[o]<<16&16711680)+(e[o+1]<<8&65280)+(255&e[o+2]),a.push(g[(i=r)>>18&63]+g[i>>12&63]+g[i>>6&63]+g[63&i]);return a.join("")}p["-".charCodeAt(0)]=62,p["_".charCodeAt(0)]=63;var k=Array.isArray,E=Object.keys,w=Object.prototype.hasOwnProperty,D=["key","secondary","ip","country","email","firstName","lastName","avatar","name"];function S(e){var n=unescape(encodeURIComponent(e));return d(function(e){for(var n=[],t=0;t<e.length;t++)n.push(e.charCodeAt(t));return n}(n))}function U(e){return S(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function O(e){return JSON.parse(JSON.stringify(e))}function P(e,n){return function e(n,t){if(n===t)return!0;if(n&&t&&"object"==typeof n&&"object"==typeof t){var r,i,a,o=k(n),u=k(t);if(o&&u){if((i=n.length)!=t.length)return!1;for(r=i;0!=r--;)if(!e(n[r],t[r]))return!1;return!0}if(o!=u)return!1;var s=n instanceof Date,c=t instanceof Date;if(s!=c)return!1;if(s&&c)return n.getTime()==t.getTime();var l=n instanceof RegExp,f=t instanceof RegExp;if(l!=f)return!1;if(l&&f)return n.toString()==t.toString();var v=E(n);if((i=v.length)!==E(t).length)return!1;for(r=i;0!=r--;)if(!w.call(t,v[r]))return!1;for(r=i;0!=r--;)if(!e(n[a=v[r]],t[a]))return!1;return!0}return n!=n&&t!=t}(e,n)}function I(e){setTimeout(e,0)}function j(e,n){var t=e.then((function(e){return n&&setTimeout((function(){n(null,e)}),0),e}),(function(e){if(!n)return Promise.reject(e);setTimeout((function(){n(e,null)}),0)}));return n?void 0:t}function R(e){var n={};for(var t in e)L(e,t)&&(n[t]={value:e[t],version:0});return n}function T(e){var n={};for(var t in e)L(e,t)&&(n[t]=e[t].value);return n}function A(e,n){for(var t,r=n.slice(0),i=[],a=e;r.length>0;){for(t=[];a>0;){var o=r.shift();if(!o)break;(a-=U(JSON.stringify(o)).length)<0&&t.length>0?r.unshift(o):t.push(o)}a=e,i.push(t)}return i}function N(e){var n=e.version||"3.3.3";return e.userAgent+"/"+n}function C(e,n){if(n&&!n.sendLDHeaders)return{};var t={"X-LaunchDarkly-User-Agent":N(e)};return n&&n.wrapperName&&(t["X-LaunchDarkly-Wrapper"]=n.wrapperVersion?n.wrapperName+"/"+n.wrapperVersion:n.wrapperName),t}function F(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return n.reduce((function(e,n){return r({},e,{},n)}),{})}function L(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function x(e){if(!e)return e;var n;for(var t in D){var i=D[t],a=e[i];void 0!==a&&"string"!=typeof a&&((n=n||r({},e))[i]=String(a))}return n||e}var _=Object.freeze({__proto__:null,btoa:S,base64URLEncode:U,clone:O,deepEquals:P,onNextTick:I,wrapPromiseCallback:j,transformValuesToVersionedValues:R,transformVersionedValuesToValues:T,chunkUserEventsForUrl:A,getLDUserAgentString:N,getLDHeaders:C,extend:F,objectHasOwnProperty:L,sanitizeUser:x}),q=require("uuid").v1;function V(e,n,t){var r="/a/"+n+".gif",i=F({"Content-Type":"application/json"},C(e,t)),a=e.httpFallbackPing,o={};return o.sendChunk=function(n,t,o,u){var s=JSON.stringify(n),c=o?null:q();return u?function n(r){var a=o?i:F({},i,{"X-LaunchDarkly-Event-Schema":"3","X-LaunchDarkly-Payload-ID":c});return e.httpRequest("POST",t,a,s).promise.then((function(e){if(e)return e.status>=400&&f(e.status)&&r?n(!1):function(e){var n={status:e.status},t=e.header("date");if(t){var r=Date.parse(t);r&&(n.serverTime=r)}return n}(e)})).catch((function(){return r?n(!1):Promise.reject()}))}(!0).catch((function(){})):(a&&a(t+r+"?d="+U(s)),Promise.resolve())},o.sendEvents=function(n,t,r){if(!e.httpRequest)return Promise.resolve();var i,a=e.httpAllowsPost();i=a?[n]:A(2e3-t.length,n);for(var u=[],s=0;s<i.length;s++)u.push(o.sendChunk(i[s],t,r,a));return Promise.all(u)},o}function z(){var e={},n=0,t=0,r={};return e.summarizeEvent=function(e){if("feature"===e.kind){var i=e.key+":"+(null!==e.variation&&void 0!==e.variation?e.variation:"")+":"+(null!==e.version&&void 0!==e.version?e.version:""),a=r[i];a?a.count=a.count+1:r[i]={count:1,key:e.key,variation:e.variation,version:e.version,value:e.value,default:e.default},(0===n||e.creationDate<n)&&(n=e.creationDate),e.creationDate>t&&(t=e.creationDate)}},e.getSummary=function(){var e={},i=!0;for(var a in r){var o=r[a],u=e[o.key];u||(u={default:o.default,counters:[]},e[o.key]=u);var s={value:o.value,count:o.count};void 0!==o.variation&&null!==o.variation&&(s.variation=o.variation),o.version?s.version=o.version:s.unknown=!0,u.counters.push(s),i=!1}return i?null:{startDate:n,endDate:t,features:e}},e.clearSummary=function(){n=0,t=0,r={}},e}function J(e){var n={},t=e.allAttributesPrivate,r=e.privateAttributeNames||[],i={key:!0,custom:!0,anonymous:!0},a={key:!0,secondary:!0,ip:!0,country:!0,email:!0,firstName:!0,lastName:!0,avatar:!0,name:!0,anonymous:!0,custom:!0};return n.filterUser=function(e){if(!e)return null;var n=e.privateAttributeNames||[],o=function(e,a){return Object.keys(e).reduce((function(o,u){var s=o;return a(u)&&(!function(e){return!i[e]&&(t||-1!==n.indexOf(e)||-1!==r.indexOf(e))}(u)?s[0][u]=e[u]:s[1][u]=!0),s}),[{},{}])},u=o(e,(function(e){return a[e]})),s=u[0],c=u[1];if(e.custom){var l=o(e.custom,(function(){return!0}));s.custom=l[0],c=F({},c,l[1])}var f=Object.keys(c);return f.length&&(f.sort(),s.privateAttrs=f),s},n}function M(e){return e&&e.message?e.message:"string"==typeof e||e instanceof String?e:JSON.stringify(e)}var K=function(){return"LaunchDarkly client initialized"},$=" Please see https://docs.launchdarkly.com/sdk/client-side/javascript#initializing-the-client for instructions on SDK initialization.",B=function(){return"Exceeded event queue capacity. Increase capacity to avoid dropping events."},H=function(){return"Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript"},G=function(e){return'Expected application/json content type but got "'+e+'"'},X=function(){return"localStorage is unavailable"},W=function(){return"localStorage is unavailable, so anonymous user ID cannot be cached"},Q=function(e){return"network error"+(e?" ("+e+")":"")},Y=function(e){return'Custom event "'+e+'" does not exist'},Z=function(){return"Environment not found. Double check that you specified a valid environment/client-side ID."+$},ee=function(){return"No environment/client-side ID was specified."+$},ne=function(e){return"Error fetching flag settings: "+M(e)},te=function(){return"No user specified."+$},re=function(){return"Invalid user specified."+$},ie=function(){return"LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly."+$},ae=function(){return"LaunchDarkly bootstrap data is not available because the back end could not read the flags."},oe=function(e,n){return n?'"'+e+'" is deprecated, please use "'+n+'"':'"'+e+'" is deprecated'},ue=function(e,n,t){return"Received error "+e+(401===e?" (invalid SDK key)":"")+" for "+n+" - "+(f(e)?t:"giving up permanently")},se=function(){return"Cannot make HTTP requests in this environment."+$},ce=function(){return"identify() has no effect here; it must be called on the main client instance"},le=function(){return"Closing stream connection"},fe=function(e){return"Opening stream connection to "+e},ve=function(e,n){return"Error on stream connection: "+M(e)+", will continue retrying every "+n+" milliseconds."},de=function(e){return'Ignoring unknown config option "'+e+'"'},ge=function(e,n,t){return'Config option "'+e+'" should be of type '+n+", got "+t+", using default value"},pe=function(e,n){return'Config option "'+e+'" should be a boolean, got '+n+", converting to boolean"},me=function(e,n,t){return'Config option "'+e+'" was set to '+n+", changing to minimum value of "+t},he=function(e){return"polling for feature flags at "+e},ye=function(){return"received ping message from stream"},be=function(){return"received streaming update for all flags"},ke=function(e){return'received streaming update for flag "'+e+'"'},Ee=function(e){return'received streaming update for flag "'+e+'" but ignored due to version check'},we=function(e){return'received streaming deletion for flag "'+e+'"'},De=function(e){return'received streaming deletion for flag "'+e+'" but ignored due to version check'},Se=function(e){return'enqueueing "'+e+'" event'},Ue=function(e){return"sending "+e+" events"},Oe=Object.freeze({__proto__:null,clientInitialized:K,clientNotReady:function(){return"LaunchDarkly client is not ready"},eventCapacityExceeded:B,eventWithoutUser:H,invalidContentType:G,invalidKey:function(){return"Event key must be a string"},localStorageUnavailable:X,localStorageUnavailableForUserId:W,networkError:Q,unknownCustomEventKey:Y,environmentNotFound:Z,environmentNotSpecified:ee,errorFetchingFlags:ne,userNotSpecified:te,invalidUser:re,bootstrapOldFormat:ie,bootstrapInvalid:ae,deprecated:oe,httpErrorMessage:ue,httpUnavailable:se,identifyDisabled:ce,streamClosing:le,streamConnecting:fe,streamError:ve,unknownOption:de,wrongOptionType:ge,wrongOptionTypeBoolean:pe,optionBelowMinimum:me,debugPolling:he,debugStreamPing:ye,debugStreamPut:be,debugStreamPatch:ke,debugStreamPatchIgnored:Ee,debugStreamDelete:we,debugStreamDeleteIgnored:De,debugEnqueueingEvent:Se,debugPostingEvents:Ue,debugPostingDiagnosticEvent:function(e){return"sending diagnostic event ("+e.kind+")"}});function Pe(e){var n={},t={};return n.on=function(e,n,r){t[e]=t[e]||[],t[e]=t[e].concat({handler:n,context:r})},n.off=function(e,n,r){if(t[e])for(var i=0;i<t[e].length;i++)t[e][i].handler===n&&t[e][i].context===r&&(t[e]=t[e].slice(0,i).concat(t[e].slice(i+1)))},n.emit=function(e){if(t[e])for(var n=t[e].slice(0),r=0;r<n.length;r++)n[r].handler.apply(n[r].context,Array.prototype.slice.call(arguments,1))},n.getEvents=function(){return Object.keys(t)},n.getEventListenerCount=function(e){return t[e]?t[e].length:0},n.maybeReportError=function(n){n&&(t["error"]?this.emit("error",n):(e||console).error(n.message))},n}var Ie=function(e){var n=!1,t=!1,r=null,i=null,a=new Promise((function(n){e.on("ready",(function t(){e.off("ready",t),n()}))})).catch((function(){}));return{getInitializationPromise:function(){return i||(n?Promise.resolve():t?Promise.reject(r):i=new Promise((function(n,t){e.on("initialized",(function t(){e.off("initialized",t),n()})),e.on("failed",(function n(r){e.off("failed",n),t(r)}))})))},getReadyPromise:function(){return a},signalSuccess:function(){n||t||(n=!0,e.emit("initialized"),e.emit("ready"))},signalFailure:function(i){n||t||(t=!0,r=i,e.emit("failed",i),e.emit("ready")),e.maybeReportError(i)}}};function je(e,n,t,r,i){var a={};function o(){var e="",i=r.getUser();return i&&(e=t||S(JSON.stringify(i))),"ld:"+n+":"+e}return a.loadFlags=function(){return e.get(o()).then((function(e){if(null==e)return null;try{var n=JSON.parse(e);if(n){var t=n.$schema;void 0===t||t<1?n=R(n):delete n.$schema}return n}catch(e){return a.clearFlags().then((function(){return Promise.reject(e)}))}})).catch((function(e){return i.warn("localStorage is unavailable"),Promise.reject(e)}))},a.saveFlags=function(n){var t=F({},n,{$schema:1});return e.set(o(),JSON.stringify(t)).catch((function(e){return i.warn("localStorage is unavailable"),Promise.reject(e)}))},a.clearFlags=function(){return e.clear(o()).catch((function(e){return i.warn("localStorage is unavailable"),Promise.reject(e)}))},a}function Re(e,n,t,r){var i,a=n.streamUrl,o=n.logger,u={},s=a+"/eval/"+t,c=n.useReport,l=n.evaluationReasons,f=n.streamReconnectDelay,v=C(e,n),d=!1,g=null,p=null,m=null,h=null,y=null;function b(e){d||(o.warn(ve(e,f)),d=!0),D(!1),w(),k(f)}function k(e){p||(e?p=setTimeout(E,e):E())}function E(){var n;p=null;var r="",u={headers:v,readTimeoutMillis:3e5};if(e.eventSourceFactory){for(var f in null!=h&&(r="h="+h),c?e.eventSourceAllowsReport?(n=s,u.method="REPORT",u.headers["Content-Type"]="application/json",u.body=JSON.stringify(m)):(n=a+"/ping/"+t,r=""):n=s+"/"+U(JSON.stringify(m)),l&&(r=r+(r?"&":"")+"withReasons=true"),n=n+(r?"?":"")+r,w(),o.info(fe(n)),i=(new Date).getTime(),g=e.eventSourceFactory(n,u),y)L(y,f)&&g.addEventListener(f,y[f]);g.onerror=b}}function w(){g&&(o.info("Closing stream connection"),g.close(),g=null)}function D(e){i&&r&&r.recordStreamInit(i,!e,(new Date).getTime()-i),i=null}return u.connect=function(e,n,t){m=e,h=n,y={};var r=function(e){y[e]=function(n){d=!1,D(!0),t[e]&&t[e](n)}};for(var i in t||{})r(i);k()},u.disconnect=function(){clearTimeout(p),p=null,w()},u.isConnected=function(){return!!(g&&e.eventSourceIsActive&&e.eventSourceIsActive(g))},u}function Te(e,n,t){var r=n.baseUrl,i=n.useReport,a=n.evaluationReasons,u=n.logger,s={},c={};function f(t,r){if(!e.httpRequest)return new Promise((function(e,n){n(new l(se()))}));var i=r?"REPORT":"GET",a=C(e,n);r&&(a["Content-Type"]="application/json");var u=c[t];u||(u=function(e){var n,t,r,i,a={addPromise:function(a,o){n=a,t&&t(),t=o,a.then((function(t){n===a&&(r(t),e&&e())}),(function(t){n===a&&(i(t),e&&e())}))}};return a.resultPromise=new Promise((function(e,n){r=e,i=n})),a}((function(){delete c[t]})),c[t]=u);var s=e.httpRequest(i,t,a,r),f=s.promise.then((function(e){if(200===e.status){if(e.header("content-type")&&"application/json"===e.header("content-type").substring(0,"application/json".length))return JSON.parse(e.body);var n=G(e.header("content-type")||"");return Promise.reject(new l(n))}return Promise.reject(function(e){return 404===e.status?new o(Z()):new l(ne(e.statusText||String(e.status)))}(e))}),(function(e){return Promise.reject(new l(Q(e)))}));return u.addPromise(f,(function(){s.cancel&&s.cancel()})),u.resultPromise}return s.fetchJSON=function(e){return f(r+e,null)},s.fetchFlagSettings=function(e,n){var o,s,c,l="";return i?(s=[r,"/sdk/evalx/",t,"/user"].join(""),c=JSON.stringify(e)):(o=U(JSON.stringify(e)),s=[r,"/sdk/evalx/",t,"/users/",o].join("")),n&&(l="h="+n),a&&(l=l+(l?"&":"")+"withReasons=true"),s=s+(l?"?":"")+l,u.debug(he(s)),f(s,c)},s}var Ae=require("uuid").v1;function Ne(e,n){var t={};return t.validateUser=function(t){if(!t)return Promise.reject(new u(te()));var r=O(t);return null!==r.key&&void 0!==r.key?(r.key=r.key.toString(),Promise.resolve(r)):r.anonymous?(e?e.get("ld:$anonUserId").catch((function(){return null})):Promise.resolve(null)).then((function(t){if(t)return r.key=t,r;var i=Ae();return r.key=i,function(t){return e?e.set("ld:$anonUserId",t).catch((function(){n.warn("localStorage is unavailable, so anonymous user ID cannot be cached")})):Promise.resolve()}(i).then((function(){return r}))})):Promise.reject(new u(re()))},t}var Ce={baseUrl:{default:"https://app.launchdarkly.com"},streamUrl:{default:"https://clientstream.launchdarkly.com"},eventsUrl:{default:"https://events.launchdarkly.com"},sendEvents:{default:!0},streaming:{type:"boolean"},sendLDHeaders:{default:!0},inlineUsersInEvents:{default:!1},allowFrequentDuplicateEvents:{default:!1},sendEventsOnlyForVariation:{default:!1},useReport:{default:!1},evaluationReasons:{default:!1},eventCapacity:{default:100,minimum:1},flushInterval:{default:2e3,minimum:2e3},samplingInterval:{default:0,minimum:0},streamReconnectDelay:{default:1e3,minimum:0},allAttributesPrivate:{default:!1},privateAttributeNames:{default:[]},bootstrap:{type:"string|object"},diagnosticRecordingInterval:{default:9e5,minimum:2e3},diagnosticOptOut:{default:!1},wrapperName:{type:"string"},wrapperVersion:{type:"string"},stateProvider:{type:"object"},autoAliasingOptOut:{default:!1}};function Fe(n,t,r,i){var a=F({logger:{default:i}},Ce,r),o={all_attributes_private:"allAttributesPrivate",private_attribute_names:"privateAttributeNames",samplingInterval:null};function u(e){I((function(){t&&t.maybeReportError(new c(e))}))}var s=F({},n||{});return function(e){var n=e;Object.keys(o).forEach((function(e){if(void 0!==n[e]){var t=o[e];i&&i.warn(oe(e,t)),t&&(void 0===n[t]&&(n[t]=n[e]),delete n[e])}}))}(s),s=function(n){var t=F({},n),r=function(n){if(null===n)return"any";if(void 0!==n){if(Array.isArray(n))return"array";var t=e(n);return"boolean"===t||"string"===t||"number"===t||"function"===t?t:"object"}};return Object.keys(n).forEach((function(e){var i=n[e];if(null!=i){var o=a[e];if(void 0===o)u(de(e));else{var s=o.type||r(o.default);if("any"!==s){var c=s.split("|"),l=r(i);c.indexOf(l)<0?"boolean"===s?(t[e]=!!i,u(pe(e,l))):(u(ge(e,s,l)),t[e]=o.default):"number"===l&&void 0!==o.minimum&&i<o.minimum&&(u(me(e,i,o.minimum)),t[e]=o.minimum)}}}})),t}(s=function(e){var n=F({},e);return Object.keys(a).forEach((function(e){void 0!==n[e]&&null!==n[e]||(n[e]=a[e]&&a[e].default)})),n}(s))}var Le,xe=Object.freeze({__proto__:null,baseOptionDefs:Ce,validate:Fe}),_e=new Uint8Array(16);function qe(){if(!Le&&!(Le="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Le(_e)}var Ve=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function ze(e){return"string"==typeof e&&Ve.test(e)}for(var Je,Me,Ke=[],$e=0;$e<256;++$e)Ke.push(($e+256).toString(16).substr(1));function Be(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=(Ke[e[n+0]]+Ke[e[n+1]]+Ke[e[n+2]]+Ke[e[n+3]]+"-"+Ke[e[n+4]]+Ke[e[n+5]]+"-"+Ke[e[n+6]]+Ke[e[n+7]]+"-"+Ke[e[n+8]]+Ke[e[n+9]]+"-"+Ke[e[n+10]]+Ke[e[n+11]]+Ke[e[n+12]]+Ke[e[n+13]]+Ke[e[n+14]]+Ke[e[n+15]]).toLowerCase();if(!ze(t))throw TypeError("Stringified UUID is invalid");return t}var He=0,Ge=0;function Xe(e){if(!ze(e))throw TypeError("Invalid UUID");var n,t=new Uint8Array(16);return t[0]=(n=parseInt(e.slice(0,8),16))>>>24,t[1]=n>>>16&255,t[2]=n>>>8&255,t[3]=255&n,t[4]=(n=parseInt(e.slice(9,13),16))>>>8,t[5]=255&n,t[6]=(n=parseInt(e.slice(14,18),16))>>>8,t[7]=255&n,t[8]=(n=parseInt(e.slice(19,23),16))>>>8,t[9]=255&n,t[10]=(n=parseInt(e.slice(24,36),16))/1099511627776&255,t[11]=n/4294967296&255,t[12]=n>>>24&255,t[13]=n>>>16&255,t[14]=n>>>8&255,t[15]=255&n,t}function We(e,n,t){function r(e,r,i,a){if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var n=[],t=0;t<e.length;++t)n.push(e.charCodeAt(t));return n}(e)),"string"==typeof r&&(r=Xe(r)),16!==r.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var o=new Uint8Array(16+e.length);if(o.set(r),o.set(e,r.length),(o=t(o))[6]=15&o[6]|n,o[8]=63&o[8]|128,i){a=a||0;for(var u=0;u<16;++u)i[a+u]=o[u];return i}return Be(o)}try{r.name=e}catch(e){}return r.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",r.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",r}function Qe(e){return 14+(e+64>>>9<<4)+1}function Ye(e,n){var t=(65535&e)+(65535&n);return(e>>16)+(n>>16)+(t>>16)<<16|65535&t}function Ze(e,n,t,r,i,a){return Ye((o=Ye(Ye(n,e),Ye(r,a)))<<(u=i)|o>>>32-u,t);var o,u}function en(e,n,t,r,i,a,o){return Ze(n&t|~n&r,e,n,i,a,o)}function nn(e,n,t,r,i,a,o){return Ze(n&r|t&~r,e,n,i,a,o)}function tn(e,n,t,r,i,a,o){return Ze(n^t^r,e,n,i,a,o)}function rn(e,n,t,r,i,a,o){return Ze(t^(n|~r),e,n,i,a,o)}var an=We("v3",48,(function(e){if("string"==typeof e){var n=unescape(encodeURIComponent(e));e=new Uint8Array(n.length);for(var t=0;t<n.length;++t)e[t]=n.charCodeAt(t)}return function(e){for(var n=[],t=32*e.length,r=0;r<t;r+=8){var i=e[r>>5]>>>r%32&255,a=parseInt("0123456789abcdef".charAt(i>>>4&15)+"0123456789abcdef".charAt(15&i),16);n.push(a)}return n}(function(e,n){e[n>>5]|=128<<n%32,e[Qe(n)-1]=n;for(var t=1732584193,r=-271733879,i=-1732584194,a=271733878,o=0;o<e.length;o+=16){var u=t,s=r,c=i,l=a;t=en(t,r,i,a,e[o],7,-680876936),a=en(a,t,r,i,e[o+1],12,-389564586),i=en(i,a,t,r,e[o+2],17,606105819),r=en(r,i,a,t,e[o+3],22,-1044525330),t=en(t,r,i,a,e[o+4],7,-176418897),a=en(a,t,r,i,e[o+5],12,1200080426),i=en(i,a,t,r,e[o+6],17,-1473231341),r=en(r,i,a,t,e[o+7],22,-45705983),t=en(t,r,i,a,e[o+8],7,1770035416),a=en(a,t,r,i,e[o+9],12,-1958414417),i=en(i,a,t,r,e[o+10],17,-42063),r=en(r,i,a,t,e[o+11],22,-1990404162),t=en(t,r,i,a,e[o+12],7,1804603682),a=en(a,t,r,i,e[o+13],12,-40341101),i=en(i,a,t,r,e[o+14],17,-1502002290),r=en(r,i,a,t,e[o+15],22,1236535329),t=nn(t,r,i,a,e[o+1],5,-165796510),a=nn(a,t,r,i,e[o+6],9,-1069501632),i=nn(i,a,t,r,e[o+11],14,643717713),r=nn(r,i,a,t,e[o],20,-373897302),t=nn(t,r,i,a,e[o+5],5,-701558691),a=nn(a,t,r,i,e[o+10],9,38016083),i=nn(i,a,t,r,e[o+15],14,-660478335),r=nn(r,i,a,t,e[o+4],20,-405537848),t=nn(t,r,i,a,e[o+9],5,568446438),a=nn(a,t,r,i,e[o+14],9,-1019803690),i=nn(i,a,t,r,e[o+3],14,-187363961),r=nn(r,i,a,t,e[o+8],20,1163531501),t=nn(t,r,i,a,e[o+13],5,-1444681467),a=nn(a,t,r,i,e[o+2],9,-51403784),i=nn(i,a,t,r,e[o+7],14,1735328473),r=nn(r,i,a,t,e[o+12],20,-1926607734),t=tn(t,r,i,a,e[o+5],4,-378558),a=tn(a,t,r,i,e[o+8],11,-2022574463),i=tn(i,a,t,r,e[o+11],16,1839030562),r=tn(r,i,a,t,e[o+14],23,-35309556),t=tn(t,r,i,a,e[o+1],4,-1530992060),a=tn(a,t,r,i,e[o+4],11,1272893353),i=tn(i,a,t,r,e[o+7],16,-155497632),r=tn(r,i,a,t,e[o+10],23,-1094730640),t=tn(t,r,i,a,e[o+13],4,681279174),a=tn(a,t,r,i,e[o],11,-358537222),i=tn(i,a,t,r,e[o+3],16,-722521979),r=tn(r,i,a,t,e[o+6],23,76029189),t=tn(t,r,i,a,e[o+9],4,-640364487),a=tn(a,t,r,i,e[o+12],11,-421815835),i=tn(i,a,t,r,e[o+15],16,530742520),r=tn(r,i,a,t,e[o+2],23,-995338651),t=rn(t,r,i,a,e[o],6,-198630844),a=rn(a,t,r,i,e[o+7],10,1126891415),i=rn(i,a,t,r,e[o+14],15,-1416354905),r=rn(r,i,a,t,e[o+5],21,-57434055),t=rn(t,r,i,a,e[o+12],6,1700485571),a=rn(a,t,r,i,e[o+3],10,-1894986606),i=rn(i,a,t,r,e[o+10],15,-1051523),r=rn(r,i,a,t,e[o+1],21,-2054922799),t=rn(t,r,i,a,e[o+8],6,1873313359),a=rn(a,t,r,i,e[o+15],10,-30611744),i=rn(i,a,t,r,e[o+6],15,-1560198380),r=rn(r,i,a,t,e[o+13],21,1309151649),t=rn(t,r,i,a,e[o+4],6,-145523070),a=rn(a,t,r,i,e[o+11],10,-1120210379),i=rn(i,a,t,r,e[o+2],15,718787259),r=rn(r,i,a,t,e[o+9],21,-343485551),t=Ye(t,u),r=Ye(r,s),i=Ye(i,c),a=Ye(a,l)}return[t,r,i,a]}(function(e){if(0===e.length)return[];for(var n=8*e.length,t=new Uint32Array(Qe(n)),r=0;r<n;r+=8)t[r>>5]|=(255&e[r/8])<<r%32;return t}(e),8*e.length))}));function on(e,n,t,r){switch(e){case 0:return n&t^~n&r;case 1:return n^t^r;case 2:return n&t^n&r^t&r;case 3:return n^t^r}}function un(e,n){return e<<n|e>>>32-n}var sn=We("v5",80,(function(e){var n=[1518500249,1859775393,2400959708,3395469782],t=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var r=unescape(encodeURIComponent(e));e=[];for(var i=0;i<r.length;++i)e.push(r.charCodeAt(i))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);for(var a=e.length/4+2,o=Math.ceil(a/16),u=new Array(o),s=0;s<o;++s){for(var c=new Uint32Array(16),l=0;l<16;++l)c[l]=e[64*s+4*l]<<24|e[64*s+4*l+1]<<16|e[64*s+4*l+2]<<8|e[64*s+4*l+3];u[s]=c}u[o-1][14]=8*(e.length-1)/Math.pow(2,32),u[o-1][14]=Math.floor(u[o-1][14]),u[o-1][15]=8*(e.length-1)&4294967295;for(var f=0;f<o;++f){for(var v=new Uint32Array(80),d=0;d<16;++d)v[d]=u[f][d];for(var g=16;g<80;++g)v[g]=un(v[g-3]^v[g-8]^v[g-14]^v[g-16],1);for(var p=t[0],m=t[1],h=t[2],y=t[3],b=t[4],k=0;k<80;++k){var E=Math.floor(k/20),w=un(p,5)+on(E,m,h,y)+b+n[E]+v[k]>>>0;b=y,y=h,h=un(m,30)>>>0,m=p,p=w}t[0]=t[0]+p>>>0,t[1]=t[1]+m>>>0,t[2]=t[2]+h>>>0,t[3]=t[3]+y>>>0,t[4]=t[4]+b>>>0}return[t[0]>>24&255,t[0]>>16&255,t[0]>>8&255,255&t[0],t[1]>>24&255,t[1]>>16&255,t[1]>>8&255,255&t[1],t[2]>>24&255,t[2]>>16&255,t[2]>>8&255,255&t[2],t[3]>>24&255,t[3]>>16&255,t[3]>>8&255,255&t[3],t[4]>>24&255,t[4]>>16&255,t[4]>>8&255,255&t[4]]}));var cn=Object.freeze({__proto__:null,v1:function(e,n,t){var r=n&&t||0,i=n||new Array(16),a=(e=e||{}).node||Je,o=void 0!==e.clockseq?e.clockseq:Me;if(null==a||null==o){var u=e.random||(e.rng||qe)();null==a&&(a=Je=[1|u[0],u[1],u[2],u[3],u[4],u[5]]),null==o&&(o=Me=16383&(u[6]<<8|u[7]))}var s=void 0!==e.msecs?e.msecs:Date.now(),c=void 0!==e.nsecs?e.nsecs:Ge+1,l=s-He+(c-Ge)/1e4;if(l<0&&void 0===e.clockseq&&(o=o+1&16383),(l<0||s>He)&&void 0===e.nsecs&&(c=0),c>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");He=s,Ge=c,Me=o;var f=(1e4*(268435455&(s+=122192928e5))+c)%4294967296;i[r++]=f>>>24&255,i[r++]=f>>>16&255,i[r++]=f>>>8&255,i[r++]=255&f;var v=s/4294967296*1e4&268435455;i[r++]=v>>>8&255,i[r++]=255&v,i[r++]=v>>>24&15|16,i[r++]=v>>>16&255,i[r++]=o>>>8|128,i[r++]=255&o;for(var d=0;d<6;++d)i[r+d]=a[d];return n||Be(i)},v3:an,v4:function(e,n,t){var r=(e=e||{}).random||(e.rng||qe)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,n){t=t||0;for(var i=0;i<16;++i)n[t+i]=r[i];return n}return Be(r)},v5:sn,NIL:"00000000-0000-0000-0000-000000000000",version:function(e){if(!ze(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)},validate:ze,stringify:Be,parse:Xe}).v1,ln=xe.baseOptionDefs;var fn=function(e){var n={diagnosticId:cn()};return e&&(n.sdkKeySuffix=e.length>6?e.substring(e.length-6):e),n},vn=function(e){var n,t,r,i;function a(e){n=e,t=0,r=0,i=[]}return a(e),{getProps:function(){return{dataSinceDate:n,droppedEvents:t,eventsInLastBatch:r,streamInits:i}},setProps:function(e){n=e.dataSinceDate,t=e.droppedEvents||0,r=e.eventsInLastBatch||0,i=e.streamInits||[]},incrementDroppedEvents:function(){t++},setEventsInLastBatch:function(e){r=e},recordStreamInit:function(e,n,t){var r={timestamp:e,failed:n,durationMillis:t};i.push(r)},reset:a}},dn=function(e,n,t,i,a,o){var u,s,c=!!e.diagnosticUseCombinedEvent,l="ld:"+i+":$diagnostics",f=a.eventsUrl+"/events/diagnostic/"+i,v=a.diagnosticRecordingInterval,d=n,g=!!a.streaming,p={};function m(){return{sdk:b(),configuration:(n={customBaseURI:a.baseUrl!==ln.baseUrl.default,customStreamURI:a.streamUrl!==ln.streamUrl.default,customEventsURI:a.eventsUrl!==ln.eventsUrl.default,eventsCapacity:a.eventCapacity,eventsFlushIntervalMillis:a.flushInterval,reconnectTimeMillis:a.streamReconnectDelay,streamingDisabled:!g,allAttributesPrivate:!!a.allAttributesPrivate,inlineUsersInEvents:!!a.inlineUsersInEvents,diagnosticRecordingIntervalMillis:a.diagnosticRecordingInterval,usingSecureMode:!!a.hash,bootstrapMode:!!a.bootstrap,fetchGoalsDisabled:!a.fetchGoals,allowFrequentDuplicateEvents:!!a.allowFrequentDuplicateEvents,sendEventsOnlyForVariation:!!a.sendEventsOnlyForVariation,autoAliasingOptOut:!!a.autoAliasingOptOut},n),platform:e.diagnosticPlatformData};var n}function h(e){a.logger&&a.logger.debug(Oe.debugPostingDiagnosticEvent(e)),t.sendEvents(e,f,!0).then((function(){})).catch((function(){}))}function y(){var n,t;h((n=(new Date).getTime(),t=r({kind:c?"diagnostic-combined":"diagnostic",id:o,creationDate:n},d.getProps()),c&&(t=r({},t,{},m())),d.reset(n),t)),s=setTimeout(y,v),u=(new Date).getTime(),c&&function(){if(e.localStorage){var n=r({},d.getProps());e.localStorage.set(l,JSON.stringify(n),(function(){}))}}()}function b(){var n=r({},e.diagnosticSdkData);return a.wrapperName&&(n.wrapperName=a.wrapperName),a.wrapperVersion&&(n.wrapperVersion=a.wrapperVersion),n}return p.start=function(){c?function(n){if(!e.localStorage)return n(!1);e.localStorage.get(l).then((function(e){if(e)try{var t=JSON.parse(e);d.setProps(t),u=t.dataSinceDate}catch(e){}n(!0)})).catch((function(){n(!1)}))}((function(e){if(e){var n=(u||0)+v,t=(new Date).getTime();t>=n?y():s=setTimeout(y,n-t)}else 0===Math.floor(4*Math.random())?y():s=setTimeout(y,v)})):(h(r({kind:"diagnostic-init",id:o,creationDate:d.getProps().dataSinceDate},m())),s=setTimeout(y,v))},p.stop=function(){s&&clearTimeout(s)},p.setStreaming=function(e){g=e},p};function gn(e,n){var t,r=["debug","info","warn","error"];t=null!=n?""===n?"":n+" ":"LD: ";var i=0;e&&(i="none"===e?100:r.indexOf(e));var a={};function o(e,n,a){if(e>=i&&console){var o=console[n];if(o){var u=e<r.length?r[e]:"?";o.call(console,t+"["+u+"] "+a)}}}return a.debug=function(e){return o(0,"log",e)},a.info=function(e){return o(1,"info",e)},a.warn=function(e){return o(2,"warn",e)},a.error=function(e){return o(3,"error",e)},a}function pn(n,t,i,u,c){var v,d,g,p,m=function(){if(i&&i.logger)return i.logger;return c&&c.logger&&c.logger.default||gn("warn")}(),h=Pe(m),y=Ie(h),b=Fe(i,h,c,m),k=b.sendEvents,E=n,w=b.hash,D=V(u,E,b),S=b.sendEvents&&!b.diagnosticOptOut,U=S?fn(E):null,R=S?vn((new Date).getTime()):null,A=S?dn(u,R,D,E,b,U):null,N=Re(u,b,E,R),C=b.eventProcessor||function(e,n,t){var r,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,u=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,s={},c=u||V(e,t,n),l=n.eventsUrl+"/events/bulk/"+t,v=z(),d=J(n),g=n.inlineUsersInEvents,p=n.samplingInterval,m=n.eventCapacity,h=n.flushInterval,y=n.logger,b=[],k=0,E=!1,w=!1;function D(){return 0===p||0===Math.floor(Math.random()*p)}function S(e){return!!e.debugEventsUntilDate&&(e.debugEventsUntilDate>k&&e.debugEventsUntilDate>(new Date).getTime())}function U(e){var n=F({},e);return"alias"===e.kind?n:(g||"identify"===e.kind?n.user=d.filterUser(e.user):(n.userKey=e.user.key,delete n.user),"feature"===e.kind&&(delete n.trackEvents,delete n.debugEventsUntilDate),n)}function O(e){b.length<m?(b.push(e),w=!1):(w||(w=!0,y.warn("Exceeded event queue capacity. Increase capacity to avoid dropping events.")),i&&i.incrementDroppedEvents())}return s.enqueue=function(e){if(!E){var n=!1,t=!1;if(v.summarizeEvent(e),"feature"===e.kind?D()&&(n=!!e.trackEvents,t=S(e)):n=D(),n&&O(U(e)),t){var r=F({},e,{kind:"debug"});r.user=d.filterUser(r.user),delete r.trackEvents,delete r.debugEventsUntilDate,O(r)}}},s.flush=function(){if(E)return Promise.resolve();var e=b,n=v.getSummary();return v.clearSummary(),n&&(n.kind="summary",e.push(n)),i&&i.setEventsInLastBatch(e.length),0===e.length?Promise.resolve():(b=[],y.debug(Ue(e.length)),c.sendEvents(e,l).then((function(e){e&&(e.serverTime&&(k=e.serverTime),f(e.status)||(E=!0),e.status>=400&&I((function(){o.maybeReportError(new a(ue(e.status,"event posting","some events were dropped")))})))})))},s.start=function(){r=setTimeout((function e(){s.flush(),r=setTimeout(e,h)}),h)},s.stop=function(){clearTimeout(r)},s}(u,b,E,R,h,D),_=Te(u,b,E),q={},M={},K=b.streaming,$=!1,B=!1,H=!0,G=b.stateProvider,X=function(e,n){var t,r={};return r.setUser=function(e){var r=t&&O(t);(t=x(e))&&n&&n(O(t),r)},r.getUser=function(){return t?O(t):null},e&&r.setUser(e),r}(null,(function(e,n){(function(e){if(G)return;e&&Q({kind:"identify",key:e.key,user:e,creationDate:(new Date).getTime()})})(e),!b.autoAliasingOptOut&&n&&n.anonymous&&e&&!e.anonymous&&oe(e,n)})),W=Ne(u.localStorage,m);function Q(e){if(E&&!(G&&G.enqueueEvent&&G.enqueueEvent(e))){if("alias"!==e.kind){if(!e.user)return void(H&&(m.warn("Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript"),H=!1));H=!1}!k||B||u.isDoNotTrack()||(m.debug(Se(e.kind)),C.enqueue(e))}}function Z(e,n,t,r){var i=X.getUser(),a=new Date,o=n?n.value:null;if(!b.allowFrequentDuplicateEvents){var u=JSON.stringify(o)+(i&&i.key?i.key:"")+e,s=q[u];if(s&&a-s<3e5)return;q[u]=a}var c={kind:"feature",key:e,user:i,value:o,variation:n?n.variationIndex:null,default:t,creationDate:a.getTime()};i&&i.anonymous&&(c.contextKind=ae(i));var l=M[e];l&&(c.version=l.flagVersion?l.flagVersion:l.version,c.trackEvents=l.trackEvents,c.debugEventsUntilDate=l.debugEventsUntilDate),(r||l&&l.trackReason)&&n&&(c.reason=n.reason),Q(c)}function te(e,n,t,r){var i;if(M&&L(M,e)&&M[e]&&!M[e].deleted){var a=M[e];i=re(a),null!==a.value&&void 0!==a.value||(i.value=n)}else i={value:n,variationIndex:null,reason:{kind:"ERROR",errorKind:"FLAG_NOT_FOUND"}};return t&&Z(e,i,n,r),i}function re(e){return{value:e.value,variationIndex:void 0===e.variation?null:e.variation,reason:e.reason||null}}function ae(e){return e.anonymous?"anonymousUser":"user"}function oe(e,n){G||e&&n&&Q({kind:"alias",key:e.key,contextKind:ae(e),previousKey:n.key,previousContextKind:ae(n),creationDate:(new Date).getTime()})}function se(){d=!0,X.getUser()&&N.connect(X.getUser(),w,{ping:function(){m.debug("received ping message from stream");var e=X.getUser();_.fetchFlagSettings(e,w).then((function(n){P(e,X.getUser())&&le(n||{})})).catch((function(e){h.maybeReportError(new l(ne(e)))}))},put:function(e){var n=JSON.parse(e.data);m.debug("received streaming update for all flags"),le(n)},patch:function(e){var n=JSON.parse(e.data),t=M[n.key];if(!t||!t.version||!n.version||t.version<n.version){m.debug(ke(n.key));var r={},i=F({},n);delete i.key,M[n.key]=i;var a=re(i);r[n.key]=t?{previous:t.value,current:a}:{current:a},fe(r)}else m.debug(Ee(n.key))},delete:function(e){var n=JSON.parse(e.data);if(!M[n.key]||M[n.key].version<n.version){m.debug(we(n.key));var t={};M[n.key]&&!M[n.key].deleted&&(t[n.key]={previous:M[n.key].value}),M[n.key]={version:n.version,deleted:!0},fe(t)}else m.debug(De(n.key))}})}function ce(){d&&(N.disconnect(),d=!1)}function le(e){var n={};if(!e)return Promise.resolve();for(var t in M)L(M,t)&&M[t]&&(e[t]&&!P(e[t].value,M[t].value)?n[t]={previous:M[t].value,current:re(e[t])}:e[t]&&!e[t].deleted||(n[t]={previous:M[t].value}));for(var i in e)L(e,i)&&e[i]&&(!M[i]||M[i].deleted)&&(n[i]={current:re(e[i])});return M=r({},e),fe(n).catch((function(){}))}function fe(e){var n=Object.keys(e);if(n.length>0){var t={};n.forEach((function(n){var r=e[n].current,i=r?r.value:void 0,a=e[n].previous;h.emit("change:"+n,i,a),t[n]=r?{current:i,previous:a}:{previous:a}})),h.emit("change",t),h.emit("internal-change",M),b.sendEventsOnlyForVariation||G||n.forEach((function(n){Z(n,e[n].current)}))}return v&&p?p.saveFlags(M).catch((function(){return null})):Promise.resolve()}function ve(){var e=K||g&&void 0===K;e&&!d?se():!e&&d&&ce(),A&&A.setStreaming(e)}function de(e){return"change"===e||"change:"===e.substr(0,"change".length+1)}if(u.localStorage&&(p=new je(u.localStorage,E,w,X,m)),"string"==typeof b.bootstrap&&"LOCALSTORAGE"===b.bootstrap.toUpperCase()&&(p?v=!0:m.warn("localStorage is unavailable")),"object"===e(b.bootstrap)&&(M=function(e){var n=Object.keys(e),t=e.$flagsState;!t&&n.length&&m.warn(ie()),!1===e.$valid&&m.warn("LaunchDarkly bootstrap data is not available because the back end could not read the flags.");var r={};return n.forEach((function(n){if("$flagsState"!==n&&"$valid"!==n){var i={value:e[n]};t&&t[n]?i=F(i,t[n]):i.version=0,r[n]=i}})),r}(b.bootstrap)),G){var ge=G.getInitialState();ge?pe(ge):G.on("init",pe),G.on("update",(function(e){e.user&&X.setUser(e.user);e.flags&&le(e.flags)}))}else(function(){if(!n)return Promise.reject(new o(ee()));return W.validateUser(t).then((function(n){return X.setUser(n),"object"===e(b.bootstrap)?me():v?p.loadFlags().catch((function(){return null})).then((function(e){return null==e?(M={},_.fetchFlagSettings(X.getUser(),w).then((function(e){return le(e||{})})).then(me).catch((function(e){he(new l(ne(e)))}))):(M=e,I(me),_.fetchFlagSettings(X.getUser(),w).then((function(e){return le(e)})).catch((function(e){return h.maybeReportError(e)})))})):_.fetchFlagSettings(X.getUser(),w).then((function(e){M=e||{},me()})).catch((function(e){M={},he(e)}))}))})().catch(he);function pe(e){E=e.environment,X.setUser(e.user),M=r({},e.flags),I(me)}function me(){m.info("LaunchDarkly client initialized"),$=!0,ve(),y.signalSuccess()}function he(e){y.signalFailure(e)}return{client:{waitForInitialization:function(){return y.getInitializationPromise()},waitUntilReady:function(){return y.getReadyPromise()},identify:function(e,n,t){return B?j(Promise.resolve({}),t):G?(m.warn("identify() has no effect here; it must be called on the main client instance"),j(Promise.resolve(T(M)),t)):j((v&&p?p.clearFlags():Promise.resolve()).then((function(){return W.validateUser(e)})).then((function(e){return _.fetchFlagSettings(e,n).then((function(t){var r=T(t);return X.setUser(e),w=n,t?le(t).then((function(){return r})):r}))})).then((function(e){return d&&se(),e})).catch((function(e){return h.maybeReportError(e),Promise.reject(e)})),t)},getUser:function(){return X.getUser()},variation:function(e,n){return te(e,n,!0,!1).value},variationDetail:function(e,n){return te(e,n,!0,!0)},track:function(e,n,t){if("string"==typeof e){u.customEventFilter&&!u.customEventFilter(e)&&m.warn(Y(e));var r=X.getUser(),i={kind:"custom",key:e,user:r,url:u.getCurrentUrl(),creationDate:(new Date).getTime()};r&&r.anonymous&&(i.contextKind=ae(r)),null!=n&&(i.data=n),null!=t&&(i.metricValue=t),Q(i)}else h.maybeReportError(new s(Y(e)))},alias:oe,on:function(e,n,t){de(e)?(g=!0,$&&ve(),h.on(e,n,t)):h.on.apply(h,arguments)},off:function(e){if(h.off.apply(h,arguments),de(e)){var n=!1;h.getEvents().forEach((function(e){de(e)&&h.getEventListenerCount(e)>0&&(n=!0)})),n||(g=!1,d&&void 0===K&&ce())}},setStreaming:function(e){var n=null===e?void 0:e;n!==K&&(K=n,ve())},flush:function(e){return j(k?C.flush():Promise.resolve(),e)},allFlags:function(){var e={};if(!M)return e;for(var n in M)L(M,n)&&(e[n]=te(n,null,!b.sendEventsOnlyForVariation).value);return e},close:function(e){if(B)return j(Promise.resolve(),e);var n=function(){B=!0,M={}};return j(Promise.resolve().then((function(){if(ce(),A&&A.stop(),k)return C.stop(),C.flush()})).then(n).catch(n),e)}},options:b,emitter:h,ident:X,logger:m,requestor:_,start:function(){k&&(A&&A.start(),C.start())},enqueueEvent:Q,getFlagsInternal:function(){return M},getEnvironmentId:function(){return E},internalChangeEventName:"internal-change"}}var mn="3.3.3";export{gn as createConsoleLogger,v as errors,pn as initialize,Oe as messages,_ as utils,mn as version};
//# sourceMappingURL=ldclient-common.es.js.map

@@ -1,2 +0,2 @@

!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e=e||self)["LDClient-Common"]={})}(this,function(e){"use strict";function X(e){return(X="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function n(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})),t.push.apply(t,r)}return t}function W(i){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?n(o,!0).forEach(function(e){var n,t,r;n=i,r=o[t=e],t in n?Object.defineProperty(n,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[t]=r}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(o)):n(o).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(o,e))})}return i}function t(e){function n(e,n){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.message=e,this.code=n}return(n.prototype=new Error).name=e,n.prototype.constructor=n}var O=t("LaunchDarklyUnexpectedResponseError"),Q=t("LaunchDarklyInvalidEnvironmentIdError"),o=t("LaunchDarklyInvalidUserError"),Y=t("LaunchDarklyInvalidEventKeyError"),d=t("LaunchDarklyInvalidArgumentError"),Z=t("LaunchDarklyFlagFetchError");function P(e){return!(400<=e&&e<500)||(400===e||408===e||429===e)}for(var r=Object.freeze({__proto__:null,LDUnexpectedResponseError:O,LDInvalidEnvironmentIdError:Q,LDInvalidUserError:o,LDInvalidEventKeyError:Y,LDInvalidArgumentError:d,LDFlagFetchError:Z,isHttpErrorRecoverable:P}),i=function(e){for(var n,t=e.length,r=t%3,i=[],o=0,a=t-r;o<a;o+=16383)i.push(f(e,o,a<o+16383?a:o+16383));1==r?(n=e[t-1],i.push(u[n>>2]+u[n<<4&63]+"==")):2==r&&(n=(e[t-2]<<8)+e[t-1],i.push(u[n>>10]+u[n>>4&63]+u[n<<2&63]+"="));return i.join("")},u=[],a=[],s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=0,l=s.length;c<l;++c)u[c]=s[c],a[s.charCodeAt(c)]=c;function f(e,n,t){for(var r,i,o=[],a=n;a<t;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),o.push(u[(i=r)>>18&63]+u[i>>12&63]+u[i>>6&63]+u[63&i]);return o.join("")}a["-".charCodeAt(0)]=62,a["_".charCodeAt(0)]=63;var g=Array.isArray,m=Object.keys,p=Object.prototype.hasOwnProperty,v=function e(n,t){if(n===t)return!0;if(n&&t&&"object"==typeof n&&"object"==typeof t){var r,i,o,a=g(n),u=g(t);if(a&&u){if((i=n.length)!=t.length)return!1;for(r=i;0!=r--;)if(!e(n[r],t[r]))return!1;return!0}if(a!=u)return!1;var s=n instanceof Date,c=t instanceof Date;if(s!=c)return!1;if(s&&c)return n.getTime()==t.getTime();var l=n instanceof RegExp,f=t instanceof RegExp;if(l!=f)return!1;if(l&&f)return n.toString()==t.toString();var v=m(n);if((i=v.length)!==m(t).length)return!1;for(r=i;0!=r--;)if(!p.call(t,v[r]))return!1;for(r=i;0!=r--;)if(!e(n[o=v[r]],t[o]))return!1;return!0}return n!=n&&t!=t},y=["key","secondary","ip","country","email","firstName","lastName","avatar","name"];function h(e){var n=unescape(encodeURIComponent(e));return i(function(e){for(var n=[],t=0;t<e.length;t++)n.push(e.charCodeAt(t));return n}(n))}function S(e){return h(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function ee(e){return JSON.parse(JSON.stringify(e))}function ne(e,n){return v(e,n)}function te(e){setTimeout(e,0)}function re(e,n){var t=e.then(function(e){return n&&setTimeout(function(){n(null,e)},0),e},function(e){if(!n)return Promise.reject(e);setTimeout(function(){n(e,null)},0)});return n?void 0:t}function b(e){var n={};for(var t in e)ae(e,t)&&(n[t]={value:e[t],version:0});return n}function ie(e){var n={};for(var t in e)ae(e,t)&&(n[t]=e[t].value);return n}function k(e,n){for(var t,r=n.slice(0),i=[],o=e;0<r.length;){for(t=[];0<o;){var a=r.shift();if(!a)break;(o-=S(JSON.stringify(a)).length)<0&&0<t.length?r.unshift(a):t.push(a)}o=e,i.push(t)}return i}function E(e){var n=e.version||"3.3.2";return e.userAgent+"/"+n}function U(e,n){if(n&&!n.sendLDHeaders)return{};var t={"X-LaunchDarkly-User-Agent":E(e)};return n&&n.wrapperName&&(t["X-LaunchDarkly-Wrapper"]=n.wrapperVersion?n.wrapperName+"/"+n.wrapperVersion:n.wrapperName),t}function oe(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return n.reduce(function(e,n){return W({},e,{},n)},{})}function ae(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function ue(e){if(!e)return e;var n;for(var t in y){var r=y[t],i=e[r];void 0!==i&&"string"!=typeof i&&((n=n||W({},e))[r]=String(i))}return n||e}var w=Object.freeze({__proto__:null,btoa:h,base64URLEncode:S,clone:ee,deepEquals:ne,onNextTick:te,wrapPromiseCallback:re,transformValuesToVersionedValues:b,transformVersionedValuesToValues:ie,chunkUserEventsForUrl:k,getLDUserAgentString:E,getLDHeaders:U,extend:oe,objectHasOwnProperty:ae,sanitizeUser:ue});for(var D,I=(function(e){var n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var t=new Uint8Array(16);e.exports=function(){return n(t),t}}else{var r=new Array(16);e.exports=function(){for(var e,n=0;n<16;n++)0==(3&n)&&(e=4294967296*Math.random()),r[n]=e>>>((3&n)<<3)&255;return r}}}(D={exports:{}},D.exports),D.exports),j=[],R=0;R<256;++R)j[R]=(R+256).toString(16).substr(1);var T,N,F=function(e,n){var t=n||0,r=j;return[r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]]].join("")},C=0,L=0;var A=function(e,n,t){var r=n&&t||0,i=n||[],o=(e=e||{}).node||T,a=void 0!==e.clockseq?e.clockseq:N;if(null==o||null==a){var u=I();null==o&&(o=T=[1|u[0],u[1],u[2],u[3],u[4],u[5]]),null==a&&(a=N=16383&(u[6]<<8|u[7]))}var s=void 0!==e.msecs?e.msecs:(new Date).getTime(),c=void 0!==e.nsecs?e.nsecs:L+1,l=s-C+(c-L)/1e4;if(l<0&&void 0===e.clockseq&&(a=a+1&16383),(l<0||C<s)&&void 0===e.nsecs&&(c=0),1e4<=c)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");C=s,N=a;var f=(1e4*(268435455&(s+=122192928e5))+(L=c))%4294967296;i[r++]=f>>>24&255,i[r++]=f>>>16&255,i[r++]=f>>>8&255,i[r++]=255&f;var v=s/4294967296*1e4&268435455;i[r++]=v>>>8&255,i[r++]=255&v,i[r++]=v>>>24&15|16,i[r++]=v>>>16&255,i[r++]=a>>>8|128,i[r++]=255&a;for(var d=0;d<6;++d)i[r+d]=o[d];return n||F(i)},x=2e3;function se(u,e,n){var t="/a/"+e+".gif",s=oe({"Content-Type":"application/json"},U(u,n)),c=u.httpFallbackPing,l={};return l.sendChunk=function(e,r,i,n){var o=JSON.stringify(e),a=i?null:A();return n?function n(t){var e=i?s:oe({},s,{"X-LaunchDarkly-Event-Schema":"3","X-LaunchDarkly-Payload-ID":a});return u.httpRequest("POST",r,e,o).promise.then(function(e){if(e)return 400<=e.status&&P(e.status)&&t?n(!1):function(e){var n={status:e.status},t=e.header("date");if(t){var r=Date.parse(t);r&&(n.serverTime=r)}return n}(e)}).catch(function(){return t?n(!1):Promise.reject()})}(!0).catch(function(){}):(c&&c(r+t+"?d="+S(o)),Promise.resolve())},l.sendEvents=function(e,n,t){if(!u.httpRequest)return Promise.resolve();var r,i=u.httpAllowsPost();r=i?[e]:k(x-n.length,e);for(var o=[],a=0;a<r.length;a++)o.push(l.sendChunk(r[a],n,t,i));return Promise.all(o)},l}function _(e){var n={},s=e.allAttributesPrivate,c=e.privateAttributeNames||[],l={key:!0,custom:!0,anonymous:!0},f={key:!0,secondary:!0,ip:!0,country:!0,email:!0,firstName:!0,lastName:!0,avatar:!0,name:!0,anonymous:!0,custom:!0};return n.filterUser=function(e){if(!e)return null;function n(r,i){return Object.keys(r).reduce(function(e,n){var t=e;return i(n)&&(!function(e){return!l[e]&&(s||-1!==o.indexOf(e)||-1!==c.indexOf(e))}(n)?t[0][n]=r[n]:t[1][n]=!0),t},[{},{}])}var o=e.privateAttributeNames||[],t=n(e,function(e){return f[e]}),r=t[0],i=t[1];if(e.custom){var a=n(e.custom,function(){return!0});r.custom=a[0],i=oe({},i,a[1])}var u=Object.keys(i);return u.length&&(u.sort(),r.privateAttrs=u),r},n}function V(e){return e&&e.message?e.message:"string"==typeof e||e instanceof String?e:JSON.stringify(e)}function q(){return"LaunchDarkly client initialized"}function J(){return"Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/docs/js-sdk-reference#section-analytics-events"}function ce(e){return'Custom event "'+e+'" does not exist'}function le(){return"No environment/client-side ID was specified."+$}function fe(){return"LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly."+$}function z(){return"LaunchDarkly bootstrap data is not available because the back end could not read the flags."}function M(){return"identify() has no effect here; it must be called on the main client instance"}function K(){return"received ping message from stream"}function B(){return"received streaming update for all flags"}function ve(e){return'received streaming update for flag "'+e+'"'}function de(e){return'received streaming update for flag "'+e+'" but ignored due to version check'}function ge(e){return'received streaming deletion for flag "'+e+'"'}function me(e){return'received streaming deletion for flag "'+e+'" but ignored due to version check'}function pe(e){return'enqueueing "'+e+'" event'}var $=" Please see https://docs.launchdarkly.com/docs/js-sdk-reference#initializing-the-client for instructions on SDK initialization.",H=function(){return"Exceeded event queue capacity. Increase capacity to avoid dropping events."},G=function(e){return'Expected application/json content type but got "'+e+'"'},ye=function(){return"localStorage is unavailable"},he=function(){return"localStorage is unavailable, so anonymous user ID cannot be cached"},be=function(e){return"network error"+(e?" ("+e+")":"")},ke=function(){return"Environment not found. Double check that you specified a valid environment/client-side ID."+$},Ee=function(e){return"Error fetching flag settings: "+V(e)},we=function(){return"No user specified."+$},De=function(){return"Invalid user specified."+$},Se=function(e,n){return n?'"'+e+'" is deprecated, please use "'+n+'"':'"'+e+'" is deprecated'},Oe=function(e,n,t){return"Received error "+e+(401===e?" (invalid SDK key)":"")+" for "+n+" - "+(P(e)?t:"giving up permanently")},Pe=function(){return"Cannot make HTTP requests in this environment."+$},Ue=function(){return"Closing stream connection"},Ie=function(e){return"Opening stream connection to "+e},je=function(e,n){return"Error on stream connection: "+V(e)+", will continue retrying every "+n+" milliseconds."},Re=function(e){return'Ignoring unknown config option "'+e+'"'},Te=function(e,n,t){return'Config option "'+e+'" should be of type '+n+", got "+t+", using default value"},Ne=function(e,n){return'Config option "'+e+'" should be a boolean, got '+n+", converting to boolean"},Fe=function(e,n,t){return'Config option "'+e+'" was set to '+n+", changing to minimum value of "+t},Ce=function(e){return"polling for feature flags at "+e},Le=function(e){return"sending "+e+" events"},Ae=Object.freeze({__proto__:null,clientInitialized:q,clientNotReady:function(){return"LaunchDarkly client is not ready"},eventCapacityExceeded:H,eventWithoutUser:J,invalidContentType:G,invalidKey:function(){return"Event key must be a string"},localStorageUnavailable:ye,localStorageUnavailableForUserId:he,networkError:be,unknownCustomEventKey:ce,environmentNotFound:ke,environmentNotSpecified:le,errorFetchingFlags:Ee,userNotSpecified:we,invalidUser:De,bootstrapOldFormat:fe,bootstrapInvalid:z,deprecated:Se,httpErrorMessage:Oe,httpUnavailable:Pe,identifyDisabled:M,streamClosing:Ue,streamConnecting:Ie,streamError:je,unknownOption:Re,wrongOptionType:Te,wrongOptionTypeBoolean:Ne,optionBelowMinimum:Fe,debugPolling:Ce,debugStreamPing:K,debugStreamPut:B,debugStreamPatch:ve,debugStreamPatchIgnored:de,debugStreamDelete:ge,debugStreamDeleteIgnored:me,debugEnqueueingEvent:pe,debugPostingEvents:Le,debugPostingDiagnosticEvent:function(e){return"sending diagnostic event ("+e.kind+")"}});function xe(e,n,t,r,i,o){var a,u=3<arguments.length&&void 0!==r?r:null,s=4<arguments.length&&void 0!==i?i:null,c={},l=(5<arguments.length&&void 0!==o?o:null)||se(e,t,n),f=n.eventsUrl+"/events/bulk/"+t,v=function(){var e={},a=0,u=0,s={};return e.summarizeEvent=function(e){if("feature"===e.kind){var n=e.key+":"+(null!==e.variation&&void 0!==e.variation?e.variation:"")+":"+(null!==e.version&&void 0!==e.version?e.version:""),t=s[n];t?t.count=t.count+1:s[n]={count:1,key:e.key,variation:e.variation,version:e.version,value:e.value,default:e.default},(0===a||e.creationDate<a)&&(a=e.creationDate),e.creationDate>u&&(u=e.creationDate)}},e.getSummary=function(){var e={},n=!0;for(var t in s){var r=s[t],i=e[r.key];i||(i={default:r.default,counters:[]},e[r.key]=i);var o={value:r.value,count:r.count};void 0!==r.variation&&null!==r.variation&&(o.variation=r.variation),r.version?o.version=r.version:o.unknown=!0,i.counters.push(o),n=!1}return n?null:{startDate:a,endDate:u,features:e}},e.clearSummary=function(){u=a=0,s={}},e}(),d=_(n),g=n.inlineUsersInEvents,m=n.samplingInterval,p=n.eventCapacity,y=n.flushInterval,h=n.logger,b=[],k=0,E=!1,w=!1;function D(){return 0===m||0===Math.floor(Math.random()*m)}function S(e){b.length<p?(b.push(e),w=!1):(w||(w=!0,h.warn(H())),u&&u.incrementDroppedEvents())}return c.enqueue=function(e){if(!E){var n=!1,t=!1;if(v.summarizeEvent(e),"feature"===e.kind?D()&&(n=!!e.trackEvents,t=function(e){return!!e.debugEventsUntilDate&&(e.debugEventsUntilDate>k&&e.debugEventsUntilDate>(new Date).getTime())}(e)):n=D(),n&&S(function(e){var n=oe({},e);return"alias"===e.kind||(g||"identify"===e.kind?n.user=d.filterUser(e.user):(n.userKey=e.user.key,delete n.user),"feature"===e.kind&&(delete n.trackEvents,delete n.debugEventsUntilDate)),n}(e)),t){var r=oe({},e,{kind:"debug"});r.user=d.filterUser(r.user),delete r.trackEvents,delete r.debugEventsUntilDate,S(r)}}},c.flush=function(){if(E)return Promise.resolve();var e=b,n=v.getSummary();return v.clearSummary(),n&&(n.kind="summary",e.push(n)),u&&u.setEventsInLastBatch(e.length),0===e.length?Promise.resolve():(b=[],h.debug(Le(e.length)),l.sendEvents(e,f).then(function(e){e&&(e.serverTime&&(k=e.serverTime),P(e.status)||(E=!0),400<=e.status&&te(function(){s.maybeReportError(new O(Oe(e.status,"event posting","some events were dropped")))}))}))},c.start=function(){a=setTimeout(function e(){c.flush(),a=setTimeout(e,y)},y)},c.stop=function(){clearTimeout(a)},c}function _e(n){var e={},i={};return e.on=function(e,n,t){i[e]=i[e]||[],i[e]=i[e].concat({handler:n,context:t})},e.off=function(e,n,t){if(i[e])for(var r=0;r<i[e].length;r++)i[e][r].handler===n&&i[e][r].context===t&&(i[e]=i[e].slice(0,r).concat(i[e].slice(r+1)))},e.emit=function(e){if(i[e])for(var n=i[e].slice(0),t=0;t<n.length;t++)n[t].handler.apply(n[t].context,Array.prototype.slice.call(arguments,1))},e.getEvents=function(){return Object.keys(i)},e.getEventListenerCount=function(e){return i[e]?i[e].length:0},e.maybeReportError=function(e){e&&(!function(e){return!!i[e]}("error")?(n||console).error(e.message):this.emit("error",e))},e}var Ve="ready",qe="initialized",Je="failed";var ze=function(r){var n=!1,t=!1,i=null,e=null,o=new Promise(function(n){r.on(Ve,function e(){r.off(Ve,e),n()})}).catch(function(){});return{getInitializationPromise:function(){return e||(n?Promise.resolve():t?Promise.reject(i):e=new Promise(function(n,t){r.on(qe,function e(){r.off(qe,e),n()}),r.on(Je,function e(n){r.off(Je,e),t(n)})}))},getReadyPromise:function(){return o},signalSuccess:function(){n||t||(n=!0,r.emit(qe),r.emit(Ve))},signalFailure:function(e){n||t||(t=!0,i=e,r.emit(Je,e),r.emit(Ve)),r.maybeReportError(e)}}};function Me(t,r,i,o,a){var u={};function s(){var e="",n=o.getUser();return n&&(e=i||h(JSON.stringify(n))),"ld:"+r+":"+e}return u.loadFlags=function(){return t.get(s()).then(function(e){if(null==e)return null;try{var n=JSON.parse(e);if(n){var t=n.$schema;void 0===t||t<1?n=b(n):delete n.$schema}return n}catch(e){return u.clearFlags().then(function(){return Promise.reject(e)})}}).catch(function(e){return a.warn(ye()),Promise.reject(e)})},u.saveFlags=function(e){var n=oe({},e,{$schema:1});return t.set(s(),JSON.stringify(n)).catch(function(e){return a.warn(ye()),Promise.reject(e)})},u.clearFlags=function(){return t.clear(s()).catch(function(e){return a.warn(ye()),Promise.reject(e)})},u}var Ke=3e5;function Be(i,e,o,n){var a,u=e.streamUrl,s=e.logger,t={},c=u+"/eval/"+o,l=e.useReport,f=e.evaluationReasons,r=e.streamReconnectDelay,v=U(i,e),d=!1,g=null,m=null,p=null,y=null,h=null;function b(e){d||(s.warn(je(e,r)),d=!0),D(!1),w(),k(r)}function k(e){m||(e?m=setTimeout(E,e):E())}function E(){var e;m=null;var n="",t={headers:v,readTimeoutMillis:Ke};if(i.eventSourceFactory){for(var r in null!=y&&(n="h="+y),l?i.eventSourceAllowsReport?(e=c,t.method="REPORT",t.headers["Content-Type"]="application/json",t.body=JSON.stringify(p)):(e=u+"/ping/"+o,n=""):e=c+"/"+S(JSON.stringify(p)),f&&(n=n+(n?"&":"")+"withReasons=true"),e=e+(n?"?":"")+n,w(),s.info(Ie(e)),a=(new Date).getTime(),g=i.eventSourceFactory(e,t),h)ae(h,r)&&g.addEventListener(r,h[r]);g.onerror=b}}function w(){g&&(s.info(Ue()),g.close(),g=null)}function D(e){a&&n&&n.recordStreamInit(a,!e,(new Date).getTime()-a),a=null}return t.connect=function(e,n,t){p=e,y=n,h={};function r(n){h[n]=function(e){D(!(d=!1)),t[n]&&t[n](e)}}for(var i in t||{})r(i);k()},t.disconnect=function(){clearTimeout(m),m=null,w()},t.isConnected=function(){return!!(g&&i.eventSourceIsActive&&i.eventSourceIsActive(g))},t}var $e="application/json";function He(u,s,a){var c=s.baseUrl,l=s.useReport,f=s.evaluationReasons,v=s.logger,e={},d={};function g(e,n){if(!u.httpRequest)return new Promise(function(e,n){n(new Z(Pe()))});var t=n?"REPORT":"GET",r=U(u,s);n&&(r["Content-Type"]=$e);var i=d[e];i||(i=function(t){var r,i,o,a,e={addPromise:function(n,e){r=n,i&&i(),i=e,n.then(function(e){r===n&&(o(e),t&&t())},function(e){r===n&&(a(e),t&&t())})}};return e.resultPromise=new Promise(function(e,n){o=e,a=n}),e}(function(){delete d[e]}),d[e]=i);var o=u.httpRequest(t,e,r,n),a=o.promise.then(function(e){if(200!==e.status)return Promise.reject(function(e){return 404===e.status?new Q(ke()):new Z(Ee(e.statusText||String(e.status)))}(e));if(e.header("content-type")&&e.header("content-type").substring(0,$e.length)===$e)return JSON.parse(e.body);var n=G(e.header("content-type")||"");return Promise.reject(new Z(n))},function(e){return Promise.reject(new Z(be(e)))});return i.addPromise(a,function(){o.cancel&&o.cancel()}),i.resultPromise}return e.fetchJSON=function(e){return g(c+e,null)},e.fetchFlagSettings=function(e,n){var t,r,i,o="";return l?(r=[c,"/sdk/evalx/",a,"/user"].join(""),i=JSON.stringify(e)):(t=S(JSON.stringify(e)),r=[c,"/sdk/evalx/",a,"/users/",t].join("")),n&&(o="h="+n),f&&(o=o+(o?"&":"")+"withReasons=true"),r=r+(o?"?":"")+o,v.debug(Ce(r)),g(r,i)},e}var Ge="ld:$anonUserId";function Xe(r,i){var e={};return e.validateUser=function(e){if(!e)return Promise.reject(new o(we()));var t=ee(e);return null!==t.key&&void 0!==t.key?(t.key=t.key.toString(),Promise.resolve(t)):t.anonymous?(r?r.get(Ge).catch(function(){return null}):Promise.resolve(null)).then(function(e){if(e)return t.key=e,t;var n=A();return function(e){return r?r.set(Ge,e).catch(function(){i.warn(he())}):Promise.resolve()}(t.key=n).then(function(){return t})}):Promise.reject(new o(De()))},e}var We={baseUrl:{default:"https://app.launchdarkly.com"},streamUrl:{default:"https://clientstream.launchdarkly.com"},eventsUrl:{default:"https://events.launchdarkly.com"},sendEvents:{default:!0},streaming:{type:"boolean"},sendLDHeaders:{default:!0},inlineUsersInEvents:{default:!1},allowFrequentDuplicateEvents:{default:!1},sendEventsOnlyForVariation:{default:!1},useReport:{default:!1},evaluationReasons:{default:!1},eventCapacity:{default:100,minimum:1},flushInterval:{default:2e3,minimum:2e3},samplingInterval:{default:0,minimum:0},streamReconnectDelay:{default:1e3,minimum:0},allAttributesPrivate:{default:!1},privateAttributeNames:{default:[]},bootstrap:{type:"string|object"},diagnosticRecordingInterval:{default:9e5,minimum:2e3},diagnosticOptOut:{default:!1},wrapperName:{type:"string"},wrapperVersion:{type:"string"},stateProvider:{type:"object"},autoAliasingOptOut:{default:!1}};function Qe(e,n,t,r){var a=oe({logger:{default:r}},We,t),i={all_attributes_private:"allAttributesPrivate",private_attribute_names:"privateAttributeNames",samplingInterval:null};function u(e){te(function(){n&&n.maybeReportError(new d(e))})}var o,s,c,l,f=oe({},e||{});function v(e){if(null===e)return"any";if(void 0!==e){if(Array.isArray(e))return"array";var n=X(e);return"boolean"===n||"string"===n||"number"===n||"function"===n?n:"object"}}return o=f,Object.keys(i).forEach(function(e){if(void 0!==o[e]){var n=i[e];r&&r.warn(Se(e,n)),n&&(void 0===o[n]&&(o[n]=o[e]),delete o[e])}}),s=oe({},f),Object.keys(a).forEach(function(e){void 0!==s[e]&&null!==s[e]||(s[e]=a[e]&&a[e].default)}),l=oe({},c=f=s),Object.keys(c).forEach(function(e){var n=c[e];if(null!=n){var t=a[e];if(void 0===t)u(Re(e));else{var r=t.type||v(t.default);if("any"!==r){var i=r.split("|"),o=v(n);i.indexOf(o)<0?"boolean"===r?(l[e]=!!n,u(Ne(e,o))):(u(Te(e,r,o)),l[e]=t.default):"number"===o&&void 0!==t.minimum&&n<t.minimum&&(u(Fe(e,n,t.minimum)),l[e]=t.minimum)}}}}),f=l}var Ye=Object.freeze({__proto__:null,baseOptionDefs:We,validate:Qe}).baseOptionDefs;var Ze=function(e){var n={diagnosticId:A()};return e&&(n.sdkKeySuffix=6<e.length?e.substring(e.length-6):e),n},en=function(e){var n,t,r,i;function o(e){n=e,r=t=0,i=[]}return o(e),{getProps:function(){return{dataSinceDate:n,droppedEvents:t,eventsInLastBatch:r,streamInits:i}},setProps:function(e){n=e.dataSinceDate,t=e.droppedEvents||0,r=e.eventsInLastBatch||0,i=e.streamInits||[]},incrementDroppedEvents:function(){t++},setEventsInLastBatch:function(e){r=e},recordStreamInit:function(e,n,t){var r={timestamp:e,failed:n,durationMillis:t};i.push(r)},reset:o}},nn=function(n,e,t,r,i,o){var a,u,s=!!n.diagnosticUseCombinedEvent,c="ld:"+r+":$diagnostics",l=i.eventsUrl+"/events/diagnostic/"+r,f=i.diagnosticRecordingInterval,v=e,d=!!i.streaming,g={};function m(){return{sdk:function(){var e=W({},n.diagnosticSdkData);i.wrapperName&&(e.wrapperName=i.wrapperName);i.wrapperVersion&&(e.wrapperVersion=i.wrapperVersion);return e}(),configuration:{customBaseURI:i.baseUrl!==Ye.baseUrl.default,customStreamURI:i.streamUrl!==Ye.streamUrl.default,customEventsURI:i.eventsUrl!==Ye.eventsUrl.default,eventsCapacity:i.eventCapacity,eventsFlushIntervalMillis:i.flushInterval,reconnectTimeMillis:i.streamReconnectDelay,streamingDisabled:!d,allAttributesPrivate:!!i.allAttributesPrivate,inlineUsersInEvents:!!i.inlineUsersInEvents,diagnosticRecordingIntervalMillis:i.diagnosticRecordingInterval,usingSecureMode:!!i.hash,bootstrapMode:!!i.bootstrap,fetchGoalsDisabled:!i.fetchGoals,allowFrequentDuplicateEvents:!!i.allowFrequentDuplicateEvents,sendEventsOnlyForVariation:!!i.sendEventsOnlyForVariation,autoAliasingOptOut:!!i.autoAliasingOptOut},platform:n.diagnosticPlatformData}}function p(e){i.logger&&i.logger.debug(Ae.debugPostingDiagnosticEvent(e)),t.sendEvents(e,l,!0).then(function(){}).catch(function(){})}function y(){p(function(){var e=(new Date).getTime(),n=W({kind:s?"diagnostic-combined":"diagnostic",id:o,creationDate:e},v.getProps());return s&&(n=W({},n,{},m())),v.reset(e),n}()),u=setTimeout(y,f),a=(new Date).getTime(),s&&function(){if(n.localStorage){var e=W({},v.getProps());n.localStorage.set(c,JSON.stringify(e),function(){})}}()}return g.start=function(){s?function(t){if(!n.localStorage)return t(!1);n.localStorage.get(c).then(function(e){if(e)try{var n=JSON.parse(e);v.setProps(n),a=n.dataSinceDate}catch(e){}t(!0)}).catch(function(){t(!1)})}(function(e){if(e){var n=(a||0)+f,t=(new Date).getTime();n<=t?y():u=setTimeout(y,n-t)}else 0===Math.floor(4*Math.random())?y():u=setTimeout(y,f)}):(p(W({kind:"diagnostic-init",id:o,creationDate:v.getProps().dataSinceDate},m())),u=setTimeout(y,f))},g.stop=function(){u&&clearTimeout(u)},g.setStreaming=function(e){d=e},g};function tn(e,n){var o,a=["debug","info","warn","error"];o=null!=n?""===n?"":n+" ":"LD: ";var u=0;e&&(u="none"===e?100:a.indexOf(e));var t={};function r(e,n,t){if(u<=e&&console){var r=console[n];if(r){var i=e<a.length?a[e]:"?";r.call(console,o+"["+i+"] "+t)}}}return t.debug=function(e){return r(0,"log",e)},t.info=function(e){return r(1,"info",e)},t.warn=function(e){return r(2,"warn",e)},t.error=function(e){return r(3,"error",e)},t}var rn="change",on="internal-change";e.createConsoleLogger=tn,e.errors=r,e.initialize=function(e,n,t,o,r){var a,i,u,s,c=function(){if(t&&t.logger)return t.logger;return r&&r.logger&&r.logger.default||tn("warn")}(),l=_e(c),f=ze(l),v=Qe(t,l,r,c),d=v.sendEvents,g=e,m=v.hash,p=se(o,g,v),y=v.sendEvents&&!v.diagnosticOptOut,h=y?Ze(g):null,b=y?en((new Date).getTime()):null,k=y?nn(o,b,p,g,v,h):null,E=Be(o,v,g,b),w=v.eventProcessor||xe(o,v,g,b,l,p),D=He(o,v,g),S={},O={},P=v.streaming,U=!1,I=!1,j=!0,R=v.stateProvider,T=function(e,t){var r,n={};return n.setUser=function(e){var n=r&&ee(r);(r=ue(e))&&t&&t(ee(r),n)},n.getUser=function(){return r?ee(r):null},e&&n.setUser(e),n}(null,function(e,n){(function(e){if(R)return;e&&F({kind:"identify",key:e.key,user:e,creationDate:(new Date).getTime()})})(e),!v.autoAliasingOptOut&&n&&n.anonymous&&e&&!e.anonymous&&_(e,n)}),N=Xe(o.localStorage,c);function F(e){if(g&&!(R&&R.enqueueEvent&&R.enqueueEvent(e))){if("alias"!==e.kind){if(!e.user)return void(j&&(c.warn("Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/docs/js-sdk-reference#section-analytics-events"),j=!1));j=!1}!d||I||o.isDoNotTrack()||(c.debug(pe(e.kind)),w.enqueue(e))}}function C(e,n,t,r){var i=T.getUser(),o=new Date,a=n?n.value:null;if(!v.allowFrequentDuplicateEvents){var u=JSON.stringify(a)+(i&&i.key?i.key:"")+e,s=S[u];if(s&&o-s<3e5)return;S[u]=o}var c={kind:"feature",key:e,user:i,value:a,variation:n?n.variationIndex:null,default:t,creationDate:o.getTime()};i&&i.anonymous&&(c.contextKind=x(i));var l=O[e];l&&(c.version=l.flagVersion?l.flagVersion:l.version,c.trackEvents=l.trackEvents,c.debugEventsUntilDate=l.debugEventsUntilDate),(r||l&&l.trackReason)&&n&&(c.reason=n.reason),F(c)}function L(e,n,t,r){var i;if(O&&ae(O,e)&&O[e]&&!O[e].deleted){var o=O[e];i=A(o),null!==o.value&&void 0!==o.value||(i.value=n)}else i={value:n,variationIndex:null,reason:{kind:"ERROR",errorKind:"FLAG_NOT_FOUND"}};return t&&C(e,i,n,r),i}function A(e){return{value:e.value,variationIndex:void 0===e.variation?null:e.variation,reason:e.reason||null}}function x(e){return e.anonymous?"anonymousUser":"user"}function _(e,n){R||e&&n&&F({kind:"alias",key:e.key,contextKind:x(e),previousKey:n.key,previousContextKind:x(n),creationDate:(new Date).getTime()})}function V(){i=!0,T.getUser()&&E.connect(T.getUser(),m,{ping:function(){c.debug("received ping message from stream");var n=T.getUser();D.fetchFlagSettings(n,m).then(function(e){ne(n,T.getUser())&&J(e||{})}).catch(function(e){l.maybeReportError(new Z(Ee(e)))})},put:function(e){var n=JSON.parse(e.data);c.debug("received streaming update for all flags"),J(n)},patch:function(e){var n=JSON.parse(e.data),t=O[n.key];if(!t||!t.version||!n.version||t.version<n.version){c.debug(ve(n.key));var r={},i=oe({},n);delete i.key;var o=A(O[n.key]=i);r[n.key]=t?{previous:t.value,current:o}:{current:o},z(r)}else c.debug(de(n.key))},delete:function(e){var n=JSON.parse(e.data);if(!O[n.key]||O[n.key].version<n.version){c.debug(ge(n.key));var t={};O[n.key]&&!O[n.key].deleted&&(t[n.key]={previous:O[n.key].value}),O[n.key]={version:n.version,deleted:!0},z(t)}else c.debug(me(n.key))}})}function q(){i&&(E.disconnect(),i=!1)}function J(e){var n={};if(!e)return Promise.resolve();for(var t in O)ae(O,t)&&O[t]&&(e[t]&&!ne(e[t].value,O[t].value)?n[t]={previous:O[t].value,current:A(e[t])}:e[t]&&!e[t].deleted||(n[t]={previous:O[t].value}));for(var r in e)ae(e,r)&&e[r]&&(!O[r]||O[r].deleted)&&(n[r]={current:A(e[r])});return O=W({},e),z(n).catch(function(){})}function z(i){var e=Object.keys(i);if(0<e.length){var o={};e.forEach(function(e){var n=i[e].current,t=n?n.value:void 0,r=i[e].previous;l.emit(rn+":"+e,t,r),o[e]=n?{current:t,previous:r}:{previous:r}}),l.emit(rn,o),l.emit(on,O),v.sendEventsOnlyForVariation||R||e.forEach(function(e){C(e,i[e].current)})}return a&&s?s.saveFlags(O).catch(function(){return null}):Promise.resolve()}function M(){var e=P||u&&void 0===P;e&&!i?V():!e&&i&&q(),k&&k.setStreaming(e)}function K(e){return e===rn||e.substr(0,rn.length+1)===rn+":"}if(o.localStorage&&(s=new Me(o.localStorage,g,m,T,c)),"string"==typeof v.bootstrap&&"LOCALSTORAGE"===v.bootstrap.toUpperCase()&&(s?a=!0:c.warn(ye())),"object"===X(v.bootstrap)&&(O=function(t){var e=Object.keys(t),r="$flagsState",i=t[r];!i&&e.length&&c.warn(fe()),!1===t.$valid&&c.warn("LaunchDarkly bootstrap data is not available because the back end could not read the flags.");var o={};return e.forEach(function(e){if(e!==r&&"$valid"!==e){var n={value:t[e]};i&&i[e]?n=oe(n,i[e]):n.version=0,o[e]=n}}),o}(v.bootstrap)),R){var B=R.getInitialState();B?$(B):R.on("init",$),R.on("update",function(e){e.user&&T.setUser(e.user);e.flags&&J(e.flags)})}else(e?N.validateUser(n).then(function(e){return T.setUser(e),"object"===X(v.bootstrap)?H():a?s.loadFlags().catch(function(){return null}).then(function(e){return null==e?(O={},D.fetchFlagSettings(T.getUser(),m).then(function(e){return J(e||{})}).then(H).catch(function(e){G(new Z(Ee(e)))})):(O=e,te(H),D.fetchFlagSettings(T.getUser(),m).then(function(e){return J(e)}).catch(function(e){return l.maybeReportError(e)}))}):D.fetchFlagSettings(T.getUser(),m).then(function(e){O=e||{},H()}).catch(function(e){O={},G(e)})}):Promise.reject(new Q(le()))).catch(G);function $(e){g=e.environment,T.setUser(e.user),O=W({},e.flags),te(H)}function H(){c.info("LaunchDarkly client initialized"),U=!0,M(),f.signalSuccess()}function G(e){f.signalFailure(e)}return{client:{waitForInitialization:function(){return f.getInitializationPromise()},waitUntilReady:function(){return f.getReadyPromise()},identify:function(e,r,n){return I?re(Promise.resolve({}),n):R?(c.warn("identify() has no effect here; it must be called on the main client instance"),re(Promise.resolve(ie(O)),n)):re((a&&s?s.clearFlags():Promise.resolve()).then(function(){return N.validateUser(e)}).then(function(t){return D.fetchFlagSettings(t,r).then(function(e){var n=ie(e);return T.setUser(t),m=r,e?J(e).then(function(){return n}):n})}).then(function(e){return i&&V(),e}).catch(function(e){return l.maybeReportError(e),Promise.reject(e)}),n)},getUser:function(){return T.getUser()},variation:function(e,n){return L(e,n,!0,!1).value},variationDetail:function(e,n){return L(e,n,!0,!0)},track:function(e,n,t){if("string"==typeof e){o.customEventFilter&&!o.customEventFilter(e)&&c.warn(ce(e));var r=T.getUser(),i={kind:"custom",key:e,user:r,url:o.getCurrentUrl(),creationDate:(new Date).getTime()};r&&r.anonymous&&(i.contextKind=x(r)),null!=n&&(i.data=n),null!=t&&(i.metricValue=t),F(i)}else l.maybeReportError(new Y(ce(e)))},alias:_,on:function(e,n,t){K(e)?(u=!0,U&&M(),l.on(e,n,t)):l.on.apply(l,arguments)},off:function(e){if(l.off.apply(l,arguments),K(e)){var n=!1;l.getEvents().forEach(function(e){K(e)&&0<l.getEventListenerCount(e)&&(n=!0)}),n||(u=!1,i&&void 0===P&&q())}},setStreaming:function(e){var n=null===e?void 0:e;n!==P&&(P=n,M())},flush:function(e){return re(d?w.flush():Promise.resolve(),e)},allFlags:function(){var e={};if(!O)return e;for(var n in O)ae(O,n)&&(e[n]=L(n,null,!v.sendEventsOnlyForVariation).value);return e},close:function(e){if(I)return re(Promise.resolve(),e);function n(){I=!0,O={}}return re(Promise.resolve().then(function(){if(q(),k&&k.stop(),d)return w.stop(),w.flush()}).then(n).catch(n),e)}},options:v,emitter:l,ident:T,logger:c,requestor:D,start:function(){d&&(k&&k.start(),w.start())},enqueueEvent:F,getFlagsInternal:function(){return O},getEnvironmentId:function(){return g},internalChangeEventName:on}},e.messages=Ae,e.utils=w,e.version="3.3.2",Object.defineProperty(e,"__esModule",{value:!0})});
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((e=e||self)["LDClient-Common"]={})}(this,function(e){"use strict";function X(e){return(X="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function n(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable})),t.push.apply(t,r)}return t}function W(i){for(var e=1;e<arguments.length;e++){var o=null!=arguments[e]?arguments[e]:{};e%2?n(o,!0).forEach(function(e){var n,t,r;n=i,r=o[t=e],t in n?Object.defineProperty(n,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):n[t]=r}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(o)):n(o).forEach(function(e){Object.defineProperty(i,e,Object.getOwnPropertyDescriptor(o,e))})}return i}function t(e){function n(e,n){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.message=e,this.code=n}return(n.prototype=new Error).name=e,n.prototype.constructor=n}var U=t("LaunchDarklyUnexpectedResponseError"),Q=t("LaunchDarklyInvalidEnvironmentIdError"),o=t("LaunchDarklyInvalidUserError"),Y=t("LaunchDarklyInvalidEventKeyError"),d=t("LaunchDarklyInvalidArgumentError"),Z=t("LaunchDarklyFlagFetchError");function O(e){return!(400<=e&&e<500)||(400===e||408===e||429===e)}for(var r=Object.freeze({__proto__:null,LDUnexpectedResponseError:U,LDInvalidEnvironmentIdError:Q,LDInvalidUserError:o,LDInvalidEventKeyError:Y,LDInvalidArgumentError:d,LDFlagFetchError:Z,isHttpErrorRecoverable:O}),i=function(e){for(var n,t=e.length,r=t%3,i=[],o=0,a=t-r;o<a;o+=16383)i.push(f(e,o,a<o+16383?a:o+16383));1==r?(n=e[t-1],i.push(u[n>>2]+u[n<<4&63]+"==")):2==r&&(n=(e[t-2]<<8)+e[t-1],i.push(u[n>>10]+u[n>>4&63]+u[n<<2&63]+"="));return i.join("")},u=[],a=[],s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=0,l=s.length;c<l;++c)u[c]=s[c],a[s.charCodeAt(c)]=c;function f(e,n,t){for(var r,i,o=[],a=n;a<t;a+=3)r=(e[a]<<16&16711680)+(e[a+1]<<8&65280)+(255&e[a+2]),o.push(u[(i=r)>>18&63]+u[i>>12&63]+u[i>>6&63]+u[63&i]);return o.join("")}a["-".charCodeAt(0)]=62,a["_".charCodeAt(0)]=63;var g=Array.isArray,p=Object.keys,m=Object.prototype.hasOwnProperty,v=function e(n,t){if(n===t)return!0;if(n&&t&&"object"==typeof n&&"object"==typeof t){var r,i,o,a=g(n),u=g(t);if(a&&u){if((i=n.length)!=t.length)return!1;for(r=i;0!=r--;)if(!e(n[r],t[r]))return!1;return!0}if(a!=u)return!1;var s=n instanceof Date,c=t instanceof Date;if(s!=c)return!1;if(s&&c)return n.getTime()==t.getTime();var l=n instanceof RegExp,f=t instanceof RegExp;if(l!=f)return!1;if(l&&f)return n.toString()==t.toString();var v=p(n);if((i=v.length)!==p(t).length)return!1;for(r=i;0!=r--;)if(!m.call(t,v[r]))return!1;for(r=i;0!=r--;)if(!e(n[o=v[r]],t[o]))return!1;return!0}return n!=n&&t!=t},h=["key","secondary","ip","country","email","firstName","lastName","avatar","name"];function y(e){var n=unescape(encodeURIComponent(e));return i(function(e){for(var n=[],t=0;t<e.length;t++)n.push(e.charCodeAt(t));return n}(n))}function S(e){return y(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function ee(e){return JSON.parse(JSON.stringify(e))}function ne(e,n){return v(e,n)}function te(e){setTimeout(e,0)}function re(e,n){var t=e.then(function(e){return n&&setTimeout(function(){n(null,e)},0),e},function(e){if(!n)return Promise.reject(e);setTimeout(function(){n(e,null)},0)});return n?void 0:t}function b(e){var n={};for(var t in e)ae(e,t)&&(n[t]={value:e[t],version:0});return n}function ie(e){var n={};for(var t in e)ae(e,t)&&(n[t]=e[t].value);return n}function k(e,n){for(var t,r=n.slice(0),i=[],o=e;0<r.length;){for(t=[];0<o;){var a=r.shift();if(!a)break;(o-=S(JSON.stringify(a)).length)<0&&0<t.length?r.unshift(a):t.push(a)}o=e,i.push(t)}return i}function E(e){var n=e.version||"3.3.3";return e.userAgent+"/"+n}function P(e,n){if(n&&!n.sendLDHeaders)return{};var t={"X-LaunchDarkly-User-Agent":E(e)};return n&&n.wrapperName&&(t["X-LaunchDarkly-Wrapper"]=n.wrapperVersion?n.wrapperName+"/"+n.wrapperVersion:n.wrapperName),t}function oe(){for(var e=arguments.length,n=new Array(e),t=0;t<e;t++)n[t]=arguments[t];return n.reduce(function(e,n){return W({},e,{},n)},{})}function ae(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function ue(e){if(!e)return e;var n;for(var t in h){var r=h[t],i=e[r];void 0!==i&&"string"!=typeof i&&((n=n||W({},e))[r]=String(i))}return n||e}var w=Object.freeze({__proto__:null,btoa:y,base64URLEncode:S,clone:ee,deepEquals:ne,onNextTick:te,wrapPromiseCallback:re,transformValuesToVersionedValues:b,transformVersionedValuesToValues:ie,chunkUserEventsForUrl:k,getLDUserAgentString:E,getLDHeaders:P,extend:oe,objectHasOwnProperty:ae,sanitizeUser:ue}),D=require("uuid").v1,I=2e3;function se(u,e,n){var t="/a/"+e+".gif",s=oe({"Content-Type":"application/json"},P(u,n)),c=u.httpFallbackPing,l={};return l.sendChunk=function(e,r,i,n){var o=JSON.stringify(e),a=i?null:D();return n?function n(t){var e=i?s:oe({},s,{"X-LaunchDarkly-Event-Schema":"3","X-LaunchDarkly-Payload-ID":a});return u.httpRequest("POST",r,e,o).promise.then(function(e){if(e)return 400<=e.status&&O(e.status)&&t?n(!1):function(e){var n={status:e.status},t=e.header("date");if(t){var r=Date.parse(t);r&&(n.serverTime=r)}return n}(e)}).catch(function(){return t?n(!1):Promise.reject()})}(!0).catch(function(){}):(c&&c(r+t+"?d="+S(o)),Promise.resolve())},l.sendEvents=function(e,n,t){if(!u.httpRequest)return Promise.resolve();var r,i=u.httpAllowsPost();r=i?[e]:k(I-n.length,e);for(var o=[],a=0;a<r.length;a++)o.push(l.sendChunk(r[a],n,t,i));return Promise.all(o)},l}function j(e){var n={},s=e.allAttributesPrivate,c=e.privateAttributeNames||[],l={key:!0,custom:!0,anonymous:!0},f={key:!0,secondary:!0,ip:!0,country:!0,email:!0,firstName:!0,lastName:!0,avatar:!0,name:!0,anonymous:!0,custom:!0};return n.filterUser=function(e){if(!e)return null;function n(r,i){return Object.keys(r).reduce(function(e,n){var t=e;return i(n)&&(!function(e){return!l[e]&&(s||-1!==o.indexOf(e)||-1!==c.indexOf(e))}(n)?t[0][n]=r[n]:t[1][n]=!0),t},[{},{}])}var o=e.privateAttributeNames||[],t=n(e,function(e){return f[e]}),r=t[0],i=t[1];if(e.custom){var a=n(e.custom,function(){return!0});r.custom=a[0],i=oe({},i,a[1])}var u=Object.keys(i);return u.length&&(u.sort(),r.privateAttrs=u),r},n}function R(e){return e&&e.message?e.message:"string"==typeof e||e instanceof String?e:JSON.stringify(e)}function T(){return"LaunchDarkly client initialized"}function A(){return"Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript"}function ce(e){return'Custom event "'+e+'" does not exist'}function le(){return"No environment/client-side ID was specified."+x}function fe(){return"LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly."+x}function C(){return"LaunchDarkly bootstrap data is not available because the back end could not read the flags."}function N(){return"identify() has no effect here; it must be called on the main client instance"}function F(){return"received ping message from stream"}function L(){return"received streaming update for all flags"}function ve(e){return'received streaming update for flag "'+e+'"'}function de(e){return'received streaming update for flag "'+e+'" but ignored due to version check'}function ge(e){return'received streaming deletion for flag "'+e+'"'}function pe(e){return'received streaming deletion for flag "'+e+'" but ignored due to version check'}function me(e){return'enqueueing "'+e+'" event'}var x=" Please see https://docs.launchdarkly.com/sdk/client-side/javascript#initializing-the-client for instructions on SDK initialization.",_=function(){return"Exceeded event queue capacity. Increase capacity to avoid dropping events."},V=function(e){return'Expected application/json content type but got "'+e+'"'},he=function(){return"localStorage is unavailable"},q=function(){return"localStorage is unavailable, so anonymous user ID cannot be cached"},J=function(e){return"network error"+(e?" ("+e+")":"")},z=function(){return"Environment not found. Double check that you specified a valid environment/client-side ID."+x},ye=function(e){return"Error fetching flag settings: "+R(e)},M=function(){return"No user specified."+x},K=function(){return"Invalid user specified."+x},B=function(e,n){return n?'"'+e+'" is deprecated, please use "'+n+'"':'"'+e+'" is deprecated'},$=function(e,n,t){return"Received error "+e+(401===e?" (invalid SDK key)":"")+" for "+n+" - "+(O(e)?t:"giving up permanently")},H=function(){return"Cannot make HTTP requests in this environment."+x},G=function(){return"Closing stream connection"},be=function(e){return"Opening stream connection to "+e},ke=function(e,n){return"Error on stream connection: "+R(e)+", will continue retrying every "+n+" milliseconds."},Ee=function(e){return'Ignoring unknown config option "'+e+'"'},we=function(e,n,t){return'Config option "'+e+'" should be of type '+n+", got "+t+", using default value"},De=function(e,n){return'Config option "'+e+'" should be a boolean, got '+n+", converting to boolean"},Se=function(e,n,t){return'Config option "'+e+'" was set to '+n+", changing to minimum value of "+t},Ue=function(e){return"polling for feature flags at "+e},Oe=function(e){return"sending "+e+" events"},Pe=Object.freeze({__proto__:null,clientInitialized:T,clientNotReady:function(){return"LaunchDarkly client is not ready"},eventCapacityExceeded:_,eventWithoutUser:A,invalidContentType:V,invalidKey:function(){return"Event key must be a string"},localStorageUnavailable:he,localStorageUnavailableForUserId:q,networkError:J,unknownCustomEventKey:ce,environmentNotFound:z,environmentNotSpecified:le,errorFetchingFlags:ye,userNotSpecified:M,invalidUser:K,bootstrapOldFormat:fe,bootstrapInvalid:C,deprecated:B,httpErrorMessage:$,httpUnavailable:H,identifyDisabled:N,streamClosing:G,streamConnecting:be,streamError:ke,unknownOption:Ee,wrongOptionType:we,wrongOptionTypeBoolean:De,optionBelowMinimum:Se,debugPolling:Ue,debugStreamPing:F,debugStreamPut:L,debugStreamPatch:ve,debugStreamPatchIgnored:de,debugStreamDelete:ge,debugStreamDeleteIgnored:pe,debugEnqueueingEvent:me,debugPostingEvents:Oe,debugPostingDiagnosticEvent:function(e){return"sending diagnostic event ("+e.kind+")"}});function Ie(e,n,t,r,i,o){var a,u=3<arguments.length&&void 0!==r?r:null,s=4<arguments.length&&void 0!==i?i:null,c={},l=(5<arguments.length&&void 0!==o?o:null)||se(e,t,n),f=n.eventsUrl+"/events/bulk/"+t,v=function(){var e={},a=0,u=0,s={};return e.summarizeEvent=function(e){if("feature"===e.kind){var n=e.key+":"+(null!==e.variation&&void 0!==e.variation?e.variation:"")+":"+(null!==e.version&&void 0!==e.version?e.version:""),t=s[n];t?t.count=t.count+1:s[n]={count:1,key:e.key,variation:e.variation,version:e.version,value:e.value,default:e.default},(0===a||e.creationDate<a)&&(a=e.creationDate),e.creationDate>u&&(u=e.creationDate)}},e.getSummary=function(){var e={},n=!0;for(var t in s){var r=s[t],i=e[r.key];i||(i={default:r.default,counters:[]},e[r.key]=i);var o={value:r.value,count:r.count};void 0!==r.variation&&null!==r.variation&&(o.variation=r.variation),r.version?o.version=r.version:o.unknown=!0,i.counters.push(o),n=!1}return n?null:{startDate:a,endDate:u,features:e}},e.clearSummary=function(){u=a=0,s={}},e}(),d=j(n),g=n.inlineUsersInEvents,p=n.samplingInterval,m=n.eventCapacity,h=n.flushInterval,y=n.logger,b=[],k=0,E=!1,w=!1;function D(){return 0===p||0===Math.floor(Math.random()*p)}function S(e){b.length<m?(b.push(e),w=!1):(w||(w=!0,y.warn(_())),u&&u.incrementDroppedEvents())}return c.enqueue=function(e){if(!E){var n=!1,t=!1;if(v.summarizeEvent(e),"feature"===e.kind?D()&&(n=!!e.trackEvents,t=function(e){return!!e.debugEventsUntilDate&&(e.debugEventsUntilDate>k&&e.debugEventsUntilDate>(new Date).getTime())}(e)):n=D(),n&&S(function(e){var n=oe({},e);return"alias"===e.kind||(g||"identify"===e.kind?n.user=d.filterUser(e.user):(n.userKey=e.user.key,delete n.user),"feature"===e.kind&&(delete n.trackEvents,delete n.debugEventsUntilDate)),n}(e)),t){var r=oe({},e,{kind:"debug"});r.user=d.filterUser(r.user),delete r.trackEvents,delete r.debugEventsUntilDate,S(r)}}},c.flush=function(){if(E)return Promise.resolve();var e=b,n=v.getSummary();return v.clearSummary(),n&&(n.kind="summary",e.push(n)),u&&u.setEventsInLastBatch(e.length),0===e.length?Promise.resolve():(b=[],y.debug(Oe(e.length)),l.sendEvents(e,f).then(function(e){e&&(e.serverTime&&(k=e.serverTime),O(e.status)||(E=!0),400<=e.status&&te(function(){s.maybeReportError(new U($(e.status,"event posting","some events were dropped")))}))}))},c.start=function(){a=setTimeout(function e(){c.flush(),a=setTimeout(e,h)},h)},c.stop=function(){clearTimeout(a)},c}function je(n){var e={},i={};return e.on=function(e,n,t){i[e]=i[e]||[],i[e]=i[e].concat({handler:n,context:t})},e.off=function(e,n,t){if(i[e])for(var r=0;r<i[e].length;r++)i[e][r].handler===n&&i[e][r].context===t&&(i[e]=i[e].slice(0,r).concat(i[e].slice(r+1)))},e.emit=function(e){if(i[e])for(var n=i[e].slice(0),t=0;t<n.length;t++)n[t].handler.apply(n[t].context,Array.prototype.slice.call(arguments,1))},e.getEvents=function(){return Object.keys(i)},e.getEventListenerCount=function(e){return i[e]?i[e].length:0},e.maybeReportError=function(e){e&&(!function(e){return!!i[e]}("error")?(n||console).error(e.message):this.emit("error",e))},e}var Re="ready",Te="initialized",Ae="failed";var Ce=function(r){var n=!1,t=!1,i=null,e=null,o=new Promise(function(n){r.on(Re,function e(){r.off(Re,e),n()})}).catch(function(){});return{getInitializationPromise:function(){return e||(n?Promise.resolve():t?Promise.reject(i):e=new Promise(function(n,t){r.on(Te,function e(){r.off(Te,e),n()}),r.on(Ae,function e(n){r.off(Ae,e),t(n)})}))},getReadyPromise:function(){return o},signalSuccess:function(){n||t||(n=!0,r.emit(Te),r.emit(Re))},signalFailure:function(e){n||t||(t=!0,i=e,r.emit(Ae,e),r.emit(Re)),r.maybeReportError(e)}}};function Ne(t,r,i,o,a){var u={};function s(){var e="",n=o.getUser();return n&&(e=i||y(JSON.stringify(n))),"ld:"+r+":"+e}return u.loadFlags=function(){return t.get(s()).then(function(e){if(null==e)return null;try{var n=JSON.parse(e);if(n){var t=n.$schema;void 0===t||t<1?n=b(n):delete n.$schema}return n}catch(e){return u.clearFlags().then(function(){return Promise.reject(e)})}}).catch(function(e){return a.warn(he()),Promise.reject(e)})},u.saveFlags=function(e){var n=oe({},e,{$schema:1});return t.set(s(),JSON.stringify(n)).catch(function(e){return a.warn(he()),Promise.reject(e)})},u.clearFlags=function(){return t.clear(s()).catch(function(e){return a.warn(he()),Promise.reject(e)})},u}var Fe=3e5;function Le(i,e,o,n){var a,u=e.streamUrl,s=e.logger,t={},c=u+"/eval/"+o,l=e.useReport,f=e.evaluationReasons,r=e.streamReconnectDelay,v=P(i,e),d=!1,g=null,p=null,m=null,h=null,y=null;function b(e){d||(s.warn(ke(e,r)),d=!0),D(!1),w(),k(r)}function k(e){p||(e?p=setTimeout(E,e):E())}function E(){var e;p=null;var n="",t={headers:v,readTimeoutMillis:Fe};if(i.eventSourceFactory){for(var r in null!=h&&(n="h="+h),l?i.eventSourceAllowsReport?(e=c,t.method="REPORT",t.headers["Content-Type"]="application/json",t.body=JSON.stringify(m)):(e=u+"/ping/"+o,n=""):e=c+"/"+S(JSON.stringify(m)),f&&(n=n+(n?"&":"")+"withReasons=true"),e=e+(n?"?":"")+n,w(),s.info(be(e)),a=(new Date).getTime(),g=i.eventSourceFactory(e,t),y)ae(y,r)&&g.addEventListener(r,y[r]);g.onerror=b}}function w(){g&&(s.info(G()),g.close(),g=null)}function D(e){a&&n&&n.recordStreamInit(a,!e,(new Date).getTime()-a),a=null}return t.connect=function(e,n,t){m=e,h=n,y={};function r(n){y[n]=function(e){D(!(d=!1)),t[n]&&t[n](e)}}for(var i in t||{})r(i);k()},t.disconnect=function(){clearTimeout(p),p=null,w()},t.isConnected=function(){return!!(g&&i.eventSourceIsActive&&i.eventSourceIsActive(g))},t}var xe="application/json";function _e(u,s,a){var c=s.baseUrl,l=s.useReport,f=s.evaluationReasons,v=s.logger,e={},d={};function g(e,n){if(!u.httpRequest)return new Promise(function(e,n){n(new Z(H()))});var t=n?"REPORT":"GET",r=P(u,s);n&&(r["Content-Type"]=xe);var i=d[e];i||(i=function(t){var r,i,o,a,e={addPromise:function(n,e){r=n,i&&i(),i=e,n.then(function(e){r===n&&(o(e),t&&t())},function(e){r===n&&(a(e),t&&t())})}};return e.resultPromise=new Promise(function(e,n){o=e,a=n}),e}(function(){delete d[e]}),d[e]=i);var o=u.httpRequest(t,e,r,n),a=o.promise.then(function(e){if(200!==e.status)return Promise.reject(function(e){return 404===e.status?new Q(z()):new Z(ye(e.statusText||String(e.status)))}(e));if(e.header("content-type")&&e.header("content-type").substring(0,xe.length)===xe)return JSON.parse(e.body);var n=V(e.header("content-type")||"");return Promise.reject(new Z(n))},function(e){return Promise.reject(new Z(J(e)))});return i.addPromise(a,function(){o.cancel&&o.cancel()}),i.resultPromise}return e.fetchJSON=function(e){return g(c+e,null)},e.fetchFlagSettings=function(e,n){var t,r,i,o="";return l?(r=[c,"/sdk/evalx/",a,"/user"].join(""),i=JSON.stringify(e)):(t=S(JSON.stringify(e)),r=[c,"/sdk/evalx/",a,"/users/",t].join("")),n&&(o="h="+n),f&&(o=o+(o?"&":"")+"withReasons=true"),r=r+(o?"?":"")+o,v.debug(Ue(r)),g(r,i)},e}var Ve=require("uuid").v1,qe="ld:$anonUserId";function Je(r,i){var e={};return e.validateUser=function(e){if(!e)return Promise.reject(new o(M()));var t=ee(e);return null!==t.key&&void 0!==t.key?(t.key=t.key.toString(),Promise.resolve(t)):t.anonymous?(r?r.get(qe).catch(function(){return null}):Promise.resolve(null)).then(function(e){if(e)return t.key=e,t;var n=Ve();return function(e){return r?r.set(qe,e).catch(function(){i.warn(q())}):Promise.resolve()}(t.key=n).then(function(){return t})}):Promise.reject(new o(K()))},e}var ze={baseUrl:{default:"https://app.launchdarkly.com"},streamUrl:{default:"https://clientstream.launchdarkly.com"},eventsUrl:{default:"https://events.launchdarkly.com"},sendEvents:{default:!0},streaming:{type:"boolean"},sendLDHeaders:{default:!0},inlineUsersInEvents:{default:!1},allowFrequentDuplicateEvents:{default:!1},sendEventsOnlyForVariation:{default:!1},useReport:{default:!1},evaluationReasons:{default:!1},eventCapacity:{default:100,minimum:1},flushInterval:{default:2e3,minimum:2e3},samplingInterval:{default:0,minimum:0},streamReconnectDelay:{default:1e3,minimum:0},allAttributesPrivate:{default:!1},privateAttributeNames:{default:[]},bootstrap:{type:"string|object"},diagnosticRecordingInterval:{default:9e5,minimum:2e3},diagnosticOptOut:{default:!1},wrapperName:{type:"string"},wrapperVersion:{type:"string"},stateProvider:{type:"object"},autoAliasingOptOut:{default:!1}};function Me(e,n,t,r){var a=oe({logger:{default:r}},ze,t),i={all_attributes_private:"allAttributesPrivate",private_attribute_names:"privateAttributeNames",samplingInterval:null};function u(e){te(function(){n&&n.maybeReportError(new d(e))})}var o,s,c,l,f=oe({},e||{});function v(e){if(null===e)return"any";if(void 0!==e){if(Array.isArray(e))return"array";var n=X(e);return"boolean"===n||"string"===n||"number"===n||"function"===n?n:"object"}}return o=f,Object.keys(i).forEach(function(e){if(void 0!==o[e]){var n=i[e];r&&r.warn(B(e,n)),n&&(void 0===o[n]&&(o[n]=o[e]),delete o[e])}}),s=oe({},f),Object.keys(a).forEach(function(e){void 0!==s[e]&&null!==s[e]||(s[e]=a[e]&&a[e].default)}),l=oe({},c=f=s),Object.keys(c).forEach(function(e){var n=c[e];if(null!=n){var t=a[e];if(void 0===t)u(Ee(e));else{var r=t.type||v(t.default);if("any"!==r){var i=r.split("|"),o=v(n);i.indexOf(o)<0?"boolean"===r?(l[e]=!!n,u(De(e,o))):(u(we(e,r,o)),l[e]=t.default):"number"===o&&void 0!==t.minimum&&n<t.minimum&&(u(Se(e,n,t.minimum)),l[e]=t.minimum)}}}}),f=l}var Ke,Be=Object.freeze({__proto__:null,baseOptionDefs:ze,validate:Me}),$e=new Uint8Array(16);function He(){if(!Ke&&!(Ke="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Ke($e)}var Ge=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;function Xe(e){return"string"==typeof e&&Ge.test(e)}for(var We,Qe,Ye=[],Ze=0;Ze<256;++Ze)Ye.push((Ze+256).toString(16).substr(1));function en(e){var n=1<arguments.length&&void 0!==arguments[1]?arguments[1]:0,t=(Ye[e[n+0]]+Ye[e[n+1]]+Ye[e[n+2]]+Ye[e[n+3]]+"-"+Ye[e[n+4]]+Ye[e[n+5]]+"-"+Ye[e[n+6]]+Ye[e[n+7]]+"-"+Ye[e[n+8]]+Ye[e[n+9]]+"-"+Ye[e[n+10]]+Ye[e[n+11]]+Ye[e[n+12]]+Ye[e[n+13]]+Ye[e[n+14]]+Ye[e[n+15]]).toLowerCase();if(!Xe(t))throw TypeError("Stringified UUID is invalid");return t}var nn=0,tn=0;function rn(e){if(!Xe(e))throw TypeError("Invalid UUID");var n,t=new Uint8Array(16);return t[0]=(n=parseInt(e.slice(0,8),16))>>>24,t[1]=n>>>16&255,t[2]=n>>>8&255,t[3]=255&n,t[4]=(n=parseInt(e.slice(9,13),16))>>>8,t[5]=255&n,t[6]=(n=parseInt(e.slice(14,18),16))>>>8,t[7]=255&n,t[8]=(n=parseInt(e.slice(19,23),16))>>>8,t[9]=255&n,t[10]=(n=parseInt(e.slice(24,36),16))/1099511627776&255,t[11]=n/4294967296&255,t[12]=n>>>24&255,t[13]=n>>>16&255,t[14]=n>>>8&255,t[15]=255&n,t}function on(e,a,u){function n(e,n,t,r){if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));for(var n=[],t=0;t<e.length;++t)n.push(e.charCodeAt(t));return n}(e)),"string"==typeof n&&(n=rn(n)),16!==n.length)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");var i=new Uint8Array(16+e.length);if(i.set(n),i.set(e,n.length),(i=u(i))[6]=15&i[6]|a,i[8]=63&i[8]|128,t){r=r||0;for(var o=0;o<16;++o)t[r+o]=i[o];return t}return en(i)}try{n.name=e}catch(e){}return n.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",n.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8",n}function an(e){return 14+(e+64>>>9<<4)+1}function un(e,n){var t=(65535&e)+(65535&n);return(e>>16)+(n>>16)+(t>>16)<<16|65535&t}function sn(e,n,t,r,i,o){return un(function(e,n){return e<<n|e>>>32-n}(un(un(n,e),un(r,o)),i),t)}function cn(e,n,t,r,i,o,a){return sn(n&t|~n&r,e,n,i,o,a)}function ln(e,n,t,r,i,o,a){return sn(n&r|t&~r,e,n,i,o,a)}function fn(e,n,t,r,i,o,a){return sn(n^t^r,e,n,i,o,a)}function vn(e,n,t,r,i,o,a){return sn(t^(n|~r),e,n,i,o,a)}var dn=on("v3",48,function(e){if("string"==typeof e){var n=unescape(encodeURIComponent(e));e=new Uint8Array(n.length);for(var t=0;t<n.length;++t)e[t]=n.charCodeAt(t)}return function(e){for(var n=[],t=32*e.length,r="0123456789abcdef",i=0;i<t;i+=8){var o=e[i>>5]>>>i%32&255,a=parseInt(r.charAt(o>>>4&15)+r.charAt(15&o),16);n.push(a)}return n}(function(e,n){e[n>>5]|=128<<n%32,e[an(n)-1]=n;for(var t=1732584193,r=-271733879,i=-1732584194,o=271733878,a=0;a<e.length;a+=16){var u=t,s=r,c=i,l=o;t=cn(t,r,i,o,e[a],7,-680876936),o=cn(o,t,r,i,e[a+1],12,-389564586),i=cn(i,o,t,r,e[a+2],17,606105819),r=cn(r,i,o,t,e[a+3],22,-1044525330),t=cn(t,r,i,o,e[a+4],7,-176418897),o=cn(o,t,r,i,e[a+5],12,1200080426),i=cn(i,o,t,r,e[a+6],17,-1473231341),r=cn(r,i,o,t,e[a+7],22,-45705983),t=cn(t,r,i,o,e[a+8],7,1770035416),o=cn(o,t,r,i,e[a+9],12,-1958414417),i=cn(i,o,t,r,e[a+10],17,-42063),r=cn(r,i,o,t,e[a+11],22,-1990404162),t=cn(t,r,i,o,e[a+12],7,1804603682),o=cn(o,t,r,i,e[a+13],12,-40341101),i=cn(i,o,t,r,e[a+14],17,-1502002290),r=cn(r,i,o,t,e[a+15],22,1236535329),t=ln(t,r,i,o,e[a+1],5,-165796510),o=ln(o,t,r,i,e[a+6],9,-1069501632),i=ln(i,o,t,r,e[a+11],14,643717713),r=ln(r,i,o,t,e[a],20,-373897302),t=ln(t,r,i,o,e[a+5],5,-701558691),o=ln(o,t,r,i,e[a+10],9,38016083),i=ln(i,o,t,r,e[a+15],14,-660478335),r=ln(r,i,o,t,e[a+4],20,-405537848),t=ln(t,r,i,o,e[a+9],5,568446438),o=ln(o,t,r,i,e[a+14],9,-1019803690),i=ln(i,o,t,r,e[a+3],14,-187363961),r=ln(r,i,o,t,e[a+8],20,1163531501),t=ln(t,r,i,o,e[a+13],5,-1444681467),o=ln(o,t,r,i,e[a+2],9,-51403784),i=ln(i,o,t,r,e[a+7],14,1735328473),r=ln(r,i,o,t,e[a+12],20,-1926607734),t=fn(t,r,i,o,e[a+5],4,-378558),o=fn(o,t,r,i,e[a+8],11,-2022574463),i=fn(i,o,t,r,e[a+11],16,1839030562),r=fn(r,i,o,t,e[a+14],23,-35309556),t=fn(t,r,i,o,e[a+1],4,-1530992060),o=fn(o,t,r,i,e[a+4],11,1272893353),i=fn(i,o,t,r,e[a+7],16,-155497632),r=fn(r,i,o,t,e[a+10],23,-1094730640),t=fn(t,r,i,o,e[a+13],4,681279174),o=fn(o,t,r,i,e[a],11,-358537222),i=fn(i,o,t,r,e[a+3],16,-722521979),r=fn(r,i,o,t,e[a+6],23,76029189),t=fn(t,r,i,o,e[a+9],4,-640364487),o=fn(o,t,r,i,e[a+12],11,-421815835),i=fn(i,o,t,r,e[a+15],16,530742520),r=fn(r,i,o,t,e[a+2],23,-995338651),t=vn(t,r,i,o,e[a],6,-198630844),o=vn(o,t,r,i,e[a+7],10,1126891415),i=vn(i,o,t,r,e[a+14],15,-1416354905),r=vn(r,i,o,t,e[a+5],21,-57434055),t=vn(t,r,i,o,e[a+12],6,1700485571),o=vn(o,t,r,i,e[a+3],10,-1894986606),i=vn(i,o,t,r,e[a+10],15,-1051523),r=vn(r,i,o,t,e[a+1],21,-2054922799),t=vn(t,r,i,o,e[a+8],6,1873313359),o=vn(o,t,r,i,e[a+15],10,-30611744),i=vn(i,o,t,r,e[a+6],15,-1560198380),r=vn(r,i,o,t,e[a+13],21,1309151649),t=vn(t,r,i,o,e[a+4],6,-145523070),o=vn(o,t,r,i,e[a+11],10,-1120210379),i=vn(i,o,t,r,e[a+2],15,718787259),r=vn(r,i,o,t,e[a+9],21,-343485551),t=un(t,u),r=un(r,s),i=un(i,c),o=un(o,l)}return[t,r,i,o]}(function(e){if(0===e.length)return[];for(var n=8*e.length,t=new Uint32Array(an(n)),r=0;r<n;r+=8)t[r>>5]|=(255&e[r/8])<<r%32;return t}(e),8*e.length))});function gn(e,n,t,r){switch(e){case 0:return n&t^~n&r;case 1:return n^t^r;case 2:return n&t^n&r^t&r;case 3:return n^t^r}}function pn(e,n){return e<<n|e>>>32-n}var mn=on("v5",80,function(e){var n=[1518500249,1859775393,2400959708,3395469782],t=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){var r=unescape(encodeURIComponent(e));e=[];for(var i=0;i<r.length;++i)e.push(r.charCodeAt(i))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);for(var o=e.length/4+2,a=Math.ceil(o/16),u=new Array(a),s=0;s<a;++s){for(var c=new Uint32Array(16),l=0;l<16;++l)c[l]=e[64*s+4*l]<<24|e[64*s+4*l+1]<<16|e[64*s+4*l+2]<<8|e[64*s+4*l+3];u[s]=c}u[a-1][14]=8*(e.length-1)/Math.pow(2,32),u[a-1][14]=Math.floor(u[a-1][14]),u[a-1][15]=8*(e.length-1)&4294967295;for(var f=0;f<a;++f){for(var v=new Uint32Array(80),d=0;d<16;++d)v[d]=u[f][d];for(var g=16;g<80;++g)v[g]=pn(v[g-3]^v[g-8]^v[g-14]^v[g-16],1);for(var p=t[0],m=t[1],h=t[2],y=t[3],b=t[4],k=0;k<80;++k){var E=Math.floor(k/20),w=pn(p,5)+gn(E,m,h,y)+b+n[E]+v[k]>>>0;b=y,y=h,h=pn(m,30)>>>0,m=p,p=w}t[0]=t[0]+p>>>0,t[1]=t[1]+m>>>0,t[2]=t[2]+h>>>0,t[3]=t[3]+y>>>0,t[4]=t[4]+b>>>0}return[t[0]>>24&255,t[0]>>16&255,t[0]>>8&255,255&t[0],t[1]>>24&255,t[1]>>16&255,t[1]>>8&255,255&t[1],t[2]>>24&255,t[2]>>16&255,t[2]>>8&255,255&t[2],t[3]>>24&255,t[3]>>16&255,t[3]>>8&255,255&t[3],t[4]>>24&255,t[4]>>16&255,t[4]>>8&255,255&t[4]]});var hn=Object.freeze({__proto__:null,v1:function(e,n,t){var r=n&&t||0,i=n||new Array(16),o=(e=e||{}).node||We,a=void 0!==e.clockseq?e.clockseq:Qe;if(null==o||null==a){var u=e.random||(e.rng||He)();null==o&&(o=We=[1|u[0],u[1],u[2],u[3],u[4],u[5]]),null==a&&(a=Qe=16383&(u[6]<<8|u[7]))}var s=void 0!==e.msecs?e.msecs:Date.now(),c=void 0!==e.nsecs?e.nsecs:tn+1,l=s-nn+(c-tn)/1e4;if(l<0&&void 0===e.clockseq&&(a=a+1&16383),(l<0||nn<s)&&void 0===e.nsecs&&(c=0),1e4<=c)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");nn=s,Qe=a;var f=(1e4*(268435455&(s+=122192928e5))+(tn=c))%4294967296;i[r++]=f>>>24&255,i[r++]=f>>>16&255,i[r++]=f>>>8&255,i[r++]=255&f;var v=s/4294967296*1e4&268435455;i[r++]=v>>>8&255,i[r++]=255&v,i[r++]=v>>>24&15|16,i[r++]=v>>>16&255,i[r++]=a>>>8|128,i[r++]=255&a;for(var d=0;d<6;++d)i[r+d]=o[d];return n||en(i)},v3:dn,v4:function(e,n,t){var r=(e=e||{}).random||(e.rng||He)();if(r[6]=15&r[6]|64,r[8]=63&r[8]|128,n){t=t||0;for(var i=0;i<16;++i)n[t+i]=r[i];return n}return en(r)},v5:mn,NIL:"00000000-0000-0000-0000-000000000000",version:function(e){if(!Xe(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)},validate:Xe,stringify:en,parse:rn}).v1,yn=Be.baseOptionDefs;var bn=function(e){var n={diagnosticId:hn()};return e&&(n.sdkKeySuffix=6<e.length?e.substring(e.length-6):e),n},kn=function(e){var n,t,r,i;function o(e){n=e,r=t=0,i=[]}return o(e),{getProps:function(){return{dataSinceDate:n,droppedEvents:t,eventsInLastBatch:r,streamInits:i}},setProps:function(e){n=e.dataSinceDate,t=e.droppedEvents||0,r=e.eventsInLastBatch||0,i=e.streamInits||[]},incrementDroppedEvents:function(){t++},setEventsInLastBatch:function(e){r=e},recordStreamInit:function(e,n,t){var r={timestamp:e,failed:n,durationMillis:t};i.push(r)},reset:o}},En=function(n,e,t,r,i,o){var a,u,s=!!n.diagnosticUseCombinedEvent,c="ld:"+r+":$diagnostics",l=i.eventsUrl+"/events/diagnostic/"+r,f=i.diagnosticRecordingInterval,v=e,d=!!i.streaming,g={};function p(){return{sdk:function(){var e=W({},n.diagnosticSdkData);i.wrapperName&&(e.wrapperName=i.wrapperName);i.wrapperVersion&&(e.wrapperVersion=i.wrapperVersion);return e}(),configuration:{customBaseURI:i.baseUrl!==yn.baseUrl.default,customStreamURI:i.streamUrl!==yn.streamUrl.default,customEventsURI:i.eventsUrl!==yn.eventsUrl.default,eventsCapacity:i.eventCapacity,eventsFlushIntervalMillis:i.flushInterval,reconnectTimeMillis:i.streamReconnectDelay,streamingDisabled:!d,allAttributesPrivate:!!i.allAttributesPrivate,inlineUsersInEvents:!!i.inlineUsersInEvents,diagnosticRecordingIntervalMillis:i.diagnosticRecordingInterval,usingSecureMode:!!i.hash,bootstrapMode:!!i.bootstrap,fetchGoalsDisabled:!i.fetchGoals,allowFrequentDuplicateEvents:!!i.allowFrequentDuplicateEvents,sendEventsOnlyForVariation:!!i.sendEventsOnlyForVariation,autoAliasingOptOut:!!i.autoAliasingOptOut},platform:n.diagnosticPlatformData}}function m(e){i.logger&&i.logger.debug(Pe.debugPostingDiagnosticEvent(e)),t.sendEvents(e,l,!0).then(function(){}).catch(function(){})}function h(){m(function(){var e=(new Date).getTime(),n=W({kind:s?"diagnostic-combined":"diagnostic",id:o,creationDate:e},v.getProps());return s&&(n=W({},n,{},p())),v.reset(e),n}()),u=setTimeout(h,f),a=(new Date).getTime(),s&&function(){if(n.localStorage){var e=W({},v.getProps());n.localStorage.set(c,JSON.stringify(e),function(){})}}()}return g.start=function(){s?function(t){if(!n.localStorage)return t(!1);n.localStorage.get(c).then(function(e){if(e)try{var n=JSON.parse(e);v.setProps(n),a=n.dataSinceDate}catch(e){}t(!0)}).catch(function(){t(!1)})}(function(e){if(e){var n=(a||0)+f,t=(new Date).getTime();n<=t?h():u=setTimeout(h,n-t)}else 0===Math.floor(4*Math.random())?h():u=setTimeout(h,f)}):(m(W({kind:"diagnostic-init",id:o,creationDate:v.getProps().dataSinceDate},p())),u=setTimeout(h,f))},g.stop=function(){u&&clearTimeout(u)},g.setStreaming=function(e){d=e},g};function wn(e,n){var o,a=["debug","info","warn","error"];o=null!=n?""===n?"":n+" ":"LD: ";var u=0;e&&(u="none"===e?100:a.indexOf(e));var t={};function r(e,n,t){if(u<=e&&console){var r=console[n];if(r){var i=e<a.length?a[e]:"?";r.call(console,o+"["+i+"] "+t)}}}return t.debug=function(e){return r(0,"log",e)},t.info=function(e){return r(1,"info",e)},t.warn=function(e){return r(2,"warn",e)},t.error=function(e){return r(3,"error",e)},t}var Dn="change",Sn="internal-change";e.createConsoleLogger=wn,e.errors=r,e.initialize=function(e,n,t,o,r){var a,i,u,s,c=function(){if(t&&t.logger)return t.logger;return r&&r.logger&&r.logger.default||wn("warn")}(),l=je(c),f=Ce(l),v=Me(t,l,r,c),d=v.sendEvents,g=e,p=v.hash,m=se(o,g,v),h=v.sendEvents&&!v.diagnosticOptOut,y=h?bn(g):null,b=h?kn((new Date).getTime()):null,k=h?En(o,b,m,g,v,y):null,E=Le(o,v,g,b),w=v.eventProcessor||Ie(o,v,g,b,l,m),D=_e(o,v,g),S={},U={},O=v.streaming,P=!1,I=!1,j=!0,R=v.stateProvider,T=function(e,t){var r,n={};return n.setUser=function(e){var n=r&&ee(r);(r=ue(e))&&t&&t(ee(r),n)},n.getUser=function(){return r?ee(r):null},e&&n.setUser(e),n}(null,function(e,n){(function(e){if(R)return;e&&C({kind:"identify",key:e.key,user:e,creationDate:(new Date).getTime()})})(e),!v.autoAliasingOptOut&&n&&n.anonymous&&e&&!e.anonymous&&_(e,n)}),A=Je(o.localStorage,c);function C(e){if(g&&!(R&&R.enqueueEvent&&R.enqueueEvent(e))){if("alias"!==e.kind){if(!e.user)return void(j&&(c.warn("Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript"),j=!1));j=!1}!d||I||o.isDoNotTrack()||(c.debug(me(e.kind)),w.enqueue(e))}}function N(e,n,t,r){var i=T.getUser(),o=new Date,a=n?n.value:null;if(!v.allowFrequentDuplicateEvents){var u=JSON.stringify(a)+(i&&i.key?i.key:"")+e,s=S[u];if(s&&o-s<3e5)return;S[u]=o}var c={kind:"feature",key:e,user:i,value:a,variation:n?n.variationIndex:null,default:t,creationDate:o.getTime()};i&&i.anonymous&&(c.contextKind=x(i));var l=U[e];l&&(c.version=l.flagVersion?l.flagVersion:l.version,c.trackEvents=l.trackEvents,c.debugEventsUntilDate=l.debugEventsUntilDate),(r||l&&l.trackReason)&&n&&(c.reason=n.reason),C(c)}function F(e,n,t,r){var i;if(U&&ae(U,e)&&U[e]&&!U[e].deleted){var o=U[e];i=L(o),null!==o.value&&void 0!==o.value||(i.value=n)}else i={value:n,variationIndex:null,reason:{kind:"ERROR",errorKind:"FLAG_NOT_FOUND"}};return t&&N(e,i,n,r),i}function L(e){return{value:e.value,variationIndex:void 0===e.variation?null:e.variation,reason:e.reason||null}}function x(e){return e.anonymous?"anonymousUser":"user"}function _(e,n){R||e&&n&&C({kind:"alias",key:e.key,contextKind:x(e),previousKey:n.key,previousContextKind:x(n),creationDate:(new Date).getTime()})}function V(){i=!0,T.getUser()&&E.connect(T.getUser(),p,{ping:function(){c.debug("received ping message from stream");var n=T.getUser();D.fetchFlagSettings(n,p).then(function(e){ne(n,T.getUser())&&J(e||{})}).catch(function(e){l.maybeReportError(new Z(ye(e)))})},put:function(e){var n=JSON.parse(e.data);c.debug("received streaming update for all flags"),J(n)},patch:function(e){var n=JSON.parse(e.data),t=U[n.key];if(!t||!t.version||!n.version||t.version<n.version){c.debug(ve(n.key));var r={},i=oe({},n);delete i.key;var o=L(U[n.key]=i);r[n.key]=t?{previous:t.value,current:o}:{current:o},z(r)}else c.debug(de(n.key))},delete:function(e){var n=JSON.parse(e.data);if(!U[n.key]||U[n.key].version<n.version){c.debug(ge(n.key));var t={};U[n.key]&&!U[n.key].deleted&&(t[n.key]={previous:U[n.key].value}),U[n.key]={version:n.version,deleted:!0},z(t)}else c.debug(pe(n.key))}})}function q(){i&&(E.disconnect(),i=!1)}function J(e){var n={};if(!e)return Promise.resolve();for(var t in U)ae(U,t)&&U[t]&&(e[t]&&!ne(e[t].value,U[t].value)?n[t]={previous:U[t].value,current:L(e[t])}:e[t]&&!e[t].deleted||(n[t]={previous:U[t].value}));for(var r in e)ae(e,r)&&e[r]&&(!U[r]||U[r].deleted)&&(n[r]={current:L(e[r])});return U=W({},e),z(n).catch(function(){})}function z(i){var e=Object.keys(i);if(0<e.length){var o={};e.forEach(function(e){var n=i[e].current,t=n?n.value:void 0,r=i[e].previous;l.emit(Dn+":"+e,t,r),o[e]=n?{current:t,previous:r}:{previous:r}}),l.emit(Dn,o),l.emit(Sn,U),v.sendEventsOnlyForVariation||R||e.forEach(function(e){N(e,i[e].current)})}return a&&s?s.saveFlags(U).catch(function(){return null}):Promise.resolve()}function M(){var e=O||u&&void 0===O;e&&!i?V():!e&&i&&q(),k&&k.setStreaming(e)}function K(e){return e===Dn||e.substr(0,Dn.length+1)===Dn+":"}if(o.localStorage&&(s=new Ne(o.localStorage,g,p,T,c)),"string"==typeof v.bootstrap&&"LOCALSTORAGE"===v.bootstrap.toUpperCase()&&(s?a=!0:c.warn(he())),"object"===X(v.bootstrap)&&(U=function(t){var e=Object.keys(t),r="$flagsState",i=t[r];!i&&e.length&&c.warn(fe()),!1===t.$valid&&c.warn("LaunchDarkly bootstrap data is not available because the back end could not read the flags.");var o={};return e.forEach(function(e){if(e!==r&&"$valid"!==e){var n={value:t[e]};i&&i[e]?n=oe(n,i[e]):n.version=0,o[e]=n}}),o}(v.bootstrap)),R){var B=R.getInitialState();B?$(B):R.on("init",$),R.on("update",function(e){e.user&&T.setUser(e.user);e.flags&&J(e.flags)})}else(e?A.validateUser(n).then(function(e){return T.setUser(e),"object"===X(v.bootstrap)?H():a?s.loadFlags().catch(function(){return null}).then(function(e){return null==e?(U={},D.fetchFlagSettings(T.getUser(),p).then(function(e){return J(e||{})}).then(H).catch(function(e){G(new Z(ye(e)))})):(U=e,te(H),D.fetchFlagSettings(T.getUser(),p).then(function(e){return J(e)}).catch(function(e){return l.maybeReportError(e)}))}):D.fetchFlagSettings(T.getUser(),p).then(function(e){U=e||{},H()}).catch(function(e){U={},G(e)})}):Promise.reject(new Q(le()))).catch(G);function $(e){g=e.environment,T.setUser(e.user),U=W({},e.flags),te(H)}function H(){c.info("LaunchDarkly client initialized"),P=!0,M(),f.signalSuccess()}function G(e){f.signalFailure(e)}return{client:{waitForInitialization:function(){return f.getInitializationPromise()},waitUntilReady:function(){return f.getReadyPromise()},identify:function(e,r,n){return I?re(Promise.resolve({}),n):R?(c.warn("identify() has no effect here; it must be called on the main client instance"),re(Promise.resolve(ie(U)),n)):re((a&&s?s.clearFlags():Promise.resolve()).then(function(){return A.validateUser(e)}).then(function(t){return D.fetchFlagSettings(t,r).then(function(e){var n=ie(e);return T.setUser(t),p=r,e?J(e).then(function(){return n}):n})}).then(function(e){return i&&V(),e}).catch(function(e){return l.maybeReportError(e),Promise.reject(e)}),n)},getUser:function(){return T.getUser()},variation:function(e,n){return F(e,n,!0,!1).value},variationDetail:function(e,n){return F(e,n,!0,!0)},track:function(e,n,t){if("string"==typeof e){o.customEventFilter&&!o.customEventFilter(e)&&c.warn(ce(e));var r=T.getUser(),i={kind:"custom",key:e,user:r,url:o.getCurrentUrl(),creationDate:(new Date).getTime()};r&&r.anonymous&&(i.contextKind=x(r)),null!=n&&(i.data=n),null!=t&&(i.metricValue=t),C(i)}else l.maybeReportError(new Y(ce(e)))},alias:_,on:function(e,n,t){K(e)?(u=!0,P&&M(),l.on(e,n,t)):l.on.apply(l,arguments)},off:function(e){if(l.off.apply(l,arguments),K(e)){var n=!1;l.getEvents().forEach(function(e){K(e)&&0<l.getEventListenerCount(e)&&(n=!0)}),n||(u=!1,i&&void 0===O&&q())}},setStreaming:function(e){var n=null===e?void 0:e;n!==O&&(O=n,M())},flush:function(e){return re(d?w.flush():Promise.resolve(),e)},allFlags:function(){var e={};if(!U)return e;for(var n in U)ae(U,n)&&(e[n]=F(n,null,!v.sendEventsOnlyForVariation).value);return e},close:function(e){if(I)return re(Promise.resolve(),e);function n(){I=!0,U={}}return re(Promise.resolve().then(function(){if(q(),k&&k.stop(),d)return w.stop(),w.flush()}).then(n).catch(n),e)}},options:v,emitter:l,ident:T,logger:c,requestor:D,start:function(){d&&(k&&k.start(),w.start())},enqueueEvent:C,getFlagsInternal:function(){return U},getEnvironmentId:function(){return g},internalChangeEventName:Sn}},e.messages=Pe,e.utils=w,e.version="3.3.3",Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=ldclient-common.min.js.map
{
"name": "launchdarkly-js-sdk-common",
"version": "3.3.2",
"version": "3.3.3",
"description": "LaunchDarkly SDK for JavaScript - common code",

@@ -76,3 +76,3 @@ "author": "LaunchDarkly <team@launchdarkly.com>",

"fast-deep-equal": "^2.0.1",
"uuid": "^3.3.2"
"uuid": "^8.0.0"
},

@@ -79,0 +79,0 @@ "repository": {

@@ -7,3 +7,3 @@ # LaunchDarkly Javascript SDK Core Components

[LaunchDarkly](https://www.launchdarkly.com) is a feature management platform that serves over 100 billion feature flags daily to help teams build better software, faster. [Get started](https://docs.launchdarkly.com/docs/getting-started) using LaunchDarkly today!
[LaunchDarkly](https://www.launchdarkly.com) is a feature management platform that serves over 100 billion feature flags daily to help teams build better software, faster. [Get started](https://docs.launchdarkly.com/home/getting-started) using LaunchDarkly today!

@@ -31,3 +31,3 @@ [![Twitter Follow](https://img.shields.io/twitter/follow/launchdarkly.svg?style=social&label=Follow&maxAge=2592000)](https://twitter.com/intent/follow?screen_name=launchdarkly)

* Grant access to certain features based on user attributes, like payment plan (eg: users on the ‘gold’ plan get access to more features than users in the ‘silver’ plan). Disable parts of your application to facilitate maintenance, without taking everything offline.
* LaunchDarkly provides feature flag SDKs for a wide variety of languages and technologies. Check out [our documentation](https://docs.launchdarkly.com/docs) for a complete list.
* LaunchDarkly provides feature flag SDKs for a wide variety of languages and technologies. Check out [our documentation](https://docs.launchdarkly.com/sdk) for a complete list.
* Explore LaunchDarkly

@@ -34,0 +34,0 @@ * [launchdarkly.com](https://www.launchdarkly.com/ "LaunchDarkly Main Website") for more information

@@ -83,3 +83,3 @@ /**

*
* For more information, see the [SDK Reference Guide](https://docs.launchdarkly.com/docs/js-sdk-reference#section-bootstrapping).
* For more information, see the [SDK Reference Guide](https://docs.launchdarkly.com/sdk/features/bootstrapping#javascript).
*/

@@ -157,3 +157,3 @@ bootstrap?: 'localStorage' | LDFlagSet;

sendEvents?: boolean;
/**

@@ -200,3 +200,3 @@ * Whether all user attributes (except the user key) should be marked as private, and

* The capacity of the analytics events queue.
*
*
* The client buffers up to this many events in memory before flushing. If the capacity is exceeded

@@ -208,3 +208,3 @@ * before the queue is flushed, events will be discarded. Increasing the capacity means that events

* are using the event debugger).
*
*
* The default value is 100.

@@ -243,3 +243,3 @@ */

* Set to true to opt out of sending diagnostics data.
*
*
* Unless `diagnosticOptOut` is set to true, the client will send some diagnostics data to the LaunchDarkly

@@ -252,6 +252,6 @@ * servers in order to assist in the development of future SDK improvements. These diagnostics consist of

diagnosticOptOut?: boolean;
/**
* The interval at which periodic diagnostic data is sent, in milliseconds.
*
*
* The default is 900000 (every 15 minutes) and the minimum value is 6000. See [[diagnosticOptOut]]

@@ -280,3 +280,3 @@ * for more information on the diagnostics data being sent.

* called with a non-anonymous user when the previous user is anonymous.
*
*
* The default value is `false`.

@@ -305,3 +305,3 @@ */

* An optional secondary key for a user. This affects
* [feature flag targeting](https://docs.launchdarkly.com/docs/targeting-users#section-targeting-rules-based-on-user-attributes)
* [feature flag targeting](https://docs.launchdarkly.com/home/flags/targeting-users#targeting-rules-based-on-user-attributes)
* as follows: if you have chosen to bucket users by a specific attribute, the secondary key (if set)

@@ -376,5 +376,5 @@ * is used to further distinguish between users who are otherwise identical according to that attribute.

* part of the [[LDEvaluationDetail]] object returned by [[LDClient.variationDetail]].
*
* This type is separate from `[[LDEvaluationReason]]` for backwards compatibility. In
* earlier versions of this SDK, `[[LDEvaluationReason]]` was incorrectly defined as
*
* This type is separate from `[[LDEvaluationReason]]` for backwards compatibility. In
* earlier versions of this SDK, `[[LDEvaluationReason]]` was incorrectly defined as
* being non-nullable.

@@ -421,3 +421,3 @@ */

* part of the [[LDEvaluationDetail]] object returned by [[LDClient.variationDetail]].
*
*
* Will be null when `[[LDOptions.evaluationReasons]]` is `false`.

@@ -433,3 +433,3 @@ */

*
* For more information, see the [SDK reference guide](https://docs.launchdarkly.com/docs/evaluation-reasons).
* For more information, see the [SDK reference guide](https://docs.launchdarkly.com/sdk/features/evaluation-reasons#javascript).
*/

@@ -459,3 +459,3 @@ export interface LDEvaluationDetail {

*
* @see http://docs.launchdarkly.com/docs/js-sdk-reference
* @see https://docs.launchdarkly.com/sdk/client-side/javascript
*

@@ -485,6 +485,6 @@ * @ignore (don't need to show this separately in TypeDoc output; all methods will be shown in LDClient)

* [[waitForInitialization]] instead.
*
*
* If you prefer to use event listeners ([[on]]) rather than Promises, you can listen on the
* client for a `"ready"` event, which will be fired in either case.
*
*
* @returns

@@ -514,3 +514,3 @@ * A Promise that will be resolved once the client is no longer trying to initialize.

* } catch (err) {
* doSomethingForFailedStartup(err);
* doSomethingForFailedStartup(err);
* }

@@ -526,3 +526,3 @@ * ```

* indicates success, and `"failed"` indicates failure.
*
*
* @returns

@@ -548,3 +548,3 @@ * A Promise that will be resolved if the client initializes successfully, or rejected if it

* @param hash
* The signed user key if you are using [Secure Mode](http://docs.launchdarkly.com/docs/js-sdk-reference#secure-mode).
* The signed user key if you are using [Secure Mode](https://docs.launchdarkly.com/sdk/features/secure-mode#configuring-secure-mode-in-the-javascript-client-side-sdk).
* @param onDone

@@ -612,3 +612,3 @@ * A function which will be called as soon as the flag values for the new user are available,

*
* For more information, see the [SDK reference guide](https://docs.launchdarkly.com/docs/evaluation-reasons).
* For more information, see the [SDK reference guide](https://docs.launchdarkly.com/sdk/features/evaluation-reasons#javascript).
*

@@ -708,12 +708,12 @@ * @param key

/**
* Associates two users for analytics purposes.
*
* This can be helpful in the situation where a person is represented by multiple
* LaunchDarkly users. This may happen, for example, when a person initially logs into
* Associates two users for analytics purposes.
*
* This can be helpful in the situation where a person is represented by multiple
* LaunchDarkly users. This may happen, for example, when a person initially logs into
* an application-- the person might be represented by an anonymous user prior to logging
* in and a different user after logging in, as denoted by a different user key.
*
* @param user
*
* @param user
* The newly identified user.
* @param previousUser
* @param previousUser
* The previously identified user.

@@ -720,0 +720,0 @@ */

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc