@kameleoon/react-sdk 4.0.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/dist/Feature.d.ts +11 -0
  2. package/dist/Feature.js +26 -0
  3. package/dist/Feature.js.map +1 -0
  4. package/dist/KameleoonContext.d.ts +3 -0
  5. package/dist/KameleoonContext.js +6 -0
  6. package/dist/KameleoonContext.js.map +1 -0
  7. package/dist/KameleoonError.d.ts +5 -0
  8. package/dist/KameleoonError.js +31 -0
  9. package/dist/KameleoonError.js.map +1 -0
  10. package/dist/KameleoonProvider.d.ts +14 -0
  11. package/dist/KameleoonProvider.js +25 -0
  12. package/dist/KameleoonProvider.js.map +1 -0
  13. package/dist/ProviderError.d.ts +3 -0
  14. package/dist/ProviderError.js +29 -0
  15. package/dist/ProviderError.js.map +1 -0
  16. package/dist/compose.d.ts +8 -0
  17. package/dist/compose.js +58 -0
  18. package/dist/compose.js.map +1 -0
  19. package/dist/constants.d.ts +24 -0
  20. package/dist/constants.js +31 -0
  21. package/dist/constants.js.map +1 -0
  22. package/dist/getKameleoonException.d.ts +2 -0
  23. package/dist/getKameleoonException.js +34 -0
  24. package/dist/getKameleoonException.js.map +1 -0
  25. package/dist/index.d.ts +42 -0
  26. package/dist/index.js +106 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/kameleoonClient.d.ts +16 -0
  29. package/dist/kameleoonClient.js +17 -0
  30. package/dist/kameleoonClient.js.map +1 -0
  31. package/dist/stories/Form.d.ts +30 -0
  32. package/dist/stories/Form.js +215 -0
  33. package/dist/stories/Form.js.map +1 -0
  34. package/dist/stories/FormHOC.d.ts +2 -0
  35. package/dist/stories/FormHOC.js +41 -0
  36. package/dist/stories/FormHOC.js.map +1 -0
  37. package/dist/stories/FormHook.d.ts +2 -0
  38. package/dist/stories/FormHook.js +74 -0
  39. package/dist/stories/FormHook.js.map +1 -0
  40. package/dist/stories/FormRenderProps.d.ts +3 -0
  41. package/dist/stories/FormRenderProps.js +24 -0
  42. package/dist/stories/FormRenderProps.js.map +1 -0
  43. package/dist/stories/Radio.d.ts +8 -0
  44. package/dist/stories/Radio.js +9 -0
  45. package/dist/stories/Radio.js.map +1 -0
  46. package/dist/stories/constants.d.ts +16 -0
  47. package/dist/stories/constants.js +21 -0
  48. package/dist/stories/constants.js.map +1 -0
  49. package/dist/types.d.ts +37 -0
  50. package/dist/types.js +4 -0
  51. package/dist/types.js.map +1 -0
  52. package/dist/useActivateFeature.d.ts +14 -0
  53. package/dist/useActivateFeature.js +35 -0
  54. package/dist/useActivateFeature.js.map +1 -0
  55. package/dist/useAddData.d.ts +14 -0
  56. package/dist/useAddData.js +49 -0
  57. package/dist/useAddData.js.map +1 -0
  58. package/dist/useBrowser.d.ts +13 -0
  59. package/dist/useBrowser.js +22 -0
  60. package/dist/useBrowser.js.map +1 -0
  61. package/dist/useConversion.d.ts +14 -0
  62. package/dist/useConversion.js +18 -0
  63. package/dist/useConversion.js.map +1 -0
  64. package/dist/useCustomData.d.ts +13 -0
  65. package/dist/useCustomData.js +18 -0
  66. package/dist/useCustomData.js.map +1 -0
  67. package/dist/useDevice.d.ts +12 -0
  68. package/dist/useDevice.js +16 -0
  69. package/dist/useDevice.js.map +1 -0
  70. package/dist/useError.d.ts +7 -0
  71. package/dist/useError.js +34 -0
  72. package/dist/useError.js.map +1 -0
  73. package/dist/useErrors.d.ts +7 -0
  74. package/dist/useErrors.js +42 -0
  75. package/dist/useErrors.js.map +1 -0
  76. package/dist/useFeature.d.ts +5 -0
  77. package/dist/useFeature.js +104 -0
  78. package/dist/useFeature.js.map +1 -0
  79. package/dist/useFeatureVariable.d.ts +15 -0
  80. package/dist/useFeatureVariable.js +41 -0
  81. package/dist/useFeatureVariable.js.map +1 -0
  82. package/dist/useFlush.d.ts +11 -0
  83. package/dist/useFlush.js +19 -0
  84. package/dist/useFlush.js.map +1 -0
  85. package/dist/useKameleoon.d.ts +10 -0
  86. package/dist/useKameleoon.js +20 -0
  87. package/dist/useKameleoon.js.map +1 -0
  88. package/dist/usePageView.d.ts +14 -0
  89. package/dist/usePageView.js +18 -0
  90. package/dist/usePageView.js.map +1 -0
  91. package/dist/useRetrieveDataFromRemoteSource.d.ts +12 -0
  92. package/dist/useRetrieveDataFromRemoteSource.js +79 -0
  93. package/dist/useRetrieveDataFromRemoteSource.js.map +1 -0
  94. package/dist/useRunWhenReady.d.ts +14 -0
  95. package/dist/useRunWhenReady.js +23 -0
  96. package/dist/useRunWhenReady.js.map +1 -0
  97. package/dist/useTrackingConversion.d.ts +13 -0
  98. package/dist/useTrackingConversion.js +19 -0
  99. package/dist/useTrackingConversion.js.map +1 -0
  100. package/dist/useTriggerExperiment.d.ts +17 -0
  101. package/dist/useTriggerExperiment.js +32 -0
  102. package/dist/useTriggerExperiment.js.map +1 -0
  103. package/dist/useVariationAssociatedData.d.ts +16 -0
  104. package/dist/useVariationAssociatedData.js +30 -0
  105. package/dist/useVariationAssociatedData.js.map +1 -0
  106. package/dist/useVisitorCode.d.ts +12 -0
  107. package/dist/useVisitorCode.js +19 -0
  108. package/dist/useVisitorCode.js.map +1 -0
  109. package/dist/withActivateFeature.d.ts +17 -0
  110. package/dist/withActivateFeature.js +28 -0
  111. package/dist/withActivateFeature.js.map +1 -0
  112. package/dist/withAddData.d.ts +16 -0
  113. package/dist/withAddData.js +65 -0
  114. package/dist/withAddData.js.map +1 -0
  115. package/dist/withBrowser.d.ts +16 -0
  116. package/dist/withBrowser.js +35 -0
  117. package/dist/withBrowser.js.map +1 -0
  118. package/dist/withConversion.d.ts +17 -0
  119. package/dist/withConversion.js +31 -0
  120. package/dist/withConversion.js.map +1 -0
  121. package/dist/withCustomData.d.ts +16 -0
  122. package/dist/withCustomData.js +31 -0
  123. package/dist/withCustomData.js.map +1 -0
  124. package/dist/withDevice.d.ts +15 -0
  125. package/dist/withDevice.js +29 -0
  126. package/dist/withDevice.js.map +1 -0
  127. package/dist/withFeature.d.ts +6 -0
  128. package/dist/withFeature.js +31 -0
  129. package/dist/withFeature.js.map +1 -0
  130. package/dist/withFeatureVariable.d.ts +17 -0
  131. package/dist/withFeatureVariable.js +28 -0
  132. package/dist/withFeatureVariable.js.map +1 -0
  133. package/dist/withFlush.d.ts +14 -0
  134. package/dist/withFlush.js +36 -0
  135. package/dist/withFlush.js.map +1 -0
  136. package/dist/withKameleoon.d.ts +13 -0
  137. package/dist/withKameleoon.js +33 -0
  138. package/dist/withKameleoon.js.map +1 -0
  139. package/dist/withPageView.d.ts +17 -0
  140. package/dist/withPageView.js +31 -0
  141. package/dist/withPageView.js.map +1 -0
  142. package/dist/withRetrieveDataFromRemoteSource.d.ts +14 -0
  143. package/dist/withRetrieveDataFromRemoteSource.js +28 -0
  144. package/dist/withRetrieveDataFromRemoteSource.js.map +1 -0
  145. package/dist/withRunWhenReady.d.ts +16 -0
  146. package/dist/withRunWhenReady.js +28 -0
  147. package/dist/withRunWhenReady.js.map +1 -0
  148. package/dist/withTrackingConversion.d.ts +16 -0
  149. package/dist/withTrackingConversion.js +36 -0
  150. package/dist/withTrackingConversion.js.map +1 -0
  151. package/dist/withTriggerExperiment.d.ts +19 -0
  152. package/dist/withTriggerExperiment.js +30 -0
  153. package/dist/withTriggerExperiment.js.map +1 -0
  154. package/dist/withVariationAssociatedData.d.ts +18 -0
  155. package/dist/withVariationAssociatedData.js +30 -0
  156. package/dist/withVariationAssociatedData.js.map +1 -0
  157. package/dist/withVisitorCode.d.ts +15 -0
  158. package/dist/withVisitorCode.js +36 -0
  159. package/dist/withVisitorCode.js.map +1 -0
  160. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAddData.js","sourceRoot":"","sources":["../src/useAddData.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAAoC;AAEpC,+CAA8C;AAU9C;;;GAGG;AACH,SAAgB,UAAU;IAChB,IAAA,MAAM,GAAK,IAAA,2BAAY,GAAE,OAAnB,CAAoB;IAElC,IAAM,OAAO,GAAG,IAAA,mBAAW,EACzB,UAAC,WAAmB;QAAE,mBAAqB;aAArB,UAAqB,EAArB,qBAAqB,EAArB,IAAqB;YAArB,kCAAqB;;QACzC,MAAM,CAAC,OAAO,OAAd,MAAM,iBAAS,WAAW,UAAK,SAAS,WAAE;IAC5C,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO;QACL,OAAO,SAAA;KACR,CAAC;AACJ,CAAC;AAbD,gCAaC"}
