@kameleoon/react-sdk 4.1.1 → 6.0.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.
Files changed (202) hide show
  1. package/README.md +62 -1456
  2. package/dist/KameleoonContext.d.ts +2 -2
  3. package/dist/KameleoonContext.js.map +1 -1
  4. package/dist/KameleoonError.d.ts +1 -1
  5. package/dist/KameleoonProvider.d.ts +5 -5
  6. package/dist/KameleoonProvider.js +1 -1
  7. package/dist/KameleoonProvider.js.map +1 -1
  8. package/dist/constants.d.ts +1 -24
  9. package/dist/constants.js +2 -28
  10. package/dist/constants.js.map +1 -1
  11. package/dist/eventSource/browserEventSource.d.ts +4 -0
  12. package/dist/eventSource/browserEventSource.js +38 -0
  13. package/dist/eventSource/browserEventSource.js.map +1 -0
  14. package/dist/eventSource/index.d.ts +2 -0
  15. package/dist/eventSource/index.js +8 -0
  16. package/dist/eventSource/index.js.map +1 -0
  17. package/dist/eventSource/nativeEventSource.d.ts +4 -0
  18. package/dist/eventSource/nativeEventSource.js +39 -0
  19. package/dist/eventSource/nativeEventSource.js.map +1 -0
  20. package/dist/index.d.ts +16 -42
  21. package/dist/index.js +34 -92
  22. package/dist/index.js.map +1 -1
  23. package/dist/kameleoonClient.d.ts +4 -13
  24. package/dist/kameleoonClient.js +18 -72
  25. package/dist/kameleoonClient.js.map +1 -1
  26. package/dist/kameleoonUtils/browserUtils.d.ts +13 -0
  27. package/dist/kameleoonUtils/browserUtils.js +72 -0
  28. package/dist/kameleoonUtils/browserUtils.js.map +1 -0
  29. package/dist/kameleoonUtils/nativeUtils.d.ts +12 -0
  30. package/dist/kameleoonUtils/nativeUtils.js +68 -0
  31. package/dist/kameleoonUtils/nativeUtils.js.map +1 -0
  32. package/dist/storage/index.d.ts +2 -0
  33. package/dist/storage/index.js +8 -0
  34. package/dist/storage/index.js.map +1 -0
  35. package/dist/storage/localStorage.d.ts +4 -0
  36. package/dist/storage/localStorage.js +44 -0
  37. package/dist/storage/localStorage.js.map +1 -0
  38. package/dist/storage/nativeStorage.d.ts +4 -0
  39. package/dist/storage/nativeStorage.js +41 -0
  40. package/dist/storage/nativeStorage.js.map +1 -0
  41. package/dist/useAddData.d.ts +14 -9
  42. package/dist/useAddData.js +14 -5
  43. package/dist/useAddData.js.map +1 -1
  44. package/dist/useBrowserVisitorCode.d.ts +17 -0
  45. package/dist/useBrowserVisitorCode.js +20 -0
  46. package/dist/useBrowserVisitorCode.js.map +1 -0
  47. package/dist/useConfigurationUpdate.d.ts +17 -0
  48. package/dist/useConfigurationUpdate.js +29 -0
  49. package/dist/useConfigurationUpdate.js.map +1 -0
  50. package/dist/useError.d.ts +1 -1
  51. package/dist/useError.js +1 -3
  52. package/dist/useError.js.map +1 -1
  53. package/dist/useErrors.d.ts +2 -2
  54. package/dist/useExperiments.d.ts +18 -0
  55. package/dist/useExperiments.js +30 -0
  56. package/dist/useExperiments.js.map +1 -0
  57. package/dist/useFeatureFlagActive.d.ts +19 -0
  58. package/dist/useFeatureFlagActive.js +30 -0
  59. package/dist/useFeatureFlagActive.js.map +1 -0
  60. package/dist/useFeatureFlagVariationKey.d.ts +19 -0
  61. package/dist/useFeatureFlagVariationKey.js +30 -0
  62. package/dist/useFeatureFlagVariationKey.js.map +1 -0
  63. package/dist/useFeatureFlags.d.ts +18 -0
  64. package/dist/useFeatureFlags.js +30 -0
  65. package/dist/useFeatureFlags.js.map +1 -0
  66. package/dist/useFeatureVariable.d.ts +12 -8
  67. package/dist/useFeatureVariable.js +7 -18
  68. package/dist/useFeatureVariable.js.map +1 -1
  69. package/dist/useFlushData.d.ts +14 -0
  70. package/dist/useFlushData.js +21 -0
  71. package/dist/useFlushData.js.map +1 -0
  72. package/dist/useInitialize.d.ts +15 -0
  73. package/dist/{useAsyncVisitorCode.js → useInitialize.js} +28 -10
  74. package/dist/useInitialize.js.map +1 -0
  75. package/dist/useKameleoon.d.ts +8 -7
  76. package/dist/useKameleoon.js +3 -1
  77. package/dist/useKameleoon.js.map +1 -1
  78. package/dist/useNativeVisitorCode.d.ts +16 -0
  79. package/dist/useNativeVisitorCode.js +20 -0
  80. package/dist/useNativeVisitorCode.js.map +1 -0
  81. package/dist/useRemoteData.d.ts +19 -0
  82. package/dist/{useRetrieveDataFromRemoteSource.js → useRemoteData.js} +25 -28
  83. package/dist/useRemoteData.js.map +1 -0
  84. package/dist/useTrackConversion.d.ts +18 -0
  85. package/dist/useTrackConversion.js +29 -0
  86. package/dist/useTrackConversion.js.map +1 -0
  87. package/dist/useTriggerExperiment.d.ts +12 -10
  88. package/dist/useTriggerExperiment.js +8 -9
  89. package/dist/useTriggerExperiment.js.map +1 -1
  90. package/dist/useVisitorExperiments.d.ts +20 -0
  91. package/dist/useVisitorExperiments.js +30 -0
  92. package/dist/useVisitorExperiments.js.map +1 -0
  93. package/dist/useVisitorFeatureFlags.d.ts +19 -0
  94. package/dist/useVisitorFeatureFlags.js +30 -0
  95. package/dist/useVisitorFeatureFlags.js.map +1 -0
  96. package/package.json +10 -5
  97. package/dist/Feature.d.ts +0 -11
  98. package/dist/Feature.js +0 -26
  99. package/dist/Feature.js.map +0 -1
  100. package/dist/compose.d.ts +0 -8
  101. package/dist/compose.js +0 -58
  102. package/dist/compose.js.map +0 -1
  103. package/dist/getKameleoonException.d.ts +0 -2
  104. package/dist/getKameleoonException.js +0 -34
  105. package/dist/getKameleoonException.js.map +0 -1
  106. package/dist/types.d.ts +0 -37
  107. package/dist/types.js +0 -4
  108. package/dist/types.js.map +0 -1
  109. package/dist/useActivateFeature.d.ts +0 -14
  110. package/dist/useActivateFeature.js +0 -33
  111. package/dist/useActivateFeature.js.map +0 -1
  112. package/dist/useAsyncVisitorCode.d.ts +0 -12
  113. package/dist/useAsyncVisitorCode.js.map +0 -1
  114. package/dist/useBrowser.d.ts +0 -13
  115. package/dist/useBrowser.js +0 -22
  116. package/dist/useBrowser.js.map +0 -1
  117. package/dist/useConversion.d.ts +0 -14
  118. package/dist/useConversion.js +0 -18
  119. package/dist/useConversion.js.map +0 -1
  120. package/dist/useCustomData.d.ts +0 -13
  121. package/dist/useCustomData.js +0 -18
  122. package/dist/useCustomData.js.map +0 -1
  123. package/dist/useDevice.d.ts +0 -12
  124. package/dist/useDevice.js +0 -16
  125. package/dist/useDevice.js.map +0 -1
  126. package/dist/useFeature.d.ts +0 -5
  127. package/dist/useFeature.js +0 -101
  128. package/dist/useFeature.js.map +0 -1
  129. package/dist/useFlush.d.ts +0 -11
  130. package/dist/useFlush.js +0 -19
  131. package/dist/useFlush.js.map +0 -1
  132. package/dist/usePageView.d.ts +0 -14
  133. package/dist/usePageView.js +0 -18
  134. package/dist/usePageView.js.map +0 -1
  135. package/dist/useRetrieveDataFromRemoteSource.d.ts +0 -12
  136. package/dist/useRetrieveDataFromRemoteSource.js.map +0 -1
  137. package/dist/useRunWhenReady.d.ts +0 -14
  138. package/dist/useRunWhenReady.js +0 -23
  139. package/dist/useRunWhenReady.js.map +0 -1
  140. package/dist/useTrackingConversion.d.ts +0 -13
  141. package/dist/useTrackingConversion.js +0 -19
  142. package/dist/useTrackingConversion.js.map +0 -1
  143. package/dist/useVariationAssociatedData.d.ts +0 -16
  144. package/dist/useVariationAssociatedData.js +0 -30
  145. package/dist/useVariationAssociatedData.js.map +0 -1
  146. package/dist/useVisitorCode.d.ts +0 -12
  147. package/dist/useVisitorCode.js +0 -19
  148. package/dist/useVisitorCode.js.map +0 -1
  149. package/dist/withActivateFeature.d.ts +0 -17
  150. package/dist/withActivateFeature.js +0 -28
  151. package/dist/withActivateFeature.js.map +0 -1
  152. package/dist/withAddData.d.ts +0 -16
  153. package/dist/withAddData.js +0 -28
  154. package/dist/withAddData.js.map +0 -1
  155. package/dist/withAsyncVisitorCode.d.ts +0 -15
  156. package/dist/withAsyncVisitorCode.js +0 -75
  157. package/dist/withAsyncVisitorCode.js.map +0 -1
  158. package/dist/withBrowser.d.ts +0 -16
  159. package/dist/withBrowser.js +0 -35
  160. package/dist/withBrowser.js.map +0 -1
  161. package/dist/withConversion.d.ts +0 -17
  162. package/dist/withConversion.js +0 -31
  163. package/dist/withConversion.js.map +0 -1
  164. package/dist/withCustomData.d.ts +0 -16
  165. package/dist/withCustomData.js +0 -31
  166. package/dist/withCustomData.js.map +0 -1
  167. package/dist/withDevice.d.ts +0 -15
  168. package/dist/withDevice.js +0 -29
  169. package/dist/withDevice.js.map +0 -1
  170. package/dist/withFeature.d.ts +0 -6
  171. package/dist/withFeature.js +0 -31
  172. package/dist/withFeature.js.map +0 -1
  173. package/dist/withFeatureVariable.d.ts +0 -17
  174. package/dist/withFeatureVariable.js +0 -28
  175. package/dist/withFeatureVariable.js.map +0 -1
  176. package/dist/withFlush.d.ts +0 -14
  177. package/dist/withFlush.js +0 -36
  178. package/dist/withFlush.js.map +0 -1
  179. package/dist/withKameleoon.d.ts +0 -13
  180. package/dist/withKameleoon.js +0 -33
  181. package/dist/withKameleoon.js.map +0 -1
  182. package/dist/withPageView.d.ts +0 -17
  183. package/dist/withPageView.js +0 -31
  184. package/dist/withPageView.js.map +0 -1
  185. package/dist/withRetrieveDataFromRemoteSource.d.ts +0 -14
  186. package/dist/withRetrieveDataFromRemoteSource.js +0 -28
  187. package/dist/withRetrieveDataFromRemoteSource.js.map +0 -1
  188. package/dist/withRunWhenReady.d.ts +0 -16
  189. package/dist/withRunWhenReady.js +0 -28
  190. package/dist/withRunWhenReady.js.map +0 -1
  191. package/dist/withTrackingConversion.d.ts +0 -16
  192. package/dist/withTrackingConversion.js +0 -36
  193. package/dist/withTrackingConversion.js.map +0 -1
  194. package/dist/withTriggerExperiment.d.ts +0 -19
  195. package/dist/withTriggerExperiment.js +0 -30
  196. package/dist/withTriggerExperiment.js.map +0 -1
  197. package/dist/withVariationAssociatedData.d.ts +0 -18
  198. package/dist/withVariationAssociatedData.js +0 -30
  199. package/dist/withVariationAssociatedData.js.map +0 -1
  200. package/dist/withVisitorCode.d.ts +0 -15
  201. package/dist/withVisitorCode.js +0 -36
  202. package/dist/withVisitorCode.js.map +0 -1
