@gonvex/client 0.5.2-staging.26 → 0.5.2-staging.27
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/index.js.map +1 -1
- package/dist/indexeddb-replica.d.ts +3 -3
- package/dist/indexeddb-replica.js +20 -9
- package/dist/indexeddb-replica.js.map +1 -1
- package/dist/local-replica.d.ts +12 -2
- package/dist/local-replica.js +20 -5
- package/dist/local-replica.js.map +1 -1
- package/package.json +4 -4
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ReadCoverage } from './indexeddb-read-view.js';
|
|
2
2
|
import type { ReducerReadView } from '@gonvex/local-runtime/portable';
|
|
3
|
-
import type { LocalReplicaStorage, ReplicaScope, ReplicaSnapshot, ReplicaTransaction, ReplicaWindow, ReplicaRow, ReplicaStorageChanges } from "./local-replica.js";
|
|
3
|
+
import type { LocalReplicaStorage, ReplicaScope, ReplicaSnapshot, ReplicaTransaction, ReplicaWindow, ReplicaRow, ReplicaStorageChanges, ReplicaMetadataCommit } from "./local-replica.js";
|
|
4
4
|
/** Atomic normalized web persistence for the Gonvex Local Replica. */
|
|
5
5
|
export declare class IndexedDBLocalReplicaStorage implements LocalReplicaStorage {
|
|
6
6
|
private readonly database;
|
|
@@ -46,12 +46,12 @@ export declare class IndexedDBLocalReplicaStorage implements LocalReplicaStorage
|
|
|
46
46
|
rows: ReplicaRow[];
|
|
47
47
|
} | undefined>;
|
|
48
48
|
applyTransaction(transaction: ReplicaTransaction, _snapshot: ReplicaSnapshot, scope?: ReplicaScope): Promise<void>;
|
|
49
|
-
advanceWatermark(windows: readonly ReplicaWindow[], cursor: ReplicaSnapshot["cursor"], scope?: ReplicaScope): Promise<void>;
|
|
49
|
+
advanceWatermark(windows: readonly ReplicaWindow[], cursor: ReplicaSnapshot["cursor"], scope?: ReplicaScope): Promise<void | ReplicaMetadataCommit>;
|
|
50
50
|
replaceWindow(window: ReplicaWindow, snapshot: ReplicaSnapshot, scope?: ReplicaScope, projection?: readonly ReplicaRow[]): Promise<void>;
|
|
51
51
|
applyWindowDelta(window: ReplicaWindow, delta: {
|
|
52
52
|
upserts: ReplicaRow[];
|
|
53
53
|
deleted: string[];
|
|
54
|
-
}, snapshot: ReplicaSnapshot, scope?: ReplicaScope): Promise<void>;
|
|
54
|
+
}, snapshot: ReplicaSnapshot, scope?: ReplicaScope): Promise<void | ReplicaMetadataCommit>;
|
|
55
55
|
removeWindow(signature: string, snapshot: ReplicaSnapshot, scope?: ReplicaScope): Promise<void>;
|
|
56
56
|
replaceSnapshot(snapshot: ReplicaSnapshot, scope?: ReplicaScope): Promise<void>;
|
|
57
57
|
clear(scope?: ReplicaScope): Promise<void>;
|
|
@@ -160,6 +160,7 @@ export class IndexedDBLocalReplicaStorage {
|
|
|
160
160
|
// flush still belongs to the caller's original atomic transaction.
|
|
161
161
|
let batch = [];
|
|
162
162
|
let bytes = 0;
|
|
163
|
+
let accepted = true;
|
|
163
164
|
const flush = async () => {
|
|
164
165
|
if (!batch.length)
|
|
165
166
|
return;
|
|
@@ -167,8 +168,10 @@ export class IndexedDBLocalReplicaStorage {
|
|
|
167
168
|
await this.database.windows.bulkPut(batch.flatMap(({ window, value }, index) => {
|
|
168
169
|
const record = prior[index];
|
|
169
170
|
const before = record && !record.deleted ? JSON.parse(record.value) : undefined;
|
|
170
|
-
if (before?.cursor && (!window.cursor || (before.cursor.epoch === window.cursor.epoch && before.cursor.revision > window.cursor.revision)))
|
|
171
|
+
if (before?.cursor && (!window.cursor || (before.cursor.epoch === window.cursor.epoch && before.cursor.revision > window.cursor.revision))) {
|
|
172
|
+
accepted = false;
|
|
171
173
|
return [{ ...record, sequence }];
|
|
174
|
+
}
|
|
172
175
|
// Serialization already isolates persisted values. Copying ordered IDs
|
|
173
176
|
// and large integrity maps before stringifying doubled temporary memory
|
|
174
177
|
// for every cursor-only checkpoint.
|
|
@@ -186,6 +189,7 @@ export class IndexedDBLocalReplicaStorage {
|
|
|
186
189
|
bytes += size;
|
|
187
190
|
}
|
|
188
191
|
await flush();
|
|
192
|
+
return accepted;
|
|
189
193
|
}
|
|
190
194
|
async saveCursor(scope, cursor) {
|
|
191
195
|
if (!cursor)
|
|
@@ -201,14 +205,14 @@ export class IndexedDBLocalReplicaStorage {
|
|
|
201
205
|
}
|
|
202
206
|
async acceptEpoch(scope, cursor, sequence) {
|
|
203
207
|
if (!cursor)
|
|
204
|
-
return;
|
|
208
|
+
return false;
|
|
205
209
|
const prior = await this.database.meta.get([scope, 'epoch']);
|
|
206
210
|
const legacyCursor = prior ? undefined : await this.database.meta.get([scope, 'cursor']);
|
|
207
211
|
const state = prior ? JSON.parse(prior.value) : legacyCursor ? { current: JSON.parse(legacyCursor.value).epoch, retired: [] } : undefined;
|
|
208
212
|
if (state?.current === cursor.epoch) {
|
|
209
213
|
if (!prior)
|
|
210
214
|
await this.database.meta.put({ scope, key: 'epoch', value: JSON.stringify(state) });
|
|
211
|
-
return;
|
|
215
|
+
return false;
|
|
212
216
|
}
|
|
213
217
|
if (state?.retired.includes(cursor.epoch))
|
|
214
218
|
throw new Error('This tab has an obsolete replica epoch. Reconnect before continuing.');
|
|
@@ -218,6 +222,7 @@ export class IndexedDBLocalReplicaStorage {
|
|
|
218
222
|
await this.database.meta.put({ scope, key: 'resetSequence', value: String(sequence) });
|
|
219
223
|
}
|
|
220
224
|
await this.database.meta.put({ scope, key: 'epoch', value: JSON.stringify({ current: cursor.epoch, retired: state ? [...state.retired, state.current] : [] }) });
|
|
225
|
+
return Boolean(state);
|
|
221
226
|
}
|
|
222
227
|
async pruneRows(scope, window, ids, cursor, sequence) {
|
|
223
228
|
if (!ids.length)
|
|
@@ -475,13 +480,15 @@ export class IndexedDBLocalReplicaStorage {
|
|
|
475
480
|
// A watermark contains no entity changes. Keep this transaction limited to
|
|
476
481
|
// window metadata and the shared cursor so large normalized replicas are
|
|
477
482
|
// never rewritten once per retained collection.
|
|
478
|
-
await this.database.transaction("rw", this.database.windows, this.database.meta, async () => {
|
|
483
|
+
const receipt = await this.database.transaction("rw", this.database.windows, this.database.meta, async () => {
|
|
479
484
|
const sequence = await this.nextSequence(normalizedScope);
|
|
480
|
-
|
|
481
|
-
await this.writeWindows(normalizedScope, windows, sequence);
|
|
485
|
+
const accepted = await this.writeWindows(normalizedScope, windows, sequence);
|
|
482
486
|
await this.saveCursor(normalizedScope, cursor);
|
|
487
|
+
if (accepted && windows.length)
|
|
488
|
+
return { scope: normalizedScope, previousSequence: sequence - 1, sequence };
|
|
483
489
|
});
|
|
484
490
|
this.channel?.postMessage({ scope: normalizedScope });
|
|
491
|
+
return receipt;
|
|
485
492
|
}
|
|
486
493
|
async replaceWindow(window, snapshot, scope = defaultReplicaScope, projection) {
|
|
487
494
|
await this.initialize();
|
|
@@ -510,16 +517,20 @@ export class IndexedDBLocalReplicaStorage {
|
|
|
510
517
|
async applyWindowDelta(window, delta, snapshot, scope = defaultReplicaScope) {
|
|
511
518
|
await this.initialize();
|
|
512
519
|
const normalizedScope = normalizeScope(scope);
|
|
513
|
-
await this.database.transaction("rw", this.database.entities, this.database.windows, this.database.meta, async () => {
|
|
520
|
+
const receipt = await this.database.transaction("rw", this.database.entities, this.database.windows, this.database.meta, async () => {
|
|
514
521
|
const sequence = await this.nextSequence(normalizedScope);
|
|
515
|
-
await this.acceptEpoch(normalizedScope, window.cursor ?? snapshot.cursor, sequence);
|
|
522
|
+
const reset = await this.acceptEpoch(normalizedScope, window.cursor ?? snapshot.cursor, sequence);
|
|
516
523
|
const rows = delta.deleted.length ? snapshot.entities[window.entity] ?? {} : {};
|
|
517
524
|
await this.pruneRows(normalizedScope, window, delta.deleted.filter(id => rows[id] === undefined), window.cursor ?? snapshot.cursor, sequence);
|
|
518
525
|
await this.writeRows(normalizedScope, window.entity, window.key, delta.upserts, window.cursor ?? snapshot.cursor, sequence);
|
|
519
|
-
await this.writeWindows(normalizedScope, [window], sequence);
|
|
526
|
+
const accepted = await this.writeWindows(normalizedScope, [window], sequence);
|
|
520
527
|
await this.saveCursor(normalizedScope, snapshot.cursor);
|
|
528
|
+
if (accepted && !reset && delta.upserts.length === 0 && delta.deleted.length === 0) {
|
|
529
|
+
return { scope: normalizedScope, previousSequence: sequence - 1, sequence };
|
|
530
|
+
}
|
|
521
531
|
});
|
|
522
532
|
this.channel?.postMessage({ scope: normalizedScope });
|
|
533
|
+
return receipt;
|
|
523
534
|
}
|
|
524
535
|
async removeWindow(signature, snapshot, scope = defaultReplicaScope) {
|
|
525
536
|
await this.initialize();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexeddb-replica.js","sourceRoot":"","sources":["../src/indexeddb-replica.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"indexeddb-replica.js","sourceRoot":"","sources":["../src/indexeddb-replica.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAA+B,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAwC,MAAM,0BAA0B,CAAC;AAEjH,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAuBvD,MAAM,mBAAmB,GAAiB,SAAS,CAAC;AACpD,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAC/B,+EAA+E;AAC/E,6EAA6E;AAC7E,4EAA4E;AAC5E,MAAM,cAAc,GAAG,EAAE,CAAC;AAC1B,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC;AACnC,MAAM,aAAa,GAAG,IAAI,WAAW,EAAE,CAAC;AAExC,6EAA6E;AAC7E,8EAA8E;AAC9E,2EAA2E;AAC3E,KAAK,UAAU,YAAY,CAAS,UAA8B,EAAE,KAA0B;IAC5F,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IAC3D,KAAK,MAAM,MAAM,IAAI,IAAI;QAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG;QAAE,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5E,CAAC;AAED,sEAAsE;AACtE,MAAM,OAAO,4BAA4B;IACtB,QAAQ,CAAkB;IACnC,WAAW,CAAiB;IACnB,OAAO,CAAmB;IAC1B,KAAK,GAAC,IAAI,GAAG,EAAwB,CAAC;IAEvD,YAAY,IAAI,GAAG,sBAAsB;QACvC,IAAI,CAAC,QAAQ,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAoB,CAAC;QAC1E,4EAA4E;QAC5E,4EAA4E;QAC5E,6EAA6E;QAC7E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,OAAO,GAAG,OAAO,gBAAgB,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,gBAAgB,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACnH,IAAG,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,SAAS,GAAC,KAAK,CAAA,EAAE,GAAC,IAAG,OAAO,KAAK,CAAC,IAAI,EAAE,KAAK,KAAG,QAAQ;gBAAC,KAAI,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK;oBAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA,CAAC,CAAC;QACrJ,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YACrF,MAAM,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,MAA+C,EAAE,EAAE;gBAC7G,MAAM,CAAC,KAAK,GAAG,mBAAmB,CAAC;gBACnC,OAAO,MAAM,CAAC,GAAG,CAAC;YACpB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9B,QAAQ,EAAE,0CAA0C;YACpD,OAAO,EAAE,0BAA0B;YACnC,IAAI,EAAE,oBAAoB;YAC1B,sEAAsE;YACtE,mEAAmE;YACnE,SAAS,EAAE,QAAQ;SACpB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YAC/B,MAAM,SAAS,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,EAA4B,CAAC;YAC3F,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACvC,KAAK,MAAM,MAAM,IAAI,SAAS,EAAE,CAAC;gBAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,mBAAmB,CAAC;gBAClD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACjC,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;oBACrE,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/C,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC;gBACD,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,CAAC;oBAC7E,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzE,CAAC;gBACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;oBACpB,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;YACD,iEAAiE;YACjE,sEAAsE;YACtE,oEAAoE;YACpE,+CAA+C;YAC/C,MAAM,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9B,QAAQ,EAAE,uDAAuD;SAClE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAC,WAAW,EAAC,EAAE;YAC7B,MAAM,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC,MAAoB,EAAE,EAAE;gBACjF,MAAM,CAAC,UAAU,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;YAChH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC;YACjD,QAAQ,EAAC,yEAAyE;YAClF,OAAO,EAAC,4CAA4C;SACrD,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,QAA6B,IAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA,OAAM,GAAE,EAAE,GAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAC,CAAC,CAAA,CAAC;IAEzG,KAAK,CAAC,YAAY,CAAC,KAAY;QACrC,MAAM,KAAK,GAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAC,UAAU,CAAC,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAC,MAAM,CAAC,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,GAAC,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,KAAK,EAAC,GAAG,EAAC,UAAU,EAAC,KAAK,EAAC,MAAM,CAAC,QAAQ,CAAC,EAAC,CAAC,CAAC;QAC5E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,eAAe,CAAC,KAAY,EAAC,MAAa,EAAC,EAAS,EAAC,GAAmB,EAAC,MAA8B,EAAC,QAAe,EAAC,QAA+B;QAC7J,MAAM,QAAQ,GAAC,MAAM,IAAI,EAAC,KAAK,EAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE,EAAC,QAAQ,EAAC,CAAC,EAAC,CAAC;QAC7E,MAAM,MAAM,GAAC,QAAQ,CAAC,CAAC,CAAC,EAAC,GAAG,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAC,SAAS,EAAC,QAAQ,CAAC,SAAS,IAAI,EAAC,KAAK,EAAC,QAAQ,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE,EAAC,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAChK,MAAM,MAAM,GAAC,kBAAkB,CAAC,MAAM,EAAC,GAAG,EAAC,QAAQ,CAAC,CAAC;QACrD,wEAAwE;QACxE,yEAAyE;QACzE,oEAAoE;QACpE,IAAI,QAAQ,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,QAAQ,CAAC;QACnD,IAAI,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,GAAG,KAAK,MAAM,CAAC,GAAG;YAAE,OAAO,EAAC,GAAG,QAAQ,EAAE,SAAS,EAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAC,CAAC;QAChH,MAAM,MAAM,GAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,KAAK,EAAC,MAAM,EAAC,EAAE,EAAC,KAAK,EAAC,MAAM,EAAC,UAAU,EAAC,EAAE,EAAC,OAAO,EAAC,IAAI,EAAC,CAAC;QAC/H,OAAO,EAAC,GAAG,MAAM,EAAC,SAAS,EAAC,MAAM,CAAC,SAAS,EAAC,QAAQ,EAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAY,EAAC,MAAa,EAAC,EAAS,EAAC,GAAmB,EAAC,MAA8B,EAAC,QAAe;QAC/H,MAAM,QAAQ,GAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE,CAAC,CAAC,CAAC;QACnE,MAAM,MAAM,GAAC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE,EAAC,GAAG,EAAC,MAAM,EAAC,QAAQ,EAAC,QAAQ,CAAC,CAAC;QAChF,IAAI,MAAM,KAAK,QAAQ;YAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClE,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,OAAgC;QACzD,2EAA2E;QAC3E,2EAA2E;QAC3E,wEAAwE;QACxE,mEAAmE;QACnE,IAAI,KAAK,GAAmB,EAAE,CAAC;QAC/B,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,wEAAwE;YACxE,wEAAwE;YACxE,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;YACxD,IAAI,KAAK,CAAC,MAAM,IAAI,MAAM,GAAG,UAAU,GAAG,gBAAgB,EAAE,CAAC;gBAC3D,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC5C,KAAK,GAAG,EAAE,CAAC;gBAAC,MAAM,GAAG,CAAC,CAAC;YACzB,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAAC,MAAM,IAAI,UAAU,CAAC;QAC3C,CAAC;QACD,IAAI,KAAK,CAAC,MAAM;YAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,KAAY,EAAC,MAAa,EAAC,GAAU,EAAC,IAA0B,EAAC,MAA8B,EAAC,QAAe;QACrI,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA,EAAE,CAAA,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,CAAC,CAAC,EAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;IAClG,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,KAAY,EAAC,MAAa,EAAC,IAA8C,EAAC,MAA8B,EAAC,QAAe;QACpJ,2EAA2E;QAC3E,KAAI,IAAI,MAAM,GAAC,CAAC,EAAC,MAAM,GAAC,IAAI,CAAC,MAAM,EAAC,MAAM,IAAE,cAAc,EAAE,CAAC;YAC3D,MAAM,KAAK,GAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAC,MAAM,GAAC,cAAc,CAAC,CAAC;YACrD,MAAM,KAAK,GAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,EAAE,CAAA,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE,CAAC,CAA6B,CAAC,CAAC;YACnH,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAC,GAAG,CAAC,EAAC,KAAK,EAAC,EAAE,CAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE,EAAC,GAAG,EAAC,MAAM,EAAC,QAAQ,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAC,KAAK,EAAC,EAAE,CAAA,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACpK,IAAI,OAAO,CAAC,MAAM;gBAAE,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,KAAY,EAAC,OAAgC,EAAC,QAAe;QACtF,0EAA0E;QAC1E,2EAA2E;QAC3E,mEAAmE;QACnE,IAAI,KAAK,GAAoD,EAAE,CAAC;QAChE,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,QAAQ,GAAG,IAAI,CAAC;QACpB,MAAM,KAAK,GAAG,KAAK,IAAI,EAAE;YACvB,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,OAAO;YAC1B,MAAM,KAAK,GAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAC,MAAM,EAAC,EAAC,EAAE,CAAA,CAAC,KAAK,EAAC,MAAM,CAAC,SAAS,CAAC,CAAsB,CAAC,CAAC;YACtH,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAC,MAAM,EAAC,KAAK,EAAC,EAAC,KAAK,EAAC,EAAE;gBACxE,MAAM,MAAM,GAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM,MAAM,GAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/F,IAAG,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,KAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;oBACtI,QAAQ,GAAG,KAAK,CAAC;oBACjB,OAAO,CAAC,EAAC,GAAG,MAAO,EAAC,QAAQ,EAAC,CAAC,CAAC;gBACjC,CAAC;gBACD,uEAAuE;gBACvE,wEAAwE;gBACxE,oCAAoC;gBACpC,OAAO,CAAC,EAAC,KAAK,EAAC,QAAQ,EAAC,SAAS,EAAC,MAAM,CAAC,SAAS,EAAC,KAAK,EAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC,CAAC;YACJ,KAAK,GAAG,EAAE,CAAC;YAAC,KAAK,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC,CAAC;YAClG,MAAM,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC;YACpD,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,eAAe,IAAI,KAAK,GAAG,IAAI,GAAG,gBAAgB,CAAC;gBAAE,MAAM,KAAK,EAAE,CAAC;YACxG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAAC,KAAK,IAAI,IAAI,CAAC;QAC/C,CAAC;QACD,MAAM,KAAK,EAAE,CAAC;QACd,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,UAAU,CAAC,KAAY,EAAC,MAA8B;QAClE,IAAG,CAAC,MAAM;YAAC,OAAO;QAClB,MAAM,KAAK,GAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,IAAG,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,KAAG,MAAM,CAAC,KAAK;YAAC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QACnJ,MAAM,KAAK,GAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAC,QAAQ,CAAC,CAAC,CAAC;QAC3D,MAAM,MAAM,GAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,IAAG,MAAM,EAAE,KAAK,KAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,GAAC,MAAM,CAAC,QAAQ;YAAC,OAAO;QAC1E,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,KAAK,EAAC,GAAG,EAAC,QAAQ,EAAC,KAAK,EAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC;IAClF,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAY,EAAC,MAA8B,EAAC,QAAe;QACnF,IAAG,CAAC,MAAM;YAAC,OAAO,KAAK,CAAC;QACxB,MAAM,KAAK,GAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAC,QAAQ,CAAC,CAAC,CAAC;QACtF,MAAM,KAAK,GAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAsC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAmB,CAAC,KAAK,EAAC,OAAO,EAAC,EAAE,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3L,IAAG,KAAK,EAAE,OAAO,KAAG,MAAM,CAAC,KAAK,EAAE,CAAC;YACjC,IAAG,CAAC,KAAK;gBAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,KAAK,EAAC,GAAG,EAAC,OAAO,EAAC,KAAK,EAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC;YACxF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAG,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;YAAC,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;QACjI,IAAG,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YACnE,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAClE,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,KAAK,EAAC,GAAG,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,CAAC,QAAQ,CAAC,EAAC,CAAC,CAAC;QACnF,CAAC;QACD,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,KAAK,EAAC,GAAG,EAAC,OAAO,EAAC,KAAK,EAAC,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAC,MAAM,CAAC,KAAK,EAAC,OAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,EAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC;QACrJ,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,KAAY,EAAC,MAAoB,EAAC,GAAqB,EAAC,MAA8B,EAAC,QAAe;QAC5H,IAAG,CAAC,GAAG,CAAC,MAAM;YAAC,OAAO;QACtB,MAAM,QAAQ,GAAC,IAAI,GAAG,EAAU,CAAC;QACjC,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC,MAAM,CAAA,EAAE;YAC5E,IAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,KAAG,MAAM,CAAC,SAAS;gBAAC,OAAO;YAChE,MAAM,KAAK,GAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAkB,CAAC;YACtD,IAAG,KAAK,CAAC,MAAM,KAAG,MAAM,CAAC,MAAM;gBAAC,KAAI,MAAM,EAAE,IAAI,KAAK,CAAC,GAAG;oBAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QACH,KAAI,MAAM,EAAE,IAAI,GAAG;YAAC,IAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAC,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAC,MAAM,CAAC,MAAM,EAAC,EAAE,EAAC,IAAI,EAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;IAC/G,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAY,EAAC,aAAoB,EAAC,QAAmI;QACrL,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAC,KAAK,IAAE,EAAE;YAC5G,MAAM,QAAQ,GAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;YACtF,MAAM,KAAK,GAAC,aAAa,GAAG,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAC,eAAe,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;YACxG,MAAM,OAAO,GAAuB,EAAC,QAAQ,EAAC,KAAK,EAAC,QAAQ,EAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,CAAC;YAC5E,IAAG,QAAQ,KAAG,aAAa;gBAAC,OAAO,OAAO,CAAC;YAC3C,MAAM,MAAM,GAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAC,GAAG,CAAC,EAAC,EAAE,CAAA,CAAC,KAAK,EAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACpH,IAAI,aAAa,GAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YACnF,IAAI,cAAc,GAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YACtF,MAAM,OAAO,GAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAC,aAAa,CAAC,EAAC,CAAC,KAAK,EAAC,QAAQ,CAAC,EAAC,KAAK,EAAC,IAAI,CAAC,CAAC;YACtL,MAAM,YAAY,CAAC,OAAO,EAAC,MAAM,CAAA,EAAE;gBACjC,MAAM,MAAM,GAAoB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACjF,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,GAAC,MAAM,CAAC;gBACzC,IAAG,MAAM,IAAI,MAAM,IAAI,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAC,CAAC;oBACnE,IAAI,GAAG,GAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAAA,IAAG,CAAC,GAAG,EAAC,CAAC;wBAAA,GAAG,GAAC,IAAI,GAAG,EAAE,CAAC;wBAAA,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAC,GAAG,CAAC,CAAC;oBAAA,CAAC;oBACxF,KAAI,MAAM,EAAE,IAAI,MAAM,CAAC,GAAG;wBAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,GAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAC,aAAa,CAAC,EAAC,CAAC,KAAK,EAAC,QAAQ,CAAC,EAAC,KAAK,EAAC,IAAI,CAAC,CAAC;YACrL,MAAM,YAAY,CAAC,IAAI,EAAC,MAAM,CAAA,EAAE;gBAC9B,IAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAC,CAAC;oBACvD,MAAM,IAAI,GAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAC,CAAC,GAAC,GAAG,CAAC;oBACrC,IAAG,MAAM,CAAC,OAAO,IAAI,aAAa,IAAE,CAAC,IAAI,cAAc,GAAC,IAAI;wBAAC,OAAO;oBACpE,aAAa,EAAE,CAAC;oBAAA,cAAc,IAAE,IAAI,CAAC;gBACvC,CAAC;gBACD,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAG,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrG,CAAC,CAAC,CAAC;YACH,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,UAAU;QAChB,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IACzE,CAAC;IAED,KAAK,CAAC,YAAY,CAAI,KAAa,EAAE,QAAsB,EAAE,GAA0C;QACrG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YACvE,sEAAsE;YACtE,uEAAuE;YACvE,oEAAoE;YACpE,OAAO,GAAG,CAAC,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC;gBACxF,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;aAChD,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAClD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE;YACpD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE;YACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE;SACjD,CAAC,CAAC;QACH,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa;QAC7B,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,OAAqE;QACpG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,OAAO;YAAE,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;;YAChG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAsB,mBAAmB;QAClD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAC,KAAK,IAAE,EAAE;YAC9G,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC/D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE;gBACvE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE;gBACtE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;aACpD,CAAC,CAAC;YACH,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO,SAAS,CAAC;YAC1F,MAAM,QAAQ,GAAgC,EAAE,CAAC;YACjD,KAAK,MAAM,MAAM,IAAI,aAAa;gBAAE,IAAG,CAAC,MAAM,CAAC,OAAO;oBAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAe,CAAC;YAC7I,MAAM,WAAW,GAAmC,EAAE,CAAC;YACvD,KAAK,MAAM,MAAM,IAAI,aAAa;gBAAE,IAAG,CAAC,MAAM,CAAC,OAAO;oBAAE,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAkB,CAAC;YAClI,OAAO;gBACL,eAAe,EAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe,EAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;gBAChG,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBACrD,QAAQ;gBACR,WAAW;aACZ,CAAC;QACF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAY,EAAC,MAAuC;QACvE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAC,KAAK,IAAE,EAAE;YAC5G,MAAM,QAAQ,GAA6B,EAAE,EAAC,WAAW,GAAgC,EAAE,EAAC,OAAO,GAAC,IAAI,GAAG,EAAU,CAAC;YACtH,IAAI,KAAK,GAAC,CAAC,EAAC,KAAK,GAAC,CAAC,EAAC,OAAO,GAAC,KAAK,EAAC,IAAI,GAAC,KAAK,CAAC;YAC7C,sEAAsE;YACtE,wEAAwE;YACxE,IAAI,KAA2C,CAAC;YAChD,OAAO,CAAC,IAAI,EAAE,CAAC;gBACb,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC;qBACjE,OAAO,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;qBACrD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC3E,IAAI,CAAC,IAAI,CAAC,MAAM;oBAAE,MAAM;gBACxB,KAAK,MAAM,MAAM,IAAI,IAAI,EAAE,CAAC;oBAC1B,IAAI,MAAM,CAAC,OAAO;wBAAE,SAAS;oBAC7B,OAAO,GAAG,IAAI,CAAC;oBACf,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,CAAC;oBAC3C,IAAI,KAAK,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,GAAG,IAAI,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;wBAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;wBAAC,IAAI,GAAG,IAAI,CAAC;wBAAC,MAAM;oBAAC,CAAC;oBAClH,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACvE,KAAK,IAAI,IAAI,CAAC;oBAAC,KAAK,EAAE,CAAC;gBACzB,CAAC;gBACD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;gBACpC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,MAAM,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC,MAAM,CAAA,EAAE;gBAC5E,IAAG,MAAM,CAAC,OAAO;oBAAC,OAAO;gBACzB,MAAM,MAAM,GAAe,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAAA,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,GAAC,MAAM,CAAC;gBACzF,IAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAA,EAAE,CAAA,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;YACH,MAAM,MAAM,GAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAC,QAAQ,CAAC,CAAC,CAAC;YAC5D,IAAG,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM;gBAAC,OAAO,SAAS,CAAC;YAC5E,OAAO,EAAC,QAAQ,EAAC,WAAW,EAAC,qBAAqB,EAAC,CAAC,GAAG,OAAO,CAAC,EAAC,MAAM,EAAC,MAAM,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA,CAAC,CAAA,SAAS,EAAC,eAAe,EAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,IAAE,CAAC,CAAC,EAAC,CAAC;QACzM,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAY,EAAC,MAAa,EAAC,GAAqB;QACnE,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAC,KAAK,IAAE,EAAE;YACrE,MAAM,IAAI,GAAmC,EAAE,CAAC;YAChD,KAAI,IAAI,MAAM,GAAC,CAAC,EAAC,MAAM,GAAC,GAAG,CAAC,MAAM,EAAC,MAAM,IAAE,GAAG,EAAC,CAAC;gBAC9C,MAAM,OAAO,GAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAC,MAAM,GAAC,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,CAAA,EAAE,CAAA,CAAC,KAAK,EAAC,MAAM,EAAC,EAAE,CAAC,CAA6B,CAAC,CAAC;gBACxI,KAAI,MAAM,MAAM,IAAI,OAAO;oBAAC,IAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO;wBAAC,IAAI,CAAC,IAAI,CAAC,EAAC,EAAE,EAAC,MAAM,CAAC,EAAE,EAAC,GAAG,EAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC;YAClH,CAAC;YACD,OAAO,IAAI,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,KAAY,EAAC,SAAgB;QAChD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAC,KAAK,IAAE,EAAE;YACzF,MAAM,MAAM,GAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAC,SAAS,CAAC,CAAC,CAAC;YAChE,IAAG,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO;gBAAC,OAAO,SAAS,CAAC;YAC9C,MAAM,MAAM,GAAe,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACpD,OAAO,EAAC,MAAM,EAAC,IAAI,EAAC,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAC,MAAM,CAAC,MAAM,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAA,EAAE,CAAA,KAAK,CAAC,GAAG,CAAC,EAAC,CAAC;QACzG,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,WAA+B,EAAE,SAA0B,EAAE,QAAsB,mBAAmB;QAC3H,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAClH,MAAM,QAAQ,GAAC,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAC,WAAW,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;YACpE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAgF,CAAC;YACxG,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,OAAO,EAAE,CAAC;gBACzC,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvD,IAAI,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,KAAK,EAAE,CAAC;oBAAC,KAAK,GAAG,EAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAC,CAAC;oBAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAAC,CAAC;gBACrG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YACD,MAAM,OAAO,GAAG,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAuB,CAAC;YAC/C,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,MAAM,IAAI,cAAc,EAAE,CAAC;gBACvE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC;gBAC7D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAA+B,CAAC,CAAC;gBACnJ,MAAM,OAAO,GAAmB,EAAE,CAAC;gBACnC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;oBAC7C,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAC7B,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;wBACnC,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ;4BAAE,SAAS;wBAChE,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,QAAS,EAAE,WAAW,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;oBACxK,CAAC;oBACD,IAAI,CAAC,MAAM;wBAAE,SAAS;oBACtB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACrB,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBACnB,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;wBACpC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;4BAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;wBAAC,CAAC;wBAC9D,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACpB,CAAC;gBACH,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM;oBAAE,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC;gBAC7F,MAAM,OAAO,GAAmB,EAAE,CAAC;gBACnC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;oBAC7B,IAAI,MAAM,CAAC,OAAO;wBAAE,SAAS;oBAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAkB,CAAC;oBACzD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACvC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,KAAK,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC;wBAAE,SAAS;oBACzK,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;oBACnD,OAAO,CAAC,IAAI,CAAC,EAAC,GAAG,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC;gBACrE,CAAC;gBACD,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/C,CAAC;YACD,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM;gBAAE,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAC,WAAW,CAAC,WAAW,EAAC,QAAQ,CAAC,CAAC;YAC/G,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAC,KAAK,EAAC,eAAe,EAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,OAAiC,EACjC,MAAiC,EACjC,QAAsB,mBAAmB;QAEzC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9C,2EAA2E;QAC3E,yEAAyE;QACzE,gDAAgD;QAChD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAC1G,MAAM,QAAQ,GAAC,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACxD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAC,OAAO,EAAC,QAAQ,CAAC,CAAC;YAC3E,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,QAAQ,IAAI,OAAO,CAAC,MAAM;gBAAE,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,QAAQ,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC9G,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAC,KAAK,EAAC,eAAe,EAAC,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAqB,EAAE,QAAyB,EAAE,QAAsB,mBAAmB,EAAE,UAAiC;QAChJ,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAClH,MAAM,QAAQ,GAAC,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;YAClF,0EAA0E;YAC1E,yEAAyE;YACzE,0EAA0E;YAC1E,wEAAwE;YACxE,qEAAqE;YACrE,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC1D,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5F,IAAI,cAAc,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAkB,CAAC;gBACnE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACpC,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,EAAC,MAAM,EAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAA,EAAE,CAAA,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,KAAG,SAAS,CAAC,EAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;YAC7J,CAAC;YACD,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,EAAC,MAAM,CAAC,MAAM,EAAC,MAAM,CAAC,GAAG,EAAC,UAAU,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAA,EAAE,CAAA,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;YAC/K,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAC,CAAC,MAAM,CAAC,EAAC,QAAQ,CAAC,CAAC;YAC3D,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAC,KAAK,EAAC,eAAe,EAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAqB,EAAE,KAAmD,EAAE,QAAyB,EAAE,QAAsB,mBAAmB;QACrK,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAClI,MAAM,QAAQ,GAAC,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;YAChG,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChF,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,EAAC,MAAM,EAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAA,EAAE,CAAA,IAAI,CAAC,EAAE,CAAC,KAAG,SAAS,CAAC,EAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;YACtI,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,EAAC,MAAM,CAAC,MAAM,EAAC,MAAM,CAAC,GAAG,EAAC,KAAK,CAAC,OAAO,EAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;YACvH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAC,CAAC,MAAM,CAAC,EAAC,QAAQ,CAAC,CAAC;YAC5E,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACvD,IAAI,QAAQ,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnF,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,QAAQ,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;YAC9E,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAC,KAAK,EAAC,eAAe,EAAC,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,QAAyB,EAAE,QAAsB,mBAAmB;QACxG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAC1F,MAAM,QAAQ,GAAC,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAC,KAAK,EAAC,eAAe,EAAC,SAAS,EAAC,KAAK,EAAC,MAAM,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAC,CAAC;YACtG,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAC,KAAK,EAAC,eAAe,EAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAyB,EAAE,QAAsB,mBAAmB;QACxF,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAClH,MAAM,QAAQ,GAAC,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,WAAW,CAAC,eAAe,EAAC,QAAQ,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;YACjE,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC;YAC7E,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC;YAC5E,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC7D,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,KAAK,EAAC,eAAe,EAAC,GAAG,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,CAAC,QAAQ,CAAC,EAAC,CAAC,CAAC;YACjG,KAAK,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC/D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACrC,mEAAmE;gBACnE,0EAA0E;gBAC1E,2EAA2E;gBAC3E,IAAI,OAAO,CAAC,MAAM;oBAAE,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,EAAC,MAAM,EAAC,OAAO,EAAC,QAAQ,CAAC,MAAM,EAAC,QAAQ,CAAC,CAAC;YAC1G,CAAC;YACD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACpD,IAAI,OAAO,CAAC,MAAM;gBAAE,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAC,OAAO,EAAC,QAAQ,CAAC,CAAC;YAC9E,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAC,KAAK,EAAC,eAAe,EAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAsB,mBAAmB;QACnD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAClH,MAAM,QAAQ,GAAC,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;YACxD,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC;YAC7E,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,MAAM,EAAE,CAAC;YAC5E,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,MAAM,CAAA,EAAE,CAAA,MAAM,CAAC,GAAG,KAAG,UAAU,IAAI,MAAM,CAAC,GAAG,KAAG,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;YACtI,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAC,KAAK,EAAC,eAAe,EAAC,GAAG,EAAC,eAAe,EAAC,KAAK,EAAC,MAAM,CAAC,QAAQ,CAAC,EAAC,CAAC,CAAC;QACnG,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAC,KAAK,EAAC,eAAe,EAAC,CAAC,CAAC;IACrD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACxB,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAa;IACjD,OAAO,IAAI,4BAA4B,CAAC,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,cAAc,CAAC,KAAmB;IACzC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,mBAAmB,CAAC;AACjF,CAAC"}
|
package/dist/local-replica.d.ts
CHANGED
|
@@ -78,6 +78,15 @@ export type ReplicaStorageChanges = {
|
|
|
78
78
|
};
|
|
79
79
|
/** Opaque persistence namespace for one deployment/project/tenant identity. */
|
|
80
80
|
export type ReplicaScope = string;
|
|
81
|
+
/** Returned only after an atomic metadata-only commit accepts the exact supplied
|
|
82
|
+
* windows without changing rows or resetting their epoch. The adjacent sequence
|
|
83
|
+
* pair comes from that transaction; consumers must compare it with their own
|
|
84
|
+
* reconciled sequence before skipping peer catch-up. Older adapters return void. */
|
|
85
|
+
export type ReplicaMetadataCommit = {
|
|
86
|
+
scope: ReplicaScope;
|
|
87
|
+
previousSequence: number;
|
|
88
|
+
sequence: number;
|
|
89
|
+
};
|
|
81
90
|
/**
|
|
82
91
|
* Storage implementations must persist the complete transaction atomically.
|
|
83
92
|
* The SQLite adapter maps this call to BEGIN/apply/cursor/COMMIT; IndexedDB
|
|
@@ -112,14 +121,14 @@ export interface LocalReplicaStorage {
|
|
|
112
121
|
load(scope?: ReplicaScope): Promise<ReplicaSnapshot | undefined>;
|
|
113
122
|
applyTransaction(transaction: ReplicaTransaction, snapshot: ReplicaSnapshot, scope?: ReplicaScope): Promise<void>;
|
|
114
123
|
/** Advance ready Replica Collection cursors without rewriting normalized rows. */
|
|
115
|
-
advanceWatermark?(windows: readonly ReplicaWindow[], cursor: ReplicaCursor | undefined, scope?: ReplicaScope): Promise<void>;
|
|
124
|
+
advanceWatermark?(windows: readonly ReplicaWindow[], cursor: ReplicaCursor | undefined, scope?: ReplicaScope): Promise<void | ReplicaMetadataCommit>;
|
|
116
125
|
/** Persist a normalized Query/Collection materialization atomically. */
|
|
117
126
|
replaceSnapshot?(snapshot: ReplicaSnapshot, scope?: ReplicaScope): Promise<void>;
|
|
118
127
|
replaceWindow?(window: ReplicaWindow, snapshot: ReplicaSnapshot, scope?: ReplicaScope, projection?: readonly ReplicaRow[]): Promise<void>;
|
|
119
128
|
applyWindowDelta?(window: ReplicaWindow, delta: {
|
|
120
129
|
upserts: ReplicaRow[];
|
|
121
130
|
deleted: string[];
|
|
122
|
-
}, snapshot: ReplicaSnapshot, scope?: ReplicaScope): Promise<void>;
|
|
131
|
+
}, snapshot: ReplicaSnapshot, scope?: ReplicaScope): Promise<void | ReplicaMetadataCommit>;
|
|
123
132
|
removeWindow?(signature: string, snapshot: ReplicaSnapshot, scope?: ReplicaScope): Promise<void>;
|
|
124
133
|
clear?(scope?: ReplicaScope): Promise<void>;
|
|
125
134
|
}
|
|
@@ -378,6 +387,7 @@ export declare class LocalReplica implements LocalReplicaView {
|
|
|
378
387
|
hasLiveQuery(signature: string): boolean;
|
|
379
388
|
snapshot(): ReplicaSnapshot;
|
|
380
389
|
private reconcileCommands;
|
|
390
|
+
private acceptMetadataCommit;
|
|
381
391
|
private persist;
|
|
382
392
|
private notify;
|
|
383
393
|
private markEntityChanged;
|
package/dist/local-replica.js
CHANGED
|
@@ -586,7 +586,8 @@ export class LocalReplica {
|
|
|
586
586
|
const nextCursor = replicaTransactionFloor(this.cursorValue, nextQueries);
|
|
587
587
|
const writeScope = this.scopeValue;
|
|
588
588
|
if (this.storage?.advanceWatermark) {
|
|
589
|
-
await this.persist(() => this.storage.advanceWatermark(changedWindows, nextCursor, writeScope));
|
|
589
|
+
const receipt = await this.persist(() => this.storage.advanceWatermark(changedWindows, nextCursor, writeScope));
|
|
590
|
+
this.acceptMetadataCommit(receipt, writeScope);
|
|
590
591
|
}
|
|
591
592
|
else if (this.storage?.replaceSnapshot) {
|
|
592
593
|
// Compatibility for older/custom storage adapters. Current IndexedDB
|
|
@@ -759,9 +760,10 @@ export class LocalReplica {
|
|
|
759
760
|
const membershipChanged = !sameWindowRowDefinition(previous, window);
|
|
760
761
|
const rowsChanged = membershipChanged || changedRowIDs.size > 0;
|
|
761
762
|
const writeScope = this.scopeValue;
|
|
763
|
+
let metadataCommit = undefined;
|
|
762
764
|
if (!epochChanged && this.storage?.applyWindowDelta && (delta || !rowsChanged)) {
|
|
763
765
|
const writeDelta = delta ? { upserts: delta.upserts.filter(row => changedRowIDs.has(String(row[input.key]))), deleted: delta.deleted } : { upserts: [], deleted: [] };
|
|
764
|
-
await this.persist(() => this.storage.applyWindowDelta(window, writeDelta, snapshot, writeScope));
|
|
766
|
+
metadataCommit = await this.persist(() => this.storage.applyWindowDelta(window, writeDelta, snapshot, writeScope));
|
|
765
767
|
}
|
|
766
768
|
else if (this.storage?.replaceWindow) {
|
|
767
769
|
await this.persist(() => this.storage.replaceWindow(window, snapshot, writeScope, input.rows));
|
|
@@ -771,8 +773,12 @@ export class LocalReplica {
|
|
|
771
773
|
}
|
|
772
774
|
if (epochChanged)
|
|
773
775
|
this.invalidateEntityVersions();
|
|
774
|
-
|
|
776
|
+
// The adapter can prove that this metadata commit immediately follows our
|
|
777
|
+
// last reconciled sequence. Our next maps already contain that exact write.
|
|
778
|
+
// A peer write in between breaks the proof and retains normal catch-up.
|
|
779
|
+
if (!this.acceptMetadataCommit(metadataCommit, writeScope) && this.storage?.readChanges) {
|
|
775
780
|
await this.mergeStoredChanges(nextEntities, nextQueries);
|
|
781
|
+
}
|
|
776
782
|
this.entities = nextEntities;
|
|
777
783
|
this.liveQueries = nextQueries;
|
|
778
784
|
if (window.kind === 'replica' && window.completeness === 'complete' && !window.truncated && window.ids.every(id => nextEntities.get(window.entity)?.has(id)))
|
|
@@ -1207,9 +1213,18 @@ export class LocalReplica {
|
|
|
1207
1213
|
if (changed && notify)
|
|
1208
1214
|
this.notify();
|
|
1209
1215
|
}
|
|
1216
|
+
acceptMetadataCommit(receipt, scope) {
|
|
1217
|
+
if (!receipt || receipt.scope !== scope || scope !== this.scopeValue
|
|
1218
|
+
|| !Number.isSafeInteger(receipt.previousSequence) || receipt.previousSequence < 0
|
|
1219
|
+
|| !Number.isSafeInteger(receipt.sequence) || receipt.sequence !== receipt.previousSequence + 1
|
|
1220
|
+
|| receipt.previousSequence !== this.storageSequence)
|
|
1221
|
+
return false;
|
|
1222
|
+
this.storageSequence = receipt.sequence;
|
|
1223
|
+
return true;
|
|
1224
|
+
}
|
|
1210
1225
|
persist(operation) {
|
|
1211
|
-
const attempt = this.persistence.then(async () =>
|
|
1212
|
-
this.persistence = attempt.
|
|
1226
|
+
const attempt = this.persistence.then(async () => await operation());
|
|
1227
|
+
this.persistence = attempt.then(() => undefined, () => undefined);
|
|
1213
1228
|
return attempt;
|
|
1214
1229
|
}
|
|
1215
1230
|
notify(executionChanged = false) {
|