aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/client/sync/crdt/index.ts
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2025-12-31 15:18:39 +0900
committernsfisis <nsfisis@gmail.com>2025-12-31 15:18:39 +0900
commitdb60c5cc3e6dd2e51fce7dd946e477b3e125ba69 (patch)
tree5ce9d4e6ca1fe7735508fce208693bbe4d2c1dc0 /src/client/sync/crdt/index.ts
parent2e21859626e69d992d4dff21338487d372097cb0 (diff)
downloadkioku-db60c5cc3e6dd2e51fce7dd946e477b3e125ba69.tar.gz
kioku-db60c5cc3e6dd2e51fce7dd946e477b3e125ba69.tar.zst
kioku-db60c5cc3e6dd2e51fce7dd946e477b3e125ba69.zip
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)
Diffstat (limited to 'src/client/sync/crdt/index.ts')
-rw-r--r--src/client/sync/crdt/index.ts34
1 files changed, 34 insertions, 0 deletions
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,