@quereus/plugin-sync 0.3.1 → 0.3.3
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 +2 -1
- package/package.json +4 -4
- package/dist/src/clock/hlc.d.ts +0 -105
- package/dist/src/clock/hlc.d.ts.map +0 -1
- package/dist/src/clock/hlc.js +0 -251
- package/dist/src/clock/hlc.js.map +0 -1
- package/dist/src/clock/index.d.ts +0 -6
- package/dist/src/clock/index.d.ts.map +0 -1
- package/dist/src/clock/index.js +0 -6
- package/dist/src/clock/index.js.map +0 -1
- package/dist/src/clock/site.d.ts +0 -58
- package/dist/src/clock/site.d.ts.map +0 -1
- package/dist/src/clock/site.js +0 -137
- package/dist/src/clock/site.js.map +0 -1
- package/dist/src/create-sync-module.d.ts +0 -85
- package/dist/src/create-sync-module.d.ts.map +0 -1
- package/dist/src/create-sync-module.js +0 -54
- package/dist/src/create-sync-module.js.map +0 -1
- package/dist/src/index.d.ts +0 -31
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -42
- package/dist/src/index.js.map +0 -1
- package/dist/src/metadata/change-log.d.ts +0 -67
- package/dist/src/metadata/change-log.d.ts.map +0 -1
- package/dist/src/metadata/change-log.js +0 -107
- package/dist/src/metadata/change-log.js.map +0 -1
- package/dist/src/metadata/column-version.d.ts +0 -58
- package/dist/src/metadata/column-version.d.ts.map +0 -1
- package/dist/src/metadata/column-version.js +0 -100
- package/dist/src/metadata/column-version.js.map +0 -1
- package/dist/src/metadata/index.d.ts +0 -11
- package/dist/src/metadata/index.d.ts.map +0 -1
- package/dist/src/metadata/index.js +0 -11
- package/dist/src/metadata/index.js.map +0 -1
- package/dist/src/metadata/keys.d.ts +0 -180
- package/dist/src/metadata/keys.d.ts.map +0 -1
- package/dist/src/metadata/keys.js +0 -390
- package/dist/src/metadata/keys.js.map +0 -1
- package/dist/src/metadata/peer-state.d.ts +0 -52
- package/dist/src/metadata/peer-state.d.ts.map +0 -1
- package/dist/src/metadata/peer-state.js +0 -87
- package/dist/src/metadata/peer-state.js.map +0 -1
- package/dist/src/metadata/schema-migration.d.ts +0 -60
- package/dist/src/metadata/schema-migration.d.ts.map +0 -1
- package/dist/src/metadata/schema-migration.js +0 -126
- package/dist/src/metadata/schema-migration.js.map +0 -1
- package/dist/src/metadata/schema-version.d.ts +0 -163
- package/dist/src/metadata/schema-version.d.ts.map +0 -1
- package/dist/src/metadata/schema-version.js +0 -307
- package/dist/src/metadata/schema-version.js.map +0 -1
- package/dist/src/metadata/tombstones.d.ts +0 -67
- package/dist/src/metadata/tombstones.d.ts.map +0 -1
- package/dist/src/metadata/tombstones.js +0 -125
- package/dist/src/metadata/tombstones.js.map +0 -1
- package/dist/src/sync/events.d.ts +0 -117
- package/dist/src/sync/events.d.ts.map +0 -1
- package/dist/src/sync/events.js +0 -56
- package/dist/src/sync/events.js.map +0 -1
- package/dist/src/sync/index.d.ts +0 -8
- package/dist/src/sync/index.d.ts.map +0 -1
- package/dist/src/sync/index.js +0 -8
- package/dist/src/sync/index.js.map +0 -1
- package/dist/src/sync/manager.d.ts +0 -146
- package/dist/src/sync/manager.d.ts.map +0 -1
- package/dist/src/sync/manager.js +0 -8
- package/dist/src/sync/manager.js.map +0 -1
- package/dist/src/sync/protocol.d.ts +0 -282
- package/dist/src/sync/protocol.d.ts.map +0 -1
- package/dist/src/sync/protocol.js +0 -16
- package/dist/src/sync/protocol.js.map +0 -1
- package/dist/src/sync/store-adapter.d.ts +0 -42
- package/dist/src/sync/store-adapter.d.ts.map +0 -1
- package/dist/src/sync/store-adapter.js +0 -232
- package/dist/src/sync/store-adapter.js.map +0 -1
- package/dist/src/sync/sync-manager-impl.d.ts +0 -91
- package/dist/src/sync/sync-manager-impl.d.ts.map +0 -1
- package/dist/src/sync/sync-manager-impl.js +0 -1123
- package/dist/src/sync/sync-manager-impl.js.map +0 -1
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Key builders for CRDT metadata storage.
|
|
3
|
-
*
|
|
4
|
-
* Key prefixes (sync-specific):
|
|
5
|
-
* cv: - Column versions (HLC per column per row)
|
|
6
|
-
* tb: - Tombstones (deleted row markers)
|
|
7
|
-
* tx: - Transaction records
|
|
8
|
-
* ps: - Peer sync state
|
|
9
|
-
* sm: - Schema migrations
|
|
10
|
-
* si: - Site identity
|
|
11
|
-
* hc: - HLC clock state
|
|
12
|
-
* cl: - Change log (HLC-indexed for efficient delta queries)
|
|
13
|
-
*/
|
|
14
|
-
import type { SqlValue } from '@quereus/quereus';
|
|
15
|
-
import type { SiteId } from '../clock/site.js';
|
|
16
|
-
import type { HLC } from '../clock/hlc.js';
|
|
17
|
-
/** Key prefix bytes for sync metadata. */
|
|
18
|
-
export declare const SYNC_KEY_PREFIX: {
|
|
19
|
-
readonly COLUMN_VERSION: Uint8Array<ArrayBufferLike>;
|
|
20
|
-
readonly TOMBSTONE: Uint8Array<ArrayBufferLike>;
|
|
21
|
-
readonly TRANSACTION: Uint8Array<ArrayBufferLike>;
|
|
22
|
-
readonly PEER_STATE: Uint8Array<ArrayBufferLike>;
|
|
23
|
-
readonly SCHEMA_MIGRATION: Uint8Array<ArrayBufferLike>;
|
|
24
|
-
readonly SITE_IDENTITY: Uint8Array<ArrayBufferLike>;
|
|
25
|
-
readonly HLC_STATE: Uint8Array<ArrayBufferLike>;
|
|
26
|
-
readonly CHANGE_LOG: Uint8Array<ArrayBufferLike>;
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Encode a primary key as a string for use in metadata keys.
|
|
30
|
-
* Uses JSON for simplicity and determinism.
|
|
31
|
-
*/
|
|
32
|
-
export declare function encodePK(pk: SqlValue[]): string;
|
|
33
|
-
/**
|
|
34
|
-
* Decode a primary key from its string representation.
|
|
35
|
-
*/
|
|
36
|
-
export declare function decodePK(encoded: string): SqlValue[];
|
|
37
|
-
/**
|
|
38
|
-
* Build a column version key.
|
|
39
|
-
* Format: cv:{schema}.{table}:{pk_json}:{column}
|
|
40
|
-
*/
|
|
41
|
-
export declare function buildColumnVersionKey(schemaName: string, tableName: string, pk: SqlValue[], column: string): Uint8Array;
|
|
42
|
-
/**
|
|
43
|
-
* Build a tombstone key.
|
|
44
|
-
* Format: tb:{schema}.{table}:{pk_json}
|
|
45
|
-
*/
|
|
46
|
-
export declare function buildTombstoneKey(schemaName: string, tableName: string, pk: SqlValue[]): Uint8Array;
|
|
47
|
-
/**
|
|
48
|
-
* Build a transaction record key.
|
|
49
|
-
* Format: tx:{transactionId}
|
|
50
|
-
*/
|
|
51
|
-
export declare function buildTransactionKey(transactionId: string): Uint8Array;
|
|
52
|
-
/**
|
|
53
|
-
* Build a peer sync state key.
|
|
54
|
-
* Format: ps:{siteId_base64url}
|
|
55
|
-
*/
|
|
56
|
-
export declare function buildPeerStateKey(siteId: SiteId): Uint8Array;
|
|
57
|
-
/**
|
|
58
|
-
* Build a schema migration key.
|
|
59
|
-
* Format: sm:{schema}.{table}:{version}
|
|
60
|
-
*/
|
|
61
|
-
export declare function buildSchemaMigrationKey(schemaName: string, tableName: string, version: number): Uint8Array;
|
|
62
|
-
/**
|
|
63
|
-
* Build scan bounds for all column versions of a row.
|
|
64
|
-
* Returns keys to scan cv:{schema}.{table}:{pk_json}:*
|
|
65
|
-
*/
|
|
66
|
-
export declare function buildColumnVersionScanBounds(schemaName: string, tableName: string, pk: SqlValue[]): {
|
|
67
|
-
gte: Uint8Array;
|
|
68
|
-
lt: Uint8Array;
|
|
69
|
-
};
|
|
70
|
-
/**
|
|
71
|
-
* Build scan bounds for all tombstones in a table.
|
|
72
|
-
*/
|
|
73
|
-
export declare function buildTombstoneScanBounds(schemaName: string, tableName: string): {
|
|
74
|
-
gte: Uint8Array;
|
|
75
|
-
lt: Uint8Array;
|
|
76
|
-
};
|
|
77
|
-
/**
|
|
78
|
-
* Build scan bounds for all schema migrations of a table.
|
|
79
|
-
*/
|
|
80
|
-
export declare function buildSchemaMigrationScanBounds(schemaName: string, tableName: string): {
|
|
81
|
-
gte: Uint8Array;
|
|
82
|
-
lt: Uint8Array;
|
|
83
|
-
};
|
|
84
|
-
/**
|
|
85
|
-
* Build scan bounds for ALL column versions across all tables.
|
|
86
|
-
*/
|
|
87
|
-
export declare function buildAllColumnVersionsScanBounds(): {
|
|
88
|
-
gte: Uint8Array;
|
|
89
|
-
lt: Uint8Array;
|
|
90
|
-
};
|
|
91
|
-
/**
|
|
92
|
-
* Build scan bounds for ALL tombstones across all tables.
|
|
93
|
-
*/
|
|
94
|
-
export declare function buildAllTombstonesScanBounds(): {
|
|
95
|
-
gte: Uint8Array;
|
|
96
|
-
lt: Uint8Array;
|
|
97
|
-
};
|
|
98
|
-
/**
|
|
99
|
-
* Build scan bounds for ALL schema migrations across all tables.
|
|
100
|
-
*/
|
|
101
|
-
export declare function buildAllSchemaMigrationsScanBounds(): {
|
|
102
|
-
gte: Uint8Array;
|
|
103
|
-
lt: Uint8Array;
|
|
104
|
-
};
|
|
105
|
-
/**
|
|
106
|
-
* Parse a column version key to extract components.
|
|
107
|
-
* Key format: cv:{schema}.{table}:{pk_json}:{column}
|
|
108
|
-
*/
|
|
109
|
-
export declare function parseColumnVersionKey(key: Uint8Array): {
|
|
110
|
-
schema: string;
|
|
111
|
-
table: string;
|
|
112
|
-
pk: SqlValue[];
|
|
113
|
-
column: string;
|
|
114
|
-
} | null;
|
|
115
|
-
/**
|
|
116
|
-
* Parse a tombstone key to extract components.
|
|
117
|
-
* Key format: tb:{schema}.{table}:{pk_json}
|
|
118
|
-
*/
|
|
119
|
-
export declare function parseTombstoneKey(key: Uint8Array): {
|
|
120
|
-
schema: string;
|
|
121
|
-
table: string;
|
|
122
|
-
pk: SqlValue[];
|
|
123
|
-
} | null;
|
|
124
|
-
/**
|
|
125
|
-
* Parse a schema migration key to extract components.
|
|
126
|
-
* Key format: sm:{schema}.{table}:{version}
|
|
127
|
-
*/
|
|
128
|
-
export declare function parseSchemaMigrationKey(key: Uint8Array): {
|
|
129
|
-
schema: string;
|
|
130
|
-
table: string;
|
|
131
|
-
version: number;
|
|
132
|
-
} | null;
|
|
133
|
-
/**
|
|
134
|
-
* Change log entry type.
|
|
135
|
-
*/
|
|
136
|
-
export type ChangeLogEntryType = 'column' | 'delete';
|
|
137
|
-
/**
|
|
138
|
-
* Serialize an HLC to a sortable key component (26 bytes, big-endian).
|
|
139
|
-
* This format ensures lexicographic ordering matches HLC ordering.
|
|
140
|
-
*/
|
|
141
|
-
export declare function serializeHLCForKey(hlc: HLC): Uint8Array;
|
|
142
|
-
/**
|
|
143
|
-
* Deserialize an HLC from a key component.
|
|
144
|
-
*/
|
|
145
|
-
export declare function deserializeHLCFromKey(buffer: Uint8Array): HLC;
|
|
146
|
-
/**
|
|
147
|
-
* Build a change log key.
|
|
148
|
-
* Format: cl:{hlc_bytes}{type_byte}{schema}.{table}:{pk_json}:{column?}
|
|
149
|
-
*
|
|
150
|
-
* The HLC comes first to enable efficient range scans by time.
|
|
151
|
-
* type_byte: 0x01 for column change, 0x02 for delete
|
|
152
|
-
*/
|
|
153
|
-
export declare function buildChangeLogKey(hlc: HLC, entryType: ChangeLogEntryType, schemaName: string, tableName: string, pk: SqlValue[], column?: string): Uint8Array;
|
|
154
|
-
/**
|
|
155
|
-
* Build scan bounds for change log entries after a given HLC.
|
|
156
|
-
* Returns keys to scan cl:{sinceHLC}* to end of change log.
|
|
157
|
-
*/
|
|
158
|
-
export declare function buildChangeLogScanBoundsAfter(sinceHLC: HLC): {
|
|
159
|
-
gte: Uint8Array;
|
|
160
|
-
lt: Uint8Array;
|
|
161
|
-
};
|
|
162
|
-
/**
|
|
163
|
-
* Build scan bounds for all change log entries.
|
|
164
|
-
*/
|
|
165
|
-
export declare function buildAllChangeLogScanBounds(): {
|
|
166
|
-
gte: Uint8Array;
|
|
167
|
-
lt: Uint8Array;
|
|
168
|
-
};
|
|
169
|
-
/**
|
|
170
|
-
* Parse a change log key to extract components.
|
|
171
|
-
*/
|
|
172
|
-
export declare function parseChangeLogKey(key: Uint8Array): {
|
|
173
|
-
hlc: HLC;
|
|
174
|
-
entryType: ChangeLogEntryType;
|
|
175
|
-
schema: string;
|
|
176
|
-
table: string;
|
|
177
|
-
pk: SqlValue[];
|
|
178
|
-
column?: string;
|
|
179
|
-
} | null;
|
|
180
|
-
//# sourceMappingURL=keys.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../../src/metadata/keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,390 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Key builders for CRDT metadata storage.
|
|
3
|
-
*
|
|
4
|
-
* Key prefixes (sync-specific):
|
|
5
|
-
* cv: - Column versions (HLC per column per row)
|
|
6
|
-
* tb: - Tombstones (deleted row markers)
|
|
7
|
-
* tx: - Transaction records
|
|
8
|
-
* ps: - Peer sync state
|
|
9
|
-
* sm: - Schema migrations
|
|
10
|
-
* si: - Site identity
|
|
11
|
-
* hc: - HLC clock state
|
|
12
|
-
* cl: - Change log (HLC-indexed for efficient delta queries)
|
|
13
|
-
*/
|
|
14
|
-
const encoder = new TextEncoder();
|
|
15
|
-
/** Key prefix bytes for sync metadata. */
|
|
16
|
-
export const SYNC_KEY_PREFIX = {
|
|
17
|
-
COLUMN_VERSION: encoder.encode('cv:'),
|
|
18
|
-
TOMBSTONE: encoder.encode('tb:'),
|
|
19
|
-
TRANSACTION: encoder.encode('tx:'),
|
|
20
|
-
PEER_STATE: encoder.encode('ps:'),
|
|
21
|
-
SCHEMA_MIGRATION: encoder.encode('sm:'),
|
|
22
|
-
SITE_IDENTITY: encoder.encode('si:'),
|
|
23
|
-
HLC_STATE: encoder.encode('hc:'),
|
|
24
|
-
CHANGE_LOG: encoder.encode('cl:'),
|
|
25
|
-
};
|
|
26
|
-
/** Separator between key components. */
|
|
27
|
-
const SEPARATOR = ':';
|
|
28
|
-
/**
|
|
29
|
-
* Encode a primary key as a string for use in metadata keys.
|
|
30
|
-
* Uses JSON for simplicity and determinism.
|
|
31
|
-
*/
|
|
32
|
-
export function encodePK(pk) {
|
|
33
|
-
return JSON.stringify(pk);
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Decode a primary key from its string representation.
|
|
37
|
-
*/
|
|
38
|
-
export function decodePK(encoded) {
|
|
39
|
-
return JSON.parse(encoded);
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
* Build a column version key.
|
|
43
|
-
* Format: cv:{schema}.{table}:{pk_json}:{column}
|
|
44
|
-
*/
|
|
45
|
-
export function buildColumnVersionKey(schemaName, tableName, pk, column) {
|
|
46
|
-
const key = `cv:${schemaName}.${tableName}${SEPARATOR}${encodePK(pk)}${SEPARATOR}${column}`;
|
|
47
|
-
return encoder.encode(key);
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Build a tombstone key.
|
|
51
|
-
* Format: tb:{schema}.{table}:{pk_json}
|
|
52
|
-
*/
|
|
53
|
-
export function buildTombstoneKey(schemaName, tableName, pk) {
|
|
54
|
-
const key = `tb:${schemaName}.${tableName}${SEPARATOR}${encodePK(pk)}`;
|
|
55
|
-
return encoder.encode(key);
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Build a transaction record key.
|
|
59
|
-
* Format: tx:{transactionId}
|
|
60
|
-
*/
|
|
61
|
-
export function buildTransactionKey(transactionId) {
|
|
62
|
-
return encoder.encode(`tx:${transactionId}`);
|
|
63
|
-
}
|
|
64
|
-
// Base64url alphabet (RFC 4648 Section 5)
|
|
65
|
-
const BASE64URL_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_';
|
|
66
|
-
/**
|
|
67
|
-
* Build a peer sync state key.
|
|
68
|
-
* Format: ps:{siteId_base64url}
|
|
69
|
-
*/
|
|
70
|
-
export function buildPeerStateKey(siteId) {
|
|
71
|
-
// Inline base64url encoding to avoid import cycle
|
|
72
|
-
let base64 = '';
|
|
73
|
-
for (let i = 0; i < siteId.length; i += 3) {
|
|
74
|
-
const byte1 = siteId[i];
|
|
75
|
-
const byte2 = i + 1 < siteId.length ? siteId[i + 1] : 0;
|
|
76
|
-
const byte3 = i + 2 < siteId.length ? siteId[i + 2] : 0;
|
|
77
|
-
const triplet = (byte1 << 16) | (byte2 << 8) | byte3;
|
|
78
|
-
base64 += BASE64URL_CHARS[(triplet >>> 18) & 0x3f];
|
|
79
|
-
base64 += BASE64URL_CHARS[(triplet >>> 12) & 0x3f];
|
|
80
|
-
if (i + 1 < siteId.length)
|
|
81
|
-
base64 += BASE64URL_CHARS[(triplet >>> 6) & 0x3f];
|
|
82
|
-
if (i + 2 < siteId.length)
|
|
83
|
-
base64 += BASE64URL_CHARS[triplet & 0x3f];
|
|
84
|
-
}
|
|
85
|
-
return encoder.encode(`ps:${base64}`);
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Build a schema migration key.
|
|
89
|
-
* Format: sm:{schema}.{table}:{version}
|
|
90
|
-
*/
|
|
91
|
-
export function buildSchemaMigrationKey(schemaName, tableName, version) {
|
|
92
|
-
return encoder.encode(`sm:${schemaName}.${tableName}${SEPARATOR}${version.toString().padStart(10, '0')}`);
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Build scan bounds for all column versions of a row.
|
|
96
|
-
* Returns keys to scan cv:{schema}.{table}:{pk_json}:*
|
|
97
|
-
*/
|
|
98
|
-
export function buildColumnVersionScanBounds(schemaName, tableName, pk) {
|
|
99
|
-
const prefix = `cv:${schemaName}.${tableName}${SEPARATOR}${encodePK(pk)}${SEPARATOR}`;
|
|
100
|
-
return {
|
|
101
|
-
gte: encoder.encode(prefix),
|
|
102
|
-
lt: incrementLastByte(encoder.encode(prefix)),
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Build scan bounds for all tombstones in a table.
|
|
107
|
-
*/
|
|
108
|
-
export function buildTombstoneScanBounds(schemaName, tableName) {
|
|
109
|
-
const prefix = `tb:${schemaName}.${tableName}${SEPARATOR}`;
|
|
110
|
-
return {
|
|
111
|
-
gte: encoder.encode(prefix),
|
|
112
|
-
lt: incrementLastByte(encoder.encode(prefix)),
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Build scan bounds for all schema migrations of a table.
|
|
117
|
-
*/
|
|
118
|
-
export function buildSchemaMigrationScanBounds(schemaName, tableName) {
|
|
119
|
-
const prefix = `sm:${schemaName}.${tableName}${SEPARATOR}`;
|
|
120
|
-
return {
|
|
121
|
-
gte: encoder.encode(prefix),
|
|
122
|
-
lt: incrementLastByte(encoder.encode(prefix)),
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Increment the last byte of a key to create an exclusive upper bound.
|
|
127
|
-
*/
|
|
128
|
-
function incrementLastByte(key) {
|
|
129
|
-
const result = new Uint8Array(key.length);
|
|
130
|
-
result.set(key);
|
|
131
|
-
for (let i = result.length - 1; i >= 0; i--) {
|
|
132
|
-
if (result[i] < 255) {
|
|
133
|
-
result[i]++;
|
|
134
|
-
break;
|
|
135
|
-
}
|
|
136
|
-
result[i] = 0;
|
|
137
|
-
}
|
|
138
|
-
return result;
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Build scan bounds for ALL column versions across all tables.
|
|
142
|
-
*/
|
|
143
|
-
export function buildAllColumnVersionsScanBounds() {
|
|
144
|
-
return {
|
|
145
|
-
gte: SYNC_KEY_PREFIX.COLUMN_VERSION,
|
|
146
|
-
lt: incrementLastByte(SYNC_KEY_PREFIX.COLUMN_VERSION),
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Build scan bounds for ALL tombstones across all tables.
|
|
151
|
-
*/
|
|
152
|
-
export function buildAllTombstonesScanBounds() {
|
|
153
|
-
return {
|
|
154
|
-
gte: SYNC_KEY_PREFIX.TOMBSTONE,
|
|
155
|
-
lt: incrementLastByte(SYNC_KEY_PREFIX.TOMBSTONE),
|
|
156
|
-
};
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Build scan bounds for ALL schema migrations across all tables.
|
|
160
|
-
*/
|
|
161
|
-
export function buildAllSchemaMigrationsScanBounds() {
|
|
162
|
-
return {
|
|
163
|
-
gte: SYNC_KEY_PREFIX.SCHEMA_MIGRATION,
|
|
164
|
-
lt: incrementLastByte(SYNC_KEY_PREFIX.SCHEMA_MIGRATION),
|
|
165
|
-
};
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Parse a column version key to extract components.
|
|
169
|
-
* Key format: cv:{schema}.{table}:{pk_json}:{column}
|
|
170
|
-
*/
|
|
171
|
-
export function parseColumnVersionKey(key) {
|
|
172
|
-
const keyStr = new TextDecoder().decode(key);
|
|
173
|
-
if (!keyStr.startsWith('cv:'))
|
|
174
|
-
return null;
|
|
175
|
-
// cv:{schema}.{table}:{pk_json}:{column}
|
|
176
|
-
const rest = keyStr.slice(3); // Remove 'cv:'
|
|
177
|
-
const firstDot = rest.indexOf('.');
|
|
178
|
-
if (firstDot === -1)
|
|
179
|
-
return null;
|
|
180
|
-
const schema = rest.slice(0, firstDot);
|
|
181
|
-
const afterDot = rest.slice(firstDot + 1);
|
|
182
|
-
const firstColon = afterDot.indexOf(':');
|
|
183
|
-
if (firstColon === -1)
|
|
184
|
-
return null;
|
|
185
|
-
const table = afterDot.slice(0, firstColon);
|
|
186
|
-
const afterTable = afterDot.slice(firstColon + 1);
|
|
187
|
-
const lastColon = afterTable.lastIndexOf(':');
|
|
188
|
-
if (lastColon === -1)
|
|
189
|
-
return null;
|
|
190
|
-
const pkJson = afterTable.slice(0, lastColon);
|
|
191
|
-
const column = afterTable.slice(lastColon + 1);
|
|
192
|
-
try {
|
|
193
|
-
const pk = decodePK(pkJson);
|
|
194
|
-
return { schema, table, pk, column };
|
|
195
|
-
}
|
|
196
|
-
catch {
|
|
197
|
-
return null;
|
|
198
|
-
}
|
|
199
|
-
}
|
|
200
|
-
/**
|
|
201
|
-
* Parse a tombstone key to extract components.
|
|
202
|
-
* Key format: tb:{schema}.{table}:{pk_json}
|
|
203
|
-
*/
|
|
204
|
-
export function parseTombstoneKey(key) {
|
|
205
|
-
const keyStr = new TextDecoder().decode(key);
|
|
206
|
-
if (!keyStr.startsWith('tb:'))
|
|
207
|
-
return null;
|
|
208
|
-
// tb:{schema}.{table}:{pk_json}
|
|
209
|
-
const rest = keyStr.slice(3); // Remove 'tb:'
|
|
210
|
-
const firstDot = rest.indexOf('.');
|
|
211
|
-
if (firstDot === -1)
|
|
212
|
-
return null;
|
|
213
|
-
const schema = rest.slice(0, firstDot);
|
|
214
|
-
const afterDot = rest.slice(firstDot + 1);
|
|
215
|
-
const firstColon = afterDot.indexOf(':');
|
|
216
|
-
if (firstColon === -1)
|
|
217
|
-
return null;
|
|
218
|
-
const table = afterDot.slice(0, firstColon);
|
|
219
|
-
const pkJson = afterDot.slice(firstColon + 1);
|
|
220
|
-
try {
|
|
221
|
-
const pk = decodePK(pkJson);
|
|
222
|
-
return { schema, table, pk };
|
|
223
|
-
}
|
|
224
|
-
catch {
|
|
225
|
-
return null;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Parse a schema migration key to extract components.
|
|
230
|
-
* Key format: sm:{schema}.{table}:{version}
|
|
231
|
-
*/
|
|
232
|
-
export function parseSchemaMigrationKey(key) {
|
|
233
|
-
const keyStr = new TextDecoder().decode(key);
|
|
234
|
-
if (!keyStr.startsWith('sm:'))
|
|
235
|
-
return null;
|
|
236
|
-
// sm:{schema}.{table}:{version}
|
|
237
|
-
const rest = keyStr.slice(3); // Remove 'sm:'
|
|
238
|
-
const firstDot = rest.indexOf('.');
|
|
239
|
-
if (firstDot === -1)
|
|
240
|
-
return null;
|
|
241
|
-
const schema = rest.slice(0, firstDot);
|
|
242
|
-
const afterDot = rest.slice(firstDot + 1);
|
|
243
|
-
const firstColon = afterDot.indexOf(':');
|
|
244
|
-
if (firstColon === -1)
|
|
245
|
-
return null;
|
|
246
|
-
const table = afterDot.slice(0, firstColon);
|
|
247
|
-
const versionStr = afterDot.slice(firstColon + 1);
|
|
248
|
-
const version = parseInt(versionStr, 10);
|
|
249
|
-
if (isNaN(version))
|
|
250
|
-
return null;
|
|
251
|
-
return { schema, table, version };
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Serialize an HLC to a sortable key component (26 bytes, big-endian).
|
|
255
|
-
* This format ensures lexicographic ordering matches HLC ordering.
|
|
256
|
-
*/
|
|
257
|
-
export function serializeHLCForKey(hlc) {
|
|
258
|
-
const buffer = new Uint8Array(26);
|
|
259
|
-
const view = new DataView(buffer.buffer);
|
|
260
|
-
// Wall time as big-endian 64-bit
|
|
261
|
-
view.setBigUint64(0, hlc.wallTime, false);
|
|
262
|
-
// Counter as big-endian 16-bit
|
|
263
|
-
view.setUint16(8, hlc.counter, false);
|
|
264
|
-
// Site ID (16 bytes)
|
|
265
|
-
buffer.set(hlc.siteId, 10);
|
|
266
|
-
return buffer;
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Deserialize an HLC from a key component.
|
|
270
|
-
*/
|
|
271
|
-
export function deserializeHLCFromKey(buffer) {
|
|
272
|
-
const view = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
273
|
-
const wallTime = view.getBigUint64(0, false);
|
|
274
|
-
const counter = view.getUint16(8, false);
|
|
275
|
-
const siteId = new Uint8Array(buffer.slice(10, 26));
|
|
276
|
-
return { wallTime, counter, siteId };
|
|
277
|
-
}
|
|
278
|
-
/**
|
|
279
|
-
* Build a change log key.
|
|
280
|
-
* Format: cl:{hlc_bytes}{type_byte}{schema}.{table}:{pk_json}:{column?}
|
|
281
|
-
*
|
|
282
|
-
* The HLC comes first to enable efficient range scans by time.
|
|
283
|
-
* type_byte: 0x01 for column change, 0x02 for delete
|
|
284
|
-
*/
|
|
285
|
-
export function buildChangeLogKey(hlc, entryType, schemaName, tableName, pk, column) {
|
|
286
|
-
const hlcBytes = serializeHLCForKey(hlc);
|
|
287
|
-
const typeByte = entryType === 'column' ? 0x01 : 0x02;
|
|
288
|
-
const suffix = column
|
|
289
|
-
? `${schemaName}.${tableName}${SEPARATOR}${encodePK(pk)}${SEPARATOR}${column}`
|
|
290
|
-
: `${schemaName}.${tableName}${SEPARATOR}${encodePK(pk)}`;
|
|
291
|
-
const suffixBytes = encoder.encode(suffix);
|
|
292
|
-
// cl: (3) + hlc (26) + type (1) + suffix
|
|
293
|
-
const key = new Uint8Array(3 + 26 + 1 + suffixBytes.length);
|
|
294
|
-
key.set(SYNC_KEY_PREFIX.CHANGE_LOG, 0);
|
|
295
|
-
key.set(hlcBytes, 3);
|
|
296
|
-
key[29] = typeByte;
|
|
297
|
-
key.set(suffixBytes, 30);
|
|
298
|
-
return key;
|
|
299
|
-
}
|
|
300
|
-
/**
|
|
301
|
-
* Build scan bounds for change log entries after a given HLC.
|
|
302
|
-
* Returns keys to scan cl:{sinceHLC}* to end of change log.
|
|
303
|
-
*/
|
|
304
|
-
export function buildChangeLogScanBoundsAfter(sinceHLC) {
|
|
305
|
-
const hlcBytes = serializeHLCForKey(sinceHLC);
|
|
306
|
-
// Start just after sinceHLC
|
|
307
|
-
const gte = new Uint8Array(3 + 26);
|
|
308
|
-
gte.set(SYNC_KEY_PREFIX.CHANGE_LOG, 0);
|
|
309
|
-
gte.set(incrementHLCBytes(hlcBytes), 3);
|
|
310
|
-
return {
|
|
311
|
-
gte,
|
|
312
|
-
lt: incrementLastByte(SYNC_KEY_PREFIX.CHANGE_LOG),
|
|
313
|
-
};
|
|
314
|
-
}
|
|
315
|
-
/**
|
|
316
|
-
* Build scan bounds for all change log entries.
|
|
317
|
-
*/
|
|
318
|
-
export function buildAllChangeLogScanBounds() {
|
|
319
|
-
return {
|
|
320
|
-
gte: SYNC_KEY_PREFIX.CHANGE_LOG,
|
|
321
|
-
lt: incrementLastByte(SYNC_KEY_PREFIX.CHANGE_LOG),
|
|
322
|
-
};
|
|
323
|
-
}
|
|
324
|
-
/**
|
|
325
|
-
* Increment HLC bytes to get the next possible HLC key prefix.
|
|
326
|
-
*/
|
|
327
|
-
function incrementHLCBytes(hlcBytes) {
|
|
328
|
-
const result = new Uint8Array(hlcBytes.length);
|
|
329
|
-
result.set(hlcBytes);
|
|
330
|
-
for (let i = result.length - 1; i >= 0; i--) {
|
|
331
|
-
if (result[i] < 255) {
|
|
332
|
-
result[i]++;
|
|
333
|
-
break;
|
|
334
|
-
}
|
|
335
|
-
result[i] = 0;
|
|
336
|
-
}
|
|
337
|
-
return result;
|
|
338
|
-
}
|
|
339
|
-
/**
|
|
340
|
-
* Parse a change log key to extract components.
|
|
341
|
-
*/
|
|
342
|
-
export function parseChangeLogKey(key) {
|
|
343
|
-
// Minimum: cl: (3) + hlc (26) + type (1) + some suffix
|
|
344
|
-
if (key.length < 31)
|
|
345
|
-
return null;
|
|
346
|
-
const prefixStr = new TextDecoder().decode(key.slice(0, 3));
|
|
347
|
-
if (prefixStr !== 'cl:')
|
|
348
|
-
return null;
|
|
349
|
-
const hlcBytes = key.slice(3, 29);
|
|
350
|
-
const hlc = deserializeHLCFromKey(hlcBytes);
|
|
351
|
-
const typeByte = key[29];
|
|
352
|
-
const entryType = typeByte === 0x01 ? 'column' : 'delete';
|
|
353
|
-
const suffixStr = new TextDecoder().decode(key.slice(30));
|
|
354
|
-
// Parse suffix: {schema}.{table}:{pk_json}:{column?}
|
|
355
|
-
const firstDot = suffixStr.indexOf('.');
|
|
356
|
-
if (firstDot === -1)
|
|
357
|
-
return null;
|
|
358
|
-
const schema = suffixStr.slice(0, firstDot);
|
|
359
|
-
const afterDot = suffixStr.slice(firstDot + 1);
|
|
360
|
-
const firstColon = afterDot.indexOf(':');
|
|
361
|
-
if (firstColon === -1)
|
|
362
|
-
return null;
|
|
363
|
-
const table = afterDot.slice(0, firstColon);
|
|
364
|
-
const afterTable = afterDot.slice(firstColon + 1);
|
|
365
|
-
if (entryType === 'column') {
|
|
366
|
-
const lastColon = afterTable.lastIndexOf(':');
|
|
367
|
-
if (lastColon === -1)
|
|
368
|
-
return null;
|
|
369
|
-
const pkJson = afterTable.slice(0, lastColon);
|
|
370
|
-
const column = afterTable.slice(lastColon + 1);
|
|
371
|
-
try {
|
|
372
|
-
const pk = decodePK(pkJson);
|
|
373
|
-
return { hlc, entryType, schema, table, pk, column };
|
|
374
|
-
}
|
|
375
|
-
catch {
|
|
376
|
-
return null;
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
else {
|
|
380
|
-
// Delete entry - no column
|
|
381
|
-
try {
|
|
382
|
-
const pk = decodePK(afterTable);
|
|
383
|
-
return { hlc, entryType, schema, table, pk };
|
|
384
|
-
}
|
|
385
|
-
catch {
|
|
386
|
-
return null;
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
//# sourceMappingURL=keys.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../../../src/metadata/keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAElC,0CAA0C;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,cAAc,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IACrC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAChC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAClC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IACjC,gBAAgB,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IACvC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IACpC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAChC,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;CACzB,CAAC;AAEX,wCAAwC;AACxC,MAAM,SAAS,GAAG,GAAG,CAAC;AAEtB;;;GAGG;AACH,MAAM,UAAU,QAAQ,CAAC,EAAc;IACrC,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;AAC3C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAkB,EAClB,SAAiB,EACjB,EAAc,EACd,MAAc;IAEd,MAAM,GAAG,GAAG,MAAM,UAAU,IAAI,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC;IAC5F,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,SAAiB,EACjB,EAAc;IAEd,MAAM,GAAG,GAAG,MAAM,UAAU,IAAI,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IACvE,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,aAAqB;IACvD,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED,0CAA0C;AAC1C,MAAM,eAAe,GAAG,kEAAkE,CAAC;AAE3F;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAc;IAC9C,kDAAkD;IAClD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QACrD,MAAM,IAAI,eAAe,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACnD,MAAM,IAAI,eAAe,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,eAAe,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM;YAAE,MAAM,IAAI,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,UAAkB,EAClB,SAAiB,EACjB,OAAe;IAEf,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,UAAU,IAAI,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5G,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAC1C,UAAkB,EAClB,SAAiB,EACjB,EAAc;IAEd,MAAM,MAAM,GAAG,MAAM,UAAU,IAAI,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC;IACtF,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,EAAE,EAAE,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAAkB,EAClB,SAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,UAAU,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;IAC3D,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,EAAE,EAAE,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAC5C,UAAkB,EAClB,SAAiB;IAEjB,MAAM,MAAM,GAAG,MAAM,UAAU,IAAI,SAAS,GAAG,SAAS,EAAE,CAAC;IAC3D,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QAC3B,EAAE,EAAE,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,GAAe;IACxC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;YACpB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACZ,MAAM;QACR,CAAC;QACD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC;IAC9C,OAAO;QACL,GAAG,EAAE,eAAe,CAAC,cAAc;QACnC,EAAE,EAAE,iBAAiB,CAAC,eAAe,CAAC,cAAc,CAAC;KACtD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,4BAA4B;IAC1C,OAAO;QACL,GAAG,EAAE,eAAe,CAAC,SAAS;QAC9B,EAAE,EAAE,iBAAiB,CAAC,eAAe,CAAC,SAAS,CAAC;KACjD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kCAAkC;IAChD,OAAO;QACL,GAAG,EAAE,eAAe,CAAC,gBAAgB;QACrC,EAAE,EAAE,iBAAiB,CAAC,eAAe,CAAC,gBAAgB,CAAC;KACxD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAe;IAMnD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3C,yCAAyC;IACzC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,UAAU,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAE5C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IAC9C,IAAI,SAAS,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAe;IAK/C,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3C,gCAAgC;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,UAAU,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAE5C,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAE9C,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,GAAe;IAKrD,MAAM,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3C,gCAAgC;IAChC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;IAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,UAAU,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAE5C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAClD,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAEzC,IAAI,KAAK,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAEhC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACpC,CAAC;AAOD;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAQ;IACzC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzC,iCAAiC;IACjC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1C,+BAA+B;IAC/B,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACtC,qBAAqB;IACrB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3B,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAkB;IACtD,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACpD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AACvC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,GAAQ,EACR,SAA6B,EAC7B,UAAkB,EAClB,SAAiB,EACjB,EAAc,EACd,MAAe;IAEf,MAAM,QAAQ,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM;QACnB,CAAC,CAAC,GAAG,UAAU,IAAI,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,EAAE;QAC9E,CAAC,CAAC,GAAG,UAAU,IAAI,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IAC5D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE3C,yCAAyC;IACzC,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5D,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IACrB,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC;IACnB,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IAEzB,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,6BAA6B,CAAC,QAAa;IACzD,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC9C,4BAA4B;IAC5B,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACnC,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IACvC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAExC,OAAO;QACL,GAAG;QACH,EAAE,EAAE,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC;KAClD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B;IACzC,OAAO;QACL,GAAG,EAAE,eAAe,CAAC,UAAU;QAC/B,EAAE,EAAE,iBAAiB,CAAC,eAAe,CAAC,UAAU,CAAC;KAClD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,QAAoB;IAC7C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/C,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5C,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;YACpB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACZ,MAAM;QACR,CAAC;QACD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAe;IAQ/C,uDAAuD;IACvD,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE;QAAE,OAAO,IAAI,CAAC;IAEjC,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,SAAS,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IAErC,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClC,MAAM,GAAG,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAE5C,MAAM,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;IACzB,MAAM,SAAS,GAAuB,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;IAE9E,MAAM,SAAS,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAE1D,qDAAqD;IACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,IAAI,QAAQ,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAE5C,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,UAAU,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAE5C,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IAElD,IAAI,SAAS,KAAK,QAAQ,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,SAAS,KAAK,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAClC,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5B,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;QACvD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;SAAM,CAAC;QACN,2BAA2B;QAC3B,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;YAChC,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Peer sync state tracking.
|
|
3
|
-
*
|
|
4
|
-
* Tracks the last HLC we've synced to with each peer.
|
|
5
|
-
* Used to determine what changes to send during delta sync.
|
|
6
|
-
*/
|
|
7
|
-
import type { KVStore } from '@quereus/plugin-store';
|
|
8
|
-
import { type HLC } from '../clock/hlc.js';
|
|
9
|
-
import type { SiteId } from '../clock/site.js';
|
|
10
|
-
/**
|
|
11
|
-
* Peer sync state record.
|
|
12
|
-
*/
|
|
13
|
-
export interface PeerState {
|
|
14
|
-
lastSyncHLC: HLC;
|
|
15
|
-
lastSyncTime: number;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Serialize peer state for storage.
|
|
19
|
-
* Format: 26 bytes HLC + 8 bytes lastSyncTime
|
|
20
|
-
*/
|
|
21
|
-
export declare function serializePeerState(state: PeerState): Uint8Array;
|
|
22
|
-
/**
|
|
23
|
-
* Deserialize peer state from storage.
|
|
24
|
-
*/
|
|
25
|
-
export declare function deserializePeerState(buffer: Uint8Array): PeerState;
|
|
26
|
-
/**
|
|
27
|
-
* Peer state store operations.
|
|
28
|
-
*/
|
|
29
|
-
export declare class PeerStateStore {
|
|
30
|
-
private readonly kv;
|
|
31
|
-
constructor(kv: KVStore);
|
|
32
|
-
/**
|
|
33
|
-
* Get the sync state for a peer.
|
|
34
|
-
*/
|
|
35
|
-
getPeerState(peerSiteId: SiteId): Promise<PeerState | undefined>;
|
|
36
|
-
/**
|
|
37
|
-
* Update the sync state for a peer.
|
|
38
|
-
*/
|
|
39
|
-
setPeerState(peerSiteId: SiteId, hlc: HLC): Promise<void>;
|
|
40
|
-
/**
|
|
41
|
-
* Get all known peers.
|
|
42
|
-
*/
|
|
43
|
-
getAllPeers(): AsyncIterable<{
|
|
44
|
-
siteId: SiteId;
|
|
45
|
-
state: PeerState;
|
|
46
|
-
}>;
|
|
47
|
-
/**
|
|
48
|
-
* Delete peer state (e.g., when peer is no longer known).
|
|
49
|
-
*/
|
|
50
|
-
deletePeerState(peerSiteId: SiteId): Promise<void>;
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=peer-state.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"peer-state.d.ts","sourceRoot":"","sources":["../../../src/metadata/peer-state.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,KAAK,GAAG,EAAgC,MAAM,iBAAiB,CAAC;AACzE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI/C;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,WAAW,EAAE,GAAG,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,UAAU,CAS/D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,CAKlE;AAED;;GAEG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,OAAO;IAExC;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;IAOtE;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAS/D;;OAEG;IACI,WAAW,IAAI,aAAa,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,SAAS,CAAA;KAAE,CAAC;IAmBzE;;OAEG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIzD"}
|