@syncular/server 0.0.2-128 → 0.0.2-133

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.
@@ -1 +1 @@
1
- {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAc,MAAM,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAEjD,MAAM,WAAW,4BAA4B,CAAC,EAAE,SAAS,UAAU;IACjE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,iDAAiD;IACjD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,8BAA8B;IAC7C,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAAC,EAAE,SAAS,UAAU,EAClE,IAAI,EAAE,4BAA4B,CAAC,EAAE,CAAC,GACrC,OAAO,CAAC,8BAA8B,CAAC,CA6EzC"}
1
+ {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAc,MAAM,EAAE,MAAM,QAAQ,CAAC;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AAWjD,MAAM,WAAW,4BAA4B,CAAC,EAAE,SAAS,UAAU;IACjE,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,iDAAiD;IACjD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,8BAA8B;IAC7C,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;;GASG;AACH,wBAAsB,wBAAwB,CAAC,EAAE,SAAS,UAAU,EAClE,IAAI,EAAE,4BAA4B,CAAC,EAAE,CAAC,GACrC,OAAO,CAAC,8BAA8B,CAAC,CA6EzC"}
package/dist/notify.js CHANGED
@@ -13,6 +13,13 @@ import { randomUUID } from 'node:crypto';
13
13
  * Used by the pull handler to detect external data changes.
14
14
  */
15
15
  export const EXTERNAL_CLIENT_ID = '__external__';
16
+ function toDialectJsonValue(dialect, value) {
17
+ if (value === null || value === undefined)
18
+ return null;
19
+ if (dialect.name === 'sqlite')
20
+ return JSON.stringify(value);
21
+ return value;
22
+ }
16
23
  /**
17
24
  * Notify the sync framework about external data changes.
18
25
  *
@@ -40,7 +47,7 @@ export async function notifyExternalDataChange(args) {
40
47
  client_id: EXTERNAL_CLIENT_ID,
41
48
  client_commit_id: clientCommitId,
42
49
  meta: null,
43
- result_json: { ok: true, status: 'applied' },
50
+ result_json: toDialectJsonValue(dialect, { ok: true, status: 'applied' }),
44
51
  change_count: 0,
45
52
  affected_tables: dialect.arrayToDb(tables),
46
53
  };
@@ -1 +1 @@
1
- {"version":3,"file":"notify.js","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notify.js","sourceRoot":"","sources":["../src/notify.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"oplog.d.ts","sourceRoot":"","sources":["../../src/proxy/oplog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,MAAM,EAAO,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AASjD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE;IACpE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACjC,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CA8G3D"}
1
+ {"version":3,"file":"oplog.d.ts","sourceRoot":"","sources":["../../src/proxy/oplog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,KAAK,MAAM,EAAO,MAAM,QAAQ,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAkBjD;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE;IACpE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACjC,GAAG,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiH3D"}
@@ -11,6 +11,13 @@ import { sql } from 'kysely';
11
11
  function generateId() {
12
12
  return randomUUID();
13
13
  }
14
+ function toDialectJsonValue(dialect, value) {
15
+ if (value === null || value === undefined)
16
+ return null;
17
+ if (dialect.name === 'sqlite')
18
+ return JSON.stringify(value);
19
+ return value;
20
+ }
14
21
  /**
15
22
  * Create oplog entries for affected rows.
16
23
  *
@@ -61,7 +68,7 @@ export async function createOplogEntries(args) {
61
68
  table: handler.table,
62
69
  row_id: String(row[pk]),
63
70
  op: operation,
64
- row_json: operation === 'delete' ? null : row,
71
+ row_json: operation === 'delete' ? null : toDialectJsonValue(dialect, row),
65
72
  row_version: row[versionCol] != null ? Number(row[versionCol]) : null,
66
73
  scopes: dialect.scopesToDb(scopes),
67
74
  };
@@ -94,7 +101,9 @@ export async function createOplogEntries(args) {
94
101
  const sortedAffectedTables = affectedTables.sort();
95
102
  await sql `
96
103
  update ${sql.table('sync_commits')}
97
- set change_count = ${rows.length}, affected_tables = ${sortedAffectedTables}
104
+ set
105
+ change_count = ${rows.length},
106
+ affected_tables = ${dialect.arrayToDb(sortedAffectedTables)}
98
107
  where commit_seq = ${commitSeq}
99
108
  `.execute(trx);
100
109
  // Insert table commits for subscription filtering
@@ -1 +1 @@
1
- {"version":3,"file":"oplog.js","sourceRoot":"","sources":["../../src/proxy/oplog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oplog.js","sourceRoot":"","sources":["../../src/proxy/oplog.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAEV,MAAM,EAIP,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAK3C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B;;;OAGG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;;;OAGG;IACH,cAAc,EAAE,UAAU,EAAE,CAAC;CAC9B;AA6FD,wBAAsB,UAAU,CAAC,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE;IAC5D,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;CAC1B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwb5B"}
1
+ {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,gBAAgB,EAEtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAEV,MAAM,EAIP,MAAM,QAAQ,CAAC;AAEhB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAK3C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B;;;OAGG;IACH,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB;;;;OAIG;IACH,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB;;;OAGG;IACH,cAAc,EAAE,UAAU,EAAE,CAAC;CAC9B;AAyHD,wBAAsB,UAAU,CAAC,EAAE,SAAS,UAAU,EAAE,IAAI,EAAE;IAC5D,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,iBAAiB,CAAC;IAC3B,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;CAC1B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwb5B"}
package/dist/push.js CHANGED
@@ -8,6 +8,29 @@ class RejectCommitError extends Error {
8
8
  this.name = 'RejectCommitError';
9
9
  }
10
10
  }
11
+ function toDialectJsonValue(dialect, value) {
12
+ if (value === null || value === undefined)
13
+ return null;
14
+ if (dialect.name === 'sqlite')
15
+ return JSON.stringify(value);
16
+ return value;
17
+ }
18
+ function parseJsonValue(value) {
19
+ if (typeof value !== 'string')
20
+ return value;
21
+ try {
22
+ return JSON.parse(value);
23
+ }
24
+ catch {
25
+ return value;
26
+ }
27
+ }
28
+ function isRecord(value) {
29
+ return typeof value === 'object' && value !== null;
30
+ }
31
+ function isSyncPushResponse(value) {
32
+ return (isRecord(value) && value.ok === true && typeof value.status === 'string');
33
+ }
11
34
  async function readCommitAffectedTables(db, dialect, commitSeq, partitionId) {
12
35
  try {
13
36
  const commitsQ = db.selectFrom('sync_commits');
@@ -57,8 +80,8 @@ function recordPushMetrics(args) {
57
80
  });
58
81
  }
59
82
  export async function pushCommit(args) {
60
- const { request, dialect } = args;
61
- const db = args.db;
83
+ const { db, dialect, handlers, request } = args;
84
+ const actorId = args.actorId;
62
85
  const partitionId = args.partitionId ?? 'default';
63
86
  const requestedOps = Array.isArray(request.operations)
64
87
  ? request.operations
@@ -146,7 +169,7 @@ export async function pushCommit(args) {
146
169
  // Insert commit row (idempotency key)
147
170
  const commitRow = {
148
171
  partition_id: partitionId,
149
- actor_id: args.actorId,
172
+ actor_id: actorId,
150
173
  client_id: request.clientId,
151
174
  client_commit_id: request.clientCommitId,
152
175
  meta: null,
@@ -172,8 +195,8 @@ export async function pushCommit(args) {
172
195
  query = query.forUpdate();
173
196
  }
174
197
  const existing = await query.executeTakeFirstOrThrow();
175
- const cached = existing.result_json;
176
- if (!cached || cached.ok !== true) {
198
+ const parsedCached = parseJsonValue(existing.result_json);
199
+ if (!isSyncPushResponse(parsedCached)) {
177
200
  return {
178
201
  response: {
179
202
  ok: true,
@@ -194,10 +217,10 @@ export async function pushCommit(args) {
194
217
  };
195
218
  }
196
219
  const base = {
197
- ...cached,
220
+ ...parsedCached,
198
221
  commitSeq: Number(existing.commit_seq),
199
222
  };
200
- if (cached.status === 'applied') {
223
+ if (parsedCached.status === 'applied') {
201
224
  const tablesFromDb = dialect.dbToArray(existing.affected_tables);
202
225
  return {
203
226
  response: { ...base, status: 'cached' },
@@ -238,11 +261,11 @@ export async function pushCommit(args) {
238
261
  const affectedTablesSet = new Set();
239
262
  for (let i = 0; i < ops.length; i++) {
240
263
  const op = ops[i];
241
- const handler = args.handlers.getOrThrow(op.table);
264
+ const handler = handlers.getOrThrow(op.table);
242
265
  const applied = await handler.applyOperation({
243
266
  db: trx,
244
267
  trx,
245
- actorId: args.actorId,
268
+ actorId,
246
269
  clientId: request.clientId,
247
270
  commitId,
248
271
  schemaVersion: request.schemaVersion,
@@ -288,7 +311,7 @@ export async function pushCommit(args) {
288
311
  table: c.table,
289
312
  row_id: c.row_id,
290
313
  op: c.op,
291
- row_json: c.row_json,
314
+ row_json: toDialectJsonValue(dialect, c.row_json),
292
315
  row_version: c.row_version,
293
316
  scopes: dialect.scopesToDb(c.scopes),
294
317
  }));
@@ -305,9 +328,9 @@ export async function pushCommit(args) {
305
328
  };
306
329
  const affectedTables = Array.from(affectedTablesSet).sort();
307
330
  const appliedCommitUpdate = {
308
- result_json: appliedResponse,
331
+ result_json: toDialectJsonValue(dialect, appliedResponse),
309
332
  change_count: allEmitted.length,
310
- affected_tables: affectedTables,
333
+ affected_tables: dialect.arrayToDb(affectedTables),
311
334
  };
312
335
  await syncTrx
313
336
  .updateTable('sync_commits')
@@ -370,9 +393,9 @@ export async function pushCommit(args) {
370
393
  if (!(err instanceof RejectCommitError))
371
394
  throw err;
372
395
  const rejectedCommitUpdate = {
373
- result_json: err.response,
396
+ result_json: toDialectJsonValue(dialect, err.response),
374
397
  change_count: 0,
375
- affected_tables: [],
398
+ affected_tables: dialect.arrayToDb([]),
376
399
  };
377
400
  // Persist the rejected response for commit-level idempotency.
378
401
  await syncTrx
package/dist/push.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../src/push.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syncular/server",
3
- "version": "0.0.2-128",
3
+ "version": "0.0.2-133",
4
4
  "description": "Server-side sync engine with push/pull, pruning, and snapshot support",
5
5
  "license": "MIT",
6
6
  "author": "Benjamin Kniffler",
@@ -62,7 +62,7 @@
62
62
  "release": "bunx syncular-publish"
63
63
  },
64
64
  "dependencies": {
65
- "@syncular/core": "0.0.2-128"
65
+ "@syncular/core": "0.0.2-133"
66
66
  },
67
67
  "peerDependencies": {
68
68
  "kysely": "^0.28.0",
package/src/notify.ts CHANGED
@@ -19,6 +19,15 @@ import type { SyncCoreDb } from './schema';
19
19
  */
20
20
  export const EXTERNAL_CLIENT_ID = '__external__';
21
21
 
22
+ function toDialectJsonValue(
23
+ dialect: ServerSyncDialect,
24
+ value: unknown
25
+ ): unknown {
26
+ if (value === null || value === undefined) return null;
27
+ if (dialect.name === 'sqlite') return JSON.stringify(value);
28
+ return value;
29
+ }
30
+
22
31
  export interface NotifyExternalDataChangeArgs<DB extends SyncCoreDb> {
23
32
  db: Kysely<DB>;
24
33
  dialect: ServerSyncDialect;
@@ -76,7 +85,7 @@ export async function notifyExternalDataChange<DB extends SyncCoreDb>(
76
85
  client_id: EXTERNAL_CLIENT_ID,
77
86
  client_commit_id: clientCommitId,
78
87
  meta: null,
79
- result_json: { ok: true, status: 'applied' },
88
+ result_json: toDialectJsonValue(dialect, { ok: true, status: 'applied' }),
80
89
  change_count: 0,
81
90
  affected_tables: dialect.arrayToDb(tables) as string[],
82
91
  };
@@ -18,6 +18,15 @@ function generateId(): string {
18
18
  return randomUUID();
19
19
  }
20
20
 
21
+ function toDialectJsonValue(
22
+ dialect: ServerSyncDialect,
23
+ value: unknown
24
+ ): unknown {
25
+ if (value === null || value === undefined) return null;
26
+ if (dialect.name === 'sqlite') return JSON.stringify(value);
27
+ return value;
28
+ }
29
+
21
30
  /**
22
31
  * Create oplog entries for affected rows.
23
32
  *
@@ -84,7 +93,8 @@ export async function createOplogEntries<DB extends SyncCoreDb>(args: {
84
93
  table: handler.table,
85
94
  row_id: String(row[pk]),
86
95
  op: operation,
87
- row_json: operation === 'delete' ? null : row,
96
+ row_json:
97
+ operation === 'delete' ? null : toDialectJsonValue(dialect, row),
88
98
  row_version: row[versionCol] != null ? Number(row[versionCol]) : null,
89
99
  scopes: dialect.scopesToDb(scopes),
90
100
  };
@@ -124,7 +134,9 @@ export async function createOplogEntries<DB extends SyncCoreDb>(args: {
124
134
  const sortedAffectedTables = affectedTables.sort();
125
135
  await sql`
126
136
  update ${sql.table('sync_commits')}
127
- set change_count = ${rows.length}, affected_tables = ${sortedAffectedTables}
137
+ set
138
+ change_count = ${rows.length},
139
+ affected_tables = ${dialect.arrayToDb(sortedAffectedTables)}
128
140
  where commit_seq = ${commitSeq}
129
141
  `.execute(trx);
130
142
 
package/src/push.ts CHANGED
@@ -49,6 +49,34 @@ class RejectCommitError extends Error {
49
49
  }
50
50
  }
51
51
 
52
+ function toDialectJsonValue(
53
+ dialect: ServerSyncDialect,
54
+ value: unknown
55
+ ): unknown {
56
+ if (value === null || value === undefined) return null;
57
+ if (dialect.name === 'sqlite') return JSON.stringify(value);
58
+ return value;
59
+ }
60
+
61
+ function parseJsonValue(value: unknown): unknown {
62
+ if (typeof value !== 'string') return value;
63
+ try {
64
+ return JSON.parse(value);
65
+ } catch {
66
+ return value;
67
+ }
68
+ }
69
+
70
+ function isRecord(value: unknown): value is Record<string, unknown> {
71
+ return typeof value === 'object' && value !== null;
72
+ }
73
+
74
+ function isSyncPushResponse(value: unknown): value is SyncPushResponse {
75
+ return (
76
+ isRecord(value) && value.ok === true && typeof value.status === 'string'
77
+ );
78
+ }
79
+
52
80
  async function readCommitAffectedTables<DB extends SyncCoreDb>(
53
81
  db: Kysely<DB>,
54
82
  dialect: ServerSyncDialect,
@@ -141,8 +169,8 @@ export async function pushCommit<DB extends SyncCoreDb>(args: {
141
169
  partitionId?: string;
142
170
  request: SyncPushRequest;
143
171
  }): Promise<PushCommitResult> {
144
- const { request, dialect } = args;
145
- const db = args.db;
172
+ const { db, dialect, handlers, request } = args;
173
+ const actorId = args.actorId;
146
174
  const partitionId = args.partitionId ?? 'default';
147
175
  const requestedOps = Array.isArray(request.operations)
148
176
  ? request.operations
@@ -247,7 +275,7 @@ export async function pushCommit<DB extends SyncCoreDb>(args: {
247
275
  // Insert commit row (idempotency key)
248
276
  const commitRow: Insertable<SyncCoreDb['sync_commits']> = {
249
277
  partition_id: partitionId,
250
- actor_id: args.actorId,
278
+ actor_id: actorId,
251
279
  client_id: request.clientId,
252
280
  client_commit_id: request.clientCommitId,
253
281
  meta: null,
@@ -288,8 +316,8 @@ export async function pushCommit<DB extends SyncCoreDb>(args: {
288
316
 
289
317
  const existing = await query.executeTakeFirstOrThrow();
290
318
 
291
- const cached = existing.result_json as SyncPushResponse | null;
292
- if (!cached || cached.ok !== true) {
319
+ const parsedCached = parseJsonValue(existing.result_json);
320
+ if (!isSyncPushResponse(parsedCached)) {
293
321
  return {
294
322
  response: {
295
323
  ok: true,
@@ -311,11 +339,11 @@ export async function pushCommit<DB extends SyncCoreDb>(args: {
311
339
  }
312
340
 
313
341
  const base: SyncPushResponse = {
314
- ...cached,
342
+ ...parsedCached,
315
343
  commitSeq: Number(existing.commit_seq),
316
344
  };
317
345
 
318
- if (cached.status === 'applied') {
346
+ if (parsedCached.status === 'applied') {
319
347
  const tablesFromDb = dialect.dbToArray(
320
348
  existing.affected_tables
321
349
  );
@@ -377,12 +405,12 @@ export async function pushCommit<DB extends SyncCoreDb>(args: {
377
405
 
378
406
  for (let i = 0; i < ops.length; i++) {
379
407
  const op = ops[i]!;
380
- const handler = args.handlers.getOrThrow(op.table);
408
+ const handler = handlers.getOrThrow(op.table);
381
409
  const applied = await handler.applyOperation(
382
410
  {
383
411
  db: trx,
384
412
  trx,
385
- actorId: args.actorId,
413
+ actorId,
386
414
  clientId: request.clientId,
387
415
  commitId,
388
416
  schemaVersion: request.schemaVersion,
@@ -437,7 +465,7 @@ export async function pushCommit<DB extends SyncCoreDb>(args: {
437
465
  table: c.table,
438
466
  row_id: c.row_id,
439
467
  op: c.op,
440
- row_json: c.row_json,
468
+ row_json: toDialectJsonValue(dialect, c.row_json),
441
469
  row_version: c.row_version,
442
470
  scopes: dialect.scopesToDb(c.scopes),
443
471
  }));
@@ -460,9 +488,9 @@ export async function pushCommit<DB extends SyncCoreDb>(args: {
460
488
  const appliedCommitUpdate: Updateable<
461
489
  SyncCoreDb['sync_commits']
462
490
  > = {
463
- result_json: appliedResponse,
491
+ result_json: toDialectJsonValue(dialect, appliedResponse),
464
492
  change_count: allEmitted.length,
465
- affected_tables: affectedTables,
493
+ affected_tables: dialect.arrayToDb(affectedTables) as string[],
466
494
  };
467
495
 
468
496
  await syncTrx
@@ -538,9 +566,9 @@ export async function pushCommit<DB extends SyncCoreDb>(args: {
538
566
  const rejectedCommitUpdate: Updateable<
539
567
  SyncCoreDb['sync_commits']
540
568
  > = {
541
- result_json: err.response,
569
+ result_json: toDialectJsonValue(dialect, err.response),
542
570
  change_count: 0,
543
- affected_tables: [],
571
+ affected_tables: dialect.arrayToDb([]) as string[],
544
572
  };
545
573
 
546
574
  // Persist the rejected response for commit-level idempotency.