@flagship.io/react-sdk 3.2.0 → 3.2.1-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,28 +6,20 @@
6
6
  /*!*********************!*\
7
7
  !*** ./src/Flag.ts ***!
8
8
  \*********************/
9
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
10
-
11
-
12
-
13
- Object.defineProperty(exports, "__esModule", ({
14
- value: true
15
- }));
16
- exports.Flag = void 0;
17
-
18
- __webpack_require__(/*! core-js/modules/es.promise.js */ "core-js/modules/es.promise.js");
19
-
20
- var _jsSdk = _interopRequireWildcard(__webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk"));
21
-
22
- var _constants = __webpack_require__(/*! ./constants */ "./src/constants.ts");
23
-
24
- var _utils = __webpack_require__(/*! ./utils */ "./src/utils.tsx");
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; }
25
20
 
26
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
21
 
28
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
22
 
30
- 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; }
31
23
 
32
24
  class Flag {
33
25
  constructor(defaultValue, key, flagsData) {
@@ -40,7 +32,7 @@ class Flag {
40
32
  _defineProperty(this, "flag", void 0);
41
33
 
42
34
  if (!flagsData) {
43
- (0, _utils.logWarn)(_jsSdk.default.getConfig(), _constants.noVisitorMessage, 'GetFlag');
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');
44
36
  }
45
37
 
46
38
  this.defaultValue = defaultValue;
@@ -51,17 +43,17 @@ class Flag {
51
43
  NotSameType() {
52
44
  var _this$flag;
53
45
 
54
- return this.defaultValue !== null && this.defaultValue !== undefined && !(0, _utils.hasSameType)((_this$flag = this.flag) === null || _this$flag === void 0 ? void 0 : _this$flag.value, this.defaultValue);
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);
55
47
  }
56
48
 
57
49
  getValue() {
58
50
  if (!this.flag) {
59
- (0, _utils.logWarn)(_jsSdk.default.getConfig(), _constants.noVisitorMessage, 'getValue');
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');
60
52
  return this.defaultValue;
61
53
  }
62
54
 
63
55
  if (this.NotSameType()) {
64
- (0, _utils.logInfo)(_jsSdk.default.getConfig(), (0, _utils.sprintf)(_constants.GET_FLAG_CAST_ERROR, this.key), 'getValue');
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');
65
57
  return this.defaultValue;
66
58
  }
67
59
 
@@ -70,7 +62,7 @@ class Flag {
70
62
 
71
63
  exists() {
72
64
  if (!this.flag) {
73
- (0, _utils.logWarn)(_jsSdk.default.getConfig(), _constants.noVisitorMessage, 'exists');
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');
74
66
  return false;
75
67
  }
76
68
 
@@ -79,7 +71,7 @@ class Flag {
79
71
 
80
72
  userExposed() {
81
73
  if (!this.flag) {
82
- (0, _utils.logWarn)(_jsSdk.default.getConfig(), _constants.noVisitorMessage, 'userExposed');
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');
83
75
  }
84
76
 
85
77
  return Promise.resolve();
@@ -87,7 +79,7 @@ class Flag {
87
79
 
88
80
  visitorExposed() {
89
81
  if (!this.flag) {
90
- (0, _utils.logWarn)(_jsSdk.default.getConfig(), _constants.noVisitorMessage, 'visitorExposed');
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');
91
83
  }
92
84
 
93
85
  return Promise.resolve();
@@ -97,16 +89,16 @@ class Flag {
97
89
  const functionName = 'metadata';
98
90
 
99
91
  if (!this.flag) {
100
- (0, _utils.logWarn)(_jsSdk.default.getConfig(), _constants.noVisitorMessage, functionName);
101
- return _jsSdk.FlagMetadata.Empty();
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();
102
94
  }
103
95
 
104
96
  if (this.NotSameType()) {
105
- (0, _utils.logInfo)(_jsSdk.default.getConfig(), (0, _utils.sprintf)(_constants.GET_METADATA_CAST_ERROR, this.key), functionName);
106
- return _jsSdk.FlagMetadata.Empty();
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();
107
99
  }
108
100
 
109
- return new _jsSdk.FlagMetadata({
101
+ return new _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.FlagMetadata({
110
102
  campaignId: this.flag.campaignId,
111
103
  variationGroupId: this.flag.variationGroupId,
112
104
  variationId: this.flag.variationId,
@@ -118,53 +110,45 @@ class Flag {
118
110
 
119
111
  }
120
112
 
121
- exports.Flag = Flag;
122
-
123
113
  /***/ }),
124
114
 
125
115
  /***/ "./src/FlagshipContext.tsx":
126
116
  /*!*********************************!*\
127
117
  !*** ./src/FlagshipContext.tsx ***!
128
118
  \*********************************/
129
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
130
-
131
-
132
-
133
- Object.defineProperty(exports, "__esModule", ({
134
- value: true
135
- }));
136
- exports.FlagshipProvider = exports.FlagshipContext = void 0;
137
-
138
- var _react = _interopRequireWildcard(__webpack_require__(/*! react */ "react"));
139
-
140
- var _jsSdk = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
141
-
142
- var _utils = __webpack_require__(/*! ./utils */ "./src/utils.tsx");
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
+ // eslint-disable-next-line no-use-before-define
143
133
 
144
- var _sdkVersion = __webpack_require__(/*! ./sdkVersion */ "./src/sdkVersion.ts");
145
134
 
146
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
147
135
 
148
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
149
136
 
150
- // eslint-disable-next-line no-use-before-define
151
137
  const initStat = {
152
138
  status: {
153
139
  isLoading: true,
154
140
  isSdkReady: false
155
141
  }
156
142
  };
157
- const FlagshipContext = /*#__PURE__*/(0, _react.createContext)({
143
+ const FlagshipContext = /*#__PURE__*/(0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({
158
144
  state: { ...initStat
159
145
  }
160
146
  });
161
- exports.FlagshipContext = FlagshipContext;
162
-
163
147
  const FlagshipProvider = ({
164
148
  children,
165
149
  envId,
166
150
  apiKey,
167
- decisionMode = _jsSdk.DecisionMode.DECISION_API,
151
+ decisionMode = _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.DecisionMode.DECISION_API,
168
152
  visitorData,
169
153
  onInitStart,
170
154
  onInitDone,
@@ -179,7 +163,7 @@ const FlagshipProvider = ({
179
163
  hitDeduplicationTime = 2,
180
164
  fetchNow = true,
181
165
  language = 1,
182
- sdkVersion = _sdkVersion.version,
166
+ sdkVersion = _sdkVersion__WEBPACK_IMPORTED_MODULE_2__.version,
183
167
  ...props
184
168
  }) => {
185
169
  let modifications = new Map();
@@ -193,26 +177,26 @@ const FlagshipProvider = ({
193
177
  modifications.set(modification.key, modification);
194
178
  });
195
179
  } else if (initialCampaigns) {
196
- modifications = (0, _utils.getModificationsFromCampaigns)(initialCampaigns);
180
+ modifications = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getModificationsFromCampaigns)(initialCampaigns);
197
181
  }
198
182
 
199
- const [state, setState] = (0, _react.useState)({ ...initStat,
183
+ const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({ ...initStat,
200
184
  modifications
201
185
  });
202
- const [lastModified, setLastModified] = (0, _react.useState)();
203
- const stateRef = (0, _react.useRef)();
186
+ const [lastModified, setLastModified] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)();
187
+ const stateRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)();
204
188
  stateRef.current = state;
205
- (0, _utils.useNonInitialEffect)(() => {
189
+ (0,_utils__WEBPACK_IMPORTED_MODULE_3__.useNonInitialEffect)(() => {
206
190
  if (fetchFlagsOnBucketingUpdated) {
207
191
  var _state$visitor;
208
192
 
209
193
  (_state$visitor = state.visitor) === null || _state$visitor === void 0 ? void 0 : _state$visitor.fetchFlags();
210
194
  }
211
195
  }, [lastModified]);
212
- (0, _utils.useNonInitialEffect)(() => {
196
+ (0,_utils__WEBPACK_IMPORTED_MODULE_3__.useNonInitialEffect)(() => {
213
197
  updateVisitor();
214
198
  }, [JSON.stringify(visitorData)]);
215
- (0, _react.useEffect)(() => {
199
+ (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
216
200
  initSdk();
217
201
  }, [envId, apiKey, decisionMode]);
218
202
 
@@ -231,7 +215,7 @@ const FlagshipProvider = ({
231
215
  return { ...currentState,
232
216
  visitor: param.fsVisitor,
233
217
  modifications: param.fsVisitor.modifications,
234
- config: _jsSdk.Flagship.getConfig(),
218
+ config: _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig(),
235
219
  status: { ...currentState.status,
236
220
  ...newStatus
237
221
  }
@@ -243,7 +227,7 @@ const FlagshipProvider = ({
243
227
 
244
228
  const onVisitorReady = (fsVisitor, error) => {
245
229
  if (error) {
246
- (0, _utils.logError)(_jsSdk.Flagship.getConfig(), error.message || error, 'onReady');
230
+ (0,_utils__WEBPACK_IMPORTED_MODULE_3__.logError)(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig(), error.message || error, 'onReady');
247
231
  return;
248
232
  }
249
233
 
@@ -256,7 +240,7 @@ const FlagshipProvider = ({
256
240
  if (onUpdate) {
257
241
  onUpdate({
258
242
  fsModifications: fsVisitor.modifications,
259
- config: _jsSdk.Flagship.getConfig(),
243
+ config: _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig(),
260
244
  status: newStatus
261
245
  });
262
246
  }
@@ -267,13 +251,15 @@ const FlagshipProvider = ({
267
251
  return;
268
252
  }
269
253
 
270
- if (!state.visitor) {
254
+ if (!state.visitor || state.visitor.visitorId !== visitorData.id && (!visitorData.isAuthenticated || visitorData.isAuthenticated && state.visitor.anonymousId)) {
271
255
  createVisitor();
272
256
  return;
273
257
  }
274
258
 
275
259
  if (visitorData.hasConsented !== state.visitor.hasConsented) {
276
- state.visitor.setConsent(visitorData.hasConsented);
260
+ var _visitorData$hasConse;
261
+
262
+ state.visitor.setConsent((_visitorData$hasConse = visitorData.hasConsented) !== null && _visitorData$hasConse !== void 0 ? _visitorData$hasConse : true);
277
263
  } // eslint-disable-next-line @typescript-eslint/no-explicit-any
278
264
 
279
265
 
@@ -295,7 +281,7 @@ const FlagshipProvider = ({
295
281
  return;
296
282
  }
297
283
 
298
- const fsVisitor = _jsSdk.Flagship.newVisitor({
284
+ const fsVisitor = _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.newVisitor({
299
285
  visitorId: visitorData.id,
300
286
  context: visitorData.context,
301
287
  isAuthenticated: visitorData.isAuthenticated,
@@ -304,7 +290,6 @@ const FlagshipProvider = ({
304
290
  initialModifications,
305
291
  initialFlagsData
306
292
  });
307
-
308
293
  fsVisitor === null || fsVisitor === void 0 ? void 0 : fsVisitor.on('ready', error => {
309
294
  onVisitorReady(fsVisitor, error);
310
295
  });
@@ -324,15 +309,15 @@ const FlagshipProvider = ({
324
309
  }
325
310
 
326
311
  switch (status) {
327
- case _jsSdk.FlagshipStatus.STARTING:
328
- if (status === _jsSdk.FlagshipStatus.STARTING && onInitStart) {
312
+ case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.STARTING:
313
+ if (status === _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.STARTING && onInitStart) {
329
314
  onInitStart();
330
315
  }
331
316
 
332
317
  break;
333
318
 
334
- case _jsSdk.FlagshipStatus.READY_PANIC_ON:
335
- case _jsSdk.FlagshipStatus.READY:
319
+ case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.READY_PANIC_ON:
320
+ case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.READY:
336
321
  if (onInitDone) {
337
322
  onInitDone();
338
323
  }
@@ -340,12 +325,12 @@ const FlagshipProvider = ({
340
325
  createVisitor();
341
326
  break;
342
327
 
343
- case _jsSdk.FlagshipStatus.NOT_INITIALIZED:
328
+ case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.NOT_INITIALIZED:
344
329
  setState(prev => ({ ...prev,
345
330
  status: { ...prev.status,
346
331
  isLoading: false
347
332
  },
348
- config: _jsSdk.Flagship.getConfig()
333
+ config: _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig()
349
334
  }));
350
335
  break;
351
336
  }
@@ -360,7 +345,7 @@ const FlagshipProvider = ({
360
345
  };
361
346
 
362
347
  const initSdk = () => {
363
- _jsSdk.Flagship.start(envId, apiKey, {
348
+ _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.start(envId, apiKey, {
364
349
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
365
350
  decisionMode: decisionMode,
366
351
  fetchNow,
@@ -377,26 +362,24 @@ const FlagshipProvider = ({
377
362
  const isFirstInit = !state.visitor;
378
363
 
379
364
  if (state.status.isLoading && loadingComponent && isFirstInit && fetchNow) {
380
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, loadingComponent);
365
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, loadingComponent);
381
366
  }
382
367
 
383
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
368
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, children);
384
369
  };
385
370
 
386
- return /*#__PURE__*/_react.default.createElement(FlagshipContext.Provider, {
371
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FlagshipContext.Provider, {
387
372
  value: {
388
373
  state,
389
374
  setState
390
375
  }
391
376
  }, handleDisplay());
392
377
  };
393
-
394
- exports.FlagshipProvider = FlagshipProvider;
395
378
  FlagshipProvider.defaultProps = {
396
379
  hitDeduplicationTime: 2,
397
380
  fetchNow: true,
398
381
  language: 1,
399
- sdkVersion: _sdkVersion.version
382
+ sdkVersion: _sdkVersion__WEBPACK_IMPORTED_MODULE_2__.version
400
383
  };
401
384
 
402
385
  /***/ }),
@@ -405,30 +388,31 @@ FlagshipProvider.defaultProps = {
405
388
  /*!*******************************!*\
406
389
  !*** ./src/FlagshipHooks.tsx ***!
407
390
  \*******************************/
408
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
409
-
391
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
410
392
 
393
+ __webpack_require__.r(__webpack_exports__);
394
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
395
+ /* harmony export */ "useFlagship": () => (/* binding */ useFlagship),
396
+ /* harmony export */ "useFsActivate": () => (/* binding */ useFsActivate),
397
+ /* harmony export */ "useFsFlag": () => (/* binding */ useFsFlag),
398
+ /* harmony export */ "useFsModification": () => (/* binding */ useFsModification),
399
+ /* harmony export */ "useFsModificationInfo": () => (/* binding */ useFsModificationInfo),
400
+ /* harmony export */ "useFsModifications": () => (/* binding */ useFsModifications)
401
+ /* harmony export */ });
402
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
403
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
404
+ /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
405
+ /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__);
406
+ /* harmony import */ var _FlagshipContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
407
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/utils.tsx");
408
+ /* harmony import */ var _Flag__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Flag */ "./src/Flag.ts");
409
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./src/constants.ts");
411
410
 
412
- Object.defineProperty(exports, "__esModule", ({
413
- value: true
414
- }));
415
- exports.useFlagship = exports.useFsActivate = exports.useFsFlag = exports.useFsModificationInfo = exports.useFsModification = exports.useFsModifications = void 0;
416
411
 
417
- __webpack_require__(/*! core-js/modules/es.promise.js */ "core-js/modules/es.promise.js");
418
412
 
419
- var _react = __webpack_require__(/*! react */ "react");
420
413
 
421
- var _jsSdk = _interopRequireDefault(__webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk"));
422
414
 
423
- var _FlagshipContext = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
424
415
 
425
- var _utils = __webpack_require__(/*! ./utils */ "./src/utils.tsx");
426
-
427
- var _Flag = __webpack_require__(/*! ./Flag */ "./src/Flag.ts");
428
-
429
- var _constants = __webpack_require__(/*! ./constants */ "./src/constants.ts");
430
-
431
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
432
416
 
433
417
  const checkType = (value, defaultValue) => typeof value === 'object' && typeof defaultValue === 'object' && Array.isArray(value) === Array.isArray(defaultValue) || typeof value === typeof defaultValue;
434
418
 
@@ -464,7 +448,7 @@ const fsModificationsSync = args => {
464
448
  return flags;
465
449
  }
466
450
 
467
- (0, _utils.logWarn)(config, _constants.noVisitorDefault, functionName);
451
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorDefault, functionName);
468
452
  params.forEach(item => {
469
453
  flags[item.key] = item.defaultValue;
470
454
  });
@@ -479,7 +463,7 @@ const fsModificationsSync = args => {
479
463
  const useFsModifications = (params, activateAll) => {
480
464
  const {
481
465
  state
482
- } = (0, _react.useContext)(_FlagshipContext.FlagshipContext);
466
+ } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
483
467
  const {
484
468
  visitor,
485
469
  config
@@ -499,15 +483,12 @@ const useFsModifications = (params, activateAll) => {
499
483
  * @deprecated use useFsFlag instead
500
484
  */
501
485
 
502
-
503
- exports.useFsModifications = useFsModifications;
504
-
505
486
  const useFsModification = params => {
506
487
  var _state$modifications2;
507
488
 
508
489
  const {
509
490
  state
510
- } = (0, _react.useContext)(_FlagshipContext.FlagshipContext);
491
+ } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
511
492
  const {
512
493
  visitor,
513
494
  config
@@ -524,12 +505,10 @@ const useFsModification = params => {
524
505
  return modification.value;
525
506
  }
526
507
 
527
- (0, _utils.logWarn)(config, _constants.noVisitorDefault, functionName);
508
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorDefault, functionName);
528
509
  return params.defaultValue;
529
510
  };
530
511
 
531
- exports.useFsModification = useFsModification;
532
-
533
512
  const fsModificationInfoSync = args => {
534
513
  var _state$modifications3;
535
514
 
@@ -561,7 +540,7 @@ const fsModificationInfoSync = args => {
561
540
  const useFsModificationInfo = key => {
562
541
  const {
563
542
  state
564
- } = (0, _react.useContext)(_FlagshipContext.FlagshipContext);
543
+ } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
565
544
  const {
566
545
  visitor
567
546
  } = state;
@@ -572,18 +551,16 @@ const useFsModificationInfo = key => {
572
551
  });
573
552
  };
574
553
 
575
- exports.useFsModificationInfo = useFsModificationInfo;
576
-
577
554
  const fsActivate = async (params, functionName, visitor, config) => {
578
555
  try {
579
556
  if (!visitor) {
580
- (0, _utils.logWarn)(config, _constants.noVisitorMessage, functionName);
557
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
581
558
  return;
582
559
  }
583
560
 
584
561
  await visitor.activateModifications(params); // eslint-disable-next-line @typescript-eslint/no-explicit-any
585
562
  } catch (error) {
586
- (0, _utils.logWarn)(config, error.message || error, functionName);
563
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, error.message || error, functionName);
587
564
  }
588
565
  };
589
566
  /**
@@ -597,13 +574,13 @@ const fsActivate = async (params, functionName, visitor, config) => {
597
574
  const useFsFlag = (key, defaultValue) => {
598
575
  const {
599
576
  state
600
- } = (0, _react.useContext)(_FlagshipContext.FlagshipContext);
577
+ } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
601
578
  const {
602
579
  visitor
603
580
  } = state;
604
581
 
605
582
  if (!visitor) {
606
- return new _Flag.Flag(defaultValue, key, state.modifications);
583
+ return new _Flag__WEBPACK_IMPORTED_MODULE_5__.Flag(defaultValue, key, state.modifications);
607
584
  }
608
585
 
609
586
  return visitor.getFlag(key, defaultValue);
@@ -615,13 +592,10 @@ const useFsFlag = (key, defaultValue) => {
615
592
  * @returns
616
593
  */
617
594
 
618
-
619
- exports.useFsFlag = useFsFlag;
620
-
621
595
  const useFsActivate = async params => {
622
596
  const {
623
597
  state
624
- } = (0, _react.useContext)(_FlagshipContext.FlagshipContext);
598
+ } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
625
599
  const {
626
600
  visitor,
627
601
  config
@@ -629,13 +603,10 @@ const useFsActivate = async params => {
629
603
  const functionName = 'useFsModifications';
630
604
  await fsActivate(params, functionName, visitor, config);
631
605
  };
632
-
633
- exports.useFsActivate = useFsActivate;
634
-
635
606
  const useFlagship = () => {
636
607
  const {
637
608
  state
638
- } = (0, _react.useContext)(_FlagshipContext.FlagshipContext);
609
+ } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
639
610
  const {
640
611
  visitor,
641
612
  config
@@ -645,7 +616,7 @@ const useFlagship = () => {
645
616
  const functionName = 'updateContext';
646
617
 
647
618
  if (!visitor) {
648
- (0, _utils.logError)(config, _constants.noVisitorMessage, functionName);
619
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
649
620
  return;
650
621
  }
651
622
 
@@ -657,7 +628,7 @@ const useFlagship = () => {
657
628
  const functionName = 'cleanContext';
658
629
 
659
630
  if (!visitor) {
660
- (0, _utils.logError)(config, _constants.noVisitorMessage, functionName);
631
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
661
632
  return;
662
633
  }
663
634
 
@@ -668,7 +639,7 @@ const useFlagship = () => {
668
639
  const functionName = 'authenticate';
669
640
 
670
641
  if (!visitor) {
671
- (0, _utils.logError)(config, _constants.noVisitorMessage, functionName);
642
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
672
643
  return;
673
644
  }
674
645
 
@@ -679,7 +650,7 @@ const useFlagship = () => {
679
650
  const functionName = 'unauthenticate';
680
651
 
681
652
  if (!visitor) {
682
- (0, _utils.logError)(config, _constants.noVisitorMessage, functionName);
653
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
683
654
  return;
684
655
  }
685
656
 
@@ -694,7 +665,7 @@ const useFlagship = () => {
694
665
  const functionName = 'sendHit';
695
666
 
696
667
  if (!visitor) {
697
- (0, _utils.logError)(config, _constants.noVisitorMessage, functionName);
668
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
698
669
  return Promise.resolve();
699
670
  }
700
671
 
@@ -709,7 +680,7 @@ const useFlagship = () => {
709
680
  const functionName = 'sendHits';
710
681
 
711
682
  if (!visitor) {
712
- (0, _utils.logError)(config, _constants.noVisitorMessage, functionName);
683
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
713
684
  return Promise.resolve();
714
685
  }
715
686
 
@@ -730,7 +701,7 @@ const useFlagship = () => {
730
701
 
731
702
  const synchronizeModifications = async () => {
732
703
  if (!visitor) {
733
- (0, _utils.logWarn)(config, _constants.noVisitorMessage, 'synchronizeModifications');
704
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, 'synchronizeModifications');
734
705
  return;
735
706
  }
736
707
 
@@ -759,7 +730,7 @@ const useFlagship = () => {
759
730
 
760
731
  function getFlag(key, defaultValue) {
761
732
  if (!visitor) {
762
- return new _Flag.Flag(defaultValue, key, state.modifications);
733
+ return new _Flag__WEBPACK_IMPORTED_MODULE_5__.Flag(defaultValue, key, state.modifications);
763
734
  }
764
735
 
765
736
  return visitor.getFlag(key, defaultValue);
@@ -767,7 +738,7 @@ const useFlagship = () => {
767
738
 
768
739
  function fetchFlags() {
769
740
  if (!visitor) {
770
- (0, _utils.logWarn)(config, _constants.noVisitorMessage, 'fetchFlags');
741
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, 'fetchFlags');
771
742
  return Promise.resolve();
772
743
  }
773
744
 
@@ -776,7 +747,7 @@ const useFlagship = () => {
776
747
 
777
748
  function setConsent(hasConsented) {
778
749
  if (!visitor) {
779
- (0, _utils.logWarn)(config, _constants.noVisitorMessage, 'setConsent');
750
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, 'setConsent');
780
751
  return;
781
752
  }
782
753
 
@@ -784,7 +755,7 @@ const useFlagship = () => {
784
755
  }
785
756
 
786
757
  async function close() {
787
- await _jsSdk.default.close();
758
+ await _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default().close();
788
759
  }
789
760
 
790
761
  return {
@@ -815,83 +786,25 @@ const useFlagship = () => {
815
786
  };
816
787
  };
817
788
 
818
- exports.useFlagship = useFlagship;
819
-
820
789
  /***/ }),
821
790
 
822
791
  /***/ "./src/constants.ts":
823
792
  /*!**************************!*\
824
793
  !*** ./src/constants.ts ***!
825
794
  \**************************/
826
- /***/ ((__unused_webpack_module, exports) => {
827
-
828
-
829
-
830
- Object.defineProperty(exports, "__esModule", ({
831
- value: true
832
- }));
833
- exports.GET_METADATA_CAST_ERROR = exports.GET_FLAG_CAST_ERROR = exports.noVisitorDefault = exports.noVisitorMessage = void 0;
795
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
796
+
797
+ __webpack_require__.r(__webpack_exports__);
798
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
799
+ /* harmony export */ "GET_FLAG_CAST_ERROR": () => (/* binding */ GET_FLAG_CAST_ERROR),
800
+ /* harmony export */ "GET_METADATA_CAST_ERROR": () => (/* binding */ GET_METADATA_CAST_ERROR),
801
+ /* harmony export */ "noVisitorDefault": () => (/* binding */ noVisitorDefault),
802
+ /* harmony export */ "noVisitorMessage": () => (/* binding */ noVisitorMessage)
803
+ /* harmony export */ });
834
804
  const noVisitorMessage = 'flagship Visitor not initialized.';
835
- exports.noVisitorMessage = noVisitorMessage;
836
805
  const noVisitorDefault = 'fsVisitor not initialized, returns default value';
837
- exports.noVisitorDefault = noVisitorDefault;
838
806
  const GET_FLAG_CAST_ERROR = 'Flag for key {0} has a different type. Default value is returned.';
839
- exports.GET_FLAG_CAST_ERROR = GET_FLAG_CAST_ERROR;
840
807
  const GET_METADATA_CAST_ERROR = 'Flag for key {0} has a different type with defaultValue, an empty metadata object is returned';
841
- exports.GET_METADATA_CAST_ERROR = GET_METADATA_CAST_ERROR;
842
-
843
- /***/ }),
844
-
845
- /***/ "./src/index.tsx":
846
- /*!***********************!*\
847
- !*** ./src/index.tsx ***!
848
- \***********************/
849
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
850
-
851
-
852
-
853
- Object.defineProperty(exports, "__esModule", ({
854
- value: true
855
- }));
856
-
857
- var _FlagshipContext = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
858
-
859
- Object.keys(_FlagshipContext).forEach(function (key) {
860
- if (key === "default" || key === "__esModule") return;
861
- if (key in exports && exports[key] === _FlagshipContext[key]) return;
862
- Object.defineProperty(exports, key, {
863
- enumerable: true,
864
- get: function () {
865
- return _FlagshipContext[key];
866
- }
867
- });
868
- });
869
-
870
- var _jsSdk = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
871
-
872
- Object.keys(_jsSdk).forEach(function (key) {
873
- if (key === "default" || key === "__esModule") return;
874
- if (key in exports && exports[key] === _jsSdk[key]) return;
875
- Object.defineProperty(exports, key, {
876
- enumerable: true,
877
- get: function () {
878
- return _jsSdk[key];
879
- }
880
- });
881
- });
882
-
883
- var _FlagshipHooks = __webpack_require__(/*! ./FlagshipHooks */ "./src/FlagshipHooks.tsx");
884
-
885
- Object.keys(_FlagshipHooks).forEach(function (key) {
886
- if (key === "default" || key === "__esModule") return;
887
- if (key in exports && exports[key] === _FlagshipHooks[key]) return;
888
- Object.defineProperty(exports, key, {
889
- enumerable: true,
890
- get: function () {
891
- return _FlagshipHooks[key];
892
- }
893
- });
894
- });
895
808
 
896
809
  /***/ }),
897
810
 
@@ -899,17 +812,14 @@ Object.keys(_FlagshipHooks).forEach(function (key) {
899
812
  /*!***************************!*\
900
813
  !*** ./src/sdkVersion.ts ***!
901
814
  \***************************/
902
- /***/ ((__unused_webpack_module, exports) => {
903
-
815
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
904
816
 
905
-
906
- Object.defineProperty(exports, "__esModule", ({
907
- value: true
908
- }));
909
- exports.version = void 0;
817
+ __webpack_require__.r(__webpack_exports__);
818
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
819
+ /* harmony export */ "version": () => (/* binding */ version)
820
+ /* harmony export */ });
910
821
  // Generated by genversion.
911
- const version = '3.2.0';
912
- exports.version = version;
822
+ const version = '3.2.1-alpha.1';
913
823
 
914
824
  /***/ }),
915
825
 
@@ -917,50 +827,46 @@ exports.version = version;
917
827
  /*!***********************!*\
918
828
  !*** ./src/utils.tsx ***!
919
829
  \***********************/
920
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
921
-
922
-
923
-
924
- Object.defineProperty(exports, "__esModule", ({
925
- value: true
926
- }));
927
- exports.logError = logError;
928
- exports.logInfo = logInfo;
929
- exports.logWarn = logWarn;
930
- exports.uuidV4 = uuidV4;
931
- exports.useNonInitialEffect = useNonInitialEffect;
932
- exports.hasSameType = hasSameType;
933
- exports.sprintf = sprintf;
934
- exports.getModificationsFromCampaigns = void 0;
935
-
936
- var _jsSdk = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
830
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
831
+
832
+ __webpack_require__.r(__webpack_exports__);
833
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
834
+ /* harmony export */ "getModificationsFromCampaigns": () => (/* binding */ getModificationsFromCampaigns),
835
+ /* harmony export */ "hasSameType": () => (/* binding */ hasSameType),
836
+ /* harmony export */ "logError": () => (/* binding */ logError),
837
+ /* harmony export */ "logInfo": () => (/* binding */ logInfo),
838
+ /* harmony export */ "logWarn": () => (/* binding */ logWarn),
839
+ /* harmony export */ "sprintf": () => (/* binding */ sprintf),
840
+ /* harmony export */ "useNonInitialEffect": () => (/* binding */ useNonInitialEffect),
841
+ /* harmony export */ "uuidV4": () => (/* binding */ uuidV4)
842
+ /* harmony export */ });
843
+ /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
844
+ /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__);
845
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
846
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
937
847
 
938
- var _react = __webpack_require__(/*! react */ "react");
939
848
 
940
849
  function logError(config, message, tag) {
941
- if (!config || !config.logManager || typeof config.logManager.error !== 'function' || !config.logLevel || config.logLevel < _jsSdk.LogLevel.ERROR) {
850
+ if (!config || !config.logManager || typeof config.logManager.error !== 'function' || !config.logLevel || config.logLevel < _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.LogLevel.ERROR) {
942
851
  return;
943
852
  }
944
853
 
945
854
  config.logManager.error(message, tag);
946
855
  }
947
-
948
856
  function logInfo(config, message, tag) {
949
- if (!config || !config.logManager || typeof config.logManager.info !== 'function' || !config.logLevel || config.logLevel < _jsSdk.LogLevel.INFO) {
857
+ if (!config || !config.logManager || typeof config.logManager.info !== 'function' || !config.logLevel || config.logLevel < _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.LogLevel.INFO) {
950
858
  return;
951
859
  }
952
860
 
953
861
  config.logManager.info(message, tag);
954
862
  }
955
-
956
863
  function logWarn(config, message, tag) {
957
- if (!config || !config.logManager || typeof config.logManager.warning !== 'function' || !config.logLevel || config.logLevel < _jsSdk.LogLevel.WARNING) {
864
+ if (!config || !config.logManager || typeof config.logManager.warning !== 'function' || !config.logLevel || config.logLevel < _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.LogLevel.WARNING) {
958
865
  return;
959
866
  }
960
867
 
961
868
  config.logManager.warning(message, tag);
962
869
  }
963
-
964
870
  const getModificationsFromCampaigns = campaigns => {
965
871
  const modifications = new Map();
966
872
 
@@ -985,9 +891,6 @@ const getModificationsFromCampaigns = campaigns => {
985
891
  });
986
892
  return modifications;
987
893
  };
988
-
989
- exports.getModificationsFromCampaigns = getModificationsFromCampaigns;
990
-
991
894
  function uuidV4() {
992
895
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (char) {
993
896
  const rand = Math.random() * 16 | 0;
@@ -995,10 +898,9 @@ function uuidV4() {
995
898
  return value.toString(16);
996
899
  });
997
900
  }
998
-
999
901
  function useNonInitialEffect(effect, deps) {
1000
- const initialRender = (0, _react.useRef)(true);
1001
- (0, _react.useEffect)(() => {
902
+ const initialRender = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(true);
903
+ (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
1002
904
  if (initialRender.current) {
1003
905
  initialRender.current = false;
1004
906
  return;
@@ -1009,7 +911,6 @@ function useNonInitialEffect(effect, deps) {
1009
911
  }
1010
912
  }, deps);
1011
913
  }
1012
-
1013
914
  function hasSameType(flagValue, defaultValue) {
1014
915
  if (typeof flagValue !== typeof defaultValue) {
1015
916
  return false;
@@ -1022,7 +923,6 @@ function hasSameType(flagValue, defaultValue) {
1022
923
  return true;
1023
924
  } // eslint-disable-next-line @typescript-eslint/no-explicit-any
1024
925
 
1025
-
1026
926
  function sprintf(format, ...value) {
1027
927
  let formatted = format;
1028
928
 
@@ -1046,16 +946,6 @@ module.exports = require("@flagship.io/js-sdk");
1046
946
 
1047
947
  /***/ }),
1048
948
 
1049
- /***/ "core-js/modules/es.promise.js":
1050
- /*!************************************************!*\
1051
- !*** external "core-js/modules/es.promise.js" ***!
1052
- \************************************************/
1053
- /***/ ((module) => {
1054
-
1055
- module.exports = require("core-js/modules/es.promise.js");
1056
-
1057
- /***/ }),
1058
-
1059
949
  /***/ "react":
1060
950
  /*!************************!*\
1061
951
  !*** external "react" ***!
@@ -1093,13 +983,77 @@ module.exports = require("react");
1093
983
  /******/ }
1094
984
  /******/
1095
985
  /************************************************************************/
986
+ /******/ /* webpack/runtime/compat get default export */
987
+ /******/ (() => {
988
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
989
+ /******/ __webpack_require__.n = (module) => {
990
+ /******/ var getter = module && module.__esModule ?
991
+ /******/ () => (module['default']) :
992
+ /******/ () => (module);
993
+ /******/ __webpack_require__.d(getter, { a: getter });
994
+ /******/ return getter;
995
+ /******/ };
996
+ /******/ })();
1096
997
  /******/
1097
- /******/ // startup
1098
- /******/ // Load entry module and return exports
1099
- /******/ // This entry module is referenced by other modules so it can't be inlined
1100
- /******/ var __webpack_exports__ = __webpack_require__("./src/index.tsx");
1101
- /******/ module.exports = __webpack_exports__;
998
+ /******/ /* webpack/runtime/define property getters */
999
+ /******/ (() => {
1000
+ /******/ // define getter functions for harmony exports
1001
+ /******/ __webpack_require__.d = (exports, definition) => {
1002
+ /******/ for(var key in definition) {
1003
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
1004
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
1005
+ /******/ }
1006
+ /******/ }
1007
+ /******/ };
1008
+ /******/ })();
1009
+ /******/
1010
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
1011
+ /******/ (() => {
1012
+ /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
1013
+ /******/ })();
1102
1014
  /******/
1015
+ /******/ /* webpack/runtime/make namespace object */
1016
+ /******/ (() => {
1017
+ /******/ // define __esModule on exports
1018
+ /******/ __webpack_require__.r = (exports) => {
1019
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
1020
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1021
+ /******/ }
1022
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
1023
+ /******/ };
1024
+ /******/ })();
1025
+ /******/
1026
+ /************************************************************************/
1027
+ var __webpack_exports__ = {};
1028
+ // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
1029
+ (() => {
1030
+ /*!***********************!*\
1031
+ !*** ./src/index.tsx ***!
1032
+ \***********************/
1033
+ __webpack_require__.r(__webpack_exports__);
1034
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1035
+ /* harmony export */ "FlagshipContext": () => (/* reexport safe */ _FlagshipContext__WEBPACK_IMPORTED_MODULE_0__.FlagshipContext),
1036
+ /* harmony export */ "FlagshipProvider": () => (/* reexport safe */ _FlagshipContext__WEBPACK_IMPORTED_MODULE_0__.FlagshipProvider),
1037
+ /* harmony export */ "useFlagship": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFlagship),
1038
+ /* harmony export */ "useFsActivate": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsActivate),
1039
+ /* harmony export */ "useFsFlag": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsFlag),
1040
+ /* harmony export */ "useFsModification": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsModification),
1041
+ /* harmony export */ "useFsModificationInfo": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsModificationInfo),
1042
+ /* harmony export */ "useFsModifications": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsModifications)
1043
+ /* harmony export */ });
1044
+ /* harmony import */ var _FlagshipContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
1045
+ /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
1046
+ /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__);
1047
+ /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
1048
+ /* 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__]
1049
+ /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
1050
+ /* harmony import */ var _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FlagshipHooks */ "./src/FlagshipHooks.tsx");
1051
+
1052
+
1053
+
1054
+ })();
1055
+
1056
+ module.exports = __webpack_exports__;
1103
1057
  /******/ })()
1104
1058
  ;
1105
1059
  //# sourceMappingURL=index.node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.node.js","mappings":"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","sources":["webpack://@flagship.io/react-sdk/./src/Flag.ts","webpack://@flagship.io/react-sdk/./src/FlagshipContext.tsx","webpack://@flagship.io/react-sdk/./src/FlagshipHooks.tsx","webpack://@flagship.io/react-sdk/./src/constants.ts","webpack://@flagship.io/react-sdk/./src/index.tsx","webpack://@flagship.io/react-sdk/./src/sdkVersion.ts","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.promise.js\"","webpack://@flagship.io/react-sdk/external commonjs \"react\"","webpack://@flagship.io/react-sdk/webpack/bootstrap","webpack://@flagship.io/react-sdk/webpack/before-startup","webpack://@flagship.io/react-sdk/webpack/startup","webpack://@flagship.io/react-sdk/webpack/after-startup"],"sourcesContent":["import Flagship, { FlagDTO, FlagMetadata, IFlag, IFlagMetadata } from '@flagship.io/js-sdk'\nimport { GET_FLAG_CAST_ERROR, GET_METADATA_CAST_ERROR, noVisitorMessage } from './constants'\nimport { hasSameType, logInfo, logWarn, sprintf } from './utils'\n\nexport class Flag<T> implements IFlag<T> {\n private defaultValue:T\n private flagsData: Map<string, FlagDTO> | undefined\n private key: string\n private flag?: FlagDTO\n constructor (defaultValue:T, key: string, flagsData: Map<string, FlagDTO> | undefined) {\n if (!flagsData) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'GetFlag')\n }\n this.defaultValue = defaultValue\n this.key = key\n this.flag = flagsData?.get(key)\n }\n\n private NotSameType () {\n return this.defaultValue !== null && this.defaultValue !== undefined && !hasSameType(this.flag?.value, this.defaultValue)\n }\n\n getValue (): T {\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'getValue')\n return this.defaultValue\n }\n\n if (this.NotSameType()) {\n logInfo(\n Flagship.getConfig(),\n sprintf(GET_FLAG_CAST_ERROR, this.key),\n 'getValue'\n )\n return this.defaultValue\n }\n return this.flag.value\n }\n\n exists ():boolean {\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'exists')\n return false\n }\n return !!(this.flag.campaignId && this.flag.variationId && this.flag.variationGroupId)\n }\n\n userExposed (): Promise<void> {\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'userExposed')\n }\n\n return Promise.resolve()\n }\n\n visitorExposed () : Promise<void> {\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'visitorExposed')\n }\n\n return Promise.resolve()\n }\n\n get metadata ():IFlagMetadata {\n const functionName = 'metadata'\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, functionName)\n return FlagMetadata.Empty()\n }\n if (this.NotSameType()) {\n logInfo(\n Flagship.getConfig(),\n sprintf(GET_METADATA_CAST_ERROR, this.key),\n functionName\n )\n return FlagMetadata.Empty()\n }\n\n return new FlagMetadata({\n campaignId: this.flag.campaignId,\n variationGroupId: this.flag.variationGroupId,\n variationId: this.flag.variationId,\n isReference: !!this.flag.isReference,\n campaignType: this.flag.campaignType as string,\n slug: this.flag.slug\n })\n }\n}\n","// 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 DecisionMode,\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} from './utils'\nimport { version as SDK_VERSION } from './sdkVersion'\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 envId,\n apiKey,\n decisionMode = DecisionMode.DECISION_API,\n visitorData,\n onInitStart,\n onInitDone,\n loadingComponent,\n statusChangedCallback,\n onBucketingUpdated,\n onUpdate,\n initialCampaigns,\n initialModifications,\n initialFlagsData,\n fetchFlagsOnBucketingUpdated,\n hitDeduplicationTime = 2,\n fetchNow = true,\n language = 1,\n sdkVersion = SDK_VERSION,\n ...props\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 updateVisitor()\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 function updateVisitor () {\n if (!visitorData) {\n return\n }\n if (!state.visitor) {\n createVisitor()\n return\n }\n\n if (visitorData.hasConsented !== state.visitor.hasConsented) {\n state.visitor.setConsent(visitorData.hasConsented as boolean)\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n state.visitor.updateContext(visitorData.context as any)\n\n if (!state.visitor.anonymousId && visitorData.isAuthenticated) {\n state.visitor.authenticate(visitorData.id as string)\n }\n if (state.visitor.anonymousId && !visitorData.isAuthenticated) {\n state.visitor.unauthenticate()\n }\n state.visitor.fetchFlags()\n }\n\n const createVisitor = () => {\n if (!visitorData) {\n return\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) {\n initializeState({\n fsVisitor,\n isSdkReady: true,\n isLoading: false\n })\n }\n }\n const statusChanged = (status: FlagshipStatus) => {\n if (statusChangedCallback) {\n statusChangedCallback(status)\n }\n\n switch (status) {\n case FlagshipStatus.STARTING:\n if (status === FlagshipStatus.STARTING && onInitStart) {\n onInitStart()\n }\n break\n case FlagshipStatus.READY_PANIC_ON:\n case FlagshipStatus.READY:\n if (onInitDone) {\n onInitDone()\n }\n\n createVisitor()\n\n break\n case FlagshipStatus.NOT_INITIALIZED:\n setState((prev) => ({\n ...prev,\n status: {\n ...prev.status,\n isLoading: false\n },\n config: Flagship.getConfig()\n }))\n break\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n decisionMode: decisionMode as any,\n fetchNow,\n statusChangedCallback: statusChanged,\n onBucketingUpdated: onBucketingLastModified,\n hitDeduplicationTime,\n language,\n sdkVersion,\n ...props\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 hitDeduplicationTime: 2,\n fetchNow: true,\n language: 1,\n sdkVersion: SDK_VERSION\n}\n","import { useContext } from 'react'\nimport Flagship, {\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 useFsFlag 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 useFsFlag 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 useFsFlag 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\n if (!visitor) {\n return new Flag(defaultValue, key, state.modifications)\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 useFsFlag 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 getFlag 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 getFlag instead\n */\n getModificationInfo(key: string): Modification | null;\n\n /**\n * @deprecated use fetchFlags instead\n */\n synchronizeModifications(): Promise<void>;\n /**\n * @deprecated use getFlag 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 /**\n * In DecisionApi Mode this function calls the Flagship Decision API to run campaign assignments according to the current user context and retrieve applicable flags.\n *\n * In bucketing Mode, it checks bucketing file, validates campaigns targeting the visitor, assigns a variation and retrieve applicable flags.\n */\n fetchFlags: () => Promise<void>;\n\n /**\n * When called, it will batch and send all hits that are in the pool before the application is closed\n */\n close():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, key, state.modifications)\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 async function close ():Promise<void> {\n await Flagship.close()\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 close\n }\n}\n","export const noVisitorMessage = 'flagship Visitor not initialized.'\nexport const noVisitorDefault = 'fsVisitor not initialized, returns default value'\n\n export const GET_FLAG_CAST_ERROR ='Flag for key {0} has a different type. Default value is returned.'\n export const GET_METADATA_CAST_ERROR = 'Flag for key {0} has a different type with defaultValue, an empty metadata object is returned'\n","export * from './FlagshipContext'\nexport * from '@flagship.io/js-sdk'\nexport * from './FlagshipHooks'\n","// Generated by genversion.\nexport const version = '3.2.0'\n","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 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\nexport function hasSameType (flagValue:unknown, defaultValue:unknown):boolean {\n if (typeof flagValue !== typeof defaultValue) {\n return false\n }\n if (typeof flagValue === 'object' && typeof defaultValue === 'object' &&\n Array.isArray(flagValue) !== Array.isArray(defaultValue)\n ) {\n return false\n }\n return true\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function sprintf (format: string, ...value: any[]): string {\n let formatted = format\n for (let i = 0; i < value.length; i++) {\n const element = value[i]\n formatted = formatted.replace(new RegExp(`\\\\{${i}\\\\}`, 'g'), element)\n }\n return formatted\n}\n","module.exports = require(\"@flagship.io/js-sdk\");","module.exports = require(\"core-js/modules/es.promise.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","","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(\"./src/index.tsx\");\n",""],"names":["Flag","constructor","defaultValue","key","flagsData","Flagship","getConfig","noVisitorMessage","flag","get","NotSameType","undefined","value","getValue","GET_FLAG_CAST_ERROR","exists","campaignId","variationId","variationGroupId","userExposed","Promise","resolve","visitorExposed","metadata","functionName","FlagMetadata","Empty","GET_METADATA_CAST_ERROR","isReference","campaignType","slug","initStat","status","isLoading","isSdkReady","FlagshipContext","state","FlagshipProvider","children","envId","apiKey","decisionMode","DecisionMode","DECISION_API","visitorData","onInitStart","onInitDone","loadingComponent","statusChangedCallback","onBucketingUpdated","onUpdate","initialCampaigns","initialModifications","initialFlagsData","fetchFlagsOnBucketingUpdated","hitDeduplicationTime","fetchNow","language","sdkVersion","SDK_VERSION","props","modifications","Map","forEach","set","modification","setState","lastModified","setLastModified","stateRef","current","visitor","fetchFlags","updateVisitor","JSON","stringify","initSdk","initializeState","param","newStatus","isVisitorDefined","fsVisitor","lastRefresh","Date","toISOString","currentState","firstInitSuccess","config","onVisitorReady","error","message","fsModifications","createVisitor","hasConsented","setConsent","updateContext","context","anonymousId","isAuthenticated","authenticate","id","unauthenticate","newVisitor","visitorId","on","statusChanged","FlagshipStatus","STARTING","READY_PANIC_ON","READY","NOT_INITIALIZED","prev","onBucketingLastModified","lastUpdate","start","handleDisplay","isFirstInit","defaultProps","checkType","Array","isArray","fsModificationsSync","args","params","activateAll","getModificationsSync","check","size","flags","item","noVisitorDefault","useFsModifications","useFsModification","getModificationSync","fsModificationInfoSync","getModificationInfoSync","useFsModificationInfo","fsActivate","activateModifications","useFsFlag","getFlag","useFsActivate","useFlagship","fsUpdateContext","clearContext","fsClearContext","fsAuthenticate","fsUnauthenticate","fsSendHit","hit","sendHit","fsSendHits","sendHits","getModificationsArray","from","_key","activateModification","synchronizeModifications","getModifications","getModificationInfo","close","getFlagsDataArray","send","sendMultiple","version","logError","tag","logManager","logLevel","LogLevel","ERROR","logInfo","info","INFO","logWarn","warning","WARNING","getModificationsFromCampaigns","campaigns","campaign","object","variation","reference","uuidV4","replace","char","rand","Math","random","toString","useNonInitialEffect","effect","deps","initialRender","hasSameType","flagValue","sprintf","format","formatted","i","length","element","RegExp"],"sourceRoot":""}
1
+ {"version":3,"file":"index.node.js","mappings":"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","sources":["webpack://@flagship.io/react-sdk/./src/Flag.ts","webpack://@flagship.io/react-sdk/./src/FlagshipContext.tsx","webpack://@flagship.io/react-sdk/./src/FlagshipHooks.tsx","webpack://@flagship.io/react-sdk/./src/constants.ts","webpack://@flagship.io/react-sdk/./src/sdkVersion.ts","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 \"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","webpack://@flagship.io/react-sdk/./src/index.tsx"],"sourcesContent":["import Flagship, { FlagDTO, FlagMetadata, IFlag, IFlagMetadata } from '@flagship.io/js-sdk'\nimport { GET_FLAG_CAST_ERROR, GET_METADATA_CAST_ERROR, noVisitorMessage } from './constants'\nimport { hasSameType, logInfo, logWarn, sprintf } from './utils'\n\nexport class Flag<T> implements IFlag<T> {\n private defaultValue:T\n private flagsData: Map<string, FlagDTO> | undefined\n private key: string\n private flag?: FlagDTO\n constructor (defaultValue:T, key: string, flagsData: Map<string, FlagDTO> | undefined) {\n if (!flagsData) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'GetFlag')\n }\n this.defaultValue = defaultValue\n this.key = key\n this.flag = flagsData?.get(key)\n }\n\n private NotSameType () {\n return this.defaultValue !== null && this.defaultValue !== undefined && !hasSameType(this.flag?.value, this.defaultValue)\n }\n\n getValue (): T {\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'getValue')\n return this.defaultValue\n }\n\n if (this.NotSameType()) {\n logInfo(\n Flagship.getConfig(),\n sprintf(GET_FLAG_CAST_ERROR, this.key),\n 'getValue'\n )\n return this.defaultValue\n }\n return this.flag.value\n }\n\n exists ():boolean {\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'exists')\n return false\n }\n return !!(this.flag.campaignId && this.flag.variationId && this.flag.variationGroupId)\n }\n\n userExposed (): Promise<void> {\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'userExposed')\n }\n\n return Promise.resolve()\n }\n\n visitorExposed () : Promise<void> {\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'visitorExposed')\n }\n\n return Promise.resolve()\n }\n\n get metadata ():IFlagMetadata {\n const functionName = 'metadata'\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, functionName)\n return FlagMetadata.Empty()\n }\n if (this.NotSameType()) {\n logInfo(\n Flagship.getConfig(),\n sprintf(GET_METADATA_CAST_ERROR, this.key),\n functionName\n )\n return FlagMetadata.Empty()\n }\n\n return new FlagMetadata({\n campaignId: this.flag.campaignId,\n variationGroupId: this.flag.variationGroupId,\n variationId: this.flag.variationId,\n isReference: !!this.flag.isReference,\n campaignType: this.flag.campaignType as string,\n slug: this.flag.slug\n })\n }\n}\n","// 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 DecisionMode,\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} from './utils'\nimport { version as SDK_VERSION } from './sdkVersion'\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 envId,\n apiKey,\n decisionMode = DecisionMode.DECISION_API,\n visitorData,\n onInitStart,\n onInitDone,\n loadingComponent,\n statusChangedCallback,\n onBucketingUpdated,\n onUpdate,\n initialCampaigns,\n initialModifications,\n initialFlagsData,\n fetchFlagsOnBucketingUpdated,\n hitDeduplicationTime = 2,\n fetchNow = true,\n language = 1,\n sdkVersion = SDK_VERSION,\n ...props\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 updateVisitor()\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 function updateVisitor () {\n if (!visitorData) {\n return\n }\n\n if (!state.visitor || (state.visitor.visitorId !== visitorData.id && (!visitorData.isAuthenticated || (visitorData.isAuthenticated && state.visitor.anonymousId)))) {\n createVisitor()\n return\n }\n\n if (visitorData.hasConsented !== state.visitor.hasConsented) {\n state.visitor.setConsent(visitorData.hasConsented ?? true)\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n state.visitor.updateContext(visitorData.context as any)\n\n if (!state.visitor.anonymousId && visitorData.isAuthenticated) {\n state.visitor.authenticate(visitorData.id as string)\n }\n if (state.visitor.anonymousId && !visitorData.isAuthenticated) {\n state.visitor.unauthenticate()\n }\n state.visitor.fetchFlags()\n }\n\n const createVisitor = () => {\n if (!visitorData) {\n return\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) {\n initializeState({\n fsVisitor,\n isSdkReady: true,\n isLoading: false\n })\n }\n }\n const statusChanged = (status: FlagshipStatus) => {\n if (statusChangedCallback) {\n statusChangedCallback(status)\n }\n\n switch (status) {\n case FlagshipStatus.STARTING:\n if (status === FlagshipStatus.STARTING && onInitStart) {\n onInitStart()\n }\n break\n case FlagshipStatus.READY_PANIC_ON:\n case FlagshipStatus.READY:\n if (onInitDone) {\n onInitDone()\n }\n\n createVisitor()\n\n break\n case FlagshipStatus.NOT_INITIALIZED:\n setState((prev) => ({\n ...prev,\n status: {\n ...prev.status,\n isLoading: false\n },\n config: Flagship.getConfig()\n }))\n break\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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n decisionMode: decisionMode as any,\n fetchNow,\n statusChangedCallback: statusChanged,\n onBucketingUpdated: onBucketingLastModified,\n hitDeduplicationTime,\n language,\n sdkVersion,\n ...props\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 hitDeduplicationTime: 2,\n fetchNow: true,\n language: 1,\n sdkVersion: SDK_VERSION\n}\n","import { useContext } from 'react'\nimport Flagship, {\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 useFsFlag 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 useFsFlag 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 useFsFlag 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\n if (!visitor) {\n return new Flag(defaultValue, key, state.modifications)\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 useFsFlag 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 getFlag 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 getFlag instead\n */\n getModificationInfo(key: string): Modification | null;\n\n /**\n * @deprecated use fetchFlags instead\n */\n synchronizeModifications(): Promise<void>;\n /**\n * @deprecated use getFlag 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 /**\n * In DecisionApi Mode this function calls the Flagship Decision API to run campaign assignments according to the current user context and retrieve applicable flags.\n *\n * In bucketing Mode, it checks bucketing file, validates campaigns targeting the visitor, assigns a variation and retrieve applicable flags.\n */\n fetchFlags: () => Promise<void>;\n\n /**\n * When called, it will batch and send all hits that are in the pool before the application is closed\n */\n close():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, key, state.modifications)\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 async function close ():Promise<void> {\n await Flagship.close()\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 close\n }\n}\n","export const noVisitorMessage = 'flagship Visitor not initialized.'\nexport const noVisitorDefault = 'fsVisitor not initialized, returns default value'\n\n export const GET_FLAG_CAST_ERROR ='Flag for key {0} has a different type. Default value is returned.'\n export const GET_METADATA_CAST_ERROR = 'Flag for key {0} has a different type with defaultValue, an empty metadata object is returned'\n","// Generated by genversion.\nexport const version = '3.2.1-alpha.1'\n","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 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\nexport function hasSameType (flagValue:unknown, defaultValue:unknown):boolean {\n if (typeof flagValue !== typeof defaultValue) {\n return false\n }\n if (typeof flagValue === 'object' && typeof defaultValue === 'object' &&\n Array.isArray(flagValue) !== Array.isArray(defaultValue)\n ) {\n return false\n }\n return true\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function sprintf (format: string, ...value: any[]): string {\n let formatted = format\n for (let i = 0; i < value.length; i++) {\n const element = value[i]\n formatted = formatted.replace(new RegExp(`\\\\{${i}\\\\}`, 'g'), element)\n }\n return formatted\n}\n","module.exports = require(\"@flagship.io/js-sdk\");","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};","export * from './FlagshipContext'\nexport * from '@flagship.io/js-sdk'\nexport * from './FlagshipHooks'\n"],"names":["Flagship","FlagMetadata","GET_FLAG_CAST_ERROR","GET_METADATA_CAST_ERROR","noVisitorMessage","hasSameType","logInfo","logWarn","sprintf","Flag","constructor","defaultValue","key","flagsData","getConfig","flag","get","NotSameType","undefined","value","getValue","exists","campaignId","variationId","variationGroupId","userExposed","Promise","resolve","visitorExposed","metadata","functionName","Empty","isReference","campaignType","slug","React","useState","useEffect","createContext","useRef","DecisionMode","FlagshipStatus","getModificationsFromCampaigns","logError","useNonInitialEffect","version","SDK_VERSION","initStat","status","isLoading","isSdkReady","FlagshipContext","state","FlagshipProvider","children","envId","apiKey","decisionMode","DECISION_API","visitorData","onInitStart","onInitDone","loadingComponent","statusChangedCallback","onBucketingUpdated","onUpdate","initialCampaigns","initialModifications","initialFlagsData","fetchFlagsOnBucketingUpdated","hitDeduplicationTime","fetchNow","language","sdkVersion","props","modifications","Map","forEach","set","modification","setState","lastModified","setLastModified","stateRef","current","visitor","fetchFlags","updateVisitor","JSON","stringify","initSdk","initializeState","param","newStatus","isVisitorDefined","fsVisitor","lastRefresh","Date","toISOString","currentState","firstInitSuccess","config","onVisitorReady","error","message","fsModifications","visitorId","id","isAuthenticated","anonymousId","createVisitor","hasConsented","setConsent","updateContext","context","authenticate","unauthenticate","newVisitor","on","statusChanged","STARTING","READY_PANIC_ON","READY","NOT_INITIALIZED","prev","onBucketingLastModified","lastUpdate","start","handleDisplay","isFirstInit","defaultProps","useContext","noVisitorDefault","checkType","Array","isArray","fsModificationsSync","args","params","activateAll","getModificationsSync","check","size","flags","item","useFsModifications","useFsModification","getModificationSync","fsModificationInfoSync","getModificationInfoSync","useFsModificationInfo","fsActivate","activateModifications","useFsFlag","getFlag","useFsActivate","useFlagship","fsUpdateContext","clearContext","fsClearContext","fsAuthenticate","fsUnauthenticate","fsSendHit","hit","sendHit","fsSendHits","sendHits","getModificationsArray","from","_key","activateModification","synchronizeModifications","getModifications","getModificationInfo","close","getFlagsDataArray","send","sendMultiple","LogLevel","tag","logManager","logLevel","ERROR","info","INFO","warning","WARNING","campaigns","campaign","object","variation","reference","uuidV4","replace","char","rand","Math","random","toString","effect","deps","initialRender","flagValue","format","formatted","i","length","element","RegExp"],"sourceRoot":""}
@@ -87,15 +87,16 @@ export const FlagshipProvider = (_a) => {
87
87
  }
88
88
  };
89
89
  function updateVisitor() {
90
+ var _a;
90
91
  if (!visitorData) {
91
92
  return;
92
93
  }
93
- if (!state.visitor) {
94
+ if (!state.visitor || (state.visitor.visitorId !== visitorData.id && (!visitorData.isAuthenticated || (visitorData.isAuthenticated && state.visitor.anonymousId)))) {
94
95
  createVisitor();
95
96
  return;
96
97
  }
97
98
  if (visitorData.hasConsented !== state.visitor.hasConsented) {
98
- state.visitor.setConsent(visitorData.hasConsented);
99
+ state.visitor.setConsent((_a = visitorData.hasConsented) !== null && _a !== void 0 ? _a : true);
99
100
  }
100
101
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
101
102
  state.visitor.updateContext(visitorData.context);
@@ -1 +1 @@
1
- export declare const version = "3.2.0";
1
+ export declare const version = "3.2.1-alpha.1";
@@ -1,2 +1,2 @@
1
1
  // Generated by genversion.
2
- export const version = '3.2.0';
2
+ export const version = '3.2.1-alpha.1';
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@flagship.io/react-sdk",
3
- "version": "3.2.0",
3
+ "sideEffects": false,
4
+ "version": "3.2.1-alpha.1",
4
5
  "license": "Apache-2.0",
5
6
  "description": "Flagship REACT SDK",
6
7
  "main": "dist/index.node.js",
@@ -19,8 +20,7 @@
19
20
  "react-native": "./dist/src/index.js"
20
21
  },
21
22
  "dependencies": {
22
- "@flagship.io/js-sdk": "^3.2.1",
23
- "core-js": "^3.24.1",
23
+ "@flagship.io/js-sdk": "^3.2.3",
24
24
  "encoding": "^0.1.13"
25
25
  },
26
26
  "peerDependencies": {
@@ -107,4 +107,4 @@
107
107
  "last 1 safari version"
108
108
  ]
109
109
  }
110
- }
110
+ }