@@ -0,0 +1,13 @@
1
+ import { Browser as IBrowser } from 'kameleoon-client-javascript/dist/data';
2
+ import { Browser } from './constants';
3
+ interface BrowserHookResult {
4
+ /**
5
+ * @param browser - browser types: CHROME, INTERNET_EXPLORER, FIREFOX, SAFARI, OPERA, OTHER
6
+ */
7
+ addBrowser: (browser: Browser) => IBrowser;
8
+ }
9
+ /**
10
+ * A React Hook that returns callback function which adds browser type
11
+ */
12
+ export declare function useBrowser(): BrowserHookResult;
13
+ export {};
@@ -0,0 +1,22 @@
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.useBrowser = void 0;
7
+ var react_1 = require("react");
8
+ var kameleoon_client_javascript_1 = require("kameleoon-client-javascript");
9
+ var data_1 = __importDefault(require("kameleoon-client-javascript/dist/data"));
10
+ /**
11
+ * A React Hook that returns callback function which adds browser type
12
+ */
13
+ function useBrowser() {
14
+ var addBrowser = (0, react_1.useCallback)(function (browser) {
15
+ return new kameleoon_client_javascript_1.KameleoonData.Browser(data_1.default.browsers[browser]);
16
+ }, []);
17
+ return {
18
+ addBrowser: addBrowser,
19
+ };
20
+ }
21
+ exports.useBrowser = useBrowser;
22
+ //# sourceMappingURL=useBrowser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBrowser.js","sourceRoot":"","sources":["../src/useBrowser.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAoC;AACpC,2EAA4D;AAC5D,+EAE+C;AAU/C;;GAEG;AACH,SAAgB,UAAU;IACxB,IAAM,UAAU,GAAG,IAAA,mBAAW,EAC5B,UAAC,OAAgB;QACf,OAAA,IAAI,2CAAa,CAAC,OAAO,CAAC,cAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAAjD,CAAiD,EACnD,EAAE,CACH,CAAC;IAEF,OAAO;QACL,UAAU,YAAA;KACX,CAAC;AACJ,CAAC;AAVD,gCAUC"}
@@ -0,0 +1,14 @@
1
+ import { Conversion } from 'kameleoon-client-javascript/dist/data';
2
+ interface ConversionHookResult {
3
+ /**
4
+ * @param goalId - unique identifier of the goal
5
+ * @param revenue - conversion revenue
6
+ * @param negative - defines if the revenue is positive or negative
7
+ */
8
+ addConversion: (goalId: number, revenue?: number, negative?: boolean) => Conversion;
9
+ }
10
+ /**
11
+ * A React Hook that returns callback function which adds conversion
12
+ */
13
+ export declare function useConversion(): ConversionHookResult;
14
+ export {};
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useConversion = 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 conversion
8
+ */
9
+ function useConversion() {
10
+ var addConversion = (0, react_1.useCallback)(function (goalId, revenue, negative) {
11
+ return new kameleoon_client_javascript_1.KameleoonData.Conversion(goalId, revenue, negative);
12
+ }, []);
13
+ return {
14
+ addConversion: addConversion,
15
+ };
16
+ }
17
+ exports.useConversion = useConversion;
18
+ //# sourceMappingURL=useConversion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConversion.js","sourceRoot":"","sources":["../src/useConversion.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,2EAA4D;AAgB5D;;GAEG;AACH,SAAgB,aAAa;IAC3B,IAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,UAAC,MAAc,EAAE,OAAgB,EAAE,QAAkB;QACnD,OAAA,IAAI,2CAAa,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;IAAvD,CAAuD,EACzD,EAAE,CACH,CAAC;IAEF,OAAO;QACL,aAAa,eAAA;KACd,CAAC;AACJ,CAAC;AAVD,sCAUC"}
@@ -0,0 +1,13 @@
1
+ import { CustomData } from 'kameleoon-client-javascript/dist/data';
2
+ interface CustomDataHookResult {
3
+ /**
4
+ * @param index - index or unique identifier of the custom data to be stored
5
+ * @param value - value of the custom data to be stored
6
+ */
7
+ addCustomData: (index: number, value: string) => CustomData;
8
+ }
9
+ /**
10
+ * A React Hook that returns callback function which adds custom data
11
+ */
12
+ export declare function useCustomData(): CustomDataHookResult;
13
+ export {};
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useCustomData = 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 custom data
8
+ */
9
+ function useCustomData() {
10
+ var addCustomData = (0, react_1.useCallback)(function (index, value) {
11
+ return new kameleoon_client_javascript_1.KameleoonData.CustomData(index, value);
12
+ }, []);
13
+ return {
14
+ addCustomData: addCustomData,
15
+ };
16
+ }
17
+ exports.useCustomData = useCustomData;
18
+ //# sourceMappingURL=useCustomData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCustomData.js","sourceRoot":"","sources":["../src/useCustomData.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,2EAA4D;AAW5D;;GAEG;AACH,SAAgB,aAAa;IAC3B,IAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,UAAC,KAAa,EAAE,KAAa;QAC3B,OAAA,IAAI,2CAAa,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC;IAA1C,CAA0C,EAC5C,EAAE,CACH,CAAC;IAEF,OAAO;QACL,aAAa,eAAA;KACd,CAAC;AACJ,CAAC;AAVD,sCAUC"}
@@ -0,0 +1,12 @@
1
+ import { Device as IDevice, DeviceType } from 'kameleoon-client-javascript/dist/data';
2
+ interface DeviceHookResult {
3
+ /**
4
+ * @param device - device type: Phone, Tablet, Desktop
5
+ */
6
+ addDevice: (device: DeviceType) => IDevice;
7
+ }
8
+ /**
9
+ * A React Hook that returns a callback function which adds interest
10
+ */
11
+ export declare function useDevice(): DeviceHookResult;
12
+ export {};
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useDevice = 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 a callback function which adds interest
8
+ */
9
+ function useDevice() {
10
+ var addDevice = (0, react_1.useCallback)(function (device) { return new kameleoon_client_javascript_1.KameleoonData.Device(device); }, []);
11
+ return {
12
+ addDevice: addDevice,
13
+ };
14
+ }
15
+ exports.useDevice = useDevice;
16
+ //# sourceMappingURL=useDevice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDevice.js","sourceRoot":"","sources":["../src/useDevice.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AACpC,2EAA4D;AAa5D;;GAEG;AACH,SAAgB,SAAS;IACvB,IAAM,SAAS,GAAG,IAAA,mBAAW,EAC3B,UAAC,MAAkB,IAAc,OAAA,IAAI,2CAAa,CAAC,MAAM,CAAC,MAAM,CAAC,EAAhC,CAAgC,EACjE,EAAE,CACH,CAAC;IAEF,OAAO;QACL,SAAS,WAAA;KACV,CAAC;AACJ,CAAC;AATD,8BASC"}
@@ -0,0 +1,7 @@
1
+ import { KameleoonError } from './KameleoonError';
2
+ declare type UseErrorHookResultType = {
3
+ error: KameleoonError | null;
4
+ setError: (unknownError: unknown) => void;
5
+ };
6
+ export declare function useError(): UseErrorHookResultType;
7
+ export {};
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.useError = void 0;
20
+ var react_1 = require("react");
21
+ var getKameleoonException_1 = require("./getKameleoonException");
22
+ function useError() {
23
+ var _a = __read((0, react_1.useState)(null), 2), error = _a[0], setError = _a[1];
24
+ var setErrorHandler = (0, react_1.useCallback)(function (unknownError) {
25
+ var exception = (0, getKameleoonException_1.getKameleoonException)(unknownError);
26
+ setError(exception);
27
+ }, []);
28
+ return {
29
+ error: error,
30
+ setError: setErrorHandler,
31
+ };
32
+ }
33
+ exports.useError = useError;
34
+ //# sourceMappingURL=useError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useError.js","sourceRoot":"","sources":["../src/useError.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAAA,+BAA8C;AAC9C,iEAAgE;AAQhE,SAAgB,QAAQ;IAChB,IAAA,KAAA,OAAoB,IAAA,gBAAQ,EAAwB,IAAI,CAAC,IAAA,EAAxD,KAAK,QAAA,EAAE,QAAQ,QAAyC,CAAC;IAEhE,IAAM,eAAe,GAAG,IAAA,mBAAW,EAAC,UAAC,YAAqB;QACxD,IAAM,SAAS,GAAG,IAAA,6CAAqB,EAAC,YAAqB,CAAC,CAAC;QAC/D,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,KAAK,OAAA;QACL,QAAQ,EAAE,eAAe;KAC1B,CAAC;AACJ,CAAC;AAZD,4BAYC"}
@@ -0,0 +1,7 @@
1
+ import { KameleoonException } from './constants';
2
+ declare type UseErrorsHookResultType = {
3
+ errors: KameleoonException[];
4
+ setErrors: (newErrors: Array<KameleoonException | undefined>) => void;
5
+ };
6
+ export declare function useErrors(): UseErrorsHookResultType;
7
+ export {};
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
+ if (ar || !(i in from)) {
21
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
+ ar[i] = from[i];
23
+ }
24
+ }
25
+ return to.concat(ar || Array.prototype.slice.call(from));
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.useErrors = void 0;
29
+ var react_1 = require("react");
30
+ function useErrors() {
31
+ var _a = __read((0, react_1.useState)([]), 2), errors = _a[0], setErrors = _a[1];
32
+ var setErrorHandler = (0, react_1.useCallback)(function (newErrors) {
33
+ var uniqueErrors = __spreadArray([], __read(new Set(newErrors)), false).filter(function (value) { return Boolean(value); });
34
+ setErrors(uniqueErrors);
35
+ }, []);
36
+ return {
37
+ errors: errors,
38
+ setErrors: setErrorHandler,
39
+ };
40
+ }
41
+ exports.useErrors = useErrors;
42
+ //# sourceMappingURL=useErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useErrors.js","sourceRoot":"","sources":["../src/useErrors.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+BAA8C;AAQ9C,SAAgB,SAAS;IACjB,IAAA,KAAA,OAAsB,IAAA,gBAAQ,EAAuB,EAAE,CAAC,IAAA,EAAvD,MAAM,QAAA,EAAE,SAAS,QAAsC,CAAC;IAE/D,IAAM,eAAe,GAAG,IAAA,mBAAW,EACjC,UAAC,SAAgD;QAC/C,IAAM,YAAY,GAAG,yBAAI,IAAI,GAAG,CAAC,SAAS,CAAC,UAAE,MAAM,CACjD,UAAC,KAAK,IAAkC,OAAA,OAAO,CAAC,KAAK,CAAC,EAAd,CAAc,CACvD,CAAC;QAEF,SAAS,CAAC,YAAY,CAAC,CAAC;IAC1B,CAAC,EACD,EAAE,CACH,CAAC;IAEF,OAAO;QACL,MAAM,QAAA;QACN,SAAS,EAAE,eAAe;KAC3B,CAAC;AACJ,CAAC;AAlBD,8BAkBC"}
@@ -0,0 +1,5 @@
1
+ import { IFeature, IFeatureParams } from './types';
2
+ /**
3
+ * A React Hook that returns the status of a feature flag and specified variables
4
+ */
5
+ export declare function useFeature({ featureKey, variableKeys, visitorCode, }: IFeatureParams): IFeature;
@@ -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 {};
@@ -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 {};