UNPKG

delta-sync

Version:

A lightweight framework for bi-directional database synchronization with automatic version tracking and conflict resolution.

24 lines (23 loc) 1.43 kB
import { DeltaModel, DatabaseAdapter, DataChange, Attachment, AttachmentChange } from './types'; import { EncryptionConfig } from './SyncConfig'; export declare class LocalCoordinator { localAdapter: DatabaseAdapter; private encryptionConfig?; private readonly LOCAL_CHANGES_STORE; private readonly ATTACHMENT_CHANGES_STORE; private readonly META_STORE; private readonly VERSION_KEY; constructor(localAdapter: DatabaseAdapter, encryptionConfig?: EncryptionConfig); putBulk<T extends DeltaModel>(storeName: string, items: T[], skipTracking?: boolean): Promise<T[]>; deleteBulk(storeName: string, ids: string[], skipTracking?: boolean): Promise<void>; attachFile(modelId: string, storeName: string, file: File | Blob | ArrayBuffer, filename: string, mimeType: string, metadata?: any): Promise<Attachment>; detachFile(storeName: string, modelId: string, attachmentId: string): Promise<DeltaModel>; private trackAttachmentChange; private trackDataChange; applyDataChange<T extends DeltaModel>(changes: DataChange<T>[]): Promise<void>; applyAttachmentChanges(changes: AttachmentChange[]): Promise<void>; getPendingChanges(since: number, limit?: number): Promise<DataChange[]>; getPendingAttachmentChanges(since: number, limit?: number): Promise<AttachmentChange[]>; updateCurrentVersion(timestamp: number): Promise<void>; getCurrentVersion(): Promise<number>; }