@powersync/service-module-postgres 0.19.2 → 0.19.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/PostgresRouteAPIAdapter.d.ts +1 -1
- package/dist/api/PostgresRouteAPIAdapter.js +63 -72
- package/dist/api/PostgresRouteAPIAdapter.js.map +1 -1
- package/dist/module/PostgresModule.js.map +1 -1
- package/dist/replication/MissingReplicationSlotError.d.ts +41 -0
- package/dist/replication/MissingReplicationSlotError.js +33 -0
- package/dist/replication/MissingReplicationSlotError.js.map +1 -0
- package/dist/replication/PostgresErrorRateLimiter.js +1 -1
- package/dist/replication/PostgresErrorRateLimiter.js.map +1 -1
- package/dist/replication/SnapshotQuery.js +2 -2
- package/dist/replication/SnapshotQuery.js.map +1 -1
- package/dist/replication/WalStream.d.ts +37 -14
- package/dist/replication/WalStream.js +145 -41
- package/dist/replication/WalStream.js.map +1 -1
- package/dist/replication/WalStreamReplicationJob.d.ts +1 -1
- package/dist/replication/WalStreamReplicationJob.js +7 -4
- package/dist/replication/WalStreamReplicationJob.js.map +1 -1
- package/dist/replication/WalStreamReplicator.d.ts +0 -1
- package/dist/replication/WalStreamReplicator.js +0 -22
- package/dist/replication/WalStreamReplicator.js.map +1 -1
- package/dist/replication/replication-index.d.ts +3 -1
- package/dist/replication/replication-index.js +3 -1
- package/dist/replication/replication-index.js.map +1 -1
- package/dist/replication/replication-utils.d.ts +3 -11
- package/dist/replication/replication-utils.js +101 -164
- package/dist/replication/replication-utils.js.map +1 -1
- package/dist/replication/wal-budget-utils.d.ts +23 -0
- package/dist/replication/wal-budget-utils.js +57 -0
- package/dist/replication/wal-budget-utils.js.map +1 -0
- package/dist/types/registry.js +1 -1
- package/dist/types/registry.js.map +1 -1
- package/package.json +15 -11
- package/sql/check-source-configuration.plpgsql +13 -0
- package/sql/debug-tables-info-batched.plpgsql +230 -0
- package/CHANGELOG.md +0 -843
- package/src/api/PostgresRouteAPIAdapter.ts +0 -356
- package/src/index.ts +0 -1
- package/src/module/PostgresModule.ts +0 -122
- package/src/replication/ConnectionManagerFactory.ts +0 -33
- package/src/replication/PgManager.ts +0 -122
- package/src/replication/PgRelation.ts +0 -41
- package/src/replication/PostgresErrorRateLimiter.ts +0 -48
- package/src/replication/SnapshotQuery.ts +0 -213
- package/src/replication/WalStream.ts +0 -1157
- package/src/replication/WalStreamReplicationJob.ts +0 -138
- package/src/replication/WalStreamReplicator.ts +0 -79
- package/src/replication/replication-index.ts +0 -5
- package/src/replication/replication-utils.ts +0 -398
- package/src/types/registry.ts +0 -275
- package/src/types/resolver.ts +0 -227
- package/src/types/types.ts +0 -44
- package/src/utils/application-name.ts +0 -8
- package/src/utils/migration_lib.ts +0 -80
- package/src/utils/populate_test_data.ts +0 -37
- package/src/utils/populate_test_data_worker.ts +0 -53
- package/src/utils/postgres_version.ts +0 -8
- package/test/src/checkpoints.test.ts +0 -86
- package/test/src/chunked_snapshots.test.ts +0 -161
- package/test/src/env.ts +0 -11
- package/test/src/large_batch.test.ts +0 -241
- package/test/src/pg_test.test.ts +0 -729
- package/test/src/resuming_snapshots.test.ts +0 -160
- package/test/src/route_api_adapter.test.ts +0 -62
- package/test/src/schema_changes.test.ts +0 -655
- package/test/src/setup.ts +0 -12
- package/test/src/slow_tests.test.ts +0 -519
- package/test/src/storage_combination.test.ts +0 -35
- package/test/src/types/registry.test.ts +0 -149
- package/test/src/util.ts +0 -151
- package/test/src/validation.test.ts +0 -63
- package/test/src/wal_stream.test.ts +0 -607
- package/test/src/wal_stream_utils.ts +0 -284
- package/test/tsconfig.json +0 -27
- package/tsconfig.json +0 -34
- package/tsconfig.tsbuildinfo +0 -1
- package/vitest.config.ts +0 -3
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import * as lib_postgres from '@powersync/lib-service-postgres';
|
|
2
2
|
import { container, DatabaseConnectionError, logger as defaultLogger, ErrorCode, ReplicationAbortedError, ReplicationAssertionError } from '@powersync/lib-services-framework';
|
|
3
|
-
import { getUuidReplicaIdentityBson, RelationCache, storage } from '@powersync/service-core';
|
|
3
|
+
import { getUuidReplicaIdentityBson, RelationCache, ReplicationLagTracker, storage } from '@powersync/service-core';
|
|
4
4
|
import * as pgwire from '@powersync/service-jpgwire';
|
|
5
5
|
import { applyValueContext, CompatibilityContext, toSyncRulesValue } from '@powersync/service-sync-rules';
|
|
6
6
|
import { ReplicationMetric } from '@powersync/service-types';
|
|
7
|
+
import { MissingReplicationSlotError } from './MissingReplicationSlotError.js';
|
|
7
8
|
import { getPgOutputRelation, getRelId, referencedColumnTypeIds } from './PgRelation.js';
|
|
8
9
|
import { checkSourceConfiguration, checkTableRls, getReplicationIdentityColumns } from './replication-utils.js';
|
|
9
10
|
import { ChunkedSnapshotQuery, IdSnapshotQuery, SimpleSnapshotQuery } from './SnapshotQuery.js';
|
|
11
|
+
import { computeWalBudgetReport, formatBytes, formatWalBudgetLine } from './wal-budget-utils.js';
|
|
10
12
|
export const ZERO_LSN = '00000000/00000000';
|
|
11
13
|
export const PUBLICATION_NAME = 'powersync';
|
|
12
14
|
export const POSTGRES_DEFAULT_SCHEMA = 'public';
|
|
@@ -30,12 +32,6 @@ export const isKeepAliveMessage = (msg) => {
|
|
|
30
32
|
export const sendKeepAlive = async (db) => {
|
|
31
33
|
await lib_postgres.retriedQuery(db, KEEPALIVE_STATEMENT);
|
|
32
34
|
};
|
|
33
|
-
export class MissingReplicationSlotError extends Error {
|
|
34
|
-
constructor(message, cause) {
|
|
35
|
-
super(message);
|
|
36
|
-
this.cause = cause;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
35
|
export class WalStream {
|
|
40
36
|
sync_rules;
|
|
41
37
|
group_id;
|
|
@@ -54,17 +50,19 @@ export class WalStream {
|
|
|
54
50
|
});
|
|
55
51
|
startedStreaming = false;
|
|
56
52
|
snapshotChunkLength;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
* This is used to determine the replication lag.
|
|
60
|
-
*/
|
|
61
|
-
oldestUncommittedChange = null;
|
|
62
|
-
/**
|
|
63
|
-
* Keep track of whether we have done a commit or keepalive yet.
|
|
64
|
-
* We can only compute replication lag if isStartingReplication == false, or oldestUncommittedChange is present.
|
|
65
|
-
*/
|
|
66
|
-
isStartingReplication = true;
|
|
53
|
+
onSnapshotChunkFlushed;
|
|
54
|
+
replicationLag = new ReplicationLagTracker();
|
|
67
55
|
initialSnapshotPromise = null;
|
|
56
|
+
slotHealthCheckIntervalMs;
|
|
57
|
+
/** Cached max_slot_wal_keep_size in bytes. null = not yet queried. */
|
|
58
|
+
maxSlotWalKeepSize = null;
|
|
59
|
+
/** Whether max_slot_wal_keep_size has been queried (distinguishes "not
|
|
60
|
+
* queried" from "queried and found unlimited"). */
|
|
61
|
+
maxSlotWalKeepSizeQueried = false;
|
|
62
|
+
/** Previous safe_wal_size sample for rate calculation. */
|
|
63
|
+
prevWalBudgetSample = null;
|
|
64
|
+
/** Timestamp of last slot health check. */
|
|
65
|
+
lastSlotHealthCheckTime = 0;
|
|
68
66
|
constructor(options) {
|
|
69
67
|
this.logger = options.logger ?? defaultLogger;
|
|
70
68
|
this.storage = options.storage;
|
|
@@ -74,6 +72,8 @@ export class WalStream {
|
|
|
74
72
|
this.slot_name = options.storage.slot_name;
|
|
75
73
|
this.connections = options.connections;
|
|
76
74
|
this.snapshotChunkLength = options.snapshotChunkLength ?? 10_000;
|
|
75
|
+
this.onSnapshotChunkFlushed = options.onSnapshotChunkFlushed;
|
|
76
|
+
this.slotHealthCheckIntervalMs = options.slotHealthCheckIntervalMs ?? 120_000;
|
|
77
77
|
this.abort_signal = options.abort_signal;
|
|
78
78
|
this.abort_signal.addEventListener('abort', () => {
|
|
79
79
|
if (this.startedStreaming) {
|
|
@@ -223,7 +223,12 @@ export class WalStream {
|
|
|
223
223
|
const lost = slot.wal_status == 'lost';
|
|
224
224
|
if (lost) {
|
|
225
225
|
// Case 1 / 4
|
|
226
|
-
|
|
226
|
+
const fixGuidance = slot.invalidation_reason === 'idle_timeout'
|
|
227
|
+
? `Increase idle_replication_slot_timeout on the source database.`
|
|
228
|
+
: `Increase max_slot_wal_keep_size on the source database.`;
|
|
229
|
+
throw new MissingReplicationSlotError(`[PSYNC_S1146] Replication slot ${slotName} was invalidated ` +
|
|
230
|
+
`(reason: ${slot.invalidation_reason ?? 'unknown'}). ` +
|
|
231
|
+
`${fixGuidance}`, { walStatus: 'lost', phase: 'streaming', invalidationReason: slot.invalidation_reason ?? undefined });
|
|
227
232
|
}
|
|
228
233
|
// Case 3 / 6
|
|
229
234
|
return {
|
|
@@ -235,13 +240,117 @@ export class WalStream {
|
|
|
235
240
|
if (snapshotDone) {
|
|
236
241
|
// Case 5
|
|
237
242
|
// This will create a new slot, while keeping the current sync rules active
|
|
238
|
-
throw new MissingReplicationSlotError(`Replication slot ${slotName} is missing
|
|
243
|
+
throw new MissingReplicationSlotError(`Replication slot ${slotName} is missing`, {
|
|
244
|
+
walStatus: 'missing',
|
|
245
|
+
phase: 'streaming'
|
|
246
|
+
});
|
|
239
247
|
}
|
|
240
248
|
// Case 2
|
|
241
249
|
// This will clear data (if any) and re-create the same slot
|
|
242
250
|
return { needsInitialSync: true, needsNewSlot: true };
|
|
243
251
|
}
|
|
244
252
|
}
|
|
253
|
+
async queryMaxSlotWalKeepSize() {
|
|
254
|
+
if (this.maxSlotWalKeepSizeQueried) {
|
|
255
|
+
return this.maxSlotWalKeepSize;
|
|
256
|
+
}
|
|
257
|
+
this.maxSlotWalKeepSizeQueried = true;
|
|
258
|
+
try {
|
|
259
|
+
const rows = pgwire.pgwireRows(await this.connections.pool.query({
|
|
260
|
+
statement: `SELECT setting, unit FROM pg_settings WHERE name = 'max_slot_wal_keep_size'`
|
|
261
|
+
}));
|
|
262
|
+
if (rows.length === 0) {
|
|
263
|
+
// PG < 13 or setting doesn't exist
|
|
264
|
+
return null;
|
|
265
|
+
}
|
|
266
|
+
const setting = Number(rows[0].setting);
|
|
267
|
+
if (setting < 0) {
|
|
268
|
+
// -1 = unlimited
|
|
269
|
+
this.maxSlotWalKeepSize = null;
|
|
270
|
+
return null;
|
|
271
|
+
}
|
|
272
|
+
// setting is in MB, convert to bytes
|
|
273
|
+
const unit = rows[0].unit;
|
|
274
|
+
const multiplier = unit === 'kB' ? 1024 : unit === '8kB' ? 8192 : 1024 * 1024; // default MB
|
|
275
|
+
this.maxSlotWalKeepSize = setting * multiplier;
|
|
276
|
+
return this.maxSlotWalKeepSize;
|
|
277
|
+
}
|
|
278
|
+
catch (e) {
|
|
279
|
+
// Non-fatal — budget reporting is best-effort
|
|
280
|
+
this.logger.warn(`Could not query max_slot_wal_keep_size`, e);
|
|
281
|
+
return null;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
async logWalBudget(slot, now) {
|
|
285
|
+
const maxSize = await this.queryMaxSlotWalKeepSize();
|
|
286
|
+
// No limit configured
|
|
287
|
+
if (maxSize == null) {
|
|
288
|
+
this.logger.info(`WAL budget: no limit configured (max_slot_wal_keep_size is unlimited).`);
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
const safeWalSize = slot.safe_wal_size != null ? Number(slot.safe_wal_size) : null;
|
|
292
|
+
if (safeWalSize == null) {
|
|
293
|
+
// safe_wal_size is null on PG < 13, or when no limit is set
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
const report = computeWalBudgetReport({
|
|
297
|
+
safeWalSize,
|
|
298
|
+
maxSize,
|
|
299
|
+
walStatus: slot.wal_status ?? 'unknown',
|
|
300
|
+
prevSample: this.prevWalBudgetSample,
|
|
301
|
+
now
|
|
302
|
+
});
|
|
303
|
+
// Update sample for next rate calculation
|
|
304
|
+
this.prevWalBudgetSample = { safeWalSize, timestamp: now };
|
|
305
|
+
const budgetLine = formatWalBudgetLine(report);
|
|
306
|
+
if (report.isWarning) {
|
|
307
|
+
this.logger.warn(budgetLine);
|
|
308
|
+
this.logger.warn(`Replication slot may be invalidated before snapshot completes. ` +
|
|
309
|
+
`Increase max_slot_wal_keep_size on the source database.`);
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
this.logger.info(budgetLine);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* Check if the replication slot is still valid. Called after each chunk
|
|
317
|
+
* flush during snapshot to detect slot invalidation early.
|
|
318
|
+
*
|
|
319
|
+
* The query hits pg_replication_slots (shared memory, not a table scan)
|
|
320
|
+
* and costs ~1-2ms per round-trip — negligible next to the per-chunk
|
|
321
|
+
* storage flush.
|
|
322
|
+
*/
|
|
323
|
+
async checkSlotHealth() {
|
|
324
|
+
// Ensure maxSlotWalKeepSize is populated for diagnostic context in error messages
|
|
325
|
+
await this.queryMaxSlotWalKeepSize();
|
|
326
|
+
const rows = pgwire.pgwireRows(await this.connections.pool.query({
|
|
327
|
+
statement: 'SELECT * FROM pg_replication_slots WHERE slot_name = $1',
|
|
328
|
+
params: [{ type: 'varchar', value: this.slot_name }]
|
|
329
|
+
}));
|
|
330
|
+
if (rows.length === 0) {
|
|
331
|
+
// Slot row gone from pg_replication_slots — dropped externally.
|
|
332
|
+
// Possible causes: pg_drop_replication_slot() call (operator, management tool, cleanup cron)
|
|
333
|
+
throw new MissingReplicationSlotError(`[PSYNC_S1146] Replication slot ${this.slot_name} disappeared during snapshot.`, { walStatus: 'missing', phase: 'snapshot' });
|
|
334
|
+
}
|
|
335
|
+
const walStatus = rows[0].wal_status;
|
|
336
|
+
if (walStatus === 'lost') {
|
|
337
|
+
// Postgres marked the slot invalid. Possible invalidation_reason values (PG 14+):
|
|
338
|
+
// - wal_removed: WAL growth exceeded max_slot_wal_keep_size (the primary case)
|
|
339
|
+
// - wal_level_insufficient: wal_level changed away from 'logical'
|
|
340
|
+
// - idle_timeout (PG 18+): idle_replication_slot_timeout expired
|
|
341
|
+
// - rows_removed: catalog rows needed by the slot were vacuumed (safe to retry — fresh slot won't need them)
|
|
342
|
+
throw new MissingReplicationSlotError(`[PSYNC_S1146] Replication slot ${this.slot_name} was invalidated during snapshot` +
|
|
343
|
+
`${this.formatWalBudgetContext()}. ` +
|
|
344
|
+
`Increase max_slot_wal_keep_size on the source database.`, { walStatus: 'lost', phase: 'snapshot', invalidationReason: rows[0].invalidation_reason ?? undefined });
|
|
345
|
+
}
|
|
346
|
+
await this.logWalBudget(rows[0], performance.now());
|
|
347
|
+
}
|
|
348
|
+
formatWalBudgetContext() {
|
|
349
|
+
if (this.maxSlotWalKeepSize == null) {
|
|
350
|
+
return '';
|
|
351
|
+
}
|
|
352
|
+
return ` (limit: ${formatBytes(this.maxSlotWalKeepSize)})`;
|
|
353
|
+
}
|
|
245
354
|
async estimatedCountNumber(db, table) {
|
|
246
355
|
const results = await db.query({
|
|
247
356
|
statement: `SELECT reltuples::bigint AS estimate
|
|
@@ -454,6 +563,14 @@ WHERE oid = $1::regclass`,
|
|
|
454
563
|
}
|
|
455
564
|
// Important: flush before marking progress
|
|
456
565
|
await batch.flush();
|
|
566
|
+
if (this.onSnapshotChunkFlushed) {
|
|
567
|
+
await this.onSnapshotChunkFlushed();
|
|
568
|
+
}
|
|
569
|
+
const now = performance.now();
|
|
570
|
+
if (now - this.lastSlotHealthCheckTime >= this.slotHealthCheckIntervalMs) {
|
|
571
|
+
this.lastSlotHealthCheckTime = now;
|
|
572
|
+
await this.checkSlotHealth();
|
|
573
|
+
}
|
|
457
574
|
if (limited == null) {
|
|
458
575
|
let lastKey;
|
|
459
576
|
if (q instanceof ChunkedSnapshotQuery) {
|
|
@@ -678,7 +795,7 @@ WHERE oid = $1::regclass`,
|
|
|
678
795
|
}
|
|
679
796
|
catch (e) {
|
|
680
797
|
if (isReplicationSlotInvalidError(e)) {
|
|
681
|
-
throw new MissingReplicationSlotError(e.message, e);
|
|
798
|
+
throw new MissingReplicationSlotError(e.message, { walStatus: 'lost', phase: 'streaming', cause: e });
|
|
682
799
|
}
|
|
683
800
|
throw e;
|
|
684
801
|
}
|
|
@@ -773,9 +890,7 @@ WHERE oid = $1::regclass`,
|
|
|
773
890
|
else if (msg.tag == 'begin') {
|
|
774
891
|
// This may span multiple transactions in the same chunk, or even across chunks.
|
|
775
892
|
skipKeepalive = true;
|
|
776
|
-
|
|
777
|
-
this.oldestUncommittedChange = new Date(Number(msg.commitTime / 1000n));
|
|
778
|
-
}
|
|
893
|
+
this.replicationLag.trackUncommittedChange(new Date(Number(msg.commitTime / 1000n)));
|
|
779
894
|
}
|
|
780
895
|
else if (msg.tag == 'commit') {
|
|
781
896
|
this.metrics.getCounter(ReplicationMetric.TRANSACTIONS_REPLICATED).add(1);
|
|
@@ -786,7 +901,7 @@ WHERE oid = $1::regclass`,
|
|
|
786
901
|
skipKeepalive = false;
|
|
787
902
|
// flush() must be before the resnapshot check - that is
|
|
788
903
|
// typically what reports the resnapshot records.
|
|
789
|
-
await batch.flush({ oldestUncommittedChange: this.oldestUncommittedChange });
|
|
904
|
+
await batch.flush({ oldestUncommittedChange: this.replicationLag.oldestUncommittedChange });
|
|
790
905
|
// This _must_ be checked after the flush(), and before
|
|
791
906
|
// commit() or ack(). We never persist the resnapshot list,
|
|
792
907
|
// so we have to process it before marking our progress.
|
|
@@ -796,12 +911,11 @@ WHERE oid = $1::regclass`,
|
|
|
796
911
|
}
|
|
797
912
|
const { checkpointBlocked } = await batch.commit(msg.lsn, {
|
|
798
913
|
createEmptyCheckpoints,
|
|
799
|
-
oldestUncommittedChange: this.oldestUncommittedChange
|
|
914
|
+
oldestUncommittedChange: this.replicationLag.oldestUncommittedChange
|
|
800
915
|
});
|
|
801
916
|
await this.ack(msg.lsn, replicationStream);
|
|
802
917
|
if (!checkpointBlocked) {
|
|
803
|
-
this.
|
|
804
|
-
this.isStartingReplication = false;
|
|
918
|
+
this.replicationLag.markCommitted();
|
|
805
919
|
}
|
|
806
920
|
}
|
|
807
921
|
}
|
|
@@ -840,9 +954,9 @@ WHERE oid = $1::regclass`,
|
|
|
840
954
|
// It must only be used to associate checkpoints with LSNs.
|
|
841
955
|
const { checkpointBlocked } = await batch.keepalive(chunkLastLsn);
|
|
842
956
|
if (!checkpointBlocked) {
|
|
843
|
-
this.
|
|
957
|
+
this.replicationLag.clearUncommittedChange();
|
|
844
958
|
}
|
|
845
|
-
this.
|
|
959
|
+
this.replicationLag.markStarted();
|
|
846
960
|
}
|
|
847
961
|
// We receive chunks with empty messages often (about each second).
|
|
848
962
|
// Acknowledging here progresses the slot past these and frees up resources.
|
|
@@ -897,18 +1011,8 @@ WHERE oid = $1::regclass`,
|
|
|
897
1011
|
const version = await this.connections.getServerVersion();
|
|
898
1012
|
return version ? version.compareMain('14.0.0') >= 0 : false;
|
|
899
1013
|
}
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
if (this.isStartingReplication) {
|
|
903
|
-
// We don't have anything to compute replication lag with yet.
|
|
904
|
-
return undefined;
|
|
905
|
-
}
|
|
906
|
-
else {
|
|
907
|
-
// We don't have any uncommitted changes, so replication is up-to-date.
|
|
908
|
-
return 0;
|
|
909
|
-
}
|
|
910
|
-
}
|
|
911
|
-
return Date.now() - this.oldestUncommittedChange.getTime();
|
|
1014
|
+
getReplicationLagMillis() {
|
|
1015
|
+
return this.replicationLag.getLagMillis();
|
|
912
1016
|
}
|
|
913
1017
|
touch() {
|
|
914
1018
|
container.probes.touch().catch((e) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalStream.js","sourceRoot":"","sources":["../../src/replication/WalStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,iCAAiC,CAAC;AAChE,OAAO,EACL,SAAS,EACT,uBAAuB,EACvB,MAAM,IAAI,aAAa,EACvB,SAAS,EAET,uBAAuB,EACvB,yBAAyB,EAC1B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAEL,0BAA0B,EAE1B,aAAa,EAIb,OAAO,EACR,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,MAAM,MAAM,4BAA4B,CAAC;AACrD,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EAOpB,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAChH,OAAO,EACL,oBAAoB,EACpB,eAAe,EAGf,mBAAmB,EAEpB,MAAM,oBAAoB,CAAC;AA0B5B,MAAM,CAAC,MAAM,QAAQ,GAAG,mBAAmB,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAC5C,MAAM,CAAC,MAAM,uBAAuB,GAAG,QAAQ,CAAC;AAEhD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC/D,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACnD,SAAS,EAAE,SAAS,CAAC;;;;;GAKpB;IACD,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC/C,CAAC;AAEX,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAA2B,EAAE,EAAE;IAChE,OAAO,CACL,GAAG,CAAC,GAAG,IAAI,SAAS;QACpB,GAAG,CAAC,MAAM,IAAI,WAAW;QACzB,GAAG,CAAC,OAAO;QACX,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAClD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,EAAmB,EAAE,EAAE;IACzD,MAAM,YAAY,CAAC,YAAY,CAAC,EAAE,EAAE,mBAAmB,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IACpD,YAAY,OAAe,EAAE,KAAW;QACtC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAM,OAAO,SAAS;IACpB,UAAU,CAAoB;IAC9B,QAAQ,CAAS;IAEjB,aAAa,GAAG,CAAC,CAAC;IAEV,MAAM,CAAS;IAEN,OAAO,CAAiC;IACxC,OAAO,CAAgB;IACvB,SAAS,CAAS;IAE3B,WAAW,CAAY;IAEvB,YAAY,CAAc;IAE1B,aAAa,GAAG,IAAI,aAAa,CAAC,CAAC,QAA8B,EAAE,EAAE;QAC3E,IAAI,OAAO,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,OAAO,QAAQ,CAAC,QAAS,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEK,gBAAgB,GAAG,KAAK,CAAC;IAEzB,mBAAmB,CAAS;IAEpC;;;OAGG;IACK,uBAAuB,GAAgB,IAAI,CAAC;IACpD;;;OAGG;IACK,qBAAqB,GAAG,IAAI,CAAC;IAE7B,sBAAsB,GAAyB,IAAI,CAAC;IAE5D,YAAY,OAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,aAAa,CAAC;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,aAAa,EAAE,uBAAuB,EAAE,CAAC,CAAC;QACjG,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,MAAM,CAAC;QAEjE,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAChC,OAAO,EACP,GAAG,EAAE;YACH,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,yDAAyD;gBACzD,uEAAuE;gBACvE,sCAAsC;gBACtC,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;gBACrD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;oBAClB,qEAAqE;oBACrE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;gBACnD,CAAC,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,yEAAyE;gBACzE,6DAA6D;YAC/D,CAAC;QACH,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;IACJ,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,KAAiC,EACjC,EAAuB,EACvB,YAA0B;QAE1B,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QACnC,IAAI,YAAY,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;YACjE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,SAAgB,CAAC;QACrB,MAAM,MAAM,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9E,CAAC;YACC,IAAI,KAAK,GAAG;;;;;;;;;;;;0BAYQ,CAAC;YAErB,IAAI,YAAY,CAAC,UAAU,EAAE,CAAC;gBAC5B,KAAK,IAAI,wBAAwB,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,KAAK,IAAI,qBAAqB,CAAC;YACjC,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC;gBAC5B,SAAS,EAAE,KAAK;gBAChB,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE;oBAClC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,YAAY,EAAE;iBACtD;aACF,CAAC,CAAC;YAEH,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,IAAI,MAAM,GAA0B,EAAE,CAAC;QAEvC,KAAK,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,UAAoB,CAAC;YACtC,IAAI,OAAO,GAAG,CAAC,KAAK,IAAI,QAAQ,EAAE,CAAC;gBACjC,MAAM,IAAI,yBAAyB,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAe,CAAC,CAAC;YAE1C,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvC,SAAS;YACX,CAAC;YAED,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC;gBACxB,SAAS,EAAE,+FAA+F;gBAC1G,MAAM,EAAE;oBACN,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,gBAAgB,EAAE;oBAC5C,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE;oBAC/C,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE;iBACjC;aACF,CAAC,CAAC;YACH,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,YAAY,CAAC,MAAM,IAAI,IAAI,kBAAkB,gBAAgB,cAAc,CAAC,CAAC;gBAC1G,SAAS;YACX,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC9C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,sFAAsF;oBACtF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAQ,CAAC,CAAC;gBACpC,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,oGAAoG;gBACpG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,YAAY,CAAC,MAAM,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;YACvF,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,6BAA6B,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;YAE/D,MAAM,WAAW,GAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACrF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;gBACtC,KAAK;gBACL,UAAU,EAAE;oBACV,IAAI;oBACJ,MAAM;oBACN,QAAQ,EAAE,KAAK;oBACf,gBAAgB,EAAE,OAAO,CAAC,kBAAkB;iBACnB;gBAC3B,QAAQ,EAAE,KAAK;gBACf,iBAAiB,EAAE,WAAW;aAC/B,CAAC,CAAC;YAEH,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACxE,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAExC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAEhC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC;QAC3E,IAAI,YAAY,EAAE,CAAC;YACjB,2EAA2E;YAC3E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;QACvD,CAAC;QAED,mCAAmC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAC5B,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC,qGAAqG;YACrG,sBAAsB;YACtB,SAAS,EAAE,yDAAyD;YACpE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;SAC/C,CAAC,CACH,CAAC,CAAC,CAAC,CAAC;QAEL,gHAAgH;QAChH,iGAAiG;QACjG,+EAA+E;QAC/E,sGAAsG;QACtG,sEAAsE;QAEtE,eAAe;QACf,yGAAyG;QACzG,2DAA2D;QAC3D,0DAA0D;QAC1D,iEAAiE;QACjE,yGAAyG;QACzG,uGAAuG;QACvG,2EAA2E;QAC3E,yDAAyD;QACzD,yGAAyG;QACzG,mDAAmD;QACnD,wGAAwG;QACxG,qCAAqC;QACrC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACjB,2CAA2C;YAE3C,wCAAwC;YACxC,iDAAiD;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC;YACvC,IAAI,IAAI,EAAE,CAAC;gBACT,aAAa;gBACb,MAAM,IAAI,2BAA2B,CACnC,oBAAoB,QAAQ,+CAA+C,IAAI,CAAC,mBAAmB,IAAI,SAAS,EAAE,CACnH,CAAC;YACJ,CAAC;YACD,aAAa;YACb,OAAO;gBACL,gBAAgB,EAAE,CAAC,YAAY;gBAC/B,YAAY,EAAE,KAAK;aACpB,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,YAAY,EAAE,CAAC;gBACjB,SAAS;gBACT,2EAA2E;gBAC3E,MAAM,IAAI,2BAA2B,CAAC,oBAAoB,QAAQ,aAAa,CAAC,CAAC;YACnF,CAAC;YACD,SAAS;YACT,4DAA4D;YAC5D,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,EAAuB,EAAE,KAA0B;QAC5E,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC;YAC7B,SAAS,EAAE;;0BAES;YACpB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SAC1D,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,GAAG,EAAE,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACzD,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB,CAAC,qBAA0C,EAAE,MAAkB;QAC1F,sEAAsE;QACtE,sDAAsD;QACtD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;QAEvD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAEhC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,qEAAqE;YACrE,6BAA6B;YAC7B,6DAA6D;YAC7D,sEAAsE;YACtE,yCAAyC;YACzC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAExD,MAAM,EAAE,CAAC,KAAK,CAAC;gBACb,SAAS,EAAE,2FAA2F;gBACtG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;aAC/C,CAAC,CAAC;YAEH,sDAAsD;YACtD,4EAA4E;YAC5E,MAAM,qBAAqB,CAAC,KAAK,CAAC,2BAA2B,QAAQ,mBAAmB,CAAC,CAAC;YAE1F,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,MAAM,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,EAAuB;QAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;QACvD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAChD;YACE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,QAAQ;YACjB,aAAa,EAAE,uBAAuB;YACtC,gBAAgB,EAAE,IAAI;YACtB,gBAAgB,EAAE,IAAI;SACvB,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;YACd,IAAI,gBAAgB,GAAkB,EAAE,CAAC;YACzC,KAAK,IAAI,YAAY,IAAI,YAAY,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;gBAC1E,iBAAiB;gBACjB,KAAK,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;oBACzB,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;wBAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,KAAK,CAAC,aAAa,0BAA0B,CAAC,CAAC;wBAC5E,SAAS;oBACX,CAAC;oBACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;oBACzD,KAAK,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,EAAE,mBAAmB,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC/E,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACjC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAE7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;gBAC7F,CAAC;YACH,CAAC;YAED,KAAK,IAAI,KAAK,IAAI,gBAAgB,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;gBAC/C,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;YAED,8CAA8C;YAC9C,mFAAmF;YACnF,mCAAmC;YACnC,6DAA6D;YAE7D,wCAAwC;YACxC,0DAA0D;YAC1D,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAChE,MAAM,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;YAE9D,MAAM,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;YAChD,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC,CACF,CAAC;QACF;;;;;;;WAOG;QACH,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC;QAExB,MAAM,MAAM,GAAG,YAAY,EAAE,UAAU,CAAC;QACxC,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,6FAA6F;YAC7F,MAAM,IAAI,CAAC,OAAO,CAAC,+BAA+B,CAAC;gBACjD,8CAA8C;gBAC9C,OAAO,EAAE,MAAM;gBACf,MAAM,EAAE,IAAI,CAAC,YAAY;aAC1B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,GAAiB,EAAE,KAA2B;QAC7D,IAAI,MAAM,GAAmB,EAAE,CAAC;QAEhC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,WAA6B,CAAC;YAElC,IAAI,OAAO,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBAChC,WAAW,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC5G,CAAC;iBAAM,CAAC;gBACN,+BAA+B;gBAC/B,WAAW,GAAG,QAAQ,CAAC;YACzB,CAAC;YAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC;QACpC,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAC7B,KAAiC,EACjC,EAAuB,EACvB,KAA0B,EAC1B,OAA2B;QAE3B,0FAA0F;QAC1F,2FAA2F;QAC3F,0BAA0B;QAC1B,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAEpD,uBAAuB;YACvB,uFAAuF;YACvF,uEAAuE;YACvE,EAAE;YACF,8CAA8C;YAC9C,gGAAgG;YAChG,4DAA4D;YAC5D,8EAA8E;YAC9E,kGAAkG;YAClG,yFAAyF;YACzF,4BAA4B;YAC5B,uFAAuF;YACvF,iDAAiD;YACjD,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAChE,MAAM,iBAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;YACjE,kGAAkG;YAClG,MAAM,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACzB,MAAM,CAAC,WAAW,CAAC,GAAG,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC;YACpF,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACvC,OAAO,WAAW,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC3B,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,KAAiC,EACjC,EAAuB,EACvB,KAA0B,EAC1B,OAA2B;QAE3B,IAAI,mBAAmB,GAAG,KAAK,CAAC,cAAc,EAAE,mBAAmB,CAAC;QACpE,IAAI,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,eAAe,IAAI,CAAC,CAAC;QACpD,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,CAAgB,CAAC;QACrB,iCAAiC;QACjC,0DAA0D;QAC1D,qDAAqD;QACrD,IAAI,OAAO,EAAE,CAAC;YACZ,CAAC,GAAG,IAAI,eAAe,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAChD,+DAA+D;YAC/D,MAAM,UAAU,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC7C,CAAC,GAAG,IAAI,oBAAoB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,cAAc,EAAE,OAAO,IAAI,IAAI,CAAC,CAAC;YACzG,IAAI,KAAK,CAAC,cAAc,EAAE,OAAO,IAAI,IAAI,EAAE,CAAC;gBAC1C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,eAAe,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,sBAAsB,EAAE,oBAAoB,UAAU,CAAC,IAAI,MAAO,CAA0B,CAAC,OAAO,EAAE,CACnJ,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,sBAAsB,EAAE,cAAc,CAAC,CAAC;YACvG,CAAC;QACH,CAAC;aAAM,CAAC;YACN,yCAAyC;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,sBAAsB,EAAE,kBAAkB,CAAC,CAAC;YACzG,CAAC,GAAG,IAAI,mBAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACjE,EAAE,GAAG,CAAC,CAAC;QACT,CAAC;QACD,MAAM,CAAC,CAAC,UAAU,EAAE,CAAC;QAErB,IAAI,gBAAgB,GAAG,IAAI,CAAC;QAC5B,OAAO,gBAAgB,EAAE,CAAC;YACxB,uBAAuB;YACvB,+DAA+D;YAC/D,qDAAqD;YACrD,qDAAqD;YACrD,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC;YAC7B,gBAAgB,GAAG,KAAK,CAAC;YACzB,iCAAiC;YACjC,+FAA+F;YAC/F,8CAA8C;YAC9C,IAAI,KAAK,EAAE,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC/B,IAAI,KAAK,CAAC,GAAG,IAAI,gBAAgB,EAAE,CAAC;oBAClC,SAAS;gBACX,CAAC;gBAED,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,gBAAgB,GAAG,IAAI,CAAC;gBAC1B,CAAC;gBAED,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;oBAChC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAQ,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;oBAE3G,0DAA0D;oBAC1D,MAAM,KAAK,CAAC,IAAI,CAAC;wBACf,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;wBACpC,WAAW,EAAE,KAAK;wBAClB,MAAM,EAAE,SAAS;wBACjB,eAAe,EAAE,SAAS;wBAC1B,KAAK,EAAE,MAAM;wBACb,cAAc,EAAE,0BAA0B,CAAC,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC;qBAC3E,CAAC,CAAC;gBACL,CAAC;gBAED,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAElF,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;YAED,2CAA2C;YAC3C,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,IAAI,OAA+B,CAAC;gBACpC,IAAI,CAAC,YAAY,oBAAoB,EAAE,CAAC;oBACtC,OAAO,GAAG,CAAC,CAAC,oBAAoB,EAAE,CAAC;gBACrC,CAAC;gBACD,IAAI,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;oBACvD,kFAAkF;oBAClF,+EAA+E;oBAC/E,wFAAwF;oBACxF,gBAAgB;oBAChB,mBAAmB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;oBACjE,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;gBACpC,CAAC;gBACD,KAAK,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE;oBAC7C,OAAO,EAAE,OAAO;oBAChB,eAAe,EAAE,EAAE;oBACnB,mBAAmB,EAAE,mBAAmB;iBACzC,CAAC,CAAC;gBACH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAEjC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,aAAa,IAAI,KAAK,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC;YAC3F,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,aAAa,IAAI,EAAE,IAAI,OAAO,CAAC,MAAM,iBAAiB,CAAC,CAAC;YAChG,CAAC;YAED,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;gBAC9B,+BAA+B;gBAC/B,MAAM,IAAI,uBAAuB,CAAC,iCAAiC,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAKpB;QACC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC;QAEnE,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,UAAU,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACnE,MAAM,IAAI,yBAAyB,CAAC,0BAA0B,OAAO,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa;YAC9C,iBAAiB,EAAE,UAAU;YAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAExC,qEAAqE;QACrE,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAEpC,yEAAyE;QACzE,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAE3D,eAAe;QACf,iGAAiG;QACjG,wCAAwC;QACxC,sCAAsC;QACtC,MAAM,cAAc,GAAG,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QAE1F,IAAI,cAAc,EAAE,CAAC;YACnB,oEAAoE;YACpE,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YAErC,2CAA2C;YAC3C,0CAA0C;YAC1C,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;YACvD,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpE,iEAAiE;gBACjE,6EAA6E;gBAC7E,WAAW;gBACX,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC;gBACxB,OAAO,KAAK,CAAC;YACf,CAAC;oBAAS,CAAC;gBACT,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,UAAU,CAAC,KAAyB,EAAE,IAAkB;QACpE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAwB,CAAC;QAChD,KAAK,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACrB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,QAAkB,CAAC,CAAC,+BAA+B;YAC3E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACzB,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC5B,MAAM,IAAI,CAAC,iBAAiB,CAC1B,KAAK,EACL,EAAE,EACF,KAAK,EACL,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CACvB,CAAC;YACJ,CAAC;YACD,iFAAiF;YACjF,8DAA8D;YAC9D,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACT,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;QACjB,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,UAAkB;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAClB,8EAA8E;YAC9E,mCAAmC;YACnC,MAAM,IAAI,yBAAyB,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAKO,eAAe,CAAC,GAA+B;QACrD,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAQ,GAAG,CAAC,CAAC;IACrD,CAAC;IAEO,wBAAwB,CAAC,GAAyC;QACxE,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,WAAW,CACf,KAAiC,EACjC,GAA2B;QAE3B,IAAI,GAAG,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,IAAI,GAAG,CAAC,GAAG,IAAI,QAAQ,IAAI,GAAG,CAAC,GAAG,IAAI,QAAQ,IAAI,GAAG,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC;YACtE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,KAAK,CAAC,aAAa,oCAAoC,CAAC,CAAC;gBACpF,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,GAAG,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC;gBACxB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClE,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1F,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC;oBACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;oBACpC,WAAW,EAAE,KAAK;oBAClB,MAAM,EAAE,SAAS;oBACjB,eAAe,EAAE,SAAS;oBAC1B,KAAK,EAAE,UAAU;oBACjB,cAAc,EAAE,0BAA0B,CAAC,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC;iBAC/E,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClE,+DAA+D;gBAC/D,iDAAiD;gBACjD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC;gBACvF,MAAM,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC9F,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC;oBACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;oBACpC,WAAW,EAAE,KAAK;oBAClB,MAAM,EAAE,MAAM;oBACd,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC,0BAA0B,CAAC,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,SAAS;oBAChG,KAAK,EAAE,KAAK;oBACZ,cAAc,EAAE,0BAA0B,CAAC,KAAK,EAAE,KAAK,CAAC,gBAAgB,CAAC;iBAC1E,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC/B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBAClE,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAE,CAAC,CAAC;gBAExF,OAAO,MAAM,KAAK,CAAC,IAAI,CAAC;oBACtB,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,MAAM;oBACpC,WAAW,EAAE,KAAK;oBAClB,MAAM,EAAE,MAAM;oBACd,eAAe,EAAE,0BAA0B,CAAC,MAAM,EAAE,KAAK,CAAC,gBAAgB,CAAC;oBAC3E,KAAK,EAAE,SAAS;oBAChB,cAAc,EAAE,SAAS;iBAC1B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,IAAI,GAAG,CAAC,GAAG,IAAI,UAAU,EAAE,CAAC;YACjC,IAAI,MAAM,GAA0B,EAAE,CAAC;YACvC,KAAK,IAAI,QAAQ,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAChD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YACD,OAAO,MAAM,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,CAAC;YACH,yEAAyE;YACzE,4DAA4D;YAC5D,IAAI,CAAC,sBAAsB,GAAG,CAAC,KAAK,IAAI,EAAE;gBACxC,MAAM,yBAAyB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;gBACjF,MAAM,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC;gBACtD,MAAM,yBAAyB,CAAC,GAAG,EAAE,CAAC;YACxC,CAAC,CAAC,EAAE,CAAC;YAEL,MAAM,IAAI,CAAC,sBAAsB,CAAC;YAElC,iFAAiF;YACjF,MAAM,2BAA2B,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE,CAAC;YACnF,MAAM,IAAI,CAAC,aAAa,CAAC,2BAA2B,CAAC,CAAC;YACtD,MAAM,2BAA2B,CAAC,GAAG,EAAE,CAAC;QAC1C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,sBAAsB;QAC1B,IAAI,IAAI,CAAC,sBAAsB,IAAI,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,yBAAyB,CAAC,kCAAkC,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,qBAA0C;QAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,qBAA0C;QAC5D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,6BAA6B,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,2BAA2B,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACtD,CAAC;YACD,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,qBAA0C;QAC5E,yDAAyD;QACzD,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAE3E,MAAM,kBAAkB,GAA2B;YACjD,aAAa,EAAE,GAAG;YAClB,iBAAiB,EAAE,gBAAgB;SACpC,CAAC;QAEF;;;;WAIG;QACH,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACvE,IAAI,sBAAsB,EAAE,CAAC;YAC3B;;;;eAIG;YACH,kBAAkB,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;QAC1C,CAAC;QAED,MAAM,iBAAiB,GAAG,qBAAqB,CAAC,kBAAkB,CAAC;YACjE,IAAI,EAAE,IAAI,CAAC,SAAS;YACpB,OAAO,EAAE,kBAAkB;SAC5B,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAE7B,IAAI,UAAU,GAA2D,EAAE,CAAC;QAE5E,MAAM,qBAAqB,GAAG,CAAC,MAAkB,EAAE,EAAE;YACnD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;gBAClD,kDAAkD;gBAClD,OAAO;YACT,CAAC;YACD,IAAI,GAAG,GAAoB,EAAE,CAAC;YAC9B,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;gBACvD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBACzB,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;oBAClB,2CAA2C;oBAC3C,0DAA0D;oBAC1D,OAAO;gBACT,CAAC;gBACD,kGAAkG;gBAClG,GAAG,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,CAAC,4BAA4B,CAAC,CAAC;YAC1F,CAAC;YACD,UAAU,CAAC,IAAI,CAAC;gBACd,KAAK,EAAE,MAAM,CAAC,WAAW;gBACzB,GAAG,EAAE,GAAG;aACT,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAC3B;YACE,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,QAAQ;YACjB,aAAa,EAAE,uBAAuB;YACtC,gBAAgB,EAAE,IAAI;YACtB,gBAAgB,EAAE,KAAK;YACvB,qBAAqB;SACtB,EACD,KAAK,EAAE,KAAK,EAAE,EAAE;YACd,2EAA2E;YAC3E,mEAAmE;YACnE,oFAAoF;YACpF,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;YAEd,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,iBAAiB,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;gBAEb,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;oBAC9B,MAAM;gBACR,CAAC;gBAED,2DAA2D;gBAC3D,sCAAsC;gBACtC,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;gBAElD;;;;mBAIG;gBACH,MAAM,eAAe,GAAG,CAAC,sBAAsB,CAAC;gBAChD,IAAI,iBAAiB,GAAG,KAAK,CAAC;gBAC9B,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC;gBAEnE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;oBAC3B,IAAI,GAAG,CAAC,GAAG,IAAI,UAAU,EAAE,CAAC;wBAC1B,MAAM,IAAI,CAAC,cAAc,CAAC;4BACxB,KAAK;4BACL,UAAU,EAAE,mBAAmB,CAAC,GAAG,CAAC;4BACpC,QAAQ,EAAE,IAAI;4BACd,iBAAiB,EAAE,uBAAuB,CAAC,GAAG,CAAC;yBAChD,CAAC,CAAC;oBACL,CAAC;yBAAM,IAAI,GAAG,CAAC,GAAG,IAAI,OAAO,EAAE,CAAC;wBAC9B,gFAAgF;wBAChF,aAAa,GAAG,IAAI,CAAC;wBACrB,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,EAAE,CAAC;4BACzC,IAAI,CAAC,uBAAuB,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;wBAC1E,CAAC;oBACH,CAAC;yBAAM,IAAI,GAAG,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC;wBAC/B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC1E,IAAI,GAAG,IAAI,UAAU,EAAE,CAAC;4BACtB,uDAAuD;4BACvD,6EAA6E;4BAC7E,0EAA0E;4BAC1E,aAAa,GAAG,KAAK,CAAC;4BACtB,wDAAwD;4BACxD,iDAAiD;4BACjD,MAAM,KAAK,CAAC,KAAK,CAAC,EAAE,uBAAuB,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;4BAC7E,uDAAuD;4BACvD,2DAA2D;4BAC3D,wDAAwD;4BACxD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gCAC1B,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gCACzC,UAAU,GAAG,EAAE,CAAC;4BAClB,CAAC;4BACD,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAI,EAAE;gCACzD,sBAAsB;gCACtB,uBAAuB,EAAE,IAAI,CAAC,uBAAuB;6BACtD,CAAC,CAAC;4BACH,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAI,EAAE,iBAAiB,CAAC,CAAC;4BAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;gCACvB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;gCACpC,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;4BACrC,CAAC;wBACH,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,IAAI,KAAK,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;4BACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;wBACzD,CAAC;wBAED;;;;;2BAKG;wBACH,IAAI,sBAAsB,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;4BACtD,iBAAiB,GAAG,IAAI,CAAC;wBAC3B,CAAC;wBAED,KAAK,IAAI,CAAC,CAAC;wBACX,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;wBACvD,IAAI,WAAW,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BACjD,2EAA2E;4BAC3E,gBAAgB;4BAChB,iDAAiD;4BACjD,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;4BACzC,UAAU,GAAG,EAAE,CAAC;wBAClB,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,IAAI,eAAe,IAAI,iBAAiB,EAAE,CAAC;wBACzC,4BAA4B;wBAC5B,iBAAiB,GAAG,KAAK,CAAC;wBAE1B,6EAA6E;wBAC7E,kFAAkF;wBAClF,kFAAkF;wBAClF,gDAAgD;wBAChD,2DAA2D;wBAC3D,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;wBAClE,IAAI,CAAC,iBAAiB,EAAE,CAAC;4BACvB,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC;wBACtC,CAAC;wBAED,IAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;oBACrC,CAAC;oBAED,mEAAmE;oBACnE,4EAA4E;oBAC5E,MAAM,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;gBAClD,CAAC;gBAED,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,iBAA2C;QAChE,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,0BAA0B;QACxC,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAExE,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC3E,IAAI,iBAAiB,CAAC,IAAI,IAAI,YAAY,CAAC,wBAAwB,EAAE,CAAC;YACpE,OAAO;gBACL,+DAA+D;gBAC/D,sBAAsB,EAAE,IAAI;gBAC5B,uBAAuB,EAAE,IAAI;aAC9B,CAAC;QACJ,CAAC;QAED,MAAM,uBAAuB,GAAG,YAAY,CAAC,KAAK,CAAC,8BAA8B,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QACxG;;WAEG;QACH,MAAM,qBAAqB,GAAG,MAAM,YAAY,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAE5G,IAAI,CAAC,uBAAuB,IAAI,qBAAqB,CAAC,SAAS,IAAI,uBAAuB,CAAC,SAAS,EAAE,CAAC;YACrG,MAAM,IAAI,uBAAuB,CAC/B,SAAS,CAAC,WAAW,EACrB,oIAAoI,EACpI,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAC1C,CAAC;QACJ,CAAC;QAED,OAAO;YACL;;;eAGG;YACH,sBAAsB,EAAE,qBAAqB,CAAC,aAAa,IAAI,uBAAuB,CAAC,aAAa;YACpG,uBAAuB,EAAE,IAAI;SAC9B,CAAC;IACJ,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,0BAA0B;QACxC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAC1D,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,uBAAuB;QAC3B,IAAI,IAAI,CAAC,uBAAuB,IAAI,IAAI,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC/B,8DAA8D;gBAC9D,OAAO,SAAS,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,uEAAuE;gBACvE,OAAO,CAAC,CAAC;YACX,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC;IAC7D,CAAC;IAEO,KAAK;QACX,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;YACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,SAAS,6BAA6B,CAAC,CAAM;IAC3C,yDAAyD;IACzD,kCAAkC;IAClC,4FAA4F;IAC5F,mDAAmD;IACnD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC;IAEhC,mEAAmE;IACnE,6EAA6E;IAC7E,EAAE;IACF,iDAAiD;IACjD,uDAAuD;IACvD,0CAA0C;IAC1C,OAAO,CACL,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;QACnC,kCAAkC,CAAC,IAAI,CAAC,OAAO,CAAC;QAChD,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3C,gDAAgD;QAChD,uCAAuC,CAAC,IAAI,CAAC,OAAO,CAAC;QACrD,gDAAgD;QAChD,iDAAiD,CAAC,IAAI,CAAC,OAAO,CAAC,CAChE,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"WalStream.js","sourceRoot":"","sources":["../../src/replication/WalStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,5 +24,5 @@ export declare class WalStreamReplicationJob extends replication.AbstractReplica
|
|
|
24
24
|
get slotName(): string;
|
|
25
25
|
replicate(): Promise<void>;
|
|
26
26
|
replicateOnce(): Promise<void>;
|
|
27
|
-
getReplicationLagMillis():
|
|
27
|
+
getReplicationLagMillis(): number | undefined;
|
|
28
28
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { container, logger } from '@powersync/lib-services-framework';
|
|
2
|
-
import { MissingReplicationSlotError,
|
|
2
|
+
import { MissingReplicationSlotError, shouldRetryReplication } from './MissingReplicationSlotError.js';
|
|
3
|
+
import { sendKeepAlive, WalStream } from './WalStream.js';
|
|
3
4
|
import { replication } from '@powersync/service-core';
|
|
4
5
|
import { getApplicationName } from '../utils/application-name.js';
|
|
5
6
|
export class WalStreamReplicationJob extends replication.AbstractReplicationJob {
|
|
@@ -78,8 +79,10 @@ export class WalStreamReplicationJob extends replication.AbstractReplicationJob
|
|
|
78
79
|
this.rateLimiter.reportError(e);
|
|
79
80
|
}
|
|
80
81
|
if (e instanceof MissingReplicationSlotError) {
|
|
81
|
-
|
|
82
|
-
|
|
82
|
+
if (shouldRetryReplication(e)) {
|
|
83
|
+
// This stops replication on this slot and restarts with a new slot
|
|
84
|
+
await this.options.storage.factory.restartReplication(this.storage.group_id);
|
|
85
|
+
}
|
|
83
86
|
}
|
|
84
87
|
// No need to rethrow - the error is already logged, and retry behavior is the same on error
|
|
85
88
|
}
|
|
@@ -118,7 +121,7 @@ export class WalStreamReplicationJob extends replication.AbstractReplicationJob
|
|
|
118
121
|
await connectionManager.end();
|
|
119
122
|
}
|
|
120
123
|
}
|
|
121
|
-
|
|
124
|
+
getReplicationLagMillis() {
|
|
122
125
|
return this.lastStream?.getReplicationLagMillis();
|
|
123
126
|
}
|
|
124
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalStreamReplicationJob.js","sourceRoot":"","sources":["../../src/replication/WalStreamReplicationJob.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"WalStreamReplicationJob.js","sourceRoot":"","sources":["../../src/replication/WalStreamReplicationJob.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,5 +11,4 @@ export declare class WalStreamReplicator extends replication.AbstractReplicator<
|
|
|
11
11
|
cleanUp(syncRulesStorage: storage.SyncRulesBucketStorage): Promise<void>;
|
|
12
12
|
stop(): Promise<void>;
|
|
13
13
|
testConnection(): Promise<replication.ConnectionTestResult>;
|
|
14
|
-
getReplicationLagMillis(): Promise<number | undefined>;
|
|
15
14
|
}
|
|
@@ -40,27 +40,5 @@ export class WalStreamReplicator extends replication.AbstractReplicator {
|
|
|
40
40
|
async testConnection() {
|
|
41
41
|
return await PostgresModule.testConnection(this.connectionFactory.dbConnectionConfig);
|
|
42
42
|
}
|
|
43
|
-
async getReplicationLagMillis() {
|
|
44
|
-
const lag = await super.getReplicationLagMillis();
|
|
45
|
-
if (lag != null) {
|
|
46
|
-
return lag;
|
|
47
|
-
}
|
|
48
|
-
// Booting or in an error loop. Check last active replication status.
|
|
49
|
-
// This includes sync rules in an ERROR state.
|
|
50
|
-
const content = await this.storage.getActiveSyncRulesContent();
|
|
51
|
-
if (content == null) {
|
|
52
|
-
return undefined;
|
|
53
|
-
}
|
|
54
|
-
// Measure the lag from the last commit or keepalive timestamp.
|
|
55
|
-
// This is not 100% accurate since it is the commit time in the storage db rather than
|
|
56
|
-
// the source db, but it's the best we have for postgres.
|
|
57
|
-
const checkpointTs = content.last_checkpoint_ts?.getTime() ?? 0;
|
|
58
|
-
const keepaliveTs = content.last_keepalive_ts?.getTime() ?? 0;
|
|
59
|
-
const latestTs = Math.max(checkpointTs, keepaliveTs);
|
|
60
|
-
if (latestTs != 0) {
|
|
61
|
-
return Date.now() - latestTs;
|
|
62
|
-
}
|
|
63
|
-
return undefined;
|
|
64
|
-
}
|
|
65
43
|
}
|
|
66
44
|
//# sourceMappingURL=WalStreamReplicator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalStreamReplicator.js","sourceRoot":"","sources":["../../src/replication/WalStreamReplicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAW,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAMvE,MAAM,OAAO,mBAAoB,SAAQ,WAAW,CAAC,kBAA2C;IAC7E,iBAAiB,CAA2B;IAE7D,YAAY,OAAmC;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,OAAqC;QAC7C,OAAO,IAAI,uBAAuB,CAAC;YACjC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,gBAAgD;QAC5D,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACtD,eAAe,EAAE,kBAAkB,EAAE;YACrC,WAAW,EAAE,MAAM;YACnB,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;QACH,IAAI,CAAC;YACH,iFAAiF;YACjF,MAAM,sBAAsB,CAAC,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnF,CAAC;gBAAS,CAAC;YACT,MAAM,iBAAiB,CAAC,GAAG,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,MAAM,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACxF,CAAC;
|
|
1
|
+
{"version":3,"file":"WalStreamReplicator.js","sourceRoot":"","sources":["../../src/replication/WalStreamReplicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAW,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAMvE,MAAM,OAAO,mBAAoB,SAAQ,WAAW,CAAC,kBAA2C;IAC7E,iBAAiB,CAA2B;IAE7D,YAAY,OAAmC;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,OAAqC;QAC7C,OAAO,IAAI,uBAAuB,CAAC;YACjC,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;YAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,gBAAgD;QAC5D,MAAM,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACtD,eAAe,EAAE,kBAAkB,EAAE;YACrC,WAAW,EAAE,MAAM;YACnB,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;QACH,IAAI,CAAC;YACH,iFAAiF;YACjF,MAAM,sBAAsB,CAAC,gBAAgB,CAAC,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnF,CAAC;gBAAS,CAAC;YACT,MAAM,iBAAiB,CAAC,GAAG,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,MAAM,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACxF,CAAC;CACF"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
export * from './MissingReplicationSlotError.js';
|
|
1
2
|
export * from './PgRelation.js';
|
|
2
3
|
export * from './replication-utils.js';
|
|
4
|
+
export * from './wal-budget-utils.js';
|
|
3
5
|
export * from './WalStream.js';
|
|
4
|
-
export * from './WalStreamReplicator.js';
|
|
5
6
|
export * from './WalStreamReplicationJob.js';
|
|
7
|
+
export * from './WalStreamReplicator.js';
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
export * from './MissingReplicationSlotError.js';
|
|
1
2
|
export * from './PgRelation.js';
|
|
2
3
|
export * from './replication-utils.js';
|
|
4
|
+
export * from './wal-budget-utils.js';
|
|
3
5
|
export * from './WalStream.js';
|
|
4
|
-
export * from './WalStreamReplicator.js';
|
|
5
6
|
export * from './WalStreamReplicationJob.js';
|
|
7
|
+
export * from './WalStreamReplicator.js';
|
|
6
8
|
//# sourceMappingURL=replication-index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replication-index.js","sourceRoot":"","sources":["../../src/replication/replication-index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,
|
|
1
|
+
{"version":3,"file":"replication-index.js","sourceRoot":"","sources":["../../src/replication/replication-index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import * as pgwire from '@powersync/service-jpgwire';
|
|
2
2
|
import { PatternResult, storage } from '@powersync/service-core';
|
|
3
3
|
import * as sync_rules from '@powersync/service-sync-rules';
|
|
4
|
-
import * as service_types from '@powersync/service-types';
|
|
5
4
|
import { ReplicationIdentity } from './PgRelation.js';
|
|
6
5
|
export interface ReplicaIdentityResult {
|
|
7
6
|
replicationColumns: storage.ColumnDescriptor[];
|
|
@@ -22,15 +21,8 @@ export interface GetDebugTablesInfoOptions {
|
|
|
22
21
|
tablePatterns: sync_rules.TablePattern[];
|
|
23
22
|
syncRules: sync_rules.SyncConfig;
|
|
24
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* Note: This must use a dedicated connection, not a connection pool.
|
|
26
|
+
*/
|
|
25
27
|
export declare function getDebugTablesInfo(options: GetDebugTablesInfoOptions): Promise<PatternResult[]>;
|
|
26
|
-
export interface GetDebugTableInfoOptions {
|
|
27
|
-
db: pgwire.PgClient;
|
|
28
|
-
name: string;
|
|
29
|
-
publicationName: string;
|
|
30
|
-
connectionTag: string;
|
|
31
|
-
tablePattern: sync_rules.TablePattern;
|
|
32
|
-
relationId: number | null;
|
|
33
|
-
syncRules: sync_rules.SyncConfig;
|
|
34
|
-
}
|
|
35
|
-
export declare function getDebugTableInfo(options: GetDebugTableInfoOptions): Promise<service_types.TableInfo>;
|
|
36
28
|
export declare function cleanUpReplicationSlot(slotName: string, db: pgwire.PgClient): Promise<void>;
|