@@ -0,0 +1,19 @@
1
+ import { KameleoonError } from './KameleoonError';
2
+ export interface IFeatureFlagVariationKeyHookResult {
3
+ /**
4
+ * Returns variation key for the visitor under `visitorCode` in the found feature flag, this method includes targeting check, finding the according variation exposed to the visitor and saving it to storage along with sending tracking request if the feature rollout rule was of type of `Experimentation`.
5
+ *
6
+ * @param {string} visitorCode - unique visitor identification string, can't exceed 255 characters length.
7
+ * @param {string} featureKey - a unique key for feature flag.
8
+ * @returns {string | undefined} a string containing variable key for the allocated feature flag variation for the provided visitor.
9
+ */
10
+ getFeatureFlagVariationKey: (visitorCode: string, featureKey: string) => string | undefined;
11
+ /** An optional error object that may be returned if an error occurs while calling the `getFeatureFlagVariationKey` function. */
12
+ error: KameleoonError | null;
13
+ }
14
+ /**
15
+ * A React Hook that returns `getFeatureFlagVariationKey` function which returns variation key for the visitor under `visitorCode` in the found feature flag.
16
+ *
17
+ * @returns {IFeatureFlagVariationKeyHookResult} an object containing the `getFeatureFlagVariationKey` function and an optional error object.
18
+ */
19
+ export declare function useFeatureFlagVariationKey(): IFeatureFlagVariationKeyHookResult;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useFeatureFlagVariationKey = 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 `getFeatureFlagVariationKey` function which returns variation key for the visitor under `visitorCode` in the found feature flag.
9
+ *
10
+ * @returns {IFeatureFlagVariationKeyHookResult} an object containing the `getFeatureFlagVariationKey` function and an optional error object.
11
+ */
12
+ function useFeatureFlagVariationKey() {
13
+ var client = (0, useKameleoon_1.useKameleoon)().client;
14
+ var _a = (0, useError_1.useError)(), error = _a.error, setError = _a.setError;
15
+ var getFeatureFlagVariationKey = (0, react_1.useCallback)(function (visitorCode, featureKey) {
16
+ try {
17
+ return client.getFeatureFlagVariationKey(visitorCode, featureKey);
18
+ }
19
+ catch (unknownError) {
20
+ setError(unknownError);
21
+ return undefined;
22
+ }
23
+ }, [client]);
24
+ return {
25
+ getFeatureFlagVariationKey: getFeatureFlagVariationKey,
26
+ error: error,
27
+ };
28
+ }
29
+ exports.useFeatureFlagVariationKey = useFeatureFlagVariationKey;
30
+ //# sourceMappingURL=useFeatureFlagVariationKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFeatureFlagVariationKey.js","sourceRoot":"","sources":["../src/useFeatureFlagVariationKey.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,+CAA8C;AAC9C,uCAAsC;AAmBtC;;;;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,EAAE,UAAkB;QACtC,IAAI;YACF,OAAO,MAAM,CAAC,0BAA0B,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;SACnE;QAAC,OAAO,YAAY,EAAE;YACrB,QAAQ,CAAC,YAAY,CAAC,CAAC;YAEvB,OAAO,SAAS,CAAC;SAClB;IACH,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO;QACL,0BAA0B,4BAAA;QAC1B,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AArBD,gEAqBC"}
@@ -0,0 +1,18 @@
1
+ import { FeatureFlagType } from '@kameleoon/javascript-sdk-core';
2
+ import { KameleoonError } from './KameleoonError';
3
+ export interface IFeatureFlagsHookResult {
4
+ /**
5
+ * Returns a list of feature flags stored in the client configuration.
6
+ *
7
+ * @returns {FeatureFlagType[]} a list of all feature flags items with `id` and `key` fields.
8
+ */
9
+ getFeatureFlags: () => FeatureFlagType[];
10
+ /** An optional error object that may be returned if an error occurs while calling the `getFeatureFlags` function. */
11
+ error: KameleoonError | null;
12
+ }
13
+ /**
14
+ * A React Hook that returns `getFeatureFlags` function which returns a list of feature flags.
15
+ *
16
+ * @returns {IFeatureFlagsHookResult} an object containing the `getFeatureFlags` function and an optional error object.
17
+ */
18
+ export declare function useFeatureFlags(): IFeatureFlagsHookResult;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useFeatureFlags = 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 `getFeatureFlags` function which returns a list of feature flags.
9
+ *
10
+ * @returns {IFeatureFlagsHookResult} an object containing the `getFeatureFlags` function and an optional error object.
11
+ */
12
+ function useFeatureFlags() {
13
+ var client = (0, useKameleoon_1.useKameleoon)().client;
14
+ var _a = (0, useError_1.useError)(), error = _a.error, setError = _a.setError;
15
+ var getFeatureFlags = (0, react_1.useCallback)(function () {
16
+ try {
17
+ return client.getFeatureFlags();
18
+ }
19
+ catch (unknownError) {
20
+ setError(unknownError);
21
+ return [];
22
+ }
23
+ }, [client]);
24
+ return {
25
+ getFeatureFlags: getFeatureFlags,
26
+ error: error,
27
+ };
28
+ }
29
+ exports.useFeatureFlags = useFeatureFlags;
30
+ //# sourceMappingURL=useFeatureFlags.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFeatureFlags.js","sourceRoot":"","sources":["../src/useFeatureFlags.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAEpC,+CAA8C;AAC9C,uCAAsC;AActC;;;;GAIG;AACH,SAAgB,eAAe;IACrB,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAC5B,IAAA,KAAsB,IAAA,mBAAQ,GAAE,EAA9B,KAAK,WAAA,EAAE,QAAQ,cAAe,CAAC;IAEvC,IAAM,eAAe,GAAG,IAAA,mBAAW,EAAC;QAClC,IAAI;YACF,OAAO,MAAM,CAAC,eAAe,EAAE,CAAC;SACjC;QAAC,OAAO,YAAY,EAAE;YACrB,QAAQ,CAAC,YAAY,CAAC,CAAC;YAEvB,OAAO,EAAE,CAAC;SACX;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO;QACL,eAAe,iBAAA;QACf,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AAlBD,0CAkBC"}
@@ -1,15 +1,19 @@
1
- import { FeatureFlagVariableType } from './types';
1
+ import { GetFeatureFlagVariableParamsType, FeatureVariableResultType } from '@kameleoon/javascript-sdk-core';
2
2
  import { KameleoonError } from './KameleoonError';
