@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.
- package/README.md +312 -0
- package/dist/client/attachment.d.ts +225 -0
- package/dist/client/attachment.d.ts.map +1 -0
- package/dist/client/attachment.js +402 -0
- package/dist/client/attachment.js.map +1 -0
- package/dist/client/binary-encoding.d.ts +45 -0
- package/dist/client/binary-encoding.d.ts.map +1 -0
- package/dist/client/binary-encoding.js +90 -0
- package/dist/client/binary-encoding.js.map +1 -0
- package/dist/client/collection.d.ts +10 -0
- package/dist/client/collection.d.ts.map +1 -0
- package/dist/client/collection.js +924 -0
- package/dist/client/collection.js.map +1 -0
- package/dist/client/compression.d.ts +56 -0
- package/dist/client/compression.d.ts.map +1 -0
- package/dist/client/compression.js +173 -0
- package/dist/client/compression.js.map +1 -0
- package/dist/client/crdt/index.d.ts +2 -0
- package/dist/client/crdt/index.d.ts.map +1 -0
- package/dist/client/crdt/index.js +2 -0
- package/dist/client/crdt/index.js.map +1 -0
- package/dist/client/crdt/yjs-doc.d.ts +88 -0
- package/dist/client/crdt/yjs-doc.d.ts.map +1 -0
- package/dist/client/crdt/yjs-doc.js +123 -0
- package/dist/client/crdt/yjs-doc.js.map +1 -0
- package/dist/client/index.d.ts +66 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +233 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/mock-transport.d.ts +155 -0
- package/dist/client/mock-transport.d.ts.map +1 -0
- package/dist/client/mock-transport.js +292 -0
- package/dist/client/mock-transport.js.map +1 -0
- package/dist/client/network-detector.d.ts +65 -0
- package/dist/client/network-detector.d.ts.map +1 -0
- package/dist/client/network-detector.js +147 -0
- package/dist/client/network-detector.js.map +1 -0
- package/dist/client/provisioning.d.ts +126 -0
- package/dist/client/provisioning.d.ts.map +1 -0
- package/dist/client/provisioning.js +125 -0
- package/dist/client/provisioning.js.map +1 -0
- package/dist/client/signal.d.ts +13 -0
- package/dist/client/signal.d.ts.map +1 -0
- package/dist/client/signal.js +27 -0
- package/dist/client/signal.js.map +1 -0
- package/dist/client/sync-engine.d.ts +298 -0
- package/dist/client/sync-engine.d.ts.map +1 -0
- package/dist/client/sync-engine.js +904 -0
- package/dist/client/sync-engine.js.map +1 -0
- package/dist/client/synced-edge.d.ts +109 -0
- package/dist/client/synced-edge.d.ts.map +1 -0
- package/dist/client/synced-edge.js +179 -0
- package/dist/client/synced-edge.js.map +1 -0
- package/dist/client/synced-offline-edge-types.d.ts +540 -0
- package/dist/client/synced-offline-edge-types.d.ts.map +1 -0
- package/dist/client/synced-offline-edge-types.js +10 -0
- package/dist/client/synced-offline-edge-types.js.map +1 -0
- package/dist/client/synced-offline-edge.d.ts +54 -0
- package/dist/client/synced-offline-edge.d.ts.map +1 -0
- package/dist/client/synced-offline-edge.js +731 -0
- package/dist/client/synced-offline-edge.js.map +1 -0
- package/dist/client/transport.d.ts +202 -0
- package/dist/client/transport.d.ts.map +1 -0
- package/dist/client/transport.js +409 -0
- package/dist/client/transport.js.map +1 -0
- package/dist/client/types.d.ts +622 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +60 -0
- package/dist/client/types.js.map +1 -0
- package/dist/client/validation.d.ts +61 -0
- package/dist/client/validation.d.ts.map +1 -0
- package/dist/client/validation.js +57 -0
- package/dist/client/validation.js.map +1 -0
- package/dist/client/versioning.d.ts +134 -0
- package/dist/client/versioning.d.ts.map +1 -0
- package/dist/client/versioning.js +304 -0
- package/dist/client/versioning.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +51 -0
- package/dist/index.js.map +1 -0
- package/dist/persistence/encryption.d.ts +114 -0
- package/dist/persistence/encryption.d.ts.map +1 -0
- package/dist/persistence/encryption.js +286 -0
- package/dist/persistence/encryption.js.map +1 -0
- package/dist/persistence/index.d.ts +21 -0
- package/dist/persistence/index.d.ts.map +1 -0
- package/dist/persistence/index.js +20 -0
- package/dist/persistence/index.js.map +1 -0
- package/dist/persistence/memory.d.ts +32 -0
- package/dist/persistence/memory.d.ts.map +1 -0
- package/dist/persistence/memory.js +57 -0
- package/dist/persistence/memory.js.map +1 -0
- package/dist/persistence/migrations.d.ts +106 -0
- package/dist/persistence/migrations.d.ts.map +1 -0
- package/dist/persistence/migrations.js +176 -0
- package/dist/persistence/migrations.js.map +1 -0
- package/dist/persistence/pending-queue.d.ts +109 -0
- package/dist/persistence/pending-queue.d.ts.map +1 -0
- package/dist/persistence/pending-queue.js +249 -0
- package/dist/persistence/pending-queue.js.map +1 -0
- package/dist/persistence/pglite.d.ts +72 -0
- package/dist/persistence/pglite.d.ts.map +1 -0
- package/dist/persistence/pglite.js +126 -0
- package/dist/persistence/pglite.js.map +1 -0
- package/dist/persistence/quota-manager.d.ts +134 -0
- package/dist/persistence/quota-manager.d.ts.map +1 -0
- package/dist/persistence/quota-manager.js +242 -0
- package/dist/persistence/quota-manager.js.map +1 -0
- package/dist/persistence/types.d.ts +54 -0
- package/dist/persistence/types.d.ts.map +1 -0
- package/dist/persistence/types.js +2 -0
- package/dist/persistence/types.js.map +1 -0
- package/dist/react/OfflineEdgeProvider.d.ts +91 -0
- package/dist/react/OfflineEdgeProvider.d.ts.map +1 -0
- package/dist/react/OfflineEdgeProvider.js +127 -0
- package/dist/react/OfflineEdgeProvider.js.map +1 -0
- package/dist/react/SyncedOfflineEdgeProvider.d.ts +105 -0
- package/dist/react/SyncedOfflineEdgeProvider.d.ts.map +1 -0
- package/dist/react/SyncedOfflineEdgeProvider.js +138 -0
- package/dist/react/SyncedOfflineEdgeProvider.js.map +1 -0
- package/dist/react/index.d.ts +50 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +51 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/useCollection.d.ts +77 -0
- package/dist/react/useCollection.d.ts.map +1 -0
- package/dist/react/useCollection.js +113 -0
- package/dist/react/useCollection.js.map +1 -0
- package/dist/react/useCollectionSyncMode.d.ts +61 -0
- package/dist/react/useCollectionSyncMode.d.ts.map +1 -0
- package/dist/react/useCollectionSyncMode.js +93 -0
- package/dist/react/useCollectionSyncMode.js.map +1 -0
- package/dist/react/useConnectionState.d.ts +44 -0
- package/dist/react/useConnectionState.d.ts.map +1 -0
- package/dist/react/useConnectionState.js +46 -0
- package/dist/react/useConnectionState.js.map +1 -0
- package/dist/react/useDocumentSyncStatus.d.ts +72 -0
- package/dist/react/useDocumentSyncStatus.d.ts.map +1 -0
- package/dist/react/useDocumentSyncStatus.js +110 -0
- package/dist/react/useDocumentSyncStatus.js.map +1 -0
- package/dist/react/useOfflineEdge.d.ts +58 -0
- package/dist/react/useOfflineEdge.d.ts.map +1 -0
- package/dist/react/useOfflineEdge.js +54 -0
- package/dist/react/useOfflineEdge.js.map +1 -0
- package/dist/react/usePendingChanges.d.ts +67 -0
- package/dist/react/usePendingChanges.d.ts.map +1 -0
- package/dist/react/usePendingChanges.js +90 -0
- package/dist/react/usePendingChanges.js.map +1 -0
- package/dist/react/useRejectedDocuments.d.ts +112 -0
- package/dist/react/useRejectedDocuments.d.ts.map +1 -0
- package/dist/react/useRejectedDocuments.js +213 -0
- package/dist/react/useRejectedDocuments.js.map +1 -0
- package/dist/react/useSyncControls.d.ts +96 -0
- package/dist/react/useSyncControls.d.ts.map +1 -0
- package/dist/react/useSyncControls.js +112 -0
- package/dist/react/useSyncControls.js.map +1 -0
- package/dist/react/useSyncProgress.d.ts +78 -0
- package/dist/react/useSyncProgress.d.ts.map +1 -0
- package/dist/react/useSyncProgress.js +90 -0
- package/dist/react/useSyncProgress.js.map +1 -0
- package/dist/react/useSyncRejected.d.ts +47 -0
- package/dist/react/useSyncRejected.d.ts.map +1 -0
- package/dist/react/useSyncRejected.js +55 -0
- package/dist/react/useSyncRejected.js.map +1 -0
- package/dist/react/useSyncStatus.d.ts +56 -0
- package/dist/react/useSyncStatus.d.ts.map +1 -0
- package/dist/react/useSyncStatus.js +59 -0
- package/dist/react/useSyncStatus.js.map +1 -0
- package/dist/react/useSyncedOfflineEdge.d.ts +69 -0
- package/dist/react/useSyncedOfflineEdge.d.ts.map +1 -0
- package/dist/react/useSyncedOfflineEdge.js +65 -0
- package/dist/react/useSyncedOfflineEdge.js.map +1 -0
- package/dist/service-worker/index.d.ts +7 -0
- package/dist/service-worker/index.d.ts.map +1 -0
- package/dist/service-worker/index.js +7 -0
- package/dist/service-worker/index.js.map +1 -0
- package/dist/service-worker/sync-worker.d.ts +230 -0
- package/dist/service-worker/sync-worker.d.ts.map +1 -0
- package/dist/service-worker/sync-worker.js +471 -0
- package/dist/service-worker/sync-worker.js.map +1 -0
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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":"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"}
|