@configdirector/react-web-sdk 0.1.4 → 0.1.5

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.
@@ -1,4 +1,4 @@
1
1
  Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require(`react`);c=s(c);let l=require(`react/jsx-runtime`);var u=function(e,t){return u=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},u(e,t)};function d(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);function n(){this.constructor=e}u(e,t),e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var f=function(){return f=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},f.apply(this,arguments)};function p(e,t,n,r){return new(n||=Promise)(function(i,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}c((r=r.apply(e,t||[])).next())})}function m(e,t){var n,r,i,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},o=Object.create((typeof Iterator==`function`?Iterator:Object).prototype);return o.next=s(0),o.throw=s(1),o.return=s(2),typeof Symbol==`function`&&(o[Symbol.iterator]=function(){return this}),o;function s(s){return function(c){return function(s){if(n)throw TypeError(`Generator is already executing.`);for(;o&&(o=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(i=2&s[0]?r.return:s[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,s[1])).done)return i;switch(r=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(i=a.trys,!((i=i.length>0&&i[i.length-1])||s[0]!==6&&s[0]!==2)){a=0;continue}if(s[0]===3&&(!i||s[1]>i[0]&&s[1]<i[3])){a.label=s[1];break}if(s[0]===6&&a.label<i[1]){a.label=i[1],i=s;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(s);break}i[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}function h(e,t,n){if(n||arguments.length===2)for(var r,i=0,a=t.length;i<a;i++)!r&&i in t||(r||=Array.prototype.slice.call(t,0,i),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}var g=function(){function e(){this.handlerMap=new Map}return e.prototype.on=function(e,t){var n=this.handlerMap.get(e);n?n.push(t):this.handlerMap.set(e,[t])},e.prototype.once=function(e,t){var n=this;this.on(e,function r(i){n.off(e,r),t.apply(n,i)})},e.prototype.off=function(e,t){var n=this.handlerMap.get(e);if(n)if(t){var r=n.indexOf(t);r>=0&&n.splice(r,1)}else this.handlerMap.set(e,[])},e.prototype.clear=function(){this.handlerMap.clear()},e.prototype.emit=function(e,t){var n=this.handlerMap.get(e);n&&n.slice().map(function(e){return e(t)})},e}(),_=class extends Error{constructor(e,t){super(e),this.name=`ParseError`,this.type=t.type,this.field=t.field,this.value=t.value,this.line=t.line}};function v(e){}function y(e){if(typeof e==`function`)throw TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");let{onEvent:t=v,onError:n=v,onRetry:r=v,onComment:i}=e,a,o=``,s=!0,c=``,l=``;function u(e){if(e===``)return c.length>0&&t({id:a,event:l||void 0,data:c.endsWith(`
2
2
  `)?c.slice(0,-1):c}),a=void 0,c=``,void(l=``);if(e.startsWith(`:`))return void(i&&i(e.slice(e.startsWith(`: `)?2:1)));let n=e.indexOf(`:`);if(n!==-1){let t=e.slice(0,n),r=e[n+1]===` `?2:1;d(t,e.slice(n+r),e);return}d(e,``,e)}function d(e,t,i){switch(e){case`event`:l=t;break;case`data`:c=`${c}${t}\n`;break;case`id`:a=t.includes(`\0`)?void 0:t;break;case`retry`:/^\d+$/.test(t)?r(parseInt(t,10)):n(new _(`Invalid \`retry\` value: "${t}"`,{type:`invalid-retry`,value:t,line:i}));break;default:n(new _(`Unknown field "${e.length>20?`${e.slice(0,20)}…`:e}"`,{type:`unknown-field`,field:e,value:t,line:i}))}}return{feed:function(e){let t=s?e.replace(/^\xEF\xBB\xBF/,``):e,[n,r]=function(e){let t=[],n=``,r=0;for(;r<e.length;){let i=e.indexOf(`\r`,r),a=e.indexOf(`
3
3
  `,r),o=-1;if(i!==-1&&a!==-1?o=Math.min(i,a):i===-1?a!==-1&&(o=a):o=i===e.length-1?-1:i,o===-1){n=e.slice(r);break}{let n=e.slice(r,o);t.push(n),r=o+1,e[r-1]===`\r`&&e[r]===`
4
- `&&r++}}return[t,n]}(`${o}${t}`);for(let e of n)u(e);o=r,s=!1},reset:function(e={}){o&&e.consume&&u(o),s=!0,a=void 0,c=``,l=``,o=``}}}const b=`connecting`,x=`closed`,S=()=>{};function C(e,{getStream:t}){let n=typeof e==`string`||e instanceof URL?{url:e}:e,{onMessage:r,onComment:i=S,onConnect:a=S,onDisconnect:o=S,onScheduleReconnect:s=S}=n,{fetch:c,url:l,initialLastEventId:u}=function(e){let t=e.fetch||globalThis.fetch;if(!function(e){return typeof e==`function`}(t))throw Error(`No fetch implementation provided, and one was not found on the global object.`);if(typeof AbortController!=`function`)throw Error(`Missing AbortController implementation`);let{url:n,initialLastEventId:r}=e;if(typeof n!=`string`&&!(n instanceof URL))throw Error(`Invalid URL provided - must be string or URL instance`);if(typeof r!=`string`&&r!==void 0)throw Error(`Invalid initialLastEventId provided - must be string or undefined`);return{fetch:t,url:n,initialLastEventId:r}}(n),d={...n.headers},f=[],p=r?[r]:[],m=y({onEvent:function(e){typeof e.id==`string`&&(C=e.id),t=e,p.forEach(e=>e(t));var t},onRetry:function(e){w=e},onComment:i}),h,g,_=l.toString(),v=new AbortController,C=u,w=2e3,T=x;return E(),{close:D,connect:E,[Symbol.iterator]:()=>{throw Error("EventSource does not support synchronous iteration. Use `for await` instead.")},[Symbol.asyncIterator]:function(){let e=[],t=[],n=function(n){let r=e.shift();r?r({value:n,done:!1}):t.push(n)};function r(){for(p.splice(p.indexOf(n),1);e.shift(););for(;t.shift(););}return f.push(function(){let t=e.shift();t&&(t({done:!0,value:void 0}),r())}),p.push(n),{next(){return T===x?this.return():new Promise(n=>{let r=t.shift();r?n({value:r,done:!1}):e.push(n)})},return:()=>(r(),Promise.resolve({done:!0,value:void 0})),throw:e=>(r(),Promise.reject(e)),[Symbol.asyncIterator](){return this}}},get lastEventId(){return C},get url(){return _},get readyState(){return T}};function E(){h||=(T=b,v=new AbortController,c(l,function(){let{mode:e,credentials:t,body:r,method:i,redirect:a,referrer:o,referrerPolicy:s}=n;return{mode:e,credentials:t,body:r,method:i,redirect:a,referrer:o,referrerPolicy:s,headers:{Accept:`text/event-stream`,...d,...C?{"Last-Event-ID":C}:void 0},cache:`no-store`,signal:v.signal}}()).then(k).catch(e=>{h=null,e.name!==`AbortError`&&e.type!==`aborted`&&!v.signal.aborted&&O()}))}function D(){T=x,v.abort(),m.reset(),clearTimeout(g),f.forEach(e=>e())}function O(){s({delay:w}),!v.signal.aborted&&(T=b,g=setTimeout(E,w))}async function k(e){a(),m.reset();let{body:n,redirected:r,status:i}=e;if(i===204)return o(),void D();if(!n)throw Error(`Missing response body`);r&&(_=e.url);let s=t(n),c=new TextDecoder,l=s.getReader(),u=!0;T=`open`;do{let{done:e,value:t}=await l.read();t&&m.feed(c.decode(t,{stream:!e})),e&&(u=!1,h=null,m.reset(),O(),o())}while(u)}}const w={getStream:function(e){if(!(e instanceof ReadableStream))throw Error(`Invalid stream, expected a web ReadableStream`);return e}};var T=function(e){function t(n,r){var i=e.call(this,n)||this;return i.name=`ConfigDirectorConnectionError`,i.status=r,Object.setPrototypeOf(i,t.prototype),i}return d(t,e),t}(Error),E=function(e){function t(n){var r=e.call(this,n)||this;return r.name=`ConfigDirectorValidationError`,Object.setPrototypeOf(r,t.prototype),r}return d(t,e),t}(Error),D=function(){function e(e){this.options=e,this.eventEmitter=new g,this.options=e,this.logger=e.logger,this.url=new URL(`sse/v1`,e.baseUrl)}return e.prototype.connect=function(e,t){return p(this,void 0,void 0,function(){var n,r,i,a,o=this;return m(this,function(s){return this.eventSource&&this.close(),n=void 0,r=void 0,i=function(e,t){return p(o,void 0,void 0,function(){var i;return m(this,function(a){switch(a.label){case 0:return[4,fetch(e,t)];case 1:return i=a.sent(),n=i.status,i.ok?[3,3]:[4,i.text()];case 2:r=a.sent(),a.label=3;case 3:return[2,i]}})})},a=new Promise(function(t,a){var s;o.eventSource=(s={url:o.url,fetch:i,method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({givenContext:e,metaContext:o.options.metaContext,clientSdkKey:o.options.clientSdkKey}),onMessage:function(e){var t=e.data;o.dispatchMessage(t)},onConnect:function(){n&&o.isStatusFatal(n)?(o.close(),a(o.prepareFatalError(n,r))):(o.logger.debug(`[EventSourceTransport] Connected, status: %s`,n),t(o))},onScheduleReconnect:function(e){n&&o.isStatusFatal(n)?(o.close(),a(o.prepareFatalError(n,r))):o.logger.warn(`[EventSourceTransport] Scheduling reconnect in ${e.delay}. Response status: ${n}`)},onDisconnect:function(){o.logger.debug(`[EventSourceTransport] Disconnected`)}},C(s,w))}),[2,Promise.race([a,new Promise(function(e){setTimeout(function(){return e(o)},t)})])]})})},e.prototype.dispatchMessage=function(e){try{var t=JSON.parse(e);this.eventEmitter.emit(`configSetReceived`,t)}catch(e){this.logger.error(`[EventSourceTransport] Error parsing and dispatching config data update: `,e)}},e.prototype.prepareFatalError=function(e,t){var n=e??0;return new T(`${`Connection failed with status: ${e??`unknown`}`}${(t?.trim()?.length??0)>0?` (${t})`:``}. This is an unrecoverable error, will not attempt to reconnect.`,n)},e.prototype.isStatusFatal=function(e){return!!e&&e>=400&&e<500},e.prototype.on=function(e,t){this.eventEmitter.on(e,t)},e.prototype.off=function(e,t){this.eventEmitter.off(e,t)},e.prototype.clear=function(){this.eventEmitter.clear()},e.prototype.close=function(){var e;(e=this.eventSource)==null||e.close()},e.prototype.dispose=function(){this.close(),this.clear()},e}(),O=function(e){var t=typeof e;if(t===`object`)try{return e.constructor?.name??t}catch{return t}else if(t===`function`)try{var n=e.name;return n?`function: ${n}`:t}catch{return t}return t},k=function(e){return e===`number`||e===`bigint`},A=function(e){if(e){var t=e.toLowerCase();if(t==`true`||t==`false`)return t===`true`}},j=function(e){if(e){var t=Number.parseInt(e);if(!isNaN(t)&&isFinite(t))return t}},M=function(e){if(e){var t=Number.parseFloat(e);if(!isNaN(t)&&isFinite(t))return t}},N={off:-1,error:0,warn:1,info:2,debug:3},P=function(){function e(e,t){this.level=e,this.decorator=t,this.level=e,this.decorator=t,this.dateFormatter=function(){var e={year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZoneName:`short`};try{return new Intl.DateTimeFormat(void 0,f(f({},e),{fractionalSecondDigits:3}))}catch{return new Intl.DateTimeFormat(void 0,e)}}()}return e.prototype.debug=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];this.log.apply(this,h([console.debug,`debug`,e],t,!1))},e.prototype.info=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];this.log.apply(this,h([console.info,`info`,e],t,!1))},e.prototype.warn=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];this.log.apply(this,h([console.warn,`warn`,e],t,!1))},e.prototype.error=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];this.log.apply(this,h([console.error,`error`,e],t,!1))},e.prototype.log=function(e,t,n){for(var r=[],i=3;i<arguments.length;i++)r[i-3]=arguments[i];N[this.level]>=N[t]&&e.apply(void 0,h([`[${this.dateFormatter.format(new Date)}] ${this.decorator?.decorateMessage(n)}`],r,!1))},e}(),F=function(){function e(){}return e.prototype.decorateMessage=function(e){return`[ConfigDirector:js-client-sdk] ${e}`},e}(),I=function(e,t){return new P(e??`warn`,t??new F)},L=function(){function e(){}return e.prototype.aggregate=function(e){if(e.events.length==0)return[];for(var t=new Map,n=0,r=e.events;n<r.length;n++){var i=r[n],a=JSON.stringify(i),o=t.get(a)?.count||0;t.set(a,{event:i,count:o+1})}return Array.from(t).map(function(t){var n=t[1];return{startTime:e.startTime,endTime:e.endTime,count:n.count,event:n.event}})},e}(),R=function(){function e(e){this._events=[],this._droppedEventCount=0,this.limit=e??1e3}return Object.defineProperty(e.prototype,`events`,{get:function(){return this._events},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,`reachedLimit`,{get:function(){return this._events.length>=this.limit},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,`droppedEventCount`,{get:function(){return this._droppedEventCount},enumerable:!1,configurable:!0}),e.prototype.push=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];this.startTime||=new Date;var r=Math.max(0,t.length-this.limit),i=t.slice(r,t.length);if(this._droppedEventCount+=r,this._events.length+i.length>this.limit){var a=this._events.length+i.length-this.limit;this._events.splice(0,a),this._droppedEventCount+=a}return(e=this._events).push.apply(e,i)},e.prototype.takeSnapshot=function(){var e=new Date,t=this.startTime??e,n=this._events.splice(0),r=this._droppedEventCount;return this.startTime=void 0,this._droppedEventCount=0,{startTime:t,endTime:e,events:n,droppedCount:r}},e.prototype.clear=function(){this._events=[],this.startTime=void 0,this._droppedEventCount=0},e}(),z=function(){function e(e){this.executeRequests=!0,this.sdkKey=e.sdkKey,this.logger=e.logger,this.url=new URL(`telemetry/v1`,e.baseUrl)}return e.prototype.report=function(e){var t=e.discreteEvents,n=e.aggregatedEvents,r=e.droppedEvents;if(!this.executeRequests)return{success:!1,fatalError:!0};var i={clientSdkKey:this.sdkKey,discreteEvents:t,aggregatedEvents:n,droppedEvents:r};if(this.isReportEmpty(i))return{success:!0,fatalError:!1};var a=this.sendReport(i);return a.fatalError&&(this.executeRequests=!1),a},e.prototype.isReportEmpty=function(e){return this.isEventListEmpty(e.discreteEvents)&&this.isEventListEmpty(e.aggregatedEvents)&&this.isDroppedEventsEmpty(e.droppedEvents)},e.prototype.isDroppedEventsEmpty=function(e){if(!e)return!0;var t=Object.keys(e);if(t.length==0)return!0;for(var n=0,r=t;n<r.length;n++)if((e[r[n]]??0)>0)return!1;return!0},e.prototype.isEventListEmpty=function(e){var t=Object.keys(e);if(t.length==0)return!0;for(var n=0,r=t;n<r.length;n++)if((e[r[n]]?.length??0)>0)return!1;return!0},e.prototype.sendReport=function(e){try{return{success:navigator.sendBeacon(this.url,JSON.stringify(e)),fatalError:!1}}catch(e){return this.logger.warn(`[EventReporter] Fatal error attempting to send telemetry data: ${e}. No more telemetry data will be sent.`),{success:!1,fatalError:!0}}},e}(),B=function(e){for(var t=5381,n=0;n<e.length;n++)t=(t<<5)+t+e[n],t>>>=0;return t},V=function(){function e(e){var t=this;this.evaluationEventQueue=new R,this.aggregator=new L,this.collectEvents=!0,this.logger=e.logger,this.reporter=new z(e),this.flushIntervalDelay=3e4,this.flushTimeout=setTimeout(function(){return t.flushAndScheduleNext()},5e3);try{document.addEventListener(`visibilitychange`,function(){document.visibilityState===`hidden`&&t.flush()})}catch(e){this.logger.warn(`[TelemetryEventCollector] Could not configure 'visibilitychange' listener: `,e)}}return e.prototype.evaluatedConfig=function(e){this.collectEvents&&this.evaluationEventQueue.push(this.sanitizeEvaluatedConfigEvent(e))},e.prototype.sanitizeEvaluatedConfigEvent=function(e){return{key:e.key,type:e.type,defaultValue:this.sanitizeValue(e.defaultValue,e.type),requestedType:e.requestedType,evaluatedValue:this.sanitizeValue(e.evaluatedValue,e.type),usedDefault:e.usedDefault,evaluationReason:e.evaluationReason}},e.prototype.sanitizeValue=function(e,t){if(t===`json`)try{return n=JSON.stringify(e),B(new TextEncoder().encode(n)).toString(16).padStart(8,`0`)}catch{return e.toString().slice(0,500)}var n;return e.toString().slice(0,500)},e.prototype.flushAndScheduleNext=function(){var e=this;this.flush().fatalError?(this.collectEvents=!1,this.close(),this.logger.warn(`[TelemetryEventCollector] Received a fatal error from telemetry collection. No longer collecting events.`)):this.flushTimeout=setTimeout(function(){return e.flushAndScheduleNext()},this.flushIntervalDelay)},e.prototype.flush=function(){var e=this.evaluationEventQueue.takeSnapshot();return this.reporter.report({discreteEvents:{},aggregatedEvents:{evaluatedConfig:this.aggregator.aggregate(e)},droppedEvents:{evaluatedConfig:e.droppedCount}})},e.prototype.close=function(){this.collectEvents=!1,clearTimeout(this.flushTimeout),this.flush(),this.evaluationEventQueue.clear()},e.prototype.dispose=function(){this.close()},e}(),H=function(e,t,n,r){return p(void 0,void 0,void 0,function(){var i,a,o,s;return m(this,function(c){switch(c.label){case 0:i=new AbortController,a=setTimeout(function(){r.debug(`[fetchWithTimeout] Reached timeout, aborting request`),i.abort()},e),c.label=1;case 1:return c.trys.push([1,3,,4]),[4,fetch(t,f(f({},n),{signal:i.signal}))];case 2:return o=c.sent(),clearTimeout(a),[2,o];case 3:throw s=c.sent(),r.warn(`[fetchWithTimeout] Fetch error: `,s),clearTimeout(a),s;case 4:return[2]}})})},U=function(){function e(e){this.options=e,this.eventEmitter=new g,this.fatalError=!1,this.options=e,this.logger=e.logger,this.url=new URL(`pull/v1`,e.baseUrl)}return e.prototype.connect=function(e,t){return p(this,void 0,void 0,function(){var n,r,i,a,o,s,c;return m(this,function(l){switch(l.label){case 0:if(this.fatalError)return this.logger.warn(`[PullTransport] There was a prior unrecoverable error. Ignoring attempt to reconnect.`),[2,this];l.label=1;case 1:return l.trys.push([1,7,,8]),[4,H(t,this.url,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({givenContext:e,metaContext:this.options.metaContext,clientSdkKey:this.options.clientSdkKey})},this.logger)];case 2:return(n=l.sent()).ok?[3,5]:this.isStatusFatal(n.status)?(this.fatalError=!0,r=this.prepareFatalResponseStatusError,i=[n.status],[4,n.text()]):[3,4];case 3:throw r.apply(this,i.concat([l.sent()]));case 4:throw new T(`Connection failed with status: ${n.status}`,n.status);case 5:return s=(o=JSON).parse,[4,n.text()];case 6:return a=s.apply(o,[l.sent()]),this.eventEmitter.emit(`configSetReceived`,a),[2,this];case 7:throw function(e){if(e instanceof DOMException){if(e.name===`NotAllowedError`)return!0}else if(e instanceof TypeError)return!0;return!1}(c=l.sent())?(this.fatalError=!0,new T(`Connection failed with fatal error: ${c}. This is an unrecoverable error, retry attempts will be ignored.`)):c instanceof SyntaxError?new T(`Failed to parse the response from the server: ${c}`):new T(`Connection failed with error: ${c}.`);case 8:return[2]}})})},e.prototype.prepareFatalResponseStatusError=function(e,t){var n=e??0;return new T(`${`Connection failed with status: ${e??`unknown`}`}${(t?.trim()?.length??0)>0?` (${t})`:``}. This is an unrecoverable error, retry attempts will be ignored.`,n)},e.prototype.isStatusFatal=function(e){return!!e&&e>=400&&e<500},e.prototype.on=function(e,t){this.eventEmitter.on(e,t)},e.prototype.off=function(e,t){this.eventEmitter.off(e,t)},e.prototype.clear=function(){this.eventEmitter.clear()},e.prototype.close=function(){},e.prototype.dispose=function(){this.close(),this.clear()},e}(),W=new URL(`https://client-sdk-api.configdirector.com`),G=function(){function e(e,t,n){var r=this;this.handlersMap=new Map,this.eventEmitter=new g,this.ready=!1,this.logger=n?.logger??I(),this.timeout=n?.connection?.timeout??3e3;var i=this.parseUrl(n?.connection?.url)??W;this.streaming=!1!==n?.connection?.streaming;var a=this.streaming?D:U;this.usageEventCollector=new V({sdkKey:e,logger:this.logger,baseUrl:i}),this.transport=new a({clientSdkKey:e,baseUrl:i,metaContext:f(f({},n?.metadata),{sdkName:t.sdkName,sdkVersion:t.sdkVersion,userAgent:navigator==null?void 0:navigator.userAgent}),logger:this.logger}),this.transport.on(`configSetReceived`,function(e){var t;(t=r.readyResolve)==null||t.call(r);var n=Object.keys(e.configs);r.configSet&&e.kind!=`full`?(r.configSet.configs=f(f({},r.configSet.configs),e.configs),r.eventEmitter.emit(`configsUpdated`,{keys:n}),r.updateWatchers(e.configs)):(r.configSet=e,r.eventEmitter.emit(`configsUpdated`,{keys:n}),r.updateWatchers(e.configs)),r.logger.debug(`[ConfigDirectorClient] ConfigSet updated from server:`,{keys:n})})}return e.prototype.initialize=function(e){return p(this,void 0,void 0,function(){return m(this,function(t){switch(t.label){case 0:return[4,this.connectToTransport(e,`initialization`)];case 1:return t.sent(),[2]}})})},e.prototype.updateContext=function(e){return p(this,void 0,void 0,function(){return m(this,function(t){switch(t.label){case 0:return[4,this.connectToTransport(e,`context update`)];case 1:return t.sent(),[2]}})})},e.prototype.connectToTransport=function(e,t){return p(this,void 0,void 0,function(){var n,r,i,a,o,s=this;return m(this,function(c){switch(c.label){case 0:return c.trys.push([0,4,,5]),this.ready=!1,this.readyPromise=new Promise(function(e){s.readyResolve=e}).then(function(){s.ready=!0,s.eventEmitter.emit(`clientReady`,{action:t}),s.logger.debug(`[ConfigDirectorClient] Received initial payload from the server, client is ready`)}),n=new Date().getTime(),[4,this.transport.connect(e??{},this.timeout)];case 1:return c.sent(),this.currentContext=e,r=new Date().getTime()-n,(i=this.timeout-r)>0?[4,Promise.race([this.readyPromise,new Promise(function(e){setTimeout(function(){return e()},i)})])]:[3,3];case 2:c.sent(),c.label=3;case 3:return this.ready||(a=this.streaming?`The client will continue to retry since there were no fatal errors detected. Configs will return the default value until the connection succeeds.`:`Since the client was configured without streaming, configs may not update and always return the default value.`,this.logger.warn(`[ConfigDirectorClient] Timed out waiting for ${t} after ${this.timeout}ms. ${a}`)),[3,5];case 4:return o=c.sent(),this.logger.error(`[ConfigDirectorClient] An error occurred during ${t}: `,o),[3,5];case 5:return[2]}})})},e.prototype.updateWatchers=function(e){var t=this;Object.values(e).forEach(function(e){return t.updateWatchersForConfig(e)})},e.prototype.updateWatchersForConfig=function(e){var t,n=this;(t=this.handlersMap.get(e.key))==null||t.forEach(function(t){var r=n.getValueFromConfigState(e.key,e,t.defaultValue);t.handler(r)})},e.prototype.watch=function(e,t,n){var r=this;this.validateDefaultValue(t);var i=this.handlersMap.get(e),a={handler:n,defaultValue:t,requestedType:typeof t};return i?i.push(a):this.handlersMap.set(e,[a]),function(){return r.unwatch(e,n)}},e.prototype.unwatch=function(e,t){var n=this.handlersMap.get(e);if(n)if(t){var r=n.findIndex(function(e){return e.handler==t});r>=0&&n?.splice(r,1)}else n.splice(0)},e.prototype.getValue=function(e,t){this.validateDefaultValue(t);var n=this.configSet?.configs[e];return this.getValueFromConfigState(e,n,t)},e.prototype.getValueFromConfigState=function(e,t,n){if(!t)return this.logger.debug(`[ConfigDirectorClient] No config state found for '${e}', returning default value '${n}'`),this.usageEventCollector.evaluatedConfig({contextId:this.currentContext?.id,key:e,defaultValue:n,requestedType:O(n),evaluatedValue:n,usedDefault:!0,evaluationReason:`config-state-missing`}),n;var r=function(e,t){var n,r,i=e.value,a=O(t);if(!i)return{parsedValue:t,requestedType:a,usedDefault:!0,reason:`value-missing`};if(typeof t==`string`)return{parsedValue:i,requestedType:a,usedDefault:!1,reason:`found-match`};if(typeof t==`boolean`&&e.type===`boolean`){var o=A(i),s=typeof o==`boolean`;return{parsedValue:s?o:t,requestedType:a,usedDefault:!s,reason:s?`found-match`:`invalid-boolean`}}return k(typeof t)&&e.type===`integer`?{parsedValue:(r=typeof(n=j(i))==`number`)?n:t,requestedType:a,usedDefault:!r,reason:r?`found-match`:`invalid-number`}:!k(typeof t)||e.type!==`float`&&e.type!==`enum`?{parsedValue:i,requestedType:a,usedDefault:!1,reason:`found-match`}:{parsedValue:(r=typeof(n=M(i))==`number`)?n:t,requestedType:a,usedDefault:!r,reason:r?`found-match`:`invalid-number`}}(t,n);return this.usageEventCollector.evaluatedConfig({contextId:this.currentContext?.id,key:e,defaultValue:n,requestedType:r.requestedType,evaluatedValue:r.parsedValue,usedDefault:r.usedDefault,evaluationReason:r.reason}),this.logger.debug(`[ConfigDirectorClient] Evaluated '${e}' to '${r.parsedValue}'`),r.parsedValue},e.prototype.parseUrl=function(e){if(e)try{return new URL(e)}catch(t){throw new E(`Invalid base URL '${e}'. Parsing failed: ${t}`)}},e.prototype.validateDefaultValue=function(e){if(e==null)throw new E(`Invalid default value. The default value for a config must be defined and non-null.`);if(typeof e==`function`)throw new E(`Invalid default value. The default value for a config cannot be a function.`)},Object.defineProperty(e.prototype,`isReady`,{get:function(){return this.ready},enumerable:!1,configurable:!0}),e.prototype.on=function(e,t){this.eventEmitter.on(e,t)},e.prototype.off=function(e,t){this.eventEmitter.off(e,t)},e.prototype.clear=function(){this.logger.debug(`[ConfigDirectorClient] clear() has been called, removing all observers`),this.eventEmitter.clear(),this.handlersMap.clear()},e.prototype.unwatchAll=function(){this.handlersMap.clear()},e.prototype.close=function(){this.logger.debug(`[ConfigDirectorClient] close() has been called, closing connection to server`),this.transport.close(),this.ready=!1},e.prototype.dispose=function(){this.clear(),this.close()},e}();const K=(e,t)=>new G(e,{sdkName:`react-web-sdk`,sdkVersion:`0.1.4`},t),q=c.default.createContext({status:`loading`});var J=class{decorateMessage(e){return`[ConfigDirector:react-web-sdk] ${e}`}};const Y=e=>I(e,new J),X=async e=>{let t=e.logger??Y(`debug`),n=K(e.sdkKey,{connection:{url:e.url,timeout:e.timeout},logger:t});return await n.initialize(e.context),({children:e})=>{let[t,r]=(0,c.useState)(()=>({client:n,status:n.isReady?`ready`:`default`}));return(0,c.useEffect)(()=>{n.on(`configsUpdated`,(()=>{r(e=>({...e,updatedAt:new Date}))})),n.on(`clientReady`,(()=>{r(e=>({...e,status:`ready`}))}))}),(0,l.jsx)(q.Provider,{value:t,children:e})}};var Z=class extends c.Component{constructor(e){super(e),this.state={client:K(e.sdkKey,{connection:{url:e.url,timeout:e.timeout},logger:e.logger??Y(`warn`)}),status:`loading`}}async componentDidMount(){this.state.client?.on(`configsUpdated`,()=>{this.setState({updatedAt:new Date})}),this.state.client?.on(`clientReady`,()=>{this.setState({status:`ready`})}),await this.state.client?.initialize(this.props.context),this.state.client?.isReady||this.setState({status:`default`})}componentWillUnmount(){this.state.client?.dispose()}render(){return(0,l.jsx)(q.Provider,{value:this.state,children:this.props.children})}},Q=class e extends Error{constructor(t){super(t),this.name=`ConfigDirectorReactContextError`,Object.setPrototypeOf(this,e.prototype)}};const $=()=>new Q(`The ConfigDirector client was not found in the React context. Please make sure the component using this hook is inside the context of a ConfigDirectorProvider.`),ee=(e,t)=>{let n=(0,c.useContext)(q);if(!n?.client)throw $();return{value:n.client.getValue(e,t),readyStatus:n.status,loading:n.status===`loading`}},te=()=>{let e=(0,c.useContext)(q);if(!e?.client)throw $();return{updateContext:async t=>{await e.client?.updateContext(t)}}},ne=()=>{let e=(0,c.useContext)(q);if(!e?.client)throw $();return{client:e.client}};exports.ConfigDirectorProvider=Z,exports.createConsoleLogger=Y,exports.useConfigDirectorClient=ne,exports.useConfigDirectorContext=te,exports.useConfigValue=ee,exports.withProvider=X;
4
+ `&&r++}}return[t,n]}(`${o}${t}`);for(let e of n)u(e);o=r,s=!1},reset:function(e={}){o&&e.consume&&u(o),s=!0,a=void 0,c=``,l=``,o=``}}}const b=`connecting`,x=`closed`,S=()=>{};function C(e,{getStream:t}){let n=typeof e==`string`||e instanceof URL?{url:e}:e,{onMessage:r,onComment:i=S,onConnect:a=S,onDisconnect:o=S,onScheduleReconnect:s=S}=n,{fetch:c,url:l,initialLastEventId:u}=function(e){let t=e.fetch||globalThis.fetch;if(!function(e){return typeof e==`function`}(t))throw Error(`No fetch implementation provided, and one was not found on the global object.`);if(typeof AbortController!=`function`)throw Error(`Missing AbortController implementation`);let{url:n,initialLastEventId:r}=e;if(typeof n!=`string`&&!(n instanceof URL))throw Error(`Invalid URL provided - must be string or URL instance`);if(typeof r!=`string`&&r!==void 0)throw Error(`Invalid initialLastEventId provided - must be string or undefined`);return{fetch:t,url:n,initialLastEventId:r}}(n),d={...n.headers},f=[],p=r?[r]:[],m=y({onEvent:function(e){typeof e.id==`string`&&(C=e.id),t=e,p.forEach(e=>e(t));var t},onRetry:function(e){w=e},onComment:i}),h,g,_=l.toString(),v=new AbortController,C=u,w=2e3,T=x;return E(),{close:D,connect:E,[Symbol.iterator]:()=>{throw Error("EventSource does not support synchronous iteration. Use `for await` instead.")},[Symbol.asyncIterator]:function(){let e=[],t=[],n=function(n){let r=e.shift();r?r({value:n,done:!1}):t.push(n)};function r(){for(p.splice(p.indexOf(n),1);e.shift(););for(;t.shift(););}return f.push(function(){let t=e.shift();t&&(t({done:!0,value:void 0}),r())}),p.push(n),{next(){return T===x?this.return():new Promise(n=>{let r=t.shift();r?n({value:r,done:!1}):e.push(n)})},return:()=>(r(),Promise.resolve({done:!0,value:void 0})),throw:e=>(r(),Promise.reject(e)),[Symbol.asyncIterator](){return this}}},get lastEventId(){return C},get url(){return _},get readyState(){return T}};function E(){h||=(T=b,v=new AbortController,c(l,function(){let{mode:e,credentials:t,body:r,method:i,redirect:a,referrer:o,referrerPolicy:s}=n;return{mode:e,credentials:t,body:r,method:i,redirect:a,referrer:o,referrerPolicy:s,headers:{Accept:`text/event-stream`,...d,...C?{"Last-Event-ID":C}:void 0},cache:`no-store`,signal:v.signal}}()).then(k).catch(e=>{h=null,e.name!==`AbortError`&&e.type!==`aborted`&&!v.signal.aborted&&O()}))}function D(){T=x,v.abort(),m.reset(),clearTimeout(g),f.forEach(e=>e())}function O(){s({delay:w}),!v.signal.aborted&&(T=b,g=setTimeout(E,w))}async function k(e){a(),m.reset();let{body:n,redirected:r,status:i}=e;if(i===204)return o(),void D();if(!n)throw Error(`Missing response body`);r&&(_=e.url);let s=t(n),c=new TextDecoder,l=s.getReader(),u=!0;T=`open`;do{let{done:e,value:t}=await l.read();t&&m.feed(c.decode(t,{stream:!e})),e&&(u=!1,h=null,m.reset(),O(),o())}while(u)}}const w={getStream:function(e){if(!(e instanceof ReadableStream))throw Error(`Invalid stream, expected a web ReadableStream`);return e}};var T=function(e){function t(n,r){var i=e.call(this,n)||this;return i.name=`ConfigDirectorConnectionError`,i.status=r,Object.setPrototypeOf(i,t.prototype),i}return d(t,e),t}(Error),E=function(e){function t(n){var r=e.call(this,n)||this;return r.name=`ConfigDirectorValidationError`,Object.setPrototypeOf(r,t.prototype),r}return d(t,e),t}(Error),D=function(){function e(e){this.options=e,this.eventEmitter=new g,this.options=e,this.logger=e.logger,this.url=new URL(`sse/v1`,e.baseUrl)}return e.prototype.connect=function(e,t){return p(this,void 0,void 0,function(){var n,r,i,a,o=this;return m(this,function(s){return this.eventSource&&this.close(),n=void 0,r=void 0,i=function(e,t){return p(o,void 0,void 0,function(){var i;return m(this,function(a){switch(a.label){case 0:return[4,fetch(e,t)];case 1:return i=a.sent(),n=i.status,i.ok?[3,3]:[4,i.text()];case 2:r=a.sent(),a.label=3;case 3:return[2,i]}})})},a=new Promise(function(t,a){var s;o.eventSource=(s={url:o.url,fetch:i,method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({givenContext:e,metaContext:o.options.metaContext,clientSdkKey:o.options.clientSdkKey}),onMessage:function(e){var t=e.data;o.dispatchMessage(t)},onConnect:function(){n&&o.isStatusFatal(n)?(o.close(),a(o.prepareFatalError(n,r))):(o.logger.debug(`[EventSourceTransport] Connected, status: %s`,n),t(o))},onScheduleReconnect:function(e){n&&o.isStatusFatal(n)?(o.close(),a(o.prepareFatalError(n,r))):o.logger.warn(`[EventSourceTransport] Scheduling reconnect in ${e.delay}. Response status: ${n}`)},onDisconnect:function(){o.logger.debug(`[EventSourceTransport] Disconnected`)}},C(s,w))}),[2,Promise.race([a,new Promise(function(e){setTimeout(function(){return e(o)},t)})])]})})},e.prototype.dispatchMessage=function(e){try{var t=JSON.parse(e);this.eventEmitter.emit(`configSetReceived`,t)}catch(e){this.logger.error(`[EventSourceTransport] Error parsing and dispatching config data update: `,e)}},e.prototype.prepareFatalError=function(e,t){var n=e??0;return new T(`${`Connection failed with status: ${e??`unknown`}`}${(t?.trim()?.length??0)>0?` (${t})`:``}. This is an unrecoverable error, will not attempt to reconnect.`,n)},e.prototype.isStatusFatal=function(e){return!!e&&e>=400&&e<500},e.prototype.on=function(e,t){this.eventEmitter.on(e,t)},e.prototype.off=function(e,t){this.eventEmitter.off(e,t)},e.prototype.clear=function(){this.eventEmitter.clear()},e.prototype.close=function(){var e;(e=this.eventSource)==null||e.close()},e.prototype.dispose=function(){this.close(),this.clear()},e}(),O=function(e){var t=typeof e;if(t===`object`)try{return e.constructor?.name??t}catch{return t}else if(t===`function`)try{var n=e.name;return n?`function: ${n}`:t}catch{return t}return t},k=function(e){return e===`number`||e===`bigint`},A=function(e){if(e){var t=e.toLowerCase();if(t==`true`||t==`false`)return t===`true`}},j=function(e){if(e){var t=Number.parseInt(e);if(!isNaN(t)&&isFinite(t))return t}},M=function(e){if(e){var t=Number.parseFloat(e);if(!isNaN(t)&&isFinite(t))return t}},N={off:-1,error:0,warn:1,info:2,debug:3},P=function(){function e(e,t){this.level=e,this.decorator=t,this.level=e,this.decorator=t,this.dateFormatter=function(){var e={year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZoneName:`short`};try{return new Intl.DateTimeFormat(void 0,f(f({},e),{fractionalSecondDigits:3}))}catch{return new Intl.DateTimeFormat(void 0,e)}}()}return e.prototype.debug=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];this.log.apply(this,h([console.debug,`debug`,e],t,!1))},e.prototype.info=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];this.log.apply(this,h([console.info,`info`,e],t,!1))},e.prototype.warn=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];this.log.apply(this,h([console.warn,`warn`,e],t,!1))},e.prototype.error=function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];this.log.apply(this,h([console.error,`error`,e],t,!1))},e.prototype.log=function(e,t,n){for(var r=[],i=3;i<arguments.length;i++)r[i-3]=arguments[i];N[this.level]>=N[t]&&e.apply(void 0,h([`[${this.dateFormatter.format(new Date)}] ${this.decorator?.decorateMessage(n)}`],r,!1))},e}(),F=function(){function e(){}return e.prototype.decorateMessage=function(e){return`[ConfigDirector:js-client-sdk] ${e}`},e}(),I=function(e,t){return new P(e??`warn`,t??new F)},L=function(){function e(){}return e.prototype.aggregate=function(e){if(e.events.length==0)return[];for(var t=new Map,n=0,r=e.events;n<r.length;n++){var i=r[n],a=JSON.stringify(i),o=t.get(a)?.count||0;t.set(a,{event:i,count:o+1})}return Array.from(t).map(function(t){var n=t[1];return{startTime:e.startTime,endTime:e.endTime,count:n.count,event:n.event}})},e}(),R=function(){function e(e){this._events=[],this._droppedEventCount=0,this.limit=e??1e3}return Object.defineProperty(e.prototype,`events`,{get:function(){return this._events},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,`reachedLimit`,{get:function(){return this._events.length>=this.limit},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,`droppedEventCount`,{get:function(){return this._droppedEventCount},enumerable:!1,configurable:!0}),e.prototype.push=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];this.startTime||=new Date;var r=Math.max(0,t.length-this.limit),i=t.slice(r,t.length);if(this._droppedEventCount+=r,this._events.length+i.length>this.limit){var a=this._events.length+i.length-this.limit;this._events.splice(0,a),this._droppedEventCount+=a}return(e=this._events).push.apply(e,i)},e.prototype.takeSnapshot=function(){var e=new Date,t=this.startTime??e,n=this._events.splice(0),r=this._droppedEventCount;return this.startTime=void 0,this._droppedEventCount=0,{startTime:t,endTime:e,events:n,droppedCount:r}},e.prototype.clear=function(){this._events=[],this.startTime=void 0,this._droppedEventCount=0},e}(),z=function(){function e(e){this.executeRequests=!0,this.sdkKey=e.sdkKey,this.logger=e.logger,this.url=new URL(`telemetry/v1`,e.baseUrl)}return e.prototype.report=function(e){var t=e.discreteEvents,n=e.aggregatedEvents,r=e.droppedEvents;if(!this.executeRequests)return{success:!1,fatalError:!0};var i={clientSdkKey:this.sdkKey,discreteEvents:t,aggregatedEvents:n,droppedEvents:r};if(this.isReportEmpty(i))return{success:!0,fatalError:!1};var a=this.sendReport(i);return a.fatalError&&(this.executeRequests=!1),a},e.prototype.isReportEmpty=function(e){return this.isEventListEmpty(e.discreteEvents)&&this.isEventListEmpty(e.aggregatedEvents)&&this.isDroppedEventsEmpty(e.droppedEvents)},e.prototype.isDroppedEventsEmpty=function(e){if(!e)return!0;var t=Object.keys(e);if(t.length==0)return!0;for(var n=0,r=t;n<r.length;n++)if((e[r[n]]??0)>0)return!1;return!0},e.prototype.isEventListEmpty=function(e){var t=Object.keys(e);if(t.length==0)return!0;for(var n=0,r=t;n<r.length;n++)if((e[r[n]]?.length??0)>0)return!1;return!0},e.prototype.sendReport=function(e){try{return{success:navigator.sendBeacon(this.url,JSON.stringify(e)),fatalError:!1}}catch(e){return this.logger.warn(`[EventReporter] Fatal error attempting to send telemetry data: ${e}. No more telemetry data will be sent.`),{success:!1,fatalError:!0}}},e}(),B=function(e){for(var t=5381,n=0;n<e.length;n++)t=(t<<5)+t+e[n],t>>>=0;return t},V=function(){function e(e){var t=this;this.evaluationEventQueue=new R,this.aggregator=new L,this.collectEvents=!0,this.logger=e.logger,this.reporter=new z(e),this.flushIntervalDelay=3e4,this.flushTimeout=setTimeout(function(){return t.flushAndScheduleNext()},5e3);try{document.addEventListener(`visibilitychange`,function(){document.visibilityState===`hidden`&&t.flush()})}catch(e){this.logger.warn(`[TelemetryEventCollector] Could not configure 'visibilitychange' listener: `,e)}}return e.prototype.evaluatedConfig=function(e){this.collectEvents&&this.evaluationEventQueue.push(this.sanitizeEvaluatedConfigEvent(e))},e.prototype.sanitizeEvaluatedConfigEvent=function(e){return{key:e.key,type:e.type,defaultValue:this.sanitizeValue(e.defaultValue,e.type),requestedType:e.requestedType,evaluatedValue:this.sanitizeValue(e.evaluatedValue,e.type),usedDefault:e.usedDefault,evaluationReason:e.evaluationReason}},e.prototype.sanitizeValue=function(e,t){if(t===`json`)try{return n=JSON.stringify(e),B(new TextEncoder().encode(n)).toString(16).padStart(8,`0`)}catch{return e.toString().slice(0,500)}var n;return e.toString().slice(0,500)},e.prototype.flushAndScheduleNext=function(){var e=this;this.flush().fatalError?(this.collectEvents=!1,this.close(),this.logger.warn(`[TelemetryEventCollector] Received a fatal error from telemetry collection. No longer collecting events.`)):this.flushTimeout=setTimeout(function(){return e.flushAndScheduleNext()},this.flushIntervalDelay)},e.prototype.flush=function(){var e=this.evaluationEventQueue.takeSnapshot();return this.reporter.report({discreteEvents:{},aggregatedEvents:{evaluatedConfig:this.aggregator.aggregate(e)},droppedEvents:{evaluatedConfig:e.droppedCount}})},e.prototype.close=function(){this.collectEvents=!1,clearTimeout(this.flushTimeout),this.flush(),this.evaluationEventQueue.clear()},e.prototype.dispose=function(){this.close()},e}(),H=function(e,t,n,r){return p(void 0,void 0,void 0,function(){var i,a,o,s;return m(this,function(c){switch(c.label){case 0:i=new AbortController,a=setTimeout(function(){r.debug(`[fetchWithTimeout] Reached timeout, aborting request`),i.abort()},e),c.label=1;case 1:return c.trys.push([1,3,,4]),[4,fetch(t,f(f({},n),{signal:i.signal}))];case 2:return o=c.sent(),clearTimeout(a),[2,o];case 3:throw s=c.sent(),r.warn(`[fetchWithTimeout] Fetch error: `,s),clearTimeout(a),s;case 4:return[2]}})})},U=function(){function e(e){this.options=e,this.eventEmitter=new g,this.fatalError=!1,this.options=e,this.logger=e.logger,this.url=new URL(`pull/v1`,e.baseUrl)}return e.prototype.connect=function(e,t){return p(this,void 0,void 0,function(){var n,r,i,a,o,s,c;return m(this,function(l){switch(l.label){case 0:if(this.fatalError)return this.logger.warn(`[PullTransport] There was a prior unrecoverable error. Ignoring attempt to reconnect.`),[2,this];l.label=1;case 1:return l.trys.push([1,7,,8]),[4,H(t,this.url,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({givenContext:e,metaContext:this.options.metaContext,clientSdkKey:this.options.clientSdkKey})},this.logger)];case 2:return(n=l.sent()).ok?[3,5]:this.isStatusFatal(n.status)?(this.fatalError=!0,r=this.prepareFatalResponseStatusError,i=[n.status],[4,n.text()]):[3,4];case 3:throw r.apply(this,i.concat([l.sent()]));case 4:throw new T(`Connection failed with status: ${n.status}`,n.status);case 5:return s=(o=JSON).parse,[4,n.text()];case 6:return a=s.apply(o,[l.sent()]),this.eventEmitter.emit(`configSetReceived`,a),[2,this];case 7:throw function(e){if(e instanceof DOMException){if(e.name===`NotAllowedError`)return!0}else if(e instanceof TypeError)return!0;return!1}(c=l.sent())?(this.fatalError=!0,new T(`Connection failed with fatal error: ${c}. This is an unrecoverable error, retry attempts will be ignored.`)):c instanceof SyntaxError?new T(`Failed to parse the response from the server: ${c}`):new T(`Connection failed with error: ${c}.`);case 8:return[2]}})})},e.prototype.prepareFatalResponseStatusError=function(e,t){var n=e??0;return new T(`${`Connection failed with status: ${e??`unknown`}`}${(t?.trim()?.length??0)>0?` (${t})`:``}. This is an unrecoverable error, retry attempts will be ignored.`,n)},e.prototype.isStatusFatal=function(e){return!!e&&e>=400&&e<500},e.prototype.on=function(e,t){this.eventEmitter.on(e,t)},e.prototype.off=function(e,t){this.eventEmitter.off(e,t)},e.prototype.clear=function(){this.eventEmitter.clear()},e.prototype.close=function(){},e.prototype.dispose=function(){this.close(),this.clear()},e}(),W=new URL(`https://client-sdk-api.configdirector.com`),G=function(){function e(e,t,n){var r=this;this.handlersMap=new Map,this.eventEmitter=new g,this.ready=!1,this.logger=n?.logger??I(),this.timeout=n?.connection?.timeout??3e3;var i=this.parseUrl(n?.connection?.url)??W;this.streaming=!1!==n?.connection?.streaming;var a=this.streaming?D:U;this.usageEventCollector=new V({sdkKey:e,logger:this.logger,baseUrl:i}),this.transport=new a({clientSdkKey:e,baseUrl:i,metaContext:f(f({},n?.metadata),{sdkName:t.sdkName,sdkVersion:t.sdkVersion,userAgent:navigator==null?void 0:navigator.userAgent}),logger:this.logger}),this.transport.on(`configSetReceived`,function(e){var t;(t=r.readyResolve)==null||t.call(r);var n=Object.keys(e.configs);r.configSet&&e.kind!=`full`?(r.configSet.configs=f(f({},r.configSet.configs),e.configs),r.eventEmitter.emit(`configsUpdated`,{keys:n}),r.updateWatchers(e.configs)):(r.configSet=e,r.eventEmitter.emit(`configsUpdated`,{keys:n}),r.updateWatchers(e.configs)),r.logger.debug(`[ConfigDirectorClient] ConfigSet updated from server:`,{keys:n})})}return e.prototype.initialize=function(e){return p(this,void 0,void 0,function(){return m(this,function(t){switch(t.label){case 0:return[4,this.connectToTransport(e,`initialization`)];case 1:return t.sent(),[2]}})})},e.prototype.updateContext=function(e){return p(this,void 0,void 0,function(){return m(this,function(t){switch(t.label){case 0:return[4,this.connectToTransport(e,`context update`)];case 1:return t.sent(),[2]}})})},e.prototype.connectToTransport=function(e,t){return p(this,void 0,void 0,function(){var n,r,i,a,o,s=this;return m(this,function(c){switch(c.label){case 0:return c.trys.push([0,4,,5]),this.ready=!1,this.readyPromise=new Promise(function(e){s.readyResolve=e}).then(function(){s.ready=!0,s.eventEmitter.emit(`clientReady`,{action:t}),s.logger.debug(`[ConfigDirectorClient] Received initial payload from the server, client is ready`)}),n=new Date().getTime(),[4,this.transport.connect(e??{},this.timeout)];case 1:return c.sent(),this.currentContext=e,r=new Date().getTime()-n,(i=this.timeout-r)>0?[4,Promise.race([this.readyPromise,new Promise(function(e){setTimeout(function(){return e()},i)})])]:[3,3];case 2:c.sent(),c.label=3;case 3:return this.ready||(a=this.streaming?`The client will continue to retry since there were no fatal errors detected. Configs will return the default value until the connection succeeds.`:`Since the client was configured without streaming, configs may not update and always return the default value.`,this.logger.warn(`[ConfigDirectorClient] Timed out waiting for ${t} after ${this.timeout}ms. ${a}`)),[3,5];case 4:return o=c.sent(),this.logger.error(`[ConfigDirectorClient] An error occurred during ${t}: `,o),[3,5];case 5:return[2]}})})},e.prototype.updateWatchers=function(e){var t=this;Object.values(e).forEach(function(e){return t.updateWatchersForConfig(e)})},e.prototype.updateWatchersForConfig=function(e){var t,n=this;(t=this.handlersMap.get(e.key))==null||t.forEach(function(t){var r=n.getValueFromConfigState(e.key,e,t.defaultValue);t.handler(r)})},e.prototype.watch=function(e,t,n){var r=this;this.validateDefaultValue(t);var i=this.handlersMap.get(e),a={handler:n,defaultValue:t,requestedType:typeof t};return i?i.push(a):this.handlersMap.set(e,[a]),function(){return r.unwatch(e,n)}},e.prototype.unwatch=function(e,t){var n=this.handlersMap.get(e);if(n)if(t){var r=n.findIndex(function(e){return e.handler==t});r>=0&&n?.splice(r,1)}else n.splice(0)},e.prototype.getValue=function(e,t){this.validateDefaultValue(t);var n=this.configSet?.configs[e];return this.getValueFromConfigState(e,n,t)},e.prototype.getValueFromConfigState=function(e,t,n){if(!t)return this.logger.debug(`[ConfigDirectorClient] No config state found for '${e}', returning default value '${n}'`),this.usageEventCollector.evaluatedConfig({contextId:this.currentContext?.id,key:e,defaultValue:n,requestedType:O(n),evaluatedValue:n,usedDefault:!0,evaluationReason:`config-state-missing`}),n;var r=function(e,t){var n,r,i=e.value,a=O(t);if(!i)return{parsedValue:t,requestedType:a,usedDefault:!0,reason:`value-missing`};if(typeof t==`string`)return{parsedValue:i,requestedType:a,usedDefault:!1,reason:`found-match`};if(typeof t==`boolean`&&e.type===`boolean`){var o=A(i),s=typeof o==`boolean`;return{parsedValue:s?o:t,requestedType:a,usedDefault:!s,reason:s?`found-match`:`invalid-boolean`}}return k(typeof t)&&e.type===`integer`?{parsedValue:(r=typeof(n=j(i))==`number`)?n:t,requestedType:a,usedDefault:!r,reason:r?`found-match`:`invalid-number`}:!k(typeof t)||e.type!==`float`&&e.type!==`enum`?{parsedValue:i,requestedType:a,usedDefault:!1,reason:`found-match`}:{parsedValue:(r=typeof(n=M(i))==`number`)?n:t,requestedType:a,usedDefault:!r,reason:r?`found-match`:`invalid-number`}}(t,n);return this.usageEventCollector.evaluatedConfig({contextId:this.currentContext?.id,key:e,defaultValue:n,requestedType:r.requestedType,evaluatedValue:r.parsedValue,usedDefault:r.usedDefault,evaluationReason:r.reason}),this.logger.debug(`[ConfigDirectorClient] Evaluated '${e}' to '${r.parsedValue}'`),r.parsedValue},e.prototype.parseUrl=function(e){if(e)try{return new URL(e)}catch(t){throw new E(`Invalid base URL '${e}'. Parsing failed: ${t}`)}},e.prototype.validateDefaultValue=function(e){if(e==null)throw new E(`Invalid default value. The default value for a config must be defined and non-null.`);if(typeof e==`function`)throw new E(`Invalid default value. The default value for a config cannot be a function.`)},Object.defineProperty(e.prototype,`isReady`,{get:function(){return this.ready},enumerable:!1,configurable:!0}),e.prototype.on=function(e,t){this.eventEmitter.on(e,t)},e.prototype.off=function(e,t){this.eventEmitter.off(e,t)},e.prototype.clear=function(){this.logger.debug(`[ConfigDirectorClient] clear() has been called, removing all observers`),this.eventEmitter.clear(),this.handlersMap.clear()},e.prototype.unwatchAll=function(){this.handlersMap.clear()},e.prototype.close=function(){this.logger.debug(`[ConfigDirectorClient] close() has been called, closing connection to server`),this.transport.close(),this.ready=!1},e.prototype.dispose=function(){this.clear(),this.close()},e}();const K=(e,t)=>new G(e,{sdkName:`react-web-sdk`,sdkVersion:`0.1.5`},t),q=c.default.createContext({status:`loading`});var J=class{decorateMessage(e){return`[ConfigDirector:react-web-sdk] ${e}`}};const Y=e=>I(e,new J),X=async e=>{let t=e.logger??Y(`debug`),n=K(e.sdkKey,{connection:{url:e.url,timeout:e.timeout},metadata:{appName:e.appName,appVersion:e.appVersion},logger:t});return await n.initialize(e.context),({children:e})=>{let[t,r]=(0,c.useState)(()=>({client:n,status:n.isReady?`ready`:`default`}));return(0,c.useEffect)(()=>{n.on(`configsUpdated`,()=>{r(e=>({...e,updatedAt:new Date}))}),n.on(`clientReady`,()=>{r(e=>({...e,status:`ready`}))})}),(0,l.jsx)(q.Provider,{value:t,children:e})}};var Z=class extends c.Component{constructor(e){super(e),this.state={client:K(e.sdkKey,{connection:{url:e.url,timeout:e.timeout},metadata:{appName:e.appName,appVersion:e.appVersion},logger:e.logger??Y(`warn`)}),status:`loading`}}async componentDidMount(){this.state.client?.on(`configsUpdated`,()=>{this.setState({updatedAt:new Date})}),this.state.client?.on(`clientReady`,()=>{this.setState({status:`ready`})}),await this.state.client?.initialize(this.props.context),this.state.client?.isReady||this.setState({status:`default`})}componentWillUnmount(){this.state.client?.dispose()}render(){return(0,l.jsx)(q.Provider,{value:this.state,children:this.props.children})}},Q=class e extends Error{constructor(t){super(t),this.name=`ConfigDirectorReactContextError`,Object.setPrototypeOf(this,e.prototype)}};const $=()=>new Q(`The ConfigDirector client was not found in the React context. Please make sure the component using this hook is inside the context of a ConfigDirectorProvider.`),ee=(e,t)=>{let n=(0,c.useContext)(q);if(!n?.client)throw $();return{value:n.client.getValue(e,t),readyStatus:n.status,loading:n.status===`loading`}},te=()=>{let e=(0,c.useContext)(q);if(!e?.client)throw $();return{updateContext:async t=>{await e.client?.updateContext(t)}}},ne=()=>{let e=(0,c.useContext)(q);if(!e?.client)throw $();return{client:e.client}};exports.ConfigDirectorProvider=Z,exports.createConsoleLogger=Y,exports.useConfigDirectorClient=ne,exports.useConfigDirectorContext=te,exports.useConfigValue=ee,exports.withProvider=X;
@@ -1 +1 @@
1
- {"version":3,"file":"configdirector-react-client.d.cts","names":["EventType","EventsRecord","Record","Handler","TEventsRecord","TKey","payload","EventProvider","TName","on","name","handler","off","clear","ConfigEnumLikeType","key","ConfigValueType","ConfigType","ConfigState","id","type","value","ConfigStateMap","ConfigSet","environmentId","projectId","configs","kind","EvaluationReason","ConfigDirectorLoggingLevel","ConfigDirectorLogger","debug","message","args","info","warn","error","ConfigDirectorLogMessageDecorator","decorateMessage","ConfigDirectorContext","traits","IdentifyingSdkOptions","sdkName","sdkVersion","SdkMetaContext","userAgent","ConfigDirectorClientOptions","metadata","appVersion","appName","connection","streaming","timeout","url","logger","ClientConnectAction","ClientEvents","configsUpdated","keys","clientReady","action","WatchHandler","T","ConfigDirectorClient","Promise","initialize","context","updateContext","isReady","getValue","configKey","defaultValue","watch","callback","unwatch","unwatchAll","dispose","TransportOptions","URL","clientSdkKey","baseUrl","metaContext","TransportEvents","configSetReceived","Transport","connect","close","DefaultConfigDirectorClient","usageEventCollector","configSet","handlersMap","transport","eventEmitter","ready","readyPromise","readyResolve","currentContext","constructor","sdkOptions","clientOptions","connectToTransport","updateWatchers","updateWatchersForConfig","getValueFromConfigState","parseUrl","validateDefaultValue","eventName","event","DefaultConsoleLogger","level","decorator","dateFormatter","log","createDefaultLogger","messageDecorator","EvaluatedConfigEvent","contextId","requestedType","evaluatedValue","usedDefault","evaluationReason","TelemetryEventCollectorOptions","sdkKey","TelemetryEventCollector","reporter","evaluationEventQueue","aggregator","flushIntervalDelay","flushTimeout","collectEvents","options","evaluatedConfig","sanitizeEvaluatedConfigEvent","sanitizeValue","flushAndScheduleNext","flush","ConfigDirectorConnectionError","Error","status","ConfigDirectorValidationError","isFetchErrorFatal","fetchError","EventType","EventsRecord","Record","Handler","TEventsRecord","TKey","payload","EventProvider","TName","on","name","handler","off","clear","ConfigEnumLikeType","key","ConfigValueType","ConfigDirectorLoggingLevel","ConfigDirectorLogger","debug","message","args","info","warn","error","ConfigDirectorLogMessageDecorator","decorateMessage","ConfigDirectorContext","id","traits","ConfigDirectorClientOptions","metadata","appVersion","appName","connection","streaming","timeout","url","logger","ClientConnectAction","ClientEvents","configsUpdated","keys","clientReady","action","WatchHandler","T","ConfigDirectorClient","Promise","initialize","context","updateContext","isReady","getValue","configKey","defaultValue","watch","callback","unwatch","unwatchAll","dispose","DefaultConsoleLogger","level","decorator","dateFormatter","constructor","log","ConfigDirectorConnectionError","Error","status","ConfigDirectorValidationError","createClient","clientSdkKey","clientOptions","createConsoleLogger","messageDecorator"],"sources":["../../js-client-core/dist/configdirector-client-core.d.ts","../src/types.ts","../src/withProvider.tsx","../src/provider.tsx","../node_modules/@configdirector/client-sdk/dist/configdirector-client.d.ts","../src/hooks.tsx","../src/logger.ts"],"x_google_ignoreList":[4],"mappings":"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"}
1
+ {"version":3,"file":"configdirector-react-client.d.cts","names":["EventType","EventsRecord","Record","Handler","TEventsRecord","TKey","payload","EventProvider","TName","on","name","handler","off","clear","ConfigEnumLikeType","key","ConfigValueType","ConfigType","ConfigState","id","type","value","ConfigStateMap","ConfigSet","environmentId","projectId","configs","kind","EvaluationReason","ConfigDirectorLoggingLevel","ConfigDirectorLogger","debug","message","args","info","warn","error","ConfigDirectorLogMessageDecorator","decorateMessage","ConfigDirectorContext","traits","IdentifyingSdkOptions","sdkName","sdkVersion","SdkMetaContext","userAgent","ConfigDirectorClientOptions","metadata","appVersion","appName","connection","streaming","timeout","url","logger","ClientConnectAction","ClientEvents","configsUpdated","keys","clientReady","action","WatchHandler","T","ConfigDirectorClient","Promise","initialize","context","updateContext","isReady","getValue","configKey","defaultValue","watch","callback","unwatch","unwatchAll","dispose","TransportOptions","URL","clientSdkKey","baseUrl","metaContext","TransportEvents","configSetReceived","Transport","connect","close","DefaultConfigDirectorClient","usageEventCollector","configSet","handlersMap","transport","eventEmitter","ready","readyPromise","readyResolve","currentContext","constructor","sdkOptions","clientOptions","connectToTransport","updateWatchers","updateWatchersForConfig","getValueFromConfigState","parseUrl","validateDefaultValue","eventName","event","DefaultConsoleLogger","level","decorator","dateFormatter","log","createDefaultLogger","messageDecorator","EvaluatedConfigEvent","contextId","requestedType","evaluatedValue","usedDefault","evaluationReason","TelemetryEventCollectorOptions","sdkKey","TelemetryEventCollector","reporter","evaluationEventQueue","aggregator","flushIntervalDelay","flushTimeout","collectEvents","options","evaluatedConfig","sanitizeEvaluatedConfigEvent","sanitizeValue","flushAndScheduleNext","flush","ConfigDirectorConnectionError","Error","status","ConfigDirectorValidationError","isFetchErrorFatal","fetchError","EventType","EventsRecord","Record","Handler","TEventsRecord","TKey","payload","EventProvider","TName","on","name","handler","off","clear","ConfigEnumLikeType","key","ConfigValueType","ConfigDirectorLoggingLevel","ConfigDirectorLogger","debug","message","args","info","warn","error","ConfigDirectorLogMessageDecorator","decorateMessage","ConfigDirectorContext","id","traits","ConfigDirectorClientOptions","metadata","appVersion","appName","connection","streaming","timeout","url","logger","ClientConnectAction","ClientEvents","configsUpdated","keys","clientReady","action","WatchHandler","T","ConfigDirectorClient","Promise","initialize","context","updateContext","isReady","getValue","configKey","defaultValue","watch","callback","unwatch","unwatchAll","dispose","DefaultConsoleLogger","level","decorator","dateFormatter","constructor","log","ConfigDirectorConnectionError","Error","status","ConfigDirectorValidationError","createClient","clientSdkKey","clientOptions","createConsoleLogger","messageDecorator"],"sources":["../../js-client-core/dist/configdirector-client-core.d.ts","../src/types.ts","../src/withProvider.tsx","../src/provider.tsx","../node_modules/@configdirector/client-sdk/dist/configdirector-client.d.ts","../src/hooks.tsx","../src/logger.ts"],"x_google_ignoreList":[4],"mappings":";;;;KAAKA,SAAAA;AAAAA,KACAC,YAAAA,GAAeC,MAAAA,CAAOF,SAAAA;AAAAA,KACtBG,OAAAA,uBAA8BF,YAAAA,qBAAiCG,aAAAA,KAAkBE,OAAAA,EAASF,aAAAA,CAAcC,IAAAA;AAAAA,UACnGE,aAAAA,uBAAoCN,YAAAA;EAC1CQ,EAAAA,qBAAuBL,aAAAA,EAAeM,IAAAA,EAAMF,KAAAA,EAAOG,OAAAA,EAASR,OAAAA,CAAQC,aAAAA,EAAeI,KAAAA;EACnFI,GAAAA,qBAAwBR,aAAAA,EAAeM,IAAAA,EAAMF,KAAAA,EAAOG,OAAAA,GAAUR,OAAAA,CAAQC,aAAAA,EAAeI,KAAAA;EACrFK,KAAAA;AAAAA;AAAAA,KAGCC,oBAAAA;EAAAA,CACAC,GAAAA;AAAAA;AAAAA,KAEAC,iBAAAA,wCAAuDF,oBAAAA;AAAAA,KAkBvDe,0BAAAA;AAAAA,UACKC,oBAAAA;EACNC,KAAAA,CAAMC,OAAAA,aAAoBC,IAAAA;EAC1BC,IAAAA,CAAKF,OAAAA,aAAoBC,IAAAA;EACzBE,IAAAA,CAAKH,OAAAA,aAAoBC,IAAAA;EACzBG,KAAAA,CAAMJ,OAAAA,aAAoBC,IAAAA;AAAAA;;;;;KASzBM,uBAAAA;EAvC6DpC;;;;;;;;EAgD9DgB,EAAAA;EAjDsCT;;;;EAsDtCA,IAAAA;EArDAE;;;;EA0DA4B,MAAAA;IAAAA,CACKzB,GAAAA;EAAAA;AAAAA;AAAAA,KAiEJwC,mBAAAA;AAAAA,KACAC,YAAAA;EACDC,cAAAA;IACIC,IAAAA;EAAAA;EAEJC,WAAAA;IACIC,MAAAA,EAAQL,mBAAAA;EAAAA;AAAAA;AAAAA,KAGXM,YAAAA,WAAuB7C,iBAAAA,KAAoBgB,OAAAA,EAAS8B,CAAAA;;AAAC;;;;;;;;UAUhDC,oBAAAA,SAA6BxD,aAAAA,CAAciD,YAAAA;EAqCoBM;;;;;;;;;;;;;EAvBrEG,UAAAA,CAAWC,OAAAA,GAAU3B,uBAAAA,GAAwByB,OAAAA;EAA7CC;;;;;EAMAE,aAAAA,CAAcD,OAAAA,EAAS3B,uBAAAA,GAAwByB,OAAAA;EAAjCE;;;;;;EAAAA,IAOVE,OAAAA;EAUiEN;;;;;;;;;EAArEO,QAAAA,WAAmBrD,iBAAAA,EAAiBsD,SAAAA,UAAmBC,YAAAA,EAAcT,CAAAA,GAAIA,CAAAA;EAYmBA;;;;;;;;;;;EAA5FU,KAAAA,WAAgBxD,iBAAAA,EAAiBsD,SAAAA,UAAmBC,YAAAA,EAAcT,CAAAA,EAAGW,QAAAA,EAAUZ,YAAAA,CAAaC,CAAAA;EAoBrF;;;;ACvNX;;;;ED4MIY,OAAAA,WAAkB1D,iBAAAA,EAAiBsD,SAAAA,UAAmBG,QAAAA,GAAWZ,YAAAA,CAAaC,CAAAA;EC1MjE;;;ED8Mba,UAAAA;EC5MU;;;;;;EDmNVC,OAAAA;AAAAA;;;KCvNQ,YAAA;AAAA,UAEK,yBAAA;EACf,MAAA,GAAS,oBAAA;EACT,SAAA,GAAY,IAAA;EACZ,MAAA,EAAQ,YAAA;AAAA;AAAA,KAGE,2BAAA,GAA8B,yBAAA;AAAA,KAE9B,6BAAA;EACV,MAAA;EACA,OAAA;EACA,UAAA;EACA,GAAA;EACA,OAAA;EACA,OAAA,GAAU,uBAAA;EACV,MAAA,GAAS,oBAAA;AAAA;;;cCbE,YAAA,GAAsB,OAAA,EAAS,6BAAA,KAA6B,OAAA;EAAA;AAAA;EASvB,QAAA,EAAU,SAAA;AAAA,MAAW,kBAAA,CAAA,GAAA,CAAA,OAAA;;;cCT1D,sBAAA,SAA+B,SAAA,CAC1C,iBAAA,CAAkB,6BAAA,GAClB,2BAAA;cAEY,KAAA,EAAO,6BAAA;EAYJ,iBAAA,CAAA,GAAqB,OAAA;EAa3B,oBAAA,CAAA;EAIA,MAAA,CAAA,GAAM,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA;;;KC9BZgF,kBAAAA;EAAAA,CACAC,GAAAA;AAAAA;AAAAA,KAEAC,eAAAA,wCAAuDF,kBAAAA;;;;;KAevDa,qBAAAA;EJzBwGpK;;;;AAAK;;;;EIkC9GqK,EAAAA;EJhC4ClK;;;;EIqC5CgJ,IAAAA;EJpC6ChJ;;;;EIyC7CmK,MAAAA;IAAAA,CACKd,GAAAA;EAAAA;AAAAA;;;;;;cChCH,cAAA,aAA4B,eAAA,EAChC,GAAA,UACA,YAAA,EAAc,CAAA;EAEd,KAAA,EAAO,CAAA;EACP,WAAA,EAAa,YAAA;EACb,OAAA;AAAA;AAAA,cAYI,wBAAA;2BAMkC,qBAAA,KAAqB,OAAA;AAAA;AAAA,cAOvD,uBAAA;UAOL,oBAAA;AAAA;;;cCxCY,mBAAA,GAAuB,KAAA,EAAO,0BAAA,KAA6B,oBAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"configdirector-react-client.d.mts","names":["EventType","EventsRecord","Record","Handler","TEventsRecord","TKey","payload","EventProvider","TName","on","name","handler","off","clear","ConfigEnumLikeType","key","ConfigValueType","ConfigType","ConfigState","id","type","value","ConfigStateMap","ConfigSet","environmentId","projectId","configs","kind","EvaluationReason","ConfigDirectorLoggingLevel","ConfigDirectorLogger","debug","message","args","info","warn","error","ConfigDirectorLogMessageDecorator","decorateMessage","ConfigDirectorContext","traits","IdentifyingSdkOptions","sdkName","sdkVersion","SdkMetaContext","userAgent","ConfigDirectorClientOptions","metadata","appVersion","appName","connection","streaming","timeout","url","logger","ClientConnectAction","ClientEvents","configsUpdated","keys","clientReady","action","WatchHandler","T","ConfigDirectorClient","Promise","initialize","context","updateContext","isReady","getValue","configKey","defaultValue","watch","callback","unwatch","unwatchAll","dispose","TransportOptions","URL","clientSdkKey","baseUrl","metaContext","TransportEvents","configSetReceived","Transport","connect","close","DefaultConfigDirectorClient","usageEventCollector","configSet","handlersMap","transport","eventEmitter","ready","readyPromise","readyResolve","currentContext","constructor","sdkOptions","clientOptions","connectToTransport","updateWatchers","updateWatchersForConfig","getValueFromConfigState","parseUrl","validateDefaultValue","eventName","event","DefaultConsoleLogger","level","decorator","dateFormatter","log","createDefaultLogger","messageDecorator","EvaluatedConfigEvent","contextId","requestedType","evaluatedValue","usedDefault","evaluationReason","TelemetryEventCollectorOptions","sdkKey","TelemetryEventCollector","reporter","evaluationEventQueue","aggregator","flushIntervalDelay","flushTimeout","collectEvents","options","evaluatedConfig","sanitizeEvaluatedConfigEvent","sanitizeValue","flushAndScheduleNext","flush","ConfigDirectorConnectionError","Error","status","ConfigDirectorValidationError","isFetchErrorFatal","fetchError","EventType","EventsRecord","Record","Handler","TEventsRecord","TKey","payload","EventProvider","TName","on","name","handler","off","clear","ConfigEnumLikeType","key","ConfigValueType","ConfigDirectorLoggingLevel","ConfigDirectorLogger","debug","message","args","info","warn","error","ConfigDirectorLogMessageDecorator","decorateMessage","ConfigDirectorContext","id","traits","ConfigDirectorClientOptions","metadata","appVersion","appName","connection","streaming","timeout","url","logger","ClientConnectAction","ClientEvents","configsUpdated","keys","clientReady","action","WatchHandler","T","ConfigDirectorClient","Promise","initialize","context","updateContext","isReady","getValue","configKey","defaultValue","watch","callback","unwatch","unwatchAll","dispose","DefaultConsoleLogger","level","decorator","dateFormatter","constructor","log","ConfigDirectorConnectionError","Error","status","ConfigDirectorValidationError","createClient","clientSdkKey","clientOptions","createConsoleLogger","messageDecorator"],"sources":["../../js-client-core/dist/configdirector-client-core.d.ts","../src/types.ts","../src/withProvider.tsx","../src/provider.tsx","../node_modules/@configdirector/client-sdk/dist/configdirector-client.d.ts","../src/hooks.tsx","../src/logger.ts"],"x_google_ignoreList":[4],"mappings":"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"}
1
+ {"version":3,"file":"configdirector-react-client.d.mts","names":["EventType","EventsRecord","Record","Handler","TEventsRecord","TKey","payload","EventProvider","TName","on","name","handler","off","clear","ConfigEnumLikeType","key","ConfigValueType","ConfigType","ConfigState","id","type","value","ConfigStateMap","ConfigSet","environmentId","projectId","configs","kind","EvaluationReason","ConfigDirectorLoggingLevel","ConfigDirectorLogger","debug","message","args","info","warn","error","ConfigDirectorLogMessageDecorator","decorateMessage","ConfigDirectorContext","traits","IdentifyingSdkOptions","sdkName","sdkVersion","SdkMetaContext","userAgent","ConfigDirectorClientOptions","metadata","appVersion","appName","connection","streaming","timeout","url","logger","ClientConnectAction","ClientEvents","configsUpdated","keys","clientReady","action","WatchHandler","T","ConfigDirectorClient","Promise","initialize","context","updateContext","isReady","getValue","configKey","defaultValue","watch","callback","unwatch","unwatchAll","dispose","TransportOptions","URL","clientSdkKey","baseUrl","metaContext","TransportEvents","configSetReceived","Transport","connect","close","DefaultConfigDirectorClient","usageEventCollector","configSet","handlersMap","transport","eventEmitter","ready","readyPromise","readyResolve","currentContext","constructor","sdkOptions","clientOptions","connectToTransport","updateWatchers","updateWatchersForConfig","getValueFromConfigState","parseUrl","validateDefaultValue","eventName","event","DefaultConsoleLogger","level","decorator","dateFormatter","log","createDefaultLogger","messageDecorator","EvaluatedConfigEvent","contextId","requestedType","evaluatedValue","usedDefault","evaluationReason","TelemetryEventCollectorOptions","sdkKey","TelemetryEventCollector","reporter","evaluationEventQueue","aggregator","flushIntervalDelay","flushTimeout","collectEvents","options","evaluatedConfig","sanitizeEvaluatedConfigEvent","sanitizeValue","flushAndScheduleNext","flush","ConfigDirectorConnectionError","Error","status","ConfigDirectorValidationError","isFetchErrorFatal","fetchError","EventType","EventsRecord","Record","Handler","TEventsRecord","TKey","payload","EventProvider","TName","on","name","handler","off","clear","ConfigEnumLikeType","key","ConfigValueType","ConfigDirectorLoggingLevel","ConfigDirectorLogger","debug","message","args","info","warn","error","ConfigDirectorLogMessageDecorator","decorateMessage","ConfigDirectorContext","id","traits","ConfigDirectorClientOptions","metadata","appVersion","appName","connection","streaming","timeout","url","logger","ClientConnectAction","ClientEvents","configsUpdated","keys","clientReady","action","WatchHandler","T","ConfigDirectorClient","Promise","initialize","context","updateContext","isReady","getValue","configKey","defaultValue","watch","callback","unwatch","unwatchAll","dispose","DefaultConsoleLogger","level","decorator","dateFormatter","constructor","log","ConfigDirectorConnectionError","Error","status","ConfigDirectorValidationError","createClient","clientSdkKey","clientOptions","createConsoleLogger","messageDecorator"],"sources":["../../js-client-core/dist/configdirector-client-core.d.ts","../src/types.ts","../src/withProvider.tsx","../src/provider.tsx","../node_modules/@configdirector/client-sdk/dist/configdirector-client.d.ts","../src/hooks.tsx","../src/logger.ts"],"x_google_ignoreList":[4],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import e,{Component as t,useContext as n,useEffect as r,useState as i}from"react";import{jsx as a}from"react/jsx-runtime";function o(e){"@babel/helpers - typeof";return o=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},o(e)}function s(e,t){if(o(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(o(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function c(e){var t=s(e,`string`);return o(t)==`symbol`?t:t+``}function l(e,t,n){return(t=c(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?u(Object(n),!0).forEach(function(t){l(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var f=function(e,t){return f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},f(e,t)};function p(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);function n(){this.constructor=e}f(e,t),e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var m=function(){return m=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},m.apply(this,arguments)};function h(e,t,n,r){return new(n||(n=Promise))(function(i,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(o,s)}c((r=r.apply(e,t||[])).next())})}function g(e,t){var n,r,i,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},o=Object.create((typeof Iterator==`function`?Iterator:Object).prototype);return o.next=s(0),o.throw=s(1),o.return=s(2),typeof Symbol==`function`&&(o[Symbol.iterator]=function(){return this}),o;function s(s){return function(c){return function(s){if(n)throw TypeError(`Generator is already executing.`);for(;o&&(o=0,s[0]&&(a=0)),a;)try{if(n=1,r&&(i=2&s[0]?r.return:s[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,s[1])).done)return i;switch(r=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,r=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(i=a.trys,!((i=i.length>0&&i[i.length-1])||s[0]!==6&&s[0]!==2)){a=0;continue}if(s[0]===3&&(!i||s[1]>i[0]&&s[1]<i[3])){a.label=s[1];break}if(s[0]===6&&a.label<i[1]){a.label=i[1],i=s;break}if(i&&a.label<i[2]){a.label=i[2],a.ops.push(s);break}i[2]&&a.ops.pop(),a.trys.pop();continue}s=t.call(e,a)}catch(e){s=[6,e],r=0}finally{n=i=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,c])}}}function _(e,t,n){if(n||arguments.length===2)for(var r,i=0,a=t.length;i<a;i++)!r&&i in t||(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}var v=function(){function e(){this.handlerMap=new Map}return e.prototype.on=function(e,t){var n=this.handlerMap.get(e);n?n.push(t):this.handlerMap.set(e,[t])},e.prototype.once=function(e,t){var n=this;this.on(e,function r(i){n.off(e,r),t.apply(n,i)})},e.prototype.off=function(e,t){var n=this.handlerMap.get(e);if(n)if(t){var r=n.indexOf(t);r>=0&&n.splice(r,1)}else this.handlerMap.set(e,[])},e.prototype.clear=function(){this.handlerMap.clear()},e.prototype.emit=function(e,t){var n=this.handlerMap.get(e);n&&n.slice().map(function(e){return e(t)})},e}(),y=class extends Error{constructor(e,t){super(e),this.name=`ParseError`,this.type=t.type,this.field=t.field,this.value=t.value,this.line=t.line}};function b(e){}function ee(e){if(typeof e==`function`)throw TypeError("`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?");let{onEvent:t=b,onError:n=b,onRetry:r=b,onComment:i}=e,a,o=``,s=!0,c=``,l=``;function u(e){if(e===``)return c.length>0&&t({id:a,event:l||void 0,data:c.endsWith(`
2
2
  `)?c.slice(0,-1):c}),a=void 0,c=``,void(l=``);if(e.startsWith(`:`))return void(i&&i(e.slice(e.startsWith(`: `)?2:1)));let n=e.indexOf(`:`);if(n!==-1){let t=e.slice(0,n),r=e[n+1]===` `?2:1;d(t,e.slice(n+r),e);return}d(e,``,e)}function d(e,t,i){switch(e){case`event`:l=t;break;case`data`:c=`${c}${t}\n`;break;case`id`:a=t.includes(`\0`)?void 0:t;break;case`retry`:/^\d+$/.test(t)?r(parseInt(t,10)):n(new y(`Invalid \`retry\` value: "${t}"`,{type:`invalid-retry`,value:t,line:i}));break;default:n(new y(`Unknown field "${e.length>20?`${e.slice(0,20)}…`:e}"`,{type:`unknown-field`,field:e,value:t,line:i}))}}return{feed:function(e){let t=s?e.replace(/^\xEF\xBB\xBF/,``):e,[n,r]=function(e){let t=[],n=``,r=0;for(;r<e.length;){let i=e.indexOf(`\r`,r),a=e.indexOf(`
3
3
  `,r),o=-1;if(i!==-1&&a!==-1?o=Math.min(i,a):i===-1?a!==-1&&(o=a):o=i===e.length-1?-1:i,o===-1){n=e.slice(r);break}{let n=e.slice(r,o);t.push(n),r=o+1,e[r-1]===`\r`&&e[r]===`
4
- `&&r++}}return[t,n]}(`${o}${t}`);for(let e of n)u(e);o=r,s=!1},reset:function(e={}){o&&e.consume&&u(o),s=!0,a=void 0,c=``,l=``,o=``}}}const x=`connecting`,S=`closed`,C=()=>{};function w(e,{getStream:t}){let n=typeof e==`string`||e instanceof URL?{url:e}:e,{onMessage:r,onComment:i=C,onConnect:a=C,onDisconnect:o=C,onScheduleReconnect:s=C}=n,{fetch:c,url:l,initialLastEventId:u}=function(e){let t=e.fetch||globalThis.fetch;if(!function(e){return typeof e==`function`}(t))throw Error(`No fetch implementation provided, and one was not found on the global object.`);if(typeof AbortController!=`function`)throw Error(`Missing AbortController implementation`);let{url:n,initialLastEventId:r}=e;if(typeof n!=`string`&&!(n instanceof URL))throw Error(`Invalid URL provided - must be string or URL instance`);if(typeof r!=`string`&&r!==void 0)throw Error(`Invalid initialLastEventId provided - must be string or undefined`);return{fetch:t,url:n,initialLastEventId:r}}(n),f=d({},n.headers),p=[],m=r?[r]:[],h=ee({onEvent:function(e){typeof e.id==`string`&&(b=e.id),t=e,m.forEach(e=>e(t));var t},onRetry:function(e){w=e},onComment:i}),g,_,v=l.toString(),y=new AbortController,b=u,w=2e3,T=S;return E(),{close:D,connect:E,[Symbol.iterator]:()=>{throw Error("EventSource does not support synchronous iteration. Use `for await` instead.")},[Symbol.asyncIterator]:function(){let e=[],t=[],n=function(n){let r=e.shift();r?r({value:n,done:!1}):t.push(n)};function r(){for(m.splice(m.indexOf(n),1);e.shift(););for(;t.shift(););}return p.push(function(){let t=e.shift();t&&(t({done:!0,value:void 0}),r())}),m.push(n),{next(){return T===S?this.return():new Promise(n=>{let r=t.shift();r?n({value:r,done:!1}):e.push(n)})},return:()=>(r(),Promise.resolve({done:!0,value:void 0})),throw:e=>(r(),Promise.reject(e)),[Symbol.asyncIterator](){return this}}},get lastEventId(){return b},get url(){return v},get readyState(){return T}};function E(){g||(T=x,y=new AbortController,g=c(l,function(){let{mode:e,credentials:t,body:r,method:i,redirect:a,referrer:o,referrerPolicy:s}=n;return{mode:e,credentials:t,body:r,method:i,redirect:a,referrer:o,referrerPolicy:s,headers:d(d({Accept:`text/event-stream`},f),b?{"Last-Event-ID":b}:void 0),cache:`no-store`,signal:y.signal}}()).then(k).catch(e=>{g=null,e.name!==`AbortError`&&e.type!==`aborted`&&!y.signal.aborted&&O()}))}function D(){T=S,y.abort(),h.reset(),clearTimeout(_),p.forEach(e=>e())}function O(){s({delay:w}),!y.signal.aborted&&(T=x,_=setTimeout(E,w))}async function k(e){a(),h.reset();let{body:n,redirected:r,status:i}=e;if(i===204)return o(),void D();if(!n)throw Error(`Missing response body`);r&&(v=e.url);let s=t(n),c=new TextDecoder,l=s.getReader(),u=!0;T=`open`;do{let{done:e,value:t}=await l.read();t&&h.feed(c.decode(t,{stream:!e})),e&&(u=!1,g=null,h.reset(),O(),o())}while(u)}}const T={getStream:function(e){if(!(e instanceof ReadableStream))throw Error(`Invalid stream, expected a web ReadableStream`);return e}};var E=function(e){function t(n,r){var i=e.call(this,n)||this;return i.name=`ConfigDirectorConnectionError`,i.status=r,Object.setPrototypeOf(i,t.prototype),i}return p(t,e),t}(Error),D=function(e){function t(n){var r=e.call(this,n)||this;return r.name=`ConfigDirectorValidationError`,Object.setPrototypeOf(r,t.prototype),r}return p(t,e),t}(Error),O=function(){function e(e){this.options=e,this.eventEmitter=new v,this.options=e,this.logger=e.logger,this.url=new URL(`sse/v1`,e.baseUrl)}return e.prototype.connect=function(e,t){return h(this,void 0,void 0,function(){var n,r,i,a,o=this;return g(this,function(s){return this.eventSource&&this.close(),n=void 0,r=void 0,i=function(e,t){return h(o,void 0,void 0,function(){var i;return g(this,function(a){switch(a.label){case 0:return[4,fetch(e,t)];case 1:return i=a.sent(),n=i.status,i.ok?[3,3]:[4,i.text()];case 2:r=a.sent(),a.label=3;case 3:return[2,i]}})})},a=new Promise(function(t,a){var s;o.eventSource=(s={url:o.url,fetch:i,method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({givenContext:e,metaContext:o.options.metaContext,clientSdkKey:o.options.clientSdkKey}),onMessage:function(e){var t=e.data;o.dispatchMessage(t)},onConnect:function(){n&&o.isStatusFatal(n)?(o.close(),a(o.prepareFatalError(n,r))):(o.logger.debug(`[EventSourceTransport] Connected, status: %s`,n),t(o))},onScheduleReconnect:function(e){n&&o.isStatusFatal(n)?(o.close(),a(o.prepareFatalError(n,r))):o.logger.warn(`[EventSourceTransport] Scheduling reconnect in ${e.delay}. Response status: ${n}`)},onDisconnect:function(){o.logger.debug(`[EventSourceTransport] Disconnected`)}},w(s,T))}),[2,Promise.race([a,new Promise(function(e){setTimeout(function(){return e(o)},t)})])]})})},e.prototype.dispatchMessage=function(e){try{var t=JSON.parse(e);this.eventEmitter.emit(`configSetReceived`,t)}catch(e){this.logger.error(`[EventSourceTransport] Error parsing and dispatching config data update: `,e)}},e.prototype.prepareFatalError=function(e,t){var n,r,i=e==null?0:e;return new E(`${`Connection failed with status: ${e==null?`unknown`:e}`}${((r=(n=t==null?void 0:t.trim())==null?void 0:n.length)==null?0:r)>0?` (${t})`:``}. This is an unrecoverable error, will not attempt to reconnect.`,i)},e.prototype.isStatusFatal=function(e){return!!e&&e>=400&&e<500},e.prototype.on=function(e,t){this.eventEmitter.on(e,t)},e.prototype.off=function(e,t){this.eventEmitter.off(e,t)},e.prototype.clear=function(){this.eventEmitter.clear()},e.prototype.close=function(){var e;(e=this.eventSource)==null||e.close()},e.prototype.dispose=function(){this.close(),this.clear()},e}(),k=function(e){var t,n,r=typeof e;if(r===`object`)try{return(n=(t=e.constructor)==null?void 0:t.name)==null?r:n}catch(e){return r}else if(r===`function`)try{var i=e.name;return i?`function: ${i}`:r}catch(e){return r}return r},A=function(e){return e===`number`||e===`bigint`},j=function(e){if(e){var t=e.toLowerCase();if(t==`true`||t==`false`)return t===`true`}},M=function(e){if(e){var t=Number.parseInt(e);if(!isNaN(t)&&isFinite(t))return t}},N=function(e){if(e){var t=Number.parseFloat(e);if(!isNaN(t)&&isFinite(t))return t}},P={off:-1,error:0,warn:1,info:2,debug:3},F=function(){function e(e,t){this.level=e,this.decorator=t,this.level=e,this.decorator=t,this.dateFormatter=function(){var e={year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZoneName:`short`};try{return new Intl.DateTimeFormat(void 0,m(m({},e),{fractionalSecondDigits:3}))}catch(t){return new Intl.DateTimeFormat(void 0,e)}}()}return e.prototype.debug=function(e){var t=[...arguments].slice(1);this.log.apply(this,_([console.debug,`debug`,e],t,!1))},e.prototype.info=function(e){var t=[...arguments].slice(1);this.log.apply(this,_([console.info,`info`,e],t,!1))},e.prototype.warn=function(e){var t=[...arguments].slice(1);this.log.apply(this,_([console.warn,`warn`,e],t,!1))},e.prototype.error=function(e){var t=[...arguments].slice(1);this.log.apply(this,_([console.error,`error`,e],t,!1))},e.prototype.log=function(e,t,n){for(var r,i=[],a=3;a<arguments.length;a++)i[a-3]=arguments[a];P[this.level]>=P[t]&&e.apply(void 0,_([`[${this.dateFormatter.format(new Date)}] ${(r=this.decorator)==null?void 0:r.decorateMessage(n)}`],i,!1))},e}(),I=function(){function e(){}return e.prototype.decorateMessage=function(e){return`[ConfigDirector:js-client-sdk] ${e}`},e}(),L=function(e,t){return new F(e==null?`warn`:e,t==null?new I:t)},R=function(){function e(){}return e.prototype.aggregate=function(e){var t;if(e.events.length==0)return[];for(var n=new Map,r=0,i=e.events;r<i.length;r++){var a=i[r],o=JSON.stringify(a),s=((t=n.get(o))==null?void 0:t.count)||0;n.set(o,{event:a,count:s+1})}return Array.from(n).map(function(t){var n=t[1];return{startTime:e.startTime,endTime:e.endTime,count:n.count,event:n.event}})},e}(),z=function(){function e(e){this._events=[],this._droppedEventCount=0,this.limit=e==null?1e3:e}return Object.defineProperty(e.prototype,`events`,{get:function(){return this._events},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,`reachedLimit`,{get:function(){return this._events.length>=this.limit},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,`droppedEventCount`,{get:function(){return this._droppedEventCount},enumerable:!1,configurable:!0}),e.prototype.push=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];this.startTime||(this.startTime=new Date);var r=Math.max(0,t.length-this.limit),i=t.slice(r,t.length);if(this._droppedEventCount+=r,this._events.length+i.length>this.limit){var a=this._events.length+i.length-this.limit;this._events.splice(0,a),this._droppedEventCount+=a}return(e=this._events).push.apply(e,i)},e.prototype.takeSnapshot=function(){var e,t=new Date,n=(e=this.startTime)==null?t:e,r=this._events.splice(0),i=this._droppedEventCount;return this.startTime=void 0,this._droppedEventCount=0,{startTime:n,endTime:t,events:r,droppedCount:i}},e.prototype.clear=function(){this._events=[],this.startTime=void 0,this._droppedEventCount=0},e}(),B=function(){function e(e){this.executeRequests=!0,this.sdkKey=e.sdkKey,this.logger=e.logger,this.url=new URL(`telemetry/v1`,e.baseUrl)}return e.prototype.report=function(e){var t=e.discreteEvents,n=e.aggregatedEvents,r=e.droppedEvents;if(!this.executeRequests)return{success:!1,fatalError:!0};var i={clientSdkKey:this.sdkKey,discreteEvents:t,aggregatedEvents:n,droppedEvents:r};if(this.isReportEmpty(i))return{success:!0,fatalError:!1};var a=this.sendReport(i);return a.fatalError&&(this.executeRequests=!1),a},e.prototype.isReportEmpty=function(e){return this.isEventListEmpty(e.discreteEvents)&&this.isEventListEmpty(e.aggregatedEvents)&&this.isDroppedEventsEmpty(e.droppedEvents)},e.prototype.isDroppedEventsEmpty=function(e){var t;if(!e)return!0;var n=Object.keys(e);if(n.length==0)return!0;for(var r=0,i=n;r<i.length;r++)if(((t=e[i[r]])==null?0:t)>0)return!1;return!0},e.prototype.isEventListEmpty=function(e){var t,n,r=Object.keys(e);if(r.length==0)return!0;for(var i=0,a=r;i<a.length;i++)if(((n=(t=e[a[i]])==null?void 0:t.length)==null?0:n)>0)return!1;return!0},e.prototype.sendReport=function(e){try{return{success:navigator.sendBeacon(this.url,JSON.stringify(e)),fatalError:!1}}catch(e){return this.logger.warn(`[EventReporter] Fatal error attempting to send telemetry data: ${e}. No more telemetry data will be sent.`),{success:!1,fatalError:!0}}},e}(),V=function(e){for(var t=5381,n=0;n<e.length;n++)t=(t<<5)+t+e[n],t>>>=0;return t},H=function(){function e(e){var t=this;this.evaluationEventQueue=new z,this.aggregator=new R,this.collectEvents=!0,this.logger=e.logger,this.reporter=new B(e),this.flushIntervalDelay=3e4,this.flushTimeout=setTimeout(function(){return t.flushAndScheduleNext()},5e3);try{document.addEventListener(`visibilitychange`,function(){document.visibilityState===`hidden`&&t.flush()})}catch(e){this.logger.warn(`[TelemetryEventCollector] Could not configure 'visibilitychange' listener: `,e)}}return e.prototype.evaluatedConfig=function(e){this.collectEvents&&this.evaluationEventQueue.push(this.sanitizeEvaluatedConfigEvent(e))},e.prototype.sanitizeEvaluatedConfigEvent=function(e){return{key:e.key,type:e.type,defaultValue:this.sanitizeValue(e.defaultValue,e.type),requestedType:e.requestedType,evaluatedValue:this.sanitizeValue(e.evaluatedValue,e.type),usedDefault:e.usedDefault,evaluationReason:e.evaluationReason}},e.prototype.sanitizeValue=function(e,t){if(t===`json`)try{return n=JSON.stringify(e),V(new TextEncoder().encode(n)).toString(16).padStart(8,`0`)}catch(t){return e.toString().slice(0,500)}var n;return e.toString().slice(0,500)},e.prototype.flushAndScheduleNext=function(){var e=this;this.flush().fatalError?(this.collectEvents=!1,this.close(),this.logger.warn(`[TelemetryEventCollector] Received a fatal error from telemetry collection. No longer collecting events.`)):this.flushTimeout=setTimeout(function(){return e.flushAndScheduleNext()},this.flushIntervalDelay)},e.prototype.flush=function(){var e=this.evaluationEventQueue.takeSnapshot();return this.reporter.report({discreteEvents:{},aggregatedEvents:{evaluatedConfig:this.aggregator.aggregate(e)},droppedEvents:{evaluatedConfig:e.droppedCount}})},e.prototype.close=function(){this.collectEvents=!1,clearTimeout(this.flushTimeout),this.flush(),this.evaluationEventQueue.clear()},e.prototype.dispose=function(){this.close()},e}(),U=function(e,t,n,r){return h(void 0,void 0,void 0,function(){var i,a,o,s;return g(this,function(c){switch(c.label){case 0:i=new AbortController,a=setTimeout(function(){r.debug(`[fetchWithTimeout] Reached timeout, aborting request`),i.abort()},e),c.label=1;case 1:return c.trys.push([1,3,,4]),[4,fetch(t,m(m({},n),{signal:i.signal}))];case 2:return o=c.sent(),clearTimeout(a),[2,o];case 3:throw s=c.sent(),r.warn(`[fetchWithTimeout] Fetch error: `,s),clearTimeout(a),s;case 4:return[2]}})})},W=function(){function e(e){this.options=e,this.eventEmitter=new v,this.fatalError=!1,this.options=e,this.logger=e.logger,this.url=new URL(`pull/v1`,e.baseUrl)}return e.prototype.connect=function(e,t){return h(this,void 0,void 0,function(){var n,r,i,a,o,s,c;return g(this,function(l){switch(l.label){case 0:if(this.fatalError)return this.logger.warn(`[PullTransport] There was a prior unrecoverable error. Ignoring attempt to reconnect.`),[2,this];l.label=1;case 1:return l.trys.push([1,7,,8]),[4,U(t,this.url,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({givenContext:e,metaContext:this.options.metaContext,clientSdkKey:this.options.clientSdkKey})},this.logger)];case 2:return(n=l.sent()).ok?[3,5]:this.isStatusFatal(n.status)?(this.fatalError=!0,r=this.prepareFatalResponseStatusError,i=[n.status],[4,n.text()]):[3,4];case 3:throw r.apply(this,i.concat([l.sent()]));case 4:throw new E(`Connection failed with status: ${n.status}`,n.status);case 5:return s=(o=JSON).parse,[4,n.text()];case 6:return a=s.apply(o,[l.sent()]),this.eventEmitter.emit(`configSetReceived`,a),[2,this];case 7:throw function(e){if(e instanceof DOMException){if(e.name===`NotAllowedError`)return!0}else if(e instanceof TypeError)return!0;return!1}(c=l.sent())?(this.fatalError=!0,new E(`Connection failed with fatal error: ${c}. This is an unrecoverable error, retry attempts will be ignored.`)):c instanceof SyntaxError?new E(`Failed to parse the response from the server: ${c}`):new E(`Connection failed with error: ${c}.`);case 8:return[2]}})})},e.prototype.prepareFatalResponseStatusError=function(e,t){var n,r,i=e==null?0:e;return new E(`${`Connection failed with status: ${e==null?`unknown`:e}`}${((r=(n=t==null?void 0:t.trim())==null?void 0:n.length)==null?0:r)>0?` (${t})`:``}. This is an unrecoverable error, retry attempts will be ignored.`,i)},e.prototype.isStatusFatal=function(e){return!!e&&e>=400&&e<500},e.prototype.on=function(e,t){this.eventEmitter.on(e,t)},e.prototype.off=function(e,t){this.eventEmitter.off(e,t)},e.prototype.clear=function(){this.eventEmitter.clear()},e.prototype.close=function(){},e.prototype.dispose=function(){this.close(),this.clear()},e}(),G=new URL(`https://client-sdk-api.configdirector.com`),K=function(){function e(e,t,n){var r,i,a,o,s,c,l=this;this.handlersMap=new Map,this.eventEmitter=new v,this.ready=!1,this.logger=(r=n==null?void 0:n.logger)==null?L():r,this.timeout=(a=(i=n==null?void 0:n.connection)==null?void 0:i.timeout)==null?3e3:a;var u=(s=this.parseUrl((o=n==null?void 0:n.connection)==null?void 0:o.url))==null?G:s;this.streaming=!1!==((c=n==null?void 0:n.connection)==null?void 0:c.streaming);var d=this.streaming?O:W;this.usageEventCollector=new H({sdkKey:e,logger:this.logger,baseUrl:u}),this.transport=new d({clientSdkKey:e,baseUrl:u,metaContext:m(m({},n==null?void 0:n.metadata),{sdkName:t.sdkName,sdkVersion:t.sdkVersion,userAgent:navigator==null?void 0:navigator.userAgent}),logger:this.logger}),this.transport.on(`configSetReceived`,function(e){var t;(t=l.readyResolve)==null||t.call(l);var n=Object.keys(e.configs);l.configSet&&e.kind!=`full`?(l.configSet.configs=m(m({},l.configSet.configs),e.configs),l.eventEmitter.emit(`configsUpdated`,{keys:n}),l.updateWatchers(e.configs)):(l.configSet=e,l.eventEmitter.emit(`configsUpdated`,{keys:n}),l.updateWatchers(e.configs)),l.logger.debug(`[ConfigDirectorClient] ConfigSet updated from server:`,{keys:n})})}return e.prototype.initialize=function(e){return h(this,void 0,void 0,function(){return g(this,function(t){switch(t.label){case 0:return[4,this.connectToTransport(e,`initialization`)];case 1:return t.sent(),[2]}})})},e.prototype.updateContext=function(e){return h(this,void 0,void 0,function(){return g(this,function(t){switch(t.label){case 0:return[4,this.connectToTransport(e,`context update`)];case 1:return t.sent(),[2]}})})},e.prototype.connectToTransport=function(e,t){return h(this,void 0,void 0,function(){var n,r,i,a,o,s=this;return g(this,function(c){switch(c.label){case 0:return c.trys.push([0,4,,5]),this.ready=!1,this.readyPromise=new Promise(function(e){s.readyResolve=e}).then(function(){s.ready=!0,s.eventEmitter.emit(`clientReady`,{action:t}),s.logger.debug(`[ConfigDirectorClient] Received initial payload from the server, client is ready`)}),n=new Date().getTime(),[4,this.transport.connect(e==null?{}:e,this.timeout)];case 1:return c.sent(),this.currentContext=e,r=new Date().getTime()-n,(i=this.timeout-r)>0?[4,Promise.race([this.readyPromise,new Promise(function(e){setTimeout(function(){return e()},i)})])]:[3,3];case 2:c.sent(),c.label=3;case 3:return this.ready||(a=this.streaming?`The client will continue to retry since there were no fatal errors detected. Configs will return the default value until the connection succeeds.`:`Since the client was configured without streaming, configs may not update and always return the default value.`,this.logger.warn(`[ConfigDirectorClient] Timed out waiting for ${t} after ${this.timeout}ms. ${a}`)),[3,5];case 4:return o=c.sent(),this.logger.error(`[ConfigDirectorClient] An error occurred during ${t}: `,o),[3,5];case 5:return[2]}})})},e.prototype.updateWatchers=function(e){var t=this;Object.values(e).forEach(function(e){return t.updateWatchersForConfig(e)})},e.prototype.updateWatchersForConfig=function(e){var t,n=this;(t=this.handlersMap.get(e.key))==null||t.forEach(function(t){var r=n.getValueFromConfigState(e.key,e,t.defaultValue);t.handler(r)})},e.prototype.watch=function(e,t,n){var r=this;this.validateDefaultValue(t);var i=this.handlersMap.get(e),a={handler:n,defaultValue:t,requestedType:typeof t};return i?i.push(a):this.handlersMap.set(e,[a]),function(){return r.unwatch(e,n)}},e.prototype.unwatch=function(e,t){var n=this.handlersMap.get(e);if(n)if(t){var r=n.findIndex(function(e){return e.handler==t});r>=0&&(n==null||n.splice(r,1))}else n.splice(0)},e.prototype.getValue=function(e,t){var n;this.validateDefaultValue(t);var r=(n=this.configSet)==null?void 0:n.configs[e];return this.getValueFromConfigState(e,r,t)},e.prototype.getValueFromConfigState=function(e,t,n){var r,i;if(!t)return this.logger.debug(`[ConfigDirectorClient] No config state found for '${e}', returning default value '${n}'`),this.usageEventCollector.evaluatedConfig({contextId:(r=this.currentContext)==null?void 0:r.id,key:e,defaultValue:n,requestedType:k(n),evaluatedValue:n,usedDefault:!0,evaluationReason:`config-state-missing`}),n;var a=function(e,t){var n,r,i=e.value,a=k(t);if(!i)return{parsedValue:t,requestedType:a,usedDefault:!0,reason:`value-missing`};if(typeof t==`string`)return{parsedValue:i,requestedType:a,usedDefault:!1,reason:`found-match`};if(typeof t==`boolean`&&e.type===`boolean`){var o=j(i),s=typeof o==`boolean`;return{parsedValue:s?o:t,requestedType:a,usedDefault:!s,reason:s?`found-match`:`invalid-boolean`}}return A(typeof t)&&e.type===`integer`?{parsedValue:(r=typeof(n=M(i))==`number`)?n:t,requestedType:a,usedDefault:!r,reason:r?`found-match`:`invalid-number`}:!A(typeof t)||e.type!==`float`&&e.type!==`enum`?{parsedValue:i,requestedType:a,usedDefault:!1,reason:`found-match`}:{parsedValue:(r=typeof(n=N(i))==`number`)?n:t,requestedType:a,usedDefault:!r,reason:r?`found-match`:`invalid-number`}}(t,n);return this.usageEventCollector.evaluatedConfig({contextId:(i=this.currentContext)==null?void 0:i.id,key:e,defaultValue:n,requestedType:a.requestedType,evaluatedValue:a.parsedValue,usedDefault:a.usedDefault,evaluationReason:a.reason}),this.logger.debug(`[ConfigDirectorClient] Evaluated '${e}' to '${a.parsedValue}'`),a.parsedValue},e.prototype.parseUrl=function(e){if(e)try{return new URL(e)}catch(t){throw new D(`Invalid base URL '${e}'. Parsing failed: ${t}`)}},e.prototype.validateDefaultValue=function(e){if(e==null)throw new D(`Invalid default value. The default value for a config must be defined and non-null.`);if(typeof e==`function`)throw new D(`Invalid default value. The default value for a config cannot be a function.`)},Object.defineProperty(e.prototype,`isReady`,{get:function(){return this.ready},enumerable:!1,configurable:!0}),e.prototype.on=function(e,t){this.eventEmitter.on(e,t)},e.prototype.off=function(e,t){this.eventEmitter.off(e,t)},e.prototype.clear=function(){this.logger.debug(`[ConfigDirectorClient] clear() has been called, removing all observers`),this.eventEmitter.clear(),this.handlersMap.clear()},e.prototype.unwatchAll=function(){this.handlersMap.clear()},e.prototype.close=function(){this.logger.debug(`[ConfigDirectorClient] close() has been called, closing connection to server`),this.transport.close(),this.ready=!1},e.prototype.dispose=function(){this.clear(),this.close()},e}();const q=(e,t)=>new K(e,{sdkName:`react-web-sdk`,sdkVersion:`0.1.4`},t),J=e.createContext({status:`loading`});var Y=class{decorateMessage(e){return`[ConfigDirector:react-web-sdk] ${e}`}};const X=e=>L(e,new Y),Z=async e=>{var t;let n=(t=e.logger)==null?X(`debug`):t,o=q(e.sdkKey,{connection:{url:e.url,timeout:e.timeout},logger:n});return await o.initialize(e.context),({children:e})=>{let[t,n]=i(()=>({client:o,status:o.isReady?`ready`:`default`}));return r(()=>{o.on(`configsUpdated`,(()=>{n(e=>d(d({},e),{},{updatedAt:new Date}))})),o.on(`clientReady`,(()=>{n(e=>d(d({},e),{},{status:`ready`}))}))}),a(J.Provider,{value:t,children:e})}};var Q=class extends t{constructor(e){var t;super(e),this.state={client:q(e.sdkKey,{connection:{url:e.url,timeout:e.timeout},logger:(t=e.logger)==null?X(`warn`):t}),status:`loading`}}async componentDidMount(){var e=this,t,n,r,i;(t=e.state.client)==null||t.on(`configsUpdated`,()=>{e.setState({updatedAt:new Date})}),(n=e.state.client)==null||n.on(`clientReady`,()=>{e.setState({status:`ready`})}),await((r=e.state.client)==null?void 0:r.initialize(e.props.context)),(i=e.state.client)!=null&&i.isReady||e.setState({status:`default`})}componentWillUnmount(){var e;(e=this.state.client)==null||e.dispose()}render(){return a(J.Provider,{value:this.state,children:this.props.children})}},te=class e extends Error{constructor(t){super(t),this.name=`ConfigDirectorReactContextError`,Object.setPrototypeOf(this,e.prototype)}};const $=()=>new te(`The ConfigDirector client was not found in the React context. Please make sure the component using this hook is inside the context of a ConfigDirectorProvider.`),ne=(e,t)=>{let r=n(J);if(!(r!=null&&r.client))throw $();return{value:r.client.getValue(e,t),readyStatus:r.status,loading:r.status===`loading`}},re=()=>{let e=n(J);if(!(e!=null&&e.client))throw $();return{updateContext:async t=>{var n;await((n=e.client)==null?void 0:n.updateContext(t))}}},ie=()=>{let e=n(J);if(!(e!=null&&e.client))throw $();return{client:e.client}};export{Q as ConfigDirectorProvider,X as createConsoleLogger,ie as useConfigDirectorClient,re as useConfigDirectorContext,ne as useConfigValue,Z as withProvider};
4
+ `&&r++}}return[t,n]}(`${o}${t}`);for(let e of n)u(e);o=r,s=!1},reset:function(e={}){o&&e.consume&&u(o),s=!0,a=void 0,c=``,l=``,o=``}}}const x=`connecting`,S=`closed`,C=()=>{};function w(e,{getStream:t}){let n=typeof e==`string`||e instanceof URL?{url:e}:e,{onMessage:r,onComment:i=C,onConnect:a=C,onDisconnect:o=C,onScheduleReconnect:s=C}=n,{fetch:c,url:l,initialLastEventId:u}=function(e){let t=e.fetch||globalThis.fetch;if(!function(e){return typeof e==`function`}(t))throw Error(`No fetch implementation provided, and one was not found on the global object.`);if(typeof AbortController!=`function`)throw Error(`Missing AbortController implementation`);let{url:n,initialLastEventId:r}=e;if(typeof n!=`string`&&!(n instanceof URL))throw Error(`Invalid URL provided - must be string or URL instance`);if(typeof r!=`string`&&r!==void 0)throw Error(`Invalid initialLastEventId provided - must be string or undefined`);return{fetch:t,url:n,initialLastEventId:r}}(n),f=d({},n.headers),p=[],m=r?[r]:[],h=ee({onEvent:function(e){typeof e.id==`string`&&(b=e.id),t=e,m.forEach(e=>e(t));var t},onRetry:function(e){w=e},onComment:i}),g,_,v=l.toString(),y=new AbortController,b=u,w=2e3,T=S;return E(),{close:D,connect:E,[Symbol.iterator]:()=>{throw Error("EventSource does not support synchronous iteration. Use `for await` instead.")},[Symbol.asyncIterator]:function(){let e=[],t=[],n=function(n){let r=e.shift();r?r({value:n,done:!1}):t.push(n)};function r(){for(m.splice(m.indexOf(n),1);e.shift(););for(;t.shift(););}return p.push(function(){let t=e.shift();t&&(t({done:!0,value:void 0}),r())}),m.push(n),{next(){return T===S?this.return():new Promise(n=>{let r=t.shift();r?n({value:r,done:!1}):e.push(n)})},return:()=>(r(),Promise.resolve({done:!0,value:void 0})),throw:e=>(r(),Promise.reject(e)),[Symbol.asyncIterator](){return this}}},get lastEventId(){return b},get url(){return v},get readyState(){return T}};function E(){g||(T=x,y=new AbortController,g=c(l,function(){let{mode:e,credentials:t,body:r,method:i,redirect:a,referrer:o,referrerPolicy:s}=n;return{mode:e,credentials:t,body:r,method:i,redirect:a,referrer:o,referrerPolicy:s,headers:d(d({Accept:`text/event-stream`},f),b?{"Last-Event-ID":b}:void 0),cache:`no-store`,signal:y.signal}}()).then(k).catch(e=>{g=null,e.name!==`AbortError`&&e.type!==`aborted`&&!y.signal.aborted&&O()}))}function D(){T=S,y.abort(),h.reset(),clearTimeout(_),p.forEach(e=>e())}function O(){s({delay:w}),!y.signal.aborted&&(T=x,_=setTimeout(E,w))}async function k(e){a(),h.reset();let{body:n,redirected:r,status:i}=e;if(i===204)return o(),void D();if(!n)throw Error(`Missing response body`);r&&(v=e.url);let s=t(n),c=new TextDecoder,l=s.getReader(),u=!0;T=`open`;do{let{done:e,value:t}=await l.read();t&&h.feed(c.decode(t,{stream:!e})),e&&(u=!1,g=null,h.reset(),O(),o())}while(u)}}const T={getStream:function(e){if(!(e instanceof ReadableStream))throw Error(`Invalid stream, expected a web ReadableStream`);return e}};var E=function(e){function t(n,r){var i=e.call(this,n)||this;return i.name=`ConfigDirectorConnectionError`,i.status=r,Object.setPrototypeOf(i,t.prototype),i}return p(t,e),t}(Error),D=function(e){function t(n){var r=e.call(this,n)||this;return r.name=`ConfigDirectorValidationError`,Object.setPrototypeOf(r,t.prototype),r}return p(t,e),t}(Error),O=function(){function e(e){this.options=e,this.eventEmitter=new v,this.options=e,this.logger=e.logger,this.url=new URL(`sse/v1`,e.baseUrl)}return e.prototype.connect=function(e,t){return h(this,void 0,void 0,function(){var n,r,i,a,o=this;return g(this,function(s){return this.eventSource&&this.close(),n=void 0,r=void 0,i=function(e,t){return h(o,void 0,void 0,function(){var i;return g(this,function(a){switch(a.label){case 0:return[4,fetch(e,t)];case 1:return i=a.sent(),n=i.status,i.ok?[3,3]:[4,i.text()];case 2:r=a.sent(),a.label=3;case 3:return[2,i]}})})},a=new Promise(function(t,a){var s;o.eventSource=(s={url:o.url,fetch:i,method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({givenContext:e,metaContext:o.options.metaContext,clientSdkKey:o.options.clientSdkKey}),onMessage:function(e){var t=e.data;o.dispatchMessage(t)},onConnect:function(){n&&o.isStatusFatal(n)?(o.close(),a(o.prepareFatalError(n,r))):(o.logger.debug(`[EventSourceTransport] Connected, status: %s`,n),t(o))},onScheduleReconnect:function(e){n&&o.isStatusFatal(n)?(o.close(),a(o.prepareFatalError(n,r))):o.logger.warn(`[EventSourceTransport] Scheduling reconnect in ${e.delay}. Response status: ${n}`)},onDisconnect:function(){o.logger.debug(`[EventSourceTransport] Disconnected`)}},w(s,T))}),[2,Promise.race([a,new Promise(function(e){setTimeout(function(){return e(o)},t)})])]})})},e.prototype.dispatchMessage=function(e){try{var t=JSON.parse(e);this.eventEmitter.emit(`configSetReceived`,t)}catch(e){this.logger.error(`[EventSourceTransport] Error parsing and dispatching config data update: `,e)}},e.prototype.prepareFatalError=function(e,t){var n,r,i=e==null?0:e;return new E(`${`Connection failed with status: ${e==null?`unknown`:e}`}${((r=(n=t==null?void 0:t.trim())==null?void 0:n.length)==null?0:r)>0?` (${t})`:``}. This is an unrecoverable error, will not attempt to reconnect.`,i)},e.prototype.isStatusFatal=function(e){return!!e&&e>=400&&e<500},e.prototype.on=function(e,t){this.eventEmitter.on(e,t)},e.prototype.off=function(e,t){this.eventEmitter.off(e,t)},e.prototype.clear=function(){this.eventEmitter.clear()},e.prototype.close=function(){var e;(e=this.eventSource)==null||e.close()},e.prototype.dispose=function(){this.close(),this.clear()},e}(),k=function(e){var t,n,r=typeof e;if(r===`object`)try{return(n=(t=e.constructor)==null?void 0:t.name)==null?r:n}catch(e){return r}else if(r===`function`)try{var i=e.name;return i?`function: ${i}`:r}catch(e){return r}return r},A=function(e){return e===`number`||e===`bigint`},j=function(e){if(e){var t=e.toLowerCase();if(t==`true`||t==`false`)return t===`true`}},M=function(e){if(e){var t=Number.parseInt(e);if(!isNaN(t)&&isFinite(t))return t}},N=function(e){if(e){var t=Number.parseFloat(e);if(!isNaN(t)&&isFinite(t))return t}},P={off:-1,error:0,warn:1,info:2,debug:3},F=function(){function e(e,t){this.level=e,this.decorator=t,this.level=e,this.decorator=t,this.dateFormatter=function(){var e={year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,timeZoneName:`short`};try{return new Intl.DateTimeFormat(void 0,m(m({},e),{fractionalSecondDigits:3}))}catch(t){return new Intl.DateTimeFormat(void 0,e)}}()}return e.prototype.debug=function(e){var t=[...arguments].slice(1);this.log.apply(this,_([console.debug,`debug`,e],t,!1))},e.prototype.info=function(e){var t=[...arguments].slice(1);this.log.apply(this,_([console.info,`info`,e],t,!1))},e.prototype.warn=function(e){var t=[...arguments].slice(1);this.log.apply(this,_([console.warn,`warn`,e],t,!1))},e.prototype.error=function(e){var t=[...arguments].slice(1);this.log.apply(this,_([console.error,`error`,e],t,!1))},e.prototype.log=function(e,t,n){for(var r,i=[],a=3;a<arguments.length;a++)i[a-3]=arguments[a];P[this.level]>=P[t]&&e.apply(void 0,_([`[${this.dateFormatter.format(new Date)}] ${(r=this.decorator)==null?void 0:r.decorateMessage(n)}`],i,!1))},e}(),I=function(){function e(){}return e.prototype.decorateMessage=function(e){return`[ConfigDirector:js-client-sdk] ${e}`},e}(),L=function(e,t){return new F(e==null?`warn`:e,t==null?new I:t)},R=function(){function e(){}return e.prototype.aggregate=function(e){var t;if(e.events.length==0)return[];for(var n=new Map,r=0,i=e.events;r<i.length;r++){var a=i[r],o=JSON.stringify(a),s=((t=n.get(o))==null?void 0:t.count)||0;n.set(o,{event:a,count:s+1})}return Array.from(n).map(function(t){var n=t[1];return{startTime:e.startTime,endTime:e.endTime,count:n.count,event:n.event}})},e}(),z=function(){function e(e){this._events=[],this._droppedEventCount=0,this.limit=e==null?1e3:e}return Object.defineProperty(e.prototype,`events`,{get:function(){return this._events},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,`reachedLimit`,{get:function(){return this._events.length>=this.limit},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,`droppedEventCount`,{get:function(){return this._droppedEventCount},enumerable:!1,configurable:!0}),e.prototype.push=function(){for(var e,t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];this.startTime||(this.startTime=new Date);var r=Math.max(0,t.length-this.limit),i=t.slice(r,t.length);if(this._droppedEventCount+=r,this._events.length+i.length>this.limit){var a=this._events.length+i.length-this.limit;this._events.splice(0,a),this._droppedEventCount+=a}return(e=this._events).push.apply(e,i)},e.prototype.takeSnapshot=function(){var e,t=new Date,n=(e=this.startTime)==null?t:e,r=this._events.splice(0),i=this._droppedEventCount;return this.startTime=void 0,this._droppedEventCount=0,{startTime:n,endTime:t,events:r,droppedCount:i}},e.prototype.clear=function(){this._events=[],this.startTime=void 0,this._droppedEventCount=0},e}(),B=function(){function e(e){this.executeRequests=!0,this.sdkKey=e.sdkKey,this.logger=e.logger,this.url=new URL(`telemetry/v1`,e.baseUrl)}return e.prototype.report=function(e){var t=e.discreteEvents,n=e.aggregatedEvents,r=e.droppedEvents;if(!this.executeRequests)return{success:!1,fatalError:!0};var i={clientSdkKey:this.sdkKey,discreteEvents:t,aggregatedEvents:n,droppedEvents:r};if(this.isReportEmpty(i))return{success:!0,fatalError:!1};var a=this.sendReport(i);return a.fatalError&&(this.executeRequests=!1),a},e.prototype.isReportEmpty=function(e){return this.isEventListEmpty(e.discreteEvents)&&this.isEventListEmpty(e.aggregatedEvents)&&this.isDroppedEventsEmpty(e.droppedEvents)},e.prototype.isDroppedEventsEmpty=function(e){var t;if(!e)return!0;var n=Object.keys(e);if(n.length==0)return!0;for(var r=0,i=n;r<i.length;r++)if(((t=e[i[r]])==null?0:t)>0)return!1;return!0},e.prototype.isEventListEmpty=function(e){var t,n,r=Object.keys(e);if(r.length==0)return!0;for(var i=0,a=r;i<a.length;i++)if(((n=(t=e[a[i]])==null?void 0:t.length)==null?0:n)>0)return!1;return!0},e.prototype.sendReport=function(e){try{return{success:navigator.sendBeacon(this.url,JSON.stringify(e)),fatalError:!1}}catch(e){return this.logger.warn(`[EventReporter] Fatal error attempting to send telemetry data: ${e}. No more telemetry data will be sent.`),{success:!1,fatalError:!0}}},e}(),V=function(e){for(var t=5381,n=0;n<e.length;n++)t=(t<<5)+t+e[n],t>>>=0;return t},H=function(){function e(e){var t=this;this.evaluationEventQueue=new z,this.aggregator=new R,this.collectEvents=!0,this.logger=e.logger,this.reporter=new B(e),this.flushIntervalDelay=3e4,this.flushTimeout=setTimeout(function(){return t.flushAndScheduleNext()},5e3);try{document.addEventListener(`visibilitychange`,function(){document.visibilityState===`hidden`&&t.flush()})}catch(e){this.logger.warn(`[TelemetryEventCollector] Could not configure 'visibilitychange' listener: `,e)}}return e.prototype.evaluatedConfig=function(e){this.collectEvents&&this.evaluationEventQueue.push(this.sanitizeEvaluatedConfigEvent(e))},e.prototype.sanitizeEvaluatedConfigEvent=function(e){return{key:e.key,type:e.type,defaultValue:this.sanitizeValue(e.defaultValue,e.type),requestedType:e.requestedType,evaluatedValue:this.sanitizeValue(e.evaluatedValue,e.type),usedDefault:e.usedDefault,evaluationReason:e.evaluationReason}},e.prototype.sanitizeValue=function(e,t){if(t===`json`)try{return n=JSON.stringify(e),V(new TextEncoder().encode(n)).toString(16).padStart(8,`0`)}catch(t){return e.toString().slice(0,500)}var n;return e.toString().slice(0,500)},e.prototype.flushAndScheduleNext=function(){var e=this;this.flush().fatalError?(this.collectEvents=!1,this.close(),this.logger.warn(`[TelemetryEventCollector] Received a fatal error from telemetry collection. No longer collecting events.`)):this.flushTimeout=setTimeout(function(){return e.flushAndScheduleNext()},this.flushIntervalDelay)},e.prototype.flush=function(){var e=this.evaluationEventQueue.takeSnapshot();return this.reporter.report({discreteEvents:{},aggregatedEvents:{evaluatedConfig:this.aggregator.aggregate(e)},droppedEvents:{evaluatedConfig:e.droppedCount}})},e.prototype.close=function(){this.collectEvents=!1,clearTimeout(this.flushTimeout),this.flush(),this.evaluationEventQueue.clear()},e.prototype.dispose=function(){this.close()},e}(),U=function(e,t,n,r){return h(void 0,void 0,void 0,function(){var i,a,o,s;return g(this,function(c){switch(c.label){case 0:i=new AbortController,a=setTimeout(function(){r.debug(`[fetchWithTimeout] Reached timeout, aborting request`),i.abort()},e),c.label=1;case 1:return c.trys.push([1,3,,4]),[4,fetch(t,m(m({},n),{signal:i.signal}))];case 2:return o=c.sent(),clearTimeout(a),[2,o];case 3:throw s=c.sent(),r.warn(`[fetchWithTimeout] Fetch error: `,s),clearTimeout(a),s;case 4:return[2]}})})},W=function(){function e(e){this.options=e,this.eventEmitter=new v,this.fatalError=!1,this.options=e,this.logger=e.logger,this.url=new URL(`pull/v1`,e.baseUrl)}return e.prototype.connect=function(e,t){return h(this,void 0,void 0,function(){var n,r,i,a,o,s,c;return g(this,function(l){switch(l.label){case 0:if(this.fatalError)return this.logger.warn(`[PullTransport] There was a prior unrecoverable error. Ignoring attempt to reconnect.`),[2,this];l.label=1;case 1:return l.trys.push([1,7,,8]),[4,U(t,this.url,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({givenContext:e,metaContext:this.options.metaContext,clientSdkKey:this.options.clientSdkKey})},this.logger)];case 2:return(n=l.sent()).ok?[3,5]:this.isStatusFatal(n.status)?(this.fatalError=!0,r=this.prepareFatalResponseStatusError,i=[n.status],[4,n.text()]):[3,4];case 3:throw r.apply(this,i.concat([l.sent()]));case 4:throw new E(`Connection failed with status: ${n.status}`,n.status);case 5:return s=(o=JSON).parse,[4,n.text()];case 6:return a=s.apply(o,[l.sent()]),this.eventEmitter.emit(`configSetReceived`,a),[2,this];case 7:throw function(e){if(e instanceof DOMException){if(e.name===`NotAllowedError`)return!0}else if(e instanceof TypeError)return!0;return!1}(c=l.sent())?(this.fatalError=!0,new E(`Connection failed with fatal error: ${c}. This is an unrecoverable error, retry attempts will be ignored.`)):c instanceof SyntaxError?new E(`Failed to parse the response from the server: ${c}`):new E(`Connection failed with error: ${c}.`);case 8:return[2]}})})},e.prototype.prepareFatalResponseStatusError=function(e,t){var n,r,i=e==null?0:e;return new E(`${`Connection failed with status: ${e==null?`unknown`:e}`}${((r=(n=t==null?void 0:t.trim())==null?void 0:n.length)==null?0:r)>0?` (${t})`:``}. This is an unrecoverable error, retry attempts will be ignored.`,i)},e.prototype.isStatusFatal=function(e){return!!e&&e>=400&&e<500},e.prototype.on=function(e,t){this.eventEmitter.on(e,t)},e.prototype.off=function(e,t){this.eventEmitter.off(e,t)},e.prototype.clear=function(){this.eventEmitter.clear()},e.prototype.close=function(){},e.prototype.dispose=function(){this.close(),this.clear()},e}(),G=new URL(`https://client-sdk-api.configdirector.com`),K=function(){function e(e,t,n){var r,i,a,o,s,c,l=this;this.handlersMap=new Map,this.eventEmitter=new v,this.ready=!1,this.logger=(r=n==null?void 0:n.logger)==null?L():r,this.timeout=(a=(i=n==null?void 0:n.connection)==null?void 0:i.timeout)==null?3e3:a;var u=(s=this.parseUrl((o=n==null?void 0:n.connection)==null?void 0:o.url))==null?G:s;this.streaming=!1!==((c=n==null?void 0:n.connection)==null?void 0:c.streaming);var d=this.streaming?O:W;this.usageEventCollector=new H({sdkKey:e,logger:this.logger,baseUrl:u}),this.transport=new d({clientSdkKey:e,baseUrl:u,metaContext:m(m({},n==null?void 0:n.metadata),{sdkName:t.sdkName,sdkVersion:t.sdkVersion,userAgent:navigator==null?void 0:navigator.userAgent}),logger:this.logger}),this.transport.on(`configSetReceived`,function(e){var t;(t=l.readyResolve)==null||t.call(l);var n=Object.keys(e.configs);l.configSet&&e.kind!=`full`?(l.configSet.configs=m(m({},l.configSet.configs),e.configs),l.eventEmitter.emit(`configsUpdated`,{keys:n}),l.updateWatchers(e.configs)):(l.configSet=e,l.eventEmitter.emit(`configsUpdated`,{keys:n}),l.updateWatchers(e.configs)),l.logger.debug(`[ConfigDirectorClient] ConfigSet updated from server:`,{keys:n})})}return e.prototype.initialize=function(e){return h(this,void 0,void 0,function(){return g(this,function(t){switch(t.label){case 0:return[4,this.connectToTransport(e,`initialization`)];case 1:return t.sent(),[2]}})})},e.prototype.updateContext=function(e){return h(this,void 0,void 0,function(){return g(this,function(t){switch(t.label){case 0:return[4,this.connectToTransport(e,`context update`)];case 1:return t.sent(),[2]}})})},e.prototype.connectToTransport=function(e,t){return h(this,void 0,void 0,function(){var n,r,i,a,o,s=this;return g(this,function(c){switch(c.label){case 0:return c.trys.push([0,4,,5]),this.ready=!1,this.readyPromise=new Promise(function(e){s.readyResolve=e}).then(function(){s.ready=!0,s.eventEmitter.emit(`clientReady`,{action:t}),s.logger.debug(`[ConfigDirectorClient] Received initial payload from the server, client is ready`)}),n=new Date().getTime(),[4,this.transport.connect(e==null?{}:e,this.timeout)];case 1:return c.sent(),this.currentContext=e,r=new Date().getTime()-n,(i=this.timeout-r)>0?[4,Promise.race([this.readyPromise,new Promise(function(e){setTimeout(function(){return e()},i)})])]:[3,3];case 2:c.sent(),c.label=3;case 3:return this.ready||(a=this.streaming?`The client will continue to retry since there were no fatal errors detected. Configs will return the default value until the connection succeeds.`:`Since the client was configured without streaming, configs may not update and always return the default value.`,this.logger.warn(`[ConfigDirectorClient] Timed out waiting for ${t} after ${this.timeout}ms. ${a}`)),[3,5];case 4:return o=c.sent(),this.logger.error(`[ConfigDirectorClient] An error occurred during ${t}: `,o),[3,5];case 5:return[2]}})})},e.prototype.updateWatchers=function(e){var t=this;Object.values(e).forEach(function(e){return t.updateWatchersForConfig(e)})},e.prototype.updateWatchersForConfig=function(e){var t,n=this;(t=this.handlersMap.get(e.key))==null||t.forEach(function(t){var r=n.getValueFromConfigState(e.key,e,t.defaultValue);t.handler(r)})},e.prototype.watch=function(e,t,n){var r=this;this.validateDefaultValue(t);var i=this.handlersMap.get(e),a={handler:n,defaultValue:t,requestedType:typeof t};return i?i.push(a):this.handlersMap.set(e,[a]),function(){return r.unwatch(e,n)}},e.prototype.unwatch=function(e,t){var n=this.handlersMap.get(e);if(n)if(t){var r=n.findIndex(function(e){return e.handler==t});r>=0&&(n==null||n.splice(r,1))}else n.splice(0)},e.prototype.getValue=function(e,t){var n;this.validateDefaultValue(t);var r=(n=this.configSet)==null?void 0:n.configs[e];return this.getValueFromConfigState(e,r,t)},e.prototype.getValueFromConfigState=function(e,t,n){var r,i;if(!t)return this.logger.debug(`[ConfigDirectorClient] No config state found for '${e}', returning default value '${n}'`),this.usageEventCollector.evaluatedConfig({contextId:(r=this.currentContext)==null?void 0:r.id,key:e,defaultValue:n,requestedType:k(n),evaluatedValue:n,usedDefault:!0,evaluationReason:`config-state-missing`}),n;var a=function(e,t){var n,r,i=e.value,a=k(t);if(!i)return{parsedValue:t,requestedType:a,usedDefault:!0,reason:`value-missing`};if(typeof t==`string`)return{parsedValue:i,requestedType:a,usedDefault:!1,reason:`found-match`};if(typeof t==`boolean`&&e.type===`boolean`){var o=j(i),s=typeof o==`boolean`;return{parsedValue:s?o:t,requestedType:a,usedDefault:!s,reason:s?`found-match`:`invalid-boolean`}}return A(typeof t)&&e.type===`integer`?{parsedValue:(r=typeof(n=M(i))==`number`)?n:t,requestedType:a,usedDefault:!r,reason:r?`found-match`:`invalid-number`}:!A(typeof t)||e.type!==`float`&&e.type!==`enum`?{parsedValue:i,requestedType:a,usedDefault:!1,reason:`found-match`}:{parsedValue:(r=typeof(n=N(i))==`number`)?n:t,requestedType:a,usedDefault:!r,reason:r?`found-match`:`invalid-number`}}(t,n);return this.usageEventCollector.evaluatedConfig({contextId:(i=this.currentContext)==null?void 0:i.id,key:e,defaultValue:n,requestedType:a.requestedType,evaluatedValue:a.parsedValue,usedDefault:a.usedDefault,evaluationReason:a.reason}),this.logger.debug(`[ConfigDirectorClient] Evaluated '${e}' to '${a.parsedValue}'`),a.parsedValue},e.prototype.parseUrl=function(e){if(e)try{return new URL(e)}catch(t){throw new D(`Invalid base URL '${e}'. Parsing failed: ${t}`)}},e.prototype.validateDefaultValue=function(e){if(e==null)throw new D(`Invalid default value. The default value for a config must be defined and non-null.`);if(typeof e==`function`)throw new D(`Invalid default value. The default value for a config cannot be a function.`)},Object.defineProperty(e.prototype,`isReady`,{get:function(){return this.ready},enumerable:!1,configurable:!0}),e.prototype.on=function(e,t){this.eventEmitter.on(e,t)},e.prototype.off=function(e,t){this.eventEmitter.off(e,t)},e.prototype.clear=function(){this.logger.debug(`[ConfigDirectorClient] clear() has been called, removing all observers`),this.eventEmitter.clear(),this.handlersMap.clear()},e.prototype.unwatchAll=function(){this.handlersMap.clear()},e.prototype.close=function(){this.logger.debug(`[ConfigDirectorClient] close() has been called, closing connection to server`),this.transport.close(),this.ready=!1},e.prototype.dispose=function(){this.clear(),this.close()},e}();const q=(e,t)=>new K(e,{sdkName:`react-web-sdk`,sdkVersion:`0.1.5`},t),J=e.createContext({status:`loading`});var Y=class{decorateMessage(e){return`[ConfigDirector:react-web-sdk] ${e}`}};const X=e=>L(e,new Y),Z=async e=>{var t;let n=(t=e.logger)==null?X(`debug`):t,o=q(e.sdkKey,{connection:{url:e.url,timeout:e.timeout},metadata:{appName:e.appName,appVersion:e.appVersion},logger:n});return await o.initialize(e.context),({children:e})=>{let[t,n]=i(()=>({client:o,status:o.isReady?`ready`:`default`}));return r(()=>{o.on(`configsUpdated`,()=>{n(e=>d(d({},e),{},{updatedAt:new Date}))}),o.on(`clientReady`,()=>{n(e=>d(d({},e),{},{status:`ready`}))})}),a(J.Provider,{value:t,children:e})}};var Q=class extends t{constructor(e){var t;super(e),this.state={client:q(e.sdkKey,{connection:{url:e.url,timeout:e.timeout},metadata:{appName:e.appName,appVersion:e.appVersion},logger:(t=e.logger)==null?X(`warn`):t}),status:`loading`}}async componentDidMount(){var e=this,t,n,r,i;(t=e.state.client)==null||t.on(`configsUpdated`,()=>{e.setState({updatedAt:new Date})}),(n=e.state.client)==null||n.on(`clientReady`,()=>{e.setState({status:`ready`})}),await((r=e.state.client)==null?void 0:r.initialize(e.props.context)),(i=e.state.client)!=null&&i.isReady||e.setState({status:`default`})}componentWillUnmount(){var e;(e=this.state.client)==null||e.dispose()}render(){return a(J.Provider,{value:this.state,children:this.props.children})}},te=class e extends Error{constructor(t){super(t),this.name=`ConfigDirectorReactContextError`,Object.setPrototypeOf(this,e.prototype)}};const $=()=>new te(`The ConfigDirector client was not found in the React context. Please make sure the component using this hook is inside the context of a ConfigDirectorProvider.`),ne=(e,t)=>{let r=n(J);if(!(r!=null&&r.client))throw $();return{value:r.client.getValue(e,t),readyStatus:r.status,loading:r.status===`loading`}},re=()=>{let e=n(J);if(!(e!=null&&e.client))throw $();return{updateContext:async t=>{var n;await((n=e.client)==null?void 0:n.updateContext(t))}}},ie=()=>{let e=n(J);if(!(e!=null&&e.client))throw $();return{client:e.client}};export{Q as ConfigDirectorProvider,X as createConsoleLogger,ie as useConfigDirectorClient,re as useConfigDirectorContext,ne as useConfigValue,Z as withProvider};
5
5
  //# sourceMappingURL=configdirector-react-client.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"configdirector-react-client.mjs","names":["createJsSdkLogger","this"],"sources":["../../js-client-core/dist/configdirector-client-core.es.js","../src/client.ts","../src/context.tsx","../src/logger.ts","../src/withProvider.tsx","../src/provider.tsx","../src/errors.ts","../src/hooks.tsx"],"sourcesContent":["var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};function e(e,n){if(\"function\"!=typeof n&&null!==n)throw new TypeError(\"Class extends value \"+String(n)+\" is not a constructor or null\");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}var n=function(){return n=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},n.apply(this,arguments)};function r(t,e,n,r){return new(n||(n=Promise))(function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function s(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}u((r=r.apply(t,e||[])).next())})}function o(t,e){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(u){return function(s){if(n)throw new TypeError(\"Generator is already executing.\");for(;a&&(a=0,s[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=e.call(t,i)}catch(t){s=[6,t],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,u])}}}function i(t,e,n){if(n||2===arguments.length)for(var r,o=0,i=e.length;o<i;o++)!r&&o in e||(r||(r=Array.prototype.slice.call(e,0,o)),r[o]=e[o]);return t.concat(r||Array.prototype.slice.call(e))}\"function\"==typeof SuppressedError&&SuppressedError;var a=function(){function t(){this.handlerMap=new Map}return t.prototype.on=function(t,e){var n=this.handlerMap.get(t);n?n.push(e):this.handlerMap.set(t,[e])},t.prototype.once=function(t,e){var n=this;this.on(t,function r(o){n.off(t,r),e.apply(n,o)})},t.prototype.off=function(t,e){var n=this.handlerMap.get(t);if(n)if(e){var r=n.indexOf(e);r>=0&&n.splice(r,1)}else this.handlerMap.set(t,[])},t.prototype.clear=function(){this.handlerMap.clear()},t.prototype.emit=function(t,e){var n=this.handlerMap.get(t);n&&n.slice().map(function(t){return t(e)})},t}();class s extends Error{constructor(t,e){super(t),this.name=\"ParseError\",this.type=e.type,this.field=e.field,this.value=e.value,this.line=e.line}}function u(t){}function c(t){if(\"function\"==typeof t)throw new TypeError(\"`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?\");const{onEvent:e=u,onError:n=u,onRetry:r=u,onComment:o}=t;let i,a=\"\",c=!0,l=\"\",f=\"\";function d(t){if(\"\"===t)return l.length>0&&e({id:i,event:f||void 0,data:l.endsWith(\"\\n\")?l.slice(0,-1):l}),i=void 0,l=\"\",void(f=\"\");if(t.startsWith(\":\"))return void(o&&o(t.slice(t.startsWith(\": \")?2:1)));const n=t.indexOf(\":\");if(-1!==n){const e=t.slice(0,n),r=\" \"===t[n+1]?2:1;return void p(e,t.slice(n+r),t)}p(t,\"\",t)}function p(t,e,o){switch(t){case\"event\":f=e;break;case\"data\":l=`${l}${e}\\n`;break;case\"id\":i=e.includes(\"\\0\")?void 0:e;break;case\"retry\":/^\\d+$/.test(e)?r(parseInt(e,10)):n(new s(`Invalid \\`retry\\` value: \"${e}\"`,{type:\"invalid-retry\",value:e,line:o}));break;default:n(new s(`Unknown field \"${t.length>20?`${t.slice(0,20)}…`:t}\"`,{type:\"unknown-field\",field:t,value:e,line:o}))}}return{feed:function(t){const e=c?t.replace(/^\\xEF\\xBB\\xBF/,\"\"):t,[n,r]=function(t){const e=[];let n=\"\",r=0;for(;r<t.length;){const o=t.indexOf(\"\\r\",r),i=t.indexOf(\"\\n\",r);let a=-1;if(-1!==o&&-1!==i?a=Math.min(o,i):-1!==o?a=o===t.length-1?-1:o:-1!==i&&(a=i),-1===a){n=t.slice(r);break}{const n=t.slice(r,a);e.push(n),r=a+1,\"\\r\"===t[r-1]&&\"\\n\"===t[r]&&r++}}return[e,n]}(`${a}${e}`);for(const t of n)d(t);a=r,c=!1},reset:function(t={}){a&&t.consume&&d(a),c=!0,i=void 0,l=\"\",f=\"\",a=\"\"}}}const l=\"connecting\",f=\"closed\",d=()=>{};function p(t,{getStream:e}){const n=\"string\"==typeof t||t instanceof URL?{url:t}:t,{onMessage:r,onComment:o=d,onConnect:i=d,onDisconnect:a=d,onScheduleReconnect:s=d}=n,{fetch:u,url:p,initialLastEventId:h}=function(t){const e=t.fetch||globalThis.fetch;if(!function(t){return\"function\"==typeof t}(e))throw new Error(\"No fetch implementation provided, and one was not found on the global object.\");if(\"function\"!=typeof AbortController)throw new Error(\"Missing AbortController implementation\");const{url:n,initialLastEventId:r}=t;if(\"string\"!=typeof n&&!(n instanceof URL))throw new Error(\"Invalid URL provided - must be string or URL instance\");if(\"string\"!=typeof r&&void 0!==r)throw new Error(\"Invalid initialLastEventId provided - must be string or undefined\");return{fetch:e,url:n,initialLastEventId:r}}(n),v={...n.headers},g=[],y=r?[r]:[],m=c({onEvent:function(t){\"string\"==typeof t.id&&(T=t.id),e=t,y.forEach(t=>t(e));var e},onRetry:function(t){S=t},onComment:o});let w,b,E=p.toString(),C=new AbortController,T=h,S=2e3,x=f;return k(),{close:D,connect:k,[Symbol.iterator]:()=>{throw new Error(\"EventSource does not support synchronous iteration. Use `for await` instead.\")},[Symbol.asyncIterator]:function(){const t=[],e=[];const n=function(n){const r=t.shift();r?r({value:n,done:!1}):e.push(n)};function r(){for(y.splice(y.indexOf(n),1);t.shift(););for(;e.shift(););}return g.push(function(){const e=t.shift();e&&(e({done:!0,value:void 0}),r())}),y.push(n),{next(){return x===f?this.return():new Promise(n=>{const r=e.shift();r?n({value:r,done:!1}):t.push(n)})},return:()=>(r(),Promise.resolve({done:!0,value:void 0})),throw:t=>(r(),Promise.reject(t)),[Symbol.asyncIterator](){return this}}},get lastEventId(){return T},get url(){return E},get readyState(){return x}};function k(){w||(x=l,C=new AbortController,w=u(p,function(){const{mode:t,credentials:e,body:r,method:o,redirect:i,referrer:a,referrerPolicy:s}=n,u={Accept:\"text/event-stream\",...v,...T?{\"Last-Event-ID\":T}:void 0};return{mode:t,credentials:e,body:r,method:o,redirect:i,referrer:a,referrerPolicy:s,headers:u,cache:\"no-store\",signal:C.signal}}()).then(O).catch(t=>{w=null,\"AbortError\"!==t.name&&\"aborted\"!==t.type&&!C.signal.aborted&&R()}))}function D(){x=f,C.abort(),m.reset(),clearTimeout(b),g.forEach(t=>t())}function R(){s({delay:S}),!C.signal.aborted&&(x=l,b=setTimeout(k,S))}async function O(t){i(),m.reset();const{body:n,redirected:r,status:o}=t;if(204===o)return a(),void D();if(!n)throw new Error(\"Missing response body\");r&&(E=t.url);const s=e(n),u=new TextDecoder,c=s.getReader();let l=!0;x=\"open\";do{const{done:t,value:e}=await c.read();e&&m.feed(u.decode(e,{stream:!t})),t&&(l=!1,w=null,m.reset(),R(),a())}while(l)}}const h={getStream:function(t){if(!(t instanceof ReadableStream))throw new Error(\"Invalid stream, expected a web ReadableStream\");return t}};var v=function(t){function n(e,r){var o=t.call(this,e)||this;return o.name=\"ConfigDirectorConnectionError\",o.status=r,Object.setPrototypeOf(o,n.prototype),o}return e(n,t),n}(Error),g=function(t){function n(e){var r=t.call(this,e)||this;return r.name=\"ConfigDirectorValidationError\",Object.setPrototypeOf(r,n.prototype),r}return e(n,t),n}(Error),y=function(){function t(t){this.options=t,this.eventEmitter=new a,this.options=t,this.logger=t.logger,this.url=new URL(\"sse/v1\",t.baseUrl)}return t.prototype.connect=function(t,e){return r(this,void 0,void 0,function(){var n,i,a,s,u=this;return o(this,function(c){return this.eventSource&&this.close(),n=void 0,i=void 0,a=function(t,e){return r(u,void 0,void 0,function(){var r;return o(this,function(o){switch(o.label){case 0:return[4,fetch(t,e)];case 1:return r=o.sent(),n=r.status,r.ok?[3,3]:[4,r.text()];case 2:i=o.sent(),o.label=3;case 3:return[2,r]}})})},s=new Promise(function(e,r){var o;u.eventSource=(o={url:u.url,fetch:a,method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({givenContext:t,metaContext:u.options.metaContext,clientSdkKey:u.options.clientSdkKey}),onMessage:function(t){var e=t.data;u.dispatchMessage(e)},onConnect:function(){n&&u.isStatusFatal(n)?(u.close(),r(u.prepareFatalError(n,i))):(u.logger.debug(\"[EventSourceTransport] Connected, status: %s\",n),e(u))},onScheduleReconnect:function(t){n&&u.isStatusFatal(n)?(u.close(),r(u.prepareFatalError(n,i))):u.logger.warn(\"[EventSourceTransport] Scheduling reconnect in \".concat(t.delay,\". Response status: \").concat(n))},onDisconnect:function(){u.logger.debug(\"[EventSourceTransport] Disconnected\")}},p(o,h))}),[2,Promise.race([s,new Promise(function(t){setTimeout(function(){return t(u)},e)})])]})})},t.prototype.dispatchMessage=function(t){try{var e=JSON.parse(t);this.eventEmitter.emit(\"configSetReceived\",e)}catch(t){this.logger.error(\"[EventSourceTransport] Error parsing and dispatching config data update: \",t)}},t.prototype.prepareFatalError=function(t,e){var n,r,o=null!=t?t:0,i=\"Connection failed with status: \".concat(null!=t?t:\"unknown\"),a=(null!==(r=null===(n=null==e?void 0:e.trim())||void 0===n?void 0:n.length)&&void 0!==r?r:0)>0?\" (\".concat(e,\")\"):\"\",s=\"\".concat(i).concat(a,\". This is an unrecoverable error, will not attempt to reconnect.\");return new v(s,o)},t.prototype.isStatusFatal=function(t){return!!t&&t>=400&&t<500},t.prototype.on=function(t,e){this.eventEmitter.on(t,e)},t.prototype.off=function(t,e){this.eventEmitter.off(t,e)},t.prototype.clear=function(){this.eventEmitter.clear()},t.prototype.close=function(){var t;null===(t=this.eventSource)||void 0===t||t.close()},t.prototype.dispose=function(){this.close(),this.clear()},t}(),m=function(t){var e,n,r=typeof t;if(\"object\"===r)try{return null!==(n=null===(e=t.constructor)||void 0===e?void 0:e.name)&&void 0!==n?n:r}catch(t){return r}else if(\"function\"===r)try{var o=t.name;return o?\"function: \".concat(o):r}catch(t){return r}return r},w=function(t){return\"number\"===t||\"bigint\"===t},b=function(t){if(t){var e=t.toLowerCase();if(\"true\"==e||\"false\"==e)return\"true\"===e}},E=function(t){if(t){var e=Number.parseInt(t);if(!isNaN(e)&&isFinite(e))return e}},C=function(t){if(t){var e=Number.parseFloat(t);if(!isNaN(e)&&isFinite(e))return e}},T={off:-1,error:0,warn:1,info:2,debug:3},S=function(){function t(t,e){this.level=t,this.decorator=e,this.level=t,this.decorator=e,this.dateFormatter=function(){var t={year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:\"short\"};try{return new Intl.DateTimeFormat(void 0,n(n({},t),{fractionalSecondDigits:3}))}catch(e){return new Intl.DateTimeFormat(void 0,t)}}()}return t.prototype.debug=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];this.log.apply(this,i([console.debug,\"debug\",t],e,!1))},t.prototype.info=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];this.log.apply(this,i([console.info,\"info\",t],e,!1))},t.prototype.warn=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];this.log.apply(this,i([console.warn,\"warn\",t],e,!1))},t.prototype.error=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];this.log.apply(this,i([console.error,\"error\",t],e,!1))},t.prototype.log=function(t,e,n){for(var r,o=[],a=3;a<arguments.length;a++)o[a-3]=arguments[a];T[this.level]>=T[e]&&t.apply(void 0,i([\"[\".concat(this.dateFormatter.format(new Date),\"] \").concat(null===(r=this.decorator)||void 0===r?void 0:r.decorateMessage(n))],o,!1))},t}(),x=function(){function t(){}return t.prototype.decorateMessage=function(t){return\"[ConfigDirector:js-client-sdk] \".concat(t)},t}(),k=function(t,e){return new S(null!=t?t:\"warn\",null!=e?e:new x)},D=function(){function t(){}return t.prototype.aggregate=function(t){var e;if(0==t.events.length)return[];for(var n=new Map,r=0,o=t.events;r<o.length;r++){var i=o[r],a=JSON.stringify(i),s=(null===(e=n.get(a))||void 0===e?void 0:e.count)||0;n.set(a,{event:i,count:s+1})}return Array.from(n).map(function(e){var n=e[1];return{startTime:t.startTime,endTime:t.endTime,count:n.count,event:n.event}})},t}(),R=function(){function t(t){this._events=[],this._droppedEventCount=0,this.limit=null!=t?t:1e3}return Object.defineProperty(t.prototype,\"events\",{get:function(){return this._events},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"reachedLimit\",{get:function(){return this._events.length>=this.limit},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"droppedEventCount\",{get:function(){return this._droppedEventCount},enumerable:!1,configurable:!0}),t.prototype.push=function(){for(var t,e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];this.startTime||(this.startTime=new Date);var r=Math.max(0,e.length-this.limit),o=e.slice(r,e.length);if(this._droppedEventCount+=r,this._events.length+o.length>this.limit){var i=this._events.length+o.length-this.limit;this._events.splice(0,i),this._droppedEventCount+=i}return(t=this._events).push.apply(t,o)},t.prototype.takeSnapshot=function(){var t,e=new Date,n=null!==(t=this.startTime)&&void 0!==t?t:e,r=this._events.splice(0),o=this._droppedEventCount;return this.startTime=void 0,this._droppedEventCount=0,{startTime:n,endTime:e,events:r,droppedCount:o}},t.prototype.clear=function(){this._events=[],this.startTime=void 0,this._droppedEventCount=0},t}(),O=function(){function t(t){this.executeRequests=!0,this.sdkKey=t.sdkKey,this.logger=t.logger,this.url=new URL(\"telemetry/v1\",t.baseUrl)}return t.prototype.report=function(t){var e=t.discreteEvents,n=t.aggregatedEvents,r=t.droppedEvents;if(!this.executeRequests)return{success:!1,fatalError:!0};var o={clientSdkKey:this.sdkKey,discreteEvents:e,aggregatedEvents:n,droppedEvents:r};if(this.isReportEmpty(o))return{success:!0,fatalError:!1};var i=this.sendReport(o);return i.fatalError&&(this.executeRequests=!1),i},t.prototype.isReportEmpty=function(t){return this.isEventListEmpty(t.discreteEvents)&&this.isEventListEmpty(t.aggregatedEvents)&&this.isDroppedEventsEmpty(t.droppedEvents)},t.prototype.isDroppedEventsEmpty=function(t){var e;if(!t)return!0;var n=Object.keys(t);if(0==n.length)return!0;for(var r=0,o=n;r<o.length;r++){if((null!==(e=t[o[r]])&&void 0!==e?e:0)>0)return!1}return!0},t.prototype.isEventListEmpty=function(t){var e,n,r=Object.keys(t);if(0==r.length)return!0;for(var o=0,i=r;o<i.length;o++){if((null!==(n=null===(e=t[i[o]])||void 0===e?void 0:e.length)&&void 0!==n?n:0)>0)return!1}return!0},t.prototype.sendReport=function(t){try{return{success:navigator.sendBeacon(this.url,JSON.stringify(t)),fatalError:!1}}catch(t){return this.logger.warn(\"[EventReporter] Fatal error attempting to send telemetry data: \".concat(t,\". No more telemetry data will be sent.\")),{success:!1,fatalError:!0}}},t}(),V=function(t){for(var e=5381,n=0;n<t.length;n++)e=(e<<5)+e+t[n],e>>>=0;return e},M=function(){function t(t){var e=this;this.evaluationEventQueue=new R,this.aggregator=new D,this.collectEvents=!0,this.logger=t.logger,this.reporter=new O(t),this.flushIntervalDelay=3e4;this.flushTimeout=setTimeout(function(){return e.flushAndScheduleNext()},5e3);try{document.addEventListener(\"visibilitychange\",function(){\"hidden\"===document.visibilityState&&e.flush()})}catch(t){this.logger.warn(\"[TelemetryEventCollector] Could not configure 'visibilitychange' listener: \",t)}}return t.prototype.evaluatedConfig=function(t){this.collectEvents&&this.evaluationEventQueue.push(this.sanitizeEvaluatedConfigEvent(t))},t.prototype.sanitizeEvaluatedConfigEvent=function(t){return{key:t.key,type:t.type,defaultValue:this.sanitizeValue(t.defaultValue,t.type),requestedType:t.requestedType,evaluatedValue:this.sanitizeValue(t.evaluatedValue,t.type),usedDefault:t.usedDefault,evaluationReason:t.evaluationReason}},t.prototype.sanitizeValue=function(t,e){if(\"json\"===e)try{var n=JSON.stringify(t);return r=n,V((new TextEncoder).encode(r)).toString(16).padStart(8,\"0\")}catch(e){return t.toString().slice(0,500)}var r;return t.toString().slice(0,500)},t.prototype.flushAndScheduleNext=function(){var t=this;this.flush().fatalError?(this.collectEvents=!1,this.close(),this.logger.warn(\"[TelemetryEventCollector] Received a fatal error from telemetry collection. No longer collecting events.\")):this.flushTimeout=setTimeout(function(){return t.flushAndScheduleNext()},this.flushIntervalDelay)},t.prototype.flush=function(){var t=this.evaluationEventQueue.takeSnapshot();return this.reporter.report({discreteEvents:{},aggregatedEvents:{evaluatedConfig:this.aggregator.aggregate(t)},droppedEvents:{evaluatedConfig:t.droppedCount}})},t.prototype.close=function(){this.collectEvents=!1,clearTimeout(this.flushTimeout),this.flush(),this.evaluationEventQueue.clear()},t.prototype.dispose=function(){this.close()},t}(),P=function(t,e,i,a){return r(void 0,void 0,void 0,function(){var r,s,u,c;return o(this,function(o){switch(o.label){case 0:r=new AbortController,s=setTimeout(function(){a.debug(\"[fetchWithTimeout] Reached timeout, aborting request\"),r.abort()},t),o.label=1;case 1:return o.trys.push([1,3,,4]),[4,fetch(e,n(n({},i),{signal:r.signal}))];case 2:return u=o.sent(),clearTimeout(s),[2,u];case 3:throw c=o.sent(),a.warn(\"[fetchWithTimeout] Fetch error: \",c),clearTimeout(s),c;case 4:return[2]}})})},F=function(){function t(t){this.options=t,this.eventEmitter=new a,this.fatalError=!1,this.options=t,this.logger=t.logger,this.url=new URL(\"pull/v1\",t.baseUrl)}return t.prototype.connect=function(t,e){return r(this,void 0,void 0,function(){var n,r,i,a,s,u,c;return o(this,function(o){switch(o.label){case 0:if(this.fatalError)return this.logger.warn(\"[PullTransport] There was a prior unrecoverable error. Ignoring attempt to reconnect.\"),[2,this];o.label=1;case 1:return o.trys.push([1,7,,8]),[4,P(e,this.url,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({givenContext:t,metaContext:this.options.metaContext,clientSdkKey:this.options.clientSdkKey})},this.logger)];case 2:return(n=o.sent()).ok?[3,5]:this.isStatusFatal(n.status)?(this.fatalError=!0,r=this.prepareFatalResponseStatusError,i=[n.status],[4,n.text()]):[3,4];case 3:throw r.apply(this,i.concat([o.sent()]));case 4:throw new v(\"Connection failed with status: \".concat(n.status),n.status);case 5:return u=(s=JSON).parse,[4,n.text()];case 6:return a=u.apply(s,[o.sent()]),this.eventEmitter.emit(\"configSetReceived\",a),[2,this];case 7:throw function(t){if(t instanceof DOMException){if(\"NotAllowedError\"===t.name)return!0}else if(t instanceof TypeError)return!0;return!1}(c=o.sent())?(this.fatalError=!0,new v(\"Connection failed with fatal error: \".concat(c,\". This is an unrecoverable error, retry attempts will be ignored.\"))):c instanceof SyntaxError?new v(\"Failed to parse the response from the server: \".concat(c)):new v(\"Connection failed with error: \".concat(c,\".\"));case 8:return[2]}})})},t.prototype.prepareFatalResponseStatusError=function(t,e){var n,r,o=null!=t?t:0,i=\"Connection failed with status: \".concat(null!=t?t:\"unknown\"),a=(null!==(r=null===(n=null==e?void 0:e.trim())||void 0===n?void 0:n.length)&&void 0!==r?r:0)>0?\" (\".concat(e,\")\"):\"\",s=\"\".concat(i).concat(a,\". This is an unrecoverable error, retry attempts will be ignored.\");return new v(s,o)},t.prototype.isStatusFatal=function(t){return!!t&&t>=400&&t<500},t.prototype.on=function(t,e){this.eventEmitter.on(t,e)},t.prototype.off=function(t,e){this.eventEmitter.off(t,e)},t.prototype.clear=function(){this.eventEmitter.clear()},t.prototype.close=function(){},t.prototype.dispose=function(){this.close(),this.clear()},t}(),I=new URL(\"https://client-sdk-api.configdirector.com\"),j=function(){function t(t,e,r){var o,i,s,u,c,l,f=this;this.handlersMap=new Map,this.eventEmitter=new a,this.ready=!1,this.logger=null!==(o=null==r?void 0:r.logger)&&void 0!==o?o:k(),this.timeout=null!==(s=null===(i=null==r?void 0:r.connection)||void 0===i?void 0:i.timeout)&&void 0!==s?s:3e3;var d=null!==(c=this.parseUrl(null===(u=null==r?void 0:r.connection)||void 0===u?void 0:u.url))&&void 0!==c?c:I;this.streaming=!1!==(null===(l=null==r?void 0:r.connection)||void 0===l?void 0:l.streaming);var p=this.streaming?y:F;this.usageEventCollector=new M({sdkKey:t,logger:this.logger,baseUrl:d}),this.transport=new p({clientSdkKey:t,baseUrl:d,metaContext:n(n({},null==r?void 0:r.metadata),{sdkName:e.sdkName,sdkVersion:e.sdkVersion,userAgent:null===navigator||void 0===navigator?void 0:navigator.userAgent}),logger:this.logger}),this.transport.on(\"configSetReceived\",function(t){var e;null===(e=f.readyResolve)||void 0===e||e.call(f);var r=Object.keys(t.configs);f.configSet&&\"full\"!=t.kind?(f.configSet.configs=n(n({},f.configSet.configs),t.configs),f.eventEmitter.emit(\"configsUpdated\",{keys:r}),f.updateWatchers(t.configs)):(f.configSet=t,f.eventEmitter.emit(\"configsUpdated\",{keys:r}),f.updateWatchers(t.configs)),f.logger.debug(\"[ConfigDirectorClient] ConfigSet updated from server:\",{keys:r})})}return t.prototype.initialize=function(t){return r(this,void 0,void 0,function(){return o(this,function(e){switch(e.label){case 0:return[4,this.connectToTransport(t,\"initialization\")];case 1:return e.sent(),[2]}})})},t.prototype.updateContext=function(t){return r(this,void 0,void 0,function(){return o(this,function(e){switch(e.label){case 0:return[4,this.connectToTransport(t,\"context update\")];case 1:return e.sent(),[2]}})})},t.prototype.connectToTransport=function(t,e){return r(this,void 0,void 0,function(){var n,r,i,a,s,u=this;return o(this,function(o){switch(o.label){case 0:return o.trys.push([0,4,,5]),this.ready=!1,this.readyPromise=new Promise(function(t){u.readyResolve=t}).then(function(){u.ready=!0,u.eventEmitter.emit(\"clientReady\",{action:e}),u.logger.debug(\"[ConfigDirectorClient] Received initial payload from the server, client is ready\")}),n=(new Date).getTime(),[4,this.transport.connect(null!=t?t:{},this.timeout)];case 1:return o.sent(),this.currentContext=t,r=(new Date).getTime()-n,(i=this.timeout-r)>0?[4,Promise.race([this.readyPromise,new Promise(function(t){setTimeout(function(){return t()},i)})])]:[3,3];case 2:o.sent(),o.label=3;case 3:return this.ready||(a=this.streaming?\"The client will continue to retry since there were no fatal errors detected. Configs will return the default value until the connection succeeds.\":\"Since the client was configured without streaming, configs may not update and always return the default value.\",this.logger.warn(\"[ConfigDirectorClient] Timed out waiting for \".concat(e,\" after \").concat(this.timeout,\"ms. \").concat(a))),[3,5];case 4:return s=o.sent(),this.logger.error(\"[ConfigDirectorClient] An error occurred during \".concat(e,\": \"),s),[3,5];case 5:return[2]}})})},t.prototype.updateWatchers=function(t){var e=this;Object.values(t).forEach(function(t){return e.updateWatchersForConfig(t)})},t.prototype.updateWatchersForConfig=function(t){var e,n=this;null===(e=this.handlersMap.get(t.key))||void 0===e||e.forEach(function(e){var r=n.getValueFromConfigState(t.key,t,e.defaultValue);e.handler(r)})},t.prototype.watch=function(t,e,n){var r=this;this.validateDefaultValue(e);var o=this.handlersMap.get(t),i={handler:n,defaultValue:e,requestedType:typeof e};return o?o.push(i):this.handlersMap.set(t,[i]),function(){return r.unwatch(t,n)}},t.prototype.unwatch=function(t,e){var n=this.handlersMap.get(t);if(n)if(e){var r=n.findIndex(function(t){return t.handler==e});r>=0&&(null==n||n.splice(r,1))}else n.splice(0)},t.prototype.getValue=function(t,e){var n;this.validateDefaultValue(e);var r=null===(n=this.configSet)||void 0===n?void 0:n.configs[t];return this.getValueFromConfigState(t,r,e)},t.prototype.getValueFromConfigState=function(t,e,n){var r,o;if(!e)return this.logger.debug(\"[ConfigDirectorClient] No config state found for '\".concat(t,\"', returning default value '\").concat(n,\"'\")),this.usageEventCollector.evaluatedConfig({contextId:null===(r=this.currentContext)||void 0===r?void 0:r.id,key:t,defaultValue:n,requestedType:m(n),evaluatedValue:n,usedDefault:!0,evaluationReason:\"config-state-missing\"}),n;var i=function(t,e){var n,r,o=t.value,i=m(e);if(!o)return{parsedValue:e,requestedType:i,usedDefault:!0,reason:\"value-missing\"};if(\"string\"==typeof e)return{parsedValue:o,requestedType:i,usedDefault:!1,reason:\"found-match\"};if(\"boolean\"==typeof e&&\"boolean\"===t.type){var a=b(o),s=\"boolean\"==typeof a;return{parsedValue:s?a:e,requestedType:i,usedDefault:!s,reason:s?\"found-match\":\"invalid-boolean\"}}return w(typeof e)&&\"integer\"===t.type?{parsedValue:(r=\"number\"==typeof(n=E(o)))?n:e,requestedType:i,usedDefault:!r,reason:r?\"found-match\":\"invalid-number\"}:!w(typeof e)||\"float\"!==t.type&&\"enum\"!==t.type?{parsedValue:o,requestedType:i,usedDefault:!1,reason:\"found-match\"}:{parsedValue:(r=\"number\"==typeof(n=C(o)))?n:e,requestedType:i,usedDefault:!r,reason:r?\"found-match\":\"invalid-number\"}}(e,n);return this.usageEventCollector.evaluatedConfig({contextId:null===(o=this.currentContext)||void 0===o?void 0:o.id,key:t,defaultValue:n,requestedType:i.requestedType,evaluatedValue:i.parsedValue,usedDefault:i.usedDefault,evaluationReason:i.reason}),this.logger.debug(\"[ConfigDirectorClient] Evaluated '\".concat(t,\"' to '\").concat(i.parsedValue,\"'\")),i.parsedValue},t.prototype.parseUrl=function(t){if(t)try{return new URL(t)}catch(e){throw new g(\"Invalid base URL '\".concat(t,\"'. Parsing failed: \").concat(e))}},t.prototype.validateDefaultValue=function(t){if(null==t)throw new g(\"Invalid default value. The default value for a config must be defined and non-null.\");if(\"function\"==typeof t)throw new g(\"Invalid default value. The default value for a config cannot be a function.\")},Object.defineProperty(t.prototype,\"isReady\",{get:function(){return this.ready},enumerable:!1,configurable:!0}),t.prototype.on=function(t,e){this.eventEmitter.on(t,e)},t.prototype.off=function(t,e){this.eventEmitter.off(t,e)},t.prototype.clear=function(){this.logger.debug(\"[ConfigDirectorClient] clear() has been called, removing all observers\"),this.eventEmitter.clear(),this.handlersMap.clear()},t.prototype.unwatchAll=function(){this.handlersMap.clear()},t.prototype.close=function(){this.logger.debug(\"[ConfigDirectorClient] close() has been called, closing connection to server\"),this.transport.close(),this.ready=!1},t.prototype.dispose=function(){this.clear(),this.close()},t}();export{j as DefaultConfigDirectorClient,S as DefaultConsoleLogger,M as TelemetryEventCollector,k as createDefaultLogger};\n//# sourceMappingURL=configdirector-client-core.es.js.map\n","import {\n ConfigDirectorClient,\n ConfigDirectorClientOptions,\n DefaultConfigDirectorClient\n} from \"@configdirector/client-core\";\n\nexport const createClient = (\n clientSdkKey: string,\n clientOptions?: ConfigDirectorClientOptions,\n): ConfigDirectorClient => {\n return new DefaultConfigDirectorClient(\n clientSdkKey,\n { sdkName: \"react-web-sdk\", sdkVersion: \"__VERSION__\" },\n clientOptions,\n );\n};\n\n","import React from \"react\";\nimport { ConfigDirectorContextData } from \"./types\";\n\nconst createReactContext = () => React.createContext<ConfigDirectorContextData>({status: \"loading\"});\nexport const reactContext = createReactContext();\n","import {\n type ConfigDirectorLoggingLevel,\n createDefaultLogger as createJsSdkLogger,\n ConfigDirectorLogMessageDecorator,\n ConfigDirectorLogger,\n} from \"@configdirector/client-core\";\n\nclass MessageDecorator implements ConfigDirectorLogMessageDecorator {\n decorateMessage(message: string): string {\n return `[ConfigDirector:react-web-sdk] ${message}`;\n }\n}\n\nexport const createConsoleLogger = (level: ConfigDirectorLoggingLevel): ConfigDirectorLogger => {\n return createJsSdkLogger(level, new MessageDecorator());\n};\n","import { createClient } from \"./client\";\nimport { useEffect, useState, type ReactNode } from \"react\";\nimport { reactContext } from \"./context\";\nimport { createConsoleLogger } from \"./logger\";\nimport { ConfigDirectorProviderOptions, ConfigDirectorProviderState } from \"./types\";\n\nexport const withProvider = async (options: ConfigDirectorProviderOptions) => {\n const logger = options.logger ?? createConsoleLogger(\"debug\");\n const client = createClient(options.sdkKey, {\n connection: { url: options.url, timeout: options.timeout },\n logger: logger,\n });\n await client.initialize(options.context);\n\n const ConfigDirectorProvider = ({ children }: { children: ReactNode }) => {\n const [data, setData] = useState<ConfigDirectorProviderState>(() => ({\n client,\n status: client.isReady ? \"ready\" : \"default\",\n }));\n\n useEffect(() => {\n client.on(\"configsUpdated\", (() => {\n setData((prevState) => ({ ...prevState, updatedAt: new Date() }));\n }));\n client.on(\"clientReady\", (() => {\n setData((prevState) => ({ ...prevState, status: \"ready\" }));\n }));\n });\n\n return (\n <reactContext.Provider value={data}>{children}</reactContext.Provider>\n );\n };\n\n return ConfigDirectorProvider;\n};\n","import { createClient } from \"./client\";\nimport { reactContext } from \"./context\";\nimport { createConsoleLogger } from \"./logger\";\nimport { Component, type PropsWithChildren } from \"react\";\nimport { ConfigDirectorProviderOptions, ConfigDirectorProviderState } from \"./types\";\n\nexport class ConfigDirectorProvider extends Component<\n PropsWithChildren<ConfigDirectorProviderOptions>,\n ConfigDirectorProviderState\n> {\n constructor(props: ConfigDirectorProviderOptions) {\n super(props);\n\n const client = createClient(props.sdkKey, {\n connection: { url: props.url, timeout: props.timeout },\n logger: props.logger ?? createConsoleLogger(\"warn\"),\n });\n\n this.state = { client, status: \"loading\" };\n }\n\n override async componentDidMount(): Promise<void> {\n this.state.client?.on(\"configsUpdated\", () => {\n this.setState({ updatedAt: new Date() });\n });\n this.state.client?.on(\"clientReady\", () => {\n this.setState({ status: \"ready\" });\n });\n await this.state.client?.initialize(this.props.context);\n if (!this.state.client?.isReady) {\n this.setState({ status: \"default\" });\n }\n }\n\n override componentWillUnmount(): void {\n this.state.client?.dispose();\n }\n\n override render() {\n return (\n <reactContext.Provider value={this.state}>\n {this.props.children}\n </reactContext.Provider>\n );\n }\n}\n","export class ConfigDirectorReactContextError extends Error {\n public override readonly name: string = \"ConfigDirectorReactContextError\";\n\n constructor(message: string) {\n super(message);\n\n Object.setPrototypeOf(this, ConfigDirectorReactContextError.prototype);\n }\n}\n","\"use client\";\n\nimport { useContext } from \"react\";\nimport { reactContext } from \"./context\";\nimport type {\n ConfigDirectorContext,\n ConfigValueType,\n} from \"@configdirector/client-sdk\";\nimport { ConfigDirectorReactContextError } from \"./errors\";\nimport { ClientStatus } from \"./types\";\n\nconst noContextError = () => {\n return new ConfigDirectorReactContextError(\"The ConfigDirector client was not found in the React context. Please make sure the component using this hook is inside the context of a ConfigDirectorProvider.\");\n};\n\nconst useConfigValue = <T extends ConfigValueType>(\n key: string,\n defaultValue: T,\n): {\n value: T;\n readyStatus: ClientStatus;\n loading: boolean;\n} => {\n const configDirectorReactContext = useContext(reactContext);\n if (!configDirectorReactContext?.client) {\n throw noContextError();\n }\n\n const value = configDirectorReactContext.client.getValue(key, defaultValue);\n\n return { value, readyStatus: configDirectorReactContext.status, loading: configDirectorReactContext.status === \"loading\" };\n};\n\nconst useConfigDirectorContext = () => {\n const configDirectorReactContext = useContext(reactContext);\n if (!configDirectorReactContext?.client) {\n throw noContextError();\n }\n\n const updateContext = async (context: ConfigDirectorContext) => {\n await configDirectorReactContext.client?.updateContext(context);\n };\n\n return { updateContext };\n};\n\nconst useConfigDirectorClient = () => {\n const configDirectorReactContext = useContext(reactContext);\n if (!configDirectorReactContext?.client) {\n throw noContextError();\n }\n\n return { client: configDirectorReactContext.client };\n};\n\nexport { useConfigValue, useConfigDirectorContext, useConfigDirectorClient };\n"],"mappings":"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"}
1
+ {"version":3,"file":"configdirector-react-client.mjs","names":["createJsSdkLogger","this"],"sources":["../../js-client-core/dist/configdirector-client-core.es.js","../src/client.ts","../src/context.tsx","../src/logger.ts","../src/withProvider.tsx","../src/provider.tsx","../src/errors.ts","../src/hooks.tsx"],"sourcesContent":["var t=function(e,n){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])},t(e,n)};function e(e,n){if(\"function\"!=typeof n&&null!==n)throw new TypeError(\"Class extends value \"+String(n)+\" is not a constructor or null\");function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}var n=function(){return n=Object.assign||function(t){for(var e,n=1,r=arguments.length;n<r;n++)for(var o in e=arguments[n])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},n.apply(this,arguments)};function r(t,e,n,r){return new(n||(n=Promise))(function(o,i){function a(t){try{u(r.next(t))}catch(t){i(t)}}function s(t){try{u(r.throw(t))}catch(t){i(t)}}function u(t){var e;t.done?o(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}u((r=r.apply(t,e||[])).next())})}function o(t,e){var n,r,o,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},a=Object.create((\"function\"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(u){return function(s){if(n)throw new TypeError(\"Generator is already executing.\");for(;a&&(a=0,s[0]&&(i=0)),i;)try{if(n=1,r&&(o=2&s[0]?r.return:s[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,s[1])).done)return o;switch(r=0,o&&(s=[2&s[0],o.value]),s[0]){case 0:case 1:o=s;break;case 4:return i.label++,{value:s[1],done:!1};case 5:i.label++,r=s[1],s=[0];continue;case 7:s=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==s[0]&&2!==s[0])){i=0;continue}if(3===s[0]&&(!o||s[1]>o[0]&&s[1]<o[3])){i.label=s[1];break}if(6===s[0]&&i.label<o[1]){i.label=o[1],o=s;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(s);break}o[2]&&i.ops.pop(),i.trys.pop();continue}s=e.call(t,i)}catch(t){s=[6,t],r=0}finally{n=o=0}if(5&s[0])throw s[1];return{value:s[0]?s[1]:void 0,done:!0}}([s,u])}}}function i(t,e,n){if(n||2===arguments.length)for(var r,o=0,i=e.length;o<i;o++)!r&&o in e||(r||(r=Array.prototype.slice.call(e,0,o)),r[o]=e[o]);return t.concat(r||Array.prototype.slice.call(e))}\"function\"==typeof SuppressedError&&SuppressedError;var a=function(){function t(){this.handlerMap=new Map}return t.prototype.on=function(t,e){var n=this.handlerMap.get(t);n?n.push(e):this.handlerMap.set(t,[e])},t.prototype.once=function(t,e){var n=this;this.on(t,function r(o){n.off(t,r),e.apply(n,o)})},t.prototype.off=function(t,e){var n=this.handlerMap.get(t);if(n)if(e){var r=n.indexOf(e);r>=0&&n.splice(r,1)}else this.handlerMap.set(t,[])},t.prototype.clear=function(){this.handlerMap.clear()},t.prototype.emit=function(t,e){var n=this.handlerMap.get(t);n&&n.slice().map(function(t){return t(e)})},t}();class s extends Error{constructor(t,e){super(t),this.name=\"ParseError\",this.type=e.type,this.field=e.field,this.value=e.value,this.line=e.line}}function u(t){}function c(t){if(\"function\"==typeof t)throw new TypeError(\"`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?\");const{onEvent:e=u,onError:n=u,onRetry:r=u,onComment:o}=t;let i,a=\"\",c=!0,l=\"\",f=\"\";function d(t){if(\"\"===t)return l.length>0&&e({id:i,event:f||void 0,data:l.endsWith(\"\\n\")?l.slice(0,-1):l}),i=void 0,l=\"\",void(f=\"\");if(t.startsWith(\":\"))return void(o&&o(t.slice(t.startsWith(\": \")?2:1)));const n=t.indexOf(\":\");if(-1!==n){const e=t.slice(0,n),r=\" \"===t[n+1]?2:1;return void p(e,t.slice(n+r),t)}p(t,\"\",t)}function p(t,e,o){switch(t){case\"event\":f=e;break;case\"data\":l=`${l}${e}\\n`;break;case\"id\":i=e.includes(\"\\0\")?void 0:e;break;case\"retry\":/^\\d+$/.test(e)?r(parseInt(e,10)):n(new s(`Invalid \\`retry\\` value: \"${e}\"`,{type:\"invalid-retry\",value:e,line:o}));break;default:n(new s(`Unknown field \"${t.length>20?`${t.slice(0,20)}…`:t}\"`,{type:\"unknown-field\",field:t,value:e,line:o}))}}return{feed:function(t){const e=c?t.replace(/^\\xEF\\xBB\\xBF/,\"\"):t,[n,r]=function(t){const e=[];let n=\"\",r=0;for(;r<t.length;){const o=t.indexOf(\"\\r\",r),i=t.indexOf(\"\\n\",r);let a=-1;if(-1!==o&&-1!==i?a=Math.min(o,i):-1!==o?a=o===t.length-1?-1:o:-1!==i&&(a=i),-1===a){n=t.slice(r);break}{const n=t.slice(r,a);e.push(n),r=a+1,\"\\r\"===t[r-1]&&\"\\n\"===t[r]&&r++}}return[e,n]}(`${a}${e}`);for(const t of n)d(t);a=r,c=!1},reset:function(t={}){a&&t.consume&&d(a),c=!0,i=void 0,l=\"\",f=\"\",a=\"\"}}}const l=\"connecting\",f=\"closed\",d=()=>{};function p(t,{getStream:e}){const n=\"string\"==typeof t||t instanceof URL?{url:t}:t,{onMessage:r,onComment:o=d,onConnect:i=d,onDisconnect:a=d,onScheduleReconnect:s=d}=n,{fetch:u,url:p,initialLastEventId:h}=function(t){const e=t.fetch||globalThis.fetch;if(!function(t){return\"function\"==typeof t}(e))throw new Error(\"No fetch implementation provided, and one was not found on the global object.\");if(\"function\"!=typeof AbortController)throw new Error(\"Missing AbortController implementation\");const{url:n,initialLastEventId:r}=t;if(\"string\"!=typeof n&&!(n instanceof URL))throw new Error(\"Invalid URL provided - must be string or URL instance\");if(\"string\"!=typeof r&&void 0!==r)throw new Error(\"Invalid initialLastEventId provided - must be string or undefined\");return{fetch:e,url:n,initialLastEventId:r}}(n),v={...n.headers},g=[],y=r?[r]:[],m=c({onEvent:function(t){\"string\"==typeof t.id&&(T=t.id),e=t,y.forEach(t=>t(e));var e},onRetry:function(t){S=t},onComment:o});let w,b,E=p.toString(),C=new AbortController,T=h,S=2e3,x=f;return k(),{close:D,connect:k,[Symbol.iterator]:()=>{throw new Error(\"EventSource does not support synchronous iteration. Use `for await` instead.\")},[Symbol.asyncIterator]:function(){const t=[],e=[];const n=function(n){const r=t.shift();r?r({value:n,done:!1}):e.push(n)};function r(){for(y.splice(y.indexOf(n),1);t.shift(););for(;e.shift(););}return g.push(function(){const e=t.shift();e&&(e({done:!0,value:void 0}),r())}),y.push(n),{next(){return x===f?this.return():new Promise(n=>{const r=e.shift();r?n({value:r,done:!1}):t.push(n)})},return:()=>(r(),Promise.resolve({done:!0,value:void 0})),throw:t=>(r(),Promise.reject(t)),[Symbol.asyncIterator](){return this}}},get lastEventId(){return T},get url(){return E},get readyState(){return x}};function k(){w||(x=l,C=new AbortController,w=u(p,function(){const{mode:t,credentials:e,body:r,method:o,redirect:i,referrer:a,referrerPolicy:s}=n,u={Accept:\"text/event-stream\",...v,...T?{\"Last-Event-ID\":T}:void 0};return{mode:t,credentials:e,body:r,method:o,redirect:i,referrer:a,referrerPolicy:s,headers:u,cache:\"no-store\",signal:C.signal}}()).then(O).catch(t=>{w=null,\"AbortError\"!==t.name&&\"aborted\"!==t.type&&!C.signal.aborted&&R()}))}function D(){x=f,C.abort(),m.reset(),clearTimeout(b),g.forEach(t=>t())}function R(){s({delay:S}),!C.signal.aborted&&(x=l,b=setTimeout(k,S))}async function O(t){i(),m.reset();const{body:n,redirected:r,status:o}=t;if(204===o)return a(),void D();if(!n)throw new Error(\"Missing response body\");r&&(E=t.url);const s=e(n),u=new TextDecoder,c=s.getReader();let l=!0;x=\"open\";do{const{done:t,value:e}=await c.read();e&&m.feed(u.decode(e,{stream:!t})),t&&(l=!1,w=null,m.reset(),R(),a())}while(l)}}const h={getStream:function(t){if(!(t instanceof ReadableStream))throw new Error(\"Invalid stream, expected a web ReadableStream\");return t}};var v=function(t){function n(e,r){var o=t.call(this,e)||this;return o.name=\"ConfigDirectorConnectionError\",o.status=r,Object.setPrototypeOf(o,n.prototype),o}return e(n,t),n}(Error),g=function(t){function n(e){var r=t.call(this,e)||this;return r.name=\"ConfigDirectorValidationError\",Object.setPrototypeOf(r,n.prototype),r}return e(n,t),n}(Error),y=function(){function t(t){this.options=t,this.eventEmitter=new a,this.options=t,this.logger=t.logger,this.url=new URL(\"sse/v1\",t.baseUrl)}return t.prototype.connect=function(t,e){return r(this,void 0,void 0,function(){var n,i,a,s,u=this;return o(this,function(c){return this.eventSource&&this.close(),n=void 0,i=void 0,a=function(t,e){return r(u,void 0,void 0,function(){var r;return o(this,function(o){switch(o.label){case 0:return[4,fetch(t,e)];case 1:return r=o.sent(),n=r.status,r.ok?[3,3]:[4,r.text()];case 2:i=o.sent(),o.label=3;case 3:return[2,r]}})})},s=new Promise(function(e,r){var o;u.eventSource=(o={url:u.url,fetch:a,method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({givenContext:t,metaContext:u.options.metaContext,clientSdkKey:u.options.clientSdkKey}),onMessage:function(t){var e=t.data;u.dispatchMessage(e)},onConnect:function(){n&&u.isStatusFatal(n)?(u.close(),r(u.prepareFatalError(n,i))):(u.logger.debug(\"[EventSourceTransport] Connected, status: %s\",n),e(u))},onScheduleReconnect:function(t){n&&u.isStatusFatal(n)?(u.close(),r(u.prepareFatalError(n,i))):u.logger.warn(\"[EventSourceTransport] Scheduling reconnect in \".concat(t.delay,\". Response status: \").concat(n))},onDisconnect:function(){u.logger.debug(\"[EventSourceTransport] Disconnected\")}},p(o,h))}),[2,Promise.race([s,new Promise(function(t){setTimeout(function(){return t(u)},e)})])]})})},t.prototype.dispatchMessage=function(t){try{var e=JSON.parse(t);this.eventEmitter.emit(\"configSetReceived\",e)}catch(t){this.logger.error(\"[EventSourceTransport] Error parsing and dispatching config data update: \",t)}},t.prototype.prepareFatalError=function(t,e){var n,r,o=null!=t?t:0,i=\"Connection failed with status: \".concat(null!=t?t:\"unknown\"),a=(null!==(r=null===(n=null==e?void 0:e.trim())||void 0===n?void 0:n.length)&&void 0!==r?r:0)>0?\" (\".concat(e,\")\"):\"\",s=\"\".concat(i).concat(a,\". This is an unrecoverable error, will not attempt to reconnect.\");return new v(s,o)},t.prototype.isStatusFatal=function(t){return!!t&&t>=400&&t<500},t.prototype.on=function(t,e){this.eventEmitter.on(t,e)},t.prototype.off=function(t,e){this.eventEmitter.off(t,e)},t.prototype.clear=function(){this.eventEmitter.clear()},t.prototype.close=function(){var t;null===(t=this.eventSource)||void 0===t||t.close()},t.prototype.dispose=function(){this.close(),this.clear()},t}(),m=function(t){var e,n,r=typeof t;if(\"object\"===r)try{return null!==(n=null===(e=t.constructor)||void 0===e?void 0:e.name)&&void 0!==n?n:r}catch(t){return r}else if(\"function\"===r)try{var o=t.name;return o?\"function: \".concat(o):r}catch(t){return r}return r},w=function(t){return\"number\"===t||\"bigint\"===t},b=function(t){if(t){var e=t.toLowerCase();if(\"true\"==e||\"false\"==e)return\"true\"===e}},E=function(t){if(t){var e=Number.parseInt(t);if(!isNaN(e)&&isFinite(e))return e}},C=function(t){if(t){var e=Number.parseFloat(t);if(!isNaN(e)&&isFinite(e))return e}},T={off:-1,error:0,warn:1,info:2,debug:3},S=function(){function t(t,e){this.level=t,this.decorator=e,this.level=t,this.decorator=e,this.dateFormatter=function(){var t={year:\"numeric\",month:\"2-digit\",day:\"2-digit\",hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",timeZoneName:\"short\"};try{return new Intl.DateTimeFormat(void 0,n(n({},t),{fractionalSecondDigits:3}))}catch(e){return new Intl.DateTimeFormat(void 0,t)}}()}return t.prototype.debug=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];this.log.apply(this,i([console.debug,\"debug\",t],e,!1))},t.prototype.info=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];this.log.apply(this,i([console.info,\"info\",t],e,!1))},t.prototype.warn=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];this.log.apply(this,i([console.warn,\"warn\",t],e,!1))},t.prototype.error=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];this.log.apply(this,i([console.error,\"error\",t],e,!1))},t.prototype.log=function(t,e,n){for(var r,o=[],a=3;a<arguments.length;a++)o[a-3]=arguments[a];T[this.level]>=T[e]&&t.apply(void 0,i([\"[\".concat(this.dateFormatter.format(new Date),\"] \").concat(null===(r=this.decorator)||void 0===r?void 0:r.decorateMessage(n))],o,!1))},t}(),x=function(){function t(){}return t.prototype.decorateMessage=function(t){return\"[ConfigDirector:js-client-sdk] \".concat(t)},t}(),k=function(t,e){return new S(null!=t?t:\"warn\",null!=e?e:new x)},D=function(){function t(){}return t.prototype.aggregate=function(t){var e;if(0==t.events.length)return[];for(var n=new Map,r=0,o=t.events;r<o.length;r++){var i=o[r],a=JSON.stringify(i),s=(null===(e=n.get(a))||void 0===e?void 0:e.count)||0;n.set(a,{event:i,count:s+1})}return Array.from(n).map(function(e){var n=e[1];return{startTime:t.startTime,endTime:t.endTime,count:n.count,event:n.event}})},t}(),R=function(){function t(t){this._events=[],this._droppedEventCount=0,this.limit=null!=t?t:1e3}return Object.defineProperty(t.prototype,\"events\",{get:function(){return this._events},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"reachedLimit\",{get:function(){return this._events.length>=this.limit},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,\"droppedEventCount\",{get:function(){return this._droppedEventCount},enumerable:!1,configurable:!0}),t.prototype.push=function(){for(var t,e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];this.startTime||(this.startTime=new Date);var r=Math.max(0,e.length-this.limit),o=e.slice(r,e.length);if(this._droppedEventCount+=r,this._events.length+o.length>this.limit){var i=this._events.length+o.length-this.limit;this._events.splice(0,i),this._droppedEventCount+=i}return(t=this._events).push.apply(t,o)},t.prototype.takeSnapshot=function(){var t,e=new Date,n=null!==(t=this.startTime)&&void 0!==t?t:e,r=this._events.splice(0),o=this._droppedEventCount;return this.startTime=void 0,this._droppedEventCount=0,{startTime:n,endTime:e,events:r,droppedCount:o}},t.prototype.clear=function(){this._events=[],this.startTime=void 0,this._droppedEventCount=0},t}(),O=function(){function t(t){this.executeRequests=!0,this.sdkKey=t.sdkKey,this.logger=t.logger,this.url=new URL(\"telemetry/v1\",t.baseUrl)}return t.prototype.report=function(t){var e=t.discreteEvents,n=t.aggregatedEvents,r=t.droppedEvents;if(!this.executeRequests)return{success:!1,fatalError:!0};var o={clientSdkKey:this.sdkKey,discreteEvents:e,aggregatedEvents:n,droppedEvents:r};if(this.isReportEmpty(o))return{success:!0,fatalError:!1};var i=this.sendReport(o);return i.fatalError&&(this.executeRequests=!1),i},t.prototype.isReportEmpty=function(t){return this.isEventListEmpty(t.discreteEvents)&&this.isEventListEmpty(t.aggregatedEvents)&&this.isDroppedEventsEmpty(t.droppedEvents)},t.prototype.isDroppedEventsEmpty=function(t){var e;if(!t)return!0;var n=Object.keys(t);if(0==n.length)return!0;for(var r=0,o=n;r<o.length;r++){if((null!==(e=t[o[r]])&&void 0!==e?e:0)>0)return!1}return!0},t.prototype.isEventListEmpty=function(t){var e,n,r=Object.keys(t);if(0==r.length)return!0;for(var o=0,i=r;o<i.length;o++){if((null!==(n=null===(e=t[i[o]])||void 0===e?void 0:e.length)&&void 0!==n?n:0)>0)return!1}return!0},t.prototype.sendReport=function(t){try{return{success:navigator.sendBeacon(this.url,JSON.stringify(t)),fatalError:!1}}catch(t){return this.logger.warn(\"[EventReporter] Fatal error attempting to send telemetry data: \".concat(t,\". No more telemetry data will be sent.\")),{success:!1,fatalError:!0}}},t}(),V=function(t){for(var e=5381,n=0;n<t.length;n++)e=(e<<5)+e+t[n],e>>>=0;return e},M=function(){function t(t){var e=this;this.evaluationEventQueue=new R,this.aggregator=new D,this.collectEvents=!0,this.logger=t.logger,this.reporter=new O(t),this.flushIntervalDelay=3e4;this.flushTimeout=setTimeout(function(){return e.flushAndScheduleNext()},5e3);try{document.addEventListener(\"visibilitychange\",function(){\"hidden\"===document.visibilityState&&e.flush()})}catch(t){this.logger.warn(\"[TelemetryEventCollector] Could not configure 'visibilitychange' listener: \",t)}}return t.prototype.evaluatedConfig=function(t){this.collectEvents&&this.evaluationEventQueue.push(this.sanitizeEvaluatedConfigEvent(t))},t.prototype.sanitizeEvaluatedConfigEvent=function(t){return{key:t.key,type:t.type,defaultValue:this.sanitizeValue(t.defaultValue,t.type),requestedType:t.requestedType,evaluatedValue:this.sanitizeValue(t.evaluatedValue,t.type),usedDefault:t.usedDefault,evaluationReason:t.evaluationReason}},t.prototype.sanitizeValue=function(t,e){if(\"json\"===e)try{var n=JSON.stringify(t);return r=n,V((new TextEncoder).encode(r)).toString(16).padStart(8,\"0\")}catch(e){return t.toString().slice(0,500)}var r;return t.toString().slice(0,500)},t.prototype.flushAndScheduleNext=function(){var t=this;this.flush().fatalError?(this.collectEvents=!1,this.close(),this.logger.warn(\"[TelemetryEventCollector] Received a fatal error from telemetry collection. No longer collecting events.\")):this.flushTimeout=setTimeout(function(){return t.flushAndScheduleNext()},this.flushIntervalDelay)},t.prototype.flush=function(){var t=this.evaluationEventQueue.takeSnapshot();return this.reporter.report({discreteEvents:{},aggregatedEvents:{evaluatedConfig:this.aggregator.aggregate(t)},droppedEvents:{evaluatedConfig:t.droppedCount}})},t.prototype.close=function(){this.collectEvents=!1,clearTimeout(this.flushTimeout),this.flush(),this.evaluationEventQueue.clear()},t.prototype.dispose=function(){this.close()},t}(),P=function(t,e,i,a){return r(void 0,void 0,void 0,function(){var r,s,u,c;return o(this,function(o){switch(o.label){case 0:r=new AbortController,s=setTimeout(function(){a.debug(\"[fetchWithTimeout] Reached timeout, aborting request\"),r.abort()},t),o.label=1;case 1:return o.trys.push([1,3,,4]),[4,fetch(e,n(n({},i),{signal:r.signal}))];case 2:return u=o.sent(),clearTimeout(s),[2,u];case 3:throw c=o.sent(),a.warn(\"[fetchWithTimeout] Fetch error: \",c),clearTimeout(s),c;case 4:return[2]}})})},F=function(){function t(t){this.options=t,this.eventEmitter=new a,this.fatalError=!1,this.options=t,this.logger=t.logger,this.url=new URL(\"pull/v1\",t.baseUrl)}return t.prototype.connect=function(t,e){return r(this,void 0,void 0,function(){var n,r,i,a,s,u,c;return o(this,function(o){switch(o.label){case 0:if(this.fatalError)return this.logger.warn(\"[PullTransport] There was a prior unrecoverable error. Ignoring attempt to reconnect.\"),[2,this];o.label=1;case 1:return o.trys.push([1,7,,8]),[4,P(e,this.url,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({givenContext:t,metaContext:this.options.metaContext,clientSdkKey:this.options.clientSdkKey})},this.logger)];case 2:return(n=o.sent()).ok?[3,5]:this.isStatusFatal(n.status)?(this.fatalError=!0,r=this.prepareFatalResponseStatusError,i=[n.status],[4,n.text()]):[3,4];case 3:throw r.apply(this,i.concat([o.sent()]));case 4:throw new v(\"Connection failed with status: \".concat(n.status),n.status);case 5:return u=(s=JSON).parse,[4,n.text()];case 6:return a=u.apply(s,[o.sent()]),this.eventEmitter.emit(\"configSetReceived\",a),[2,this];case 7:throw function(t){if(t instanceof DOMException){if(\"NotAllowedError\"===t.name)return!0}else if(t instanceof TypeError)return!0;return!1}(c=o.sent())?(this.fatalError=!0,new v(\"Connection failed with fatal error: \".concat(c,\". This is an unrecoverable error, retry attempts will be ignored.\"))):c instanceof SyntaxError?new v(\"Failed to parse the response from the server: \".concat(c)):new v(\"Connection failed with error: \".concat(c,\".\"));case 8:return[2]}})})},t.prototype.prepareFatalResponseStatusError=function(t,e){var n,r,o=null!=t?t:0,i=\"Connection failed with status: \".concat(null!=t?t:\"unknown\"),a=(null!==(r=null===(n=null==e?void 0:e.trim())||void 0===n?void 0:n.length)&&void 0!==r?r:0)>0?\" (\".concat(e,\")\"):\"\",s=\"\".concat(i).concat(a,\". This is an unrecoverable error, retry attempts will be ignored.\");return new v(s,o)},t.prototype.isStatusFatal=function(t){return!!t&&t>=400&&t<500},t.prototype.on=function(t,e){this.eventEmitter.on(t,e)},t.prototype.off=function(t,e){this.eventEmitter.off(t,e)},t.prototype.clear=function(){this.eventEmitter.clear()},t.prototype.close=function(){},t.prototype.dispose=function(){this.close(),this.clear()},t}(),I=new URL(\"https://client-sdk-api.configdirector.com\"),j=function(){function t(t,e,r){var o,i,s,u,c,l,f=this;this.handlersMap=new Map,this.eventEmitter=new a,this.ready=!1,this.logger=null!==(o=null==r?void 0:r.logger)&&void 0!==o?o:k(),this.timeout=null!==(s=null===(i=null==r?void 0:r.connection)||void 0===i?void 0:i.timeout)&&void 0!==s?s:3e3;var d=null!==(c=this.parseUrl(null===(u=null==r?void 0:r.connection)||void 0===u?void 0:u.url))&&void 0!==c?c:I;this.streaming=!1!==(null===(l=null==r?void 0:r.connection)||void 0===l?void 0:l.streaming);var p=this.streaming?y:F;this.usageEventCollector=new M({sdkKey:t,logger:this.logger,baseUrl:d}),this.transport=new p({clientSdkKey:t,baseUrl:d,metaContext:n(n({},null==r?void 0:r.metadata),{sdkName:e.sdkName,sdkVersion:e.sdkVersion,userAgent:null===navigator||void 0===navigator?void 0:navigator.userAgent}),logger:this.logger}),this.transport.on(\"configSetReceived\",function(t){var e;null===(e=f.readyResolve)||void 0===e||e.call(f);var r=Object.keys(t.configs);f.configSet&&\"full\"!=t.kind?(f.configSet.configs=n(n({},f.configSet.configs),t.configs),f.eventEmitter.emit(\"configsUpdated\",{keys:r}),f.updateWatchers(t.configs)):(f.configSet=t,f.eventEmitter.emit(\"configsUpdated\",{keys:r}),f.updateWatchers(t.configs)),f.logger.debug(\"[ConfigDirectorClient] ConfigSet updated from server:\",{keys:r})})}return t.prototype.initialize=function(t){return r(this,void 0,void 0,function(){return o(this,function(e){switch(e.label){case 0:return[4,this.connectToTransport(t,\"initialization\")];case 1:return e.sent(),[2]}})})},t.prototype.updateContext=function(t){return r(this,void 0,void 0,function(){return o(this,function(e){switch(e.label){case 0:return[4,this.connectToTransport(t,\"context update\")];case 1:return e.sent(),[2]}})})},t.prototype.connectToTransport=function(t,e){return r(this,void 0,void 0,function(){var n,r,i,a,s,u=this;return o(this,function(o){switch(o.label){case 0:return o.trys.push([0,4,,5]),this.ready=!1,this.readyPromise=new Promise(function(t){u.readyResolve=t}).then(function(){u.ready=!0,u.eventEmitter.emit(\"clientReady\",{action:e}),u.logger.debug(\"[ConfigDirectorClient] Received initial payload from the server, client is ready\")}),n=(new Date).getTime(),[4,this.transport.connect(null!=t?t:{},this.timeout)];case 1:return o.sent(),this.currentContext=t,r=(new Date).getTime()-n,(i=this.timeout-r)>0?[4,Promise.race([this.readyPromise,new Promise(function(t){setTimeout(function(){return t()},i)})])]:[3,3];case 2:o.sent(),o.label=3;case 3:return this.ready||(a=this.streaming?\"The client will continue to retry since there were no fatal errors detected. Configs will return the default value until the connection succeeds.\":\"Since the client was configured without streaming, configs may not update and always return the default value.\",this.logger.warn(\"[ConfigDirectorClient] Timed out waiting for \".concat(e,\" after \").concat(this.timeout,\"ms. \").concat(a))),[3,5];case 4:return s=o.sent(),this.logger.error(\"[ConfigDirectorClient] An error occurred during \".concat(e,\": \"),s),[3,5];case 5:return[2]}})})},t.prototype.updateWatchers=function(t){var e=this;Object.values(t).forEach(function(t){return e.updateWatchersForConfig(t)})},t.prototype.updateWatchersForConfig=function(t){var e,n=this;null===(e=this.handlersMap.get(t.key))||void 0===e||e.forEach(function(e){var r=n.getValueFromConfigState(t.key,t,e.defaultValue);e.handler(r)})},t.prototype.watch=function(t,e,n){var r=this;this.validateDefaultValue(e);var o=this.handlersMap.get(t),i={handler:n,defaultValue:e,requestedType:typeof e};return o?o.push(i):this.handlersMap.set(t,[i]),function(){return r.unwatch(t,n)}},t.prototype.unwatch=function(t,e){var n=this.handlersMap.get(t);if(n)if(e){var r=n.findIndex(function(t){return t.handler==e});r>=0&&(null==n||n.splice(r,1))}else n.splice(0)},t.prototype.getValue=function(t,e){var n;this.validateDefaultValue(e);var r=null===(n=this.configSet)||void 0===n?void 0:n.configs[t];return this.getValueFromConfigState(t,r,e)},t.prototype.getValueFromConfigState=function(t,e,n){var r,o;if(!e)return this.logger.debug(\"[ConfigDirectorClient] No config state found for '\".concat(t,\"', returning default value '\").concat(n,\"'\")),this.usageEventCollector.evaluatedConfig({contextId:null===(r=this.currentContext)||void 0===r?void 0:r.id,key:t,defaultValue:n,requestedType:m(n),evaluatedValue:n,usedDefault:!0,evaluationReason:\"config-state-missing\"}),n;var i=function(t,e){var n,r,o=t.value,i=m(e);if(!o)return{parsedValue:e,requestedType:i,usedDefault:!0,reason:\"value-missing\"};if(\"string\"==typeof e)return{parsedValue:o,requestedType:i,usedDefault:!1,reason:\"found-match\"};if(\"boolean\"==typeof e&&\"boolean\"===t.type){var a=b(o),s=\"boolean\"==typeof a;return{parsedValue:s?a:e,requestedType:i,usedDefault:!s,reason:s?\"found-match\":\"invalid-boolean\"}}return w(typeof e)&&\"integer\"===t.type?{parsedValue:(r=\"number\"==typeof(n=E(o)))?n:e,requestedType:i,usedDefault:!r,reason:r?\"found-match\":\"invalid-number\"}:!w(typeof e)||\"float\"!==t.type&&\"enum\"!==t.type?{parsedValue:o,requestedType:i,usedDefault:!1,reason:\"found-match\"}:{parsedValue:(r=\"number\"==typeof(n=C(o)))?n:e,requestedType:i,usedDefault:!r,reason:r?\"found-match\":\"invalid-number\"}}(e,n);return this.usageEventCollector.evaluatedConfig({contextId:null===(o=this.currentContext)||void 0===o?void 0:o.id,key:t,defaultValue:n,requestedType:i.requestedType,evaluatedValue:i.parsedValue,usedDefault:i.usedDefault,evaluationReason:i.reason}),this.logger.debug(\"[ConfigDirectorClient] Evaluated '\".concat(t,\"' to '\").concat(i.parsedValue,\"'\")),i.parsedValue},t.prototype.parseUrl=function(t){if(t)try{return new URL(t)}catch(e){throw new g(\"Invalid base URL '\".concat(t,\"'. Parsing failed: \").concat(e))}},t.prototype.validateDefaultValue=function(t){if(null==t)throw new g(\"Invalid default value. The default value for a config must be defined and non-null.\");if(\"function\"==typeof t)throw new g(\"Invalid default value. The default value for a config cannot be a function.\")},Object.defineProperty(t.prototype,\"isReady\",{get:function(){return this.ready},enumerable:!1,configurable:!0}),t.prototype.on=function(t,e){this.eventEmitter.on(t,e)},t.prototype.off=function(t,e){this.eventEmitter.off(t,e)},t.prototype.clear=function(){this.logger.debug(\"[ConfigDirectorClient] clear() has been called, removing all observers\"),this.eventEmitter.clear(),this.handlersMap.clear()},t.prototype.unwatchAll=function(){this.handlersMap.clear()},t.prototype.close=function(){this.logger.debug(\"[ConfigDirectorClient] close() has been called, closing connection to server\"),this.transport.close(),this.ready=!1},t.prototype.dispose=function(){this.clear(),this.close()},t}();export{j as DefaultConfigDirectorClient,S as DefaultConsoleLogger,M as TelemetryEventCollector,k as createDefaultLogger};\n//# sourceMappingURL=configdirector-client-core.es.js.map\n","import {\n ConfigDirectorClient,\n ConfigDirectorClientOptions,\n DefaultConfigDirectorClient\n} from \"@configdirector/client-core\";\n\nexport const createClient = (\n clientSdkKey: string,\n clientOptions?: ConfigDirectorClientOptions,\n): ConfigDirectorClient => {\n return new DefaultConfigDirectorClient(\n clientSdkKey,\n { sdkName: \"react-web-sdk\", sdkVersion: \"__VERSION__\" },\n clientOptions,\n );\n};\n\n","import React from \"react\";\nimport { ConfigDirectorContextData } from \"./types\";\n\nconst createReactContext = () => React.createContext<ConfigDirectorContextData>({status: \"loading\"});\nexport const reactContext = createReactContext();\n","import {\n type ConfigDirectorLoggingLevel,\n createDefaultLogger as createJsSdkLogger,\n ConfigDirectorLogMessageDecorator,\n ConfigDirectorLogger,\n} from \"@configdirector/client-core\";\n\nclass MessageDecorator implements ConfigDirectorLogMessageDecorator {\n decorateMessage(message: string): string {\n return `[ConfigDirector:react-web-sdk] ${message}`;\n }\n}\n\nexport const createConsoleLogger = (level: ConfigDirectorLoggingLevel): ConfigDirectorLogger => {\n return createJsSdkLogger(level, new MessageDecorator());\n};\n","import { createClient } from \"./client\";\nimport { useEffect, useState, type ReactNode } from \"react\";\nimport { reactContext } from \"./context\";\nimport { createConsoleLogger } from \"./logger\";\nimport { ConfigDirectorProviderOptions, ConfigDirectorProviderState } from \"./types\";\n\nexport const withProvider = async (options: ConfigDirectorProviderOptions) => {\n const logger = options.logger ?? createConsoleLogger(\"debug\");\n const client = createClient(options.sdkKey, {\n connection: { url: options.url, timeout: options.timeout },\n metadata: { appName: options.appName, appVersion: options.appVersion },\n logger: logger,\n });\n await client.initialize(options.context);\n\n const ConfigDirectorProvider = ({ children }: { children: ReactNode }) => {\n const [data, setData] = useState<ConfigDirectorProviderState>(() => ({\n client,\n status: client.isReady ? \"ready\" : \"default\",\n }));\n\n useEffect(() => {\n client.on(\"configsUpdated\", () => {\n setData((prevState) => ({ ...prevState, updatedAt: new Date() }));\n });\n client.on(\"clientReady\", () => {\n setData((prevState) => ({ ...prevState, status: \"ready\" }));\n });\n });\n\n return <reactContext.Provider value={data}>{children}</reactContext.Provider>;\n };\n\n return ConfigDirectorProvider;\n};\n","import { createClient } from \"./client\";\nimport { reactContext } from \"./context\";\nimport { createConsoleLogger } from \"./logger\";\nimport { Component, type PropsWithChildren } from \"react\";\nimport { ConfigDirectorProviderOptions, ConfigDirectorProviderState } from \"./types\";\n\nexport class ConfigDirectorProvider extends Component<\n PropsWithChildren<ConfigDirectorProviderOptions>,\n ConfigDirectorProviderState\n> {\n constructor(props: ConfigDirectorProviderOptions) {\n super(props);\n\n const client = createClient(props.sdkKey, {\n connection: { url: props.url, timeout: props.timeout },\n metadata: { appName: props.appName, appVersion: props.appVersion },\n logger: props.logger ?? createConsoleLogger(\"warn\"),\n });\n\n this.state = { client, status: \"loading\" };\n }\n\n override async componentDidMount(): Promise<void> {\n this.state.client?.on(\"configsUpdated\", () => {\n this.setState({ updatedAt: new Date() });\n });\n this.state.client?.on(\"clientReady\", () => {\n this.setState({ status: \"ready\" });\n });\n await this.state.client?.initialize(this.props.context);\n if (!this.state.client?.isReady) {\n this.setState({ status: \"default\" });\n }\n }\n\n override componentWillUnmount(): void {\n this.state.client?.dispose();\n }\n\n override render() {\n return <reactContext.Provider value={this.state}>{this.props.children}</reactContext.Provider>;\n }\n}\n","export class ConfigDirectorReactContextError extends Error {\n public override readonly name: string = \"ConfigDirectorReactContextError\";\n\n constructor(message: string) {\n super(message);\n\n Object.setPrototypeOf(this, ConfigDirectorReactContextError.prototype);\n }\n}\n","\"use client\";\n\nimport { useContext } from \"react\";\nimport { reactContext } from \"./context\";\nimport type {\n ConfigDirectorContext,\n ConfigValueType,\n} from \"@configdirector/client-sdk\";\nimport { ConfigDirectorReactContextError } from \"./errors\";\nimport { ClientStatus } from \"./types\";\n\nconst noContextError = () => {\n return new ConfigDirectorReactContextError(\"The ConfigDirector client was not found in the React context. Please make sure the component using this hook is inside the context of a ConfigDirectorProvider.\");\n};\n\nconst useConfigValue = <T extends ConfigValueType>(\n key: string,\n defaultValue: T,\n): {\n value: T;\n readyStatus: ClientStatus;\n loading: boolean;\n} => {\n const configDirectorReactContext = useContext(reactContext);\n if (!configDirectorReactContext?.client) {\n throw noContextError();\n }\n\n const value = configDirectorReactContext.client.getValue(key, defaultValue);\n\n return { value, readyStatus: configDirectorReactContext.status, loading: configDirectorReactContext.status === \"loading\" };\n};\n\nconst useConfigDirectorContext = () => {\n const configDirectorReactContext = useContext(reactContext);\n if (!configDirectorReactContext?.client) {\n throw noContextError();\n }\n\n const updateContext = async (context: ConfigDirectorContext) => {\n await configDirectorReactContext.client?.updateContext(context);\n };\n\n return { updateContext };\n};\n\nconst useConfigDirectorClient = () => {\n const configDirectorReactContext = useContext(reactContext);\n if (!configDirectorReactContext?.client) {\n throw noContextError();\n }\n\n return { client: configDirectorReactContext.client };\n};\n\nexport { useConfigValue, useConfigDirectorContext, useConfigDirectorClient };\n"],"mappings":"u2CAAA,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,MAAO,GAAE,OAAO,gBAAgB,CAAC,UAAU,EAAE,CAAC,WAAW,OAAO,SAAS,EAAE,EAAE,CAAC,EAAE,UAAU,IAAI,SAAS,EAAE,EAAE,CAAC,IAAI,IAAI,KAAK,EAAE,OAAO,UAAU,eAAe,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,GAAe,OAAO,GAAnB,YAA6B,IAAP,KAAS,MAAU,UAAU,uBAAuB,OAAO,EAAE,CAAC,gCAAgC,CAAC,SAAS,GAAG,CAAC,KAAK,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,UAAiB,IAAP,KAAS,OAAO,OAAO,EAAE,EAAE,EAAE,UAAU,EAAE,UAAU,IAAI,GAAG,IAAI,EAAE,UAAU,CAAC,MAAO,GAAE,OAAO,QAAQ,SAAS,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,OAAO,EAAE,EAAE,IAAI,IAAI,IAAI,IAAK,GAAE,UAAU,GAAG,OAAO,UAAU,eAAe,KAAK,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,OAAO,GAAG,EAAE,MAAM,KAAK,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,IAAI,IAAI,EAAE,UAAU,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,aAAa,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,UAAU,CAAC,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,QAAoB,OAAO,UAAnB,WAA4B,SAAS,QAAQ,UAAU,CAAC,MAAO,GAAE,KAAK,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,CAAa,OAAO,QAAnB,aAA4B,EAAE,OAAO,UAAU,UAAU,CAAC,OAAO,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,OAAO,SAAS,EAAE,CAAC,OAAO,SAAS,EAAE,CAAC,GAAG,EAAE,MAAU,UAAU,kCAAkC,CAAC,KAAK,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,GAArC,CAAyC,IAAK,GAAE,IAAK,GAAE,EAAE,EAAE,MAAM,IAAK,GAAE,MAAO,GAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,IAAK,GAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,SAAS,IAAK,GAAE,EAAE,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,QAAQ,GAAK,EAAE,EAAE,KAAA,GAAM,EAAE,EAAE,OAAO,GAAG,EAAE,EAAE,OAAO,KAAS,EAAE,KAAN,GAAc,EAAE,KAAN,GAAU,CAAC,EAAE,EAAE,SAAS,GAAO,EAAE,KAAN,IAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAO,EAAE,KAAN,GAAU,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAK,GAAE,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAO,UAAU,SAAd,EAAqB,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,EAAE,MAAM,UAAU,MAAM,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,OAAO,EAAE,OAAO,GAAG,MAAM,UAAU,MAAM,KAAK,EAAE,CAAC,CAAqD,IAAI,EAAE,UAAU,CAAC,SAAS,GAAG,CAAC,KAAK,WAAW,IAAI,IAAI,MAAO,GAAE,UAAU,GAAG,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,IAAI,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,EAAE,MAAM,KAAK,WAAW,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,KAAK,WAAW,OAAO,EAAE,EAAE,UAAU,KAAK,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,WAAW,IAAI,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,IAAI,CAAO,EAAN,cAAgB,KAAK,CAAC,YAAY,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,KAAK,aAAa,KAAK,KAAK,EAAE,KAAK,KAAK,MAAM,EAAE,MAAM,KAAK,MAAM,EAAE,MAAM,KAAK,KAAK,EAAE,OAAM,SAAS,EAAE,EAAE,EAAE,SAAS,GAAE,EAAE,CAAC,GAAe,OAAO,GAAnB,WAAqB,MAAU,UAAU,uFAAuF,CAAC,GAAK,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,UAAU,GAAG,EAAM,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,SAAS,EAAE,EAAE,CAAC,GAAQ,IAAL,GAAO,OAAO,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAK,GAAE,KAAK,EAAE,SAAS;EAAK,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,IAAK,GAAE,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,EAAE,WAAW,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,KAAK,CAAC,EAAE,EAAE,CAAC,EAAE,IAAM,EAAE,EAAE,QAAQ,IAAI,CAAC,GAAQ,IAAL,GAAO,CAAC,IAAM,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAQ,EAAE,EAAE,KAAV,IAAa,EAAE,EAAc,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAA/B,OAAgC,EAAE,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,EAAP,CAAU,IAAI,QAAQ,EAAE,EAAE,MAAM,IAAI,OAAO,EAAE,GAAG,IAAI,EAAE,IAAI,MAAM,IAAI,KAAK,EAAE,EAAE,SAAS,KAAK,CAAC,IAAK,GAAE,EAAE,MAAM,IAAI,QAAQ,QAAQ,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,GAAG,CAAC,KAAK,gBAAgB,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,GAAG,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,KAAK,gBAAgB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC,IAAM,EAAE,EAAE,EAAE,QAAQ,gBAAgB,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC,IAAM,EAAE,EAAE,CAAK,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,CAAC,IAAM,EAAE,EAAE,QAAQ,KAAK,EAAE,CAAC,EAAE,EAAE,QAAQ;EAAK,EAAE,CAAK,EAAE,GAAG,GAAQ,IAAL,IAAa,IAAL,GAAO,EAAE,KAAK,IAAI,EAAE,EAAE,CAAM,IAAL,GAAkC,IAAL,KAAS,EAAE,GAAjC,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAqB,IAAL,GAAO,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,IAAM,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAS,EAAE,EAAE,KAAX,MAAsB,EAAE,KAAT;GAAa,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,IAAI,IAAI,CAAC,IAAI,IAAM,KAAK,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,SAAS,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAK,GAAE,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,MAAM,GAAG,SAAS,EAAE,EAAE,CAAC,UAAU,GAAG,CAAC,IAAM,EAAY,OAAO,GAAjB,UAAoB,aAAa,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,EAAE,oBAAoB,EAAE,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,SAAS,EAAE,CAAC,IAAM,EAAE,EAAE,OAAO,WAAW,MAAM,GAAG,CAAC,SAAS,EAAE,CAAC,OAAkB,OAAO,GAAnB,YAAsB,EAAE,CAAC,MAAU,MAAM,gFAAgF,CAAC,GAAe,OAAO,iBAAnB,WAAmC,MAAU,MAAM,yCAAyC,CAAC,GAAK,CAAC,IAAI,EAAE,mBAAmB,GAAG,EAAE,GAAa,OAAO,GAAjB,UAAoB,EAAE,aAAa,KAAK,MAAU,MAAM,wDAAwD,CAAC,GAAa,OAAO,GAAjB,UAA6B,IAAT,IAAK,GAAM,MAAU,MAAM,oEAAoE,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,EAAA,EAAA,EAAA,CAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAE,CAAC,QAAQ,SAAS,EAAE,CAAW,OAAO,EAAE,IAAnB,WAAwB,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,GAAG,QAAQ,SAAS,EAAE,CAAC,EAAE,GAAG,UAAU,EAAE,CAAC,CAAK,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,IAAI,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,cAAc,CAAC,MAAU,MAAM,+EAA+E,EAAE,CAAC,OAAO,eAAe,UAAU,CAAC,IAAM,EAAE,EAAE,CAAC,EAAE,EAAE,CAAO,EAAE,SAAS,EAAE,CAAC,IAAM,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,KAAK,EAAE,OAAO,IAAI,OAAO,EAAE,KAAK,UAAU,CAAC,IAAM,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,IAAK,GAAE,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,KAAK,QAAQ,CAAC,IAAI,QAAQ,GAAG,CAAC,IAAM,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,YAAY,GAAG,CAAC,QAAQ,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,IAAK,GAAE,CAAC,EAAE,MAAM,IAAI,GAAG,CAAC,QAAQ,OAAO,EAAE,EAAE,CAAC,OAAO,gBAAgB,CAAC,OAAO,MAAM,EAAE,IAAI,aAAa,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,GAAG,IAAI,YAAY,CAAC,OAAO,GAAG,CAAC,SAAS,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,gBAAgB,EAAE,EAAE,EAAE,UAAU,CAAC,GAAK,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,GAAG,EAAsE,MAAM,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,QAAA,EAAA,EAAA,CAApJ,OAAO,oBAAA,CAAuB,EAAA,CAAK,EAAE,CAAC,gBAAgB,EAAE,CAAC,IAAK,GAAE,CAA8F,MAAM,WAAW,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,KAAoB,EAAE,OAAjB,cAAmC,EAAE,OAAd,WAAoB,CAAC,EAAE,OAAO,SAAS,GAAG,EAAE,EAAE,SAAS,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC,EAAE,QAAQ,GAAG,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,GAAK,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,GAAG,EAAE,GAAS,IAAN,IAAQ,OAAO,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,EAAE,MAAU,MAAM,wBAAwB,CAAC,IAAI,EAAE,EAAE,KAAK,IAAM,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,YAAY,EAAE,EAAE,WAAW,CAAK,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,CAAC,GAAK,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,MAAM,EAAE,CAAC,UAAU,SAAS,EAAE,CAAC,GAAG,EAAE,aAAa,gBAAgB,MAAU,MAAM,gDAAgD,CAAC,OAAO,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,MAAO,GAAE,KAAK,gCAAgC,EAAE,OAAO,EAAE,OAAO,eAAe,EAAE,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,MAAO,GAAE,KAAK,gCAAgC,OAAO,eAAe,EAAE,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,QAAQ,EAAE,KAAK,aAAa,IAAI,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,OAAO,KAAK,IAAI,IAAI,IAAI,SAAS,EAAE,QAAQ,CAAC,MAAO,GAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,IAAK,GAAE,IAAK,GAAE,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC,OAAO,KAAK,aAAa,KAAK,OAAO,CAAC,EAAE,IAAK,GAAE,EAAE,IAAK,GAAE,EAAE,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,IAAK,GAAE,IAAK,GAAE,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,MAAT,CAAgB,IAAK,GAAE,MAAM,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,IAAK,GAAE,MAAO,GAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,IAAK,GAAE,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAK,GAAE,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,QAAQ,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,MAAM,EAAE,OAAO,OAAO,QAAQ,CAAC,eAAe,mBAAmB,CAAC,KAAK,KAAK,UAAU,CAAC,aAAa,EAAE,YAAY,EAAE,QAAQ,YAAY,aAAa,EAAE,QAAQ,aAAa,CAAC,CAAC,UAAU,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,EAAE,UAAU,UAAU,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,kBAAkB,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,MAAM,+CAA+C,EAAE,CAAC,EAAE,EAAE,GAAG,oBAAoB,SAAS,EAAE,CAAC,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,kBAAkB,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,kDAAyD,EAAE,2BAAoC,IAAG,EAAE,aAAa,UAAU,CAAC,EAAE,OAAO,MAAM,sCAAsC,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,QAAQ,KAAK,CAAC,EAAE,IAAI,QAAQ,SAAS,EAAE,CAAC,WAAW,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC,KAAK,aAAa,KAAK,oBAAoB,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,MAAM,4EAA4E,EAAE,GAAG,EAAE,UAAU,kBAAkB,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAQ,GAAN,KAAU,EAAF,EAAsR,OAAO,IAAI,EAArG,GAAtL,kCAA+C,GAAN,KAAU,UAAF,QAAwB,GAAU,EAAQ,GAAN,KAAQ,IAAK,GAAE,EAAE,MAAM,GAAjC,KAA+C,IAAK,GAAE,EAAE,SAAlE,KAAwF,EAAF,GAAK,EAAE,KAAY,KAAO,qEAA8G,EAAE,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,EAAE,CAAC,KAAK,aAAa,GAAG,EAAE,EAAE,EAAE,EAAE,UAAU,IAAI,SAAS,EAAE,EAAE,CAAC,KAAK,aAAa,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,KAAK,aAAa,OAAO,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,IAAI,GAAU,EAAE,KAAK,cAAf,MAAyC,EAAE,OAAO,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,KAAK,OAAO,CAAC,KAAK,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,GAAc,IAAX,SAAa,GAAG,CAAC,OAAe,GAAU,EAAE,EAAE,cAAZ,KAAqC,IAAK,GAAE,EAAE,OAAxD,KAA4E,EAAF,QAAU,EAAE,CAAC,OAAO,UAAuB,IAAb,WAAe,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,OAAO,EAAE,aAAoB,IAAG,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,GAAG,EAAE,SAAS,EAAE,CAAC,OAAiB,IAAX,UAAyB,IAAX,UAAc,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,aAAa,CAAC,GAAW,GAAR,QAAoB,GAAT,QAAW,OAAe,IAAT,SAAa,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,SAAS,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,IAAI,EAAE,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,OAAO,WAAW,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,IAAI,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,CAAC,SAAS,EAAE,EAAE,EAAE,CAAC,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,UAAU,CAAC,IAAI,EAAE,CAAC,KAAK,UAAU,MAAM,UAAU,IAAI,UAAU,KAAK,UAAU,OAAO,UAAU,OAAO,UAAU,aAAa,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAI,KAAK,eAAe,IAAK,GAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,IAAI,KAAK,eAAe,IAAK,GAAE,EAAE,IAAI,CAAC,MAAO,GAAE,UAAU,MAAM,SAAS,EAAE,CAAK,IAAI,MAAuC,oBAAa,KAAK,IAAI,MAAM,KAAK,EAAE,CAAC,QAAQ,MAAM,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,EAAE,CAAK,IAAI,MAAuC,oBAAa,KAAK,IAAI,MAAM,KAAK,EAAE,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,KAAK,SAAS,EAAE,CAAK,IAAI,MAAuC,oBAAa,KAAK,IAAI,MAAM,KAAK,EAAE,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,MAAM,SAAS,EAAE,CAAK,IAAI,MAAuC,oBAAa,KAAK,IAAI,MAAM,KAAK,EAAE,CAAC,QAAQ,MAAM,QAAQ,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,IAAI,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,OAAO,IAAI,EAAE,EAAE,GAAG,UAAU,GAAG,EAAE,KAAK,QAAQ,EAAE,IAAI,EAAE,MAAM,IAAK,GAAE,EAAE,CAAC,IAAW,KAAK,cAAc,OAAO,IAAI,KAAK,MAAsB,EAAE,KAAK,YAAf,KAAsC,IAAK,GAAE,EAAE,gBAAgB,EAAE,GAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,SAAS,GAAG,EAAE,MAAO,GAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,MAAM,kCAAyC,KAAI,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,EAAQ,GAAN,KAAU,OAAF,EAAe,GAAN,KAAU,IAAI,EAAN,EAAQ,EAAE,EAAE,UAAU,CAAC,SAAS,GAAG,EAAE,MAAO,GAAE,UAAU,UAAU,SAAS,EAAE,CAAC,IAAI,EAAE,GAAM,EAAE,OAAO,QAAZ,EAAmB,MAAM,EAAE,CAAC,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,UAAU,EAAE,CAAC,IAAW,EAAE,EAAE,IAAI,EAAE,GAAlB,KAAgC,IAAK,GAAE,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,MAAM,KAAK,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,UAAU,QAAQ,EAAE,QAAQ,MAAM,EAAE,MAAM,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,QAAQ,EAAE,CAAC,KAAK,mBAAmB,EAAE,KAAK,MAAY,GAAN,KAAU,IAAF,EAAM,OAAO,OAAO,eAAe,EAAE,UAAU,SAAS,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,SAAS,WAAW,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,eAAe,EAAE,UAAU,eAAe,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,QAAQ,KAAK,OAAO,WAAW,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,OAAO,eAAe,EAAE,UAAU,oBAAoB,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,oBAAoB,WAAW,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,OAAO,IAAI,EAAE,GAAG,UAAU,GAAG,KAAK,YAAY,KAAK,UAAU,IAAI,MAAM,IAAI,EAAE,KAAK,IAAI,EAAE,EAAE,OAAO,KAAK,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,GAAG,KAAK,oBAAoB,EAAE,KAAK,QAAQ,OAAO,EAAE,OAAO,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,QAAQ,OAAO,EAAE,OAAO,KAAK,MAAM,KAAK,QAAQ,OAAO,EAAE,EAAE,CAAC,KAAK,oBAAoB,EAAE,OAAO,EAAE,KAAK,SAAS,KAAK,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,aAAa,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,KAAK,GAAU,EAAE,KAAK,YAAf,KAAwC,EAAF,EAAI,EAAE,KAAK,QAAQ,OAAO,EAAE,CAAC,EAAE,KAAK,mBAAmB,MAAO,MAAK,UAAU,IAAK,GAAE,KAAK,mBAAmB,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,KAAK,QAAQ,EAAE,CAAC,KAAK,UAAU,IAAK,GAAE,KAAK,mBAAmB,GAAG,IAAI,CAAC,EAAE,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,gBAAgB,CAAC,EAAE,KAAK,OAAO,EAAE,OAAO,KAAK,OAAO,EAAE,OAAO,KAAK,IAAI,IAAI,IAAI,eAAe,EAAE,QAAQ,CAAC,MAAO,GAAE,UAAU,OAAO,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,eAAe,EAAE,EAAE,iBAAiB,EAAE,EAAE,cAAc,GAAG,CAAC,KAAK,gBAAgB,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,aAAa,KAAK,OAAO,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC,GAAG,KAAK,cAAc,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,WAAW,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,gBAAgB,CAAC,GAAG,GAAG,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,OAAO,KAAK,iBAAiB,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,qBAAqB,EAAE,cAAc,EAAE,EAAE,UAAU,qBAAqB,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,KAAK,EAAE,CAAC,GAAM,EAAE,QAAL,EAAY,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,IAAK,KAAY,EAAE,EAAE,EAAE,MAAd,KAAiC,EAAF,GAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,UAAU,iBAAiB,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,KAAK,EAAE,CAAC,GAAM,EAAE,QAAL,EAAY,MAAM,CAAC,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,IAAK,KAAY,GAAU,EAAE,EAAE,EAAE,MAAd,KAA+B,IAAK,GAAE,EAAE,SAAlD,KAAwE,EAAF,GAAK,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,UAAU,WAAW,SAAS,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,UAAU,WAAW,KAAK,IAAI,KAAK,UAAU,EAAE,CAAC,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,KAAK,OAAO,KAAK,kEAAyE,0CAA4C,CAAC,CAAC,QAAQ,CAAC,EAAE,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,IAAI,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,OAAO,GAAG,EAAE,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,qBAAqB,IAAI,EAAE,KAAK,WAAW,IAAI,EAAE,KAAK,cAAc,CAAC,EAAE,KAAK,OAAO,EAAE,OAAO,KAAK,SAAS,IAAI,EAAE,EAAE,CAAC,KAAK,mBAAmB,IAAI,KAAK,aAAa,WAAW,UAAU,CAAC,OAAO,EAAE,sBAAsB,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,iBAAiB,mBAAmB,UAAU,CAAY,SAAS,kBAApB,UAAqC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,OAAO,KAAK,8EAA8E,EAAE,EAAE,MAAO,GAAE,UAAU,gBAAgB,SAAS,EAAE,CAAC,KAAK,eAAe,KAAK,qBAAqB,KAAK,KAAK,6BAA6B,EAAE,CAAC,EAAE,EAAE,UAAU,6BAA6B,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,KAAK,EAAE,KAAK,aAAa,KAAK,cAAc,EAAE,aAAa,EAAE,KAAK,CAAC,cAAc,EAAE,cAAc,eAAe,KAAK,cAAc,EAAE,eAAe,EAAE,KAAK,CAAC,YAAY,EAAE,YAAY,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,EAAE,CAAC,GAAY,IAAT,OAAW,GAAG,CAAyB,MAAO,GAAzB,KAAK,UAAU,EAAE,CAAY,EAAG,IAAI,aAAW,CAAE,OAAO,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,SAAS,EAAE,IAAI,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,UAAU,qBAAqB,UAAU,CAAC,IAAI,EAAE,KAAK,KAAK,OAAO,CAAC,YAAY,KAAK,cAAc,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK,OAAO,KAAK,2GAA2G,EAAE,KAAK,aAAa,WAAW,UAAU,CAAC,OAAO,EAAE,sBAAsB,EAAE,KAAK,mBAAmB,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,IAAI,EAAE,KAAK,qBAAqB,cAAc,CAAC,OAAO,KAAK,SAAS,OAAO,CAAC,eAAe,EAAE,CAAC,iBAAiB,CAAC,gBAAgB,KAAK,WAAW,UAAU,EAAE,CAAC,CAAC,cAAc,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,KAAK,cAAc,CAAC,EAAE,aAAa,KAAK,aAAa,CAAC,KAAK,OAAO,CAAC,KAAK,qBAAqB,OAAO,EAAE,EAAE,UAAU,QAAQ,UAAU,CAAC,KAAK,OAAO,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,IAAK,GAAE,IAAK,GAAE,IAAK,GAAE,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,MAAT,CAAgB,IAAK,GAAE,EAAE,IAAI,gBAAgB,EAAE,WAAW,UAAU,CAAC,EAAE,MAAM,uDAAuD,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAK,GAAE,OAAO,EAAE,KAAK,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAK,GAAE,MAAO,GAAE,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAK,GAAE,KAAM,GAAE,EAAE,MAAM,CAAC,EAAE,KAAK,mCAAmC,EAAE,CAAC,aAAa,EAAE,CAAC,EAAE,IAAK,GAAE,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,QAAQ,EAAE,KAAK,aAAa,IAAI,EAAE,KAAK,WAAW,CAAC,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,OAAO,KAAK,IAAI,IAAI,IAAI,UAAU,EAAE,QAAQ,CAAC,MAAO,GAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,IAAK,GAAE,IAAK,GAAE,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,MAAT,CAAgB,IAAK,GAAE,GAAG,KAAK,WAAW,OAAO,KAAK,OAAO,KAAK,wFAAwF,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,IAAK,GAAE,OAAO,EAAE,KAAK,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,IAAI,CAAC,OAAO,OAAO,QAAQ,CAAC,eAAe,mBAAmB,CAAC,KAAK,KAAK,UAAU,CAAC,aAAa,EAAE,YAAY,KAAK,QAAQ,YAAY,aAAa,KAAK,QAAQ,aAAa,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,IAAK,GAAE,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,cAAc,EAAE,OAAO,EAAE,KAAK,WAAW,CAAC,EAAE,EAAE,KAAK,gCAAgC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAK,GAAE,MAAM,EAAE,MAAM,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAK,GAAE,MAAM,IAAI,EAAE,kCAAyC,EAAE,SAAQ,EAAE,OAAO,CAAC,IAAK,GAAE,MAAO,IAAG,EAAE,MAAM,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,IAAK,GAAE,MAAO,GAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,aAAa,KAAK,oBAAoB,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,IAAK,GAAE,MAAM,SAAS,EAAE,CAAC,GAAG,aAAa,iBAAqC,EAAE,OAAtB,kBAA2B,MAAM,CAAC,UAAU,aAAa,UAAU,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,IAAI,EAAE,uCAA8C,qEAAuE,EAAE,aAAa,YAAY,IAAI,EAAE,iDAAwD,IAAG,CAAC,IAAI,EAAE,iCAAwC,KAAO,CAAC,IAAK,GAAE,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,gCAAgC,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAQ,GAAN,KAAU,EAAF,EAAuR,OAAO,IAAI,EAAtG,GAAtL,kCAA+C,GAAN,KAAU,UAAF,QAAwB,GAAU,EAAQ,GAAN,KAAQ,IAAK,GAAE,EAAE,MAAM,GAAjC,KAA+C,IAAK,GAAE,EAAE,SAAlE,KAAwF,EAAF,GAAK,EAAE,KAAY,KAAO,sEAA+G,EAAE,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,KAAK,EAAE,KAAK,EAAE,UAAU,GAAG,SAAS,EAAE,EAAE,CAAC,KAAK,aAAa,GAAG,EAAE,EAAE,EAAE,EAAE,UAAU,IAAI,SAAS,EAAE,EAAE,CAAC,KAAK,aAAa,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,KAAK,aAAa,OAAO,EAAE,EAAE,UAAU,MAAM,UAAU,GAAG,EAAE,UAAU,QAAQ,UAAU,CAAC,KAAK,OAAO,CAAC,KAAK,OAAO,EAAE,IAAI,CAAC,EAAE,IAAI,IAAI,4CAA4C,CAAC,EAAE,UAAU,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,KAAK,YAAY,IAAI,IAAI,KAAK,aAAa,IAAI,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,QAAe,EAAQ,GAAN,KAAQ,IAAK,GAAE,EAAE,SAA3B,KAAiD,GAAG,CAAL,EAAM,KAAK,SAAgB,GAAU,EAAQ,GAAN,KAAQ,IAAK,GAAE,EAAE,aAA3B,KAAmD,IAAK,GAAE,EAAE,UAAtE,KAA6F,IAAF,EAAM,IAAI,GAAU,EAAE,KAAK,UAAiB,EAAQ,GAAN,KAAQ,IAAK,GAAE,EAAE,aAA3B,KAAmD,IAAK,GAAE,EAAE,IAAI,GAAxF,KAAwG,EAAF,EAAI,KAAK,UAAU,CAAC,MAAa,EAAQ,GAAN,KAAQ,IAAK,GAAE,EAAE,aAA3B,KAAmD,IAAK,GAAE,EAAE,WAAW,IAAI,EAAE,KAAK,UAAU,EAAE,EAAE,KAAK,oBAAoB,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,QAAQ,EAAE,CAAC,CAAC,KAAK,UAAU,IAAI,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE,CAAO,GAAN,KAAQ,IAAK,GAAE,EAAE,SAAS,CAAC,CAAC,QAAQ,EAAE,QAAQ,WAAW,EAAE,WAAW,UAAiB,WAAP,KAAqC,IAAK,GAAE,UAAU,UAAU,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,KAAK,UAAU,GAAG,oBAAoB,SAAS,EAAE,CAAC,IAAI,GAAU,EAAE,EAAE,eAAZ,MAAuC,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,EAAE,QAAQ,CAAC,EAAE,WAAmB,EAAE,MAAV,QAAgB,EAAE,UAAU,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,UAAU,QAAQ,CAAC,EAAE,QAAQ,CAAC,EAAE,aAAa,KAAK,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,GAAG,EAAE,UAAU,EAAE,EAAE,aAAa,KAAK,iBAAiB,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,OAAO,MAAM,wDAAwD,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,MAAO,GAAE,UAAU,WAAW,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,IAAK,GAAE,IAAK,GAAE,UAAU,CAAC,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,MAAT,CAAgB,IAAK,GAAE,MAAM,CAAC,EAAE,KAAK,mBAAmB,EAAE,iBAAiB,CAAC,CAAC,IAAK,GAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,cAAc,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,IAAK,GAAE,IAAK,GAAE,UAAU,CAAC,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,MAAT,CAAgB,IAAK,GAAE,MAAM,CAAC,EAAE,KAAK,mBAAmB,EAAE,iBAAiB,CAAC,CAAC,IAAK,GAAE,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,mBAAmB,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,IAAK,GAAE,IAAK,GAAE,UAAU,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC,OAAO,EAAE,MAAT,CAAgB,IAAK,GAAE,OAAO,EAAE,KAAK,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,EAAE,KAAK,aAAa,IAAI,QAAQ,SAAS,EAAE,CAAC,EAAE,aAAa,GAAG,CAAC,KAAK,UAAU,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,aAAa,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,OAAO,MAAM,mFAAmF,EAAE,CAAC,EAAG,IAAI,MAAI,CAAE,SAAS,CAAC,CAAC,EAAE,KAAK,UAAU,QAAc,GAAN,KAAU,EAAE,CAAJ,EAAK,KAAK,QAAQ,CAAC,CAAC,IAAK,GAAE,OAAO,EAAE,MAAM,CAAC,KAAK,eAAe,EAAE,EAAG,IAAI,MAAI,CAAE,SAAS,CAAC,GAAG,EAAE,KAAK,QAAQ,GAAG,EAAE,CAAC,EAAE,QAAQ,KAAK,CAAC,KAAK,aAAa,IAAI,QAAQ,SAAS,EAAE,CAAC,WAAW,UAAU,CAAC,OAAO,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAK,GAAE,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,IAAK,GAAE,OAAO,KAAK,QAAQ,EAAE,KAAK,UAAU,oJAAoJ,iHAAiH,KAAK,OAAO,KAAK,gDAAuD,WAAoB,KAAK,cAAuB,IAAG,EAAE,CAAC,EAAE,EAAE,CAAC,IAAK,GAAE,MAAO,GAAE,EAAE,MAAM,CAAC,KAAK,OAAO,MAAM,mDAA0D,MAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAK,GAAE,MAAM,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,UAAU,eAAe,SAAS,EAAE,CAAC,IAAI,EAAE,KAAK,OAAO,OAAO,EAAE,CAAC,QAAQ,SAAS,EAAE,CAAC,OAAO,EAAE,wBAAwB,EAAE,EAAE,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,MAAa,EAAE,KAAK,YAAY,IAAI,EAAE,IAAI,GAArC,MAAoD,EAAE,QAAQ,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE,wBAAwB,EAAE,IAAI,EAAE,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,UAAU,MAAM,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,KAAK,qBAAqB,EAAE,CAAC,IAAI,EAAE,KAAK,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,cAAc,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,KAAK,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,UAAU,QAAQ,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,YAAY,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,UAAU,SAAS,EAAE,CAAC,OAAO,EAAE,SAAS,GAAG,CAAC,GAAG,IAAU,GAAN,MAAS,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,UAAU,SAAS,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,qBAAqB,EAAE,CAAC,IAAI,GAAU,EAAE,KAAK,YAAf,KAAsC,IAAK,GAAE,EAAE,QAAQ,GAAG,OAAO,KAAK,wBAAwB,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,wBAAwB,SAAS,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE,OAAO,KAAK,OAAO,MAAM,qDAA4D,gCAAyC,KAAO,CAAC,KAAK,oBAAoB,gBAAgB,CAAC,WAAkB,EAAE,KAAK,iBAAf,KAA2C,IAAK,GAAE,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,EAAE,CAAC,eAAe,EAAE,YAAY,CAAC,EAAE,iBAAiB,uBAAuB,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,OAAO,gBAAgB,CAAC,GAAa,OAAO,GAAjB,SAAmB,MAAM,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,OAAO,cAAc,CAAC,GAAc,OAAO,GAAlB,WAAiC,EAAE,OAAd,UAAmB,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,EAAa,OAAO,GAAlB,UAAoB,MAAM,CAAC,YAAY,EAAE,EAAE,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,cAAc,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAc,EAAE,OAAd,UAAmB,CAAC,aAAa,EAAY,OAAO,EAAE,EAAE,EAAE,GAAvB,UAA0B,EAAE,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,cAAc,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,EAAY,EAAE,OAAZ,SAA2B,EAAE,OAAX,OAAgB,CAAC,YAAY,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,OAAO,cAAc,CAAC,CAAC,aAAa,EAAY,OAAO,EAAE,EAAE,EAAE,GAAvB,UAA0B,EAAE,EAAE,cAAc,EAAE,YAAY,CAAC,EAAE,OAAO,EAAE,cAAc,iBAAiB,EAAE,EAAE,EAAE,CAAC,OAAO,KAAK,oBAAoB,gBAAgB,CAAC,WAAkB,EAAE,KAAK,iBAAf,KAA2C,IAAK,GAAE,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,eAAe,EAAE,YAAY,YAAY,EAAE,YAAY,iBAAiB,EAAE,OAAO,CAAC,CAAC,KAAK,OAAO,MAAM,qCAA4C,UAAmB,EAAE,eAAiB,CAAC,EAAE,aAAa,EAAE,UAAU,SAAS,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC,MAAM,IAAI,EAAE,qBAA4B,uBAAgC,IAAG,GAAG,EAAE,UAAU,qBAAqB,SAAS,EAAE,CAAC,GAAS,GAAN,KAAQ,MAAM,IAAI,EAAE,sFAAsF,CAAC,GAAe,OAAO,GAAnB,WAAqB,MAAM,IAAI,EAAE,8EAA8E,EAAE,OAAO,eAAe,EAAE,UAAU,UAAU,CAAC,IAAI,UAAU,CAAC,OAAO,KAAK,OAAO,WAAW,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,EAAE,EAAE,CAAC,KAAK,aAAa,GAAG,EAAE,EAAE,EAAE,EAAE,UAAU,IAAI,SAAS,EAAE,EAAE,CAAC,KAAK,aAAa,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,KAAK,OAAO,MAAM,yEAAyE,CAAC,KAAK,aAAa,OAAO,CAAC,KAAK,YAAY,OAAO,EAAE,EAAE,UAAU,WAAW,UAAU,CAAC,KAAK,YAAY,OAAO,EAAE,EAAE,UAAU,MAAM,UAAU,CAAC,KAAK,OAAO,MAAM,+EAA+E,CAAC,KAAK,UAAU,OAAO,CAAC,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,QAAQ,UAAU,CAAC,KAAK,OAAO,CAAC,KAAK,OAAO,EAAE,IAAI,CCMh/zB,MAAa,GACX,EACA,IAEO,IAAI,EACT,EACA,CAAE,QAAS,gBAAiB,WAAY,QAAe,CACvD,EACD,CCVU,EADoB,EAAM,cAAyC,CAAC,OAAQ,UAAU,CAAC,CCIpG,IAAM,EAAN,KAAoE,CAClE,gBAAgB,EAAyB,CACvC,MAAO,kCAAkC,MAI7C,MAAa,EAAuB,GAC3BA,EAAkB,EAAO,IAAI,EAAmB,CCR5C,EAAe,KAAO,IAA2C,OAC5E,IAAM,GAAA,EAAS,EAAQ,SAAA,KAAU,EAAoB,QAAQ,CAAtC,EACjB,EAAS,EAAa,EAAQ,OAAQ,CAC1C,WAAY,CAAE,IAAK,EAAQ,IAAK,QAAS,EAAQ,QAAS,CAC1D,SAAU,CAAE,QAAS,EAAQ,QAAS,WAAY,EAAQ,WAAY,CAC9D,SACT,CAAC,CAqBF,OApBA,MAAM,EAAO,WAAW,EAAQ,QAAQ,EAER,CAAE,cAAwC,CACxE,GAAM,CAAC,EAAM,GAAW,OAA6C,CACnE,SACA,OAAQ,EAAO,QAAU,QAAU,UACpC,EAAE,CAWH,OATA,MAAgB,CACd,EAAO,GAAG,qBAAwB,CAChC,EAAS,GAAA,EAAA,EAAA,EAAA,CAAoB,EAAA,CAAA,EAAA,CAAA,CAAW,UAAW,IAAI,KAAM,CAAE,CAAE,EACjE,CACF,EAAO,GAAG,kBAAqB,CAC7B,EAAS,GAAA,EAAA,EAAA,EAAA,CAAoB,EAAA,CAAA,EAAA,CAAA,CAAW,OAAQ,QAAA,CAAS,CAAE,EAC3D,EACF,CAEK,EAAC,EAAa,SAAd,CAAuB,MAAO,EAAO,WAAiC,CAAA,GCxBjF,IAAa,EAAb,cAA4C,CAG1C,CACA,YAAY,EAAsC,OAChD,MAAM,EAAM,CAQZ,KAAK,MAAQ,CAAE,OANA,EAAa,EAAM,OAAQ,CACxC,WAAY,CAAE,IAAK,EAAM,IAAK,QAAS,EAAM,QAAS,CACtD,SAAU,CAAE,QAAS,EAAM,QAAS,WAAY,EAAM,WAAY,CAClE,QAAA,EAAQ,EAAM,SAAA,KAAU,EAAoB,OAAO,CAArC,EACf,CAAC,CAEqB,OAAQ,UAAW,CAG5C,MAAe,mBAAmC,qBAChD,EAAA,EAAK,MAAM,SAAA,MAAA,EAAQ,GAAG,qBAAwB,CAC5C,EAAK,SAAS,CAAE,UAAW,IAAI,KAAQ,CAAC,EACxC,EACF,EAAA,EAAK,MAAM,SAAA,MAAA,EAAQ,GAAG,kBAAqB,CACzC,EAAK,SAAS,CAAE,OAAQ,QAAS,CAAC,EAClC,CACF,OAAA,EAAMC,EAAK,MAAM,SAAA,KAAA,IAAA,GAAA,EAAQ,WAAWA,EAAK,MAAM,QAAQ,GACnD,EAACA,EAAK,MAAM,SAAA,MAAA,EAAQ,SACtB,EAAK,SAAS,CAAE,OAAQ,UAAW,CAAC,CAIxC,sBAAsC,QACpC,EAAA,KAAK,MAAM,SAAA,MAAA,EAAQ,SAAS,CAG9B,QAAkB,CAChB,OAAO,EAAC,EAAa,SAAd,CAAuB,MAAO,KAAK,eAAQ,KAAK,MAAM,SAAiC,CAAA,GCxCrF,GAAb,MAAa,UAAwC,KAAM,CAGzD,YAAY,EAAiB,CAC3B,MAAM,EAAQ,CAHhB,KAAyB,KAAe,kCAKtC,OAAO,eAAe,KAAM,EAAgC,UAAU,GCK1E,MAAM,MACG,IAAI,GAAgC,kKAAkK,CAGzM,IACJ,EACA,IAKG,CACH,IAAM,EAA6B,EAAW,EAAa,CAC3D,GAAI,EAAA,GAAA,MAAC,EAA4B,QAC/B,MAAM,GAAgB,CAKxB,MAAO,CAAE,MAFK,EAA2B,OAAO,SAAS,EAAK,EAAa,CAE3D,YAAa,EAA2B,OAAQ,QAAS,EAA2B,SAAW,UAAW,EAGtH,OAAiC,CACrC,IAAM,EAA6B,EAAW,EAAa,CAC3D,GAAI,EAAA,GAAA,MAAC,EAA4B,QAC/B,MAAM,GAAgB,CAOxB,MAAO,CAAE,cAJa,KAAO,IAAmC,OAC9D,OAAA,EAAM,EAA2B,SAAA,KAAA,IAAA,GAAA,EAAQ,cAAc,EAAQ,GAGzC,EAGpB,OAAgC,CACpC,IAAM,EAA6B,EAAW,EAAa,CAC3D,GAAI,EAAA,GAAA,MAAC,EAA4B,QAC/B,MAAM,GAAgB,CAGxB,MAAO,CAAE,OAAQ,EAA2B,OAAQ"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@configdirector/react-web-sdk",
3
- "version": "0.1.4",
4
- "description": "React client SDK for ConfigDirector",
3
+ "version": "0.1.5",
4
+ "description": "React web client SDK for ConfigDirector. ConfigDirector is a remote configuration and feature flag service.",
5
5
  "license": "MIT",
6
6
  "author": "ConfigDirector",
7
7
  "keywords": [
@@ -18,7 +18,7 @@
18
18
  "homepage": "https://www.configdirector.com",
19
19
  "repository": {
20
20
  "type": "git",
21
- "url": "https://github.com/configdirector/react-web-sdk"
21
+ "url": "https://github.com/ConfigDirector/js-sdks"
22
22
  },
23
23
  "type": "module",
24
24
  "exports": {