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