launchdarkly-js-sdk-common 3.5.0 → 3.5.1
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 +4 -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 +1 -1
|
@@ -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 W(e){return(W="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 Q(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 f(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n<e.length;n++)t[n]=e[n];return t}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}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 P=t("LaunchDarklyUnexpectedResponseError"),Y=t("LaunchDarklyInvalidEnvironmentIdError"),i=t("LaunchDarklyInvalidUserError"),Z=t("LaunchDarklyInvalidEventKeyError"),d=t("LaunchDarklyInvalidArgumentError"),ee=t("LaunchDarklyFlagFetchError");function S(e){return!(400<=e&&e<500)||(400===e||408===e||429===e)}for(var r=Object.freeze({__proto__:null,LDUnexpectedResponseError:P,LDInvalidEnvironmentIdError:Y,LDInvalidUserError:i,LDInvalidEventKeyError:Z,LDInvalidArgumentError:d,LDFlagFetchError:ee,isHttpErrorRecoverable:S}),o=function(e){for(var n,t=e.length,r=t%3,i=[],o=0,a=t-r;o<a;o+=16383)i.push(v(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 v(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,y=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 b(e){var n=unescape(encodeURIComponent(e));return o(function(e){for(var n=[],t=0;t<e.length;t++)n.push(e.charCodeAt(t));return n}(n))}function O(e){return b(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function ne(e){return JSON.parse(JSON.stringify(e))}function te(e,n){return y(e,n)}function re(e){setTimeout(e,0)}function ie(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 k(e){var n={};for(var t in e)ue(e,t)&&(n[t]={value:e[t],version:0});return n}function oe(e){var n={};for(var t in e)ue(e,t)&&(n[t]=e[t].value);return n}function E(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-=O(JSON.stringify(a)).length)<0&&0<t.length?r.unshift(a):t.push(a)}o=e,i.push(t)}return i}function w(e){var n=e.version||"3.5.0";return e.userAgent+"/"+n}function U(e,n){if(n&&!n.sendLDHeaders)return{};var t={"X-LaunchDarkly-User-Agent":w(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(Q({},e)):e}function ae(){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({},e,{},n)},{})}function ue(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function se(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||Q({},e))[r]=String(i))}return n||e}var D=Object.freeze({__proto__:null,btoa:b,base64URLEncode:O,clone:ne,deepEquals:te,onNextTick:re,wrapPromiseCallback:ie,transformValuesToVersionedValues:k,transformVersionedValuesToValues:oe,chunkUserEventsForUrl:E,getLDUserAgentString:w,getLDHeaders:U,transformHeaders:I,extend:ae,objectHasOwnProperty:ue,sanitizeUser:se});for(var j,T=(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={exports:{}},j.exports),j.exports),R=[],N=0;N<256;++N)R[N]=(N+256).toString(16).substr(1);var L,C,F=function(e,n){var t=n||0,r=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("")},A=0,x=0;var q=function(e,n,t){var r=n&&t||0,i=n||[],o=(e=e||{}).node||L,a=void 0!==e.clockseq?e.clockseq:C;if(null==o||null==a){var u=T();null==o&&(o=L=[1|u[0],u[1],u[2],u[3],u[4],u[5]]),null==a&&(a=C=16383&(u[6]<<8|u[7]))}var s=void 0!==e.msecs?e.msecs:(new Date).getTime(),c=void 0!==e.nsecs?e.nsecs:x+1,l=s-A+(c-x)/1e4;if(l<0&&void 0===e.clockseq&&(a=a+1&16383),(l<0||A<s)&&void 0===e.nsecs&&(c=0),1e4<=c)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");A=s,C=a;var f=(1e4*(268435455&(s+=122192928e5))+(x=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)},_=2e3;function ce(u,e,s){var t="/a/"+e+".gif",c=ae({"Content-Type":"application/json"},U(u,s)),l=u.httpFallbackPing,f={};return f.sendChunk=function(e,r,i,n){var o=JSON.stringify(e),a=i?null:q();return n?function n(t){var e=i?c:ae({},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&&S(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="+O(o)),Promise.resolve())},f.sendEvents=function(e,n,t){if(!u.httpRequest)return Promise.resolve();var r,i=u.httpAllowsPost();r=i?[e]:E(_-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 V(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=ae({},i,a[1])}var u=Object.keys(i);return u.length&&(u.sort(),r.privateAttrs=u),r},n}function J(e){return e&&e.message?e.message:"string"==typeof e||e instanceof String?e:JSON.stringify(e)}function z(){return"LaunchDarkly client initialized"}function M(){return"Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript"}function le(e){return'Custom event "'+e+'" does not exist'}function fe(){return"No environment/client-side ID was specified."+G}function ve(){return"LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly."+G}function K(){return"LaunchDarkly bootstrap data is not available because the back end could not read the flags."}function B(){return"identify() has no effect here; it must be called on the main client instance"}function H(){return"received ping message from stream"}function $(){return"received streaming update for all flags"}function de(e){return'received streaming update for flag "'+e+'"'}function ge(e){return'received streaming update for flag "'+e+'" but ignored due to version check'}function pe(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 ye(e){return'enqueueing "'+e+'" event'}var G=" Please see https://docs.launchdarkly.com/sdk/client-side/javascript#initializing-the-client for instructions on SDK initialization.",X=function(){return"Exceeded event queue capacity. Increase capacity to avoid dropping events."},he=function(e){return'Expected application/json content type but got "'+e+'"'},be=function(e){return"local storage is unavailable: "+J(e)},ke=function(e){return"network error"+(e?" ("+e+")":"")},Ee=function(){return"Environment not found. Double check that you specified a valid environment/client-side ID."+G},we=function(e){return"Error fetching flag settings: "+J(e)},De=function(){return"No user specified."+G},Oe=function(){return"Invalid user specified."+G},Pe=function(e,n){return n?'"'+e+'" is deprecated, please use "'+n+'"':'"'+e+'" is deprecated'},Se=function(e,n,t){return"Received error "+e+(401===e?" (invalid SDK key)":"")+" for "+n+" - "+(S(e)?t:"giving up permanently")},Ue=function(){return"Cannot make HTTP requests in this environment."+G},Ie=function(){return"Closing stream connection"},je=function(e){return"Opening stream connection to "+e},Te=function(e,n){return"Error on stream connection: "+J(e)+", will continue retrying every "+n+" milliseconds."},Re=function(e){return'Ignoring unknown config option "'+e+'"'},Ne=function(e,n,t){return'Config option "'+e+'" should be of type '+n+", got "+t+", using default value"},Le=function(e,n){return'Config option "'+e+'" should be a boolean, got '+n+", converting to boolean"},Ce=function(e,n,t){return'Config option "'+e+'" was set to '+n+", changing to minimum value of "+t},Fe=function(e){return"polling for feature flags at "+e},Ae=function(e){return"sending "+e+" events"},xe=Object.freeze({__proto__:null,clientInitialized:z,clientNotReady:function(){return"LaunchDarkly client is not ready"},eventCapacityExceeded:X,eventWithoutUser:M,invalidContentType:he,invalidKey:function(){return"Event key must be a string"},localStorageUnavailable:be,networkError:ke,unknownCustomEventKey:le,environmentNotFound:Ee,environmentNotSpecified:fe,errorFetchingFlags:we,userNotSpecified:De,invalidUser:Oe,bootstrapOldFormat:ve,bootstrapInvalid:K,deprecated:Pe,httpErrorMessage:Se,httpUnavailable:Ue,identifyDisabled:B,streamClosing:Ie,streamConnecting:je,streamError:Te,unknownOption:Re,wrongOptionType:Ne,wrongOptionTypeBoolean:Le,optionBelowMinimum:Ce,debugPolling:Fe,debugStreamPing:H,debugStreamPut:$,debugStreamPatch:de,debugStreamPatchIgnored:ge,debugStreamDelete:pe,debugStreamDeleteIgnored:me,debugEnqueueingEvent:ye,debugPostingEvents:Ae,debugPostingDiagnosticEvent:function(e){return"sending diagnostic event ("+e.kind+")"}});function qe(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)||ce(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=V(n),g=n.inlineUsersInEvents,p=n.samplingInterval,m=n.eventCapacity,y=n.flushInterval,h=n.logger,b=[],k=0,E=!1,w=!1;function D(){return 0===p||0===Math.floor(Math.random()*p)}function O(e){b.length<m?(b.push(e),w=!1):(w||(w=!0,h.warn(X())),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&&O(function(e){var n=ae({},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=ae({},e,{kind:"debug"});r.user=d.filterUser(r.user),delete r.trackEvents,delete r.debugEventsUntilDate,O(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(Ae(e.length)),l.sendEvents(e,f).then(function(e){e&&(e.serverTime&&(k=e.serverTime),S(e.status)||(E=!0),400<=e.status&&re(function(){s.maybeReportError(new P(Se(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",Je="initialized",ze="failed";var Me=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(Je,function e(){r.off(Je,e),n()}),r.on(ze,function e(n){r.off(ze,e),t(n)})}))},getReadyPromise:function(){return o},signalSuccess:function(){n||t||(n=!0,r.emit(Je),r.emit(Ve))},signalFailure:function(e){n||t||(t=!0,i=e,r.emit(ze,e),r.emit(Ve)),r.maybeReportError(e)}}};function Ke(t,r,i,o){var a={};function u(){var e="",n=o.getUser();return n&&(e=i||b(JSON.stringify(n))),"ld:"+r+":"+e}return a.loadFlags=function(){return t.get(u()).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=k(n):delete n.$schema}return n}catch(e){return a.clearFlags().then(function(){return null})}})},a.saveFlags=function(e){var n=ae({},e,{$schema:1});return t.set(u(),JSON.stringify(n))},a.clearFlags=function(){return t.clear(u())},a}function Be(r,n){function i(e){t||(t=!0,n.warn(be(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){i(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){i(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){i(e),n(!1)}):n(!1)})},e}var He=3e5;function $e(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=U(i,o),g=!1,p=null,m=null,y=null,h=null,b=null;function k(e){g||(c.warn(Te(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:He};if(i.eventSourceFactory){for(var r in null!=h&&(n="h="+h),f?i.eventSourceAllowsReport?(e=l,t.method="REPORT",t.headers["Content-Type"]="application/json",t.body=JSON.stringify(y)):(e=s+"/ping/"+a,n=""):e=l+"/"+O(JSON.stringify(y)),t.headers=I(t.headers,o),v&&(n=n+(n?"&":"")+"withReasons=true"),e=e+(n?"?":"")+n,w(),c.info(je(e)),u=(new Date).getTime(),p=i.eventSourceFactory(e,t),b)ue(b,r)&&p.addEventListener(r,b[r]);p.onerror=k}}function w(){p&&(c.info(Ie()),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){y=e,h=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 Ge="application/json";function Xe(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 ee(Ue()))});var t=n?"REPORT":"GET",r=U(u,s);n&&(r["Content-Type"]=Ge);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 Y(Ee()):new ee(we(e.statusText||String(e.status)))}(e));if(e.header("content-type")&&e.header("content-type").substring(0,Ge.length)===Ge)return JSON.parse(e.body);var n=he(e.header("content-type")||"");return Promise.reject(new ee(n))},function(e){return Promise.reject(new ee(ke(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=O(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(Fe(r)),g(r,i)},e}var We="ld:$anonUserId";function Qe(r){var e={};return e.validateUser=function(e){if(!e)return Promise.reject(new i(De()));var t=ne(e);return null!==t.key&&void 0!==t.key?(t.key=t.key.toString(),Promise.resolve(t)):t.anonymous?r.get(We).then(function(e){if(e)return t.key=e,t;var n=q();return function(e){return r.set(We,e)}(t.key=n).then(function(){return t})}):Promise.reject(new i(Oe()))},e}var Ye=["debug","info","warn","error","none"];function Ze(e,a){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 u=e&&e.destination?[e.destination,e.destination,e.destination,e.destination]:[n("log"),n("info"),n("warn"),n("error")],s=!(!e||!e.destination),c=e&&void 0!==e.prefix&&null!==e.prefix?e.prefix:"[LaunchDarkly] ",r=1;if(e&&e.level)for(var t=0;t<Ye.length;t++)Ye[t]===e.level&&(r=t);for(var i={},o=function(e){var n=Ye[e];if("none"!==n)if(e<r)i[n]=function(){};else{var t=e;i[n]=function(){!function(e,n,t){if(!(t.length<1)){var r,i=s?n+": "+c:c;if(1!==t.length&&a){var o=f(t);o[0]=i+o[0],r=a.apply(void 0,f(o))}else r=i+t[0];try{u[e](r)}catch(e){console&&console.log&&console.log("[LaunchDarkly] Configured logger's "+n+" method threw an exception: "+e)}}}(t,n,arguments)}}},l=0;l<Ye.length;l++)o(l);return i}function en(e,n){return Ze({level:e,prefix:n})}var nn={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 tn(e,n,t,r){var a=ae({logger:{default:r}},nn,t),i={all_attributes_private:"allAttributesPrivate",private_attribute_names:"privateAttributeNames",samplingInterval:null};function u(e){re(function(){n&&n.maybeReportError(new d(e))})}var o,s,c,l,f=ae({},e||{});function v(e){if(null===e)return"any";if(void 0!==e){if(Array.isArray(e))return"array";var n=W(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(Pe(e,n)),n&&(void 0===o[n]&&(o[n]=o[e]),delete o[e])}}),s=ae({},f),Object.keys(a).forEach(function(e){void 0!==s[e]&&null!==s[e]||(s[e]=a[e]&&a[e].default)}),l=ae({},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(Le(e,o))):(u(Ne(e,r,o)),l[e]=t.default):"number"===o&&void 0!==t.minimum&&n<t.minimum&&(u(Ce(e,n,t.minimum)),l[e]=t.minimum)}}}}),function(n){Ye.forEach(function(e){if("none"!==e&&(!n[e]||"function"!=typeof n[e]))throw new Error("Provided logger instance must support logger."+e+"(...) method")})}((f=l).logger),f}var rn=Object.freeze({__proto__:null,baseOptionDefs:nn,validate:tn}).baseOptionDefs;var on=function(e){var n={diagnosticId:q()};return e&&(n.sdkKeySuffix=6<e.length?e.substring(e.length-6):e),n},an=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}},un=function(n,r,e,t,i,o,a){var u,s,c=!!n.diagnosticUseCombinedEvent,l="ld:"+i+":$diagnostics",f=o.eventsUrl+"/events/diagnostic/"+i,v=o.diagnosticRecordingInterval,d=e,g=!!o.streaming,p={};function m(){return{sdk:function(){var e=Q({},n.diagnosticSdkData);o.wrapperName&&(e.wrapperName=o.wrapperName);o.wrapperVersion&&(e.wrapperVersion=o.wrapperVersion);return e}(),configuration:{customBaseURI:o.baseUrl!==rn.baseUrl.default,customStreamURI:o.streamUrl!==rn.streamUrl.default,customEventsURI:o.eventsUrl!==rn.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},platform:n.diagnosticPlatformData}}function y(e){o.logger&&o.logger.debug(xe.debugPostingDiagnosticEvent(e)),t.sendEvents(e,f,!0).then(function(){}).catch(function(){})}function h(){y(function(){var e=(new Date).getTime(),n=Q({kind:c?"diagnostic-combined":"diagnostic",id:a,creationDate:e},d.getProps());return c&&(n=Q({},n,{},m())),d.reset(e),n}()),s=setTimeout(h,v),u=(new Date).getTime(),c&&function(){if(r.isEnabled()){var e=Q({},d.getProps());r.set(l,JSON.stringify(e))}}()}return p.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);d.setProps(n),u=n.dataSinceDate}catch(e){}t(!0)}).catch(function(){t(!1)})}(function(e){if(e){var n=(u||0)+v,t=(new Date).getTime();n<=t?h():s=setTimeout(h,n-t)}else 0===Math.floor(4*Math.random())?h():s=setTimeout(h,v)}):(y(Q({kind:"diagnostic-init",id:a,creationDate:d.getProps().dataSinceDate},m())),s=setTimeout(h,v))},p.stop=function(){s&&clearTimeout(s)},p.setStreaming=function(e){g=e},p},sn="change",cn="internal-change";e.commonBasicLogger=Ze,e.createConsoleLogger=en,e.errors=r,e.initialize=function(e,n,t,o,r){var a,i,u,s=function(){if(t&&t.logger)return t.logger;return r&&r.logger&&r.logger.default||en("warn")}(),c=_e(s),l=Me(c),f=tn(t,c,r,s),v=f.sendEvents,d=e,g=f.hash,p=Be(o.localStorage,s),m=ce(o,d,f),y=f.sendEvents&&!f.diagnosticOptOut,h=y?on(d):null,b=y?an((new Date).getTime()):null,k=y?un(o,p,b,m,d,f,h):null,E=$e(o,f,d,b),w=f.eventProcessor||qe(o,f,d,b,c,m),D=Xe(o,f,d),O={},P={},S=f.streaming,U=!1,I=!1,j=!0,T=f.stateProvider,R=function(e,t){var r,n={};return n.setUser=function(e){var n=r&&ne(r);(r=se(e))&&t&&t(ne(r),n)},n.getUser=function(){return r?ne(r):null},e&&n.setUser(e),n}(null,function(e,n){(function(e){if(T)return;e&&C({kind:"identify",key:e.key,user:e,creationDate:(new Date).getTime()})})(e),!f.autoAliasingOptOut&&n&&n.anonymous&&e&&!e.anonymous&&_(e,n)}),N=Qe(p),L=p.isEnabled()?new Ke(p,d,g,R,s):null;function C(e){if(d&&!(T&&T.enqueueEvent&&T.enqueueEvent(e))){if("alias"!==e.kind){if(!e.user)return void(j&&(s.warn("Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript"),j=!1));j=!1}!v||I||o.isDoNotTrack()||(s.debug(ye(e.kind)),w.enqueue(e))}}function F(e,n,t,r){var i=R.getUser(),o=new Date,a=n?n.value:null;if(!f.allowFrequentDuplicateEvents){var u=JSON.stringify(a)+(i&&i.key?i.key:"")+e,s=O[u];if(s&&o-s<3e5)return;O[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=q(i));var l=P[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 A(e,n,t,r){var i;if(P&&ue(P,e)&&P[e]&&!P[e].deleted){var o=P[e];i=x(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&&F(e,i,n,r),i}function x(e){return{value:e.value,variationIndex:void 0===e.variation?null:e.variation,reason:e.reason||null}}function q(e){return e.anonymous?"anonymousUser":"user"}function _(e,n){T||e&&n&&C({kind:"alias",key:e.key,contextKind:q(e),previousKey:n.key,previousContextKind:q(n),creationDate:(new Date).getTime()})}function V(){i=!0,R.getUser()&&E.connect(R.getUser(),g,{ping:function(){s.debug("received ping message from stream");var n=R.getUser();D.fetchFlagSettings(n,g).then(function(e){te(n,R.getUser())&&z(e||{})}).catch(function(e){c.maybeReportError(new ee(we(e)))})},put:function(e){var n=JSON.parse(e.data);s.debug("received streaming update for all flags"),z(n)},patch:function(e){var n=JSON.parse(e.data),t=P[n.key];if(!t||!t.version||!n.version||t.version<n.version){s.debug(de(n.key));var r={},i=ae({},n);delete i.key;var o=x(P[n.key]=i);r[n.key]=t?{previous:t.value,current:o}:{current:o},M(r)}else s.debug(ge(n.key))},delete:function(e){var n=JSON.parse(e.data);if(!P[n.key]||P[n.key].version<n.version){s.debug(pe(n.key));var t={};P[n.key]&&!P[n.key].deleted&&(t[n.key]={previous:P[n.key].value}),P[n.key]={version:n.version,deleted:!0},M(t)}else s.debug(me(n.key))}})}function J(){i&&(E.disconnect(),i=!1)}function z(e){var n={};if(!e)return Promise.resolve();for(var t in P)ue(P,t)&&P[t]&&(e[t]&&!te(e[t].value,P[t].value)?n[t]={previous:P[t].value,current:x(e[t])}:e[t]&&!e[t].deleted||(n[t]={previous:P[t].value}));for(var r in e)ue(e,r)&&e[r]&&(!P[r]||P[r].deleted)&&(n[r]={current:x(e[r])});return P=Q({},e),M(n).catch(function(){})}function M(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;c.emit(sn+":"+e,t,r),o[e]=n?{current:t,previous:r}:{previous:r}}),c.emit(sn,o),c.emit(cn,P),f.sendEventsOnlyForVariation||T||e.forEach(function(e){F(e,i[e].current)})}return a&&L?L.saveFlags(P):Promise.resolve()}function K(){var e=S||u&&void 0===S;e&&!i?V():!e&&i&&J(),k&&k.setStreaming(e)}function B(e){return e===sn||e.substr(0,sn.length+1)===sn+":"}if("string"==typeof f.bootstrap&&"LOCALSTORAGE"===f.bootstrap.toUpperCase()&&(L?a=!0:s.warn(be())),"object"===W(f.bootstrap)&&(P=function(t){var e=Object.keys(t),r="$flagsState",i=t[r];!i&&e.length&&s.warn(ve()),!1===t.$valid&&s.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=ae(n,i[e]):n.version=0,o[e]=n}}),o}(f.bootstrap)),T){var H=T.getInitialState();H?$(H):T.on("init",$),T.on("update",function(e){e.user&&R.setUser(e.user);e.flags&&z(e.flags)})}else(e?N.validateUser(n).then(function(e){return R.setUser(e),"object"===W(f.bootstrap)?G():a?L.loadFlags().then(function(e){return null==e?(P={},D.fetchFlagSettings(R.getUser(),g).then(function(e){return z(e||{})}).then(G).catch(function(e){X(new ee(we(e)))})):(P=e,re(G),D.fetchFlagSettings(R.getUser(),g).then(function(e){return z(e)}).catch(function(e){return c.maybeReportError(e)}))}):D.fetchFlagSettings(R.getUser(),g).then(function(e){P=e||{},G()}).catch(function(e){P={},X(e)})}):Promise.reject(new Y(fe()))).catch(X);function $(e){d=e.environment,R.setUser(e.user),P=Q({},e.flags),re(G)}function G(){s.info("LaunchDarkly client initialized"),U=!0,K(),l.signalSuccess()}function X(e){l.signalFailure(e)}return{client:{waitForInitialization:function(){return l.getInitializationPromise()},waitUntilReady:function(){return l.getReadyPromise()},identify:function(e,r,n){return I?ie(Promise.resolve({}),n):T?(s.warn("identify() has no effect here; it must be called on the main client instance"),ie(Promise.resolve(oe(P)),n)):ie((a&&L?L.clearFlags():Promise.resolve()).then(function(){return N.validateUser(e)}).then(function(t){return D.fetchFlagSettings(t,r).then(function(e){var n=oe(e);return R.setUser(t),g=r,e?z(e).then(function(){return n}):n})}).then(function(e){return i&&V(),e}).catch(function(e){return c.maybeReportError(e),Promise.reject(e)}),n)},getUser:function(){return R.getUser()},variation:function(e,n){return A(e,n,!0,!1).value},variationDetail:function(e,n){return A(e,n,!0,!0)},track:function(e,n,t){if("string"==typeof e){o.customEventFilter&&!o.customEventFilter(e)&&s.warn(le(e));var r=R.getUser(),i={kind:"custom",key:e,user:r,url:o.getCurrentUrl(),creationDate:(new Date).getTime()};r&&r.anonymous&&(i.contextKind=q(r)),null!=n&&(i.data=n),null!=t&&(i.metricValue=t),C(i)}else c.maybeReportError(new Z(le(e)))},alias:_,on:function(e,n,t){B(e)?(u=!0,U&&K(),c.on(e,n,t)):c.on.apply(c,arguments)},off:function(e){if(c.off.apply(c,arguments),B(e)){var n=!1;c.getEvents().forEach(function(e){B(e)&&0<c.getEventListenerCount(e)&&(n=!0)}),n||(u=!1,i&&void 0===S&&J())}},setStreaming:function(e){var n=null===e?void 0:e;n!==S&&(S=n,K())},flush:function(e){return ie(v?w.flush():Promise.resolve(),e)},allFlags:function(){var e={};if(!P)return e;for(var n in P)ue(P,n)&&(e[n]=A(n,null,!f.sendEventsOnlyForVariation).value);return e},close:function(e){if(I)return ie(Promise.resolve(),e);function n(){I=!0,P={}}return ie(Promise.resolve().then(function(){if(J(),k&&k.stop(),v)return w.stop(),w.flush()}).then(n).catch(n),e)}},options:f,emitter:c,ident:R,logger:s,requestor:D,start:function(){v&&(k&&k.start(),w.start())},enqueueEvent:C,getFlagsInternal:function(){return P},getEnvironmentId:function(){return d},internalChangeEventName:cn}},e.messages=xe,e.utils=D,e.version="3.5.0",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 W(e){return(W="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 Q(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 f(e){return function(e){if(Array.isArray(e)){for(var n=0,t=new Array(e.length);n<e.length;n++)t[n]=e[n];return t}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}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 P=t("LaunchDarklyUnexpectedResponseError"),Y=t("LaunchDarklyInvalidEnvironmentIdError"),i=t("LaunchDarklyInvalidUserError"),Z=t("LaunchDarklyInvalidEventKeyError"),d=t("LaunchDarklyInvalidArgumentError"),ee=t("LaunchDarklyFlagFetchError"),ne=t("LaunchDarklyInvalidDataError");function S(e){return!(400<=e&&e<500)||(400===e||408===e||429===e)}for(var r=Object.freeze({__proto__:null,LDUnexpectedResponseError:P,LDInvalidEnvironmentIdError:Y,LDInvalidUserError:i,LDInvalidEventKeyError:Z,LDInvalidArgumentError:d,LDFlagFetchError:ee,LDInvalidDataError:ne,isHttpErrorRecoverable:S}),o=function(e){for(var n,t=e.length,r=t%3,i=[],o=0,a=t-r;o<a;o+=16383)i.push(v(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 v(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,y=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},h=["key","secondary","ip","country","email","firstName","lastName","avatar","name"];function b(e){var n=unescape(encodeURIComponent(e));return o(function(e){for(var n=[],t=0;t<e.length;t++)n.push(e.charCodeAt(t));return n}(n))}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 y(e,n)}function ie(e){setTimeout(e,0)}function oe(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 k(e){var n={};for(var t in e)se(e,t)&&(n[t]={value:e[t],version:0});return n}function ae(e){var n={};for(var t in e)se(e,t)&&(n[t]=e[t].value);return n}function E(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-=O(JSON.stringify(a)).length)<0&&0<t.length?r.unshift(a):t.push(a)}o=e,i.push(t)}return i}function w(e){var n=e.version||"3.5.1";return e.userAgent+"/"+n}function U(e,n){if(n&&!n.sendLDHeaders)return{};var t={"X-LaunchDarkly-User-Agent":w(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(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({},e,{},n)},{})}function se(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function ce(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||Q({},e))[r]=String(i))}return n||e}var D=Object.freeze({__proto__:null,btoa:b,base64URLEncode:O,clone:te,deepEquals:re,onNextTick:ie,wrapPromiseCallback:oe,transformValuesToVersionedValues:k,transformVersionedValuesToValues:ae,chunkUserEventsForUrl:E,getLDUserAgentString:w,getLDHeaders:U,transformHeaders:I,extend:ue,objectHasOwnProperty:se,sanitizeUser:ce});for(var j,R=(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={exports:{}},j.exports),j.exports),T=[],L=0;L<256;++L)T[L]=(L+256).toString(16).substr(1);var C,F,N=function(e,n){var t=n||0,r=T;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("")},A=0,x=0;var q=function(e,n,t){var r=n&&t||0,i=n||[],o=(e=e||{}).node||C,a=void 0!==e.clockseq?e.clockseq:F;if(null==o||null==a){var u=R();null==o&&(o=C=[1|u[0],u[1],u[2],u[3],u[4],u[5]]),null==a&&(a=F=16383&(u[6]<<8|u[7]))}var s=void 0!==e.msecs?e.msecs:(new Date).getTime(),c=void 0!==e.nsecs?e.nsecs:x+1,l=s-A+(c-x)/1e4;if(l<0&&void 0===e.clockseq&&(a=a+1&16383),(l<0||A<s)&&void 0===e.nsecs&&(c=0),1e4<=c)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");A=s,F=a;var f=(1e4*(268435455&(s+=122192928e5))+(x=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||N(i)},_=2e3;function le(u,e,s){var t="/a/"+e+".gif",c=ue({"Content-Type":"application/json"},U(u,s)),l=u.httpFallbackPing,f={};return f.sendChunk=function(e,r,i,n){var o=JSON.stringify(e),a=i?null:q();return n?function n(t){var e=i?c:ue({},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&&S(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="+O(o)),Promise.resolve())},f.sendEvents=function(e,n,t){if(!u.httpRequest)return Promise.resolve();var r,i=u.httpAllowsPost();r=i?[e]:E(_-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 V(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=ue({},i,a[1])}var u=Object.keys(i);return u.length&&(u.sort(),r.privateAttrs=u),r},n}function z(e){return e&&e.message?e.message:"string"==typeof e||e instanceof String?e:JSON.stringify(e)}function J(){return"LaunchDarkly client initialized"}function M(){return"Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript"}function fe(e){return'Custom event "'+e+'" does not exist'}function ve(){return"No environment/client-side ID was specified."+X}function K(){return"Invalid data received from LaunchDarkly; connection may have been interrupted"}function de(){return"LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly."+X}function B(){return"LaunchDarkly bootstrap data is not available because the back end could not read the flags."}function H(){return"identify() has no effect here; it must be called on the main client instance"}function $(){return"received ping message from stream"}function G(){return"received streaming update for all flags"}function ge(e){return'received streaming update for flag "'+e+'"'}function me(e){return'received streaming update for flag "'+e+'" but ignored due to version check'}function pe(e){return'received streaming deletion for flag "'+e+'"'}function ye(e){return'received streaming deletion for flag "'+e+'" but ignored due to version check'}function he(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.",be=function(){return"Exceeded event queue capacity. Increase capacity to avoid dropping events."},ke=function(e){return'Expected application/json content type but got "'+e+'"'},Ee=function(e){return"local storage is unavailable: "+z(e)},we=function(e){return"network error"+(e?" ("+e+")":"")},De=function(){return"Environment not found. Double check that you specified a valid environment/client-side ID."+X},Oe=function(e){return"Error fetching flag settings: "+z(e)},Pe=function(){return"No user specified."+X},Se=function(){return"Invalid user specified."+X},Ue=function(e,n){return n?'"'+e+'" is deprecated, please use "'+n+'"':'"'+e+'" is deprecated'},Ie=function(e,n,t){return"Received error "+e+(401===e?" (invalid SDK key)":"")+" for "+n+" - "+(S(e)?t:"giving up permanently")},je=function(){return"Cannot make HTTP requests in this environment."+X},Re=function(){return"Closing stream connection"},Te=function(e){return"Opening stream connection to "+e},Le=function(e,n){return"Error on stream connection: "+z(e)+", will continue retrying every "+n+" milliseconds."},Ce=function(e){return'Ignoring unknown config option "'+e+'"'},Fe=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"},Ae=function(e,n,t){return'Config option "'+e+'" was set to '+n+", changing to minimum value of "+t},xe=function(e){return"polling for feature flags at "+e},qe=function(e){return"sending "+e+" events"},_e=Object.freeze({__proto__:null,clientInitialized:J,clientNotReady:function(){return"LaunchDarkly client is not ready"},eventCapacityExceeded:be,eventWithoutUser:M,invalidContentType:ke,invalidKey:function(){return"Event key must be a string"},localStorageUnavailable:Ee,networkError:we,unknownCustomEventKey:fe,environmentNotFound:De,environmentNotSpecified:ve,errorFetchingFlags:Oe,userNotSpecified:Pe,invalidUser:Se,invalidData:K,bootstrapOldFormat:de,bootstrapInvalid:B,deprecated:Ue,httpErrorMessage:Ie,httpUnavailable:je,identifyDisabled:H,streamClosing:Re,streamConnecting:Te,streamError:Le,unknownOption:Ce,wrongOptionType:Fe,wrongOptionTypeBoolean:Ne,optionBelowMinimum:Ae,debugPolling:xe,debugStreamPing:$,debugStreamPut:G,debugStreamPatch:ge,debugStreamPatchIgnored:me,debugStreamDelete:pe,debugStreamDeleteIgnored:ye,debugEnqueueingEvent:he,debugPostingEvents:qe,debugPostingDiagnosticEvent:function(e){return"sending diagnostic event ("+e.kind+")"}});function Ve(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)||le(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=V(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 O(e){b.length<p?(b.push(e),w=!1):(w||(w=!0,h.warn(be())),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&&O(function(e){var n=ue({},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=ue({},e,{kind:"debug"});r.user=d.filterUser(r.user),delete r.trackEvents,delete r.debugEventsUntilDate,O(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(qe(e.length)),l.sendEvents(e,f).then(function(e){e&&(e.serverTime&&(k=e.serverTime),S(e.status)||(E=!0),400<=e.status&&ie(function(){s.maybeReportError(new P(Ie(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 ze(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 Je="ready",Me="initialized",Ke="failed";var Be=function(r){var n=!1,t=!1,i=null,e=null,o=new Promise(function(n){r.on(Je,function e(){r.off(Je,e),n()})}).catch(function(){});return{getInitializationPromise:function(){return e||(n?Promise.resolve():t?Promise.reject(i):e=new Promise(function(n,t){r.on(Me,function e(){r.off(Me,e),n()}),r.on(Ke,function e(n){r.off(Ke,e),t(n)})}))},getReadyPromise:function(){return o},signalSuccess:function(){n||t||(n=!0,r.emit(Me),r.emit(Je))},signalFailure:function(e){n||t||(t=!0,i=e,r.emit(Ke,e),r.emit(Je)),r.maybeReportError(e)}}};function He(t,r,i,o){var a={};function u(){var e="",n=o.getUser();return n&&(e=i||b(JSON.stringify(n))),"ld:"+r+":"+e}return a.loadFlags=function(){return t.get(u()).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=k(n):delete n.$schema}return n}catch(e){return a.clearFlags().then(function(){return null})}})},a.saveFlags=function(e){var n=ue({},e,{$schema:1});return t.set(u(),JSON.stringify(n))},a.clearFlags=function(){return t.clear(u())},a}function $e(r,n){function i(e){t||(t=!0,n.warn(Ee(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){i(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){i(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){i(e),n(!1)}):n(!1)})},e}var Ge=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=U(i,o),g=!1,m=null,p=null,y=null,h=null,b=null;function k(e){g||(c.warn(Le(e,t)),g=!0),D(!1),w(),E(t)}function E(e){p||(e?p=setTimeout(r,e):r())}function r(){var e;p=null;var n="",t={headers:d,readTimeoutMillis:Ge};if(i.eventSourceFactory){for(var r in null!=h&&(n="h="+h),f?i.eventSourceAllowsReport?(e=l,t.method="REPORT",t.headers["Content-Type"]="application/json",t.body=JSON.stringify(y)):(e=s+"/ping/"+a,n=""):e=l+"/"+O(JSON.stringify(y)),t.headers=I(t.headers,o),v&&(n=n+(n?"&":"")+"withReasons=true"),e=e+(n?"?":"")+n,w(),c.info(Te(e)),u=(new Date).getTime(),m=i.eventSourceFactory(e,t),b)se(b,r)&&m.addEventListener(r,b[r]);m.onerror=k}}function w(){m&&(c.info(Re()),m.close(),m=null)}function D(e){u&&n&&n.recordStreamInit(u,!e,(new Date).getTime()-u),u=null}return e.connect=function(e,n,t){y=e,h=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(p),p=null,w()},e.isConnected=function(){return!!(m&&i.eventSourceIsActive&&i.eventSourceIsActive(m))},e}var We="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 ee(je()))});var t=n?"REPORT":"GET",r=U(u,s);n&&(r["Content-Type"]=We);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 Y(De()):new ee(Oe(e.statusText||String(e.status)))}(e));if(e.header("content-type")&&e.header("content-type").substring(0,We.length)===We)return JSON.parse(e.body);var n=ke(e.header("content-type")||"");return Promise.reject(new ee(n))},function(e){return Promise.reject(new ee(we(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=O(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(xe(r)),g(r,i)},e}var Ye="ld:$anonUserId";function Ze(r){var e={};return e.validateUser=function(e){if(!e)return Promise.reject(new i(Pe()));var t=te(e);return null!==t.key&&void 0!==t.key?(t.key=t.key.toString(),Promise.resolve(t)):t.anonymous?r.get(Ye).then(function(e){if(e)return t.key=e,t;var n=q();return function(e){return r.set(Ye,e)}(t.key=n).then(function(){return t})}):Promise.reject(new i(Se()))},e}var en=["debug","info","warn","error","none"];function nn(e,a){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 u=e&&e.destination?[e.destination,e.destination,e.destination,e.destination]:[n("log"),n("info"),n("warn"),n("error")],s=!(!e||!e.destination),c=e&&void 0!==e.prefix&&null!==e.prefix?e.prefix:"[LaunchDarkly] ",r=1;if(e&&e.level)for(var t=0;t<en.length;t++)en[t]===e.level&&(r=t);for(var i={},o=function(e){var n=en[e];if("none"!==n)if(e<r)i[n]=function(){};else{var t=e;i[n]=function(){!function(e,n,t){if(!(t.length<1)){var r,i=s?n+": "+c:c;if(1!==t.length&&a){var o=f(t);o[0]=i+o[0],r=a.apply(void 0,f(o))}else r=i+t[0];try{u[e](r)}catch(e){console&&console.log&&console.log("[LaunchDarkly] Configured logger's "+n+" method threw an exception: "+e)}}}(t,n,arguments)}}},l=0;l<en.length;l++)o(l);return i}function tn(e,n){return nn({level:e,prefix:n})}var rn={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 on(e,n,t,r){var a=ue({logger:{default:r}},rn,t),i={all_attributes_private:"allAttributesPrivate",private_attribute_names:"privateAttributeNames",samplingInterval:null};function u(e){ie(function(){n&&n.maybeReportError(new d(e))})}var o,s,c,l,f=ue({},e||{});function v(e){if(null===e)return"any";if(void 0!==e){if(Array.isArray(e))return"array";var n=W(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(Ue(e,n)),n&&(void 0===o[n]&&(o[n]=o[e]),delete o[e])}}),s=ue({},f),Object.keys(a).forEach(function(e){void 0!==s[e]&&null!==s[e]||(s[e]=a[e]&&a[e].default)}),l=ue({},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(Ce(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(Fe(e,r,o)),l[e]=t.default):"number"===o&&void 0!==t.minimum&&n<t.minimum&&(u(Ae(e,n,t.minimum)),l[e]=t.minimum)}}}}),function(n){en.forEach(function(e){if("none"!==e&&(!n[e]||"function"!=typeof n[e]))throw new Error("Provided logger instance must support logger."+e+"(...) method")})}((f=l).logger),f}var an=Object.freeze({__proto__:null,baseOptionDefs:rn,validate:on}).baseOptionDefs;var un=function(e){var n={diagnosticId:q()};return e&&(n.sdkKeySuffix=6<e.length?e.substring(e.length-6):e),n},sn=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}},cn=function(n,r,e,t,i,o,a){var u,s,c=!!n.diagnosticUseCombinedEvent,l="ld:"+i+":$diagnostics",f=o.eventsUrl+"/events/diagnostic/"+i,v=o.diagnosticRecordingInterval,d=e,g=!!o.streaming,m={};function p(){return{sdk:function(){var e=Q({},n.diagnosticSdkData);o.wrapperName&&(e.wrapperName=o.wrapperName);o.wrapperVersion&&(e.wrapperVersion=o.wrapperVersion);return e}(),configuration:{customBaseURI:o.baseUrl!==an.baseUrl.default,customStreamURI:o.streamUrl!==an.streamUrl.default,customEventsURI:o.eventsUrl!==an.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},platform:n.diagnosticPlatformData}}function y(e){o.logger&&o.logger.debug(_e.debugPostingDiagnosticEvent(e)),t.sendEvents(e,f,!0).then(function(){}).catch(function(){})}function h(){y(function(){var e=(new Date).getTime(),n=Q({kind:c?"diagnostic-combined":"diagnostic",id:a,creationDate:e},d.getProps());return c&&(n=Q({},n,{},p())),d.reset(e),n}()),s=setTimeout(h,v),u=(new Date).getTime(),c&&function(){if(r.isEnabled()){var e=Q({},d.getProps());r.set(l,JSON.stringify(e))}}()}return m.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);d.setProps(n),u=n.dataSinceDate}catch(e){}t(!0)}).catch(function(){t(!1)})}(function(e){if(e){var n=(u||0)+v,t=(new Date).getTime();n<=t?h():s=setTimeout(h,n-t)}else 0===Math.floor(4*Math.random())?h():s=setTimeout(h,v)}):(y(Q({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},ln="change",fn="internal-change";e.commonBasicLogger=nn,e.createConsoleLogger=tn,e.errors=r,e.initialize=function(e,n,t,o,r){var a,i,u,s=function(){if(t&&t.logger)return t.logger;return r&&r.logger&&r.logger.default||tn("warn")}(),c=ze(s),l=Be(c),f=on(t,c,r,s),v=f.sendEvents,d=e,g=f.hash,m=$e(o.localStorage,s),p=le(o,d,f),y=f.sendEvents&&!f.diagnosticOptOut,h=y?un(d):null,b=y?sn((new Date).getTime()):null,k=y?cn(o,m,b,p,d,f,h):null,E=Xe(o,f,d,b),w=f.eventProcessor||Ve(o,f,d,b,c,p),D=Qe(o,f,d),O={},P={},S=f.streaming,U=!1,I=!1,j=!0,R=f.stateProvider,T=function(e,t){var r,n={};return n.setUser=function(e){var n=r&&te(r);(r=ce(e))&&t&&t(te(r),n)},n.getUser=function(){return r?te(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),!f.autoAliasingOptOut&&n&&n.anonymous&&e&&!e.anonymous&&_(e,n)}),L=Ze(m),C=m.isEnabled()?new He(m,d,g,T,s):null;function F(e){if(d&&!(R&&R.enqueueEvent&&R.enqueueEvent(e))){if("alias"!==e.kind){if(!e.user)return void(j&&(s.warn("Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript"),j=!1));j=!1}!v||I||o.isDoNotTrack()||(s.debug(he(e.kind)),w.enqueue(e))}}function N(e,n,t,r){var i=T.getUser(),o=new Date,a=n?n.value:null;if(!f.allowFrequentDuplicateEvents){var u=JSON.stringify(a)+(i&&i.key?i.key:"")+e,s=O[u];if(s&&o-s<3e5)return;O[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=q(i));var l=P[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 A(e,n,t,r){var i;if(P&&se(P,e)&&P[e]&&!P[e].deleted){var o=P[e];i=x(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 x(e){return{value:e.value,variationIndex:void 0===e.variation?null:e.variation,reason:e.reason||null}}function q(e){return e.anonymous?"anonymousUser":"user"}function _(e,n){R||e&&n&&F({kind:"alias",key:e.key,contextKind:q(e),previousKey:n.key,previousContextKind:q(n),creationDate:(new Date).getTime()})}function V(){if(i=!0,T.getUser()){var a=function(e){try{return JSON.parse(e)}catch(e){return void c.maybeReportError(new ne("Invalid data received from LaunchDarkly; connection may have been interrupted"))}};E.connect(T.getUser(),g,{ping:function(){s.debug("received ping message from stream");var n=T.getUser();D.fetchFlagSettings(n,g).then(function(e){re(n,T.getUser())&&J(e||{})}).catch(function(e){c.maybeReportError(new ee(Oe(e)))})},put:function(e){var n=a(e.data);n&&(s.debug("received streaming update for all flags"),J(n))},patch:function(e){var n=a(e.data);if(n){var t=P[n.key];if(!t||!t.version||!n.version||t.version<n.version){s.debug(ge(n.key));var r={},i=ue({},n);delete i.key;var o=x(P[n.key]=i);r[n.key]=t?{previous:t.value,current:o}:{current:o},M(r)}else s.debug(me(n.key))}},delete:function(e){var n=a(e.data);if(n)if(!P[n.key]||P[n.key].version<n.version){s.debug(pe(n.key));var t={};P[n.key]&&!P[n.key].deleted&&(t[n.key]={previous:P[n.key].value}),P[n.key]={version:n.version,deleted:!0},M(t)}else s.debug(ye(n.key))}})}}function z(){i&&(E.disconnect(),i=!1)}function J(e){var n={};if(!e)return Promise.resolve();for(var t in P)se(P,t)&&P[t]&&(e[t]&&!re(e[t].value,P[t].value)?n[t]={previous:P[t].value,current:x(e[t])}:e[t]&&!e[t].deleted||(n[t]={previous:P[t].value}));for(var r in e)se(e,r)&&e[r]&&(!P[r]||P[r].deleted)&&(n[r]={current:x(e[r])});return P=Q({},e),M(n).catch(function(){})}function M(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;c.emit(ln+":"+e,t,r),o[e]=n?{current:t,previous:r}:{previous:r}}),c.emit(ln,o),c.emit(fn,P),f.sendEventsOnlyForVariation||R||e.forEach(function(e){N(e,i[e].current)})}return a&&C?C.saveFlags(P):Promise.resolve()}function K(){var e=S||u&&void 0===S;e&&!i?V():!e&&i&&z(),k&&k.setStreaming(e)}function B(e){return e===ln||e.substr(0,ln.length+1)===ln+":"}if("string"==typeof f.bootstrap&&"LOCALSTORAGE"===f.bootstrap.toUpperCase()&&(C?a=!0:s.warn(Ee())),"object"===W(f.bootstrap)&&(P=function(t){var e=Object.keys(t),r="$flagsState",i=t[r];!i&&e.length&&s.warn(de()),!1===t.$valid&&s.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=ue(n,i[e]):n.version=0,o[e]=n}}),o}(f.bootstrap)),R){var H=R.getInitialState();H?$(H):R.on("init",$),R.on("update",function(e){e.user&&T.setUser(e.user);e.flags&&J(e.flags)})}else(e?L.validateUser(n).then(function(e){return T.setUser(e),"object"===W(f.bootstrap)?G():a?C.loadFlags().then(function(e){return null==e?(P={},D.fetchFlagSettings(T.getUser(),g).then(function(e){return J(e||{})}).then(G).catch(function(e){X(new ee(Oe(e)))})):(P=e,ie(G),D.fetchFlagSettings(T.getUser(),g).then(function(e){return J(e)}).catch(function(e){return c.maybeReportError(e)}))}):D.fetchFlagSettings(T.getUser(),g).then(function(e){P=e||{},G()}).catch(function(e){P={},X(e)})}):Promise.reject(new Y(ve()))).catch(X);function $(e){d=e.environment,T.setUser(e.user),P=Q({},e.flags),ie(G)}function G(){s.info("LaunchDarkly client initialized"),U=!0,K(),l.signalSuccess()}function X(e){l.signalFailure(e)}return{client:{waitForInitialization:function(){return l.getInitializationPromise()},waitUntilReady:function(){return l.getReadyPromise()},identify:function(e,r,n){return I?oe(Promise.resolve({}),n):R?(s.warn("identify() has no effect here; it must be called on the main client instance"),oe(Promise.resolve(ae(P)),n)):oe((a&&C?C.clearFlags():Promise.resolve()).then(function(){return L.validateUser(e)}).then(function(t){return D.fetchFlagSettings(t,r).then(function(e){var n=ae(e);return T.setUser(t),g=r,e?J(e).then(function(){return n}):n})}).then(function(e){return i&&V(),e}).catch(function(e){return c.maybeReportError(e),Promise.reject(e)}),n)},getUser:function(){return T.getUser()},variation:function(e,n){return A(e,n,!0,!1).value},variationDetail:function(e,n){return A(e,n,!0,!0)},track:function(e,n,t){if("string"==typeof e){o.customEventFilter&&!o.customEventFilter(e)&&s.warn(fe(e));var r=T.getUser(),i={kind:"custom",key:e,user:r,url:o.getCurrentUrl(),creationDate:(new Date).getTime()};r&&r.anonymous&&(i.contextKind=q(r)),null!=n&&(i.data=n),null!=t&&(i.metricValue=t),F(i)}else c.maybeReportError(new Z(fe(e)))},alias:_,on:function(e,n,t){B(e)?(u=!0,U&&K(),c.on(e,n,t)):c.on.apply(c,arguments)},off:function(e){if(c.off.apply(c,arguments),B(e)){var n=!1;c.getEvents().forEach(function(e){B(e)&&0<c.getEventListenerCount(e)&&(n=!0)}),n||(u=!1,i&&void 0===S&&z())}},setStreaming:function(e){var n=null===e?void 0:e;n!==S&&(S=n,K())},flush:function(e){return oe(v?w.flush():Promise.resolve(),e)},allFlags:function(){var e={};if(!P)return e;for(var n in P)se(P,n)&&(e[n]=A(n,null,!f.sendEventsOnlyForVariation).value);return e},close:function(e){if(I)return oe(Promise.resolve(),e);function n(){I=!0,P={}}return oe(Promise.resolve().then(function(){if(z(),k&&k.stop(),v)return w.stop(),w.flush()}).then(n).catch(n),e)}},options:f,emitter:c,ident:T,logger:s,requestor:D,start:function(){v&&(k&&k.start(),w.start())},enqueueEvent:F,getFlagsInternal:function(){return P},getEnvironmentId:function(){return d},internalChangeEventName:fn}},e.messages=_e,e.utils=D,e.version="3.5.1",Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=ldclient-common.min.js.map
|