@splitsoftware/splitio 11.5.0-rc.1 → 11.5.1-rc.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/CHANGES.txt +18 -4
- package/cjs/factory/node.js +4 -3
- package/cjs/platform/getEventSource/eventsource.js +1 -1
- package/cjs/settings/defaults/version.js +1 -1
- package/cjs/settings/storage/browser.js +5 -7
- package/esm/factory/node.js +4 -3
- package/esm/platform/getEventSource/eventsource.js +1 -1
- package/esm/settings/defaults/version.js +1 -1
- package/esm/settings/storage/browser.js +5 -7
- package/package.json +2 -2
- package/src/factory/node.js +4 -3
- package/src/platform/getEventSource/eventsource.js +1 -1
- package/src/settings/defaults/version.js +1 -1
- package/src/settings/storage/browser.js +6 -7
package/CHANGES.txt
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
11.
|
|
2
|
-
- Added `
|
|
3
|
-
-
|
|
1
|
+
11.6.0 (September 18, 2025)
|
|
2
|
+
- Added `storage.wrapper` configuration option to allow the SDK to use a custom storage wrapper for the storage type `LOCALSTORAGE`. Default value is `window.localStorage`.
|
|
3
|
+
- Updated @splitsoftware/splitio-commons package to version 2.6.0.
|
|
4
|
+
|
|
5
|
+
11.5.0 (September 10, 2025)
|
|
6
|
+
- Added `factory.getRolloutPlan()` method for standalone server-side SDK (Node.js), which returns the rollout plan snapshot from the storage.
|
|
7
|
+
- Added `initialRolloutPlan` configuration option for standalone client-side SDK (Browser), which allows preloading the SDK storage with a snapshot of the rollout plan.
|
|
8
|
+
- Updated @splitsoftware/splitio-commons package to version 2.5.0.
|
|
4
9
|
|
|
5
10
|
11.4.1 (June 3, 2025)
|
|
6
11
|
- Updated @splitsoftware/splitio-commons package to version 2.4.1, which improves the Proxy fallback to flag spec version 1.2 by handling the case when the Proxy does not return an end-of-stream marker in 400 status code responses.
|
|
@@ -14,7 +19,7 @@
|
|
|
14
19
|
- Updated @splitsoftware/splitio-commons package to version 2.3.0, which optimizes the Redis storage to:
|
|
15
20
|
- Avoid lazy require of the `ioredis` dependency when the SDK is initialized, and
|
|
16
21
|
- Flag the SDK as ready from cache immediately to allow queueing feature flag evaluations before SDK_READY event is emitted.
|
|
17
|
-
- Bugfix - Enhanced HTTP client module to implement timeouts for failing requests that might otherwise remain pending indefinitely on some Fetch API implementations.
|
|
22
|
+
- Bugfix - Enhanced HTTP client module to implement timeouts for failing requests that might otherwise remain pending indefinitely on some Fetch API implementations, pausing the SDK synchronization process.
|
|
18
23
|
|
|
19
24
|
11.2.0 (March 28, 2025)
|
|
20
25
|
- Added a new optional argument to the client `getTreatment` methods to allow passing additional evaluation options, such as a map of properties to append to the generated impressions sent to Split backend. Read more in our docs.
|
|
@@ -55,6 +60,15 @@
|
|
|
55
60
|
- Removed the deprecated `GOOGLE_ANALYTICS_TO_SPLIT` and `SPLIT_TO_GOOGLE_ANALYTICS` integrations. The `integrations` configuration option has been removed from the SDK factory configuration, along with the associated interfaces in the TypeScript definitions.
|
|
56
61
|
- Removed the `core.trafficType` configuration option (`SplitIO.IBrowserSettings['core']['trafficType]`) and the `trafficType` parameter from the SDK `client()` method in Browser (`SplitIO.IBrowserSDK['client']`). As a result, traffic types can no longer be bound to SDK clients, and the traffic type must be provided in the `track` method.
|
|
57
62
|
|
|
63
|
+
10.28.1 (July 25, 2025)
|
|
64
|
+
- Updated @splitsoftware/splitio-commons package to version 1.17.1 that includes some vulnerability and bug fixes.
|
|
65
|
+
- Updated the Redis storage to avoid lazy require of the `ioredis` dependency when the SDK is initialized.
|
|
66
|
+
- Bugfix - Enhanced HTTP client module to implement timeouts for failing requests that might otherwise remain pending indefinitely on some Fetch API implementations, pausing the SDK synchronization process.
|
|
67
|
+
- Bugfix - Properly handle rejected promises when using targeting rules with segment matchers in consumer modes (e.g., Redis and Pluggable storages).
|
|
68
|
+
- Bugfix - Sanitize the `SplitSDKMachineName` header value to avoid exceptions on HTTP/S requests when it contains non ISO-8859-1 characters (Related to issue https://github.com/splitio/javascript-client/issues/847).
|
|
69
|
+
- Bugfix - Fixed an issue with the SDK_UPDATE event on server-side, where it was not being emitted if there was an empty segment and the SDK received a feature flag update notification.
|
|
70
|
+
- Bugfix - Fixed an issue with the server-side polling manager that caused dangling timers when the SDK was destroyed before it was ready.
|
|
71
|
+
|
|
58
72
|
10.28.0 (September 6, 2024)
|
|
59
73
|
- Updated @splitsoftware/splitio-commons package to version 1.17.0 that includes minor updates:
|
|
60
74
|
- Added `sync.requestOptions.getHeaderOverrides` configuration option to enhance SDK HTTP request Headers for Authorization Frameworks.
|
package/cjs/factory/node.js
CHANGED
|
@@ -13,6 +13,7 @@ var sdkClientMethod_1 = require("@splitsoftware/splitio-commons/cjs/sdkClient/sd
|
|
|
13
13
|
var impressionObserverSS_1 = require("@splitsoftware/splitio-commons/cjs/trackers/impressionObserver/impressionObserverSS");
|
|
14
14
|
var sdkFactory_1 = require("@splitsoftware/splitio-commons/cjs/sdkFactory");
|
|
15
15
|
var constants_1 = require("@splitsoftware/splitio-commons/cjs/utils/constants");
|
|
16
|
+
var mode_1 = require("@splitsoftware/splitio-commons/cjs/utils/settingsValidation/mode");
|
|
16
17
|
var LocalhostFromFile_1 = require("../sync/offline/LocalhostFromFile");
|
|
17
18
|
var node_1 = require("../settings/node");
|
|
18
19
|
var platform_1 = require("../platform");
|
|
@@ -40,10 +41,10 @@ function getModules(settings) {
|
|
|
40
41
|
impressionsObserverFactory: impressionObserverSS_1.impressionObserverSSFactory,
|
|
41
42
|
filterAdapterFactory: bloomFilter_1.bloomFilterFactory,
|
|
42
43
|
extraProps: function (params) {
|
|
43
|
-
if (params.settings.mode
|
|
44
|
+
if (!(0, mode_1.isConsumerMode)(params.settings.mode)) {
|
|
44
45
|
return {
|
|
45
|
-
getRolloutPlan: function (
|
|
46
|
-
return (0, getRolloutPlan_1.getRolloutPlan)(params.settings.log, params.storage,
|
|
46
|
+
getRolloutPlan: function (options) {
|
|
47
|
+
return (0, getRolloutPlan_1.getRolloutPlan)(params.settings.log, params.storage, options);
|
|
47
48
|
}
|
|
48
49
|
};
|
|
49
50
|
}
|
|
@@ -7,7 +7,7 @@ that accepts a custom agent.
|
|
|
7
7
|
|
|
8
8
|
The MIT License
|
|
9
9
|
|
|
10
|
-
Copyright (c) EventSource GitHub
|
|
10
|
+
Copyright (c) EventSource GitHub organization
|
|
11
11
|
|
|
12
12
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
13
13
|
a copy of this software and associated documentation files (the
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.validateStorage = void 0;
|
|
4
|
-
var isLocalStorageAvailable_1 = require("@splitsoftware/splitio-commons/cjs/utils/env/isLocalStorageAvailable");
|
|
5
4
|
var constants_1 = require("@splitsoftware/splitio-commons/cjs/utils/constants");
|
|
6
5
|
var STORAGE_LOCALSTORAGE = 'LOCALSTORAGE';
|
|
7
6
|
function validateStorage(settings) {
|
|
8
|
-
var log = settings.log, mode = settings.mode, _a = settings.storage, _b = _a === void 0 ? { type: constants_1.STORAGE_MEMORY } : _a, type = _b.type, _c = _b.options, options = _c === void 0 ? {} : _c, prefix = _b.prefix, expirationDays = _b.expirationDays, clearOnInit = _b.clearOnInit;
|
|
7
|
+
var log = settings.log, mode = settings.mode, _a = settings.storage, _b = _a === void 0 ? { type: constants_1.STORAGE_MEMORY } : _a, type = _b.type, _c = _b.options, options = _c === void 0 ? {} : _c, prefix = _b.prefix, expirationDays = _b.expirationDays, clearOnInit = _b.clearOnInit, wrapper = _b.wrapper;
|
|
9
8
|
var __originalType;
|
|
10
9
|
var fallbackToMemory = function () {
|
|
11
10
|
__originalType = type;
|
|
@@ -16,12 +15,10 @@ function validateStorage(settings) {
|
|
|
16
15
|
if (mode === constants_1.LOCALHOST_MODE && type === STORAGE_LOCALSTORAGE) {
|
|
17
16
|
fallbackToMemory();
|
|
18
17
|
}
|
|
19
|
-
// If an invalid storage type is provided
|
|
20
|
-
|
|
21
|
-
if (type !== constants_1.STORAGE_MEMORY && type !== STORAGE_LOCALSTORAGE ||
|
|
22
|
-
type === STORAGE_LOCALSTORAGE && !(0, isLocalStorageAvailable_1.isLocalStorageAvailable)()) {
|
|
18
|
+
// If an invalid storage type is provided, fallback into MEMORY
|
|
19
|
+
if (type !== constants_1.STORAGE_MEMORY && type !== STORAGE_LOCALSTORAGE) {
|
|
23
20
|
fallbackToMemory();
|
|
24
|
-
log.error('Invalid
|
|
21
|
+
log.error('Invalid storage type. Fallback into MEMORY storage');
|
|
25
22
|
}
|
|
26
23
|
return {
|
|
27
24
|
type: type,
|
|
@@ -29,6 +26,7 @@ function validateStorage(settings) {
|
|
|
29
26
|
prefix: prefix,
|
|
30
27
|
expirationDays: expirationDays,
|
|
31
28
|
clearOnInit: clearOnInit,
|
|
29
|
+
wrapper: wrapper,
|
|
32
30
|
__originalType: __originalType
|
|
33
31
|
};
|
|
34
32
|
}
|
package/esm/factory/node.js
CHANGED
|
@@ -10,6 +10,7 @@ import { sdkClientMethodFactory } from '@splitsoftware/splitio-commons/esm/sdkCl
|
|
|
10
10
|
import { impressionObserverSSFactory } from '@splitsoftware/splitio-commons/esm/trackers/impressionObserver/impressionObserverSS';
|
|
11
11
|
import { sdkFactory } from '@splitsoftware/splitio-commons/esm/sdkFactory';
|
|
12
12
|
import { CONSUMER_MODE, LOCALHOST_MODE } from '@splitsoftware/splitio-commons/esm/utils/constants';
|
|
13
|
+
import { isConsumerMode } from '@splitsoftware/splitio-commons/esm/utils/settingsValidation/mode';
|
|
13
14
|
import { localhostFromFileFactory } from '../sync/offline/LocalhostFromFile';
|
|
14
15
|
import { settingsFactory } from '../settings/node';
|
|
15
16
|
import { platform, SignalListener } from '../platform';
|
|
@@ -37,10 +38,10 @@ function getModules(settings) {
|
|
|
37
38
|
impressionsObserverFactory: impressionObserverSSFactory,
|
|
38
39
|
filterAdapterFactory: bloomFilterFactory,
|
|
39
40
|
extraProps: function (params) {
|
|
40
|
-
if (params.settings.mode
|
|
41
|
+
if (!isConsumerMode(params.settings.mode)) {
|
|
41
42
|
return {
|
|
42
|
-
getRolloutPlan: function (
|
|
43
|
-
return getRolloutPlan(params.settings.log, params.storage,
|
|
43
|
+
getRolloutPlan: function (options) {
|
|
44
|
+
return getRolloutPlan(params.settings.log, params.storage, options);
|
|
44
45
|
}
|
|
45
46
|
};
|
|
46
47
|
}
|
|
@@ -7,7 +7,7 @@ that accepts a custom agent.
|
|
|
7
7
|
|
|
8
8
|
The MIT License
|
|
9
9
|
|
|
10
|
-
Copyright (c) EventSource GitHub
|
|
10
|
+
Copyright (c) EventSource GitHub organization
|
|
11
11
|
|
|
12
12
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
13
13
|
a copy of this software and associated documentation files (the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export var packageVersion = '11.5.
|
|
1
|
+
export var packageVersion = '11.5.1-rc.1';
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { isLocalStorageAvailable } from '@splitsoftware/splitio-commons/esm/utils/env/isLocalStorageAvailable';
|
|
2
1
|
import { LOCALHOST_MODE, STORAGE_MEMORY } from '@splitsoftware/splitio-commons/esm/utils/constants';
|
|
3
2
|
var STORAGE_LOCALSTORAGE = 'LOCALSTORAGE';
|
|
4
3
|
export function validateStorage(settings) {
|
|
5
|
-
var log = settings.log, mode = settings.mode, _a = settings.storage, _b = _a === void 0 ? { type: STORAGE_MEMORY } : _a, type = _b.type, _c = _b.options, options = _c === void 0 ? {} : _c, prefix = _b.prefix, expirationDays = _b.expirationDays, clearOnInit = _b.clearOnInit;
|
|
4
|
+
var log = settings.log, mode = settings.mode, _a = settings.storage, _b = _a === void 0 ? { type: STORAGE_MEMORY } : _a, type = _b.type, _c = _b.options, options = _c === void 0 ? {} : _c, prefix = _b.prefix, expirationDays = _b.expirationDays, clearOnInit = _b.clearOnInit, wrapper = _b.wrapper;
|
|
6
5
|
var __originalType;
|
|
7
6
|
var fallbackToMemory = function () {
|
|
8
7
|
__originalType = type;
|
|
@@ -13,12 +12,10 @@ export function validateStorage(settings) {
|
|
|
13
12
|
if (mode === LOCALHOST_MODE && type === STORAGE_LOCALSTORAGE) {
|
|
14
13
|
fallbackToMemory();
|
|
15
14
|
}
|
|
16
|
-
// If an invalid storage type is provided
|
|
17
|
-
|
|
18
|
-
if (type !== STORAGE_MEMORY && type !== STORAGE_LOCALSTORAGE ||
|
|
19
|
-
type === STORAGE_LOCALSTORAGE && !isLocalStorageAvailable()) {
|
|
15
|
+
// If an invalid storage type is provided, fallback into MEMORY
|
|
16
|
+
if (type !== STORAGE_MEMORY && type !== STORAGE_LOCALSTORAGE) {
|
|
20
17
|
fallbackToMemory();
|
|
21
|
-
log.error('Invalid
|
|
18
|
+
log.error('Invalid storage type. Fallback into MEMORY storage');
|
|
22
19
|
}
|
|
23
20
|
return {
|
|
24
21
|
type: type,
|
|
@@ -26,6 +23,7 @@ export function validateStorage(settings) {
|
|
|
26
23
|
prefix: prefix,
|
|
27
24
|
expirationDays: expirationDays,
|
|
28
25
|
clearOnInit: clearOnInit,
|
|
26
|
+
wrapper: wrapper,
|
|
29
27
|
__originalType: __originalType
|
|
30
28
|
};
|
|
31
29
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@splitsoftware/splitio",
|
|
3
|
-
"version": "11.5.
|
|
3
|
+
"version": "11.5.1-rc.1",
|
|
4
4
|
"description": "Split SDK",
|
|
5
5
|
"files": [
|
|
6
6
|
"README.md",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"node": ">=14.0.0"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@splitsoftware/splitio-commons": "2.5.
|
|
41
|
+
"@splitsoftware/splitio-commons": "2.5.1-rc.0",
|
|
42
42
|
"bloom-filters": "^3.0.4",
|
|
43
43
|
"ioredis": "^4.28.0",
|
|
44
44
|
"js-yaml": "^3.13.1",
|
package/src/factory/node.js
CHANGED
|
@@ -10,6 +10,7 @@ import { sdkClientMethodFactory } from '@splitsoftware/splitio-commons/src/sdkCl
|
|
|
10
10
|
import { impressionObserverSSFactory } from '@splitsoftware/splitio-commons/src/trackers/impressionObserver/impressionObserverSS';
|
|
11
11
|
import { sdkFactory } from '@splitsoftware/splitio-commons/src/sdkFactory';
|
|
12
12
|
import { CONSUMER_MODE, LOCALHOST_MODE } from '@splitsoftware/splitio-commons/src/utils/constants';
|
|
13
|
+
import { isConsumerMode } from '@splitsoftware/splitio-commons/src/utils/settingsValidation/mode';
|
|
13
14
|
|
|
14
15
|
import { localhostFromFileFactory } from '../sync/offline/LocalhostFromFile';
|
|
15
16
|
import { settingsFactory } from '../settings/node';
|
|
@@ -52,10 +53,10 @@ function getModules(settings) {
|
|
|
52
53
|
filterAdapterFactory: bloomFilterFactory,
|
|
53
54
|
|
|
54
55
|
extraProps: (params) => {
|
|
55
|
-
if (params.settings.mode
|
|
56
|
+
if (!isConsumerMode(params.settings.mode)) {
|
|
56
57
|
return {
|
|
57
|
-
getRolloutPlan(
|
|
58
|
-
return getRolloutPlan(params.settings.log, params.storage,
|
|
58
|
+
getRolloutPlan(options) {
|
|
59
|
+
return getRolloutPlan(params.settings.log, params.storage, options);
|
|
59
60
|
}
|
|
60
61
|
};
|
|
61
62
|
}
|
|
@@ -6,7 +6,7 @@ that accepts a custom agent.
|
|
|
6
6
|
|
|
7
7
|
The MIT License
|
|
8
8
|
|
|
9
|
-
Copyright (c) EventSource GitHub
|
|
9
|
+
Copyright (c) EventSource GitHub organization
|
|
10
10
|
|
|
11
11
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
12
12
|
a copy of this software and associated documentation files (the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export const packageVersion = '11.5.
|
|
1
|
+
export const packageVersion = '11.5.1-rc.1';
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { isLocalStorageAvailable } from '@splitsoftware/splitio-commons/src/utils/env/isLocalStorageAvailable';
|
|
2
1
|
import { LOCALHOST_MODE, STORAGE_MEMORY } from '@splitsoftware/splitio-commons/src/utils/constants';
|
|
3
2
|
|
|
4
3
|
const STORAGE_LOCALSTORAGE = 'LOCALSTORAGE';
|
|
@@ -12,7 +11,8 @@ export function validateStorage(settings) {
|
|
|
12
11
|
options = {},
|
|
13
12
|
prefix,
|
|
14
13
|
expirationDays,
|
|
15
|
-
clearOnInit
|
|
14
|
+
clearOnInit,
|
|
15
|
+
wrapper
|
|
16
16
|
} = { type: STORAGE_MEMORY },
|
|
17
17
|
} = settings;
|
|
18
18
|
let __originalType;
|
|
@@ -28,12 +28,10 @@ export function validateStorage(settings) {
|
|
|
28
28
|
fallbackToMemory();
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
// If an invalid storage type is provided
|
|
32
|
-
|
|
33
|
-
if (type !== STORAGE_MEMORY && type !== STORAGE_LOCALSTORAGE ||
|
|
34
|
-
type === STORAGE_LOCALSTORAGE && !isLocalStorageAvailable()) {
|
|
31
|
+
// If an invalid storage type is provided, fallback into MEMORY
|
|
32
|
+
if (type !== STORAGE_MEMORY && type !== STORAGE_LOCALSTORAGE) {
|
|
35
33
|
fallbackToMemory();
|
|
36
|
-
log.error('Invalid
|
|
34
|
+
log.error('Invalid storage type. Fallback into MEMORY storage');
|
|
37
35
|
}
|
|
38
36
|
|
|
39
37
|
return {
|
|
@@ -42,6 +40,7 @@ export function validateStorage(settings) {
|
|
|
42
40
|
prefix,
|
|
43
41
|
expirationDays,
|
|
44
42
|
clearOnInit,
|
|
43
|
+
wrapper,
|
|
45
44
|
__originalType
|
|
46
45
|
};
|
|
47
46
|
}
|