From 375e8d5926527fe92d50678416ed8e82ff0287bd Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Tue, 6 Jan 2026 16:59:02 -0300 Subject: [PATCH 1/3] Update flush method return value to Promise --- CHANGES.txt | 2 +- src/readiness/readinessManager.ts | 2 +- src/sync/polling/updaters/segmentChangesUpdater.ts | 2 +- src/sync/syncManagerOnline.ts | 2 +- src/sync/types.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 6140fc04..63a22deb 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,5 +1,5 @@ 2.10.1 (December 18, 2025) - - Bugfix - Handle `null` prerequisites properly + - Bugfix - Handle `null` prerequisites properly. 2.10.0 (December 16, 2025) - Added property `impressionsDisabled` in getTreatment(s) `evaluationOptions` parameter, to disable impressions per evaluations. diff --git a/src/readiness/readinessManager.ts b/src/readiness/readinessManager.ts index 319e843d..6b468e5b 100644 --- a/src/readiness/readinessManager.ts +++ b/src/readiness/readinessManager.ts @@ -162,7 +162,7 @@ export function readinessManagerFactory( isTimedout() { return hasTimedout && !isReady; }, hasTimedout() { return hasTimedout; }, isDestroyed() { return isDestroyed; }, - isOperational() { return (isReady || isReadyFromCache) && !isDestroyed; }, + isOperational() { return isReadyFromCache && !isDestroyed; }, lastUpdate() { return lastUpdate; } }; diff --git a/src/sync/polling/updaters/segmentChangesUpdater.ts b/src/sync/polling/updaters/segmentChangesUpdater.ts index 7fe5b7b7..8127a96c 100644 --- a/src/sync/polling/updaters/segmentChangesUpdater.ts +++ b/src/sync/polling/updaters/segmentChangesUpdater.ts @@ -37,7 +37,7 @@ export function segmentChangesUpdaterFactory( function updateSegment(segmentName: string, noCache?: boolean, till?: number, fetchOnlyNew?: boolean, retries?: number): Promise { log.debug(`${LOG_PREFIX_SYNC_SEGMENTS}Processing segment ${segmentName}`); - let sincePromise = Promise.resolve(segments.getChangeNumber(segmentName)); + const sincePromise = Promise.resolve(segments.getChangeNumber(segmentName)); return sincePromise.then(since => { // if fetchOnlyNew flag, avoid processing already fetched segments diff --git a/src/sync/syncManagerOnline.ts b/src/sync/syncManagerOnline.ts index 92dbc28f..5ac63210 100644 --- a/src/sync/syncManagerOnline.ts +++ b/src/sync/syncManagerOnline.ts @@ -145,7 +145,7 @@ export function syncManagerOnlineFactory( }, flush() { - return submitterManager.execute(!isConsentGranted(settings)); + return submitterManager.execute(!isConsentGranted(settings)).then(() => {}); }, // [Only used for client-side] diff --git a/src/sync/types.ts b/src/sync/types.ts index 956d3112..d11e91d6 100644 --- a/src/sync/types.ts +++ b/src/sync/types.ts @@ -37,7 +37,7 @@ export interface ISyncTask extends ITask /** SyncManager */ export interface ISyncManager extends ITask { - flush(): Promise, + flush(): Promise, pushManager?: IPushManager, pollingManager?: IPollingManager, submitterManager?: ISubmitterManager From 52b14aa443c10e89cb9af5b49c6af173d3ae5b0b Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Tue, 6 Jan 2026 17:40:52 -0300 Subject: [PATCH 2/3] Fix test --- src/sync/__tests__/syncTask.mock.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sync/__tests__/syncTask.mock.ts b/src/sync/__tests__/syncTask.mock.ts index 10ef439e..aa600433 100644 --- a/src/sync/__tests__/syncTask.mock.ts +++ b/src/sync/__tests__/syncTask.mock.ts @@ -1,6 +1,6 @@ export function syncTaskFactory() { return { - execute: jest.fn(), + execute: jest.fn(() => Promise.resolve(true)), isExecuting: jest.fn(), start: jest.fn(), stop: jest.fn(), From 627d434d7be25271806431eb50e5c426727f5ae3 Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Thu, 8 Jan 2026 15:02:22 -0300 Subject: [PATCH 3/3] Update submitterManager.execute return type to Promise --- src/readiness/readinessManager.ts | 2 +- src/sync/__tests__/syncTask.mock.ts | 2 +- src/sync/submitters/submitterManager.ts | 2 +- src/sync/submitters/types.ts | 2 +- src/sync/syncManagerOnline.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/readiness/readinessManager.ts b/src/readiness/readinessManager.ts index 6b468e5b..319e843d 100644 --- a/src/readiness/readinessManager.ts +++ b/src/readiness/readinessManager.ts @@ -162,7 +162,7 @@ export function readinessManagerFactory( isTimedout() { return hasTimedout && !isReady; }, hasTimedout() { return hasTimedout; }, isDestroyed() { return isDestroyed; }, - isOperational() { return isReadyFromCache && !isDestroyed; }, + isOperational() { return (isReady || isReadyFromCache) && !isDestroyed; }, lastUpdate() { return lastUpdate; } }; diff --git a/src/sync/__tests__/syncTask.mock.ts b/src/sync/__tests__/syncTask.mock.ts index aa600433..10ef439e 100644 --- a/src/sync/__tests__/syncTask.mock.ts +++ b/src/sync/__tests__/syncTask.mock.ts @@ -1,6 +1,6 @@ export function syncTaskFactory() { return { - execute: jest.fn(() => Promise.resolve(true)), + execute: jest.fn(), isExecuting: jest.fn(), start: jest.fn(), stop: jest.fn(), diff --git a/src/sync/submitters/submitterManager.ts b/src/sync/submitters/submitterManager.ts index bcff5f1b..7cfa3b3d 100644 --- a/src/sync/submitters/submitterManager.ts +++ b/src/sync/submitters/submitterManager.ts @@ -38,7 +38,7 @@ export function submitterManagerFactory(params: ISdkFactoryContextSync): ISubmit execute(onlyTelemetry?: boolean) { const promises = onlyTelemetry ? [] : submitters.map(submitter => submitter.execute()); if (telemetrySubmitter) promises.push(telemetrySubmitter.execute()); - return Promise.all(promises); + return Promise.all(promises).then(() => { }); }, isExecuting() { diff --git a/src/sync/submitters/types.ts b/src/sync/submitters/types.ts index 9bae212e..36a76c9b 100644 --- a/src/sync/submitters/types.ts +++ b/src/sync/submitters/types.ts @@ -237,5 +237,5 @@ export type TelemetryConfigStatsPayload = TelemetryConfigStats & { export interface ISubmitterManager extends ISyncTask { start(onlyTelemetry?: boolean): void, stop(allExceptTelemetry?: boolean): void, - execute(onlyTelemetry?: boolean): Promise + execute(onlyTelemetry?: boolean): Promise } diff --git a/src/sync/syncManagerOnline.ts b/src/sync/syncManagerOnline.ts index 5ac63210..92dbc28f 100644 --- a/src/sync/syncManagerOnline.ts +++ b/src/sync/syncManagerOnline.ts @@ -145,7 +145,7 @@ export function syncManagerOnlineFactory( }, flush() { - return submitterManager.execute(!isConsentGranted(settings)).then(() => {}); + return submitterManager.execute(!isConsentGranted(settings)); }, // [Only used for client-side]