@flagship.io/react-sdk 5.1.1 → 5.2.0-beta.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/edge/setupTests.js +1 -0
- package/dist/edge/src/FSFlag.js +59 -0
- package/dist/edge/src/FlagshipContext.js +8 -0
- package/dist/edge/src/FlagshipHooks.js +152 -0
- package/dist/edge/src/FlagshipProvider.js +159 -0
- package/dist/edge/src/FlagshipProviderSSR.js +50 -0
- package/dist/edge/src/constants.js +4 -0
- package/dist/edge/src/deps.js +1 -0
- package/dist/edge/src/index.js +7 -0
- package/dist/edge/src/internalType.js +4 -0
- package/dist/edge/src/sdkVersion.js +2 -0
- package/dist/edge/src/type.js +1 -0
- package/dist/edge/src/utils.js +154 -0
- package/dist/{index.node.js → index.node.cjs} +184 -60
- package/dist/index.node.cjs.map +1 -0
- package/dist/src/FSFlag.d.ts +2 -2
- package/dist/src/FSFlag.js +3 -3
- package/dist/src/FlagshipContext.d.ts +1 -1
- package/dist/src/FlagshipHooks.d.ts +2 -2
- package/dist/src/FlagshipHooks.js +5 -5
- package/dist/src/FlagshipProvider.d.ts +2 -2
- package/dist/src/FlagshipProvider.js +24 -21
- package/dist/src/FlagshipProviderSSR.d.ts +10 -0
- package/dist/src/FlagshipProviderSSR.js +50 -0
- package/dist/src/deps.d.ts +1 -0
- package/dist/src/deps.js +1 -0
- package/dist/src/index.d.ts +6 -5
- package/dist/src/index.js +6 -5
- package/dist/src/internalType.d.ts +9 -0
- package/dist/src/sdkVersion.d.ts +1 -1
- package/dist/src/sdkVersion.js +1 -1
- package/dist/src/type.d.ts +2 -2
- package/dist/src/utils.d.ts +2 -2
- package/dist/src/utils.js +1 -1
- package/package.json +25 -11
- package/dist/index.node.js.map +0 -1
|
@@ -14,10 +14,10 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
14
14
|
/* harmony export */ });
|
|
15
15
|
/* harmony import */ var core_js_modules_es_regexp_flags_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/es.regexp.flags.js */ "./node_modules/core-js/modules/es.regexp.flags.js");
|
|
16
16
|
/* harmony import */ var core_js_modules_es_regexp_flags_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_flags_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
17
|
-
/* harmony import */ var
|
|
18
|
-
/* harmony import */ var
|
|
17
|
+
/* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./deps */ "@flagship.io/js-sdk");
|
|
18
|
+
/* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_deps__WEBPACK_IMPORTED_MODULE_2__);
|
|
19
19
|
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./constants */ "./src/constants.ts");
|
|
20
|
-
/* harmony import */ var
|
|
20
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");
|
|
21
21
|
|
|
22
22
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
23
23
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
|
|
@@ -31,7 +31,7 @@ class FSFlag {
|
|
|
31
31
|
_defineProperty(this, "flag", void 0);
|
|
32
32
|
const flagsData = state.flags;
|
|
33
33
|
if (!state.hasVisitorData) {
|
|
34
|
-
(0,
|
|
34
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_1__.logWarn)(_deps__WEBPACK_IMPORTED_MODULE_2__.Flagship.getConfig(), _constants__WEBPACK_IMPORTED_MODULE_3__.noVisitorMessage, 'GetFlag');
|
|
35
35
|
}
|
|
36
36
|
this.key = key;
|
|
37
37
|
this.flag = flagsData === null || flagsData === void 0 ? void 0 : flagsData.get(key);
|
|
@@ -43,8 +43,8 @@ class FSFlag {
|
|
|
43
43
|
if (this.flag.value === null || this.flag.value === undefined) {
|
|
44
44
|
return defaultValue;
|
|
45
45
|
}
|
|
46
|
-
if (defaultValue !== null && defaultValue !== undefined && !(0,
|
|
47
|
-
(0,
|
|
46
|
+
if (defaultValue !== null && defaultValue !== undefined && !(0,_utils__WEBPACK_IMPORTED_MODULE_1__.hasSameType)(this.flag.value, defaultValue)) {
|
|
47
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_1__.logInfo)(_deps__WEBPACK_IMPORTED_MODULE_2__.Flagship.getConfig(), (0,_utils__WEBPACK_IMPORTED_MODULE_1__.sprintf)(_constants__WEBPACK_IMPORTED_MODULE_3__.GET_FLAG_CAST_ERROR, this.key), 'getValue');
|
|
48
48
|
return defaultValue;
|
|
49
49
|
}
|
|
50
50
|
return this.flag.value;
|
|
@@ -60,9 +60,9 @@ class FSFlag {
|
|
|
60
60
|
}
|
|
61
61
|
get metadata() {
|
|
62
62
|
if (!this.flag) {
|
|
63
|
-
return
|
|
63
|
+
return _deps__WEBPACK_IMPORTED_MODULE_2__.FSFlagMetadata.Empty();
|
|
64
64
|
}
|
|
65
|
-
return new
|
|
65
|
+
return new _deps__WEBPACK_IMPORTED_MODULE_2__.FSFlagMetadata({
|
|
66
66
|
campaignId: this.flag.campaignId,
|
|
67
67
|
campaignName: this.flag.campaignName,
|
|
68
68
|
variationGroupId: this.flag.variationGroupId,
|
|
@@ -76,9 +76,9 @@ class FSFlag {
|
|
|
76
76
|
}
|
|
77
77
|
get status() {
|
|
78
78
|
if (!this.exists()) {
|
|
79
|
-
return
|
|
79
|
+
return _deps__WEBPACK_IMPORTED_MODULE_2__.FSFlagStatus.NOT_FOUND;
|
|
80
80
|
}
|
|
81
|
-
return
|
|
81
|
+
return _deps__WEBPACK_IMPORTED_MODULE_2__.FSFlagStatus.FETCHED;
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
|
|
@@ -126,12 +126,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
126
126
|
/* harmony import */ var core_js_modules_es_regexp_flags_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es_regexp_flags_js__WEBPACK_IMPORTED_MODULE_0__);
|
|
127
127
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
|
|
128
128
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
|
|
129
|
-
/* harmony import */ var
|
|
130
|
-
/* harmony import */ var
|
|
131
|
-
/* harmony import */ var
|
|
132
|
-
/* harmony import */ var
|
|
133
|
-
/* harmony import */ var
|
|
134
|
-
/* harmony import */ var
|
|
129
|
+
/* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./deps */ "@flagship.io/js-sdk");
|
|
130
|
+
/* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_deps__WEBPACK_IMPORTED_MODULE_6__);
|
|
131
|
+
/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./constants */ "./src/constants.ts");
|
|
132
|
+
/* harmony import */ var _FlagshipContext__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
|
|
133
|
+
/* harmony import */ var _FSFlag__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FSFlag */ "./src/FSFlag.ts");
|
|
134
|
+
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");
|
|
135
135
|
'use client';
|
|
136
136
|
|
|
137
137
|
|
|
@@ -151,12 +151,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
151
151
|
const useFsFlag = key => {
|
|
152
152
|
const {
|
|
153
153
|
state
|
|
154
|
-
} = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(
|
|
154
|
+
} = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_2__.FlagshipContext);
|
|
155
155
|
const {
|
|
156
156
|
visitor
|
|
157
157
|
} = state;
|
|
158
158
|
if (!visitor) {
|
|
159
|
-
return new
|
|
159
|
+
return new _FSFlag__WEBPACK_IMPORTED_MODULE_3__.FSFlag(key, state);
|
|
160
160
|
}
|
|
161
161
|
return visitor.getFlag(key);
|
|
162
162
|
};
|
|
@@ -168,20 +168,20 @@ const handleContextChange = param => {
|
|
|
168
168
|
config
|
|
169
169
|
} = param;
|
|
170
170
|
if (!visitor) {
|
|
171
|
-
(0,
|
|
171
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_4__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_5__.noVisitorMessage, functionName);
|
|
172
172
|
return;
|
|
173
173
|
}
|
|
174
|
-
const originalContextClone = (0,
|
|
174
|
+
const originalContextClone = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.deepClone)(visitor.context);
|
|
175
175
|
updateFunction();
|
|
176
176
|
const updatedContext = visitor.context;
|
|
177
|
-
if ((0,
|
|
177
|
+
if ((0,_utils__WEBPACK_IMPORTED_MODULE_4__.hasContextChanged)(originalContextClone, updatedContext)) {
|
|
178
178
|
visitor.fetchFlags();
|
|
179
179
|
}
|
|
180
180
|
};
|
|
181
181
|
const useFlagship = () => {
|
|
182
182
|
const {
|
|
183
183
|
state
|
|
184
|
-
} = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(
|
|
184
|
+
} = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_FlagshipContext__WEBPACK_IMPORTED_MODULE_2__.FlagshipContext);
|
|
185
185
|
const {
|
|
186
186
|
visitor,
|
|
187
187
|
config
|
|
@@ -205,7 +205,7 @@ const useFlagship = () => {
|
|
|
205
205
|
const fsAuthenticate = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(visitorId => {
|
|
206
206
|
const functionName = 'authenticate';
|
|
207
207
|
if (!visitor) {
|
|
208
|
-
(0,
|
|
208
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_4__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_5__.noVisitorMessage, functionName);
|
|
209
209
|
return;
|
|
210
210
|
}
|
|
211
211
|
const originalVisitorId = visitor.visitorId;
|
|
@@ -217,7 +217,7 @@ const useFlagship = () => {
|
|
|
217
217
|
const fsUnauthenticate = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => {
|
|
218
218
|
const functionName = 'unauthenticate';
|
|
219
219
|
if (!visitor) {
|
|
220
|
-
(0,
|
|
220
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_4__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_5__.noVisitorMessage, functionName);
|
|
221
221
|
return;
|
|
222
222
|
}
|
|
223
223
|
const originalVisitorId = visitor.visitorId;
|
|
@@ -229,7 +229,7 @@ const useFlagship = () => {
|
|
|
229
229
|
const fsSendHit = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(hit => {
|
|
230
230
|
const functionName = 'sendHit';
|
|
231
231
|
if (!visitor) {
|
|
232
|
-
(0,
|
|
232
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_4__.logError)(config, _constants__WEBPACK_IMPORTED_MODULE_5__.noVisitorMessage, functionName);
|
|
233
233
|
return Promise.resolve();
|
|
234
234
|
}
|
|
235
235
|
if (Array.isArray(hit)) {
|
|
@@ -239,35 +239,35 @@ const useFlagship = () => {
|
|
|
239
239
|
}, [visitor]);
|
|
240
240
|
const getFlag = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(key => {
|
|
241
241
|
if (!visitor) {
|
|
242
|
-
return new
|
|
242
|
+
return new _FSFlag__WEBPACK_IMPORTED_MODULE_3__.FSFlag(key, state);
|
|
243
243
|
}
|
|
244
244
|
return visitor.getFlag(key);
|
|
245
245
|
}, [visitor]);
|
|
246
246
|
const fetchFlags = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(async () => {
|
|
247
247
|
if (!visitor) {
|
|
248
|
-
(0,
|
|
248
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_4__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_5__.noVisitorMessage, 'fetchFlags');
|
|
249
249
|
return Promise.resolve();
|
|
250
250
|
}
|
|
251
251
|
return visitor.fetchFlags();
|
|
252
252
|
}, [visitor]);
|
|
253
253
|
const setConsent = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(hasConsented => {
|
|
254
254
|
if (!visitor) {
|
|
255
|
-
(0,
|
|
255
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_4__.logWarn)(config, _constants__WEBPACK_IMPORTED_MODULE_5__.noVisitorMessage, 'setConsent');
|
|
256
256
|
return;
|
|
257
257
|
}
|
|
258
258
|
visitor.setConsent(hasConsented);
|
|
259
259
|
}, [visitor]);
|
|
260
260
|
const close = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => {
|
|
261
|
-
return
|
|
261
|
+
return _deps__WEBPACK_IMPORTED_MODULE_6__.Flagship.close();
|
|
262
262
|
}, []);
|
|
263
263
|
const getFlags = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(() => {
|
|
264
264
|
if (!visitor) {
|
|
265
265
|
var _state$flags;
|
|
266
266
|
const flags = new Map();
|
|
267
267
|
(_state$flags = state.flags) === null || _state$flags === void 0 || _state$flags.forEach((flag, key) => {
|
|
268
|
-
flags.set(key, new
|
|
268
|
+
flags.set(key, new _FSFlag__WEBPACK_IMPORTED_MODULE_3__.FSFlag(key, state));
|
|
269
269
|
});
|
|
270
|
-
return new
|
|
270
|
+
return new _deps__WEBPACK_IMPORTED_MODULE_6__.FSFlagCollection({
|
|
271
271
|
flags
|
|
272
272
|
});
|
|
273
273
|
}
|
|
@@ -286,7 +286,7 @@ const useFlagship = () => {
|
|
|
286
286
|
...(visitor === null || visitor === void 0 ? void 0 : visitor.context)
|
|
287
287
|
},
|
|
288
288
|
hasConsented: visitor === null || visitor === void 0 ? void 0 : visitor.hasConsented,
|
|
289
|
-
sdkStatus:
|
|
289
|
+
sdkStatus: _deps__WEBPACK_IMPORTED_MODULE_6__.Flagship.getStatus(),
|
|
290
290
|
flagsStatus: visitor === null || visitor === void 0 ? void 0 : visitor.flagsStatus,
|
|
291
291
|
setConsent,
|
|
292
292
|
updateContext: fsUpdateContext,
|
|
@@ -316,13 +316,13 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
316
316
|
/* harmony export */ });
|
|
317
317
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
318
318
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
319
|
-
/* harmony import */ var
|
|
320
|
-
/* harmony import */ var
|
|
319
|
+
/* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./deps */ "@flagship.io/js-sdk");
|
|
320
|
+
/* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_deps__WEBPACK_IMPORTED_MODULE_1__);
|
|
321
321
|
/* harmony import */ var _FlagshipContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FlagshipContext */ "./src/FlagshipContext.tsx");
|
|
322
322
|
/* harmony import */ var _internalType__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./internalType */ "./src/internalType.ts");
|
|
323
323
|
/* harmony import */ var _sdkVersion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sdkVersion */ "./src/sdkVersion.ts");
|
|
324
324
|
/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils */ "./src/utils.ts");
|
|
325
|
-
|
|
325
|
+
"use client";
|
|
326
326
|
|
|
327
327
|
|
|
328
328
|
|
|
@@ -334,7 +334,7 @@ function FlagshipProvider({
|
|
|
334
334
|
children,
|
|
335
335
|
envId,
|
|
336
336
|
apiKey,
|
|
337
|
-
decisionMode =
|
|
337
|
+
decisionMode = _deps__WEBPACK_IMPORTED_MODULE_1__.DecisionMode.DECISION_API,
|
|
338
338
|
visitorData,
|
|
339
339
|
loadingComponent,
|
|
340
340
|
onSdkStatusChanged,
|
|
@@ -375,21 +375,21 @@ function FlagshipProvider({
|
|
|
375
375
|
onSdkStatusChanged(status);
|
|
376
376
|
}
|
|
377
377
|
switch (status) {
|
|
378
|
-
case
|
|
379
|
-
case
|
|
378
|
+
case _deps__WEBPACK_IMPORTED_MODULE_1__.FSSdkStatus.SDK_PANIC:
|
|
379
|
+
case _deps__WEBPACK_IMPORTED_MODULE_1__.FSSdkStatus.SDK_INITIALIZED:
|
|
380
380
|
createVisitor();
|
|
381
381
|
break;
|
|
382
|
-
case
|
|
382
|
+
case _deps__WEBPACK_IMPORTED_MODULE_1__.FSSdkStatus.SDK_NOT_INITIALIZED:
|
|
383
383
|
setState(prev => ({
|
|
384
384
|
...prev,
|
|
385
|
-
config:
|
|
385
|
+
config: _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig(),
|
|
386
386
|
isInitializing: false
|
|
387
387
|
}));
|
|
388
388
|
break;
|
|
389
389
|
}
|
|
390
390
|
};
|
|
391
391
|
const initSdk = () => {
|
|
392
|
-
|
|
392
|
+
_deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.start(envId, apiKey, {
|
|
393
393
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
394
394
|
decisionMode: decisionMode,
|
|
395
395
|
fetchNow,
|
|
@@ -405,7 +405,7 @@ function FlagshipProvider({
|
|
|
405
405
|
setState(currentState => ({
|
|
406
406
|
...currentState,
|
|
407
407
|
visitor: param.fsVisitor,
|
|
408
|
-
config:
|
|
408
|
+
config: _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig(),
|
|
409
409
|
isInitializing: false,
|
|
410
410
|
hasVisitorData: !!visitorData
|
|
411
411
|
}));
|
|
@@ -414,7 +414,7 @@ function FlagshipProvider({
|
|
|
414
414
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
415
415
|
const onVisitorReady = (fsVisitor, error) => {
|
|
416
416
|
if (error) {
|
|
417
|
-
(0,_utils__WEBPACK_IMPORTED_MODULE_3__.logError)(
|
|
417
|
+
(0,_utils__WEBPACK_IMPORTED_MODULE_3__.logError)(_deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig(), error.message || error, "onReady");
|
|
418
418
|
}
|
|
419
419
|
initializeState({
|
|
420
420
|
fsVisitor
|
|
@@ -424,7 +424,7 @@ function FlagshipProvider({
|
|
|
424
424
|
if (!visitorDataRef.current) {
|
|
425
425
|
return;
|
|
426
426
|
}
|
|
427
|
-
const fsVisitor =
|
|
427
|
+
const fsVisitor = _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.newVisitor({
|
|
428
428
|
visitorId: visitorDataRef.current.id,
|
|
429
429
|
context: visitorDataRef.current.context,
|
|
430
430
|
isAuthenticated: visitorDataRef.current.isAuthenticated,
|
|
@@ -434,7 +434,7 @@ function FlagshipProvider({
|
|
|
434
434
|
onFlagsStatusChanged,
|
|
435
435
|
shouldSaveInstance
|
|
436
436
|
});
|
|
437
|
-
fsVisitor === null || fsVisitor === void 0 || fsVisitor.on(
|
|
437
|
+
fsVisitor === null || fsVisitor === void 0 || fsVisitor.on("ready", error => {
|
|
438
438
|
onVisitorReady(fsVisitor, error);
|
|
439
439
|
});
|
|
440
440
|
if (!fetchNow) {
|
|
@@ -444,7 +444,7 @@ function FlagshipProvider({
|
|
|
444
444
|
}
|
|
445
445
|
};
|
|
446
446
|
function updateVisitor() {
|
|
447
|
-
if (!visitorDataRef.current ||
|
|
447
|
+
if (!visitorDataRef.current || _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.getStatus() !== _deps__WEBPACK_IMPORTED_MODULE_1__.FSSdkStatus.SDK_INITIALIZED) {
|
|
448
448
|
return;
|
|
449
449
|
}
|
|
450
450
|
if (!state.visitor || state.visitor.visitorId !== visitorDataRef.current.id && (!visitorDataRef.current.isAuthenticated || visitorDataRef.current.isAuthenticated && state.visitor.anonymousId)) {
|
|
@@ -522,6 +522,112 @@ function FlagshipProvider({
|
|
|
522
522
|
|
|
523
523
|
/***/ }),
|
|
524
524
|
|
|
525
|
+
/***/ "./src/FlagshipProviderSSR.tsx":
|
|
526
|
+
/*!*************************************!*\
|
|
527
|
+
!*** ./src/FlagshipProviderSSR.tsx ***!
|
|
528
|
+
\*************************************/
|
|
529
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
530
|
+
|
|
531
|
+
__webpack_require__.r(__webpack_exports__);
|
|
532
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
533
|
+
/* harmony export */ FlagshipProviderSSR: () => (/* binding */ FlagshipProviderSSR)
|
|
534
|
+
/* harmony export */ });
|
|
535
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
536
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
537
|
+
/* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./deps */ "@flagship.io/js-sdk");
|
|
538
|
+
/* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_deps__WEBPACK_IMPORTED_MODULE_1__);
|
|
539
|
+
/* harmony import */ var _FlagshipProvider__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FlagshipProvider */ "./src/FlagshipProvider.tsx");
|
|
540
|
+
/* harmony import */ var _sdkVersion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./sdkVersion */ "./src/sdkVersion.ts");
|
|
541
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
|
|
546
|
+
async function initFlagship({
|
|
547
|
+
envId,
|
|
548
|
+
apiKey,
|
|
549
|
+
config
|
|
550
|
+
}) {
|
|
551
|
+
if (_deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.getStatus() !== _deps__WEBPACK_IMPORTED_MODULE_1__.FSSdkStatus.SDK_NOT_INITIALIZED) {
|
|
552
|
+
return _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship;
|
|
553
|
+
}
|
|
554
|
+
await _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.start(envId, apiKey, {
|
|
555
|
+
...config,
|
|
556
|
+
fetchNow: false,
|
|
557
|
+
sdkVersion: _sdkVersion__WEBPACK_IMPORTED_MODULE_2__.version
|
|
558
|
+
});
|
|
559
|
+
return _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship;
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
/**
|
|
563
|
+
* FlagshipProviderSSR is a server-side rendering component for Flagship.
|
|
564
|
+
* It initializes the Flagship SDK and provides the necessary context for rendering.
|
|
565
|
+
* This component is designed to be used in server-side environments where you need to fetch and provide
|
|
566
|
+
* Flagship data before rendering the React application.
|
|
567
|
+
* @returns
|
|
568
|
+
*/
|
|
569
|
+
async function FlagshipProviderSSR({
|
|
570
|
+
children,
|
|
571
|
+
envId,
|
|
572
|
+
apiKey,
|
|
573
|
+
decisionMode = _deps__WEBPACK_IMPORTED_MODULE_1__.DecisionMode.DECISION_API,
|
|
574
|
+
visitorData,
|
|
575
|
+
loadingComponent,
|
|
576
|
+
onSdkStatusChanged,
|
|
577
|
+
onBucketingUpdated,
|
|
578
|
+
fetchFlagsOnBucketingUpdated,
|
|
579
|
+
hitDeduplicationTime = 2,
|
|
580
|
+
fetchNow = false,
|
|
581
|
+
onFlagsStatusChanged,
|
|
582
|
+
shouldSaveInstance,
|
|
583
|
+
...props
|
|
584
|
+
}) {
|
|
585
|
+
const language = 1;
|
|
586
|
+
const fs = await initFlagship({
|
|
587
|
+
envId,
|
|
588
|
+
apiKey,
|
|
589
|
+
config: {
|
|
590
|
+
...props,
|
|
591
|
+
decisionMode: decisionMode,
|
|
592
|
+
initialBucketing: props.initialBucketing,
|
|
593
|
+
hitDeduplicationTime,
|
|
594
|
+
language
|
|
595
|
+
}
|
|
596
|
+
});
|
|
597
|
+
let initialFlagsData = props.initialFlagsData;
|
|
598
|
+
if (!props.initialFlagsData && !props.initialCampaigns) {
|
|
599
|
+
const visitor = fs.newVisitor({
|
|
600
|
+
visitorId: visitorData === null || visitorData === void 0 ? void 0 : visitorData.id,
|
|
601
|
+
context: visitorData === null || visitorData === void 0 ? void 0 : visitorData.context,
|
|
602
|
+
isAuthenticated: visitorData === null || visitorData === void 0 ? void 0 : visitorData.isAuthenticated,
|
|
603
|
+
hasConsented: visitorData === null || visitorData === void 0 ? void 0 : visitorData.hasConsented,
|
|
604
|
+
onFlagsStatusChanged,
|
|
605
|
+
shouldSaveInstance
|
|
606
|
+
});
|
|
607
|
+
await visitor.fetchFlags();
|
|
608
|
+
initialFlagsData = visitor.getFlags().toJSON();
|
|
609
|
+
}
|
|
610
|
+
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default().createElement(_FlagshipProvider__WEBPACK_IMPORTED_MODULE_3__.FlagshipProvider, _extends({
|
|
611
|
+
envId: envId,
|
|
612
|
+
apiKey: apiKey,
|
|
613
|
+
decisionMode: decisionMode,
|
|
614
|
+
visitorData: visitorData,
|
|
615
|
+
loadingComponent: loadingComponent,
|
|
616
|
+
onSdkStatusChanged: onSdkStatusChanged,
|
|
617
|
+
onBucketingUpdated: onBucketingUpdated,
|
|
618
|
+
initialFlagsData: initialFlagsData,
|
|
619
|
+
fetchFlagsOnBucketingUpdated: fetchFlagsOnBucketingUpdated,
|
|
620
|
+
hitDeduplicationTime: hitDeduplicationTime,
|
|
621
|
+
fetchNow: fetchNow,
|
|
622
|
+
language: language,
|
|
623
|
+
sdkVersion: _sdkVersion__WEBPACK_IMPORTED_MODULE_2__.version,
|
|
624
|
+
onFlagsStatusChanged: onFlagsStatusChanged,
|
|
625
|
+
shouldSaveInstance: shouldSaveInstance
|
|
626
|
+
}, props), children);
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
/***/ }),
|
|
630
|
+
|
|
525
631
|
/***/ "./src/constants.ts":
|
|
526
632
|
/*!**************************!*\
|
|
527
633
|
!*** ./src/constants.ts ***!
|
|
@@ -540,6 +646,22 @@ const noVisitorDefault = 'fsVisitor not initialized, returns default value';
|
|
|
540
646
|
const GET_FLAG_CAST_ERROR = 'Flag for key {0} has a different type. Default value is returned.';
|
|
541
647
|
const GET_METADATA_CAST_ERROR = 'Flag for key {0} has a different type with defaultValue, an empty metadata object is returned';
|
|
542
648
|
|
|
649
|
+
/***/ }),
|
|
650
|
+
|
|
651
|
+
/***/ "./src/deps.ts":
|
|
652
|
+
/*!*********************!*\
|
|
653
|
+
!*** ./src/deps.ts ***!
|
|
654
|
+
\*********************/
|
|
655
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
656
|
+
|
|
657
|
+
__webpack_require__.r(__webpack_exports__);
|
|
658
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @flagship.io/js-sdk */ "@flagship.io/js-sdk");
|
|
659
|
+
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__);
|
|
660
|
+
/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
661
|
+
/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]
|
|
662
|
+
/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
663
|
+
|
|
664
|
+
|
|
543
665
|
/***/ }),
|
|
544
666
|
|
|
545
667
|
/***/ "./src/internalType.ts":
|
|
@@ -570,7 +692,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
570
692
|
/* harmony export */ version: () => (/* binding */ version)
|
|
571
693
|
/* harmony export */ });
|
|
572
694
|
// Generated by genversion.
|
|
573
|
-
const version = '5.
|
|
695
|
+
const version = '5.2.0-beta.1';
|
|
574
696
|
|
|
575
697
|
/***/ }),
|
|
576
698
|
|
|
@@ -597,40 +719,40 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
597
719
|
/* harmony export */ });
|
|
598
720
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
|
|
599
721
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
600
|
-
/* harmony import */ var
|
|
601
|
-
/* harmony import */ var
|
|
722
|
+
/* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./deps */ "@flagship.io/js-sdk");
|
|
723
|
+
/* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_deps__WEBPACK_IMPORTED_MODULE_1__);
|
|
602
724
|
'use client';
|
|
603
725
|
|
|
604
726
|
|
|
605
727
|
|
|
606
728
|
function logError(config, message, tag) {
|
|
607
|
-
if (!config || !config.logLevel || config.logLevel <
|
|
729
|
+
if (!config || !config.logLevel || config.logLevel < _deps__WEBPACK_IMPORTED_MODULE_1__.LogLevel.ERROR) {
|
|
608
730
|
return;
|
|
609
731
|
}
|
|
610
732
|
if (typeof config.onLog === 'function') {
|
|
611
|
-
config.onLog(
|
|
733
|
+
config.onLog(_deps__WEBPACK_IMPORTED_MODULE_1__.LogLevel.ERROR, tag, message);
|
|
612
734
|
}
|
|
613
735
|
if (config.logManager && typeof config.logManager.error === 'function') {
|
|
614
736
|
config.logManager.error(message, tag);
|
|
615
737
|
}
|
|
616
738
|
}
|
|
617
739
|
function logInfo(config, message, tag) {
|
|
618
|
-
if (!config || !config.logLevel || config.logLevel <
|
|
740
|
+
if (!config || !config.logLevel || config.logLevel < _deps__WEBPACK_IMPORTED_MODULE_1__.LogLevel.INFO) {
|
|
619
741
|
return;
|
|
620
742
|
}
|
|
621
743
|
if (typeof config.onLog === 'function') {
|
|
622
|
-
config.onLog(
|
|
744
|
+
config.onLog(_deps__WEBPACK_IMPORTED_MODULE_1__.LogLevel.INFO, tag, message);
|
|
623
745
|
}
|
|
624
746
|
if (config.logManager && typeof config.logManager.info === 'function') {
|
|
625
747
|
config.logManager.info(message, tag);
|
|
626
748
|
}
|
|
627
749
|
}
|
|
628
750
|
function logWarn(config, message, tag) {
|
|
629
|
-
if (!config || !config.logLevel || config.logLevel <
|
|
751
|
+
if (!config || !config.logLevel || config.logLevel < _deps__WEBPACK_IMPORTED_MODULE_1__.LogLevel.WARNING) {
|
|
630
752
|
return;
|
|
631
753
|
}
|
|
632
754
|
if (typeof config.onLog === 'function') {
|
|
633
|
-
config.onLog(
|
|
755
|
+
config.onLog(_deps__WEBPACK_IMPORTED_MODULE_1__.LogLevel.WARNING, tag, message);
|
|
634
756
|
}
|
|
635
757
|
if (config.logManager && typeof config.logManager.warning === 'function') {
|
|
636
758
|
config.logManager.warning(message, tag);
|
|
@@ -739,7 +861,7 @@ function extractFlagsMap(initialFlagsData, initialCampaigns) {
|
|
|
739
861
|
isReference: flag.isReference,
|
|
740
862
|
campaignType: flag.campaignType,
|
|
741
863
|
slug: flag.slug,
|
|
742
|
-
value: (_hexToValue = hexToValue(flag.hex,
|
|
864
|
+
value: (_hexToValue = hexToValue(flag.hex, _deps__WEBPACK_IMPORTED_MODULE_1__.Flagship.getConfig())) === null || _hexToValue === void 0 ? void 0 : _hexToValue.v
|
|
743
865
|
});
|
|
744
866
|
});
|
|
745
867
|
} else if (initialCampaigns) {
|
|
@@ -2055,17 +2177,19 @@ var __webpack_exports__ = {};
|
|
|
2055
2177
|
__webpack_require__.r(__webpack_exports__);
|
|
2056
2178
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
2057
2179
|
/* harmony export */ FlagshipProvider: () => (/* reexport safe */ _FlagshipProvider__WEBPACK_IMPORTED_MODULE_2__.FlagshipProvider),
|
|
2180
|
+
/* harmony export */ FlagshipProviderSSR: () => (/* reexport safe */ _FlagshipProviderSSR__WEBPACK_IMPORTED_MODULE_3__.FlagshipProviderSSR),
|
|
2058
2181
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__),
|
|
2059
2182
|
/* harmony export */ useFlagship: () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_1__.useFlagship),
|
|
2060
2183
|
/* harmony export */ useFsFlag: () => (/* reexport safe */ _FlagshipHooks__WEBPACK_IMPORTED_MODULE_1__.useFsFlag)
|
|
2061
2184
|
/* harmony export */ });
|
|
2062
2185
|
/* harmony import */ var _FlagshipProvider__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FlagshipProvider */ "./src/FlagshipProvider.tsx");
|
|
2063
|
-
/* harmony import */ var
|
|
2064
|
-
/* harmony import */ var _flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_flagship_io_js_sdk__WEBPACK_IMPORTED_MODULE_0__);
|
|
2186
|
+
/* harmony import */ var _deps__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./deps */ "./src/deps.ts");
|
|
2065
2187
|
/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
|
|
2066
|
-
/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in
|
|
2188
|
+
/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _deps__WEBPACK_IMPORTED_MODULE_0__) if(["default","FlagshipProvider","FlagshipProviderSSR"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _deps__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]
|
|
2067
2189
|
/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
|
|
2068
2190
|
/* harmony import */ var _FlagshipHooks__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FlagshipHooks */ "./src/FlagshipHooks.ts");
|
|
2191
|
+
/* harmony import */ var _FlagshipProviderSSR__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FlagshipProviderSSR */ "./src/FlagshipProviderSSR.tsx");
|
|
2192
|
+
|
|
2069
2193
|
|
|
2070
2194
|
|
|
2071
2195
|
|
|
@@ -2077,4 +2201,4 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
2077
2201
|
module.exports = __webpack_exports__;
|
|
2078
2202
|
/******/ })()
|
|
2079
2203
|
;
|
|
2080
|
-
//# sourceMappingURL=index.node.
|
|
2204
|
+
//# sourceMappingURL=index.node.cjs.map
|