@powersync/service-module-postgres-storage 0.16.3 → 0.18.0

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 (52) hide show
  1. package/CHANGELOG.md +60 -0
  2. package/dist/migrations/scripts/1782950400000-checkpoint-requested-at.d.ts +3 -0
  3. package/dist/migrations/scripts/1782950400000-checkpoint-requested-at.js +42 -0
  4. package/dist/migrations/scripts/1782950400000-checkpoint-requested-at.js.map +1 -0
  5. package/dist/migrations/scripts/1784900000000-source-metadata.d.ts +3 -0
  6. package/dist/migrations/scripts/1784900000000-source-metadata.js +22 -0
  7. package/dist/migrations/scripts/1784900000000-source-metadata.js.map +1 -0
  8. package/dist/storage/PostgresBucketStorageFactory.js +0 -2
  9. package/dist/storage/PostgresBucketStorageFactory.js.map +1 -1
  10. package/dist/storage/PostgresCompactor.d.ts +2 -0
  11. package/dist/storage/PostgresCompactor.js +20 -0
  12. package/dist/storage/PostgresCompactor.js.map +1 -1
  13. package/dist/storage/PostgresSyncRulesStorage.d.ts +16 -1
  14. package/dist/storage/PostgresSyncRulesStorage.js +200 -131
  15. package/dist/storage/PostgresSyncRulesStorage.js.map +1 -1
  16. package/dist/storage/batch/PostgresBucketBatch.d.ts +2 -20
  17. package/dist/storage/batch/PostgresBucketBatch.js +217 -240
  18. package/dist/storage/batch/PostgresBucketBatch.js.map +1 -1
  19. package/dist/storage/checkpoints/PostgresWriteCheckpointAPI.d.ts +1 -1
  20. package/dist/storage/checkpoints/PostgresWriteCheckpointAPI.js +156 -36
  21. package/dist/storage/checkpoints/PostgresWriteCheckpointAPI.js.map +1 -1
  22. package/dist/storage/current-data-store.d.ts +8 -2
  23. package/dist/storage/current-data-store.js +66 -11
  24. package/dist/storage/current-data-store.js.map +1 -1
  25. package/dist/types/models/SourceTable.d.ts +7 -2
  26. package/dist/types/models/SourceTable.js +6 -2
  27. package/dist/types/models/SourceTable.js.map +1 -1
  28. package/dist/types/models/WriteCheckpoint.d.ts +2 -0
  29. package/dist/types/models/WriteCheckpoint.js +5 -2
  30. package/dist/types/models/WriteCheckpoint.js.map +1 -1
  31. package/dist/utils/checkpoints.d.ts +9 -0
  32. package/dist/utils/checkpoints.js +26 -0
  33. package/dist/utils/checkpoints.js.map +1 -0
  34. package/package.json +8 -8
  35. package/src/migrations/scripts/1782950400000-checkpoint-requested-at.ts +51 -0
  36. package/src/migrations/scripts/1784900000000-source-metadata.ts +31 -0
  37. package/src/storage/PostgresBucketStorageFactory.ts +0 -3
  38. package/src/storage/PostgresCompactor.ts +24 -0
  39. package/src/storage/PostgresSyncRulesStorage.ts +219 -137
  40. package/src/storage/batch/PostgresBucketBatch.ts +227 -246
  41. package/src/storage/checkpoints/PostgresWriteCheckpointAPI.ts +165 -37
  42. package/src/storage/current-data-store.ts +66 -11
  43. package/src/types/models/SourceTable.ts +7 -2
  44. package/src/types/models/WriteCheckpoint.ts +5 -2
  45. package/src/utils/checkpoints.ts +31 -0
  46. package/test/src/__snapshots__/storage_sync.test.ts.snap +0 -582
  47. package/test/src/checkpoint_notifications.test.ts +522 -0
  48. package/test/src/storage.test.ts +214 -5
  49. package/test/src/storage_compacting.test.ts +3 -3
  50. package/test/src/storage_sync.test.ts +48 -4
  51. package/test/tsconfig.json +1 -1
  52. package/tsconfig.tsbuildinfo +1 -1
@@ -8,11 +8,16 @@ import { mapOpEntry } from '../utils/bucket-data.js';
8
8
  import * as framework from '@powersync/lib-services-framework';
9
9
  import { wrapWithAbort } from 'ix/asynciterable/operators/withabort.js';
10
10
  import * as t from 'ts-codec';
11
+ import * as checkpointUtils from '../utils/checkpoints.js';
11
12
  import { pick } from '../utils/ts-codec.js';
12
13
  import { PostgresBucketBatch } from './batch/PostgresBucketBatch.js';
13
14
  import { PostgresWriteCheckpointAPI } from './checkpoints/PostgresWriteCheckpointAPI.js';
14
15
  import { PostgresCurrentDataStore } from './current-data-store.js';
15
16
  import { PostgresCompactor } from './PostgresCompactor.js';
