@kameleoon/react-sdk 10.5.0 → 10.6.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Change Log
2
2
 
3
+ ## 10.6.1 (2025-03-05)
4
+
5
+ ### Patch Changes
6
+
7
+ - Resolved all circular dependencies to improve stability.
8
+ - Updated dependencies
9
+ - @kameleoon/javascript-sdk@4.6.1
10
+
11
+ ## 10.6.0 (2025-02-26)
12
+
13
+ ### Features
14
+
15
+ - Added new parameter `stubMode` to `SDKParameters` for create `KameleoonClient`. This parameter enables a no-operation mode for the client, which is particularly useful for disabling external interactions in controlled environments.
16
+ - Added SDK support for **Mutually Exclusive Groups**. When feature flags are grouped into a **Mutually Exclusive Group**, only one flag in the group will be evaluated at a time. All other flags in the group will automatically return their default variation.
17
+
18
+ ### Patch Changes
19
+
20
+ - Fixed validation for the [`networkDomain`][configurationParameters] parameter.
21
+ - Updated dependencies
22
+ - @kameleoon/javascript-sdk@4.6.0
23
+
3
24
  ## 10.5.0 (2025-02-10)
4
25
 
5
26
  ### Features
package/README.md CHANGED
@@ -39,6 +39,24 @@ function MyComponentWrapper(): JSX.Element {
39
39
  }
40
40
  ```
41
41
 
42
+ If used in Next.js for server-side rendering, you can set stubMode to disable SDK client initialization on the server.
43
+
44
+ ```tsx
45
+ import { KameleoonProvider, createClient } from '@kameleoon/react-sdk';
46
+
47
+ const isServer = typeof window === 'undefined';
48
+
49
+ const client = createClient({ siteCode: 'my_site_code', stubMode: isServer });
50
+
51
+ function MyComponentWrapper(): JSX.Element {
52
+ return (
53
+ <KameleoonProvider client={client}>
54
+ <MyComponent />
55
+ </KameleoonProvider>
56
+ );
57
+ }
58
+ ```
59
+
42
60
  ## Usage Example
43
61
 
44
62
  ```tsx
@@ -4,4 +4,4 @@ import { SDKParameters } from './types';
4
4
  * Creates an instance of KameleoonClient
5
5
  * @param parameters {SDKParameters} - parameters of an SDK
6
6
  */
7
- export declare function createClient({ siteCode, configuration, externals, }: SDKParameters): KameleoonClient;
7
+ export declare function createClient({ siteCode, configuration, externals, stubMode, }: SDKParameters): KameleoonClient;
@@ -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}=a;const e=new _javascriptSdk.KameleoonClient({siteCode:b,configuration:c,externals:d,_internals:{packageInfo:{type:_javascriptSdk.SdkLanguageType.REACT,version:"10.5.0",isServer:!1},prng:null===d||void 0===d?void 0:d.prng}});return e}
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.6.1",isServer:!1},prng:null===d||void 0===d?void 0:d.prng},stubMode:e});return f}
package/dist/types.d.ts CHANGED
@@ -9,7 +9,9 @@ export type ExternalsType = CoreExternalsType & {
9
9
  * @param {IExternalRequester | undefined} requester - external requester implementation
10
10
  * @param {IExternalPRNG | undefined} prng - external PRNG implementation
11
11
  * @param {IExternalLogger | undefined} logger - external logger implementation
12
+ * @param {boolean | undefined} stubMode - When set to true, the client will operate in stub mode and perform no operations. In this mode, all method calls become no-ops, ensuring that no external actions or side effects occur.
12
13
  * */
13
14
  export type SDKParameters = Omit<CoreSDKParameters, '_internals'> & {
14
15
  externals?: ExternalsType;
16
+ stubMode?: boolean;
15
17
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kameleoon/react-sdk",
3
- "version": "10.5.0",
3
+ "version": "10.6.1",
4
4
  "description": "Kameleoon React SDK",
5
5
  "files": [
6
6
  "dist"
@@ -24,7 +24,8 @@
24
24
  "test:dev": "jest",
25
25
  "test:watch": "jest --watch",
26
26
  "test:coverage": "jest --coverage",
27
- "lint": "eslint -c ../../eslint.config.js 'dist/**/*.js'"
27
+ "lint": "eslint -c ../../eslint.config.js 'dist/**/*.js'",
28
+ "madge": "madge -c ./dist"
28
29
  },
29
30
  "homepage": "https://developers.kameleoon.com/react-js-sdk.html",
30
31
  "publishConfig": {
@@ -39,7 +40,7 @@
39
40
  ],
40
41
  "license": "ISC",
41
42
  "dependencies": {
42
- "@kameleoon/javascript-sdk": "4.5.0"
43
+ "@kameleoon/javascript-sdk": "4.6.1"
43
44
  },
44
45
  "peerDependencies": {
45
46
  "react": "^16.8.0 || ^17.0.0 || ^18.0.0"