Skip to content

Commit 7f440d5

Browse files
Merge branch 'inlocalstorage' into inlocalstorage_storageAdapter
2 parents d94e85b + 9508af8 commit 7f440d5

File tree

8 files changed

+46
-34
lines changed

8 files changed

+46
-34
lines changed

.github/workflows/ci-cd.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ jobs:
5757
run: BUILD_BRANCH=$(echo "${GITHUB_REF#refs/heads/}") npm run build
5858

5959
- name: Store assets
60-
if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/prerequisites' || github.ref == 'refs/heads/master') }}
60+
if: ${{ github.event_name == 'push' && (github.ref == 'refs/heads/development' || github.ref == 'refs/heads/master') }}
6161
uses: actions/upload-artifact@v4
6262
with:
6363
name: assets
@@ -68,7 +68,7 @@ jobs:
6868
name: Upload assets
6969
runs-on: ubuntu-latest
7070
needs: build
71-
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/prerequisites' }}
71+
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/development' }}
7272
strategy:
7373
matrix:
7474
environment:

CHANGES.txt

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1-
11.4.0 (May 20, 2025)
2-
- Added support for targeting rules based on rule-based segments.
3-
- Added support for feature flag prerequisites.
1+
11.4.1 (June 3, 2025)
2+
- 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.
3+
4+
11.4.0 (May 28, 2025)
5+
- Added support for rule-based segments. These segments determine membership at runtime by evaluating their configured rules against the user attributes provided to the SDK.
6+
- Added support for feature flag prerequisites. This allows customers to define dependency conditions between flags, which are evaluated before any allowlists or targeting rules.
47
- Updated @splitsoftware/splitio-commons package to version 2.4.0.
58

69
11.3.0 (May 16, 2025)
710
- Updated @splitsoftware/splitio-commons package to version 2.3.0, which optimizes the Redis storage to:
811
- Avoid lazy require of the `ioredis` dependency when the SDK is initialized, and
912
- Flag the SDK as ready from cache immediately to allow queueing feature flag evaluations before SDK_READY event is emitted.
10-
- Bugfix - Enhanced HTTP client module to implement timeouts for failing requests that might otherwise remain pending indefinitely on some Fetch API implementations.
13+
- 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.
1114

1215
11.2.0 (March 28, 2025)
1316
- 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.
@@ -48,6 +51,15 @@
4851
- 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.
4952
- 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.
5053

54+
10.28.1 (July 25, 2025)
55+
- Updated @splitsoftware/splitio-commons package to version 1.17.1 that includes some vulnerability and bug fixes.
56+
- Updated the Redis storage to avoid lazy require of the `ioredis` dependency when the SDK is initialized.
57+
- 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.
58+
- Bugfix - Properly handle rejected promises when using targeting rules with segment matchers in consumer modes (e.g., Redis and Pluggable storages).
59+
- 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).
60+
- 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.
61+
- Bugfix - Fixed an issue with the server-side polling manager that caused dangling timers when the SDK was destroyed before it was ready.
62+
5163
10.28.0 (September 6, 2024)
5264
- Updated @splitsoftware/splitio-commons package to version 1.17.0 that includes minor updates:
5365
- Added `sync.requestOptions.getHeaderOverrides` configuration option to enhance SDK HTTP request Headers for Authorization Frameworks.

package-lock.json

Lines changed: 15 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@splitsoftware/splitio",
3-
"version": "11.3.1-rc.0",
3+
"version": "11.4.1",
44
"description": "Split SDK",
55
"files": [
66
"README.md",
@@ -38,7 +38,7 @@
3838
"node": ">=14.0.0"
3939
},
4040
"dependencies": {
41-
"@splitsoftware/splitio-commons": "2.3.1-rc.0",
41+
"@splitsoftware/splitio-commons": "2.4.1",
4242
"bloom-filters": "^3.0.4",
4343
"ioredis": "^4.28.0",
4444
"js-yaml": "^3.13.1",
@@ -111,7 +111,7 @@
111111
"test-ts-decls": "tsc --build ts-tests",
112112
"test": "npm run test-node && npm run test-browser",
113113
"all": "npm run check && npm run build && npm run test-ts-decls && npm run test",
114-
"publish:rc": "npm run check && npm run build && npm publish --tag canary",
114+
"publish:rc": "npm run check && npm run build && npm publish --tag rc",
115115
"publish:stable": "npm run check && npm run build && npm publish"
116116
},
117117
"greenkeeper": {

src/__tests__/browserSuites/push-synchronization-retries.spec.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,11 @@ const MILLIS_THIRD_RETRY_FOR_SPLIT_KILL_EVENT = 2000;
6666
*
6767
* 0.5 secs: Unbounded MEMBERSHIPS_MS_UPDATE event -> /memberships/[email protected] OK, /memberships/[email protected]: network error
6868
* 0.6 secs: Unbounded MEMBERSHIPS_MS_UPDATE event -> /memberships/[email protected] retry: invalid JSON response
69-
* 0.8 secs: Unbounded MEMBERSHIPS_MS_UPDATE event -> /memberships/[email protected]: server error
69+
* 0.8 secs: Unbounded MEMBERSHIPS_MS_UPDATE event -> /memberships/[email protected]: 500 server error
7070
* 1.2 secs: Unbounded MEMBERSHIPS_MS_UPDATE event -> /memberships/[email protected] retry: success -> SDK_UPDATE triggered
7171
*
7272
* 1.3 secs: SPLIT_KILL event -> /splitChanges: outdated response -> SDK_UPDATE triggered although fetches fail
73-
* 1.4 secs: SPLIT_KILL event -> /splitChanges retry: network error
73+
* 1.4 secs: SPLIT_KILL event -> /splitChanges retry: 500 server error
7474
* 1.6 secs: SPLIT_KILL event -> /splitChanges retry: invalid JSON response
7575
* 2.0 secs: SPLIT_KILL event -> /splitChanges retry: 408 request timeout
7676
* (we destroy the client here, to assert that all scheduled tasks are clean)
@@ -184,7 +184,7 @@ export function testSynchronizationRetries(fetchMock, assert) {
184184
return { status: 200, body: { ff: { d: [], s: 1457552649999, t: 1457552649999 } } }; // returning old state
185185
});
186186
// first fetch retry for SPLIT_KILL event, due to previous unexpected response (response till minor than SPLIT_KILL changeNumber)
187-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.3&since=1457552649999&rbSince=100'), { throws: new TypeError('Network error') });
187+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.3&since=1457552649999&rbSince=100'), { status: 500, body: 'server error' });
188188
// second fetch retry for SPLIT_KILL event
189189
fetchMock.getOnce(url(settings, '/splitChanges?s=1.3&since=1457552649999&rbSince=100'), { status: 200, body: '{ "since": 1457552620999, "til' }); // invalid JSON response
190190
// third fetch retry for SPLIT_KILL event

