diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-12-31 15:18:39 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-12-31 15:18:39 +0900 |
| commit | db60c5cc3e6dd2e51fce7dd946e477b3e125ba69 (patch) | |
| tree | 5ce9d4e6ca1fe7735508fce208693bbe4d2c1dc0 /src/client/sync/crdt/index.ts | |
| parent | 2e21859626e69d992d4dff21338487d372097cb0 (diff) | |
| download | kioku-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.ts | 34 |
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, |
