@flagship.io/react-sdk 2.1.10-beta.0 → 2.1.10-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.
Files changed (34) hide show
  1. package/dist/FlagshipContext.d.ts +99 -0
  2. package/dist/FlagshipContext.js +312 -0
  3. package/dist/FlagshipContext.js.map +1 -0
  4. package/dist/FlagshipErrorBoundary.d.ts +34 -0
  5. package/dist/FlagshipErrorBoundary.js +95 -0
  6. package/dist/FlagshipErrorBoundary.js.map +1 -0
  7. package/dist/FlagshipHooks.d.ts +33 -0
  8. package/dist/FlagshipHooks.js +198 -0
  9. package/dist/FlagshipHooks.js.map +1 -0
  10. package/dist/components/ReactErrorBoundaryContainer/index.d.ts +10 -0
  11. package/dist/components/ReactErrorBoundaryContainer/index.js +65 -0
  12. package/dist/components/ReactErrorBoundaryContainer/index.js.map +1 -0
  13. package/dist/index.d.ts +2 -0
  14. package/dist/index.js +15 -0
  15. package/dist/index.js.map +1 -0
  16. package/dist/lib/loggerHelper.d.ts +5 -0
  17. package/dist/lib/loggerHelper.js +14 -0
  18. package/dist/lib/loggerHelper.js.map +1 -0
  19. package/dist/lib/utils.d.ts +1 -0
  20. package/dist/lib/utils.js +7 -0
  21. package/dist/lib/utils.js.map +1 -0
  22. package/dist/setupTests.d.ts +1 -0
  23. package/dist/setupTests.js +9 -0
  24. package/dist/setupTests.js.map +1 -0
  25. package/dist/tests/mock/apiAnswers/oneModifInMoreThanOneCampaign.d.ts +3 -0
  26. package/dist/tests/mock/apiAnswers/oneModifInMoreThanOneCampaign.js +51 -0
  27. package/dist/tests/mock/apiAnswers/oneModifInMoreThanOneCampaign.js.map +1 -0
  28. package/dist/tests/mock/env.d.ts +5 -0
  29. package/dist/tests/mock/env.js +8 -0
  30. package/dist/tests/mock/env.js.map +1 -0
  31. package/dist/tests/mock/index.d.ts +74 -0
  32. package/dist/tests/mock/index.js +90 -0
  33. package/dist/tests/mock/index.js.map +1 -0
  34. package/package.json +1 -1
