prostgles-server 4.2.534 → 4.2.537

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/Auth/AuthHandler.js +1 -1
  2. package/dist/Auth/AuthHandler.js.map +1 -1
  3. package/dist/Auth/getClientAuth.js +2 -2
  4. package/dist/Auth/getClientAuth.js.map +1 -1
  5. package/dist/DboBuilder/DboBuilder.d.ts +1 -1
  6. package/dist/DboBuilder/DboBuilderTypes.d.ts +3 -1
  7. package/dist/DboBuilder/DboBuilderTypes.d.ts.map +1 -1
  8. package/dist/DboBuilder/TableHandler/TableHandler.d.ts +3 -1
  9. package/dist/DboBuilder/TableHandler/TableHandler.d.ts.map +1 -1
  10. package/dist/DboBuilder/TableHandler/TableHandler.js +20 -6
  11. package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
  12. package/dist/DboBuilder/runSql/runSqlUtils.d.ts +1 -1
  13. package/dist/DboBuilder/schema/getTablesForSchemaPostgresSQL.d.ts.map +1 -1
  14. package/dist/DboBuilder/schema/getTablesForSchemaPostgresSQL.js +0 -4
  15. package/dist/DboBuilder/schema/getTablesForSchemaPostgresSQL.js.map +1 -1
  16. package/dist/JSONBSchemaValidation/validateJSONBSchemaSQL.d.ts +1 -1
  17. package/dist/Logging.d.ts +4 -1
  18. package/dist/Logging.d.ts.map +1 -1
  19. package/dist/PubSubManager/PubSubManager.d.ts +5 -4
  20. package/dist/PubSubManager/PubSubManager.d.ts.map +1 -1
  21. package/dist/PubSubManager/PubSubManager.js +4 -2
  22. package/dist/PubSubManager/PubSubManager.js.map +1 -1
  23. package/dist/PubSubManager/SyncReplication/fetchSyncServerData.d.ts +11 -0
  24. package/dist/PubSubManager/SyncReplication/fetchSyncServerData.d.ts.map +1 -0
  25. package/dist/PubSubManager/SyncReplication/fetchSyncServerData.js +25 -0
  26. package/dist/PubSubManager/SyncReplication/fetchSyncServerData.js.map +1 -0
  27. package/dist/PubSubManager/SyncReplication/getSyncBatchOptions.d.ts +14 -0
  28. package/dist/PubSubManager/SyncReplication/getSyncBatchOptions.d.ts.map +1 -0
  29. package/dist/PubSubManager/SyncReplication/getSyncBatchOptions.js +19 -0
  30. package/dist/PubSubManager/SyncReplication/getSyncBatchOptions.js.map +1 -0
  31. package/dist/PubSubManager/SyncReplication/getSyncOrderByAndFields.d.ts +8 -0
  32. package/dist/PubSubManager/SyncReplication/getSyncOrderByAndFields.d.ts.map +1 -0
  33. package/dist/PubSubManager/SyncReplication/getSyncOrderByAndFields.js +9 -0
  34. package/dist/PubSubManager/SyncReplication/getSyncOrderByAndFields.js.map +1 -0
  35. package/dist/PubSubManager/SyncReplication/getSyncUtilFunctions.d.ts +40 -0
  36. package/dist/PubSubManager/SyncReplication/getSyncUtilFunctions.d.ts.map +1 -0
  37. package/dist/{SyncReplication.js → PubSubManager/SyncReplication/getSyncUtilFunctions.js} +84 -214
  38. package/dist/PubSubManager/SyncReplication/getSyncUtilFunctions.js.map +1 -0
  39. package/dist/{SyncReplication.d.ts → PubSubManager/SyncReplication/syncData.d.ts} +4 -4
  40. package/dist/PubSubManager/SyncReplication/syncData.d.ts.map +1 -0
  41. package/dist/PubSubManager/SyncReplication/syncData.js +131 -0
  42. package/dist/PubSubManager/SyncReplication/syncData.js.map +1 -0
  43. package/dist/PubSubManager/addSync.d.ts.map +1 -1
  44. package/dist/PubSubManager/addSync.js +15 -10
  45. package/dist/PubSubManager/addSync.js.map +1 -1
  46. package/dist/WebsocketAPI/onSocketConnected.js +1 -1
  47. package/dist/WebsocketAPI/onSocketConnected.js.map +1 -1
  48. package/lib/Auth/AuthHandler.ts +1 -1
  49. package/lib/Auth/getClientAuth.ts +2 -2
  50. package/lib/DboBuilder/DboBuilderTypes.ts +2 -1
  51. package/lib/DboBuilder/TableHandler/TableHandler.ts +26 -8
  52. package/lib/DboBuilder/schema/getTablesForSchemaPostgresSQL.ts +0 -4
  53. package/lib/Logging.ts +13 -1
  54. package/lib/PubSubManager/PubSubManager.ts +7 -5
  55. package/lib/PubSubManager/SyncReplication/fetchSyncServerData.ts +55 -0
  56. package/lib/PubSubManager/SyncReplication/getSyncBatchOptions.ts +31 -0
  57. package/lib/PubSubManager/SyncReplication/getSyncOrderByAndFields.ts +11 -0
  58. package/lib/{SyncReplication.ts → PubSubManager/SyncReplication/getSyncUtilFunctions.ts} +144 -310
  59. package/lib/PubSubManager/SyncReplication/syncData.ts +194 -0
  60. package/lib/PubSubManager/addSync.ts +19 -20
  61. package/lib/WebsocketAPI/onSocketConnected.ts +7 -7
  62. package/package.json +2 -2
  63. package/dist/SyncReplication.d.ts.map +0 -1
  64. package/dist/SyncReplication.js.map +0 -1
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncData = syncData;
4
+ const prostgles_types_1 = require("prostgles-types");
5
+ const WAL_1 = require("prostgles-types/dist/WAL");
6
+ const getSyncUtilFunctions_1 = require("./getSyncUtilFunctions");
7
+ /**
8
+ * Server or client requested data sync
9
+ */
10
+ async function syncData(sync, clientData, source) {
11
+ const logSyncData = (state) => {
12
+ return this._log({
13
+ type: "sync",
14
+ command: "syncData",
15
+ channelName: sync.channel_name,
16
+ tableName: sync.table_name,
17
+ sid: sync.sid,
18
+ source,
19
+ ...(0, prostgles_types_1.pickKeys)(sync, ["socket_id", "condition", "last_synced", "is_syncing"]),
20
+ lr: JSON.stringify(sync.lr),
21
+ connectedSocketIds: this.dboBuilder.prostgles.connectedSockets.map((s) => s.id),
22
+ localParams: undefined,
23
+ duration: -1,
24
+ socketId: sync.socket_id,
25
+ syncParams: sync,
26
+ state,
27
+ });
28
+ };
29
+ await logSyncData("start");
30
+ const { socket_id, table_name, synced_field, id_fields = [], batch_size, throttle = 0 } = sync;
31
+ const socket = this.sockets[socket_id];
32
+ if (!socket?.connected) {
33
+ await logSyncData("socket?.connected");
34
+ return;
35
+ }
36
+ const tableHandler = this.dbo[table_name];
37
+ if (!tableHandler?.find) {
38
+ throw `dbo.${table_name}.find missing or not allowed`;
39
+ }
40
+ const { upsertData, updateSyncLR, getServerRowInfo, deleteData, getLastSynced, pushData, syncBatch, rowsFullyMatch, } = (0, getSyncUtilFunctions_1.getSyncUtilFunctions)({
41
+ tableHandler,
42
+ socket,
43
+ sync,
44
+ pubSubManager: this,
45
+ });
46
+ /* Used to throttle and merge incoming updates */
47
+ sync.wal ??= new WAL_1.WAL({
48
+ id_fields,
49
+ synced_field,
50
+ throttle,
51
+ batch_size,
52
+ DEBUG_MODE: this.dboBuilder.prostgles.opts.DEBUG_MODE,
53
+ onSendStart: () => {
54
+ sync.is_syncing = true;
55
+ },
56
+ onSend: async (data) => {
57
+ const res = await upsertData(data);
58
+ return res;
59
+ },
60
+ onSendEnd: (batch) => {
61
+ updateSyncLR(batch);
62
+ sync.is_syncing = false;
63
+ /**
64
+ * After all data was inserted request SyncInfo from client and sync again if necessary
65
+ */
66
+ void this.syncData(sync, undefined, source);
67
+ },
68
+ });
69
+ /* Debounce sync requests */
70
+ if (!sync.wal.isSending() && sync.is_syncing) {
71
+ if (!this.syncTimeout) {
72
+ this.syncTimeout = setTimeout(() => {
73
+ this.syncTimeout = undefined;
74
+ void this.syncData(sync, undefined, source);
75
+ }, throttle);
76
+ }
77
+ return;
78
+ }
79
+ /**
80
+ * Express data sent from a client that has already been synced
81
+ * Add to WAL manager which will sync at the end
82
+ */
83
+ if (clientData) {
84
+ if (clientData.data && Array.isArray(clientData.data) && clientData.data.length) {
85
+ return sync.wal.addData(clientData.data.map((d) => ({ current: d })));
86
+ /* Not expecting this anymore. use normal db.table.delete channel */
87
+ }
88
+ else if (clientData.deleted &&
89
+ Array.isArray(clientData.deleted) &&
90
+ clientData.deleted.length) {
91
+ await deleteData(clientData.deleted);
92
+ }
93
+ }
94
+ else {
95
+ // do nothing
96
+ }
97
+ if (sync.wal.isSending()) {
98
+ await logSyncData("sync.wal.isSending()");
99
+ return;
100
+ }
101
+ sync.is_syncing = true;
102
+ // from synced does not make sense. It should be sync.lr only!!!
103
+ let from_synced = null;
104
+ /** Sync was already synced */
105
+ if (sync.lr) {
106
+ const { s_lr } = await getServerRowInfo();
107
+ /* Make sure trigger is not firing on freshly synced data */
108
+ if (!rowsFullyMatch(sync.lr, s_lr)) {
109
+ from_synced = sync.last_synced;
110
+ await logSyncData("sync.last_synced");
111
+ }
112
+ else {
113
+ await logSyncData("rowsFullyMatch");
114
+ }
115
+ }
116
+ else {
117
+ await logSyncData("getLastSynced(clientData)");
118
+ from_synced = await getLastSynced(clientData);
119
+ }
120
+ if (from_synced !== null) {
121
+ await logSyncData("syncBatch.start");
122
+ await syncBatch(from_synced);
123
+ await logSyncData("syncBatch.end");
124
+ }
125
+ else {
126
+ // console.log("from_synced is null")
127
+ }
128
+ await pushData([], true);
129
+ sync.is_syncing = false;
130
+ }
131
+ //# sourceMappingURL=syncData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syncData.js","sourceRoot":"","sources":["../../../lib/PubSubManager/SyncReplication/syncData.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"addSync.d.ts","sourceRoot":"","sources":["../../lib/PubSubManager/addSync.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAiB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGnF;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,aAAa,GACxB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAsIlC"}
1
+ {"version":3,"file":"addSync.d.ts","sourceRoot":"","sources":["../../lib/PubSubManager/addSync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAiB,aAAa,EAAc,MAAM,iBAAiB,CAAC;AAI/F;;;GAGG;AACH,wBAAsB,OAAO,CAC3B,IAAI,EAAE,aAAa,EACnB,UAAU,EAAE,aAAa,GACxB,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAqIlC"}
@@ -10,18 +10,19 @@ const PubSubManagerUtils_1 = require("./PubSubManagerUtils");
10
10
  async function addSync(syncParams) {
11
11
  const sid = this.dboBuilder.prostgles.authHandler.getSIDNoError({ socket: syncParams.socket });
12
12
  const res = await (0, prostgles_types_1.tryCatchV2)(async () => {
13
- const { socket = null, table_info = null, table_rules, synced_field = null, filter = {}, params, condition = "", } = syncParams;
13
+ const { socket, table_info, table_rules, filter, params, condition } = syncParams;
14
14
  const conditionParsed = (0, PubSubManagerUtils_1.parseCondition)(condition);
15
- if (!socket || !table_info)
16
- throw "socket or table_info missing";
17
15
  const { name: table_name } = table_info;
18
- const channelName = `${this.socketChannelPreffix}.${table_name}.${JSON.stringify(filter)}.sync`;
19
- if (!synced_field)
20
- throw "synced_field missing from table_rules";
16
+ const channelName = (0, prostgles_types_1.getSyncChannelName)({
17
+ tableName: table_name,
18
+ filter,
19
+ select: params.select,
20
+ });
21
21
  this.upsertSocket(socket);
22
22
  const syncConfig = this.dboBuilder.prostgles.tableConfigurator?.getTableSyncConfig(table_name);
23
- if (!syncConfig)
23
+ if (!syncConfig) {
24
24
  throw `Sync not configured for table ${table_name}`;
25
+ }
25
26
  const upsertSync = () => {
26
27
  const newSync = {
27
28
  channel_name: channelName,
@@ -41,7 +42,7 @@ async function addSync(syncParams) {
41
42
  socket,
42
43
  params,
43
44
  };
44
- /* Only a sync per socket per table per condition allowed */
45
+ /* Only a sync per socket per table/condition/select allowed */
45
46
  const existing = (0, prostgles_types_1.find)(this.syncs, { socket_id: socket.id, channel_name: channelName });
46
47
  if (!existing) {
47
48
  this.syncs.push(newSync);
@@ -54,9 +55,11 @@ async function addSync(syncParams) {
54
55
  socketId: socket.id,
55
56
  tableName: table_name,
56
57
  condition,
58
+ channelName,
57
59
  sid,
58
60
  connectedSocketIds: this.connectedSocketIds,
59
61
  duration: -1,
62
+ syncParams: newSync,
60
63
  });
61
64
  socket.removeAllListeners(channelName);
62
65
  socket.removeAllListeners(unsyncChn);
@@ -100,9 +103,9 @@ async function addSync(syncParams) {
100
103
  }
101
104
  return newSync;
102
105
  };
103
- upsertSync();
106
+ const newSync = upsertSync();
104
107
  await this.addTrigger({ table_name, condition: conditionParsed, tracked_columns: undefined }, undefined, socket);
105
- return { channelName };
108
+ return { channelName, newSync };
106
109
  });
107
110
  await this._log({
108
111
  type: "sync",
@@ -114,6 +117,8 @@ async function addSync(syncParams) {
114
117
  duration: res.duration,
115
118
  error: res.error,
116
119
  sid,
120
+ channelName: res.data?.channelName || "",
121
+ syncParams: res.data?.newSync ?? {},
117
122
  });
118
123
  if (res.hasError)
119
124
  throw res.error;
@@ -1 +1 @@
1
- {"version":3,"file":"addSync.js","sourceRoot":"","sources":["../../lib/PubSubManager/addSync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"addSync.js","sourceRoot":"","sources":["../../lib/PubSubManager/addSync.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@ async function onSocketConnected(socket) {
19
19
  const getUser = async () => {
20
20
  const res = await this.authHandler.getSidAndUserFromRequest({ socket });
21
21
  if (res === "new-session-redirect") {
22
- socket.emit(prostgles_types_1.CHANNELS.AUTHGUARD, {
22
+ socket.emit(prostgles_types_1.CHANNELS.AUTH_GUARD, {
23
23
  shouldReload: true,
24
24
  error: res,
25
25
  });
@@ -1 +1 @@
1
- {"version":3,"file":"onSocketConnected.js","sourceRoot":"","sources":["../../lib/WebsocketAPI/onSocketConnected.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onSocketConnected.js","sourceRoot":"","sources":["../../lib/WebsocketAPI/onSocketConnected.ts"],"names":[],"mappings":"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"}
@@ -238,7 +238,7 @@ export class AuthHandler {
238
238
  const error = "Session has expired";
239
239
  if (hasExpired) {
240
240
  if (session?.onExpiration === "redirect")
241
- socket.emit(CHANNELS.AUTHGUARD, {
241
+ socket.emit(CHANNELS.AUTH_GUARD, {
242
242
  shouldReload: true,
243
243
  error,
244
244
  });
@@ -36,9 +36,9 @@ export async function getClientAuth(
36
36
  }
37
37
  };
38
38
  const { socket } = clientReq;
39
- socket.removeAllListeners(CHANNELS.AUTHGUARD);
39
+ socket.removeAllListeners(CHANNELS.AUTH_GUARD);
40
40
  socket.on(
41
- CHANNELS.AUTHGUARD,
41
+ CHANNELS.AUTH_GUARD,
42
42
  async (
43
43
  params: AuthGuardLocation,
44
44
  cb = (_err: any, _res?: AuthGuardLocationResponse) => {
@@ -6,7 +6,6 @@ import type {
6
6
  EXISTS_KEY,
7
7
  RawJoinPath,
8
8
  SQLHandler,
9
- SyncTableInfo,
10
9
  TableInfo as TInfo,
11
10
  UserLike,
12
11
  } from "prostgles-types";
@@ -23,6 +22,7 @@ import type { FieldSpec } from "./QueryBuilder/Functions/Functions";
23
22
  import type { TableHandler } from "./TableHandler/TableHandler";
24
23
  import type { ParsedJoinPath } from "./ViewHandler/parseJoinPath";
25
24
  import pg = require("pg-promise/typescript/pg-subset");
25
+ import type { SyncTableInfo } from "prostgles-types/dist/WAL";
26
26
 
27
27
  type PGP = pgPromise.IMain<{}, pg.IClient>;
28
28
 
@@ -188,6 +188,7 @@ export type PRGLIOSocket = {
188
188
  };
189
189
 
190
190
  _user?: AnyObject;
191
+ connected: boolean;
191
192
 
192
193
  /** Used for publish error caching */
193
194
  prostgles?: Map<string, ClientSchema>;
@@ -4,12 +4,14 @@ import type {
4
4
  DeleteParams,
5
5
  FieldFilter,
6
6
  InsertParams,
7
+ ReplicationState,
7
8
  Select,
8
9
  UpdateParams,
9
10
  } from "prostgles-types";
10
11
  import { asName, isDefined } from "prostgles-types";
11
12
  import type { DB } from "../../Prostgles";
12
13
  import type { InsertRule, ParsedTableRule, UpdateRule } from "../../PublishParser/PublishParser";
14
+ import { getSyncBatchOptions } from "../../PubSubManager/SyncReplication/getSyncBatchOptions";
13
15
  import type TableConfigurator from "../../TableConfig/TableConfig";
14
16
  import type { TableDefinition } from "../../TableConfig/TableConfig";
15
17
  import type { DboBuilder, Filter, LocalParams, TableHandlers } from "../DboBuilder";
@@ -198,7 +200,7 @@ export class TableHandler extends ViewHandler {
198
200
  async sync(
199
201
  filter: Filter,
200
202
  params: { select?: FieldFilter },
201
- param3_unused: undefined,
203
+ _param3_unused: undefined,
202
204
  table_rules: ParsedTableRule,
203
205
  localParams: LocalParams,
204
206
  ) {
@@ -223,7 +225,7 @@ export class TableHandler extends ViewHandler {
223
225
  const ALLOWED_PARAMS = ["select"];
224
226
  const invalidParams = Object.keys(params).filter((k) => !ALLOWED_PARAMS.includes(k));
225
227
  if (invalidParams.length) {
226
- throw "Invalid or dissallowed params found: " + invalidParams.join(", ");
228
+ throw "Invalid or disallowed params found: " + invalidParams.join(", ");
227
229
  }
228
230
 
229
231
  const { synced_field } = syncConfig;
@@ -250,13 +252,20 @@ export class TableHandler extends ViewHandler {
250
252
  });
251
253
 
252
254
  /* Step 1: parse command and params */
253
- const result = await this.find(
255
+ const syncOpts = getSyncBatchOptions({
254
256
  filter,
255
- { select, limit: 0 },
257
+ params: { select },
258
+ ...syncConfig,
259
+ from_synced: undefined,
260
+ offset: undefined,
261
+ });
262
+ const syncResult = await this.find(
263
+ syncOpts.syncBatchFilter,
264
+ { select: syncOpts.select, limit: syncOpts.limit, orderBy: syncOpts.orderBy },
256
265
  undefined,
257
266
  table_rules,
258
267
  localParams,
259
- ).then(async (_isValid) => {
268
+ ).then(async (data: AnyObject[]) => {
260
269
  const { filterFields, forcedFilter } = table_rules.select || {};
261
270
  const condition = (
262
271
  await this.prepareWhere({
@@ -281,7 +290,16 @@ export class TableHandler extends ViewHandler {
281
290
  filter: { ...filter },
282
291
  params: { select },
283
292
  })
284
- .then(({ channelName }) => ({ channelName, id_fields, synced_field }));
293
+ .then(
294
+ ({ channelName }) =>
295
+ ({
296
+ channelName,
297
+ data,
298
+ id_fields,
299
+ synced_field,
300
+ isSynced: data.length < syncOpts.limit,
301
+ }) satisfies ReplicationState["channels"]["CHANNEL_PREFIX"]["client.emit"]["server.response"]["data"],
302
+ );
285
303
  });
286
304
  await this._log({
287
305
  command: "sync",
@@ -289,7 +307,7 @@ export class TableHandler extends ViewHandler {
289
307
  data: { filter, params },
290
308
  duration: Date.now() - start,
291
309
  });
292
- return result;
310
+ return syncResult;
293
311
  } catch (e) {
294
312
  await this._log({
295
313
  command: "sync",
@@ -309,7 +327,7 @@ export class TableHandler extends ViewHandler {
309
327
  /*
310
328
  REPLICATION
311
329
 
312
- 1 Sync proccess (NO DELETES ALLOWED):
330
+ 1 Sync process (NO DELETES ALLOWED):
313
331
 
314
332
  Client sends:
315
333
  "sync-request"
@@ -31,10 +31,6 @@ export async function getTablesForSchemaPostgresSQL(
31
31
  ddlWithRollback,
32
32
  }: { schemaFilter: ProstglesInitOptions["schemaFilter"]; ddlWithRollback?: string },
33
33
  ) {
34
- // : Promise<{
35
- // result: TableSchema[];
36
- // durations: Record<string, number>;
37
- // }>
38
34
  const { sql, schemaNames } = getSchemaFilter(schemaFilter);
39
35
 
40
36
  return db.tx(async (t) => {
package/lib/Logging.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { AnyObject, ClientSchema, TableHandler } from "prostgles-types";
2
2
  import type { LocalParams } from "./DboBuilder/DboBuilder";
3
- import type { PubSubManagerTriggers } from "./PubSubManager/PubSubManager";
3
+ import type { PubSubManagerTriggers, SyncParams } from "./PubSubManager/PubSubManager";
4
4
  import type { NotifTypeName } from "./PubSubManager/PubSubManagerUtils";
5
5
 
6
6
  type ClientInfo = {
@@ -30,11 +30,23 @@ export namespace EventTypes {
30
30
  tableName: string;
31
31
  localParams?: LocalParams;
32
32
  connectedSocketIds: string[];
33
+ channelName: string;
34
+ syncParams: SyncParams;
33
35
  } & (
34
36
  | {
35
37
  command: "syncData";
36
38
  source: "client" | "trigger";
37
39
  lr: string;
40
+ state:
41
+ | "start"
42
+ | "sync.wal.isSending()"
43
+ | "initial"
44
+ | "socket?.connected"
45
+ | "sync.last_synced"
46
+ | "rowsFullyMatch"
47
+ | "syncBatch.start"
48
+ | "syncBatch.end"
49
+ | "getLastSynced(clientData)";
38
50
  }
39
51
  | {
40
52
  command: "upsertData" | "pushData";
@@ -15,11 +15,10 @@ import { refreshTriggers } from "./refreshTriggers";
15
15
 
16
16
  import type {
17
17
  AnyObject,
18
+ EqualityFilter,
18
19
  FieldFilter,
19
20
  SelectParams,
20
- SyncTableInfo,
21
21
  TableSchema,
22
- WAL,
23
22
  } from "prostgles-types";
24
23
  import { CHANNELS, getSerialisableError, type SubscribeOptions } from "prostgles-types";
25
24
 
@@ -28,11 +27,12 @@ import type { OnData } from "../DboBuilder/ViewHandler/subscribe";
28
27
  import { matchesLocalFuncs } from "../DboBuilder/ViewHandler/subscribe";
29
28
  import type { EventTypes } from "../Logging";
30
29
  import type { ParsedTableRule } from "../PublishParser/PublishParser";
31
- import { syncData } from "../SyncReplication";
30
+ import { syncData } from "./SyncReplication/syncData";
32
31
  import { addSub } from "./addSub";
33
32
  import { notifListener } from "./notifListener";
34
33
  import { log } from "./PubSubManagerUtils";
35
34
  import { pushSubData } from "./pushSubData";
35
+ import type { SyncTableInfo, WAL } from "prostgles-types/dist/WAL";
36
36
 
37
37
  export type BasicCallback = (err?: any, res?: any) => void;
38
38
 
@@ -41,11 +41,11 @@ export type SyncParams = {
41
41
  sid: string | undefined;
42
42
  channel_name: string;
43
43
  table_name: string;
44
- table_rules?: ParsedTableRule;
44
+ table_rules: ParsedTableRule;
45
45
  synced_field: string;
46
46
  id_fields: string[];
47
47
  batch_size: number;
48
- filter: object;
48
+ filter: EqualityFilter<AnyObject>;
49
49
  params: {
50
50
  select: FieldFilter;
51
51
  };
@@ -361,6 +361,7 @@ export class PubSubManager {
361
361
  type: "sync",
362
362
  command: "upsertSocket.disconnect",
363
363
  tableName: "",
364
+ channelName: "*",
364
365
  duration: 0,
365
366
  sid: this.dboBuilder.prostgles.authHandler.getSIDNoError({ socket }),
366
367
  socketId: socket.id,
@@ -374,6 +375,7 @@ export class PubSubManager {
374
375
  remainingSyncs: JSON.stringify(
375
376
  this.syncs.map((s) => pickKeys(s, ["table_name", "condition"])),
376
377
  ),
378
+ syncParams: {} as SyncParams,
377
379
  });
378
380
 
379
381
  return "ok";
@@ -0,0 +1,55 @@
1
+ import type { AnyObject } from "prostgles-types";
2
+ import type { PRGLIOSocket } from "../../DboBuilder/DboBuilder";
3
+ import type { TableHandler } from "../../DboBuilder/TableHandler/TableHandler";
4
+ import type { SyncParams } from "../PubSubManager";
5
+ import { getSyncOrderByAndFields } from "./getSyncOrderByAndFields";
6
+ import { getSyncBatchOptions } from "./getSyncBatchOptions";
7
+
8
+ export const fetchSyncServerData = async (
9
+ {
10
+ tableHandler,
11
+ socket,
12
+ from_synced,
13
+ offset,
14
+ }: {
15
+ tableHandler: TableHandler;
16
+ socket: PRGLIOSocket;
17
+ from_synced: number | undefined;
18
+ offset: number | undefined;
19
+ },
20
+ {
21
+ filter,
22
+ id_fields,
23
+ params,
24
+ synced_field,
25
+ batch_size,
26
+ table_rules,
27
+ }: Pick<
28
+ SyncParams,
29
+ "filter" | "params" | "id_fields" | "synced_field" | "batch_size" | "table_rules"
30
+ >,
31
+ ) => {
32
+ const { syncBatchFilter } = getSyncBatchOptions({
33
+ filter,
34
+ id_fields,
35
+ params,
36
+ synced_field,
37
+ batch_size,
38
+ from_synced,
39
+ offset,
40
+ });
41
+ const batchRows = await tableHandler.find(
42
+ syncBatchFilter,
43
+ {
44
+ select: params.select,
45
+ orderBy: getSyncOrderByAndFields({ synced_field, id_fields }).orderByAsc,
46
+ offset,
47
+ limit: batch_size,
48
+ },
49
+ undefined,
50
+ table_rules,
51
+ { clientReq: { socket } },
52
+ );
53
+
54
+ return batchRows as AnyObject[];
55
+ };
@@ -0,0 +1,31 @@
1
+ import type { SyncParams } from "../PubSubManager";
2
+ import { getSyncOrderByAndFields } from "./getSyncOrderByAndFields";
3
+
4
+ export const getSyncBatchOptions = ({
5
+ from_synced,
6
+ offset = 0,
7
+ filter,
8
+ id_fields,
9
+ params,
10
+ synced_field,
11
+ batch_size,
12
+ }: Pick<SyncParams, "filter" | "params" | "id_fields" | "synced_field" | "batch_size"> & {
13
+ from_synced: number | undefined;
14
+ offset: number | undefined;
15
+ }) => {
16
+ const syncBatchFilter =
17
+ from_synced === undefined ? filter : (
18
+ {
19
+ ...filter,
20
+ [synced_field]: { $gte: from_synced },
21
+ }
22
+ );
23
+
24
+ return {
25
+ select: params.select,
26
+ orderBy: getSyncOrderByAndFields({ synced_field, id_fields }).orderByAsc,
27
+ offset,
28
+ limit: batch_size,
29
+ syncBatchFilter,
30
+ };
31
+ };
@@ -0,0 +1,11 @@
1
+ import type { OrderBy } from "prostgles-types";
2
+ import type { SyncParams } from "../PubSubManager";
3
+
4
+ export const getSyncOrderByAndFields = ({
5
+ synced_field,
6
+ id_fields,
7
+ }: Pick<SyncParams, "id_fields" | "synced_field">) => {
8
+ const sync_fields = [synced_field, ...id_fields.sort()],
9
+ orderByAsc: OrderBy = sync_fields.reduce((a, v) => ({ ...a, [v]: true }), {});
10
+ return { orderByAsc, sync_fields };
11
+ };