src/__tests__/nodeSuites/push-synchronization-retries.spec.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -53,19 +53,19 @@ const MILLIS_THIRD_RETRY_FOR_SPLIT_KILL_EVENT = 2000;
5353
* 0.0 secs: initial SyncAll (/splitChanges, /segmentChanges/*), auth, SSE connection
5454
* 0.1 secs: SSE connection opened -> syncAll (/splitChanges, /segmentChanges/*)
5555
*
56-
* 0.2 secs: SPLIT_UPDATE event -> /splitChanges: network error
56+
* 0.2 secs: SPLIT_UPDATE event -> /splitChanges: 500 server error
5757
* 0.3 secs: SPLIT_UPDATE event -> /splitChanges retry: success -> SDK_UPDATE triggered
5858
*
5959
* 0.4 secs: SPLIT_UPDATE event with old changeNumber -> SDK_UPDATE not triggered
6060
*
61-
* 0.5 secs: SEGMENT_UPDATE event -> /segmentChanges/*: server error (cannot test outdated response, since it is not supported)
61+
* 0.5 secs: SEGMENT_UPDATE event -> /segmentChanges/*: 500 server error (cannot test outdated response, since it is not supported)
6262
* 0.6 secs: SEGMENT_UPDATE event -> /segmentChanges/* retry: network error
6363
* 0.8 secs: SEGMENT_UPDATE event -> /segmentChanges/* retry: invalid JSON response
6464
* 1.2 secs: SEGMENT_UPDATE event -> /segmentChanges/* retry: success -> SDK_UPDATE triggered
6565
*
6666
* 1.3 secs: SPLIT_KILL event -> /splitChanges: outdated response -> SDK_UPDATE triggered although fetches fail
6767
* 1.4 secs: SPLIT_KILL event -> /splitChanges retry: invalid JSON response
68-
* 1.6 secs: SPLIT_KILL event -> /splitChanges retry: network error
68+
* 1.6 secs: SPLIT_KILL event -> /splitChanges retry: 500 server error
6969
* 2.0 secs: SPLIT_KILL event -> /splitChanges retry: 408 request timeout
7070
* (we destroy the client here, to assert that all scheduled tasks are clean)
7171
*/
@@ -153,7 +153,7 @@ export function testSynchronizationRetries(fetchMock, assert) {
153153
);
154154

155155
// fetch due to SPLIT_UPDATE event
156-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.3&since=1457552620999&rbSince=100'), { throws: new TypeError('Network error') });
156+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.3&since=1457552620999&rbSince=100'), { status: 500, body: 'server error' });
157157
// fetch retry for SPLIT_UPDATE event, due to previous fail
158158
fetchMock.getOnce(url(settings, '/splitChanges?s=1.3&since=1457552620999&rbSince=100'), function () {
159159
const lapse = Date.now() - start;
@@ -191,7 +191,7 @@ export function testSynchronizationRetries(fetchMock, assert) {
191191
// first fetch retry for SPLIT_KILL event, due to previous unexpected response (response till minor than SPLIT_KILL changeNumber)
192192
fetchMock.getOnce(url(settings, '/splitChanges?s=1.3&since=1457552649999&rbSince=100'), { status: 200, body: '{ "since": 1457552620999, "til' }); // invalid JSON
193193
// second fetch retry for SPLIT_KILL event
194-
fetchMock.getOnce(url(settings, '/splitChanges?s=1.3&since=1457552649999&rbSince=100'), { throws: new TypeError('Network error') });
194+
fetchMock.getOnce(url(settings, '/splitChanges?s=1.3&since=1457552649999&rbSince=100'), { status: 500, body: 'server error' });
195195
// third fetch retry for SPLIT_KILL event
196196
fetchMock.getOnce(url(settings, '/splitChanges?s=1.3&since=1457552649999&rbSince=100'), function () {
197197
const lapse = Date.now() - start;

src/platform/getEventSource/eventsource.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ that accepts a custom agent.
66
77
The MIT License
88
9-
Copyright (c) EventSource GitHub organisation
9+
Copyright (c) EventSource GitHub organization
1010
1111
Permission is hereby granted, free of charge, to any person obtaining
1212
a copy of this software and associated documentation files (the

src/settings/defaults/version.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
export const packageVersion = '11.3.1-rc.0';
1+
export const packageVersion = '11.4.1';

0 commit comments

Comments
 (0)