@flagship.io/react-sdk 3.2.2-alpha.2 → 3.2.3-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.node.js +1059 -1
- package/dist/index.node.js.map +1 -1
- package/dist/src/FlagshipContext.js +1 -1
- package/dist/src/sdkVersion.d.ts +1 -1
- package/dist/src/sdkVersion.js +1 -1
- package/package.json +3 -3
package/dist/index.node.js
CHANGED
|
@@ -1,2 +1,1060 @@
|
|
|
1
|
-
(()=>{"use strict";var t={443:(t,e,i)=>{i.d(e,{e:()=>l,X:()=>u});var a=i(689),o=i.n(a),n=i(4),s=i(370);const r={status:{isLoading:!0,isSdkReady:!1}},l=(0,a.createContext)({state:{...r}}),u=({children:t,envId:e,apiKey:i,decisionMode:u=n.DecisionMode.DECISION_API,visitorData:d,onInitStart:c,onInitDone:f,loadingComponent:g,statusChangedCallback:v,onBucketingUpdated:y,onUpdate:h,initialCampaigns:p,initialModifications:m,initialFlagsData:C,fetchFlagsOnBucketingUpdated:F,hitDeduplicationTime:M=2,fetchNow:I=!0,language:N=1,sdkVersion:S="3.2.2-alpha.2",...x})=>{let k=new Map;C&&C.forEach?C.forEach((t=>{k.set(t.key,t)})):m&&m.forEach?m.forEach((t=>{k.set(t.key,t)})):p&&(k=(0,s.B$)(p));const[A,V]=(0,a.useState)({...r,modifications:k}),[R,E]=(0,a.useState)();function w(t){const e={isSdkReady:t.isSdkReady,isLoading:t.isLoading,isVisitorDefined:!!t.fsVisitor,lastRefresh:(new Date).toISOString()};return V((i=>(i.status.firstInitSuccess||(e.firstInitSuccess=(new Date).toISOString()),{...i,visitor:t.fsVisitor,modifications:t.fsVisitor.modifications,config:n.Flagship.getConfig(),status:{...i.status,...e}}))),e}(0,a.useRef)().current=A,(0,s.N7)((()=>{var t;F&&(null===(t=A.visitor)||void 0===t||t.fetchFlags())}),[R]),(0,s.N7)((()=>{var t;d&&(!A.visitor||A.visitor.visitorId!==d.id&&(!d.isAuthenticated||d.isAuthenticated&&A.visitor.anonymousId)?b():(d.hasConsented!==A.visitor.hasConsented&&A.visitor.setConsent(null===(t=d.hasConsented)||void 0===t||t),A.visitor.updateContext(d.context),!A.visitor.anonymousId&&d.isAuthenticated&&A.visitor.authenticate(d.id),A.visitor.anonymousId&&!d.isAuthenticated&&A.visitor.unauthenticate(),A.visitor.fetchFlags()))}),[JSON.stringify(d)]),(0,a.useEffect)((()=>{P()}),[e,i,u]);const b=()=>{if(!d)return;const t=n.Flagship.newVisitor({visitorId:d.id,context:d.context,isAuthenticated:d.isAuthenticated,hasConsented:d.hasConsented,initialCampaigns:p,initialModifications:m,initialFlagsData:C});null==t||t.on("ready",(e=>{((t,e)=>{if(e)return void(0,s.H)(n.Flagship.getConfig(),e.message||e,"onReady");const i=w({fsVisitor:t,isSdkReady:!0,isLoading:!1});h&&h({fsModifications:t.modifications,config:n.Flagship.getConfig(),status:i})})(t,e)})),I||w({fsVisitor:t,isSdkReady:!0,isLoading:!1})},L=t=>{switch(v&&v(t),t){case n.FlagshipStatus.STARTING:t===n.FlagshipStatus.STARTING&&c&&c();break;case n.FlagshipStatus.READY_PANIC_ON:case n.FlagshipStatus.READY:f&&f(),b();break;case n.FlagshipStatus.NOT_INITIALIZED:V((t=>({...t,status:{...t.status,isLoading:!1},config:n.Flagship.getConfig()})))}},D=t=>{y&&y(t),E(t)},P=()=>{n.Flagship.start(e,i,{decisionMode:u,fetchNow:I,statusChangedCallback:L,onBucketingUpdated:D,hitDeduplicationTime:M,language:N,sdkVersion:S,...x})};return o().createElement(l.Provider,{value:{state:A,setState:V}},(()=>{const e=!A.visitor;return A.status.isLoading&&g&&e&&I?o().createElement(o().Fragment,null,g):o().createElement(o().Fragment,null,t)})())}},927:(t,e,i)=>{i.d(e,{UM:()=>M,pc:()=>F,Nf:()=>C,nr:()=>y,_X:()=>p,GW:()=>v});var a=i(689),o=i(4),n=i.n(o),s=i(443),r=i(370);const l="flagship Visitor not initialized.",u="fsVisitor not initialized, returns default value";function d(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}class c{constructor(t,e,i){d(this,"defaultValue",void 0),d(this,"flagsData",void 0),d(this,"key",void 0),d(this,"flag",void 0),i||(0,r.yN)(n().getConfig(),l,"GetFlag"),this.defaultValue=t,this.key=e,this.flag=null==i?void 0:i.get(e)}NotSameType(){var t;return null!==this.defaultValue&&void 0!==this.defaultValue&&!(0,r.Wi)(null===(t=this.flag)||void 0===t?void 0:t.value,this.defaultValue)}getValue(){return this.flag?this.NotSameType()?((0,r.PN)(n().getConfig(),(0,r.gB)("Flag for key {0} has a different type. Default value is returned.",this.key),"getValue"),this.defaultValue):this.flag.value:((0,r.yN)(n().getConfig(),l,"getValue"),this.defaultValue)}exists(){return this.flag?!!(this.flag.campaignId&&this.flag.variationId&&this.flag.variationGroupId):((0,r.yN)(n().getConfig(),l,"exists"),!1)}userExposed(){return this.flag||(0,r.yN)(n().getConfig(),l,"userExposed"),Promise.resolve()}visitorExposed(){return this.flag||(0,r.yN)(n().getConfig(),l,"visitorExposed"),Promise.resolve()}get metadata(){const t="metadata";return this.flag?this.NotSameType()?((0,r.PN)(n().getConfig(),(0,r.gB)("Flag for key {0} has a different type with defaultValue, an empty metadata object is returned",this.key),t),o.FlagMetadata.Empty()):new o.FlagMetadata({campaignId:this.flag.campaignId,variationGroupId:this.flag.variationGroupId,variationId:this.flag.variationId,isReference:!!this.flag.isReference,campaignType:this.flag.campaignType,slug:this.flag.slug}):((0,r.yN)(n().getConfig(),l,t),o.FlagMetadata.Empty())}}const f=(t,e)=>"object"==typeof t&&"object"==typeof e&&Array.isArray(t)===Array.isArray(e)||typeof t==typeof e,g=t=>{const{visitor:e,params:i,activateAll:a,state:o,functionName:n,config:s}=t;if(e)return e.getModificationsSync(i,a);const l=!o.status.isSdkReady&&!!o.modifications&&o.modifications.size>0,d={};return l?(i.forEach((t=>{var e;const i=null===(e=o.modifications)||void 0===e?void 0:e.get(t.key);i&&f(null==i?void 0:i.value,t.defaultValue)?d[t.key]=i.value:d[t.key]=t.defaultValue})),d):((0,r.yN)(s,u,n),i.forEach((t=>{d[t.key]=t.defaultValue})),d)},v=(t,e)=>{const{state:i}=(0,a.useContext)(s.e),{visitor:o,config:n}=i;return g({functionName:"useFsModifications",state:i,visitor:o,config:n,params:t,activateAll:e})},y=t=>{var e;const{state:i}=(0,a.useContext)(s.e),{visitor:o,config:n}=i;if(o)return o.getModificationSync(t);const l=null===(e=i.modifications)||void 0===e?void 0:e.get(t.key);return!i.status.isSdkReady&&l&&f(null==l?void 0:l.value,t.defaultValue)?l.value:((0,r.yN)(n,u,"useFsModifications"),t.defaultValue)},h=t=>{var e;const{key:i,visitor:a,state:o}=t;if(a)return a.getModificationInfoSync(i);const n=null===(e=o.modifications)||void 0===e?void 0:e.get(i);return!o.status.isSdkReady&&n?n:null},p=t=>{const{state:e}=(0,a.useContext)(s.e),{visitor:i}=e;return h({key:t,state:e,visitor:i})},m=async(t,e,i,a)=>{try{if(!i)return void(0,r.yN)(a,l,e);await i.activateModifications(t)}catch(t){(0,r.yN)(a,t.message||t,e)}},C=(t,e)=>{const{state:i}=(0,a.useContext)(s.e),{visitor:o}=i;return o?o.getFlag(t,e):new c(e,t,i.modifications)},F=async t=>{const{state:e}=(0,a.useContext)(s.e),{visitor:i,config:o}=e;await m(t,"useFsModifications",i,o)},M=()=>{const{state:t}=(0,a.useContext)(s.e),{visitor:e,config:i}=t;let o=null==e?void 0:e.getModificationsArray();return!t.status.isSdkReady&&t.modifications&&(o=Array.from(t.modifications,(([t,e])=>e))),{visitorId:null==e?void 0:e.visitorId,anonymousId:null==e?void 0:e.anonymousId,context:{...null==e?void 0:e.context},hasConsented:null==e?void 0:e.hasConsented,setConsent:function(t){e?e.setConsent(t):(0,r.yN)(i,l,"setConsent")},updateContext:t=>{e?(e.clearContext(),e.updateContext(t)):(0,r.H)(i,l,"updateContext")},clearContext:()=>{e?e.clearContext():(0,r.H)(i,l,"cleanContext")},authenticate:t=>{e?e.authenticate(t):(0,r.H)(i,l,"authenticate")},unauthenticate:()=>{e?e.unauthenticate():(0,r.H)(i,l,"unauthenticate")},status:t.status,activateModification:async t=>{await m(t,"activateModification",e,i)},synchronizeModifications:async()=>{e?await e.synchronizeModifications():(0,r.yN)(i,l,"synchronizeModifications")},getModifications:(a,o)=>g({functionName:"getModifications",state:t,visitor:e,config:i,params:a,activateAll:o}),modifications:o||[],flagsData:(null==e?void 0:e.getFlagsDataArray())||[],getModificationInfo:i=>h({key:i,state:t,visitor:e}),hit:{send:t=>e?e.sendHit(t):((0,r.H)(i,l,"sendHit"),Promise.resolve()),sendMultiple:t=>e?e.sendHits(t):((0,r.H)(i,l,"sendHits"),Promise.resolve())},getFlag:function(i,a){return e?e.getFlag(i,a):new c(a,i,t.modifications)},fetchFlags:function(){return e?e.fetchFlags():((0,r.yN)(i,l,"fetchFlags"),Promise.resolve())},close:async function(){await n().close()}}}},370:(t,e,i)=>{i.d(e,{B$:()=>l,H:()=>n,N7:()=>u,PN:()=>s,Wi:()=>d,gB:()=>c,yN:()=>r});var a=i(4),o=i(689);function n(t,e,i){t&&t.logManager&&"function"==typeof t.logManager.error&&t.logLevel&&!(t.logLevel<a.LogLevel.ERROR)&&t.logManager.error(e,i)}function s(t,e,i){t&&t.logManager&&"function"==typeof t.logManager.info&&t.logLevel&&!(t.logLevel<a.LogLevel.INFO)&&t.logManager.info(e,i)}function r(t,e,i){t&&t.logManager&&"function"==typeof t.logManager.warning&&t.logLevel&&!(t.logLevel<a.LogLevel.WARNING)&&t.logManager.warning(e,i)}const l=t=>{const e=new Map;return t&&Array.isArray(t)?(t.forEach((t=>{const i=t.variation.modifications.value;for(const a in i){const o=i[a];e.set(a,{key:a,campaignId:t.id,variationGroupId:t.variationGroupId,variationId:t.variation.id,isReference:t.variation.reference,value:o})}})),e):e};function u(t,e){const i=(0,o.useRef)(!0);(0,o.useEffect)((()=>{if(!i.current)return"function"==typeof t?t():void 0;i.current=!1}),e)}function d(t,e){return typeof t==typeof e&&("object"!=typeof t||"object"!=typeof e||Array.isArray(t)===Array.isArray(e))}function c(t,...e){let i=t;for(let t=0;t<e.length;t++){const a=e[t];i=i.replace(new RegExp(`\\{${t}\\}`,"g"),a)}return i}},4:t=>{t.exports=require("@flagship.io/js-sdk")},689:t=>{t.exports=require("react")}},e={};function i(a){var o=e[a];if(void 0!==o)return o.exports;var n=e[a]={exports:{}};return t[a](n,n.exports,i),n.exports}i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var a in e)i.o(e,a)&&!i.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:e[a]})},i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var a={};(()=>{i.r(a),i.d(a,{FlagshipContext:()=>t.e,FlagshipProvider:()=>t.X,default:()=>s,useFlagship:()=>n.UM,useFsActivate:()=>n.pc,useFsFlag:()=>n.Nf,useFsModification:()=>n.nr,useFsModificationInfo:()=>n._X,useFsModifications:()=>n.GW});var t=i(443),e=i(4),o={};for(const t in e)["default","FlagshipContext","FlagshipProvider"].indexOf(t)<0&&(o[t]=()=>e[t]);i.d(a,o);var n=i(927);const s=t.X})(),module.exports=a})();
|
|
1
|
+
/******/ (() => { // webpackBootstrap
|
|
2
|
+
/******/ "use strict";
|
|
3
|
+
/******/ var __webpack_modules__ = ({
|
|
4
|
+
|
|
5
|
+
/***/ "./src/Flag.ts":
|
|
6
|
+
/*!*********************!*\
|
|
7
|
+
!*** ./src/Flag.ts ***!
|
|
8
|
+
\*********************/
|
|
9
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
10
|
+
|
|
11
|
+
__webpack_require__.r(__webpack_exports__);
|
|
12
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
13
|
+
/* harmony export */ "Flag": () => (/* binding */ Flag)
|
|
14
|
+
/* harmony export */ });
|
|
15
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
|
|
16
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__);
|
|
17
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./src/constants.ts");
|
|
18
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/utils.tsx");
|
|
19
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class Flag {
|
|
25
|
+
constructor(defaultValue, key, flagsData) {
|
|
26
|
+
_defineProperty(this, "defaultValue", void 0);
|
|
27
|
+
|
|
28
|
+
_defineProperty(this, "flagsData", void 0);
|
|
29
|
+
|
|
30
|
+
_defineProperty(this, "key", void 0);
|
|
31
|
+
|
|
32
|
+
_defineProperty(this, "flag", void 0);
|
|
33
|
+
|
|
34
|
+
if (!flagsData) {
|
|
35
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_1__.logWarn)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default().getConfig(), _constants__WEBPACK_IMPORTED_MODULE_2__.noVisitorMessage, 'GetFlag');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
this.defaultValue = defaultValue;
|
|
39
|
+
this.key = key;
|
|
40
|
+
this.flag = flagsData === null || flagsData === void 0 ? void 0 : flagsData.get(key);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
NotSameType() {
|
|
44
|
+
var _this$flag;
|
|
45
|
+
|
|
46
|
+
return this.defaultValue !== null && this.defaultValue !== undefined && !(0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasSameType)((_this$flag = this.flag) === null || _this$flag === void 0 ? void 0 : _this$flag.value, this.defaultValue);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
getValue() {
|
|
50
|
+
if (!this.flag) {
|
|
51
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_1__.logWarn)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default().getConfig(), _constants__WEBPACK_IMPORTED_MODULE_2__.noVisitorMessage, 'getValue');
|
|
52
|
+
return this.defaultValue;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (this.NotSameType()) {
|
|
56
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_1__.logInfo)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default().getConfig(), (0,_utils__WEBPACK_IMPORTED_MODULE_1__.sprintf)(_constants__WEBPACK_IMPORTED_MODULE_2__.GET_FLAG_CAST_ERROR, this.key), 'getValue');
|
|
57
|
+
return this.defaultValue;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return this.flag.value;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
exists() {
|
|
64
|
+
if (!this.flag) {
|
|
65
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_1__.logWarn)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default().getConfig(), _constants__WEBPACK_IMPORTED_MODULE_2__.noVisitorMessage, 'exists');
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return !!(this.flag.campaignId && this.flag.variationId && this.flag.variationGroupId);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
userExposed() {
|
|
73
|
+
if (!this.flag) {
|
|
74
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_1__.logWarn)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default().getConfig(), _constants__WEBPACK_IMPORTED_MODULE_2__.noVisitorMessage, 'userExposed');
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return Promise.resolve();
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
visitorExposed() {
|
|
81
|
+
if (!this.flag) {
|
|
82
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_1__.logWarn)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default().getConfig(), _constants__WEBPACK_IMPORTED_MODULE_2__.noVisitorMessage, 'visitorExposed');
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return Promise.resolve();
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
get metadata() {
|
|
89
|
+
const functionName = 'metadata';
|
|
90
|
+
|
|
91
|
+
if (!this.flag) {
|
|
92
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_1__.logWarn)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default().getConfig(), _constants__WEBPACK_IMPORTED_MODULE_2__.noVisitorMessage, functionName);
|
|
93
|
+
return _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.FlagMetadata.Empty();
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (this.NotSameType()) {
|
|
97
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_1__.logInfo)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default().getConfig(), (0,_utils__WEBPACK_IMPORTED_MODULE_1__.sprintf)(_constants__WEBPACK_IMPORTED_MODULE_2__.GET_METADATA_CAST_ERROR, this.key), functionName);
|
|
98
|
+
return _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.FlagMetadata.Empty();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
return new _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.FlagMetadata({
|
|
102
|
+
campaignId: this.flag.campaignId,
|
|
103
|
+
variationGroupId: this.flag.variationGroupId,
|
|
104
|
+
variationId: this.flag.variationId,
|
|
105
|
+
isReference: !!this.flag.isReference,
|
|
106
|
+
campaignType: this.flag.campaignType,
|
|
107
|
+
slug: this.flag.slug
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/***/ }),
|
|
114
|
+
|
|
115
|
+
/***/ "./src/FlagshipContext.tsx":
|
|
116
|
+
/*!*********************************!*\
|
|
117
|
+
!*** ./src/FlagshipContext.tsx ***!
|
|
118
|
+
\*********************************/
|
|
119
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
120
|
+
|
|
121
|
+
__webpack_require__.r(__webpack_exports__);
|
|
122
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
123
|
+
/* harmony export */ "FlagshipContext": () => (/* binding */ FlagshipContext),
|
|
124
|
+
/* harmony export */ "FlagshipProvider": () => (/* binding */ FlagshipProvider)
|
|
125
|
+
/* harmony export */ });
|
|
126
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
127
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
128
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
|
|
129
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__);
|
|
130
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ "./src/utils.tsx");
|
|
131
|
+
/* harmony import */ var _sdkVersion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sdkVersion */ "./src/sdkVersion.ts");
|
|
132
|
+
'use client'; // eslint-disable-next-line no-use-before-define
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
const initStat = {
|
|
139
|
+
status: {
|
|
140
|
+
isLoading: true,
|
|
141
|
+
isSdkReady: false
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
const FlagshipContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({
|
|
145
|
+
state: { ...initStat
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
const FlagshipProvider = ({
|
|
149
|
+
children,
|
|
150
|
+
envId,
|
|
151
|
+
apiKey,
|
|
152
|
+
decisionMode = _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.DecisionMode.DECISION_API,
|
|
153
|
+
visitorData,
|
|
154
|
+
onInitStart,
|
|
155
|
+
onInitDone,
|
|
156
|
+
loadingComponent,
|
|
157
|
+
statusChangedCallback,
|
|
158
|
+
onBucketingUpdated,
|
|
159
|
+
onUpdate,
|
|
160
|
+
initialCampaigns,
|
|
161
|
+
initialModifications,
|
|
162
|
+
initialFlagsData,
|
|
163
|
+
fetchFlagsOnBucketingUpdated,
|
|
164
|
+
hitDeduplicationTime = 2,
|
|
165
|
+
fetchNow = true,
|
|
166
|
+
language = 1,
|
|
167
|
+
sdkVersion = _sdkVersion__WEBPACK_IMPORTED_MODULE_2__.version,
|
|
168
|
+
...props
|
|
169
|
+
}) => {
|
|
170
|
+
let modifications = new Map();
|
|
171
|
+
|
|
172
|
+
if (initialFlagsData && initialFlagsData.forEach) {
|
|
173
|
+
initialFlagsData.forEach(flag => {
|
|
174
|
+
modifications.set(flag.key, flag);
|
|
175
|
+
});
|
|
176
|
+
} else if (initialModifications && initialModifications.forEach) {
|
|
177
|
+
initialModifications.forEach(modification => {
|
|
178
|
+
modifications.set(modification.key, modification);
|
|
179
|
+
});
|
|
180
|
+
} else if (initialCampaigns) {
|
|
181
|
+
modifications = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getModificationsFromCampaigns)(initialCampaigns);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({ ...initStat,
|
|
185
|
+
modifications
|
|
186
|
+
});
|
|
187
|
+
const [lastModified, setLastModified] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();
|
|
188
|
+
const stateRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
|
|
189
|
+
stateRef.current = state;
|
|
190
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_3__.useNonInitialEffect)(() => {
|
|
191
|
+
if (fetchFlagsOnBucketingUpdated) {
|
|
192
|
+
var _state$visitor;
|
|
193
|
+
|
|
194
|
+
(_state$visitor = state.visitor) === null || _state$visitor === void 0 ? void 0 : _state$visitor.fetchFlags();
|
|
195
|
+
}
|
|
196
|
+
}, [lastModified]);
|
|
197
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_3__.useNonInitialEffect)(() => {
|
|
198
|
+
updateVisitor();
|
|
199
|
+
}, [JSON.stringify(visitorData)]);
|
|
200
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
201
|
+
initSdk();
|
|
202
|
+
}, [envId, apiKey, decisionMode]);
|
|
203
|
+
|
|
204
|
+
function initializeState(param) {
|
|
205
|
+
const newStatus = {
|
|
206
|
+
isSdkReady: param.isSdkReady,
|
|
207
|
+
isLoading: param.isLoading,
|
|
208
|
+
isVisitorDefined: !!param.fsVisitor,
|
|
209
|
+
lastRefresh: new Date().toISOString()
|
|
210
|
+
};
|
|
211
|
+
setState(currentState => {
|
|
212
|
+
if (!currentState.status.firstInitSuccess) {
|
|
213
|
+
newStatus.firstInitSuccess = new Date().toISOString();
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
return { ...currentState,
|
|
217
|
+
visitor: param.fsVisitor,
|
|
218
|
+
modifications: param.fsVisitor.modifications,
|
|
219
|
+
config: _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig(),
|
|
220
|
+
status: { ...currentState.status,
|
|
221
|
+
...newStatus
|
|
222
|
+
}
|
|
223
|
+
};
|
|
224
|
+
});
|
|
225
|
+
return newStatus;
|
|
226
|
+
} // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
227
|
+
|
|
228
|
+
|
|
229
|
+
const onVisitorReady = (fsVisitor, error) => {
|
|
230
|
+
if (error) {
|
|
231
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_3__.logError)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig(), error.message || error, 'onReady');
|
|
232
|
+
return;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
const newStatus = initializeState({
|
|
236
|
+
fsVisitor,
|
|
237
|
+
isSdkReady: true,
|
|
238
|
+
isLoading: false
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
if (onUpdate) {
|
|
242
|
+
onUpdate({
|
|
243
|
+
fsModifications: fsVisitor.modifications,
|
|
244
|
+
config: _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig(),
|
|
245
|
+
status: newStatus
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
};
|
|
249
|
+
|
|
250
|
+
function updateVisitor() {
|
|
251
|
+
if (!visitorData) {
|
|
252
|
+
return;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
if (!state.visitor || state.visitor.visitorId !== visitorData.id && (!visitorData.isAuthenticated || visitorData.isAuthenticated && state.visitor.anonymousId)) {
|
|
256
|
+
createVisitor();
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
if (visitorData.hasConsented !== state.visitor.hasConsented) {
|
|
261
|
+
var _visitorData$hasConse;
|
|
262
|
+
|
|
263
|
+
state.visitor.setConsent((_visitorData$hasConse = visitorData.hasConsented) !== null && _visitorData$hasConse !== void 0 ? _visitorData$hasConse : true);
|
|
264
|
+
} // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
state.visitor.updateContext(visitorData.context);
|
|
268
|
+
|
|
269
|
+
if (!state.visitor.anonymousId && visitorData.isAuthenticated) {
|
|
270
|
+
state.visitor.authenticate(visitorData.id);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
if (state.visitor.anonymousId && !visitorData.isAuthenticated) {
|
|
274
|
+
state.visitor.unauthenticate();
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
state.visitor.fetchFlags();
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
const createVisitor = () => {
|
|
281
|
+
if (!visitorData) {
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
const fsVisitor = _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.newVisitor({
|
|
286
|
+
visitorId: visitorData.id,
|
|
287
|
+
context: visitorData.context,
|
|
288
|
+
isAuthenticated: visitorData.isAuthenticated,
|
|
289
|
+
hasConsented: visitorData.hasConsented,
|
|
290
|
+
initialCampaigns,
|
|
291
|
+
initialModifications,
|
|
292
|
+
initialFlagsData
|
|
293
|
+
});
|
|
294
|
+
fsVisitor === null || fsVisitor === void 0 ? void 0 : fsVisitor.on('ready', error => {
|
|
295
|
+
onVisitorReady(fsVisitor, error);
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
if (!fetchNow) {
|
|
299
|
+
initializeState({
|
|
300
|
+
fsVisitor,
|
|
301
|
+
isSdkReady: true,
|
|
302
|
+
isLoading: false
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
};
|
|
306
|
+
|
|
307
|
+
const statusChanged = status => {
|
|
308
|
+
if (statusChangedCallback) {
|
|
309
|
+
statusChangedCallback(status);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
switch (status) {
|
|
313
|
+
case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.STARTING:
|
|
314
|
+
if (status === _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.STARTING && onInitStart) {
|
|
315
|
+
onInitStart();
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
break;
|
|
319
|
+
|
|
320
|
+
case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.READY_PANIC_ON:
|
|
321
|
+
case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.READY:
|
|
322
|
+
if (onInitDone) {
|
|
323
|
+
onInitDone();
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
createVisitor();
|
|
327
|
+
break;
|
|
328
|
+
|
|
329
|
+
case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.NOT_INITIALIZED:
|
|
330
|
+
setState(prev => ({ ...prev,
|
|
331
|
+
status: { ...prev.status,
|
|
332
|
+
isLoading: false
|
|
333
|
+
},
|
|
334
|
+
config: _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig()
|
|
335
|
+
}));
|
|
336
|
+
break;
|
|
337
|
+
}
|
|
338
|
+
};
|
|
339
|
+
|
|
340
|
+
const onBucketingLastModified = lastUpdate => {
|
|
341
|
+
if (onBucketingUpdated) {
|
|
342
|
+
onBucketingUpdated(lastUpdate);
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
setLastModified(lastUpdate);
|
|
346
|
+
};
|
|
347
|
+
|
|
348
|
+
const initSdk = () => {
|
|
349
|
+
_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.start(envId, apiKey, {
|
|
350
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
351
|
+
decisionMode: decisionMode,
|
|
352
|
+
fetchNow,
|
|
353
|
+
statusChangedCallback: statusChanged,
|
|
354
|
+
onBucketingUpdated: onBucketingLastModified,
|
|
355
|
+
hitDeduplicationTime,
|
|
356
|
+
language,
|
|
357
|
+
sdkVersion,
|
|
358
|
+
fetchFlagsBufferingTime: 5,
|
|
359
|
+
...props
|
|
360
|
+
});
|
|
361
|
+
};
|
|
362
|
+
|
|
363
|
+
const handleDisplay = () => {
|
|
364
|
+
const isFirstInit = !state.visitor;
|
|
365
|
+
|
|
366
|
+
if (state.status.isLoading && loadingComponent && isFirstInit && fetchNow) {
|
|
367
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, loadingComponent);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, children);
|
|
371
|
+
};
|
|
372
|
+
|
|
373
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FlagshipContext.Provider, {
|
|
374
|
+
value: {
|
|
375
|
+
state,
|
|
376
|
+
setState
|
|
377
|
+
}
|
|
378
|
+
}, handleDisplay());
|
|
379
|
+
};
|
|
380
|
+
|
|
381
|
+
/***/ }),
|
|
382
|
+
|
|
383
|
+
/***/ "./src/FlagshipHooks.tsx":
|
|
384
|
+
/*!*******************************!*\
|
|
385
|
+
!*** ./src/FlagshipHooks.tsx ***!
|
|
386
|
+
\*******************************/
|
|
387
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
388
|
+
|
|
389
|
+
__webpack_require__.r(__webpack_exports__);
|
|
390
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
391
|
+
/* harmony export */ "useFlagship": () => (/* binding */ useFlagship),
|
|
392
|
+
/* harmony export */ "useFsActivate": () => (/* binding */ useFsActivate),
|
|
393
|
+
/* harmony export */ "useFsFlag": () => (/* binding */ useFsFlag),
|
|
394
|
+
/* harmony export */ "useFsModification": () => (/* binding */ useFsModification),
|
|
395
|
+
/* harmony export */ "useFsModificationInfo": () => (/* binding */ useFsModificationInfo),
|
|
396
|
+
/* harmony export */ "useFsModifications": () => (/* binding */ useFsModifications)
|
|
397
|
+
/* harmony export */ });
|
|
398
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
399
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
400
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
|
|
401
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__);
|
|
402
|
+
/* harmony import */ var _FlagshipContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
|
|
403
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/utils.tsx");
|
|
404
|
+
/* harmony import */ var _Flag__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Flag */ "./src/Flag.ts");
|
|
405
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./src/constants.ts");
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
const checkType = (value, defaultValue) => typeof value === 'object' && typeof defaultValue === 'object' && Array.isArray(value) === Array.isArray(defaultValue) || typeof value === typeof defaultValue;
|
|
414
|
+
|
|
415
|
+
const fsModificationsSync = args => {
|
|
416
|
+
const {
|
|
417
|
+
visitor,
|
|
418
|
+
params,
|
|
419
|
+
activateAll,
|
|
420
|
+
state,
|
|
421
|
+
functionName,
|
|
422
|
+
config
|
|
423
|
+
} = args;
|
|
424
|
+
|
|
425
|
+
if (visitor) {
|
|
426
|
+
return visitor.getModificationsSync(params, activateAll);
|
|
427
|
+
}
|
|
428
|
+
|
|
429
|
+
const check = !state.status.isSdkReady && !!state.modifications && state.modifications.size > 0;
|
|
430
|
+
const flags = {};
|
|
431
|
+
|
|
432
|
+
if (check) {
|
|
433
|
+
params.forEach(item => {
|
|
434
|
+
var _state$modifications;
|
|
435
|
+
|
|
436
|
+
const modification = (_state$modifications = state.modifications) === null || _state$modifications === void 0 ? void 0 : _state$modifications.get(item.key);
|
|
437
|
+
|
|
438
|
+
if (modification && checkType(modification === null || modification === void 0 ? void 0 : modification.value, item.defaultValue)) {
|
|
439
|
+
flags[item.key] = modification.value;
|
|
440
|
+
} else {
|
|
441
|
+
flags[item.key] = item.defaultValue;
|
|
442
|
+
}
|
|
443
|
+
});
|
|
444
|
+
return flags;
|
|
445
|
+
}
|
|
446
|
+
|
|
447
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorDefault, functionName);
|
|
448
|
+
params.forEach(item => {
|
|
449
|
+
flags[item.key] = item.defaultValue;
|
|
450
|
+
});
|
|
451
|
+
return flags;
|
|
452
|
+
};
|
|
453
|
+
/**
|
|
454
|
+
* 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.
|
|
455
|
+
* @deprecated use useFsFlag instead
|
|
456
|
+
*/
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
const useFsModifications = (params, activateAll) => {
|
|
460
|
+
const {
|
|
461
|
+
state
|
|
462
|
+
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
|
|
463
|
+
const {
|
|
464
|
+
visitor,
|
|
465
|
+
config
|
|
466
|
+
} = state;
|
|
467
|
+
const functionName = 'useFsModifications';
|
|
468
|
+
return fsModificationsSync({
|
|
469
|
+
functionName,
|
|
470
|
+
state,
|
|
471
|
+
visitor,
|
|
472
|
+
config,
|
|
473
|
+
params,
|
|
474
|
+
activateAll
|
|
475
|
+
});
|
|
476
|
+
};
|
|
477
|
+
/**
|
|
478
|
+
* 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.
|
|
479
|
+
* @deprecated use useFsFlag instead
|
|
480
|
+
*/
|
|
481
|
+
|
|
482
|
+
const useFsModification = params => {
|
|
483
|
+
var _state$modifications2;
|
|
484
|
+
|
|
485
|
+
const {
|
|
486
|
+
state
|
|
487
|
+
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
|
|
488
|
+
const {
|
|
489
|
+
visitor,
|
|
490
|
+
config
|
|
491
|
+
} = state;
|
|
492
|
+
const functionName = 'useFsModifications';
|
|
493
|
+
|
|
494
|
+
if (visitor) {
|
|
495
|
+
return visitor.getModificationSync(params);
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
const modification = (_state$modifications2 = state.modifications) === null || _state$modifications2 === void 0 ? void 0 : _state$modifications2.get(params.key);
|
|
499
|
+
|
|
500
|
+
if (!state.status.isSdkReady && modification && checkType(modification === null || modification === void 0 ? void 0 : modification.value, params.defaultValue)) {
|
|
501
|
+
return modification.value;
|
|
502
|
+
}
|
|
503
|
+
|
|
504
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorDefault, functionName);
|
|
505
|
+
return params.defaultValue;
|
|
506
|
+
};
|
|
507
|
+
|
|
508
|
+
const fsModificationInfoSync = args => {
|
|
509
|
+
var _state$modifications3;
|
|
510
|
+
|
|
511
|
+
const {
|
|
512
|
+
key,
|
|
513
|
+
visitor,
|
|
514
|
+
state
|
|
515
|
+
} = args;
|
|
516
|
+
|
|
517
|
+
if (visitor) {
|
|
518
|
+
return visitor.getModificationInfoSync(key);
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
const modification = (_state$modifications3 = state.modifications) === null || _state$modifications3 === void 0 ? void 0 : _state$modifications3.get(key);
|
|
522
|
+
|
|
523
|
+
if (!state.status.isSdkReady && modification) {
|
|
524
|
+
return modification;
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
return null;
|
|
528
|
+
};
|
|
529
|
+
/**
|
|
530
|
+
* Get the campaign modification information value matching the given key.
|
|
531
|
+
* @param {string} key key which identify the modification.
|
|
532
|
+
* @deprecated use useFsFlag instead
|
|
533
|
+
*/
|
|
534
|
+
|
|
535
|
+
|
|
536
|
+
const useFsModificationInfo = key => {
|
|
537
|
+
const {
|
|
538
|
+
state
|
|
539
|
+
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
|
|
540
|
+
const {
|
|
541
|
+
visitor
|
|
542
|
+
} = state;
|
|
543
|
+
return fsModificationInfoSync({
|
|
544
|
+
key,
|
|
545
|
+
state,
|
|
546
|
+
visitor
|
|
547
|
+
});
|
|
548
|
+
};
|
|
549
|
+
|
|
550
|
+
const fsActivate = async (params, functionName, visitor, config) => {
|
|
551
|
+
try {
|
|
552
|
+
if (!visitor) {
|
|
553
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
|
|
554
|
+
return;
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
await visitor.activateModifications(params); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
558
|
+
} catch (error) {
|
|
559
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, error.message || error, functionName);
|
|
560
|
+
}
|
|
561
|
+
};
|
|
562
|
+
/**
|
|
563
|
+
* This hook returns a flag object by its key. If no flag match the given key an empty flag will be returned.
|
|
564
|
+
* @param key
|
|
565
|
+
* @param defaultValue
|
|
566
|
+
* @returns
|
|
567
|
+
*/
|
|
568
|
+
|
|
569
|
+
|
|
570
|
+
const useFsFlag = (key, defaultValue) => {
|
|
571
|
+
const {
|
|
572
|
+
state
|
|
573
|
+
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
|
|
574
|
+
const {
|
|
575
|
+
visitor
|
|
576
|
+
} = state;
|
|
577
|
+
|
|
578
|
+
if (!visitor) {
|
|
579
|
+
return new _Flag__WEBPACK_IMPORTED_MODULE_5__.Flag(defaultValue, key, state.modifications);
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
return visitor.getFlag(key, defaultValue);
|
|
583
|
+
};
|
|
584
|
+
/**
|
|
585
|
+
* Report this user has seen this modification. Report this user has seen these modifications.
|
|
586
|
+
* @param params
|
|
587
|
+
* @deprecated use useFsFlag instead
|
|
588
|
+
* @returns
|
|
589
|
+
*/
|
|
590
|
+
|
|
591
|
+
const useFsActivate = async params => {
|
|
592
|
+
const {
|
|
593
|
+
state
|
|
594
|
+
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
|
|
595
|
+
const {
|
|
596
|
+
visitor,
|
|
597
|
+
config
|
|
598
|
+
} = state;
|
|
599
|
+
const functionName = 'useFsModifications';
|
|
600
|
+
await fsActivate(params, functionName, visitor, config);
|
|
601
|
+
};
|
|
602
|
+
const useFlagship = () => {
|
|
603
|
+
const {
|
|
604
|
+
state
|
|
605
|
+
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
|
|
606
|
+
const {
|
|
607
|
+
visitor,
|
|
608
|
+
config
|
|
609
|
+
} = state;
|
|
610
|
+
|
|
611
|
+
const fsUpdateContext = context => {
|
|
612
|
+
const functionName = 'updateContext';
|
|
613
|
+
|
|
614
|
+
if (!visitor) {
|
|
615
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
|
|
616
|
+
return;
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
visitor.clearContext();
|
|
620
|
+
visitor.updateContext(context);
|
|
621
|
+
};
|
|
622
|
+
|
|
623
|
+
const fsClearContext = () => {
|
|
624
|
+
const functionName = 'cleanContext';
|
|
625
|
+
|
|
626
|
+
if (!visitor) {
|
|
627
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
|
|
628
|
+
return;
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
visitor.clearContext();
|
|
632
|
+
};
|
|
633
|
+
|
|
634
|
+
const fsAuthenticate = visitorId => {
|
|
635
|
+
const functionName = 'authenticate';
|
|
636
|
+
|
|
637
|
+
if (!visitor) {
|
|
638
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
|
|
639
|
+
return;
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
visitor.authenticate(visitorId);
|
|
643
|
+
};
|
|
644
|
+
|
|
645
|
+
const fsUnauthenticate = () => {
|
|
646
|
+
const functionName = 'unauthenticate';
|
|
647
|
+
|
|
648
|
+
if (!visitor) {
|
|
649
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
|
|
650
|
+
return;
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
visitor.unauthenticate();
|
|
654
|
+
};
|
|
655
|
+
/**
|
|
656
|
+
* Send a Hit to Flagship servers for reporting.
|
|
657
|
+
*/
|
|
658
|
+
|
|
659
|
+
|
|
660
|
+
const fsSendHit = hit => {
|
|
661
|
+
const functionName = 'sendHit';
|
|
662
|
+
|
|
663
|
+
if (!visitor) {
|
|
664
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
|
|
665
|
+
return Promise.resolve();
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
return visitor.sendHit(hit);
|
|
669
|
+
};
|
|
670
|
+
/**
|
|
671
|
+
* Send a Hit to Flagship servers for reporting.
|
|
672
|
+
*/
|
|
673
|
+
|
|
674
|
+
|
|
675
|
+
const fsSendHits = hit => {
|
|
676
|
+
const functionName = 'sendHits';
|
|
677
|
+
|
|
678
|
+
if (!visitor) {
|
|
679
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
|
|
680
|
+
return Promise.resolve();
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
return visitor.sendHits(hit);
|
|
684
|
+
};
|
|
685
|
+
|
|
686
|
+
let modifications = visitor === null || visitor === void 0 ? void 0 : visitor.getModificationsArray();
|
|
687
|
+
|
|
688
|
+
if (!state.status.isSdkReady && state.modifications) {
|
|
689
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
690
|
+
modifications = Array.from(state.modifications, ([_key, item]) => item);
|
|
691
|
+
}
|
|
692
|
+
|
|
693
|
+
const activateModification = async params => {
|
|
694
|
+
const functionName = 'activateModification';
|
|
695
|
+
await fsActivate(params, functionName, visitor, config);
|
|
696
|
+
};
|
|
697
|
+
|
|
698
|
+
const synchronizeModifications = async () => {
|
|
699
|
+
if (!visitor) {
|
|
700
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, 'synchronizeModifications');
|
|
701
|
+
return;
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
await visitor.synchronizeModifications();
|
|
705
|
+
};
|
|
706
|
+
|
|
707
|
+
const getModifications = (params, activateAll) => {
|
|
708
|
+
const functionName = 'getModifications';
|
|
709
|
+
return fsModificationsSync({
|
|
710
|
+
functionName,
|
|
711
|
+
state,
|
|
712
|
+
visitor,
|
|
713
|
+
config,
|
|
714
|
+
params,
|
|
715
|
+
activateAll
|
|
716
|
+
});
|
|
717
|
+
};
|
|
718
|
+
|
|
719
|
+
const getModificationInfo = key => {
|
|
720
|
+
return fsModificationInfoSync({
|
|
721
|
+
key,
|
|
722
|
+
state,
|
|
723
|
+
visitor
|
|
724
|
+
});
|
|
725
|
+
};
|
|
726
|
+
|
|
727
|
+
function getFlag(key, defaultValue) {
|
|
728
|
+
if (!visitor) {
|
|
729
|
+
return new _Flag__WEBPACK_IMPORTED_MODULE_5__.Flag(defaultValue, key, state.modifications);
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
return visitor.getFlag(key, defaultValue);
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
function fetchFlags() {
|
|
736
|
+
if (!visitor) {
|
|
737
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, 'fetchFlags');
|
|
738
|
+
return Promise.resolve();
|
|
739
|
+
}
|
|
740
|
+
|
|
741
|
+
return visitor.fetchFlags();
|
|
742
|
+
}
|
|
743
|
+
|
|
744
|
+
function setConsent(hasConsented) {
|
|
745
|
+
if (!visitor) {
|
|
746
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, 'setConsent');
|
|
747
|
+
return;
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
visitor.setConsent(hasConsented);
|
|
751
|
+
}
|
|
752
|
+
|
|
753
|
+
async function close() {
|
|
754
|
+
await _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default().close();
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
return {
|
|
758
|
+
visitorId: visitor === null || visitor === void 0 ? void 0 : visitor.visitorId,
|
|
759
|
+
anonymousId: visitor === null || visitor === void 0 ? void 0 : visitor.anonymousId,
|
|
760
|
+
context: { ...(visitor === null || visitor === void 0 ? void 0 : visitor.context)
|
|
761
|
+
},
|
|
762
|
+
hasConsented: visitor === null || visitor === void 0 ? void 0 : visitor.hasConsented,
|
|
763
|
+
setConsent,
|
|
764
|
+
updateContext: fsUpdateContext,
|
|
765
|
+
clearContext: fsClearContext,
|
|
766
|
+
authenticate: fsAuthenticate,
|
|
767
|
+
unauthenticate: fsUnauthenticate,
|
|
768
|
+
status: state.status,
|
|
769
|
+
activateModification,
|
|
770
|
+
synchronizeModifications,
|
|
771
|
+
getModifications,
|
|
772
|
+
modifications: modifications || [],
|
|
773
|
+
flagsData: (visitor === null || visitor === void 0 ? void 0 : visitor.getFlagsDataArray()) || [],
|
|
774
|
+
getModificationInfo,
|
|
775
|
+
hit: {
|
|
776
|
+
send: fsSendHit,
|
|
777
|
+
sendMultiple: fsSendHits
|
|
778
|
+
},
|
|
779
|
+
getFlag,
|
|
780
|
+
fetchFlags,
|
|
781
|
+
close
|
|
782
|
+
};
|
|
783
|
+
};
|
|
784
|
+
|
|
785
|
+
/***/ }),
|
|
786
|
+
|
|
787
|
+
/***/ "./src/constants.ts":
|
|
788
|
+
/*!**************************!*\
|
|
789
|
+
!*** ./src/constants.ts ***!
|
|
790
|
+
\**************************/
|
|
791
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
792
|
+
|
|
793
|
+
__webpack_require__.r(__webpack_exports__);
|
|
794
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
795
|
+
/* harmony export */ "GET_FLAG_CAST_ERROR": () => (/* binding */ GET_FLAG_CAST_ERROR),
|
|
796
|
+
/* harmony export */ "GET_METADATA_CAST_ERROR": () => (/* binding */ GET_METADATA_CAST_ERROR),
|
|
797
|
+
/* harmony export */ "noVisitorDefault": () => (/* binding */ noVisitorDefault),
|
|
798
|
+
/* harmony export */ "noVisitorMessage": () => (/* binding */ noVisitorMessage)
|
|
799
|
+
/* harmony export */ });
|
|
800
|
+
const noVisitorMessage = 'flagship Visitor not initialized.';
|
|
801
|
+
const noVisitorDefault = 'fsVisitor not initialized, returns default value';
|
|
802
|
+
const GET_FLAG_CAST_ERROR = 'Flag for key {0} has a different type. Default value is returned.';
|
|
803
|
+
const GET_METADATA_CAST_ERROR = 'Flag for key {0} has a different type with defaultValue, an empty metadata object is returned';
|
|
804
|
+
|
|
805
|
+
/***/ }),
|
|
806
|
+
|
|
807
|
+
/***/ "./src/sdkVersion.ts":
|
|
808
|
+
/*!***************************!*\
|
|
809
|
+
!*** ./src/sdkVersion.ts ***!
|
|
810
|
+
\***************************/
|
|
811
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
812
|
+
|
|
813
|
+
__webpack_require__.r(__webpack_exports__);
|
|
814
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
815
|
+
/* harmony export */ "version": () => (/* binding */ version)
|
|
816
|
+
/* harmony export */ });
|
|
817
|
+
// Generated by genversion.
|
|
818
|
+
const version = '3.2.2';
|
|
819
|
+
|
|
820
|
+
/***/ }),
|
|
821
|
+
|
|
822
|
+
/***/ "./src/utils.tsx":
|
|
823
|
+
/*!***********************!*\
|
|
824
|
+
!*** ./src/utils.tsx ***!
|
|
825
|
+
\***********************/
|
|
826
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
827
|
+
|
|
828
|
+
__webpack_require__.r(__webpack_exports__);
|
|
829
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
830
|
+
/* harmony export */ "getModificationsFromCampaigns": () => (/* binding */ getModificationsFromCampaigns),
|
|
831
|
+
/* harmony export */ "hasSameType": () => (/* binding */ hasSameType),
|
|
832
|
+
/* harmony export */ "logError": () => (/* binding */ logError),
|
|
833
|
+
/* harmony export */ "logInfo": () => (/* binding */ logInfo),
|
|
834
|
+
/* harmony export */ "logWarn": () => (/* binding */ logWarn),
|
|
835
|
+
/* harmony export */ "sprintf": () => (/* binding */ sprintf),
|
|
836
|
+
/* harmony export */ "useNonInitialEffect": () => (/* binding */ useNonInitialEffect),
|
|
837
|
+
/* harmony export */ "uuidV4": () => (/* binding */ uuidV4)
|
|
838
|
+
/* harmony export */ });
|
|
839
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
|
|
840
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__);
|
|
841
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
|
|
842
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
|
|
843
|
+
'use client';
|
|
844
|
+
|
|
845
|
+
|
|
846
|
+
|
|
847
|
+
function logError(config, message, tag) {
|
|
848
|
+
if (!config || !config.logManager || typeof config.logManager.error !== 'function' || !config.logLevel || config.logLevel < _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.LogLevel.ERROR) {
|
|
849
|
+
return;
|
|
850
|
+
}
|
|
851
|
+
|
|
852
|
+
config.logManager.error(message, tag);
|
|
853
|
+
}
|
|
854
|
+
function logInfo(config, message, tag) {
|
|
855
|
+
if (!config || !config.logManager || typeof config.logManager.info !== 'function' || !config.logLevel || config.logLevel < _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.LogLevel.INFO) {
|
|
856
|
+
return;
|
|
857
|
+
}
|
|
858
|
+
|
|
859
|
+
config.logManager.info(message, tag);
|
|
860
|
+
}
|
|
861
|
+
function logWarn(config, message, tag) {
|
|
862
|
+
if (!config || !config.logManager || typeof config.logManager.warning !== 'function' || !config.logLevel || config.logLevel < _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.LogLevel.WARNING) {
|
|
863
|
+
return;
|
|
864
|
+
}
|
|
865
|
+
|
|
866
|
+
config.logManager.warning(message, tag);
|
|
867
|
+
}
|
|
868
|
+
const getModificationsFromCampaigns = campaigns => {
|
|
869
|
+
const modifications = new Map();
|
|
870
|
+
|
|
871
|
+
if (!campaigns || !Array.isArray(campaigns)) {
|
|
872
|
+
return modifications;
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
campaigns.forEach(campaign => {
|
|
876
|
+
const object = campaign.variation.modifications.value;
|
|
877
|
+
|
|
878
|
+
for (const key in object) {
|
|
879
|
+
const value = object[key];
|
|
880
|
+
modifications.set(key, {
|
|
881
|
+
key,
|
|
882
|
+
campaignId: campaign.id,
|
|
883
|
+
variationGroupId: campaign.variationGroupId,
|
|
884
|
+
variationId: campaign.variation.id,
|
|
885
|
+
isReference: campaign.variation.reference,
|
|
886
|
+
value
|
|
887
|
+
});
|
|
888
|
+
}
|
|
889
|
+
});
|
|
890
|
+
return modifications;
|
|
891
|
+
};
|
|
892
|
+
function uuidV4() {
|
|
893
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (char) {
|
|
894
|
+
const rand = Math.random() * 16 | 0;
|
|
895
|
+
const value = char === 'x' ? rand : rand & 0x3 | 0x8;
|
|
896
|
+
return value.toString(16);
|
|
897
|
+
});
|
|
898
|
+
}
|
|
899
|
+
function useNonInitialEffect(effect, deps) {
|
|
900
|
+
const initialRender = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(true);
|
|
901
|
+
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
|
|
902
|
+
if (initialRender.current) {
|
|
903
|
+
initialRender.current = false;
|
|
904
|
+
return;
|
|
905
|
+
}
|
|
906
|
+
|
|
907
|
+
if (typeof effect === 'function') {
|
|
908
|
+
return effect();
|
|
909
|
+
}
|
|
910
|
+
}, deps);
|
|
911
|
+
}
|
|
912
|
+
function hasSameType(flagValue, defaultValue) {
|
|
913
|
+
if (typeof flagValue !== typeof defaultValue) {
|
|
914
|
+
return false;
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
if (typeof flagValue === 'object' && typeof defaultValue === 'object' && Array.isArray(flagValue) !== Array.isArray(defaultValue)) {
|
|
918
|
+
return false;
|
|
919
|
+
}
|
|
920
|
+
|
|
921
|
+
return true;
|
|
922
|
+
} // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
923
|
+
|
|
924
|
+
function sprintf(format, ...value) {
|
|
925
|
+
let formatted = format;
|
|
926
|
+
|
|
927
|
+
for (let i = 0; i < value.length; i++) {
|
|
928
|
+
const element = value[i];
|
|
929
|
+
formatted = formatted.replace(new RegExp(`\\{${i}\\}`, 'g'), element);
|
|
930
|
+
}
|
|
931
|
+
|
|
932
|
+
return formatted;
|
|
933
|
+
}
|
|
934
|
+
|
|
935
|
+
/***/ }),
|
|
936
|
+
|
|
937
|
+
/***/ "@flagship.io/js-sdk":
|
|
938
|
+
/*!**************************************!*\
|
|
939
|
+
!*** external "@flagship.io/js-sdk" ***!
|
|
940
|
+
\**************************************/
|
|
941
|
+
/***/ ((module) => {
|
|
942
|
+
|
|
943
|
+
module.exports = require("@flagship.io/js-sdk");
|
|
944
|
+
|
|
945
|
+
/***/ }),
|
|
946
|
+
|
|
947
|
+
/***/ "react":
|
|
948
|
+
/*!************************!*\
|
|
949
|
+
!*** external "react" ***!
|
|
950
|
+
\************************/
|
|
951
|
+
/***/ ((module) => {
|
|
952
|
+
|
|
953
|
+
module.exports = require("react");
|
|
954
|
+
|
|
955
|
+
/***/ })
|
|
956
|
+
|
|
957
|
+
/******/ });
|
|
958
|
+
/************************************************************************/
|
|
959
|
+
/******/ // The module cache
|
|
960
|
+
/******/ var __webpack_module_cache__ = {};
|
|
961
|
+
/******/
|
|
962
|
+
/******/ // The require function
|
|
963
|
+
/******/ function __webpack_require__(moduleId) {
|
|
964
|
+
/******/ // Check if module is in cache
|
|
965
|
+
/******/ var cachedModule = __webpack_module_cache__[moduleId];
|
|
966
|
+
/******/ if (cachedModule !== undefined) {
|
|
967
|
+
/******/ return cachedModule.exports;
|
|
968
|
+
/******/ }
|
|
969
|
+
/******/ // Create a new module (and put it into the cache)
|
|
970
|
+
/******/ var module = __webpack_module_cache__[moduleId] = {
|
|
971
|
+
/******/ // no module.id needed
|
|
972
|
+
/******/ // no module.loaded needed
|
|
973
|
+
/******/ exports: {}
|
|
974
|
+
/******/ };
|
|
975
|
+
/******/
|
|
976
|
+
/******/ // Execute the module function
|
|
977
|
+
/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
|
|
978
|
+
/******/
|
|
979
|
+
/******/ // Return the exports of the module
|
|
980
|
+
/******/ return module.exports;
|
|
981
|
+
/******/ }
|
|
982
|
+
/******/
|
|
983
|
+
/************************************************************************/
|
|
984
|
+
/******/ /* webpack/runtime/compat get default export */
|
|
985
|
+
/******/ (() => {
|
|
986
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
987
|
+
/******/ __webpack_require__.n = (module) => {
|
|
988
|
+
/******/ var getter = module && module.__esModule ?
|
|
989
|
+
/******/ () => (module['default']) :
|
|
990
|
+
/******/ () => (module);
|
|
991
|
+
/******/ __webpack_require__.d(getter, { a: getter });
|
|
992
|
+
/******/ return getter;
|
|
993
|
+
/******/ };
|
|
994
|
+
/******/ })();
|
|
995
|
+
/******/
|
|
996
|
+
/******/ /* webpack/runtime/define property getters */
|
|
997
|
+
/******/ (() => {
|
|
998
|
+
/******/ // define getter functions for harmony exports
|
|
999
|
+
/******/ __webpack_require__.d = (exports, definition) => {
|
|
1000
|
+
/******/ for(var key in definition) {
|
|
1001
|
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
1002
|
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
1003
|
+
/******/ }
|
|
1004
|
+
/******/ }
|
|
1005
|
+
/******/ };
|
|
1006
|
+
/******/ })();
|
|
1007
|
+
/******/
|
|
1008
|
+
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
1009
|
+
/******/ (() => {
|
|
1010
|
+
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
1011
|
+
/******/ })();
|
|
1012
|
+
/******/
|
|
1013
|
+
/******/ /* webpack/runtime/make namespace object */
|
|
1014
|
+
/******/ (() => {
|
|
1015
|
+
/******/ // define __esModule on exports
|
|
1016
|
+
/******/ __webpack_require__.r = (exports) => {
|
|
1017
|
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
1018
|
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
1019
|
+
/******/ }
|
|
1020
|
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
1021
|
+
/******/ };
|
|
1022
|
+
/******/ })();
|
|
1023
|
+
/******/
|
|
1024
|
+
/************************************************************************/
|
|
1025
|
+
var __webpack_exports__ = {};
|
|
1026
|
+
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
|
1027
|
+
(() => {
|
|
1028
|
+
/*!***********************!*\
|
|
1029
|
+
!*** ./src/index.tsx ***!
|
|
1030
|
+
\***********************/
|
|
1031
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1032
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1033
|
+
/* harmony export */ "FlagshipContext": () => (/* reexport safe */ _FlagshipContext__WEBPACK_IMPORTED_MODULE_0__.FlagshipContext),
|
|
1034
|
+
/* harmony export */ "FlagshipProvider": () => (/* reexport safe */ _FlagshipContext__WEBPACK_IMPORTED_MODULE_0__.FlagshipProvider),
|
|
1035
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
1036
|
+
/* harmony export */ "useFlagship": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFlagship),
|
|
1037
|
+
/* harmony export */ "useFsActivate": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsActivate),
|
|
1038
|
+
/* harmony export */ "useFsFlag": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsFlag),
|
|
1039
|
+
/* harmony export */ "useFsModification": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsModification),
|
|
1040
|
+
/* harmony export */ "useFsModificationInfo": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsModificationInfo),
|
|
1041
|
+
/* harmony export */ "useFsModifications": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsModifications)
|
|
1042
|
+
/* harmony export */ });
|
|
1043
|
+
/* harmony import */ var _FlagshipContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
|
|
1044
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
|
|
1045
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__);
|
|
1046
|
+
/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
1047
|
+
/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__) if(["default","FlagshipContext","FlagshipProvider"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__[__WEBPACK_IMPORT_KEY__]
|
|
1048
|
+
/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
1049
|
+
/* harmony import */ var _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FlagshipHooks */ "./src/FlagshipHooks.tsx");
|
|
1050
|
+
|
|
1051
|
+
|
|
1052
|
+
|
|
1053
|
+
|
|
1054
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_FlagshipContext__WEBPACK_IMPORTED_MODULE_0__.FlagshipProvider);
|
|
1055
|
+
})();
|
|
1056
|
+
|
|
1057
|
+
module.exports = __webpack_exports__;
|
|
1058
|
+
/******/ })()
|
|
1059
|
+
;
|
|
2
1060
|
//# sourceMappingURL=index.node.js.map
|