launchdarkly-js-sdk-common 3.8.0 → 3.8.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(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function n(n){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?e(Object(i),!0).forEach((function(e){r(n,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):e(Object(i)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}))}return n}function t(e){return(t="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 r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==t)return;var r,i,o=[],a=!0,u=!1;try{for(t=t.call(e);!(a=(r=t.next()).done)&&(o.push(r.value),!n||o.length!==n);a=!0);}catch(e){u=!0,i=e}finally{try{a||null==t.return||t.return()}finally{if(u)throw i}}return o}(e,n)||a(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||a(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 a(e,n){if(e){if("string"==typeof e)return u(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?u(e,n):void 0}}function u(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 c(e){function n(e,n){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.message=e,this.code=n}return n.prototype=new Error,n.prototype.name=e,n.prototype.constructor=n,n}var s=c("LaunchDarklyUnexpectedResponseError"),l=c("LaunchDarklyInvalidEnvironmentIdError"),f=c("LaunchDarklyInvalidUserError"),d=c("LaunchDarklyInvalidEventKeyError"),v=c("LaunchDarklyInvalidArgumentError"),g=c("LaunchDarklyFlagFetchError"),p=c("LaunchDarklyInvalidDataError");function m(e){return!(e>=400&&e<500)||(400===e||408===e||429===e)}for(var h=Object.freeze({__proto__:null,LDUnexpectedResponseError:s,LDInvalidEnvironmentIdError:l,LDInvalidUserError:f,LDInvalidEventKeyError:d,LDInvalidArgumentError:v,LDFlagFetchError:g,LDInvalidDataError:p,isHttpErrorRecoverable:m}),y=function(e){for(var n,t=e.length,r=t%3,i=[],o=0,a=t-r;o<a;o+=16383)i.push(O(e,o,o+16383>a?a:o+16383));1===r?(n=e[t-1],i.push(b[n>>2]+b[n<<4&63]+"==")):2===r&&(n=(e[t-2]<<8)+e[t-1],i.push(b[n>>10]+b[n>>4&63]+b[n<<2&63]+"="));return i.join("")},b=[],k=[],E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",w=0,D=E.length;w<D;++w)b[w]=E[w],k[E.charCodeAt(w)]=w;function O(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(b[(i=r)>>18&63]+b[i>>12&63]+b[i>>6&63]+b[63&i]);return o.join("")}k["-".charCodeAt(0)]=62,k["_".charCodeAt(0)]=63;var S=Array.isArray,P=Object.keys,U=Object.prototype.hasOwnProperty,I=["key","secondary","ip","country","email","firstName","lastName","avatar","name"];function j(e,n){return(e.endsWith("/")?e.substring(0,e.length-1):e)+(n.startsWith("/")?"":"/")+n}function C(e){var n=unescape(encodeURIComponent(e));return y(function(e){for(var n=[],t=0;t<e.length;t++)n.push(e.charCodeAt(t));return n}(n))}function T(e){return C(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function R(e){return JSON.parse(JSON.stringify(e))}function L(e,n){return function e(n,t){if(n===t)return!0;if(n&&t&&"object"==typeof n&&"object"==typeof t){var r,i,o,a=S(n),u=S(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 c=n instanceof Date,s=t instanceof Date;if(c!=s)return!1;if(c&&s)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 d=P(n);if((i=d.length)!==P(t).length)return!1;for(r=i;0!=r--;)if(!U.call(t,d[r]))return!1;for(r=i;0!=r--;)if(!e(n[o=d[r]],t[o]))return!1;return!0}return n!=n&&t!=t}(e,n)}function A(e){setTimeout(e,0)}function F(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 N(e){var n={};for(var t in e)z(e,t)&&(n[t]={value:e[t],version:0});return n}function x(e){var n={};for(var t in e)z(e,t)&&(n[t]=e[t].value);return n}function V(e,n){for(var t,r=n.slice(0),i=[],o=e;r.length>0;){for(t=[];o>0;){var a=r.shift();if(!a)break;(o-=T(JSON.stringify(a)).length)<0&&t.length>0?r.unshift(a):t.push(a)}o=e,i.push(t)}return i}function q(e){var n=e.version||"3.8.0";return e.userAgent+"/"+n}function _(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.reduce((function(e,t){return n(n({},e),t)}),{})}function z(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function M(e){if(!e)return e;var t;for(var r in I){var i=I[r],o=e[i];void 0!==o&&"string"!=typeof o&&((t=t||n({},e))[i]=String(o))}return t||e}var J=Object.freeze({__proto__:null,appendUrlPath:j,btoa:C,base64URLEncode:T,clone:R,deepEquals:L,onNextTick:A,wrapPromiseCallback:F,transformValuesToVersionedValues:N,transformVersionedValuesToValues:x,chunkUserEventsForUrl:V,getLDUserAgentString:q,extend:_,objectHasOwnProperty:z,sanitizeUser:M});for(var K=function(e,n){return e(n={exports:{}},n.exports),n.exports}((function(e){var n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var t=new Uint8Array(16);e.exports=function(){return n(t),t}}else{var r=new Array(16);e.exports=function(){for(var e,n=0;n<16;n++)0==(3&n)&&(e=4294967296*Math.random()),r[n]=e>>>((3&n)<<3)&255;return r}}})),$=[],B=0;B<256;++B)$[B]=(B+256).toString(16).substr(1);var H,G,W=function(e,n){var t=n||0,r=$;return[r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]]].join("")},X=0,Q=0;var Y=function(e,n,t){var r=n&&t||0,i=n||[],o=(e=e||{}).node||H,a=void 0!==e.clockseq?e.clockseq:G;if(null==o||null==a){var u=K();null==o&&(o=H=[1|u[0],u[1],u[2],u[3],u[4],u[5]]),null==a&&(a=G=16383&(u[6]<<8|u[7]))}var c=void 0!==e.msecs?e.msecs:(new Date).getTime(),s=void 0!==e.nsecs?e.nsecs:Q+1,l=c-X+(s-Q)/1e4;if(l<0&&void 0===e.clockseq&&(a=a+1&16383),(l<0||c>X)&&void 0===e.nsecs&&(s=0),s>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");X=c,Q=s,G=a;var f=(1e4*(268435455&(c+=122192928e5))+s)%4294967296;i[r++]=f>>>24&255,i[r++]=f>>>16&255,i[r++]=f>>>8&255,i[r++]=255&f;var d=c/4294967296*1e4&268435455;i[r++]=d>>>8&255,i[r++]=255&d,i[r++]=d>>>24&15|16,i[r++]=d>>>16&255,i[r++]=a>>>8|128,i[r++]=255&a;for(var v=0;v<6;++v)i[r+v]=o[v];return n||W(i)},Z=["debug","info","warn","error","none"];function ee(e,n){if(e&&e.destination&&"function"!=typeof e.destination)throw new Error("destination for basicLogger was set to a non-function");function t(e){return function(n){console&&console[e]&&console[e].call(console,n)}}var r=e&&e.destination?[e.destination,e.destination,e.destination,e.destination]:[t("log"),t("info"),t("warn"),t("error")],i=!(!e||!e.destination),a=e&&void 0!==e.prefix&&null!==e.prefix?e.prefix:"[LaunchDarkly] ",u=1;if(e&&e.level)for(var c=0;c<Z.length;c++)Z[c]===e.level&&(u=c);function s(e,t,u){if(!(u.length<1)){var c,s=i?t+": "+a:a;if(1!==u.length&&n){var l=o(u);l[0]=s+l[0],c=n.apply(void 0,o(l))}else c=s+u[0];try{r[e](c)}catch(e){console&&console.log&&console.log("[LaunchDarkly] Configured logger's "+t+" method threw an exception: "+e)}}}for(var l={},f=function(e){var n=Z[e];if("none"!==n)if(e<u)l[n]=function(){};else{var t=e;l[n]=function(){s(t,n,arguments)}}},d=0;d<Z.length;d++)f(d);return l}function ne(e,n){return ee({level:e,prefix:n})}function te(e){return e&&e.message?e.message:"string"==typeof e||e instanceof String?e:JSON.stringify(e)}var re=function(){return"LaunchDarkly client initialized"},ie=" Please see https://docs.launchdarkly.com/sdk/client-side/javascript#initializing-the-client for instructions on SDK initialization.",oe=function(){return"Exceeded event queue capacity. Increase capacity to avoid dropping events."},ae=function(){return"Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript"},ue=function(e){return'Expected application/json content type but got "'+e+'"'},ce=function(e){return"local storage is unavailable: "+te(e)},se=function(e){return"network error"+(e?" ("+e+")":"")},le=function(e){return'Custom event "'+e+'" does not exist'},fe=function(){return"Environment not found. Double check that you specified a valid environment/client-side ID."+ie},de=function(){return"No environment/client-side ID was specified."+ie},ve=function(e){return"Error fetching flag settings: "+te(e)},ge=function(){return"No user specified."+ie},pe=function(){return"Invalid user specified."+ie},me=function(){return"Invalid data received from LaunchDarkly; connection may have been interrupted"},he=function(){return"LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly."+ie},ye=function(){return"LaunchDarkly bootstrap data is not available because the back end could not read the flags."},be=function(e,n){return n?'"'+e+'" is deprecated, please use "'+n+'"':'"'+e+'" is deprecated'},ke=function(e,n,t){return"Received error "+e+(401===e?" (invalid SDK key)":"")+" for "+n+" - "+(m(e)?t:"giving up permanently")},Ee=function(){return"Cannot make HTTP requests in this environment."+ie},we=function(){return"identify() has no effect here; it must be called on the main client instance"},De=function(){return"Closing stream connection"},Oe=function(e){return"Opening stream connection to "+e},Se=function(e,n){return"Error on stream connection: "+te(e)+", will continue retrying every "+n+" milliseconds."},Pe=function(e){return'Ignoring unknown config option "'+e+'"'},Ue=function(e,n,t){return'Config option "'+e+'" should be of type '+n+", got "+t+", using default value"},Ie=function(e,n){return'Config option "'+e+'" should be a boolean, got '+n+", converting to boolean"},je=function(e,n,t){return'Config option "'+e+'" was set to '+n+", changing to minimum value of "+t},Ce=function(e){return"polling for feature flags at "+e},Te=function(){return"received ping message from stream"},Re=function(){return"received streaming update for all flags"},Le=function(e){return'received streaming update for flag "'+e+'"'},Ae=function(e){return'received streaming update for flag "'+e+'" but ignored due to version check'},Fe=function(e){return'received streaming deletion for flag "'+e+'"'},Ne=function(e){return'received streaming deletion for flag "'+e+'" but ignored due to version check'},xe=function(e){return'enqueueing "'+e+'" event'},Ve=function(e){return"sending "+e+" events"},qe=function(e){return'Config option "'.concat(e,'" must only contain letters, numbers, ., _ or -.')},_e=function(e,n){return'an inspector: "'.concat(n,'" of an invalid type (').concat(e,") was configured")},ze=function(e,n){return'an inspector: "'.concat(n,'" of type: "').concat(e,'" generated an exception')},Me=function(e){return'Value of "'.concat(e,'" was longer than 64 characters and was discarded.')},Je=Object.freeze({__proto__:null,clientInitialized:re,clientNotReady:function(){return"LaunchDarkly client is not ready"},eventCapacityExceeded:oe,eventWithoutUser:ae,invalidContentType:ue,invalidKey:function(){return"Event key must be a string"},localStorageUnavailable:ce,networkError:se,unknownCustomEventKey:le,environmentNotFound:fe,environmentNotSpecified:de,errorFetchingFlags:ve,userNotSpecified:ge,invalidUser:pe,invalidData:me,bootstrapOldFormat:he,bootstrapInvalid:ye,deprecated:be,httpErrorMessage:ke,httpUnavailable:Ee,identifyDisabled:we,streamClosing:De,streamConnecting:Oe,streamError:Se,unknownOption:Pe,wrongOptionType:Ue,wrongOptionTypeBoolean:Ie,optionBelowMinimum:je,debugPolling:Ce,debugStreamPing:Te,debugStreamPut:Re,debugStreamPatch:Le,debugStreamPatchIgnored:Ae,debugStreamDelete:Fe,debugStreamDeleteIgnored:Ne,debugEnqueueingEvent:xe,debugPostingEvents:Ve,debugPostingDiagnosticEvent:function(e){return"sending diagnostic event ("+e.kind+")"},invalidTagValue:qe,invalidInspector:_e,inspectorMethodError:ze,tagValueTooLong:Me}),Ke={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},application:{validator:function(e,n,t){var r={};n.id&&(r.id=Be("".concat(e,".id"),n.id,t));n.version&&(r.version=Be("".concat(e,".version"),n.version,t));return r}},inspectors:{default:[]}},$e=/^(\w|\.|-)+$/;function Be(e,n,t){if("string"==typeof n&&n.match($e)){if(!(n.length>64))return n;t.warn(Me(e))}else t.warn(qe(e))}function He(e,n,r,i){var o=_({logger:{default:i}},Ke,r),a={all_attributes_private:"allAttributesPrivate",private_attribute_names:"privateAttributeNames",samplingInterval:null,allowFrequentDuplicateEvents:void 0};function u(e){A((function(){n&&n.maybeReportError(new v(e))}))}var c=_({},e||{});return function(e){var n=e;Object.keys(a).forEach((function(e){if(void 0!==n[e]){var t=a[e];i&&i.warn(be(e,t)),t&&(void 0===n[t]&&(n[t]=n[e]),delete n[e])}}))}(c),function(e){Z.forEach((function(n){if("none"!==n&&(!e[n]||"function"!=typeof e[n]))throw new Error("Provided logger instance must support logger."+n+"(...) method")}))}((c=function(e){var n=_({},e),r=function(e){if(null===e)return"any";if(void 0!==e){if(Array.isArray(e))return"array";var n=t(e);return"boolean"===n||"string"===n||"number"===n||"function"===n?n:"object"}};return Object.keys(e).forEach((function(t){var a=e[t];if(null!=a){var c=o[t];if(void 0===c)u(Pe(t));else{var s=c.type||r(c.default),l=c.validator;if(l){var f=l(t,e[t],i);void 0!==f?n[t]=f:delete n[t]}else if("any"!==s){var d=s.split("|"),v=r(a);d.indexOf(v)<0?"boolean"===s?(n[t]=!!a,u(Ie(t,v))):(u(Ue(t,s,v)),n[t]=c.default):"number"===v&&void 0!==c.minimum&&a<c.minimum&&(u(je(t,a,c.minimum)),n[t]=c.minimum)}}}})),n}(c=function(e){var n=_({},e);return Object.keys(o).forEach((function(e){void 0!==n[e]&&null!==n[e]||(n[e]=o[e]&&o[e].default)})),n}(c))).logger),c}function Ge(e){var n={};return e&&(e.application&&void 0!==e.application.id&&null!==e.application.id&&(n["application-id"]=[e.application.id]),e.application&&void 0!==e.application.version&&null!==e.application.id&&(n["application-version"]=[e.application.version])),n}function We(e,n){if(n&&!n.sendLDHeaders)return{};var t={"X-LaunchDarkly-User-Agent":q(e)};n&&n.wrapperName&&(t["X-LaunchDarkly-Wrapper"]=n.wrapperVersion?n.wrapperName+"/"+n.wrapperVersion:n.wrapperName);var r=Ge(n),i=Object.keys(r);return i.length&&(t["x-launchdarkly-tags"]=i.sort().flatMap((function(e){return Array.isArray(r[e])?r[e].sort().map((function(n){return"".concat(e,"/").concat(n)})):["".concat(e,"/").concat(r[e])]})).join(" ")),t}function Xe(e,t){return t&&t.requestHeaderTransform?t.requestHeaderTransform(n({},e)):e}function Qe(e,n,t){var r="/a/"+n+".gif",i=_({"Content-Type":"application/json"},We(e,t)),o=e.httpFallbackPing,a={};return a.sendChunk=function(n,a,u,c){var s=JSON.stringify(n),l=u?null:Y();return c?function n(r){var o=u?i:_({},i,{"X-LaunchDarkly-Event-Schema":"3","X-LaunchDarkly-Payload-ID":l});return e.httpRequest("POST",a,Xe(o,t),s).promise.then((function(e){if(e)return e.status>=400&&m(e.status)&&r?n(!1):function(e){var n={status:e.status},t=e.header("date");if(t){var r=Date.parse(t);r&&(n.serverTime=r)}return n}(e)})).catch((function(){return r?n(!1):Promise.reject()}))}(!0).catch((function(){})):(o&&o(a+r+"?d="+T(s)),Promise.resolve())},a.sendEvents=function(n,t,r){if(!e.httpRequest)return Promise.resolve();var i,o=e.httpAllowsPost();i=o?[n]:V(2e3-t.length,n);for(var u=[],c=0;c<i.length;c++)u.push(a.sendChunk(i[c],t,r,o));return Promise.all(u)},a}function Ye(){var e={},n=0,t=0,r={};return e.summarizeEvent=function(e){if("feature"===e.kind){var i=e.key+":"+(null!==e.variation&&void 0!==e.variation?e.variation:"")+":"+(null!==e.version&&void 0!==e.version?e.version:""),o=r[i];o?o.count=o.count+1:r[i]={count:1,key:e.key,variation:e.variation,version:e.version,value:e.value,default:e.default},(0===n||e.creationDate<n)&&(n=e.creationDate),e.creationDate>t&&(t=e.creationDate)}},e.getSummary=function(){var e={},i=!0;for(var o in r){var a=r[o],u=e[a.key];u||(u={default:a.default,counters:[]},e[a.key]=u);var c={value:a.value,count:a.count};void 0!==a.variation&&null!==a.variation&&(c.variation=a.variation),a.version?c.version=a.version:c.unknown=!0,u.counters.push(c),i=!1}return i?null:{startDate:n,endDate:t,features:e}},e.clearSummary=function(){n=0,t=0,r={}},e}function Ze(e){var n={},t=e.allAttributesPrivate,r=e.privateAttributeNames||[],i={key:!0,custom:!0,anonymous:!0},o={key:!0,secondary:!0,ip:!0,country:!0,email:!0,firstName:!0,lastName:!0,avatar:!0,name:!0,anonymous:!0,custom:!0};return n.filterUser=function(e){if(!e)return null;var n=e.privateAttributeNames||[],a=function(e,o){return Object.keys(e).reduce((function(a,u){var c=a;return o(u)&&(!function(e){return!i[e]&&(t||-1!==n.indexOf(e)||-1!==r.indexOf(e))}(u)?c[0][u]=e[u]:c[1][u]=!0),c}),[{},{}])},u=a(e,(function(e){return o[e]})),c=u[0],s=u[1];if(e.custom){var l=a(e.custom,(function(){return!0}));c.custom=l[0],s=_({},s,l[1])}var f=Object.keys(s);return f.length&&(f.sort(),c.privateAttrs=f),c},n}function en(e){var n={},t={};return n.on=function(e,n,r){t[e]=t[e]||[],t[e]=t[e].concat({handler:n,context:r})},n.off=function(e,n,r){if(t[e])for(var i=0;i<t[e].length;i++)t[e][i].handler===n&&t[e][i].context===r&&(t[e]=t[e].slice(0,i).concat(t[e].slice(i+1)))},n.emit=function(e){if(t[e])for(var n=t[e].slice(0),r=0;r<n.length;r++)n[r].handler.apply(n[r].context,Array.prototype.slice.call(arguments,1))},n.getEvents=function(){return Object.keys(t)},n.getEventListenerCount=function(e){return t[e]?t[e].length:0},n.maybeReportError=function(n){n&&(t["error"]?this.emit("error",n):(e||console).error(n.message))},n}var nn=function(e){var n=!1,t=!1,r=null,i=null,o=new Promise((function(n){e.on("ready",(function t(){e.off("ready",t),n()}))})).catch((function(){}));return{getInitializationPromise:function(){return i||(n?Promise.resolve():t?Promise.reject(r):i=new Promise((function(n,t){e.on("initialized",(function t(){e.off("initialized",t),n()})),e.on("failed",(function n(r){e.off("failed",n),t(r)}))})))},getReadyPromise:function(){return o},signalSuccess:function(){n||t||(n=!0,e.emit("initialized"),e.emit("ready"))},signalFailure:function(i){n||t||(t=!0,r=i,e.emit("failed",i),e.emit("ready")),e.maybeReportError(i)}}};function tn(e,n,t,r){var i={};function o(){var e="",i=r.getUser();return i&&(e=t||C(JSON.stringify(i))),"ld:"+n+":"+e}return i.loadFlags=function(){return e.get(o()).then((function(e){if(null==e)return null;try{var n=JSON.parse(e);if(n){var t=n.$schema;void 0===t||t<1?n=N(n):delete n.$schema}return n}catch(e){return i.clearFlags().then((function(){return null}))}}))},i.saveFlags=function(n){var t=_({},n,{$schema:1});return e.set(o(),JSON.stringify(t))},i.clearFlags=function(){return e.clear(o())},i}function rn(e,n,t,r){var i,o=n.streamUrl,a=n.logger,u={},c=j(o,"/eval/"+t),s=n.useReport,l=n.evaluationReasons,f=n.streamReconnectDelay,d=We(e,n),v=!1,g=null,p=null,m=null,h=null,y=null;function b(e){v||(a.warn(Se(e,f)),v=!0),D(!1),w(),k(f)}function k(e){p||(e?p=setTimeout(E,e):E())}function E(){var r;p=null;var u="",f={headers:d,readTimeoutMillis:3e5};if(e.eventSourceFactory){for(var v in null!=h&&(u="h="+h),s?e.eventSourceAllowsReport?(r=c,f.method="REPORT",f.headers["Content-Type"]="application/json",f.body=JSON.stringify(m)):(r=j(o,"/ping/"+t),u=""):r=c+"/"+T(JSON.stringify(m)),f.headers=Xe(f.headers,n),l&&(u=u+(u?"&":"")+"withReasons=true"),r=r+(u?"?":"")+u,w(),a.info(Oe(r)),i=(new Date).getTime(),g=e.eventSourceFactory(r,f),y)z(y,v)&&g.addEventListener(v,y[v]);g.onerror=b}}function w(){g&&(a.info("Closing stream connection"),g.close(),g=null)}function D(e){i&&r&&r.recordStreamInit(i,!e,(new Date).getTime()-i),i=null}return u.connect=function(e,n,t){m=e,h=n,y={};var r=function(e){y[e]=function(n){v=!1,D(!0),t[e]&&t[e](n)}};for(var i in t||{})r(i);k()},u.disconnect=function(){clearTimeout(p),p=null,w()},u.isConnected=function(){return!!(g&&e.eventSourceIsActive&&e.eventSourceIsActive(g))},u}function on(e,n,t){var r=n.baseUrl,i=n.useReport,o=n.evaluationReasons,a=n.logger,u={},c={};function s(t,r){if(!e.httpRequest)return new Promise((function(e,n){n(new g(Ee()))}));var i=r?"REPORT":"GET",o=We(e,n);r&&(o["Content-Type"]="application/json");var a=c[t];a||(a=function(e){var n,t,r,i,o={addPromise:function(o,a){n=o,t&&t(),t=a,o.then((function(t){n===o&&(r(t),e&&e())}),(function(t){n===o&&(i(t),e&&e())}))}};return o.resultPromise=new Promise((function(e,n){r=e,i=n})),o}((function(){delete c[t]})),c[t]=a);var u=e.httpRequest(i,t,Xe(o,n),r),s=u.promise.then((function(e){if(200===e.status){if(e.header("content-type")&&"application/json"===e.header("content-type").substring(0,"application/json".length))return JSON.parse(e.body);var n=ue(e.header("content-type")||"");return Promise.reject(new g(n))}return Promise.reject(function(e){return 404===e.status?new l(fe()):new g(ve(e.statusText||String(e.status)))}(e))}),(function(e){return Promise.reject(new g(se(e)))}));return a.addPromise(s,(function(){u.cancel&&u.cancel()})),a.resultPromise}return u.fetchJSON=function(e){return s(j(r,e),null)},u.fetchFlagSettings=function(e,n){var u,c,l,f="";return i?(c=[r,"/sdk/evalx/",t,"/user"].join(""),l=JSON.stringify(e)):(u=T(JSON.stringify(e)),c=[r,"/sdk/evalx/",t,"/users/",u].join("")),n&&(f="h="+n),o&&(f=f+(f?"&":"")+"withReasons=true"),c=c+(f?"?":"")+f,a.debug(Ce(c)),s(c,l)},u}function an(e){var n={};return n.validateUser=function(n){if(!n)return Promise.reject(new f(ge()));var t=R(n);return null!==t.key&&void 0!==t.key?(t.key=t.key.toString(),Promise.resolve(t)):t.anonymous?e.get("ld:$anonUserId").then((function(n){if(n)return t.key=n,t;var r=Y();return t.key=r,function(n){return e.set("ld:$anonUserId",n)}(r).then((function(){return t}))})):Promise.reject(new f(pe()))},n}var un=Object.freeze({__proto__:null,baseOptionDefs:Ke,validate:He,getTags:Ge}).baseOptionDefs,cn=J.appendUrlPath;var sn=function(e){var n={diagnosticId:Y()};return e&&(n.sdkKeySuffix=e.length>6?e.substring(e.length-6):e),n},ln=function(e){var n,t,r,i;function o(e){n=e,t=0,r=0,i=[]}return o(e),{getProps:function(){return{dataSinceDate:n,droppedEvents:t,eventsInLastBatch:r,streamInits:i}},setProps:function(e){n=e.dataSinceDate,t=e.droppedEvents||0,r=e.eventsInLastBatch||0,i=e.streamInits||[]},incrementDroppedEvents:function(){t++},setEventsInLastBatch:function(e){r=e},recordStreamInit:function(e,n,t){var r={timestamp:e,failed:n,durationMillis:t};i.push(r)},reset:o}},fn=function(e,t,r,i,o,a,u){var c,s,l=!!e.diagnosticUseCombinedEvent,f="ld:"+o+":$diagnostics",d=cn(a.eventsUrl,"/events/diagnostic/"+o),v=a.diagnosticRecordingInterval,g=r,p=!!a.streaming,m={};function h(){return{sdk:k(),configuration:(n={customBaseURI:a.baseUrl!==un.baseUrl.default,customStreamURI:a.streamUrl!==un.streamUrl.default,customEventsURI:a.eventsUrl!==un.eventsUrl.default,eventsCapacity:a.eventCapacity,eventsFlushIntervalMillis:a.flushInterval,reconnectTimeMillis:a.streamReconnectDelay,streamingDisabled:!p,allAttributesPrivate:!!a.allAttributesPrivate,inlineUsersInEvents:!!a.inlineUsersInEvents,diagnosticRecordingIntervalMillis:a.diagnosticRecordingInterval,usingSecureMode:!!a.hash,bootstrapMode:!!a.bootstrap,fetchGoalsDisabled:!a.fetchGoals,sendEventsOnlyForVariation:!!a.sendEventsOnlyForVariation,autoAliasingOptOut:!!a.autoAliasingOptOut},n),platform:e.diagnosticPlatformData};var n}function y(e){a.logger&&a.logger.debug(Je.debugPostingDiagnosticEvent(e)),i.sendEvents(e,d,!0).then((function(){})).catch((function(){}))}function b(){var e,r;y((e=(new Date).getTime(),r=n({kind:l?"diagnostic-combined":"diagnostic",id:u,creationDate:e},g.getProps()),l&&(r=n(n({},r),h())),g.reset(e),r)),s=setTimeout(b,v),c=(new Date).getTime(),l&&function(){if(t.isEnabled()){var e=n({},g.getProps());t.set(f,JSON.stringify(e))}}()}function k(){var t=n({},e.diagnosticSdkData);return a.wrapperName&&(t.wrapperName=a.wrapperName),a.wrapperVersion&&(t.wrapperVersion=a.wrapperVersion),t}return m.start=function(){l?function(e){if(!t.isEnabled())return e(!1);t.get(f).then((function(n){if(n)try{var t=JSON.parse(n);g.setProps(t),c=t.dataSinceDate}catch(e){}e(!0)})).catch((function(){e(!1)}))}((function(e){if(e){var n=(c||0)+v,t=(new Date).getTime();t>=n?b():s=setTimeout(b,n-t)}else 0===Math.floor(4*Math.random())?b():s=setTimeout(b,v)})):(y(n({kind:"diagnostic-init",id:u,creationDate:g.getProps().dataSinceDate},h())),s=setTimeout(b,v))},m.stop=function(){s&&clearTimeout(s)},m.setStreaming=function(e){p=e},m};var dn={flagUsed:"flag-used",flagDetailsChanged:"flag-details-changed",flagDetailChanged:"flag-detail-changed",clientIdentityChanged:"client-identity-changed"};function vn(e,n){var t,i={},o=(r(t={},dn.flagUsed,[]),r(t,dn.flagDetailsChanged,[]),r(t,dn.flagDetailChanged,[]),r(t,dn.clientIdentityChanged,[]),t);return(null==e?void 0:e.map((function(e){return function(e,n){var t=!1,r={type:e.type,name:e.name,method:function(){try{e.method.apply(e,arguments)}catch(e){t||(t=!0,n.warn(ze(r.type,r.name)))}}};return r}(e,n)}))).forEach((function(e){Object.prototype.hasOwnProperty.call(o,e.type)?o[e.type].push(e):n.warn(_e(e.type,e.name))})),i.hasListeners=function(e){var n;return null===(n=o[e])||void 0===n?void 0:n.length},i.onFlagUsed=function(e,n,t){o[dn.flagUsed].length&&A((function(){o[dn.flagUsed].forEach((function(r){return r.method(e,n,t)}))}))},i.onFlags=function(e){o[dn.flagDetailsChanged].length&&A((function(){o[dn.flagDetailsChanged].forEach((function(n){return n.method(e)}))}))},i.onFlagChanged=function(e,n){o[dn.flagDetailChanged].length&&A((function(){console.log("what?"),o[dn.flagDetailChanged].forEach((function(t){return t.method(e,n)}))}))},i.onIdentityChanged=function(e){o[dn.clientIdentityChanged].length&&A((function(){o[dn.clientIdentityChanged].forEach((function(n){return n.method(e)}))}))},i}Object.freeze(dn);function gn(e,r,o,a,u){var c,f,v,h=function(){if(o&&o.logger)return o.logger;return u&&u.logger&&u.logger.default||ne("warn")}(),y=en(h),b=nn(y),k=He(o,y,u,h),E=vn(k.inspectors,h),w=k.sendEvents,D=e,O=k.hash,S=function(e,n){var t={},r=!1,i=function(e){r||(r=!0,n.warn(ce(e)))};return t.isEnabled=function(){return!!e},t.get=function(n){return new Promise((function(t){e?e.get(n).then(t).catch((function(e){i(e),t(void 0)})):t(void 0)}))},t.set=function(n,t){return new Promise((function(r){e?e.set(n,t).then((function(){return r(!0)})).catch((function(e){i(e),r(!1)})):r(!1)}))},t.clear=function(n){return new Promise((function(t){e?e.clear(n).then((function(){return t(!0)})).catch((function(e){i(e),t(!1)})):t(!1)}))},t}(a.localStorage,h),P=Qe(a,D,k),U=k.sendEvents&&!k.diagnosticOptOut,I=U?sn(D):null,C=U?ln((new Date).getTime()):null,T=U?fn(a,S,C,P,D,k,I):null,N=rn(a,k,D,C),V=k.eventProcessor||function(e,n,t){var r,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,u={},c=a||Qe(e,t,n),l=j(n.eventsUrl,"/events/bulk/"+t),f=Ye(),d=Ze(n),v=n.inlineUsersInEvents,g=n.samplingInterval,p=n.eventCapacity,h=n.flushInterval,y=n.logger,b=[],k=0,E=!1,w=!1;function D(){return 0===g||0===Math.floor(Math.random()*g)}function O(e){return!!e.debugEventsUntilDate&&(e.debugEventsUntilDate>k&&e.debugEventsUntilDate>(new Date).getTime())}function S(e){var n=_({},e);return"alias"===e.kind||(v||"identify"===e.kind?n.user=d.filterUser(e.user):(n.userKey=e.user.key,delete n.user),"feature"===e.kind&&(delete n.trackEvents,delete n.debugEventsUntilDate)),n}function P(e){b.length<p?(b.push(e),w=!1):(w||(w=!0,y.warn("Exceeded event queue capacity. Increase capacity to avoid dropping events.")),i&&i.incrementDroppedEvents())}return u.enqueue=function(e){if(!E){var n=!1,t=!1;if(f.summarizeEvent(e),"feature"===e.kind?D()&&(n=!!e.trackEvents,t=O(e)):n=D(),n&&P(S(e)),t){var r=_({},e,{kind:"debug"});r.user=d.filterUser(r.user),delete r.trackEvents,delete r.debugEventsUntilDate,P(r)}}},u.flush=function(){if(E)return Promise.resolve();var e=b,n=f.getSummary();return f.clearSummary(),n&&(n.kind="summary",e.push(n)),i&&i.setEventsInLastBatch(e.length),0===e.length?Promise.resolve():(b=[],y.debug(Ve(e.length)),c.sendEvents(e,l).then((function(e){e&&(e.serverTime&&(k=e.serverTime),m(e.status)||(E=!0),e.status>=400&&A((function(){o.maybeReportError(new s(ke(e.status,"event posting","some events were dropped")))})))})))},u.start=function(){r=setTimeout((function e(){u.flush(),r=setTimeout(e,h)}),h)},u.stop=function(){clearTimeout(r)},u}(a,k,D,C,y,P),q=on(a,k,D),J={},K=k.streaming,$=!1,B=!1,H=!0,G=k.stateProvider,W=function(e,n){var t,r={};return r.setUser=function(e){var r=t&&R(t);(t=M(e))&&n&&n(R(t),r)},r.getUser=function(){return t?R(t):null},e&&r.setUser(e),r}(null,(function(e,n){(function(e){if(G)return;e&&Y({kind:"identify",key:e.key,user:e,creationDate:(new Date).getTime()})})(e),!k.autoAliasingOptOut&&n&&n.anonymous&&e&&!e.anonymous&&ue(e,n);Z()})),X=an(S),Q=S.isEnabled()?new tn(S,D,O,W,h):null;function Y(e){if(D&&!(G&&G.enqueueEvent&&G.enqueueEvent(e))){if("alias"!==e.kind){if(!e.user)return void(H&&(h.warn("Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript"),H=!1));H=!1}!w||B||a.isDoNotTrack()||(h.debug(xe(e.kind)),V.enqueue(e))}}function Z(){E.hasListeners(dn.clientIdentityChanged)&&E.onIdentityChanged(W.getUser())}function ee(e,n){E.hasListeners(dn.flagDetailChanged)&&E.onFlagChanged(e.key,oe(n))}function te(){E.hasListeners(dn.flagDetailsChanged)&&E.onFlags(Object.entries(J).map((function(e){var n=i(e,2);return{key:n[0],detail:oe(n[1])}})).reduce((function(e,n){return e[n.key]=n.detail,e}),{}))}function re(e,n,t,r){var i=W.getUser(),o=new Date,a={kind:"feature",key:e,user:i,value:n?n.value:null,variation:n?n.variationIndex:null,default:t,creationDate:o.getTime()};i&&i.anonymous&&(a.contextKind=ae(i));var u=J[e];u&&(a.version=u.flagVersion?u.flagVersion:u.version,a.trackEvents=u.trackEvents,a.debugEventsUntilDate=u.debugEventsUntilDate),(r||u&&u.trackReason)&&n&&(a.reason=n.reason),Y(a)}function ie(e,n,t,r,i){var o;if(J&&z(J,e)&&J[e]&&!J[e].deleted){var a=J[e];o=oe(a),null!==a.value&&void 0!==a.value||(o.value=n)}else o={value:n,variationIndex:null,reason:{kind:"ERROR",errorKind:"FLAG_NOT_FOUND"}};return t&&re(e,o,n,r),i||Z(),o}function oe(e){return{value:e.value,variationIndex:void 0===e.variation?null:e.variation,reason:e.reason||null}}function ae(e){return e.anonymous?"anonymousUser":"user"}function ue(e,n){G||e&&n&&Y({kind:"alias",key:e.key,contextKind:ae(e),previousKey:n.key,previousContextKind:ae(n),creationDate:(new Date).getTime()})}function se(){if(f=!0,W.getUser()){var e=function(e){try{return JSON.parse(e)}catch(e){return void y.maybeReportError(new p("Invalid data received from LaunchDarkly; connection may have been interrupted"))}};N.connect(W.getUser(),O,{ping:function(){h.debug("received ping message from stream");var e=W.getUser();q.fetchFlagSettings(e,O).then((function(n){L(e,W.getUser())&&ge(n||{})})).catch((function(e){y.maybeReportError(new g(ve(e)))}))},put:function(n){var t=e(n.data);t&&(h.debug("received streaming update for all flags"),ge(t))},patch:function(n){var t=e(n.data);if(t){var r=J[t.key];if(!r||!r.version||!t.version||r.version<t.version){h.debug(Le(t.key));var i={},o=_({},t);delete o.key,J[t.key]=o;var a=oe(o);i[t.key]=r?{previous:r.value,current:a}:{current:a},pe(i),ee(t,o)}else h.debug(Ae(t.key))}},delete:function(n){var t=e(n.data);if(t)if(!J[t.key]||J[t.key].version<t.version){h.debug(Fe(t.key));var r={};J[t.key]&&!J[t.key].deleted&&(r[t.key]={previous:J[t.key].value}),J[t.key]={version:t.version,deleted:!0},ee(t,J[t.key]),pe(r)}else h.debug(Ne(t.key))}})}}function fe(){f&&(N.disconnect(),f=!1)}function ge(e){var t={};if(!e)return Promise.resolve();for(var r in J)z(J,r)&&J[r]&&(e[r]&&!L(e[r].value,J[r].value)?t[r]={previous:J[r].value,current:oe(e[r])}:e[r]&&!e[r].deleted||(t[r]={previous:J[r].value}));for(var i in e)z(e,i)&&e[i]&&(!J[i]||J[i].deleted)&&(t[i]={current:oe(e[i])});return J=n({},e),te(),pe(t).catch((function(){}))}function pe(e){var n=Object.keys(e);if(n.length>0){var t={};n.forEach((function(n){var r=e[n].current,i=r?r.value:void 0,o=e[n].previous;y.emit("change:"+n,i,o),t[n]=r?{current:i,previous:o}:{previous:o}})),y.emit("change",t),y.emit("internal-change",J),k.sendEventsOnlyForVariation||G||n.forEach((function(n){re(n,e[n].current)}))}return c&&Q?Q.saveFlags(J):Promise.resolve()}function me(){var e=K||v&&void 0===K;e&&!f?se():!e&&f&&fe(),T&&T.setStreaming(e)}function ye(e){return"change"===e||"change:"===e.substr(0,"change".length+1)}if("string"==typeof k.bootstrap&&"LOCALSTORAGE"===k.bootstrap.toUpperCase()&&(Q?c=!0:h.warn(ce())),"object"===t(k.bootstrap)&&(J=function(e){var n=Object.keys(e),t=e.$flagsState;!t&&n.length&&h.warn(he()),!1===e.$valid&&h.warn("LaunchDarkly bootstrap data is not available because the back end could not read the flags.");var r={};return n.forEach((function(n){if("$flagsState"!==n&&"$valid"!==n){var i={value:e[n]};t&&t[n]?i=_(i,t[n]):i.version=0,r[n]=i}})),r}(k.bootstrap)),G){var be=G.getInitialState();be?Ee(be):G.on("init",Ee),G.on("update",(function(e){e.user&&W.setUser(e.user);e.flags&&ge(e.flags)}))}else(function(){if(!e)return Promise.reject(new l(de()));return X.validateUser(r).then((function(e){return W.setUser(e),"object"===t(k.bootstrap)?we():c?Q.loadFlags().then((function(e){return null==e?(J={},q.fetchFlagSettings(W.getUser(),O).then((function(e){return ge(e||{})})).then(we).catch((function(e){De(new g(ve(e)))}))):(J=e,A(we),q.fetchFlagSettings(W.getUser(),O).then((function(e){return ge(e)})).catch((function(e){return y.maybeReportError(e)})))})):q.fetchFlagSettings(W.getUser(),O).then((function(e){J=e||{},te(),we()})).catch((function(e){J={},De(e)}))}))})().catch(De);function Ee(e){D=e.environment,W.setUser(e.user),J=n({},e.flags),A(we)}function we(){h.info("LaunchDarkly client initialized"),$=!0,me(),b.signalSuccess()}function De(e){b.signalFailure(e)}return{client:{waitForInitialization:function(){return b.getInitializationPromise()},waitUntilReady:function(){return b.getReadyPromise()},identify:function(e,n,t){return B?F(Promise.resolve({}),t):G?(h.warn("identify() has no effect here; it must be called on the main client instance"),F(Promise.resolve(x(J)),t)):F((c&&Q?Q.clearFlags():Promise.resolve()).then((function(){return X.validateUser(e)})).then((function(e){return q.fetchFlagSettings(e,n).then((function(t){var r=x(t);return W.setUser(e),O=n,t?ge(t).then((function(){return r})):r}))})).then((function(e){return f&&se(),e})).catch((function(e){return y.maybeReportError(e),Promise.reject(e)})),t)},getUser:function(){return W.getUser()},variation:function(e,n){return ie(e,n,!0,!1,!1).value},variationDetail:function(e,n){return ie(e,n,!0,!0,!1)},track:function(e,n,t){if("string"==typeof e){a.customEventFilter&&!a.customEventFilter(e)&&h.warn(le(e));var r=W.getUser(),i={kind:"custom",key:e,user:r,url:a.getCurrentUrl(),creationDate:(new Date).getTime()};r&&r.anonymous&&(i.contextKind=ae(r)),null!=n&&(i.data=n),null!=t&&(i.metricValue=t),Y(i)}else y.maybeReportError(new d(le(e)))},alias:ue,on:function(e,n,t){ye(e)?(v=!0,$&&me(),y.on(e,n,t)):y.on.apply(y,arguments)},off:function(e){if(y.off.apply(y,arguments),ye(e)){var n=!1;y.getEvents().forEach((function(e){ye(e)&&y.getEventListenerCount(e)>0&&(n=!0)})),n||(v=!1,f&&void 0===K&&fe())}},setStreaming:function(e){var n=null===e?void 0:e;n!==K&&(K=n,me())},flush:function(e){return F(w?V.flush():Promise.resolve(),e)},allFlags:function(){var e={};if(!J)return e;for(var n in J)z(J,n)&&!J[n].deleted&&(e[n]=ie(n,null,!k.sendEventsOnlyForVariation,!1,!0).value);return e},close:function(e){if(B)return F(Promise.resolve(),e);var n=function(){B=!0,J={}};return F(Promise.resolve().then((function(){if(fe(),T&&T.stop(),w)return V.stop(),V.flush()})).then(n).catch(n),e)}},options:k,emitter:y,ident:W,logger:h,requestor:q,start:function(){w&&(T&&T.start(),V.start())},enqueueEvent:Y,getFlagsInternal:function(){return J},getEnvironmentId:function(){return D},internalChangeEventName:"internal-change"}}var pn="3.8.0";export{ee as commonBasicLogger,ne as createConsoleLogger,h as errors,gn as initialize,Je as messages,J as utils,pn as version};
|
|
1
|
+
function e(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);n&&(r=r.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,r)}return t}function n(n){for(var t=1;t<arguments.length;t++){var i=null!=arguments[t]?arguments[t]:{};t%2?e(Object(i),!0).forEach((function(e){r(n,e,i[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(i)):e(Object(i)).forEach((function(e){Object.defineProperty(n,e,Object.getOwnPropertyDescriptor(i,e))}))}return n}function t(e){return(t="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 r(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){return function(e){if(Array.isArray(e))return e}(e)||function(e,n){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==t)return;var r,i,o=[],a=!0,u=!1;try{for(t=t.call(e);!(a=(r=t.next()).done)&&(o.push(r.value),!n||o.length!==n);a=!0);}catch(e){u=!0,i=e}finally{try{a||null==t.return||t.return()}finally{if(u)throw i}}return o}(e,n)||a(e,n)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||a(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 a(e,n){if(e){if("string"==typeof e)return u(e,n);var t=Object.prototype.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?u(e,n):void 0}}function u(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 c(e){function n(e,n){Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor),this.message=e,this.code=n}return n.prototype=new Error,n.prototype.name=e,n.prototype.constructor=n,n}var s=c("LaunchDarklyUnexpectedResponseError"),l=c("LaunchDarklyInvalidEnvironmentIdError"),f=c("LaunchDarklyInvalidUserError"),d=c("LaunchDarklyInvalidEventKeyError"),v=c("LaunchDarklyInvalidArgumentError"),g=c("LaunchDarklyFlagFetchError"),p=c("LaunchDarklyInvalidDataError");function m(e){return!(e>=400&&e<500)||(400===e||408===e||429===e)}for(var h=Object.freeze({__proto__:null,LDUnexpectedResponseError:s,LDInvalidEnvironmentIdError:l,LDInvalidUserError:f,LDInvalidEventKeyError:d,LDInvalidArgumentError:v,LDFlagFetchError:g,LDInvalidDataError:p,isHttpErrorRecoverable:m}),y=function(e){for(var n,t=e.length,r=t%3,i=[],o=0,a=t-r;o<a;o+=16383)i.push(O(e,o,o+16383>a?a:o+16383));1===r?(n=e[t-1],i.push(b[n>>2]+b[n<<4&63]+"==")):2===r&&(n=(e[t-2]<<8)+e[t-1],i.push(b[n>>10]+b[n>>4&63]+b[n<<2&63]+"="));return i.join("")},b=[],k=[],E="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",w=0,D=E.length;w<D;++w)b[w]=E[w],k[E.charCodeAt(w)]=w;function O(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(b[(i=r)>>18&63]+b[i>>12&63]+b[i>>6&63]+b[63&i]);return o.join("")}k["-".charCodeAt(0)]=62,k["_".charCodeAt(0)]=63;var S=Array.isArray,P=Object.keys,U=Object.prototype.hasOwnProperty,I=["key","secondary","ip","country","email","firstName","lastName","avatar","name"];function j(e,n){return(e.endsWith("/")?e.substring(0,e.length-1):e)+(n.startsWith("/")?"":"/")+n}function C(e){var n=unescape(encodeURIComponent(e));return y(function(e){for(var n=[],t=0;t<e.length;t++)n.push(e.charCodeAt(t));return n}(n))}function T(e){return C(e).replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}function R(e){return JSON.parse(JSON.stringify(e))}function L(e,n){return function e(n,t){if(n===t)return!0;if(n&&t&&"object"==typeof n&&"object"==typeof t){var r,i,o,a=S(n),u=S(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 c=n instanceof Date,s=t instanceof Date;if(c!=s)return!1;if(c&&s)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 d=P(n);if((i=d.length)!==P(t).length)return!1;for(r=i;0!=r--;)if(!U.call(t,d[r]))return!1;for(r=i;0!=r--;)if(!e(n[o=d[r]],t[o]))return!1;return!0}return n!=n&&t!=t}(e,n)}function A(e){setTimeout(e,0)}function F(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 N(e){var n={};for(var t in e)z(e,t)&&(n[t]={value:e[t],version:0});return n}function x(e){var n={};for(var t in e)z(e,t)&&(n[t]=e[t].value);return n}function V(e,n){for(var t,r=n.slice(0),i=[],o=e;r.length>0;){for(t=[];o>0;){var a=r.shift();if(!a)break;(o-=T(JSON.stringify(a)).length)<0&&t.length>0?r.unshift(a):t.push(a)}o=e,i.push(t)}return i}function q(e){var n=e.version||"3.8.1";return e.userAgent+"/"+n}function _(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return t.reduce((function(e,t){return n(n({},e),t)}),{})}function z(e,n){return Object.prototype.hasOwnProperty.call(e,n)}function M(e){if(!e)return e;var t;for(var r in I){var i=I[r],o=e[i];void 0!==o&&"string"!=typeof o&&((t=t||n({},e))[i]=String(o))}return t||e}var J=Object.freeze({__proto__:null,appendUrlPath:j,btoa:C,base64URLEncode:T,clone:R,deepEquals:L,onNextTick:A,wrapPromiseCallback:F,transformValuesToVersionedValues:N,transformVersionedValuesToValues:x,chunkUserEventsForUrl:V,getLDUserAgentString:q,extend:_,objectHasOwnProperty:z,sanitizeUser:M});for(var K=function(e,n){return e(n={exports:{}},n.exports),n.exports}((function(e){var n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof window.msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto);if(n){var t=new Uint8Array(16);e.exports=function(){return n(t),t}}else{var r=new Array(16);e.exports=function(){for(var e,n=0;n<16;n++)0==(3&n)&&(e=4294967296*Math.random()),r[n]=e>>>((3&n)<<3)&255;return r}}})),$=[],B=0;B<256;++B)$[B]=(B+256).toString(16).substr(1);var H,G,W=function(e,n){var t=n||0,r=$;return[r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],"-",r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]],r[e[t++]]].join("")},X=0,Q=0;var Y=function(e,n,t){var r=n&&t||0,i=n||[],o=(e=e||{}).node||H,a=void 0!==e.clockseq?e.clockseq:G;if(null==o||null==a){var u=K();null==o&&(o=H=[1|u[0],u[1],u[2],u[3],u[4],u[5]]),null==a&&(a=G=16383&(u[6]<<8|u[7]))}var c=void 0!==e.msecs?e.msecs:(new Date).getTime(),s=void 0!==e.nsecs?e.nsecs:Q+1,l=c-X+(s-Q)/1e4;if(l<0&&void 0===e.clockseq&&(a=a+1&16383),(l<0||c>X)&&void 0===e.nsecs&&(s=0),s>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");X=c,Q=s,G=a;var f=(1e4*(268435455&(c+=122192928e5))+s)%4294967296;i[r++]=f>>>24&255,i[r++]=f>>>16&255,i[r++]=f>>>8&255,i[r++]=255&f;var d=c/4294967296*1e4&268435455;i[r++]=d>>>8&255,i[r++]=255&d,i[r++]=d>>>24&15|16,i[r++]=d>>>16&255,i[r++]=a>>>8|128,i[r++]=255&a;for(var v=0;v<6;++v)i[r+v]=o[v];return n||W(i)},Z=["debug","info","warn","error","none"];function ee(e,n){if(e&&e.destination&&"function"!=typeof e.destination)throw new Error("destination for basicLogger was set to a non-function");function t(e){return function(n){console&&console[e]&&console[e].call(console,n)}}var r=e&&e.destination?[e.destination,e.destination,e.destination,e.destination]:[t("log"),t("info"),t("warn"),t("error")],i=!(!e||!e.destination),a=e&&void 0!==e.prefix&&null!==e.prefix?e.prefix:"[LaunchDarkly] ",u=1;if(e&&e.level)for(var c=0;c<Z.length;c++)Z[c]===e.level&&(u=c);function s(e,t,u){if(!(u.length<1)){var c,s=i?t+": "+a:a;if(1!==u.length&&n){var l=o(u);l[0]=s+l[0],c=n.apply(void 0,o(l))}else c=s+u[0];try{r[e](c)}catch(e){console&&console.log&&console.log("[LaunchDarkly] Configured logger's "+t+" method threw an exception: "+e)}}}for(var l={},f=function(e){var n=Z[e];if("none"!==n)if(e<u)l[n]=function(){};else{var t=e;l[n]=function(){s(t,n,arguments)}}},d=0;d<Z.length;d++)f(d);return l}function ne(e,n){return ee({level:e,prefix:n})}function te(e){return e&&e.message?e.message:"string"==typeof e||e instanceof String?e:JSON.stringify(e)}var re=function(){return"LaunchDarkly client initialized"},ie=" Please see https://docs.launchdarkly.com/sdk/client-side/javascript#initializing-the-client for instructions on SDK initialization.",oe=function(){return"Exceeded event queue capacity. Increase capacity to avoid dropping events."},ae=function(){return"Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript"},ue=function(e){return'Expected application/json content type but got "'+e+'"'},ce=function(e){return"local storage is unavailable: "+te(e)},se=function(e){return"network error"+(e?" ("+e+")":"")},le=function(e){return'Custom event "'+e+'" does not exist'},fe=function(){return"Environment not found. Double check that you specified a valid environment/client-side ID."+ie},de=function(){return"No environment/client-side ID was specified."+ie},ve=function(e){return"Error fetching flag settings: "+te(e)},ge=function(){return"No user specified."+ie},pe=function(){return"Invalid user specified."+ie},me=function(){return"Invalid data received from LaunchDarkly; connection may have been interrupted"},he=function(){return"LaunchDarkly client was initialized with bootstrap data that did not include flag metadata. Events may not be sent correctly."+ie},ye=function(){return"LaunchDarkly bootstrap data is not available because the back end could not read the flags."},be=function(e,n){return n?'"'+e+'" is deprecated, please use "'+n+'"':'"'+e+'" is deprecated'},ke=function(e,n,t){return"Received error "+e+(401===e?" (invalid SDK key)":"")+" for "+n+" - "+(m(e)?t:"giving up permanently")},Ee=function(){return"Cannot make HTTP requests in this environment."+ie},we=function(){return"identify() has no effect here; it must be called on the main client instance"},De=function(){return"Closing stream connection"},Oe=function(e){return"Opening stream connection to "+e},Se=function(e,n){return"Error on stream connection: "+te(e)+", will continue retrying every "+n+" milliseconds."},Pe=function(e){return'Ignoring unknown config option "'+e+'"'},Ue=function(e,n,t){return'Config option "'+e+'" should be of type '+n+", got "+t+", using default value"},Ie=function(e,n){return'Config option "'+e+'" should be a boolean, got '+n+", converting to boolean"},je=function(e,n,t){return'Config option "'+e+'" was set to '+n+", changing to minimum value of "+t},Ce=function(e){return"polling for feature flags at "+e},Te=function(){return"received ping message from stream"},Re=function(){return"received streaming update for all flags"},Le=function(e){return'received streaming update for flag "'+e+'"'},Ae=function(e){return'received streaming update for flag "'+e+'" but ignored due to version check'},Fe=function(e){return'received streaming deletion for flag "'+e+'"'},Ne=function(e){return'received streaming deletion for flag "'+e+'" but ignored due to version check'},xe=function(e){return'enqueueing "'+e+'" event'},Ve=function(e){return"sending "+e+" events"},qe=function(e){return'Config option "'.concat(e,'" must only contain letters, numbers, ., _ or -.')},_e=function(e,n){return'an inspector: "'.concat(n,'" of an invalid type (').concat(e,") was configured")},ze=function(e,n){return'an inspector: "'.concat(n,'" of type: "').concat(e,'" generated an exception')},Me=function(e){return'Value of "'.concat(e,'" was longer than 64 characters and was discarded.')},Je=Object.freeze({__proto__:null,clientInitialized:re,clientNotReady:function(){return"LaunchDarkly client is not ready"},eventCapacityExceeded:oe,eventWithoutUser:ae,invalidContentType:ue,invalidKey:function(){return"Event key must be a string"},localStorageUnavailable:ce,networkError:se,unknownCustomEventKey:le,environmentNotFound:fe,environmentNotSpecified:de,errorFetchingFlags:ve,userNotSpecified:ge,invalidUser:pe,invalidData:me,bootstrapOldFormat:he,bootstrapInvalid:ye,deprecated:be,httpErrorMessage:ke,httpUnavailable:Ee,identifyDisabled:we,streamClosing:De,streamConnecting:Oe,streamError:Se,unknownOption:Pe,wrongOptionType:Ue,wrongOptionTypeBoolean:Ie,optionBelowMinimum:je,debugPolling:Ce,debugStreamPing:Te,debugStreamPut:Re,debugStreamPatch:Le,debugStreamPatchIgnored:Ae,debugStreamDelete:Fe,debugStreamDeleteIgnored:Ne,debugEnqueueingEvent:xe,debugPostingEvents:Ve,debugPostingDiagnosticEvent:function(e){return"sending diagnostic event ("+e.kind+")"},invalidTagValue:qe,invalidInspector:_e,inspectorMethodError:ze,tagValueTooLong:Me}),Ke={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},application:{validator:function(e,n,t){var r={};n.id&&(r.id=Be("".concat(e,".id"),n.id,t));n.version&&(r.version=Be("".concat(e,".version"),n.version,t));return r}},inspectors:{default:[]}},$e=/^(\w|\.|-)+$/;function Be(e,n,t){if("string"==typeof n&&n.match($e)){if(!(n.length>64))return n;t.warn(Me(e))}else t.warn(qe(e))}function He(e,n,r,i){var o=_({logger:{default:i}},Ke,r),a={all_attributes_private:"allAttributesPrivate",private_attribute_names:"privateAttributeNames",samplingInterval:null,allowFrequentDuplicateEvents:void 0};function u(e){A((function(){n&&n.maybeReportError(new v(e))}))}var c=_({},e||{});return function(e){var n=e;Object.keys(a).forEach((function(e){if(void 0!==n[e]){var t=a[e];i&&i.warn(be(e,t)),t&&(void 0===n[t]&&(n[t]=n[e]),delete n[e])}}))}(c),function(e){Z.forEach((function(n){if("none"!==n&&(!e[n]||"function"!=typeof e[n]))throw new Error("Provided logger instance must support logger."+n+"(...) method")}))}((c=function(e){var n=_({},e),r=function(e){if(null===e)return"any";if(void 0!==e){if(Array.isArray(e))return"array";var n=t(e);return"boolean"===n||"string"===n||"number"===n||"function"===n?n:"object"}};return Object.keys(e).forEach((function(t){var a=e[t];if(null!=a){var c=o[t];if(void 0===c)u(Pe(t));else{var s=c.type||r(c.default),l=c.validator;if(l){var f=l(t,e[t],i);void 0!==f?n[t]=f:delete n[t]}else if("any"!==s){var d=s.split("|"),v=r(a);d.indexOf(v)<0?"boolean"===s?(n[t]=!!a,u(Ie(t,v))):(u(Ue(t,s,v)),n[t]=c.default):"number"===v&&void 0!==c.minimum&&a<c.minimum&&(u(je(t,a,c.minimum)),n[t]=c.minimum)}}}})),n}(c=function(e){var n=_({},e);return Object.keys(o).forEach((function(e){void 0!==n[e]&&null!==n[e]||(n[e]=o[e]&&o[e].default)})),n}(c))).logger),c}function Ge(e){var n={};return e&&(e.application&&void 0!==e.application.id&&null!==e.application.id&&(n["application-id"]=[e.application.id]),e.application&&void 0!==e.application.version&&null!==e.application.id&&(n["application-version"]=[e.application.version])),n}function We(e,n){if(n&&!n.sendLDHeaders)return{};var t={"X-LaunchDarkly-User-Agent":q(e)};n&&n.wrapperName&&(t["X-LaunchDarkly-Wrapper"]=n.wrapperVersion?n.wrapperName+"/"+n.wrapperVersion:n.wrapperName);var r=Ge(n),i=Object.keys(r);return i.length&&(t["x-launchdarkly-tags"]=i.sort().flatMap((function(e){return Array.isArray(r[e])?r[e].sort().map((function(n){return"".concat(e,"/").concat(n)})):["".concat(e,"/").concat(r[e])]})).join(" ")),t}function Xe(e,t){return t&&t.requestHeaderTransform?t.requestHeaderTransform(n({},e)):e}function Qe(e,n,t){var r="/a/"+n+".gif",i=_({"Content-Type":"application/json"},We(e,t)),o=e.httpFallbackPing,a={};return a.sendChunk=function(n,a,u,c){var s=JSON.stringify(n),l=u?null:Y();return c?function n(r){var o=u?i:_({},i,{"X-LaunchDarkly-Event-Schema":"3","X-LaunchDarkly-Payload-ID":l});return e.httpRequest("POST",a,Xe(o,t),s).promise.then((function(e){if(e)return e.status>=400&&m(e.status)&&r?n(!1):function(e){var n={status:e.status},t=e.header("date");if(t){var r=Date.parse(t);r&&(n.serverTime=r)}return n}(e)})).catch((function(){return r?n(!1):Promise.reject()}))}(!0).catch((function(){})):(o&&o(a+r+"?d="+T(s)),Promise.resolve())},a.sendEvents=function(n,t,r){if(!e.httpRequest)return Promise.resolve();var i,o=e.httpAllowsPost();i=o?[n]:V(2e3-t.length,n);for(var u=[],c=0;c<i.length;c++)u.push(a.sendChunk(i[c],t,r,o));return Promise.all(u)},a}function Ye(){var e={},n=0,t=0,r={};return e.summarizeEvent=function(e){if("feature"===e.kind){var i=e.key+":"+(null!==e.variation&&void 0!==e.variation?e.variation:"")+":"+(null!==e.version&&void 0!==e.version?e.version:""),o=r[i];o?o.count=o.count+1:r[i]={count:1,key:e.key,variation:e.variation,version:e.version,value:e.value,default:e.default},(0===n||e.creationDate<n)&&(n=e.creationDate),e.creationDate>t&&(t=e.creationDate)}},e.getSummary=function(){var e={},i=!0;for(var o in r){var a=r[o],u=e[a.key];u||(u={default:a.default,counters:[]},e[a.key]=u);var c={value:a.value,count:a.count};void 0!==a.variation&&null!==a.variation&&(c.variation=a.variation),a.version?c.version=a.version:c.unknown=!0,u.counters.push(c),i=!1}return i?null:{startDate:n,endDate:t,features:e}},e.clearSummary=function(){n=0,t=0,r={}},e}function Ze(e){var n={},t=e.allAttributesPrivate,r=e.privateAttributeNames||[],i={key:!0,custom:!0,anonymous:!0},o={key:!0,secondary:!0,ip:!0,country:!0,email:!0,firstName:!0,lastName:!0,avatar:!0,name:!0,anonymous:!0,custom:!0};return n.filterUser=function(e){if(!e)return null;var n=e.privateAttributeNames||[],a=function(e,o){return Object.keys(e).reduce((function(a,u){var c=a;return o(u)&&(!function(e){return!i[e]&&(t||-1!==n.indexOf(e)||-1!==r.indexOf(e))}(u)?c[0][u]=e[u]:c[1][u]=!0),c}),[{},{}])},u=a(e,(function(e){return o[e]})),c=u[0],s=u[1];if(e.custom){var l=a(e.custom,(function(){return!0}));c.custom=l[0],s=_({},s,l[1])}var f=Object.keys(s);return f.length&&(f.sort(),c.privateAttrs=f),c},n}function en(e){var n={},t={};return n.on=function(e,n,r){t[e]=t[e]||[],t[e]=t[e].concat({handler:n,context:r})},n.off=function(e,n,r){if(t[e])for(var i=0;i<t[e].length;i++)t[e][i].handler===n&&t[e][i].context===r&&(t[e]=t[e].slice(0,i).concat(t[e].slice(i+1)))},n.emit=function(e){if(t[e])for(var n=t[e].slice(0),r=0;r<n.length;r++)n[r].handler.apply(n[r].context,Array.prototype.slice.call(arguments,1))},n.getEvents=function(){return Object.keys(t)},n.getEventListenerCount=function(e){return t[e]?t[e].length:0},n.maybeReportError=function(n){n&&(t["error"]?this.emit("error",n):(e||console).error(n.message))},n}var nn=function(e){var n=!1,t=!1,r=null,i=null,o=new Promise((function(n){e.on("ready",(function t(){e.off("ready",t),n()}))})).catch((function(){}));return{getInitializationPromise:function(){return i||(n?Promise.resolve():t?Promise.reject(r):i=new Promise((function(n,t){e.on("initialized",(function t(){e.off("initialized",t),n()})),e.on("failed",(function n(r){e.off("failed",n),t(r)}))})))},getReadyPromise:function(){return o},signalSuccess:function(){n||t||(n=!0,e.emit("initialized"),e.emit("ready"))},signalFailure:function(i){n||t||(t=!0,r=i,e.emit("failed",i),e.emit("ready")),e.maybeReportError(i)}}};function tn(e,n,t,r){var i={};function o(){var e="",i=r.getUser();return i&&(e=t||C(JSON.stringify(i))),"ld:"+n+":"+e}return i.loadFlags=function(){return e.get(o()).then((function(e){if(null==e)return null;try{var n=JSON.parse(e);if(n){var t=n.$schema;void 0===t||t<1?n=N(n):delete n.$schema}return n}catch(e){return i.clearFlags().then((function(){return null}))}}))},i.saveFlags=function(n){var t=_({},n,{$schema:1});return e.set(o(),JSON.stringify(t))},i.clearFlags=function(){return e.clear(o())},i}function rn(e,n,t,r){var i,o=n.streamUrl,a=n.logger,u={},c=j(o,"/eval/"+t),s=n.useReport,l=n.evaluationReasons,f=n.streamReconnectDelay,d=We(e,n),v=!1,g=null,p=null,m=null,h=null,y=null;function b(e){v||(a.warn(Se(e,f)),v=!0),D(!1),w(),k(f)}function k(e){p||(e?p=setTimeout(E,e):E())}function E(){var r;p=null;var u="",f={headers:d,readTimeoutMillis:3e5};if(e.eventSourceFactory){for(var v in null!=h&&(u="h="+h),s?e.eventSourceAllowsReport?(r=c,f.method="REPORT",f.headers["Content-Type"]="application/json",f.body=JSON.stringify(m)):(r=j(o,"/ping/"+t),u=""):r=c+"/"+T(JSON.stringify(m)),f.headers=Xe(f.headers,n),l&&(u=u+(u?"&":"")+"withReasons=true"),r=r+(u?"?":"")+u,w(),a.info(Oe(r)),i=(new Date).getTime(),g=e.eventSourceFactory(r,f),y)z(y,v)&&g.addEventListener(v,y[v]);g.onerror=b}}function w(){g&&(a.info("Closing stream connection"),g.close(),g=null)}function D(e){i&&r&&r.recordStreamInit(i,!e,(new Date).getTime()-i),i=null}return u.connect=function(e,n,t){m=e,h=n,y={};var r=function(e){y[e]=function(n){v=!1,D(!0),t[e]&&t[e](n)}};for(var i in t||{})r(i);k()},u.disconnect=function(){clearTimeout(p),p=null,w()},u.isConnected=function(){return!!(g&&e.eventSourceIsActive&&e.eventSourceIsActive(g))},u}function on(e,n,t){var r=n.baseUrl,i=n.useReport,o=n.evaluationReasons,a=n.logger,u={},c={};function s(t,r){if(!e.httpRequest)return new Promise((function(e,n){n(new g(Ee()))}));var i=r?"REPORT":"GET",o=We(e,n);r&&(o["Content-Type"]="application/json");var a=c[t];a||(a=function(e){var n,t,r,i,o={addPromise:function(o,a){n=o,t&&t(),t=a,o.then((function(t){n===o&&(r(t),e&&e())}),(function(t){n===o&&(i(t),e&&e())}))}};return o.resultPromise=new Promise((function(e,n){r=e,i=n})),o}((function(){delete c[t]})),c[t]=a);var u=e.httpRequest(i,t,Xe(o,n),r),s=u.promise.then((function(e){if(200===e.status){if(e.header("content-type")&&"application/json"===e.header("content-type").substring(0,"application/json".length))return JSON.parse(e.body);var n=ue(e.header("content-type")||"");return Promise.reject(new g(n))}return Promise.reject(function(e){return 404===e.status?new l(fe()):new g(ve(e.statusText||String(e.status)))}(e))}),(function(e){return Promise.reject(new g(se(e)))}));return a.addPromise(s,(function(){u.cancel&&u.cancel()})),a.resultPromise}return u.fetchJSON=function(e){return s(j(r,e),null)},u.fetchFlagSettings=function(e,n){var u,c,l,f="";return i?(c=[r,"/sdk/evalx/",t,"/user"].join(""),l=JSON.stringify(e)):(u=T(JSON.stringify(e)),c=[r,"/sdk/evalx/",t,"/users/",u].join("")),n&&(f="h="+n),o&&(f=f+(f?"&":"")+"withReasons=true"),c=c+(f?"?":"")+f,a.debug(Ce(c)),s(c,l)},u}function an(e){var n={};return n.validateUser=function(n){if(!n)return Promise.reject(new f(ge()));var t=R(n);return null!==t.key&&void 0!==t.key?(t.key=t.key.toString(),Promise.resolve(t)):t.anonymous?e.get("ld:$anonUserId").then((function(n){if(n)return t.key=n,t;var r=Y();return t.key=r,function(n){return e.set("ld:$anonUserId",n)}(r).then((function(){return t}))})):Promise.reject(new f(pe()))},n}var un=Object.freeze({__proto__:null,baseOptionDefs:Ke,validate:He,getTags:Ge}).baseOptionDefs,cn=J.appendUrlPath;var sn=function(e){var n={diagnosticId:Y()};return e&&(n.sdkKeySuffix=e.length>6?e.substring(e.length-6):e),n},ln=function(e){var n,t,r,i;function o(e){n=e,t=0,r=0,i=[]}return o(e),{getProps:function(){return{dataSinceDate:n,droppedEvents:t,eventsInLastBatch:r,streamInits:i}},setProps:function(e){n=e.dataSinceDate,t=e.droppedEvents||0,r=e.eventsInLastBatch||0,i=e.streamInits||[]},incrementDroppedEvents:function(){t++},setEventsInLastBatch:function(e){r=e},recordStreamInit:function(e,n,t){var r={timestamp:e,failed:n,durationMillis:t};i.push(r)},reset:o}},fn=function(e,t,r,i,o,a,u){var c,s,l=!!e.diagnosticUseCombinedEvent,f="ld:"+o+":$diagnostics",d=cn(a.eventsUrl,"/events/diagnostic/"+o),v=a.diagnosticRecordingInterval,g=r,p=!!a.streaming,m={};function h(){return{sdk:k(),configuration:(n={customBaseURI:a.baseUrl!==un.baseUrl.default,customStreamURI:a.streamUrl!==un.streamUrl.default,customEventsURI:a.eventsUrl!==un.eventsUrl.default,eventsCapacity:a.eventCapacity,eventsFlushIntervalMillis:a.flushInterval,reconnectTimeMillis:a.streamReconnectDelay,streamingDisabled:!p,allAttributesPrivate:!!a.allAttributesPrivate,inlineUsersInEvents:!!a.inlineUsersInEvents,diagnosticRecordingIntervalMillis:a.diagnosticRecordingInterval,usingSecureMode:!!a.hash,bootstrapMode:!!a.bootstrap,fetchGoalsDisabled:!a.fetchGoals,sendEventsOnlyForVariation:!!a.sendEventsOnlyForVariation,autoAliasingOptOut:!!a.autoAliasingOptOut},n),platform:e.diagnosticPlatformData};var n}function y(e){a.logger&&a.logger.debug(Je.debugPostingDiagnosticEvent(e)),i.sendEvents(e,d,!0).then((function(){})).catch((function(){}))}function b(){var e,r;y((e=(new Date).getTime(),r=n({kind:l?"diagnostic-combined":"diagnostic",id:u,creationDate:e},g.getProps()),l&&(r=n(n({},r),h())),g.reset(e),r)),s=setTimeout(b,v),c=(new Date).getTime(),l&&function(){if(t.isEnabled()){var e=n({},g.getProps());t.set(f,JSON.stringify(e))}}()}function k(){var t=n({},e.diagnosticSdkData);return a.wrapperName&&(t.wrapperName=a.wrapperName),a.wrapperVersion&&(t.wrapperVersion=a.wrapperVersion),t}return m.start=function(){l?function(e){if(!t.isEnabled())return e(!1);t.get(f).then((function(n){if(n)try{var t=JSON.parse(n);g.setProps(t),c=t.dataSinceDate}catch(e){}e(!0)})).catch((function(){e(!1)}))}((function(e){if(e){var n=(c||0)+v,t=(new Date).getTime();t>=n?b():s=setTimeout(b,n-t)}else 0===Math.floor(4*Math.random())?b():s=setTimeout(b,v)})):(y(n({kind:"diagnostic-init",id:u,creationDate:g.getProps().dataSinceDate},h())),s=setTimeout(b,v))},m.stop=function(){s&&clearTimeout(s)},m.setStreaming=function(e){p=e},m};var dn={flagUsed:"flag-used",flagDetailsChanged:"flag-details-changed",flagDetailChanged:"flag-detail-changed",clientIdentityChanged:"client-identity-changed"};function vn(e,n){var t,i={},o=(r(t={},dn.flagUsed,[]),r(t,dn.flagDetailsChanged,[]),r(t,dn.flagDetailChanged,[]),r(t,dn.clientIdentityChanged,[]),t);return(null==e?void 0:e.map((function(e){return function(e,n){var t=!1,r={type:e.type,name:e.name,method:function(){try{e.method.apply(e,arguments)}catch(e){t||(t=!0,n.warn(ze(r.type,r.name)))}}};return r}(e,n)}))).forEach((function(e){Object.prototype.hasOwnProperty.call(o,e.type)?o[e.type].push(e):n.warn(_e(e.type,e.name))})),i.hasListeners=function(e){var n;return null===(n=o[e])||void 0===n?void 0:n.length},i.onFlagUsed=function(e,n,t){o[dn.flagUsed].length&&A((function(){o[dn.flagUsed].forEach((function(r){return r.method(e,n,t)}))}))},i.onFlags=function(e){o[dn.flagDetailsChanged].length&&A((function(){o[dn.flagDetailsChanged].forEach((function(n){return n.method(e)}))}))},i.onFlagChanged=function(e,n){o[dn.flagDetailChanged].length&&A((function(){o[dn.flagDetailChanged].forEach((function(t){return t.method(e,n)}))}))},i.onIdentityChanged=function(e){o[dn.clientIdentityChanged].length&&A((function(){o[dn.clientIdentityChanged].forEach((function(n){return n.method(e)}))}))},i}Object.freeze(dn);function gn(e,r,o,a,u){var c,f,v,h=function(){if(o&&o.logger)return o.logger;return u&&u.logger&&u.logger.default||ne("warn")}(),y=en(h),b=nn(y),k=He(o,y,u,h),E=vn(k.inspectors,h),w=k.sendEvents,D=e,O=k.hash,S=function(e,n){var t={},r=!1,i=function(e){r||(r=!0,n.warn(ce(e)))};return t.isEnabled=function(){return!!e},t.get=function(n){return new Promise((function(t){e?e.get(n).then(t).catch((function(e){i(e),t(void 0)})):t(void 0)}))},t.set=function(n,t){return new Promise((function(r){e?e.set(n,t).then((function(){return r(!0)})).catch((function(e){i(e),r(!1)})):r(!1)}))},t.clear=function(n){return new Promise((function(t){e?e.clear(n).then((function(){return t(!0)})).catch((function(e){i(e),t(!1)})):t(!1)}))},t}(a.localStorage,h),P=Qe(a,D,k),U=k.sendEvents&&!k.diagnosticOptOut,I=U?sn(D):null,C=U?ln((new Date).getTime()):null,T=U?fn(a,S,C,P,D,k,I):null,N=rn(a,k,D,C),V=k.eventProcessor||function(e,n,t){var r,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,u={},c=a||Qe(e,t,n),l=j(n.eventsUrl,"/events/bulk/"+t),f=Ye(),d=Ze(n),v=n.inlineUsersInEvents,g=n.samplingInterval,p=n.eventCapacity,h=n.flushInterval,y=n.logger,b=[],k=0,E=!1,w=!1;function D(){return 0===g||0===Math.floor(Math.random()*g)}function O(e){return!!e.debugEventsUntilDate&&(e.debugEventsUntilDate>k&&e.debugEventsUntilDate>(new Date).getTime())}function S(e){var n=_({},e);return"alias"===e.kind||(v||"identify"===e.kind?n.user=d.filterUser(e.user):(n.userKey=e.user.key,delete n.user),"feature"===e.kind&&(delete n.trackEvents,delete n.debugEventsUntilDate)),n}function P(e){b.length<p?(b.push(e),w=!1):(w||(w=!0,y.warn("Exceeded event queue capacity. Increase capacity to avoid dropping events.")),i&&i.incrementDroppedEvents())}return u.enqueue=function(e){if(!E){var n=!1,t=!1;if(f.summarizeEvent(e),"feature"===e.kind?D()&&(n=!!e.trackEvents,t=O(e)):n=D(),n&&P(S(e)),t){var r=_({},e,{kind:"debug"});r.user=d.filterUser(r.user),delete r.trackEvents,delete r.debugEventsUntilDate,P(r)}}},u.flush=function(){if(E)return Promise.resolve();var e=b,n=f.getSummary();return f.clearSummary(),n&&(n.kind="summary",e.push(n)),i&&i.setEventsInLastBatch(e.length),0===e.length?Promise.resolve():(b=[],y.debug(Ve(e.length)),c.sendEvents(e,l).then((function(e){e&&(e.serverTime&&(k=e.serverTime),m(e.status)||(E=!0),e.status>=400&&A((function(){o.maybeReportError(new s(ke(e.status,"event posting","some events were dropped")))})))})))},u.start=function(){r=setTimeout((function e(){u.flush(),r=setTimeout(e,h)}),h)},u.stop=function(){clearTimeout(r)},u}(a,k,D,C,y,P),q=on(a,k,D),J={},K=k.streaming,$=!1,B=!1,H=!0,G=k.stateProvider,W=function(e,n){var t,r={};return r.setUser=function(e){var r=t&&R(t);(t=M(e))&&n&&n(R(t),r)},r.getUser=function(){return t?R(t):null},e&&r.setUser(e),r}(null,(function(e,n){(function(e){if(G)return;e&&Y({kind:"identify",key:e.key,user:e,creationDate:(new Date).getTime()})})(e),!k.autoAliasingOptOut&&n&&n.anonymous&&e&&!e.anonymous&&ae(e,n);E.hasListeners(dn.clientIdentityChanged)&&E.onIdentityChanged(W.getUser())})),X=an(S),Q=S.isEnabled()?new tn(S,D,O,W,h):null;function Y(e){if(D&&!(G&&G.enqueueEvent&&G.enqueueEvent(e))){if("alias"!==e.kind){if(!e.user)return void(H&&(h.warn("Be sure to call `identify` in the LaunchDarkly client: https://docs.launchdarkly.com/sdk/features/identify#javascript"),H=!1));H=!1}!w||B||a.isDoNotTrack()||(h.debug(xe(e.kind)),V.enqueue(e))}}function Z(e,n){E.hasListeners(dn.flagDetailChanged)&&E.onFlagChanged(e.key,ie(n))}function ee(){E.hasListeners(dn.flagDetailsChanged)&&E.onFlags(Object.entries(J).map((function(e){var n=i(e,2);return{key:n[0],detail:ie(n[1])}})).reduce((function(e,n){return e[n.key]=n.detail,e}),{}))}function te(e,n,t,r){var i=W.getUser(),o=new Date,a={kind:"feature",key:e,user:i,value:n?n.value:null,variation:n?n.variationIndex:null,default:t,creationDate:o.getTime()};i&&i.anonymous&&(a.contextKind=oe(i));var u=J[e];u&&(a.version=u.flagVersion?u.flagVersion:u.version,a.trackEvents=u.trackEvents,a.debugEventsUntilDate=u.debugEventsUntilDate),(r||u&&u.trackReason)&&n&&(a.reason=n.reason),Y(a)}function re(e,n,t,r,i){var o;if(J&&z(J,e)&&J[e]&&!J[e].deleted){var a=J[e];o=ie(a),null!==a.value&&void 0!==a.value||(o.value=n)}else o={value:n,variationIndex:null,reason:{kind:"ERROR",errorKind:"FLAG_NOT_FOUND"}};return t&&te(e,o,n,r),i||function(e,n){E.hasListeners(dn.flagUsed)&&E.onFlagUsed(e,n,W.getUser())}(e,o),o}function ie(e){return{value:e.value,variationIndex:void 0===e.variation?null:e.variation,reason:e.reason||null}}function oe(e){return e.anonymous?"anonymousUser":"user"}function ae(e,n){G||e&&n&&Y({kind:"alias",key:e.key,contextKind:oe(e),previousKey:n.key,previousContextKind:oe(n),creationDate:(new Date).getTime()})}function ue(){if(f=!0,W.getUser()){var e=function(e){try{return JSON.parse(e)}catch(e){return void y.maybeReportError(new p("Invalid data received from LaunchDarkly; connection may have been interrupted"))}};N.connect(W.getUser(),O,{ping:function(){h.debug("received ping message from stream");var e=W.getUser();q.fetchFlagSettings(e,O).then((function(n){L(e,W.getUser())&&fe(n||{})})).catch((function(e){y.maybeReportError(new g(ve(e)))}))},put:function(n){var t=e(n.data);t&&(h.debug("received streaming update for all flags"),fe(t))},patch:function(n){var t=e(n.data);if(t){var r=J[t.key];if(!r||!r.version||!t.version||r.version<t.version){h.debug(Le(t.key));var i={},o=_({},t);delete o.key,J[t.key]=o;var a=ie(o);i[t.key]=r?{previous:r.value,current:a}:{current:a},ge(i),Z(t,o)}else h.debug(Ae(t.key))}},delete:function(n){var t=e(n.data);if(t)if(!J[t.key]||J[t.key].version<t.version){h.debug(Fe(t.key));var r={};J[t.key]&&!J[t.key].deleted&&(r[t.key]={previous:J[t.key].value}),J[t.key]={version:t.version,deleted:!0},Z(t,J[t.key]),ge(r)}else h.debug(Ne(t.key))}})}}function se(){f&&(N.disconnect(),f=!1)}function fe(e){var t={};if(!e)return Promise.resolve();for(var r in J)z(J,r)&&J[r]&&(e[r]&&!L(e[r].value,J[r].value)?t[r]={previous:J[r].value,current:ie(e[r])}:e[r]&&!e[r].deleted||(t[r]={previous:J[r].value}));for(var i in e)z(e,i)&&e[i]&&(!J[i]||J[i].deleted)&&(t[i]={current:ie(e[i])});return J=n({},e),ee(),ge(t).catch((function(){}))}function ge(e){var n=Object.keys(e);if(n.length>0){var t={};n.forEach((function(n){var r=e[n].current,i=r?r.value:void 0,o=e[n].previous;y.emit("change:"+n,i,o),t[n]=r?{current:i,previous:o}:{previous:o}})),y.emit("change",t),y.emit("internal-change",J),k.sendEventsOnlyForVariation||G||n.forEach((function(n){te(n,e[n].current)}))}return c&&Q?Q.saveFlags(J):Promise.resolve()}function pe(){var e=K||v&&void 0===K;e&&!f?ue():!e&&f&&se(),T&&T.setStreaming(e)}function me(e){return"change"===e||"change:"===e.substr(0,"change".length+1)}if("string"==typeof k.bootstrap&&"LOCALSTORAGE"===k.bootstrap.toUpperCase()&&(Q?c=!0:h.warn(ce())),"object"===t(k.bootstrap)&&(J=function(e){var n=Object.keys(e),t=e.$flagsState;!t&&n.length&&h.warn(he()),!1===e.$valid&&h.warn("LaunchDarkly bootstrap data is not available because the back end could not read the flags.");var r={};return n.forEach((function(n){if("$flagsState"!==n&&"$valid"!==n){var i={value:e[n]};t&&t[n]?i=_(i,t[n]):i.version=0,r[n]=i}})),r}(k.bootstrap)),G){var ye=G.getInitialState();ye?be(ye):G.on("init",be),G.on("update",(function(e){e.user&&W.setUser(e.user);e.flags&&fe(e.flags)}))}else(function(){if(!e)return Promise.reject(new l(de()));return X.validateUser(r).then((function(e){return W.setUser(e),"object"===t(k.bootstrap)?Ee():c?Q.loadFlags().then((function(e){return null==e?(J={},q.fetchFlagSettings(W.getUser(),O).then((function(e){return fe(e||{})})).then(Ee).catch((function(e){we(new g(ve(e)))}))):(J=e,A(Ee),q.fetchFlagSettings(W.getUser(),O).then((function(e){return fe(e)})).catch((function(e){return y.maybeReportError(e)})))})):q.fetchFlagSettings(W.getUser(),O).then((function(e){J=e||{},ee(),Ee()})).catch((function(e){J={},we(e)}))}))})().catch(we);function be(e){D=e.environment,W.setUser(e.user),J=n({},e.flags),A(Ee)}function Ee(){h.info("LaunchDarkly client initialized"),$=!0,pe(),b.signalSuccess()}function we(e){b.signalFailure(e)}return{client:{waitForInitialization:function(){return b.getInitializationPromise()},waitUntilReady:function(){return b.getReadyPromise()},identify:function(e,n,t){return B?F(Promise.resolve({}),t):G?(h.warn("identify() has no effect here; it must be called on the main client instance"),F(Promise.resolve(x(J)),t)):F((c&&Q?Q.clearFlags():Promise.resolve()).then((function(){return X.validateUser(e)})).then((function(e){return q.fetchFlagSettings(e,n).then((function(t){var r=x(t);return W.setUser(e),O=n,t?fe(t).then((function(){return r})):r}))})).then((function(e){return f&&ue(),e})).catch((function(e){return y.maybeReportError(e),Promise.reject(e)})),t)},getUser:function(){return W.getUser()},variation:function(e,n){return re(e,n,!0,!1,!1).value},variationDetail:function(e,n){return re(e,n,!0,!0,!1)},track:function(e,n,t){if("string"==typeof e){a.customEventFilter&&!a.customEventFilter(e)&&h.warn(le(e));var r=W.getUser(),i={kind:"custom",key:e,user:r,url:a.getCurrentUrl(),creationDate:(new Date).getTime()};r&&r.anonymous&&(i.contextKind=oe(r)),null!=n&&(i.data=n),null!=t&&(i.metricValue=t),Y(i)}else y.maybeReportError(new d(le(e)))},alias:ae,on:function(e,n,t){me(e)?(v=!0,$&&pe(),y.on(e,n,t)):y.on.apply(y,arguments)},off:function(e){if(y.off.apply(y,arguments),me(e)){var n=!1;y.getEvents().forEach((function(e){me(e)&&y.getEventListenerCount(e)>0&&(n=!0)})),n||(v=!1,f&&void 0===K&&se())}},setStreaming:function(e){var n=null===e?void 0:e;n!==K&&(K=n,pe())},flush:function(e){return F(w?V.flush():Promise.resolve(),e)},allFlags:function(){var e={};if(!J)return e;for(var n in J)z(J,n)&&!J[n].deleted&&(e[n]=re(n,null,!k.sendEventsOnlyForVariation,!1,!0).value);return e},close:function(e){if(B)return F(Promise.resolve(),e);var n=function(){B=!0,J={}};return F(Promise.resolve().then((function(){if(se(),T&&T.stop(),w)return V.stop(),V.flush()})).then(n).catch(n),e)}},options:k,emitter:y,ident:W,logger:h,requestor:q,start:function(){w&&(T&&T.start(),V.start())},enqueueEvent:Y,getFlagsInternal:function(){return J},getEnvironmentId:function(){return D},internalChangeEventName:"internal-change"}}var pn="3.8.1";export{ee as commonBasicLogger,ne as createConsoleLogger,h as errors,gn as initialize,Je as messages,J as utils,pn as version};
|
|
2
2
|
//# sourceMappingURL=ldclient-common.es.js.map
|