3
- interface FeatureVariableHookResult {
3
+ export interface IFeatureVariableHookResult {
4
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
5
+ * Returns a variable for the visitor under `visitorCode` in the found feature flag, this method includes targeting check, finding the according variation exposed to the visitor and saving it to storage along with sending tracking request if the feature rollout rule was of type of `Experimentation`.
6
+ *
7
+ * @param {GetFeatureFlagVariableParamsType} params - `visitorCode`, `featureKey` and `variableKey` parameters to return variable.
8
+ * @return {FeatureVariableResultType | undefined} a variable object containing `type` and `value` fields, `type` can be checked against `FeatureVariableType` enum, if the `type` is `FeatureVariableType.BOOLEAN` then the `value` type will be `boolean` and so on.
7
9
  */
8
- getFeatureVariable: (featureKey: string | number, variableKey: string) => FeatureFlagVariableType;
10
+ getFeatureFlagVariable: (params: GetFeatureFlagVariableParamsType) => FeatureVariableResultType | undefined;
11
+ /** An optional error object that may be returned if an error occurs while calling the `getFeatureFlagVariable` function. */
9
12
  error: KameleoonError | null;
10
13
  }
11
14
  /**
12
- * A React Hook that returns callback function which retrieves a feature variable
15
+ * A React Hook that returns `getFeatureFlagVariable` function which retrieves a feature variable.
16
+ *
17
+ * @returns {IPageViewHookResult} an object containing the `getFeatureFlagVariable` function.
13
18
  */
14
- export declare function useFeatureVariable(): FeatureVariableHookResult;
15
- export {};
19
+ export declare function useFeatureVariable(): IFeatureVariableHookResult;
@@ -1,39 +1,28 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.useFeatureVariable = void 0;
7
4
  var react_1 = require("react");
8
- var isJSON_1 = __importDefault(require("validator/lib/isJSON"));
9
5
  var useKameleoon_1 = require("./useKameleoon");
10
6
  var useError_1 = require("./useError");
11
7
  /**
12
- * A React Hook that returns callback function which retrieves a feature variable
8
+ * A React Hook that returns `getFeatureFlagVariable` function which retrieves a feature variable.
9
+ *
10
+ * @returns {IPageViewHookResult} an object containing the `getFeatureFlagVariable` function.
13
11
  */
14
12
  function useFeatureVariable() {
15
13
  var client = (0, useKameleoon_1.useKameleoon)().client;
16
14
  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) {
15
+ var getFeatureFlagVariable = (0, react_1.useCallback)(function (params) {
27
16
  try {
28
- return getProcessedVariable(client.obtainFeatureVariable(featureKey, variableKey));
17
+ return client.getFeatureFlagVariable(params);
29
18
  }
30
19
  catch (unknownError) {
31
20
  setError(unknownError);
32
21
  return undefined;
33
22
  }
34
- }, [client, getProcessedVariable, setError]);
23
+ }, [client, setError]);
35
24
  return {
36
- getFeatureVariable: getFeatureVariable,
25
+ getFeatureFlagVariable: getFeatureFlagVariable,
37
26
  error: error,
38
27
  };
