prostgles-types 4.0.252 → 4.0.254

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,5 +1,5 @@
1
- import { type FieldFilter } from "./index";
2
1
  import { AnyObject, type EqualityFilter } from "./filters";
2
+ import { type FieldFilter, type JSONB, type MaybePromise } from "./index";
3
3
  /**
4
4
  * Response from server to set up a sync channel
5
5
  */
@@ -61,7 +61,7 @@ export type SyncBatchParams = {
61
61
  */
62
62
  offset?: number;
63
63
  /**
64
- * Maxmimum number of rows to take
64
+ * Maximum number of rows to take
65
65
  */
66
66
  limit?: number;
67
67
  };
@@ -88,48 +88,556 @@ export declare const getSyncChannelName: ({ tableName, filter, select, }: {
88
88
  filter: EqualityFilter<AnyObject> | undefined;
89
89
  select: FieldFilter | undefined;
90
90
  }) => string;
91
- export type ReplicationState = {
92
- channels: {
93
- CHANNEL_PREFIX: {
94
- "channelName.get": () => string;
95
- "client.emit": {
96
- data: {
97
- tableName: string;
98
- command: "sync";
99
- /** Filter */
100
- param1: EqualityFilter<AnyObject>;
101
- /** Select */
102
- param2: {
103
- select: FieldFilter;
104
- };
105
- };
106
- "server.response": {
107
- data: SyncConfig & {
108
- data: AnyObject[];
109
- isSynced: boolean;
110
- };
111
- channels: {
112
- channelName: {
113
- /** Obtained from getSyncChannelName */
114
- "channelName.get": () => string;
115
- "client.emit": {
116
- data: {
117
- onSyncRequest: ClientSyncInfo | ClientExpressData;
118
- };
91
+ export type SocketCallback = (err?: unknown, res?: unknown) => void;
92
+ type RequestBase = {
93
+ name: string;
94
+ source: "client" | "server";
95
+ request: Omit<JSONB.FieldTypeObj, "optional">;
96
+ response: Omit<JSONB.FieldTypeObj, "optional">;
97
+ };
98
+ export declare namespace ReplicationProtocol {
99
+ export const CreateSchema: {
100
+ readonly name: "Create";
101
+ readonly source: "client";
102
+ readonly request: {
103
+ readonly type: {
104
+ readonly tableName: "string";
105
+ readonly command: {
106
+ readonly enum: readonly ["sync"];
107
+ };
108
+ /** Filter */
109
+ readonly param1: {
110
+ readonly record: {
111
+ readonly values: "unknown";
112
+ };
113
+ };
114
+ /** Select */
115
+ readonly param2: {
116
+ readonly type: {
117
+ readonly select: "unknown";
118
+ };
119
+ };
120
+ };
121
+ };
122
+ readonly response: {
123
+ readonly type: {
124
+ readonly id_fields: "string[]";
125
+ readonly synced_field: "string";
126
+ readonly channelName: "string";
127
+ readonly data: "any[]";
128
+ readonly isSynced: "boolean";
129
+ };
130
+ };
131
+ };
132
+ export const ServerSyncRequest: {
133
+ readonly name: "ServerSyncRequest";
134
+ readonly source: "server";
135
+ readonly request: {
136
+ readonly type: {
137
+ readonly from_synced: {
138
+ readonly oneOf: readonly ["string", {
139
+ readonly enum: readonly [null];
140
+ }];
141
+ };
142
+ readonly to_synced: {
143
+ readonly oneOf: readonly ["string", {
144
+ readonly enum: readonly [null];
145
+ }];
146
+ };
147
+ readonly end_offset: {
148
+ readonly oneOf: readonly ["number", {
149
+ readonly enum: readonly [null];
150
+ }];
151
+ };
152
+ };
153
+ };
154
+ readonly response: {
155
+ readonly oneOfType: readonly [{
156
+ readonly state: {
157
+ readonly enum: readonly ["syncing"];
158
+ };
159
+ readonly c_fr: {
160
+ readonly optional: true;
161
+ readonly record: {
162
+ readonly values: "unknown";
163
+ };
164
+ };
165
+ readonly c_lr: {
166
+ readonly optional: true;
167
+ readonly record: {
168
+ readonly values: "unknown";
169
+ };
170
+ };
171
+ readonly c_count: "number";
172
+ }, {
173
+ readonly state: {
174
+ readonly enum: readonly ["syncing-data"];
175
+ };
176
+ readonly c_fr: {
177
+ readonly record: {
178
+ readonly values: "unknown";
179
+ };
180
+ };
181
+ readonly c_lr: {
182
+ readonly record: {
183
+ readonly values: "unknown";
184
+ };
185
+ };
186
+ readonly c_count: "number";
187
+ readonly data: {
188
+ readonly arrayOf: {
189
+ readonly record: {
190
+ readonly values: "unknown";
191
+ };
192
+ };
193
+ };
194
+ }, {
195
+ readonly state: {
196
+ readonly enum: readonly ["error"];
197
+ };
198
+ readonly err: "unknown";
199
+ }];
200
+ };
201
+ };
202
+ export const ClientSyncRequest: {
203
+ readonly name: "ClientSyncRequest";
204
+ readonly source: "client";
205
+ readonly request: {
206
+ readonly oneOfType: readonly [{
207
+ readonly state: {
208
+ readonly enum: readonly ["syncing"];
209
+ };
210
+ readonly c_fr: {
211
+ readonly optional: true;
212
+ readonly record: {
213
+ readonly values: "unknown";
214
+ };
215
+ };
216
+ readonly c_lr: {
217
+ readonly optional: true;
218
+ readonly record: {
219
+ readonly values: "unknown";
220
+ };
221
+ };
222
+ readonly c_count: "number";
223
+ }, {
224
+ readonly state: {
225
+ readonly enum: readonly ["syncing-data"];
226
+ };
227
+ readonly c_fr: {
228
+ readonly record: {
229
+ readonly values: "unknown";
230
+ };
231
+ };
232
+ readonly c_lr: {
233
+ readonly record: {
234
+ readonly values: "unknown";
235
+ };
236
+ };
237
+ readonly c_count: "number";
238
+ readonly data: {
239
+ readonly arrayOf: {
240
+ readonly record: {
241
+ readonly values: "unknown";
242
+ };
243
+ };
244
+ };
245
+ }];
246
+ };
247
+ readonly response: {
248
+ readonly oneOfType: readonly [{
249
+ readonly state: {
250
+ readonly enum: readonly ["syncing"];
251
+ };
252
+ readonly c_fr: {
253
+ readonly optional: true;
254
+ readonly record: {
255
+ readonly values: "unknown";
256
+ };
257
+ };
258
+ readonly c_lr: {
259
+ readonly optional: true;
260
+ readonly record: {
261
+ readonly values: "unknown";
262
+ };
263
+ };
264
+ readonly c_count: "number";
265
+ }, {
266
+ readonly state: {
267
+ readonly enum: readonly ["syncing-data"];
268
+ };
269
+ readonly c_fr: {
270
+ readonly record: {
271
+ readonly values: "unknown";
272
+ };
273
+ };
274
+ readonly c_lr: {
275
+ readonly record: {
276
+ readonly values: "unknown";
277
+ };
278
+ };
279
+ readonly c_count: "number";
280
+ readonly data: {
281
+ readonly arrayOf: {
282
+ readonly record: {
283
+ readonly values: "unknown";
284
+ };
285
+ };
286
+ };
287
+ }, {
288
+ readonly state: {
289
+ readonly enum: readonly ["error"];
290
+ };
291
+ readonly err: "unknown";
292
+ }];
293
+ };
294
+ };
295
+ export const PullRequest: {
296
+ readonly name: "PullRequest";
297
+ readonly source: "server";
298
+ readonly request: {
299
+ readonly type: {
300
+ readonly from_synced: {
301
+ readonly oneOf: readonly ["string", {
302
+ readonly enum: readonly [undefined];
303
+ }];
304
+ };
305
+ readonly to_synced: {
306
+ readonly oneOf: readonly ["string", {
307
+ readonly enum: readonly [undefined];
308
+ }];
309
+ };
310
+ readonly offset: {
311
+ readonly oneOf: readonly ["number", {
312
+ readonly enum: readonly [undefined];
313
+ }];
314
+ };
315
+ readonly limit: {
316
+ readonly oneOf: readonly ["number", {
317
+ readonly enum: readonly [undefined];
318
+ }];
319
+ };
320
+ };
321
+ };
322
+ readonly response: {
323
+ readonly oneOfType: readonly [{
324
+ readonly success: {
325
+ readonly enum: readonly [true];
326
+ };
327
+ readonly data: {
328
+ readonly arrayOf: {
329
+ readonly record: {
330
+ readonly values: "unknown";
331
+ };
332
+ };
333
+ };
334
+ }, {
335
+ readonly success: {
336
+ readonly enum: readonly [false];
337
+ };
338
+ readonly err: "unknown";
339
+ }];
340
+ };
341
+ };
342
+ export const UpdateRequest: {
343
+ readonly name: "UpdateRequest";
344
+ readonly source: "server";
345
+ readonly request: {
346
+ readonly oneOfType: readonly [{
347
+ readonly state: {
348
+ readonly enum: readonly ["error"];
349
+ };
350
+ readonly err: "unknown";
351
+ }, {
352
+ readonly state: {
353
+ readonly enum: readonly ["synced"];
354
+ };
355
+ readonly isSynced: "boolean";
356
+ }, {
357
+ readonly state: {
358
+ readonly enum: readonly ["syncing"];
359
+ };
360
+ readonly data: {
361
+ readonly arrayOf: {
362
+ readonly record: {
363
+ readonly values: "unknown";
364
+ };
365
+ };
366
+ };
367
+ }];
368
+ };
369
+ readonly response: {
370
+ readonly oneOfType: readonly [{
371
+ readonly success: {
372
+ readonly enum: readonly [true];
373
+ };
374
+ }, {
375
+ readonly success: {
376
+ readonly enum: readonly [false];
377
+ };
378
+ readonly err: "unknown";
379
+ }];
380
+ };
381
+ };
382
+ const Schemas: {
383
+ readonly ClientSyncRequest: {
384
+ readonly name: "ClientSyncRequest";
385
+ readonly source: "client";
386
+ readonly request: {
387
+ readonly oneOfType: readonly [{
388
+ readonly state: {
389
+ readonly enum: readonly ["syncing"];
390
+ };
391
+ readonly c_fr: {
392
+ readonly optional: true;
393
+ readonly record: {
394
+ readonly values: "unknown";
395
+ };
396
+ };
397
+ readonly c_lr: {
398
+ readonly optional: true;
399
+ readonly record: {
400
+ readonly values: "unknown";
401
+ };
402
+ };
403
+ readonly c_count: "number";
404
+ }, {
405
+ readonly state: {
406
+ readonly enum: readonly ["syncing-data"];
407
+ };
408
+ readonly c_fr: {
409
+ readonly record: {
410
+ readonly values: "unknown";
411
+ };
412
+ };
413
+ readonly c_lr: {
414
+ readonly record: {
415
+ readonly values: "unknown";
416
+ };
417
+ };
418
+ readonly c_count: "number";
419
+ readonly data: {
420
+ readonly arrayOf: {
421
+ readonly record: {
422
+ readonly values: "unknown";
119
423
  };
120
- "server.emit": {
121
- data: {
122
- onPullRequest: SyncBatchParams;
123
- };
124
- "client.response": {
125
- data: ClientSyncPullResponse;
126
- };
424
+ };
425
+ };
426
+ }];
427
+ };
428
+ readonly response: {
429
+ readonly oneOfType: readonly [{
430
+ readonly state: {
431
+ readonly enum: readonly ["syncing"];
432
+ };
433
+ readonly c_fr: {
434
+ readonly optional: true;
435
+ readonly record: {
436
+ readonly values: "unknown";
437
+ };
438
+ };
439
+ readonly c_lr: {
440
+ readonly optional: true;
441
+ readonly record: {
442
+ readonly values: "unknown";
443
+ };
444
+ };
445
+ readonly c_count: "number";
446
+ }, {
447
+ readonly state: {
448
+ readonly enum: readonly ["syncing-data"];
449
+ };
450
+ readonly c_fr: {
451
+ readonly record: {
452
+ readonly values: "unknown";
453
+ };
454
+ };
455
+ readonly c_lr: {
456
+ readonly record: {
457
+ readonly values: "unknown";
458
+ };
459
+ };
460
+ readonly c_count: "number";
461
+ readonly data: {
462
+ readonly arrayOf: {
463
+ readonly record: {
464
+ readonly values: "unknown";
127
465
  };
128
466
  };
129
467
  };
468
+ }, {
469
+ readonly state: {
470
+ readonly enum: readonly ["error"];
471
+ };
472
+ readonly err: "unknown";
473
+ }];
474
+ };
475
+ };
476
+ readonly ServerSyncRequest: {
477
+ readonly name: "ServerSyncRequest";
478
+ readonly source: "server";
479
+ readonly request: {
480
+ readonly type: {
481
+ readonly from_synced: {
482
+ readonly oneOf: readonly ["string", {
483
+ readonly enum: readonly [null];
484
+ }];
485
+ };
486
+ readonly to_synced: {
487
+ readonly oneOf: readonly ["string", {
488
+ readonly enum: readonly [null];
489
+ }];
490
+ };
491
+ readonly end_offset: {
492
+ readonly oneOf: readonly ["number", {
493
+ readonly enum: readonly [null];
494
+ }];
495
+ };
130
496
  };
131
497
  };
498
+ readonly response: {
499
+ readonly oneOfType: readonly [{
500
+ readonly state: {
501
+ readonly enum: readonly ["syncing"];
502
+ };
503
+ readonly c_fr: {
504
+ readonly optional: true;
505
+ readonly record: {
506
+ readonly values: "unknown";
507
+ };
508
+ };
509
+ readonly c_lr: {
510
+ readonly optional: true;
511
+ readonly record: {
512
+ readonly values: "unknown";
513
+ };
514
+ };
515
+ readonly c_count: "number";
516
+ }, {
517
+ readonly state: {
518
+ readonly enum: readonly ["syncing-data"];
519
+ };
520
+ readonly c_fr: {
521
+ readonly record: {
522
+ readonly values: "unknown";
523
+ };
524
+ };
525
+ readonly c_lr: {
526
+ readonly record: {
527
+ readonly values: "unknown";
528
+ };
529
+ };
530
+ readonly c_count: "number";
531
+ readonly data: {
532
+ readonly arrayOf: {
533
+ readonly record: {
534
+ readonly values: "unknown";
535
+ };
536
+ };
537
+ };
538
+ }, {
539
+ readonly state: {
540
+ readonly enum: readonly ["error"];
541
+ };
542
+ readonly err: "unknown";
543
+ }];
544
+ };
545
+ };
546
+ readonly PullRequest: {
547
+ readonly name: "PullRequest";
548
+ readonly source: "server";
549
+ readonly request: {
550
+ readonly type: {
551
+ readonly from_synced: {
552
+ readonly oneOf: readonly ["string", {
553
+ readonly enum: readonly [undefined];
554
+ }];
555
+ };
556
+ readonly to_synced: {
557
+ readonly oneOf: readonly ["string", {
558
+ readonly enum: readonly [undefined];
559
+ }];
560
+ };
561
+ readonly offset: {
562
+ readonly oneOf: readonly ["number", {
563
+ readonly enum: readonly [undefined];
564
+ }];
565
+ };
566
+ readonly limit: {
567
+ readonly oneOf: readonly ["number", {
568
+ readonly enum: readonly [undefined];
569
+ }];
570
+ };
571
+ };
572
+ };
573
+ readonly response: {
574
+ readonly oneOfType: readonly [{
575
+ readonly success: {
576
+ readonly enum: readonly [true];
577
+ };
578
+ readonly data: {
579
+ readonly arrayOf: {
580
+ readonly record: {
581
+ readonly values: "unknown";
582
+ };
583
+ };
584
+ };
585
+ }, {
586
+ readonly success: {
587
+ readonly enum: readonly [false];
588
+ };
589
+ readonly err: "unknown";
590
+ }];
591
+ };
592
+ };
593
+ readonly UpdateRequest: {
594
+ readonly name: "UpdateRequest";
595
+ readonly source: "server";
596
+ readonly request: {
597
+ readonly oneOfType: readonly [{
598
+ readonly state: {
599
+ readonly enum: readonly ["error"];
600
+ };
601
+ readonly err: "unknown";
602
+ }, {
603
+ readonly state: {
604
+ readonly enum: readonly ["synced"];
605
+ };
606
+ readonly isSynced: "boolean";
607
+ }, {
608
+ readonly state: {
609
+ readonly enum: readonly ["syncing"];
610
+ };
611
+ readonly data: {
612
+ readonly arrayOf: {
613
+ readonly record: {
614
+ readonly values: "unknown";
615
+ };
616
+ };
617
+ };
618
+ }];
619
+ };
620
+ readonly response: {
621
+ readonly oneOfType: readonly [{
622
+ readonly success: {
623
+ readonly enum: readonly [true];
624
+ };
625
+ }, {
626
+ readonly success: {
627
+ readonly enum: readonly [false];
628
+ };
629
+ readonly err: "unknown";
630
+ }];
631
+ };
132
632
  };
133
633
  };
134
- };
634
+ type SchemasType = typeof Schemas;
635
+ export const getHandlers: <Side extends RequestBase["source"]>(channelName: string, socket: {
636
+ on: (channelName: string, request: (data: unknown, cb: SocketCallback) => MaybePromise<void>) => void;
637
+ emit: (channelName: string, request: unknown, response: (response: unknown) => MaybePromise<void>) => void;
638
+ removeAllListeners: (channelName: string) => void;
639
+ }, side: Side, onResponse: { [K in keyof SchemasType as SchemasType[K]["source"] extends Side ? never : K]: (params: JSONB.GetType<SchemasType[K]["request"]>) => Promise<JSONB.GetType<SchemasType[K]["response"]>>; }) => { [K in keyof SchemasType as SchemasType[K]["source"] extends Side ? K : never]: (params: JSONB.GetType<SchemasType[K]["request"]>) => Promise<JSONB.GetType<SchemasType[K]["response"]>>; };
640
+ export {};
641
+ }
642
+ export {};
135
643
  //# sourceMappingURL=replication.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"replication.d.ts","sourceRoot":"","sources":["../lib/replication.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"replication.d.ts","sourceRoot":"","sources":["../lib/replication.ts"],"names":[],"mappings":"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"}