@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":"collection.js","sourceRoot":"","sources":["../../src/client/collection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Compression utilities for binary CRDT updates.
3
+ *
4
+ * Uses a simple but effective compression scheme suitable for CRDT data.
5
+ * The compression is optional and configurable via the sync engine config.
6
+ */
7
+ /**
8
+ * Compression configuration
9
+ */
10
+ export interface CompressionConfig {
11
+ /** Enable compression */
12
+ enabled: boolean;
13
+ /** Minimum size in bytes before compression is applied (default: 1024) */
14
+ threshold?: number;
15
+ }
16
+ /**
17
+ * Default compression threshold (1KB)
18
+ */
19
+ export declare const DEFAULT_COMPRESSION_THRESHOLD = 1024;
20
+ /**
21
+ * Check if data is compressed (has our magic header).
22
+ * @param data - Data to check
23
+ * @returns true if data appears to be compressed
24
+ */
25
+ export declare function isCompressed(data: Uint8Array): boolean;
26
+ /**
27
+ * Simple RLE (Run-Length Encoding) compression for binary data.
28
+ * Effective for CRDT data which often has repeated patterns.
29
+ *
30
+ * Format: [MAGIC][4-byte original length][compressed data]
31
+ * Compressed data: sequences of [count][byte] for runs, or [0][count][bytes...] for literals
32
+ *
33
+ * @param data - Data to compress
34
+ * @returns Compressed data with magic header
35
+ */
36
+ export declare function compressData(data: Uint8Array): Uint8Array;
37
+ /**
38
+ * Decompress data that was compressed with compressData.
39
+ * @param data - Compressed data with magic header
40
+ * @returns Original uncompressed data
41
+ */
42
+ export declare function decompressData(data: Uint8Array): Uint8Array;
43
+ /**
44
+ * Conditionally compress data based on configuration.
45
+ * @param data - Data to potentially compress
46
+ * @param config - Compression configuration
47
+ * @returns Compressed data if above threshold, original data otherwise
48
+ */
49
+ export declare function maybeCompress(data: Uint8Array, config?: CompressionConfig): Uint8Array;
50
+ /**
51
+ * Decompress data if it's compressed, otherwise return as-is.
52
+ * @param data - Potentially compressed data
53
+ * @returns Decompressed data
54
+ */
55
+ export declare function maybeDecompress(data: Uint8Array): Uint8Array;
56
+ //# sourceMappingURL=compression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/client/compression.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,6BAA6B,OAAO,CAAC;AAElD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAUtD;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAqEzD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAyC3D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,UAAU,CAkBtF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAK5D"}
@@ -0,0 +1,173 @@
1
+ /**
2
+ * Compression utilities for binary CRDT updates.
3
+ *
4
+ * Uses a simple but effective compression scheme suitable for CRDT data.
5
+ * The compression is optional and configurable via the sync engine config.
6
+ */
7
+ // Magic bytes to identify compressed data
8
+ const COMPRESSION_MAGIC = new Uint8Array([0x44, 0x4E, 0x4B, 0x5A]); // "DNKZ"
9
+ /**
10
+ * Default compression threshold (1KB)
11
+ */
12
+ export const DEFAULT_COMPRESSION_THRESHOLD = 1024;
13
+ /**
14
+ * Check if data is compressed (has our magic header).
15
+ * @param data - Data to check
16
+ * @returns true if data appears to be compressed
17
+ */
18
+ export function isCompressed(data) {
19
+ if (data.length < COMPRESSION_MAGIC.length) {
20
+ return false;
21
+ }
22
+ for (let i = 0; i < COMPRESSION_MAGIC.length; i++) {
23
+ if (data[i] !== COMPRESSION_MAGIC[i]) {
24
+ return false;
25
+ }
26
+ }
27
+ return true;
28
+ }
29
+ /**
30
+ * Simple RLE (Run-Length Encoding) compression for binary data.
31
+ * Effective for CRDT data which often has repeated patterns.
32
+ *
33
+ * Format: [MAGIC][4-byte original length][compressed data]
34
+ * Compressed data: sequences of [count][byte] for runs, or [0][count][bytes...] for literals
35
+ *
36
+ * @param data - Data to compress
37
+ * @returns Compressed data with magic header
38
+ */
39
+ export function compressData(data) {
40
+ if (data.length === 0) {
41
+ // Return just magic + length (0) for empty data
42
+ const result = new Uint8Array(COMPRESSION_MAGIC.length + 4);
43
+ result.set(COMPRESSION_MAGIC, 0);
44
+ // Length is 0, already zeroed
45
+ return result;
46
+ }
47
+ const compressed = [];
48
+ let i = 0;
49
+ while (i < data.length) {
50
+ // Check for a run of same bytes
51
+ let runLength = 1;
52
+ while (i + runLength < data.length &&
53
+ data[i + runLength] === data[i] &&
54
+ runLength < 255) {
55
+ runLength++;
56
+ }
57
+ if (runLength >= 4) {
58
+ // Encode as run: [runLength][byte]
59
+ compressed.push(runLength);
60
+ compressed.push(data[i]);
61
+ i += runLength;
62
+ }
63
+ else {
64
+ // Collect literals until we find a run or reach limit
65
+ const literals = [];
66
+ while (i < data.length && literals.length < 127) {
67
+ // Check if starting a run
68
+ let nextRunLength = 1;
69
+ while (i + nextRunLength < data.length &&
70
+ data[i + nextRunLength] === data[i] &&
71
+ nextRunLength < 255) {
72
+ nextRunLength++;
73
+ }
74
+ if (nextRunLength >= 4) {
75
+ break; // Start of a run, stop collecting literals
76
+ }
77
+ literals.push(data[i]);
78
+ i++;
79
+ }
80
+ if (literals.length > 0) {
81
+ // Encode as literals: [0][count][bytes...]
82
+ compressed.push(0);
83
+ compressed.push(literals.length);
84
+ compressed.push(...literals);
85
+ }
86
+ }
87
+ }
88
+ // Build result with header
89
+ const result = new Uint8Array(COMPRESSION_MAGIC.length + 4 + compressed.length);
90
+ result.set(COMPRESSION_MAGIC, 0);
91
+ // Store original length as 4 bytes (big-endian)
92
+ const lengthOffset = COMPRESSION_MAGIC.length;
93
+ result[lengthOffset] = (data.length >> 24) & 0xFF;
94
+ result[lengthOffset + 1] = (data.length >> 16) & 0xFF;
95
+ result[lengthOffset + 2] = (data.length >> 8) & 0xFF;
96
+ result[lengthOffset + 3] = data.length & 0xFF;
97
+ result.set(new Uint8Array(compressed), COMPRESSION_MAGIC.length + 4);
98
+ return result;
99
+ }
100
+ /**
101
+ * Decompress data that was compressed with compressData.
102
+ * @param data - Compressed data with magic header
103
+ * @returns Original uncompressed data
104
+ */
105
+ export function decompressData(data) {
106
+ if (!isCompressed(data)) {
107
+ return data; // Not compressed, return as-is
108
+ }
109
+ // Read original length
110
+ const lengthOffset = COMPRESSION_MAGIC.length;
111
+ const originalLength = (data[lengthOffset] << 24) |
112
+ (data[lengthOffset + 1] << 16) |
113
+ (data[lengthOffset + 2] << 8) |
114
+ data[lengthOffset + 3];
115
+ if (originalLength === 0) {
116
+ return new Uint8Array(0);
117
+ }
118
+ const result = new Uint8Array(originalLength);
119
+ let resultIndex = 0;
120
+ let dataIndex = COMPRESSION_MAGIC.length + 4;
121
+ while (dataIndex < data.length && resultIndex < originalLength) {
122
+ const marker = data[dataIndex++];
123
+ if (marker === 0) {
124
+ // Literals: [0][count][bytes...]
125
+ const count = data[dataIndex++];
126
+ for (let i = 0; i < count && resultIndex < originalLength; i++) {
127
+ result[resultIndex++] = data[dataIndex++];
128
+ }
129
+ }
130
+ else {
131
+ // Run: [count][byte]
132
+ const count = marker;
133
+ const byte = data[dataIndex++];
134
+ for (let i = 0; i < count && resultIndex < originalLength; i++) {
135
+ result[resultIndex++] = byte;
136
+ }
137
+ }
138
+ }
139
+ return result;
140
+ }
141
+ /**
142
+ * Conditionally compress data based on configuration.
143
+ * @param data - Data to potentially compress
144
+ * @param config - Compression configuration
145
+ * @returns Compressed data if above threshold, original data otherwise
146
+ */
147
+ export function maybeCompress(data, config) {
148
+ if (!config?.enabled) {
149
+ return data;
150
+ }
151
+ const threshold = config.threshold ?? DEFAULT_COMPRESSION_THRESHOLD;
152
+ if (data.length < threshold) {
153
+ return data;
154
+ }
155
+ const compressed = compressData(data);
156
+ // Only use compressed version if it's actually smaller
157
+ if (compressed.length < data.length) {
158
+ return compressed;
159
+ }
160
+ return data;
161
+ }
162
+ /**
163
+ * Decompress data if it's compressed, otherwise return as-is.
164
+ * @param data - Potentially compressed data
165
+ * @returns Decompressed data
166
+ */
167
+ export function maybeDecompress(data) {
168
+ if (isCompressed(data)) {
169
+ return decompressData(data);
170
+ }
171
+ return data;
172
+ }
173
+ //# sourceMappingURL=compression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compression.js","sourceRoot":"","sources":["../../src/client/compression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { YjsDocument } from './yjs-doc.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/crdt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { YjsDocument } from './yjs-doc.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/crdt/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * YjsDocument - A wrapper around Yjs Y.Doc for CRDT operations.
3
+ *
4
+ * Provides a simple key-value interface for storing and syncing document fields
5
+ * using Yjs CRDTs for conflict-free merging.
6
+ */
7
+ import * as Y from 'yjs';
8
+ /**
9
+ * A wrapper around Yjs Y.Doc that provides a simple key-value interface
10
+ * for storing and syncing document fields.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const doc = new YjsDocument();
15
+ * doc.set('title', 'My Document');
16
+ * doc.set('count', 42);
17
+ *
18
+ * // Encode state for syncing
19
+ * const update = doc.encodeStateAsUpdate();
20
+ *
21
+ * // Apply update to another document
22
+ * const doc2 = new YjsDocument();
23
+ * doc2.applyUpdate(update);
24
+ * console.log(doc2.get('title')); // 'My Document'
25
+ * ```
26
+ */
27
+ export declare class YjsDocument {
28
+ private readonly doc;
29
+ private readonly fields;
30
+ /**
31
+ * Create a new YjsDocument.
32
+ * @param guid - Optional unique identifier for the document
33
+ */
34
+ constructor(guid?: string);
35
+ /**
36
+ * Set a field value.
37
+ * @param field - Field name
38
+ * @param value - Value to set (primitives, objects, or arrays)
39
+ */
40
+ set<T>(field: string, value: T): void;
41
+ /**
42
+ * Get a field value.
43
+ * @param field - Field name
44
+ * @returns The field value, or undefined if not set
45
+ */
46
+ get<T>(field: string): T | undefined;
47
+ /**
48
+ * Delete a field.
49
+ * @param field - Field name to delete
50
+ */
51
+ delete(field: string): void;
52
+ /**
53
+ * Get the current state vector of the document.
54
+ * State vectors are used for efficient delta synchronization.
55
+ * @returns Binary state vector
56
+ */
57
+ getStateVector(): Uint8Array;
58
+ /**
59
+ * Encode the document state as a binary update.
60
+ * @param stateVector - Optional state vector to encode changes since
61
+ * @returns Binary update that can be applied to other documents
62
+ */
63
+ encodeStateAsUpdate(stateVector?: Uint8Array): Uint8Array;
64
+ /**
65
+ * Apply a binary update to this document.
66
+ * @param update - Binary update from another document
67
+ * @param origin - Optional origin identifier for the update
68
+ */
69
+ applyUpdate(update: Uint8Array, origin?: string): void;
70
+ /**
71
+ * Destroy the document and release resources.
72
+ */
73
+ destroy(): void;
74
+ /**
75
+ * Get the underlying Y.Doc instance.
76
+ * @returns The underlying Yjs document
77
+ */
78
+ getYDoc(): Y.Doc;
79
+ /**
80
+ * Merge two YjsDocuments into a new document.
81
+ * Both documents' states are combined using CRDT merge semantics.
82
+ * @param doc1 - First document
83
+ * @param doc2 - Second document
84
+ * @returns A new merged document
85
+ */
86
+ static merge(doc1: YjsDocument, doc2: YjsDocument): YjsDocument;
87
+ }
88
+ //# sourceMappingURL=yjs-doc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yjs-doc.d.ts","sourceRoot":"","sources":["../../../src/client/crdt/yjs-doc.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAQ;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IAExC;;;OAGG;gBACS,IAAI,CAAC,EAAE,MAAM;IAKzB;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAIrC;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAYpC;;;OAGG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI3B;;;;OAIG;IACH,cAAc,IAAI,UAAU;IAI5B;;;;OAIG;IACH,mBAAmB,CAAC,WAAW,CAAC,EAAE,UAAU,GAAG,UAAU;IAOzD;;;;OAIG;IACH,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAItD;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;;OAGG;IACH,OAAO,IAAI,CAAC,CAAC,GAAG;IAIhB;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,WAAW;CAMhE"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * YjsDocument - A wrapper around Yjs Y.Doc for CRDT operations.
3
+ *
4
+ * Provides a simple key-value interface for storing and syncing document fields
5
+ * using Yjs CRDTs for conflict-free merging.
6
+ */
7
+ import * as Y from 'yjs';
8
+ /**
9
+ * A wrapper around Yjs Y.Doc that provides a simple key-value interface
10
+ * for storing and syncing document fields.
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * const doc = new YjsDocument();
15
+ * doc.set('title', 'My Document');
16
+ * doc.set('count', 42);
17
+ *
18
+ * // Encode state for syncing
19
+ * const update = doc.encodeStateAsUpdate();
20
+ *
21
+ * // Apply update to another document
22
+ * const doc2 = new YjsDocument();
23
+ * doc2.applyUpdate(update);
24
+ * console.log(doc2.get('title')); // 'My Document'
25
+ * ```
26
+ */
27
+ export class YjsDocument {
28
+ doc;
29
+ fields;
30
+ /**
31
+ * Create a new YjsDocument.
32
+ * @param guid - Optional unique identifier for the document
33
+ */
34
+ constructor(guid) {
35
+ this.doc = new Y.Doc({ guid });
36
+ this.fields = this.doc.getMap('fields');
37
+ }
38
+ /**
39
+ * Set a field value.
40
+ * @param field - Field name
41
+ * @param value - Value to set (primitives, objects, or arrays)
42
+ */
43
+ set(field, value) {
44
+ this.fields.set(field, value);
45
+ }
46
+ /**
47
+ * Get a field value.
48
+ * @param field - Field name
49
+ * @returns The field value, or undefined if not set
50
+ */
51
+ get(field) {
52
+ const value = this.fields.get(field);
53
+ if (value === undefined) {
54
+ return undefined;
55
+ }
56
+ // Handle Y.Map and Y.Array by converting to JSON
57
+ if (value instanceof Y.Map || value instanceof Y.Array) {
58
+ return value.toJSON();
59
+ }
60
+ return value;
61
+ }
62
+ /**
63
+ * Delete a field.
64
+ * @param field - Field name to delete
65
+ */
66
+ delete(field) {
67
+ this.fields.delete(field);
68
+ }
69
+ /**
70
+ * Get the current state vector of the document.
71
+ * State vectors are used for efficient delta synchronization.
72
+ * @returns Binary state vector
73
+ */
74
+ getStateVector() {
75
+ return Y.encodeStateVector(this.doc);
76
+ }
77
+ /**
78
+ * Encode the document state as a binary update.
79
+ * @param stateVector - Optional state vector to encode changes since
80
+ * @returns Binary update that can be applied to other documents
81
+ */
82
+ encodeStateAsUpdate(stateVector) {
83
+ if (stateVector) {
84
+ return Y.encodeStateAsUpdateV2(this.doc, stateVector);
85
+ }
86
+ return Y.encodeStateAsUpdateV2(this.doc);
87
+ }
88
+ /**
89
+ * Apply a binary update to this document.
90
+ * @param update - Binary update from another document
91
+ * @param origin - Optional origin identifier for the update
92
+ */
93
+ applyUpdate(update, origin) {
94
+ Y.applyUpdateV2(this.doc, update, origin);
95
+ }
96
+ /**
97
+ * Destroy the document and release resources.
98
+ */
99
+ destroy() {
100
+ this.doc.destroy();
101
+ }
102
+ /**
103
+ * Get the underlying Y.Doc instance.
104
+ * @returns The underlying Yjs document
105
+ */
106
+ getYDoc() {
107
+ return this.doc;
108
+ }
109
+ /**
110
+ * Merge two YjsDocuments into a new document.
111
+ * Both documents' states are combined using CRDT merge semantics.
112
+ * @param doc1 - First document
113
+ * @param doc2 - Second document
114
+ * @returns A new merged document
115
+ */
116
+ static merge(doc1, doc2) {
117
+ const merged = new YjsDocument();
118
+ merged.applyUpdate(doc1.encodeStateAsUpdate());
119
+ merged.applyUpdate(doc2.encodeStateAsUpdate());
120
+ return merged;
121
+ }
122
+ }
123
+ //# sourceMappingURL=yjs-doc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yjs-doc.js","sourceRoot":"","sources":["../../../src/client/crdt/yjs-doc.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,OAAO,WAAW;IACL,GAAG,CAAQ;IACX,MAAM,CAAiB;IAExC;;;OAGG;IACH,YAAY,IAAa;QACvB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAI,KAAa,EAAE,KAAQ;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,GAAG,CAAI,KAAa;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,iDAAiD;QACjD,IAAI,KAAK,YAAY,CAAC,CAAC,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC;YACvD,OAAO,KAAK,CAAC,MAAM,EAAO,CAAC;QAC7B,CAAC;QACD,OAAO,KAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAa;QAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,cAAc;QACZ,OAAO,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,mBAAmB,CAAC,WAAwB;QAC1C,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,MAAkB,EAAE,MAAe;QAC7C,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,IAAiB,EAAE,IAAiB;QAC/C,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QACjC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC/C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAC/C,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,66 @@
1
+ import type { CreateOfflineEdgeOptions, LazyOfflineEdge } from './types.js';
2
+ export { ConnectionState, SyncStatus, SyncErrorCode, SyncPriority, type Collection, type OfflineEdgeClient, type OfflineEdgeConfig, type CreateOfflineEdgeOptions, type LazyOfflineEdge, type Signal, type Unsubscribe, type SyncedDocument, type SyncMetadata, type SyncError, type SyncRejectedEvent, type ConflictInfo, type ConflictDetectedEvent, type ValidationError, type ValidationResult, type ValidatorFn, type InsertOptions, type UpdateOptions, type SyncCollectionsChangeCallback, type QueryOptions, type QueryFilter, type FilterOperators, type OrderBy, type SortDirection, } from './types.js';
3
+ export { CollectionValidationError, createZodValidator, type ZodLikeSchema, } from './validation.js';
4
+ /**
5
+ * Factory for creating offline-first edge clients.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { offlineEdge, ConnectionState } from '@fatagnus/dink-sync';
10
+ * import { MemoryPersistence } from '@fatagnus/dink-sync/persistence';
11
+ *
12
+ * // Create the edge instance
13
+ * const edge = offlineEdge.create({
14
+ * persistence: new MemoryPersistence(),
15
+ * config: {
16
+ * serverUrl: 'nats://localhost:4222',
17
+ * apiKey: 'your-api-key',
18
+ * },
19
+ * });
20
+ *
21
+ * // Initialize (loads persisted data)
22
+ * await edge.init();
23
+ *
24
+ * // Get the client
25
+ * const client = edge.get();
26
+ *
27
+ * // Use typed collections
28
+ * interface Task {
29
+ * id: string;
30
+ * title: string;
31
+ * completed: boolean;
32
+ * }
33
+ *
34
+ * const tasks = client.collection<Task>('tasks');
35
+ * const task = await tasks.insert({ title: 'Buy milk', completed: false });
36
+ *
37
+ * // Subscribe to changes
38
+ * tasks.subscribe((docs) => {
39
+ * console.log('Tasks updated:', docs);
40
+ * });
41
+ *
42
+ * // Check connection state
43
+ * client.connectionState.subscribe((state) => {
44
+ * console.log('Connection state:', state);
45
+ * });
46
+ * ```
47
+ */
48
+ export declare const offlineEdge: {
49
+ /**
50
+ * Create a new offline edge instance.
51
+ *
52
+ * @param options - Creation options including persistence and config
53
+ * @returns A lazy-initialized edge instance
54
+ */
55
+ create(options: CreateOfflineEdgeOptions): LazyOfflineEdge;
56
+ };
57
+ export { createSyncEngine, ConnectionState as SyncConnectionState, DEFAULT_DEBOUNCE_MS, DEFAULT_MAX_RETRIES, DEFAULT_BATCH_SIZE, SyncRejectionCode, type SyncEngine, type SyncEngineConfig, type DocumentActor, type Unsubscribe as SyncUnsubscribe, type SyncStartedEvent, type SyncCompleteEvent, type SyncErrorEvent, type SyncRejectedEvent as SyncEngineRejectedEvent, type SyncRejectionError, type RetryScheduledEvent, type SyncFailedEvent, type LocalChangesDiscardedEvent, type ForcePushEvent, type ForcePushResult, } from './sync-engine.js';
58
+ export { createNatsTransport, NatsTransport, type Transport, type NatsTransportConfig, type TransportState, type SyncChange, type SyncChange as TransportSyncChange, type SyncUpdate, type SyncUpdate as TransportSyncUpdate, type SyncResponse, type SyncResponse as TransportSyncResponse, type SyncBatch, type SyncBatch as TransportSyncBatch, } from './transport.js';
59
+ export { createMockTransport, MockTransport, type MockTransportConfig, } from './mock-transport.js';
60
+ export { createNetworkDetector, createBrowserNetworkDetector, createNodeNetworkDetector, NetworkState, type NetworkDetector, type NodeNetworkDetector, type NetworkStateCallback, type NodeNetworkDetectorConfig, } from './network-detector.js';
61
+ export { YjsDocument } from './crdt/index.js';
62
+ export { AttachmentManager, AttachmentStorage, DownloadPolicy, type Attachment, type AttachmentMetadata, type AttachmentConfig, type UploadOptions, type UploadProgress, type UploadResult, type CacheStats, } from './attachment.js';
63
+ export { createAdminClient, readAdminKeyWithRetry, type AdminClient, type AdminClientConfig, type CreateAppOptions, type CreateAppResult, type CreateEdgeKeyOptions, type CreateEdgeKeyResult, } from './provisioning.js';
64
+ export { type SyncMode, type SyncConfigMap, type BeforeSyncContext, type AfterSyncContext, type SyncLifecycleHooks, type SyncedOfflineEdgeConfig, type SyncedOfflineCollection, type SyncedOfflineEdge, } from './synced-offline-edge-types.js';
65
+ export { createSyncedOfflineEdge, type CreateSyncedOfflineEdgeOptions, } from './synced-offline-edge.js';
66
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAIV,wBAAwB,EACxB,eAAe,EAQhB,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,eAAe,EACf,UAAU,EACV,aAAa,EACb,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,MAAM,EACX,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,6BAA6B,EAClC,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,OAAO,EACZ,KAAK,aAAa,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,yBAAyB,EACzB,kBAAkB,EAClB,KAAK,aAAa,GACnB,MAAM,iBAAiB,CAAC;AA4JzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2CG;AACH,eAAO,MAAM,WAAW;IACtB;;;;;OAKG;oBACa,wBAAwB,GAAG,eAAe;CAwB3D,CAAC;AAGF,OAAO,EACL,gBAAgB,EAChB,eAAe,IAAI,mBAAmB,EACtC,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,WAAW,IAAI,eAAe,EACnC,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,iBAAiB,IAAI,uBAAuB,EACjD,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACpB,KAAK,0BAA0B,EAC/B,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,UAAU,IAAI,mBAAmB,EACtC,KAAK,UAAU,EACf,KAAK,UAAU,IAAI,mBAAmB,EACtC,KAAK,YAAY,EACjB,KAAK,YAAY,IAAI,qBAAqB,EAC1C,KAAK,SAAS,EACd,KAAK,SAAS,IAAI,kBAAkB,GACrC,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,mBAAmB,EACnB,aAAa,EACb,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,EACzB,YAAY,EACZ,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,yBAAyB,GAC/B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAG9C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,iBAAiB,GACvB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EACL,uBAAuB,EACvB,KAAK,8BAA8B,GACpC,MAAM,0BAA0B,CAAC"}