39
28
  }
@@ -1 +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"}
1
+ {"version":3,"file":"useFeatureVariable.js","sourceRoot":"","sources":["../src/useFeatureVariable.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAKpC,+CAA8C;AAE9C,uCAAsC;AAgBtC;;;;GAIG;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,sBAAsB,GAAG,IAAA,mBAAW,EACxC,UACE,MAAwC;QAExC,IAAI;YACF,OAAO,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;SAC9C;QAAC,OAAO,YAAY,EAAE;YACrB,QAAQ,CAAC,YAAY,CAAC,CAAC;YAEvB,OAAO,SAAS,CAAC;SAClB;IACH,CAAC,EACD,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAC;IAEF,OAAO;QACL,sBAAsB,wBAAA;QACtB,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AAvBD,gDAuBC"}
@@ -0,0 +1,14 @@
1
+ export interface IFlushDataHookResult {
2
+ /**
3
+ * Takes visitor associated kameleoon data and sends the data tracking request with collected data sent data is removed from `KameleoonClient` instance but not from the storage for correct targeting checks.
4
+ *
5
+ * @param {string} visitorCode - unique visitor identification string, can't exceed 255 characters length.
6
+ */
7
+ flushData: (visitorCode: string) => void;
8
+ }
9
+ /**
10
+ * A React Hook that returns `flushData` function
11
+ *
12
+ * @returns {IFlushDataHookResult} an object containing the `flushData` function.
13
+ */
14
+ export declare function useFlushData(): IFlushDataHookResult;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useFlushData = void 0;
4
+ var react_1 = require("react");
5
+ var useKameleoon_1 = require("./useKameleoon");
6
+ /**
7
+ * A React Hook that returns `flushData` function
8
+ *
9
+ * @returns {IFlushDataHookResult} an object containing the `flushData` function.
10
+ */
11
+ function useFlushData() {
12
+ var client = (0, useKameleoon_1.useKameleoon)().client;
13
+ var flushData = (0, react_1.useCallback)(function (visitorCode) {
14
+ client.flushData(visitorCode);
15
+ }, [client]);
16
+ return {
17
+ flushData: flushData,
18
+ };
19
+ }
20
+ exports.useFlushData = useFlushData;
21
+ //# sourceMappingURL=useFlushData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFlushData.js","sourceRoot":"","sources":["../src/useFlushData.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,+CAA8C;AAW9C;;;;GAIG;AACH,SAAgB,YAAY;IAClB,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAElC,IAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,UAAC,WAAmB;QAClB,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO;QACL,SAAS,WAAA;KACV,CAAC;AACJ,CAAC;AAbD,oCAaC"}
@@ -0,0 +1,15 @@
1
+ import { KameleoonError } from './KameleoonError';
2
+ export interface IInitializeHookResult {
3
+ /**
4
+ * An asynchronous method for KameleoonClient initialization by fetching Kameleoon SDK related data from server or by retrieving data from local source if data is up-to-date or update interval has not been reached.
5
+ */
6
+ initialize: () => Promise<boolean>;
7
+ /** An optional error object that may be returned if an error occurs while calling the `initialize` function. */
8
+ error: KameleoonError | null;
9
+ }
10
+ /**
11
+ * A React Hook that returns asynchronous `initialize` function.
12
+ *
13
+ * @returns {IInitializeHookResult} an object containing the asynchronous `initialize` function and an optional error object.
14
+ */
15
+ export declare function useInitialize(): IInitializeHookResult;
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
14
14
  function verb(n) { return function (v) { return step([n, v]); }; }
15
15
  function step(op) {
16
16
  if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
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
19
  if (y = 0, t) op = [op[0] & 2, t.value];
20
20
  switch (op[0]) {
@@ -36,21 +36,39 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.useAsyncVisitorCode = void 0;
39
+ exports.useInitialize = void 0;
40
40
  var react_1 = require("react");
41
41
  var useKameleoon_1 = require("./useKameleoon");
42
+ var useError_1 = require("./useError");
42
43
  /**
43
- * A React Hook that returns callback function which obtains the Kameleoon visitorCode asynchronously for the current visitor
44
+ * A React Hook that returns asynchronous `initialize` function.
45
+ *
46
+ * @returns {IInitializeHookResult} an object containing the asynchronous `initialize` function and an optional error object.
44
47
  */
45
- function useAsyncVisitorCode() {
48
+ function useInitialize() {
46
49
  var _this = this;
47
50
  var client = (0, useKameleoon_1.useKameleoon)().client;
48
- var getAsyncVisitorCode = (0, react_1.useCallback)(function (topLevelDomain, defaultVisitorCode) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
49
- return [2 /*return*/, client.obtainAsyncVisitorCode(topLevelDomain, defaultVisitorCode)];
50
- }); }); }, [client]);
51
+ var _a = (0, useError_1.useError)(), error = _a.error, setError = _a.setError;
52
+ var initialize = (0, react_1.useCallback)(function () { return __awaiter(_this, void 0, void 0, function () {
53
+ var unknownError_1;
54
+ return __generator(this, function (_a) {
55
+ switch (_a.label) {
56
+ case 0:
57
+ _a.trys.push([0, 2, , 3]);
58
+ return [4 /*yield*/, client.initialize()];
59
+ case 1: return [2 /*return*/, _a.sent()];
60
+ case 2:
61
+ unknownError_1 = _a.sent();
62
+ setError(unknownError_1);
63
+ return [2 /*return*/, false];
64
+ case 3: return [2 /*return*/];
65
+ }
66
+ });
67
+ }); }, [client]);
51
68
  return {
52
- getAsyncVisitorCode: getAsyncVisitorCode,
69
+ initialize: initialize,
70
+ error: error,
53
71
  };
