@syncular/server-dialect-sqlite 0.0.1-60
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/dist/index.d.ts +113 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +655 -0
- package/dist/index.js.map +1 -0
- package/package.json +57 -0
- package/src/index.ts +928 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @syncular/server-dialect-sqlite - SQLite Server Sync Dialect
|
|
3
|
+
*
|
|
4
|
+
* SQLite adaptation of the commit-log based sync system.
|
|
5
|
+
* Works with any SQLite-compatible Kysely dialect (bun:sqlite, wa-sqlite, better-sqlite3, etc.).
|
|
6
|
+
*
|
|
7
|
+
* Key differences from Postgres:
|
|
8
|
+
* - No bigserial → INTEGER PRIMARY KEY AUTOINCREMENT
|
|
9
|
+
* - No JSONB → JSON stored as TEXT (with json_extract for filtering)
|
|
10
|
+
* - No array && overlap → JSON object key matching
|
|
11
|
+
* - No timestamptz → TEXT with ISO format
|
|
12
|
+
* - No GIN index → regular index + manual filtering
|
|
13
|
+
* - REPEATABLE READ → no-op (SQLite uses serializable by default)
|
|
14
|
+
*/
|
|
15
|
+
import type { ScopeValues, StoredScopes, SyncOp } from '@syncular/core';
|
|
16
|
+
import type { DbExecutor, ServerSyncDialect } from '@syncular/server';
|
|
17
|
+
import type { SyncChangeRow, SyncCommitRow, SyncCoreDb } from '@syncular/server/schema';
|
|
18
|
+
import type { Kysely, Transaction } from 'kysely';
|
|
19
|
+
export declare class SqliteServerSyncDialect implements ServerSyncDialect {
|
|
20
|
+
readonly name: "sqlite";
|
|
21
|
+
readonly supportsForUpdate = false;
|
|
22
|
+
readonly supportsSavepoints: boolean;
|
|
23
|
+
private readonly _supportsTransactions;
|
|
24
|
+
constructor(options?: {
|
|
25
|
+
supportsTransactions?: boolean;
|
|
26
|
+
});
|
|
27
|
+
ensureSyncSchema<DB extends SyncCoreDb>(db: Kysely<DB>): Promise<void>;
|
|
28
|
+
executeInTransaction<DB extends SyncCoreDb, T>(db: Kysely<DB>, fn: (executor: DbExecutor<DB>) => Promise<T>): Promise<T>;
|
|
29
|
+
setRepeatableRead<DB extends SyncCoreDb>(_trx: DbExecutor<DB>): Promise<void>;
|
|
30
|
+
readMaxCommitSeq<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, options?: {
|
|
31
|
+
partitionId?: string;
|
|
32
|
+
}): Promise<number>;
|
|
33
|
+
readMinCommitSeq<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, options?: {
|
|
34
|
+
partitionId?: string;
|
|
35
|
+
}): Promise<number>;
|
|
36
|
+
readCommitSeqsForPull<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, args: {
|
|
37
|
+
cursor: number;
|
|
38
|
+
limitCommits: number;
|
|
39
|
+
tables: string[];
|
|
40
|
+
partitionId?: string;
|
|
41
|
+
}): Promise<number[]>;
|
|
42
|
+
readCommits<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, commitSeqs: number[], options?: {
|
|
43
|
+
partitionId?: string;
|
|
44
|
+
}): Promise<SyncCommitRow[]>;
|
|
45
|
+
readChangesForCommits<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, args: {
|
|
46
|
+
commitSeqs: number[];
|
|
47
|
+
table: string;
|
|
48
|
+
scopes: ScopeValues;
|
|
49
|
+
partitionId?: string;
|
|
50
|
+
}): Promise<SyncChangeRow[]>;
|
|
51
|
+
readIncrementalPullRows<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, args: {
|
|
52
|
+
table: string;
|
|
53
|
+
scopes: ScopeValues;
|
|
54
|
+
cursor: number;
|
|
55
|
+
limitCommits: number;
|
|
56
|
+
partitionId?: string;
|
|
57
|
+
}): Promise<Array<{
|
|
58
|
+
commit_seq: number;
|
|
59
|
+
actor_id: string;
|
|
60
|
+
created_at: string;
|
|
61
|
+
change_id: number;
|
|
62
|
+
table: string;
|
|
63
|
+
row_id: string;
|
|
64
|
+
op: SyncOp;
|
|
65
|
+
row_json: unknown | null;
|
|
66
|
+
row_version: number | null;
|
|
67
|
+
scopes: StoredScopes;
|
|
68
|
+
}>>;
|
|
69
|
+
/**
|
|
70
|
+
* Streaming version of incremental pull for large result sets.
|
|
71
|
+
* Yields changes one at a time instead of loading all into memory.
|
|
72
|
+
*/
|
|
73
|
+
streamIncrementalPullRows<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, args: {
|
|
74
|
+
table: string;
|
|
75
|
+
scopes: ScopeValues;
|
|
76
|
+
cursor: number;
|
|
77
|
+
limitCommits: number;
|
|
78
|
+
partitionId?: string;
|
|
79
|
+
}): AsyncGenerator<{
|
|
80
|
+
commit_seq: number;
|
|
81
|
+
actor_id: string;
|
|
82
|
+
created_at: string;
|
|
83
|
+
change_id: number;
|
|
84
|
+
table: string;
|
|
85
|
+
row_id: string;
|
|
86
|
+
op: SyncOp;
|
|
87
|
+
row_json: unknown | null;
|
|
88
|
+
row_version: number | null;
|
|
89
|
+
scopes: StoredScopes;
|
|
90
|
+
}>;
|
|
91
|
+
compactChanges<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, args: {
|
|
92
|
+
fullHistoryHours: number;
|
|
93
|
+
}): Promise<number>;
|
|
94
|
+
recordClientCursor<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, args: {
|
|
95
|
+
partitionId?: string;
|
|
96
|
+
clientId: string;
|
|
97
|
+
actorId: string;
|
|
98
|
+
cursor: number;
|
|
99
|
+
effectiveScopes: ScopeValues;
|
|
100
|
+
}): Promise<void>;
|
|
101
|
+
scopesToDb(scopes: StoredScopes): string;
|
|
102
|
+
dbToScopes(value: unknown): StoredScopes;
|
|
103
|
+
dbToArray(value: unknown): string[];
|
|
104
|
+
arrayToDb(values: string[]): string;
|
|
105
|
+
readAffectedTablesFromChanges<DB extends SyncCoreDb>(db: Kysely<DB> | Transaction<DB>, commitSeq: number, options?: {
|
|
106
|
+
partitionId?: string;
|
|
107
|
+
}): Promise<string[]>;
|
|
108
|
+
ensureConsoleSchema<DB extends SyncCoreDb>(db: Kysely<DB>): Promise<void>;
|
|
109
|
+
}
|
|
110
|
+
export declare function createSqliteServerDialect(options?: {
|
|
111
|
+
supportsTransactions?: boolean;
|
|
112
|
+
}): SqliteServerSyncDialect;
|
|
113
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|