diff --git a/CHANGES.txt b/CHANGES.txt index 2f353229..9dd13056 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,6 @@ +3.1.0 (July XX, 2026) + - Added support for rule-based segments in /api/v1/configs endpoint. + 3.0.0 (June 26, 2026) - Extracted SDK lifecycle methods (`init`, `flush`, and `destroy`) into a reusable `sdkLifecycle` module. - Extracted the `track` method into a standalone `trackMethod` factory for reuse across SDKs. diff --git a/package-lock.json b/package-lock.json index 24e3f32a..42dec283 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@splitsoftware/splitio-commons", - "version": "3.0.1-rc.1", + "version": "3.0.1-rc.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@splitsoftware/splitio-commons", - "version": "3.0.1-rc.1", + "version": "3.0.1-rc.2", "license": "Apache-2.0", "dependencies": { "@types/ioredis": "^4.28.0", diff --git a/package.json b/package.json index d387edfe..2d5c30ab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@splitsoftware/splitio-commons", - "version": "3.0.1-rc.1", + "version": "3.0.1-rc.2", "description": "Split JavaScript SDK common components", "main": "cjs/index.js", "module": "esm/index.js", diff --git a/src/services/__tests__/splitApi.spec.ts b/src/services/__tests__/splitApi.spec.ts index a5aacd45..a77c1708 100644 --- a/src/services/__tests__/splitApi.spec.ts +++ b/src/services/__tests__/splitApi.spec.ts @@ -45,10 +45,10 @@ describe('serviceApi', () => { assertHeaders(settings, headers); expect(url).toBe(expectedFlagsUrl(-1, 100, settings.validateFilters || false, settings, -1)); - serviceApi.fetchConfigs(-1, false, 100); + serviceApi.fetchConfigs(-1, false, 100, -1); [url, { headers }] = fetchMock.mock.calls[4]; assertHeaders(settings, headers); - expect(url).toBe(expectedConfigsUrl(-1, 100, settings.validateFilters || false, settings)); + expect(url).toBe(expectedConfigsUrl(-1, 100, settings.validateFilters || false, settings, -1)); serviceApi.fetchConfigsSegmentChanges(-1, 'segmentName', false, 100); [url, { headers }] = fetchMock.mock.calls[5]; @@ -81,9 +81,9 @@ describe('serviceApi', () => { return `sdk/splitChanges?s=1.1&since=${since}${rbSince ? '&rbSince=' + rbSince : ''}${usesFilter ? filterQueryString : ''}${till ? '&till=' + till : ''}`; } - function expectedConfigsUrl(since: number, till: number, usesFilter: boolean, settings: ISettings) { + function expectedConfigsUrl(since: number, till: number, usesFilter: boolean, settings: ISettings, rbSince?: number) { const filterQueryString = settings.sync.__splitFiltersValidation && settings.sync.__splitFiltersValidation.queryString; - return `configs/v1/configs?since=${since}${usesFilter ? filterQueryString : ''}${till ? '&till=' + till : ''}`; + return `configs/v1/configs?since=${since}${rbSince ? '&rbSince=' + rbSince : ''}${usesFilter ? filterQueryString : ''}${till ? '&till=' + till : ''}`; } }); diff --git a/src/services/serviceApi.ts b/src/services/serviceApi.ts index 518fbaab..207b3b08 100644 --- a/src/services/serviceApi.ts +++ b/src/services/serviceApi.ts @@ -70,8 +70,8 @@ export function serviceApiFactory( }, // @TODO support filterQueryString and handle ERROR_TOO_MANY_SETS error - fetchConfigs(since: number, noCache?: boolean, till?: number) { - const url = `${urls.configs}/api/v1/configs?since=${since}${filterQueryString || ''}${till ? '&till=' + till : ''}`; + fetchConfigs(since: number, noCache?: boolean, till?: number, rbSince?: number) { + const url = `${urls.configs}/api/v1/configs?since=${since}${rbSince ? '&rbSince=' + rbSince : ''}${filterQueryString || ''}${till ? '&till=' + till : ''}`; return secureSplitHttpClient(url, noCache ? noCacheHeaderOptions : undefined); }, diff --git a/src/services/splitApi.ts b/src/services/splitApi.ts index 935ed8d8..ba7ff38c 100644 --- a/src/services/splitApi.ts +++ b/src/services/splitApi.ts @@ -149,8 +149,8 @@ export function splitApiFactory( // Not used. Just here to satisfy the IServiceApi interface. - fetchConfigs(since: number, noCache?: boolean, till?: number) { - const url = `${urls.configs}/v1/configs?since=${since}${filterQueryString || ''}${till ? '&till=' + till : ''}`; + fetchConfigs(since: number, noCache?: boolean, till?: number, rbSince?: number) { + const url = `${urls.configs}/v1/configs?since=${since}${rbSince ? '&rbSince=' + rbSince : ''}${filterQueryString || ''}${till ? '&till=' + till : ''}`; return splitHttpClient(url, noCache ? noCacheHeaderOptions : undefined); },