54
72
  }
55
- exports.useAsyncVisitorCode = useAsyncVisitorCode;
56
- //# sourceMappingURL=useAsyncVisitorCode.js.map
73
+ exports.useInitialize = useInitialize;
74
+ //# sourceMappingURL=useInitialize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInitialize.js","sourceRoot":"","sources":["../src/useInitialize.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAoC;AACpC,+CAA8C;AAC9C,uCAAsC;AAYtC;;;;GAIG;AACH,SAAgB,aAAa;IAA7B,iBAkBC;IAjBS,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAC5B,IAAA,KAAsB,IAAA,mBAAQ,GAAE,EAA9B,KAAK,WAAA,EAAE,QAAQ,cAAe,CAAC;IAEvC,IAAM,UAAU,GAAG,IAAA,mBAAW,EAAC;;;;;;oBAEpB,qBAAM,MAAM,CAAC,UAAU,EAAE,EAAA;wBAAhC,sBAAO,SAAyB,EAAC;;;oBAEjC,QAAQ,CAAC,cAAY,CAAC,CAAC;oBAEvB,sBAAO,KAAK,EAAC;;;;SAEhB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,OAAO;QACL,UAAU,YAAA;QACV,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AAlBD,sCAkBC"}
@@ -1,10 +1,11 @@
1
- import { KameleoonClient } from '@kameleoon/javascript-sdk-core';
2
- interface KameleoonHookResult {
3
- /** An instance of KameleoonClient */
4
- client: KameleoonClient;
1
+ import { KameleoonCore } from '@kameleoon/javascript-sdk-core';
2
+ export interface IKameleoonHookResult {
3
+ /** An instance of KameleoonClient. */
4
+ client: KameleoonCore;
5
5
  }
6
6
  /**
7
- * A React Hook that validates if context is used within a KameleoonProvider and returns it
7
+ * A React Hook that validates if context is used within a KameleoonProvider and returns it.
8
+ *
9
+ * @returns {IKameleoonHookResult}
8
10
  */
9
- export declare function useKameleoon(): KameleoonHookResult;
10
- export {};
11
+ export declare function useKameleoon(): IKameleoonHookResult;
@@ -5,7 +5,9 @@ var react_1 = require("react");
5
5
  var KameleoonContext_1 = require("./KameleoonContext");
6
6
  var ProviderError_1 = require("./ProviderError");
7
7
  /**
8
- * A React Hook that validates if context is used within a KameleoonProvider and returns it
8
+ * A React Hook that validates if context is used within a KameleoonProvider and returns it.
9
+ *
10
+ * @returns {IKameleoonHookResult}
9
11
  */
10
12
  function useKameleoon() {
11
13
  var context = (0, react_1.useContext)(KameleoonContext_1.KameleoonContext);
@@ -1 +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"}
1
+ {"version":3,"file":"useKameleoon.js","sourceRoot":"","sources":["../src/useKameleoon.ts"],"names":[],"mappings":";;;AAAA,+BAAmC;AAEnC,uDAAsD;AACtD,iDAAgD;AAOhD;;;;GAIG;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,16 @@
1
+ interface INativeVisitorCodeHookResult {
2
+ /**
3
+ * Obtains visitor code from the storage, if no visitor code exists returns a new random visitor code (or the specified default value).
4
+ *
5
+ * @param defaultVisitorCode - visitor code to be used instead of randomly generated visitor code in case there is no visitor code saved in storage.
6
+ * @returns {string} result visitor code.
7
+ */
8
+ getNativeVisitorCode: (defaultVisitorCode?: string) => string;
9
+ }
10
+ /**
11
+ * A React Hook that returns `getNativeVisitorCode function which obtains the Kameleoon visitorCode.
12
+ *
13
+ * @returns {INativeVisitorCodeHookResult} an object containing the `getNativeVisitorCode` function and an optional error object.
14
+ */
15
+ export declare function useNativeVisitorCode(): INativeVisitorCodeHookResult;
16
+ export {};
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useNativeVisitorCode = void 0;
4
+ var react_1 = require("react");
5
+ var nativeUtils_1 = require("./kameleoonUtils/nativeUtils");
6
+ /**
7
+ * A React Hook that returns `getNativeVisitorCode function which obtains the Kameleoon visitorCode.
8
+ *
9
+ * @returns {INativeVisitorCodeHookResult} an object containing the `getNativeVisitorCode` function and an optional error object.
10
+ */
11
+ function useNativeVisitorCode() {
12
+ var getNativeVisitorCode = (0, react_1.useCallback)(function (defaultVisitorCode) {
13
+ return nativeUtils_1.NativeUtils.getVisitorCode(defaultVisitorCode);
14
+ }, []);
15
+ return {
16
+ getNativeVisitorCode: getNativeVisitorCode,
17
+ };
18
+ }
19
+ exports.useNativeVisitorCode = useNativeVisitorCode;
20
+ //# sourceMappingURL=useNativeVisitorCode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useNativeVisitorCode.js","sourceRoot":"","sources":["../src/useNativeVisitorCode.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,4DAA2D;AAY3D;;;;GAIG;AACH,SAAgB,oBAAoB;IAClC,IAAM,oBAAoB,GAAG,IAAA,mBAAW,EACtC,UAAC,kBAA2B;QAC1B,OAAO,yBAAW,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;IACxD,CAAC,EACD,EAAE,CACH,CAAC;IAEF,OAAO;QACL,oBAAoB,sBAAA;KACrB,CAAC;AACJ,CAAC;AAXD,oDAWC"}
@@ -0,0 +1,19 @@
1
+ import { JSONType } from '@kameleoon/javascript-sdk-core';
2
+ import { KameleoonError } from './KameleoonError';
3
+ export interface IRemoteDataHookResult {
4
+ /**
5
+ * Returns a data which is stored for specified siteCode on a remote Kameleoon server.
6
+ *
7
+ * @param {string} key - unique key that the data you try to get is associated with.
8
+ * @returns {Promise<JSONType | undefined>} promise with retrieving data for specific key.
9
+ */
10
+ getRemoteData: (key: string) => Promise<JSONType | undefined>;
11
+ /** An optional error object that may be returned if an error occurs while calling the `getRemoteData` function. */
12
+ error: KameleoonError | null;
13
+ }
14
+ /**
15
+ * A React Hook that returns asynchronous getRemoteData function which retrieves data from Kameleoon server.
16
+ *
17
+ * @returns {IRemoteDataHookResult} an object containing the `getRemoteData` function.
18
+ */
19
+ export declare function useRemoteData(): IRemoteDataHookResult;
@@ -14,7 +14,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
14
14
  function verb(n) { return function (v) { return step([n, v]); }; }
15
15
  function step(op) {
16
16
  if (f) throw new TypeError("Generator is already executing.");
17
- while (_) try {
17
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
18
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
19
  if (y = 0, t) op = [op[0] & 2, t.value];
20
20
  switch (op[0]) {
@@ -36,44 +36,41 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.useRetrieveDataFromRemoteSource = void 0;
39
+ exports.useRemoteData = void 0;
40
40
  var react_1 = require("react");
41
41
  var useKameleoon_1 = require("./useKameleoon");
42
- var ProviderError_1 = require("./ProviderError");
43
- var KameleoonError_1 = require("./KameleoonError");
44
- var constants_1 = require("./constants");
42
+ var useError_1 = require("./useError");
45
43
  /**
46
- * A React Hook that returns asynchronous callback function which retrieves data from Kameleoon Data API
44
+ * A React Hook that returns asynchronous getRemoteData function which retrieves data from Kameleoon server.
45
+ *
46
+ * @returns {IRemoteDataHookResult} an object containing the `getRemoteData` function.
47
47
  */
48
- function useRetrieveDataFromRemoteSource() {
48
+ function useRemoteData() {
49
49
  var _this = this;
50
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;
51
+ var _a = (0, useError_1.useError)(), error = _a.error, setError = _a.setError;
52
+ var getRemoteData = (0, react_1.useCallback)(function (key) { return __awaiter(_this, void 0, void 0, function () {
53
+ var remoteData, unknownError_1;
58
54
  return __generator(this, function (_a) {
59
55
  switch (_a.label) {
60
- case 0: return [4 /*yield*/, client.retrieveDataFromRemoteSource(key)];
56
+ case 0:
57
+ _a.trys.push([0, 2, , 3]);
58
+ return [4 /*yield*/, client.getRemoteData(key)];
61
59
  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 }];
60
+ remoteData = _a.sent();
61
+ return [2 /*return*/, remoteData];
62
+ case 2:
63
+ unknownError_1 = _a.sent();
64
+ setError(unknownError_1);
65
+ return [2 /*return*/, undefined];
66
+ case 3: return [2 /*return*/];
68
67
  }
69
68
  });
70
- }); }, [client, isObjectEmpty]);
71
- if (!client) {
72
- throw new ProviderError_1.ProviderError('useKameleoon');
73
- }
69
+ }); }, [client]);
74
70
  return {
75
- retrieveDataFromRemoteSource: retrieveDataFromRemoteSource,
71
+ getRemoteData: getRemoteData,
72
+ error: error,
76
73
  };
77
74
  }
78
- exports.useRetrieveDataFromRemoteSource = useRetrieveDataFromRemoteSource;
79
- //# sourceMappingURL=useRetrieveDataFromRemoteSource.js.map
75
+ exports.useRemoteData = useRemoteData;
76
+ //# sourceMappingURL=useRemoteData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRemoteData.js","sourceRoot":"","sources":["../src/useRemoteData.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAoC;AAEpC,+CAA8C;AAE9C,uCAAsC;AActC;;;;GAIG;AACH,SAAgB,aAAa;IAA7B,iBAuBC;IAtBS,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAC5B,IAAA,KAAsB,IAAA,mBAAQ,GAAE,EAA9B,KAAK,WAAA,EAAE,QAAQ,cAAe,CAAC;IAEvC,IAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,UAAO,GAAW;;;;;;oBAEK,qBAAM,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,EAAA;;oBAA5C,UAAU,GAAG,SAA+B;oBAElD,sBAAO,UAAU,EAAC;;;oBAElB,QAAQ,CAAC,cAAY,CAAC,CAAC;oBAEvB,sBAAO,SAAS,EAAC;;;;SAEpB,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO;QACL,aAAa,eAAA;QACb,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AAvBD,sCAuBC"}
@@ -0,0 +1,18 @@
1
+ import { TrackConversionParamsType } from '@kameleoon/javascript-sdk-core';
2
+ import { KameleoonError } from './KameleoonError';
3
+ export interface ITrackConversionHookResult {
4
+ /**
5
+ * Creates and adds `Conversion` data to the visitor with specified parameters and executes `flushData`. Note: it's a helper method for the quick and convenient conversion tracking, however creating and adding `Conversion` manually allows more flexible `Conversion` with `negative` parameter.
6
+ *
7
+ * @param {TrackConversionParamsType} params - `visitorCode`, `goalId` and `revenue` parameters for data tracking.
8
+ */
9
+ trackConversion: (params: TrackConversionParamsType) => void;
10
+ /** An optional error object that may be returned if an error occurs while calling the `trackConversion` function. */
11
+ error: KameleoonError | null;
12
+ }
13
+ /**
14
+ * A React Hook that returns trackConversion function which tracks conversion.
15
+ *
16
+ * @returns {ITrackConversionHookResult} an object containing the `trackConversion` function.
17
+ */
18
+ export declare function useTrackConversion(): ITrackConversionHookResult;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useTrackConversion = 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 trackConversion function which tracks conversion.
9
+ *
10
+ * @returns {ITrackConversionHookResult} an object containing the `trackConversion` function.
11
+ */
12
+ function useTrackConversion() {
13
+ var client = (0, useKameleoon_1.useKameleoon)().client;
14
+ var _a = (0, useError_1.useError)(), error = _a.error, setError = _a.setError;
15
+ var trackConversion = (0, react_1.useCallback)(function (params) {
16
+ try {
17
+ client.trackConversion(params);
18
+ }
19
+ catch (unknownError) {
20
+ setError(unknownError);
21
+ }
22
+ }, [client]);
23
+ return {
24
+ trackConversion: trackConversion,
25
+ error: error,
26
+ };
27
+ }
28
+ exports.useTrackConversion = useTrackConversion;
29
+ //# sourceMappingURL=useTrackConversion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTrackConversion.js","sourceRoot":"","sources":["../src/useTrackConversion.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAGpC,+CAA8C;AAC9C,uCAAsC;AAatC;;;;GAIG;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,eAAe,GAAG,IAAA,mBAAW,EACjC,UAAC,MAAiC;QAChC,IAAI;YACF,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;SAChC;QAAC,OAAO,YAAY,EAAE;YACrB,QAAQ,CAAC,YAAY,CAAC,CAAC;SACxB;IACH,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO;QACL,eAAe,iBAAA;QACf,KAAK,OAAA;KACN,CAAC;AACJ,CAAC;AAnBD,gDAmBC"}
@@ -1,17 +1,19 @@
1
1
  import { KameleoonError } from './KameleoonError';
2
- interface IGetVariationIdHookResult {
2
+ export interface ITriggerExperimentHookResult {
3
3
  /**
4
- * @param visitorCode - unique identifier of the user
5
- * @param experimentId - unique identifier of the experiment you want to expose to a user
4
+ * Triggers experiment by assigning the variation to the user with `visitorCode`, if the variation is already assigned just returns it's id. Note: returned id `0` indicates default variation. At the same time executes `flushData` without sending extra request.
5
+ *
6
+ * @param {string} visitorCode - unique visitor identification string, can't exceed 255 characters length.
7
+ * @param {number} experimentId - id of experiment running for the current visitor.
8
+ * @returns {number} associated variationId which is successfully searched/assigned.
6
9
  */
7
- getVariationId: (visitorCode: string, experimentId: number) => number;
10
+ triggerExperiment: (visitorCode: string, experimentId: number) => number;
11
+ /** An optional error object that may be returned if an error occurs while calling the `triggerExperiment` function. */
8
12
  error: KameleoonError | null;
9
13
  }
10
14
  /**
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
+ * A React Hook that returns `triggerExperiment` function which triggers experiment.
16
+ *
17
+ * @returns {ITriggerExperimentHookResult} an object containing the `triggerExperiment` function.
15
18
  */
16
- export declare function useTriggerExperiment(): IGetVariationIdHookResult;
17
- export {};
19
+ export declare function useTriggerExperiment(): ITriggerExperimentHookResult;
@@ -4,27 +4,26 @@ exports.useTriggerExperiment = void 0;
4
4
  var react_1 = require("react");
5
5
  var useKameleoon_1 = require("./useKameleoon");
6
6
  var useError_1 = require("./useError");
7
+ var constants_1 = require("./constants");
7
8
  /**
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
9
+ * A React Hook that returns `triggerExperiment` function which triggers experiment.
10
+ *
11
+ * @returns {ITriggerExperimentHookResult} an object containing the `triggerExperiment` function.
12
12
  */
13
13
  function useTriggerExperiment() {
14
- var _a = (0, useError_1.useError)(), error = _a.error, setError = _a.setError;
15
14
  var client = (0, useKameleoon_1.useKameleoon)().client;
16
- var DEFAULT_VARIATION_ID = 0;
17
- var getVariationId = (0, react_1.useCallback)(function (visitorCode, experimentId) {
15
+ var _a = (0, useError_1.useError)(), error = _a.error, setError = _a.setError;
16
+ var triggerExperiment = (0, react_1.useCallback)(function (visitorCode, experimentId) {
18
17
  try {
19
18
  return client.triggerExperiment(visitorCode, experimentId);
20
19
  }
21
20
  catch (unknownError) {
22
21
  setError(unknownError);
23
- return DEFAULT_VARIATION_ID;
22
+ return constants_1.DEFAULT_VARIATION_ID;
24
23
  }
25
24
  }, [client, setError]);
26
25
  return {
27
- getVariationId: getVariationId,
26
+ triggerExperiment: triggerExperiment,
28
27
  error: error,
29
28
  };
30
29
  }