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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
  }
@@ -295,7 +279,7 @@ const FlagshipProvider = ({
295
279
  return;
296
280
  }
297
281
 
298
- const fsVisitor = _jsSdk.Flagship.newVisitor({
282
+ const fsVisitor = _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.newVisitor({
299
283
  visitorId: visitorData.id,
300
284
  context: visitorData.context,
301
285
  isAuthenticated: visitorData.isAuthenticated,
@@ -304,7 +288,6 @@ const FlagshipProvider = ({
304
288
  initialModifications,
305
289
  initialFlagsData
306
290
  });
307
-
308
291
  fsVisitor === null || fsVisitor === void 0 ? void 0 : fsVisitor.on('ready', error => {
309
292
  onVisitorReady(fsVisitor, error);
310
293
  });
@@ -324,15 +307,15 @@ const FlagshipProvider = ({
324
307
  }
325
308
 
326
309
  switch (status) {
327
- case _jsSdk.FlagshipStatus.STARTING:
328
- if (status === _jsSdk.FlagshipStatus.STARTING && onInitStart) {
310
+ case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.STARTING:
311
+ if (status === _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.STARTING && onInitStart) {
329
312
  onInitStart();
330
313
  }
331
314
 
332
315
  break;
333
316
 
334
- case _jsSdk.FlagshipStatus.READY_PANIC_ON:
335
- case _jsSdk.FlagshipStatus.READY:
317
+ case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.READY_PANIC_ON:
318
+ case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.READY:
336
319
  if (onInitDone) {
337
320
  onInitDone();
338
321
  }
@@ -340,12 +323,12 @@ const FlagshipProvider = ({
340
323
  createVisitor();
341
324
  break;
342
325
 
343
- case _jsSdk.FlagshipStatus.NOT_INITIALIZED:
326
+ case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.NOT_INITIALIZED:
344
327
  setState(prev => ({ ...prev,
345
328
  status: { ...prev.status,
346
329
  isLoading: false
347
330
  },
348
- config: _jsSdk.Flagship.getConfig()
331
+ config: _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig()
349
332
  }));
350
333
  break;
351
334
  }
@@ -360,7 +343,7 @@ const FlagshipProvider = ({
360
343
  };
361
344
 
362
345
  const initSdk = () => {
363
- _jsSdk.Flagship.start(envId, apiKey, {
346
+ _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.start(envId, apiKey, {
364
347
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
365
348
  decisionMode: decisionMode,
366
349
  fetchNow,
@@ -377,26 +360,24 @@ const FlagshipProvider = ({
377
360
  const isFirstInit = !state.visitor;
378
361
 
379
362
  if (state.status.isLoading && loadingComponent && isFirstInit && fetchNow) {
380
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, loadingComponent);
363
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, loadingComponent);
381
364
  }
382
365
 
383
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, children);
366
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, children);
384
367
  };
385
368
 
386
- return /*#__PURE__*/_react.default.createElement(FlagshipContext.Provider, {
369
+ return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FlagshipContext.Provider, {
387
370
  value: {
388
371
  state,
389
372
  setState
390
373
  }
391
374
  }, handleDisplay());
392
375
  };
393
-
394
- exports.FlagshipProvider = FlagshipProvider;
395
376
  FlagshipProvider.defaultProps = {
396
377
  hitDeduplicationTime: 2,
397
378
  fetchNow: true,
398
379
  language: 1,
399
- sdkVersion: _sdkVersion.version
380
+ sdkVersion: _sdkVersion__WEBPACK_IMPORTED_MODULE_2__.version
400
381
  };
401
382
 
402
383
  /***/ }),
@@ -405,30 +386,31 @@ FlagshipProvider.defaultProps = {
405
386
  /*!*******************************!*\
406
387
  !*** ./src/FlagshipHooks.tsx ***!
407
388
  \*******************************/
408
- /***/ ((__unused_webpack_module, exports, __webpack_require__) => {
409
-
410
-
389
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
411
390
 
412
- Object.defineProperty(exports, "__esModule", ({
413
- value: true
414
- }));
415
- exports.useFlagship = exports.useFsActivate = exports.useFsFlag = exports.useFsModificationInfo = exports.useFsModification = exports.useFsModifications = void 0;
391
+ __webpack_require__.r(__webpack_exports__);
392
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
393
+ /* harmony export */ "useFlagship": () => (/* binding */ useFlagship),
394
+ /* harmony export */ "useFsActivate": () => (/* binding */ useFsActivate),
395
+ /* harmony export */ "useFsFlag": () => (/* binding */ useFsFlag),
396
+ /* harmony export */ "useFsModification": () => (/* binding */ useFsModification),
397
+ /* harmony export */ "useFsModificationInfo": () => (/* binding */ useFsModificationInfo),
398
+ /* harmony export */ "useFsModifications": () => (/* binding */ useFsModifications)
399
+ /* harmony export */ });
400
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
401
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
402
+ /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
403
+ /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__);
404
+ /* harmony import */ var _FlagshipContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
405
+ /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/utils.tsx");
406
+ /* harmony import */ var _Flag__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Flag */ "./src/Flag.ts");
407
+ /* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./src/constants.ts");
416
408
 
417
- __webpack_require__(/*! core-js/modules/es.promise.js */ "core-js/modules/es.promise.js");
418
409
 
419
- var _react = __webpack_require__(/*! react */ "react");
420
410
 
421
- var _jsSdk = _interopRequireDefault(__webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk"));
422
411
 
423
- var _FlagshipContext = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
424
412
 
425
- var _utils = __webpack_require__(/*! ./utils */ "./src/utils.tsx");
426
413
 
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
414
 
433
415
  const checkType = (value, defaultValue) => typeof value === 'object' && typeof defaultValue === 'object' && Array.isArray(value) === Array.isArray(defaultValue) || typeof value === typeof defaultValue;
434
416
 
@@ -464,7 +446,7 @@ const fsModificationsSync = args => {
464
446
  return flags;
465
447
  }
466
448
 
467
- (0, _utils.logWarn)(config, _constants.noVisitorDefault, functionName);
449
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorDefault, functionName);
468
450
  params.forEach(item => {
469
451
  flags[item.key] = item.defaultValue;
470
452
  });
@@ -479,7 +461,7 @@ const fsModificationsSync = args => {
479
461
  const useFsModifications = (params, activateAll) => {
480
462
  const {
481
463
  state
482
- } = (0, _react.useContext)(_FlagshipContext.FlagshipContext);
464
+ } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
483
465
  const {
484
466
  visitor,
485
467
  config
@@ -499,15 +481,12 @@ const useFsModifications = (params, activateAll) => {
499
481
  * @deprecated use useFsFlag instead
500
482
  */
501
483
 
502
-
503
- exports.useFsModifications = useFsModifications;
504
-
505
484
  const useFsModification = params => {
506
485
  var _state$modifications2;
507
486
 
508
487
  const {
509
488
  state
510
- } = (0, _react.useContext)(_FlagshipContext.FlagshipContext);
489
+ } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
511
490
  const {
512
491
  visitor,
513
492
  config
@@ -524,12 +503,10 @@ const useFsModification = params => {
524
503
  return modification.value;
525
504
  }
526
505
 
527
- (0, _utils.logWarn)(config, _constants.noVisitorDefault, functionName);
506
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorDefault, functionName);
528
507
  return params.defaultValue;
529
508
  };
530
509
 
531
- exports.useFsModification = useFsModification;
532
-
533
510
  const fsModificationInfoSync = args => {
534
511
  var _state$modifications3;
535
512
 
@@ -561,7 +538,7 @@ const fsModificationInfoSync = args => {
561
538
  const useFsModificationInfo = key => {
562
539
  const {
563
540
  state
564
- } = (0, _react.useContext)(_FlagshipContext.FlagshipContext);
541
+ } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
565
542
  const {
566
543
  visitor
567
544
  } = state;
@@ -572,18 +549,16 @@ const useFsModificationInfo = key => {
572
549
  });
573
550
  };
574
551
 
575
- exports.useFsModificationInfo = useFsModificationInfo;
576
-
577
552
  const fsActivate = async (params, functionName, visitor, config) => {
578
553
  try {
579
554
  if (!visitor) {
580
- (0, _utils.logWarn)(config, _constants.noVisitorMessage, functionName);
555
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
581
556
  return;
582
557
  }
583
558
 
584
559
  await visitor.activateModifications(params); // eslint-disable-next-line @typescript-eslint/no-explicit-any
585
560
  } catch (error) {
586
- (0, _utils.logWarn)(config, error.message || error, functionName);
561
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, error.message || error, functionName);
587
562
  }
588
563
  };
589
564
  /**
@@ -597,13 +572,13 @@ const fsActivate = async (params, functionName, visitor, config) => {
597
572
  const useFsFlag = (key, defaultValue) => {
598
573
  const {
599
574
  state
600
- } = (0, _react.useContext)(_FlagshipContext.FlagshipContext);
575
+ } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
601
576
  const {
602
577
  visitor
603
578
  } = state;
604
579
 
605
580
  if (!visitor) {
606
- return new _Flag.Flag(defaultValue, key, state.modifications);
581
+ return new _Flag__WEBPACK_IMPORTED_MODULE_5__.Flag(defaultValue, key, state.modifications);
607
582
  }
608
583
 
609
584
  return visitor.getFlag(key, defaultValue);
@@ -615,13 +590,10 @@ const useFsFlag = (key, defaultValue) => {
615
590
  * @returns
616
591
  */
617
592
 
618
-
619
- exports.useFsFlag = useFsFlag;
620
-
621
593
  const useFsActivate = async params => {
622
594
  const {
623
595
  state
624
- } = (0, _react.useContext)(_FlagshipContext.FlagshipContext);
596
+ } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
625
597
  const {
626
598
  visitor,
627
599
  config
@@ -629,13 +601,10 @@ const useFsActivate = async params => {
629
601
  const functionName = 'useFsModifications';
630
602
  await fsActivate(params, functionName, visitor, config);
631
603
  };
632
-
633
- exports.useFsActivate = useFsActivate;
634
-
635
604
  const useFlagship = () => {
636
605
  const {
637
606
  state
638
- } = (0, _react.useContext)(_FlagshipContext.FlagshipContext);
607
+ } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
639
608
  const {
640
609
  visitor,
641
610
  config
@@ -645,7 +614,7 @@ const useFlagship = () => {
645
614
  const functionName = 'updateContext';
646
615
 
647
616
  if (!visitor) {
648
- (0, _utils.logError)(config, _constants.noVisitorMessage, functionName);
617
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
649
618
  return;
650
619
  }
651
620
 
@@ -657,7 +626,7 @@ const useFlagship = () => {
657
626
  const functionName = 'cleanContext';
658
627
 
659
628
  if (!visitor) {
660
- (0, _utils.logError)(config, _constants.noVisitorMessage, functionName);
629
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
661
630
  return;
662
631
  }
663
632
 
@@ -668,7 +637,7 @@ const useFlagship = () => {
668
637
  const functionName = 'authenticate';
669
638
 
670
639
  if (!visitor) {
671
- (0, _utils.logError)(config, _constants.noVisitorMessage, functionName);
640
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
672
641
  return;
673
642
  }
674
643
 
@@ -679,7 +648,7 @@ const useFlagship = () => {
679
648
  const functionName = 'unauthenticate';
680
649
 
681
650
  if (!visitor) {
682
- (0, _utils.logError)(config, _constants.noVisitorMessage, functionName);
651
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
683
652
  return;
684
653
  }
685
654
 
@@ -694,7 +663,7 @@ const useFlagship = () => {
694
663
  const functionName = 'sendHit';
695
664
 
696
665
  if (!visitor) {
697
- (0, _utils.logError)(config, _constants.noVisitorMessage, functionName);
666
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
698
667
  return Promise.resolve();
699
668
  }
700
669
 
@@ -709,7 +678,7 @@ const useFlagship = () => {
709
678
  const functionName = 'sendHits';
710
679
 
711
680
  if (!visitor) {
712
- (0, _utils.logError)(config, _constants.noVisitorMessage, functionName);
681
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
713
682
  return Promise.resolve();
714
683
  }
715
684
 
@@ -730,7 +699,7 @@ const useFlagship = () => {
730
699
 
731
700
  const synchronizeModifications = async () => {
732
701
  if (!visitor) {
733
- (0, _utils.logWarn)(config, _constants.noVisitorMessage, 'synchronizeModifications');
702
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, 'synchronizeModifications');
734
703
  return;
735
704
  }
736
705
 
@@ -759,7 +728,7 @@ const useFlagship = () => {
759
728
 
760
729
  function getFlag(key, defaultValue) {
761
730
  if (!visitor) {
762
- return new _Flag.Flag(defaultValue, key, state.modifications);
731
+ return new _Flag__WEBPACK_IMPORTED_MODULE_5__.Flag(defaultValue, key, state.modifications);
763
732
  }
764
733
 
765
734
  return visitor.getFlag(key, defaultValue);
@@ -767,7 +736,7 @@ const useFlagship = () => {
767
736
 
768
737
  function fetchFlags() {
769
738
  if (!visitor) {
770
- (0, _utils.logWarn)(config, _constants.noVisitorMessage, 'fetchFlags');
739
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, 'fetchFlags');
771
740
  return Promise.resolve();
772
741
  }
773
742
 
@@ -776,7 +745,7 @@ const useFlagship = () => {
776
745
 
777
746
  function setConsent(hasConsented) {
778
747
  if (!visitor) {
779
- (0, _utils.logWarn)(config, _constants.noVisitorMessage, 'setConsent');
748
+ (0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, 'setConsent');
780
749
  return;
781
750
  }
782
751
 
@@ -784,7 +753,7 @@ const useFlagship = () => {
784
753
  }
785
754
 
786
755
  async function close() {
787
- await _jsSdk.default.close();
756
+ await _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default().close();
788
757
  }
789
758
 
790
759
  return {
@@ -815,83 +784,25 @@ const useFlagship = () => {
815
784
  };
816
785
  };
817
786
 
818
- exports.useFlagship = useFlagship;
819
-
820
787
  /***/ }),
821
788
 
822
789
  /***/ "./src/constants.ts":
823
790
  /*!**************************!*\
824
791
  !*** ./src/constants.ts ***!
825
792
  \**************************/
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;
793
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
794
+
795
+ __webpack_require__.r(__webpack_exports__);
796
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
797
+ /* harmony export */ "GET_FLAG_CAST_ERROR": () => (/* binding */ GET_FLAG_CAST_ERROR),
798
+ /* harmony export */ "GET_METADATA_CAST_ERROR": () => (/* binding */ GET_METADATA_CAST_ERROR),
799
+ /* harmony export */ "noVisitorDefault": () => (/* binding */ noVisitorDefault),
800
+ /* harmony export */ "noVisitorMessage": () => (/* binding */ noVisitorMessage)
801
+ /* harmony export */ });
834
802
  const noVisitorMessage = 'flagship Visitor not initialized.';
835
- exports.noVisitorMessage = noVisitorMessage;
836
803
  const noVisitorDefault = 'fsVisitor not initialized, returns default value';
837
- exports.noVisitorDefault = noVisitorDefault;
838
804
  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
805
  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
806
 
896
807
  /***/ }),
897
808
 
@@ -899,17 +810,14 @@ Object.keys(_FlagshipHooks).forEach(function (key) {
899
810
  /*!***************************!*\
900
811
  !*** ./src/sdkVersion.ts ***!
901
812
  \***************************/
902
- /***/ ((__unused_webpack_module, exports) => {
903
-
813
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
904
814
 
905
-
906
- Object.defineProperty(exports, "__esModule", ({
907
- value: true
908
- }));
909
- exports.version = void 0;
815
+ __webpack_require__.r(__webpack_exports__);
816
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
817
+ /* harmony export */ "version": () => (/* binding */ version)
818
+ /* harmony export */ });
910
819
  // Generated by genversion.
911
- const version = '3.2.0';
912
- exports.version = version;
820
+ const version = '3.2.1-alpha.0';
913
821
 
914
822
  /***/ }),
915
823
 
@@ -917,50 +825,46 @@ exports.version = version;
917
825
  /*!***********************!*\
918
826
  !*** ./src/utils.tsx ***!
919
827
  \***********************/
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");
828
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
829
+
830
+ __webpack_require__.r(__webpack_exports__);
831
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
832
+ /* harmony export */ "getModificationsFromCampaigns": () => (/* binding */ getModificationsFromCampaigns),
833
+ /* harmony export */ "hasSameType": () => (/* binding */ hasSameType),
834
+ /* harmony export */ "logError": () => (/* binding */ logError),
835
+ /* harmony export */ "logInfo": () => (/* binding */ logInfo),
836
+ /* harmony export */ "logWarn": () => (/* binding */ logWarn),
837
+ /* harmony export */ "sprintf": () => (/* binding */ sprintf),
838
+ /* harmony export */ "useNonInitialEffect": () => (/* binding */ useNonInitialEffect),
839
+ /* harmony export */ "uuidV4": () => (/* binding */ uuidV4)
840
+ /* harmony export */ });
841
+ /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
842
+ /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__);
843
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
844
+ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
937
845
 
938
- var _react = __webpack_require__(/*! react */ "react");
939
846
 
940
847
  function logError(config, message, tag) {
941
- if (!config || !config.logManager || typeof config.logManager.error !== 'function' || !config.logLevel || config.logLevel < _jsSdk.LogLevel.ERROR) {
848
+ if (!config || !config.logManager || typeof config.logManager.error !== 'function' || !config.logLevel || config.logLevel < _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.LogLevel.ERROR) {
942
849
  return;
943
850
  }
944
851
 
945
852
  config.logManager.error(message, tag);
946
853
  }
947
-
948
854
  function logInfo(config, message, tag) {
949
- if (!config || !config.logManager || typeof config.logManager.info !== 'function' || !config.logLevel || config.logLevel < _jsSdk.LogLevel.INFO) {
855
+ if (!config || !config.logManager || typeof config.logManager.info !== 'function' || !config.logLevel || config.logLevel < _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.LogLevel.INFO) {
950
856
  return;
951
857
  }
952
858
 
953
859
  config.logManager.info(message, tag);
954
860
  }
955
-
956
861
  function logWarn(config, message, tag) {
957
- if (!config || !config.logManager || typeof config.logManager.warning !== 'function' || !config.logLevel || config.logLevel < _jsSdk.LogLevel.WARNING) {
862
+ if (!config || !config.logManager || typeof config.logManager.warning !== 'function' || !config.logLevel || config.logLevel < _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.LogLevel.WARNING) {
958
863
  return;
959
864
  }
960
865
 
961
866
  config.logManager.warning(message, tag);
962
867
  }
963
-
964
868
  const getModificationsFromCampaigns = campaigns => {
965
869
  const modifications = new Map();
966
870
 
@@ -985,9 +889,6 @@ const getModificationsFromCampaigns = campaigns => {
985
889
  });
986
890
  return modifications;
987
891
  };
988
-
989
- exports.getModificationsFromCampaigns = getModificationsFromCampaigns;
990
-
991
892
  function uuidV4() {
992
893
  return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (char) {
993
894
  const rand = Math.random() * 16 | 0;
@@ -995,10 +896,9 @@ function uuidV4() {
995
896
  return value.toString(16);
996
897
  });
997
898
  }
998
-
999
899
  function useNonInitialEffect(effect, deps) {
1000
- const initialRender = (0, _react.useRef)(true);
1001
- (0, _react.useEffect)(() => {
900
+ const initialRender = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(true);
901
+ (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
1002
902
  if (initialRender.current) {
1003
903
  initialRender.current = false;
1004
904
  return;
@@ -1009,7 +909,6 @@ function useNonInitialEffect(effect, deps) {
1009
909
  }
1010
910
  }, deps);
1011
911
  }
1012
-
1013
912
  function hasSameType(flagValue, defaultValue) {
1014
913
  if (typeof flagValue !== typeof defaultValue) {
1015
914
  return false;
@@ -1022,7 +921,6 @@ function hasSameType(flagValue, defaultValue) {
1022
921
  return true;
1023
922
  } // eslint-disable-next-line @typescript-eslint/no-explicit-any
1024
923
 
1025
-
1026
924
  function sprintf(format, ...value) {
1027
925
  let formatted = format;
1028
926
 
@@ -1046,16 +944,6 @@ module.exports = require("@flagship.io/js-sdk");
1046
944
 
1047
945
  /***/ }),
1048
946
 
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
947
  /***/ "react":
1060
948
  /*!************************!*\
1061
949
  !*** external "react" ***!
@@ -1093,13 +981,77 @@ module.exports = require("react");
1093
981
  /******/ }
1094
982
  /******/
1095
983
  /************************************************************************/
984
+ /******/ /* webpack/runtime/compat get default export */
985
+ /******/ (() => {
986
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
987
+ /******/ __webpack_require__.n = (module) => {
988
+ /******/ var getter = module && module.__esModule ?
989
+ /******/ () => (module['default']) :
990
+ /******/ () => (module);
991
+ /******/ __webpack_require__.d(getter, { a: getter });
992
+ /******/ return getter;
993
+ /******/ };
994
+ /******/ })();
1096
995
  /******/
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__;
996
+ /******/ /* webpack/runtime/define property getters */
997
+ /******/ (() => {
998
+ /******/ // define getter functions for harmony exports
999
+ /******/ __webpack_require__.d = (exports, definition) => {
1000
+ /******/ for(var key in definition) {
1001
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
1002
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
1003
+ /******/ }
1004
+ /******/ }
1005
+ /******/ };
1006
+ /******/ })();
1007
+ /******/
1008
+ /******/ /* webpack/runtime/hasOwnProperty shorthand */
1009
+ /******/ (() => {
1010
+ /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
1011
+ /******/ })();
1102
1012
  /******/
1013
+ /******/ /* webpack/runtime/make namespace object */
1014
+ /******/ (() => {
1015
+ /******/ // define __esModule on exports
1016
+ /******/ __webpack_require__.r = (exports) => {
1017
+ /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
1018
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
1019
+ /******/ }
1020
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
1021
+ /******/ };
1022
+ /******/ })();
1023
+ /******/
1024
+ /************************************************************************/
1025
+ var __webpack_exports__ = {};
1026
+ // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
1027
+ (() => {
1028
+ /*!***********************!*\
1029
+ !*** ./src/index.tsx ***!
1030
+ \***********************/
1031
+ __webpack_require__.r(__webpack_exports__);
1032
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1033
+ /* harmony export */ "FlagshipContext": () => (/* reexport safe */ _FlagshipContext__WEBPACK_IMPORTED_MODULE_0__.FlagshipContext),
1034
+ /* harmony export */ "FlagshipProvider": () => (/* reexport safe */ _FlagshipContext__WEBPACK_IMPORTED_MODULE_0__.FlagshipProvider),
1035
+ /* harmony export */ "useFlagship": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFlagship),
1036
+ /* harmony export */ "useFsActivate": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsActivate),
1037
+ /* harmony export */ "useFsFlag": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsFlag),
1038
+ /* harmony export */ "useFsModification": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsModification),
1039
+ /* harmony export */ "useFsModificationInfo": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsModificationInfo),
1040
+ /* harmony export */ "useFsModifications": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsModifications)
1041
+ /* harmony export */ });
1042
+ /* harmony import */ var _FlagshipContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
1043
+ /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
1044
+ /* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__);
1045
+ /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
1046
+ /* 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__]
1047
+ /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
1048
+ /* harmony import */ var _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FlagshipHooks */ "./src/FlagshipHooks.tsx");
1049
+
1050
+
1051
+
1052
+ })();
1053
+
1054
+ module.exports = __webpack_exports__;
1103
1055
  /******/ })()
1104
1056
  ;
1105
1057
  //# 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 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","// Generated by genversion.\nexport const version = '3.2.1-alpha.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(\"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","createVisitor","hasConsented","setConsent","updateContext","context","anonymousId","isAuthenticated","authenticate","id","unauthenticate","newVisitor","visitorId","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":""}
@@ -1 +1 @@
1
- export declare const version = "3.2.0";
1
+ export declare const version = "3.2.1-alpha.0";
@@ -1,2 +1,2 @@
1
1
  // Generated by genversion.
2
- export const version = '3.2.0';
2
+ export const version = '3.2.1-alpha.0';
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.0",
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
+ }