@flagship.io/react-sdk 3.0.3-alpha.2 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- (()=>{"use strict";var e={821:(e,t,r)=>{r.d(t,{e:()=>p,X:()=>g}),r(624),r(391),r(0),r(47),r(534),r(275),r(128),r(444),r(11),r(226),r(270),r(76),r(547),r(257),r(941),r(486);var n=r(689),i=r.n(n),o=r(4),a=r(707);function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o=[],a=!0,s=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(s)throw i}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach((function(t){f(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function f(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var d={status:{isLoading:!0,isSdkReady:!1}},p=(0,n.createContext)({state:l({},d)}),g=function(e){var t=e.children,r=e.fetchNow,u=e.envId,c=e.apiKey,f=e.decisionMode,g=e.decisionApiUrl,v=e.timeout,y=e.logLevel,m=e.statusChangedCallback,h=e.logManager,b=e.pollingInterval,j=e.visitorData,x=e.onInitStart,S=e.onInitDone,w=e.onBucketingSuccess,O=e.onBucketingFail,M=e.loadingComponent,k=e.onBucketingUpdated,C=e.onUpdate,F=e.enableClientCache,I=e.initialBucketing,A=e.initialCampaigns,P=e.initialModifications,R=e.initialFlagsData,N=e.synchronizeOnBucketingUpdated,D=e.activateDeduplicationTime,L=e.hitDeduplicationTime,q=e.visitorCacheImplementation,E=e.hitCacheImplementation,V=e.disableCache,T=new Map;R&&R.forEach?R.forEach((function(e){T.set(e.key,e)})):P&&P.forEach?P.forEach((function(e){T.set(e.key,e)})):A&&(T=(0,a.B$)(A));var G=s((0,n.useState)(l(l({},d),{},{modifications:T})),2),H=G[0],B=G[1],_=s((0,n.useState)(),2),U=_[0],W=_[1];function z(e){var t={isSdkReady:e.isSdkReady,isLoading:e.isLoading,isVisitorDefined:!!e.fsVisitor,lastRefresh:(new Date).toISOString()};return B((function(r){return r.status.firstInitSuccess||(t.firstInitSuccess=(new Date).toISOString()),l(l({},r),{},{visitor:e.fsVisitor,modifications:e.fsVisitor.modifications,config:o.Flagship.getConfig(),status:l(l({},r.status),t)})})),t}(0,n.useRef)().current=H,(0,a.N7)((function(){var e;N&&(null===(e=H.visitor)||void 0===e||e.fetchFlags())}),[U]),(0,a.N7)((function(){Y(!0)}),[JSON.stringify(j)]),(0,n.useEffect)((function(){Q()}),[u,c,f]);var X,$=function(e,t){if(t)(0,a.H)(o.Flagship.getConfig(),t.message||t,"onReady");else{var r=z({fsVisitor:e,isSdkReady:!0,isLoading:!1});C&&C({fsModifications:e.modifications,config:o.Flagship.getConfig(),status:r})}},Y=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(j){var t=o.Flagship.newVisitor({visitorId:j.id,context:j.context,isAuthenticated:j.isAuthenticated,hasConsented:j.hasConsented,initialCampaigns:A,initialModifications:P,initialFlagsData:R});null==t||t.on("ready",(function(e){$(t,e)})),r||!t||e||z({fsVisitor:t,isSdkReady:!0,isLoading:!1}),e&&!r&&(null==t||t.fetchFlags())}},K=function(e){m&&m(e),e===o.FlagshipStatus.STARTING&&x?x():e!==o.FlagshipStatus.READY_PANIC_ON&&e!==o.FlagshipStatus.READY||(S&&S(),Y())},J=function(e){k&&k(e),W(e)},Q=function(){o.Flagship.start(u,c,{decisionMode:f,fetchNow:r,timeout:v,logLevel:y,statusChangedCallback:K,logManager:h,pollingInterval:b,onBucketingFail:O,onBucketingSuccess:w,enableClientCache:F,decisionApiUrl:g,onBucketingUpdated:J,initialBucketing:I,activateDeduplicationTime:D,hitDeduplicationTime:L,visitorCacheImplementation:q,hitCacheImplementation:E,disableCache:V,language:1})};return i().createElement(p.Provider,{value:{state:H,setState:B}},(X=!H.visitor,H.status.isLoading&&M&&X&&r?i().createElement(i().Fragment,null,M):i().createElement(i().Fragment,null,t)))};g.defaultProps={activateDeduplicationTime:10,hitDeduplicationTime:10}},341:(e,t,r)=>{r.d(t,{UM:()=>C,pc:()=>k,Nf:()=>M,nr:()=>x,_X:()=>w,GW:()=>j}),require("regenerator-runtime/runtime.js"),r(275),r(0),require("core-js/modules/es.promise.js"),r(486),r(47),r(444),r(76),r(547),r(624),r(534),r(257),r(941),r(128),r(11),r(226),r(270);var n=r(689),i=r(821),o=r(707),a=r(4),s="flagship Visitor not initialized.",u="fsVisitor not initialized, returns default value";function c(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var l=function(){function e(t){var r,n;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),n=void 0,(r="_defaultValue")in this?Object.defineProperty(this,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):this[r]=n,(0,o.cM)(a.LogLevel.WARNING,s,"GetFlag"),this._defaultValue=t}var t,r;return t=e,(r=[{key:"getValue",value:function(){return(0,o.cM)(a.LogLevel.WARNING,s,"getValue"),this._defaultValue}},{key:"exists",value:function(){return(0,o.cM)(a.LogLevel.WARNING,s,"exists"),!1}},{key:"userExposed",value:function(){return(0,o.cM)(a.LogLevel.WARNING,s,"userExposed"),Promise.resolve()}},{key:"metadata",get:function(){return(0,o.cM)(a.LogLevel.WARNING,s,"metadata"),new a.FlagMetadata({campaignId:"",campaignType:"",isReference:!1,variationGroupId:"",variationId:""})}}])&&c(t.prototype,r),e}();function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){p(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function p(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function g(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function v(e,t,r,n,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,i)}function y(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var o=e.apply(t,r);function a(e){v(o,n,i,a,s,"next",e)}function s(e){v(o,n,i,a,s,"throw",e)}a(void 0)}))}}function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}var h=function(e,t){return"object"===m(e)&&"object"===m(t)&&Array.isArray(e)===Array.isArray(t)||m(e)===m(t)},b=function(e){var t=e.visitor,r=e.params,n=e.activateAll,i=e.state,a=e.functionName,s=e.config;if(t)return t.getModificationsSync(r,n);var c=!i.status.isSdkReady&&!!i.modifications&&i.modifications.size>0,l={};return c?(r.forEach((function(e){var t,r=null===(t=i.modifications)||void 0===t?void 0:t.get(e.key);r&&h(null==r?void 0:r.value,e.defaultValue)?l[e.key]=r.value:l[e.key]=e.defaultValue})),l):((0,o.yN)(s,u,a),r.forEach((function(e){l[e.key]=e.defaultValue})),l)},j=function(e,t){var r=(0,n.useContext)(i.e).state,o=r.visitor,a=r.config;return b({functionName:"useFsModifications",state:r,visitor:o,config:a,params:e,activateAll:t})},x=function(e){var t,r=(0,n.useContext)(i.e).state,a=r.visitor,s=r.config;if(a)return a.getModificationSync(e);var c=null===(t=r.modifications)||void 0===t?void 0:t.get(e.key);return!r.status.isSdkReady&&c&&h(null==c?void 0:c.value,e.defaultValue)?c.value:((0,o.yN)(s,u,"useFsModifications"),e.defaultValue)},S=function(e){var t,r=e.key,n=e.visitor,i=e.state;if(n)return n.getModificationInfoSync(r);var o=null===(t=i.modifications)||void 0===t?void 0:t.get(r);return!i.status.isSdkReady&&o?o:null},w=function(e){var t=(0,n.useContext)(i.e).state,r=t.visitor;return S({key:e,state:t,visitor:r})},O=function(){var e=y(regeneratorRuntime.mark((function e(t,r,n,i){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,n){e.next=4;break}return(0,o.yN)(i,s,r),e.abrupt("return");case 4:return e.next=6,n.activateModifications(t);case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),(0,o.yN)(i,e.t0.message||e.t0,r);case 11:case"end":return e.stop()}}),e,null,[[0,8]])})));return function(t,r,n,i){return e.apply(this,arguments)}}(),M=function(e,t){var r=(0,n.useContext)(i.e).state.visitor;return r?r.getFlag(e,t):new l(t)},k=function(){var e=y(regeneratorRuntime.mark((function e(t){var r,o,a,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=(0,n.useContext)(i.e),o=r.state,a=o.visitor,s=o.config,e.next=5,O(t,"useFsModifications",a,s);case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),C=function(){var e=(0,n.useContext)(i.e).state,t=e.visitor,r=e.config,a=null==t?void 0:t.getModificationsArray();!e.status.isSdkReady&&e.modifications&&(a=Array.from(e.modifications,(function(e){var t,r,n=(r=2,function(e){if(Array.isArray(e))return e}(t=e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o=[],a=!0,s=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(s)throw i}}return o}}(t,r)||function(e,t){if(e){if("string"==typeof e)return g(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?g(e,t):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}());return n[0],n[1]})));var u=function(){var e=y(regeneratorRuntime.mark((function e(n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=3,O(n,"activateModification",t,r);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),c=function(){var e=y(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=3;break}return(0,o.yN)(r,s,"synchronizeModifications"),e.abrupt("return");case 3:return e.next=5,t.synchronizeModifications();case 5:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return{visitorId:null==t?void 0:t.visitorId,anonymousId:null==t?void 0:t.anonymousId,context:d({},null==t?void 0:t.context),hasConsented:null==t?void 0:t.hasConsented,setConsent:function(e){t?t.setConsent(e):(0,o.yN)(r,s,"setConsent")},updateContext:function(e){t?(t.clearContext(),t.updateContext(e)):(0,o.H)(r,s,"updateContext")},clearContext:function(){t?t.clearContext():(0,o.H)(r,s,"cleanContext")},authenticate:function(e){t?t.authenticate(e):(0,o.H)(r,s,"authenticate")},unauthenticate:function(){t?t.unauthenticate():(0,o.H)(r,s,"unauthenticate")},status:e.status,activateModification:u,synchronizeModifications:c,getModifications:function(n,i){return b({functionName:"getModifications",state:e,visitor:t,config:r,params:n,activateAll:i})},modifications:a||[],FlagsData:(null==t?void 0:t.getFlagsDataArray())||[],getModificationInfo:function(r){return S({key:r,state:e,visitor:t})},hit:{send:function(e){return t?t.sendHit(e):((0,o.H)(r,s,"sendHit"),Promise.resolve())},sendMultiple:function(e){return t?t.sendHits(e):((0,o.H)(r,s,"sendHits"),Promise.resolve())}},getFlag:function(e,r){return t?t.getFlag(e,r):new l(r)},fetchFlags:function(){return t?t.fetchFlags():((0,o.yN)(r,s,"fetchFlags"),Promise.resolve())}}}},707:(e,t,r)=>{r.d(t,{B$:()=>u,cM:()=>s,H:()=>o,yN:()=>a,N7:()=>c}),r(0),require("core-js/modules/es.regexp.to-string.js"),require("core-js/modules/es.array.concat.js"),r(624),r(391),r(47),r(534),r(275),require("core-js/modules/es.regexp.exec.js"),require("core-js/modules/es.string.replace.js");var n=r(4),i=r(689);function o(e,t,r){e&&e.logManager&&"function"==typeof e.logManager.error&&e.logLevel&&!(e.logLevel<n.LogLevel.ERROR)&&e.logManager.error(t,r)}function a(e,t,r){e&&e.logManager&&"function"==typeof e.logManager.warning&&e.logLevel&&!(e.logLevel<n.LogLevel.WARNING)&&e.logManager.warning(t,r)}function s(e,t,r){var i=new Date,o=function(e){return 1===e.toString().length?"0".concat(e):e},a="[".concat(o(i.getFullYear()),"-").concat(o(i.getMonth()),"-").concat(o(i.getDay())," ").concat(o(i.getHours()),":").concat(o(i.getMinutes()),"] [Flagship SDK] [").concat(n.LogLevel[e],"] [").concat(r,"] : ").concat(t);console.log(a)}var u=function(e){var t=new Map;return e&&Array.isArray(e)?(e.forEach((function(e){var r=e.variation.modifications.value;for(var n in r){var i=r[n];t.set(n,{key:n,campaignId:e.id,variationGroupId:e.variationGroupId,variationId:e.variation.id,isReference:e.variation.reference,value:i})}})),t):t};function c(e,t){var r=(0,i.useRef)(!0);(0,i.useEffect)((function(){if(!r.current)return"function"==typeof e?e():void 0;r.current=!1}),t)}},4:e=>{e.exports=require("@flagship.io/js-sdk")},11:e=>{e.exports=require("core-js/modules/es.array.filter.js")},486:e=>{e.exports=require("core-js/modules/es.array.from.js")},624:e=>{e.exports=require("core-js/modules/es.array.iterator.js")},257:e=>{e.exports=require("core-js/modules/es.array.slice.js")},941:e=>{e.exports=require("core-js/modules/es.function.name.js")},391:e=>{e.exports=require("core-js/modules/es.map.js")},226:e=>{e.exports=require("core-js/modules/es.object.get-own-property-descriptor.js")},270:e=>{e.exports=require("core-js/modules/es.object.get-own-property-descriptors.js")},128:e=>{e.exports=require("core-js/modules/es.object.keys.js")},0:e=>{e.exports=require("core-js/modules/es.object.to-string.js")},47:e=>{e.exports=require("core-js/modules/es.string.iterator.js")},76:e=>{e.exports=require("core-js/modules/es.symbol.description.js")},547:e=>{e.exports=require("core-js/modules/es.symbol.iterator.js")},444:e=>{e.exports=require("core-js/modules/es.symbol.js")},275:e=>{e.exports=require("core-js/modules/web.dom-collections.for-each.js")},534:e=>{e.exports=require("core-js/modules/web.dom-collections.iterator.js")},689:e=>{e.exports=require("react")}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{r.r(n),r.d(n,{FlagshipContext:()=>e.e,FlagshipProvider:()=>e.X,useFlagship:()=>o.UM,useFsActivate:()=>o.pc,useFsFlag:()=>o.Nf,useFsModification:()=>o.nr,useFsModificationInfo:()=>o._X,useFsModifications:()=>o.GW});var e=r(821),t=r(4),i={};for(const e in t)["default","FlagshipContext","FlagshipProvider"].indexOf(e)<0&&(i[e]=()=>t[e]);r.d(n,i);var o=r(341)})(),module.exports=n})();
1
+ (()=>{"use strict";var e={821:(e,t,r)=>{r.d(t,{e:()=>g,X:()=>p}),r(624),r(391),r(0),r(47),r(534),r(275),r(128),r(444),r(11),r(226),r(270),r(76),r(547),r(257),r(941),r(486);var n=r(689),i=r.n(n),o=r(4),a=r(707);function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o=[],a=!0,s=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(s)throw i}}return o}}(e,t)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function l(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach((function(t){f(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function f(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var d={status:{isLoading:!0,isSdkReady:!1}},g=(0,n.createContext)({state:l({},d)}),p=function(e){var t=e.children,r=e.fetchNow,u=e.envId,c=e.apiKey,f=e.decisionMode,p=e.decisionApiUrl,v=e.timeout,y=e.logLevel,m=e.statusChangedCallback,h=e.logManager,b=e.pollingInterval,j=e.visitorData,x=e.onInitStart,w=e.onInitDone,S=e.onBucketingSuccess,O=e.onBucketingFail,M=e.loadingComponent,k=e.onBucketingUpdated,C=e.onUpdate,F=e.enableClientCache,I=e.initialBucketing,A=e.initialCampaigns,N=e.initialModifications,P=e.initialFlagsData,R=e.fetchFlagsOnBucketingUpdated,D=e.activateDeduplicationTime,L=e.hitDeduplicationTime,q=e.visitorCacheImplementation,E=e.hitCacheImplementation,V=e.disableCache,T=new Map;P&&P.forEach?P.forEach((function(e){T.set(e.key,e)})):N&&N.forEach?N.forEach((function(e){T.set(e.key,e)})):A&&(T=(0,a.B$)(A));var G=s((0,n.useState)(l(l({},d),{},{modifications:T})),2),H=G[0],B=G[1],_=s((0,n.useState)(),2),U=_[0],W=_[1];function z(e){var t={isSdkReady:e.isSdkReady,isLoading:e.isLoading,isVisitorDefined:!!e.fsVisitor,lastRefresh:(new Date).toISOString()};return B((function(r){return r.status.firstInitSuccess||(t.firstInitSuccess=(new Date).toISOString()),l(l({},r),{},{visitor:e.fsVisitor,modifications:e.fsVisitor.modifications,config:o.Flagship.getConfig(),status:l(l({},r.status),t)})})),t}(0,n.useRef)().current=H,(0,a.N7)((function(){var e;R&&(null===(e=H.visitor)||void 0===e||e.fetchFlags())}),[U]),(0,a.N7)((function(){Y(!0)}),[JSON.stringify(j)]),(0,n.useEffect)((function(){Q()}),[u,c,f]);var X,$=function(e,t){if(t)(0,a.H)(o.Flagship.getConfig(),t.message||t,"onReady");else{var r=z({fsVisitor:e,isSdkReady:!0,isLoading:!1});C&&C({fsModifications:e.modifications,config:o.Flagship.getConfig(),status:r})}},Y=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];if(j){var t=o.Flagship.newVisitor({visitorId:j.id,context:j.context,isAuthenticated:j.isAuthenticated,hasConsented:j.hasConsented,initialCampaigns:A,initialModifications:N,initialFlagsData:P});null==t||t.on("ready",(function(e){$(t,e)})),r||!t||e||z({fsVisitor:t,isSdkReady:!0,isLoading:!1}),e&&!r&&(null==t||t.fetchFlags())}},K=function(e){m&&m(e),e===o.FlagshipStatus.STARTING&&x?x():e!==o.FlagshipStatus.READY_PANIC_ON&&e!==o.FlagshipStatus.READY||(w&&w(),Y())},J=function(e){k&&k(e),W(e)},Q=function(){o.Flagship.start(u,c,{decisionMode:f,fetchNow:r,timeout:v,logLevel:y,statusChangedCallback:K,logManager:h,pollingInterval:b,onBucketingFail:O,onBucketingSuccess:S,enableClientCache:F,decisionApiUrl:p,onBucketingUpdated:J,initialBucketing:I,activateDeduplicationTime:D,hitDeduplicationTime:L,visitorCacheImplementation:q,hitCacheImplementation:E,disableCache:V,language:1})};return i().createElement(g.Provider,{value:{state:H,setState:B}},(X=!H.visitor,H.status.isLoading&&M&&X&&r?i().createElement(i().Fragment,null,M):i().createElement(i().Fragment,null,t)))};p.defaultProps={activateDeduplicationTime:2,hitDeduplicationTime:2,fetchNow:!0}},341:(e,t,r)=>{r.d(t,{UM:()=>C,pc:()=>k,Nf:()=>M,nr:()=>x,_X:()=>S,GW:()=>j}),require("regenerator-runtime/runtime.js"),r(275),r(0),require("core-js/modules/es.promise.js"),r(486),r(47),r(444),r(76),r(547),r(624),r(534),r(257),r(941),r(128),r(11),r(226),r(270);var n=r(689),i=r(821),o=r(707),a=r(4),s="flagship Visitor not initialized.",u="fsVisitor not initialized, returns default value";function c(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}var l=function(){function e(t){var r,n;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),n=void 0,(r="_defaultValue")in this?Object.defineProperty(this,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):this[r]=n,(0,o.cM)(a.LogLevel.WARNING,s,"GetFlag"),this._defaultValue=t}var t,r;return t=e,(r=[{key:"getValue",value:function(){return(0,o.cM)(a.LogLevel.WARNING,s,"getValue"),this._defaultValue}},{key:"exists",value:function(){return(0,o.cM)(a.LogLevel.WARNING,s,"exists"),!1}},{key:"userExposed",value:function(){return(0,o.cM)(a.LogLevel.WARNING,s,"userExposed"),Promise.resolve()}},{key:"metadata",get:function(){return(0,o.cM)(a.LogLevel.WARNING,s,"metadata"),new a.FlagMetadata({campaignId:"",campaignType:"",isReference:!1,variationGroupId:"",variationId:""})}}])&&c(t.prototype,r),e}();function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function d(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){g(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function g(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function v(e,t,r,n,i,o,a){try{var s=e[o](a),u=s.value}catch(e){return void r(e)}s.done?t(u):Promise.resolve(u).then(n,i)}function y(e){return function(){var t=this,r=arguments;return new Promise((function(n,i){var o=e.apply(t,r);function a(e){v(o,n,i,a,s,"next",e)}function s(e){v(o,n,i,a,s,"throw",e)}a(void 0)}))}}function m(e){return m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},m(e)}var h=function(e,t){return"object"===m(e)&&"object"===m(t)&&Array.isArray(e)===Array.isArray(t)||m(e)===m(t)},b=function(e){var t=e.visitor,r=e.params,n=e.activateAll,i=e.state,a=e.functionName,s=e.config;if(t)return t.getModificationsSync(r,n);var c=!i.status.isSdkReady&&!!i.modifications&&i.modifications.size>0,l={};return c?(r.forEach((function(e){var t,r=null===(t=i.modifications)||void 0===t?void 0:t.get(e.key);r&&h(null==r?void 0:r.value,e.defaultValue)?l[e.key]=r.value:l[e.key]=e.defaultValue})),l):((0,o.yN)(s,u,a),r.forEach((function(e){l[e.key]=e.defaultValue})),l)},j=function(e,t){var r=(0,n.useContext)(i.e).state,o=r.visitor,a=r.config;return b({functionName:"useFsModifications",state:r,visitor:o,config:a,params:e,activateAll:t})},x=function(e){var t,r=(0,n.useContext)(i.e).state,a=r.visitor,s=r.config;if(a)return a.getModificationSync(e);var c=null===(t=r.modifications)||void 0===t?void 0:t.get(e.key);return!r.status.isSdkReady&&c&&h(null==c?void 0:c.value,e.defaultValue)?c.value:((0,o.yN)(s,u,"useFsModifications"),e.defaultValue)},w=function(e){var t,r=e.key,n=e.visitor,i=e.state;if(n)return n.getModificationInfoSync(r);var o=null===(t=i.modifications)||void 0===t?void 0:t.get(r);return!i.status.isSdkReady&&o?o:null},S=function(e){var t=(0,n.useContext)(i.e).state,r=t.visitor;return w({key:e,state:t,visitor:r})},O=function(){var e=y(regeneratorRuntime.mark((function e(t,r,n,i){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(e.prev=0,n){e.next=4;break}return(0,o.yN)(i,s,r),e.abrupt("return");case 4:return e.next=6,n.activateModifications(t);case 6:e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),(0,o.yN)(i,e.t0.message||e.t0,r);case 11:case"end":return e.stop()}}),e,null,[[0,8]])})));return function(t,r,n,i){return e.apply(this,arguments)}}(),M=function(e,t){var r=(0,n.useContext)(i.e).state.visitor;return r?r.getFlag(e,t):new l(t)},k=function(){var e=y(regeneratorRuntime.mark((function e(t){var r,o,a,s;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=(0,n.useContext)(i.e),o=r.state,a=o.visitor,s=o.config,e.next=5,O(t,"useFsModifications",a,s);case 5:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),C=function(){var e=(0,n.useContext)(i.e).state,t=e.visitor,r=e.config,a=null==t?void 0:t.getModificationsArray();!e.status.isSdkReady&&e.modifications&&(a=Array.from(e.modifications,(function(e){var t,r,n=(r=2,function(e){if(Array.isArray(e))return e}(t=e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,o=[],a=!0,s=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(o.push(n.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==r.return||r.return()}finally{if(s)throw i}}return o}}(t,r)||function(e,t){if(e){if("string"==typeof e)return p(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?p(e,t):void 0}}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}());return n[0],n[1]})));var u=function(){var e=y(regeneratorRuntime.mark((function e(n){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=3,O(n,"activateModification",t,r);case 3:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),c=function(){var e=y(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=3;break}return(0,o.yN)(r,s,"synchronizeModifications"),e.abrupt("return");case 3:return e.next=5,t.synchronizeModifications();case 5:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return{visitorId:null==t?void 0:t.visitorId,anonymousId:null==t?void 0:t.anonymousId,context:d({},null==t?void 0:t.context),hasConsented:null==t?void 0:t.hasConsented,setConsent:function(e){t?t.setConsent(e):(0,o.yN)(r,s,"setConsent")},updateContext:function(e){t?(t.clearContext(),t.updateContext(e)):(0,o.H)(r,s,"updateContext")},clearContext:function(){t?t.clearContext():(0,o.H)(r,s,"cleanContext")},authenticate:function(e){t?t.authenticate(e):(0,o.H)(r,s,"authenticate")},unauthenticate:function(){t?t.unauthenticate():(0,o.H)(r,s,"unauthenticate")},status:e.status,activateModification:u,synchronizeModifications:c,getModifications:function(n,i){return b({functionName:"getModifications",state:e,visitor:t,config:r,params:n,activateAll:i})},modifications:a||[],FlagsData:(null==t?void 0:t.getFlagsDataArray())||[],getModificationInfo:function(r){return w({key:r,state:e,visitor:t})},hit:{send:function(e){return t?t.sendHit(e):((0,o.H)(r,s,"sendHit"),Promise.resolve())},sendMultiple:function(e){return t?t.sendHits(e):((0,o.H)(r,s,"sendHits"),Promise.resolve())}},getFlag:function(e,r){return t?t.getFlag(e,r):new l(r)},fetchFlags:function(){return t?t.fetchFlags():((0,o.yN)(r,s,"fetchFlags"),Promise.resolve())}}}},707:(e,t,r)=>{r.d(t,{B$:()=>u,cM:()=>s,H:()=>o,yN:()=>a,N7:()=>c}),r(0),require("core-js/modules/es.regexp.to-string.js"),require("core-js/modules/es.array.concat.js"),r(624),r(391),r(47),r(534),r(275),require("core-js/modules/es.regexp.exec.js"),require("core-js/modules/es.string.replace.js");var n=r(4),i=r(689);function o(e,t,r){e&&e.logManager&&"function"==typeof e.logManager.error&&e.logLevel&&!(e.logLevel<n.LogLevel.ERROR)&&e.logManager.error(t,r)}function a(e,t,r){e&&e.logManager&&"function"==typeof e.logManager.warning&&e.logLevel&&!(e.logLevel<n.LogLevel.WARNING)&&e.logManager.warning(t,r)}function s(e,t,r){var i=new Date,o=function(e){return 1===e.toString().length?"0".concat(e):e},a="[".concat(o(i.getFullYear()),"-").concat(o(i.getMonth()),"-").concat(o(i.getDay())," ").concat(o(i.getHours()),":").concat(o(i.getMinutes()),"] [Flagship SDK] [").concat(n.LogLevel[e],"] [").concat(r,"] : ").concat(t);console.log(a)}var u=function(e){var t=new Map;return e&&Array.isArray(e)?(e.forEach((function(e){var r=e.variation.modifications.value;for(var n in r){var i=r[n];t.set(n,{key:n,campaignId:e.id,variationGroupId:e.variationGroupId,variationId:e.variation.id,isReference:e.variation.reference,value:i})}})),t):t};function c(e,t){var r=(0,i.useRef)(!0);(0,i.useEffect)((function(){if(!r.current)return"function"==typeof e?e():void 0;r.current=!1}),t)}},4:e=>{e.exports=require("@flagship.io/js-sdk")},11:e=>{e.exports=require("core-js/modules/es.array.filter.js")},486:e=>{e.exports=require("core-js/modules/es.array.from.js")},624:e=>{e.exports=require("core-js/modules/es.array.iterator.js")},257:e=>{e.exports=require("core-js/modules/es.array.slice.js")},941:e=>{e.exports=require("core-js/modules/es.function.name.js")},391:e=>{e.exports=require("core-js/modules/es.map.js")},226:e=>{e.exports=require("core-js/modules/es.object.get-own-property-descriptor.js")},270:e=>{e.exports=require("core-js/modules/es.object.get-own-property-descriptors.js")},128:e=>{e.exports=require("core-js/modules/es.object.keys.js")},0:e=>{e.exports=require("core-js/modules/es.object.to-string.js")},47:e=>{e.exports=require("core-js/modules/es.string.iterator.js")},76:e=>{e.exports=require("core-js/modules/es.symbol.description.js")},547:e=>{e.exports=require("core-js/modules/es.symbol.iterator.js")},444:e=>{e.exports=require("core-js/modules/es.symbol.js")},275:e=>{e.exports=require("core-js/modules/web.dom-collections.for-each.js")},534:e=>{e.exports=require("core-js/modules/web.dom-collections.iterator.js")},689:e=>{e.exports=require("react")}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n](o,o.exports,r),o.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var n={};(()=>{r.r(n),r.d(n,{FlagshipContext:()=>e.e,FlagshipProvider:()=>e.X,useFlagship:()=>o.UM,useFsActivate:()=>o.pc,useFsFlag:()=>o.Nf,useFsModification:()=>o.nr,useFsModificationInfo:()=>o._X,useFsModifications:()=>o.GW});var e=r(821),t=r(4),i={};for(const e in t)["default","FlagshipContext","FlagshipProvider"].indexOf(e)<0&&(i[e]=()=>t[e]);r.d(n,i);var o=r(341)})(),module.exports=n})();
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","mappings":"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","sources":["webpack://@flagship.io/react-sdk/./src/FlagshipContext.tsx","webpack://@flagship.io/react-sdk/external commonjs \"regenerator-runtime/runtime.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.promise.js\"","webpack://@flagship.io/react-sdk/./src/constants.ts","webpack://@flagship.io/react-sdk/./src/Flag.ts","webpack://@flagship.io/react-sdk/./src/FlagshipHooks.tsx","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.regexp.to-string.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.concat.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.regexp.exec.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.string.replace.js\"","webpack://@flagship.io/react-sdk/./src/utils.tsx","webpack://@flagship.io/react-sdk/external commonjs \"@flagship.io/js-sdk\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.filter.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.from.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.slice.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.function.name.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.map.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.get-own-property-descriptor.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.get-own-property-descriptors.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.keys.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.to-string.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.string.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.symbol.description.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.symbol.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.symbol.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/web.dom-collections.for-each.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/web.dom-collections.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"react\"","webpack://@flagship.io/react-sdk/webpack/bootstrap","webpack://@flagship.io/react-sdk/webpack/runtime/compat get default export","webpack://@flagship.io/react-sdk/webpack/runtime/define property getters","webpack://@flagship.io/react-sdk/webpack/runtime/hasOwnProperty shorthand","webpack://@flagship.io/react-sdk/webpack/runtime/make namespace object"],"sourcesContent":["// eslint-disable-next-line no-use-before-define\nimport React, {\n useState,\n useEffect,\n ReactNode,\n createContext,\n Dispatch,\n SetStateAction,\n useRef,\n} from \"react\";\nimport {\n BucketingDTO,\n CampaignDTO,\n FlagDTO,\n Flagship,\n FlagshipStatus,\n IFlagshipConfig,\n primitive,\n Visitor,\n} from \"@flagship.io/js-sdk\";\nimport {\n getModificationsFromCampaigns,\n logError,\n useNonInitialEffect,\n uuidV4,\n} from \"./utils\";\n\nexport interface FsStatus {\n /**\n * Boolean. When true, the SDK is still not ready to render your App otherwise it'll use default modifications.\n */\n isLoading: boolean;\n /**\n * Boolean. true after it has fully finished initialization tasks, false otherwise.\n */\n isSdkReady: boolean;\n\n lastModified?: Date;\n /**\n * Boolean. When true the flagship visitor instance is truthy, false otherwise.\n */\n isVisitorDefined?: boolean;\n /**\n * String or null. The last update date occurred on the flagship visitor instance.\n */\n lastRefresh?: string;\n /**\n * String or null. When null no initialization succeed yet. When string contains stringified date of last successful initialization.\n */\n firstInitSuccess?: string;\n}\nexport interface FsState {\n visitor?: Visitor;\n config?: IFlagshipConfig;\n modifications?: Map<string, FlagDTO>;\n status: FsStatus;\n initialCampaigns?: CampaignDTO[];\n initialModifications?: Map<string, FlagDTO> | FlagDTO[];\n}\n\nexport type VisitorData = {\n id?: string;\n context?: Record<string, primitive>;\n isAuthenticated?: boolean;\n hasConsented?: boolean;\n};\ninterface FsContext {\n state: FsState;\n setState?: Dispatch<SetStateAction<FsState>>;\n}\n\nexport interface FlagshipProviderProps extends IFlagshipConfig {\n /**\n * This is the data to identify the current visitor using your app\n */\n visitorData: VisitorData | null;\n envId: string;\n apiKey: string;\n /**\n * This component will be rendered when Flagship is loading at first initialization only.\n * By default, the value is undefined. It means it will display your app and it might\n * display default modifications value for a very short moment.\n */\n loadingComponent?: ReactNode;\n children?: ReactNode;\n\n /**\n * Callback function called when the SDK starts initialization.\n */\n onInitStart?(): void;\n /**\n * Callback function called when the SDK ends initialization.\n */\n onInitDone?(): void;\n /**\n * Callback function called when the SDK is updated. For example, after a synchronize is triggered or visitor context has changed.\n */\n onUpdate?(params: {\n fsModifications: Map<string, FlagDTO>;\n config: IFlagshipConfig;\n status: FsStatus;\n }): void;\n /**\n * This is an object of the data received when fetching bucketing endpoint.\n * Providing this prop will make bucketing ready to use and the first polling will immediatly check for an update.\n * If the shape of an element is not correct, an error log will give the reason why.\n */\n initialBucketing?: BucketingDTO;\n initialCampaigns?: CampaignDTO[];\n /**\n * This is a set of flag data provided to avoid the SDK to have an empty cache during the first initialization.\n * @deprecated use initialFlagsData instead\n */\n initialModifications?: Map<string, FlagDTO> | FlagDTO[];\n\n /**\n * This is a set of flag data provided to avoid the SDK to have an empty cache during the first initialization.\n */\n initialFlagsData?: Map<string, FlagDTO> | FlagDTO[];\n /**\n * If true, it'll automatically call synchronizeModifications when the bucketing file has updated\n */\n synchronizeOnBucketingUpdated?: boolean;\n}\n\nconst initStat: FsState = {\n status: { isLoading: true, isSdkReady: false },\n};\n\nexport const FlagshipContext = createContext<FsContext>({\n state: { ...initStat },\n});\n\nexport const FlagshipProvider: React.FC<FlagshipProviderProps> = ({\n children,\n fetchNow,\n envId,\n apiKey,\n decisionMode,\n decisionApiUrl,\n timeout,\n logLevel,\n statusChangedCallback,\n logManager,\n pollingInterval,\n visitorData,\n onInitStart,\n onInitDone,\n onBucketingSuccess,\n onBucketingFail,\n loadingComponent,\n onBucketingUpdated,\n onUpdate,\n enableClientCache,\n initialBucketing,\n initialCampaigns,\n initialModifications,\n initialFlagsData,\n synchronizeOnBucketingUpdated,\n activateDeduplicationTime,\n hitDeduplicationTime,\n visitorCacheImplementation,\n hitCacheImplementation,\n disableCache,\n}: FlagshipProviderProps) => {\n let modifications = new Map<string, FlagDTO>();\n if (initialFlagsData && initialFlagsData.forEach) {\n initialFlagsData.forEach((flag) => {\n modifications.set(flag.key, flag);\n });\n } else if (initialModifications && initialModifications.forEach) {\n initialModifications.forEach((modification) => {\n modifications.set(modification.key, modification);\n });\n } else if (initialCampaigns) {\n modifications = getModificationsFromCampaigns(initialCampaigns);\n }\n\n const [state, setState] = useState<FsState>({ ...initStat, modifications });\n const [lastModified, setLastModified] = useState<Date>();\n const stateRef = useRef<FsState>();\n stateRef.current = state;\n\n useNonInitialEffect(() => {\n if (synchronizeOnBucketingUpdated) {\n state.visitor?.fetchFlags();\n }\n }, [lastModified]);\n\n useNonInitialEffect(() => {\n createVisitor(true);\n }, [JSON.stringify(visitorData)]);\n\n useEffect(() => {\n initSdk();\n }, [envId, apiKey, decisionMode]);\n\n function initializeState(param: {\n fsVisitor: Visitor;\n isLoading: boolean;\n isSdkReady: boolean;\n }) {\n const newStatus: FsStatus = {\n isSdkReady: param.isSdkReady,\n isLoading: param.isLoading,\n isVisitorDefined: !!param.fsVisitor,\n lastRefresh: new Date().toISOString(),\n };\n\n setState((currentState) => {\n if (!currentState.status.firstInitSuccess) {\n newStatus.firstInitSuccess = new Date().toISOString();\n }\n\n return {\n ...currentState,\n visitor: param.fsVisitor,\n modifications: param.fsVisitor.modifications,\n config: Flagship.getConfig(),\n status: {\n ...currentState.status,\n ...newStatus,\n },\n };\n });\n\n return newStatus;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const onVisitorReady = (fsVisitor: Visitor, error: any) => {\n if (error) {\n logError(Flagship.getConfig(), error.message || error, \"onReady\");\n return;\n }\n\n const newStatus = initializeState({\n fsVisitor,\n isSdkReady: true,\n isLoading: false,\n });\n\n if (onUpdate) {\n onUpdate({\n fsModifications: fsVisitor.modifications,\n config: Flagship.getConfig(),\n status: newStatus,\n });\n }\n };\n\n const createVisitor = (fetchFlags = false) => {\n if (!visitorData) {\n return;\n }\n\n const fsVisitor = Flagship.newVisitor({\n visitorId: visitorData.id,\n context: visitorData.context,\n isAuthenticated: visitorData.isAuthenticated,\n hasConsented: visitorData.hasConsented,\n initialCampaigns,\n initialModifications,\n initialFlagsData,\n });\n\n fsVisitor?.on(\"ready\", (error) => {\n onVisitorReady(fsVisitor, error);\n });\n\n if (!fetchNow && fsVisitor && !fetchFlags) {\n initializeState({\n fsVisitor,\n isSdkReady: true,\n isLoading: false,\n });\n }\n if (fetchFlags && !fetchNow) {\n fsVisitor?.fetchFlags();\n }\n };\n const statusChanged = (status: FlagshipStatus) => {\n if (statusChangedCallback) {\n statusChangedCallback(status);\n }\n\n if (status === FlagshipStatus.STARTING && onInitStart) {\n onInitStart();\n return;\n }\n\n if (\n status === FlagshipStatus.READY_PANIC_ON ||\n status === FlagshipStatus.READY\n ) {\n if (onInitDone) {\n onInitDone();\n }\n\n createVisitor();\n }\n };\n\n const onBucketingLastModified = (lastUpdate: Date) => {\n if (onBucketingUpdated) {\n onBucketingUpdated(lastUpdate);\n }\n setLastModified(lastUpdate);\n };\n\n const initSdk = () => {\n Flagship.start(envId, apiKey, {\n decisionMode,\n fetchNow,\n timeout,\n logLevel,\n statusChangedCallback: statusChanged,\n logManager,\n pollingInterval,\n onBucketingFail,\n onBucketingSuccess,\n enableClientCache,\n decisionApiUrl,\n onBucketingUpdated: onBucketingLastModified,\n initialBucketing,\n activateDeduplicationTime,\n hitDeduplicationTime,\n visitorCacheImplementation,\n hitCacheImplementation,\n disableCache,\n language: 1,\n });\n };\n const handleDisplay = (): React.ReactNode => {\n const isFirstInit = !state.visitor;\n if (state.status.isLoading && loadingComponent && isFirstInit && fetchNow) {\n return <>{loadingComponent}</>;\n }\n return <>{children}</>;\n };\n return (\n <FlagshipContext.Provider value={{ state, setState }}>\n {handleDisplay()}\n </FlagshipContext.Provider>\n );\n};\n\nFlagshipProvider.defaultProps = {\n activateDeduplicationTime: 10,\n hitDeduplicationTime: 10,\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"regenerator-runtime/runtime.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.promise.js\");","export const noVisitorMessage = 'flagship Visitor not initialized.'\nexport const noVisitorDefault =\n 'fsVisitor not initialized, returns default value'\n","import { FlagMetadata, IFlag, IFlagMetadata, LogLevel } from '@flagship.io/js-sdk'\nimport { noVisitorMessage } from './constants'\nimport { log } from './utils'\n\nexport class Flag<T> implements IFlag<T> {\n private _defaultValue:T\n constructor (defaultValue:T) {\n log(LogLevel.WARNING, noVisitorMessage, 'GetFlag')\n this._defaultValue = defaultValue\n }\n\n getValue (): T {\n log(LogLevel.WARNING, noVisitorMessage, 'getValue')\n return this._defaultValue\n }\n\n exists ():boolean {\n log(LogLevel.WARNING, noVisitorMessage, 'exists')\n return false\n }\n\n userExposed (): Promise<void> {\n log(LogLevel.WARNING, noVisitorMessage, 'userExposed')\n return Promise.resolve()\n }\n\n get metadata ():IFlagMetadata {\n log(LogLevel.WARNING, noVisitorMessage, 'metadata')\n return new FlagMetadata({\n campaignId: '',\n campaignType: '',\n isReference: false,\n variationGroupId: '',\n variationId: ''\n })\n }\n}\n","import { useContext } from 'react'\nimport {\n FlagDTO,\n HitAbstract,\n HitShape,\n IFlag,\n IFlagshipConfig,\n IHit,\n Modification,\n modificationsRequested,\n primitive,\n Visitor\n} from '@flagship.io/js-sdk'\nimport { FlagshipContext, FsState, FsStatus } from './FlagshipContext'\nimport { logError, logWarn } from './utils'\nimport { Flag } from './Flag'\nimport { noVisitorDefault, noVisitorMessage } from './constants'\n\nconst checkType = (value: unknown, defaultValue: unknown) =>\n (typeof value === 'object' &&\n typeof defaultValue === 'object' &&\n Array.isArray(value) === Array.isArray(defaultValue)) ||\n typeof value === typeof defaultValue\n\nconst fsModificationsSync = <T extends unknown>(args: {\n functionName: string;\n params: modificationsRequested<T>[];\n activateAll?: boolean;\n state: FsState;\n visitor?: Visitor;\n config?: IFlagshipConfig;\n}): Record<string, T> => {\n const { visitor, params, activateAll, state, functionName, config } = args\n if (visitor) {\n return visitor.getModificationsSync(params, activateAll)\n }\n\n const check =\n !state.status.isSdkReady &&\n !!state.modifications &&\n state.modifications.size > 0\n const flags: Record<string, T> = {}\n\n if (check) {\n params.forEach((item) => {\n const modification = state.modifications?.get(item.key)\n\n if (modification && checkType(modification?.value, item.defaultValue)) {\n flags[item.key] = modification.value\n } else {\n flags[item.key] = item.defaultValue\n }\n })\n return flags\n }\n\n logWarn(config, noVisitorDefault, functionName)\n params.forEach((item) => {\n flags[item.key] = item.defaultValue\n })\n return flags\n}\n\n/**\n * Retrieve a modification value by its key. If no modification match the given key or if the stored value type and default value type do not match, default value will be returned.\n * @deprecated use useFsGetFlag instead\n */\nexport const useFsModifications = <T extends unknown>(\n params: modificationsRequested<T>[],\n activateAll?: boolean\n): Record<string, T> => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n const functionName = 'useFsModifications'\n\n return fsModificationsSync({\n functionName,\n state,\n visitor,\n config,\n params,\n activateAll\n })\n}\n\n/**\n * Retrieve a modification value by its key. If no modification match the given key or if the stored value type and default value type do not match, default value will be returned.\n * @deprecated use useFsGetFlag instead\n */\nexport const useFsModification: {\n <T>(params: modificationsRequested<T>): T;\n} = (params) => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n const functionName = 'useFsModifications'\n\n if (visitor) {\n return visitor.getModificationSync(params)\n }\n\n const modification = state.modifications?.get(params.key)\n\n if (\n !state.status.isSdkReady &&\n modification &&\n checkType(modification?.value, params.defaultValue)\n ) {\n return modification.value\n }\n\n logWarn(config, noVisitorDefault, functionName)\n return params.defaultValue\n}\n\nconst fsModificationInfoSync = (args: {\n key: string;\n state: FsState;\n visitor?: Visitor;\n}) => {\n const { key, visitor, state } = args\n if (visitor) {\n return visitor.getModificationInfoSync(key)\n }\n const modification = state.modifications?.get(key)\n if (!state.status.isSdkReady && modification) {\n return modification\n }\n return null\n}\n\n/**\n * Get the campaign modification information value matching the given key.\n * @param {string} key key which identify the modification.\n * @deprecated use useFsGetFlag instead\n */\nexport const useFsModificationInfo: { (key: string): Modification | null } = (\n key: string\n) => {\n const { state } = useContext(FlagshipContext)\n const { visitor } = state\n return fsModificationInfoSync({ key, state, visitor })\n}\n\nconst fsActivate = async (\n params: { key: string }[] | string[],\n functionName: string,\n visitor?: Visitor,\n config?: IFlagshipConfig\n) => {\n try {\n if (!visitor) {\n logWarn(config, noVisitorMessage, functionName)\n return\n }\n await visitor.activateModifications(params)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n logWarn(config, error.message || error, functionName)\n }\n}\n\n/**\n * This hook returns a flag object by its key. If no flag match the given key an empty flag will be returned.\n * @param key\n * @param defaultValue\n * @returns\n */\nexport const useFsFlag = <T extends unknown>(\n key: string,\n defaultValue: T\n): IFlag<T> => {\n const { state } = useContext(FlagshipContext)\n const { visitor } = state\n if (!visitor) {\n return new Flag(defaultValue)\n }\n\n return visitor.getFlag(key, defaultValue)\n}\n\n/**\n * Report this user has seen this modification. Report this user has seen these modifications.\n * @param params\n * @deprecated use useFsGetFlag instead\n * @returns\n */\nexport const useFsActivate: {\n (keys: { key: string }[]): Promise<void>;\n (keys: string[]): Promise<void>;\n} = async (params) => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n const functionName = 'useFsModifications'\n\n await fsActivate(params, functionName, visitor, config)\n}\n\nexport type UseFlagshipParams<T> = {\n modifications: {\n requested: modificationsRequested<T>[];\n activateAll?: boolean;\n };\n};\n\nexport type UseFlagshipOutput = {\n visitorId?: string;\n anonymousId?: string | null;\n context?: Record<string, primitive>;\n hasConsented?: boolean;\n /**\n * Set if visitor has consented for protected data usage.\n * @param hasConsented True if the visitor has consented false otherwise.\n */\n setConsent: (hasConsented: boolean) => void;\n modifications: Modification[];\n FlagsData: FlagDTO[];\n status: FsStatus;\n /**\n *\n * @param params\n * @param activateAll\n * @deprecated use useFsGetFlag instead\n */\n getModifications<T>(\n params: modificationsRequested<T>[],\n activateAll?: boolean\n ): Record<string, T>;\n\n /**\n *\n * @param key\n * @deprecated use useFsGetFlag instead\n */\n getModificationInfo(key: string): Modification | null;\n\n /**\n * @deprecated use useFsFetchFlags instead\n */\n synchronizeModifications(): Promise<void>;\n /**\n * @deprecated use useFsGetFlag instead\n */\n activateModification: {\n (keys: { key: string }[]): Promise<void>;\n (keys: string[]): Promise<void>;\n };\n /**\n * Update the visitor context values, matching the given keys, used for targeting.\n * A new context value associated with this key will be created if there is no previous matching value.\n * Context keys must be String, and values types must be one of the following : Number, Boolean, String.\n * @param context collection of keys, values.\n */\n updateContext(context: Record<string, primitive>): void;\n /**\n * clear the actual visitor context\n */\n clearContext(): void;\n /**\n * Authenticate anonymous visitor\n * @param visitorId\n */\n authenticate(visitorId: string): void;\n /**\n * This function change authenticated Visitor to anonymous visitor\n * @param visitorId\n */\n unauthenticate(): void;\n hit: {\n send: {\n (hit: HitAbstract): Promise<void>;\n (hit: IHit): Promise<void>;\n (hit: HitShape): Promise<void>;\n (hit: HitAbstract | IHit | HitShape): Promise<void>;\n };\n sendMultiple: {\n (hit: HitAbstract[]): Promise<void>;\n (hit: IHit[]): Promise<void>;\n (hit: HitShape[]): Promise<void>;\n (hit: HitAbstract[] | IHit[] | HitShape[]): Promise<void>;\n };\n };\n /**\n * Retrieve a Flag object by its key. If no flag match the given key an empty flag will be returned.\n * @param key flag key\n * @param defaultValue\n */\n getFlag<T>(key: string, defaultValue: T): IFlag<T>;\n fetchFlags: () => Promise<void>;\n};\n\nexport const useFlagship = (): UseFlagshipOutput => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n\n const fsUpdateContext = (context: Record<string, primitive>): void => {\n const functionName = 'updateContext'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.clearContext()\n visitor.updateContext(context)\n }\n\n const fsClearContext = (): void => {\n const functionName = 'cleanContext'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.clearContext()\n }\n\n const fsAuthenticate = (visitorId: string): void => {\n const functionName = 'authenticate'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.authenticate(visitorId)\n }\n\n const fsUnauthenticate = (): void => {\n const functionName = 'unauthenticate'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.unauthenticate()\n }\n\n /**\n * Send a Hit to Flagship servers for reporting.\n */\n const fsSendHit: {\n (hit: HitAbstract | IHit | HitShape): Promise<void>;\n } = (hit) => {\n const functionName = 'sendHit'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return Promise.resolve()\n }\n return visitor.sendHit(hit)\n }\n\n /**\n * Send a Hit to Flagship servers for reporting.\n */\n const fsSendHits: {\n (hit: HitAbstract[] | IHit[] | HitShape[]): Promise<void>;\n } = (hit) => {\n const functionName = 'sendHits'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return Promise.resolve()\n }\n return visitor.sendHits(hit)\n }\n\n let modifications = visitor?.getModificationsArray()\n if (!state.status.isSdkReady && state.modifications) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n modifications = Array.from(state.modifications, ([_key, item]) => item)\n }\n\n const activateModification: {\n (keys: { key: string }[]): Promise<void>;\n (keys: string[]): Promise<void>;\n } = async (params) => {\n const functionName = 'activateModification'\n await fsActivate(params, functionName, visitor, config)\n }\n const synchronizeModifications = async () => {\n if (!visitor) {\n logWarn(config, noVisitorMessage, 'synchronizeModifications')\n return\n }\n await visitor.synchronizeModifications()\n }\n\n const getModifications = <T extends unknown>(\n params: modificationsRequested<T>[],\n activateAll?: boolean\n ) => {\n const functionName = 'getModifications'\n return fsModificationsSync({\n functionName,\n state,\n visitor,\n config,\n params,\n activateAll\n })\n }\n\n const getModificationInfo: { (key: string): Modification | null } = (\n key: string\n ) => {\n return fsModificationInfoSync({ key, state, visitor })\n }\n\n function getFlag<T> (key: string, defaultValue: T): IFlag<T> {\n if (!visitor) {\n return new Flag(defaultValue)\n }\n return visitor.getFlag(key, defaultValue)\n }\n\n function fetchFlags (): Promise<void> {\n if (!visitor) {\n logWarn(config, noVisitorMessage, 'fetchFlags')\n return Promise.resolve()\n }\n return visitor.fetchFlags()\n }\n\n function setConsent (hasConsented: boolean): void {\n if (!visitor) {\n logWarn(config, noVisitorMessage, 'setConsent')\n return\n }\n visitor.setConsent(hasConsented)\n }\n\n return {\n visitorId: visitor?.visitorId,\n anonymousId: visitor?.anonymousId,\n context: { ...visitor?.context },\n hasConsented: visitor?.hasConsented,\n setConsent,\n updateContext: fsUpdateContext,\n clearContext: fsClearContext,\n authenticate: fsAuthenticate,\n unauthenticate: fsUnauthenticate,\n status: state.status,\n activateModification,\n synchronizeModifications,\n getModifications,\n modifications: modifications || [],\n FlagsData: visitor?.getFlagsDataArray() || [],\n getModificationInfo,\n hit: {\n send: fsSendHit,\n sendMultiple: fsSendHits\n },\n getFlag,\n fetchFlags\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.regexp.to-string.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.array.concat.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.regexp.exec.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.string.replace.js\");","import {\n CampaignDTO,\n IFlagshipConfig,\n LogLevel,\n Modification\n} from '@flagship.io/js-sdk'\nimport { EffectCallback, DependencyList, useEffect, useRef } from 'react'\n\nexport function logError (\n config: IFlagshipConfig | undefined,\n message: string,\n tag: string\n): void {\n if (\n !config ||\n !config.logManager ||\n typeof config.logManager.error !== 'function' ||\n !config.logLevel ||\n config.logLevel < LogLevel.ERROR\n ) {\n return\n }\n\n config.logManager.error(message, tag)\n}\n\nexport function logInfo (\n config: IFlagshipConfig | undefined,\n message: string,\n tag: string\n): void {\n if (\n !config ||\n !config.logManager ||\n typeof config.logManager.info !== 'function' ||\n !config.logLevel ||\n config.logLevel < LogLevel.INFO\n ) {\n return\n }\n config.logManager.info(message, tag)\n}\n\nexport function logWarn (\n config: IFlagshipConfig | undefined,\n message: string,\n tag: string\n): void {\n if (\n !config ||\n !config.logManager ||\n typeof config.logManager.warning !== 'function' ||\n !config.logLevel ||\n config.logLevel < LogLevel.WARNING\n ) {\n return\n }\n config.logManager.warning(message, tag)\n}\n\nexport function log (level: LogLevel, message: string, tag: string): void {\n const now = new Date()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const getTwoDigit = (value: any) => {\n return value.toString().length === 1 ? `0${value}` : value\n }\n\n const out = `[${getTwoDigit(now.getFullYear())}-${getTwoDigit(\n now.getMonth()\n )}-${getTwoDigit(now.getDay())} ${getTwoDigit(now.getHours())}:${getTwoDigit(\n now.getMinutes()\n )}] [Flagship SDK] [${LogLevel[level]}] [${tag}] : ${message}`\n console.log(out)\n}\n\nexport const getModificationsFromCampaigns = (\n campaigns: Array<CampaignDTO>\n): Map<string, Modification> => {\n const modifications = new Map<string, Modification>()\n if (!campaigns || !Array.isArray(campaigns)) {\n return modifications\n }\n campaigns.forEach((campaign) => {\n const object = campaign.variation.modifications.value\n for (const key in object) {\n const value = object[key]\n modifications.set(key, {\n key,\n campaignId: campaign.id,\n variationGroupId: campaign.variationGroupId,\n variationId: campaign.variation.id,\n isReference: campaign.variation.reference,\n value\n })\n }\n })\n return modifications\n}\n\nexport function uuidV4 (): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\n /[xy]/g,\n function (char) {\n const rand = (Math.random() * 16) | 0\n const value = char === 'x' ? rand : (rand & 0x3) | 0x8\n return value.toString(16)\n }\n )\n}\n\nexport function useNonInitialEffect (\n effect: EffectCallback,\n deps?: DependencyList\n): void {\n const initialRender = useRef(true)\n\n useEffect(() => {\n if (initialRender.current) {\n initialRender.current = false\n return\n }\n\n if (typeof effect === 'function') {\n return effect()\n }\n }, deps)\n}\n","module.exports = require(\"@flagship.io/js-sdk\");","module.exports = require(\"core-js/modules/es.array.filter.js\");","module.exports = require(\"core-js/modules/es.array.from.js\");","module.exports = require(\"core-js/modules/es.array.iterator.js\");","module.exports = require(\"core-js/modules/es.array.slice.js\");","module.exports = require(\"core-js/modules/es.function.name.js\");","module.exports = require(\"core-js/modules/es.map.js\");","module.exports = require(\"core-js/modules/es.object.get-own-property-descriptor.js\");","module.exports = require(\"core-js/modules/es.object.get-own-property-descriptors.js\");","module.exports = require(\"core-js/modules/es.object.keys.js\");","module.exports = require(\"core-js/modules/es.object.to-string.js\");","module.exports = require(\"core-js/modules/es.string.iterator.js\");","module.exports = require(\"core-js/modules/es.symbol.description.js\");","module.exports = require(\"core-js/modules/es.symbol.iterator.js\");","module.exports = require(\"core-js/modules/es.symbol.js\");","module.exports = require(\"core-js/modules/web.dom-collections.for-each.js\");","module.exports = require(\"core-js/modules/web.dom-collections.iterator.js\");","module.exports = require(\"react\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["initStat","status","isLoading","isSdkReady","FlagshipContext","createContext","state","FlagshipProvider","children","fetchNow","envId","apiKey","decisionMode","decisionApiUrl","timeout","logLevel","statusChangedCallback","logManager","pollingInterval","visitorData","onInitStart","onInitDone","onBucketingSuccess","onBucketingFail","loadingComponent","onBucketingUpdated","onUpdate","enableClientCache","initialBucketing","initialCampaigns","initialModifications","initialFlagsData","synchronizeOnBucketingUpdated","activateDeduplicationTime","hitDeduplicationTime","visitorCacheImplementation","hitCacheImplementation","disableCache","modifications","Map","forEach","flag","set","key","modification","getModificationsFromCampaigns","useState","setState","lastModified","setLastModified","initializeState","param","newStatus","isVisitorDefined","fsVisitor","lastRefresh","Date","toISOString","currentState","firstInitSuccess","visitor","config","Flagship","useRef","current","useNonInitialEffect","fetchFlags","createVisitor","JSON","stringify","useEffect","initSdk","isFirstInit","onVisitorReady","error","logError","message","fsModifications","visitorId","id","context","isAuthenticated","hasConsented","on","statusChanged","FlagshipStatus","onBucketingLastModified","lastUpdate","language","Provider","value","defaultProps","require","noVisitorMessage","noVisitorDefault","Flag","defaultValue","log","LogLevel","this","_defaultValue","Promise","resolve","FlagMetadata","campaignId","campaignType","isReference","variationGroupId","variationId","checkType","Array","isArray","fsModificationsSync","args","params","activateAll","functionName","getModificationsSync","check","size","flags","item","get","logWarn","useFsModifications","useContext","useFsModification","getModificationSync","fsModificationInfoSync","getModificationInfoSync","useFsModificationInfo","fsActivate","activateModifications","useFsFlag","getFlag","useFsActivate","useFlagship","getModificationsArray","from","activateModification","synchronizeModifications","anonymousId","setConsent","updateContext","clearContext","authenticate","unauthenticate","getModifications","FlagsData","getFlagsDataArray","getModificationInfo","hit","send","sendHit","sendMultiple","sendHits","tag","warning","level","now","getTwoDigit","toString","length","out","getFullYear","getMonth","getDay","getHours","getMinutes","console","campaigns","campaign","object","variation","reference","effect","deps","initialRender","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag"],"sourceRoot":""}
1
+ {"version":3,"file":"index.js","mappings":"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","sources":["webpack://@flagship.io/react-sdk/./src/FlagshipContext.tsx","webpack://@flagship.io/react-sdk/external commonjs \"regenerator-runtime/runtime.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.promise.js\"","webpack://@flagship.io/react-sdk/./src/constants.ts","webpack://@flagship.io/react-sdk/./src/Flag.ts","webpack://@flagship.io/react-sdk/./src/FlagshipHooks.tsx","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.regexp.to-string.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.concat.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.regexp.exec.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.string.replace.js\"","webpack://@flagship.io/react-sdk/./src/utils.tsx","webpack://@flagship.io/react-sdk/external commonjs \"@flagship.io/js-sdk\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.filter.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.from.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.array.slice.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.function.name.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.map.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.get-own-property-descriptor.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.get-own-property-descriptors.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.keys.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.object.to-string.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.string.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.symbol.description.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.symbol.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/es.symbol.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/web.dom-collections.for-each.js\"","webpack://@flagship.io/react-sdk/external commonjs \"core-js/modules/web.dom-collections.iterator.js\"","webpack://@flagship.io/react-sdk/external commonjs \"react\"","webpack://@flagship.io/react-sdk/webpack/bootstrap","webpack://@flagship.io/react-sdk/webpack/runtime/compat get default export","webpack://@flagship.io/react-sdk/webpack/runtime/define property getters","webpack://@flagship.io/react-sdk/webpack/runtime/hasOwnProperty shorthand","webpack://@flagship.io/react-sdk/webpack/runtime/make namespace object"],"sourcesContent":["// eslint-disable-next-line no-use-before-define\nimport React, {\n useState,\n useEffect,\n ReactNode,\n createContext,\n Dispatch,\n SetStateAction,\n useRef,\n} from \"react\";\nimport {\n BucketingDTO,\n CampaignDTO,\n FlagDTO,\n Flagship,\n FlagshipStatus,\n IFlagshipConfig,\n primitive,\n Visitor,\n} from \"@flagship.io/js-sdk\";\nimport {\n getModificationsFromCampaigns,\n logError,\n useNonInitialEffect,\n uuidV4,\n} from \"./utils\";\n\nexport interface FsStatus {\n /**\n * Boolean. When true, the SDK is still not ready to render your App otherwise it'll use default modifications.\n */\n isLoading: boolean;\n /**\n * Boolean. true after it has fully finished initialization tasks, false otherwise.\n */\n isSdkReady: boolean;\n\n lastModified?: Date;\n /**\n * Boolean. When true the flagship visitor instance is truthy, false otherwise.\n */\n isVisitorDefined?: boolean;\n /**\n * String or null. The last update date occurred on the flagship visitor instance.\n */\n lastRefresh?: string;\n /**\n * String or null. When null no initialization succeed yet. When string contains stringified date of last successful initialization.\n */\n firstInitSuccess?: string;\n}\nexport interface FsState {\n visitor?: Visitor;\n config?: IFlagshipConfig;\n modifications?: Map<string, FlagDTO>;\n status: FsStatus;\n initialCampaigns?: CampaignDTO[];\n initialModifications?: Map<string, FlagDTO> | FlagDTO[];\n}\n\nexport type VisitorData = {\n id?: string;\n context?: Record<string, primitive>;\n isAuthenticated?: boolean;\n hasConsented?: boolean;\n};\ninterface FsContext {\n state: FsState;\n setState?: Dispatch<SetStateAction<FsState>>;\n}\n\nexport interface FlagshipProviderProps extends IFlagshipConfig {\n /**\n * This is the data to identify the current visitor using your app\n */\n visitorData: VisitorData | null;\n envId: string;\n apiKey: string;\n /**\n * This component will be rendered when Flagship is loading at first initialization only.\n * By default, the value is undefined. It means it will display your app and it might\n * display default modifications value for a very short moment.\n */\n loadingComponent?: ReactNode;\n children?: ReactNode;\n\n /**\n * Callback function called when the SDK starts initialization.\n */\n onInitStart?(): void;\n /**\n * Callback function called when the SDK ends initialization.\n */\n onInitDone?(): void;\n /**\n * Callback function called when the SDK is updated. For example, after a synchronize is triggered or visitor context has changed.\n */\n onUpdate?(params: {\n fsModifications: Map<string, FlagDTO>;\n config: IFlagshipConfig;\n status: FsStatus;\n }): void;\n /**\n * This is an object of the data received when fetching bucketing endpoint.\n * Providing this prop will make bucketing ready to use and the first polling will immediatly check for an update.\n * If the shape of an element is not correct, an error log will give the reason why.\n */\n initialBucketing?: BucketingDTO;\n initialCampaigns?: CampaignDTO[];\n /**\n * This is a set of flag data provided to avoid the SDK to have an empty cache during the first initialization.\n * @deprecated use initialFlagsData instead\n */\n initialModifications?: Map<string, FlagDTO> | FlagDTO[];\n\n /**\n * This is a set of flag data provided to avoid the SDK to have an empty cache during the first initialization.\n */\n initialFlagsData?: Map<string, FlagDTO> | FlagDTO[];\n /**\n * If true, it'll automatically call synchronizeModifications when the bucketing file has updated\n */\n fetchFlagsOnBucketingUpdated?: boolean;\n}\n\nconst initStat: FsState = {\n status: { isLoading: true, isSdkReady: false },\n};\n\nexport const FlagshipContext = createContext<FsContext>({\n state: { ...initStat },\n});\n\nexport const FlagshipProvider: React.FC<FlagshipProviderProps> = ({\n children,\n fetchNow,\n envId,\n apiKey,\n decisionMode,\n decisionApiUrl,\n timeout,\n logLevel,\n statusChangedCallback,\n logManager,\n pollingInterval,\n visitorData,\n onInitStart,\n onInitDone,\n onBucketingSuccess,\n onBucketingFail,\n loadingComponent,\n onBucketingUpdated,\n onUpdate,\n enableClientCache,\n initialBucketing,\n initialCampaigns,\n initialModifications,\n initialFlagsData,\n fetchFlagsOnBucketingUpdated,\n activateDeduplicationTime,\n hitDeduplicationTime,\n visitorCacheImplementation,\n hitCacheImplementation,\n disableCache,\n}: FlagshipProviderProps) => {\n let modifications = new Map<string, FlagDTO>();\n if (initialFlagsData && initialFlagsData.forEach) {\n initialFlagsData.forEach((flag) => {\n modifications.set(flag.key, flag);\n });\n } else if (initialModifications && initialModifications.forEach) {\n initialModifications.forEach((modification) => {\n modifications.set(modification.key, modification);\n });\n } else if (initialCampaigns) {\n modifications = getModificationsFromCampaigns(initialCampaigns);\n }\n\n const [state, setState] = useState<FsState>({ ...initStat, modifications });\n const [lastModified, setLastModified] = useState<Date>();\n const stateRef = useRef<FsState>();\n stateRef.current = state;\n\n useNonInitialEffect(() => {\n if (fetchFlagsOnBucketingUpdated) {\n state.visitor?.fetchFlags();\n }\n }, [lastModified]);\n\n useNonInitialEffect(() => {\n createVisitor(true);\n }, [JSON.stringify(visitorData)]);\n\n useEffect(() => {\n initSdk();\n }, [envId, apiKey, decisionMode]);\n\n function initializeState(param: {\n fsVisitor: Visitor;\n isLoading: boolean;\n isSdkReady: boolean;\n }) {\n const newStatus: FsStatus = {\n isSdkReady: param.isSdkReady,\n isLoading: param.isLoading,\n isVisitorDefined: !!param.fsVisitor,\n lastRefresh: new Date().toISOString(),\n };\n\n setState((currentState) => {\n if (!currentState.status.firstInitSuccess) {\n newStatus.firstInitSuccess = new Date().toISOString();\n }\n\n return {\n ...currentState,\n visitor: param.fsVisitor,\n modifications: param.fsVisitor.modifications,\n config: Flagship.getConfig(),\n status: {\n ...currentState.status,\n ...newStatus,\n },\n };\n });\n\n return newStatus;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const onVisitorReady = (fsVisitor: Visitor, error: any) => {\n if (error) {\n logError(Flagship.getConfig(), error.message || error, \"onReady\");\n return;\n }\n\n const newStatus = initializeState({\n fsVisitor,\n isSdkReady: true,\n isLoading: false,\n });\n\n if (onUpdate) {\n onUpdate({\n fsModifications: fsVisitor.modifications,\n config: Flagship.getConfig(),\n status: newStatus,\n });\n }\n };\n\n const createVisitor = (fetchFlags = false) => {\n if (!visitorData) {\n return;\n }\n\n const fsVisitor = Flagship.newVisitor({\n visitorId: visitorData.id,\n context: visitorData.context,\n isAuthenticated: visitorData.isAuthenticated,\n hasConsented: visitorData.hasConsented,\n initialCampaigns,\n initialModifications,\n initialFlagsData,\n });\n\n fsVisitor?.on(\"ready\", (error) => {\n onVisitorReady(fsVisitor, error);\n });\n\n if (!fetchNow && fsVisitor && !fetchFlags) {\n initializeState({\n fsVisitor,\n isSdkReady: true,\n isLoading: false,\n });\n }\n if (fetchFlags && !fetchNow) {\n fsVisitor?.fetchFlags();\n }\n };\n const statusChanged = (status: FlagshipStatus) => {\n if (statusChangedCallback) {\n statusChangedCallback(status);\n }\n\n if (status === FlagshipStatus.STARTING && onInitStart) {\n onInitStart();\n return;\n }\n\n if (\n status === FlagshipStatus.READY_PANIC_ON ||\n status === FlagshipStatus.READY\n ) {\n if (onInitDone) {\n onInitDone();\n }\n\n createVisitor();\n }\n };\n\n const onBucketingLastModified = (lastUpdate: Date) => {\n if (onBucketingUpdated) {\n onBucketingUpdated(lastUpdate);\n }\n setLastModified(lastUpdate);\n };\n\n const initSdk = () => {\n Flagship.start(envId, apiKey, {\n decisionMode,\n fetchNow,\n timeout,\n logLevel,\n statusChangedCallback: statusChanged,\n logManager,\n pollingInterval,\n onBucketingFail,\n onBucketingSuccess,\n enableClientCache,\n decisionApiUrl,\n onBucketingUpdated: onBucketingLastModified,\n initialBucketing,\n activateDeduplicationTime,\n hitDeduplicationTime,\n visitorCacheImplementation,\n hitCacheImplementation,\n disableCache,\n language: 1,\n });\n };\n const handleDisplay = (): React.ReactNode => {\n const isFirstInit = !state.visitor;\n if (state.status.isLoading && loadingComponent && isFirstInit && fetchNow) {\n return <>{loadingComponent}</>;\n }\n return <>{children}</>;\n };\n return (\n <FlagshipContext.Provider value={{ state, setState }}>\n {handleDisplay()}\n </FlagshipContext.Provider>\n );\n};\n\nFlagshipProvider.defaultProps = {\n activateDeduplicationTime: 2,\n hitDeduplicationTime: 2,\n fetchNow: true,\n};\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"regenerator-runtime/runtime.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.promise.js\");","export const noVisitorMessage = 'flagship Visitor not initialized.'\nexport const noVisitorDefault =\n 'fsVisitor not initialized, returns default value'\n","import { FlagMetadata, IFlag, IFlagMetadata, LogLevel } from '@flagship.io/js-sdk'\nimport { noVisitorMessage } from './constants'\nimport { log } from './utils'\n\nexport class Flag<T> implements IFlag<T> {\n private _defaultValue:T\n constructor (defaultValue:T) {\n log(LogLevel.WARNING, noVisitorMessage, 'GetFlag')\n this._defaultValue = defaultValue\n }\n\n getValue (): T {\n log(LogLevel.WARNING, noVisitorMessage, 'getValue')\n return this._defaultValue\n }\n\n exists ():boolean {\n log(LogLevel.WARNING, noVisitorMessage, 'exists')\n return false\n }\n\n userExposed (): Promise<void> {\n log(LogLevel.WARNING, noVisitorMessage, 'userExposed')\n return Promise.resolve()\n }\n\n get metadata ():IFlagMetadata {\n log(LogLevel.WARNING, noVisitorMessage, 'metadata')\n return new FlagMetadata({\n campaignId: '',\n campaignType: '',\n isReference: false,\n variationGroupId: '',\n variationId: ''\n })\n }\n}\n","import { useContext } from 'react'\nimport {\n FlagDTO,\n HitAbstract,\n HitShape,\n IFlag,\n IFlagshipConfig,\n IHit,\n Modification,\n modificationsRequested,\n primitive,\n Visitor\n} from '@flagship.io/js-sdk'\nimport { FlagshipContext, FsState, FsStatus } from './FlagshipContext'\nimport { logError, logWarn } from './utils'\nimport { Flag } from './Flag'\nimport { noVisitorDefault, noVisitorMessage } from './constants'\n\nconst checkType = (value: unknown, defaultValue: unknown) =>\n (typeof value === 'object' &&\n typeof defaultValue === 'object' &&\n Array.isArray(value) === Array.isArray(defaultValue)) ||\n typeof value === typeof defaultValue\n\nconst fsModificationsSync = <T extends unknown>(args: {\n functionName: string;\n params: modificationsRequested<T>[];\n activateAll?: boolean;\n state: FsState;\n visitor?: Visitor;\n config?: IFlagshipConfig;\n}): Record<string, T> => {\n const { visitor, params, activateAll, state, functionName, config } = args\n if (visitor) {\n return visitor.getModificationsSync(params, activateAll)\n }\n\n const check =\n !state.status.isSdkReady &&\n !!state.modifications &&\n state.modifications.size > 0\n const flags: Record<string, T> = {}\n\n if (check) {\n params.forEach((item) => {\n const modification = state.modifications?.get(item.key)\n\n if (modification && checkType(modification?.value, item.defaultValue)) {\n flags[item.key] = modification.value\n } else {\n flags[item.key] = item.defaultValue\n }\n })\n return flags\n }\n\n logWarn(config, noVisitorDefault, functionName)\n params.forEach((item) => {\n flags[item.key] = item.defaultValue\n })\n return flags\n}\n\n/**\n * Retrieve a modification value by its key. If no modification match the given key or if the stored value type and default value type do not match, default value will be returned.\n * @deprecated use useFsGetFlag instead\n */\nexport const useFsModifications = <T extends unknown>(\n params: modificationsRequested<T>[],\n activateAll?: boolean\n): Record<string, T> => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n const functionName = 'useFsModifications'\n\n return fsModificationsSync({\n functionName,\n state,\n visitor,\n config,\n params,\n activateAll\n })\n}\n\n/**\n * Retrieve a modification value by its key. If no modification match the given key or if the stored value type and default value type do not match, default value will be returned.\n * @deprecated use useFsGetFlag instead\n */\nexport const useFsModification: {\n <T>(params: modificationsRequested<T>): T;\n} = (params) => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n const functionName = 'useFsModifications'\n\n if (visitor) {\n return visitor.getModificationSync(params)\n }\n\n const modification = state.modifications?.get(params.key)\n\n if (\n !state.status.isSdkReady &&\n modification &&\n checkType(modification?.value, params.defaultValue)\n ) {\n return modification.value\n }\n\n logWarn(config, noVisitorDefault, functionName)\n return params.defaultValue\n}\n\nconst fsModificationInfoSync = (args: {\n key: string;\n state: FsState;\n visitor?: Visitor;\n}) => {\n const { key, visitor, state } = args\n if (visitor) {\n return visitor.getModificationInfoSync(key)\n }\n const modification = state.modifications?.get(key)\n if (!state.status.isSdkReady && modification) {\n return modification\n }\n return null\n}\n\n/**\n * Get the campaign modification information value matching the given key.\n * @param {string} key key which identify the modification.\n * @deprecated use useFsGetFlag instead\n */\nexport const useFsModificationInfo: { (key: string): Modification | null } = (\n key: string\n) => {\n const { state } = useContext(FlagshipContext)\n const { visitor } = state\n return fsModificationInfoSync({ key, state, visitor })\n}\n\nconst fsActivate = async (\n params: { key: string }[] | string[],\n functionName: string,\n visitor?: Visitor,\n config?: IFlagshipConfig\n) => {\n try {\n if (!visitor) {\n logWarn(config, noVisitorMessage, functionName)\n return\n }\n await visitor.activateModifications(params)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n logWarn(config, error.message || error, functionName)\n }\n}\n\n/**\n * This hook returns a flag object by its key. If no flag match the given key an empty flag will be returned.\n * @param key\n * @param defaultValue\n * @returns\n */\nexport const useFsFlag = <T extends unknown>(\n key: string,\n defaultValue: T\n): IFlag<T> => {\n const { state } = useContext(FlagshipContext)\n const { visitor } = state\n if (!visitor) {\n return new Flag(defaultValue)\n }\n\n return visitor.getFlag(key, defaultValue)\n}\n\n/**\n * Report this user has seen this modification. Report this user has seen these modifications.\n * @param params\n * @deprecated use useFsGetFlag instead\n * @returns\n */\nexport const useFsActivate: {\n (keys: { key: string }[]): Promise<void>;\n (keys: string[]): Promise<void>;\n} = async (params) => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n const functionName = 'useFsModifications'\n\n await fsActivate(params, functionName, visitor, config)\n}\n\nexport type UseFlagshipParams<T> = {\n modifications: {\n requested: modificationsRequested<T>[];\n activateAll?: boolean;\n };\n};\n\nexport type UseFlagshipOutput = {\n visitorId?: string;\n anonymousId?: string | null;\n context?: Record<string, primitive>;\n hasConsented?: boolean;\n /**\n * Set if visitor has consented for protected data usage.\n * @param hasConsented True if the visitor has consented false otherwise.\n */\n setConsent: (hasConsented: boolean) => void;\n modifications: Modification[];\n FlagsData: FlagDTO[];\n status: FsStatus;\n /**\n *\n * @param params\n * @param activateAll\n * @deprecated use useFsGetFlag instead\n */\n getModifications<T>(\n params: modificationsRequested<T>[],\n activateAll?: boolean\n ): Record<string, T>;\n\n /**\n *\n * @param key\n * @deprecated use useFsGetFlag instead\n */\n getModificationInfo(key: string): Modification | null;\n\n /**\n * @deprecated use useFsFetchFlags instead\n */\n synchronizeModifications(): Promise<void>;\n /**\n * @deprecated use useFsGetFlag instead\n */\n activateModification: {\n (keys: { key: string }[]): Promise<void>;\n (keys: string[]): Promise<void>;\n };\n /**\n * Update the visitor context values, matching the given keys, used for targeting.\n * A new context value associated with this key will be created if there is no previous matching value.\n * Context keys must be String, and values types must be one of the following : Number, Boolean, String.\n * @param context collection of keys, values.\n */\n updateContext(context: Record<string, primitive>): void;\n /**\n * clear the actual visitor context\n */\n clearContext(): void;\n /**\n * Authenticate anonymous visitor\n * @param visitorId\n */\n authenticate(visitorId: string): void;\n /**\n * This function change authenticated Visitor to anonymous visitor\n * @param visitorId\n */\n unauthenticate(): void;\n hit: {\n send: {\n (hit: HitAbstract): Promise<void>;\n (hit: IHit): Promise<void>;\n (hit: HitShape): Promise<void>;\n (hit: HitAbstract | IHit | HitShape): Promise<void>;\n };\n sendMultiple: {\n (hit: HitAbstract[]): Promise<void>;\n (hit: IHit[]): Promise<void>;\n (hit: HitShape[]): Promise<void>;\n (hit: HitAbstract[] | IHit[] | HitShape[]): Promise<void>;\n };\n };\n /**\n * Retrieve a Flag object by its key. If no flag match the given key an empty flag will be returned.\n * @param key flag key\n * @param defaultValue\n */\n getFlag<T>(key: string, defaultValue: T): IFlag<T>;\n fetchFlags: () => Promise<void>;\n};\n\nexport const useFlagship = (): UseFlagshipOutput => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n\n const fsUpdateContext = (context: Record<string, primitive>): void => {\n const functionName = 'updateContext'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.clearContext()\n visitor.updateContext(context)\n }\n\n const fsClearContext = (): void => {\n const functionName = 'cleanContext'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.clearContext()\n }\n\n const fsAuthenticate = (visitorId: string): void => {\n const functionName = 'authenticate'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.authenticate(visitorId)\n }\n\n const fsUnauthenticate = (): void => {\n const functionName = 'unauthenticate'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.unauthenticate()\n }\n\n /**\n * Send a Hit to Flagship servers for reporting.\n */\n const fsSendHit: {\n (hit: HitAbstract | IHit | HitShape): Promise<void>;\n } = (hit) => {\n const functionName = 'sendHit'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return Promise.resolve()\n }\n return visitor.sendHit(hit)\n }\n\n /**\n * Send a Hit to Flagship servers for reporting.\n */\n const fsSendHits: {\n (hit: HitAbstract[] | IHit[] | HitShape[]): Promise<void>;\n } = (hit) => {\n const functionName = 'sendHits'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return Promise.resolve()\n }\n return visitor.sendHits(hit)\n }\n\n let modifications = visitor?.getModificationsArray()\n if (!state.status.isSdkReady && state.modifications) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n modifications = Array.from(state.modifications, ([_key, item]) => item)\n }\n\n const activateModification: {\n (keys: { key: string }[]): Promise<void>;\n (keys: string[]): Promise<void>;\n } = async (params) => {\n const functionName = 'activateModification'\n await fsActivate(params, functionName, visitor, config)\n }\n const synchronizeModifications = async () => {\n if (!visitor) {\n logWarn(config, noVisitorMessage, 'synchronizeModifications')\n return\n }\n await visitor.synchronizeModifications()\n }\n\n const getModifications = <T extends unknown>(\n params: modificationsRequested<T>[],\n activateAll?: boolean\n ) => {\n const functionName = 'getModifications'\n return fsModificationsSync({\n functionName,\n state,\n visitor,\n config,\n params,\n activateAll\n })\n }\n\n const getModificationInfo: { (key: string): Modification | null } = (\n key: string\n ) => {\n return fsModificationInfoSync({ key, state, visitor })\n }\n\n function getFlag<T> (key: string, defaultValue: T): IFlag<T> {\n if (!visitor) {\n return new Flag(defaultValue)\n }\n return visitor.getFlag(key, defaultValue)\n }\n\n function fetchFlags (): Promise<void> {\n if (!visitor) {\n logWarn(config, noVisitorMessage, 'fetchFlags')\n return Promise.resolve()\n }\n return visitor.fetchFlags()\n }\n\n function setConsent (hasConsented: boolean): void {\n if (!visitor) {\n logWarn(config, noVisitorMessage, 'setConsent')\n return\n }\n visitor.setConsent(hasConsented)\n }\n\n return {\n visitorId: visitor?.visitorId,\n anonymousId: visitor?.anonymousId,\n context: { ...visitor?.context },\n hasConsented: visitor?.hasConsented,\n setConsent,\n updateContext: fsUpdateContext,\n clearContext: fsClearContext,\n authenticate: fsAuthenticate,\n unauthenticate: fsUnauthenticate,\n status: state.status,\n activateModification,\n synchronizeModifications,\n getModifications,\n modifications: modifications || [],\n FlagsData: visitor?.getFlagsDataArray() || [],\n getModificationInfo,\n hit: {\n send: fsSendHit,\n sendMultiple: fsSendHits\n },\n getFlag,\n fetchFlags\n }\n}\n","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.regexp.to-string.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.array.concat.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.regexp.exec.js\");","const __WEBPACK_NAMESPACE_OBJECT__ = require(\"core-js/modules/es.string.replace.js\");","import {\n CampaignDTO,\n IFlagshipConfig,\n LogLevel,\n Modification\n} from '@flagship.io/js-sdk'\nimport { EffectCallback, DependencyList, useEffect, useRef } from 'react'\n\nexport function logError (\n config: IFlagshipConfig | undefined,\n message: string,\n tag: string\n): void {\n if (\n !config ||\n !config.logManager ||\n typeof config.logManager.error !== 'function' ||\n !config.logLevel ||\n config.logLevel < LogLevel.ERROR\n ) {\n return\n }\n\n config.logManager.error(message, tag)\n}\n\nexport function logInfo (\n config: IFlagshipConfig | undefined,\n message: string,\n tag: string\n): void {\n if (\n !config ||\n !config.logManager ||\n typeof config.logManager.info !== 'function' ||\n !config.logLevel ||\n config.logLevel < LogLevel.INFO\n ) {\n return\n }\n config.logManager.info(message, tag)\n}\n\nexport function logWarn (\n config: IFlagshipConfig | undefined,\n message: string,\n tag: string\n): void {\n if (\n !config ||\n !config.logManager ||\n typeof config.logManager.warning !== 'function' ||\n !config.logLevel ||\n config.logLevel < LogLevel.WARNING\n ) {\n return\n }\n config.logManager.warning(message, tag)\n}\n\nexport function log (level: LogLevel, message: string, tag: string): void {\n const now = new Date()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const getTwoDigit = (value: any) => {\n return value.toString().length === 1 ? `0${value}` : value\n }\n\n const out = `[${getTwoDigit(now.getFullYear())}-${getTwoDigit(\n now.getMonth()\n )}-${getTwoDigit(now.getDay())} ${getTwoDigit(now.getHours())}:${getTwoDigit(\n now.getMinutes()\n )}] [Flagship SDK] [${LogLevel[level]}] [${tag}] : ${message}`\n console.log(out)\n}\n\nexport const getModificationsFromCampaigns = (\n campaigns: Array<CampaignDTO>\n): Map<string, Modification> => {\n const modifications = new Map<string, Modification>()\n if (!campaigns || !Array.isArray(campaigns)) {\n return modifications\n }\n campaigns.forEach((campaign) => {\n const object = campaign.variation.modifications.value\n for (const key in object) {\n const value = object[key]\n modifications.set(key, {\n key,\n campaignId: campaign.id,\n variationGroupId: campaign.variationGroupId,\n variationId: campaign.variation.id,\n isReference: campaign.variation.reference,\n value\n })\n }\n })\n return modifications\n}\n\nexport function uuidV4 (): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\n /[xy]/g,\n function (char) {\n const rand = (Math.random() * 16) | 0\n const value = char === 'x' ? rand : (rand & 0x3) | 0x8\n return value.toString(16)\n }\n )\n}\n\nexport function useNonInitialEffect (\n effect: EffectCallback,\n deps?: DependencyList\n): void {\n const initialRender = useRef(true)\n\n useEffect(() => {\n if (initialRender.current) {\n initialRender.current = false\n return\n }\n\n if (typeof effect === 'function') {\n return effect()\n }\n }, deps)\n}\n","module.exports = require(\"@flagship.io/js-sdk\");","module.exports = require(\"core-js/modules/es.array.filter.js\");","module.exports = require(\"core-js/modules/es.array.from.js\");","module.exports = require(\"core-js/modules/es.array.iterator.js\");","module.exports = require(\"core-js/modules/es.array.slice.js\");","module.exports = require(\"core-js/modules/es.function.name.js\");","module.exports = require(\"core-js/modules/es.map.js\");","module.exports = require(\"core-js/modules/es.object.get-own-property-descriptor.js\");","module.exports = require(\"core-js/modules/es.object.get-own-property-descriptors.js\");","module.exports = require(\"core-js/modules/es.object.keys.js\");","module.exports = require(\"core-js/modules/es.object.to-string.js\");","module.exports = require(\"core-js/modules/es.string.iterator.js\");","module.exports = require(\"core-js/modules/es.symbol.description.js\");","module.exports = require(\"core-js/modules/es.symbol.iterator.js\");","module.exports = require(\"core-js/modules/es.symbol.js\");","module.exports = require(\"core-js/modules/web.dom-collections.for-each.js\");","module.exports = require(\"core-js/modules/web.dom-collections.iterator.js\");","module.exports = require(\"react\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};"],"names":["initStat","status","isLoading","isSdkReady","FlagshipContext","createContext","state","FlagshipProvider","children","fetchNow","envId","apiKey","decisionMode","decisionApiUrl","timeout","logLevel","statusChangedCallback","logManager","pollingInterval","visitorData","onInitStart","onInitDone","onBucketingSuccess","onBucketingFail","loadingComponent","onBucketingUpdated","onUpdate","enableClientCache","initialBucketing","initialCampaigns","initialModifications","initialFlagsData","fetchFlagsOnBucketingUpdated","activateDeduplicationTime","hitDeduplicationTime","visitorCacheImplementation","hitCacheImplementation","disableCache","modifications","Map","forEach","flag","set","key","modification","getModificationsFromCampaigns","useState","setState","lastModified","setLastModified","initializeState","param","newStatus","isVisitorDefined","fsVisitor","lastRefresh","Date","toISOString","currentState","firstInitSuccess","visitor","config","Flagship","useRef","current","useNonInitialEffect","fetchFlags","createVisitor","JSON","stringify","useEffect","initSdk","isFirstInit","onVisitorReady","error","logError","message","fsModifications","visitorId","id","context","isAuthenticated","hasConsented","on","statusChanged","FlagshipStatus","onBucketingLastModified","lastUpdate","language","Provider","value","defaultProps","require","noVisitorMessage","noVisitorDefault","Flag","defaultValue","log","LogLevel","this","_defaultValue","Promise","resolve","FlagMetadata","campaignId","campaignType","isReference","variationGroupId","variationId","checkType","Array","isArray","fsModificationsSync","args","params","activateAll","functionName","getModificationsSync","check","size","flags","item","get","logWarn","useFsModifications","useContext","useFsModification","getModificationSync","fsModificationInfoSync","getModificationInfoSync","useFsModificationInfo","fsActivate","activateModifications","useFsFlag","getFlag","useFsActivate","useFlagship","getModificationsArray","from","activateModification","synchronizeModifications","anonymousId","setConsent","updateContext","clearContext","authenticate","unauthenticate","getModifications","FlagsData","getFlagsDataArray","getModificationInfo","hit","send","sendHit","sendMultiple","sendHits","tag","warning","level","now","getTwoDigit","toString","length","out","getFullYear","getMonth","getDay","getHours","getMinutes","console","campaigns","campaign","object","variation","reference","effect","deps","initialRender","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","n","getter","__esModule","d","a","definition","o","Object","defineProperty","enumerable","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag"],"sourceRoot":""}
@@ -90,7 +90,7 @@ export interface FlagshipProviderProps extends IFlagshipConfig {
90
90
  /**
91
91
  * If true, it'll automatically call synchronizeModifications when the bucketing file has updated
92
92
  */
93
- synchronizeOnBucketingUpdated?: boolean;
93
+ fetchFlagsOnBucketingUpdated?: boolean;
94
94
  }
95
95
  export declare const FlagshipContext: React.Context<FsContext>;
96
96
  export declare const FlagshipProvider: React.FC<FlagshipProviderProps>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flagship.io/react-sdk",
3
- "version": "3.0.3-alpha.2",
3
+ "version": "3.0.3",
4
4
  "description": "Flagship REACT SDK",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -11,12 +11,13 @@
11
11
  "README.md"
12
12
  ],
13
13
  "dependencies": {
14
- "@flagship.io/js-sdk": "^3.0.5-alpha.0",
14
+ "@flagship.io/js-sdk": "^3.0.5",
15
+ "core-js": "^3.18.1",
15
16
  "encoding": "^0.1.13"
16
17
  },
17
18
  "peerDependencies": {
18
- "react": "^16.8.0 || ^17.0.0",
19
- "react-dom": "^16.8.0 || ^17.0.0"
19
+ "react": ">=16.8.0",
20
+ "react-dom": ">=16.8.0"
20
21
  },
21
22
  "homepage": "https://github.com/flagship-io/flagship-react-sdk",
22
23
  "repository": {
@@ -47,7 +48,6 @@
47
48
  "@typescript-eslint/parser": "^4.32.0",
48
49
  "babel-loader": "^8.2.2",
49
50
  "babel-plugin-add-module-exports": "^1.0.4",
50
- "core-js": "^3.18.1",
51
51
  "eslint": "^7.32.0",
52
52
  "eslint-config-standard": "^16.0.3",
53
53
  "eslint-plugin-import": "^2.24.2",
@@ -73,11 +73,10 @@
73
73
  "test": "jest",
74
74
  "lint": "eslint . --ext .tsx",
75
75
  "clean": "rm -rf dist && mkdir dist",
76
- "build:es": "BABEL_ENV=es babel src --extensions '.ts,.tsx' --out-dir dist/es --copy-files",
77
76
  "build:esm": "BABEL_ENV=esm babel src --extensions '.ts,.tsx' --out-dir dist/esm --copy-files",
78
77
  "build:types": "tsc --noEmit false --declaration --emitDeclarationOnly --outDir dist/types",
79
78
  "build:prod": "NODE_ENV=production webpack",
80
- "build": "npm run clean && npm run build:es && npm run build:esm && npm run build:types && npm run build:prod"
79
+ "build": "npm run clean && npm run build:esm && npm run build:types && npm run build:prod"
81
80
  },
82
81
  "eslintConfig": {
83
82
  "extends": [
@@ -97,4 +96,4 @@
97
96
  "last 1 safari version"
98
97
  ]
99
98
  }
100
- }
99
+ }
package/CONTRIBUTING.md DELETED
@@ -1,65 +0,0 @@
1
- # Contributing to Flagship - REACT SDK
2
-
3
- When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.
4
-
5
- ## Pull Request Process
6
-
7
- 0. [Optional] If you have change the flagship-js-sdk locally as well, make sure the dependency with flagship-react-sdk is updated.
8
-
9
- ```
10
- flagship-js-sdk$ npm run build && npm pack
11
- ```
12
-
13
- ```
14
- flagship-js-sdk$ mv ./flagship.io-js-sdk-X.X.X.tgz ./PATH/TO/flagship-react-sdk
15
- ```
16
-
17
- In the `flagship-react-sdk/package.json`, update the dependency:
18
-
19
- ```
20
- "dependencies": {
21
- "@flagship.io/js-sdk": "file:flagship.io-js-sdk-X.X.X.tgz",
22
- "@flagship.io/js-sdk-logs": "^0.1.1"
23
- },
24
- ```
25
-
26
- ```
27
- flagship-react-sdk$ rm -r ./node_modules/@flagship.io && npm i
28
- ```
29
-
30
- **NOTE**: If you repeat step 0 more than once, make sure the `flagship.io-js-sdk-X.X.X.tgz` does not have same name.
31
-
32
- 1. Ensure you're able to do a build.
33
-
34
- ```
35
- flagship-react-sdk$ npm run build
36
- ```
37
-
38
- If there is a dependency with a local flagship-js-sdk package (= step 0), do instead:
39
-
40
- ```
41
- flagship-react-sdk$ npm run build:skipUpdate
42
- ```
43
-
44
- 2. Ensure you're able to pass unit test.
45
-
46
- ```
47
- flagship-react-sdk$ npm run test
48
- ```
49
-
50
- 3) Consider updating the [README.md](./README.md) with details of changes if needed.
51
-
52
- 4) Add yourself as a contributor. To add yourself to the table of contributors, follow this command:
53
-
54
- ```
55
- # Add new contributor <username>, who made a contribution of type <contribution>
56
- npm run contributors:add -- <username> <contribution>
57
-
58
- # Example:
59
- npm run contributors:add -- jfmengels code,doc
60
- ```
61
-
62
- See the [Emoji Key (Contribution Types Reference)](https://allcontributors.org/docs/en/emoji-key) for a list of valid contribution types.
63
-
64
- 5. You may merge the Pull Request in once you have the sign-off of two other developers, or if you
65
- do not have permission to do that, you may request the second reviewer to merge it for you.