@flagship.io/react-sdk 3.2.0 → 3.2.1-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.node.js +212 -258
- package/dist/index.node.js.map +1 -1
- package/dist/src/FlagshipContext.js +3 -2
- package/dist/src/sdkVersion.d.ts +1 -1
- package/dist/src/sdkVersion.js +1 -1
- package/package.json +4 -4
package/dist/index.node.js
CHANGED
|
@@ -6,28 +6,20 @@
|
|
|
6
6
|
/*!*********************!*\
|
|
7
7
|
!*** ./src/Flag.ts ***!
|
|
8
8
|
\*********************/
|
|
9
|
-
/***/ ((__unused_webpack_module,
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
__webpack_require__(/*!
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
101
|
-
return
|
|
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,
|
|
106
|
-
return
|
|
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
|
|
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,
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
})
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
var
|
|
139
|
-
|
|
140
|
-
var
|
|
141
|
-
|
|
142
|
-
|
|
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,
|
|
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 =
|
|
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 =
|
|
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,
|
|
180
|
+
modifications = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getModificationsFromCampaigns)(initialCampaigns);
|
|
197
181
|
}
|
|
198
182
|
|
|
199
|
-
const [state, setState] = (0,
|
|
183
|
+
const [state, setState] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({ ...initStat,
|
|
200
184
|
modifications
|
|
201
185
|
});
|
|
202
|
-
const [lastModified, setLastModified] = (0,
|
|
203
|
-
const stateRef = (0,
|
|
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,
|
|
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,
|
|
196
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_3__.useNonInitialEffect)(() => {
|
|
213
197
|
updateVisitor();
|
|
214
198
|
}, [JSON.stringify(visitorData)]);
|
|
215
|
-
(0,
|
|
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:
|
|
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,
|
|
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:
|
|
243
|
+
config: _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig(),
|
|
260
244
|
status: newStatus
|
|
261
245
|
});
|
|
262
246
|
}
|
|
@@ -267,13 +251,15 @@ const FlagshipProvider = ({
|
|
|
267
251
|
return;
|
|
268
252
|
}
|
|
269
253
|
|
|
270
|
-
if (!state.visitor) {
|
|
254
|
+
if (!state.visitor || state.visitor.visitorId !== visitorData.id && (!visitorData.isAuthenticated || visitorData.isAuthenticated && state.visitor.anonymousId)) {
|
|
271
255
|
createVisitor();
|
|
272
256
|
return;
|
|
273
257
|
}
|
|
274
258
|
|
|
275
259
|
if (visitorData.hasConsented !== state.visitor.hasConsented) {
|
|
276
|
-
|
|
260
|
+
var _visitorData$hasConse;
|
|
261
|
+
|
|
262
|
+
state.visitor.setConsent((_visitorData$hasConse = visitorData.hasConsented) !== null && _visitorData$hasConse !== void 0 ? _visitorData$hasConse : true);
|
|
277
263
|
} // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
278
264
|
|
|
279
265
|
|
|
@@ -295,7 +281,7 @@ const FlagshipProvider = ({
|
|
|
295
281
|
return;
|
|
296
282
|
}
|
|
297
283
|
|
|
298
|
-
const fsVisitor =
|
|
284
|
+
const fsVisitor = _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.newVisitor({
|
|
299
285
|
visitorId: visitorData.id,
|
|
300
286
|
context: visitorData.context,
|
|
301
287
|
isAuthenticated: visitorData.isAuthenticated,
|
|
@@ -304,7 +290,6 @@ const FlagshipProvider = ({
|
|
|
304
290
|
initialModifications,
|
|
305
291
|
initialFlagsData
|
|
306
292
|
});
|
|
307
|
-
|
|
308
293
|
fsVisitor === null || fsVisitor === void 0 ? void 0 : fsVisitor.on('ready', error => {
|
|
309
294
|
onVisitorReady(fsVisitor, error);
|
|
310
295
|
});
|
|
@@ -324,15 +309,15 @@ const FlagshipProvider = ({
|
|
|
324
309
|
}
|
|
325
310
|
|
|
326
311
|
switch (status) {
|
|
327
|
-
case
|
|
328
|
-
if (status ===
|
|
312
|
+
case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.STARTING:
|
|
313
|
+
if (status === _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.STARTING && onInitStart) {
|
|
329
314
|
onInitStart();
|
|
330
315
|
}
|
|
331
316
|
|
|
332
317
|
break;
|
|
333
318
|
|
|
334
|
-
case
|
|
335
|
-
case
|
|
319
|
+
case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.READY_PANIC_ON:
|
|
320
|
+
case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.READY:
|
|
336
321
|
if (onInitDone) {
|
|
337
322
|
onInitDone();
|
|
338
323
|
}
|
|
@@ -340,12 +325,12 @@ const FlagshipProvider = ({
|
|
|
340
325
|
createVisitor();
|
|
341
326
|
break;
|
|
342
327
|
|
|
343
|
-
case
|
|
328
|
+
case _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.FlagshipStatus.NOT_INITIALIZED:
|
|
344
329
|
setState(prev => ({ ...prev,
|
|
345
330
|
status: { ...prev.status,
|
|
346
331
|
isLoading: false
|
|
347
332
|
},
|
|
348
|
-
config:
|
|
333
|
+
config: _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig()
|
|
349
334
|
}));
|
|
350
335
|
break;
|
|
351
336
|
}
|
|
@@ -360,7 +345,7 @@ const FlagshipProvider = ({
|
|
|
360
345
|
};
|
|
361
346
|
|
|
362
347
|
const initSdk = () => {
|
|
363
|
-
|
|
348
|
+
_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__.Flagship.start(envId, apiKey, {
|
|
364
349
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
365
350
|
decisionMode: decisionMode,
|
|
366
351
|
fetchNow,
|
|
@@ -377,26 +362,24 @@ const FlagshipProvider = ({
|
|
|
377
362
|
const isFirstInit = !state.visitor;
|
|
378
363
|
|
|
379
364
|
if (state.status.isLoading && loadingComponent && isFirstInit && fetchNow) {
|
|
380
|
-
return /*#__PURE__*/
|
|
365
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, loadingComponent);
|
|
381
366
|
}
|
|
382
367
|
|
|
383
|
-
return /*#__PURE__*/
|
|
368
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement((react__WEBPACK_IMPORTED_MODULE_0___default().Fragment), null, children);
|
|
384
369
|
};
|
|
385
370
|
|
|
386
|
-
return /*#__PURE__*/
|
|
371
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(FlagshipContext.Provider, {
|
|
387
372
|
value: {
|
|
388
373
|
state,
|
|
389
374
|
setState
|
|
390
375
|
}
|
|
391
376
|
}, handleDisplay());
|
|
392
377
|
};
|
|
393
|
-
|
|
394
|
-
exports.FlagshipProvider = FlagshipProvider;
|
|
395
378
|
FlagshipProvider.defaultProps = {
|
|
396
379
|
hitDeduplicationTime: 2,
|
|
397
380
|
fetchNow: true,
|
|
398
381
|
language: 1,
|
|
399
|
-
sdkVersion:
|
|
382
|
+
sdkVersion: _sdkVersion__WEBPACK_IMPORTED_MODULE_2__.version
|
|
400
383
|
};
|
|
401
384
|
|
|
402
385
|
/***/ }),
|
|
@@ -405,30 +388,31 @@ FlagshipProvider.defaultProps = {
|
|
|
405
388
|
/*!*******************************!*\
|
|
406
389
|
!*** ./src/FlagshipHooks.tsx ***!
|
|
407
390
|
\*******************************/
|
|
408
|
-
/***/ ((__unused_webpack_module,
|
|
409
|
-
|
|
391
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
410
392
|
|
|
393
|
+
__webpack_require__.r(__webpack_exports__);
|
|
394
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
395
|
+
/* harmony export */ "useFlagship": () => (/* binding */ useFlagship),
|
|
396
|
+
/* harmony export */ "useFsActivate": () => (/* binding */ useFsActivate),
|
|
397
|
+
/* harmony export */ "useFsFlag": () => (/* binding */ useFsFlag),
|
|
398
|
+
/* harmony export */ "useFsModification": () => (/* binding */ useFsModification),
|
|
399
|
+
/* harmony export */ "useFsModificationInfo": () => (/* binding */ useFsModificationInfo),
|
|
400
|
+
/* harmony export */ "useFsModifications": () => (/* binding */ useFsModifications)
|
|
401
|
+
/* harmony export */ });
|
|
402
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
403
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
404
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
|
|
405
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__);
|
|
406
|
+
/* harmony import */ var _FlagshipContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
|
|
407
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/utils.tsx");
|
|
408
|
+
/* harmony import */ var _Flag__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Flag */ "./src/Flag.ts");
|
|
409
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./src/constants.ts");
|
|
411
410
|
|
|
412
|
-
Object.defineProperty(exports, "__esModule", ({
|
|
413
|
-
value: true
|
|
414
|
-
}));
|
|
415
|
-
exports.useFlagship = exports.useFsActivate = exports.useFsFlag = exports.useFsModificationInfo = exports.useFsModification = exports.useFsModifications = void 0;
|
|
416
411
|
|
|
417
|
-
__webpack_require__(/*! core-js/modules/es.promise.js */ "core-js/modules/es.promise.js");
|
|
418
412
|
|
|
419
|
-
var _react = __webpack_require__(/*! react */ "react");
|
|
420
413
|
|
|
421
|
-
var _jsSdk = _interopRequireDefault(__webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk"));
|
|
422
414
|
|
|
423
|
-
var _FlagshipContext = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
|
|
424
415
|
|
|
425
|
-
var _utils = __webpack_require__(/*! ./utils */ "./src/utils.tsx");
|
|
426
|
-
|
|
427
|
-
var _Flag = __webpack_require__(/*! ./Flag */ "./src/Flag.ts");
|
|
428
|
-
|
|
429
|
-
var _constants = __webpack_require__(/*! ./constants */ "./src/constants.ts");
|
|
430
|
-
|
|
431
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
432
416
|
|
|
433
417
|
const checkType = (value, defaultValue) => typeof value === 'object' && typeof defaultValue === 'object' && Array.isArray(value) === Array.isArray(defaultValue) || typeof value === typeof defaultValue;
|
|
434
418
|
|
|
@@ -464,7 +448,7 @@ const fsModificationsSync = args => {
|
|
|
464
448
|
return flags;
|
|
465
449
|
}
|
|
466
450
|
|
|
467
|
-
(0,
|
|
451
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorDefault, functionName);
|
|
468
452
|
params.forEach(item => {
|
|
469
453
|
flags[item.key] = item.defaultValue;
|
|
470
454
|
});
|
|
@@ -479,7 +463,7 @@ const fsModificationsSync = args => {
|
|
|
479
463
|
const useFsModifications = (params, activateAll) => {
|
|
480
464
|
const {
|
|
481
465
|
state
|
|
482
|
-
} = (0,
|
|
466
|
+
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
|
|
483
467
|
const {
|
|
484
468
|
visitor,
|
|
485
469
|
config
|
|
@@ -499,15 +483,12 @@ const useFsModifications = (params, activateAll) => {
|
|
|
499
483
|
* @deprecated use useFsFlag instead
|
|
500
484
|
*/
|
|
501
485
|
|
|
502
|
-
|
|
503
|
-
exports.useFsModifications = useFsModifications;
|
|
504
|
-
|
|
505
486
|
const useFsModification = params => {
|
|
506
487
|
var _state$modifications2;
|
|
507
488
|
|
|
508
489
|
const {
|
|
509
490
|
state
|
|
510
|
-
} = (0,
|
|
491
|
+
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
|
|
511
492
|
const {
|
|
512
493
|
visitor,
|
|
513
494
|
config
|
|
@@ -524,12 +505,10 @@ const useFsModification = params => {
|
|
|
524
505
|
return modification.value;
|
|
525
506
|
}
|
|
526
507
|
|
|
527
|
-
(0,
|
|
508
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorDefault, functionName);
|
|
528
509
|
return params.defaultValue;
|
|
529
510
|
};
|
|
530
511
|
|
|
531
|
-
exports.useFsModification = useFsModification;
|
|
532
|
-
|
|
533
512
|
const fsModificationInfoSync = args => {
|
|
534
513
|
var _state$modifications3;
|
|
535
514
|
|
|
@@ -561,7 +540,7 @@ const fsModificationInfoSync = args => {
|
|
|
561
540
|
const useFsModificationInfo = key => {
|
|
562
541
|
const {
|
|
563
542
|
state
|
|
564
|
-
} = (0,
|
|
543
|
+
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
|
|
565
544
|
const {
|
|
566
545
|
visitor
|
|
567
546
|
} = state;
|
|
@@ -572,18 +551,16 @@ const useFsModificationInfo = key => {
|
|
|
572
551
|
});
|
|
573
552
|
};
|
|
574
553
|
|
|
575
|
-
exports.useFsModificationInfo = useFsModificationInfo;
|
|
576
|
-
|
|
577
554
|
const fsActivate = async (params, functionName, visitor, config) => {
|
|
578
555
|
try {
|
|
579
556
|
if (!visitor) {
|
|
580
|
-
(0,
|
|
557
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
|
|
581
558
|
return;
|
|
582
559
|
}
|
|
583
560
|
|
|
584
561
|
await visitor.activateModifications(params); // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
585
562
|
} catch (error) {
|
|
586
|
-
(0,
|
|
563
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, error.message || error, functionName);
|
|
587
564
|
}
|
|
588
565
|
};
|
|
589
566
|
/**
|
|
@@ -597,13 +574,13 @@ const fsActivate = async (params, functionName, visitor, config) => {
|
|
|
597
574
|
const useFsFlag = (key, defaultValue) => {
|
|
598
575
|
const {
|
|
599
576
|
state
|
|
600
|
-
} = (0,
|
|
577
|
+
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
|
|
601
578
|
const {
|
|
602
579
|
visitor
|
|
603
580
|
} = state;
|
|
604
581
|
|
|
605
582
|
if (!visitor) {
|
|
606
|
-
return new
|
|
583
|
+
return new _Flag__WEBPACK_IMPORTED_MODULE_5__.Flag(defaultValue, key, state.modifications);
|
|
607
584
|
}
|
|
608
585
|
|
|
609
586
|
return visitor.getFlag(key, defaultValue);
|
|
@@ -615,13 +592,10 @@ const useFsFlag = (key, defaultValue) => {
|
|
|
615
592
|
* @returns
|
|
616
593
|
*/
|
|
617
594
|
|
|
618
|
-
|
|
619
|
-
exports.useFsFlag = useFsFlag;
|
|
620
|
-
|
|
621
595
|
const useFsActivate = async params => {
|
|
622
596
|
const {
|
|
623
597
|
state
|
|
624
|
-
} = (0,
|
|
598
|
+
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
|
|
625
599
|
const {
|
|
626
600
|
visitor,
|
|
627
601
|
config
|
|
@@ -629,13 +603,10 @@ const useFsActivate = async params => {
|
|
|
629
603
|
const functionName = 'useFsModifications';
|
|
630
604
|
await fsActivate(params, functionName, visitor, config);
|
|
631
605
|
};
|
|
632
|
-
|
|
633
|
-
exports.useFsActivate = useFsActivate;
|
|
634
|
-
|
|
635
606
|
const useFlagship = () => {
|
|
636
607
|
const {
|
|
637
608
|
state
|
|
638
|
-
} = (0,
|
|
609
|
+
} = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_4__.FlagshipContext);
|
|
639
610
|
const {
|
|
640
611
|
visitor,
|
|
641
612
|
config
|
|
@@ -645,7 +616,7 @@ const useFlagship = () => {
|
|
|
645
616
|
const functionName = 'updateContext';
|
|
646
617
|
|
|
647
618
|
if (!visitor) {
|
|
648
|
-
(0,
|
|
619
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
|
|
649
620
|
return;
|
|
650
621
|
}
|
|
651
622
|
|
|
@@ -657,7 +628,7 @@ const useFlagship = () => {
|
|
|
657
628
|
const functionName = 'cleanContext';
|
|
658
629
|
|
|
659
630
|
if (!visitor) {
|
|
660
|
-
(0,
|
|
631
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
|
|
661
632
|
return;
|
|
662
633
|
}
|
|
663
634
|
|
|
@@ -668,7 +639,7 @@ const useFlagship = () => {
|
|
|
668
639
|
const functionName = 'authenticate';
|
|
669
640
|
|
|
670
641
|
if (!visitor) {
|
|
671
|
-
(0,
|
|
642
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
|
|
672
643
|
return;
|
|
673
644
|
}
|
|
674
645
|
|
|
@@ -679,7 +650,7 @@ const useFlagship = () => {
|
|
|
679
650
|
const functionName = 'unauthenticate';
|
|
680
651
|
|
|
681
652
|
if (!visitor) {
|
|
682
|
-
(0,
|
|
653
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
|
|
683
654
|
return;
|
|
684
655
|
}
|
|
685
656
|
|
|
@@ -694,7 +665,7 @@ const useFlagship = () => {
|
|
|
694
665
|
const functionName = 'sendHit';
|
|
695
666
|
|
|
696
667
|
if (!visitor) {
|
|
697
|
-
(0,
|
|
668
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
|
|
698
669
|
return Promise.resolve();
|
|
699
670
|
}
|
|
700
671
|
|
|
@@ -709,7 +680,7 @@ const useFlagship = () => {
|
|
|
709
680
|
const functionName = 'sendHits';
|
|
710
681
|
|
|
711
682
|
if (!visitor) {
|
|
712
|
-
(0,
|
|
683
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, functionName);
|
|
713
684
|
return Promise.resolve();
|
|
714
685
|
}
|
|
715
686
|
|
|
@@ -730,7 +701,7 @@ const useFlagship = () => {
|
|
|
730
701
|
|
|
731
702
|
const synchronizeModifications = async () => {
|
|
732
703
|
if (!visitor) {
|
|
733
|
-
(0,
|
|
704
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, 'synchronizeModifications');
|
|
734
705
|
return;
|
|
735
706
|
}
|
|
736
707
|
|
|
@@ -759,7 +730,7 @@ const useFlagship = () => {
|
|
|
759
730
|
|
|
760
731
|
function getFlag(key, defaultValue) {
|
|
761
732
|
if (!visitor) {
|
|
762
|
-
return new
|
|
733
|
+
return new _Flag__WEBPACK_IMPORTED_MODULE_5__.Flag(defaultValue, key, state.modifications);
|
|
763
734
|
}
|
|
764
735
|
|
|
765
736
|
return visitor.getFlag(key, defaultValue);
|
|
@@ -767,7 +738,7 @@ const useFlagship = () => {
|
|
|
767
738
|
|
|
768
739
|
function fetchFlags() {
|
|
769
740
|
if (!visitor) {
|
|
770
|
-
(0,
|
|
741
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, 'fetchFlags');
|
|
771
742
|
return Promise.resolve();
|
|
772
743
|
}
|
|
773
744
|
|
|
@@ -776,7 +747,7 @@ const useFlagship = () => {
|
|
|
776
747
|
|
|
777
748
|
function setConsent(hasConsented) {
|
|
778
749
|
if (!visitor) {
|
|
779
|
-
(0,
|
|
750
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_2__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, 'setConsent');
|
|
780
751
|
return;
|
|
781
752
|
}
|
|
782
753
|
|
|
@@ -784,7 +755,7 @@ const useFlagship = () => {
|
|
|
784
755
|
}
|
|
785
756
|
|
|
786
757
|
async function close() {
|
|
787
|
-
await
|
|
758
|
+
await _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default().close();
|
|
788
759
|
}
|
|
789
760
|
|
|
790
761
|
return {
|
|
@@ -815,83 +786,25 @@ const useFlagship = () => {
|
|
|
815
786
|
};
|
|
816
787
|
};
|
|
817
788
|
|
|
818
|
-
exports.useFlagship = useFlagship;
|
|
819
|
-
|
|
820
789
|
/***/ }),
|
|
821
790
|
|
|
822
791
|
/***/ "./src/constants.ts":
|
|
823
792
|
/*!**************************!*\
|
|
824
793
|
!*** ./src/constants.ts ***!
|
|
825
794
|
\**************************/
|
|
826
|
-
/***/ ((__unused_webpack_module,
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
795
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
796
|
+
|
|
797
|
+
__webpack_require__.r(__webpack_exports__);
|
|
798
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
799
|
+
/* harmony export */ "GET_FLAG_CAST_ERROR": () => (/* binding */ GET_FLAG_CAST_ERROR),
|
|
800
|
+
/* harmony export */ "GET_METADATA_CAST_ERROR": () => (/* binding */ GET_METADATA_CAST_ERROR),
|
|
801
|
+
/* harmony export */ "noVisitorDefault": () => (/* binding */ noVisitorDefault),
|
|
802
|
+
/* harmony export */ "noVisitorMessage": () => (/* binding */ noVisitorMessage)
|
|
803
|
+
/* harmony export */ });
|
|
834
804
|
const noVisitorMessage = 'flagship Visitor not initialized.';
|
|
835
|
-
exports.noVisitorMessage = noVisitorMessage;
|
|
836
805
|
const noVisitorDefault = 'fsVisitor not initialized, returns default value';
|
|
837
|
-
exports.noVisitorDefault = noVisitorDefault;
|
|
838
806
|
const GET_FLAG_CAST_ERROR = 'Flag for key {0} has a different type. Default value is returned.';
|
|
839
|
-
exports.GET_FLAG_CAST_ERROR = GET_FLAG_CAST_ERROR;
|
|
840
807
|
const GET_METADATA_CAST_ERROR = 'Flag for key {0} has a different type with defaultValue, an empty metadata object is returned';
|
|
841
|
-
exports.GET_METADATA_CAST_ERROR = GET_METADATA_CAST_ERROR;
|
|
842
|
-
|
|
843
|
-
/***/ }),
|
|
844
|
-
|
|
845
|
-
/***/ "./src/index.tsx":
|
|
846
|
-
/*!***********************!*\
|
|
847
|
-
!*** ./src/index.tsx ***!
|
|
848
|
-
\***********************/
|
|
849
|
-
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
Object.defineProperty(exports, "__esModule", ({
|
|
854
|
-
value: true
|
|
855
|
-
}));
|
|
856
|
-
|
|
857
|
-
var _FlagshipContext = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
|
|
858
|
-
|
|
859
|
-
Object.keys(_FlagshipContext).forEach(function (key) {
|
|
860
|
-
if (key === "default" || key === "__esModule") return;
|
|
861
|
-
if (key in exports && exports[key] === _FlagshipContext[key]) return;
|
|
862
|
-
Object.defineProperty(exports, key, {
|
|
863
|
-
enumerable: true,
|
|
864
|
-
get: function () {
|
|
865
|
-
return _FlagshipContext[key];
|
|
866
|
-
}
|
|
867
|
-
});
|
|
868
|
-
});
|
|
869
|
-
|
|
870
|
-
var _jsSdk = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
|
|
871
|
-
|
|
872
|
-
Object.keys(_jsSdk).forEach(function (key) {
|
|
873
|
-
if (key === "default" || key === "__esModule") return;
|
|
874
|
-
if (key in exports && exports[key] === _jsSdk[key]) return;
|
|
875
|
-
Object.defineProperty(exports, key, {
|
|
876
|
-
enumerable: true,
|
|
877
|
-
get: function () {
|
|
878
|
-
return _jsSdk[key];
|
|
879
|
-
}
|
|
880
|
-
});
|
|
881
|
-
});
|
|
882
|
-
|
|
883
|
-
var _FlagshipHooks = __webpack_require__(/*! ./FlagshipHooks */ "./src/FlagshipHooks.tsx");
|
|
884
|
-
|
|
885
|
-
Object.keys(_FlagshipHooks).forEach(function (key) {
|
|
886
|
-
if (key === "default" || key === "__esModule") return;
|
|
887
|
-
if (key in exports && exports[key] === _FlagshipHooks[key]) return;
|
|
888
|
-
Object.defineProperty(exports, key, {
|
|
889
|
-
enumerable: true,
|
|
890
|
-
get: function () {
|
|
891
|
-
return _FlagshipHooks[key];
|
|
892
|
-
}
|
|
893
|
-
});
|
|
894
|
-
});
|
|
895
808
|
|
|
896
809
|
/***/ }),
|
|
897
810
|
|
|
@@ -899,17 +812,14 @@ Object.keys(_FlagshipHooks).forEach(function (key) {
|
|
|
899
812
|
/*!***************************!*\
|
|
900
813
|
!*** ./src/sdkVersion.ts ***!
|
|
901
814
|
\***************************/
|
|
902
|
-
/***/ ((__unused_webpack_module,
|
|
903
|
-
|
|
815
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
904
816
|
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
})
|
|
909
|
-
exports.version = void 0;
|
|
817
|
+
__webpack_require__.r(__webpack_exports__);
|
|
818
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
819
|
+
/* harmony export */ "version": () => (/* binding */ version)
|
|
820
|
+
/* harmony export */ });
|
|
910
821
|
// Generated by genversion.
|
|
911
|
-
const version = '3.2.
|
|
912
|
-
exports.version = version;
|
|
822
|
+
const version = '3.2.1-alpha.1';
|
|
913
823
|
|
|
914
824
|
/***/ }),
|
|
915
825
|
|
|
@@ -917,50 +827,46 @@ exports.version = version;
|
|
|
917
827
|
/*!***********************!*\
|
|
918
828
|
!*** ./src/utils.tsx ***!
|
|
919
829
|
\***********************/
|
|
920
|
-
/***/ ((__unused_webpack_module,
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
var
|
|
830
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
831
|
+
|
|
832
|
+
__webpack_require__.r(__webpack_exports__);
|
|
833
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
834
|
+
/* harmony export */ "getModificationsFromCampaigns": () => (/* binding */ getModificationsFromCampaigns),
|
|
835
|
+
/* harmony export */ "hasSameType": () => (/* binding */ hasSameType),
|
|
836
|
+
/* harmony export */ "logError": () => (/* binding */ logError),
|
|
837
|
+
/* harmony export */ "logInfo": () => (/* binding */ logInfo),
|
|
838
|
+
/* harmony export */ "logWarn": () => (/* binding */ logWarn),
|
|
839
|
+
/* harmony export */ "sprintf": () => (/* binding */ sprintf),
|
|
840
|
+
/* harmony export */ "useNonInitialEffect": () => (/* binding */ useNonInitialEffect),
|
|
841
|
+
/* harmony export */ "uuidV4": () => (/* binding */ uuidV4)
|
|
842
|
+
/* harmony export */ });
|
|
843
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
|
|
844
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__);
|
|
845
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
|
|
846
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
|
|
937
847
|
|
|
938
|
-
var _react = __webpack_require__(/*! react */ "react");
|
|
939
848
|
|
|
940
849
|
function logError(config, message, tag) {
|
|
941
|
-
if (!config || !config.logManager || typeof config.logManager.error !== 'function' || !config.logLevel || config.logLevel <
|
|
850
|
+
if (!config || !config.logManager || typeof config.logManager.error !== 'function' || !config.logLevel || config.logLevel < _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.LogLevel.ERROR) {
|
|
942
851
|
return;
|
|
943
852
|
}
|
|
944
853
|
|
|
945
854
|
config.logManager.error(message, tag);
|
|
946
855
|
}
|
|
947
|
-
|
|
948
856
|
function logInfo(config, message, tag) {
|
|
949
|
-
if (!config || !config.logManager || typeof config.logManager.info !== 'function' || !config.logLevel || config.logLevel <
|
|
857
|
+
if (!config || !config.logManager || typeof config.logManager.info !== 'function' || !config.logLevel || config.logLevel < _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.LogLevel.INFO) {
|
|
950
858
|
return;
|
|
951
859
|
}
|
|
952
860
|
|
|
953
861
|
config.logManager.info(message, tag);
|
|
954
862
|
}
|
|
955
|
-
|
|
956
863
|
function logWarn(config, message, tag) {
|
|
957
|
-
if (!config || !config.logManager || typeof config.logManager.warning !== 'function' || !config.logLevel || config.logLevel <
|
|
864
|
+
if (!config || !config.logManager || typeof config.logManager.warning !== 'function' || !config.logLevel || config.logLevel < _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__.LogLevel.WARNING) {
|
|
958
865
|
return;
|
|
959
866
|
}
|
|
960
867
|
|
|
961
868
|
config.logManager.warning(message, tag);
|
|
962
869
|
}
|
|
963
|
-
|
|
964
870
|
const getModificationsFromCampaigns = campaigns => {
|
|
965
871
|
const modifications = new Map();
|
|
966
872
|
|
|
@@ -985,9 +891,6 @@ const getModificationsFromCampaigns = campaigns => {
|
|
|
985
891
|
});
|
|
986
892
|
return modifications;
|
|
987
893
|
};
|
|
988
|
-
|
|
989
|
-
exports.getModificationsFromCampaigns = getModificationsFromCampaigns;
|
|
990
|
-
|
|
991
894
|
function uuidV4() {
|
|
992
895
|
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (char) {
|
|
993
896
|
const rand = Math.random() * 16 | 0;
|
|
@@ -995,10 +898,9 @@ function uuidV4() {
|
|
|
995
898
|
return value.toString(16);
|
|
996
899
|
});
|
|
997
900
|
}
|
|
998
|
-
|
|
999
901
|
function useNonInitialEffect(effect, deps) {
|
|
1000
|
-
const initialRender = (0,
|
|
1001
|
-
(0,
|
|
902
|
+
const initialRender = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(true);
|
|
903
|
+
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(() => {
|
|
1002
904
|
if (initialRender.current) {
|
|
1003
905
|
initialRender.current = false;
|
|
1004
906
|
return;
|
|
@@ -1009,7 +911,6 @@ function useNonInitialEffect(effect, deps) {
|
|
|
1009
911
|
}
|
|
1010
912
|
}, deps);
|
|
1011
913
|
}
|
|
1012
|
-
|
|
1013
914
|
function hasSameType(flagValue, defaultValue) {
|
|
1014
915
|
if (typeof flagValue !== typeof defaultValue) {
|
|
1015
916
|
return false;
|
|
@@ -1022,7 +923,6 @@ function hasSameType(flagValue, defaultValue) {
|
|
|
1022
923
|
return true;
|
|
1023
924
|
} // eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1024
925
|
|
|
1025
|
-
|
|
1026
926
|
function sprintf(format, ...value) {
|
|
1027
927
|
let formatted = format;
|
|
1028
928
|
|
|
@@ -1046,16 +946,6 @@ module.exports = require("@flagship.io/js-sdk");
|
|
|
1046
946
|
|
|
1047
947
|
/***/ }),
|
|
1048
948
|
|
|
1049
|
-
/***/ "core-js/modules/es.promise.js":
|
|
1050
|
-
/*!************************************************!*\
|
|
1051
|
-
!*** external "core-js/modules/es.promise.js" ***!
|
|
1052
|
-
\************************************************/
|
|
1053
|
-
/***/ ((module) => {
|
|
1054
|
-
|
|
1055
|
-
module.exports = require("core-js/modules/es.promise.js");
|
|
1056
|
-
|
|
1057
|
-
/***/ }),
|
|
1058
|
-
|
|
1059
949
|
/***/ "react":
|
|
1060
950
|
/*!************************!*\
|
|
1061
951
|
!*** external "react" ***!
|
|
@@ -1093,13 +983,77 @@ module.exports = require("react");
|
|
|
1093
983
|
/******/ }
|
|
1094
984
|
/******/
|
|
1095
985
|
/************************************************************************/
|
|
986
|
+
/******/ /* webpack/runtime/compat get default export */
|
|
987
|
+
/******/ (() => {
|
|
988
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
|
989
|
+
/******/ __webpack_require__.n = (module) => {
|
|
990
|
+
/******/ var getter = module && module.__esModule ?
|
|
991
|
+
/******/ () => (module['default']) :
|
|
992
|
+
/******/ () => (module);
|
|
993
|
+
/******/ __webpack_require__.d(getter, { a: getter });
|
|
994
|
+
/******/ return getter;
|
|
995
|
+
/******/ };
|
|
996
|
+
/******/ })();
|
|
1096
997
|
/******/
|
|
1097
|
-
/******/
|
|
1098
|
-
/******/
|
|
1099
|
-
/******/
|
|
1100
|
-
/******/
|
|
1101
|
-
/******/
|
|
998
|
+
/******/ /* webpack/runtime/define property getters */
|
|
999
|
+
/******/ (() => {
|
|
1000
|
+
/******/ // define getter functions for harmony exports
|
|
1001
|
+
/******/ __webpack_require__.d = (exports, definition) => {
|
|
1002
|
+
/******/ for(var key in definition) {
|
|
1003
|
+
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
|
|
1004
|
+
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
|
|
1005
|
+
/******/ }
|
|
1006
|
+
/******/ }
|
|
1007
|
+
/******/ };
|
|
1008
|
+
/******/ })();
|
|
1009
|
+
/******/
|
|
1010
|
+
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
1011
|
+
/******/ (() => {
|
|
1012
|
+
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
|
|
1013
|
+
/******/ })();
|
|
1102
1014
|
/******/
|
|
1015
|
+
/******/ /* webpack/runtime/make namespace object */
|
|
1016
|
+
/******/ (() => {
|
|
1017
|
+
/******/ // define __esModule on exports
|
|
1018
|
+
/******/ __webpack_require__.r = (exports) => {
|
|
1019
|
+
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
|
1020
|
+
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
1021
|
+
/******/ }
|
|
1022
|
+
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
|
1023
|
+
/******/ };
|
|
1024
|
+
/******/ })();
|
|
1025
|
+
/******/
|
|
1026
|
+
/************************************************************************/
|
|
1027
|
+
var __webpack_exports__ = {};
|
|
1028
|
+
// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
|
|
1029
|
+
(() => {
|
|
1030
|
+
/*!***********************!*\
|
|
1031
|
+
!*** ./src/index.tsx ***!
|
|
1032
|
+
\***********************/
|
|
1033
|
+
__webpack_require__.r(__webpack_exports__);
|
|
1034
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
1035
|
+
/* harmony export */ "FlagshipContext": () => (/* reexport safe */ _FlagshipContext__WEBPACK_IMPORTED_MODULE_0__.FlagshipContext),
|
|
1036
|
+
/* harmony export */ "FlagshipProvider": () => (/* reexport safe */ _FlagshipContext__WEBPACK_IMPORTED_MODULE_0__.FlagshipProvider),
|
|
1037
|
+
/* harmony export */ "useFlagship": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFlagship),
|
|
1038
|
+
/* harmony export */ "useFsActivate": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsActivate),
|
|
1039
|
+
/* harmony export */ "useFsFlag": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsFlag),
|
|
1040
|
+
/* harmony export */ "useFsModification": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsModification),
|
|
1041
|
+
/* harmony export */ "useFsModificationInfo": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsModificationInfo),
|
|
1042
|
+
/* harmony export */ "useFsModifications": () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__.useFsModifications)
|
|
1043
|
+
/* harmony export */ });
|
|
1044
|
+
/* harmony import */ var _FlagshipContext__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
|
|
1045
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
|
|
1046
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__);
|
|
1047
|
+
/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
1048
|
+
/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__) if(["default","FlagshipContext","FlagshipProvider"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_1__[__WEBPACK_IMPORT_KEY__]
|
|
1049
|
+
/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
1050
|
+
/* harmony import */ var _FlagshipHooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FlagshipHooks */ "./src/FlagshipHooks.tsx");
|
|
1051
|
+
|
|
1052
|
+
|
|
1053
|
+
|
|
1054
|
+
})();
|
|
1055
|
+
|
|
1056
|
+
module.exports = __webpack_exports__;
|
|
1103
1057
|
/******/ })()
|
|
1104
1058
|
;
|
|
1105
1059
|
//# sourceMappingURL=index.node.js.map
|
package/dist/index.node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.node.js","mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;;;;;AAEO,MAAMA,IAAN,CAAkC;AAKrCC,EAAAA,WAAW,CAAEC,YAAF,EAAkBC,GAAlB,EAA+BC,SAA/B,EAA4E;AAAA;;AAAA;;AAAA;;AAAA;;AACrF,QAAI,CAACA,SAAL,EAAgB;AACd,0BAAQC,eAASC,SAAT,EAAR,EAA8BC,2BAA9B,EAAgD,SAAhD;AACD;;AACD,SAAKL,YAAL,GAAoBA,YAApB;AACA,SAAKC,GAAL,GAAWA,GAAX;AACA,SAAKK,IAAL,GAAYJ,SAAZ,aAAYA,SAAZ,uBAAYA,SAAS,CAAEK,GAAX,CAAeN,GAAf,CAAZ;AACD;;AAEOO,EAAAA,WAAW,GAAI;AAAA;;AACrB,WAAO,KAAKR,YAAL,KAAsB,IAAtB,IAA8B,KAAKA,YAAL,KAAsBS,SAApD,IAAiE,CAAC,sCAAY,KAAKH,IAAjB,+CAAY,WAAWI,KAAvB,EAA8B,KAAKV,YAAnC,CAAzE;AACD;;AAEDW,EAAAA,QAAQ,GAAO;AACb,QAAI,CAAC,KAAKL,IAAV,EAAgB;AACd,0BAAQH,eAASC,SAAT,EAAR,EAA8BC,2BAA9B,EAAgD,UAAhD;AACA,aAAO,KAAKL,YAAZ;AACD;;AAED,QAAI,KAAKQ,WAAL,EAAJ,EAAwB;AACtB,0BACEL,eAASC,SAAT,EADF,EAEE,oBAAQQ,8BAAR,EAA6B,KAAKX,GAAlC,CAFF,EAGE,UAHF;AAKA,aAAO,KAAKD,YAAZ;AACD;;AACD,WAAO,KAAKM,IAAL,CAAUI,KAAjB;AACD;;AAEDG,EAAAA,MAAM,GAAY;AAChB,QAAI,CAAC,KAAKP,IAAV,EAAgB;AACd,0BAAQH,eAASC,SAAT,EAAR,EAA8BC,2BAA9B,EAAgD,QAAhD;AACA,aAAO,KAAP;AACD;;AACD,WAAO,CAAC,EAAE,KAAKC,IAAL,CAAUQ,UAAV,IAAwB,KAAKR,IAAL,CAAUS,WAAlC,IAAiD,KAAKT,IAAL,CAAUU,gBAA7D,CAAR;AACD;;AAEDC,EAAAA,WAAW,GAAmB;AAC5B,QAAI,CAAC,KAAKX,IAAV,EAAgB;AACd,0BAAQH,eAASC,SAAT,EAAR,EAA8BC,2BAA9B,EAAgD,aAAhD;AACD;;AAED,WAAOa,OAAO,CAACC,OAAR,EAAP;AACD;;AAEDC,EAAAA,cAAc,GAAoB;AAChC,QAAI,CAAC,KAAKd,IAAV,EAAgB;AACd,0BAAQH,eAASC,SAAT,EAAR,EAA8BC,2BAA9B,EAAgD,gBAAhD;AACD;;AAED,WAAOa,OAAO,CAACC,OAAR,EAAP;AACD;;AAEW,MAARE,QAAQ,GAAkB;AAC5B,UAAMC,YAAY,GAAG,UAArB;;AACA,QAAI,CAAC,KAAKhB,IAAV,EAAgB;AACd,0BAAQH,eAASC,SAAT,EAAR,EAA8BC,2BAA9B,EAAgDiB,YAAhD;AACA,aAAOC,oBAAaC,KAAb,EAAP;AACD;;AACD,QAAI,KAAKhB,WAAL,EAAJ,EAAwB;AACtB,0BACEL,eAASC,SAAT,EADF,EAEE,oBAAQqB,kCAAR,EAAiC,KAAKxB,GAAtC,CAFF,EAGEqB,YAHF;AAKA,aAAOC,oBAAaC,KAAb,EAAP;AACD;;AAED,WAAO,IAAID,mBAAJ,CAAiB;AACtBT,MAAAA,UAAU,EAAE,KAAKR,IAAL,CAAUQ,UADA;AAEtBE,MAAAA,gBAAgB,EAAE,KAAKV,IAAL,CAAUU,gBAFN;AAGtBD,MAAAA,WAAW,EAAE,KAAKT,IAAL,CAAUS,WAHD;AAItBW,MAAAA,WAAW,EAAE,CAAC,CAAC,KAAKpB,IAAL,CAAUoB,WAJH;AAKtBC,MAAAA,YAAY,EAAE,KAAKrB,IAAL,CAAUqB,YALF;AAMtBC,MAAAA,IAAI,EAAE,KAAKtB,IAAL,CAAUsB;AANM,KAAjB,CAAP;AAQD;;AAlFoC;;;;;;;;;;;;;;;;;;;ACHzC;;AASA;;AAWA;;AAKA;;;;;;AA1BA;AA8HA,MAAMC,QAAiB,GAAG;AACxBC,EAAAA,MAAM,EAAE;AAAEC,IAAAA,SAAS,EAAE,IAAb;AAAmBC,IAAAA,UAAU,EAAE;AAA/B;AADgB,CAA1B;AAIO,MAAMC,eAAe,gBAAG,0BAAyB;AACtDC,EAAAA,KAAK,EAAE,EAAE,GAAGL;AAAL;AAD+C,CAAzB,CAAxB;;;AAIA,MAAMM,gBAAiD,GAAG,CAAC;AAChEC,EAAAA,QADgE;AAEhEC,EAAAA,KAFgE;AAGhEC,EAAAA,MAHgE;AAIhEC,EAAAA,YAAY,GAAGC,oBAAaC,YAJoC;AAKhEC,EAAAA,WALgE;AAMhEC,EAAAA,WANgE;AAOhEC,EAAAA,UAPgE;AAQhEC,EAAAA,gBARgE;AAShEC,EAAAA,qBATgE;AAUhEC,EAAAA,kBAVgE;AAWhEC,EAAAA,QAXgE;AAYhEC,EAAAA,gBAZgE;AAahEC,EAAAA,oBAbgE;AAchEC,EAAAA,gBAdgE;AAehEC,EAAAA,4BAfgE;AAgBhEC,EAAAA,oBAAoB,GAAG,CAhByC;AAiBhEC,EAAAA,QAAQ,GAAG,IAjBqD;AAkBhEC,EAAAA,QAAQ,GAAG,CAlBqD;AAmBhEC,EAAAA,UAAU,GAAGC,mBAnBmD;AAoBhE,KAAGC;AApB6D,CAAD,KAqBpC;AAC3B,MAAIC,aAAa,GAAG,IAAIC,GAAJ,EAApB;;AACA,MAAIT,gBAAgB,IAAIA,gBAAgB,CAACU,OAAzC,EAAkD;AAChDV,IAAAA,gBAAgB,CAACU,OAAjB,CAA0BvD,IAAD,IAAU;AACjCqD,MAAAA,aAAa,CAACG,GAAd,CAAkBxD,IAAI,CAACL,GAAvB,EAA4BK,IAA5B;AACD,KAFD;AAGD,GAJD,MAIO,IAAI4C,oBAAoB,IAAIA,oBAAoB,CAACW,OAAjD,EAA0D;AAC/DX,IAAAA,oBAAoB,CAACW,OAArB,CAA8BE,YAAD,IAAkB;AAC7CJ,MAAAA,aAAa,CAACG,GAAd,CAAkBC,YAAY,CAAC9D,GAA/B,EAAoC8D,YAApC;AACD,KAFD;AAGD,GAJM,MAIA,IAAId,gBAAJ,EAAsB;AAC3BU,IAAAA,aAAa,GAAG,0CAA8BV,gBAA9B,CAAhB;AACD;;AAED,QAAM,CAACf,KAAD,EAAQ8B,QAAR,IAAoB,qBAAkB,EAAE,GAAGnC,QAAL;AAAe8B,IAAAA;AAAf,GAAlB,CAA1B;AACA,QAAM,CAACM,YAAD,EAAeC,eAAf,IAAkC,sBAAxC;AACA,QAAMC,QAAQ,GAAG,oBAAjB;AACAA,EAAAA,QAAQ,CAACC,OAAT,GAAmBlC,KAAnB;AAEA,kCAAoB,MAAM;AACxB,QAAIkB,4BAAJ,EAAkC;AAAA;;AAChC,wBAAAlB,KAAK,CAACmC,OAAN,kEAAeC,UAAf;AACD;AACF,GAJD,EAIG,CAACL,YAAD,CAJH;AAMA,kCAAoB,MAAM;AACxBM,IAAAA,aAAa;AACd,GAFD,EAEG,CAACC,IAAI,CAACC,SAAL,CAAe/B,WAAf,CAAD,CAFH;AAIA,wBAAU,MAAM;AACdgC,IAAAA,OAAO;AACR,GAFD,EAEG,CAACrC,KAAD,EAAQC,MAAR,EAAgBC,YAAhB,CAFH;;AAIA,WAASoC,eAAT,CAA0BC,KAA1B,EAIG;AACD,UAAMC,SAAmB,GAAG;AAC1B7C,MAAAA,UAAU,EAAE4C,KAAK,CAAC5C,UADQ;AAE1BD,MAAAA,SAAS,EAAE6C,KAAK,CAAC7C,SAFS;AAG1B+C,MAAAA,gBAAgB,EAAE,CAAC,CAACF,KAAK,CAACG,SAHA;AAI1BC,MAAAA,WAAW,EAAE,IAAIC,IAAJ,GAAWC,WAAX;AAJa,KAA5B;AAOAlB,IAAAA,QAAQ,CAAEmB,YAAD,IAAkB;AACzB,UAAI,CAACA,YAAY,CAACrD,MAAb,CAAoBsD,gBAAzB,EAA2C;AACzCP,QAAAA,SAAS,CAACO,gBAAV,GAA6B,IAAIH,IAAJ,GAAWC,WAAX,EAA7B;AACD;;AAED,aAAO,EACL,GAAGC,YADE;AAELd,QAAAA,OAAO,EAAEO,KAAK,CAACG,SAFV;AAGLpB,QAAAA,aAAa,EAAEiB,KAAK,CAACG,SAAN,CAAgBpB,aAH1B;AAIL0B,QAAAA,MAAM,EAAElF,gBAASC,SAAT,EAJH;AAKL0B,QAAAA,MAAM,EAAE,EACN,GAAGqD,YAAY,CAACrD,MADV;AAEN,aAAG+C;AAFG;AALH,OAAP;AAUD,KAfO,CAAR;AAiBA,WAAOA,SAAP;AACD,GA/D0B,CAiE3B;;;AACA,QAAMS,cAAc,GAAG,CAACP,SAAD,EAAqBQ,KAArB,KAAoC;AACzD,QAAIA,KAAJ,EAAW;AACT,2BAASpF,gBAASC,SAAT,EAAT,EAA+BmF,KAAK,CAACC,OAAN,IAAiBD,KAAhD,EAAuD,SAAvD;AACA;AACD;;AAED,UAAMV,SAAS,GAAGF,eAAe,CAAC;AAChCI,MAAAA,SADgC;AAEhC/C,MAAAA,UAAU,EAAE,IAFoB;AAGhCD,MAAAA,SAAS,EAAE;AAHqB,KAAD,CAAjC;;AAMA,QAAIiB,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAAC;AACPyC,QAAAA,eAAe,EAAEV,SAAS,CAACpB,aADpB;AAEP0B,QAAAA,MAAM,EAAElF,gBAASC,SAAT,EAFD;AAGP0B,QAAAA,MAAM,EAAE+C;AAHD,OAAD,CAAR;AAKD;AACF,GAnBD;;AAqBA,WAASN,aAAT,GAA0B;AACxB,QAAI,CAAC7B,WAAL,EAAkB;AAChB;AACD;;AACD,QAAI,CAACR,KAAK,CAACmC,OAAX,EAAoB;AAClBqB,MAAAA,aAAa;AACb;AACD;;AAED,QAAIhD,WAAW,CAACiD,YAAZ,KAA6BzD,KAAK,CAACmC,OAAN,CAAcsB,YAA/C,EAA6D;AAC3DzD,MAAAA,KAAK,CAACmC,OAAN,CAAcuB,UAAd,CAAyBlD,WAAW,CAACiD,YAArC;AACD,KAXuB,CAYxB;;;AACAzD,IAAAA,KAAK,CAACmC,OAAN,CAAcwB,aAAd,CAA4BnD,WAAW,CAACoD,OAAxC;;AAEA,QAAI,CAAC5D,KAAK,CAACmC,OAAN,CAAc0B,WAAf,IAA8BrD,WAAW,CAACsD,eAA9C,EAA+D;AAC7D9D,MAAAA,KAAK,CAACmC,OAAN,CAAc4B,YAAd,CAA2BvD,WAAW,CAACwD,EAAvC;AACD;;AACD,QAAIhE,KAAK,CAACmC,OAAN,CAAc0B,WAAd,IAA6B,CAACrD,WAAW,CAACsD,eAA9C,EAA+D;AAC7D9D,MAAAA,KAAK,CAACmC,OAAN,CAAc8B,cAAd;AACD;;AACDjE,IAAAA,KAAK,CAACmC,OAAN,CAAcC,UAAd;AACD;;AAED,QAAMoB,aAAa,GAAG,MAAM;AAC1B,QAAI,CAAChD,WAAL,EAAkB;AAChB;AACD;;AACD,UAAMqC,SAAS,GAAG5E,gBAASiG,UAAT,CAAoB;AACpCC,MAAAA,SAAS,EAAE3D,WAAW,CAACwD,EADa;AAEpCJ,MAAAA,OAAO,EAAEpD,WAAW,CAACoD,OAFe;AAGpCE,MAAAA,eAAe,EAAEtD,WAAW,CAACsD,eAHO;AAIpCL,MAAAA,YAAY,EAAEjD,WAAW,CAACiD,YAJU;AAKpC1C,MAAAA,gBALoC;AAMpCC,MAAAA,oBANoC;AAOpCC,MAAAA;AAPoC,KAApB,CAAlB;;AAUA4B,IAAAA,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEuB,EAAX,CAAc,OAAd,EAAwBf,KAAD,IAAW;AAChCD,MAAAA,cAAc,CAACP,SAAD,EAAYQ,KAAZ,CAAd;AACD,KAFD;;AAIA,QAAI,CAACjC,QAAL,EAAe;AACbqB,MAAAA,eAAe,CAAC;AACdI,QAAAA,SADc;AAEd/C,QAAAA,UAAU,EAAE,IAFE;AAGdD,QAAAA,SAAS,EAAE;AAHG,OAAD,CAAf;AAKD;AACF,GAzBD;;AA0BA,QAAMwE,aAAa,GAAIzE,MAAD,IAA4B;AAChD,QAAIgB,qBAAJ,EAA2B;AACzBA,MAAAA,qBAAqB,CAAChB,MAAD,CAArB;AACD;;AAED,YAAQA,MAAR;AACE,WAAK0E,sBAAeC,QAApB;AACE,YAAI3E,MAAM,KAAK0E,sBAAeC,QAA1B,IAAsC9D,WAA1C,EAAuD;AACrDA,UAAAA,WAAW;AACZ;;AACD;;AACF,WAAK6D,sBAAeE,cAApB;AACA,WAAKF,sBAAeG,KAApB;AACE,YAAI/D,UAAJ,EAAgB;AACdA,UAAAA,UAAU;AACX;;AAED8C,QAAAA,aAAa;AAEb;;AACF,WAAKc,sBAAeI,eAApB;AACE5C,QAAAA,QAAQ,CAAE6C,IAAD,KAAW,EAClB,GAAGA,IADe;AAElB/E,UAAAA,MAAM,EAAE,EACN,GAAG+E,IAAI,CAAC/E,MADF;AAENC,YAAAA,SAAS,EAAE;AAFL,WAFU;AAMlBsD,UAAAA,MAAM,EAAElF,gBAASC,SAAT;AANU,SAAX,CAAD,CAAR;AAQA;AAxBJ;AA0BD,GA/BD;;AAiCA,QAAM0G,uBAAuB,GAAIC,UAAD,IAAsB;AACpD,QAAIhE,kBAAJ,EAAwB;AACtBA,MAAAA,kBAAkB,CAACgE,UAAD,CAAlB;AACD;;AACD7C,IAAAA,eAAe,CAAC6C,UAAD,CAAf;AACD,GALD;;AAOA,QAAMrC,OAAO,GAAG,MAAM;AACpBvE,oBAAS6G,KAAT,CAAe3E,KAAf,EAAsBC,MAAtB,EAA8B;AAC5B;AACAC,MAAAA,YAAY,EAAEA,YAFc;AAG5Be,MAAAA,QAH4B;AAI5BR,MAAAA,qBAAqB,EAAEyD,aAJK;AAK5BxD,MAAAA,kBAAkB,EAAE+D,uBALQ;AAM5BzD,MAAAA,oBAN4B;AAO5BE,MAAAA,QAP4B;AAQ5BC,MAAAA,UAR4B;AAS5B,SAAGE;AATyB,KAA9B;AAWD,GAZD;;AAaA,QAAMuD,aAAa,GAAG,MAAuB;AAC3C,UAAMC,WAAW,GAAG,CAAChF,KAAK,CAACmC,OAA3B;;AACA,QAAInC,KAAK,CAACJ,MAAN,CAAaC,SAAb,IAA0Bc,gBAA1B,IAA8CqE,WAA9C,IAA6D5D,QAAjE,EAA2E;AACzE,0BAAO,4DAAGT,gBAAH,CAAP;AACD;;AACD,wBAAO,4DAAGT,QAAH,CAAP;AACD,GAND;;AAOA,sBACE,6BAAC,eAAD,CAAiB,QAAjB;AAA0B,SAAK,EAAE;AAAEF,MAAAA,KAAF;AAAS8B,MAAAA;AAAT;AAAjC,KACGiD,aAAa,EADhB,CADF;AAKD,CA/NM;;;AAiOP9E,gBAAgB,CAACgF,YAAjB,GAAgC;AAC9B9D,EAAAA,oBAAoB,EAAE,CADQ;AAE9BC,EAAAA,QAAQ,EAAE,IAFoB;AAG9BC,EAAAA,QAAQ,EAAE,CAHoB;AAI9BC,EAAAA,UAAU,EAAEC;AAJkB,CAAhC;;;;;;;;;;;;;;;;;;;ACvWA;;AACA;;AAYA;;AACA;;AACA;;AACA;;;;AAEA,MAAM2D,SAAS,GAAG,CAAC1G,KAAD,EAAiBV,YAAjB,KACf,OAAOU,KAAP,KAAiB,QAAjB,IACC,OAAOV,YAAP,KAAwB,QADzB,IAECqH,KAAK,CAACC,OAAN,CAAc5G,KAAd,MAAyB2G,KAAK,CAACC,OAAN,CAActH,YAAd,CAF3B,IAGA,OAAOU,KAAP,KAAiB,OAAOV,YAJ1B;;AAMA,MAAMuH,mBAAmB,GAAuBC,IAApB,IAOH;AACvB,QAAM;AAAEnD,IAAAA,OAAF;AAAWoD,IAAAA,MAAX;AAAmBC,IAAAA,WAAnB;AAAgCxF,IAAAA,KAAhC;AAAuCZ,IAAAA,YAAvC;AAAqD+D,IAAAA;AAArD,MAAgEmC,IAAtE;;AACA,MAAInD,OAAJ,EAAa;AACX,WAAOA,OAAO,CAACsD,oBAAR,CAA6BF,MAA7B,EAAqCC,WAArC,CAAP;AACD;;AAED,QAAME,KAAK,GACT,CAAC1F,KAAK,CAACJ,MAAN,CAAaE,UAAd,IACA,CAAC,CAACE,KAAK,CAACyB,aADR,IAEAzB,KAAK,CAACyB,aAAN,CAAoBkE,IAApB,GAA2B,CAH7B;AAIA,QAAMC,KAAwB,GAAG,EAAjC;;AAEA,MAAIF,KAAJ,EAAW;AACTH,IAAAA,MAAM,CAAC5D,OAAP,CAAgBkE,IAAD,IAAU;AAAA;;AACvB,YAAMhE,YAAY,2BAAG7B,KAAK,CAACyB,aAAT,yDAAG,qBAAqBpD,GAArB,CAAyBwH,IAAI,CAAC9H,GAA9B,CAArB;;AAEA,UAAI8D,YAAY,IAAIqD,SAAS,CAACrD,YAAD,aAACA,YAAD,uBAACA,YAAY,CAAErD,KAAf,EAAsBqH,IAAI,CAAC/H,YAA3B,CAA7B,EAAuE;AACrE8H,QAAAA,KAAK,CAACC,IAAI,CAAC9H,GAAN,CAAL,GAAkB8D,YAAY,CAACrD,KAA/B;AACD,OAFD,MAEO;AACLoH,QAAAA,KAAK,CAACC,IAAI,CAAC9H,GAAN,CAAL,GAAkB8H,IAAI,CAAC/H,YAAvB;AACD;AACF,KARD;AASA,WAAO8H,KAAP;AACD;;AAED,sBAAQzC,MAAR,EAAgB2C,2BAAhB,EAAkC1G,YAAlC;AACAmG,EAAAA,MAAM,CAAC5D,OAAP,CAAgBkE,IAAD,IAAU;AACvBD,IAAAA,KAAK,CAACC,IAAI,CAAC9H,GAAN,CAAL,GAAkB8H,IAAI,CAAC/H,YAAvB;AACD,GAFD;AAGA,SAAO8H,KAAP;AACD,CArCD;AAuCA;AACA;AACA;AACA;;;AACO,MAAMG,kBAAkB,GAAG,CAChCR,MADgC,EAEhCC,WAFgC,KAGV;AACtB,QAAM;AAAExF,IAAAA;AAAF,MAAY,uBAAWD,gCAAX,CAAlB;AACA,QAAM;AAAEoC,IAAAA,OAAF;AAAWgB,IAAAA;AAAX,MAAsBnD,KAA5B;AACA,QAAMZ,YAAY,GAAG,oBAArB;AAEA,SAAOiG,mBAAmB,CAAC;AACzBjG,IAAAA,YADyB;AAEzBY,IAAAA,KAFyB;AAGzBmC,IAAAA,OAHyB;AAIzBgB,IAAAA,MAJyB;AAKzBoC,IAAAA,MALyB;AAMzBC,IAAAA;AANyB,GAAD,CAA1B;AAQD,CAhBM;AAkBP;AACA;AACA;AACA;;;;;AACO,MAAMQ,iBAEZ,GAAIT,MAAD,IAAY;AAAA;;AACd,QAAM;AAAEvF,IAAAA;AAAF,MAAY,uBAAWD,gCAAX,CAAlB;AACA,QAAM;AAAEoC,IAAAA,OAAF;AAAWgB,IAAAA;AAAX,MAAsBnD,KAA5B;AACA,QAAMZ,YAAY,GAAG,oBAArB;;AAEA,MAAI+C,OAAJ,EAAa;AACX,WAAOA,OAAO,CAAC8D,mBAAR,CAA4BV,MAA5B,CAAP;AACD;;AAED,QAAM1D,YAAY,4BAAG7B,KAAK,CAACyB,aAAT,0DAAG,sBAAqBpD,GAArB,CAAyBkH,MAAM,CAACxH,GAAhC,CAArB;;AAEA,MACE,CAACiC,KAAK,CAACJ,MAAN,CAAaE,UAAd,IACA+B,YADA,IAEAqD,SAAS,CAACrD,YAAD,aAACA,YAAD,uBAACA,YAAY,CAAErD,KAAf,EAAsB+G,MAAM,CAACzH,YAA7B,CAHX,EAIE;AACA,WAAO+D,YAAY,CAACrD,KAApB;AACD;;AAED,sBAAQ2E,MAAR,EAAgB2C,2BAAhB,EAAkC1G,YAAlC;AACA,SAAOmG,MAAM,CAACzH,YAAd;AACD,CAvBM;;;;AAyBP,MAAMoI,sBAAsB,GAAIZ,IAAD,IAIzB;AAAA;;AACJ,QAAM;AAAEvH,IAAAA,GAAF;AAAOoE,IAAAA,OAAP;AAAgBnC,IAAAA;AAAhB,MAA0BsF,IAAhC;;AACA,MAAInD,OAAJ,EAAa;AACX,WAAOA,OAAO,CAACgE,uBAAR,CAAgCpI,GAAhC,CAAP;AACD;;AACD,QAAM8D,YAAY,4BAAG7B,KAAK,CAACyB,aAAT,0DAAG,sBAAqBpD,GAArB,CAAyBN,GAAzB,CAArB;;AACA,MAAI,CAACiC,KAAK,CAACJ,MAAN,CAAaE,UAAd,IAA4B+B,YAAhC,EAA8C;AAC5C,WAAOA,YAAP;AACD;;AACD,SAAO,IAAP;AACD,CAdD;AAgBA;AACA;AACA;AACA;AACA;;;AACO,MAAMuE,qBAA6D,GACxErI,GAD2E,IAExE;AACH,QAAM;AAAEiC,IAAAA;AAAF,MAAY,uBAAWD,gCAAX,CAAlB;AACA,QAAM;AAAEoC,IAAAA;AAAF,MAAcnC,KAApB;AACA,SAAOkG,sBAAsB,CAAC;AAAEnI,IAAAA,GAAF;AAAOiC,IAAAA,KAAP;AAAcmC,IAAAA;AAAd,GAAD,CAA7B;AACD,CANM;;;;AAQP,MAAMkE,UAAU,GAAG,OACjBd,MADiB,EAEjBnG,YAFiB,EAGjB+C,OAHiB,EAIjBgB,MAJiB,KAKd;AACH,MAAI;AACF,QAAI,CAAChB,OAAL,EAAc;AACZ,0BAAQgB,MAAR,EAAgBhF,2BAAhB,EAAkCiB,YAAlC;AACA;AACD;;AACD,UAAM+C,OAAO,CAACmE,qBAAR,CAA8Bf,MAA9B,CAAN,CALE,CAMF;AACD,GAPD,CAOE,OAAOlC,KAAP,EAAmB;AACnB,wBAAQF,MAAR,EAAgBE,KAAK,CAACC,OAAN,IAAiBD,KAAjC,EAAwCjE,YAAxC;AACD;AACF,CAhBD;AAkBA;AACA;AACA;AACA;AACA;AACA;;;AACO,MAAMmH,SAAS,GAAG,CACvBxI,GADuB,EAEvBD,YAFuB,KAGV;AACb,QAAM;AAAEkC,IAAAA;AAAF,MAAY,uBAAWD,gCAAX,CAAlB;AACA,QAAM;AAAEoC,IAAAA;AAAF,MAAcnC,KAApB;;AAEA,MAAI,CAACmC,OAAL,EAAc;AACZ,WAAO,IAAIvE,UAAJ,CAASE,YAAT,EAAuBC,GAAvB,EAA4BiC,KAAK,CAACyB,aAAlC,CAAP;AACD;;AAED,SAAOU,OAAO,CAACqE,OAAR,CAAgBzI,GAAhB,EAAqBD,YAArB,CAAP;AACD,CAZM;AAcP;AACA;AACA;AACA;AACA;AACA;;;;;AACO,MAAM2I,aAGZ,GAAG,MAAOlB,MAAP,IAAkB;AACpB,QAAM;AAAEvF,IAAAA;AAAF,MAAY,uBAAWD,gCAAX,CAAlB;AACA,QAAM;AAAEoC,IAAAA,OAAF;AAAWgB,IAAAA;AAAX,MAAsBnD,KAA5B;AACA,QAAMZ,YAAY,GAAG,oBAArB;AAEA,QAAMiH,UAAU,CAACd,MAAD,EAASnG,YAAT,EAAuB+C,OAAvB,EAAgCgB,MAAhC,CAAhB;AACD,CATM;;;;AAkHA,MAAMuD,WAAW,GAAG,MAAyB;AAClD,QAAM;AAAE1G,IAAAA;AAAF,MAAY,uBAAWD,gCAAX,CAAlB;AACA,QAAM;AAAEoC,IAAAA,OAAF;AAAWgB,IAAAA;AAAX,MAAsBnD,KAA5B;;AAEA,QAAM2G,eAAe,GAAI/C,OAAD,IAA8C;AACpE,UAAMxE,YAAY,GAAG,eAArB;;AACA,QAAI,CAAC+C,OAAL,EAAc;AACZ,2BAASgB,MAAT,EAAiBhF,2BAAjB,EAAmCiB,YAAnC;AACA;AACD;;AACD+C,IAAAA,OAAO,CAACyE,YAAR;AACAzE,IAAAA,OAAO,CAACwB,aAAR,CAAsBC,OAAtB;AACD,GARD;;AAUA,QAAMiD,cAAc,GAAG,MAAY;AACjC,UAAMzH,YAAY,GAAG,cAArB;;AACA,QAAI,CAAC+C,OAAL,EAAc;AACZ,2BAASgB,MAAT,EAAiBhF,2BAAjB,EAAmCiB,YAAnC;AACA;AACD;;AACD+C,IAAAA,OAAO,CAACyE,YAAR;AACD,GAPD;;AASA,QAAME,cAAc,GAAI3C,SAAD,IAA6B;AAClD,UAAM/E,YAAY,GAAG,cAArB;;AACA,QAAI,CAAC+C,OAAL,EAAc;AACZ,2BAASgB,MAAT,EAAiBhF,2BAAjB,EAAmCiB,YAAnC;AACA;AACD;;AACD+C,IAAAA,OAAO,CAAC4B,YAAR,CAAqBI,SAArB;AACD,GAPD;;AASA,QAAM4C,gBAAgB,GAAG,MAAY;AACnC,UAAM3H,YAAY,GAAG,gBAArB;;AACA,QAAI,CAAC+C,OAAL,EAAc;AACZ,2BAASgB,MAAT,EAAiBhF,2BAAjB,EAAmCiB,YAAnC;AACA;AACD;;AACD+C,IAAAA,OAAO,CAAC8B,cAAR;AACD,GAPD;AASA;AACF;AACA;;;AACE,QAAM+C,SAEL,GAAIC,GAAD,IAAS;AACX,UAAM7H,YAAY,GAAG,SAArB;;AACA,QAAI,CAAC+C,OAAL,EAAc;AACZ,2BAASgB,MAAT,EAAiBhF,2BAAjB,EAAmCiB,YAAnC;AACA,aAAOJ,OAAO,CAACC,OAAR,EAAP;AACD;;AACD,WAAOkD,OAAO,CAAC+E,OAAR,CAAgBD,GAAhB,CAAP;AACD,GATD;AAWA;AACF;AACA;;;AACE,QAAME,UAEL,GAAIF,GAAD,IAAS;AACX,UAAM7H,YAAY,GAAG,UAArB;;AACA,QAAI,CAAC+C,OAAL,EAAc;AACZ,2BAASgB,MAAT,EAAiBhF,2BAAjB,EAAmCiB,YAAnC;AACA,aAAOJ,OAAO,CAACC,OAAR,EAAP;AACD;;AACD,WAAOkD,OAAO,CAACiF,QAAR,CAAiBH,GAAjB,CAAP;AACD,GATD;;AAWA,MAAIxF,aAAa,GAAGU,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAEkF,qBAAT,EAApB;;AACA,MAAI,CAACrH,KAAK,CAACJ,MAAN,CAAaE,UAAd,IAA4BE,KAAK,CAACyB,aAAtC,EAAqD;AACnD;AACAA,IAAAA,aAAa,GAAG0D,KAAK,CAACmC,IAAN,CAAWtH,KAAK,CAACyB,aAAjB,EAAgC,CAAC,CAAC8F,IAAD,EAAO1B,IAAP,CAAD,KAAkBA,IAAlD,CAAhB;AACD;;AAED,QAAM2B,oBAGL,GAAG,MAAOjC,MAAP,IAAkB;AACpB,UAAMnG,YAAY,GAAG,sBAArB;AACA,UAAMiH,UAAU,CAACd,MAAD,EAASnG,YAAT,EAAuB+C,OAAvB,EAAgCgB,MAAhC,CAAhB;AACD,GAND;;AAOA,QAAMsE,wBAAwB,GAAG,YAAY;AAC3C,QAAI,CAACtF,OAAL,EAAc;AACZ,0BAAQgB,MAAR,EAAgBhF,2BAAhB,EAAkC,0BAAlC;AACA;AACD;;AACD,UAAMgE,OAAO,CAACsF,wBAAR,EAAN;AACD,GAND;;AAQA,QAAMC,gBAAgB,GAAG,CACvBnC,MADuB,EAEvBC,WAFuB,KAGpB;AACH,UAAMpG,YAAY,GAAG,kBAArB;AACA,WAAOiG,mBAAmB,CAAC;AACzBjG,MAAAA,YADyB;AAEzBY,MAAAA,KAFyB;AAGzBmC,MAAAA,OAHyB;AAIzBgB,MAAAA,MAJyB;AAKzBoC,MAAAA,MALyB;AAMzBC,MAAAA;AANyB,KAAD,CAA1B;AAQD,GAbD;;AAeA,QAAMmC,mBAA2D,GAC/D5J,GADkE,IAE/D;AACH,WAAOmI,sBAAsB,CAAC;AAAEnI,MAAAA,GAAF;AAAOiC,MAAAA,KAAP;AAAcmC,MAAAA;AAAd,KAAD,CAA7B;AACD,GAJD;;AAMA,WAASqE,OAAT,CAAqBzI,GAArB,EAAkCD,YAAlC,EAA6D;AAC3D,QAAI,CAACqE,OAAL,EAAc;AACZ,aAAO,IAAIvE,UAAJ,CAASE,YAAT,EAAuBC,GAAvB,EAA4BiC,KAAK,CAACyB,aAAlC,CAAP;AACD;;AACD,WAAOU,OAAO,CAACqE,OAAR,CAAgBzI,GAAhB,EAAqBD,YAArB,CAAP;AACD;;AAED,WAASsE,UAAT,GAAsC;AACpC,QAAI,CAACD,OAAL,EAAc;AACZ,0BAAQgB,MAAR,EAAgBhF,2BAAhB,EAAkC,YAAlC;AACA,aAAOa,OAAO,CAACC,OAAR,EAAP;AACD;;AACD,WAAOkD,OAAO,CAACC,UAAR,EAAP;AACD;;AAED,WAASsB,UAAT,CAAqBD,YAArB,EAAkD;AAChD,QAAI,CAACtB,OAAL,EAAc;AACZ,0BAAQgB,MAAR,EAAgBhF,2BAAhB,EAAkC,YAAlC;AACA;AACD;;AACDgE,IAAAA,OAAO,CAACuB,UAAR,CAAmBD,YAAnB;AACD;;AAED,iBAAemE,KAAf,GAAsC;AACpC,UAAM3J,eAAS2J,KAAT,EAAN;AACD;;AAED,SAAO;AACLzD,IAAAA,SAAS,EAAEhC,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEgC,SADf;AAELN,IAAAA,WAAW,EAAE1B,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAE0B,WAFjB;AAGLD,IAAAA,OAAO,EAAE,EAAE,IAAGzB,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAEyB,OAAZ;AAAF,KAHJ;AAILH,IAAAA,YAAY,EAAEtB,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEsB,YAJlB;AAKLC,IAAAA,UALK;AAMLC,IAAAA,aAAa,EAAEgD,eANV;AAOLC,IAAAA,YAAY,EAAEC,cAPT;AAQL9C,IAAAA,YAAY,EAAE+C,cART;AASL7C,IAAAA,cAAc,EAAE8C,gBATX;AAULnH,IAAAA,MAAM,EAAEI,KAAK,CAACJ,MAVT;AAWL4H,IAAAA,oBAXK;AAYLC,IAAAA,wBAZK;AAaLC,IAAAA,gBAbK;AAcLjG,IAAAA,aAAa,EAAEA,aAAa,IAAI,EAd3B;AAeLzD,IAAAA,SAAS,EAAE,CAAAmE,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAE0F,iBAAT,OAAgC,EAftC;AAgBLF,IAAAA,mBAhBK;AAiBLV,IAAAA,GAAG,EAAE;AACHa,MAAAA,IAAI,EAAEd,SADH;AAEHe,MAAAA,YAAY,EAAEZ;AAFX,KAjBA;AAqBLX,IAAAA,OArBK;AAsBLpE,IAAAA,UAtBK;AAuBLwF,IAAAA;AAvBK,GAAP;AAyBD,CAnKM;;;;;;;;;;;;;;;;;;AC7SA,MAAMzJ,gBAAgB,GAAG,mCAAzB;;AACA,MAAM2H,gBAAgB,GAAG,kDAAzB;;AAEE,MAAMpH,mBAAmB,GAAE,mEAA3B;;AACA,MAAMa,uBAAuB,GAAG,+FAAhC;;;;;;;;;;;;;;;;;ACJT;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;ACFA;AACO,MAAMyI,OAAO,GAAG,OAAhB;;;;;;;;;;;;;;;;;;;;;;;;;ACDP;;AAMA;;AAEO,SAASC,QAAT,CACL9E,MADK,EAELG,OAFK,EAGL4E,GAHK,EAIC;AACN,MACE,CAAC/E,MAAD,IACA,CAACA,MAAM,CAACgF,UADR,IAEA,OAAOhF,MAAM,CAACgF,UAAP,CAAkB9E,KAAzB,KAAmC,UAFnC,IAGA,CAACF,MAAM,CAACiF,QAHR,IAIAjF,MAAM,CAACiF,QAAP,GAAkBC,gBAASC,KAL7B,EAME;AACA;AACD;;AAEDnF,EAAAA,MAAM,CAACgF,UAAP,CAAkB9E,KAAlB,CAAwBC,OAAxB,EAAiC4E,GAAjC;AACD;;AAEM,SAASK,OAAT,CACLpF,MADK,EAELG,OAFK,EAGL4E,GAHK,EAIC;AACN,MACE,CAAC/E,MAAD,IACA,CAACA,MAAM,CAACgF,UADR,IAEA,OAAOhF,MAAM,CAACgF,UAAP,CAAkBK,IAAzB,KAAkC,UAFlC,IAGA,CAACrF,MAAM,CAACiF,QAHR,IAIAjF,MAAM,CAACiF,QAAP,GAAkBC,gBAASI,IAL7B,EAME;AACA;AACD;;AACDtF,EAAAA,MAAM,CAACgF,UAAP,CAAkBK,IAAlB,CAAuBlF,OAAvB,EAAgC4E,GAAhC;AACD;;AAEM,SAASQ,OAAT,CACLvF,MADK,EAELG,OAFK,EAGL4E,GAHK,EAIC;AACN,MACE,CAAC/E,MAAD,IACA,CAACA,MAAM,CAACgF,UADR,IAEA,OAAOhF,MAAM,CAACgF,UAAP,CAAkBQ,OAAzB,KAAqC,UAFrC,IAGA,CAACxF,MAAM,CAACiF,QAHR,IAIAjF,MAAM,CAACiF,QAAP,GAAkBC,gBAASO,OAL7B,EAME;AACA;AACD;;AACDzF,EAAAA,MAAM,CAACgF,UAAP,CAAkBQ,OAAlB,CAA0BrF,OAA1B,EAAmC4E,GAAnC;AACD;;AAEM,MAAMW,6BAA6B,GACxCC,SAD2C,IAEb;AAC9B,QAAMrH,aAAa,GAAG,IAAIC,GAAJ,EAAtB;;AACA,MAAI,CAACoH,SAAD,IAAc,CAAC3D,KAAK,CAACC,OAAN,CAAc0D,SAAd,CAAnB,EAA6C;AAC3C,WAAOrH,aAAP;AACD;;AACDqH,EAAAA,SAAS,CAACnH,OAAV,CAAmBoH,QAAD,IAAc;AAC9B,UAAMC,MAAM,GAAGD,QAAQ,CAACE,SAAT,CAAmBxH,aAAnB,CAAiCjD,KAAhD;;AACA,SAAK,MAAMT,GAAX,IAAkBiL,MAAlB,EAA0B;AACxB,YAAMxK,KAAK,GAAGwK,MAAM,CAACjL,GAAD,CAApB;AACA0D,MAAAA,aAAa,CAACG,GAAd,CAAkB7D,GAAlB,EAAuB;AACrBA,QAAAA,GADqB;AAErBa,QAAAA,UAAU,EAAEmK,QAAQ,CAAC/E,EAFA;AAGrBlF,QAAAA,gBAAgB,EAAEiK,QAAQ,CAACjK,gBAHN;AAIrBD,QAAAA,WAAW,EAAEkK,QAAQ,CAACE,SAAT,CAAmBjF,EAJX;AAKrBxE,QAAAA,WAAW,EAAEuJ,QAAQ,CAACE,SAAT,CAAmBC,SALX;AAMrB1K,QAAAA;AANqB,OAAvB;AAQD;AACF,GAbD;AAcA,SAAOiD,aAAP;AACD,CAtBM;;;;AAwBA,SAAS0H,MAAT,GAA2B;AAChC,SAAO,uCAAuCC,OAAvC,CACL,OADK,EAEL,UAAUC,IAAV,EAAgB;AACd,UAAMC,IAAI,GAAIC,IAAI,CAACC,MAAL,KAAgB,EAAjB,GAAuB,CAApC;AACA,UAAMhL,KAAK,GAAG6K,IAAI,KAAK,GAAT,GAAeC,IAAf,GAAuBA,IAAI,GAAG,GAAR,GAAe,GAAnD;AACA,WAAO9K,KAAK,CAACiL,QAAN,CAAe,EAAf,CAAP;AACD,GANI,CAAP;AAQD;;AAEM,SAASC,mBAAT,CACLC,MADK,EAELC,IAFK,EAGC;AACN,QAAMC,aAAa,GAAG,mBAAO,IAAP,CAAtB;AAEA,wBAAU,MAAM;AACd,QAAIA,aAAa,CAAC3H,OAAlB,EAA2B;AACzB2H,MAAAA,aAAa,CAAC3H,OAAd,GAAwB,KAAxB;AACA;AACD;;AAED,QAAI,OAAOyH,MAAP,KAAkB,UAAtB,EAAkC;AAChC,aAAOA,MAAM,EAAb;AACD;AACF,GATD,EASGC,IATH;AAUD;;AAEM,SAASE,WAAT,CAAsBC,SAAtB,EAAyCjM,YAAzC,EAAuE;AAC5E,MAAI,OAAOiM,SAAP,KAAqB,OAAOjM,YAAhC,EAA8C;AAC5C,WAAO,KAAP;AACD;;AACD,MAAI,OAAOiM,SAAP,KAAqB,QAArB,IAAiC,OAAOjM,YAAP,KAAwB,QAAzD,IACJqH,KAAK,CAACC,OAAN,CAAc2E,SAAd,MAA6B5E,KAAK,CAACC,OAAN,CAActH,YAAd,CAD7B,EAEE;AACA,WAAO,KAAP;AACD;;AACD,SAAO,IAAP;AACD,EAED;;;AACO,SAASkM,OAAT,CAAkBC,MAAlB,EAAkC,GAAGzL,KAArC,EAA2D;AAChE,MAAI0L,SAAS,GAAGD,MAAhB;;AACA,OAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG3L,KAAK,CAAC4L,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrC,UAAME,OAAO,GAAG7L,KAAK,CAAC2L,CAAD,CAArB;AACAD,IAAAA,SAAS,GAAGA,SAAS,CAACd,OAAV,CAAkB,IAAIkB,MAAJ,CAAY,MAAKH,CAAE,KAAnB,EAAyB,GAAzB,CAAlB,EAAiDE,OAAjD,CAAZ;AACD;;AACD,SAAOH,SAAP;AACD;;;;;;;;;;ACrID;;;;;;;;;;ACAA;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;UEtBA;UACA;UACA;UACA","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":";;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AAEO,MAAMS,IAAN,CAAkC;AAKrCC,EAAAA,WAAW,CAAEC,YAAF,EAAkBC,GAAlB,EAA+BC,SAA/B,EAA4E;AAAA;;AAAA;;AAAA;;AAAA;;AACrF,QAAI,CAACA,SAAL,EAAgB;AACdN,MAAAA,+CAAO,CAACP,oEAAA,EAAD,EAAuBI,wDAAvB,EAAyC,SAAzC,CAAP;AACD;;AACD,SAAKO,YAAL,GAAoBA,YAApB;AACA,SAAKC,GAAL,GAAWA,GAAX;AACA,SAAKG,IAAL,GAAYF,SAAZ,aAAYA,SAAZ,uBAAYA,SAAS,CAAEG,GAAX,CAAeJ,GAAf,CAAZ;AACD;;AAEOK,EAAAA,WAAW,GAAI;AAAA;;AACrB,WAAO,KAAKN,YAAL,KAAsB,IAAtB,IAA8B,KAAKA,YAAL,KAAsBO,SAApD,IAAiE,CAACb,mDAAW,eAAC,KAAKU,IAAN,+CAAC,WAAWI,KAAZ,EAAmB,KAAKR,YAAxB,CAApF;AACD;;AAEDS,EAAAA,QAAQ,GAAO;AACb,QAAI,CAAC,KAAKL,IAAV,EAAgB;AACdR,MAAAA,+CAAO,CAACP,oEAAA,EAAD,EAAuBI,wDAAvB,EAAyC,UAAzC,CAAP;AACA,aAAO,KAAKO,YAAZ;AACD;;AAED,QAAI,KAAKM,WAAL,EAAJ,EAAwB;AACtBX,MAAAA,+CAAO,CACLN,oEAAA,EADK,EAELQ,+CAAO,CAACN,2DAAD,EAAsB,KAAKU,GAA3B,CAFF,EAGL,UAHK,CAAP;AAKA,aAAO,KAAKD,YAAZ;AACD;;AACD,WAAO,KAAKI,IAAL,CAAUI,KAAjB;AACD;;AAEDE,EAAAA,MAAM,GAAY;AAChB,QAAI,CAAC,KAAKN,IAAV,EAAgB;AACdR,MAAAA,+CAAO,CAACP,oEAAA,EAAD,EAAuBI,wDAAvB,EAAyC,QAAzC,CAAP;AACA,aAAO,KAAP;AACD;;AACD,WAAO,CAAC,EAAE,KAAKW,IAAL,CAAUO,UAAV,IAAwB,KAAKP,IAAL,CAAUQ,WAAlC,IAAiD,KAAKR,IAAL,CAAUS,gBAA7D,CAAR;AACD;;AAEDC,EAAAA,WAAW,GAAmB;AAC5B,QAAI,CAAC,KAAKV,IAAV,EAAgB;AACdR,MAAAA,+CAAO,CAACP,oEAAA,EAAD,EAAuBI,wDAAvB,EAAyC,aAAzC,CAAP;AACD;;AAED,WAAOsB,OAAO,CAACC,OAAR,EAAP;AACD;;AAEDC,EAAAA,cAAc,GAAoB;AAChC,QAAI,CAAC,KAAKb,IAAV,EAAgB;AACdR,MAAAA,+CAAO,CAACP,oEAAA,EAAD,EAAuBI,wDAAvB,EAAyC,gBAAzC,CAAP;AACD;;AAED,WAAOsB,OAAO,CAACC,OAAR,EAAP;AACD;;AAEW,MAARE,QAAQ,GAAkB;AAC5B,UAAMC,YAAY,GAAG,UAArB;;AACA,QAAI,CAAC,KAAKf,IAAV,EAAgB;AACdR,MAAAA,+CAAO,CAACP,oEAAA,EAAD,EAAuBI,wDAAvB,EAAyC0B,YAAzC,CAAP;AACA,aAAO7B,mEAAA,EAAP;AACD;;AACD,QAAI,KAAKgB,WAAL,EAAJ,EAAwB;AACtBX,MAAAA,+CAAO,CACLN,oEAAA,EADK,EAELQ,+CAAO,CAACL,+DAAD,EAA0B,KAAKS,GAA/B,CAFF,EAGLkB,YAHK,CAAP;AAKA,aAAO7B,mEAAA,EAAP;AACD;;AAED,WAAO,IAAIA,6DAAJ,CAAiB;AACtBqB,MAAAA,UAAU,EAAE,KAAKP,IAAL,CAAUO,UADA;AAEtBE,MAAAA,gBAAgB,EAAE,KAAKT,IAAL,CAAUS,gBAFN;AAGtBD,MAAAA,WAAW,EAAE,KAAKR,IAAL,CAAUQ,WAHD;AAItBS,MAAAA,WAAW,EAAE,CAAC,CAAC,KAAKjB,IAAL,CAAUiB,WAJH;AAKtBC,MAAAA,YAAY,EAAE,KAAKlB,IAAL,CAAUkB,YALF;AAMtBC,MAAAA,IAAI,EAAE,KAAKnB,IAAL,CAAUmB;AANM,KAAjB,CAAP;AAQD;;AAlFoC;;;;;;;;;;;;;;;;;;;;;ACJzC;AACA;AASA;AAWA;AAKA;AAoGA,MAAMa,QAAiB,GAAG;AACxBC,EAAAA,MAAM,EAAE;AAAEC,IAAAA,SAAS,EAAE,IAAb;AAAmBC,IAAAA,UAAU,EAAE;AAA/B;AADgB,CAA1B;AAIO,MAAMC,eAAe,gBAAGb,oDAAa,CAAY;AACtDc,EAAAA,KAAK,EAAE,EAAE,GAAGL;AAAL;AAD+C,CAAZ,CAArC;AAIA,MAAMM,gBAAiD,GAAG,CAAC;AAChEC,EAAAA,QADgE;AAEhEC,EAAAA,KAFgE;AAGhEC,EAAAA,MAHgE;AAIhEC,EAAAA,YAAY,GAAGjB,0EAJiD;AAKhEmB,EAAAA,WALgE;AAMhEC,EAAAA,WANgE;AAOhEC,EAAAA,UAPgE;AAQhEC,EAAAA,gBARgE;AAShEC,EAAAA,qBATgE;AAUhEC,EAAAA,kBAVgE;AAWhEC,EAAAA,QAXgE;AAYhEC,EAAAA,gBAZgE;AAahEC,EAAAA,oBAbgE;AAchEC,EAAAA,gBAdgE;AAehEC,EAAAA,4BAfgE;AAgBhEC,EAAAA,oBAAoB,GAAG,CAhByC;AAiBhEC,EAAAA,QAAQ,GAAG,IAjBqD;AAkBhEC,EAAAA,QAAQ,GAAG,CAlBqD;AAmBhEC,EAAAA,UAAU,GAAG3B,gDAnBmD;AAoBhE,KAAG4B;AApB6D,CAAD,KAqBpC;AAC3B,MAAIC,aAAa,GAAG,IAAIC,GAAJ,EAApB;;AACA,MAAIR,gBAAgB,IAAIA,gBAAgB,CAACS,OAAzC,EAAkD;AAChDT,IAAAA,gBAAgB,CAACS,OAAjB,CAA0B9D,IAAD,IAAU;AACjC4D,MAAAA,aAAa,CAACG,GAAd,CAAkB/D,IAAI,CAACH,GAAvB,EAA4BG,IAA5B;AACD,KAFD;AAGD,GAJD,MAIO,IAAIoD,oBAAoB,IAAIA,oBAAoB,CAACU,OAAjD,EAA0D;AAC/DV,IAAAA,oBAAoB,CAACU,OAArB,CAA8BE,YAAD,IAAkB;AAC7CJ,MAAAA,aAAa,CAACG,GAAd,CAAkBC,YAAY,CAACnE,GAA/B,EAAoCmE,YAApC;AACD,KAFD;AAGD,GAJM,MAIA,IAAIb,gBAAJ,EAAsB;AAC3BS,IAAAA,aAAa,GAAGjC,qEAA6B,CAACwB,gBAAD,CAA7C;AACD;;AAED,QAAM,CAACd,KAAD,EAAQ4B,QAAR,IAAoB5C,+CAAQ,CAAU,EAAE,GAAGW,QAAL;AAAe4B,IAAAA;AAAf,GAAV,CAAlC;AACA,QAAM,CAACM,YAAD,EAAeC,eAAf,IAAkC9C,+CAAQ,EAAhD;AACA,QAAM+C,QAAQ,GAAG5C,6CAAM,EAAvB;AACA4C,EAAAA,QAAQ,CAACC,OAAT,GAAmBhC,KAAnB;AAEAR,EAAAA,2DAAmB,CAAC,MAAM;AACxB,QAAIyB,4BAAJ,EAAkC;AAAA;;AAChC,wBAAAjB,KAAK,CAACiC,OAAN,kEAAeC,UAAf;AACD;AACF,GAJkB,EAIhB,CAACL,YAAD,CAJgB,CAAnB;AAMArC,EAAAA,2DAAmB,CAAC,MAAM;AACxB2C,IAAAA,aAAa;AACd,GAFkB,EAEhB,CAACC,IAAI,CAACC,SAAL,CAAe9B,WAAf,CAAD,CAFgB,CAAnB;AAIAtB,EAAAA,gDAAS,CAAC,MAAM;AACdqD,IAAAA,OAAO;AACR,GAFQ,EAEN,CAACnC,KAAD,EAAQC,MAAR,EAAgBC,YAAhB,CAFM,CAAT;;AAIA,WAASkC,eAAT,CAA0BC,KAA1B,EAIG;AACD,UAAMC,SAAmB,GAAG;AAC1B3C,MAAAA,UAAU,EAAE0C,KAAK,CAAC1C,UADQ;AAE1BD,MAAAA,SAAS,EAAE2C,KAAK,CAAC3C,SAFS;AAG1B6C,MAAAA,gBAAgB,EAAE,CAAC,CAACF,KAAK,CAACG,SAHA;AAI1BC,MAAAA,WAAW,EAAE,IAAIC,IAAJ,GAAWC,WAAX;AAJa,KAA5B;AAOAlB,IAAAA,QAAQ,CAAEmB,YAAD,IAAkB;AACzB,UAAI,CAACA,YAAY,CAACnD,MAAb,CAAoBoD,gBAAzB,EAA2C;AACzCP,QAAAA,SAAS,CAACO,gBAAV,GAA6B,IAAIH,IAAJ,GAAWC,WAAX,EAA7B;AACD;;AAED,aAAO,EACL,GAAGC,YADE;AAELd,QAAAA,OAAO,EAAEO,KAAK,CAACG,SAFV;AAGLpB,QAAAA,aAAa,EAAEiB,KAAK,CAACG,SAAN,CAAgBpB,aAH1B;AAIL0B,QAAAA,MAAM,EAAErG,mEAAA,EAJH;AAKLgD,QAAAA,MAAM,EAAE,EACN,GAAGmD,YAAY,CAACnD,MADV;AAEN,aAAG6C;AAFG;AALH,OAAP;AAUD,KAfO,CAAR;AAiBA,WAAOA,SAAP;AACD,GA/D0B,CAiE3B;;;AACA,QAAMS,cAAc,GAAG,CAACP,SAAD,EAAqBQ,KAArB,KAAoC;AACzD,QAAIA,KAAJ,EAAW;AACT5D,MAAAA,gDAAQ,CAAC3C,mEAAA,EAAD,EAAuBuG,KAAK,CAACC,OAAN,IAAiBD,KAAxC,EAA+C,SAA/C,CAAR;AACA;AACD;;AAED,UAAMV,SAAS,GAAGF,eAAe,CAAC;AAChCI,MAAAA,SADgC;AAEhC7C,MAAAA,UAAU,EAAE,IAFoB;AAGhCD,MAAAA,SAAS,EAAE;AAHqB,KAAD,CAAjC;;AAMA,QAAIgB,QAAJ,EAAc;AACZA,MAAAA,QAAQ,CAAC;AACPwC,QAAAA,eAAe,EAAEV,SAAS,CAACpB,aADpB;AAEP0B,QAAAA,MAAM,EAAErG,mEAAA,EAFD;AAGPgD,QAAAA,MAAM,EAAE6C;AAHD,OAAD,CAAR;AAKD;AACF,GAnBD;;AAqBA,WAASN,aAAT,GAA0B;AACxB,QAAI,CAAC5B,WAAL,EAAkB;AAChB;AACD;;AAED,QAAI,CAACP,KAAK,CAACiC,OAAP,IAAmBjC,KAAK,CAACiC,OAAN,CAAcqB,SAAd,KAA4B/C,WAAW,CAACgD,EAAxC,KAA+C,CAAChD,WAAW,CAACiD,eAAb,IAAiCjD,WAAW,CAACiD,eAAZ,IAA+BxD,KAAK,CAACiC,OAAN,CAAcwB,WAA7H,CAAvB,EAAoK;AAClKC,MAAAA,aAAa;AACb;AACD;;AAED,QAAInD,WAAW,CAACoD,YAAZ,KAA6B3D,KAAK,CAACiC,OAAN,CAAc0B,YAA/C,EAA6D;AAAA;;AAC3D3D,MAAAA,KAAK,CAACiC,OAAN,CAAc2B,UAAd,0BAAyBrD,WAAW,CAACoD,YAArC,yEAAqD,IAArD;AACD,KAZuB,CAaxB;;;AACA3D,IAAAA,KAAK,CAACiC,OAAN,CAAc4B,aAAd,CAA4BtD,WAAW,CAACuD,OAAxC;;AAEA,QAAI,CAAC9D,KAAK,CAACiC,OAAN,CAAcwB,WAAf,IAA8BlD,WAAW,CAACiD,eAA9C,EAA+D;AAC7DxD,MAAAA,KAAK,CAACiC,OAAN,CAAc8B,YAAd,CAA2BxD,WAAW,CAACgD,EAAvC;AACD;;AACD,QAAIvD,KAAK,CAACiC,OAAN,CAAcwB,WAAd,IAA6B,CAAClD,WAAW,CAACiD,eAA9C,EAA+D;AAC7DxD,MAAAA,KAAK,CAACiC,OAAN,CAAc+B,cAAd;AACD;;AACDhE,IAAAA,KAAK,CAACiC,OAAN,CAAcC,UAAd;AACD;;AAED,QAAMwB,aAAa,GAAG,MAAM;AAC1B,QAAI,CAACnD,WAAL,EAAkB;AAChB;AACD;;AACD,UAAMoC,SAAS,GAAG/F,oEAAA,CAAoB;AACpC0G,MAAAA,SAAS,EAAE/C,WAAW,CAACgD,EADa;AAEpCO,MAAAA,OAAO,EAAEvD,WAAW,CAACuD,OAFe;AAGpCN,MAAAA,eAAe,EAAEjD,WAAW,CAACiD,eAHO;AAIpCG,MAAAA,YAAY,EAAEpD,WAAW,CAACoD,YAJU;AAKpC7C,MAAAA,gBALoC;AAMpCC,MAAAA,oBANoC;AAOpCC,MAAAA;AAPoC,KAApB,CAAlB;AAUA2B,IAAAA,SAAS,SAAT,IAAAA,SAAS,WAAT,YAAAA,SAAS,CAAEuB,EAAX,CAAc,OAAd,EAAwBf,KAAD,IAAW;AAChCD,MAAAA,cAAc,CAACP,SAAD,EAAYQ,KAAZ,CAAd;AACD,KAFD;;AAIA,QAAI,CAAChC,QAAL,EAAe;AACboB,MAAAA,eAAe,CAAC;AACdI,QAAAA,SADc;AAEd7C,QAAAA,UAAU,EAAE,IAFE;AAGdD,QAAAA,SAAS,EAAE;AAHG,OAAD,CAAf;AAKD;AACF,GAzBD;;AA0BA,QAAMsE,aAAa,GAAIvE,MAAD,IAA4B;AAChD,QAAIe,qBAAJ,EAA2B;AACzBA,MAAAA,qBAAqB,CAACf,MAAD,CAArB;AACD;;AAED,YAAQA,MAAR;AACE,WAAKP,wEAAL;AACE,YAAIO,MAAM,KAAKP,wEAAX,IAAsCmB,WAA1C,EAAuD;AACrDA,UAAAA,WAAW;AACZ;;AACD;;AACF,WAAKnB,8EAAL;AACA,WAAKA,qEAAL;AACE,YAAIoB,UAAJ,EAAgB;AACdA,UAAAA,UAAU;AACX;;AAEDiD,QAAAA,aAAa;AAEb;;AACF,WAAKrE,+EAAL;AACEuC,QAAAA,QAAQ,CAAE4C,IAAD,KAAW,EAClB,GAAGA,IADe;AAElB5E,UAAAA,MAAM,EAAE,EACN,GAAG4E,IAAI,CAAC5E,MADF;AAENC,YAAAA,SAAS,EAAE;AAFL,WAFU;AAMlBoD,UAAAA,MAAM,EAAErG,mEAAA;AANU,SAAX,CAAD,CAAR;AAQA;AAxBJ;AA0BD,GA/BD;;AAiCA,QAAM6H,uBAAuB,GAAIC,UAAD,IAAsB;AACpD,QAAI9D,kBAAJ,EAAwB;AACtBA,MAAAA,kBAAkB,CAAC8D,UAAD,CAAlB;AACD;;AACD5C,IAAAA,eAAe,CAAC4C,UAAD,CAAf;AACD,GALD;;AAOA,QAAMpC,OAAO,GAAG,MAAM;AACpB1F,IAAAA,+DAAA,CAAeuD,KAAf,EAAsBC,MAAtB,EAA8B;AAC5B;AACAC,MAAAA,YAAY,EAAEA,YAFc;AAG5Bc,MAAAA,QAH4B;AAI5BR,MAAAA,qBAAqB,EAAEwD,aAJK;AAK5BvD,MAAAA,kBAAkB,EAAE6D,uBALQ;AAM5BvD,MAAAA,oBAN4B;AAO5BE,MAAAA,QAP4B;AAQ5BC,MAAAA,UAR4B;AAS5B,SAAGC;AATyB,KAA9B;AAWD,GAZD;;AAaA,QAAMsD,aAAa,GAAG,MAAuB;AAC3C,UAAMC,WAAW,GAAG,CAAC7E,KAAK,CAACiC,OAA3B;;AACA,QAAIjC,KAAK,CAACJ,MAAN,CAAaC,SAAb,IAA0Ba,gBAA1B,IAA8CmE,WAA9C,IAA6D1D,QAAjE,EAA2E;AACzE,0BAAO,0HAAGT,gBAAH,CAAP;AACD;;AACD,wBAAO,0HAAGR,QAAH,CAAP;AACD,GAND;;AAOA,sBACE,2DAAC,eAAD,CAAiB,QAAjB;AAA0B,SAAK,EAAE;AAAEF,MAAAA,KAAF;AAAS4B,MAAAA;AAAT;AAAjC,KACGgD,aAAa,EADhB,CADF;AAKD,CAhOM;AAkOP3E,gBAAgB,CAAC6E,YAAjB,GAAgC;AAC9B5D,EAAAA,oBAAoB,EAAE,CADQ;AAE9BC,EAAAA,QAAQ,EAAE,IAFoB;AAG9BC,EAAAA,QAAQ,EAAE,CAHoB;AAI9BC,EAAAA,UAAU,EAAE3B,gDAAWA;AAJO,CAAhC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxWA;AACA;AAYA;AACA;AACA;AACA;;AAEA,MAAMuF,SAAS,GAAG,CAAClH,KAAD,EAAiBR,YAAjB,KACf,OAAOQ,KAAP,KAAiB,QAAjB,IACC,OAAOR,YAAP,KAAwB,QADzB,IAEC2H,KAAK,CAACC,OAAN,CAAcpH,KAAd,MAAyBmH,KAAK,CAACC,OAAN,CAAc5H,YAAd,CAF3B,IAGA,OAAOQ,KAAP,KAAiB,OAAOR,YAJ1B;;AAMA,MAAM6H,mBAAmB,GAAuBC,IAApB,IAOH;AACvB,QAAM;AAAEpD,IAAAA,OAAF;AAAWqD,IAAAA,MAAX;AAAmBC,IAAAA,WAAnB;AAAgCvF,IAAAA,KAAhC;AAAuCtB,IAAAA,YAAvC;AAAqDuE,IAAAA;AAArD,MAAgEoC,IAAtE;;AACA,MAAIpD,OAAJ,EAAa;AACX,WAAOA,OAAO,CAACuD,oBAAR,CAA6BF,MAA7B,EAAqCC,WAArC,CAAP;AACD;;AAED,QAAME,KAAK,GACT,CAACzF,KAAK,CAACJ,MAAN,CAAaE,UAAd,IACA,CAAC,CAACE,KAAK,CAACuB,aADR,IAEAvB,KAAK,CAACuB,aAAN,CAAoBmE,IAApB,GAA2B,CAH7B;AAIA,QAAMC,KAAwB,GAAG,EAAjC;;AAEA,MAAIF,KAAJ,EAAW;AACTH,IAAAA,MAAM,CAAC7D,OAAP,CAAgBmE,IAAD,IAAU;AAAA;;AACvB,YAAMjE,YAAY,2BAAG3B,KAAK,CAACuB,aAAT,yDAAG,qBAAqB3D,GAArB,CAAyBgI,IAAI,CAACpI,GAA9B,CAArB;;AAEA,UAAImE,YAAY,IAAIsD,SAAS,CAACtD,YAAD,aAACA,YAAD,uBAACA,YAAY,CAAE5D,KAAf,EAAsB6H,IAAI,CAACrI,YAA3B,CAA7B,EAAuE;AACrEoI,QAAAA,KAAK,CAACC,IAAI,CAACpI,GAAN,CAAL,GAAkBmE,YAAY,CAAC5D,KAA/B;AACD,OAFD,MAEO;AACL4H,QAAAA,KAAK,CAACC,IAAI,CAACpI,GAAN,CAAL,GAAkBoI,IAAI,CAACrI,YAAvB;AACD;AACF,KARD;AASA,WAAOoI,KAAP;AACD;;AAEDxI,EAAAA,+CAAO,CAAC8F,MAAD,EAAS+B,wDAAT,EAA2BtG,YAA3B,CAAP;AACA4G,EAAAA,MAAM,CAAC7D,OAAP,CAAgBmE,IAAD,IAAU;AACvBD,IAAAA,KAAK,CAACC,IAAI,CAACpI,GAAN,CAAL,GAAkBoI,IAAI,CAACrI,YAAvB;AACD,GAFD;AAGA,SAAOoI,KAAP;AACD,CArCD;AAuCA;AACA;AACA;AACA;;;AACO,MAAME,kBAAkB,GAAG,CAChCP,MADgC,EAEhCC,WAFgC,KAGV;AACtB,QAAM;AAAEvF,IAAAA;AAAF,MAAY+E,iDAAU,CAAChF,6DAAD,CAA5B;AACA,QAAM;AAAEkC,IAAAA,OAAF;AAAWgB,IAAAA;AAAX,MAAsBjD,KAA5B;AACA,QAAMtB,YAAY,GAAG,oBAArB;AAEA,SAAO0G,mBAAmB,CAAC;AACzB1G,IAAAA,YADyB;AAEzBsB,IAAAA,KAFyB;AAGzBiC,IAAAA,OAHyB;AAIzBgB,IAAAA,MAJyB;AAKzBqC,IAAAA,MALyB;AAMzBC,IAAAA;AANyB,GAAD,CAA1B;AAQD,CAhBM;AAkBP;AACA;AACA;AACA;;AACO,MAAMO,iBAEZ,GAAIR,MAAD,IAAY;AAAA;;AACd,QAAM;AAAEtF,IAAAA;AAAF,MAAY+E,iDAAU,CAAChF,6DAAD,CAA5B;AACA,QAAM;AAAEkC,IAAAA,OAAF;AAAWgB,IAAAA;AAAX,MAAsBjD,KAA5B;AACA,QAAMtB,YAAY,GAAG,oBAArB;;AAEA,MAAIuD,OAAJ,EAAa;AACX,WAAOA,OAAO,CAAC8D,mBAAR,CAA4BT,MAA5B,CAAP;AACD;;AAED,QAAM3D,YAAY,4BAAG3B,KAAK,CAACuB,aAAT,0DAAG,sBAAqB3D,GAArB,CAAyB0H,MAAM,CAAC9H,GAAhC,CAArB;;AAEA,MACE,CAACwC,KAAK,CAACJ,MAAN,CAAaE,UAAd,IACA6B,YADA,IAEAsD,SAAS,CAACtD,YAAD,aAACA,YAAD,uBAACA,YAAY,CAAE5D,KAAf,EAAsBuH,MAAM,CAAC/H,YAA7B,CAHX,EAIE;AACA,WAAOoE,YAAY,CAAC5D,KAApB;AACD;;AAEDZ,EAAAA,+CAAO,CAAC8F,MAAD,EAAS+B,wDAAT,EAA2BtG,YAA3B,CAAP;AACA,SAAO4G,MAAM,CAAC/H,YAAd;AACD,CAvBM;;AAyBP,MAAMyI,sBAAsB,GAAIX,IAAD,IAIzB;AAAA;;AACJ,QAAM;AAAE7H,IAAAA,GAAF;AAAOyE,IAAAA,OAAP;AAAgBjC,IAAAA;AAAhB,MAA0BqF,IAAhC;;AACA,MAAIpD,OAAJ,EAAa;AACX,WAAOA,OAAO,CAACgE,uBAAR,CAAgCzI,GAAhC,CAAP;AACD;;AACD,QAAMmE,YAAY,4BAAG3B,KAAK,CAACuB,aAAT,0DAAG,sBAAqB3D,GAArB,CAAyBJ,GAAzB,CAArB;;AACA,MAAI,CAACwC,KAAK,CAACJ,MAAN,CAAaE,UAAd,IAA4B6B,YAAhC,EAA8C;AAC5C,WAAOA,YAAP;AACD;;AACD,SAAO,IAAP;AACD,CAdD;AAgBA;AACA;AACA;AACA;AACA;;;AACO,MAAMuE,qBAA6D,GACxE1I,GAD2E,IAExE;AACH,QAAM;AAAEwC,IAAAA;AAAF,MAAY+E,iDAAU,CAAChF,6DAAD,CAA5B;AACA,QAAM;AAAEkC,IAAAA;AAAF,MAAcjC,KAApB;AACA,SAAOgG,sBAAsB,CAAC;AAAExI,IAAAA,GAAF;AAAOwC,IAAAA,KAAP;AAAciC,IAAAA;AAAd,GAAD,CAA7B;AACD,CANM;;AAQP,MAAMkE,UAAU,GAAG,OACjBb,MADiB,EAEjB5G,YAFiB,EAGjBuD,OAHiB,EAIjBgB,MAJiB,KAKd;AACH,MAAI;AACF,QAAI,CAAChB,OAAL,EAAc;AACZ9E,MAAAA,+CAAO,CAAC8F,MAAD,EAASjG,wDAAT,EAA2B0B,YAA3B,CAAP;AACA;AACD;;AACD,UAAMuD,OAAO,CAACmE,qBAAR,CAA8Bd,MAA9B,CAAN,CALE,CAMF;AACD,GAPD,CAOE,OAAOnC,KAAP,EAAmB;AACnBhG,IAAAA,+CAAO,CAAC8F,MAAD,EAASE,KAAK,CAACC,OAAN,IAAiBD,KAA1B,EAAiCzE,YAAjC,CAAP;AACD;AACF,CAhBD;AAkBA;AACA;AACA;AACA;AACA;AACA;;;AACO,MAAM2H,SAAS,GAAG,CACvB7I,GADuB,EAEvBD,YAFuB,KAGV;AACb,QAAM;AAAEyC,IAAAA;AAAF,MAAY+E,iDAAU,CAAChF,6DAAD,CAA5B;AACA,QAAM;AAAEkC,IAAAA;AAAF,MAAcjC,KAApB;;AAEA,MAAI,CAACiC,OAAL,EAAc;AACZ,WAAO,IAAI5E,uCAAJ,CAASE,YAAT,EAAuBC,GAAvB,EAA4BwC,KAAK,CAACuB,aAAlC,CAAP;AACD;;AAED,SAAOU,OAAO,CAACqE,OAAR,CAAgB9I,GAAhB,EAAqBD,YAArB,CAAP;AACD,CAZM;AAcP;AACA;AACA;AACA;AACA;AACA;;AACO,MAAMgJ,aAGZ,GAAG,MAAOjB,MAAP,IAAkB;AACpB,QAAM;AAAEtF,IAAAA;AAAF,MAAY+E,iDAAU,CAAChF,6DAAD,CAA5B;AACA,QAAM;AAAEkC,IAAAA,OAAF;AAAWgB,IAAAA;AAAX,MAAsBjD,KAA5B;AACA,QAAMtB,YAAY,GAAG,oBAArB;AAEA,QAAMyH,UAAU,CAACb,MAAD,EAAS5G,YAAT,EAAuBuD,OAAvB,EAAgCgB,MAAhC,CAAhB;AACD,CATM;AAkHA,MAAMuD,WAAW,GAAG,MAAyB;AAClD,QAAM;AAAExG,IAAAA;AAAF,MAAY+E,iDAAU,CAAChF,6DAAD,CAA5B;AACA,QAAM;AAAEkC,IAAAA,OAAF;AAAWgB,IAAAA;AAAX,MAAsBjD,KAA5B;;AAEA,QAAMyG,eAAe,GAAI3C,OAAD,IAA8C;AACpE,UAAMpF,YAAY,GAAG,eAArB;;AACA,QAAI,CAACuD,OAAL,EAAc;AACZ1C,MAAAA,gDAAQ,CAAC0D,MAAD,EAASjG,wDAAT,EAA2B0B,YAA3B,CAAR;AACA;AACD;;AACDuD,IAAAA,OAAO,CAACyE,YAAR;AACAzE,IAAAA,OAAO,CAAC4B,aAAR,CAAsBC,OAAtB;AACD,GARD;;AAUA,QAAM6C,cAAc,GAAG,MAAY;AACjC,UAAMjI,YAAY,GAAG,cAArB;;AACA,QAAI,CAACuD,OAAL,EAAc;AACZ1C,MAAAA,gDAAQ,CAAC0D,MAAD,EAASjG,wDAAT,EAA2B0B,YAA3B,CAAR;AACA;AACD;;AACDuD,IAAAA,OAAO,CAACyE,YAAR;AACD,GAPD;;AASA,QAAME,cAAc,GAAItD,SAAD,IAA6B;AAClD,UAAM5E,YAAY,GAAG,cAArB;;AACA,QAAI,CAACuD,OAAL,EAAc;AACZ1C,MAAAA,gDAAQ,CAAC0D,MAAD,EAASjG,wDAAT,EAA2B0B,YAA3B,CAAR;AACA;AACD;;AACDuD,IAAAA,OAAO,CAAC8B,YAAR,CAAqBT,SAArB;AACD,GAPD;;AASA,QAAMuD,gBAAgB,GAAG,MAAY;AACnC,UAAMnI,YAAY,GAAG,gBAArB;;AACA,QAAI,CAACuD,OAAL,EAAc;AACZ1C,MAAAA,gDAAQ,CAAC0D,MAAD,EAASjG,wDAAT,EAA2B0B,YAA3B,CAAR;AACA;AACD;;AACDuD,IAAAA,OAAO,CAAC+B,cAAR;AACD,GAPD;AASA;AACF;AACA;;;AACE,QAAM8C,SAEL,GAAIC,GAAD,IAAS;AACX,UAAMrI,YAAY,GAAG,SAArB;;AACA,QAAI,CAACuD,OAAL,EAAc;AACZ1C,MAAAA,gDAAQ,CAAC0D,MAAD,EAASjG,wDAAT,EAA2B0B,YAA3B,CAAR;AACA,aAAOJ,OAAO,CAACC,OAAR,EAAP;AACD;;AACD,WAAO0D,OAAO,CAAC+E,OAAR,CAAgBD,GAAhB,CAAP;AACD,GATD;AAWA;AACF;AACA;;;AACE,QAAME,UAEL,GAAIF,GAAD,IAAS;AACX,UAAMrI,YAAY,GAAG,UAArB;;AACA,QAAI,CAACuD,OAAL,EAAc;AACZ1C,MAAAA,gDAAQ,CAAC0D,MAAD,EAASjG,wDAAT,EAA2B0B,YAA3B,CAAR;AACA,aAAOJ,OAAO,CAACC,OAAR,EAAP;AACD;;AACD,WAAO0D,OAAO,CAACiF,QAAR,CAAiBH,GAAjB,CAAP;AACD,GATD;;AAWA,MAAIxF,aAAa,GAAGU,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAEkF,qBAAT,EAApB;;AACA,MAAI,CAACnH,KAAK,CAACJ,MAAN,CAAaE,UAAd,IAA4BE,KAAK,CAACuB,aAAtC,EAAqD;AACnD;AACAA,IAAAA,aAAa,GAAG2D,KAAK,CAACkC,IAAN,CAAWpH,KAAK,CAACuB,aAAjB,EAAgC,CAAC,CAAC8F,IAAD,EAAOzB,IAAP,CAAD,KAAkBA,IAAlD,CAAhB;AACD;;AAED,QAAM0B,oBAGL,GAAG,MAAOhC,MAAP,IAAkB;AACpB,UAAM5G,YAAY,GAAG,sBAArB;AACA,UAAMyH,UAAU,CAACb,MAAD,EAAS5G,YAAT,EAAuBuD,OAAvB,EAAgCgB,MAAhC,CAAhB;AACD,GAND;;AAOA,QAAMsE,wBAAwB,GAAG,YAAY;AAC3C,QAAI,CAACtF,OAAL,EAAc;AACZ9E,MAAAA,+CAAO,CAAC8F,MAAD,EAASjG,wDAAT,EAA2B,0BAA3B,CAAP;AACA;AACD;;AACD,UAAMiF,OAAO,CAACsF,wBAAR,EAAN;AACD,GAND;;AAQA,QAAMC,gBAAgB,GAAG,CACvBlC,MADuB,EAEvBC,WAFuB,KAGpB;AACH,UAAM7G,YAAY,GAAG,kBAArB;AACA,WAAO0G,mBAAmB,CAAC;AACzB1G,MAAAA,YADyB;AAEzBsB,MAAAA,KAFyB;AAGzBiC,MAAAA,OAHyB;AAIzBgB,MAAAA,MAJyB;AAKzBqC,MAAAA,MALyB;AAMzBC,MAAAA;AANyB,KAAD,CAA1B;AAQD,GAbD;;AAeA,QAAMkC,mBAA2D,GAC/DjK,GADkE,IAE/D;AACH,WAAOwI,sBAAsB,CAAC;AAAExI,MAAAA,GAAF;AAAOwC,MAAAA,KAAP;AAAciC,MAAAA;AAAd,KAAD,CAA7B;AACD,GAJD;;AAMA,WAASqE,OAAT,CAAqB9I,GAArB,EAAkCD,YAAlC,EAA6D;AAC3D,QAAI,CAAC0E,OAAL,EAAc;AACZ,aAAO,IAAI5E,uCAAJ,CAASE,YAAT,EAAuBC,GAAvB,EAA4BwC,KAAK,CAACuB,aAAlC,CAAP;AACD;;AACD,WAAOU,OAAO,CAACqE,OAAR,CAAgB9I,GAAhB,EAAqBD,YAArB,CAAP;AACD;;AAED,WAAS2E,UAAT,GAAsC;AACpC,QAAI,CAACD,OAAL,EAAc;AACZ9E,MAAAA,+CAAO,CAAC8F,MAAD,EAASjG,wDAAT,EAA2B,YAA3B,CAAP;AACA,aAAOsB,OAAO,CAACC,OAAR,EAAP;AACD;;AACD,WAAO0D,OAAO,CAACC,UAAR,EAAP;AACD;;AAED,WAAS0B,UAAT,CAAqBD,YAArB,EAAkD;AAChD,QAAI,CAAC1B,OAAL,EAAc;AACZ9E,MAAAA,+CAAO,CAAC8F,MAAD,EAASjG,wDAAT,EAA2B,YAA3B,CAAP;AACA;AACD;;AACDiF,IAAAA,OAAO,CAAC2B,UAAR,CAAmBD,YAAnB;AACD;;AAED,iBAAe+D,KAAf,GAAsC;AACpC,UAAM9K,gEAAA,EAAN;AACD;;AAED,SAAO;AACL0G,IAAAA,SAAS,EAAErB,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEqB,SADf;AAELG,IAAAA,WAAW,EAAExB,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEwB,WAFjB;AAGLK,IAAAA,OAAO,EAAE,EAAE,IAAG7B,OAAH,aAAGA,OAAH,uBAAGA,OAAO,CAAE6B,OAAZ;AAAF,KAHJ;AAILH,IAAAA,YAAY,EAAE1B,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAE0B,YAJlB;AAKLC,IAAAA,UALK;AAMLC,IAAAA,aAAa,EAAE4C,eANV;AAOLC,IAAAA,YAAY,EAAEC,cAPT;AAQL5C,IAAAA,YAAY,EAAE6C,cART;AASL5C,IAAAA,cAAc,EAAE6C,gBATX;AAULjH,IAAAA,MAAM,EAAEI,KAAK,CAACJ,MAVT;AAWL0H,IAAAA,oBAXK;AAYLC,IAAAA,wBAZK;AAaLC,IAAAA,gBAbK;AAcLjG,IAAAA,aAAa,EAAEA,aAAa,IAAI,EAd3B;AAeL9D,IAAAA,SAAS,EAAE,CAAAwE,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAE0F,iBAAT,OAAgC,EAftC;AAgBLF,IAAAA,mBAhBK;AAiBLV,IAAAA,GAAG,EAAE;AACHa,MAAAA,IAAI,EAAEd,SADH;AAEHe,MAAAA,YAAY,EAAEZ;AAFX,KAjBA;AAqBLX,IAAAA,OArBK;AAsBLpE,IAAAA,UAtBK;AAuBLwF,IAAAA;AAvBK,GAAP;AAyBD,CAnKM;;;;;;;;;;;;;;;;;AC7SA,MAAM1K,gBAAgB,GAAG,mCAAzB;AACA,MAAMgI,gBAAgB,GAAG,kDAAzB;AAEE,MAAMlI,mBAAmB,GAAE,mEAA3B;AACA,MAAMC,uBAAuB,GAAG,+FAAhC;;;;;;;;;;;;;;ACJT;AACO,MAAM0C,OAAO,GAAG,eAAhB;;;;;;;;;;;;;;;;;;;;;;;;;ACDP;AAMA;AAEO,SAASF,QAAT,CACL0D,MADK,EAELG,OAFK,EAGL2E,GAHK,EAIC;AACN,MACE,CAAC9E,MAAD,IACA,CAACA,MAAM,CAAC+E,UADR,IAEA,OAAO/E,MAAM,CAAC+E,UAAP,CAAkB7E,KAAzB,KAAmC,UAFnC,IAGA,CAACF,MAAM,CAACgF,QAHR,IAIAhF,MAAM,CAACgF,QAAP,GAAkBH,+DALpB,EAME;AACA;AACD;;AAED7E,EAAAA,MAAM,CAAC+E,UAAP,CAAkB7E,KAAlB,CAAwBC,OAAxB,EAAiC2E,GAAjC;AACD;AAEM,SAAS7K,OAAT,CACL+F,MADK,EAELG,OAFK,EAGL2E,GAHK,EAIC;AACN,MACE,CAAC9E,MAAD,IACA,CAACA,MAAM,CAAC+E,UADR,IAEA,OAAO/E,MAAM,CAAC+E,UAAP,CAAkBG,IAAzB,KAAkC,UAFlC,IAGA,CAAClF,MAAM,CAACgF,QAHR,IAIAhF,MAAM,CAACgF,QAAP,GAAkBH,8DALpB,EAME;AACA;AACD;;AACD7E,EAAAA,MAAM,CAAC+E,UAAP,CAAkBG,IAAlB,CAAuB/E,OAAvB,EAAgC2E,GAAhC;AACD;AAEM,SAAS5K,OAAT,CACL8F,MADK,EAELG,OAFK,EAGL2E,GAHK,EAIC;AACN,MACE,CAAC9E,MAAD,IACA,CAACA,MAAM,CAAC+E,UADR,IAEA,OAAO/E,MAAM,CAAC+E,UAAP,CAAkBK,OAAzB,KAAqC,UAFrC,IAGA,CAACpF,MAAM,CAACgF,QAHR,IAIAhF,MAAM,CAACgF,QAAP,GAAkBH,iEALpB,EAME;AACA;AACD;;AACD7E,EAAAA,MAAM,CAAC+E,UAAP,CAAkBK,OAAlB,CAA0BjF,OAA1B,EAAmC2E,GAAnC;AACD;AAEM,MAAMzI,6BAA6B,GACxCiJ,SAD2C,IAEb;AAC9B,QAAMhH,aAAa,GAAG,IAAIC,GAAJ,EAAtB;;AACA,MAAI,CAAC+G,SAAD,IAAc,CAACrD,KAAK,CAACC,OAAN,CAAcoD,SAAd,CAAnB,EAA6C;AAC3C,WAAOhH,aAAP;AACD;;AACDgH,EAAAA,SAAS,CAAC9G,OAAV,CAAmB+G,QAAD,IAAc;AAC9B,UAAMC,MAAM,GAAGD,QAAQ,CAACE,SAAT,CAAmBnH,aAAnB,CAAiCxD,KAAhD;;AACA,SAAK,MAAMP,GAAX,IAAkBiL,MAAlB,EAA0B;AACxB,YAAM1K,KAAK,GAAG0K,MAAM,CAACjL,GAAD,CAApB;AACA+D,MAAAA,aAAa,CAACG,GAAd,CAAkBlE,GAAlB,EAAuB;AACrBA,QAAAA,GADqB;AAErBU,QAAAA,UAAU,EAAEsK,QAAQ,CAACjF,EAFA;AAGrBnF,QAAAA,gBAAgB,EAAEoK,QAAQ,CAACpK,gBAHN;AAIrBD,QAAAA,WAAW,EAAEqK,QAAQ,CAACE,SAAT,CAAmBnF,EAJX;AAKrB3E,QAAAA,WAAW,EAAE4J,QAAQ,CAACE,SAAT,CAAmBC,SALX;AAMrB5K,QAAAA;AANqB,OAAvB;AAQD;AACF,GAbD;AAcA,SAAOwD,aAAP;AACD,CAtBM;AAwBA,SAASqH,MAAT,GAA2B;AAChC,SAAO,uCAAuCC,OAAvC,CACL,OADK,EAEL,UAAUC,IAAV,EAAgB;AACd,UAAMC,IAAI,GAAIC,IAAI,CAACC,MAAL,KAAgB,EAAjB,GAAuB,CAApC;AACA,UAAMlL,KAAK,GAAG+K,IAAI,KAAK,GAAT,GAAeC,IAAf,GAAuBA,IAAI,GAAG,GAAR,GAAe,GAAnD;AACA,WAAOhL,KAAK,CAACmL,QAAN,CAAe,EAAf,CAAP;AACD,GANI,CAAP;AAQD;AAEM,SAAS1J,mBAAT,CACL2J,MADK,EAELC,IAFK,EAGC;AACN,QAAMC,aAAa,GAAGlK,6CAAM,CAAC,IAAD,CAA5B;AAEAF,EAAAA,gDAAS,CAAC,MAAM;AACd,QAAIoK,aAAa,CAACrH,OAAlB,EAA2B;AACzBqH,MAAAA,aAAa,CAACrH,OAAd,GAAwB,KAAxB;AACA;AACD;;AAED,QAAI,OAAOmH,MAAP,KAAkB,UAAtB,EAAkC;AAChC,aAAOA,MAAM,EAAb;AACD;AACF,GATQ,EASNC,IATM,CAAT;AAUD;AAEM,SAASnM,WAAT,CAAsBqM,SAAtB,EAAyC/L,YAAzC,EAAuE;AAC5E,MAAI,OAAO+L,SAAP,KAAqB,OAAO/L,YAAhC,EAA8C;AAC5C,WAAO,KAAP;AACD;;AACD,MAAI,OAAO+L,SAAP,KAAqB,QAArB,IAAiC,OAAO/L,YAAP,KAAwB,QAAzD,IACJ2H,KAAK,CAACC,OAAN,CAAcmE,SAAd,MAA6BpE,KAAK,CAACC,OAAN,CAAc5H,YAAd,CAD7B,EAEE;AACA,WAAO,KAAP;AACD;;AACD,SAAO,IAAP;AACD,EAED;;AACO,SAASH,OAAT,CAAkBmM,MAAlB,EAAkC,GAAGxL,KAArC,EAA2D;AAChE,MAAIyL,SAAS,GAAGD,MAAhB;;AACA,OAAK,IAAIE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG1L,KAAK,CAAC2L,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrC,UAAME,OAAO,GAAG5L,KAAK,CAAC0L,CAAD,CAArB;AACAD,IAAAA,SAAS,GAAGA,SAAS,CAACX,OAAV,CAAkB,IAAIe,MAAJ,CAAY,MAAKH,CAAE,KAAnB,EAAyB,GAAzB,CAAlB,EAAiDE,OAAjD,CAAZ;AACD;;AACD,SAAOH,SAAP;AACD;;;;;;;;;;ACrID;;;;;;;;;;ACAA;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;WCtBA;WACA;WACA;WACA;WACA;WACA,iCAAiC,WAAW;WAC5C;WACA;;;;;WCPA;WACA;WACA;WACA;WACA,yCAAyC,wCAAwC;WACjF;WACA;WACA;;;;;WCPA;;;;;WCAA;WACA;WACA;WACA,uDAAuD,iBAAiB;WACxE;WACA,gDAAgD,aAAa;WAC7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACNA;AACA","sources":["webpack://@flagship.io/react-sdk/./src/Flag.ts","webpack://@flagship.io/react-sdk/./src/FlagshipContext.tsx","webpack://@flagship.io/react-sdk/./src/FlagshipHooks.tsx","webpack://@flagship.io/react-sdk/./src/constants.ts","webpack://@flagship.io/react-sdk/./src/sdkVersion.ts","webpack://@flagship.io/react-sdk/./src/utils.tsx","webpack://@flagship.io/react-sdk/external commonjs \"@flagship.io/js-sdk\"","webpack://@flagship.io/react-sdk/external commonjs \"react\"","webpack://@flagship.io/react-sdk/webpack/bootstrap","webpack://@flagship.io/react-sdk/webpack/runtime/compat get default export","webpack://@flagship.io/react-sdk/webpack/runtime/define property getters","webpack://@flagship.io/react-sdk/webpack/runtime/hasOwnProperty shorthand","webpack://@flagship.io/react-sdk/webpack/runtime/make namespace object","webpack://@flagship.io/react-sdk/./src/index.tsx"],"sourcesContent":["import Flagship, { FlagDTO, FlagMetadata, IFlag, IFlagMetadata } from '@flagship.io/js-sdk'\nimport { GET_FLAG_CAST_ERROR, GET_METADATA_CAST_ERROR, noVisitorMessage } from './constants'\nimport { hasSameType, logInfo, logWarn, sprintf } from './utils'\n\nexport class Flag<T> implements IFlag<T> {\n private defaultValue:T\n private flagsData: Map<string, FlagDTO> | undefined\n private key: string\n private flag?: FlagDTO\n constructor (defaultValue:T, key: string, flagsData: Map<string, FlagDTO> | undefined) {\n if (!flagsData) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'GetFlag')\n }\n this.defaultValue = defaultValue\n this.key = key\n this.flag = flagsData?.get(key)\n }\n\n private NotSameType () {\n return this.defaultValue !== null && this.defaultValue !== undefined && !hasSameType(this.flag?.value, this.defaultValue)\n }\n\n getValue (): T {\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'getValue')\n return this.defaultValue\n }\n\n if (this.NotSameType()) {\n logInfo(\n Flagship.getConfig(),\n sprintf(GET_FLAG_CAST_ERROR, this.key),\n 'getValue'\n )\n return this.defaultValue\n }\n return this.flag.value\n }\n\n exists ():boolean {\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'exists')\n return false\n }\n return !!(this.flag.campaignId && this.flag.variationId && this.flag.variationGroupId)\n }\n\n userExposed (): Promise<void> {\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'userExposed')\n }\n\n return Promise.resolve()\n }\n\n visitorExposed () : Promise<void> {\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, 'visitorExposed')\n }\n\n return Promise.resolve()\n }\n\n get metadata ():IFlagMetadata {\n const functionName = 'metadata'\n if (!this.flag) {\n logWarn(Flagship.getConfig(), noVisitorMessage, functionName)\n return FlagMetadata.Empty()\n }\n if (this.NotSameType()) {\n logInfo(\n Flagship.getConfig(),\n sprintf(GET_METADATA_CAST_ERROR, this.key),\n functionName\n )\n return FlagMetadata.Empty()\n }\n\n return new FlagMetadata({\n campaignId: this.flag.campaignId,\n variationGroupId: this.flag.variationGroupId,\n variationId: this.flag.variationId,\n isReference: !!this.flag.isReference,\n campaignType: this.flag.campaignType as string,\n slug: this.flag.slug\n })\n }\n}\n","// eslint-disable-next-line no-use-before-define\nimport React, {\n useState,\n useEffect,\n ReactNode,\n createContext,\n Dispatch,\n SetStateAction,\n useRef\n} from 'react'\nimport {\n BucketingDTO,\n CampaignDTO,\n DecisionMode,\n FlagDTO,\n Flagship,\n FlagshipStatus,\n IFlagshipConfig,\n primitive,\n Visitor\n} from '@flagship.io/js-sdk'\nimport {\n getModificationsFromCampaigns,\n logError,\n useNonInitialEffect\n} from './utils'\nimport { version as SDK_VERSION } from './sdkVersion'\n\nexport interface FsStatus {\n /**\n * Boolean. When true, the SDK is still not ready to render your App otherwise it'll use default modifications.\n */\n isLoading: boolean;\n /**\n * Boolean. true after it has fully finished initialization tasks, false otherwise.\n */\n isSdkReady: boolean;\n\n lastModified?: Date;\n /**\n * Boolean. When true the flagship visitor instance is truthy, false otherwise.\n */\n isVisitorDefined?: boolean;\n /**\n * String or null. The last update date occurred on the flagship visitor instance.\n */\n lastRefresh?: string;\n /**\n * String or null. When null no initialization succeed yet. When string contains stringified date of last successful initialization.\n */\n firstInitSuccess?: string;\n}\nexport interface FsState {\n visitor?: Visitor;\n config?: IFlagshipConfig;\n modifications?: Map<string, FlagDTO>;\n status: FsStatus;\n initialCampaigns?: CampaignDTO[];\n initialModifications?: Map<string, FlagDTO> | FlagDTO[];\n}\n\nexport type VisitorData = {\n id?: string;\n context?: Record<string, primitive>;\n isAuthenticated?: boolean;\n hasConsented?: boolean;\n};\ninterface FsContext {\n state: FsState;\n setState?: Dispatch<SetStateAction<FsState>>;\n}\n\nexport interface FlagshipProviderProps extends IFlagshipConfig {\n /**\n * This is the data to identify the current visitor using your app\n */\n visitorData: VisitorData | null;\n envId: string;\n apiKey: string;\n /**\n * This component will be rendered when Flagship is loading at first initialization only.\n * By default, the value is undefined. It means it will display your app and it might\n * display default modifications value for a very short moment.\n */\n loadingComponent?: ReactNode;\n children?: ReactNode;\n\n /**\n * Callback function called when the SDK starts initialization.\n */\n onInitStart?(): void;\n /**\n * Callback function called when the SDK ends initialization.\n */\n onInitDone?(): void;\n /**\n * Callback function called when the SDK is updated. For example, after a synchronize is triggered or visitor context has changed.\n */\n onUpdate?(params: {\n fsModifications: Map<string, FlagDTO>;\n config: IFlagshipConfig;\n status: FsStatus;\n }): void;\n /**\n * This is an object of the data received when fetching bucketing endpoint.\n * Providing this prop will make bucketing ready to use and the first polling will immediatly check for an update.\n * If the shape of an element is not correct, an error log will give the reason why.\n */\n initialBucketing?: BucketingDTO;\n initialCampaigns?: CampaignDTO[];\n /**\n * This is a set of flag data provided to avoid the SDK to have an empty cache during the first initialization.\n * @deprecated use initialFlagsData instead\n */\n initialModifications?: Map<string, FlagDTO> | FlagDTO[];\n\n /**\n * This is a set of flag data provided to avoid the SDK to have an empty cache during the first initialization.\n */\n initialFlagsData?: Map<string, FlagDTO> | FlagDTO[];\n /**\n * If true, it'll automatically call synchronizeModifications when the bucketing file has updated\n */\n fetchFlagsOnBucketingUpdated?: boolean;\n}\n\nconst initStat: FsState = {\n status: { isLoading: true, isSdkReady: false }\n}\n\nexport const FlagshipContext = createContext<FsContext>({\n state: { ...initStat }\n})\n\nexport const FlagshipProvider: React.FC<FlagshipProviderProps> = ({\n children,\n envId,\n apiKey,\n decisionMode = DecisionMode.DECISION_API,\n visitorData,\n onInitStart,\n onInitDone,\n loadingComponent,\n statusChangedCallback,\n onBucketingUpdated,\n onUpdate,\n initialCampaigns,\n initialModifications,\n initialFlagsData,\n fetchFlagsOnBucketingUpdated,\n hitDeduplicationTime = 2,\n fetchNow = true,\n language = 1,\n sdkVersion = SDK_VERSION,\n ...props\n}: FlagshipProviderProps) => {\n let modifications = new Map<string, FlagDTO>()\n if (initialFlagsData && initialFlagsData.forEach) {\n initialFlagsData.forEach((flag) => {\n modifications.set(flag.key, flag)\n })\n } else if (initialModifications && initialModifications.forEach) {\n initialModifications.forEach((modification) => {\n modifications.set(modification.key, modification)\n })\n } else if (initialCampaigns) {\n modifications = getModificationsFromCampaigns(initialCampaigns)\n }\n\n const [state, setState] = useState<FsState>({ ...initStat, modifications })\n const [lastModified, setLastModified] = useState<Date>()\n const stateRef = useRef<FsState>()\n stateRef.current = state\n\n useNonInitialEffect(() => {\n if (fetchFlagsOnBucketingUpdated) {\n state.visitor?.fetchFlags()\n }\n }, [lastModified])\n\n useNonInitialEffect(() => {\n updateVisitor()\n }, [JSON.stringify(visitorData)])\n\n useEffect(() => {\n initSdk()\n }, [envId, apiKey, decisionMode])\n\n function initializeState (param: {\n fsVisitor: Visitor;\n isLoading: boolean;\n isSdkReady: boolean;\n }) {\n const newStatus: FsStatus = {\n isSdkReady: param.isSdkReady,\n isLoading: param.isLoading,\n isVisitorDefined: !!param.fsVisitor,\n lastRefresh: new Date().toISOString()\n }\n\n setState((currentState) => {\n if (!currentState.status.firstInitSuccess) {\n newStatus.firstInitSuccess = new Date().toISOString()\n }\n\n return {\n ...currentState,\n visitor: param.fsVisitor,\n modifications: param.fsVisitor.modifications,\n config: Flagship.getConfig(),\n status: {\n ...currentState.status,\n ...newStatus\n }\n }\n })\n\n return newStatus\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const onVisitorReady = (fsVisitor: Visitor, error: any) => {\n if (error) {\n logError(Flagship.getConfig(), error.message || error, 'onReady')\n return\n }\n\n const newStatus = initializeState({\n fsVisitor,\n isSdkReady: true,\n isLoading: false\n })\n\n if (onUpdate) {\n onUpdate({\n fsModifications: fsVisitor.modifications,\n config: Flagship.getConfig(),\n status: newStatus\n })\n }\n }\n\n function updateVisitor () {\n if (!visitorData) {\n return\n }\n\n if (!state.visitor || (state.visitor.visitorId !== visitorData.id && (!visitorData.isAuthenticated || (visitorData.isAuthenticated && state.visitor.anonymousId)))) {\n createVisitor()\n return\n }\n\n if (visitorData.hasConsented !== state.visitor.hasConsented) {\n state.visitor.setConsent(visitorData.hasConsented ?? true)\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n state.visitor.updateContext(visitorData.context as any)\n\n if (!state.visitor.anonymousId && visitorData.isAuthenticated) {\n state.visitor.authenticate(visitorData.id as string)\n }\n if (state.visitor.anonymousId && !visitorData.isAuthenticated) {\n state.visitor.unauthenticate()\n }\n state.visitor.fetchFlags()\n }\n\n const createVisitor = () => {\n if (!visitorData) {\n return\n }\n const fsVisitor = Flagship.newVisitor({\n visitorId: visitorData.id,\n context: visitorData.context,\n isAuthenticated: visitorData.isAuthenticated,\n hasConsented: visitorData.hasConsented,\n initialCampaigns,\n initialModifications,\n initialFlagsData\n })\n\n fsVisitor?.on('ready', (error) => {\n onVisitorReady(fsVisitor, error)\n })\n\n if (!fetchNow) {\n initializeState({\n fsVisitor,\n isSdkReady: true,\n isLoading: false\n })\n }\n }\n const statusChanged = (status: FlagshipStatus) => {\n if (statusChangedCallback) {\n statusChangedCallback(status)\n }\n\n switch (status) {\n case FlagshipStatus.STARTING:\n if (status === FlagshipStatus.STARTING && onInitStart) {\n onInitStart()\n }\n break\n case FlagshipStatus.READY_PANIC_ON:\n case FlagshipStatus.READY:\n if (onInitDone) {\n onInitDone()\n }\n\n createVisitor()\n\n break\n case FlagshipStatus.NOT_INITIALIZED:\n setState((prev) => ({\n ...prev,\n status: {\n ...prev.status,\n isLoading: false\n },\n config: Flagship.getConfig()\n }))\n break\n }\n }\n\n const onBucketingLastModified = (lastUpdate: Date) => {\n if (onBucketingUpdated) {\n onBucketingUpdated(lastUpdate)\n }\n setLastModified(lastUpdate)\n }\n\n const initSdk = () => {\n Flagship.start(envId, apiKey, {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n decisionMode: decisionMode as any,\n fetchNow,\n statusChangedCallback: statusChanged,\n onBucketingUpdated: onBucketingLastModified,\n hitDeduplicationTime,\n language,\n sdkVersion,\n ...props\n })\n }\n const handleDisplay = (): React.ReactNode => {\n const isFirstInit = !state.visitor\n if (state.status.isLoading && loadingComponent && isFirstInit && fetchNow) {\n return <>{loadingComponent}</>\n }\n return <>{children}</>\n }\n return (\n <FlagshipContext.Provider value={{ state, setState }}>\n {handleDisplay()}\n </FlagshipContext.Provider>\n )\n}\n\nFlagshipProvider.defaultProps = {\n hitDeduplicationTime: 2,\n fetchNow: true,\n language: 1,\n sdkVersion: SDK_VERSION\n}\n","import { useContext } from 'react'\nimport Flagship, {\n FlagDTO,\n HitAbstract,\n HitShape,\n IFlag,\n IFlagshipConfig,\n IHit,\n Modification,\n modificationsRequested,\n primitive,\n Visitor\n} from '@flagship.io/js-sdk'\nimport { FlagshipContext, FsState, FsStatus } from './FlagshipContext'\nimport { logError, logWarn } from './utils'\nimport { Flag } from './Flag'\nimport { noVisitorDefault, noVisitorMessage } from './constants'\n\nconst checkType = (value: unknown, defaultValue: unknown) =>\n (typeof value === 'object' &&\n typeof defaultValue === 'object' &&\n Array.isArray(value) === Array.isArray(defaultValue)) ||\n typeof value === typeof defaultValue\n\nconst fsModificationsSync = <T extends unknown>(args: {\n functionName: string;\n params: modificationsRequested<T>[];\n activateAll?: boolean;\n state: FsState;\n visitor?: Visitor;\n config?: IFlagshipConfig;\n}): Record<string, T> => {\n const { visitor, params, activateAll, state, functionName, config } = args\n if (visitor) {\n return visitor.getModificationsSync(params, activateAll)\n }\n\n const check =\n !state.status.isSdkReady &&\n !!state.modifications &&\n state.modifications.size > 0\n const flags: Record<string, T> = {}\n\n if (check) {\n params.forEach((item) => {\n const modification = state.modifications?.get(item.key)\n\n if (modification && checkType(modification?.value, item.defaultValue)) {\n flags[item.key] = modification.value\n } else {\n flags[item.key] = item.defaultValue\n }\n })\n return flags\n }\n\n logWarn(config, noVisitorDefault, functionName)\n params.forEach((item) => {\n flags[item.key] = item.defaultValue\n })\n return flags\n}\n\n/**\n * Retrieve a modification value by its key. If no modification match the given key or if the stored value type and default value type do not match, default value will be returned.\n * @deprecated use useFsFlag instead\n */\nexport const useFsModifications = <T extends unknown>(\n params: modificationsRequested<T>[],\n activateAll?: boolean\n): Record<string, T> => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n const functionName = 'useFsModifications'\n\n return fsModificationsSync({\n functionName,\n state,\n visitor,\n config,\n params,\n activateAll\n })\n}\n\n/**\n * Retrieve a modification value by its key. If no modification match the given key or if the stored value type and default value type do not match, default value will be returned.\n * @deprecated use useFsFlag instead\n */\nexport const useFsModification: {\n <T>(params: modificationsRequested<T>): T;\n} = (params) => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n const functionName = 'useFsModifications'\n\n if (visitor) {\n return visitor.getModificationSync(params)\n }\n\n const modification = state.modifications?.get(params.key)\n\n if (\n !state.status.isSdkReady &&\n modification &&\n checkType(modification?.value, params.defaultValue)\n ) {\n return modification.value\n }\n\n logWarn(config, noVisitorDefault, functionName)\n return params.defaultValue\n}\n\nconst fsModificationInfoSync = (args: {\n key: string;\n state: FsState;\n visitor?: Visitor;\n}) => {\n const { key, visitor, state } = args\n if (visitor) {\n return visitor.getModificationInfoSync(key)\n }\n const modification = state.modifications?.get(key)\n if (!state.status.isSdkReady && modification) {\n return modification\n }\n return null\n}\n\n/**\n * Get the campaign modification information value matching the given key.\n * @param {string} key key which identify the modification.\n * @deprecated use useFsFlag instead\n */\nexport const useFsModificationInfo: { (key: string): Modification | null } = (\n key: string\n) => {\n const { state } = useContext(FlagshipContext)\n const { visitor } = state\n return fsModificationInfoSync({ key, state, visitor })\n}\n\nconst fsActivate = async (\n params: { key: string }[] | string[],\n functionName: string,\n visitor?: Visitor,\n config?: IFlagshipConfig\n) => {\n try {\n if (!visitor) {\n logWarn(config, noVisitorMessage, functionName)\n return\n }\n await visitor.activateModifications(params)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n logWarn(config, error.message || error, functionName)\n }\n}\n\n/**\n * This hook returns a flag object by its key. If no flag match the given key an empty flag will be returned.\n * @param key\n * @param defaultValue\n * @returns\n */\nexport const useFsFlag = <T extends unknown>(\n key: string,\n defaultValue: T\n): IFlag<T> => {\n const { state } = useContext(FlagshipContext)\n const { visitor } = state\n\n if (!visitor) {\n return new Flag(defaultValue, key, state.modifications)\n }\n\n return visitor.getFlag(key, defaultValue)\n}\n\n/**\n * Report this user has seen this modification. Report this user has seen these modifications.\n * @param params\n * @deprecated use useFsFlag instead\n * @returns\n */\nexport const useFsActivate: {\n (keys: { key: string }[]): Promise<void>;\n (keys: string[]): Promise<void>;\n} = async (params) => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n const functionName = 'useFsModifications'\n\n await fsActivate(params, functionName, visitor, config)\n}\n\nexport type UseFlagshipParams<T> = {\n modifications: {\n requested: modificationsRequested<T>[];\n activateAll?: boolean;\n };\n};\n\nexport type UseFlagshipOutput = {\n visitorId?: string;\n anonymousId?: string | null;\n context?: Record<string, primitive>;\n hasConsented?: boolean;\n /**\n * Set if visitor has consented for protected data usage.\n * @param hasConsented True if the visitor has consented false otherwise.\n */\n setConsent: (hasConsented: boolean) => void;\n modifications: Modification[];\n flagsData: FlagDTO[];\n status: FsStatus;\n /**\n *\n * @param params\n * @param activateAll\n * @deprecated use getFlag instead\n */\n getModifications<T>(\n params: modificationsRequested<T>[],\n activateAll?: boolean\n ): Record<string, T>;\n\n /**\n *\n * @param key\n * @deprecated use getFlag instead\n */\n getModificationInfo(key: string): Modification | null;\n\n /**\n * @deprecated use fetchFlags instead\n */\n synchronizeModifications(): Promise<void>;\n /**\n * @deprecated use getFlag instead\n */\n activateModification: {\n (keys: { key: string }[]): Promise<void>;\n (keys: string[]): Promise<void>;\n };\n /**\n * Update the visitor context values, matching the given keys, used for targeting.\n * A new context value associated with this key will be created if there is no previous matching value.\n * Context keys must be String, and values types must be one of the following : Number, Boolean, String.\n * @param context collection of keys, values.\n */\n updateContext(context: Record<string, primitive>): void;\n /**\n * clear the actual visitor context\n */\n clearContext(): void;\n /**\n * Authenticate anonymous visitor\n * @param visitorId\n */\n authenticate(visitorId: string): void;\n /**\n * This function change authenticated Visitor to anonymous visitor\n * @param visitorId\n */\n unauthenticate(): void;\n hit: {\n send: {\n (hit: HitAbstract): Promise<void>;\n (hit: IHit): Promise<void>;\n (hit: HitShape): Promise<void>;\n (hit: HitAbstract | IHit | HitShape): Promise<void>;\n };\n sendMultiple: {\n (hit: HitAbstract[]): Promise<void>;\n (hit: IHit[]): Promise<void>;\n (hit: HitShape[]): Promise<void>;\n (hit: HitAbstract[] | IHit[] | HitShape[]): Promise<void>;\n };\n };\n /**\n * Retrieve a Flag object by its key. If no flag match the given key an empty flag will be returned.\n * @param key flag key\n * @param defaultValue\n */\n getFlag<T>(key: string, defaultValue: T): IFlag<T>;\n /**\n * In DecisionApi Mode this function calls the Flagship Decision API to run campaign assignments according to the current user context and retrieve applicable flags.\n *\n * In bucketing Mode, it checks bucketing file, validates campaigns targeting the visitor, assigns a variation and retrieve applicable flags.\n */\n fetchFlags: () => Promise<void>;\n\n /**\n * When called, it will batch and send all hits that are in the pool before the application is closed\n */\n close():Promise<void>\n};\n\nexport const useFlagship = (): UseFlagshipOutput => {\n const { state } = useContext(FlagshipContext)\n const { visitor, config } = state\n\n const fsUpdateContext = (context: Record<string, primitive>): void => {\n const functionName = 'updateContext'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.clearContext()\n visitor.updateContext(context)\n }\n\n const fsClearContext = (): void => {\n const functionName = 'cleanContext'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.clearContext()\n }\n\n const fsAuthenticate = (visitorId: string): void => {\n const functionName = 'authenticate'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.authenticate(visitorId)\n }\n\n const fsUnauthenticate = (): void => {\n const functionName = 'unauthenticate'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return\n }\n visitor.unauthenticate()\n }\n\n /**\n * Send a Hit to Flagship servers for reporting.\n */\n const fsSendHit: {\n (hit: HitAbstract | IHit | HitShape): Promise<void>;\n } = (hit) => {\n const functionName = 'sendHit'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return Promise.resolve()\n }\n return visitor.sendHit(hit)\n }\n\n /**\n * Send a Hit to Flagship servers for reporting.\n */\n const fsSendHits: {\n (hit: HitAbstract[] | IHit[] | HitShape[]): Promise<void>;\n } = (hit) => {\n const functionName = 'sendHits'\n if (!visitor) {\n logError(config, noVisitorMessage, functionName)\n return Promise.resolve()\n }\n return visitor.sendHits(hit)\n }\n\n let modifications = visitor?.getModificationsArray()\n if (!state.status.isSdkReady && state.modifications) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n modifications = Array.from(state.modifications, ([_key, item]) => item)\n }\n\n const activateModification: {\n (keys: { key: string }[]): Promise<void>;\n (keys: string[]): Promise<void>;\n } = async (params) => {\n const functionName = 'activateModification'\n await fsActivate(params, functionName, visitor, config)\n }\n const synchronizeModifications = async () => {\n if (!visitor) {\n logWarn(config, noVisitorMessage, 'synchronizeModifications')\n return\n }\n await visitor.synchronizeModifications()\n }\n\n const getModifications = <T extends unknown>(\n params: modificationsRequested<T>[],\n activateAll?: boolean\n ) => {\n const functionName = 'getModifications'\n return fsModificationsSync({\n functionName,\n state,\n visitor,\n config,\n params,\n activateAll\n })\n }\n\n const getModificationInfo: { (key: string): Modification | null } = (\n key: string\n ) => {\n return fsModificationInfoSync({ key, state, visitor })\n }\n\n function getFlag<T> (key: string, defaultValue: T): IFlag<T> {\n if (!visitor) {\n return new Flag(defaultValue, key, state.modifications)\n }\n return visitor.getFlag(key, defaultValue)\n }\n\n function fetchFlags (): Promise<void> {\n if (!visitor) {\n logWarn(config, noVisitorMessage, 'fetchFlags')\n return Promise.resolve()\n }\n return visitor.fetchFlags()\n }\n\n function setConsent (hasConsented: boolean): void {\n if (!visitor) {\n logWarn(config, noVisitorMessage, 'setConsent')\n return\n }\n visitor.setConsent(hasConsented)\n }\n\n async function close ():Promise<void> {\n await Flagship.close()\n }\n\n return {\n visitorId: visitor?.visitorId,\n anonymousId: visitor?.anonymousId,\n context: { ...visitor?.context },\n hasConsented: visitor?.hasConsented,\n setConsent,\n updateContext: fsUpdateContext,\n clearContext: fsClearContext,\n authenticate: fsAuthenticate,\n unauthenticate: fsUnauthenticate,\n status: state.status,\n activateModification,\n synchronizeModifications,\n getModifications,\n modifications: modifications || [],\n flagsData: visitor?.getFlagsDataArray() || [],\n getModificationInfo,\n hit: {\n send: fsSendHit,\n sendMultiple: fsSendHits\n },\n getFlag,\n fetchFlags,\n close\n }\n}\n","export const noVisitorMessage = 'flagship Visitor not initialized.'\nexport const noVisitorDefault = 'fsVisitor not initialized, returns default value'\n\n export const GET_FLAG_CAST_ERROR ='Flag for key {0} has a different type. Default value is returned.'\n export const GET_METADATA_CAST_ERROR = 'Flag for key {0} has a different type with defaultValue, an empty metadata object is returned'\n","// Generated by genversion.\nexport const version = '3.2.1-alpha.1'\n","import {\n CampaignDTO,\n IFlagshipConfig,\n LogLevel,\n Modification\n} from '@flagship.io/js-sdk'\nimport { EffectCallback, DependencyList, useEffect, useRef } from 'react'\n\nexport function logError (\n config: IFlagshipConfig | undefined,\n message: string,\n tag: string\n): void {\n if (\n !config ||\n !config.logManager ||\n typeof config.logManager.error !== 'function' ||\n !config.logLevel ||\n config.logLevel < LogLevel.ERROR\n ) {\n return\n }\n\n config.logManager.error(message, tag)\n}\n\nexport function logInfo (\n config: IFlagshipConfig | undefined,\n message: string,\n tag: string\n): void {\n if (\n !config ||\n !config.logManager ||\n typeof config.logManager.info !== 'function' ||\n !config.logLevel ||\n config.logLevel < LogLevel.INFO\n ) {\n return\n }\n config.logManager.info(message, tag)\n}\n\nexport function logWarn (\n config: IFlagshipConfig | undefined,\n message: string,\n tag: string\n): void {\n if (\n !config ||\n !config.logManager ||\n typeof config.logManager.warning !== 'function' ||\n !config.logLevel ||\n config.logLevel < LogLevel.WARNING\n ) {\n return\n }\n config.logManager.warning(message, tag)\n}\n\nexport const getModificationsFromCampaigns = (\n campaigns: Array<CampaignDTO>\n): Map<string, Modification> => {\n const modifications = new Map<string, Modification>()\n if (!campaigns || !Array.isArray(campaigns)) {\n return modifications\n }\n campaigns.forEach((campaign) => {\n const object = campaign.variation.modifications.value\n for (const key in object) {\n const value = object[key]\n modifications.set(key, {\n key,\n campaignId: campaign.id,\n variationGroupId: campaign.variationGroupId,\n variationId: campaign.variation.id,\n isReference: campaign.variation.reference,\n value\n })\n }\n })\n return modifications\n}\n\nexport function uuidV4 (): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(\n /[xy]/g,\n function (char) {\n const rand = (Math.random() * 16) | 0\n const value = char === 'x' ? rand : (rand & 0x3) | 0x8\n return value.toString(16)\n }\n )\n}\n\nexport function useNonInitialEffect (\n effect: EffectCallback,\n deps?: DependencyList\n): void {\n const initialRender = useRef(true)\n\n useEffect(() => {\n if (initialRender.current) {\n initialRender.current = false\n return\n }\n\n if (typeof effect === 'function') {\n return effect()\n }\n }, deps)\n}\n\nexport function hasSameType (flagValue:unknown, defaultValue:unknown):boolean {\n if (typeof flagValue !== typeof defaultValue) {\n return false\n }\n if (typeof flagValue === 'object' && typeof defaultValue === 'object' &&\n Array.isArray(flagValue) !== Array.isArray(defaultValue)\n ) {\n return false\n }\n return true\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function sprintf (format: string, ...value: any[]): string {\n let formatted = format\n for (let i = 0; i < value.length; i++) {\n const element = value[i]\n formatted = formatted.replace(new RegExp(`\\\\{${i}\\\\}`, 'g'), element)\n }\n return formatted\n}\n","module.exports = require(\"@flagship.io/js-sdk\");","module.exports = require(\"react\");","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export * from './FlagshipContext'\nexport * from '@flagship.io/js-sdk'\nexport * from './FlagshipHooks'\n"],"names":["Flagship","FlagMetadata","GET_FLAG_CAST_ERROR","GET_METADATA_CAST_ERROR","noVisitorMessage","hasSameType","logInfo","logWarn","sprintf","Flag","constructor","defaultValue","key","flagsData","getConfig","flag","get","NotSameType","undefined","value","getValue","exists","campaignId","variationId","variationGroupId","userExposed","Promise","resolve","visitorExposed","metadata","functionName","Empty","isReference","campaignType","slug","React","useState","useEffect","createContext","useRef","DecisionMode","FlagshipStatus","getModificationsFromCampaigns","logError","useNonInitialEffect","version","SDK_VERSION","initStat","status","isLoading","isSdkReady","FlagshipContext","state","FlagshipProvider","children","envId","apiKey","decisionMode","DECISION_API","visitorData","onInitStart","onInitDone","loadingComponent","statusChangedCallback","onBucketingUpdated","onUpdate","initialCampaigns","initialModifications","initialFlagsData","fetchFlagsOnBucketingUpdated","hitDeduplicationTime","fetchNow","language","sdkVersion","props","modifications","Map","forEach","set","modification","setState","lastModified","setLastModified","stateRef","current","visitor","fetchFlags","updateVisitor","JSON","stringify","initSdk","initializeState","param","newStatus","isVisitorDefined","fsVisitor","lastRefresh","Date","toISOString","currentState","firstInitSuccess","config","onVisitorReady","error","message","fsModifications","visitorId","id","isAuthenticated","anonymousId","createVisitor","hasConsented","setConsent","updateContext","context","authenticate","unauthenticate","newVisitor","on","statusChanged","STARTING","READY_PANIC_ON","READY","NOT_INITIALIZED","prev","onBucketingLastModified","lastUpdate","start","handleDisplay","isFirstInit","defaultProps","useContext","noVisitorDefault","checkType","Array","isArray","fsModificationsSync","args","params","activateAll","getModificationsSync","check","size","flags","item","useFsModifications","useFsModification","getModificationSync","fsModificationInfoSync","getModificationInfoSync","useFsModificationInfo","fsActivate","activateModifications","useFsFlag","getFlag","useFsActivate","useFlagship","fsUpdateContext","clearContext","fsClearContext","fsAuthenticate","fsUnauthenticate","fsSendHit","hit","sendHit","fsSendHits","sendHits","getModificationsArray","from","_key","activateModification","synchronizeModifications","getModifications","getModificationInfo","close","getFlagsDataArray","send","sendMultiple","LogLevel","tag","logManager","logLevel","ERROR","info","INFO","warning","WARNING","campaigns","campaign","object","variation","reference","uuidV4","replace","char","rand","Math","random","toString","effect","deps","initialRender","flagValue","format","formatted","i","length","element","RegExp"],"sourceRoot":""}
|
|
@@ -87,15 +87,16 @@ export const FlagshipProvider = (_a) => {
|
|
|
87
87
|
}
|
|
88
88
|
};
|
|
89
89
|
function updateVisitor() {
|
|
90
|
+
var _a;
|
|
90
91
|
if (!visitorData) {
|
|
91
92
|
return;
|
|
92
93
|
}
|
|
93
|
-
if (!state.visitor) {
|
|
94
|
+
if (!state.visitor || (state.visitor.visitorId !== visitorData.id && (!visitorData.isAuthenticated || (visitorData.isAuthenticated && state.visitor.anonymousId)))) {
|
|
94
95
|
createVisitor();
|
|
95
96
|
return;
|
|
96
97
|
}
|
|
97
98
|
if (visitorData.hasConsented !== state.visitor.hasConsented) {
|
|
98
|
-
state.visitor.setConsent(visitorData.hasConsented);
|
|
99
|
+
state.visitor.setConsent((_a = visitorData.hasConsented) !== null && _a !== void 0 ? _a : true);
|
|
99
100
|
}
|
|
100
101
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
101
102
|
state.visitor.updateContext(visitorData.context);
|
package/dist/src/sdkVersion.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "3.2.
|
|
1
|
+
export declare const version = "3.2.1-alpha.1";
|
package/dist/src/sdkVersion.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Generated by genversion.
|
|
2
|
-
export const version = '3.2.
|
|
2
|
+
export const version = '3.2.1-alpha.1';
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flagship.io/react-sdk",
|
|
3
|
-
"
|
|
3
|
+
"sideEffects": false,
|
|
4
|
+
"version": "3.2.1-alpha.1",
|
|
4
5
|
"license": "Apache-2.0",
|
|
5
6
|
"description": "Flagship REACT SDK",
|
|
6
7
|
"main": "dist/index.node.js",
|
|
@@ -19,8 +20,7 @@
|
|
|
19
20
|
"react-native": "./dist/src/index.js"
|
|
20
21
|
},
|
|
21
22
|
"dependencies": {
|
|
22
|
-
"@flagship.io/js-sdk": "^3.2.
|
|
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
|
+
}
|