@@ -0,0 +1,99 @@
1
+ import React, { SetStateAction, Dispatch } from 'react';
2
+ import { FlagshipSdkConfig, FlagshipVisitorContext, IFlagshipVisitor, SaveCacheArgs, DecisionApiCampaign, PostFlagshipApiCallback, BucketingApiResponse, IFlagship } from '@flagship.io/js-sdk';
3
+ import { FsLogger } from '@flagship.io/js-sdk-logs';
4
+ import { HandleErrorBoundaryDisplay } from './FlagshipErrorBoundary';
5
+ export declare type FsStatus = {
6
+ isLoading: boolean;
7
+ isSdkReady: boolean;
8
+ isVisitorDefined: boolean;
9
+ hasError: boolean;
10
+ lastRefresh: string | null;
11
+ firstInitSuccess: string | null;
12
+ };
13
+ export declare type FsState = {
14
+ fsSdk: IFlagship | null;
15
+ fsVisitor: IFlagshipVisitor | null;
16
+ fsModifications: DecisionApiCampaign[] | null;
17
+ status: FsStatus;
18
+ log: FsLogger | null;
19
+ private: {
20
+ previousFetchedModifications: undefined | DecisionApiCampaign[];
21
+ };
22
+ };
23
+ export interface FlagshipReactSdkConfig extends FlagshipSdkConfig {
24
+ fetchNow?: boolean;
25
+ pollingInterval?: number | null;
26
+ activateNow?: boolean;
27
+ enableConsoleLogs?: boolean;
28
+ decisionMode?: 'API' | 'Bucketing';
29
+ nodeEnv?: string;
30
+ enableClientCache?: boolean;
31
+ flagshipApi?: string;
32
+ apiKey?: string | null;
33
+ initialModifications?: DecisionApiCampaign[] | null;
34
+ initialBucketing?: BucketingApiResponse | null;
35
+ timeout?: number;
36
+ enableErrorLayout?: boolean;
37
+ enableSafeMode?: boolean;
38
+ internal?: {
39
+ react?: {};
40
+ reactNative?: {
41
+ httpCallback?: PostFlagshipApiCallback;
42
+ };
43
+ };
44
+ }
45
+ export declare const initState: FsState;
46
+ export declare type BucketingSuccessArgs = {
47
+ status: string;
48
+ payload: BucketingApiResponse;
49
+ };
50
+ export declare type FsContext = {
51
+ hasError: boolean;
52
+ state: FsState;
53
+ setState: Dispatch<SetStateAction<FsState>> | null;
54
+ };
55
+ declare const FlagshipContext: React.Context<FsContext>;
56
+ export declare type FsOnUpdateArguments = {
57
+ fsModifications: DecisionApiCampaign[] | null;
58
+ config: FlagshipReactSdkConfig;
59
+ status: FsStatus;
60
+ };
61
+ export declare type FsOnUpdate = (data: FsOnUpdateArguments, visitor: IFlagshipVisitor | null) => void;
62
+ interface FlagshipProviderProps {
63
+ children: React.ReactNode;
64
+ loadingComponent?: React.ReactNode;
65
+ envId: string;
66
+ visitorData: {
67
+ id: string;
68
+ context?: FlagshipVisitorContext;
69
+ isAuthenticated?: boolean;
70
+ };
71
+ reactNative?: {
72
+ handleErrorDisplay: HandleErrorBoundaryDisplay;
73
+ httpCallback: PostFlagshipApiCallback;
74
+ };
75
+ fetchNow?: boolean;
76
+ decisionMode?: 'API' | 'Bucketing';
77
+ pollingInterval?: number | null;
78
+ activateNow?: boolean;
79
+ enableConsoleLogs?: boolean;
80
+ enableErrorLayout?: boolean;
81
+ enableSafeMode?: boolean;
82
+ enableClientCache?: boolean;
83
+ nodeEnv?: string;
84
+ timeout?: number;
85
+ flagshipApi?: string;
86
+ apiKey?: string | null;
87
+ initialModifications?: DecisionApiCampaign[];
88
+ initialBucketing?: BucketingApiResponse;
89
+ onInitStart?(): void;
90
+ onInitDone?(): void;
91
+ onBucketingSuccess?(data: BucketingSuccessArgs): void;
92
+ onBucketingFail?(error: Error): void;
93
+ onSavingModificationsInCache?(args: SaveCacheArgs): void;
94
+ onUpdate?: FsOnUpdate;
95
+ }
96
+ export declare const FlagshipProvider: React.SFC<FlagshipProviderProps>;
97
+ export declare const FlagshipConsumer: React.Consumer<FsContext>;
98
+ export default FlagshipContext;
99
+ export declare const useFlagshipContext: () => any;
@@ -0,0 +1,312 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || function (mod) {
26
+ if (mod && mod.__esModule) return mod;
27
+ var result = {};
28
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
29
+ __setModuleDefault(result, mod);
30
+ return result;
31
+ };
32
+ var __rest = (this && this.__rest) || function (s, e) {
33
+ var t = {};
34
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
35
+ t[p] = s[p];
36
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
37
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
38
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
39
+ t[p[i]] = s[p[i]];
40
+ }
41
+ return t;
42
+ };
43
+ var __spreadArrays = (this && this.__spreadArrays) || function () {
44
+ for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
45
+ for (var r = Array(s), k = 0, i = 0; i < il; i++)
46
+ for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
47
+ r[k] = a[j];
48
+ return r;
49
+ };
50
+ var __importDefault = (this && this.__importDefault) || function (mod) {
51
+ return (mod && mod.__esModule) ? mod : { "default": mod };
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.useFlagshipContext = exports.FlagshipConsumer = exports.FlagshipProvider = exports.initState = void 0;
55
+ var react_1 = __importStar(require("react"));
56
+ var js_sdk_1 = __importDefault(require("@flagship.io/js-sdk"));
57
+ var use_ssr_1 = __importDefault(require("use-ssr"));
58
+ var loggerHelper_1 = __importDefault(require("./lib/loggerHelper"));
59
+ var FlagshipErrorBoundary_1 = __importDefault(require("./FlagshipErrorBoundary"));
60
+ var utils_1 = require("./lib/utils");
61
+ exports.initState = {
62
+ fsSdk: null,
63
+ fsVisitor: null,
64
+ log: null,
65
+ fsModifications: null,
66
+ status: {
67
+ isLoading: true,
68
+ isSdkReady: false,
69
+ isVisitorDefined: false,
70
+ firstInitSuccess: null,
71
+ lastRefresh: null,
72
+ hasError: false
73
+ },
74
+ private: {
75
+ previousFetchedModifications: undefined
76
+ }
77
+ };
78
+ var FlagshipContext = react_1.default.createContext({ state: __assign({}, exports.initState), setState: null, hasError: false });
79
+ exports.FlagshipProvider = function (_a) {
80
+ var children = _a.children, reactNative = _a.reactNative, envId = _a.envId, visitorData = _a.visitorData, loadingComponent = _a.loadingComponent, initialModifications = _a.initialModifications, initialBucketing = _a.initialBucketing, onSavingModificationsInCache = _a.onSavingModificationsInCache, onInitStart = _a.onInitStart, onInitDone = _a.onInitDone, onBucketingSuccess = _a.onBucketingSuccess, onBucketingFail = _a.onBucketingFail, onUpdate = _a.onUpdate, timeout = _a.timeout, fetchNow = _a.fetchNow, activateNow = _a.activateNow, enableConsoleLogs = _a.enableConsoleLogs, enableErrorLayout = _a.enableErrorLayout, enableSafeMode = _a.enableSafeMode, enableClientCache = _a.enableClientCache, nodeEnv = _a.nodeEnv, flagshipApi = _a.flagshipApi, apiKey = _a.apiKey, decisionMode = _a.decisionMode, pollingInterval = _a.pollingInterval;
81
+ var id = visitorData === null || visitorData === void 0 ? void 0 : visitorData.id;
82
+ var context = visitorData === null || visitorData === void 0 ? void 0 : visitorData.context;
83
+ var isAuthenticated = (visitorData === null || visitorData === void 0 ? void 0 : visitorData.isAuthenticated) || false;
84
+ var previousIsAuthenticated = react_1.useRef(isAuthenticated);
85
+ var isFirstRun = react_1.useRef(true);
86
+ var _b = use_ssr_1.default(), isBrowser = _b.isBrowser, isServer = _b.isServer, isNative = _b.isNative;
87
+ var isJest = utils_1.areWeTestingWithJest();
88
+ var extractConfiguration = function () { return ({
89
+ fetchNow: typeof fetchNow !== 'boolean' ? true : fetchNow,
90
+ decisionMode: decisionMode || 'API',
91
+ pollingInterval: pollingInterval || null,
92
+ activateNow: typeof activateNow !== 'boolean' ? false : activateNow,
93
+ timeout: typeof timeout !== 'number' ? undefined : timeout,
94
+ enableConsoleLogs: typeof enableConsoleLogs !== 'boolean' ? false : enableConsoleLogs,
95
+ enableErrorLayout: typeof enableErrorLayout !== 'boolean' ? false : enableErrorLayout,
96
+ enableSafeMode: typeof enableSafeMode !== 'boolean' ? false : enableSafeMode,
97
+ enableClientCache: typeof enableClientCache !== 'boolean' ? true : enableClientCache,
98
+ nodeEnv: nodeEnv || 'production',
99
+ initialBucketing: initialBucketing || null,
100
+ flagshipApi: flagshipApi,
101
+ apiKey: apiKey
102
+ }); };
103
+ var configuration = extractConfiguration();
104
+ var _c = react_1.useState(__assign(__assign({}, exports.initState), { log: loggerHelper_1.default.getLogger(configuration), config: configuration, private: __assign(__assign({}, exports.initState.private), { previousFetchedModifications: initialModifications }) })), state = _c[0], setState = _c[1];
105
+ var _d = react_1.useState({ hasError: false, error: null }), errorData = _d[0], setError = _d[1];
106
+ var handleError = function (error) {
107
+ state.log.fatal("error: " + error.stack);
108
+ setError({ error: error, hasError: !!error });
109
+ };
110
+ var _e = state.status, isLoading = _e.isLoading, isVisitorDefined = _e.isVisitorDefined, firstInitSuccess = _e.firstInitSuccess, lastRefresh = _e.lastRefresh, fsVisitor = state.fsVisitor;
111
+ var tryCatchCallback = function (callback) {
112
+ try {
113
+ callback();
114
+ }
115
+ catch (error) {
116
+ state.log.fatal("error: " + error.stack);
117
+ setError({ error: error, hasError: true });
118
+ }
119
+ };
120
+ var computeConfig = function () {
121
+ var sdkConfig = {
122
+ internal: {
123
+ react: {},
124
+ reactNative: {
125
+ httpCallback: reactNative === null || reactNative === void 0 ? void 0 : reactNative.httpCallback
126
+ }
127
+ }
128
+ };
129
+ if (Array.isArray(state.private.previousFetchedModifications)) {
130
+ return __assign(__assign(__assign({}, configuration), sdkConfig), { initialModifications: __spreadArrays(state.private.previousFetchedModifications) });
131
+ }
132
+ if (state.private.previousFetchedModifications) {
133
+ state.log.warn('initialModifications props is not correctly set and has been ignored, please check the documentation.');
134
+ }
135
+ return __assign(__assign({}, configuration), sdkConfig);
136
+ };
137
+ var computedConfig = computeConfig();
138
+ var handleErrorDisplay = reactNative === null || reactNative === void 0 ? void 0 : reactNative.handleErrorDisplay;
139
+ var initSdk = function (previousBucketing) {
140
+ var theApiKey = computedConfig.apiKey, otherComputedConfig = __rest(computedConfig, ["apiKey"]);
141
+ return js_sdk_1.default.start(envId, theApiKey, __assign(__assign({}, otherComputedConfig), { fetchNow: isServer ? false : otherComputedConfig.fetchNow, initialBucketing: computedConfig.initialBucketing === null ? previousBucketing : computedConfig.initialBucketing }));
142
+ };
143
+ var checkIfVisitorShouldBeNew = function (fsSdk) {
144
+ var _a, _b, _c;
145
+ if ((state === null || state === void 0 ? void 0 : state.fsVisitor) && state.fsVisitor.envId === fsSdk.envId && state.fsVisitor.id === id) {
146
+ if (state.fsVisitor.context !== context) {
147
+ state.log.debug("update visitor after re-render, but context is different (old vs new): vContext (" + JSON.stringify((_a = state.fsVisitor) === null || _a === void 0 ? void 0 : _a.context) + " vs " + JSON.stringify(context) + ")");
148
+ }
149
+ else {
150
+ state.log.debug("update visitor after re-render");
151
+ }
152
+ return false;
153
+ }
154
+ if (state === null || state === void 0 ? void 0 : state.fsVisitor) {
155
+ state.log.debug("unable to update visitor after re-render because of strong update (old vs new): envId (" + ((_b = state.fsVisitor) === null || _b === void 0 ? void 0 : _b.envId) + " vs " + fsSdk.envId + ") or vId (" + ((_c = state.fsVisitor) === null || _c === void 0 ? void 0 : _c.id) + " vs " + id + ")");
156
+ }
157
+ return true;
158
+ };
159
+ var postInitSdkForClientSide = function (fsSdk) {
160
+ fsSdk.eventEmitter.on('bucketPollingSuccess', function (_a) {
161
+ var status = _a.status, payload = _a.payload;
162
+ if (onBucketingSuccess) {
163
+ onBucketingSuccess({ status: status.toString(), payload: payload });
164
+ }
165
+ });
166
+ fsSdk.eventEmitter.on('bucketPollingFailed', function (error) {
167
+ if (onBucketingFail) {
168
+ onBucketingFail(error);
169
+ }
170
+ });
171
+ if (onInitStart && !isVisitorDefined) {
172
+ tryCatchCallback(onInitStart);
173
+ }
174
+ var newVisitorDetected = checkIfVisitorShouldBeNew(fsSdk);
175
+ var visitorInstance = newVisitorDetected
176
+ ? fsSdk.newVisitor(id, context)
177
+ : fsSdk.updateVisitor(state.fsVisitor, { context: context });
178
+ setState(function (s) { return (__assign(__assign({}, s), { status: __assign(__assign({}, s.status), { isVisitorDefined: !!visitorInstance, isLoading: true }), fsVisitor: visitorInstance, fsModifications: visitorInstance.fetchedModifications || null, fsSdk: fsSdk })); });
179
+ visitorInstance.on('ready', function (readyData) {
180
+ var withError = readyData.withError;
181
+ setState(function (s) { return (__assign(__assign({}, s), { status: __assign(__assign({}, s.status), { isVisitorDefined: !!visitorInstance, isLoading: false, lastRefresh: new Date().toISOString(), hasError: withError, firstInitSuccess: (!newVisitorDetected && s.status.firstInitSuccess) || new Date().toISOString() }), fsVisitor: visitorInstance, fsSdk: fsSdk, fsModifications: visitorInstance.fetchedModifications || null, private: {
182
+ previousFetchedModifications: visitorInstance.fetchedModifications || undefined
183
+ } })); });
184
+ });
185
+ visitorInstance.on('saveCache', function (args) {
186
+ if (onSavingModificationsInCache) {
187
+ tryCatchCallback(function () { return onSavingModificationsInCache(args); });
188
+ }
189
+ });
190
+ };
191
+ if (!isJest && isServer && !isVisitorDefined) {
192
+ state.log.debug("SDK run on server side detected.");
193
+ var fsSdk_1 = initSdk();
194
+ var visitorInstance_1 = fsSdk_1.newVisitor(id, context);
195
+ setState(function (s) { return (__assign(__assign({}, s), { status: __assign(__assign({}, s.status), { isVisitorDefined: !!visitorInstance_1 }), fsVisitor: visitorInstance_1, fsModifications: visitorInstance_1.fetchedModifications || null, fsSdk: fsSdk_1 })); });
196
+ }
197
+ else if ((isJest || isNative || isBrowser) && !isVisitorDefined && firstInitSuccess === null) {
198
+ var fsSdk = initSdk();
199
+ postInitSdkForClientSide(fsSdk);
200
+ }
201
+ var updateVisitorIfIdentityChanged = function () {
202
+ var isBeingAuthenticated = previousIsAuthenticated.current === false && isAuthenticated === true;
203
+ var isBeingAnonymous = previousIsAuthenticated.current === true && isAuthenticated === false;
204
+ var hasVisitorIdentityChange = isBeingAnonymous || isBeingAuthenticated;
205
+ var updateVisitorAndStatus = function (fsV, isLoadingValue) {
206
+ setState(function (s) { return (__assign(__assign({}, s), { fsModifications: fsV.fetchedModifications, status: __assign(__assign({}, s.status), { isLoading: isLoadingValue }), fsVisitor: fsV })); });
207
+ };
208
+ if (!fsVisitor) {
209
+ handleError(new Error('Trying to change the anonymous status of visitor that has not been initialized or does not exist.'));
210
+ }
211
+ else {
212
+ if (hasVisitorIdentityChange) {
213
+ fsVisitor.updateContext(context || {});
214
+ }
215
+ if (isBeingAnonymous) {
216
+ if (!fsVisitor.anonymousId) {
217
+ fsVisitor.anonymousId = id;
218
+ }
219
+ fsVisitor.unauthenticate(id).then(function () { return updateVisitorAndStatus(fsVisitor, false); });
220
+ }
221
+ else if (isBeingAuthenticated) {
222
+ fsVisitor.authenticate(id).then(function () { return updateVisitorAndStatus(fsVisitor, false); });
223
+ }
224
+ if (hasVisitorIdentityChange) {
225
+ updateVisitorAndStatus(fsVisitor, true);
226
+ }
227
+ }
228
+ previousIsAuthenticated.current = isAuthenticated;
229
+ return hasVisitorIdentityChange;
230
+ };
231
+ react_1.useEffect(function () {
232
+ var _a;
233
+ if (isFirstRun.current) {
234
+ isFirstRun.current = false;
235
+ return;
236
+ }
237
+ if (!id && !errorData.hasError) {
238
+ var errorMsg = 'No visitor id found. Make sure you\'ve set in prop something like this: visitorData={{id: "MY_VISITOR_ID_VALUE"}} inside the FlagshipProvider component.';
239
+ handleError(new Error(errorMsg));
240
+ return;
241
+ }
242
+ if (isServer) {
243
+ state.log.warn("useEffect triggered in a server environment, SDK stopped.");
244
+ return;
245
+ }
246
+ var previousBucketing = null;
247
+ var isVisitorIdentityChanged = updateVisitorIfIdentityChanged();
248
+ if (isVisitorIdentityChanged) {
249
+ return;
250
+ }
251
+ if (state.fsSdk && state.fsSdk.config.decisionMode === 'Bucketing') {
252
+ state.fsSdk.stopBucketingPolling();
253
+ state.log.info('Bucketing automatically stopped because a setting props from FlagshipProvider has changed. Bucketing will restart automatically if decisionMode is still "Bucketing"');
254
+ state.fsSdk.eventEmitter.removeAllListeners();
255
+ previousBucketing = ((_a = state.fsSdk.bucket) === null || _a === void 0 ? void 0 : _a.data) || null;
256
+ }
257
+ var fsSdk = initSdk(previousBucketing);
258
+ postInitSdkForClientSide(fsSdk);
259
+ }, [envId, id, isAuthenticated, JSON.stringify(configuration) + JSON.stringify(context)]);
260
+ react_1.useEffect(function () {
261
+ var isSdkReady = state.status.isVisitorDefined && state.status.firstInitSuccess !== null;
262
+ if (onUpdate) {
263
+ tryCatchCallback(function () {
264
+ var _a;
265
+ onUpdate({
266
+ status: __assign(__assign({}, state.status), { isSdkReady: isSdkReady }),
267
+ fsModifications: state.fsModifications,
268
+ config: __assign(__assign({}, state.config), (_a = state.fsVisitor) === null || _a === void 0 ? void 0 : _a.config)
269
+ }, state.fsVisitor);
270
+ });
271
+ }
272
+ }, [state === null || state === void 0 ? void 0 : state.config, state === null || state === void 0 ? void 0 : state.fsModifications, state.status]);
273
+ react_1.useEffect(function () {
274
+ if (onInitDone && !!firstInitSuccess && firstInitSuccess === lastRefresh && !isLoading) {
275
+ tryCatchCallback(onInitDone);
276
+ }
277
+ }, [state === null || state === void 0 ? void 0 : state.status]);
278
+ var handleDisplay = function () {
279
+ var isFirstInit = !fsVisitor || !firstInitSuccess;
280
+ if (isLoading && loadingComponent && isFirstInit && fetchNow) {
281
+ return react_1.default.createElement(react_1.default.Fragment, null, loadingComponent);
282
+ }
283
+ return react_1.default.createElement(react_1.default.Fragment, null, children);
284
+ };
285
+ return (react_1.default.createElement(FlagshipContext.Provider, { value: { state: state, setState: setState, hasError: errorData.hasError } }, enableSafeMode ? (react_1.default.createElement(FlagshipErrorBoundary_1.default, { customerChildren: children, onError: handleError, error: errorData.error, sdkSettings: configuration, handleDisplay: handleErrorDisplay, log: state.log }, handleDisplay())) : (handleDisplay())));
286
+ };
287
+ exports.FlagshipProvider.defaultProps = {
288
+ loadingComponent: undefined,
289
+ fetchNow: true,
290
+ activateNow: false,
291
+ decisionMode: 'API',
292
+ pollingInterval: undefined,
293
+ enableConsoleLogs: false,
294
+ enableErrorLayout: false,
295
+ enableSafeMode: false,
296
+ nodeEnv: 'production',
297
+ flagshipApi: undefined,
298
+ apiKey: undefined,
299
+ initialModifications: undefined,
300
+ onInitStart: function () {
301
+ },
302
+ onInitDone: function () {
303
+ },
304
+ onSavingModificationsInCache: function () {
305
+ },
306
+ onUpdate: function () {
307
+ }
308
+ };
309
+ exports.FlagshipConsumer = FlagshipContext.Consumer;
310
+ exports.default = FlagshipContext;
311
+ exports.useFlagshipContext = function () { return react_1.useContext(FlagshipContext); };
312
+ //# sourceMappingURL=FlagshipContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlagshipContext.js","sourceRoot":"","sources":["../src/FlagshipContext.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import React, { ErrorInfo } from 'react';
2
+ import { FsLogger } from '@flagship.io/js-sdk-logs';
3
+ import { FlagshipReactSdkConfig } from './FlagshipContext';
4
+ declare type State = {
5
+ error: Error | null;
6
+ errorInfo: ErrorInfo | null;
7
+ isCollapse: boolean;
8
+ };
9
+ export declare type HandleErrorBoundaryDisplay = (props: {
10
+ debugMode: boolean;
11
+ children: React.ReactNode;
12
+ isCollapse: boolean;
13
+ error: Error | null;
14
+ onClickCollapse(): void;
15
+ }) => React.ReactNode;
16
+ declare type Props = {
17
+ children: React.ReactNode;
18
+ handleDisplay?: HandleErrorBoundaryDisplay;
19
+ customerChildren: React.ReactNode;
20
+ onError(error: Error): void;
21
+ error: Error | null;
22
+ sdkSettings: FlagshipReactSdkConfig;
23
+ log: FsLogger;
24
+ };
25
+ declare class FlagshipErrorBoundary extends React.Component<Props, State> {
26
+ constructor(props: Props);
27
+ componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
28
+ static getDerivedStateFromError(error: Error): {
29
+ error: Error;
30
+ };
31
+ componentDidUpdate(prevProps: Props, prevState: State): void;
32
+ render(): React.ReactNode;
33
+ }
34
+ export default FlagshipErrorBoundary;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ extendStatics(d, b);
11
+ function __() { this.constructor = d; }
12
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13
+ };
14
+ })();
15
+ var __assign = (this && this.__assign) || function () {
16
+ __assign = Object.assign || function(t) {
17
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
18
+ s = arguments[i];
19
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
20
+ t[p] = s[p];
21
+ }
22
+ return t;
23
+ };
24
+ return __assign.apply(this, arguments);
25
+ };
26
+ var __importDefault = (this && this.__importDefault) || function (mod) {
27
+ return (mod && mod.__esModule) ? mod : { "default": mod };
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ var react_1 = __importDefault(require("react"));
31
+ var ReactErrorBoundaryContainer_1 = __importDefault(require("./components/ReactErrorBoundaryContainer"));
32
+ var FlagshipErrorBoundary = (function (_super) {
33
+ __extends(FlagshipErrorBoundary, _super);
34
+ function FlagshipErrorBoundary(props) {
35
+ var _this = _super.call(this, props) || this;
36
+ _this.state = {
37
+ error: _this.props.error,
38
+ errorInfo: null,
39
+ isCollapse: false
40
+ };
41
+ return _this;
42
+ }
43
+ FlagshipErrorBoundary.prototype.componentDidCatch = function (error, errorInfo) {
44
+ var isSafeModeEnabled = this.props.sdkSettings.enableSafeMode;
45
+ if (isSafeModeEnabled) {
46
+ this.props.log.fatal("An error occurred. The SDK is switching into safe mode:\n" + error.stack);
47
+ this.setState({
48
+ error: error,
49
+ errorInfo: errorInfo
50
+ });
51
+ }
52
+ };
53
+ FlagshipErrorBoundary.getDerivedStateFromError = function (error) {
54
+ return {
55
+ error: error
56
+ };
57
+ };
58
+ FlagshipErrorBoundary.prototype.componentDidUpdate = function (prevProps, prevState) {
59
+ var isSafeModeEnabled = this.props.sdkSettings.enableSafeMode;
60
+ if (isSafeModeEnabled) {
61
+ if (this.state.error !== prevState.error) {
62
+ this.props.onError(this.state.error);
63
+ }
64
+ if (this.props.error !== prevProps.error) {
65
+ this.props.log.fatal("An error occurred. The SDK is switching into safe mode:\n" + this.props.error.stack);
66
+ }
67
+ }
68
+ };
69
+ FlagshipErrorBoundary.prototype.render = function () {
70
+ var _this = this;
71
+ var _a = this.state, error = _a.error, isCollapse = _a.isCollapse;
72
+ var _b = this.props, children = _b.children, handleDisplay = _b.handleDisplay, customerChildren = _b.customerChildren, errorProp = _b.error, _c = _b.sdkSettings, nodeEnv = _c.nodeEnv, enableErrorLayout = _c.enableErrorLayout, enableSafeMode = _c.enableSafeMode;
73
+ if (enableSafeMode && (errorProp || error)) {
74
+ var errorCopy = errorProp || error;
75
+ if (handleDisplay) {
76
+ return handleDisplay({
77
+ children: children,
78
+ debugMode: nodeEnv !== 'production' && !!enableErrorLayout,
79
+ isCollapse: isCollapse,
80
+ error: errorCopy,
81
+ onClickCollapse: function () {
82
+ _this.setState(__assign(__assign({}, _this.state), { isCollapse: !isCollapse }));
83
+ }
84
+ });
85
+ }
86
+ return (react_1.default.createElement(ReactErrorBoundaryContainer_1.default, { debugMode: nodeEnv !== 'production' && !!enableErrorLayout, isCollapse: isCollapse, error: errorCopy, onClickCollapse: function () {
87
+ _this.setState(__assign(__assign({}, _this.state), { isCollapse: !isCollapse }));
88
+ } }, customerChildren));
89
+ }
90
+ return children;
91
+ };
92
+ return FlagshipErrorBoundary;
93
+ }(react_1.default.Component));
94
+ exports.default = FlagshipErrorBoundary;
95
+ //# sourceMappingURL=FlagshipErrorBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlagshipErrorBoundary.js","sourceRoot":"","sources":["../src/FlagshipErrorBoundary.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { FsModifsRequestedList, GetModificationsOutput, GetModificationInfoOutput, HitShape } from '@flagship.io/js-sdk';
2
+ import { FsStatus } from './FlagshipContext';
3
+ declare type ModificationKeys = Array<string>;
4
+ declare type UseFsActivateOutput = void;
5
+ declare type UseFsModificationsOutput = GetModificationsOutput;
6
+ export declare const useFsActivate: (modificationKeys: ModificationKeys, applyEffectScope?: any[]) => UseFsActivateOutput;
7
+ export declare const useFsModifications: (modificationsRequested: FsModifsRequestedList, activateAllModifications?: boolean) => UseFsModificationsOutput;
8
+ export declare type UseFlagshipParams = {
9
+ modifications: {
10
+ requested: FsModifsRequestedList;
11
+ activateAll?: boolean;
12
+ };
13
+ };
14
+ export declare type UseFlagshipOutput = {
15
+ modifications: GetModificationsOutput;
16
+ getModificationInfo: (key: string) => Promise<null | GetModificationInfoOutput>;
17
+ synchronizeModifications(activate: boolean): Promise<number>;
18
+ startBucketingPolling(): {
19
+ success: boolean;
20
+ reason?: string;
21
+ };
22
+ stopBucketingPolling(): {
23
+ success: boolean;
24
+ reason?: string;
25
+ };
26
+ status: FsStatus;
27
+ hit: {
28
+ send(hit: HitShape): void;
29
+ sendMultiple(hits: HitShape[]): void;
30
+ };
31
+ };
32
+ export declare const useFlagship: (options?: UseFlagshipParams | undefined) => UseFlagshipOutput;
33
+ export {};
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.useFlagship = exports.useFsModifications = exports.useFsActivate = void 0;
18
+ var react_1 = require("react");
19
+ var FlagshipContext_1 = __importDefault(require("./FlagshipContext"));
20
+ var reportNoVisitor = function (log) {
21
+ if (log) {
22
+ log.error('sdk not correctly initialized... Make sure fsVisitor is ready.');
23
+ }
24
+ };
25
+ var safeModeLog = function (log, functionName) {
26
+ if (log) {
27
+ log.error(functionName + " is disabled because the SDK is in safe mode.");
28
+ }
29
+ };
30
+ exports.useFsActivate = function (modificationKeys, applyEffectScope) {
31
+ if (applyEffectScope === void 0) { applyEffectScope = []; }
32
+ var firstRendering = react_1.useRef(true);
33
+ var _a = react_1.useContext(FlagshipContext_1.default), state = _a.state, hasError = _a.hasError;
34
+ react_1.useEffect(function () {
35
+ var fsVisitor = state.fsVisitor;
36
+ if (firstRendering.current) {
37
+ firstRendering.current = false;
38
+ return undefined;
39
+ }
40
+ if (hasError) {
41
+ return safeModeLog(state.log, 'UseFsActivate');
42
+ }
43
+ if (!fsVisitor) {
44
+ reportNoVisitor(state.log);
45
+ }
46
+ else {
47
+ fsVisitor.activateModifications(modificationKeys.map(function (key) { return ({ key: key }); }));
48
+ }
49
+ return undefined;
50
+ }, applyEffectScope);
51
+ };
52
+ var safeMode_getCacheModifications = function (modificationsRequested, activateAllModifications) {
53
+ if (activateAllModifications === void 0) { activateAllModifications = false; }
54
+ return modificationsRequested.reduce(function (reducer, modifRequested) {
55
+ var newReducer = __assign({}, reducer);
56
+ newReducer[modifRequested.key] = modifRequested.defaultValue;
57
+ return newReducer;
58
+ }, {});
59
+ };
60
+ var getCacheModifications = function (fsVisitor, modificationsRequested, activateAllModifications, log) {
61
+ if (activateAllModifications === void 0) { activateAllModifications = false; }
62
+ if (!fsVisitor) {
63
+ if (log) {
64
+ log.warn('fsVisitor not initialized, returns default value');
65
+ }
66
+ return safeMode_getCacheModifications(modificationsRequested, activateAllModifications);
67
+ }
68
+ return fsVisitor.getModifications(modificationsRequested, activateAllModifications);
69
+ };
70
+ exports.useFsModifications = function (modificationsRequested, activateAllModifications) {
71
+ if (activateAllModifications === void 0) { activateAllModifications = false; }
72
+ var _a = react_1.useContext(FlagshipContext_1.default), _b = _a.state, fsVisitor = _b.fsVisitor, log = _b.log, hasError = _a.hasError;
73
+ if (hasError) {
74
+ return safeMode_getCacheModifications(modificationsRequested, activateAllModifications);
75
+ }
76
+ return getCacheModifications(fsVisitor, modificationsRequested, activateAllModifications, log);
77
+ };
78
+ exports.useFlagship = function (options) {
79
+ var computedOptions = options
80
+ ? options
81
+ : {
82
+ modifications: { requested: [], activateAll: false }
83
+ };
84
+ var _a = computedOptions.modifications, modificationsRequested = _a.requested, _b = _a.activateAll, activateAllModifications = _b === void 0 ? false : _b;
85
+ var _c = react_1.useContext(FlagshipContext_1.default), hasError = _c.hasError, setState = _c.setState, _d = _c.state, fsSdk = _d.fsSdk, fsVisitor = _d.fsVisitor, status = _d.status, log = _d.log;
86
+ if (hasError) {
87
+ return {
88
+ modifications: safeMode_getCacheModifications(modificationsRequested, activateAllModifications),
89
+ status: status,
90
+ synchronizeModifications: function (activate) {
91
+ if (activate === void 0) { activate = false; }
92
+ safeModeLog(log, 'synchronizeModifications');
93
+ return new Promise(function (resolve) { return resolve(400); });
94
+ },
95
+ getModificationInfo: function () {
96
+ safeModeLog(log, 'getModificationInfo');
97
+ return new Promise(function (resolve) { return resolve(null); });
98
+ },
99
+ startBucketingPolling: function () {
100
+ safeModeLog(log, 'startBucketingPolling');
101
+ return {
102
+ success: false,
103
+ reason: 'Safe mode enabled'
104
+ };
105
+ },
106
+ stopBucketingPolling: function () {
107
+ safeModeLog(log, 'startBucketingPolling');
108
+ return {
109
+ success: false,
110
+ reason: 'Safe mode enabled'
111
+ };
112
+ },
113
+ hit: {
114
+ send: function () {
115
+ safeModeLog(log, 'send hit');
116
+ },
117
+ sendMultiple: function () {
118
+ safeModeLog(log, 'send multiple hits');
119
+ }
120
+ }
121
+ };
122
+ }
123
+ var logSdkNotReady = function () {
124
+ if (log) {
125
+ log.error('SDK not ready yet.');
126
+ }
127
+ };
128
+ var send = function (hit) {
129
+ if (fsVisitor && fsVisitor.sendHit) {
130
+ fsVisitor.sendHit(hit);
131
+ }
132
+ else {
133
+ logSdkNotReady();
134
+ }
135
+ };
136
+ var sendMultiple = function (hits) {
137
+ if (fsVisitor && fsVisitor.sendHits) {
138
+ fsVisitor.sendHits(hits);
139
+ }
140
+ else {
141
+ logSdkNotReady();
142
+ }
143
+ };
144
+ var synchronizeModifications = function (activate) {
145
+ if (activate === void 0) { activate = false; }
146
+ if (fsVisitor && fsVisitor.synchronizeModifications) {
147
+ return fsVisitor.synchronizeModifications(activate).then(function (data) {
148
+ if (setState) {
149
+ setState(function (s) { return (__assign(__assign({}, s), { fsModifications: fsVisitor.fetchedModifications })); });
150
+ }
151
+ return data;
152
+ });
153
+ }
154
+ logSdkNotReady();
155
+ return new Promise(function (resolve) { return resolve(405); });
156
+ };
157
+ send.bind(fsVisitor);
158
+ sendMultiple.bind(fsVisitor);
159
+ return {
160
+ synchronizeModifications: synchronizeModifications,
161
+ modifications: getCacheModifications(fsVisitor, modificationsRequested, activateAllModifications, log),
162
+ getModificationInfo: function (key) {
163
+ return fsVisitor !== null
164
+ ? fsVisitor.getModificationInfo(key)
165
+ : new Promise(function (resolve) { return resolve(null); });
166
+ },
167
+ startBucketingPolling: function () {
168
+ if (fsSdk) {
169
+ return fsSdk.startBucketingPolling();
170
+ }
171
+ if (log) {
172
+ log.error('startBucketingPolling not ready yet.');
173
+ }
174
+ return {
175
+ success: false,
176
+ reason: 'startBucketingPolling not ready yet.'
177
+ };
178
+ },
179
+ stopBucketingPolling: function () {
180
+ if (fsSdk) {
181
+ return fsSdk.stopBucketingPolling();
182
+ }
183
+ if (log) {
184
+ log.error('stopBucketingPolling not ready yet.');
185
+ }
186
+ return {
187
+ success: false,
188
+ reason: 'startBucketingPolling not ready yet.'
189
+ };
190
+ },
191
+ status: status,
192
+ hit: {
193
+ send: send,
194
+ sendMultiple: sendMultiple
195
+ }
196
+ };
197
+ };
198
+ //# sourceMappingURL=FlagshipHooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlagshipHooks.js","sourceRoot":"","sources":["../src/FlagshipHooks.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,+BAAsD;AAStD,sEAAyE;AAMzE,IAAM,eAAe,GAAG,UAAC,GAAoB;IACzC,IAAI,GAAG,EAAE;QACL,GAAG,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAC;KAC/E;AACL,CAAC,CAAC;AAEF,IAAM,WAAW,GAAG,UAAC,GAAoB,EAAE,YAAoB;IAC3D,IAAI,GAAG,EAAE;QACL,GAAG,CAAC,KAAK,CAAI,YAAY,kDAA+C,CAAC,CAAC;KAC7E;AACL,CAAC,CAAC;AAEW,QAAA,aAAa,GAAG,UACzB,gBAAkC,EAClC,gBAA4B;IAA5B,iCAAA,EAAA,qBAA4B;IAE5B,IAAM,cAAc,GAAG,cAAM,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAA,KAAsB,kBAAU,CAAY,yBAAe,CAAC,EAA1D,KAAK,WAAA,EAAE,QAAQ,cAA2C,CAAC;IACnE,iBAAS,CAAC;QACE,IAAA,SAAS,GAAK,KAAK,UAAV,CAAW;QAE5B,IAAI,cAAc,CAAC,OAAO,EAAE;YACxB,cAAc,CAAC,OAAO,GAAG,KAAK,CAAC;YAC/B,OAAO,SAAS,CAAC;SACpB;QACD,IAAI,QAAQ,EAAE;YACV,OAAO,WAAW,CAAC,KAAK,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;SAClD;QACD,IAAI,CAAC,SAAS,EAAE;YACZ,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SAC9B;aAAM;YACH,SAAS,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,CAAC,EAAE,GAAG,KAAA,EAAE,CAAC,EAAT,CAAS,CAAC,CAAC,CAAC;SAC7E;QACD,OAAO,SAAS,CAAC;IACrB,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,IAAM,8BAA8B,GAAG,UACnC,sBAA6C,EAC7C,wBAAgC;IAAhC,yCAAA,EAAA,gCAAgC;IAEhC,OAAO,sBAAsB,CAAC,MAAM,CAAC,UAAC,OAAO,EAAE,cAAc;QACzD,IAAM,UAAU,gBAAkC,OAAO,CAAE,CAAC;QAC5D,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,YAAY,CAAC;QAC7D,OAAO,UAAU,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC,CAAC;AACF,IAAM,qBAAqB,GAAG,UAC1B,SAAkC,EAClC,sBAA6C,EAC7C,wBAAgC,EAChC,GAAoB;IADpB,yCAAA,EAAA,gCAAgC;IAGhC,IAAI,CAAC,SAAS,EAAE;QACZ,IAAI,GAAG,EAAE;YACL,GAAG,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;SAChE;QACD,OAAO,8BAA8B,CAAC,sBAAsB,EAAE,wBAAwB,CAAC,CAAC;KAC3F;IACD,OAAO,SAAS,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,wBAAwB,CAAC,CAAC;AACxF,CAAC,CAAC;AAEW,QAAA,kBAAkB,GAAG,UAC9B,sBAA6C,EAC7C,wBAAgC;IAAhC,yCAAA,EAAA,gCAAgC;IAE1B,IAAA,KAGF,kBAAU,CAAY,yBAAe,CAAC,EAFtC,aAAyB,EAAhB,SAAS,eAAA,EAAE,GAAG,SAAA,EACvB,QAAQ,cAC8B,CAAC;IAE3C,IAAI,QAAQ,EAAE;QACV,OAAO,8BAA8B,CAAC,sBAAsB,EAAE,wBAAwB,CAAC,CAAC;KAC3F;IAED,OAAO,qBAAqB,CAAC,SAAS,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,GAAG,CAAC,CAAC;AACnG,CAAC,CAAC;AAsBW,QAAA,WAAW,GAAG,UAAC,OAA2B;IACnD,IAAM,eAAe,GAAG,OAAO;QAC3B,CAAC,CAAE,OAA6B;QAChC,CAAC,CAAC;YACI,aAAa,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE;SACvD,CAAC;IAEJ,IAAA,KACA,eAAe,cADoF,EAAvE,sBAAsB,eAAA,EAAE,mBAA6C,EAAhC,wBAAwB,mBAAG,KAAK,KAAE,CACnF;IACd,IAAA,KAIF,kBAAU,CAAY,yBAAe,CAAC,EAHtC,QAAQ,cAAA,EACR,QAAQ,cAAA,EACR,aAAwC,EAA/B,KAAK,WAAA,EAAE,SAAS,eAAA,EAAE,MAAM,YAAA,EAAE,GAAG,SACA,CAAC;IAC3C,IAAI,QAAQ,EAAE;QACV,OAAO;YACH,aAAa,EAAE,8BAA8B,CAAC,sBAAsB,EAAE,wBAAwB,CAAC;YAC/F,MAAM,QAAA;YACN,wBAAwB,EAAE,UAAC,QAAgB;gBAAhB,yBAAA,EAAA,gBAAgB;gBACvC,WAAW,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC;gBAC7C,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,GAAG,CAAC,EAAZ,CAAY,CAAC,CAAC;YAClD,CAAC;YACD,mBAAmB,EAAE;gBACjB,WAAW,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC;gBACxC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,IAAI,CAAC,EAAb,CAAa,CAAC,CAAC;YACnD,CAAC;YACD,qBAAqB,EAAE;gBACnB,WAAW,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;gBAC1C,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,mBAAmB;iBAC9B,CAAC;YACN,CAAC;YACD,oBAAoB,EAAE;gBAClB,WAAW,CAAC,GAAG,EAAE,uBAAuB,CAAC,CAAC;gBAC1C,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,mBAAmB;iBAC9B,CAAC;YACN,CAAC;YACD,GAAG,EAAE;gBACD,IAAI,EAAE;oBACF,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;gBACjC,CAAC;gBACD,YAAY,EAAE;oBACV,WAAW,CAAC,GAAG,EAAE,oBAAoB,CAAC,CAAC;gBAC3C,CAAC;aACJ;SACJ,CAAC;KACL;IACD,IAAM,cAAc,GAAG;QACnB,IAAI,GAAG,EAAE;YACL,GAAG,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;SACnC;IACL,CAAC,CAAC;IACF,IAAM,IAAI,GAAG,UAAC,GAAa;QACvB,IAAI,SAAS,IAAI,SAAS,CAAC,OAAO,EAAE;YAChC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;SAC1B;aAAM;YACH,cAAc,EAAE,CAAC;SACpB;IACL,CAAC,CAAC;IACF,IAAM,YAAY,GAAG,UAAC,IAAgB;QAClC,IAAI,SAAS,IAAI,SAAS,CAAC,QAAQ,EAAE;YACjC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SAC5B;aAAM;YACH,cAAc,EAAE,CAAC;SACpB;IACL,CAAC,CAAC;IAEF,IAAM,wBAAwB,GAAG,UAAC,QAAgB;QAAhB,yBAAA,EAAA,gBAAgB;QAC9C,IAAI,SAAS,IAAI,SAAS,CAAC,wBAAwB,EAAE;YACjD,OAAO,SAAS,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,UAAC,IAAI;gBAC1D,IAAI,QAAQ,EAAE;oBACV,QAAQ,CAAC,UAAC,CAAC,IAAK,OAAA,uBAAM,CAAC,KAAE,eAAe,EAAE,SAAS,CAAC,oBAAoB,IAAG,EAA3D,CAA2D,CAAC,CAAC;iBAChF;gBACD,OAAO,IAAI,CAAC;YAChB,CAAC,CAAC,CAAC;SACN;QACD,cAAc,EAAE,CAAC;QACjB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,GAAG,CAAC,EAAZ,CAAY,CAAC,CAAC;IAClD,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrB,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,OAAO;QACH,wBAAwB,0BAAA;QACxB,aAAa,EAAE,qBAAqB,CAAC,SAAS,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,GAAG,CAAC;QACtG,mBAAmB,EAAE,UAAC,GAAW;YAC7B,OAAO,SAAS,KAAK,IAAI;gBACrB,CAAC,CAAE,SAA8B,CAAC,mBAAmB,CAAC,GAAG,CAAC;gBAC1D,CAAC,CAAC,IAAI,OAAO,CAAC,UAAC,OAAO,IAAK,OAAA,OAAO,CAAC,IAAI,CAAC,EAAb,CAAa,CAAC,CAAC;QAClD,CAAC;QACD,qBAAqB,EAAE;YACnB,IAAI,KAAK,EAAE;gBACP,OAAO,KAAK,CAAC,qBAAqB,EAAE,CAAC;aACxC;YACD,IAAI,GAAG,EAAE;gBACL,GAAG,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;aACrD;YACD,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,sCAAsC;aACjD,CAAC;QACN,CAAC;QACD,oBAAoB,EAAE;YAClB,IAAI,KAAK,EAAE;gBACP,OAAO,KAAK,CAAC,oBAAoB,EAAE,CAAC;aACvC;YACD,IAAI,GAAG,EAAE;gBACL,GAAG,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;aACpD;YACD,OAAO;gBACH,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,sCAAsC;aACjD,CAAC;QACN,CAAC;QACD,MAAM,QAAA;QACN,GAAG,EAAE;YACD,IAAI,MAAA;YACJ,YAAY,cAAA;SACf;KACJ,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ children: React.ReactNode;
4
+ debugMode: boolean;
5
+ isCollapse: boolean;
6
+ onClickCollapse(): void;
7
+ error?: Error | null;
8
+ }
9
+ declare const ReactErrorBoundaryContainer: React.SFC<Props>;
10
+ export default ReactErrorBoundaryContainer;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ var react_1 = __importDefault(require("react"));
18
+ var ReactErrorBoundaryContainer = function (_a) {
19
+ var children = _a.children, debugMode = _a.debugMode, isCollapse = _a.isCollapse, onClickCollapse = _a.onClickCollapse, error = _a.error;
20
+ var btnStyle = {
21
+ display: 'inline-block',
22
+ verticalAlign: 'middle',
23
+ border: '1px solid transparent',
24
+ padding: '0.375rem 0.75rem',
25
+ fontSize: '1rem',
26
+ lineHeight: 1.5,
27
+ borderRadius: '0.25rem',
28
+ marginLeft: '16px',
29
+ transition: "background-color 0.15s ease-in-out,\n border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out"
30
+ };
31
+ return (react_1.default.createElement(react_1.default.Fragment, null,
32
+ debugMode && (react_1.default.createElement("div", { className: "fsErrorDebugContainer", style: {
33
+ backgroundColor: 'red',
34
+ minHeight: '6vh',
35
+ position: 'fixed',
36
+ zIndex: 9999,
37
+ bottom: 0,
38
+ width: '100%',
39
+ opacity: isCollapse ? 1 : 0.4,
40
+ display: 'flex',
41
+ flexDirection: 'column',
42
+ padding: '0px 16px',
43
+ transition: 'opacity 0.5s ease-in-out'
44
+ } },
45
+ react_1.default.createElement("div", { style: {
46
+ display: 'flex',
47
+ alignItems: 'center',
48
+ width: '100%',
49
+ marginBottom: '8px',
50
+ marginTop: '8px'
51
+ } },
52
+ react_1.default.createElement("h3", { style: { color: 'white' } }, "Flagship React SDK has crashed."),
53
+ react_1.default.createElement("button", { style: __assign({}, btnStyle), onClick: onClickCollapse }, isCollapse ? 'Hide details' : 'Show details')),
54
+ error && (react_1.default.createElement("div", { style: {
55
+ maxHeight: isCollapse ? 200 : 0,
56
+ overflow: 'auto',
57
+ color: 'wheat',
58
+ whiteSpace: 'pre-line',
59
+ transition: 'max-height 0.5s ease-in-out'
60
+ } }, "" + error.stack)))),
61
+ react_1.default.createElement("div", { id: "flagshipSafeModeContainer" }, children)));
62
+ };
63
+ ReactErrorBoundaryContainer.defaultProps = {};
64
+ exports.default = ReactErrorBoundaryContainer;
65
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ReactErrorBoundaryContainer/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA0B;AAU1B,IAAM,2BAA2B,GAAqB,UAAC,EAM/C;QALJ,QAAQ,cAAA,EACR,SAAS,eAAA,EACT,UAAU,gBAAA,EACV,eAAe,qBAAA,EACf,KAAK,WAAA;IAEL,IAAM,QAAQ,GAAG;QACb,OAAO,EAAE,cAAc;QACvB,aAAa,EAAE,QAAQ;QACvB,MAAM,EAAE,uBAAuB;QAC/B,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,GAAG;QACf,YAAY,EAAE,SAAS;QACvB,UAAU,EAAE,MAAM;QAClB,UAAU,EAAE,2GACiD;KAChE,CAAC;IAEF,OAAO,CACH;QACK,SAAS,IAAI,CACV,uCACI,SAAS,EAAC,uBAAuB,EACjC,KAAK,EAAE;gBACH,eAAe,EAAE,KAAK;gBACtB,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,OAAO;gBACjB,MAAM,EAAE,IAAI;gBACZ,MAAM,EAAE,CAAC;gBACT,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;gBAC7B,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,QAAQ;gBACvB,OAAO,EAAE,UAAU;gBACnB,UAAU,EAAE,0BAA0B;aACzC;YAED,uCACI,KAAK,EAAE;oBACH,OAAO,EAAE,MAAM;oBACf,UAAU,EAAE,QAAQ;oBACpB,KAAK,EAAE,MAAM;oBACb,YAAY,EAAE,KAAK;oBACnB,SAAS,EAAE,KAAK;iBACnB;gBAED,sCAAI,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,sCAAsC;gBACnE,0CAAQ,KAAK,eAAO,QAAQ,GAAI,OAAO,EAAE,eAAe,IACnD,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CACxC,CACP;YAEL,KAAK,IAAI,CACN,uCACI,KAAK,EAAE;oBACH,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBAC/B,QAAQ,EAAE,MAAM;oBAChB,KAAK,EAAE,OAAO;oBACd,UAAU,EAAE,UAAU;oBACtB,UAAU,EAAE,6BAA6B;iBAC5C,IAEA,KAAI,KAAe,CAAC,KAAO,CAC1B,CACT,CACC,CACT;QACD,uCAAK,EAAE,EAAC,2BAA2B,IAAE,QAAQ,CAAO,CACrD,CACN,CAAC;AACN,CAAC,CAAC;AAEF,2BAA2B,CAAC,YAAY,GAAG,EAAE,CAAC;AAE9C,kBAAe,2BAA2B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './FlagshipContext';
2
+ export * from './FlagshipHooks';
package/dist/index.js ADDED
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./FlagshipContext"), exports);
14
+ __exportStar(require("./FlagshipHooks"), exports);
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAkC;AAClC,kDAAgC"}
@@ -0,0 +1,5 @@
1
+ import { LogConfig, FsLogger } from '@flagship.io/js-sdk-logs';
2
+ declare const FsLogger: {
3
+ getLogger: (config?: LogConfig) => FsLogger;
4
+ };
5
+ export default FsLogger;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var js_sdk_logs_1 = __importDefault(require("@flagship.io/js-sdk-logs"));
7
+ var FsLogger = {
8
+ getLogger: function (config) {
9
+ if (config === void 0) { config = { enableConsoleLogs: false, nodeEnv: 'unknown' }; }
10
+ return js_sdk_logs_1.default.getLogger(config, 'Flagship React SDK');
11
+ }
12
+ };
13
+ exports.default = FsLogger;
14
+ //# sourceMappingURL=loggerHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loggerHelper.js","sourceRoot":"","sources":["../../src/lib/loggerHelper.ts"],"names":[],"mappings":";;;;;AAAA,yEAA+E;AAE/E,IAAM,QAAQ,GAAG;IACb,SAAS,EAAE,UAAC,MAAoE;QAApE,uBAAA,EAAA,WAAsB,iBAAiB,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE;QAC5E,OAAO,qBAAc,CAAC,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAClE,CAAC;CACJ,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const areWeTestingWithJest: () => boolean;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.areWeTestingWithJest = void 0;
4
+ exports.areWeTestingWithJest = function () {
5
+ return process.env.JEST_WORKER_ID !== undefined;
6
+ };
7
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG;IAChC,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC;AACpD,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var enzyme_1 = require("enzyme");
7
+ var enzyme_adapter_react_16_1 = __importDefault(require("enzyme-adapter-react-16"));
8
+ enzyme_1.configure({ adapter: new enzyme_adapter_react_16_1.default() });
9
+ //# sourceMappingURL=setupTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setupTests.js","sourceRoot":"","sources":["../src/setupTests.ts"],"names":[],"mappings":";;;;;AAAA,iCAAmC;AACnC,oFAA8C;AAE9C,kBAAS,CAAC,EAAE,OAAO,EAAE,IAAI,iCAAO,EAAE,EAAE,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { DecisionApiResponseData } from '@flagship.io/js-sdk';
2
+ declare const oneModifInMoreThanOneCampaign: DecisionApiResponseData;
3
+ export default oneModifInMoreThanOneCampaign;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var env_1 = require("../env");
4
+ var oneModifInMoreThanOneCampaign = {
5
+ visitorId: env_1.vId,
6
+ campaigns: [
7
+ {
8
+ id: 'blntcamqmdvg04g371f0',
9
+ variationGroupId: 'blntcamqmdvg04g371h0',
10
+ variation: {
11
+ id: 'blntcamqmdvg04g371hg',
12
+ modifications: {
13
+ type: 'FLAG',
14
+ value: {
15
+ psp: 'dalenys'
16
+ }
17
+ }
18
+ }
19
+ },
20
+ {
21
+ id: 'bmjdprsjan0g01uq2crg',
22
+ variationGroupId: 'bmjdprsjan0g01uq2csg',
23
+ variation: {
24
+ id: 'bmjdprsjan0g01uq2ctg',
25
+ modifications: {
26
+ type: 'JSON',
27
+ value: {
28
+ algorithmVersion: 'new'
29
+ }
30
+ }
31
+ }
32
+ },
33
+ {
34
+ id: 'bmjdprsjan0g01uq2ceg',
35
+ variationGroupId: 'bmjdprsjan0g01uq2ceg',
36
+ variation: {
37
+ id: 'bmjdprsjan0g01uq1ctg',
38
+ modifications: {
39
+ type: 'JSON',
40
+ value: {
41
+ algorithmVersion: 'yolo2',
42
+ psp: 'yolo',
43
+ hello: 'world'
44
+ }
45
+ }
46
+ }
47
+ }
48
+ ]
49
+ };
50
+ exports.default = oneModifInMoreThanOneCampaign;
51
+ //# sourceMappingURL=oneModifInMoreThanOneCampaign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oneModifInMoreThanOneCampaign.js","sourceRoot":"","sources":["../../../../src/tests/mock/apiAnswers/oneModifInMoreThanOneCampaign.tsx"],"names":[],"mappings":";;AACA,8BAA6B;AAE7B,IAAM,6BAA6B,GAA4B;IAC3D,SAAS,EAAE,SAAG;IACd,SAAS,EAAE;QACP;YACI,EAAE,EAAE,sBAAsB;YAC1B,gBAAgB,EAAE,sBAAsB;YACxC,SAAS,EAAE;gBACP,EAAE,EAAE,sBAAsB;gBAC1B,aAAa,EAAE;oBACX,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE;wBACH,GAAG,EAAE,SAAS;qBACjB;iBACJ;aACJ;SACJ;QACD;YACI,EAAE,EAAE,sBAAsB;YAC1B,gBAAgB,EAAE,sBAAsB;YACxC,SAAS,EAAE;gBACP,EAAE,EAAE,sBAAsB;gBAC1B,aAAa,EAAE;oBACX,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE;wBACH,gBAAgB,EAAE,KAAK;qBAC1B;iBACJ;aACJ;SACJ;QACD;YACI,EAAE,EAAE,sBAAsB;YAC1B,gBAAgB,EAAE,sBAAsB;YACxC,SAAS,EAAE;gBACP,EAAE,EAAE,sBAAsB;gBAC1B,aAAa,EAAE;oBACX,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE;wBACH,gBAAgB,EAAE,OAAO;wBACzB,GAAG,EAAE,MAAM;wBACX,KAAK,EAAE,OAAO;qBACjB;iBACJ;aACJ;SACJ;KACJ;CACJ,CAAC;AAEF,kBAAe,6BAA6B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const vId = "test-vid";
2
+ declare const _default: {
3
+ vId: string;
4
+ };
5
+ export default _default;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.vId = void 0;
4
+ exports.vId = 'test-vid';
5
+ exports.default = {
6
+ vId: exports.vId
7
+ };
8
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../../src/tests/mock/env.tsx"],"names":[],"mappings":";;;AAAa,QAAA,GAAG,GAAG,UAAU,CAAC;AAE9B,kBAAe;IACX,GAAG,aAAA;CACN,CAAC"}
@@ -0,0 +1,74 @@
1
+ import React from 'react';
2
+ import { FlagshipSdkConfig } from '@flagship.io/js-sdk';
3
+ import { FsState } from '../../FlagshipContext';
4
+ export declare const apiAnswers: {
5
+ oneModifInMoreThanOneCampaign: import("@flagship.io/js-sdk").DecisionApiResponseData;
6
+ };
7
+ export declare const defaultConfig: FlagshipSdkConfig;
8
+ export declare const DefaultLoadingComponent: React.SFC;
9
+ export declare const defaultContext: {
10
+ hasError: boolean;
11
+ state: FsState;
12
+ };
13
+ export declare const anonymousIdForTest = "anonymousTest";
14
+ export declare const providerProps: {
15
+ visitorData: {
16
+ id: string;
17
+ context: {
18
+ isAuth: boolean;
19
+ isVip: boolean;
20
+ };
21
+ };
22
+ config: {
23
+ fetchNow: boolean;
24
+ enableConsoleLogs: boolean;
25
+ enableSafeMode: boolean;
26
+ enableErrorLayout: boolean;
27
+ nodeEnv: string;
28
+ apiKey: string;
29
+ };
30
+ envId: string;
31
+ };
32
+ export declare const fetchedModifications: ({
33
+ id: string;
34
+ slug: null;
35
+ type: string;
36
+ variation: {
37
+ id: string;
38
+ modifications: {
39
+ type: string;
40
+ value: {
41
+ array: number[];
42
+ complex: {
43
+ carray: {
44
+ cobject: number;
45
+ }[];
46
+ };
47
+ object: {
48
+ value: number;
49
+ };
50
+ discount?: undefined;
51
+ };
52
+ };
53
+ reference: boolean;
54
+ };
55
+ variationGroupId: string;
56
+ } | {
57
+ id: string;
58
+ slug: null;
59
+ type: string;
60
+ variation: {
61
+ id: string;
62
+ modifications: {
63
+ type: string;
64
+ value: {
65
+ discount: string;
66
+ array?: undefined;
67
+ complex?: undefined;
68
+ object?: undefined;
69
+ };
70
+ };
71
+ reference: boolean;
72
+ };
73
+ variationGroupId: string;
74
+ })[];
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.fetchedModifications = exports.providerProps = exports.anonymousIdForTest = exports.defaultContext = exports.DefaultLoadingComponent = exports.defaultConfig = exports.apiAnswers = void 0;
7
+ var react_1 = __importDefault(require("react"));
8
+ var oneModifInMoreThanOneCampaign_1 = __importDefault(require("./apiAnswers/oneModifInMoreThanOneCampaign"));
9
+ var env_1 = require("./env");
10
+ exports.apiAnswers = {
11
+ oneModifInMoreThanOneCampaign: oneModifInMoreThanOneCampaign_1.default
12
+ };
13
+ exports.defaultConfig = {};
14
+ exports.DefaultLoadingComponent = function () { return react_1.default.createElement("div", null, "Loading Flagship React SDK"); };
15
+ exports.defaultContext = {
16
+ hasError: false,
17
+ state: {
18
+ fsSdk: null,
19
+ fsVisitor: null,
20
+ log: null,
21
+ fsModifications: null,
22
+ status: {
23
+ isSdkReady: false,
24
+ isLoading: true,
25
+ isVisitorDefined: false,
26
+ lastRefresh: null,
27
+ firstInitSuccess: null,
28
+ hasError: false
29
+ },
30
+ private: {
31
+ previousFetchedModifications: undefined
32
+ }
33
+ }
34
+ };
35
+ exports.anonymousIdForTest = 'anonymousTest';
36
+ exports.providerProps = {
37
+ visitorData: {
38
+ id: env_1.vId,
39
+ context: { isAuth: true, isVip: false }
40
+ },
41
+ config: {
42
+ fetchNow: true,
43
+ enableConsoleLogs: true,
44
+ enableSafeMode: true,
45
+ enableErrorLayout: true,
46
+ nodeEnv: 'production',
47
+ apiKey: 'M2FYdfXsJ12tjJQuadw7y9DZojqNGBvecpjGXY93'
48
+ },
49
+ envId: 'bn1ab7m56qolupi5sa0g'
50
+ };
51
+ exports.fetchedModifications = [
52
+ {
53
+ id: 'bsq046crms2g1jsvtb20',
54
+ slug: null,
55
+ type: 'ab',
56
+ variation: {
57
+ id: 'bsq046crms2g1jsvtb40',
58
+ modifications: {
59
+ type: 'JSON',
60
+ value: {
61
+ array: [1, 2, 3],
62
+ complex: {
63
+ carray: [
64
+ {
65
+ cobject: 0
66
+ }
67
+ ]
68
+ },
69
+ object: {
70
+ value: 123456
71
+ }
72
+ }
73
+ },
74
+ reference: false
75
+ },
76
+ variationGroupId: 'bsq046crms2g1jsvtb30'
77
+ },
78
+ {
79
+ id: 'bqjfstuirtfg01mctmn0',
80
+ slug: null,
81
+ type: 'perso',
82
+ variation: {
83
+ id: 'bqjfstuirtfg01mctmp0',
84
+ modifications: { type: 'JSON', value: { discount: '10%' } },
85
+ reference: false
86
+ },
87
+ variationGroupId: 'bqjfstuirtfg01mctmo0'
88
+ }
89
+ ];
90
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tests/mock/index.tsx"],"names":[],"mappings":";;;;;;AAAA,gDAAwD;AAIxD,6GAAuF;AACvF,6BAA4B;AAEf,QAAA,UAAU,GAAG;IAEtB,6BAA6B,yCAAA;CAChC,CAAC;AAEW,QAAA,aAAa,GAAsB,EAE/C,CAAC;AAEW,QAAA,uBAAuB,GAAc,cAAM,OAAA,wEAAqC,EAArC,CAAqC,CAAC;AAEjF,QAAA,cAAc,GAGvB;IACA,QAAQ,EAAE,KAAK;IACf,KAAK,EAAE;QACH,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;QACf,GAAG,EAAE,IAAI;QACT,eAAe,EAAE,IAAI;QACrB,MAAM,EAAE;YACJ,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,IAAI;YACf,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,IAAI;YACjB,gBAAgB,EAAE,IAAI;YACtB,QAAQ,EAAE,KAAK;SAClB;QACD,OAAO,EAAE;YACL,4BAA4B,EAAE,SAAS;SAC1C;KACJ;CACJ,CAAC;AAEW,QAAA,kBAAkB,GAAG,eAAe,CAAC;AAErC,QAAA,aAAa,GAAG;IACzB,WAAW,EAAE;QACT,EAAE,EAAE,SAAG;QACP,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;KAC1C;IACD,MAAM,EAAE;QACJ,QAAQ,EAAE,IAAI;QACd,iBAAiB,EAAE,IAAI;QACvB,cAAc,EAAE,IAAI;QACpB,iBAAiB,EAAE,IAAI;QACvB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,0CAA0C;KACrD;IACD,KAAK,EAAE,sBAAsB;CAChC,CAAC;AAEW,QAAA,oBAAoB,GAAG;IAChC;QACI,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,IAAI;QACV,SAAS,EAAE;YACP,EAAE,EAAE,sBAAsB;YAC1B,aAAa,EAAE;gBACX,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE;oBACH,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBAChB,OAAO,EAAE;wBACL,MAAM,EAAE;4BACJ;gCACI,OAAO,EAAE,CAAC;6BACb;yBACJ;qBACJ;oBACD,MAAM,EAAE;wBACJ,KAAK,EAAE,MAAM;qBAChB;iBACJ;aACJ;YACD,SAAS,EAAE,KAAK;SACnB;QACD,gBAAgB,EAAE,sBAAsB;KAC3C;IACD;QACI,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,IAAI;QACV,IAAI,EAAE,OAAO;QACb,SAAS,EAAE;YACP,EAAE,EAAE,sBAAsB;YAC1B,aAAa,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;YAC3D,SAAS,EAAE,KAAK;SACnB;QACD,gBAAgB,EAAE,sBAAsB;KAC3C;CACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flagship.io/react-sdk",
3
- "version": "2.1.10-beta.0",
3
+ "version": "2.1.10-beta.1",
4
4
  "description": "Flagship REACT SDK",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",