@fatagnus/dink-sync 1.0.0

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.
Files changed (186) hide show
  1. package/README.md +312 -0
  2. package/dist/client/attachment.d.ts +225 -0
  3. package/dist/client/attachment.d.ts.map +1 -0
  4. package/dist/client/attachment.js +402 -0
  5. package/dist/client/attachment.js.map +1 -0
  6. package/dist/client/binary-encoding.d.ts +45 -0
  7. package/dist/client/binary-encoding.d.ts.map +1 -0
  8. package/dist/client/binary-encoding.js +90 -0
  9. package/dist/client/binary-encoding.js.map +1 -0
  10. package/dist/client/collection.d.ts +10 -0
  11. package/dist/client/collection.d.ts.map +1 -0
  12. package/dist/client/collection.js +924 -0
  13. package/dist/client/collection.js.map +1 -0
  14. package/dist/client/compression.d.ts +56 -0
  15. package/dist/client/compression.d.ts.map +1 -0
  16. package/dist/client/compression.js +173 -0
  17. package/dist/client/compression.js.map +1 -0
  18. package/dist/client/crdt/index.d.ts +2 -0
  19. package/dist/client/crdt/index.d.ts.map +1 -0
  20. package/dist/client/crdt/index.js +2 -0
  21. package/dist/client/crdt/index.js.map +1 -0
  22. package/dist/client/crdt/yjs-doc.d.ts +88 -0
  23. package/dist/client/crdt/yjs-doc.d.ts.map +1 -0
  24. package/dist/client/crdt/yjs-doc.js +123 -0
  25. package/dist/client/crdt/yjs-doc.js.map +1 -0
  26. package/dist/client/index.d.ts +66 -0
  27. package/dist/client/index.d.ts.map +1 -0
  28. package/dist/client/index.js +233 -0
  29. package/dist/client/index.js.map +1 -0
  30. package/dist/client/mock-transport.d.ts +155 -0
  31. package/dist/client/mock-transport.d.ts.map +1 -0
  32. package/dist/client/mock-transport.js +292 -0
  33. package/dist/client/mock-transport.js.map +1 -0
  34. package/dist/client/network-detector.d.ts +65 -0
  35. package/dist/client/network-detector.d.ts.map +1 -0
  36. package/dist/client/network-detector.js +147 -0
  37. package/dist/client/network-detector.js.map +1 -0
  38. package/dist/client/provisioning.d.ts +126 -0
  39. package/dist/client/provisioning.d.ts.map +1 -0
  40. package/dist/client/provisioning.js +125 -0
  41. package/dist/client/provisioning.js.map +1 -0
  42. package/dist/client/signal.d.ts +13 -0
  43. package/dist/client/signal.d.ts.map +1 -0
  44. package/dist/client/signal.js +27 -0
  45. package/dist/client/signal.js.map +1 -0
  46. package/dist/client/sync-engine.d.ts +298 -0
  47. package/dist/client/sync-engine.d.ts.map +1 -0
  48. package/dist/client/sync-engine.js +904 -0
  49. package/dist/client/sync-engine.js.map +1 -0
  50. package/dist/client/synced-edge.d.ts +109 -0
  51. package/dist/client/synced-edge.d.ts.map +1 -0
  52. package/dist/client/synced-edge.js +179 -0
  53. package/dist/client/synced-edge.js.map +1 -0
  54. package/dist/client/synced-offline-edge-types.d.ts +540 -0
  55. package/dist/client/synced-offline-edge-types.d.ts.map +1 -0
  56. package/dist/client/synced-offline-edge-types.js +10 -0
  57. package/dist/client/synced-offline-edge-types.js.map +1 -0
  58. package/dist/client/synced-offline-edge.d.ts +54 -0
  59. package/dist/client/synced-offline-edge.d.ts.map +1 -0
  60. package/dist/client/synced-offline-edge.js +731 -0
  61. package/dist/client/synced-offline-edge.js.map +1 -0
  62. package/dist/client/transport.d.ts +202 -0
  63. package/dist/client/transport.d.ts.map +1 -0
  64. package/dist/client/transport.js +409 -0
  65. package/dist/client/transport.js.map +1 -0
  66. package/dist/client/types.d.ts +622 -0
  67. package/dist/client/types.d.ts.map +1 -0
  68. package/dist/client/types.js +60 -0
  69. package/dist/client/types.js.map +1 -0
  70. package/dist/client/validation.d.ts +61 -0
  71. package/dist/client/validation.d.ts.map +1 -0
  72. package/dist/client/validation.js +57 -0
  73. package/dist/client/validation.js.map +1 -0
  74. package/dist/client/versioning.d.ts +134 -0
  75. package/dist/client/versioning.d.ts.map +1 -0
  76. package/dist/client/versioning.js +304 -0
  77. package/dist/client/versioning.js.map +1 -0
  78. package/dist/index.d.ts +40 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +51 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/persistence/encryption.d.ts +114 -0
  83. package/dist/persistence/encryption.d.ts.map +1 -0
  84. package/dist/persistence/encryption.js +286 -0
  85. package/dist/persistence/encryption.js.map +1 -0
  86. package/dist/persistence/index.d.ts +21 -0
  87. package/dist/persistence/index.d.ts.map +1 -0
  88. package/dist/persistence/index.js +20 -0
  89. package/dist/persistence/index.js.map +1 -0
  90. package/dist/persistence/memory.d.ts +32 -0
  91. package/dist/persistence/memory.d.ts.map +1 -0
  92. package/dist/persistence/memory.js +57 -0
  93. package/dist/persistence/memory.js.map +1 -0
  94. package/dist/persistence/migrations.d.ts +106 -0
  95. package/dist/persistence/migrations.d.ts.map +1 -0
  96. package/dist/persistence/migrations.js +176 -0
  97. package/dist/persistence/migrations.js.map +1 -0
  98. package/dist/persistence/pending-queue.d.ts +109 -0
  99. package/dist/persistence/pending-queue.d.ts.map +1 -0
  100. package/dist/persistence/pending-queue.js +249 -0
  101. package/dist/persistence/pending-queue.js.map +1 -0
  102. package/dist/persistence/pglite.d.ts +72 -0
  103. package/dist/persistence/pglite.d.ts.map +1 -0
  104. package/dist/persistence/pglite.js +126 -0
  105. package/dist/persistence/pglite.js.map +1 -0
  106. package/dist/persistence/quota-manager.d.ts +134 -0
  107. package/dist/persistence/quota-manager.d.ts.map +1 -0
  108. package/dist/persistence/quota-manager.js +242 -0
  109. package/dist/persistence/quota-manager.js.map +1 -0
  110. package/dist/persistence/types.d.ts +54 -0
  111. package/dist/persistence/types.d.ts.map +1 -0
  112. package/dist/persistence/types.js +2 -0
  113. package/dist/persistence/types.js.map +1 -0
  114. package/dist/react/OfflineEdgeProvider.d.ts +91 -0
  115. package/dist/react/OfflineEdgeProvider.d.ts.map +1 -0
  116. package/dist/react/OfflineEdgeProvider.js +127 -0
  117. package/dist/react/OfflineEdgeProvider.js.map +1 -0
  118. package/dist/react/SyncedOfflineEdgeProvider.d.ts +105 -0
  119. package/dist/react/SyncedOfflineEdgeProvider.d.ts.map +1 -0
  120. package/dist/react/SyncedOfflineEdgeProvider.js +138 -0
  121. package/dist/react/SyncedOfflineEdgeProvider.js.map +1 -0
  122. package/dist/react/index.d.ts +50 -0
  123. package/dist/react/index.d.ts.map +1 -0
  124. package/dist/react/index.js +51 -0
  125. package/dist/react/index.js.map +1 -0
  126. package/dist/react/useCollection.d.ts +77 -0
  127. package/dist/react/useCollection.d.ts.map +1 -0
  128. package/dist/react/useCollection.js +113 -0
  129. package/dist/react/useCollection.js.map +1 -0
  130. package/dist/react/useCollectionSyncMode.d.ts +61 -0
  131. package/dist/react/useCollectionSyncMode.d.ts.map +1 -0
  132. package/dist/react/useCollectionSyncMode.js +93 -0
  133. package/dist/react/useCollectionSyncMode.js.map +1 -0
  134. package/dist/react/useConnectionState.d.ts +44 -0
  135. package/dist/react/useConnectionState.d.ts.map +1 -0
  136. package/dist/react/useConnectionState.js +46 -0
  137. package/dist/react/useConnectionState.js.map +1 -0
  138. package/dist/react/useDocumentSyncStatus.d.ts +72 -0
  139. package/dist/react/useDocumentSyncStatus.d.ts.map +1 -0
  140. package/dist/react/useDocumentSyncStatus.js +110 -0
  141. package/dist/react/useDocumentSyncStatus.js.map +1 -0
  142. package/dist/react/useOfflineEdge.d.ts +58 -0
  143. package/dist/react/useOfflineEdge.d.ts.map +1 -0
  144. package/dist/react/useOfflineEdge.js +54 -0
  145. package/dist/react/useOfflineEdge.js.map +1 -0
  146. package/dist/react/usePendingChanges.d.ts +67 -0
  147. package/dist/react/usePendingChanges.d.ts.map +1 -0
  148. package/dist/react/usePendingChanges.js +90 -0
  149. package/dist/react/usePendingChanges.js.map +1 -0
  150. package/dist/react/useRejectedDocuments.d.ts +112 -0
  151. package/dist/react/useRejectedDocuments.d.ts.map +1 -0
  152. package/dist/react/useRejectedDocuments.js +213 -0
  153. package/dist/react/useRejectedDocuments.js.map +1 -0
  154. package/dist/react/useSyncControls.d.ts +96 -0
  155. package/dist/react/useSyncControls.d.ts.map +1 -0
  156. package/dist/react/useSyncControls.js +112 -0
  157. package/dist/react/useSyncControls.js.map +1 -0
  158. package/dist/react/useSyncProgress.d.ts +78 -0
  159. package/dist/react/useSyncProgress.d.ts.map +1 -0
  160. package/dist/react/useSyncProgress.js +90 -0
  161. package/dist/react/useSyncProgress.js.map +1 -0
  162. package/dist/react/useSyncRejected.d.ts +47 -0
  163. package/dist/react/useSyncRejected.d.ts.map +1 -0
  164. package/dist/react/useSyncRejected.js +55 -0
  165. package/dist/react/useSyncRejected.js.map +1 -0
  166. package/dist/react/useSyncStatus.d.ts +56 -0
  167. package/dist/react/useSyncStatus.d.ts.map +1 -0
  168. package/dist/react/useSyncStatus.js +59 -0
  169. package/dist/react/useSyncStatus.js.map +1 -0
  170. package/dist/react/useSyncedOfflineEdge.d.ts +69 -0
  171. package/dist/react/useSyncedOfflineEdge.d.ts.map +1 -0
  172. package/dist/react/useSyncedOfflineEdge.js +65 -0
  173. package/dist/react/useSyncedOfflineEdge.js.map +1 -0
  174. package/dist/service-worker/index.d.ts +7 -0
  175. package/dist/service-worker/index.d.ts.map +1 -0
  176. package/dist/service-worker/index.js +7 -0
  177. package/dist/service-worker/index.js.map +1 -0
  178. package/dist/service-worker/sync-worker.d.ts +230 -0
  179. package/dist/service-worker/sync-worker.d.ts.map +1 -0
  180. package/dist/service-worker/sync-worker.js +471 -0
  181. package/dist/service-worker/sync-worker.js.map +1 -0
  182. package/dist/types.d.ts +6 -0
  183. package/dist/types.d.ts.map +1 -0
  184. package/dist/types.js +3 -0
  185. package/dist/types.js.map +1 -0
  186. package/package.json +95 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/client/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,622 @@
