@kameleoon/react-sdk 10.8.0 → 10.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/dist/KameleoonContext.d.ts +2 -2
- package/dist/KameleoonContext.js +1 -1
- package/dist/KameleoonProvider.js +1 -1
- package/dist/KameleoonProviderSSR.d.ts +14 -0
- package/dist/KameleoonProviderSSR.js +1 -0
- package/dist/createClient.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/interfaces/useData.d.ts +1 -1
- package/dist/types.d.ts +9 -1
- package/dist/useData.js +1 -1
- package/dist/useFeatureFlag.js +1 -1
- package/dist/useInitialize.js +1 -1
- package/dist/useKameleoon.js +1 -1
- package/dist/useKameleoonContext.d.ts +10 -0
- package/dist/useKameleoonContext.js +1 -0
- package/dist/useLog.d.ts +1 -1
- package/dist/useLog.js +1 -1
- package/dist/useVisitorCode.js +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,33 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
+
## 10.10.0 (2025-04-04)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- We've introduced a new [`KameleoonProviderSSR`](KameleoonProviderSSR), which is now the **recommended way** to use React with any server-side rendering (SSR) framework.
|
|
8
|
+
Instead of requiring a manually created [`KameleoonClient`](createClient), this new provider accepts [`SDKParameters`](SDKParameters) and **automatically creates** a `KameleoonClient` instance upon first use.
|
|
9
|
+
To avoid unexpected issues, make sure that all calls to `KameleoonClient` methods happen inside a `useEffect` (or an equivalent hook) — check our code examples for guidance.
|
|
10
|
+
We strongly recommend migrating to this new provider to ensure compatibility with both Next.js routing systems: the **Pages Router** and the **App Router**.
|
|
11
|
+
|
|
12
|
+
[KameleoonProviderSSR]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/react-js-sdk/#kameleoonproviderssr
|
|
13
|
+
[createClient]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/react-js-sdk/#create-the-kameleoon-client
|
|
14
|
+
[SDKParameters]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/js-sdk#initialize-the-kameleoon-client
|
|
15
|
+
|
|
16
|
+
## 10.9.0 (2025-03-24)
|
|
17
|
+
|
|
18
|
+
### Features
|
|
19
|
+
|
|
20
|
+
- Added new optional parameters `negative` and `metadata` to the [`trackConversion`](trackConversion) method.
|
|
21
|
+
- Added new optional parameter `metadata` to the [`Conversion`](Conversion) data constructor.
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- Updated dependencies
|
|
26
|
+
- @kameleoon/javascript-sdk@4.9.0
|
|
27
|
+
|
|
28
|
+
[trackConversion]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/react-sdk#trackconversion
|
|
29
|
+
[Conversion]: https://developers.kameleoon.com/feature-management-and-experimentation/web-sdks/react-sdk#conversion
|
|
30
|
+
|
|
3
31
|
## 10.8.0 (2025-03-18)
|
|
4
32
|
|
|
5
33
|
### Features
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
export declare const KameleoonContext: React.Context<
|
|
2
|
+
import { KameleoonContextType } from './types';
|
|
3
|
+
export declare const KameleoonContext: React.Context<KameleoonContextType | null>;
|
package/dist/KameleoonContext.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _react=_interopRequireDefault(require("react"));Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonContext=void 0;function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}const KameleoonContext=exports.KameleoonContext=_react.default.createContext(null);
|
|
1
|
+
"use strict";"use client";var _react=_interopRequireDefault(require("react"));Object.defineProperty(exports,"__esModule",{value:!0}),exports.KameleoonContext=void 0;function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}const KameleoonContext=exports.KameleoonContext=_react.default.createContext(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireDefault(require("react")),_KameleoonContext=require("./KameleoonContext");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function KameleoonProvider(a){let{client:b,children:c}=a;return _react.default.createElement(_KameleoonContext.KameleoonContext.Provider,{value:b},c)}var _default=exports.default=_react.default.memo(KameleoonProvider);
|
|
1
|
+
"use strict";"use client";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireDefault(require("react")),_KameleoonContext=require("./KameleoonContext");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function KameleoonProvider(a){let{client:b,children:c}=a;return _react.default.createElement(_KameleoonContext.KameleoonContext.Provider,{value:{kameleoonClient:b,sdkParameters:null}},c)}var _default=exports.default=_react.default.memo(KameleoonProvider);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { SDKParameters } from './types';
|
|
3
|
+
export interface IKameleoonProviderSSRProps {
|
|
4
|
+
/** Child elements of the provider. */
|
|
5
|
+
children: React.ReactNode;
|
|
6
|
+
/** SDK parameters for creating a new instance. */
|
|
7
|
+
sdkParameters: SDKParameters;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* A Provider that wraps the project and provides an access to SDK APIs in SSR mode.
|
|
11
|
+
*/
|
|
12
|
+
declare function KameleoonProviderSSR({ sdkParameters, children, }: IKameleoonProviderSSRProps): React.JSX.Element;
|
|
13
|
+
declare const _default: React.MemoExoticComponent<typeof KameleoonProviderSSR>;
|
|
14
|
+
export default _default;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";"use client";Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _react=_interopRequireDefault(require("react")),_KameleoonContext=require("./KameleoonContext");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function KameleoonProviderSSR(a){let{sdkParameters:b,children:c}=a;return _react.default.createElement(_KameleoonContext.KameleoonContext.Provider,{value:{kameleoonClient:null,sdkParameters:b}},c)}var _default=exports.default=_react.default.memo(KameleoonProviderSSR);
|
package/dist/createClient.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _javascriptSdk=require("@kameleoon/javascript-sdk");Object.defineProperty(exports,"__esModule",{value:!0}),exports.createClient=createClient;function createClient(a){let{siteCode:b,configuration:c,externals:d,stubMode:e}=a;const f=new _javascriptSdk.KameleoonClient({siteCode:b,configuration:c,externals:d,_internals:{packageInfo:{type:_javascriptSdk.SdkLanguageType.REACT,version:"10.
|
|
1
|
+
"use strict";var _javascriptSdk=require("@kameleoon/javascript-sdk");Object.defineProperty(exports,"__esModule",{value:!0}),exports.createClient=createClient;function createClient(a){let{siteCode:b,configuration:c,externals:d,stubMode:e}=a;const f=new _javascriptSdk.KameleoonClient({siteCode:b,configuration:c,externals:d,_internals:{packageInfo:{type:_javascriptSdk.SdkLanguageType.REACT,version:"10.10.0",isServer:!1},prng:null===d||void 0===d?void 0:d.prng},stubMode:e});return f}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from '@kameleoon/javascript-sdk';
|
|
2
2
|
export { default as KameleoonProvider, IKameleoonProviderProps, } from './KameleoonProvider';
|
|
3
|
+
export { default as KameleoonProviderSSR, IKameleoonProviderSSRProps, } from './KameleoonProviderSSR';
|
|
3
4
|
export { useData } from './useData';
|
|
4
5
|
export { useFeatureFlag } from './useFeatureFlag';
|
|
5
6
|
export { useInitialize } from './useInitialize';
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var _exportNames={KameleoonProvider:!0,IKameleoonProviderProps:!0,useData:!0,useFeatureFlag:!0,useInitialize:!0,useVisitorCode:!0,IUseData:!0,IUseInitialize:!0,IUseFeatureFlag:!0,IUseVisitorCode:!0,KameleoonContext:!0,useKameleoon:!0,createClient:!0,SDKParameters:!0,ExternalsType:!0};var _javascriptSdk=require("@kameleoon/javascript-sdk");Object.defineProperty(exports,"__esModule",{value:!0});Object.defineProperty(exports,"ExternalsType",{enumerable:!0,get:function(){return _types.ExternalsType}}),Object.defineProperty(exports,"IKameleoonProviderProps",{enumerable:!0,get:function(){return _KameleoonProvider.IKameleoonProviderProps}}),Object.defineProperty(exports,"IUseData",{enumerable:!0,get:function(){return _useData2.default}}),Object.defineProperty(exports,"IUseFeatureFlag",{enumerable:!0,get:function(){return _useFeatureFlag2.default}}),Object.defineProperty(exports,"IUseInitialize",{enumerable:!0,get:function(){return _useInitialize2.default}}),Object.defineProperty(exports,"IUseVisitorCode",{enumerable:!0,get:function(){return _useVisitorCode2.default}}),Object.defineProperty(exports,"KameleoonContext",{enumerable:!0,get:function(){return _KameleoonContext.KameleoonContext}}),Object.defineProperty(exports,"KameleoonProvider",{enumerable:!0,get:function(){return _KameleoonProvider.default}}),Object.defineProperty(exports,"SDKParameters",{enumerable:!0,get:function(){return _types.SDKParameters}}),Object.defineProperty(exports,"createClient",{enumerable:!0,get:function(){return _createClient.createClient}}),Object.defineProperty(exports,"useData",{enumerable:!0,get:function(){return _useData.useData}}),Object.defineProperty(exports,"useFeatureFlag",{enumerable:!0,get:function(){return _useFeatureFlag.useFeatureFlag}}),Object.defineProperty(exports,"useInitialize",{enumerable:!0,get:function(){return _useInitialize.useInitialize}}),Object.defineProperty(exports,"useKameleoon",{enumerable:!0,get:function(){return _useKameleoon.useKameleoon}}),Object.defineProperty(exports,"useVisitorCode",{enumerable:!0,get:function(){return _useVisitorCode.useVisitorCode}});Object.keys(_javascriptSdk).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(_exportNames,a)||a in exports&&exports[a]===_javascriptSdk[a]||Object.defineProperty(exports,a,{enumerable:!0,get:function(){return _javascriptSdk[a]}})});var _KameleoonProvider=_interopRequireWildcard(require("./KameleoonProvider")),_useData=require("./useData"),_useFeatureFlag=require("./useFeatureFlag"),_useInitialize=require("./useInitialize"),_useVisitorCode=require("./useVisitorCode"),_useData2=_interopRequireDefault(require("./interfaces/useData")),_useInitialize2=_interopRequireDefault(require("./interfaces/useInitialize")),_useFeatureFlag2=_interopRequireDefault(require("./interfaces/useFeatureFlag")),_useVisitorCode2=_interopRequireDefault(require("./interfaces/useVisitorCode")),_KameleoonContext=require("./KameleoonContext"),_useKameleoon=require("./useKameleoon"),_createClient=require("./createClient"),_types=require("./types");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _getRequireWildcardCache(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(_getRequireWildcardCache=function(a){return a?c:b})(a)}function _interopRequireWildcard(b,c){if(!c&&b&&b.__esModule)return b;if(null===b||"object"!=typeof b&&"function"!=typeof b)return{default:b};var d=_getRequireWildcardCache(c);if(d&&d.has(b))return d.get(b);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in b)if("default"!=a&&{}.hasOwnProperty.call(b,a)){var g=f?Object.getOwnPropertyDescriptor(b,a):null;g&&(g.get||g.set)?Object.defineProperty(e,a,g):e[a]=b[a]}return e.default=b,d&&d.set(b,e),e}
|
|
1
|
+
"use strict";var _exportNames={KameleoonProvider:!0,IKameleoonProviderProps:!0,KameleoonProviderSSR:!0,IKameleoonProviderSSRProps:!0,useData:!0,useFeatureFlag:!0,useInitialize:!0,useVisitorCode:!0,IUseData:!0,IUseInitialize:!0,IUseFeatureFlag:!0,IUseVisitorCode:!0,KameleoonContext:!0,useKameleoon:!0,createClient:!0,SDKParameters:!0,ExternalsType:!0};var _javascriptSdk=require("@kameleoon/javascript-sdk");Object.defineProperty(exports,"__esModule",{value:!0});Object.defineProperty(exports,"ExternalsType",{enumerable:!0,get:function(){return _types.ExternalsType}}),Object.defineProperty(exports,"IKameleoonProviderProps",{enumerable:!0,get:function(){return _KameleoonProvider.IKameleoonProviderProps}}),Object.defineProperty(exports,"IKameleoonProviderSSRProps",{enumerable:!0,get:function(){return _KameleoonProviderSSR.IKameleoonProviderSSRProps}}),Object.defineProperty(exports,"IUseData",{enumerable:!0,get:function(){return _useData2.default}}),Object.defineProperty(exports,"IUseFeatureFlag",{enumerable:!0,get:function(){return _useFeatureFlag2.default}}),Object.defineProperty(exports,"IUseInitialize",{enumerable:!0,get:function(){return _useInitialize2.default}}),Object.defineProperty(exports,"IUseVisitorCode",{enumerable:!0,get:function(){return _useVisitorCode2.default}}),Object.defineProperty(exports,"KameleoonContext",{enumerable:!0,get:function(){return _KameleoonContext.KameleoonContext}}),Object.defineProperty(exports,"KameleoonProvider",{enumerable:!0,get:function(){return _KameleoonProvider.default}}),Object.defineProperty(exports,"KameleoonProviderSSR",{enumerable:!0,get:function(){return _KameleoonProviderSSR.default}}),Object.defineProperty(exports,"SDKParameters",{enumerable:!0,get:function(){return _types.SDKParameters}}),Object.defineProperty(exports,"createClient",{enumerable:!0,get:function(){return _createClient.createClient}}),Object.defineProperty(exports,"useData",{enumerable:!0,get:function(){return _useData.useData}}),Object.defineProperty(exports,"useFeatureFlag",{enumerable:!0,get:function(){return _useFeatureFlag.useFeatureFlag}}),Object.defineProperty(exports,"useInitialize",{enumerable:!0,get:function(){return _useInitialize.useInitialize}}),Object.defineProperty(exports,"useKameleoon",{enumerable:!0,get:function(){return _useKameleoon.useKameleoon}}),Object.defineProperty(exports,"useVisitorCode",{enumerable:!0,get:function(){return _useVisitorCode.useVisitorCode}});Object.keys(_javascriptSdk).forEach(function(a){"default"===a||"__esModule"===a||Object.prototype.hasOwnProperty.call(_exportNames,a)||a in exports&&exports[a]===_javascriptSdk[a]||Object.defineProperty(exports,a,{enumerable:!0,get:function(){return _javascriptSdk[a]}})});var _KameleoonProvider=_interopRequireWildcard(require("./KameleoonProvider")),_KameleoonProviderSSR=_interopRequireWildcard(require("./KameleoonProviderSSR")),_useData=require("./useData"),_useFeatureFlag=require("./useFeatureFlag"),_useInitialize=require("./useInitialize"),_useVisitorCode=require("./useVisitorCode"),_useData2=_interopRequireDefault(require("./interfaces/useData")),_useInitialize2=_interopRequireDefault(require("./interfaces/useInitialize")),_useFeatureFlag2=_interopRequireDefault(require("./interfaces/useFeatureFlag")),_useVisitorCode2=_interopRequireDefault(require("./interfaces/useVisitorCode")),_KameleoonContext=require("./KameleoonContext"),_useKameleoon=require("./useKameleoon"),_createClient=require("./createClient"),_types=require("./types");function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _getRequireWildcardCache(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(_getRequireWildcardCache=function(a){return a?c:b})(a)}function _interopRequireWildcard(b,c){if(!c&&b&&b.__esModule)return b;if(null===b||"object"!=typeof b&&"function"!=typeof b)return{default:b};var d=_getRequireWildcardCache(c);if(d&&d.has(b))return d.get(b);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in b)if("default"!=a&&{}.hasOwnProperty.call(b,a)){var g=f?Object.getOwnPropertyDescriptor(b,a):null;g&&(g.get||g.set)?Object.defineProperty(e,a,g):e[a]=b[a]}return e.default=b,d&&d.set(b,e),e}
|
|
@@ -29,7 +29,7 @@ export default interface IUseData {
|
|
|
29
29
|
/**
|
|
30
30
|
* 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.
|
|
31
31
|
*
|
|
32
|
-
* @param {TrackConversionParamsType} params - `visitorCode`, `goalId` and `
|
|
32
|
+
* @param {TrackConversionParamsType} params - `visitorCode`, `goalId`, `revenue` and `metadata` parameters for data tracking.
|
|
33
33
|
* @throws `KameleoonError` with one of the following `type` s:
|
|
34
34
|
*
|
|
35
35
|
* - `KameleoonException.VisitorCodeMaxLength` The visitor code length was exceeded.
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SDKParameters as CoreSDKParameters, ExternalsType as CoreExternalsType, IExternalPRNG } from '@kameleoon/javascript-sdk';
|
|
1
|
+
import { SDKParameters as CoreSDKParameters, ExternalsType as CoreExternalsType, IExternalPRNG, KameleoonClient } from '@kameleoon/javascript-sdk';
|
|
2
2
|
export type ExternalsType = CoreExternalsType & {
|
|
3
3
|
prng?: IExternalPRNG;
|
|
4
4
|
};
|
|
@@ -15,3 +15,11 @@ export type SDKParameters = Omit<CoreSDKParameters, '_internals'> & {
|
|
|
15
15
|
externals?: ExternalsType;
|
|
16
16
|
stubMode?: boolean;
|
|
17
17
|
};
|
|
18
|
+
/**
|
|
19
|
+
* @param {KameleoonClient | null} kameleoonClient - an instance of KameleoonClient.
|
|
20
|
+
* @param {SDKParameters | null} sdkParameters - SDK parameters.
|
|
21
|
+
*/
|
|
22
|
+
export type KameleoonContextType = {
|
|
23
|
+
kameleoonClient: KameleoonClient | null;
|
|
24
|
+
sdkParameters: SDKParameters | null;
|
|
25
|
+
};
|
package/dist/useData.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useData=useData;var _react=require("react"),
|
|
1
|
+
"use strict";"use client";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useData=useData;var _react=require("react"),_useKameleoonContext=require("./useKameleoonContext");function useData(){const a=(0,_useKameleoonContext.useKameleoonContext)();let b=a?a.kameleoonClient:null;const c=(0,_react.useCallback)(function(c){b=(0,_useKameleoonContext.fetchClientFromContext)(a);for(var d=arguments.length,e=Array(1<d?d-1:0),f=1;f<d;f++)e[f-1]=arguments[f];b.addData(c,...e)},[a]),d=(0,_react.useCallback)(c=>{b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.flush(c)},[a]),e=(0,_react.useCallback)(c=>{let{visitorCode:d,goalId:e,revenue:f,negative:g,metadata:h}=c;b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.trackConversion({visitorCode:d,goalId:e,revenue:f,negative:g,metadata:h})},[b]),f=(0,_react.useCallback)(async c=>(b=(0,_useKameleoonContext.fetchClientFromContext)(a),await b.getRemoteData(c)),[a]),g=(0,_react.useCallback)(async c=>(b=(0,_useKameleoonContext.fetchClientFromContext)(a),await b.getRemoteVisitorData(c)),[a]),h=(0,_react.useCallback)(async c=>(b=(0,_useKameleoonContext.fetchClientFromContext)(a),await b.getVisitorWarehouseAudience(c)),[a]);return{getRemoteData:f,getRemoteVisitorData:g,getVisitorWarehouseAudience:h,trackConversion:e,addData:c,flush:d}}
|
package/dist/useFeatureFlag.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useFeatureFlag=useFeatureFlag;var _react=require("react"),
|
|
1
|
+
"use strict";"use client";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useFeatureFlag=useFeatureFlag;var _react=require("react"),_useKameleoonContext=require("./useKameleoonContext");function useFeatureFlag(){const a=(0,_useKameleoonContext.useKameleoonContext)();let b=a?a.kameleoonClient:null;const c=(0,_react.useCallback)((c,d)=>{if(b=(0,_useKameleoonContext.fetchClientFromContext)(a),"string"==typeof c){if(!d)throw new Error("[Kameleoon React SDK Error]: Overload is not used correctly. The second parameter must be provided when the first parameter is a string");return b.isFeatureFlagActive(c,d)}return b.isFeatureFlagActive(c)},[a]),d=(0,_react.useCallback)(c=>{let{visitorCode:d,featureKey:e,track:f}=c;return b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.getVariation({visitorCode:d,featureKey:e,track:f})},[a]),e=(0,_react.useCallback)(c=>{let{visitorCode:d,onlyActive:e,track:f}=c;return b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.getVariations({visitorCode:d,onlyActive:e,track:f})},[b]),f=(0,_react.useCallback)((c,d)=>(b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.getFeatureFlagVariationKey(c,d)),[a]),g=(0,_react.useCallback)(c=>{let{visitorCode:d,featureKey:e,variableKey:f}=c;return b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.getFeatureFlagVariable({visitorCode:d,featureKey:e,variableKey:f})},[a]),h=(0,_react.useCallback)(c=>(b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.getVisitorFeatureFlags(c)),[a]),i=(0,_react.useCallback)(c=>(b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.getActiveFeatureFlags(c)),[a]),j=(0,_react.useCallback)(()=>(b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.getFeatureFlags()),[a]),k=(0,_react.useCallback)((c,d)=>(b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.getFeatureFlagVariables(c,d)),[a]),l=(0,_react.useCallback)(c=>(b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.getEngineTrackingCode(c)),[a]),m=(0,_react.useCallback)(c=>{let{visitorCode:d,experimentId:e,variationKey:f,forceTargeting:g}=c;return b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.setForcedVariation({visitorCode:d,experimentId:e,variationKey:f,forceTargeting:g})},[a]);return{getActiveFeatureFlags:i,getVariation:d,getVariations:e,getFeatureFlags:j,isFeatureFlagActive:c,getEngineTrackingCode:l,getVisitorFeatureFlags:h,getFeatureFlagVariable:g,getFeatureFlagVariables:k,getFeatureFlagVariationKey:f,setForcedVariation:m}}
|
package/dist/useInitialize.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useInitialize=useInitialize;var _react=require("react"),
|
|
1
|
+
"use strict";"use client";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useInitialize=useInitialize;var _react=require("react"),_useKameleoonContext=require("./useKameleoonContext");function useInitialize(){const a=(0,_useKameleoonContext.useKameleoonContext)();let b=a?a.kameleoonClient:null;const c=(0,_react.useCallback)(async()=>(b=(0,_useKameleoonContext.fetchClientFromContext)(a),await b.initialize()),[a]),d=(0,_react.useCallback)((c,d)=>{b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.onEvent(c,d)},[a]),e=(0,_react.useCallback)(()=>(b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.isInitialized()),[a]);return{onEvent:d,initialize:c,isInitialized:e}}
|
package/dist/useKameleoon.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useKameleoon=useKameleoon;var _react=require("react"),_KameleoonContext=require("./KameleoonContext");function useKameleoon(){const a=(0,_react.useContext)(_KameleoonContext.KameleoonContext);if(!a)throw new Error("Kameleoon SDK hooks must be used within a KameleoonProvider");return
|
|
1
|
+
"use strict";"use client";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useKameleoon=useKameleoon;var _react=require("react"),_KameleoonContext=require("./KameleoonContext"),_useKameleoonContext=require("./useKameleoonContext");function useKameleoon(){const a=(0,_react.useContext)(_KameleoonContext.KameleoonContext);if(!a)throw new Error("Kameleoon SDK hooks must be used within a KameleoonProvider");return(0,_useKameleoonContext.fetchClientFromContext)(a)}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { KameleoonClient } from '@kameleoon/javascript-sdk';
|
|
2
|
+
import { KameleoonContextType } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* A React Hook that validates if context is used within a KameleoonProvider and returns it.
|
|
5
|
+
*
|
|
6
|
+
* @returns {KameleoonContextType} an instance of KameleoonContextType
|
|
7
|
+
* @throws Kameleoon SDK hooks must be used within a KameleoonProvider.
|
|
8
|
+
*/
|
|
9
|
+
export declare function useKameleoonContext(): KameleoonContextType;
|
|
10
|
+
export declare function fetchClientFromContext(context: KameleoonContextType | null): KameleoonClient;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";"use client";Object.defineProperty(exports,"__esModule",{value:!0}),exports.fetchClientFromContext=fetchClientFromContext,exports.useKameleoonContext=useKameleoonContext;var _react=require("react"),_KameleoonContext=require("./KameleoonContext"),_createClient=require("./createClient");function useKameleoonContext(){const a=(0,_react.useContext)(_KameleoonContext.KameleoonContext);if(!a)throw new Error("Kameleoon SDK hooks must be used within a KameleoonProvider");return a}function fetchClientFromContext(a){if(!a)throw new Error("Kameleoon SDK hooks must be used within a KameleoonProvider");if(!a.kameleoonClient){const b=a.sdkParameters;if(b)return b.stubMode=!1,a.kameleoonClient=(0,_createClient.createClient)(b),a.kameleoonClient;throw new Error("Kameleoon SDK hooks must be used within a KameleoonProvider")}return a.kameleoonClient}
|
package/dist/useLog.d.ts
CHANGED
package/dist/useLog.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useLog=useLog;var _react=require("react"),
|
|
1
|
+
"use strict";"use client";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useLog=useLog;var _react=require("react"),_useKameleoonContext=require("./useKameleoonContext");function useLog(){const a=(0,_useKameleoonContext.useKameleoonContext)();let b=a?a.kameleoonClient:null;const c=(0,_react.useCallback)(c=>{b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.setLogLevel(c)},[a]);return{setLogLevel:c}}
|
package/dist/useVisitorCode.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useVisitorCode=useVisitorCode;var _react=require("react"),
|
|
1
|
+
"use strict";"use client";Object.defineProperty(exports,"__esModule",{value:!0}),exports.useVisitorCode=useVisitorCode;var _react=require("react"),_useKameleoonContext=require("./useKameleoonContext");function useVisitorCode(){const a=(0,_useKameleoonContext.useKameleoonContext)();let b=a?a.kameleoonClient:null;const c=(0,_react.useCallback)((c,d)=>{b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.setLegalConsent(c,d)},[a]),d=(0,_react.useCallback)(c=>(b=(0,_useKameleoonContext.fetchClientFromContext)(a),b.getVisitorCode(c)),[a]);return{setLegalConsent:c,getVisitorCode:d}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kameleoon/react-sdk",
|
|
3
|
-
"version": "10.
|
|
3
|
+
"version": "10.10.0",
|
|
4
4
|
"description": "Kameleoon React SDK",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
],
|
|
41
41
|
"license": "ISC",
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@kameleoon/javascript-sdk": "4.
|
|
43
|
+
"@kameleoon/javascript-sdk": "4.9.0"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|
|
46
46
|
"react": "^16.8.0 || ^17.0.0 || ^18.0.0"
|