From db60c5cc3e6dd2e51fce7dd946e477b3e125ba69 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Wed, 31 Dec 2025 15:18:39 +0900 Subject: feat(crdt): add CRDT repository layer and sync state management Add Phase 2 of the CRDT implementation: - CRDT-aware repository wrappers for all entity types (Deck, Card, Note, etc.) - Sync state management with IndexedDB storage for CRDT document binaries - Base64 serialization utilities for network transport - Comprehensive test coverage (53 new tests) --- src/client/sync/crdt/index.ts | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'src/client/sync/crdt/index.ts') diff --git a/src/client/sync/crdt/index.ts b/src/client/sync/crdt/index.ts index fa296bd..4a3d600 100644 --- a/src/client/sync/crdt/index.ts +++ b/src/client/sync/crdt/index.ts @@ -47,6 +47,40 @@ export { saveIncremental, updateDocument, } from "./document-manager"; + +// CRDT-aware repository wrappers +export { + type CrdtDocumentResult, + type CrdtMergeResult, + type CrdtRepository, + crdtCardRepository, + crdtDeckRepository, + crdtNoteFieldTypeRepository, + crdtNoteFieldValueRepository, + crdtNoteRepository, + crdtNoteTypeRepository, + crdtRepositories, + crdtReviewLogRepository, + entitiesToCrdtDocuments, + getCrdtRepository, + getRepositoryForDocumentId, + mergeAndConvert, +} from "./repositories"; + +// Sync state management +export { + base64ToBinary, + binaryToBase64, + type CrdtSyncMetadata, + type CrdtSyncPayload, + type CrdtSyncStateEntry, + CrdtSyncStateManager, + crdtSyncDb, + crdtSyncStateManager, + entriesToSyncPayload, + syncPayloadToEntries, +} from "./sync-state"; + // Type definitions export { type CrdtCardDocument, -- cgit v1.2.3-70-g09d2