1
+ import type { PersistenceProvider } from '../persistence/types.js';
2
+ /**
3
+ * Tombstone record for deleted documents.
4
+ * Used to track deletions for sync and conflict resolution.
5
+ */
6
+ export interface Tombstone {
7
+ /** The ID of the deleted document */
8
+ documentId: string;
9
+ /** Timestamp when the document was deleted */
10
+ deletedAt: number;
11
+ /** Whether the tombstone has been synced to the server */
12
+ synced: boolean;
13
+ }
14
+ /**
15
+ * Delta containing tombstones to sync.
16
+ */
17
+ export interface TombstoneDelta {
18
+ /** Collection name */
19
+ collection: string;
20
+ /** Tombstones to sync */
21
+ tombstones: Tombstone[];
22
+ }
23
+ /**
24
+ * Remote tombstone received from sync.
25
+ */
26
+ export interface RemoteTombstone {
27
+ /** The ID of the deleted document */
28
+ documentId: string;
29
+ /** Timestamp when the document was deleted */
30
+ deletedAt: number;
31
+ /** Collection name */
32
+ collection: string;
33
+ }
34
+ /**
35
+ * Validation error for a specific field.
36
+ */
37
+ export interface ValidationError {
38
+ /** The field that failed validation */
39
+ field: string;
40
+ /** Human-readable error message */
41
+ message: string;
42
+ }
43
+ /**
44
+ * Result of a validation operation.
45
+ */
46
+ export type ValidationResult = {
47
+ valid: true;
48
+ errors?: never;
49
+ } | {
50
+ valid: false;
51
+ errors: ValidationError[];
52
+ };
53
+ /**
54
+ * Validator function type for a collection.
55
+ * Takes document data (without id) and returns validation result.
56
+ */
57
+ export type ValidatorFn<T extends {
58
+ id: string;
59
+ }> = (doc: Omit<T, 'id'>) => ValidationResult;
60
+ /**
61
+ * Sync priority levels for documents.
62
+ * Higher priority items are synced before lower priority items.
63
+ */
64
+ export declare const SyncPriority: {
65
+ /** High priority - synced first */
66
+ readonly High: "high";
67
+ /** Normal priority - default */
68
+ readonly Normal: "normal";
69
+ /** Low priority - synced last */
70
+ readonly Low: "low";
71
+ };
72
+ export type SyncPriority = typeof SyncPriority[keyof typeof SyncPriority];
73
+ /**
74
+ * Options for insert operations.
75
+ */
76
+ export interface InsertOptions {
77
+ /** Skip validation for trusted sources (default: false) */
78
+ skipValidation?: boolean;
79
+ /** Sync priority for this document (default: normal) */
80
+ priority?: SyncPriority;
81
+ }
82
+ /**
83
+ * Options for update operations.
84
+ */
85
+ export interface UpdateOptions {
86
+ /** Skip validation for trusted sources (default: false) */
87
+ skipValidation?: boolean;
88
+ /** Sync priority for this document (default: normal) */
89
+ priority?: SyncPriority;
90
+ }
91
+ /**
92
+ * Sync status for a document.
93
+ * Tracks the synchronization state between local and server.
94
+ */
95
+ export declare enum SyncStatus {
96
+ /** Document exists only locally, not yet synced */
97
+ Local = "local",
98
+ /** Document is currently being synced to server */
99
+ Syncing = "syncing",
100
+ /** Document is synced with server */
101
+ Synced = "synced",
102
+ /** Sync was rejected by server (e.g., validation error, unique constraint) */
103
+ Rejected = "rejected"
104
+ }
105
+ /**
106
+ * Error codes for sync rejection.
107
+ */
108
+ export declare enum SyncErrorCode {
109
+ /** Server-side unique constraint violation */
110
+ UniqueViolation = "UNIQUE_VIOLATION",
111
+ /** Server-side validation error */
112
+ ValidationError = "VALIDATION_ERROR",
113
+ /** Permission denied */
114
+ PermissionDenied = "PERMISSION_DENIED",
115
+ /** Document not found on server */
116
+ NotFound = "NOT_FOUND",
117
+ /** Generic server error */
118
+ ServerError = "SERVER_ERROR",
119
+ /** Unknown error */
120
+ Unknown = "UNKNOWN"
121
+ }
122
+ /**
123
+ * Detailed sync error information.
124
+ */
125
+ export interface SyncError {
126
+ /** Error code categorizing the failure */
127
+ code: SyncErrorCode;
128
+ /** Field that caused the error (if applicable) */
129
+ field?: string;
130
+ /** Human-readable error message */
131
+ message: string;
132
+ /** Original error from server (if available) */
133
+ originalError?: unknown;
134
+ }
135
+ /**
136
+ * Metadata tracking sync status for a document.
137
+ */
138
+ export interface SyncMetadata {
139
+ /** Current sync status */
140
+ status: SyncStatus;
141
+ /** Error details if status is 'rejected' */
142
+ error?: SyncError;
143
+ /** Timestamp of last sync attempt */
144
+ lastSyncAttempt?: number;
145
+ /** Timestamp of last successful sync */
146
+ lastSynced?: number;
147
+ /** Number of sync retry attempts */
148
+ retryCount?: number;
149
+ }
150
+ /**
151
+ * A document with sync metadata.
152
+ */
153
+ export type SyncedDocument<T> = T & {
154
+ /** Sync metadata (readonly, managed by the SDK) */
155
+ readonly _sync: SyncMetadata;
156
+ };
157
+ /**
158
+ * Configuration for the offline edge client.
159
+ */
160
+ export interface OfflineEdgeConfig {
161
+ /** URL of the dinkd server (e.g., 'nats://localhost:4222') */
162
+ serverUrl: string;
163
+ /** API key for authentication with the server */
164
+ apiKey: string;
165
+ /**
166
+ * Optional list of collection names to sync.
167
+ * - If undefined: all collections are synced (default behavior)
168
+ * - If empty array: no collections are synced initially (add via syncCollection())
169
+ * - If non-empty array: only specified collections are synced
170
+ */
171
+ syncCollections?: string[];
172
+ }
173
+ /**
174
+ * Options for creating an offline edge instance.
175
+ */
176
+ export interface CreateOfflineEdgeOptions {
177
+ /** Persistence provider for offline storage */
178
+ persistence: PersistenceProvider;
179
+ /** Client configuration */
180
+ config: OfflineEdgeConfig;
181
+ }
182
+ /**
183
+ * Connection state enum for tracking sync status.
184
+ */
185
+ export declare enum ConnectionState {
186
+ /** Not connected to server, operating fully offline */
187
+ Offline = "offline",
188
+ /** Attempting to connect to server */
189
+ Connecting = "connecting",
190
+ /** Connected and syncing with server */
191
+ Online = "online",
192
+ /** Connection lost, attempting to reconnect */
193
+ Reconnecting = "reconnecting"
194
+ }
195
+ /**
196
+ * A reactive signal that holds a value and notifies subscribers of changes.
197
+ */
198
+ export interface Signal<T> {
199
+ /** Current value */
200
+ readonly value: T;
201
+ /** Subscribe to value changes. Returns unsubscribe function. */
202
+ subscribe(callback: (value: T) => void): () => void;
203
+ }
204
+ /**
205
+ * Unsubscribe function returned by subscribe methods.
206
+ */
207
+ export type Unsubscribe = () => void;
208
+ /**
209
+ * Event emitted when a document sync is rejected by the server.
210
+ */
211
+ export interface SyncRejectedEvent<T extends {
212
+ id: string;
213
+ }> {
214
+ /** Collection name */
215
+ collection: string;
216
+ /** Document ID that was rejected */
217
+ documentId: string;
218
+ /** The document that failed to sync */
219
+ document: T;
220
+ /** Error details */
221
+ error: SyncError;
222
+ }
223
+ /**
224
+ * Information about a conflict between local and server versions.
225
+ */
226
+ export interface ConflictInfo<T extends {
227
+ id: string;
228
+ }> {
229
+ /** The local version of the document */
230
+ localVersion: T;
231
+ /** The server version of the document */
232
+ serverVersion: T;
233
+ /** Timestamp when the conflict was detected */
234
+ detectedAt: number;
235
+ }
236
+ /**
237
+ * Event emitted when a conflict is detected between local and server versions.
238
+ */
239
+ export interface ConflictDetectedEvent<T extends {
240
+ id: string;
241
+ }> {
242
+ /** Collection name */
243
+ collection: string;
244
+ /** Document ID with conflict */
245
+ documentId: string;
246
+ /** The local version of the document */
247
+ localVersion: T;
248
+ /** The server version of the document */
249
+ serverVersion: T;
250
+ /** Timestamp when the conflict was detected */
251
+ detectedAt: number;
252
+ }
253
+ /**
254
+ * A typed collection for storing and syncing documents.
255
+ */
256
+ export interface Collection<T extends {
257
+ id: string;
258
+ }> {
259
+ /** Collection name */
260
+ readonly name: string;
261
+ /**
262
+ * Set a validator function for the collection.
263
+ * The validator is called before insert/update operations.
264
+ * Pass null to clear the validator.
265
+ * @param validator - Validator function or null to clear
266
+ */
267
+ setValidator(validator: ValidatorFn<T> | null): void;
268
+ /**
269
+ * Insert a new document into the collection.
270
+ * Generates an ID if not provided.
271
+ * Document starts with sync status 'local'.
272
+ * @param doc - Document data without ID
273
+ * @param options - Insert options (e.g., skipValidation)
274
+ * @returns The inserted document with ID and sync metadata
275
+ * @throws CollectionValidationError if validation fails
276
+ */
277
+ insert(doc: Omit<T, 'id'>, options?: InsertOptions): Promise<SyncedDocument<T>>;
278
+ /**
279
+ * Update an existing document.
280
+ * Resets sync status to 'local' for re-sync.
281
+ * @param id - Document ID
282
+ * @param updates - Partial document updates
283
+ * @param options - Update options (e.g., skipValidation)
284
+ * @returns The updated document with sync metadata
285
+ * @throws CollectionValidationError if validation fails
286
+ */
287
+ update(id: string, updates: Partial<Omit<T, 'id'>>, options?: UpdateOptions): Promise<SyncedDocument<T>>;
288
+ /**
289
+ * Delete a document from the collection.
290
+ * @param id - Document ID
291
+ */
292
+ delete(id: string): Promise<void>;
293
+ /**
294
+ * Get a document by ID.
295
+ * @param id - Document ID
296
+ * @returns The document with sync metadata or null if not found
297
+ */
298
+ get(id: string): Promise<SyncedDocument<T> | null>;
299
+ /**
300
+ * List all documents in the collection.
301
+ * @returns Array of all documents with sync metadata
302
+ */
303
+ list(): Promise<SyncedDocument<T>[]>;
304
+ /**
305
+ * Subscribe to collection changes.
306
+ * Callback is called immediately with current documents and on every change.
307
+ * @param callback - Function called with updated documents array
308
+ * @returns Unsubscribe function
309
+ */
310
+ subscribe(callback: (docs: SyncedDocument<T>[]) => void): Unsubscribe;
311
+ /**
312
+ * Subscribe to sync rejection events.
313
+ * Called when a document fails to sync due to server-side validation.
314
+ * @param callback - Function called when sync is rejected
315
+ * @returns Unsubscribe function
316
+ */
317
+ onSyncRejected(callback: (event: SyncRejectedEvent<T>) => void): Unsubscribe;
318
+ /**
319
+ * Get the sync status of a specific document.
320
+ * @param id - Document ID
321
+ * @returns Sync metadata or null if document not found
322
+ */
323
+ getSyncStatus(id: string): Promise<SyncMetadata | null>;
324
+ /**
325
+ * Retry syncing a rejected document.
326
+ * Useful after user has corrected the issue.
327
+ * @param id - Document ID
328
+ */
329
+ retrySync(id: string): Promise<void>;
330
+ /**
331
+ * Mark a document as synced (for internal/testing use).
332
+ * @internal
333
+ */
334
+ _markSynced(id: string): Promise<void>;
335
+ /**
336
+ * Mark a document as rejected (for internal/testing use).
337
+ * @internal
338
+ */
339
+ _markRejected(id: string, error: SyncError): Promise<void>;
340
+ /**
341
+ * Mark a document as currently syncing (for internal/testing use).
342
+ * @internal
343
+ */
344
+ _markSyncing(id: string): Promise<void>;
345
+ /**
346
+ * Get conflict information for a document.
347
+ * @param id - Document ID
348
+ * @returns Conflict info or null if no conflict exists
349
+ */
350
+ getConflict(id: string): Promise<ConflictInfo<T> | null>;
351
+ /**
352
+ * Resolve a conflict by choosing local or server version.
353
+ * @param id - Document ID
354
+ * @param choice - 'local' to keep local version, 'server' to keep server version
355
+ */
356
+ resolveConflict(id: string, choice: 'local' | 'server'): Promise<void>;
357
+ /**
358
+ * Keep both versions by creating a copy of the server version.
359
+ * The original document keeps the local version.
360
+ * @param id - Document ID
361
+ * @returns The ID of the newly created copy (with server version)
362
+ */
363
+ keepBoth(id: string): Promise<string>;
364
+ /**
365
+ * Check if a document has a conflict.
366
+ * @param id - Document ID
367
+ * @returns True if conflict exists
368
+ */
369
+ hasConflict(id: string): Promise<boolean>;
370
+ /**
371
+ * List all conflicts in the collection.
372
+ * @returns Array of conflict info objects
373
+ */
374
+ listConflicts(): Promise<ConflictInfo<T>[]>;
375
+ /**
376
+ * Subscribe to conflict detection events.
377
+ * @param callback - Function called when a conflict is detected
378
+ * @returns Unsubscribe function
379
+ */
380
+ onConflictDetected(callback: (event: ConflictDetectedEvent<T>) => void): Unsubscribe;
381
+ /**
382
+ * Set a conflict for a document (for internal/testing use).
383
+ * @internal
384
+ */
385
+ _setConflict(id: string, conflict: ConflictInfo<T>): Promise<void>;
386
+ /**
387
+ * Get the Yjs binary update for a document (for CRDT sync).
388
+ * @param id - Document ID
389
+ * @returns The Yjs binary update or null if document not found
390
+ */
391
+ getYjsUpdate(id: string): Promise<Uint8Array | null>;
392
+ /**
393
+ * Get the state vector for a document (for delta sync).
394
+ * @param id - Document ID
395
+ * @returns The state vector or null if document not found
396
+ */
397
+ getStateVector(id: string): Promise<Uint8Array | null>;
398
+ /**
399
+ * Get a delta Yjs update since a given state vector.
400
+ * This returns only the changes since the provided state vector,
401
+ * enabling efficient incremental sync.
402
+ * @param id - Document ID
403
+ * @param sinceStateVector - State vector to compute delta from
404
+ * @returns The delta update or null if document not found
405
+ */
406
+ getDeltaUpdate(id: string, sinceStateVector: Uint8Array): Promise<Uint8Array | null>;
407
+ /**
408
+ * Apply an external Yjs update to merge concurrent changes.
409
+ * @param id - Document ID
410
+ * @param update - Yjs binary update from another edge
411
+ * @param initialDoc - Optional initial document data when creating new doc from update
412
+ */
413
+ applyUpdate(id: string, update: Uint8Array, initialDoc?: Omit<T, 'id'>): Promise<void>;
414
+ /**
415
+ * Get a tombstone record for a deleted document.
416
+ * @param id - Document ID
417
+ * @returns Tombstone record or null if not found
418
+ */
419
+ getTombstone(id: string): Promise<Tombstone | null>;
420
+ /**
421
+ * List all tombstones in the collection.
422
+ * @returns Array of tombstone records
423
+ */
424
+ listTombstones(): Promise<Tombstone[]>;
425
+ /**
426
+ * Get tombstones that need to be synced (unsynced tombstones).
427
+ * @returns Delta containing unsynced tombstones
428
+ */
429
+ getTombstoneDelta(): Promise<TombstoneDelta>;
430
+ /**
431
+ * Apply a tombstone from a remote sync.
432
+ * Deletes the document if the tombstone is newer than the document's last update.
433
+ * @param tombstone - Remote tombstone to apply
434
+ */
435
+ applyTombstone(tombstone: RemoteTombstone): Promise<void>;
436
+ /**
437
+ * Apply an update with a specific timestamp for conflict resolution.
438
+ * Won't resurrect a document if there's a newer tombstone.
439
+ * @param id - Document ID
440
+ * @param updates - Partial document updates
441
+ * @param timestamp - Timestamp of the update
442
+ */
443
+ applyUpdateWithTimestamp(id: string, updates: Partial<Omit<T, 'id'>>, timestamp: number): Promise<void>;
444
+ /**
445
+ * Mark a tombstone as synced (for internal/sync engine use).
446
+ * @internal
447
+ */
448
+ _markTombstoneSynced(id: string): Promise<void>;
449
+ /**
450
+ * Get the tombstone retention period in milliseconds.
451
+ * @returns Retention period in ms
452
+ */
453
+ getTombstoneRetention(): number;
454
+ /**
455
+ * Set the tombstone retention period.
456
+ * @param retention - Retention period in ms
457
+ */
458
+ setTombstoneRetention(retention: number): void;
459
+ /**
460
+ * Clean up old tombstones that are past the retention period and have been synced.
461
+ */
462
+ cleanupTombstones(): Promise<void>;
463
+ /**
464
+ * Clear all data from the collection (in-memory and persisted).
465
+ * Used by selective sync when unsyncing a collection.
466
+ * @internal
467
+ */
468
+ _clear(): Promise<void>;
469
+ /**
470
+ * Get the sync priority of a document.
471
+ * @param id - Document ID
472
+ * @returns The sync priority or null if document not found
473
+ */
474
+ getPriority(id: string): Promise<SyncPriority | null>;
475
+ /**
476
+ * Set the sync priority of a document.
477
+ * @param id - Document ID
478
+ * @param priority - New sync priority
479
+ * @throws Error if document not found
480
+ */
481
+ setPriority(id: string, priority: SyncPriority): Promise<void>;
482
+ /**
483
+ * Set sync priority for all documents in the collection.
484
+ * @param priority - New sync priority for all documents
485
+ */
486
+ setCollectionPriority(priority: SyncPriority): Promise<void>;
487
+ /**
488
+ * Query documents with filtering, sorting, and pagination.
489
+ * All filter conditions are ANDed together.
490
+ * @param options - Query options including filter, orderBy, limit, offset
491
+ * @returns Array of matching documents with sync metadata
492
+ */
493
+ query(options: QueryOptions<T>): Promise<SyncedDocument<T>[]>;
494
+ }
495
+ /**
496
+ * Filter operators for query conditions.
497
+ */
498
+ export interface FilterOperators<T> {
499
+ /** Equal to */
500
+ eq?: T;
501
+ /** Not equal to */
502
+ ne?: T;
503
+ /** Greater than */
504
+ gt?: T;
505
+ /** Less than */
506
+ lt?: T;
507
+ /** Greater than or equal to */
508
+ gte?: T;
509
+ /** Less than or equal to */
510
+ lte?: T;
511
+ /** Value is in array */
512
+ in?: T[];
513
+ /** Value is not in array */
514
+ notIn?: T[];
515
+ /** Array field contains value (for array fields) */
516
+ contains?: T extends (infer U)[] ? U : never;
517
+ }
518
+ /**
519
+ * Filter condition for a document field.
520
+ * Maps field names to filter operators.
521
+ */
522
+ export type QueryFilter<T extends {
523
+ id: string;
524
+ }> = {
525
+ [K in keyof Omit<T, 'id'>]?: FilterOperators<T[K]>;
526
+ };
527
+ /**
528
+ * Sort direction for query results.
529
+ */
530
+ export type SortDirection = 'asc' | 'desc';
531
+ /**
532
+ * Order by specification for sorting query results.
533
+ */
534
+ export interface OrderBy<T extends {
535
+ id: string;
536
+ }> {
537
+ /** Field to sort by */
538
+ field: keyof Omit<T, 'id'>;
539
+ /** Sort direction (default: 'asc') */
540
+ direction?: SortDirection;
541
+ }
542
+ /**
543
+ * Query options for filtering, sorting, and paginating documents.
544
+ */
545
+ export interface QueryOptions<T extends {
546
+ id: string;
547
+ }> {
548
+ /** Filter conditions (all conditions are ANDed together) */
549
+ filter?: QueryFilter<T>;
550
+ /** Sort order specification */
551
+ orderBy?: OrderBy<T>;
552
+ /** Maximum number of results to return */
553
+ limit?: number;
554
+ /** Number of results to skip */
555
+ offset?: number;
556
+ }
557
+ /**
558
+ * Callback type for sync collections change events.
559
+ */
560
+ export type SyncCollectionsChangeCallback = (collection: string, syncing: boolean) => void;
561
+ /**
562
+ * The offline edge client interface.
563
+ */
564
+ export interface OfflineEdgeClient {
565
+ /**
566
+ * Get or create a typed collection.
567
+ * @param name - Collection name
568
+ * @returns A typed collection instance
569
+ */
570
+ collection<T extends {
571
+ id: string;
572
+ }>(name: string): Collection<T>;
573
+ /**
574
+ * Reactive signal tracking the current connection state.
575
+ */
576
+ readonly connectionState: Signal<ConnectionState>;
577
+ /**
578
+ * Check if a collection is being synced.
579
+ * @param name - Collection name
580
+ * @returns true if the collection is in the sync list
581
+ */
582
+ isSyncing(name: string): boolean;
583
+ /**
584
+ * Add a collection to the sync list.
585
+ * If the collection already exists locally, its data will be queued for sync.
586
+ * @param name - Collection name to start syncing
587
+ */
588
+ syncCollection(name: string): void;
589
+ /**
590
+ * Remove a collection from the sync list and clean up its local data.
591
+ * @param name - Collection name to stop syncing
592
+ */
593
+ unsyncCollection(name: string): Promise<void>;
594
+ /**
595
+ * Get the list of currently synced collection names.
596
+ * @returns Array of collection names that are being synced
597
+ */
598
+ getSyncedCollections(): string[];
599
+ /**
600
+ * Subscribe to sync collections changes.
601
+ * Called when a collection is added to or removed from sync.
602
+ * @param callback - Function called with collection name and syncing status
603
+ * @returns Unsubscribe function
604
+ */
605
+ onSyncCollectionsChange(callback: SyncCollectionsChangeCallback): Unsubscribe;
606
+ }
607
+ /**
608
+ * Lazy-initialized offline edge instance.
609
+ */
610
+ export interface LazyOfflineEdge {
611
+ /**
612
+ * Initialize the client. Must be called before get().
613
+ * Safe to call multiple times.
614
+ */
615
+ init(): Promise<void>;
616
+ /**
617
+ * Get the initialized client.
618
+ * @throws Error if init() has not been called
619
+ */
620
+ get(): OfflineEdgeClient;
621
+ }
622
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"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"}