@flagship.io/react-sdk 3.0.1 → 3.0.3-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/FlagshipContext.d.ts +99 -0
- package/dist/FlagshipContext.js +312 -0
- package/dist/FlagshipContext.js.map +1 -0
- package/dist/FlagshipErrorBoundary.d.ts +34 -0
- package/dist/FlagshipErrorBoundary.js +95 -0
- package/dist/FlagshipErrorBoundary.js.map +1 -0
- package/dist/FlagshipHooks.d.ts +33 -0
- package/dist/FlagshipHooks.js +198 -0
- package/dist/FlagshipHooks.js.map +1 -0
- package/dist/components/ReactErrorBoundaryContainer/index.d.ts +10 -0
- package/dist/components/ReactErrorBoundaryContainer/index.js +65 -0
- package/dist/components/ReactErrorBoundaryContainer/index.js.map +1 -0
- package/dist/{types/index.d.ts → index.d.ts} +0 -1
- package/dist/index.js +14 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/loggerHelper.d.ts +5 -0
- package/dist/lib/loggerHelper.js +14 -0
- package/dist/lib/loggerHelper.js.map +1 -0
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.js +7 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/setupTests.d.ts +1 -0
- package/dist/setupTests.js +9 -0
- package/dist/setupTests.js.map +1 -0
- package/dist/tests/mock/apiAnswers/oneModifInMoreThanOneCampaign.d.ts +3 -0
- package/dist/tests/mock/apiAnswers/oneModifInMoreThanOneCampaign.js +51 -0
- package/dist/tests/mock/apiAnswers/oneModifInMoreThanOneCampaign.js.map +1 -0
- package/dist/tests/mock/env.d.ts +5 -0
- package/dist/tests/mock/env.js +8 -0
- package/dist/tests/mock/env.js.map +1 -0
- package/dist/tests/mock/index.d.ts +74 -0
- package/dist/tests/mock/index.js +90 -0
- package/dist/tests/mock/index.js.map +1 -0
- package/package.json +2 -2
- package/dist/es/Flag.js +0 -36
- package/dist/es/FlagshipContext.js +0 -229
- package/dist/es/FlagshipHooks.js +0 -372
- package/dist/es/constants.js +0 -2
- package/dist/es/index.js +0 -3
- package/dist/es/utils.js +0 -77
- package/dist/esm/Flag.js +0 -55
- package/dist/esm/FlagshipContext.js +0 -253
- package/dist/esm/FlagshipHooks.js +0 -474
- package/dist/esm/constants.js +0 -2
- package/dist/esm/index.js +0 -3
- package/dist/esm/utils.js +0 -77
- package/dist/index.browser.js +0 -2
- package/dist/index.browser.js.map +0 -1
- package/dist/types/Flag.d.ts +0 -9
- package/dist/types/FlagshipContext.d.ts +0 -97
- package/dist/types/FlagshipHooks.d.ts +0 -130
- package/dist/types/constants.d.ts +0 -2
- package/dist/types/utils.d.ts +0 -9
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAiG;AAEjG,+DAU6B;AAC7B,oDAA6B;AAE7B,oEAA8C;AAE9C,kFAA4F;AAC5F,qCAAmD;AA6CtC,QAAA,SAAS,GAAY;IAC9B,KAAK,EAAE,IAAI;IACX,SAAS,EAAE,IAAI;IACf,GAAG,EAAE,IAAI;IACT,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE;QACJ,SAAS,EAAE,IAAI;QACf,UAAU,EAAE,KAAK;QACjB,gBAAgB,EAAE,KAAK;QACvB,gBAAgB,EAAE,IAAI;QACtB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,KAAK;KAClB;IACD,OAAO,EAAE;QACL,4BAA4B,EAAE,SAAS;KAC1C;CACJ,CAAC;AASF,IAAM,eAAe,GAAG,eAAK,CAAC,aAAa,CAAY,EAAE,KAAK,eAAO,iBAAS,CAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;AA6CxG,QAAA,gBAAgB,GAAqC,UAAC,EA0B3C;QAzBpB,QAAQ,cAAA,EACR,WAAW,iBAAA,EACX,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,gBAAgB,sBAAA,EAChB,oBAAoB,0BAAA,EACpB,gBAAgB,sBAAA,EAChB,4BAA4B,kCAAA,EAC5B,WAAW,iBAAA,EACX,UAAU,gBAAA,EACV,kBAAkB,wBAAA,EAClB,eAAe,qBAAA,EACf,QAAQ,cAAA,EACR,OAAO,aAAA,EACP,QAAQ,cAAA,EACR,WAAW,iBAAA,EACX,iBAAiB,uBAAA,EACjB,iBAAiB,uBAAA,EACjB,cAAc,oBAAA,EACd,iBAAiB,uBAAA,EACjB,OAAO,aAAA,EACP,WAAW,iBAAA,EACX,MAAM,YAAA,EACN,YAAY,kBAAA,EACZ,eAAe,qBAAA;IAEf,IAAM,EAAE,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,EAAE,CAAC;IAC3B,IAAM,OAAO,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAC;IACrC,IAAM,eAAe,GAAG,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,eAAe,KAAI,KAAK,CAAC;IAC9D,IAAM,uBAAuB,GAAG,cAAM,CAAU,eAAe,CAAC,CAAC;IACjE,IAAM,UAAU,GAAG,cAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAA,KAAoC,iBAAM,EAAE,EAA1C,SAAS,eAAA,EAAE,QAAQ,cAAA,EAAE,QAAQ,cAAa,CAAC;IACnD,IAAM,MAAM,GAAG,4BAAoB,EAAE,CAAC;IACtC,IAAM,oBAAoB,GAAG,cAA8B,OAAA,CAAC;QACxD,QAAQ,EAAE,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;QACzD,YAAY,EAAE,YAAY,IAAI,KAAK;QACnC,eAAe,EAAE,eAAe,IAAI,IAAI;QACxC,WAAW,EAAE,OAAO,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW;QACnE,OAAO,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;QAC1D,iBAAiB,EAAE,OAAO,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB;QACrF,iBAAiB,EAAE,OAAO,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,iBAAiB;QACrF,cAAc,EAAE,OAAO,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc;QAC5E,iBAAiB,EAAE,OAAO,iBAAiB,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB;QACpF,OAAO,EAAE,OAAO,IAAI,YAAY;QAChC,gBAAgB,EAAE,gBAAgB,IAAI,IAAI;QAC1C,WAAW,aAAA;QACX,MAAM,QAAA;KACT,CAAC,EAdyD,CAczD,CAAC;IACH,IAAM,aAAa,GAAG,oBAAoB,EAAE,CAAC;IACvC,IAAA,KAAoB,gBAAQ,uBAC3B,iBAAS,KACZ,GAAG,EAAE,sBAAY,CAAC,SAAS,CAAC,aAAgE,CAAC,EAC7F,MAAM,EAAE,aAAa,EACrB,OAAO,wBACA,iBAAS,CAAC,OAAO,KACpB,4BAA4B,EAAE,oBAAoB,OAExD,EARK,KAAK,QAAA,EAAE,QAAQ,QAQpB,CAAC;IACG,IAAA,KAAwB,gBAAQ,CAGnC,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAH7B,SAAS,QAAA,EAAE,QAAQ,QAGU,CAAC;IAErC,IAAM,WAAW,GAAG,UAAC,KAAY;QAC7B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,YAAU,KAAK,CAAC,KAAO,CAAC,CAAC;QACzC,QAAQ,CAAC,EAAE,KAAK,OAAA,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEE,IAAA,KAEA,KAAK,OAFiE,EAA5D,SAAS,eAAA,EAAE,gBAAgB,sBAAA,EAAE,gBAAgB,sBAAA,EAAE,WAAW,iBAAA,EACpE,SAAS,GACT,KAAK,UADI,CACH;IAEV,IAAM,gBAAgB,GAAG,UAAC,QAAa;QACnC,IAAI;YACA,QAAQ,EAAE,CAAC;SACd;QAAC,OAAO,KAAK,EAAE;YACZ,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,YAAU,KAAK,CAAC,KAAO,CAAC,CAAC;YACzC,QAAQ,CAAC,EAAE,KAAK,OAAA,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;SACvC;IACL,CAAC,CAAC;IACF,IAAM,aAAa,GAAG;QAClB,IAAM,SAAS,GAAG;YACd,QAAQ,EAAE;gBACN,KAAK,EAAE,EAAE;gBACT,WAAW,EAAE;oBACT,YAAY,EAAE,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,YAAY;iBAC1C;aACJ;SACJ,CAAC;QACF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,4BAA4B,CAAC,EAAE;YAC3D,sCACO,aAAa,GACb,SAAS,KACZ,oBAAoB,iBAAM,KAAK,CAAC,OAAO,CAAC,4BAA4B,KACtE;SACL;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,4BAA4B,EAAE;YAC5C,KAAK,CAAC,GAAG,CAAC,IAAI,CACV,uGAAuG,CAC1G,CAAC;SACL;QACD,6BAAY,aAAa,GAAK,SAAS,EAAG;IAC9C,CAAC,CAAC;IACF,IAAM,cAAc,GAAsB,aAAa,EAAE,CAAC;IAE1D,IAAM,kBAAkB,GAAG,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,kBAAkB,CAAC;IAE3D,IAAM,OAAO,GAAG,UAAC,iBAA2D;QAChE,IAAQ,SAAS,GAA6B,cAAc,OAA3C,EAAK,mBAAmB,UAAK,cAAc,EAA9D,UAA6C,CAAF,CAAoB;QACrE,OAAO,gBAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,SAAS,wBAC/B,mBAAmB,KACtB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,EACzD,gBAAgB,EACZ,cAAc,CAAC,gBAAgB,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc,CAAC,gBAAgB,IACpG,CAAC;IACP,CAAC,CAAC;IAEF,IAAM,yBAAyB,GAAG,UAAC,KAAgB;;QAC/C,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,KAAI,KAAK,CAAC,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE;YACxF,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,KAAK,OAAO,EAAE;gBACrC,KAAK,CAAC,GAAG,CAAC,KAAK,CACX,sFAAoF,IAAI,CAAC,SAAS,OAC9F,KAAK,CAAC,SAAS,0CAAE,OAAO,CAC3B,YAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAG,CACrC,CAAC;aACL;iBAAM;gBACH,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;aACrD;YACD,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,EAAE;YAClB,KAAK,CAAC,GAAG,CAAC,KAAK,CACX,mGAA0F,KAAK,CAAC,SAAS,0CAAE,KAAK,aAAO,KAAK,CAAC,KAAK,yBAAa,KAAK,CAAC,SAAS,0CAAE,EAAE,aAAO,EAAE,MAAG,CACjL,CAAC;SACL;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC;IAEF,IAAM,wBAAwB,GAAG,UAAC,KAAgB;QAC9C,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,sBAAsB,EAAE,UAAC,EAAyC;gBAAvC,MAAM,YAAA,EAAE,OAAO,aAAA;YAC5D,IAAI,kBAAkB,EAAE;gBACpB,kBAAkB,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC;aAC9D;QACL,CAAC,CAAC,CAAC;QACH,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,qBAAqB,EAAE,UAAC,KAAY;YACtD,IAAI,eAAe,EAAE;gBACjB,eAAe,CAAC,KAAK,CAAC,CAAC;aAC1B;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,WAAW,IAAI,CAAC,gBAAgB,EAAE;YAClC,gBAAgB,CAAC,WAAW,CAAC,CAAC;SACjC;QAGD,IAAM,kBAAkB,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAE5D,IAAM,eAAe,GAAG,kBAAkB;YACtC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,OAAiC,CAAC;YACzD,CAAC,CAAE,KAAa,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,OAAO,SAAA,EAAE,CAAC,CAAC;QACjE,QAAQ,CAAC,UAAC,CAAC,IAAK,OAAA,uBACT,CAAC,KACJ,MAAM,wBACC,CAAC,CAAC,MAAM,KACX,gBAAgB,EAAE,CAAC,CAAC,eAAe,EACnC,SAAS,EAAE,IAAI,KAEnB,SAAS,EAAE,eAAe,EAC1B,eAAe,EAAE,eAAe,CAAC,oBAAoB,IAAI,IAAI,EAC7D,KAAK,OAAA,IACP,EAVc,CAUd,CAAC,CAAC;QACJ,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,UAAC,SAA8B;YAC/C,IAAA,SAAS,GAAK,SAAS,UAAd,CAAe;YAChC,QAAQ,CAAC,UAAC,CAAC,IAAK,OAAA,uBACT,CAAC,KACJ,MAAM,wBACC,CAAC,CAAC,MAAM,KACX,gBAAgB,EAAE,CAAC,CAAC,eAAe,EACnC,SAAS,EAAE,KAAK,EAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EACrC,QAAQ,EAAE,SAAS,EACnB,gBAAgB,EAAE,CAAC,CAAC,kBAAkB,IAAI,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,KAEpG,SAAS,EAAE,eAAe,EAC1B,KAAK,OAAA,EACL,eAAe,EAAE,eAAe,CAAC,oBAAoB,IAAI,IAAI,EAC7D,OAAO,EAAE;oBACL,4BAA4B,EAAE,eAAe,CAAC,oBAAoB,IAAI,SAAS;iBAClF,IACH,EAhBc,CAgBd,CAAC,CAAC;QACR,CAAC,CAAC,CAAC;QACH,eAAe,CAAC,EAAE,CAAC,WAAW,EAAE,UAAC,IAAmB;YAChD,IAAI,4BAA4B,EAAE;gBAC9B,gBAAgB,CAAC,cAAM,OAAA,4BAA4B,CAAC,IAAI,CAAC,EAAlC,CAAkC,CAAC,CAAC;aAC9D;QACL,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;IAGF,IAAI,CAAC,MAAM,IAAI,QAAQ,IAAI,CAAC,gBAAgB,EAAE;QAC1C,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACpD,IAAM,OAAK,GAAG,OAAO,EAAE,CAAC;QACxB,IAAM,iBAAe,GAAG,OAAK,CAAC,UAAU,CAAC,EAAE,EAAE,OAAiC,CAAC,CAAC;QAChF,QAAQ,CAAC,UAAC,CAAC,IAAK,OAAA,uBACT,CAAC,KACJ,MAAM,wBACC,CAAC,CAAC,MAAM,KACX,gBAAgB,EAAE,CAAC,CAAC,iBAAe,KAEvC,SAAS,EAAE,iBAAe,EAC1B,eAAe,EAAE,iBAAe,CAAC,oBAAoB,IAAI,IAAI,EAC7D,KAAK,SAAA,IACP,EATc,CASd,CAAC,CAAC;KACP;SAAM,IAAI,CAAC,MAAM,IAAI,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,KAAK,IAAI,EAAE;QAC5F,IAAM,KAAK,GAAG,OAAO,EAAE,CAAC;QACxB,wBAAwB,CAAC,KAAK,CAAC,CAAC;KACnC;IAED,IAAM,8BAA8B,GAAG;QACnC,IAAM,oBAAoB,GAAG,uBAAuB,CAAC,OAAO,KAAK,KAAK,IAAI,eAAe,KAAK,IAAI,CAAC;QACnG,IAAM,gBAAgB,GAAG,uBAAuB,CAAC,OAAO,KAAK,IAAI,IAAI,eAAe,KAAK,KAAK,CAAC;QAC/F,IAAM,wBAAwB,GAAG,gBAAgB,IAAI,oBAAoB,CAAC;QAC1E,IAAM,sBAAsB,GAAG,UAAC,GAAqB,EAAE,cAAuB;YAC1E,QAAQ,CAAC,UAAC,CAAC,IAAK,OAAA,uBACT,CAAC,KACJ,eAAe,EAAE,GAAG,CAAC,oBAAoB,EACzC,MAAM,wBACC,CAAC,CAAC,MAAM,KACX,SAAS,EAAE,cAAc,KAE7B,SAAS,EAAE,GAAG,IAChB,EARc,CAQd,CAAC,CAAC;QACR,CAAC,CAAC;QACF,IAAI,CAAC,SAAS,EAAE;YACZ,WAAW,CACP,IAAI,KAAK,CACL,mGAAmG,CACtG,CACJ,CAAC;SACL;aAAM;YACH,IAAI,wBAAwB,EAAE;gBAC1B,SAAS,CAAC,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;aAC1C;YACD,IAAI,gBAAgB,EAAE;gBAElB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE;oBACxB,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC;iBAC9B;gBACD,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAxC,CAAwC,CAAC,CAAC;aACrF;iBAAM,IAAI,oBAAoB,EAAE;gBAC7B,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAM,OAAA,sBAAsB,CAAC,SAAS,EAAE,KAAK,CAAC,EAAxC,CAAwC,CAAC,CAAC;aACnF;YAED,IAAI,wBAAwB,EAAE;gBAC1B,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;aAC3C;SACJ;QAED,uBAAuB,CAAC,OAAO,GAAG,eAAe,CAAC;QAElD,OAAO,wBAAwB,CAAC;IACpC,CAAC,CAAC;IAGF,iBAAS,CAAC;;QAEN,IAAI,UAAU,CAAC,OAAO,EAAE;YACpB,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;YAC3B,OAAO;SACV;QACD,IAAI,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC5B,IAAM,QAAQ,GACV,0JAA0J,CAAC;YAC/J,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YACjC,OAAO;SACV;QACD,IAAI,QAAQ,EAAE;YACV,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;YAC5E,OAAO;SACV;QACD,IAAI,iBAAiB,GAAQ,IAAI,CAAC;QAGlC,IAAM,wBAAwB,GAAG,8BAA8B,EAAE,CAAC;QAClE,IAAI,wBAAwB,EAAE;YAC1B,OAAO;SACV;QAGD,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,KAAK,WAAW,EAAE;YAChE,KAAK,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC;YACnC,KAAK,CAAC,GAAG,CAAC,IAAI,CACV,sKAAsK,CACzK,CAAC;YAEF,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;YAE9C,iBAAiB,GAAG,OAAA,KAAK,CAAC,KAAK,CAAC,MAAM,0CAAE,IAAI,KAAI,IAAI,CAAC;SACxD;QAGD,IAAM,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAGzC,wBAAwB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE1F,iBAAS,CAAC;QACN,IAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,IAAI,KAAK,CAAC,MAAM,CAAC,gBAAgB,KAAK,IAAI,CAAC;QAC3F,IAAI,QAAQ,EAAE;YACV,gBAAgB,CAAC;;gBACb,QAAQ,CACJ;oBACI,MAAM,wBAAO,KAAK,CAAC,MAAM,KAAE,UAAU,YAAA,GAAE;oBACvC,eAAe,EAAE,KAAK,CAAC,eAAe;oBACtC,MAAM,wBAAO,KAAK,CAAC,MAAM,SAAK,KAAK,CAAC,SAAS,0CAAE,MAAM,CAAE;iBAC1D,EACD,KAAK,CAAC,SAAS,CAClB,CAAC;YACN,CAAC,CAAC,CAAC;SACN;IACL,CAAC,EAAE,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAE1D,iBAAS,CAAC;QACN,IAAI,UAAU,IAAI,CAAC,CAAC,gBAAgB,IAAI,gBAAgB,KAAK,WAAW,IAAI,CAAC,SAAS,EAAE;YACpF,gBAAgB,CAAC,UAAU,CAAC,CAAC;SAChC;IACL,CAAC,EAAE,CAAC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,CAAC,CAAC,CAAC;IAOpB,IAAM,aAAa,GAAG;QAClB,IAAM,WAAW,GAAG,CAAC,SAAS,IAAI,CAAC,gBAAgB,CAAC;QACpD,IAAI,SAAS,IAAI,gBAAgB,IAAI,WAAW,IAAI,QAAQ,EAAE;YAC1D,OAAO,8DAAG,gBAAgB,CAAI,CAAC;SAClC;QACD,OAAO,8DAAG,QAAQ,CAAI,CAAC;IAC3B,CAAC,CAAC;IACF,OAAO,CACH,8BAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,KAAK,OAAA,EAAE,QAAQ,UAAA,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,IAC7E,cAAc,CAAC,CAAC,CAAC,CACd,8BAAC,+BAAqB,IAClB,gBAAgB,EAAE,QAAQ,EAC1B,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,CAAC,KAAK,EACtB,WAAW,EAAE,aAAuC,EACpD,aAAa,EAAE,kBAAkB,EACjC,GAAG,EAAE,KAAK,CAAC,GAAG,IAEb,aAAa,EAAE,CACI,CAC3B,CAAC,CAAC,CAAC,CACA,aAAa,EAAE,CAClB,CACsB,CAC9B,CAAC;AACN,CAAC,CAAC;AAEF,wBAAgB,CAAC,YAAY,GAAG;IAC5B,gBAAgB,EAAE,SAAS;IAC3B,QAAQ,EAAE,IAAI;IACd,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,KAAK;IACnB,eAAe,EAAE,SAAS;IAC1B,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,KAAK;IACxB,cAAc,EAAE,KAAK;IACrB,OAAO,EAAE,YAAY;IACrB,WAAW,EAAE,SAAS;IACtB,MAAM,EAAE,SAAS;IACjB,oBAAoB,EAAE,SAAS;IAC/B,WAAW,EAAE;IAEb,CAAC;IACD,UAAU,EAAE;IAEZ,CAAC;IACD,4BAA4B,EAAE;IAE9B,CAAC;IACD,QAAQ,EAAE;IAEV,CAAC;CACJ,CAAC;AAEW,QAAA,gBAAgB,GAAG,eAAe,CAAC,QAAQ,CAAC;AACzD,kBAAe,eAAe,CAAC;AAClB,QAAA,kBAAkB,GAAG,cAAW,OAAA,kBAAU,CAAC,eAAe,CAAC,EAA3B,CAA2B,CAAC"}
|
|
@@ -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 {};
|