@syncular/client 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/blobs/index.d.ts +7 -0
- package/dist/blobs/index.d.ts.map +1 -0
- package/dist/blobs/index.js +7 -0
- package/dist/blobs/index.js.map +1 -0
- package/dist/blobs/manager.d.ts +345 -0
- package/dist/blobs/manager.d.ts.map +1 -0
- package/dist/blobs/manager.js +749 -0
- package/dist/blobs/manager.js.map +1 -0
- package/dist/blobs/migrate.d.ts +14 -0
- package/dist/blobs/migrate.d.ts.map +1 -0
- package/dist/blobs/migrate.js +59 -0
- package/dist/blobs/migrate.js.map +1 -0
- package/dist/blobs/types.d.ts +62 -0
- package/dist/blobs/types.d.ts.map +1 -0
- package/dist/blobs/types.js +5 -0
- package/dist/blobs/types.js.map +1 -0
- package/dist/client.d.ts +338 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +834 -0
- package/dist/client.js.map +1 -0
- package/dist/conflicts.d.ts +31 -0
- package/dist/conflicts.d.ts.map +1 -0
- package/dist/conflicts.js +118 -0
- package/dist/conflicts.js.map +1 -0
- package/dist/create-client.d.ts +115 -0
- package/dist/create-client.d.ts.map +1 -0
- package/dist/create-client.js +162 -0
- package/dist/create-client.js.map +1 -0
- package/dist/engine/SyncEngine.d.ts +215 -0
- package/dist/engine/SyncEngine.d.ts.map +1 -0
- package/dist/engine/SyncEngine.js +1066 -0
- package/dist/engine/SyncEngine.js.map +1 -0
- package/dist/engine/index.d.ts +6 -0
- package/dist/engine/index.d.ts.map +1 -0
- package/dist/engine/index.js +6 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/types.d.ts +230 -0
- package/dist/engine/types.d.ts.map +1 -0
- package/dist/engine/types.js +7 -0
- package/dist/engine/types.js.map +1 -0
- package/dist/handlers/create-handler.d.ts +110 -0
- package/dist/handlers/create-handler.d.ts.map +1 -0
- package/dist/handlers/create-handler.js +140 -0
- package/dist/handlers/create-handler.js.map +1 -0
- package/dist/handlers/registry.d.ts +15 -0
- package/dist/handlers/registry.d.ts.map +1 -0
- package/dist/handlers/registry.js +29 -0
- package/dist/handlers/registry.js.map +1 -0
- package/dist/handlers/types.d.ts +83 -0
- package/dist/handlers/types.d.ts.map +1 -0
- package/dist/handlers/types.js +5 -0
- package/dist/handlers/types.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/dist/migrate.d.ts +19 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +106 -0
- package/dist/migrate.js.map +1 -0
- package/dist/mutations.d.ts +138 -0
- package/dist/mutations.d.ts.map +1 -0
- package/dist/mutations.js +611 -0
- package/dist/mutations.js.map +1 -0
- package/dist/outbox.d.ts +112 -0
- package/dist/outbox.d.ts.map +1 -0
- package/dist/outbox.js +304 -0
- package/dist/outbox.js.map +1 -0
- package/dist/plugins/incrementing-version.d.ts +34 -0
- package/dist/plugins/incrementing-version.d.ts.map +1 -0
- package/dist/plugins/incrementing-version.js +83 -0
- package/dist/plugins/incrementing-version.js.map +1 -0
- package/dist/plugins/index.d.ts +3 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +3 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/types.d.ts +49 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +15 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/proxy/connection.d.ts +33 -0
- package/dist/proxy/connection.d.ts.map +1 -0
- package/dist/proxy/connection.js +153 -0
- package/dist/proxy/connection.js.map +1 -0
- package/dist/proxy/dialect.d.ts +46 -0
- package/dist/proxy/dialect.d.ts.map +1 -0
- package/dist/proxy/dialect.js +58 -0
- package/dist/proxy/dialect.js.map +1 -0
- package/dist/proxy/driver.d.ts +42 -0
- package/dist/proxy/driver.d.ts.map +1 -0
- package/dist/proxy/driver.js +78 -0
- package/dist/proxy/driver.js.map +1 -0
- package/dist/proxy/index.d.ts +10 -0
- package/dist/proxy/index.d.ts.map +1 -0
- package/dist/proxy/index.js +10 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/mutations.d.ts +9 -0
- package/dist/proxy/mutations.d.ts.map +1 -0
- package/dist/proxy/mutations.js +11 -0
- package/dist/proxy/mutations.js.map +1 -0
- package/dist/pull-engine.d.ts +45 -0
- package/dist/pull-engine.d.ts.map +1 -0
- package/dist/pull-engine.js +391 -0
- package/dist/pull-engine.js.map +1 -0
- package/dist/push-engine.d.ts +18 -0
- package/dist/push-engine.d.ts.map +1 -0
- package/dist/push-engine.js +155 -0
- package/dist/push-engine.js.map +1 -0
- package/dist/query/FingerprintCollector.d.ts +18 -0
- package/dist/query/FingerprintCollector.d.ts.map +1 -0
- package/dist/query/FingerprintCollector.js +28 -0
- package/dist/query/FingerprintCollector.js.map +1 -0
- package/dist/query/QueryContext.d.ts +33 -0
- package/dist/query/QueryContext.d.ts.map +1 -0
- package/dist/query/QueryContext.js +16 -0
- package/dist/query/QueryContext.js.map +1 -0
- package/dist/query/fingerprint.d.ts +61 -0
- package/dist/query/fingerprint.d.ts.map +1 -0
- package/dist/query/fingerprint.js +91 -0
- package/dist/query/fingerprint.js.map +1 -0
- package/dist/query/index.d.ts +7 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +7 -0
- package/dist/query/index.js.map +1 -0
- package/dist/query/tracked-select.d.ts +18 -0
- package/dist/query/tracked-select.d.ts.map +1 -0
- package/dist/query/tracked-select.js +90 -0
- package/dist/query/tracked-select.js.map +1 -0
- package/dist/schema.d.ts +83 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +7 -0
- package/dist/schema.js.map +1 -0
- package/dist/sync-loop.d.ts +32 -0
- package/dist/sync-loop.d.ts.map +1 -0
- package/dist/sync-loop.js +249 -0
- package/dist/sync-loop.js.map +1 -0
- package/dist/utils/id.d.ts +8 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +19 -0
- package/dist/utils/id.js.map +1 -0
- package/package.json +58 -0
- package/src/blobs/index.ts +7 -0
- package/src/blobs/manager.ts +1027 -0
- package/src/blobs/migrate.ts +67 -0
- package/src/blobs/types.ts +84 -0
- package/src/client.ts +1222 -0
- package/src/conflicts.ts +180 -0
- package/src/create-client.ts +297 -0
- package/src/engine/SyncEngine.ts +1337 -0
- package/src/engine/index.ts +6 -0
- package/src/engine/types.ts +268 -0
- package/src/handlers/create-handler.ts +287 -0
- package/src/handlers/registry.ts +36 -0
- package/src/handlers/types.ts +102 -0
- package/src/index.ts +25 -0
- package/src/migrate.ts +122 -0
- package/src/mutations.ts +926 -0
- package/src/outbox.ts +397 -0
- package/src/plugins/incrementing-version.ts +133 -0
- package/src/plugins/index.ts +2 -0
- package/src/plugins/types.ts +63 -0
- package/src/proxy/connection.ts +191 -0
- package/src/proxy/dialect.ts +76 -0
- package/src/proxy/driver.ts +126 -0
- package/src/proxy/index.ts +10 -0
- package/src/proxy/mutations.ts +18 -0
- package/src/pull-engine.ts +518 -0
- package/src/push-engine.ts +201 -0
- package/src/query/FingerprintCollector.ts +29 -0
- package/src/query/QueryContext.ts +54 -0
- package/src/query/fingerprint.ts +109 -0
- package/src/query/index.ts +10 -0
- package/src/query/tracked-select.ts +139 -0
- package/src/schema.ts +94 -0
- package/src/sync-loop.ts +368 -0
- package/src/utils/id.ts +20 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @syncular/client - Sync conflict storage helpers
|
|
3
|
+
*/
|
|
4
|
+
import type { SyncPushResponse } from '@syncular/core';
|
|
5
|
+
import type { Kysely } from 'kysely';
|
|
6
|
+
import type { SyncClientDb } from './schema';
|
|
7
|
+
export declare function upsertConflictsForRejectedCommit<DB extends SyncClientDb>(db: Kysely<DB>, args: {
|
|
8
|
+
outboxCommitId: string;
|
|
9
|
+
clientCommitId: string;
|
|
10
|
+
response: SyncPushResponse;
|
|
11
|
+
nowMs?: number;
|
|
12
|
+
}): Promise<number>;
|
|
13
|
+
export type PendingConflictRow = {
|
|
14
|
+
id: string;
|
|
15
|
+
outbox_commit_id: string;
|
|
16
|
+
client_commit_id: string;
|
|
17
|
+
op_index: number;
|
|
18
|
+
result_status: string;
|
|
19
|
+
message: string;
|
|
20
|
+
code: string | null;
|
|
21
|
+
server_version: number | null;
|
|
22
|
+
server_row_json: string | null;
|
|
23
|
+
created_at: number;
|
|
24
|
+
};
|
|
25
|
+
export declare function listPendingConflicts<DB extends SyncClientDb>(db: Kysely<DB>): Promise<PendingConflictRow[]>;
|
|
26
|
+
export declare function resolveConflict<DB extends SyncClientDb>(db: Kysely<DB>, args: {
|
|
27
|
+
id: string;
|
|
28
|
+
resolution: string;
|
|
29
|
+
nowMs?: number;
|
|
30
|
+
}): Promise<void>;
|
|
31
|
+
//# sourceMappingURL=conflicts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conflicts.d.ts","sourceRoot":"","sources":["../src/conflicts.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAuB,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAqC7C,wBAAsB,gCAAgC,CAAC,EAAE,SAAS,YAAY,EAC5E,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,IAAI,EAAE;IACJ,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,GACA,OAAO,CAAC,MAAM,CAAC,CA6EjB;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,EAAE,SAAS,YAAY,EAChE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,GACb,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAmB/B;AAED,wBAAsB,eAAe,CAAC,EAAE,SAAS,YAAY,EAC3D,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,EACd,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,GACvD,OAAO,CAAC,IAAI,CAAC,CASf"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @syncular/client - Sync conflict storage helpers
|
|
3
|
+
*/
|
|
4
|
+
import { sql } from 'kysely';
|
|
5
|
+
function randomId() {
|
|
6
|
+
if (typeof crypto !== 'undefined' &&
|
|
7
|
+
typeof crypto.randomUUID === 'function') {
|
|
8
|
+
return crypto.randomUUID();
|
|
9
|
+
}
|
|
10
|
+
return `${Date.now()}-${Math.random().toString(16).slice(2)}`;
|
|
11
|
+
}
|
|
12
|
+
function messageFromResult(r) {
|
|
13
|
+
if (r.status === 'conflict') {
|
|
14
|
+
return {
|
|
15
|
+
message: r.message,
|
|
16
|
+
code: 'CONFLICT',
|
|
17
|
+
serverVersion: r.server_version,
|
|
18
|
+
serverRowJson: JSON.stringify(r.server_row),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
message: r.error,
|
|
23
|
+
code: r.code ?? null,
|
|
24
|
+
serverVersion: null,
|
|
25
|
+
serverRowJson: null,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export async function upsertConflictsForRejectedCommit(db, args) {
|
|
29
|
+
const now = args.nowMs ?? Date.now();
|
|
30
|
+
// Remove any previous conflict rows for this outbox commit.
|
|
31
|
+
await sql `
|
|
32
|
+
delete from ${sql.table('sync_conflicts')}
|
|
33
|
+
where ${sql.ref('outbox_commit_id')} = ${sql.val(args.outboxCommitId)}
|
|
34
|
+
`.execute(db);
|
|
35
|
+
const conflictResults = args.response.results.filter((r) => r.status === 'conflict' || r.status === 'error');
|
|
36
|
+
if (conflictResults.length === 0)
|
|
37
|
+
return 0;
|
|
38
|
+
const rows = conflictResults.map((r) => {
|
|
39
|
+
const info = messageFromResult(r);
|
|
40
|
+
return {
|
|
41
|
+
id: randomId(),
|
|
42
|
+
outbox_commit_id: args.outboxCommitId,
|
|
43
|
+
client_commit_id: args.clientCommitId,
|
|
44
|
+
op_index: r.opIndex,
|
|
45
|
+
result_status: r.status,
|
|
46
|
+
message: info.message,
|
|
47
|
+
code: info.code,
|
|
48
|
+
server_version: info.serverVersion,
|
|
49
|
+
server_row_json: info.serverRowJson,
|
|
50
|
+
created_at: now,
|
|
51
|
+
resolved_at: null,
|
|
52
|
+
resolution: null,
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
const insertColumns = [
|
|
56
|
+
'id',
|
|
57
|
+
'outbox_commit_id',
|
|
58
|
+
'client_commit_id',
|
|
59
|
+
'op_index',
|
|
60
|
+
'result_status',
|
|
61
|
+
'message',
|
|
62
|
+
'code',
|
|
63
|
+
'server_version',
|
|
64
|
+
'server_row_json',
|
|
65
|
+
'created_at',
|
|
66
|
+
'resolved_at',
|
|
67
|
+
'resolution',
|
|
68
|
+
];
|
|
69
|
+
await sql `
|
|
70
|
+
insert into ${sql.table('sync_conflicts')} (
|
|
71
|
+
${sql.join(insertColumns.map((c) => sql.ref(c)))}
|
|
72
|
+
) values ${sql.join(rows.map((row) => sql `(${sql.join([
|
|
73
|
+
sql.val(row.id),
|
|
74
|
+
sql.val(row.outbox_commit_id),
|
|
75
|
+
sql.val(row.client_commit_id),
|
|
76
|
+
sql.val(row.op_index),
|
|
77
|
+
sql.val(row.result_status),
|
|
78
|
+
sql.val(row.message),
|
|
79
|
+
sql.val(row.code),
|
|
80
|
+
sql.val(row.server_version),
|
|
81
|
+
sql.val(row.server_row_json),
|
|
82
|
+
sql.val(row.created_at),
|
|
83
|
+
sql.val(row.resolved_at),
|
|
84
|
+
sql.val(row.resolution),
|
|
85
|
+
], sql `, `)})`), sql `, `)}
|
|
86
|
+
`.execute(db);
|
|
87
|
+
return conflictResults.length;
|
|
88
|
+
}
|
|
89
|
+
export async function listPendingConflicts(db) {
|
|
90
|
+
const res = await sql `
|
|
91
|
+
select
|
|
92
|
+
${sql.ref('id')},
|
|
93
|
+
${sql.ref('outbox_commit_id')},
|
|
94
|
+
${sql.ref('client_commit_id')},
|
|
95
|
+
${sql.ref('op_index')},
|
|
96
|
+
${sql.ref('result_status')},
|
|
97
|
+
${sql.ref('message')},
|
|
98
|
+
${sql.ref('code')},
|
|
99
|
+
${sql.ref('server_version')},
|
|
100
|
+
${sql.ref('server_row_json')},
|
|
101
|
+
${sql.ref('created_at')}
|
|
102
|
+
from ${sql.table('sync_conflicts')}
|
|
103
|
+
where ${sql.ref('resolved_at')} is null
|
|
104
|
+
order by ${sql.ref('created_at')} desc
|
|
105
|
+
`.execute(db);
|
|
106
|
+
return res.rows;
|
|
107
|
+
}
|
|
108
|
+
export async function resolveConflict(db, args) {
|
|
109
|
+
const now = args.nowMs ?? Date.now();
|
|
110
|
+
await sql `
|
|
111
|
+
update ${sql.table('sync_conflicts')}
|
|
112
|
+
set
|
|
113
|
+
${sql.ref('resolved_at')} = ${sql.val(now)},
|
|
114
|
+
${sql.ref('resolution')} = ${sql.val(args.resolution)}
|
|
115
|
+
where ${sql.ref('id')} = ${sql.val(args.id)}
|
|
116
|
+
`.execute(db);
|
|
117
|
+
}
|
|
118
|
+
//# sourceMappingURL=conflicts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conflicts.js","sourceRoot":"","sources":["../src/conflicts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simplified client factory
|
|
3
|
+
*
|
|
4
|
+
* Breaking changes from legacy Client:
|
|
5
|
+
* - handlers: array instead of ClientTableRegistry
|
|
6
|
+
* - url: string instead of transport (transport auto-created)
|
|
7
|
+
* - subscriptions: derived from handler.subscribe (no separate param)
|
|
8
|
+
* - clientId: auto-generated (no longer required)
|
|
9
|
+
*/
|
|
10
|
+
import type { SyncTransport } from '@syncular/core';
|
|
11
|
+
import type { Kysely } from 'kysely';
|
|
12
|
+
import { Client } from './client';
|
|
13
|
+
import type { ClientTableHandler } from './handlers/types';
|
|
14
|
+
import type { SyncClientDb } from './schema';
|
|
15
|
+
interface CreateClientOptions<DB extends SyncClientDb> {
|
|
16
|
+
/** Kysely database instance */
|
|
17
|
+
db: Kysely<DB>;
|
|
18
|
+
/**
|
|
19
|
+
* Server URL (e.g., '/api/sync' or 'https://api.example.com').
|
|
20
|
+
* Defaults to '/api/sync' if not provided.
|
|
21
|
+
* Ignored if transport is provided.
|
|
22
|
+
*/
|
|
23
|
+
url?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Table handlers for applying snapshots and changes.
|
|
26
|
+
* Array is auto-converted to ClientTableRegistry.
|
|
27
|
+
* Handlers with `subscribe: true` (or an object) are synced.
|
|
28
|
+
* Handlers with `subscribe: false` are local-only.
|
|
29
|
+
* Either handlers or tables must be provided.
|
|
30
|
+
*/
|
|
31
|
+
handlers?: Array<ClientTableHandler<DB>>;
|
|
32
|
+
/**
|
|
33
|
+
* Table names to auto-generate handlers for.
|
|
34
|
+
* Uses default scopes and primary key 'id'.
|
|
35
|
+
* Either handlers or tables must be provided.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```typescript
|
|
39
|
+
* tables: ['tasks', 'notes', 'projects']
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
tables?: string[];
|
|
43
|
+
/**
|
|
44
|
+
* Default scopes for auto-generated table handlers.
|
|
45
|
+
* Required when using tables option.
|
|
46
|
+
* Ignored when handlers are provided.
|
|
47
|
+
*/
|
|
48
|
+
scopes?: string[];
|
|
49
|
+
/** Current actor/user identifier */
|
|
50
|
+
actorId: string;
|
|
51
|
+
/** Optional: Custom client ID (auto-generated UUID if not provided) */
|
|
52
|
+
clientId?: string;
|
|
53
|
+
/** Optional: Custom transport (overrides url) */
|
|
54
|
+
transport?: SyncTransport;
|
|
55
|
+
/** Optional: Function to get auth headers */
|
|
56
|
+
getHeaders?: () => Record<string, string> | Promise<Record<string, string>>;
|
|
57
|
+
/** Optional: Sync configuration */
|
|
58
|
+
sync?: {
|
|
59
|
+
/** Enable realtime/WebSocket mode (default: true) */
|
|
60
|
+
realtime?: boolean;
|
|
61
|
+
/** Polling interval in ms (default: 10000) */
|
|
62
|
+
pollIntervalMs?: number;
|
|
63
|
+
};
|
|
64
|
+
/** Optional: Local blob storage adapter */
|
|
65
|
+
blobStorage?: import('./client').ClientBlobStorage;
|
|
66
|
+
/** Optional: Sync plugins */
|
|
67
|
+
plugins?: import('./plugins').SyncClientPlugin[];
|
|
68
|
+
/** Optional: State ID for multi-tenant scenarios */
|
|
69
|
+
stateId?: string;
|
|
70
|
+
/** Optional: Auto-start sync (default: true) */
|
|
71
|
+
autoStart?: boolean;
|
|
72
|
+
}
|
|
73
|
+
interface CreateClientResult<DB extends SyncClientDb> {
|
|
74
|
+
/** The client instance */
|
|
75
|
+
client: Client<DB>;
|
|
76
|
+
/** Stop sync */
|
|
77
|
+
stop: () => void;
|
|
78
|
+
/** Destroy client and cleanup */
|
|
79
|
+
destroy: () => void;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Create a simplified sync client.
|
|
83
|
+
*
|
|
84
|
+
* Auto-generates clientId, creates transport from URL (default: '/api/sync'),
|
|
85
|
+
* builds subscriptions from handlers.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* // Auto-generate handlers for simple tables (default URL: '/api/sync')
|
|
90
|
+
* const { client } = await createClient({
|
|
91
|
+
* db,
|
|
92
|
+
* actorId: 'user-123',
|
|
93
|
+
* tables: ['tasks', 'notes'],
|
|
94
|
+
* scopes: ['user:{user_id}'],
|
|
95
|
+
* });
|
|
96
|
+
*
|
|
97
|
+
* // With custom handlers for advanced cases
|
|
98
|
+
* const { client } = await createClient({
|
|
99
|
+
* db,
|
|
100
|
+
* actorId: 'user-123',
|
|
101
|
+
* handlers: [
|
|
102
|
+
* tasksHandler, // subscribe: true by default
|
|
103
|
+
* notesHandler, // subscribe: true by default
|
|
104
|
+
* draftsHandler, // subscribe: false (local-only)
|
|
105
|
+
* ],
|
|
106
|
+
* });
|
|
107
|
+
*
|
|
108
|
+
* // Listen for events
|
|
109
|
+
* client.on('sync:error', (err) => console.error(err));
|
|
110
|
+
* client.on('data:change', (scopes) => console.log('Data changed:', scopes));
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export declare function createClient<DB extends SyncClientDb>(options: CreateClientOptions<DB>): Promise<CreateClientResult<DB>>;
|
|
114
|
+
export {};
|
|
115
|
+
//# sourceMappingURL=create-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAGV,aAAa,EACd,MAAM,gBAAgB,CAAC;AAGxB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AA4C7C,UAAU,mBAAmB,CAAC,EAAE,SAAS,YAAY;IACnD,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAEf;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;IAEzC;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAEhB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,iDAAiD;IACjD,SAAS,CAAC,EAAE,aAAa,CAAC;IAE1B,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAE5E,mCAAmC;IACnC,IAAI,CAAC,EAAE;QACL,qDAAqD;QACrD,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,8CAA8C;QAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IAEF,2CAA2C;IAC3C,WAAW,CAAC,EAAE,OAAO,UAAU,EAAE,iBAAiB,CAAC;IAEnD,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAEjD,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,gDAAgD;IAChD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,kBAAkB,CAAC,EAAE,SAAS,YAAY;IAClD,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACnB,gBAAgB;IAChB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,iCAAiC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAsB,YAAY,CAAC,EAAE,SAAS,YAAY,EACxD,OAAO,EAAE,mBAAmB,CAAC,EAAE,CAAC,GAC/B,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAmHjC"}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simplified client factory
|
|
3
|
+
*
|
|
4
|
+
* Breaking changes from legacy Client:
|
|
5
|
+
* - handlers: array instead of ClientTableRegistry
|
|
6
|
+
* - url: string instead of transport (transport auto-created)
|
|
7
|
+
* - subscriptions: derived from handler.subscribe (no separate param)
|
|
8
|
+
* - clientId: auto-generated (no longer required)
|
|
9
|
+
*/
|
|
10
|
+
import { extractScopeVars } from '@syncular/core';
|
|
11
|
+
import { createHttpTransport } from '@syncular/transport-http';
|
|
12
|
+
import { Client } from './client';
|
|
13
|
+
import { createClientHandler } from './handlers/create-handler';
|
|
14
|
+
import { ClientTableRegistry } from './handlers/registry';
|
|
15
|
+
import { randomUUID } from './utils/id';
|
|
16
|
+
function deriveDefaultSubscriptionScopes(args) {
|
|
17
|
+
const patterns = args.handler.scopePatterns ?? [];
|
|
18
|
+
const vars = new Set();
|
|
19
|
+
for (const pattern of patterns) {
|
|
20
|
+
for (const v of extractScopeVars(pattern)) {
|
|
21
|
+
vars.add(v);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const allVars = Array.from(vars);
|
|
25
|
+
if (allVars.length !== 1) {
|
|
26
|
+
throw new Error(`Handler "${args.handler.table}" has subscribe=true but no explicit subscription scopes. ` +
|
|
27
|
+
'Set subscribe: { scopes: { ... } } on the handler. ' +
|
|
28
|
+
`(Cannot infer defaults from scopePatterns: ${patterns.length > 0 ? patterns.join(', ') : '(none)'})`);
|
|
29
|
+
}
|
|
30
|
+
const varName = allVars[0];
|
|
31
|
+
return { [varName]: args.actorId };
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Auto-generate a simple handler for a table.
|
|
35
|
+
* Uses 'id' as primary key and provided scopes.
|
|
36
|
+
*/
|
|
37
|
+
function createAutoHandler(table, scopes) {
|
|
38
|
+
return createClientHandler({
|
|
39
|
+
table: table,
|
|
40
|
+
scopes: scopes,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Create a simplified sync client.
|
|
45
|
+
*
|
|
46
|
+
* Auto-generates clientId, creates transport from URL (default: '/api/sync'),
|
|
47
|
+
* builds subscriptions from handlers.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* // Auto-generate handlers for simple tables (default URL: '/api/sync')
|
|
52
|
+
* const { client } = await createClient({
|
|
53
|
+
* db,
|
|
54
|
+
* actorId: 'user-123',
|
|
55
|
+
* tables: ['tasks', 'notes'],
|
|
56
|
+
* scopes: ['user:{user_id}'],
|
|
57
|
+
* });
|
|
58
|
+
*
|
|
59
|
+
* // With custom handlers for advanced cases
|
|
60
|
+
* const { client } = await createClient({
|
|
61
|
+
* db,
|
|
62
|
+
* actorId: 'user-123',
|
|
63
|
+
* handlers: [
|
|
64
|
+
* tasksHandler, // subscribe: true by default
|
|
65
|
+
* notesHandler, // subscribe: true by default
|
|
66
|
+
* draftsHandler, // subscribe: false (local-only)
|
|
67
|
+
* ],
|
|
68
|
+
* });
|
|
69
|
+
*
|
|
70
|
+
* // Listen for events
|
|
71
|
+
* client.on('sync:error', (err) => console.error(err));
|
|
72
|
+
* client.on('data:change', (scopes) => console.log('Data changed:', scopes));
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
export async function createClient(options) {
|
|
76
|
+
const { db, url = '/api/sync', handlers: providedHandlers, tables, scopes, actorId, clientId = randomUUID(), transport: customTransport, getHeaders, sync = {}, blobStorage, plugins, stateId, autoStart = true, } = options;
|
|
77
|
+
// Validate options
|
|
78
|
+
if (!providedHandlers && !tables) {
|
|
79
|
+
throw new Error('Either handlers or tables must be provided');
|
|
80
|
+
}
|
|
81
|
+
if (tables && !scopes) {
|
|
82
|
+
throw new Error('scopes is required when using tables option');
|
|
83
|
+
}
|
|
84
|
+
// Auto-generate handlers from tables if needed
|
|
85
|
+
const handlers = providedHandlers ??
|
|
86
|
+
tables.map((table) => createAutoHandler(table, scopes));
|
|
87
|
+
// Build registry from handlers array
|
|
88
|
+
const tableHandlers = new ClientTableRegistry();
|
|
89
|
+
for (const handler of handlers) {
|
|
90
|
+
tableHandlers.register(handler);
|
|
91
|
+
}
|
|
92
|
+
// Create transport from URL if not provided
|
|
93
|
+
let transport = customTransport;
|
|
94
|
+
if (!transport && url) {
|
|
95
|
+
transport = createHttpTransport({
|
|
96
|
+
baseUrl: url,
|
|
97
|
+
getHeaders,
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
if (!transport) {
|
|
101
|
+
throw new Error('Either url or transport must be provided');
|
|
102
|
+
}
|
|
103
|
+
// Build subscriptions from handlers
|
|
104
|
+
const subscriptions = handlers
|
|
105
|
+
.map((handler) => {
|
|
106
|
+
const sub = handler.subscribe;
|
|
107
|
+
// Skip handlers that are explicitly disabled
|
|
108
|
+
if (sub === false)
|
|
109
|
+
return null;
|
|
110
|
+
if (sub === true || sub === undefined) {
|
|
111
|
+
// Default: subscribe to the handler's single scope var using actorId.
|
|
112
|
+
// This avoids sending `{}` which would be treated as revoked by the server.
|
|
113
|
+
const scopes = deriveDefaultSubscriptionScopes({
|
|
114
|
+
handler,
|
|
115
|
+
actorId,
|
|
116
|
+
});
|
|
117
|
+
return {
|
|
118
|
+
id: handler.table,
|
|
119
|
+
shape: handler.table,
|
|
120
|
+
scopes,
|
|
121
|
+
params: {},
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
// Custom subscription config
|
|
125
|
+
const scopes = sub.scopes ?? {};
|
|
126
|
+
if (Object.keys(scopes).length === 0) {
|
|
127
|
+
throw new Error(`Handler "${handler.table}" subscription scopes cannot be empty. ` +
|
|
128
|
+
'Set subscribe: false or provide subscribe.scopes.');
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
id: handler.table,
|
|
132
|
+
shape: handler.table,
|
|
133
|
+
scopes,
|
|
134
|
+
params: sub.params ?? {},
|
|
135
|
+
};
|
|
136
|
+
})
|
|
137
|
+
.filter((sub) => sub !== null);
|
|
138
|
+
// Create client
|
|
139
|
+
const client = new Client({
|
|
140
|
+
db,
|
|
141
|
+
transport,
|
|
142
|
+
tableHandlers,
|
|
143
|
+
clientId,
|
|
144
|
+
actorId,
|
|
145
|
+
subscriptions,
|
|
146
|
+
blobStorage,
|
|
147
|
+
plugins,
|
|
148
|
+
stateId,
|
|
149
|
+
realtimeEnabled: sync.realtime ?? true,
|
|
150
|
+
pollIntervalMs: sync.pollIntervalMs,
|
|
151
|
+
});
|
|
152
|
+
// Auto-start
|
|
153
|
+
if (autoStart) {
|
|
154
|
+
await client.start();
|
|
155
|
+
}
|
|
156
|
+
return {
|
|
157
|
+
client,
|
|
158
|
+
stop: () => client.stop(),
|
|
159
|
+
destroy: () => client.destroy(),
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
//# sourceMappingURL=create-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-client.js","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"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"}
|