@quereus/sync 0.6.3 → 0.8.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 (33) hide show
  1. package/README.md +187 -155
  2. package/dist/src/index.d.ts +3 -5
  3. package/dist/src/index.d.ts.map +1 -1
  4. package/dist/src/index.js +3 -5
  5. package/dist/src/index.js.map +1 -1
  6. package/dist/src/metadata/keys.d.ts +8 -0
  7. package/dist/src/metadata/keys.d.ts.map +1 -1
  8. package/dist/src/metadata/keys.js +11 -0
  9. package/dist/src/metadata/keys.js.map +1 -1
  10. package/dist/src/sync/change-applicator.d.ts +44 -0
  11. package/dist/src/sync/change-applicator.d.ts.map +1 -0
  12. package/dist/src/sync/change-applicator.js +243 -0
  13. package/dist/src/sync/change-applicator.js.map +1 -0
  14. package/dist/src/sync/snapshot-stream.d.ts +26 -0
  15. package/dist/src/sync/snapshot-stream.d.ts.map +1 -0
  16. package/dist/src/sync/snapshot-stream.js +375 -0
  17. package/dist/src/sync/snapshot-stream.js.map +1 -0
  18. package/dist/src/sync/snapshot.d.ts +17 -0
  19. package/dist/src/sync/snapshot.d.ts.map +1 -0
  20. package/dist/src/sync/snapshot.js +166 -0
  21. package/dist/src/sync/snapshot.js.map +1 -0
  22. package/dist/src/sync/store-adapter.d.ts.map +1 -1
  23. package/dist/src/sync/store-adapter.js +3 -2
  24. package/dist/src/sync/store-adapter.js.map +1 -1
  25. package/dist/src/sync/sync-context.d.ts +47 -0
  26. package/dist/src/sync/sync-context.d.ts.map +1 -0
  27. package/dist/src/sync/sync-context.js +36 -0
  28. package/dist/src/sync/sync-context.js.map +1 -0
  29. package/dist/src/sync/sync-manager-impl.d.ts +21 -48
  30. package/dist/src/sync/sync-manager-impl.d.ts.map +1 -1
  31. package/dist/src/sync/sync-manager-impl.js +140 -988
  32. package/dist/src/sync/sync-manager-impl.js.map +1 -1
  33. package/package.json +4 -4
