@kameleoon/react-sdk 4.0.0 → 4.0.3
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/README.md +17 -20
- package/dist/Feature.d.ts +11 -0
- package/dist/Feature.js +26 -0
- package/dist/Feature.js.map +1 -0
- package/dist/KameleoonContext.d.ts +3 -0
- package/dist/KameleoonContext.js +6 -0
- package/dist/KameleoonContext.js.map +1 -0
- package/dist/KameleoonError.d.ts +5 -0
- package/dist/KameleoonError.js +31 -0
- package/dist/KameleoonError.js.map +1 -0
- package/dist/KameleoonProvider.d.ts +14 -0
- package/dist/KameleoonProvider.js +25 -0
- package/dist/KameleoonProvider.js.map +1 -0
- package/dist/ProviderError.d.ts +3 -0
- package/dist/ProviderError.js +29 -0
- package/dist/ProviderError.js.map +1 -0
- package/dist/compose.d.ts +8 -0
- package/dist/compose.js +58 -0
- package/dist/compose.js.map +1 -0
- package/dist/constants.d.ts +24 -0
- package/dist/constants.js +31 -0
- package/dist/constants.js.map +1 -0
- package/dist/getKameleoonException.d.ts +2 -0
- package/dist/getKameleoonException.js +34 -0
- package/dist/getKameleoonException.js.map +1 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.js +106 -0
- package/dist/index.js.map +1 -0
- package/dist/kameleoonClient.d.ts +16 -0
- package/dist/kameleoonClient.js +17 -0
- package/dist/kameleoonClient.js.map +1 -0
- package/dist/types.d.ts +37 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/useActivateFeature.d.ts +14 -0
- package/dist/useActivateFeature.js +35 -0
- package/dist/useActivateFeature.js.map +1 -0
- package/dist/useAddData.d.ts +14 -0
- package/dist/useAddData.js +49 -0
- package/dist/useAddData.js.map +1 -0
- package/dist/useBrowser.d.ts +13 -0
- package/dist/useBrowser.js +22 -0
- package/dist/useBrowser.js.map +1 -0
- package/dist/useConversion.d.ts +14 -0
- package/dist/useConversion.js +18 -0
- package/dist/useConversion.js.map +1 -0
- package/dist/useCustomData.d.ts +13 -0
- package/dist/useCustomData.js +18 -0
- package/dist/useCustomData.js.map +1 -0
- package/dist/useDevice.d.ts +12 -0
- package/dist/useDevice.js +16 -0
- package/dist/useDevice.js.map +1 -0
- package/dist/useError.d.ts +7 -0
- package/dist/useError.js +18 -0
- package/dist/useError.js.map +1 -0
- package/dist/useErrors.d.ts +7 -0
- package/dist/useErrors.js +42 -0
- package/dist/useErrors.js.map +1 -0
- package/dist/useFeature.d.ts +5 -0
- package/dist/useFeature.js +104 -0
- package/dist/useFeature.js.map +1 -0
- package/dist/useFeatureVariable.d.ts +15 -0
- package/dist/useFeatureVariable.js +41 -0
- package/dist/useFeatureVariable.js.map +1 -0
- package/dist/useFlush.d.ts +11 -0
- package/dist/useFlush.js +19 -0
- package/dist/useFlush.js.map +1 -0
- package/dist/useKameleoon.d.ts +10 -0
- package/dist/useKameleoon.js +20 -0
- package/dist/useKameleoon.js.map +1 -0
- package/dist/usePageView.d.ts +14 -0
- package/dist/usePageView.js +18 -0
- package/dist/usePageView.js.map +1 -0
- package/dist/useRetrieveDataFromRemoteSource.d.ts +12 -0
- package/dist/useRetrieveDataFromRemoteSource.js +79 -0
- package/dist/useRetrieveDataFromRemoteSource.js.map +1 -0
- package/dist/useRunWhenReady.d.ts +14 -0
- package/dist/useRunWhenReady.js +23 -0
- package/dist/useRunWhenReady.js.map +1 -0
- package/dist/useTrackingConversion.d.ts +13 -0
- package/dist/useTrackingConversion.js +19 -0
- package/dist/useTrackingConversion.js.map +1 -0
- package/dist/useTriggerExperiment.d.ts +17 -0
- package/dist/useTriggerExperiment.js +32 -0
- package/dist/useTriggerExperiment.js.map +1 -0
- package/dist/useVariationAssociatedData.d.ts +16 -0
- package/dist/useVariationAssociatedData.js +30 -0
- package/dist/useVariationAssociatedData.js.map +1 -0
- package/dist/useVisitorCode.d.ts +12 -0
- package/dist/useVisitorCode.js +19 -0
- package/dist/useVisitorCode.js.map +1 -0
- package/dist/withActivateFeature.d.ts +17 -0
- package/dist/withActivateFeature.js +28 -0
- package/dist/withActivateFeature.js.map +1 -0
- package/dist/withAddData.d.ts +16 -0
- package/dist/withAddData.js +65 -0
- package/dist/withAddData.js.map +1 -0
- package/dist/withBrowser.d.ts +16 -0
- package/dist/withBrowser.js +35 -0
- package/dist/withBrowser.js.map +1 -0
- package/dist/withConversion.d.ts +17 -0
- package/dist/withConversion.js +31 -0
- package/dist/withConversion.js.map +1 -0
- package/dist/withCustomData.d.ts +16 -0
- package/dist/withCustomData.js +31 -0
- package/dist/withCustomData.js.map +1 -0
- package/dist/withDevice.d.ts +15 -0
- package/dist/withDevice.js +29 -0
- package/dist/withDevice.js.map +1 -0
- package/dist/withFeature.d.ts +6 -0
- package/dist/withFeature.js +31 -0
- package/dist/withFeature.js.map +1 -0
- package/dist/withFeatureVariable.d.ts +17 -0
- package/dist/withFeatureVariable.js +28 -0
- package/dist/withFeatureVariable.js.map +1 -0
- package/dist/withFlush.d.ts +14 -0
- package/dist/withFlush.js +36 -0
- package/dist/withFlush.js.map +1 -0
- package/dist/withKameleoon.d.ts +13 -0
- package/dist/withKameleoon.js +33 -0
- package/dist/withKameleoon.js.map +1 -0
- package/dist/withPageView.d.ts +17 -0
- package/dist/withPageView.js +31 -0
- package/dist/withPageView.js.map +1 -0
- package/dist/withRetrieveDataFromRemoteSource.d.ts +14 -0
- package/dist/withRetrieveDataFromRemoteSource.js +28 -0
- package/dist/withRetrieveDataFromRemoteSource.js.map +1 -0
- package/dist/withRunWhenReady.d.ts +16 -0
- package/dist/withRunWhenReady.js +28 -0
- package/dist/withRunWhenReady.js.map +1 -0
- package/dist/withTrackingConversion.d.ts +16 -0
- package/dist/withTrackingConversion.js +36 -0
- package/dist/withTrackingConversion.js.map +1 -0
- package/dist/withTriggerExperiment.d.ts +19 -0
- package/dist/withTriggerExperiment.js +30 -0
- package/dist/withTriggerExperiment.js.map +1 -0
- package/dist/withVariationAssociatedData.d.ts +18 -0
- package/dist/withVariationAssociatedData.js +30 -0
- package/dist/withVariationAssociatedData.js.map +1 -0
- package/dist/withVisitorCode.d.ts +15 -0
- package/dist/withVisitorCode.js +36 -0
- package/dist/withVisitorCode.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,104 @@
|
|
|
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 __read = (this && this.__read) || function (o, n) {
|
|
14
|
+
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
15
|
+
if (!m) return o;
|
|
16
|
+
var i = m.call(o), r, ar = [], e;
|
|
17
|
+
try {
|
|
18
|
+
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
19
|
+
}
|
|
20
|
+
catch (error) { e = { error: error }; }
|
|
21
|
+
finally {
|
|
22
|
+
try {
|
|
23
|
+
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
24
|
+
}
|
|
25
|
+
finally { if (e) throw e.error; }
|
|
26
|
+
}
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
30
|
+
exports.useFeature = void 0;
|
|
31
|
+
var react_1 = require("react");
|
|
32
|
+
var useActivateFeature_1 = require("./useActivateFeature");
|
|
33
|
+
var useFeatureVariable_1 = require("./useFeatureVariable");
|
|
34
|
+
var constants_1 = require("./constants");
|
|
35
|
+
var useVisitorCode_1 = require("./useVisitorCode");
|
|
36
|
+
var useKameleoon_1 = require("./useKameleoon");
|
|
37
|
+
var useErrors_1 = require("./useErrors");
|
|
38
|
+
/**
|
|
39
|
+
* A React Hook that returns the status of a feature flag and specified variables
|
|
40
|
+
*/
|
|
41
|
+
function useFeature(_a) {
|
|
42
|
+
var _b;
|
|
43
|
+
var featureKey = _a.featureKey, variableKeys = _a.variableKeys, visitorCode = _a.visitorCode;
|
|
44
|
+
var _c = (0, useActivateFeature_1.useActivateFeature)(), hasFeature = _c.hasFeature, activateFeatureError = _c.error;
|
|
45
|
+
var _d = (0, useFeatureVariable_1.useFeatureVariable)(), getFeatureVariable = _d.getFeatureVariable, featureVariableError = _d.error;
|
|
46
|
+
var getVisitorCode = (0, useVisitorCode_1.useVisitorCode)().getVisitorCode;
|
|
47
|
+
var client = (0, useKameleoon_1.useKameleoon)().client;
|
|
48
|
+
var _e = __read((0, react_1.useState)((_b = {},
|
|
49
|
+
_b[constants_1.FeatureResultField.IsActive] = false,
|
|
50
|
+
_b[constants_1.FeatureResultField.Variables] = [],
|
|
51
|
+
_b)), 2), feature = _e[0], setFeature = _e[1];
|
|
52
|
+
var _f = (0, useErrors_1.useErrors)(), errors = _f.errors, setErrors = _f.setErrors;
|
|
53
|
+
var userCode = visitorCode !== null && visitorCode !== void 0 ? visitorCode : getVisitorCode('');
|
|
54
|
+
function getVariableObject(key, value) {
|
|
55
|
+
var _a;
|
|
56
|
+
if (value) {
|
|
57
|
+
return _a = {},
|
|
58
|
+
_a[key] = value,
|
|
59
|
+
_a;
|
|
60
|
+
}
|
|
61
|
+
return {};
|
|
62
|
+
}
|
|
63
|
+
var getVariablesArray = (0, react_1.useCallback)(function (environment) {
|
|
64
|
+
var variablesArray = [];
|
|
65
|
+
var environmentVariableKeys = variableKeys[environment];
|
|
66
|
+
if (Array.isArray(environmentVariableKeys)) {
|
|
67
|
+
environmentVariableKeys.forEach(function (key) {
|
|
68
|
+
variablesArray.push(getVariableObject(key, getFeatureVariable(featureKey, key)));
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
variablesArray.push(getVariableObject(environmentVariableKeys, getFeatureVariable(featureKey, environmentVariableKeys)));
|
|
73
|
+
}
|
|
74
|
+
return variablesArray;
|
|
75
|
+
}, [variableKeys, getFeatureVariable, featureKey]);
|
|
76
|
+
(0, react_1.useEffect)(function () {
|
|
77
|
+
var _a;
|
|
78
|
+
var _b, _c, _d;
|
|
79
|
+
var _e = __read((_b = client.configurations) === null || _b === void 0 ? void 0 : _b.configuration.featureFlags.filter(function (item) {
|
|
80
|
+
return item.identificationKey === featureKey;
|
|
81
|
+
}), 1), featureFlag = _e[0];
|
|
82
|
+
var currentEnvironment = (_d = (_c = featureFlag === null || featureFlag === void 0 ? void 0 : featureFlag.environment) === null || _c === void 0 ? void 0 : _c.key) !== null && _d !== void 0 ? _d : constants_1.PRODUCTION;
|
|
83
|
+
try {
|
|
84
|
+
setFeature((_a = {},
|
|
85
|
+
_a[constants_1.FeatureResultField.IsActive] = hasFeature(featureKey, userCode),
|
|
86
|
+
_a[constants_1.FeatureResultField.Variables] = getVariablesArray(currentEnvironment),
|
|
87
|
+
_a));
|
|
88
|
+
}
|
|
89
|
+
catch (_f) {
|
|
90
|
+
setFeature(function (prevFeature) {
|
|
91
|
+
var _a;
|
|
92
|
+
return (__assign(__assign({}, prevFeature), (_a = {}, _a[constants_1.FeatureResultField.IsActive] = false, _a)));
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
// getVariablesArray put in dependencies creates an infinite loop
|
|
96
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
97
|
+
}, [userCode, featureKey, hasFeature]);
|
|
98
|
+
(0, react_1.useEffect)(function () {
|
|
99
|
+
setErrors([activateFeatureError === null || activateFeatureError === void 0 ? void 0 : activateFeatureError.type, featureVariableError === null || featureVariableError === void 0 ? void 0 : featureVariableError.type]);
|
|
100
|
+
}, [activateFeatureError, featureVariableError, setErrors]);
|
|
101
|
+
return { feature: feature, errors: errors };
|
|
102
|
+
}
|
|
103
|
+
exports.useFeature = useFeature;
|
|
104
|
+
//# sourceMappingURL=useFeature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFeature.js","sourceRoot":"","sources":["../src/useFeature.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FeatureFlagVariableType } from './types';
|
|
2
|
+
import { KameleoonError } from './KameleoonError';
|
|
3
|
+
interface FeatureVariableHookResult {
|
|
4
|
+
/**
|
|
5
|
+
* @param featureKey - unique identifier or key of the feature you want to obtain to a user
|
|
6
|
+
* @param variableKey - key of the variable
|
|
7
|
+
*/
|
|
8
|
+
getFeatureVariable: (featureKey: string | number, variableKey: string) => FeatureFlagVariableType;
|
|
9
|
+
error: KameleoonError | null;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A React Hook that returns callback function which retrieves a feature variable
|
|
13
|
+
*/
|
|
14
|
+
export declare function useFeatureVariable(): FeatureVariableHookResult;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
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.useFeatureVariable = void 0;
|
|
7
|
+
var react_1 = require("react");
|
|
8
|
+
var isJSON_1 = __importDefault(require("validator/lib/isJSON"));
|
|
9
|
+
var useKameleoon_1 = require("./useKameleoon");
|
|
10
|
+
var useError_1 = require("./useError");
|
|
11
|
+
/**
|
|
12
|
+
* A React Hook that returns callback function which retrieves a feature variable
|
|
13
|
+
*/
|
|
14
|
+
function useFeatureVariable() {
|
|
15
|
+
var client = (0, useKameleoon_1.useKameleoon)().client;
|
|
16
|
+
var _a = (0, useError_1.useError)(), error = _a.error, setError = _a.setError;
|
|
17
|
+
var getProcessedVariable = (0, react_1.useCallback)(function (value) {
|
|
18
|
+
if (typeof value === 'undefined') {
|
|
19
|
+
return undefined;
|
|
20
|
+
}
|
|
21
|
+
if (typeof value === 'string' && (0, isJSON_1.default)(value)) {
|
|
22
|
+
return JSON.parse(value);
|
|
23
|
+
}
|
|
24
|
+
return value;
|
|
25
|
+
}, []);
|
|
26
|
+
var getFeatureVariable = (0, react_1.useCallback)(function (featureKey, variableKey) {
|
|
27
|
+
try {
|
|
28
|
+
return getProcessedVariable(client.obtainFeatureVariable(featureKey, variableKey));
|
|
29
|
+
}
|
|
30
|
+
catch (unknownError) {
|
|
31
|
+
setError(unknownError);
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
}, [client, getProcessedVariable, setError]);
|
|
35
|
+
return {
|
|
36
|
+
getFeatureVariable: getFeatureVariable,
|
|
37
|
+
error: error,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
exports.useFeatureVariable = useFeatureVariable;
|
|
41
|
+
//# sourceMappingURL=useFeatureVariable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFeatureVariable.js","sourceRoot":"","sources":["../src/useFeatureVariable.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAoC;AACpC,gEAA0C;AAC1C,+CAA8C;AAG9C,uCAAsC;AActC;;GAEG;AACH,SAAgB,kBAAkB;IACxB,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAC5B,IAAA,KAAsB,IAAA,mBAAQ,GAAE,EAA9B,KAAK,WAAA,EAAE,QAAQ,cAAe,CAAC;IAEvC,IAAM,oBAAoB,GAAG,IAAA,mBAAW,EAAC,UAAC,KAAK;QAC7C,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAChC,OAAO,SAAS,CAAC;SAClB;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,IAAA,gBAAM,EAAC,KAAK,CAAC,EAAE;YAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC1B;QAED,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,kBAAkB,GAAG,IAAA,mBAAW,EACpC,UACE,UAA2B,EAC3B,WAAmB;QAEnB,IAAI;YACF,OAAO,oBAAoB,CACzB,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,WAAW,CAAC,CACtD,CAAC;SACH;QAAC,OAAO,YAAY,EAAE;YACrB,QAAQ,CAAC,YAAY,CAAC,CAAC;YAEvB,OAAO,SAAS,CAAC;SAClB;IACH,CAAC,EACD,CAAC,MAAM,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CACzC,CAAC;IAEF,OAAO;QACL,kBAAkB,oBAAA;QAClB,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AAtCD,gDAsCC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface FlushHookResult {
|
|
2
|
+
/**
|
|
3
|
+
* @param visitorCode - unique identifier of the user
|
|
4
|
+
*/
|
|
5
|
+
flush: (visitorCode: string) => void;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* A React Hook that returns callback function which allows to flush data to servers
|
|
9
|
+
*/
|
|
10
|
+
export declare function useFlush(): FlushHookResult;
|
|
11
|
+
export {};
|
package/dist/useFlush.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useFlush = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var useKameleoon_1 = require("./useKameleoon");
|
|
6
|
+
/**
|
|
7
|
+
* A React Hook that returns callback function which allows to flush data to servers
|
|
8
|
+
*/
|
|
9
|
+
function useFlush() {
|
|
10
|
+
var client = (0, useKameleoon_1.useKameleoon)().client;
|
|
11
|
+
var flush = (0, react_1.useCallback)(function (visitorCode) {
|
|
12
|
+
client.flush(visitorCode);
|
|
13
|
+
}, [client]);
|
|
14
|
+
return {
|
|
15
|
+
flush: flush,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.useFlush = useFlush;
|
|
19
|
+
//# sourceMappingURL=useFlush.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFlush.js","sourceRoot":"","sources":["../src/useFlush.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,+CAA8C;AAS9C;;GAEG;AACH,SAAgB,QAAQ;IACd,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAElC,IAAM,KAAK,GAAG,IAAA,mBAAW,EACvB,UAAC,WAAmB;QAClB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5B,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO;QACL,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AAbD,4BAaC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { KameleoonClient } from 'kameleoon-client-javascript';
|
|
2
|
+
interface KameleoonHookResult {
|
|
3
|
+
/** An instance of KameleoonClient */
|
|
4
|
+
client: KameleoonClient;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* A React Hook that validates if context is used within a KameleoonProvider and returns it
|
|
8
|
+
*/
|
|
9
|
+
export declare function useKameleoon(): KameleoonHookResult;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useKameleoon = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var KameleoonContext_1 = require("./KameleoonContext");
|
|
6
|
+
var ProviderError_1 = require("./ProviderError");
|
|
7
|
+
/**
|
|
8
|
+
* A React Hook that validates if context is used within a KameleoonProvider and returns it
|
|
9
|
+
*/
|
|
10
|
+
function useKameleoon() {
|
|
11
|
+
var context = (0, react_1.useContext)(KameleoonContext_1.KameleoonContext);
|
|
12
|
+
if (!context) {
|
|
13
|
+
throw new ProviderError_1.ProviderError('useKameleoon');
|
|
14
|
+
}
|
|
15
|
+
return {
|
|
16
|
+
client: context,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
exports.useKameleoon = useKameleoon;
|
|
20
|
+
//# sourceMappingURL=useKameleoon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useKameleoon.js","sourceRoot":"","sources":["../src/useKameleoon.ts"],"names":[],"mappings":";;;AAAA,+BAAmC;AAEnC,uDAAsD;AACtD,iDAAgD;AAOhD;;GAEG;AACH,SAAgB,YAAY;IAC1B,IAAM,OAAO,GAAG,IAAA,kBAAU,EAAC,mCAAgB,CAAC,CAAC;IAE7C,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,6BAAa,CAAC,cAAc,CAAC,CAAC;KACzC;IAED,OAAO;QACL,MAAM,EAAE,OAAO;KAChB,CAAC;AACJ,CAAC;AAVD,oCAUC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PageView } from 'kameleoon-client-javascript/dist/data';
|
|
2
|
+
interface PageViewHookResult {
|
|
3
|
+
/**
|
|
4
|
+
* @param url - URL of the page viewed
|
|
5
|
+
* @param title - title of the page viewed
|
|
6
|
+
* @param referrer - referrer of the page viewed
|
|
7
|
+
*/
|
|
8
|
+
addPageView: (url: string, title: string, referrer?: number) => PageView;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* A React Hook that returns callback function which adds page view
|
|
12
|
+
*/
|
|
13
|
+
export declare function usePageView(): PageViewHookResult;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.usePageView = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var kameleoon_client_javascript_1 = require("kameleoon-client-javascript");
|
|
6
|
+
/**
|
|
7
|
+
* A React Hook that returns callback function which adds page view
|
|
8
|
+
*/
|
|
9
|
+
function usePageView() {
|
|
10
|
+
var addPageView = (0, react_1.useCallback)(function (url, title, referrer) {
|
|
11
|
+
return new kameleoon_client_javascript_1.KameleoonData.PageView(url, title, referrer);
|
|
12
|
+
}, []);
|
|
13
|
+
return {
|
|
14
|
+
addPageView: addPageView,
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
exports.usePageView = usePageView;
|
|
18
|
+
//# sourceMappingURL=usePageView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePageView.js","sourceRoot":"","sources":["../src/usePageView.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,2EAA4D;AAY5D;;GAEG;AACH,SAAgB,WAAW;IACzB,IAAM,WAAW,GAAG,IAAA,mBAAW,EAC7B,UAAC,GAAW,EAAE,KAAa,EAAE,QAAiB;QAC5C,OAAA,IAAI,2CAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC;IAAhD,CAAgD,EAClD,EAAE,CACH,CAAC;IAEF,OAAO;QACL,WAAW,aAAA;KACZ,CAAC;AACJ,CAAC;AAVD,kCAUC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RemoteSourceResultType } from './types';
|
|
2
|
+
interface RetrieveDataFromRemoteSourceHookResult {
|
|
3
|
+
/**
|
|
4
|
+
* @param key - unique key for data defined for Kameleoon Data API
|
|
5
|
+
*/
|
|
6
|
+
retrieveDataFromRemoteSource: (key: string) => Promise<RemoteSourceResultType>;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A React Hook that returns asynchronous callback function which retrieves data from Kameleoon Data API
|
|
10
|
+
*/
|
|
11
|
+
export declare function useRetrieveDataFromRemoteSource(): RetrieveDataFromRemoteSourceHookResult;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (_) try {
|
|
18
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.useRetrieveDataFromRemoteSource = void 0;
|
|
40
|
+
var react_1 = require("react");
|
|
41
|
+
var useKameleoon_1 = require("./useKameleoon");
|
|
42
|
+
var ProviderError_1 = require("./ProviderError");
|
|
43
|
+
var KameleoonError_1 = require("./KameleoonError");
|
|
44
|
+
var constants_1 = require("./constants");
|
|
45
|
+
/**
|
|
46
|
+
* A React Hook that returns asynchronous callback function which retrieves data from Kameleoon Data API
|
|
47
|
+
*/
|
|
48
|
+
function useRetrieveDataFromRemoteSource() {
|
|
49
|
+
var _this = this;
|
|
50
|
+
var client = (0, useKameleoon_1.useKameleoon)().client;
|
|
51
|
+
var isObjectEmpty = (0, react_1.useCallback)(function (object) {
|
|
52
|
+
return (object &&
|
|
53
|
+
Object.keys(object).length === 0 &&
|
|
54
|
+
Object.getPrototypeOf(object) === Object.prototype);
|
|
55
|
+
}, []);
|
|
56
|
+
var retrieveDataFromRemoteSource = (0, react_1.useCallback)(function (key) { return __awaiter(_this, void 0, void 0, function () {
|
|
57
|
+
var resultData, error;
|
|
58
|
+
return __generator(this, function (_a) {
|
|
59
|
+
switch (_a.label) {
|
|
60
|
+
case 0: return [4 /*yield*/, client.retrieveDataFromRemoteSource(key)];
|
|
61
|
+
case 1:
|
|
62
|
+
resultData = (_a.sent());
|
|
63
|
+
if (isObjectEmpty(resultData)) {
|
|
64
|
+
error = new KameleoonError_1.KameleoonError(constants_1.KameleoonException.NoDataWasRetrievedFromRemoteServer);
|
|
65
|
+
return [2 /*return*/, { data: null, error: error }];
|
|
66
|
+
}
|
|
67
|
+
return [2 /*return*/, { data: resultData, error: null }];
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}); }, [client, isObjectEmpty]);
|
|
71
|
+
if (!client) {
|
|
72
|
+
throw new ProviderError_1.ProviderError('useKameleoon');
|
|
73
|
+
}
|
|
74
|
+
return {
|
|
75
|
+
retrieveDataFromRemoteSource: retrieveDataFromRemoteSource,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
exports.useRetrieveDataFromRemoteSource = useRetrieveDataFromRemoteSource;
|
|
79
|
+
//# sourceMappingURL=useRetrieveDataFromRemoteSource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRetrieveDataFromRemoteSource.js","sourceRoot":"","sources":["../src/useRetrieveDataFromRemoteSource.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAoC;AACpC,+CAA8C;AAC9C,iDAAgD;AAEhD,mDAAkD;AAClD,yCAAiD;AAWjD;;GAEG;AACH,SAAgB,+BAA+B;IAA/C,iBAqCC;IApCS,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAElC,IAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,UAAC,MAA4B;QAC7D,OAAO,CACL,MAAM;YACN,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;YAChC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,MAAM,CAAC,SAAS,CACnD,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAM,4BAA4B,GAAG,IAAA,mBAAW,EAC9C,UAAO,GAAW;;;;wBACI,qBAAM,MAAM,CAAC,4BAA4B,CAC3D,GAAG,CACJ,EAAA;;oBAFK,UAAU,GAAG,CAAC,SAEnB,CAAyB;oBAE1B,IAAI,aAAa,CAAC,UAAU,CAAC,EAAE;wBACvB,KAAK,GAAG,IAAI,+BAAc,CAC9B,8BAAkB,CAAC,kCAAkC,CACtD,CAAC;wBAEF,sBAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,OAAA,EAAE,EAAC;qBAC9B;oBAED,sBAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,EAAC;;;SAC1C,EACD,CAAC,MAAM,EAAE,aAAa,CAAC,CACxB,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,6BAAa,CAAC,cAAc,CAAC,CAAC;KACzC;IAED,OAAO;QACL,4BAA4B,8BAAA;KAC7B,CAAC;AACJ,CAAC;AArCD,0EAqCC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
interface RunWhenReadyHookResult {
|
|
2
|
+
/**
|
|
3
|
+
* @param successCallback - callback which will be executed on successful client initialization
|
|
4
|
+
* @param errorCallback - callback which will be executed if client wasn't able to initialize during the timeout
|
|
5
|
+
* @param timeout - timeout which is given to perform HTTP call for initialization in ms (by default: 2 seconds)
|
|
6
|
+
*/
|
|
7
|
+
runWhenReady: (successCallback: () => void, errorCallback: () => void, timeout?: number) => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* A React Hook that returns callback function which makes sure that
|
|
11
|
+
* Kameleoon Client will be initialized properly using HTTP call within the specified timeout
|
|
12
|
+
*/
|
|
13
|
+
export declare function useRunWhenReady(): RunWhenReadyHookResult;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useRunWhenReady = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var useKameleoon_1 = require("./useKameleoon");
|
|
6
|
+
var ProviderError_1 = require("./ProviderError");
|
|
7
|
+
/**
|
|
8
|
+
* A React Hook that returns callback function which makes sure that
|
|
9
|
+
* Kameleoon Client will be initialized properly using HTTP call within the specified timeout
|
|
10
|
+
*/
|
|
11
|
+
function useRunWhenReady() {
|
|
12
|
+
var client = (0, useKameleoon_1.useKameleoon)().client;
|
|
13
|
+
var DEFAULT_TIMEOUT = 2000;
|
|
14
|
+
var runWhenReady = (0, react_1.useCallback)(function (successCallback, errorCallback, timeout) {
|
|
15
|
+
client.runWhenReady(successCallback, errorCallback, timeout !== null && timeout !== void 0 ? timeout : DEFAULT_TIMEOUT);
|
|
16
|
+
}, [client]);
|
|
17
|
+
if (!client) {
|
|
18
|
+
throw new ProviderError_1.ProviderError('useRunWhenReady');
|
|
19
|
+
}
|
|
20
|
+
return { runWhenReady: runWhenReady };
|
|
21
|
+
}
|
|
22
|
+
exports.useRunWhenReady = useRunWhenReady;
|
|
23
|
+
//# sourceMappingURL=useRunWhenReady.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRunWhenReady.js","sourceRoot":"","sources":["../src/useRunWhenReady.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,+CAA8C;AAC9C,iDAAgD;AAehD;;;GAGG;AACH,SAAgB,eAAe;IACrB,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAClC,IAAM,eAAe,GAAG,IAAI,CAAC;IAE7B,IAAM,YAAY,GAAG,IAAA,mBAAW,EAC9B,UACE,eAA2B,EAC3B,aAAyB,EACzB,OAAgB;QAEhB,MAAM,CAAC,YAAY,CACjB,eAAe,EACf,aAAa,EACb,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,eAAe,CAC3B,CAAC;IACJ,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,6BAAa,CAAC,iBAAiB,CAAC,CAAC;KAC5C;IAED,OAAO,EAAE,YAAY,cAAA,EAAE,CAAC;AAC1B,CAAC;AAxBD,0CAwBC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface TrackingConversionHookResult {
|
|
2
|
+
/**
|
|
3
|
+
* @param visitorCode - unique identifier of the user
|
|
4
|
+
* @param goalId - unique identifier of the goal
|
|
5
|
+
* @param revenue - revenue of the conversion
|
|
6
|
+
*/
|
|
7
|
+
trackConversion: (visitorCode: string, goalId: number, revenue?: number) => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* A React Hook that returns callback function which tracks conversion
|
|
11
|
+
*/
|
|
12
|
+
export declare function useTrackingConversion(): TrackingConversionHookResult;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useTrackingConversion = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var useKameleoon_1 = require("./useKameleoon");
|
|
6
|
+
/**
|
|
7
|
+
* A React Hook that returns callback function which tracks conversion
|
|
8
|
+
*/
|
|
9
|
+
function useTrackingConversion() {
|
|
10
|
+
var client = (0, useKameleoon_1.useKameleoon)().client;
|
|
11
|
+
var trackConversion = (0, react_1.useCallback)(function (visitorCode, goalId, revenue) {
|
|
12
|
+
client.trackConversion(visitorCode, goalId, revenue);
|
|
13
|
+
}, [client]);
|
|
14
|
+
return {
|
|
15
|
+
trackConversion: trackConversion,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.useTrackingConversion = useTrackingConversion;
|
|
19
|
+
//# sourceMappingURL=useTrackingConversion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTrackingConversion.js","sourceRoot":"","sources":["../src/useTrackingConversion.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,+CAA8C;AAe9C;;GAEG;AACH,SAAgB,qBAAqB;IAC3B,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAElC,IAAM,eAAe,GAAG,IAAA,mBAAW,EACjC,UAAC,WAAmB,EAAE,MAAc,EAAE,OAAgB;QACpD,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO;QACL,eAAe,iBAAA;KAChB,CAAC;AACJ,CAAC;AAbD,sDAaC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { KameleoonError } from './KameleoonError';
|
|
2
|
+
interface IGetVariationIdHookResult {
|
|
3
|
+
/**
|
|
4
|
+
* @param visitorCode - unique identifier of the user
|
|
5
|
+
* @param experimentId - unique identifier of the experiment you want to expose to a user
|
|
6
|
+
*/
|
|
7
|
+
getVariationId: (visitorCode: string, experimentId: number) => number;
|
|
8
|
+
error: KameleoonError | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* A React Hook that returns callback function which triggers experiment.
|
|
12
|
+
* If such a user has never been associated with any variation, the SDK returns a randomly selected variation.
|
|
13
|
+
* If a user with a given visitorCode is already registered with a variation,
|
|
14
|
+
* it will detect the previously registered variation and return the variationID
|
|
15
|
+
*/
|
|
16
|
+
export declare function useTriggerExperiment(): IGetVariationIdHookResult;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useTriggerExperiment = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var useKameleoon_1 = require("./useKameleoon");
|
|
6
|
+
var useError_1 = require("./useError");
|
|
7
|
+
/**
|
|
8
|
+
* A React Hook that returns callback function which triggers experiment.
|
|
9
|
+
* If such a user has never been associated with any variation, the SDK returns a randomly selected variation.
|
|
10
|
+
* If a user with a given visitorCode is already registered with a variation,
|
|
11
|
+
* it will detect the previously registered variation and return the variationID
|
|
12
|
+
*/
|
|
13
|
+
function useTriggerExperiment() {
|
|
14
|
+
var _a = (0, useError_1.useError)(), error = _a.error, setError = _a.setError;
|
|
15
|
+
var client = (0, useKameleoon_1.useKameleoon)().client;
|
|
16
|
+
var DEFAULT_VARIATION_ID = 0;
|
|
17
|
+
var getVariationId = (0, react_1.useCallback)(function (visitorCode, experimentId) {
|
|
18
|
+
try {
|
|
19
|
+
return client.triggerExperiment(visitorCode, experimentId);
|
|
20
|
+
}
|
|
21
|
+
catch (unknownError) {
|
|
22
|
+
setError(unknownError);
|
|
23
|
+
return DEFAULT_VARIATION_ID;
|
|
24
|
+
}
|
|
25
|
+
}, [client, setError]);
|
|
26
|
+
return {
|
|
27
|
+
getVariationId: getVariationId,
|
|
28
|
+
error: error,
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
exports.useTriggerExperiment = useTriggerExperiment;
|
|
32
|
+
//# sourceMappingURL=useTriggerExperiment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTriggerExperiment.js","sourceRoot":"","sources":["../src/useTriggerExperiment.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,+CAA8C;AAE9C,uCAAsC;AAWtC;;;;;GAKG;AACH,SAAgB,oBAAoB;IAC5B,IAAA,KAAsB,IAAA,mBAAQ,GAAE,EAA9B,KAAK,WAAA,EAAE,QAAQ,cAAe,CAAC;IAC/B,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAClC,IAAM,oBAAoB,GAAG,CAAC,CAAC;IAE/B,IAAM,cAAc,GAAG,IAAA,mBAAW,EAChC,UAAC,WAAmB,EAAE,YAAoB;QACxC,IAAI;YACF,OAAO,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;SAC5D;QAAC,OAAO,YAAY,EAAE;YACrB,QAAQ,CAAC,YAAY,CAAC,CAAC;YAEvB,OAAO,oBAAoB,CAAC;SAC7B;IACH,CAAC,EACD,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAC;IAEF,OAAO;QACL,cAAc,gBAAA;QACd,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AAtBD,oDAsBC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { KameleoonError } from './KameleoonError';
|
|
2
|
+
import { VariationAssociatedDataType } from './types';
|
|
3
|
+
interface VariationAssociatedDataHookResult {
|
|
4
|
+
/**
|
|
5
|
+
* @param variationId - unique identifier of the variation you want to obtain associated data for
|
|
6
|
+
*/
|
|
7
|
+
getVariationAssociatedData: (variationId: number) => VariationAssociatedDataType;
|
|
8
|
+
error: KameleoonError | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* A React Hook that returns callback function which retrieves JSON data associated with a variation.
|
|
12
|
+
* The JSON data usually represents some metadata of the variation,
|
|
13
|
+
* and can be configured on our web application interface or via our Automation API.
|
|
14
|
+
*/
|
|
15
|
+
export declare function useVariationAssociatedData(): VariationAssociatedDataHookResult;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useVariationAssociatedData = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var useKameleoon_1 = require("./useKameleoon");
|
|
6
|
+
var useError_1 = require("./useError");
|
|
7
|
+
/**
|
|
8
|
+
* A React Hook that returns callback function which retrieves JSON data associated with a variation.
|
|
9
|
+
* The JSON data usually represents some metadata of the variation,
|
|
10
|
+
* and can be configured on our web application interface or via our Automation API.
|
|
11
|
+
*/
|
|
12
|
+
function useVariationAssociatedData() {
|
|
13
|
+
var client = (0, useKameleoon_1.useKameleoon)().client;
|
|
14
|
+
var _a = (0, useError_1.useError)(), error = _a.error, setError = _a.setError;
|
|
15
|
+
var getVariationAssociatedData = (0, react_1.useCallback)(function (variationId) {
|
|
16
|
+
try {
|
|
17
|
+
return client.obtainVariationAssociatedData(variationId);
|
|
18
|
+
}
|
|
19
|
+
catch (unknownError) {
|
|
20
|
+
setError(unknownError);
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
}, [client, setError]);
|
|
24
|
+
return {
|
|
25
|
+
getVariationAssociatedData: getVariationAssociatedData,
|
|
26
|
+
error: error,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
exports.useVariationAssociatedData = useVariationAssociatedData;
|
|
30
|
+
//# sourceMappingURL=useVariationAssociatedData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useVariationAssociatedData.js","sourceRoot":"","sources":["../src/useVariationAssociatedData.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,+CAA8C;AAG9C,uCAAsC;AAYtC;;;;GAIG;AACH,SAAgB,0BAA0B;IAChC,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAC5B,IAAA,KAAsB,IAAA,mBAAQ,GAAE,EAA9B,KAAK,WAAA,EAAE,QAAQ,cAAe,CAAC;IAEvC,IAAM,0BAA0B,GAAG,IAAA,mBAAW,EAC5C,UAAC,WAAmB;QAClB,IAAI;YACF,OAAO,MAAM,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;SAC1D;QAAC,OAAO,YAAY,EAAE;YACrB,QAAQ,CAAC,YAAY,CAAC,CAAC;YAEvB,OAAO,IAAI,CAAC;SACb;IACH,CAAC,EACD,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAC;IAEF,OAAO;QACL,0BAA0B,4BAAA;QAC1B,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AArBD,gEAqBC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface VisitorCodeHookResult {
|
|
2
|
+
/**
|
|
3
|
+
* @param topLevelDomain - current top level domain for the concerned site
|
|
4
|
+
* @param defaultVisitorCode - this parameter will be used as the visitorCode
|
|
5
|
+
*/
|
|
6
|
+
getVisitorCode: (topLevelDomain: string, defaultVisitorCode?: string) => string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A React Hook that returns callback function which obtains the Kameleoon visitorCode for the current visitor
|
|
10
|
+
*/
|
|
11
|
+
export declare function useVisitorCode(): VisitorCodeHookResult;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useVisitorCode = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var useKameleoon_1 = require("./useKameleoon");
|
|
6
|
+
/**
|
|
7
|
+
* A React Hook that returns callback function which obtains the Kameleoon visitorCode for the current visitor
|
|
8
|
+
*/
|
|
9
|
+
function useVisitorCode() {
|
|
10
|
+
var client = (0, useKameleoon_1.useKameleoon)().client;
|
|
11
|
+
var getVisitorCode = (0, react_1.useCallback)(function (topLevelDomain, defaultVisitorCode) {
|
|
12
|
+
return client.obtainVisitorCode(topLevelDomain, defaultVisitorCode);
|
|
13
|
+
}, [client]);
|
|
14
|
+
return {
|
|
15
|
+
getVisitorCode: getVisitorCode,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
exports.useVisitorCode = useVisitorCode;
|
|
19
|
+
//# sourceMappingURL=useVisitorCode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useVisitorCode.js","sourceRoot":"","sources":["../src/useVisitorCode.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,+CAA8C;AAa9C;;GAEG;AACH,SAAgB,cAAc;IACpB,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAElC,IAAM,cAAc,GAAG,IAAA,mBAAW,EAChC,UAAC,cAAsB,EAAE,kBAA2B;QAClD,OAAA,MAAM,CAAC,iBAAiB,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAA5D,CAA4D,EAC9D,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO;QACL,cAAc,gBAAA;KACf,CAAC;AACJ,CAAC;AAZD,wCAYC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { UnknownPropsType, Without } from './types';
|
|
3
|
+
import { KameleoonError } from './KameleoonError';
|
|
4
|
+
interface IWithHasFeature {
|
|
5
|
+
/**
|
|
6
|
+
* @param visitorCode - unique identifier of the user
|
|
7
|
+
* @param featureKey - unique identifier or key of the feature you want to expose to a user
|
|
8
|
+
*/
|
|
9
|
+
hasFeature: (featureKey: string | number, visitorCode?: string) => boolean;
|
|
10
|
+
activateFeatureError: KameleoonError | null;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A React HOC that gives a wrapped component access to callback
|
|
14
|
+
* function which activates a feature toggle
|
|
15
|
+
*/
|
|
16
|
+
export declare function withActivateFeature<Props extends UnknownPropsType>(Component: React.ComponentType<Props>): React.ComponentType<Props & Without<Props, IWithHasFeature>>;
|
|
17
|
+
export {};
|