17
+ /**
18
+ * Number of rows deleted per batch when clearing storage for a replication stream.
19
+ */
20
+ export const CLEAR_BATCH_LIMIT = 50_000;
16
21
  export class PostgresSyncRulesStorage extends framework.BaseObserver {
17
22
  options;
18
23
  [framework.DO_NOT_LOG] = true;
@@ -247,7 +252,7 @@ export class PostgresSyncRulesStorage extends framework.BaseObserver {
247
252
  // Each batch query batch are streamed in separate sets of rows, which may or may
248
253
  // not match up with chunks.
249
254
  const end = checkpoint.checkpoint ?? BIGINT_MAX;
250
- const filters = dataBuckets.map((request) => ({ bucket_name: request.bucket, start: request.start }));
255
+ const sortedBuckets = [...dataBuckets].sort((a, b) => a.bucket.localeCompare(b.bucket));
251
256
  const startOpByBucket = new Map(dataBuckets.map((request) => [request.bucket, request.start]));
252
257
  const batchRowLimit = options?.limit ?? storage.DEFAULT_DOCUMENT_BATCH_LIMIT;
253
258
  const chunkSizeLimitBytes = options?.chunkLimitBytes ?? storage.DEFAULT_DOCUMENT_CHUNK_LIMIT_BYTES;
@@ -255,65 +260,64 @@ export class PostgresSyncRulesStorage extends framework.BaseObserver {
255
260
  let currentChunk = null;
256
261
  let targetOp = null;
257
262
  let batchRowCount = 0;
258
- /**
259
- * It is possible to perform this query with JSONB join. e.g.
260
- * ```sql
261
- * WITH
262
- * filter_data AS (
263
- * SELECT
264
- * FILTER ->> 'bucket_name' AS bucket_name,
265
- * (FILTER ->> 'start')::BIGINT AS start_op_id
266
- * FROM
267
- * jsonb_array_elements($1::jsonb) AS FILTER
268
- * )
269
- * SELECT
270
- * b.*,
271
- * octet_length(b.data) AS data_size
272
- * FROM
273
- * bucket_data b
274
- * JOIN filter_data f ON b.bucket_name = f.bucket_name
275
- * AND b.op_id > f.start_op_id
276
- * AND b.op_id <= $2
277
- * WHERE
278
- * b.group_id = $3
279
- * ORDER BY
280
- * b.bucket_name ASC,
281
- * b.op_id ASC
282
- * LIMIT
283
- * $4;
284
- * ```
285
- * Which might be better for large volumes of buckets, but in testing the JSON method
286
- * was significantly slower than the method below. Syncing 2.5 million rows in a single
287
- * bucket takes 2 minutes and 11 seconds with the method below. With the JSON method
288
- * 1 million rows were only synced before a 5 minute timeout.
289
- */
290
- for await (const rows of this.db.streamRows({
263
+ const requestedBuckets = sortedBuckets
264
+ .map((_, index) => `($${index * 2 + 4}, $${index * 2 + 5}, ${index})`)
265
+ .join(', ');
266
+ // Use one round trip while keeping a parameterized index range scan per bucket. Ordering the non-flattened request
267
+ // subquery gives Postgres a presorted bucket key, allowing an incremental sort and the outer limit to stop the
268
+ // nested loop early. The inner limit cannot exclude rows needed by the outer batch because both limits are equal.
269
+ const query = {
291
270
  statement: `
292
- SELECT
293
- *
294
- FROM
295
- bucket_data
296
- WHERE
297
- group_id = $1
298
- and op_id <= $2
299
- and (
300
- ${filters.map((f, index) => `(bucket_name = $${index * 2 + 4} and op_id > $${index * 2 + 5})`).join(' OR ')}
301
- )
302
- ORDER BY
303
- bucket_name ASC,
304
- op_id ASC
305
- LIMIT
306
- $3;`,
271
+ SELECT
272
+ bucket_data.*
273
+ FROM
274
+ (
275
+ SELECT
276
+ *
277
+ FROM
278
+ (
279
+ VALUES ${requestedBuckets}
280
+ ) AS bucket_requests(bucket_name, start_op_id, bucket_order)
281
+ -- Present requests in bucket order so the final sort can be incremental.
282
+ ORDER BY
283
+ bucket_order ASC
284
+ -- Prevent the planner from flattening away the ordered request path.
285
+ OFFSET
286
+ 0
287
+ ) AS requested
288
+ CROSS JOIN LATERAL (
289
+ SELECT
290
+ *
291
+ FROM
292
+ bucket_data
293
+ WHERE
294
+ group_id = $1
295
+ AND bucket_name = requested.bucket_name
296
+ AND op_id > requested.start_op_id
297
+ AND op_id <= $2
298
+ -- Keep each bucket's index range scan ordered and bounded.
299
+ ORDER BY
300
+ op_id ASC
301
+ LIMIT
302
+ $3
303
+ ) AS bucket_data
304
+ -- Guarantee contiguous bucket chunks while allowing the presorted bucket key to stop scans early.
305
+ ORDER BY
306
+ requested.bucket_order ASC,
307
+ bucket_data.op_id ASC
308
+ LIMIT
309
+ $3;`,
307
310
  params: [
308
311
  { type: 'int4', value: this.replicationStreamId },
309
312
  { type: 'int8', value: end },
310
313
  { type: 'int4', value: batchRowLimit },
311
- ...filters.flatMap((f) => [
312
- { type: 'varchar', value: f.bucket_name },
313
- { type: 'int8', value: f.start }
314
+ ...sortedBuckets.flatMap((request) => [
315
+ { type: 'varchar', value: request.bucket },
316
+ { type: 'int8', value: request.start }
314
317
  ])
315
318
  ]
316
- })) {
319
+ };
320
+ for await (const rows of this.db.streamRows(query)) {
317
321
  const decodedRows = rows.map((r) => models.BucketData.decode(r));
318
322
  for (const row of decodedRows) {
319
323
  const { bucket_name } = row;
@@ -428,7 +432,10 @@ export class PostgresSyncRulesStorage extends framework.BaseObserver {
428
432
  };
429
433
  }
430
434
  async clear(options) {
431
- // TODO: Cleanly abort the cleanup when the provided signal is aborted.
435
+ const signal = options?.signal;
436
+ if (signal?.aborted) {
437
+ throw new framework.ReplicationAbortedError('Aborted clearing data', signal.reason);
438
+ }
432
439
  await this.db.sql `
433
440
  UPDATE sync_rules
434
441
  SET
@@ -439,22 +446,60 @@ export class PostgresSyncRulesStorage extends framework.BaseObserver {
439
446
  WHERE
440
447
  id = ${{ type: 'int4', value: this.replicationStreamId }}
441
448
  `.execute();
442
- await this.db.sql `
443
- DELETE FROM bucket_data
444
- WHERE
445
- group_id = ${{ type: 'int4', value: this.replicationStreamId }}
446
- `.execute();
447
- await this.db.sql `
448
- DELETE FROM bucket_parameters
449
- WHERE
450
- group_id = ${{ type: 'int4', value: this.replicationStreamId }}
451
- `.execute();
452
- await this.currentDataStore.deleteGroupRows(this.db, { groupId: this.replicationStreamId });
453
- await this.db.sql `
454
- DELETE FROM source_tables
455
- WHERE
456
- group_id = ${{ type: 'int4', value: this.replicationStreamId }}
457
- `.execute();
449
+ // Delete in batches - a single DELETE covering the entire group can run for
450
+ // hours on large deployments, never completing once it exceeds statement or
451
+ // socket timeouts. Each batch is its own autocommit statement, so progress
452
+ // is durable and a retry continues where the previous attempt stopped.
453
+ await this.clearBatched('bucket_data', signal, () => this.deleteGroupBatch('bucket_data'));
454
+ await this.clearBatched('bucket_parameters', signal, () => this.deleteGroupBatch('bucket_parameters'));
455
+ await this.clearBatched('current_data', signal, () => this.currentDataStore.deleteGroupRowsBatch(this.db, {
456
+ groupId: this.replicationStreamId,
457
+ limit: CLEAR_BATCH_LIMIT
458
+ }));
459
+ await this.clearBatched('source_tables', signal, () => this.deleteGroupBatch('source_tables'));
460
+ }
461
+ async clearBatched(label, signal, deleteBatch) {
462
+ while (true) {
463
+ if (signal?.aborted) {
464
+ throw new framework.ReplicationAbortedError('Aborted clearing data', signal.reason);
465
+ }
466
+ const count = await deleteBatch();
467
+ if (count < CLEAR_BATCH_LIMIT) {
468
+ return;
469
+ }
470
+ this.logger.info(`Cleared batch of ${count} ${label} rows, continuing...`);
471
+ }
472
+ }
473
+ /**
474
+ * Delete up to {@link CLEAR_BATCH_LIMIT} rows for this group from the given table,
475
+ * returning the number of candidate rows found by the scan.
476
+ *
477
+ * The count is taken from the scan (`batch`) rather than the delete: with a
478
+ * concurrent process deleting the same rows, the delete may remove fewer rows
479
+ * than the scan found, and counting deleted rows could stop the loop while
480
+ * rows remain.
481
+ */
482
+ async deleteGroupBatch(table) {
483
+ const [row] = await this.db.queryRows({
484
+ statement: `
485
+ WITH batch AS (
486
+ SELECT ctid FROM ${table}
487
+ WHERE group_id = $1
488
+ LIMIT $2
489
+ ),
490
+ deleted AS (
491
+ DELETE FROM ${table}
492
+ WHERE ctid IN (SELECT ctid FROM batch)
493
+ RETURNING 1
494
+ )
495
+ SELECT COUNT(*) AS count FROM batch
496
+ `,
497
+ params: [
498
+ { type: 'int4', value: this.replicationStreamId },
499
+ { type: 'int4', value: CLEAR_BATCH_LIMIT }
500
+ ]
501
+ });
502
+ return row?.count ?? 0n;
458
503
  }
459
504
  async getChecksumsInternal(batch) {
460
505
  if (batch.length == 0) {
@@ -515,24 +560,8 @@ export class PostgresSyncRulesStorage extends framework.BaseObserver {
515
560
  }));
516
561
  }
517
562
  async getActiveCheckpoint() {
518
- const activeCheckpoint = await this.db.sql `
519
- SELECT
520
- id,
521
- last_checkpoint,
522
- last_checkpoint_lsn
523
- FROM
524
- sync_rules
525
- WHERE
526
- state = ${{ value: storage.SyncRuleState.ACTIVE, type: 'varchar' }}
527
- OR state = ${{ value: storage.SyncRuleState.ERRORED, type: 'varchar' }}
528
- ORDER BY
529
- id DESC
530
- LIMIT
531
- 1
532
- `
533
- .decoded(models.ActiveCheckpoint)
534
- .first();
535
- return this.makeActiveCheckpoint(activeCheckpoint);
563
+ const activeCheckpointDocument = await checkpointUtils.getActiveCheckpointDocument({ db: this.db });
564
+ return this.makeActiveCheckpoint(activeCheckpointDocument);
536
565
  }
537
566
  async *watchCheckpointChanges(options) {
538
567
  let lastCheckpoint = null;
@@ -569,53 +598,84 @@ export class PostgresSyncRulesStorage extends framework.BaseObserver {
569
598
  }
570
599
  }
571
600
  async *watchActiveCheckpoint(signal) {
572
- const doc = await this.db.sql `
573
- SELECT
574
- id,
575
- last_checkpoint,
576
- last_checkpoint_lsn
577
- FROM
578
- sync_rules
579
- WHERE
580
- state = ${{ value: storage.SyncRuleState.ACTIVE, type: 'varchar' }}
581
- OR state = ${{ value: storage.SyncRuleState.ERRORED, type: 'varchar' }}
582
- LIMIT
583
- 1
584
- `
585
- .decoded(models.ActiveCheckpoint)
586
- .first();
587
- if (doc == null) {
588
- // Abort the connections - clients will have to retry later.
589
- throw new framework.ServiceError(framework.ErrorCode.PSYNC_S2302, 'No active replication stream available');
590
- }
591
- const sink = new LastValueSink(undefined);
601
+ const sink = new LastValueSink(null);
602
+ // Listen for changes before reading the initial doc
592
603
  const disposeListener = this.db.registerListener({
593
- notification: (notification) => sink.write(notification.payload)
594
- });
595
- signal.addEventListener('aborted', async () => {
596
- disposeListener();
597
- sink.end();
598
- });
599
- yield this.makeActiveCheckpoint(doc);
600
- let lastOp = null;
601
- for await (const payload of sink.withSignal(signal)) {
602
- if (signal.aborted) {
603
- return;
604
- }
605
- const notification = models.ActiveCheckpointNotification.decode(payload);
606
- if (notification.active_checkpoint == null) {
607
- continue;
608
- }
609
- if (Number(notification.active_checkpoint.id) != doc.id) {
610
- // Active replication stream changed - abort and restart the stream
611
- break;
604
+ notificationEvent: (event) => {
605
+ switch (event.type) {
606
+ case 'notification':
607
+ sink.write(event.notification.payload);
608
+ break;
609
+ case 'channels-registered':
610
+ // Add a null value to the stream, indicating the loop should query the value.
611
+ sink.write(null);
612
+ break;
613
+ case 'connection-error':
614
+ // End the watcher after reconnect attempts are exhausted. Consumers will
615
+ // retry the watcher, which registers a new listener and pokes the slot.
616
+ sink.error(event.error);
617
+ break;
618
+ }
612
619
  }
613
- const activeCheckpoint = this.makeActiveCheckpoint(notification.active_checkpoint);
614
- if (lastOp == null || activeCheckpoint.lsn != lastOp.lsn || activeCheckpoint.checkpoint != lastOp.checkpoint) {
615
- lastOp = activeCheckpoint;
616
- yield activeCheckpoint;
620
+ });
621
+ try {
622
+ const initialCheckpointDocument = requireActiveCheckpointDocument(await checkpointUtils.getActiveCheckpointDocument({ db: this.db }));
623
+ const initialCheckpoint = this.makeActiveCheckpoint(initialCheckpointDocument);
624
+ let lastOp = initialCheckpoint;
625
+ yield initialCheckpoint;
626
+ for await (const payload of sink.withSignal(signal)) {
627
+ if (signal.aborted) {
628
+ return;
629
+ }
630
+ let baseActiveCheckpoint = null;
631
+ if (payload == null) {
632
+ // Reconnected (or manually triggered) - re-query the current checkpoint.
633
+ // Unlike the initial read, a missing document here (e.g. sync rules being
634
+ // replaced) must not abort the stream: keep waiting for the next notification.
635
+ baseActiveCheckpoint = await checkpointUtils.getActiveCheckpointDocument({ db: this.db });
636
+ if (baseActiveCheckpoint == null) {
637
+ continue;
638
+ }
639
+ }
640
+ else {
641
+ let notification;
642
+ try {
643
+ notification = models.ActiveCheckpointNotification.decode(payload);
644
+ }
645
+ catch (error) {
646
+ // A malformed payload must not abort the shared stream for every
647
+ // subscriber. Skip it and wait for the next notification.
648
+ this.logger.warn('Failed to decode active checkpoint notification, ignoring', error);
649
+ continue;
650
+ }
651
+ if (notification.active_checkpoint == null) {
652
+ continue;
653
+ }
654
+ baseActiveCheckpoint = notification.active_checkpoint;
655
+ }
656
+ if (baseActiveCheckpoint.id != initialCheckpointDocument.id) {
657
+ // Active replication stream changed - abort and restart the stream
658
+ break;
659
+ }
660
+ const activeCheckpoint = this.makeActiveCheckpoint(baseActiveCheckpoint);
661
+ const checkpointAdvanced = activeCheckpoint.checkpoint > lastOp.checkpoint;
662
+ const checkpointRegressed = activeCheckpoint.checkpoint < lastOp.checkpoint;
663
+ const lsnAdvanced = lastOp.lsn == null
664
+ ? activeCheckpoint.lsn != null
665
+ : activeCheckpoint.lsn != null && activeCheckpoint.lsn > lastOp.lsn;
666
+ const lsnRegressed = lastOp.lsn != null && (activeCheckpoint.lsn == null || activeCheckpoint.lsn < lastOp.lsn);
667
+ // Notifications buffered before a query or reconnect may be stale. Neither
668
+ // coordinate may regress, but only one needs to advance: an empty checkpoint
669
+ // updates the LSN while keeping the operation checkpoint unchanged.
670
+ if (!checkpointRegressed && !lsnRegressed && (checkpointAdvanced || lsnAdvanced)) {
671
+ lastOp = activeCheckpoint;
672
+ yield activeCheckpoint;
673
+ }
617
674
  }
618
675
  }
676
+ finally {
677
+ disposeListener();
678
+ }
619
679
  }
620
680
  async getCheckpointChanges(options) {
621
681
  // We do not track individual changes yet
@@ -642,4 +702,13 @@ const parameterSetsRow = t.object({
642
702
  index: bigint,
643
703
  bucket_parameters: t.string
644
704
  });
705
+ function requireActiveCheckpointDocument(doc) {
706
+ if (doc == null) {
707
+ // Used for the initial checkpoint read only: with no active replication stream
708
+ // at stream start, fail fast so clients disconnect and retry later. Mid-stream
709
+ // reconnects tolerate a transiently missing document instead of aborting.
710
+ throw new framework.ServiceError(framework.ErrorCode.PSYNC_S2302, 'No active replication stream available');
711
+ }
712
+ return doc;
713
+ }
645
714
  //# sourceMappingURL=PostgresSyncRulesStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PostgresSyncRulesStorage.js","sourceRoot":"","sources":["../../src/storage/PostgresSyncRulesStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PostgresSyncRulesStorage.js","sourceRoot":"","sources":["../../src/storage/PostgresSyncRulesStorage.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAEjB,yBAAyB,EAIzB,sBAAsB,EACtB,aAAa,EACb,MAAM,EACN,8BAA8B,EAK9B,OAAO,EAIR,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAErD,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAgC,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,OAAO,KAAK,SAAS,MAAM,mCAAmC,CAAC;AAE/D,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AACxE,OAAO,KAAK,CAAC,MAAM,UAAU,CAAC;AAE9B,OAAO,KAAK,eAAe,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAW3D;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAExC,MAAM,OAAO,wBACX,SAAQ,SAAS,CAAC,YAAoD;IA6BhD;IA1BtB,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IAEd,mBAAmB,CAAS;IAC5B,iBAAiB,CAAqC;IACtD,UAAU,CAAqC;IAC/C,qBAAqB,CAAS;IAC9B,OAAO,CAA+B;IACtC,aAAa,CAAuB;IACpC,MAAM,CAAmB;IAEjC,cAAc,GAAG,IAAI,iBAAiB,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IAErF,EAAE,CAA8B;IAChC,kBAAkB,CAA6B;IACxC,gBAAgB,CAA2B;IAE5D;;;;;;OAMG;IACc,oBAAoB,GAAG,IAAI,GAAG,EAAuC,CAAC;IAC/E,cAAc,CAAoC;IAE1D,YAAsB,OAAwC;QAC5D,KAAK,EAAE,CAAC;QADY,YAAO,GAAP,OAAO,CAAiC;QAE5D,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;QACnD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC,mBAAmB,CAAC;QACzE,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC,qBAAqB,CAAC;QAC7E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;QAClE,IAAI,CAAC,gBAAgB,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACzE,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC;QAE/C,IAAI,CAAC,kBAAkB,GAAG,IAAI,0BAA0B,CAAC;YACvD,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,OAAO,CAAC,qBAAqB,IAAI,OAAO,CAAC,mBAAmB,CAAC,OAAO;SAC3E,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,IAAY,aAAa;QACvB,IAAI,CAAC,cAAc,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC;YAChD,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB;YACtC,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxB,OAAO,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC;IACrD,CAAC;IAED,sBAAsB,CAAC,OAAuC;QAC5D,IAAI,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAClE,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAChD,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB,CAAC,OAAuC;QACxD,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,kBAAkB,CAAC;IACjE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,CAAM;QACtB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,qBAAqB,CAAC,CAAC;QAC3D,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;6BAGQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE;;eAEjD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;KAC3D,CAAC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAgC;QAC5C,IAAI,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC;QAC/B,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACpB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9C,mGAAmG;YACnG,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,mBAAmB,EAAE;YAC9D,GAAG,OAAO;YACV,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC,OAAO,EAAE,CAAC;IACf,CAAC;IAED,KAAK,CAAC,+BAA+B,CAAC,QAAsC;QAC1E,6DAA6D;QAC7D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACxB,CAAC;IAED,mBAAmB,CAAC,OAAsD;QACxE,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC;YACjD,GAAG,OAAO;YACV,aAAa,EAAE,IAAI,CAAC,mBAAmB;SACxC,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB,CAAC,IAAiC;QACtD,OAAO,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,6BAA6B,CAC3B,WAAoD;QAEpD,OAAO,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC5E,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;;;;eAO5B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;KAC3D;aACE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,iBAAiB,EAAE,qBAAqB,CAAC,CAAC,CAAC;aAC3E,KAAK,EAAE,CAAC;QAEX,OAAO,IAAI,6BAA6B,CACtC,IAAI,EACJ,aAAa,EAAE,eAAe,IAAI,EAAE,EACpC,aAAa,EAAE,mBAAmB,IAAI,IAAI,CAC3C,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAoC;QACrD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;;;;;;eASxB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;KAC3D;aACE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,qBAAqB,EAAE,sBAAsB,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC;aAChH,KAAK,EAAE,CAAC;QAEX,MAAM,cAAc,GAAG,SAAS,EAAE,mBAAmB,IAAI,IAAI,CAAC;QAE9D,MAAM,MAAM,GAAG,IAAI,mBAAmB,CAAC;YACrC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;YACrC,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;YAC5C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;YAC7C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;YACjD,mBAAmB,EAAE,cAAc;YACnC,aAAa,EAAE,SAAS,EAAE,YAAY;YACtC,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,cAAc,CAAC;YAC9D,kBAAkB,EAAE,OAAO,CAAC,gBAAgB;YAC5C,kBAAkB,EAAE,OAAO,CAAC,gBAAgB,IAAI,KAAK;YACrD,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW;YACtC,qBAAqB,EAAE,OAAO,CAAC,qBAAqB;YACpD,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;QACH,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,OAAoC,EACpC,QAA8D;QAE9D,YAAY,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvB,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,UAAiC,EACjC,OAA2C,EAC3C,KAAa;QAEb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;;;;;mCAQC;YAC3B,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SAC5E;;yBAEkB,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;;wBAElD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,UAAU,EAAE;;;;;;;;;;;;;;;UAe5D,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE;KACvC;aACE,OAAO,CAAC,gBAAgB,CAAC;aACzB,IAAI,EAAE,CAAC;QAEV,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,eAAe,GAAG,IAAI,GAAG,EAAgE,CAAC;QAChG,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAA+B,CAAC;YACzF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;YAC1C,SAAS,IAAI,aAAa,CAAC,MAAM,CAAC;YAElC,MAAM,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpD,IAAI,eAAe,IAAI,IAAI,EAAE,CAAC;gBAC5B,eAAe,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,IAAI,SAAS,GAAG,KAAK,EAAE,CAAC;YACtB,yGAAyG;YACzG,8GAA8G;YAC9G,gCAAgC;YAChC,MAAM,IAAI,8BAA8B,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,OAAO,GAAqC,EAAE,CAAC;QACrD,eAAe,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1E,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,CAAC,kBAAkB,CACvB,UAAyC,EACzC,WAAwC,EACxC,OAAwC;QAExC,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,mBAAmB;QACnB,6EAA6E;QAC7E,6EAA6E;QAC7E,uDAAuD;QACvD,iFAAiF;QACjF,4BAA4B;QAE5B,MAAM,GAAG,GAAG,UAAU,CAAC,UAAU,IAAI,UAAU,CAAC;QAChD,MAAM,aAAa,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACxF,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAE/F,MAAM,aAAa,GAAG,OAAO,EAAE,KAAK,IAAI,OAAO,CAAC,4BAA4B,CAAC;QAC7E,MAAM,mBAAmB,GAAG,OAAO,EAAE,eAAe,IAAI,OAAO,CAAC,kCAAkC,CAAC;QAEnG,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,IAAI,YAAY,GAAgC,IAAI,CAAC;QACrD,IAAI,QAAQ,GAAwB,IAAI,CAAC;QACzC,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,MAAM,gBAAgB,GAAG,aAAa;aACnC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC;aACrE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,mHAAmH;QACnH,+GAA+G;QAC/G,kHAAkH;QAClH,MAAM,KAAK,GAAc;YACvB,SAAS,EAAE;;;;;;;;;yBASQ,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA8B3B;YACR,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;gBACjD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE;gBAC5B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE;gBACtC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;oBACpC,EAAE,IAAI,EAAE,SAAkB,EAAE,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE;oBACnD,EAAE,IAAI,EAAE,MAAe,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;iBAChD,CAAC;aACH;SACF,CAAC;QAEF,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAQ,CAAC,CAAC,CAAC;YAExE,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC9B,MAAM,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;gBAC5B,MAAM,YAAY,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEpD,MAAM,YAAY,GAChB,cAAc,IAAI,mBAAmB;oBACrC,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,IAAI,cAAc,GAAG,YAAY,GAAG,mBAAmB,CAAC;oBAClF,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,aAAa,CAAC;gBAEpD,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,MAAM,IAAI,WAAW,IAAI,YAAY,EAAE,CAAC;oBAC/E,IAAI,KAAK,GAAuB,SAAS,CAAC;oBAC1C,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;wBACzB,IAAI,YAAY,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;4BACvC,YAAY,CAAC,QAAQ,GAAG,IAAI,CAAC;4BAC7B,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC;wBAClC,CAAC;wBAED,MAAM,UAAU,GAAG,YAAY,CAAC;wBAChC,YAAY,GAAG,IAAI,CAAC;wBACpB,cAAc,GAAG,CAAC,CAAC;wBACnB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;wBACpD,QAAQ,GAAG,IAAI,CAAC;wBAChB,IAAI,aAAa,IAAI,aAAa,EAAE,CAAC;4BACnC,uCAAuC;4BACvC,MAAM;wBACR,CAAC;oBACH,CAAC;oBAED,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;wBAClB,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;wBACnD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;4BACtB,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,+BAA+B,WAAW,EAAE,CAAC,CAAC;wBAC1F,CAAC;wBACD,KAAK,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;oBAC5C,CAAC;oBACD,YAAY,GAAG;wBACb,MAAM,EAAE,WAAW;wBACnB,KAAK,EAAE,KAAK;wBACZ,0CAA0C;wBAC1C,QAAQ,EAAE,KAAK;wBACf,IAAI,EAAE,EAAE;wBACR,gCAAgC;wBAChC,UAAU,EAAE,KAAK;qBAClB,CAAC;oBACF,QAAQ,GAAG,IAAI,CAAC;gBAClB,CAAC;gBAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;gBAE9B,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACvC,KAAK,CAAC,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;gBACnG,CAAC;gBAED,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,EAAE,CAAC;oBAC1B,cAAc;oBACd,MAAM,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC;oBAClC,IAAI,QAAQ,IAAI,IAAI,IAAI,WAAW,GAAG,QAAQ,EAAE,CAAC;wBAC/C,QAAQ,GAAG,WAAW,CAAC;oBACzB,CAAC;gBACH,CAAC;gBAED,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9B,YAAY,CAAC,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;gBAEtC,cAAc,IAAI,YAAY,CAAC;gBAE/B,wCAAwC;gBACxC,aAAa,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;QAED,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,YAAY,CAAC;YAChC,YAAY,GAAG,IAAI,CAAC;YACpB,wCAAwC;YACxC,+EAA+E;YAC/E,wFAAwF;YACxF,8CAA8C;YAC9C,UAAU,CAAC,QAAQ,GAAG,aAAa,IAAI,aAAa,CAAC;YACrD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;YACpD,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,UAAyC,EACzC,OAAwC,EACxC,QAAwC;QAExC,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAkC;QAChD,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,YAAY,EAAE,CAAC;YACtC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;QACD,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;kBAGH,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE;0BACpD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;;eAEzC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;KAC3D,CAAC,OAAO,EAAE,CAAC;IACd,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;;;;;;eAS3B,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;KAC3D;aACE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,eAAe,EAAE,qBAAqB,EAAE,cAAc,CAAC,CAAC,CAAC;aACzF,KAAK,EAAE,CAAC;QAEX,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO;YACL,YAAY,EAAE,YAAY,CAAC,aAAa,IAAI,YAAY,CAAC,mBAAmB,IAAI,IAAI;YACpF,SAAS,EAAE,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,YAAY,CAAC,mBAAmB,CAAC;SAC/E,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAqC;QAC/C,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;QAC/B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACtF,CAAC;QAED,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;;;;;eAQN,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;KAC3D,CAAC,OAAO,EAAE,CAAC;QAEZ,4EAA4E;QAC5E,4EAA4E;QAC5E,2EAA2E;QAC3E,uEAAuE;QACvE,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3F,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACvG,MAAM,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,CACnD,IAAI,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,EAAE;YAClD,OAAO,EAAE,IAAI,CAAC,mBAAmB;YACjC,KAAK,EAAE,iBAAiB;SACzB,CAAC,CACH,CAAC;QACF,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,CAAC;IACjG,CAAC;IAEO,KAAK,CAAC,YAAY,CACxB,KAAa,EACb,MAA+B,EAC/B,WAAkC;QAElC,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YACtF,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,WAAW,EAAE,CAAC;YAClC,IAAI,KAAK,GAAG,iBAAiB,EAAE,CAAC;gBAC9B,OAAO;YACT,CAAC;YACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,KAAK,IAAI,KAAK,sBAAsB,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACK,KAAK,CAAC,gBAAgB,CAAC,KAA4D;QACzF,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,SAAS,CAAoB;YACvD,SAAS,EAAE;;6BAEY,KAAK;;;;;wBAKV,KAAK;;;;;OAKtB;YACD,MAAM,EAAE;gBACN,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;gBACjD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE;aAC3C;SACF,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,KAAK,IAAI,EAAE,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,oBAAoB,CAAC,KAA2C;QAC5E,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,MAAM,WAAW,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACpC,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC5B,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC;SACnB,CAAC,CAAC,CAAC;QAEJ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAA;;;;;;;;mCAQF,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE;;;;;;;;;;;;;;;;;;uBAkBjD,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE;;;KAGnE,CAAC,IAAI,EAAmF,CAAC;QAE1F,OAAO,IAAI,GAAG,CACZ,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAClB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,WAAW,CAAC,GAAG,UAAU,CAAC;YAE/E,OAAO;gBACL,GAAG,CAAC,MAAM;gBACV,GAAG,CAAC,YAAY,IAAI,CAAC;oBACnB,CAAC,CAAE;wBACC,gBAAgB;wBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;wBACxB,QAAQ;qBACiB;oBAC7B,CAAC,CAAE;wBACC,MAAM,EAAE,GAAG,CAAC,MAAM;wBAClB,YAAY,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;wBAC/B,eAAe,EAAE,QAAQ;qBACC;aACjC,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB;QACvB,MAAM,wBAAwB,GAAG,MAAM,eAAe,CAAC,2BAA2B,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACpG,OAAO,IAAI,CAAC,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,CAAC,sBAAsB,CAAC,OAAoC;QAChE,IAAI,cAAc,GAA8B,IAAI,CAAC;QACrD,IAAI,mBAAmB,GAAkB,IAAI,CAAC;QAE9C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QAEpC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QACxD,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;YAC5B,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;YAE/B,2CAA2C;YAC3C,wBAAwB;YACxB,iCAAiC;YACjC,oDAAoD;YACpD,MAAM,UAAU,GAA2B,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAEjE,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC;gBAC5D,OAAO;gBACP,KAAK,EAAE;oBACL,GAAG,UAAU;iBACd;aACF,CAAC,CAAC;YAEH,IAAI,sBAAsB,IAAI,mBAAmB,IAAI,UAAU,IAAI,cAAc,EAAE,CAAC;gBAClF,gCAAgC;gBAChC,4DAA4D;gBAC5D,6DAA6D;gBAC7D,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBACjD,SAAS;YACX,CAAC;YAED,mBAAmB,GAAG,sBAAsB,CAAC;YAC7C,cAAc,GAAG,UAAU,CAAC;YAE5B,MAAM;gBACJ,IAAI,EAAE,EAAE;gBACR,eAAe,EAAE,sBAAsB;gBACvC,MAAM,EAAE,yBAAyB;aAClC,CAAC;QACJ,CAAC;IACH,CAAC;IAES,KAAK,CAAC,CAAC,qBAAqB,CAAC,MAAmB;QACxD,MAAM,IAAI,GAAG,IAAI,aAAa,CAAgB,IAAI,CAAC,CAAC;QAEpD,oDAAoD;QACpD,MAAM,eAAe,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC;YAC/C,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC3B,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;oBACnB,KAAK,cAAc;wBACjB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;wBACvC,MAAM;oBACR,KAAK,qBAAqB;wBACxB,8EAA8E;wBAC9E,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;wBACjB,MAAM;oBACR,KAAK,kBAAkB;wBACrB,yEAAyE;wBACzE,wEAAwE;wBACxE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;wBACxB,MAAM;gBACV,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,yBAAyB,GAAG,+BAA+B,CAC/D,MAAM,eAAe,CAAC,2BAA2B,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CACnE,CAAC;YACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;YAC/E,IAAI,MAAM,GAAG,iBAAiB,CAAC;YAE/B,MAAM,iBAAiB,CAAC;YAExB,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACnB,OAAO;gBACT,CAAC;gBAED,IAAI,oBAAoB,GAAmC,IAAI,CAAC;gBAChE,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;oBACpB,yEAAyE;oBACzE,0EAA0E;oBAC1E,+EAA+E;oBAC/E,oBAAoB,GAAG,MAAM,eAAe,CAAC,2BAA2B,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;oBAC1F,IAAI,oBAAoB,IAAI,IAAI,EAAE,CAAC;wBACjC,SAAS;oBACX,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,YAAwD,CAAC;oBAC7D,IAAI,CAAC;wBACH,YAAY,GAAG,MAAM,CAAC,4BAA4B,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;oBACrE,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,iEAAiE;wBACjE,0DAA0D;wBAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,EAAE,KAAK,CAAC,CAAC;wBACrF,SAAS;oBACX,CAAC;oBACD,IAAI,YAAY,CAAC,iBAAiB,IAAI,IAAI,EAAE,CAAC;wBAC3C,SAAS;oBACX,CAAC;oBACD,oBAAoB,GAAG,YAAY,CAAC,iBAAiB,CAAC;gBACxD,CAAC;gBAED,IAAI,oBAAoB,CAAC,EAAE,IAAI,yBAAyB,CAAC,EAAE,EAAE,CAAC;oBAC5D,mEAAmE;oBACnE,MAAM;gBACR,CAAC;gBAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CAAC,CAAC;gBAEzE,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;gBAC3E,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;gBAC5E,MAAM,WAAW,GACf,MAAM,CAAC,GAAG,IAAI,IAAI;oBAChB,CAAC,CAAC,gBAAgB,CAAC,GAAG,IAAI,IAAI;oBAC9B,CAAC,CAAC,gBAAgB,CAAC,GAAG,IAAI,IAAI,IAAI,gBAAgB,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;gBACxE,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI,IAAI,IAAI,gBAAgB,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;gBAE/G,2EAA2E;gBAC3E,6EAA6E;gBAC7E,oEAAoE;gBACpE,IAAI,CAAC,mBAAmB,IAAI,CAAC,YAAY,IAAI,CAAC,kBAAkB,IAAI,WAAW,CAAC,EAAE,CAAC;oBACjF,MAAM,GAAG,gBAAgB,CAAC;oBAC1B,MAAM,gBAAgB,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,eAAe,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,OAAoC;QAC7D,yCAAyC;QACzC,OAAO,yBAAyB,CAAC;IACnC,CAAC;IAEO,oBAAoB,CAAC,GAA0C;QACrE,OAAO,IAAI,6BAA6B,CAAC,IAAI,EAAE,GAAG,EAAE,eAAe,IAAI,EAAE,EAAE,GAAG,EAAE,mBAAmB,IAAI,IAAI,CAAC,CAAC;IAC/G,CAAC;CACF;AAED,MAAM,6BAA6B;IAEvB;IACQ;IACA;IAHlB,YACU,OAAiC,EACzB,UAA8B,EAC9B,GAAkB;QAF1B,YAAO,GAAP,OAAO,CAA0B;QACzB,eAAU,GAAV,UAAU,CAAoB;QAC9B,QAAG,GAAH,GAAG,CAAe;IACjC,CAAC;IAEJ,gBAAgB,CACd,OAA2C,EAC3C,KAAa;QAEb,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;CACF;AAED,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,MAAM;IACb,iBAAiB,EAAE,CAAC,CAAC,MAAM;CAC5B,CAAC,CAAC;AAEH,SAAS,+BAA+B,CAAC,GAA0C;IACjF,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,+EAA+E;QAC/E,+EAA+E;QAC/E,0EAA0E;QAC1E,MAAM,IAAI,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,EAAE,wCAAwC,CAAC,CAAC;IAC9G,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -2,9 +2,8 @@ import * as lib_postgres from '@powersync/lib-service-postgres';
2
2
  import { BaseObserver, Logger } from '@powersync/lib-services-framework';
3
3
  import { BucketStorageMarkRecordUnavailable, CheckpointResult, InternalOpId, storage } from '@powersync/service-core';
4
4
  import * as sync_rules from '@powersync/service-sync-rules';
5
- import * as t from 'ts-codec';
6
5
  import { V3CurrentDataDecoded } from '../../types/models/CurrentData.js';
7
- import { RequiredOperationBatchLimits } from '../../types/types.js';
6
+ import { models, RequiredOperationBatchLimits } from '../../types/types.js';
8
7
  import { OperationBatch, RecordOperation } from './OperationBatch.js';
9
8
  import { PostgresPersistedBatch } from './PostgresPersistedBatch.js';
10
9
  export interface PostgresBucketBatchOptions {
@@ -26,22 +25,6 @@ export interface PostgresBucketBatchOptions {
26
25
  hooks: storage.StorageHooks | undefined;
27
26
  storageConfig: storage.StorageVersionConfig;
28
27
  }
29
- /**
30
- * Intermediate type which helps for only watching the active replication stream
31
- * via the Postgres NOTIFY protocol.
32
- */
33
- declare const StatefulCheckpoint: t.Intersection<t.Codec<{
34
- id: number;
35
- last_checkpoint: bigint | null;
36
- last_checkpoint_lsn: string | null;
37
- }, {
38
- id: number;
39
- last_checkpoint: string | number | null;
40
- last_checkpoint_lsn: string | null;
41
- }, string, t.CodecProps>, t.ObjectCodec<{
42
- state: t.EnumCodec<typeof storage.SyncRuleState>;
43
- }>>;
44
- type StatefulCheckpointDecoded = t.Decoded<typeof StatefulCheckpoint>;
45
28
  export declare class PostgresBucketBatch extends BaseObserver<storage.BucketBatchStorageListener> implements storage.BucketStorageBatch {
46
29
  protected options: PostgresBucketBatchOptions;
47
30
  private logger;
@@ -121,5 +104,4 @@ export declare class PostgresBucketBatch extends BaseObserver<storage.BucketBatc
121
104
  * Uses Postgres' NOTIFY functionality to update different processes when the
122
105
  * active checkpoint has been updated.
123
106
  */
124
- export declare const notifySyncRulesUpdate: (db: lib_postgres.DatabaseClient, update: StatefulCheckpointDecoded) => Promise<void>;
125
- export {};
107
+ export declare const notifySyncRulesUpdate: (db: lib_postgres.AbstractPostgresConnection, update: models.ActiveCheckpointDecoded) => Promise<void>;