package/README.md CHANGED
@@ -1,155 +1,187 @@
1
- # @quereus/sync
2
-
3
- CRDT-based multi-master sync framework for [Quereus](https://github.com/gotchoices/quereus). Enables offline-first applications with automatic conflict resolution.
4
-
5
- ## Features
6
-
7
- - **Multi-master replication**: Any replica can write, changes merge automatically
8
- - **Column-level LWW**: Last-Write-Wins at the column level for fine-grained conflict resolution
9
- - **Hybrid Logical Clocks**: Causally-ordered timestamps that work offline
10
- - **Transport agnostic**: Bring your own WebSocket, HTTP, or WebRTC transport
11
- - **Offline-first**: Local changes sync when connectivity returns
12
- - **Schema sync**: DDL changes (CREATE TABLE, ALTER TABLE) propagate across replicas
13
-
14
- ## Installation
15
-
16
- ```bash
17
- npm install @quereus/sync @quereus/store
18
- ```
19
-
20
- ## Quick Start
21
-
22
- ```typescript
23
- import { Database } from '@quereus/quereus';
24
- import { StoreEventEmitter, LevelDBStore } from '@quereus/store';
25
- import { createSyncModule, createStoreAdapter } from '@quereus/sync';
26
-
27
- // Create the store with event emitter
28
- const storeEvents = new StoreEventEmitter();
29
- const store = await LevelDBStore.open({ path: './data' });
30
-
31
- // Create sync-enabled module
32
- const { syncModule, syncManager, syncEvents } = createSyncModule(store, storeEvents);
33
-
34
- // Register with database
35
- const db = new Database();
36
- db.registerModule('store', syncModule);
37
-
38
- // Create tables and use normally - all changes are tracked
39
- await db.exec(`
40
- CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, email TEXT)
41
- USING store
42
- `);
43
-
44
- await db.exec(`INSERT INTO users (id, name, email) VALUES (1, 'Alice', 'alice@example.com')`);
45
-
46
- // Get changes to send to another replica
47
- const changes = await syncManager.getChangesSince(peerSiteId);
48
- ```
49
-
50
- ## Architecture
51
-
52
- ```
53
- ┌─────────────────────────────────────────────────────────────┐
54
- Application
55
- ├─────────────────────────────────────────────────────────────┤
56
- SyncManager
57
- │ ├── HLCManager (Hybrid Logical Clock)
58
- │ ├── ColumnVersionStore (LWW metadata)
59
- │ ├── TombstoneStore (deletion tracking)
60
- │ ├── ChangeLogStore (HLC-indexed changes)
61
- │ └── PeerStateStore (delta sync state)
62
- ├─────────────────────────────────────────────────────────────┤
63
- │ @quereus/store (KVStore) │
64
- └─────────────────────────────────────────────────────────────┘
65
- ```
66
-
67
- ## Sync Protocol
68
-
69
- ### Delta Sync
70
-
71
- When replicas have synced before:
72
-
73
- ```typescript
74
- // Get changes since last sync
75
- const changes = await syncManager.getChangesSince(peerSiteId);
76
-
77
- // Apply received changes
78
- const result = await syncManager.applyChanges(changeSets, applyToStoreCallback);
79
- ```
80
-
81
- ### Snapshot Sync
82
-
83
- For new replicas or when delta sync isn't available:
84
-
85
- ```typescript
86
- // Stream snapshot chunks
87
- for await (const chunk of syncManager.streamSnapshot({ chunkSize: 1000 })) {
88
- sendToPeer(chunk);
89
- }
90
-
91
- // Apply received snapshot
92
- await syncManager.applyStreamedSnapshot(chunks, applyToStoreCallback);
93
- ```
94
-
95
- ## Events
96
-
97
- Subscribe to sync events for UI updates:
98
-
99
- ```typescript
100
- syncEvents.onLocalChange((event) => {
101
- console.log('Local change:', event.tableName, event.type);
102
- });
103
-
104
- syncEvents.onRemoteChange((event) => {
105
- console.log('Remote change:', event.tableName, event.type);
106
- refreshUI();
107
- });
108
-
109
- syncEvents.onConflict((event) => {
110
- console.log('Conflict resolved:', event.resolution);
111
- });
112
- ```
113
-
114
- ## Conflict Resolution
115
-
116
- Conflicts are resolved automatically using Last-Write-Wins at the column level:
117
-
118
- - Each column has an associated HLC timestamp
119
- - When merging, the column with the higher HLC wins
120
- - Ties are broken by site ID (deterministic ordering)
121
-
122
- This means concurrent updates to *different* columns of the same row both apply, while updates to the *same* column use the latest value.
123
-
124
- ## API
125
-
126
- ### Core Exports
127
-
128
- - `createSyncModule(store, storeEvents, config?)` - Factory to create sync-enabled store module
129
- - `createStoreAdapter(db, store, storeEvents)` - Adapter for applying remote changes to store
130
- - `SyncManager` - Main sync coordination interface
131
- - `SyncEventEmitter` - Event subscription interface
132
-
133
- ### Clock Exports
134
-
135
- - `HLCManager` - Hybrid Logical Clock manager
136
- - `generateSiteId()` - Generate unique 16-byte site identifier
137
- - `siteIdToBase64(id)` / `siteIdFromBase64(str)` - Site ID serialization
138
-
139
- ### Protocol Types
140
-
141
- - `ChangeSet` - Collection of changes from one transaction
142
- - `Change` - Single column or row change
143
- - `SchemaMigration` - Schema change (CREATE/ALTER/DROP TABLE)
144
- - `SnapshotChunk` - Streaming snapshot data
145
-
146
- ## Related Packages
147
-
148
- - [`@quereus/store`](../quereus-store/) - Storage base layer (required)
149
- - [`@quereus/sync-client`](../quereus-sync-client/) - WebSocket sync client (handles connection, reconnection, batching)
150
- - [`@quereus/sync-coordinator`](../sync-coordinator/) - Server-side coordinator
151
-
152
- ## License
153
-
154
- MIT
155
-
1
+ # @quereus/sync
2
+
3
+ CRDT-based multi-master sync framework for [Quereus](https://github.com/gotchoices/quereus). Enables offline-first applications with automatic conflict resolution.
4
+
5
+ ## Features
6
+
7
+ - **Multi-master replication**: Any replica can write, changes merge automatically
8
+ - **Column-level LWW**: Last-Write-Wins at the column level for fine-grained conflict resolution
9
+ - **Hybrid Logical Clocks**: Causally-ordered timestamps that work offline
10
+ - **Transport agnostic**: Bring your own WebSocket, HTTP, or WebRTC transport
11
+ - **Offline-first**: Local changes sync when connectivity returns
12
+ - **Schema sync**: DDL changes (CREATE TABLE, ALTER TABLE) propagate across replicas
13
+
14
+ ## Installation
15
+
16
+ ```bash
17
+ npm install @quereus/sync @quereus/store
18
+ ```
19
+
20
+ ## Quick Start
21
+
22
+ ```typescript
23
+ import { StoreEventEmitter, LevelDBStore } from '@quereus/store';
24
+ import { createSyncModule, createStoreAdapter } from '@quereus/sync';
25
+
26
+ // Create the store with event emitter
27
+ const storeEvents = new StoreEventEmitter();
28
+ const kv = await LevelDBStore.open({ path: './sync-metadata' });
29
+
30
+ // Create sync module (tracks CRDT metadata, emits sync events)
31
+ const { syncManager, syncEvents } = await createSyncModule(kv, storeEvents, {
32
+ applyToStore: createStoreAdapter({ db, getKVStore, events: storeEvents, getTableSchema }),
33
+ getTableSchema: (schema, table) => db.getTableSchema(schema, table),
34
+ });
35
+
36
+ // Subscribe to sync events for UI
37
+ syncEvents.onRemoteChange((event) => {
38
+ console.log('Remote changes applied:', event.changes.length);
39
+ });
40
+
41
+ // Get changes to send to another replica
42
+ const changes = await syncManager.getChangesSince(peerSiteId);
43
+
44
+ // Apply received changes from a remote replica
45
+ const result = await syncManager.applyChanges(changeSets);
46
+ ```
47
+
48
+ ## Architecture
49
+
50
+ ```
51
+ ┌─────────────────────────────────────────────────────────────┐
52
+ │ Application │
53
+ ├─────────────────────────────────────────────────────────────┤
54
+ SyncManager
55
+ │ ├── HLCManager (Hybrid Logical Clock) │
56
+ ├── ColumnVersionStore (LWW metadata)
57
+ │ ├── TombstoneStore (deletion tracking)
58
+ │ ├── ChangeLogStore (HLC-indexed changes)
59
+ │ ├── PeerStateStore (delta sync state)
60
+ │ ├── SchemaMigrationStore (DDL tracking)
61
+ │ └── SchemaVersionStore (schema conflict resolution)
62
+ ├─────────────────────────────────────────────────────────────┤
63
+ │ @quereus/store (KVStore) │
64
+ └─────────────────────────────────────────────────────────────┘
65
+ ```
66
+
67
+ ## Sync Protocol
68
+
69
+ ### Delta Sync
70
+
71
+ When replicas have synced before:
72
+
73
+ ```typescript
74
+ // Check if delta sync is possible
75
+ if (await syncManager.canDeltaSync(peerSiteId)) {
76
+ // Get changes since last sync
77
+ const changes = await syncManager.getChangesSince(peerSiteId, sinceHLC);
78
+ // Apply received changes (applyToStore callback set at construction)
79
+ const result = await syncManager.applyChanges(changeSets);
80
+ // result: { applied, skipped, conflicts, transactions }
81
+ }
82
+ ```
83
+
84
+ ### Snapshot Sync
85
+
86
+ For new replicas or when delta sync isn't available:
87
+
88
+ ```typescript
89
+ // Stream snapshot chunks
90
+ for await (const chunk of syncManager.getSnapshotStream(1000)) {
91
+ sendToPeer(chunk);
92
+ }
93
+
94
+ // Apply received snapshot stream
95
+ await syncManager.applySnapshotStream(chunks, (progress) => {
96
+ console.log(`${progress.tablesProcessed}/${progress.totalTables} tables`);
97
+ });
98
+
99
+ // Or use non-streaming full snapshot
100
+ const snapshot = await syncManager.getSnapshot();
101
+ await syncManager.applySnapshot(snapshot);
102
+ ```
103
+
104
+ ### Checkpoint / Resume
105
+
106
+ Streaming snapshots support checkpoint-based resumption:
107
+
108
+ ```typescript
109
+ // Save checkpoint during long snapshot transfers
110
+ const checkpoint = await syncManager.getSnapshotCheckpoint(snapshotId);
111
+
112
+ // Resume from where we left off
113
+ if (checkpoint) {
114
+ for await (const chunk of syncManager.resumeSnapshotStream(checkpoint)) {
115
+ sendToPeer(chunk);
116
+ }
117
+ }
118
+ ```
119
+
120
+ ## Events
121
+
122
+ Subscribe to sync events for UI updates:
123
+
124
+ ```typescript
125
+ syncEvents.onLocalChange((event) => {
126
+ console.log('Local changes:', event.changes.length, 'pending:', event.pendingSync);
127
+ });
128
+
129
+ syncEvents.onRemoteChange((event) => {
130
+ console.log('Remote changes from:', event.siteId, event.changes.length);
131
+ refreshUI();
132
+ });
133
+
134
+ syncEvents.onConflictResolved((event) => {
135
+ console.log('Conflict:', event.table, event.column, 'winner:', event.winner);
136
+ });
137
+
138
+ syncEvents.onSyncStateChange((state) => {
139
+ console.log('Sync state:', state.status);
140
+ });
141
+ ```
142
+
143
+ ## Conflict Resolution
144
+
145
+ Conflicts are resolved automatically using Last-Write-Wins at the column level:
146
+
147
+ - Each column has an associated HLC timestamp
148
+ - When merging, the column with the higher HLC wins
149
+ - Ties are broken by site ID (deterministic ordering)
150
+
151
+ This means concurrent updates to *different* columns of the same row both apply, while updates to the *same* column use the latest value.
152
+
153
+ ## API
154
+
155
+ ### Core Exports
156
+
157
+ - `createSyncModule(kv, storeEvents, options?)` - Factory to create sync manager and event emitter
158
+ - `createStoreAdapter(options)` - Creates an `ApplyToStoreCallback` for applying remote changes
159
+ - `SyncManager` - Main sync coordination interface
160
+ - `SyncEventEmitter` / `SyncEventEmitterImpl` - Event subscription interface and implementation
161
+
162
+ ### Clock Exports
163
+
164
+ - `HLCManager` - Hybrid Logical Clock manager
165
+ - `generateSiteId()` - Generate unique 16-byte site identifier
166
+ - `siteIdToBase64(id)` / `siteIdFromBase64(str)` - Site ID serialization
167
+ - `compareHLC(a, b)` / `hlcEquals(a, b)` - HLC comparison utilities
168
+
169
+ ### Protocol Types
170
+
171
+ - `ChangeSet` - Collection of changes from one transaction
172
+ - `Change` (`ColumnChange | RowDeletion`) - Single column or row change
173
+ - `SchemaMigration` - Schema change (CREATE/ALTER/DROP TABLE)
174
+ - `SnapshotChunk` - Streaming snapshot data (header, table-start, column-versions, table-end, schema-migration, footer)
175
+ - `ApplyResult` - Result of applying changes (applied, skipped, conflicts, transactions)
176
+ - `SyncConfig` / `DEFAULT_SYNC_CONFIG` - Configuration (tombstoneTTL, allowResurrection, etc.)
177
+
178
+ ## Related Packages
179
+
180
+ - [`@quereus/store`](../quereus-store/) - Storage base layer (required)
181
+ - [`@quereus/sync-client`](../quereus-sync-client/) - WebSocket sync client (handles connection, reconnection, batching)
182
+ - [`@quereus/sync-coordinator`](../sync-coordinator/) - Server-side coordinator
183
+
184
+ ## License
185
+
186
+ MIT
187
+
@@ -15,10 +15,8 @@
15
15
  * import { LevelDBModule, StoreEventEmitter } from '@quereus/store';
16
16
  *
17
17
  * const storeEvents = new StoreEventEmitter();
18
- * const store = new LevelDBModule(storeEvents);
19
- * const { syncModule, syncManager, syncEvents } = createSyncModule(store, storeEvents);
20
- *
21
- * db.registerModule('store', syncModule);
18
+ * const kv = await LevelDBStore.open({ path: './sync-metadata' });
19
+ * const { syncManager, syncEvents } = await createSyncModule(kv, storeEvents);
22
20
  */
23
21
  export { type HLC, HLCManager, compareHLC, hlcEquals, createHLC, serializeHLC, deserializeHLC, type SerializedHLC, hlcToJson, hlcFromJson, type SiteId, generateSiteId, siteIdToBase64, siteIdFromBase64, toBase64Url, fromBase64Url, siteIdEquals, type SiteIdentity, serializeSiteIdentity, deserializeSiteIdentity, SITE_ID_KEY, } from './clock/index.js';
24
22
  export { type ColumnChange, type RowDeletion, type Change, type SchemaMigrationType, type SchemaMigration, type ChangeSet, type ApplyResult, type ColumnVersionEntry, type TableSnapshot, type Snapshot, type PeerSyncState, type SnapshotChunkType, type SnapshotHeaderChunk, type SnapshotTableStartChunk, type SnapshotColumnVersionsChunk, type SnapshotTableEndChunk, type SnapshotSchemaMigrationChunk, type SnapshotFooterChunk, type SnapshotChunk, type SnapshotProgress, type ApplyToStoreOptions, type DataChangeToApply, type SchemaChangeToApply, type ApplyToStoreResult, type ApplyToStoreCallback, type SyncConfig, DEFAULT_SYNC_CONFIG, } from './sync/protocol.js';
@@ -27,5 +25,5 @@ export { SyncManagerImpl } from './sync/sync-manager-impl.js';
27
25
  export { createStoreAdapter, type SyncStoreAdapterOptions } from './sync/store-adapter.js';
28
26
  export { createSyncModule, type CreateSyncModuleResult, type CreateSyncModuleOptions, type GetTableSchemaCallback, } from './create-sync-module.js';
29
27
  export { type RemoteChangeEvent, type LocalChangeEvent, type ConflictEvent, type SyncState, type Unsubscribe, type SyncEventEmitter, SyncEventEmitterImpl, } from './sync/events.js';
30
- export { SYNC_KEY_PREFIX, buildColumnVersionKey, buildTombstoneKey, buildTransactionKey, buildPeerStateKey, buildSchemaMigrationKey, buildColumnVersionScanBounds, buildTombstoneScanBounds, buildSchemaMigrationScanBounds, encodePK, decodePK, type ColumnVersion, ColumnVersionStore, serializeColumnVersion, deserializeColumnVersion, type Tombstone, TombstoneStore, serializeTombstone, deserializeTombstone, type PeerState, PeerStateStore, serializePeerState, deserializePeerState, type SchemaVersion, type SchemaVersionType, type SchemaChangeOperation, SchemaVersionStore, buildSchemaVersionKey, buildSchemaVersionScanBounds, buildAllSchemaVersionsScanBounds, serializeSchemaVersion, deserializeSchemaVersion, parseSchemaVersionKey, getDestructiveness, getOperationDestructiveness, shouldApplySchemaChangeByOperation, } from './metadata/index.js';
28
+ export { SYNC_KEY_PREFIX, buildColumnVersionKey, buildTombstoneKey, buildTransactionKey, buildPeerStateKey, buildSchemaMigrationKey, buildColumnVersionScanBounds, buildTableColumnVersionScanBounds, buildTombstoneScanBounds, buildSchemaMigrationScanBounds, encodePK, decodePK, type ColumnVersion, ColumnVersionStore, serializeColumnVersion, deserializeColumnVersion, type Tombstone, TombstoneStore, serializeTombstone, deserializeTombstone, type PeerState, PeerStateStore, serializePeerState, deserializePeerState, type SchemaVersion, type SchemaVersionType, type SchemaChangeOperation, SchemaVersionStore, buildSchemaVersionKey, buildSchemaVersionScanBounds, buildAllSchemaVersionsScanBounds, serializeSchemaVersion, deserializeSchemaVersion, parseSchemaVersionKey, getDestructiveness, getOperationDestructiveness, shouldApplySchemaChangeByOperation, } from './metadata/index.js';
31
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAEL,KAAK,GAAG,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EACZ,cAAc,EAEd,KAAK,aAAa,EAClB,SAAS,EACT,WAAW,EAEX,KAAK,MAAM,EACX,cAAc,EAEd,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,KAAK,YAAY,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,MAAM,EAEX,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAEpB,KAAK,SAAS,EAEd,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,aAAa,EAElB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAErB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EACf,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAG3F,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAEL,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,8BAA8B,EAC9B,QAAQ,EACR,QAAQ,EAER,KAAK,aAAa,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EAExB,KAAK,SAAS,EACd,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EAEpB,KAAK,SAAS,EACd,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EAEpB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,gCAAgC,EAChC,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EAErB,kBAAkB,EAClB,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAEL,KAAK,GAAG,EACR,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EACZ,cAAc,EAEd,KAAK,aAAa,EAClB,SAAS,EACT,WAAW,EAEX,KAAK,MAAM,EACX,cAAc,EAEd,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,YAAY,EACZ,KAAK,YAAY,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,MAAM,EAEX,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAEpB,KAAK,SAAS,EAEd,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,aAAa,EAElB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EAErB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAEzB,KAAK,UAAU,EACf,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,EAAE,kBAAkB,EAAE,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAG3F,OAAO,EACL,gBAAgB,EAChB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAEL,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,iCAAiC,EACjC,wBAAwB,EACxB,8BAA8B,EAC9B,QAAQ,EACR,QAAQ,EAER,KAAK,aAAa,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EAExB,KAAK,SAAS,EACd,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EAEpB,KAAK,SAAS,EACd,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EAEpB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,gCAAgC,EAChC,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EAErB,kBAAkB,EAClB,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,qBAAqB,CAAC"}
package/dist/src/index.js CHANGED
@@ -15,10 +15,8 @@
15
15
  * import { LevelDBModule, StoreEventEmitter } from '@quereus/store';
16
16
  *
17
17
  * const storeEvents = new StoreEventEmitter();
18
- * const store = new LevelDBModule(storeEvents);
19
- * const { syncModule, syncManager, syncEvents } = createSyncModule(store, storeEvents);
20
- *
21
- * db.registerModule('store', syncModule);
18
+ * const kv = await LevelDBStore.open({ path: './sync-metadata' });
19
+ * const { syncManager, syncEvents } = await createSyncModule(kv, storeEvents);
22
20
  */
23
21
  // Clock module
24
22
  export { HLCManager, compareHLC, hlcEquals, createHLC, serializeHLC, deserializeHLC, hlcToJson, hlcFromJson, generateSiteId,
@@ -36,7 +34,7 @@ export { SyncEventEmitterImpl, } from './sync/events.js';
36
34
  // Metadata storage
37
35
  export {
38
36
  // Key builders
39
- SYNC_KEY_PREFIX, buildColumnVersionKey, buildTombstoneKey, buildTransactionKey, buildPeerStateKey, buildSchemaMigrationKey, buildColumnVersionScanBounds, buildTombstoneScanBounds, buildSchemaMigrationScanBounds, encodePK, decodePK, ColumnVersionStore, serializeColumnVersion, deserializeColumnVersion, TombstoneStore, serializeTombstone, deserializeTombstone, PeerStateStore, serializePeerState, deserializePeerState, SchemaVersionStore, buildSchemaVersionKey, buildSchemaVersionScanBounds, buildAllSchemaVersionsScanBounds, serializeSchemaVersion, deserializeSchemaVersion, parseSchemaVersionKey,
37
+ SYNC_KEY_PREFIX, buildColumnVersionKey, buildTombstoneKey, buildTransactionKey, buildPeerStateKey, buildSchemaMigrationKey, buildColumnVersionScanBounds, buildTableColumnVersionScanBounds, buildTombstoneScanBounds, buildSchemaMigrationScanBounds, encodePK, decodePK, ColumnVersionStore, serializeColumnVersion, deserializeColumnVersion, TombstoneStore, serializeTombstone, deserializeTombstone, PeerStateStore, serializePeerState, deserializePeerState, SchemaVersionStore, buildSchemaVersionKey, buildSchemaVersionScanBounds, buildAllSchemaVersionsScanBounds, serializeSchemaVersion, deserializeSchemaVersion, parseSchemaVersionKey,
40
38
  // Most destructive wins
41
39
  getDestructiveness, getOperationDestructiveness, shouldApplySchemaChangeByOperation, } from './metadata/index.js';
42
40
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,eAAe;AACf,OAAO,EAGL,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EACZ,cAAc,EAGd,SAAS,EACT,WAAW,EAGX,cAAc;AACd,qBAAqB;AACrB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,YAAY,EAEZ,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,sBAAsB;AACtB,OAAO,EAkCL,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,4CAA4C;AAC5C,OAAO,EAAE,kBAAkB,EAAgC,MAAM,yBAAyB,CAAC;AAE3F,mBAAmB;AACnB,OAAO,EACL,gBAAgB,GAIjB,MAAM,yBAAyB,CAAC;AAEjC,kBAAkB;AAClB,OAAO,EAOL,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,mBAAmB;AACnB,OAAO;AACL,eAAe;AACf,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,wBAAwB,EACxB,8BAA8B,EAC9B,QAAQ,EACR,QAAQ,EAGR,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EAGxB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EAGpB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EAKpB,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,gCAAgC,EAChC,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB;AACrB,wBAAwB;AACxB,kBAAkB,EAClB,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,eAAe;AACf,OAAO,EAGL,UAAU,EACV,UAAU,EACV,SAAS,EACT,SAAS,EACT,YAAY,EACZ,cAAc,EAGd,SAAS,EACT,WAAW,EAGX,cAAc;AACd,qBAAqB;AACrB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,YAAY,EAEZ,qBAAqB,EACrB,uBAAuB,EACvB,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,sBAAsB;AACtB,OAAO,EAkCL,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,4CAA4C;AAC5C,OAAO,EAAE,kBAAkB,EAAgC,MAAM,yBAAyB,CAAC;AAE3F,mBAAmB;AACnB,OAAO,EACL,gBAAgB,GAIjB,MAAM,yBAAyB,CAAC;AAEjC,kBAAkB;AAClB,OAAO,EAOL,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,mBAAmB;AACnB,OAAO;AACL,eAAe;AACf,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,uBAAuB,EACvB,4BAA4B,EAC5B,iCAAiC,EACjC,wBAAwB,EACxB,8BAA8B,EAC9B,QAAQ,EACR,QAAQ,EAGR,kBAAkB,EAClB,sBAAsB,EACtB,wBAAwB,EAGxB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EAGpB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EAKpB,kBAAkB,EAClB,qBAAqB,EACrB,4BAA4B,EAC5B,gCAAgC,EAChC,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB;AACrB,wBAAwB;AACxB,kBAAkB,EAClB,2BAA2B,EAC3B,kCAAkC,GACnC,MAAM,qBAAqB,CAAC"}
@@ -59,6 +59,14 @@ export declare function buildPeerStateKey(siteId: SiteId): Uint8Array;
59
59
  * Format: sm:{schema}.{table}:{version}
60
60
  */
61
61
  export declare function buildSchemaMigrationKey(schemaName: string, tableName: string, version: number): Uint8Array;
62
+ /**
63
+ * Build scan bounds for all column versions of a table.
64
+ * Returns keys to scan cv:{schema}.{table}:*
65
+ */
66
+ export declare function buildTableColumnVersionScanBounds(schemaName: string, tableName: string): {
67
+ gte: Uint8Array;
68
+ lt: Uint8Array;
69
+ };
62
70
  /**
63
71
  * Build scan bounds for all column versions of a row.
64
72
  * Returns keys to scan cv:{schema}.{table}:{pk_json}:*
@@ -1 +1 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/metadata/keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/metadata/keys.ts"],"names":[],"mappings":"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"}
@@ -91,6 +91,17 @@ export function buildPeerStateKey(siteId) {
91
91
  export function buildSchemaMigrationKey(schemaName, tableName, version) {
92
92
  return encoder.encode(`sm:${schemaName}.${tableName}${SEPARATOR}${version.toString().padStart(10, '0')}`);
93
93
  }
94
+ /**
95
+ * Build scan bounds for all column versions of a table.
96
+ * Returns keys to scan cv:{schema}.{table}:*
97
+ */
98
+ export function buildTableColumnVersionScanBounds(schemaName, tableName) {
99
+ const prefix = `cv:${schemaName}.${tableName}${SEPARATOR}`;
100
+ return {
101
+ gte: encoder.encode(prefix),
102
+ lt: incrementLastByte(encoder.encode(prefix)),
103
+ };
104
+ }
94
105
  /**
95
106
  * Build scan bounds for all column versions of a row.
96
107
  * Returns keys to scan cv:{schema}.{table}:{pk_json}:*
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/metadata/keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/metadata/keys.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Change application logic.
3
+ *
4
+ * Handles the 3-phase change application pattern:
5
+ * 1. resolveChange — CRDT conflict resolution (no writes)
6
+ * 2. applyToStore callback — write data to store
7
+ * 3. commitChangeMetadata — persist CRDT metadata
8
+ */
9
+ import type { ColumnVersion } from '../metadata/column-version.js';
10
+ import type { ChangeSet, Change, ApplyResult, DataChangeToApply } from './protocol.js';
11
+ import type { SyncContext } from './sync-context.js';
12
+ /**
13
+ * Result of resolving a single change (without writing metadata).
14
+ * Separates resolution from commit for correct write order.
15
+ */
16
+ export interface ResolvedChange {
17
+ outcome: 'applied' | 'skipped' | 'conflict';
18
+ change: Change;
19
+ dataChange?: DataChangeToApply;
20
+ /** For column changes: the old version to clean up in the change log. */
21
+ oldColumnVersion?: ColumnVersion;
22
+ }
23
+ /**
24
+ * Apply change sets from a remote peer.
25
+ *
26
+ * Three-phase process:
27
+ * 1. Resolve all changes (no writes)
28
+ * 2. Apply data to store via callback
29
+ * 3. Commit CRDT metadata
30
+ */
31
+ export declare function applyChanges(ctx: SyncContext, changes: ChangeSet[]): Promise<ApplyResult>;
32
+ /**
33
+ * Resolve CRDT conflicts for a single change WITHOUT writing metadata.
34
+ *
35
+ * Phase 1 of the 3-phase apply pattern.
36
+ */
37
+ export declare function resolveChange(ctx: SyncContext, change: Change): Promise<ResolvedChange>;
38
+ /**
39
+ * Commit CRDT metadata for resolved changes.
40
+ *
41
+ * Phase 3 of the 3-phase apply pattern: called AFTER data is written to store.
42
+ */
43
+ export declare function commitChangeMetadata(ctx: SyncContext, resolvedChanges: ResolvedChange[]): Promise<void>;
44
+ //# sourceMappingURL=change-applicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"change-applicator.d.ts","sourceRoot":"","sources":["../../../src/sync/change-applicator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EACX,SAAS,EACT,MAAM,EACN,WAAW,EACX,iBAAiB,EAGjB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC9B,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAC5C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,aAAa,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CACjC,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,SAAS,EAAE,GAClB,OAAO,CAAC,WAAW,CAAC,CA6HtB;AAED;;;;GAIG;AACH,wBAAsB,aAAa,CAClC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC,CA4GzB;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CACzC,GAAG,EAAE,WAAW,EAChB,eAAe,EAAE,cAAc,EAAE,GAC/B,OAAO,CAAC,IAAI,CAAC,CA2Df"}