@mindline/sync 1.0.109 → 1.0.111

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.
@@ -240,18 +240,47 @@ export declare class BatchArray {
240
240
  tenantNodes: TenantNode[];
241
241
  pb_startTS: number;
242
242
  pb_progress: number;
243
- pb_increment: number;
244
243
  pb_idle: number;
245
- pb_idleMax: number;
246
244
  pb_total: number;
247
- pb_timer: NodeJS.Timeout | null;
245
+ pb_timer: ReturnType<typeof setInterval> | null;
246
+ private readonly pollIntervalSeconds;
247
+ private pollTimer;
248
+ private pollLastUpdatedByBatchId;
249
+ private pollInstance;
250
+ private pollAuthorizedUser;
251
+ private pollBatchIdArray;
252
+ private setIdleText;
253
+ private statsHydrationHandler;
248
254
  milestoneArray: MilestoneArray;
249
255
  constructor(config: SyncConfig | null, syncPortalGlobalState: InitInfo | null, bClearLocalStorage: boolean);
250
256
  clearStoredBatchIds(): void;
251
257
  init(config: SyncConfig | null | undefined, syncPortalGlobalState: InitInfo | null, bClearLocalStorage: boolean): void;
252
- initializeProgressBar(setSyncProgress: (progress: number) => void, setConfigSyncResult: (result: string) => void, setIdleText: (idleText: string) => void, setMilestones: (milestones: Milestone[]) => void): void;
258
+ initializeProgressBar(setSyncProgress: (progress: number) => void, _setConfigSyncResult: (result: string) => void, setIdleText: (idleText: string) => void, setMilestones: (milestones: Milestone[]) => void): void;
259
+ private stopPolling;
260
+ private pollStatsOnce;
253
261
  uninitializeProgressBar(setSyncProgress: (progress: number) => void, setConfigSyncResult: (result: string) => void, setIdleText: (idleText: string) => void, setMilestones: (milestones: Milestone[]) => void): void;
254
- initializeSignalR(config: SyncConfig | null | undefined, syncPortalGlobalState: InitInfo | null, batchIdArray: Array<Object>, setRefreshDeltaTrigger: (workspace: string) => void, setReadersTotal: (readersTotal: number) => void, setReadersExcluded: (readersExcluded: number) => void, setReadersCurrent: (readersCurrent: number) => void, setWritersTotal: (writersTotal: number) => void, setWritersExcluded: (writersExcluded: number) => void, setWritersCurrent: (writersCurrent: number) => void, setMilestones: (milestones: Milestone[]) => void, setConfigSyncResult: (result: string) => void, bClearLocalStorage: boolean, message: string): void;
262
+ /**
263
+ * Calculates the sync progress percentage (0-99%) based on completed read and write operations.
264
+ *
265
+ * The progress formula is: (completedReads + completedWrites) / (total * 2) * 100
266
+ *
267
+ * Progress is divided by (total * 2) because the sync process has two phases:
268
+ * 1. Reading phase: read users from source + excluded users
269
+ * 2. Writing phase: write users to target + excluded users + deferred users
270
+ *
271
+ * Each phase can contribute up to 50% of the total progress. The result is capped at 99%
272
+ * to prevent premature completion (100% is only shown when sync is truly complete).
273
+ *
274
+ * @param total - Total number of users to sync
275
+ * @param read - Number of users read from source
276
+ * @param written - Number of users written to target
277
+ * @param excluded - Number of users excluded from sync
278
+ * @param deferred - Number of users deferred (postponed) during writing
279
+ * @returns Progress percentage from 0 to 99
280
+ */
281
+ calculateProgress(total: number, read: number, written: number, excluded: number, deferred: number): number;
282
+ updateProgressFromTotals(total: number, read: number, written: number, excluded: number, deferred: number, setSyncProgress: (progress: number) => void): void;
283
+ initializeSignalR(config: SyncConfig | null | undefined, syncPortalGlobalState: InitInfo | null, batchIdArray: Array<Object>, setRefreshDeltaTrigger: (workspace: string) => void, setReadersTotal: (readersTotal: number) => void, setReadersExcluded: (readersExcluded: number) => void, setReadersCurrent: (readersCurrent: number) => void, setWritersTotal: (writersTotal: number) => void, setWritersExcluded: (writersExcluded: number) => void, setWritersCurrent: (writersCurrent: number) => void, setMilestones: (milestones: Milestone[]) => void, setConfigSyncResult: (result: string) => void, setSyncProgress: (progress: number) => void, bClearLocalStorage: boolean, message: string, instance?: IPublicClientApplication, authorizedUser?: User): void;
255
284
  startSync(instance: IPublicClientApplication, authorizedUser: User | null | undefined, config: SyncConfig | null | undefined): Promise<APIResult>;
256
285
  }
257
286
  export declare class TenantNode {