@quereus/sync-coordinator 4.3.2 → 4.4.1

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/README.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # @quereus/sync-coordinator
2
2
 
3
+ > **Stability: Experimental** — a research track; the API, the HTTP/WebSocket wire
4
+ > protocol, and the on-disk state may change or disappear without notice, in any release
5
+ > including a patch. See [Stability Tiers](../../docs/stability.md#tiers).
6
+
3
7
  Standalone coordinator backend for [@quereus/sync](../quereus-sync) — a production-ready server for multi-master CRDT replication.
4
8
 
5
9
  ## Features
@@ -65,6 +69,19 @@ Configuration sources (highest priority first):
65
69
  | `SYNC_CORS_ORIGIN` | CORS origins (`true`, `false`, or comma-separated) | `true` |
66
70
  | `SYNC_AUTH_MODE` | Auth mode: `none`, `token-whitelist` | `none` |
67
71
  | `SYNC_AUTH_TOKENS` | Comma-separated allowed tokens | — |
72
+ | `SYNC_RETENTION_HORIZON_MS` | How long deletion markers and quarantined changes are kept | `2592000000` (30 days) |
73
+ | `SYNC_BATCH_SIZE` | Max changes per sync batch | `1000` |
74
+
75
+ ### Housekeeping
76
+
77
+ The coordinator sweeps every database it currently has open once an hour, dropping
78
+ deletion markers and quarantined changes older than `SYNC_RETENTION_HORIZON_MS`. Only
79
+ already-open databases are swept — a database nobody is connected to keeps its expired
80
+ records until a client next opens it. See `docs/sync.md` § *Who drives the sweep*.
81
+
82
+ A client that has been offline for longer than the retention horizon can miss deletes that
83
+ have since been swept, and the server does not yet refuse such a client's incremental sync.
84
+ Keep the horizon comfortably longer than the longest client absence you expect.
68
85
 
69
86
  ### S3 Durable Storage (Optional)
70
87
 
@@ -2,5 +2,5 @@
2
2
  * Common utilities for sync-coordinator.
3
3
  */
4
4
  export { createLogger, serverLog, httpLog, wsLog, serviceLog, authLog, configLog, } from './logger.js';
5
- export { serializeChangeSet, deserializeChangeSet, serializeSnapshotChunk, deserializeSnapshotChunk, } from '@quereus/sync';
5
+ export { serializeChangeSet, deserializeChangeSet, serializeSnapshotChunk, deserializeSnapshotChunk, serializeSnapshotCheckpoint, deserializeSnapshotCheckpoint, } from '@quereus/sync';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,YAAY,EACZ,SAAS,EACT,OAAO,EACP,KAAK,EACL,UAAU,EACV,OAAO,EACP,SAAS,GACV,MAAM,aAAa,CAAC;AAIrB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,YAAY,EACZ,SAAS,EACT,OAAO,EACP,KAAK,EACL,UAAU,EACV,OAAO,EACP,SAAS,GACV,MAAM,aAAa,CAAC;AAIrB,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,eAAe,CAAC"}
@@ -4,5 +4,5 @@
4
4
  export { createLogger, serverLog, httpLog, wsLog, serviceLog, authLog, configLog, } from './logger.js';
5
5
  // Wire codec now lives in @quereus/sync (single source of truth shared with the
6
6
  // client). Re-exported here so callers keep importing it via ../common/index.js.
7
- export { serializeChangeSet, deserializeChangeSet, serializeSnapshotChunk, deserializeSnapshotChunk, } from '@quereus/sync';
7
+ export { serializeChangeSet, deserializeChangeSet, serializeSnapshotChunk, deserializeSnapshotChunk, serializeSnapshotCheckpoint, deserializeSnapshotCheckpoint, } from '@quereus/sync';
8
8
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,YAAY,EACZ,SAAS,EACT,OAAO,EACP,KAAK,EACL,UAAU,EACV,OAAO,EACP,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,gFAAgF;AAChF,iFAAiF;AACjF,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,YAAY,EACZ,SAAS,EACT,OAAO,EACP,KAAK,EACL,UAAU,EACV,OAAO,EACP,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,gFAAgF;AAChF,iFAAiF;AACjF,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,2BAA2B,EAC3B,6BAA6B,GAC9B,MAAM,eAAe,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../src/server/websocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAyC,MAAM,SAAS,CAAC;AAEtF,OAAO,oBAAoB,CAAC;AAc5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAY5E;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,MAAM,GACf,IAAI,CAsON"}
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../../src/server/websocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAyC,MAAM,SAAS,CAAC;AAEtF,OAAO,oBAAoB,CAAC;AAc5B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAY5E;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,MAAM,GACf,IAAI,CA2ON"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import '@fastify/websocket';
5
5
  import { siteIdFromBase64, siteIdToBase64, deserializeHLC, PROTOCOL_VERSION, } from '@quereus/sync';
6
- import { wsLog, serializeChangeSet, deserializeChangeSet, serializeSnapshotChunk } from '../common/index.js';
6
+ import { wsLog, serializeChangeSet, deserializeChangeSet, serializeSnapshotChunk, deserializeSnapshotCheckpoint } from '../common/index.js';
7
7
  // The ClientMessage union and its per-message interfaces are the shared wire
8
8
  // definitions from @quereus/sync (`sync/wire.ts`), the single source of truth
9
9
  // this coordinator and the sync client both speak.
@@ -205,7 +205,12 @@ export function registerWebSocket(app, service, basePath) {
205
205
  return;
206
206
  }
207
207
  try {
208
- for await (const chunk of service.resumeSnapshotStream(session.databaseId, session.identity, msg.checkpoint)) {
208
+ // The checkpoint arrives from JSON.parse in its serialized form (base64
209
+ // siteId/HLC); decode before handing it to the service, which expects the
210
+ // binary in-memory shape. Its CONTENTS are still client-supplied and
211
+ // unchecked against the session — see `bug-sync-resume-snapshot-unvalidated-checkpoint`.
212
+ const checkpoint = deserializeSnapshotCheckpoint(msg.checkpoint);
213
+ for await (const chunk of service.resumeSnapshotStream(session.databaseId, session.identity, checkpoint)) {
209
214
  sendMessage({ type: 'snapshot_chunk', chunk: serializeSnapshotChunk(chunk) });
210
215
  }
211
216
  sendMessage({ type: 'snapshot_complete' });
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/server/websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../src/server/websocket.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,7 @@ export declare class CoordinatorService {
42
42
  private readonly _storeManager;
43
43
  private readonly s3BatchStore?;
44
44
  private readonly s3SnapshotStore?;
45
+ private readonly maintenanceLoop;
45
46
  /** Active WebSocket sessions by connection ID */
46
47
  private readonly sessions;
47
48
  /** Connection IDs by database ID for broadcasting */
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator-service.d.ts","sourceRoot":"","sources":["../../../src/service/coordinator-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinator-service.d.ts","sourceRoot":"","sources":["../../../src/service/coordinator-service.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ import { siteIdFromBase64, siteIdEquals, siteIdToBase64, } from '@quereus/sync';
12
12
  import { serviceLog, authLog, serializeChangeSet, deserializeChangeSet } from '../common/index.js';
13
13
  import { createCoordinatorMetrics, } from '../metrics/index.js';
14
14
  import { StoreManager } from './store-manager.js';
15
+ import { CoordinatorMaintenanceLoop } from './maintenance.js';
15
16
  import { createS3Client } from './s3-config.js';
16
17
  import { S3BatchStore } from './s3-batch-store.js';
17
18
  import { S3SnapshotStore } from './s3-snapshot-store.js';
@@ -25,6 +26,7 @@ export class CoordinatorService {
25
26
  _storeManager;
26
27
  s3BatchStore;
27
28
  s3SnapshotStore;
29
+ maintenanceLoop;
28
30
  /** Active WebSocket sessions by connection ID */
29
31
  sessions = new Map();
30
32
  /** Connection IDs by database ID for broadcasting */
@@ -77,6 +79,9 @@ export class CoordinatorService {
77
79
  if (diskEvictionIdleMs > 0) {
78
80
  serviceLog('Disk eviction enabled: idle threshold %dms', diskEvictionIdleMs);
79
81
  }
82
+ // Sync housekeeping (tombstone / quarantine expiry, basis eviction). The
83
+ // library ships no timer; this is the coordinator's cadence for it.
84
+ this.maintenanceLoop = new CoordinatorMaintenanceLoop(this._storeManager);
80
85
  }
81
86
  /**
82
87
  * Get the underlying StoreManager for app-layer extensions.
@@ -98,6 +103,7 @@ export class CoordinatorService {
98
103
  this.s3SnapshotStore.start();
99
104
  serviceLog('S3 snapshot store started');
100
105
  }
106
+ this.maintenanceLoop.start();
101
107
  this.initialized = true;
102
108
  serviceLog('CoordinatorService initialized, ready for multi-tenant connections');
103
109
  }
@@ -112,6 +118,9 @@ export class CoordinatorService {
112
118
  if (this.s3SnapshotStore) {
113
119
  this.s3SnapshotStore.stop();
114
120
  }
121
+ // Disarm housekeeping and let any in-flight pass finish before the stores
122
+ // it is reading are closed below.
123
+ await this.maintenanceLoop.stop();
115
124
  // Close all WebSocket connections
116
125
  for (const session of this.sessions.values()) {
117
126
  session.socket.close(1001, 'Server shutting down');
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator-service.js","sourceRoot":"","sources":["../../../src/service/coordinator-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinator-service.js","sourceRoot":"","sources":["../../../src/service/coordinator-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAQL,gBAAgB,EAChB,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAEnG,OAAO,EACL,wBAAwB,GAEzB,MAAM,qBAAqB,CAAC;AAQ7B,OAAO,EAAE,YAAY,EAA8D,MAAM,oBAAoB,CAAC;AAC9G,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAwB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAA+B,MAAM,wBAAwB,CAAC;AAoBtF;;GAEG;AACH,MAAM,OAAO,kBAAkB;IACZ,MAAM,CAAoB;IAC1B,KAAK,CAAmB;IACxB,OAAO,CAAqB;IAC5B,aAAa,CAAe;IAC5B,YAAY,CAAgB;IAC5B,eAAe,CAAmB;IAClC,eAAe,CAA6B;IAE7D,iDAAiD;IAChC,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC7D,qDAAqD;IACpC,qBAAqB,GAAG,IAAI,GAAG,EAAuB,CAAC;IAEhE,WAAW,GAAG,KAAK,CAAC;IAE5B,YAAY,OAAkC;QAC5C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,wBAAwB,EAAE,CAAC;QAC7D,iGAAiG;QACjG,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAClD,0DAA0D;YAC1D,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,EAAE,kBAAkB,CAAC;YAClE,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;YACrF,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YACnH,UAAU,CAAC,qCAAqC,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7E,CAAC;QAED,kFAAkF;QAClF,MAAM,mBAAmB,GAAG,OAAO,CAAC,QAAQ;YAC1C,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,OAAO;YAC/C,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,MAAM,CAAC;QACjD,MAAM,kBAAkB,GAAG,mBAAmB;YAC5C,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,SAAS,EAAE,EAAE,CAAC;YAC9D,CAAC,CAAC,CAAC,CAAC;QAEN,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,CAAC;YACpC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,aAAa,EAAE,GAAG;YAClB,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;YAC5B,iBAAiB,EAAE,EAAE,GAAG,IAAI;YAC5B,UAAU,EAAE;gBACV,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB;gBACvD,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS;aACtC;YACD,KAAK,EAAE,OAAO,CAAC,UAAU;YACzB,cAAc,EAAE,IAAI,CAAC,eAAe;gBAClC,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBACtC,CAAC,CAAC,SAAS;YACb,kBAAkB;YAClB,YAAY,EAAE,IAAI,CAAC,eAAe,IAAI,kBAAkB,GAAG,CAAC;gBAC1D,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;oBACnB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAgB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;oBACxE,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjB,UAAU,CAAC,4CAA4C,EAAE,UAAU,CAAC,CAAC;oBACvE,CAAC;oBACD,OAAO,WAAW,CAAC;gBACrB,CAAC;gBACH,CAAC,CAAC,SAAS;SACd,CAAC,CAAC;QAEH,IAAI,kBAAkB,GAAG,CAAC,EAAE,CAAC;YAC3B,UAAU,CAAC,4CAA4C,EAAE,kBAAkB,CAAC,CAAC;QAC/E,CAAC;QAED,yEAAyE;QACzE,oEAAoE;QACpE,IAAI,CAAC,eAAe,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5E,CAAC;IAED;;;OAGG;IACH,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO;QAE7B,UAAU,CAAC,iEAAiE,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACnG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAE3B,qCAAqC;QACrC,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;YAC7B,UAAU,CAAC,2BAA2B,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAE7B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,UAAU,CAAC,oEAAoE,CAAC,CAAC;IACnF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAE9B,UAAU,CAAC,kCAAkC,CAAC,CAAC;QAE/C,sBAAsB;QACtB,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QAED,0EAA0E;QAC1E,kCAAkC;QAClC,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAElC,kCAAkC;QAClC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,sBAAsB,CAAC,CAAC;QACrD,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;QAEnC,yBAAyB;QACzB,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,WAAyB,EAAE,QAAyB;QAC5E,OAAO;YACL,KAAK,EAAE,WAAW,EAAE,KAAK;YACzB,MAAM,EAAE,QAAQ,EAAE,MAAM;YACxB,QAAQ,EAAE,QAAQ,EAAE,QAAQ;SAC7B,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,QAAQ,CAAC,UAAkB,EAAE,OAAsB;QAC/D,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,UAAkB;QACrC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;IAED,+EAA+E;IAC/E,iCAAiC;IACjC,+EAA+E;IAE/E;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,OAAoB;QACrC,OAAO,CAAC,oCAAoC,EAAE,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;QAEjE,IAAI,CAAC;YACH,uBAAuB;YACvB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;gBAChD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBAC7C,CAAC;gBACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACtD,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;YAED,cAAc;YACd,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;gBAC9B,OAAO,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YAClD,CAAC;YAED,0CAA0C;YAC1C,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACzC,OAAO,CAAC,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACtC,CAAC;YAED,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACjE,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,MAAsB,EAAE,SAAwB;QAC9D,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAChE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,iCAAiC,EACvC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,OAAO,IAAI,CAAC,CAAC,qBAAqB;IACpC,CAAC;IAED,+EAA+E;IAC/E,kBAAkB;IAClB,+EAA+E;IAE/E;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,MAAuB;QACzD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,OAAO,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;QACvC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,UAAkB,EAAE,MAAuB;QAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,OAAO,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE,CAAC;QAC3C,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CACnB,UAAkB,EAClB,MAAsB,EACtB,QAAc;QAEd,UAAU,CAAC,+CAA+C,EACxD,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAEnF,YAAY;QACZ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACjF,QAAQ,EAAE,CAAC;YACX,OAAO,OAAO,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAChB,UAAkB,EAClB,MAAsB,EACtB,OAAoB;QAEpB,UAAU,CAAC,uCAAuC,EAChD,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAE7D,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACrF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACxF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAErF,YAAY;QACZ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;YAC3C,IAAI,EAAE,eAAe;YACrB,WAAW,EAAE,OAAO,CAAC,MAAM;SAC5B,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,mBAAmB;QACnB,IAAI,eAAe,GAAG,OAAO,CAAC;QAC9B,IAAI,cAAgG,CAAC;QACrG,IAAI,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACtE,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;YAClC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,UAAU,CAAC,6BAA6B,EACtC,MAAM,CAAC,QAAQ,CAAC,MAAM,EACtB,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gBAChG,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACzC,MAAM,EAAE,CAAC,CAAC,MAAM;oBAChB,IAAI,EAAE,CAAC,CAAC,IAAI;iBACb,CAAC,CAAC,CAAC;YACN,CAAC;QACH,CAAC;QAED,4CAA4C;QAC5C,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE,CAAC;YACjC,UAAU,CAAC,+CAA+C,EACxD,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,gBAAgB,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;YACvD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;gBAC3B,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACxB,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC9E,CAAC;qBAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC/B,UAAU,CAAC,uBAAuB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,QAAQ;YACR,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACrE,UAAU,CAAC,oDAAoD,EAC7D,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;YACpD,QAAQ,EAAE,CAAC;YAEX,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YAEvF,kBAAkB;YAClB,IAAI,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,CAAC;gBACnC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;YAClE,CAAC;YAED,oFAAoF;YACpF,IAAI,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,YAAY,CAAC,UAAU,CAC1B,UAAU,EACV,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAC7B,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,EACjD,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAClF,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBACZ,UAAU,CAAC,yCAAyC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;gBACrE,CAAC,CAAC,CAAC;YACL,CAAC;YAED,yCAAyC;YACzC,IAAI,IAAI,CAAC,eAAe,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBAC/C,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAE/D,6CAA6C;gBAC7C,IAAI,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC;oBACnD,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;wBAC7E,UAAU,CAAC,0CAA0C,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;oBACtE,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,4DAA4D;YAC5D,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;gBACvB,UAAU,CAAC,mDAAmD,EAAE,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;gBACpG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;YACpE,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,sCAAsC,CAAC,CAAC;YACrD,CAAC;YAED,IAAI,cAAc,EAAE,CAAC;gBACnB,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;YACjD,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,iBAAiB,CACtB,UAAkB,EAClB,MAAsB,EACtB,SAAkB;QAElB,UAAU,CAAC,gCAAgC,EACzC,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAErE,YAAY;QACZ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;QACvE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;gBACnE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,oBAAoB,CACzB,UAAkB,EAClB,MAAsB,EACtB,UAA8B;QAE9B,UAAU,CAAC,mCAAmC,EAC5C,UAAU,EAAE,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAE7C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAErE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC7E,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;gBACnE,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,MAAsB,EAAE,QAAa;QAC1E,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,OAAO,KAAK,CAAC,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACjE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,+EAA+E;IAC/E,+BAA+B;IAC/B,+EAA+E;IAE/E;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACnB,UAAkB,EAClB,MAAiB,EACjB,QAAwB,EACxB,WAAyB;QAEzB,MAAM,YAAY,GAAG,UAAU,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAEnE,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,CAAC;YACrE,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,oBAAoB;QACpB,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;YAC/E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAED,4DAA4D;QAC5D,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAE9C,MAAM,OAAO,GAAkB;YAC7B,YAAY;YACZ,UAAU;YACV,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ;YACR,WAAW,EAAE,SAAS;YACtB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;YACvB,MAAM;SACP,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAEzC,uCAAuC;QACvC,IAAI,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,WAAW,GAAG,IAAI,GAAG,EAAE,CAAC;YACxB,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC1D,CAAC;QACD,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAE9B,iBAAiB;QACjB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAEjE,UAAU,CAAC,iCAAiC,EAC1C,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAExC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,YAAoB;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO;YAAE,OAAO;QAErB,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAE/B,uBAAuB;QACvB,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAEnC,kCAAkC;QAClC,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/D,IAAI,WAAW,EAAE,CAAC;YAChB,WAAW,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,WAAW,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;QAED,8BAA8B;QAC9B,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAE9B,iBAAiB;QACjB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QAEjE,UAAU,CAAC,mCAAmC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACxF,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,YAAoB;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,YAAoB,EAAE,GAAQ;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAChD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,2EAA2E;IAC3E,0EAA0E;IAC1E,uEAAuE;IACvE,6EAA6E;IAC7E,4EAA4E;IAC5E,uDAAuD;IAC/C,gBAAgB,CAAC,UAAkB,EAAE,YAAoB,EAAE,OAAoB;QACrF,0CAA0C;QAC1C,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;YAC7B,IAAI,EAAE,cAAc;YACpB,UAAU,EAAE,oBAAoB;SACjC,CAAC,CAAC;QAEH,iDAAiD;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,KAAK,MAAM,YAAY,IAAI,WAAW,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,+BAA+B;YAC/B,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC;gBAC/C,SAAS;YACX,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC,CAAC,iBAAiB;gBACtD,IAAI,CAAC;oBACH,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC7B,cAAc,EAAE,CAAC;gBACnB,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC;oBACzE,UAAU,CAAC,kCAAkC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;oBACjF,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBACtE,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAC9B,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAClC,EAAE,EACF,OAAO,CAAC,MAAM,GAAG,cAAc,CAChC,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,UAAkB;QAClC,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,SAAS;QAKP,OAAO;YACL,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS;YACxC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;YACpC,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE;SACzB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,+EAA+E;IAC/E,aAAa;IACb,+EAA+E;IAE/E;;;OAGG;IACK,KAAK,CAAC,aAAa,CAAC,KAAiB;QAC3C,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QAE1C,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAElC,UAAU,CAAC,8BAA8B,EAAE,UAAU,CAAC,CAAC;QAEvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAC;QAE/E,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,UAAU,CAAC,wDAAwD,EAAE,UAAU,CAAC,CAAC;YACjF,OAAO;QACT,CAAC;QAED,2CAA2C;QAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC;QAC5B,KAAK,SAAS,CAAC,CAAC,aAAa;YAC3B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,MAAM,WAAW,CAAC,mBAAmB,CAAC,aAAa,EAAE,CAAC,CAAC;QACvD,UAAU,CAAC,0CAA0C,EACnD,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEpE,4CAA4C;QAC5C,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,gBAAgB,CACxD,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,CACxC,CAAC;YAEF,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;gBAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACzD,MAAM,OAAO,GAAI,KAAK,CAAC,OAAiC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC3F,MAAM,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;YAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,UAAU,CAAC,4BAA4B,EAAE,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,UAAU,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC;IAED,+EAA+E;IAC/E,sBAAsB;IACtB,+EAA+E;IAE/E;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,UAAkB,EAAE,MAAuB;QAC9D,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC1B,UAAU,CAAC,+BAA+B,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC/E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,UAAU,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YACzF,OAAO,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,CAAC;QAC7C,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,2BAA2B;QACzB,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,eAAe,CAAC,2BAA2B,EAAE,CAAC;IAC5D,CAAC;CACF"}
@@ -8,6 +8,7 @@
8
8
  export { type ClientIdentity, type ClientSession, type AuthContext, type SyncOperation, type RejectedChange, type ValidationResult, type CoordinatorHooks, } from './types.js';
9
9
  export { CoordinatorService, type CoordinatorServiceOptions, } from './coordinator-service.js';
10
10
  export { StoreManager, type StoreEntry, type StoreManagerConfig, type StoreManagerHooks, type StoreContext, } from './store-manager.js';
11
+ export { CoordinatorMaintenanceLoop, runCoordinatorMaintenancePass, COORDINATOR_MAINTENANCE_INTERVAL_MS, type MaintenanceStoreSource, type StoreMaintenanceLogger, } from './maintenance.js';
11
12
  export { type S3StorageConfig, type StoragePathResolver, createS3Client, buildBatchKey, buildSnapshotKey, defaultStoragePathResolver, parseS3ConfigFromEnv, } from './s3-config.js';
12
13
  export { S3BatchStore, createS3BatchStore, type SyncBatch, } from './s3-batch-store.js';
13
14
  export { S3SnapshotStore, createS3SnapshotStore, type SnapshotMetadata, type SnapshotScheduleConfig, } from './s3-snapshot-store.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,KAAK,SAAS,GACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/service/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,kBAAkB,EAClB,KAAK,yBAAyB,GAC/B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,mCAAmC,EACnC,KAAK,sBAAsB,EAC3B,KAAK,sBAAsB,GAC5B,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,KAAK,SAAS,GACf,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,wBAAwB,CAAC"}
@@ -7,6 +7,7 @@
7
7
  */
8
8
  export { CoordinatorService, } from './coordinator-service.js';
9
9
  export { StoreManager, } from './store-manager.js';
10
+ export { CoordinatorMaintenanceLoop, runCoordinatorMaintenancePass, COORDINATOR_MAINTENANCE_INTERVAL_MS, } from './maintenance.js';
10
11
  export { createS3Client, buildBatchKey, buildSnapshotKey, defaultStoragePathResolver, parseS3ConfigFromEnv, } from './s3-config.js';
11
12
  export { S3BatchStore, createS3BatchStore, } from './s3-batch-store.js';
12
13
  export { S3SnapshotStore, createS3SnapshotStore, } from './s3-snapshot-store.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,OAAO,EACL,kBAAkB,GAEnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,YAAY,GAKb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAGL,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,YAAY,EACZ,kBAAkB,GAEnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,qBAAqB,GAGtB,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/service/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAYH,OAAO,EACL,kBAAkB,GAEnB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,YAAY,GAKb,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,0BAA0B,EAC1B,6BAA6B,EAC7B,mCAAmC,GAGpC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAGL,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EACL,YAAY,EACZ,kBAAkB,GAEnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,qBAAqB,GAGtB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Periodic sync-maintenance loop for the coordinator.
3
+ *
4
+ * `@quereus/sync` schedules nothing — the host owns cadence (`docs/sync.md`
5
+ * § Who drives the sweep). The per-store pass shape (sweep order, per-sweep
6
+ * error isolation) lives in the library as `runSyncMaintenancePass`; what is
7
+ * coordinator-specific and therefore lives here is the multi-tenant fan-out:
8
+ * one pass visits every database currently open in the `StoreManager`.
9
+ *
10
+ * Without this loop, tombstones and quarantined changes accumulate for the life
11
+ * of every hosted database even though `retentionHorizonMs` says they expire.
12
+ */
13
+ import { type SyncMaintenanceTarget } from '@quereus/sync';
14
+ /**
15
+ * Cadence of the coordinator's maintenance loop (1 hour).
16
+ *
17
+ * Nothing here is latency-sensitive. The only sweep quoomb-web needs promptly is
18
+ * `drainHeldChanges` (a reappeared table's held edits gate a visible UI update),
19
+ * and that one is inert on a relay — no `getTableSchema` oracle to tell it which
20
+ * held tables are back, so it returns 0. `evictExpiredBasisTables` is likewise
21
+ * inert without a `dropLocalTable` callback. What actually reclaims here is
22
+ * `pruneTombstones` / `pruneQuarantine`, both at horizon granularity (default 30
23
+ * days), so hourly expires records well inside the horizon while costing nothing
24
+ * when there is nothing to reclaim (every sweep is zero-cost on an empty scan).
25
+ * A documented constant rather than a `CoordinatorConfig` knob,
26
+ * matching the other internal timings in this package (store idle timeout,
27
+ * cleanup interval); promote it to config only if a deployment needs to tune it.
28
+ */
29
+ export declare const COORDINATOR_MAINTENANCE_INTERVAL_MS: number;
30
+ /**
31
+ * The slice of `StoreManager` the maintenance pass needs. Structural, so tests
32
+ * can drive the pass without opening real LevelDB stores; a `StoreManager` is
33
+ * assignable to it.
34
+ */
35
+ export interface MaintenanceStoreSource {
36
+ /** Snapshot of the database IDs currently open. */
37
+ openDatabaseIds(): string[];
38
+ /** Pin an already-open store. Returns undefined if it is not open — never opens one. */
39
+ acquireIfOpen(databaseId: string): {
40
+ syncManager: SyncMaintenanceTarget;
41
+ } | undefined;
42
+ /** Drop a pin taken by `acquireIfOpen`. */
43
+ releasePin(databaseId: string): void;
44
+ }
45
+ /** Reports a failed sweep for one database. `error` is the thrown value verbatim. */
46
+ export type StoreMaintenanceLogger = (databaseId: string, step: string, error: unknown) => void;
47
+ /**
48
+ * One maintenance pass over every currently-open store. Never rejects: a
49
+ * failing sweep is isolated by the library pass, and a failing *store* is
50
+ * isolated here, so one bad tenant cannot starve the rest.
51
+ *
52
+ * NOTE: only stores already resident in the StoreManager are swept — a database
53
+ * that is closed on disk is skipped until it is next legitimately opened (by a
54
+ * client connecting) and a later tick catches it. An eager scan of every
55
+ * database directory was rejected: it would open — and, with disk eviction on,
56
+ * re-download from S3 — databases no client is using, turning a cheap
57
+ * housekeeping tick into an unbounded I/O storm. The cost is that a database
58
+ * nobody ever opens again keeps its expired metadata on disk; the fix for that
59
+ * is deleting the database, not sweeping it.
60
+ */
61
+ export declare function runCoordinatorMaintenancePass(source: MaintenanceStoreSource, log?: StoreMaintenanceLogger): Promise<void>;
62
+ /**
63
+ * Timer around {@link runCoordinatorMaintenancePass}. Passes are single-flight:
64
+ * a tick that fires while the previous pass is still running is a clean no-op,
65
+ * so a pass slower than the interval never overlaps itself.
66
+ *
67
+ * No immediate pass on `start()` — unlike the browser worker, the coordinator
68
+ * has no stores open at startup (they open lazily as clients connect), so an
69
+ * eager pass would sweep nothing.
70
+ */
71
+ export declare class CoordinatorMaintenanceLoop {
72
+ private readonly source;
73
+ private readonly intervalMs;
74
+ private readonly log;
75
+ private timer;
76
+ /**
77
+ * The pass currently running, or null when idle. Doubles as the single-flight
78
+ * flag and as the handle `stop()` awaits.
79
+ *
80
+ * NOTE: deliberately not `@quereus/sync`'s `createSyncMaintenanceTicker`, whose
81
+ * collapsed tick resolves immediately rather than joining the running pass —
82
+ * right for a fire-and-forget browser timer, wrong here, where `stop()` must
83
+ * know the sweep has finished before `StoreManager.shutdown()` closes the
84
+ * stores it is reading. The shared piece — the per-store pass itself — is still
85
+ * the library's `runSyncMaintenancePass`.
86
+ */
87
+ private inFlight;
88
+ constructor(source: MaintenanceStoreSource, intervalMs?: number, log?: StoreMaintenanceLogger);
89
+ /** Arm the loop. Idempotent — re-arming does not stack a second timer. */
90
+ start(): void;
91
+ /**
92
+ * Disarm the loop and await any pass already in flight, so the caller can
93
+ * close stores knowing no sweep is still reading them.
94
+ */
95
+ stop(): Promise<void>;
96
+ /**
97
+ * Run one pass now, or join the pass already running. Used by the timer and
98
+ * available for tests / an explicit kick.
99
+ */
100
+ runOnce(): Promise<void>;
101
+ }
102
+ //# sourceMappingURL=maintenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintenance.d.ts","sourceRoot":"","sources":["../../../src/service/maintenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,eAAe,CAAC;AAGvB;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mCAAmC,QAAiB,CAAC;AAElE;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,mDAAmD;IACnD,eAAe,IAAI,MAAM,EAAE,CAAC;IAC5B,wFAAwF;IACxF,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG;QAAE,WAAW,EAAE,qBAAqB,CAAA;KAAE,GAAG,SAAS,CAAC;IACtF,2CAA2C;IAC3C,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC;AAED,qFAAqF;AACrF,MAAM,MAAM,sBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;AAOhG;;;;;;;;;;;;;GAaG;AACH,wBAAsB,6BAA6B,CACjD,MAAM,EAAE,sBAAsB,EAC9B,GAAG,GAAE,sBAAmC,GACvC,OAAO,CAAC,IAAI,CAAC,CAyCf;AAED;;;;;;;;GAQG;AACH,qBAAa,0BAA0B;IAgBnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAjBtB,OAAO,CAAC,KAAK,CAA+C;IAC5D;;;;;;;;;;OAUG;IACH,OAAO,CAAC,QAAQ,CAA8B;gBAG3B,MAAM,EAAE,sBAAsB,EAC9B,UAAU,GAAE,MAA4C,EACxD,GAAG,GAAE,sBAAmC;IAG3D,0EAA0E;IAC1E,KAAK,IAAI,IAAI;IAMb;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3B;;;OAGG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAY/B"}
@@ -0,0 +1,157 @@
1
+ /**
2
+ * Periodic sync-maintenance loop for the coordinator.
3
+ *
4
+ * `@quereus/sync` schedules nothing — the host owns cadence (`docs/sync.md`
5
+ * § Who drives the sweep). The per-store pass shape (sweep order, per-sweep
6
+ * error isolation) lives in the library as `runSyncMaintenancePass`; what is
7
+ * coordinator-specific and therefore lives here is the multi-tenant fan-out:
8
+ * one pass visits every database currently open in the `StoreManager`.
9
+ *
10
+ * Without this loop, tombstones and quarantined changes accumulate for the life
11
+ * of every hosted database even though `retentionHorizonMs` says they expire.
12
+ */
13
+ import { runSyncMaintenancePass, } from '@quereus/sync';
14
+ import { serviceLog } from '../common/logger.js';
15
+ /**
16
+ * Cadence of the coordinator's maintenance loop (1 hour).
17
+ *
18
+ * Nothing here is latency-sensitive. The only sweep quoomb-web needs promptly is
19
+ * `drainHeldChanges` (a reappeared table's held edits gate a visible UI update),
20
+ * and that one is inert on a relay — no `getTableSchema` oracle to tell it which
21
+ * held tables are back, so it returns 0. `evictExpiredBasisTables` is likewise
22
+ * inert without a `dropLocalTable` callback. What actually reclaims here is
23
+ * `pruneTombstones` / `pruneQuarantine`, both at horizon granularity (default 30
24
+ * days), so hourly expires records well inside the horizon while costing nothing
25
+ * when there is nothing to reclaim (every sweep is zero-cost on an empty scan).
26
+ * A documented constant rather than a `CoordinatorConfig` knob,
27
+ * matching the other internal timings in this package (store idle timeout,
28
+ * cleanup interval); promote it to config only if a deployment needs to tune it.
29
+ */
30
+ export const COORDINATOR_MAINTENANCE_INTERVAL_MS = 60 * 60 * 1000;
31
+ /** Default logger: per-sweep failures are non-fatal, so they are logged, not thrown. */
32
+ const defaultLog = (databaseId, step, error) => {
33
+ serviceLog('Sync maintenance step "%s" failed for %s (non-fatal): %O', step, databaseId, error);
34
+ };
35
+ /**
36
+ * One maintenance pass over every currently-open store. Never rejects: a
37
+ * failing sweep is isolated by the library pass, and a failing *store* is
38
+ * isolated here, so one bad tenant cannot starve the rest.
39
+ *
40
+ * NOTE: only stores already resident in the StoreManager are swept — a database
41
+ * that is closed on disk is skipped until it is next legitimately opened (by a
42
+ * client connecting) and a later tick catches it. An eager scan of every
43
+ * database directory was rejected: it would open — and, with disk eviction on,
44
+ * re-download from S3 — databases no client is using, turning a cheap
45
+ * housekeeping tick into an unbounded I/O storm. The cost is that a database
46
+ * nobody ever opens again keeps its expired metadata on disk; the fix for that
47
+ * is deleting the database, not sweeping it.
48
+ */
49
+ export async function runCoordinatorMaintenancePass(source, log = defaultLog) {
50
+ const databaseIds = source.openDatabaseIds();
51
+ if (databaseIds.length === 0)
52
+ return;
53
+ let swept = 0;
54
+ for (const databaseId of databaseIds) {
55
+ let pinned = false;
56
+ try {
57
+ // Close-during-sweep race: the snapshot above can go stale while we await
58
+ // a previous store's sweep. We pin instead of tolerating a throw, because
59
+ // the failure mode we are avoiding is not a clean "store closed" error —
60
+ // it is a sweep issuing reads against a LevelDB handle that closes
61
+ // mid-scan. The pin is refcount-only (never opens a store), so a store
62
+ // closed since the snapshot simply yields undefined and is skipped.
63
+ //
64
+ // NOTE: the pin also makes the store ineligible for LRU eviction for the
65
+ // duration of its sweep — one store at a time, and a sweep over an empty
66
+ // scan is instant, so it is invisible today. If sweeps ever get slow (a
67
+ // huge expired-tombstone backlog) on a coordinator sitting at
68
+ // `maxOpenStores`, an acquire can hit "Cannot evict, all stores have
69
+ // active references" and open past the cap; then the pass needs to yield
70
+ // the pin between sweeps rather than hold it across all four.
71
+ const entry = source.acquireIfOpen(databaseId);
72
+ if (!entry)
73
+ continue;
74
+ pinned = true;
75
+ await runSyncMaintenancePass(entry.syncManager, (step, error) => log(databaseId, step, error));
76
+ swept++;
77
+ }
78
+ catch (err) {
79
+ // runSyncMaintenancePass does not reject; this catches anything the
80
+ // source itself throws, so one store cannot abort the whole pass.
81
+ log(databaseId, 'pass', err);
82
+ }
83
+ finally {
84
+ if (pinned)
85
+ source.releasePin(databaseId);
86
+ }
87
+ }
88
+ serviceLog('Sync maintenance pass complete: swept %d of %d open stores', swept, databaseIds.length);
89
+ }
90
+ /**
91
+ * Timer around {@link runCoordinatorMaintenancePass}. Passes are single-flight:
92
+ * a tick that fires while the previous pass is still running is a clean no-op,
93
+ * so a pass slower than the interval never overlaps itself.
94
+ *
95
+ * No immediate pass on `start()` — unlike the browser worker, the coordinator
96
+ * has no stores open at startup (they open lazily as clients connect), so an
97
+ * eager pass would sweep nothing.
98
+ */
99
+ export class CoordinatorMaintenanceLoop {
100
+ source;
101
+ intervalMs;
102
+ log;
103
+ timer = null;
104
+ /**
105
+ * The pass currently running, or null when idle. Doubles as the single-flight
106
+ * flag and as the handle `stop()` awaits.
107
+ *
108
+ * NOTE: deliberately not `@quereus/sync`'s `createSyncMaintenanceTicker`, whose
109
+ * collapsed tick resolves immediately rather than joining the running pass —
110
+ * right for a fire-and-forget browser timer, wrong here, where `stop()` must
111
+ * know the sweep has finished before `StoreManager.shutdown()` closes the
112
+ * stores it is reading. The shared piece — the per-store pass itself — is still
113
+ * the library's `runSyncMaintenancePass`.
114
+ */
115
+ inFlight = null;
116
+ constructor(source, intervalMs = COORDINATOR_MAINTENANCE_INTERVAL_MS, log = defaultLog) {
117
+ this.source = source;
118
+ this.intervalMs = intervalMs;
119
+ this.log = log;
120
+ }
121
+ /** Arm the loop. Idempotent — re-arming does not stack a second timer. */
122
+ start() {
123
+ if (this.timer)
124
+ return;
125
+ this.timer = setInterval(() => { void this.runOnce(); }, this.intervalMs);
126
+ serviceLog('Sync maintenance loop started (interval %dms)', this.intervalMs);
127
+ }
128
+ /**
129
+ * Disarm the loop and await any pass already in flight, so the caller can
130
+ * close stores knowing no sweep is still reading them.
131
+ */
132
+ async stop() {
133
+ if (this.timer) {
134
+ clearInterval(this.timer);
135
+ this.timer = null;
136
+ serviceLog('Sync maintenance loop stopped');
137
+ }
138
+ await this.inFlight;
139
+ }
140
+ /**
141
+ * Run one pass now, or join the pass already running. Used by the timer and
142
+ * available for tests / an explicit kick.
143
+ */
144
+ async runOnce() {
145
+ if (this.inFlight)
146
+ return this.inFlight;
147
+ // The pass isolates per-store and per-sweep failures itself; this catch is
148
+ // for anything left (a source that throws synchronously), so a fire-and-forget
149
+ // timer tick can never surface as an unhandled rejection.
150
+ const pass = runCoordinatorMaintenancePass(this.source, this.log)
151
+ .catch(err => { serviceLog('Sync maintenance pass failed (non-fatal): %O', err); })
152
+ .finally(() => { this.inFlight = null; });
153
+ this.inFlight = pass;
154
+ return pass;
155
+ }
156
+ }
157
+ //# sourceMappingURL=maintenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../../../src/service/maintenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EACL,sBAAsB,GAEvB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAmBlE,wFAAwF;AACxF,MAAM,UAAU,GAA2B,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;IACrE,UAAU,CAAC,0DAA0D,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAClG,CAAC,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,MAA8B,EAC9B,MAA8B,UAAU;IAExC,MAAM,WAAW,GAAG,MAAM,CAAC,eAAe,EAAE,CAAC;IAC7C,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAErC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC;YACH,0EAA0E;YAC1E,0EAA0E;YAC1E,yEAAyE;YACzE,mEAAmE;YACnE,uEAAuE;YACvE,oEAAoE;YACpE,EAAE;YACF,yEAAyE;YACzE,yEAAyE;YACzE,wEAAwE;YACxE,8DAA8D;YAC9D,qEAAqE;YACrE,yEAAyE;YACzE,8DAA8D;YAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK;gBAAE,SAAS;YACrB,MAAM,GAAG,IAAI,CAAC;YAEd,MAAM,sBAAsB,CAC1B,KAAK,CAAC,WAAW,EACjB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAC9C,CAAC;YACF,KAAK,EAAE,CAAC;QACV,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,oEAAoE;YACpE,kEAAkE;YAClE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC/B,CAAC;gBAAS,CAAC;YACT,IAAI,MAAM;gBAAE,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,UAAU,CAAC,4DAA4D,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;AACtG,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,0BAA0B;IAgBlB;IACA;IACA;IAjBX,KAAK,GAA0C,IAAI,CAAC;IAC5D;;;;;;;;;;OAUG;IACK,QAAQ,GAAyB,IAAI,CAAC;IAE9C,YACmB,MAA8B,EAC9B,aAAqB,mCAAmC,EACxD,MAA8B,UAAU;QAFxC,WAAM,GAAN,MAAM,CAAwB;QAC9B,eAAU,GAAV,UAAU,CAA8C;QACxD,QAAG,GAAH,GAAG,CAAqC;IACxD,CAAC;IAEJ,0EAA0E;IAC1E,KAAK;QACH,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO;QACvB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1E,UAAU,CAAC,+CAA+C,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/E,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,UAAU,CAAC,+BAA+B,CAAC,CAAC;QAC9C,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;QAExC,2EAA2E;QAC3E,+EAA+E;QAC/E,0DAA0D;QAC1D,MAAM,IAAI,GAAG,6BAA6B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC;aAC9D,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,8CAA8C,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAClF,OAAO,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -114,6 +114,13 @@ export declare class StoreManager {
114
114
  * Release a store reference. Decrements refCount.
115
115
  */
116
116
  release(databaseId: string): void;
117
+ /**
118
+ * Release a pin taken by {@link acquireIfOpen}, without refreshing
119
+ * `lastAccess` — see the NOTE there for why background sweeps must not count
120
+ * as access.
121
+ */
122
+ releasePin(databaseId: string): void;
123
+ private decRef;
117
124
  /**
118
125
  * Check if a store is currently open.
119
126
  */
@@ -122,6 +129,30 @@ export declare class StoreManager {
122
129
  * Get an open store without acquiring (for read-only checks).
123
130
  */
124
131
  get(databaseId: string): StoreEntry | undefined;
132
+ /**
133
+ * Snapshot of the database IDs currently open. A plain array copy, so the
134
+ * caller can await between entries without tripping over concurrent
135
+ * open/close mutating the live map.
136
+ */
137
+ openDatabaseIds(): string[];
138
+ /**
139
+ * Pin an already-open store, or return undefined if it is not open. Unlike
140
+ * {@link acquire} this never opens (or re-opens) a store — it is for
141
+ * background work that should touch only what is already resident, e.g. the
142
+ * periodic sync-maintenance sweep.
143
+ *
144
+ * Synchronous by design: the refCount bump lands in the same synchronous
145
+ * section as the `stores.get`, which makes it atomic with respect to
146
+ * `closeStore`'s equally-synchronous "guard then delete" section (see the
147
+ * serialization invariant on {@link closeStore}). So the store cannot be
148
+ * closed out from under a caller that got an entry back, and a caller that
149
+ * lost the race gets undefined rather than a half-torn-down handle.
150
+ *
151
+ * NOTE: deliberately does NOT touch `lastAccess`. A maintenance sweep is not
152
+ * user access; refreshing the timestamp on every pass would keep otherwise-idle
153
+ * stores permanently above the idle-close threshold.
154
+ */
155
+ acquireIfOpen(databaseId: string): StoreEntry | undefined;
125
156
  /**
126
157
  * Get count of open stores.
127
158
  */
@@ -1 +1 @@
1
- {"version":3,"file":"store-manager.d.ts","sourceRoot":"","sources":["../../../src/service/store-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store-manager.d.ts","sourceRoot":"","sources":["../../../src/service/store-manager.ts"],"names":[],"mappings":"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"}
@@ -154,11 +154,23 @@ export class StoreManager {
154
154
  * Release a store reference. Decrements refCount.
155
155
  */
156
156
  release(databaseId) {
157
+ this.decRef(databaseId, true);
158
+ }
159
+ /**
160
+ * Release a pin taken by {@link acquireIfOpen}, without refreshing
161
+ * `lastAccess` — see the NOTE there for why background sweeps must not count
162
+ * as access.
163
+ */
164
+ releasePin(databaseId) {
165
+ this.decRef(databaseId, false);
166
+ }
167
+ decRef(databaseId, touch) {
157
168
  const entry = this.stores.get(databaseId);
158
169
  if (!entry)
159
170
  return;
160
171
  entry.refCount = Math.max(0, entry.refCount - 1);
161
- entry.lastAccess = Date.now();
172
+ if (touch)
173
+ entry.lastAccess = Date.now();
162
174
  serviceLog('Store released: %s, refCount=%d', databaseId, entry.refCount);
163
175
  }
164
176
  /**
@@ -173,6 +185,40 @@ export class StoreManager {
173
185
  get(databaseId) {
174
186
  return this.stores.get(databaseId);
175
187
  }
188
+ /**
189
+ * Snapshot of the database IDs currently open. A plain array copy, so the
190
+ * caller can await between entries without tripping over concurrent
191
+ * open/close mutating the live map.
192
+ */
193
+ openDatabaseIds() {
194
+ return Array.from(this.stores.keys());
195
+ }
196
+ /**
197
+ * Pin an already-open store, or return undefined if it is not open. Unlike
198
+ * {@link acquire} this never opens (or re-opens) a store — it is for
199
+ * background work that should touch only what is already resident, e.g. the
200
+ * periodic sync-maintenance sweep.
201
+ *
202
+ * Synchronous by design: the refCount bump lands in the same synchronous
203
+ * section as the `stores.get`, which makes it atomic with respect to
204
+ * `closeStore`'s equally-synchronous "guard then delete" section (see the
205
+ * serialization invariant on {@link closeStore}). So the store cannot be
206
+ * closed out from under a caller that got an entry back, and a caller that
207
+ * lost the race gets undefined rather than a half-torn-down handle.
208
+ *
209
+ * NOTE: deliberately does NOT touch `lastAccess`. A maintenance sweep is not
210
+ * user access; refreshing the timestamp on every pass would keep otherwise-idle
211
+ * stores permanently above the idle-close threshold.
212
+ */
213
+ acquireIfOpen(databaseId) {
214
+ if (this._shuttingDown)
215
+ return undefined;
216
+ const entry = this.stores.get(databaseId);
217
+ if (!entry)
218
+ return undefined;
219
+ entry.refCount++;
220
+ return entry;
221
+ }
176
222
  /**
177
223
  * Get count of open stores.
178
224
  */
@@ -1 +1 @@
1
- {"version":3,"file":"store-manager.js","sourceRoot":"","sources":["../../../src/service/store-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACL,gBAAgB,GAEjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAyEjD;;;GAGG;AACH,SAAS,qBAAqB,CAAC,KAAa;IAC1C,uEAAuE;IACvE,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,SAAS,yBAAyB,CAAC,UAAkB,EAAE,QAAuB;IAC5E,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,UAAkB,EAAE,QAAuB;IAC3E,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,6CAA6C;IAC7C,OAAO,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,cAAc,GAAuB;IACzC,OAAO,EAAE,QAAQ;IACjB,aAAa,EAAE,GAAG;IAClB,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;IAC1C,iBAAiB,EAAE,EAAE,GAAG,IAAI,EAAE,aAAa;CAC5C,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,YAAY;IACN,MAAM,CAAqB;IAC3B,kBAAkB,CAAyD;IAC3E,iBAAiB,CAA0D;IAC3E,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IACvC,YAAY,GAAG,IAAI,GAAG,EAA+B,CAAC;IACvE,kGAAkG;IACjF,aAAa,GAAG,IAAI,GAAG,EAAyB,CAAC;IACjD,cAAc,CAAwC;IACvE,8FAA8F;IAC7E,YAAY,GAAG,IAAI,GAAG,EAAqD,CAAC;IAC5E,kBAAkB,CAAS;IAC3B,YAAY,CAA4C;IACjE,YAAY,GAA0C,IAAI,CAAC;IAC3D,eAAe,GAAyB,IAAI,CAAC;IAC7C,aAAa,GAAG,KAAK,CAAC;IAE9B,YAAY,SAAsC,EAAE;QAClD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,KAAK,EAAE,kBAAkB,IAAI,yBAAyB,CAAC;QACxF,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,EAAE,iBAAiB,IAAI,wBAAwB,CAAC;QACrF,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAC9B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACrF,UAAU,CAAC,uCAAuC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,OAAsB;QACtD,0EAA0E;QAC1E,0DAA0D;QAC1D,8EAA8E;QAC9E,iFAAiF;QACjF,+EAA+E;QAC/E,kFAAkF;QAClF,+EAA+E;QAC/E,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,iCAAiC,CAAC,CAAC;QACvF,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAErC,iFAAiF;QACjF,iFAAiF;QACjF,kFAAkF;QAClF,kFAAkF;QAClF,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,CAAC;QAChB,CAAC;QAED,wBAAwB;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,UAAU,CAAC,0CAA0C,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,mEAAmE;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,GAAG,MAAM,OAAO,CAAC;YACtB,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,UAAU,CAAC,2DAA2D,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpG,OAAO,KAAK,CAAC;QACf,CAAC;QAED,+CAA+C;QAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAClD,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;QAED,6CAA6C;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,WAAW,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACnC,UAAU,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;YACtD,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,UAAkB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACjD,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC9B,UAAU,CAAC,iCAAiC,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAkB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,UAAkB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,sBAAsB;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,UAAkB,EAAE,OAAsB;QAC3D,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC;QAEtD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,IAAI,EAAE;YACjC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC3B,CAAC;YAED,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;gBAChF,IAAI,CAAC;oBACH,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC1B,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;gBACrC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,UAAU,CAAC,4BAA4B,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1B,UAAU,CAAC,gCAAgC,CAAC,CAAC;QAC/C,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc,CAAC,UAAkB,EAAE,OAAsB;QACrE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAExD,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC1B,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,OAAsB;QAChE,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAExD,uEAAuE;QACvE,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEpC,wEAAwE;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,UAAU,CAAC,iCAAiC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE/D,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC;YACpC,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC5C,6EAA6E;QAC7E,+EAA+E;QAC/E,gFAAgF;QAChF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE9E,OAAO;YACL,UAAU;YACV,KAAK;YACL,WAAW;YACX,WAAW;YACX,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,KAAK;SACN,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO;QACnB,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC/E,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,UAAU,CAAC,gCAAgC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;QAED,wFAAwF;QACxF,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa,CAAC,GAAW;QACrC,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACnD,iDAAiD;YACjD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YAED,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;YAChD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,UAAU,CAAC,CAAC;gBACtD,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC7D,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACrC,UAAU,CAAC,+CAA+C,EAAE,UAAU,CAAC,CAAC;YAC1E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,UAAU,CAAC,6CAA6C,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,UAAU,CAAC,wCAAwC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,QAAQ;QACpB,IAAI,MAAM,GAA8C,IAAI,CAAC;QAE7D,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,8CAA8C;YAC9C,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;oBACpD,MAAM,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjC,UAAU,CAAC,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,0DAA0D,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,OAAsB;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,oEAAoE;QACpE,+CAA+C;QAC/C,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC;YAAE,OAAO;QAE/B,gFAAgF;QAChF,sEAAsE;QACtE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEjE,MAAM,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC1B,UAAU,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;gBAE3C,wCAAwC;gBACxC,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACrD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,UAAU,CAAC,4BAA4B,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,YAAY,CAAC;QACrB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"store-manager.js","sourceRoot":"","sources":["../../../src/service/store-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EACL,gBAAgB,GAEjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAyEjD;;;GAGG;AACH,SAAS,qBAAqB,CAAC,KAAa;IAC1C,uEAAuE;IACvE,OAAO,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;GAKG;AACH,SAAS,yBAAyB,CAAC,UAAkB,EAAE,QAAuB;IAC5E,OAAO,qBAAqB,CAAC,UAAU,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,UAAkB,EAAE,QAAuB;IAC3E,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,6CAA6C;IAC7C,OAAO,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,cAAc,GAAuB;IACzC,OAAO,EAAE,QAAQ;IACjB,aAAa,EAAE,GAAG;IAClB,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;IAC1C,iBAAiB,EAAE,EAAE,GAAG,IAAI,EAAE,aAAa;CAC5C,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,YAAY;IACN,MAAM,CAAqB;IAC3B,kBAAkB,CAAyD;IAC3E,iBAAiB,CAA0D;IAC3E,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IACvC,YAAY,GAAG,IAAI,GAAG,EAA+B,CAAC;IACvE,kGAAkG;IACjF,aAAa,GAAG,IAAI,GAAG,EAAyB,CAAC;IACjD,cAAc,CAAwC;IACvE,8FAA8F;IAC7E,YAAY,GAAG,IAAI,GAAG,EAAqD,CAAC;IAC5E,kBAAkB,CAAS;IAC3B,YAAY,CAA4C;IACjE,YAAY,GAA0C,IAAI,CAAC;IAC3D,eAAe,GAAyB,IAAI,CAAC;IAC7C,aAAa,GAAG,KAAK,CAAC;IAE9B,YAAY,SAAsC,EAAE;QAClD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,KAAK,EAAE,kBAAkB,IAAI,yBAAyB,CAAC;QACxF,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,EAAE,iBAAiB,IAAI,wBAAwB,CAAC;QACrF,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO;QAC9B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACrF,UAAU,CAAC,uCAAuC,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3E,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CAAC,UAAkB,EAAE,OAAsB;QACtD,0EAA0E;QAC1E,0DAA0D;QAC1D,8EAA8E;QAC9E,iFAAiF;QACjF,+EAA+E;QAC/E,kFAAkF;QAClF,+EAA+E;QAC/E,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,iCAAiC,CAAC,CAAC;QACvF,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAErC,iFAAiF;QACjF,iFAAiF;QACjF,kFAAkF;QAClF,kFAAkF;QAClF,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACnD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,OAAO,CAAC;QAChB,CAAC;QAED,wBAAwB;QACxB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,UAAU,CAAC,0CAA0C,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,mEAAmE;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,GAAG,MAAM,OAAO,CAAC;YACtB,KAAK,CAAC,QAAQ,EAAE,CAAC;YACjB,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC9B,UAAU,CAAC,2DAA2D,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpG,OAAO,KAAK,CAAC;QACf,CAAC;QAED,+CAA+C;QAC/C,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAClD,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxB,CAAC;QAED,6CAA6C;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC;YACH,KAAK,GAAG,MAAM,WAAW,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YACnC,UAAU,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;YACtD,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,UAAkB;QACxB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,UAAkB;QAC3B,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,MAAM,CAAC,UAAkB,EAAE,KAAc;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QACjD,IAAI,KAAK;YAAE,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzC,UAAU,CAAC,iCAAiC,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAkB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,UAAkB;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,eAAe;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,aAAa,CAAC,UAAkB;QAC9B,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC;QAEzC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAC;QAE7B,KAAK,CAAC,QAAQ,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,IAAI,sBAAsB;QACxB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CAAC,UAAkB,EAAE,OAAsB;QAC3D,OAAO,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC,eAAe,CAAC;QAEtD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,CAAC,KAAK,IAAI,EAAE;YACjC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBACtB,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACjC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;YAC3B,CAAC;YAED,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;gBAChF,IAAI,CAAC;oBACH,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC1B,UAAU,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;gBACrC,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,UAAU,CAAC,4BAA4B,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1B,UAAU,CAAC,gCAAgC,CAAC,CAAC;QAC/C,CAAC,CAAC,EAAE,CAAC;QAEL,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,cAAc,CAAC,UAAkB,EAAE,OAAsB;QACrE,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAExD,IAAI,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC1B,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,OAAsB;QAChE,uBAAuB;QACvB,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAExD,uEAAuE;QACvE,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAEpC,wEAAwE;QACxE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7C,UAAU,CAAC,iCAAiC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QAE/D,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC;YACpC,IAAI,EAAE,QAAQ;YACd,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,iBAAiB,EAAE,CAAC;QAC5C,6EAA6E;QAC7E,+EAA+E;QAC/E,gFAAgF;QAChF,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE9E,OAAO;YACL,UAAU;YACV,KAAK;YACL,WAAW;YACX,WAAW;YACX,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE;YACtB,KAAK;SACN,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,OAAO;QACnB,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,IAAI,GAAG,GAAG,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;gBAC/E,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAC5B,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,UAAU,CAAC,gCAAgC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC;QAED,wFAAwF;QACxF,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,aAAa,CAAC,GAAW;QACrC,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACnD,iDAAiD;YACjD,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACrC,SAAS;YACX,CAAC;YAED,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBACnD,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;YACjC,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;YAChD,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,UAAU,CAAC,CAAC;gBACtD,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC7D,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACrC,UAAU,CAAC,+CAA+C,EAAE,UAAU,CAAC,CAAC;YAC1E,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,UAAU,CAAC,6CAA6C,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAC7E,CAAC;QACH,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,UAAU,CAAC,wCAAwC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,QAAQ;QACpB,IAAI,MAAM,GAA8C,IAAI,CAAC;QAE7D,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACtC,8CAA8C;YAC9C,IAAI,KAAK,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;oBACpD,MAAM,GAAG,EAAE,EAAE,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,CAAC;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACjC,UAAU,CAAC,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,0DAA0D,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,OAAsB;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,oEAAoE;QACpE,+CAA+C;QAC/C,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC;YAAE,OAAO;QAE/B,gFAAgF;QAChF,sEAAsE;QACtE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEjE,MAAM,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC1B,UAAU,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;gBAE3C,wCAAwC;gBACxC,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACrD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAC3E,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,UAAU,CAAC,4BAA4B,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACjD,IAAI,CAAC;YACH,MAAM,YAAY,CAAC;QACrB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quereus/sync-coordinator",
3
- "version": "4.3.2",
3
+ "version": "4.4.1",
4
4
  "type": "module",
5
5
  "description": "Standalone coordinator backend for Quereus Sync - production-ready sync server",
6
6
  "keywords": [
@@ -47,17 +47,17 @@
47
47
  "@aws-sdk/client-s3": "3.1069.0",
48
48
  "@fastify/cors": "^11.2.0",
49
49
  "@fastify/websocket": "^11.2.0",
50
- "@quereus/isolation": "^4.3.2",
51
- "@quereus/plugin-leveldb": "^4.3.2",
52
- "@quereus/quereus": "^4.3.2",
53
- "@quereus/store": "^4.3.2",
54
- "@quereus/sync": "^4.3.2",
50
+ "@quereus/isolation": "^4.4.1",
51
+ "@quereus/plugin-leveldb": "^4.4.1",
52
+ "@quereus/quereus": "^4.4.1",
53
+ "@quereus/store": "^4.4.1",
54
+ "@quereus/sync": "^4.4.1",
55
55
  "commander": "^15.0.0",
56
56
  "debug": "^4.4.3",
57
57
  "fastify": "^5.8.5"
58
58
  },
59
59
  "devDependencies": {
60
- "@quereus/sync-client": "^4.3.2",
60
+ "@quereus/sync-client": "^4.4.1",
61
61
  "@types/debug": "^4.1.13",
62
62
  "@types/mocha": "^10.0.10",
63
63
  "@types/node": "^25.9.3",