@optimystic/db-core 0.25.0 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/cohort-topic/membership/verifier.d.ts +8 -0
- package/dist/src/cohort-topic/membership/verifier.d.ts.map +1 -1
- package/dist/src/cohort-topic/membership/verifier.js +17 -0
- package/dist/src/cohort-topic/membership/verifier.js.map +1 -1
- package/dist/src/cohort-topic/promotion.d.ts +25 -0
- package/dist/src/cohort-topic/promotion.d.ts.map +1 -1
- package/dist/src/cohort-topic/promotion.js +58 -11
- package/dist/src/cohort-topic/promotion.js.map +1 -1
- package/dist/src/cohort-topic/wire/primitives.d.ts +6 -0
- package/dist/src/cohort-topic/wire/primitives.d.ts.map +1 -1
- package/dist/src/cohort-topic/wire/primitives.js +6 -0
- package/dist/src/cohort-topic/wire/primitives.js.map +1 -1
- package/dist/src/cohort-topic/wire/types.d.ts +5 -0
- package/dist/src/cohort-topic/wire/types.d.ts.map +1 -1
- package/dist/src/cohort-topic/wire/validate.d.ts.map +1 -1
- package/dist/src/cohort-topic/wire/validate.js +10 -19
- package/dist/src/cohort-topic/wire/validate.js.map +1 -1
- package/dist/src/collection/collection.d.ts +8 -1
- package/dist/src/collection/collection.d.ts.map +1 -1
- package/dist/src/collection/collection.js +19 -3
- package/dist/src/collection/collection.js.map +1 -1
- package/dist/src/matchmaking/wire.d.ts +2 -2
- package/dist/src/matchmaking/wire.d.ts.map +1 -1
- package/dist/src/matchmaking/wire.js +3 -3
- package/dist/src/matchmaking/wire.js.map +1 -1
- package/dist/src/network/struct.d.ts +5 -5
- package/dist/src/network/struct.d.ts.map +1 -1
- package/dist/src/testing/index.d.ts +1 -0
- package/dist/src/testing/index.d.ts.map +1 -1
- package/dist/src/testing/index.js +1 -0
- package/dist/src/testing/index.js.map +1 -1
- package/dist/src/testing/refresh-probe.d.ts +31 -0
- package/dist/src/testing/refresh-probe.d.ts.map +1 -0
- package/dist/src/testing/refresh-probe.js +39 -0
- package/dist/src/testing/refresh-probe.js.map +1 -0
- package/dist/src/testing/test-transactor.d.ts +58 -5
- package/dist/src/testing/test-transactor.d.ts.map +1 -1
- package/dist/src/testing/test-transactor.js +87 -4
- package/dist/src/testing/test-transactor.js.map +1 -1
- package/dist/src/transaction/coordinator.d.ts +90 -6
- package/dist/src/transaction/coordinator.d.ts.map +1 -1
- package/dist/src/transaction/coordinator.js +311 -90
- package/dist/src/transaction/coordinator.js.map +1 -1
- package/dist/src/transaction/errors.d.ts +42 -0
- package/dist/src/transaction/errors.d.ts.map +1 -1
- package/dist/src/transaction/errors.js +50 -0
- package/dist/src/transaction/errors.js.map +1 -1
- package/dist/src/transaction/index.d.ts +1 -1
- package/dist/src/transaction/index.d.ts.map +1 -1
- package/dist/src/transaction/index.js +1 -1
- package/dist/src/transaction/index.js.map +1 -1
- package/dist/src/transaction/session.d.ts +7 -3
- package/dist/src/transaction/session.d.ts.map +1 -1
- package/dist/src/transaction/session.js +7 -3
- package/dist/src/transaction/session.js.map +1 -1
- package/dist/src/transaction/transaction.d.ts +12 -2
- package/dist/src/transaction/transaction.d.ts.map +1 -1
- package/dist/src/transaction/transaction.js.map +1 -1
- package/dist/src/transactor/network-transactor.d.ts +1 -1
- package/dist/src/transactor/network-transactor.d.ts.map +1 -1
- package/dist/src/transactor/network-transactor.js +6 -26
- package/dist/src/transactor/network-transactor.js.map +1 -1
- package/dist/src/transactor/transactor-source.d.ts +4 -6
- package/dist/src/transactor/transactor-source.d.ts.map +1 -1
- package/dist/src/transactor/transactor-source.js +4 -6
- package/dist/src/transactor/transactor-source.js.map +1 -1
- package/dist/src/transform/atomic.d.ts.map +1 -1
- package/dist/src/transform/atomic.js +7 -0
- package/dist/src/transform/atomic.js.map +1 -1
- package/dist/src/transform/base-pins.d.ts +48 -0
- package/dist/src/transform/base-pins.d.ts.map +1 -0
- package/dist/src/transform/base-pins.js +65 -0
- package/dist/src/transform/base-pins.js.map +1 -0
- package/dist/src/transform/digest.d.ts +4 -2
- package/dist/src/transform/digest.d.ts.map +1 -1
- package/dist/src/transform/digest.js +14 -19
- package/dist/src/transform/digest.js.map +1 -1
- package/dist/src/transform/tracker.d.ts +31 -3
- package/dist/src/transform/tracker.d.ts.map +1 -1
- package/dist/src/transform/tracker.js +105 -13
- package/dist/src/transform/tracker.js.map +1 -1
- package/package.json +1 -1
- package/src/cohort-topic/membership/verifier.ts +487 -461
- package/src/cohort-topic/promotion.ts +86 -14
- package/src/cohort-topic/wire/primitives.ts +195 -188
- package/src/cohort-topic/wire/types.ts +480 -475
- package/src/cohort-topic/wire/validate.ts +504 -512
- package/src/collection/collection.ts +19 -3
- package/src/matchmaking/wire.ts +605 -603
- package/src/network/struct.ts +5 -5
- package/src/testing/index.ts +1 -0
- package/src/testing/refresh-probe.ts +52 -0
- package/src/testing/test-transactor.ts +100 -4
- package/src/transaction/coordinator.ts +312 -99
- package/src/transaction/errors.ts +141 -91
- package/src/transaction/index.ts +1 -1
- package/src/transaction/session.ts +7 -3
- package/src/transaction/transaction.ts +12 -2
- package/src/transactor/network-transactor.ts +1025 -1045
- package/src/transactor/transactor-source.ts +170 -172
- package/src/transform/atomic.ts +6 -0
- package/src/transform/base-pins.ts +83 -0
- package/src/transform/digest.ts +14 -19
- package/src/transform/tracker.ts +108 -15
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { ITransactor, GetBlockResults, ActionBlocks, BlockActionStatus, PendResult, CommitResult, PendRequest, BlockId, CommitRequest, BlockGets, ActionId, ActionTransforms, ClusterNomineesResult, CollectionId } from "../index.js";
|
|
1
|
+
import type { ITransactor, GetBlockResults, ActionBlocks, BlockActionStatus, PendResult, CommitResult, PendRequest, BlockId, CommitRequest, BlockGets, ActionId, ActionTransforms, Transforms, ClusterNomineesResult, CollectionId } from "../index.js";
|
|
2
2
|
import type { TreeReplaceAction } from "../collections/tree/struct.js";
|
|
3
|
+
import type { Collection } from "../collection/collection.js";
|
|
3
4
|
export declare class TestTransactor implements ITransactor {
|
|
4
5
|
private blocks;
|
|
5
6
|
available: boolean;
|
|
@@ -60,10 +61,10 @@ export declare class FlakyCommitTransactor extends DelegatingTransactor {
|
|
|
60
61
|
}
|
|
61
62
|
/**
|
|
62
63
|
* Commits durably on the inner {@link TestTransactor}, then reports a stale failure anyway —
|
|
63
|
-
* the exact observable shape of `NetworkTransactor.commit`'s TORN ACTION: the collection
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
*
|
|
64
|
+
* the exact observable shape of `NetworkTransactor.commit`'s TORN ACTION: the collection's log
|
|
65
|
+
* tail is committed BEFORE the sweep of the remaining blocks, so a later sweep block coming back
|
|
66
|
+
* as a confirmed conflict returns a stale failure over an action whose log entry is already
|
|
67
|
+
* durable.
|
|
67
68
|
*
|
|
68
69
|
* Safe against the inner transactor's bookkeeping because `TransactorSource.transact` cancels
|
|
69
70
|
* the pend on the reported failure and {@link TestTransactor.cancel} only deletes PENDING records
|
|
@@ -133,6 +134,58 @@ export declare class CompetingWriterTransactor extends DelegatingTransactor {
|
|
|
133
134
|
pend(request: PendRequest): Promise<PendResult>;
|
|
134
135
|
commit(request: CommitRequest): Promise<CommitResult>;
|
|
135
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Parks the commit AFTER the inner transactor has made it durable and BEFORE the result gets back
|
|
139
|
+
* to the coordinator — precisely the window in which storage already holds the new revision but
|
|
140
|
+
* the caller's local fold (`Collection.recordCommitted`) has not run.
|
|
141
|
+
*
|
|
142
|
+
* Everything else delegates, so the pend/commit round trip is otherwise the real one.
|
|
143
|
+
*
|
|
144
|
+
* Parks only the FIRST commit call and delegates every later one: a multi-collection commit issues
|
|
145
|
+
* one `commit` per participant, and parking all of them would mean the span never completes.
|
|
146
|
+
*/
|
|
147
|
+
export declare class GatedCommitTransactor extends DelegatingTransactor {
|
|
148
|
+
/** The `rev` carried on each pend request seen, in call order. */
|
|
149
|
+
readonly pendRevs: (number | undefined)[];
|
|
150
|
+
/** The `rev` carried on each commit request seen, in call order. */
|
|
151
|
+
readonly commitRevs: number[];
|
|
152
|
+
/** Resolves once a commit has landed durably in the inner transactor and is parked. */
|
|
153
|
+
readonly commitParked: Promise<void>;
|
|
154
|
+
private readonly parked;
|
|
155
|
+
private readonly gate;
|
|
156
|
+
private parkedOnce;
|
|
157
|
+
constructor(inner: TestTransactor);
|
|
158
|
+
pend(request: PendRequest): Promise<PendResult>;
|
|
159
|
+
commit(request: CommitRequest): Promise<CommitResult>;
|
|
160
|
+
openGate(): void;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Parks the FIRST pend BEFORE it reaches the inner transactor, so a rival can durably take the
|
|
164
|
+
* revision while the coordinator is already committed to a set of transforms it captured at the
|
|
165
|
+
* log append.
|
|
166
|
+
*
|
|
167
|
+
* Snapshots the pair `(what was handed to the network, what the collection's tracker held)` at
|
|
168
|
+
* DELEGATION time — after the gate — for every pend, so a refresh that swapped the tracker's
|
|
169
|
+
* transforms object out from under the coordinator shows up as a divergent pair.
|
|
170
|
+
*/
|
|
171
|
+
export declare class GatedPendTransactor<TAction> extends DelegatingTransactor {
|
|
172
|
+
/** One entry per delegated pend, in call order. */
|
|
173
|
+
readonly snapshots: {
|
|
174
|
+
pended: Transforms;
|
|
175
|
+
staged: Transforms;
|
|
176
|
+
}[];
|
|
177
|
+
/** Resolves once a pend is parked and has NOT yet reached the inner transactor. */
|
|
178
|
+
readonly pendParked: Promise<void>;
|
|
179
|
+
/** The collection under test. Assigned after construction — the collection is built over this
|
|
180
|
+
* wrapper, so it cannot be a constructor argument. */
|
|
181
|
+
collection?: Collection<TAction>;
|
|
182
|
+
private readonly parked;
|
|
183
|
+
private readonly gate;
|
|
184
|
+
private parkedOnce;
|
|
185
|
+
constructor(inner: TestTransactor);
|
|
186
|
+
pend(request: PendRequest): Promise<PendResult>;
|
|
187
|
+
openGate(): void;
|
|
188
|
+
}
|
|
136
189
|
/**
|
|
137
190
|
* Durably commit a conflicting change to a tree collection: opens a SECOND {@link Tree} over the
|
|
138
191
|
* same transactor + collection id and replaces `entries` through it, producing a real log entry
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-transactor.d.ts","sourceRoot":"","sources":["../../../src/testing/test-transactor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,EAAE,SAAS,EAAU,QAAQ,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"test-transactor.d.ts","sourceRoot":"","sources":["../../../src/testing/test-transactor.ts"],"names":[],"mappings":"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"}
|
|
@@ -450,10 +450,10 @@ export class FlakyCommitTransactor extends DelegatingTransactor {
|
|
|
450
450
|
}
|
|
451
451
|
/**
|
|
452
452
|
* Commits durably on the inner {@link TestTransactor}, then reports a stale failure anyway —
|
|
453
|
-
* the exact observable shape of `NetworkTransactor.commit`'s TORN ACTION: the collection
|
|
454
|
-
*
|
|
455
|
-
*
|
|
456
|
-
*
|
|
453
|
+
* the exact observable shape of `NetworkTransactor.commit`'s TORN ACTION: the collection's log
|
|
454
|
+
* tail is committed BEFORE the sweep of the remaining blocks, so a later sweep block coming back
|
|
455
|
+
* as a confirmed conflict returns a stale failure over an action whose log entry is already
|
|
456
|
+
* durable.
|
|
457
457
|
*
|
|
458
458
|
* Safe against the inner transactor's bookkeeping because `TransactorSource.transact` cancels
|
|
459
459
|
* the pend on the reported failure and {@link TestTransactor.cancel} only deletes PENDING records
|
|
@@ -554,6 +554,89 @@ export class CompetingWriterTransactor extends DelegatingTransactor {
|
|
|
554
554
|
return this.inner.commit(request);
|
|
555
555
|
}
|
|
556
556
|
}
|
|
557
|
+
function deferred() {
|
|
558
|
+
let resolve;
|
|
559
|
+
const promise = new Promise(r => { resolve = r; });
|
|
560
|
+
return { promise, resolve };
|
|
561
|
+
}
|
|
562
|
+
/**
|
|
563
|
+
* Parks the commit AFTER the inner transactor has made it durable and BEFORE the result gets back
|
|
564
|
+
* to the coordinator — precisely the window in which storage already holds the new revision but
|
|
565
|
+
* the caller's local fold (`Collection.recordCommitted`) has not run.
|
|
566
|
+
*
|
|
567
|
+
* Everything else delegates, so the pend/commit round trip is otherwise the real one.
|
|
568
|
+
*
|
|
569
|
+
* Parks only the FIRST commit call and delegates every later one: a multi-collection commit issues
|
|
570
|
+
* one `commit` per participant, and parking all of them would mean the span never completes.
|
|
571
|
+
*/
|
|
572
|
+
export class GatedCommitTransactor extends DelegatingTransactor {
|
|
573
|
+
/** The `rev` carried on each pend request seen, in call order. */
|
|
574
|
+
pendRevs = [];
|
|
575
|
+
/** The `rev` carried on each commit request seen, in call order. */
|
|
576
|
+
commitRevs = [];
|
|
577
|
+
/** Resolves once a commit has landed durably in the inner transactor and is parked. */
|
|
578
|
+
commitParked;
|
|
579
|
+
parked = deferred();
|
|
580
|
+
gate = deferred();
|
|
581
|
+
parkedOnce = false;
|
|
582
|
+
constructor(inner) {
|
|
583
|
+
super(inner);
|
|
584
|
+
this.commitParked = this.parked.promise;
|
|
585
|
+
}
|
|
586
|
+
async pend(request) {
|
|
587
|
+
this.pendRevs.push(request.rev);
|
|
588
|
+
return this.inner.pend(request);
|
|
589
|
+
}
|
|
590
|
+
async commit(request) {
|
|
591
|
+
this.commitRevs.push(request.rev);
|
|
592
|
+
const result = await this.inner.commit(request); // durable FIRST
|
|
593
|
+
if (!this.parkedOnce) {
|
|
594
|
+
this.parkedOnce = true;
|
|
595
|
+
this.parked.resolve();
|
|
596
|
+
await this.gate.promise;
|
|
597
|
+
}
|
|
598
|
+
return result;
|
|
599
|
+
}
|
|
600
|
+
openGate() { this.gate.resolve(); }
|
|
601
|
+
}
|
|
602
|
+
/**
|
|
603
|
+
* Parks the FIRST pend BEFORE it reaches the inner transactor, so a rival can durably take the
|
|
604
|
+
* revision while the coordinator is already committed to a set of transforms it captured at the
|
|
605
|
+
* log append.
|
|
606
|
+
*
|
|
607
|
+
* Snapshots the pair `(what was handed to the network, what the collection's tracker held)` at
|
|
608
|
+
* DELEGATION time — after the gate — for every pend, so a refresh that swapped the tracker's
|
|
609
|
+
* transforms object out from under the coordinator shows up as a divergent pair.
|
|
610
|
+
*/
|
|
611
|
+
export class GatedPendTransactor extends DelegatingTransactor {
|
|
612
|
+
/** One entry per delegated pend, in call order. */
|
|
613
|
+
snapshots = [];
|
|
614
|
+
/** Resolves once a pend is parked and has NOT yet reached the inner transactor. */
|
|
615
|
+
pendParked;
|
|
616
|
+
/** The collection under test. Assigned after construction — the collection is built over this
|
|
617
|
+
* wrapper, so it cannot be a constructor argument. */
|
|
618
|
+
collection;
|
|
619
|
+
parked = deferred();
|
|
620
|
+
gate = deferred();
|
|
621
|
+
parkedOnce = false;
|
|
622
|
+
constructor(inner) {
|
|
623
|
+
super(inner);
|
|
624
|
+
this.pendParked = this.parked.promise;
|
|
625
|
+
}
|
|
626
|
+
async pend(request) {
|
|
627
|
+
if (!this.parkedOnce) {
|
|
628
|
+
this.parkedOnce = true;
|
|
629
|
+
this.parked.resolve();
|
|
630
|
+
await this.gate.promise;
|
|
631
|
+
}
|
|
632
|
+
this.snapshots.push({
|
|
633
|
+
pended: structuredClone(request.transforms),
|
|
634
|
+
staged: structuredClone(this.collection.tracker.transforms),
|
|
635
|
+
});
|
|
636
|
+
return this.inner.pend(request);
|
|
637
|
+
}
|
|
638
|
+
openGate() { this.gate.resolve(); }
|
|
639
|
+
}
|
|
557
640
|
/**
|
|
558
641
|
* Durably commit a conflicting change to a tree collection: opens a SECOND {@link Tree} over the
|
|
559
642
|
* same transactor + collection id and replaces `entries` through it, producing a real log entry
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-transactor.js","sourceRoot":"","sources":["../../../src/testing/test-transactor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"test-transactor.js","sourceRoot":"","sources":["../../../src/testing/test-transactor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAC9J,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAmBnD,gGAAgG;AAChG,MAAM,OAAO,cAAc;IACjB,MAAM,GAAG,IAAI,GAAG,EAAuB,CAAC;IACjD,SAAS,GAAG,IAAI,CAAC;IACT,QAAQ,GAAG,IAAI,GAAG,EAAgC,CAAC,CAAC,sBAAsB;IAEjF,gBAAe,CAAC;IAEhB,KAAK,CAAC,GAAG,CAAC,SAAoB;QAC9B,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,OAAO,GAAoB,EAAE,CAAC;QACtC,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,kEAAkE;QAClI,MAAM,QAAQ,GAAmB,EAAE,CAAC;QAEpC,IAAI,CAAC;YACJ,mEAAmE;YACnE,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,yBAAyB,OAAO,EAAE,CAAC,CAAC,8BAA8B;gBACjF,0EAA0E;gBAC1E,IAAI,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,OAAO;oBAAE,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,4DAA4D;gBAEzG,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE;oBACxD,CAAC,EAAE,CAAC;oBACJ,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,mCAAmC;gBACnE,CAAC,CAAC,CAAC,CAAC;gBACJ,OAAO,GAAG,MAAM,cAAc,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YAED,2CAA2C;YAC3C,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;gBAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;oBACjB,0BAA0B;oBAC1B,OAAO,CAAC,OAAO,CAAC,GAAG;wBAClB,KAAK,EAAE,SAAS;wBAChB,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;qBAC1C,CAAC;oBACF,SAAS;gBACV,CAAC;gBAED,0DAA0D;gBAC1D,IAAI,KAAyB,CAAC;gBAC9B,sFAAsF;gBACtF,iFAAiF;gBACjF,qFAAqF;gBACrF,gFAAgF;gBAChF,IAAI,eAAmC,CAAC;gBACxC,IAAI,SAAS,CAAC,OAAO,EAAE,QAAQ,KAAK,SAAS,EAAE,CAAC;oBAC/C,wEAAwE;oBACxE,MAAM,gBAAgB,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBACnF,IAAI,gBAAgB,EAAE,CAAC;wBACtB,4DAA4D;wBAC5D,MAAM,SAAS,GAAG,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;wBAC1E,KAAK,GAAG,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;wBACxD,8EAA8E;wBAC9E,uEAAuE;wBACvE,IAAI,SAAS;4BAAE,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC;oBACvD,CAAC;yBAAM,CAAC;wBACP,8EAA8E;wBAC9E,+EAA+E;wBAC/E,4DAA4D;wBAC5D,KAAK,GAAG,SAAS,CAAC;oBACnB,CAAC;gBACF,CAAC;qBAAM,IAAI,SAAS,CAAC,OAAO,EAAE,SAAS,EAAE,CAAC;oBACzC,6EAA6E;oBAC7E,6EAA6E;oBAC7E,oCAAoC;oBACpC,KAAK,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;wBAC7D,MAAM,gBAAgB,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAC5D,IAAI,gBAAgB,EAAE,CAAC;4BACtB,MAAM,SAAS,GAAG,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;4BAC1E,KAAK,GAAG,kBAAkB,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;4BACxD,IAAI,SAAS;gCAAE,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC;4BACtD,MAAM;wBACP,CAAC;oBACF,CAAC;oBACD,0DAA0D;oBAC1D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;wBACzB,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;4BACzC,MAAM,KAAK,GAAG,oBAAoB,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;4BACtE,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;4BACtC,eAAe,GAAG,KAAK,EAAE,GAAG,CAAC;wBAC9B,CAAC;6BAAM,CAAC;4BACP,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;4BACjF,IAAI,KAAK;gCAAE,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC;wBACnD,CAAC;oBACF,CAAC;gBACF,CAAC;qBAAM,IAAI,SAAS,CAAC,OAAO,EAAE,GAAG,KAAK,SAAS,EAAE,CAAC;oBACjD,oEAAoE;oBACpE,MAAM,KAAK,GAAG,oBAAoB,CAAC,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACtE,KAAK,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;oBACtC,eAAe,GAAG,KAAK,EAAE,GAAG,CAAC;gBAC9B,CAAC;qBAAM,CAAC;oBACP,6CAA6C;oBAC7C,KAAK,GAAG,eAAe,CAAC,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;oBACjF,IAAI,KAAK;wBAAE,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC;gBACnD,CAAC;gBAGD,MAAM,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBACtE,mFAAmF;gBACnF,2EAA2E;gBAC3E,MAAM,oBAAoB,GAAG,eAAe,KAAK,SAAS;oBACzD,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC/D,OAAO,CAAC,OAAO,CAAC,GAAG;oBAClB,KAAK;oBACL,GAAG,CAAC,eAAe,KAAK,SAAS,IAAI,oBAAoB,KAAK,SAAS;wBACtE,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnF,KAAK,EAAE;wBACN,MAAM,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC;4BAChC,GAAG,EAAE,UAAU,CAAC,SAAS;4BACzB,QAAQ;yBACR,CAAC,CAAC,CAAC,SAAS;wBACb,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;qBACtD;iBACD,CAAC;YACH,CAAC;YACD,yCAAyC;QAE1C,CAAC;gBAAS,CAAC;YACV,iCAAiC;YACjC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QAClD,CAAC;QACC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAA0B;QACxC,OAAO,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC5B,GAAG,GAAG;YACN,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBACnC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC5C,IAAI,CAAC,UAAU;oBAAE,OAAO,SAAS,CAAC;gBAClC,OAAO,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;oBACjE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW;wBAC3G,CAAC,CAAC,SAAS,CAAC;YACX,CAAC,CAAC;SACH,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAoB;QAC/B,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC;QACtD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,mBAAmB,GAA+C,EAAE,CAAC;QAC3E,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,iEAAiE;QACjE,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,cAAc,GAAG,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,CAAC,cAAc;gBAAE,SAAS,CAAC,oBAAoB;YAEnD,IAAI,UAAU,EAAE,CAAC;gBAChB,qCAAqC;gBACrC,IAAI,UAAU,CAAC,cAAc,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;oBACxC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,EAAE;wBACxD,mBAAmB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;oBAClE,CAAC,CAAC,CAAC;gBACJ,CAAC;gBAED,iFAAiF;gBACjF,IAAI,GAAG,KAAK,SAAS,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;oBAChD,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,0CAA0C;oBACrE,IAAI,UAAU,CAAC,SAAS,IAAI,QAAQ,EAAE,CAAC;wBACtC,wCAAwC;wBACxC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAmD,CAAC;wBACnF,KAAK,IAAI,CAAC,GAAG,QAAkB,EAAE,CAAC,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;4BACjE,MAAM,iBAAiB,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;4BAC5D,IAAI,iBAAiB,KAAK,SAAS,EAAE,CAAC;gCACrC,MAAM,kBAAkB,GAAG,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;gCAC9E,IAAI,kBAAkB,EAAE,CAAC;oCACxB,eAAe,CAAC,GAAG,CAAC,iBAAiB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;gCACnF,CAAC;4BACF,CAAC;wBACF,CAAC;wBAED,2EAA2E;wBAC3E,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;4BAC3D,IAAI,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC;4BAC3D,IAAI,CAAC,QAAQ,EAAE,CAAC;gCACf,QAAQ,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,eAAe,EAAE,EAAE,CAAC;gCACjF,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACxB,CAAC;4BACD,QAAQ,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;4BACrD,QAAQ,CAAC,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;wBACrF,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,mDAAmD;QACnD,kFAAkF;QAClF,uFAAuF;QACvF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,IAAI;gBACd,OAAO;aACP,CAAC;QACH,CAAC;QAED,gDAAgD;QAChD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;YACzE,CAAC;iBAAM,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC3B,sDAAsD;gBACtD,MAAM,qBAAqB,GAAG,mBAAmB;qBAC/C,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;oBACnD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC9C,MAAM,UAAU,GAAG,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC;2BACzD,WAAW,EAAE,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,wCAAwC;oBAC1F,IAAI,UAAU,EAAE,CAAC;wBAChB,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;oBAC1E,CAAC;oBACD,OAAO,IAAI,CAAC,CAAC,gDAAgD;gBAC9D,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAqE,CAAC;gBAE9F,OAAO;oBACN,OAAO,EAAE,KAAK;oBACd,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,qBAAqB;iBAC9B,CAAC;YACH,CAAC;YACD,4DAA4D;QAC7D,CAAC;QAED,4CAA4C;QAC5C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,cAAc,GAAG,mBAAmB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAChE,IAAI,cAAc,EAAE,CAAC;gBACpB,MAAM,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC;gBAC3E,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YACzD,CAAC;QACF,CAAC;QAED,mEAAmE;QACnE,OAAO;YACN,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,mBAAmB;YAC5B,QAAQ;SACM,CAAC;IACjB,CAAC;IAEA,KAAK,CAAC,MAAM,CAAC,SAAuB;QACpC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,KAAK,MAAM,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,UAAU,EAAE,CAAC;gBACf,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAsB;QACnC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAC5C,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAmB,EAAE,CAAC;QAEpC,IAAI,CAAC;YACH,yDAAyD;YACzD,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;gBAChC,MAAM,MAAM,GAAG,yBAAyB,EAAE,EAAE,CAAC;gBAC7C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC9C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;YAED,gDAAgD;YAEhD,4BAA4B;YAC5B,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC5C,OAAO,UAAU,IAAI,UAAU,CAAC,SAAS,IAAI,GAAG,CAAC;YACnD,CAAC,CAAC,CAAC;YAEH,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,2CAA2C;gBAC3C,MAAM,eAAe,GAAG,IAAI,GAAG,EAAwB,CAAC;gBACxD,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;oBAClC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;oBAC7C,KAAK,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;wBACjD,MAAM,iBAAiB,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBAC5D,IAAI,iBAAiB,EAAE,CAAC;4BACtB,MAAM,SAAS,GAAG,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;4BACrE,IAAI,SAAS,EAAE,CAAC;gCACd,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,eAAe,EAAE,CAAC;gCAC7E,eAAe,CAAC,GAAG,CAAC,iBAAiB,EAAE,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;4BACxF,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,MAAM,OAAO,GAAuB,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzG,QAAQ;oBACR,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;yBAClC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;yBACvD,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG;oBAClD,UAAU;iBACX,CAAC,CAAC,CAAC;gBACJ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YACrC,CAAC;YAED,4CAA4C;YAC5C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC5C,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5D,OAAO;wBACL,OAAO,EAAE,KAAK;wBACd,MAAM,EAAE,UAAU,QAAQ,uCAAuC,OAAO,EAAE;qBAC3E,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,mCAAmC;YACnC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;gBAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAE,CAAC;gBAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;gBAE3D,uCAAuC;gBACvC,MAAM,SAAS,GAAG,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBAE1E,IAAI,QAA4B,CAAC;gBACjC,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;wBACtB,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,gCAAgC,OAAO,EAAE,CAAC,CAAC;oBAC7F,CAAC;oBACD,QAAQ,GAAG,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;qBAAM,CAAC;oBACN,QAAQ,GAAG,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;oBACpD,IAAI,CAAC,QAAQ,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;wBACnC,MAAM,IAAI,KAAK,CAAC,wBAAwB,QAAQ,iEAAiE,OAAO,EAAE,CAAC,CAAC;oBAC9H,CAAC;gBACH,CAAC;gBAED,IAAI,QAAQ,EAAE,CAAC;oBACb,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACnD,CAAC;gBAED,qBAAqB;gBACrB,UAAU,CAAC,SAAS,GAAG,GAAG,CAAC;gBAC3B,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;gBAC9C,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACrD,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7C,CAAC;YAED,8CAA8C;YAE9C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAE3B,CAAC;gBAAS,CAAC;YACT,iCAAiC;YACjC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,iBAAiB;QACf,MAAM,UAAU,GAAG,IAAI,GAAG,EAA8B,CAAC;QACzD,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1D,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,UAAU,CAAC,cAAc,EAAE,CAAC;gBAC9D,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;gBAClG,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,mBAAmB;QACjB,MAAM,YAAY,GAAG,IAAI,GAAG,EAA8B,CAAC;QAC3D,KAAK,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC1D,KAAK,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,UAAU,CAAC,eAAe,EAAE,CAAC;gBACzD,MAAM,SAAS,GAAG,UAAU,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;oBAC5C,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE;4BACzB,QAAQ;4BACR,GAAG;4BACH,UAAU,EAAE,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC;yBACxD,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,UAAU,GAAG,eAAe,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;oBACjF,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAEF,YAAY,CAAC,SAAkB;QAC9B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,cAAc;QACb,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IAED,6GAA6G;IAC7G,oBAAoB,CAAwD;CAC5E;AAED;;;;;;;;;;GAUG;AACH,MAAM,OAAgB,oBAAoB;IACA;IAAzC,YAAyC,KAAqB;QAArB,UAAK,GAAL,KAAK,CAAgB;IAAG,CAAC;IAElE,GAAG,CAAC,CAAY,IAA8B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,SAAS,CAAC,CAAiB,IAAkC,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,IAAI,CAAC,CAAc,IAAyB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxE,MAAM,CAAC,CAAe,IAAmB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,CAAC,CAAgB,IAA2B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhF,IAAI,oBAAoB;QACvB,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1D,CAAC;CACD;AAED;;;;;GAKG;AACH,MAAM,OAAO,qBAAsB,SAAQ,oBAAoB;IAW5C;IACA;IAXlB,oFAAoF;IACpF,cAAc,GAAG,CAAC,CAAC;IAEnB;;;;OAIG;IACH,YACC,KAAqB,EACJ,UAAkB,EAClB,SAAS,cAAc;QAExC,KAAK,CAAC,KAAK,CAAC,CAAC;QAHI,eAAU,GAAV,UAAU,CAAQ;QAClB,WAAM,GAAN,MAAM,CAAiB;IAGzC,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,OAAsB;QAC3C,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACD;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,0BAA2B,SAAQ,oBAAoB;IACnE,wEAAwE;IAChE,UAAU,CAAS;IAC3B,4EAA4E;IAC5E,aAAa,GAAG,CAAC,CAAC;IAElB,YAAY,KAAqB,EAAE,UAAU,GAAG,CAAC;QAChD,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC9B,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,OAAsB;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,6CAA6C,EAAE,CAAC;YAClG,CAAC;QACF,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;CACD;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,OAAO,yBAA0B,SAAQ,oBAAoB;IAahD;IACA;IAblB,2DAA2D;IAC3D,SAAS,GAAG,CAAC,CAAC;IACd,6BAA6B;IAC7B,WAAW,GAAG,CAAC,CAAC;IAChB,mFAAmF;IACnF,WAAW,CAAU;IACrB;qFACiF;IACjF,SAAS,GAAG,CAAC,CAAC;IAEd,YACC,KAAqB,EACJ,KAAiB,EACjB,OAAgC;QAEjD,KAAK,CAAC,KAAK,CAAC,CAAC;QAHI,UAAK,GAAL,KAAK,CAAY;QACjB,YAAO,GAAP,OAAO,CAAyB;IAGlD,CAAC;IAEQ,KAAK,CAAC,IAAI,CAAC,OAAoB;QACvC,0FAA0F;QAC1F,sCAAsC;QACtC,MAAM,SAAS,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI;YACjC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC;YACvC,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC;QACnB,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACrC,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;YAC7B,0FAA0F;YAC1F,2FAA2F;YAC3F,mEAAmE;YACnE,IAAI,CAAC;gBACJ,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACzG,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,OAAsB;QAC3C,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACD;AAID,SAAS,QAAQ;IAChB,IAAI,OAAoB,CAAC;IACzB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,qBAAsB,SAAQ,oBAAoB;IAC9D,kEAAkE;IACzD,QAAQ,GAA2B,EAAE,CAAC;IAC/C,oEAAoE;IAC3D,UAAU,GAAa,EAAE,CAAC;IACnC,uFAAuF;IAC9E,YAAY,CAAgB;IACpB,MAAM,GAAG,QAAQ,EAAE,CAAC;IACpB,IAAI,GAAG,QAAQ,EAAE,CAAC;IAC3B,UAAU,GAAG,KAAK,CAAC;IAE3B,YAAY,KAAqB;QAChC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IACzC,CAAC;IAEQ,KAAK,CAAC,IAAI,CAAC,OAAoB;QACvC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAEQ,KAAK,CAAC,MAAM,CAAC,OAAsB;QAC3C,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB;QACjE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACzB,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,QAAQ,KAAW,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACzC;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,mBAA6B,SAAQ,oBAAoB;IACrE,mDAAmD;IAC1C,SAAS,GAAiD,EAAE,CAAC;IACtE,mFAAmF;IAC1E,UAAU,CAAgB;IACnC;2DACuD;IACvD,UAAU,CAAuB;IAChB,MAAM,GAAG,QAAQ,EAAE,CAAC;IACpB,IAAI,GAAG,QAAQ,EAAE,CAAC;IAC3B,UAAU,GAAG,KAAK,CAAC;IAE3B,YAAY,KAAqB;QAChC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IACvC,CAAC;IAEQ,KAAK,CAAC,IAAI,CAAC,OAAoB;QACvC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YACvB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC;YAC3C,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,UAAW,CAAC,OAAO,CAAC,UAAU,CAAC;SAC5D,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,QAAQ,KAAW,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;CACzC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,KAAkB,EAClB,YAA0B,EAC1B,YAAqC,EACrC,OAAwC;IAExC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,YAAY,CAAe,KAAK,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IACtF,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,aAAa;IACrB,OAAO;QACN,kBAAkB,EAAE,IAAI,GAAG,EAAE;QAC7B,SAAS,EAAE,CAAC;QACZ,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,gBAAgB,EAAE,IAAI,GAAG,EAAE;KAC3B,CAAC;AACH,CAAC;AAED;oFACoF;AACpF,SAAS,oBAAoB,CAAC,UAAsB,EAAE,MAAc;IACnE,KAAK,IAAI,GAAG,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrD,IAAI,KAAK;YAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CAAC,KAAyB,EAAE,SAAoB;IACzE,OAAO,cAAc,CACnB,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAC1C,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAC3F,CAAC;AACJ,CAAC"}
|
|
@@ -15,9 +15,41 @@ import type { SyncOptions } from "../collection/index.js";
|
|
|
15
15
|
export declare class TransactionCoordinator {
|
|
16
16
|
private readonly transactor;
|
|
17
17
|
private readonly collections;
|
|
18
|
-
/** Per-stampId tracking:
|
|
18
|
+
/** Per-stampId tracking: the pre-staging snapshot of every collection the stamp may have
|
|
19
|
+
* staged into, which is everything {@link rollback} needs to rewind it.
|
|
20
|
+
*
|
|
21
|
+
* INVARIANT: `stampData.size <= 1` — at most ONE open stamp per coordinator, enforced by the
|
|
22
|
+
* guards in {@link applyActions} and {@link commit} (which throw
|
|
23
|
+
* {@link CoordinatorConcurrentStampError}) and {@link execute} (which returns it as a failure
|
|
24
|
+
* result). The registered collections hold exactly one staged state — one tracker transform
|
|
25
|
+
* set and one pending action queue each, shared by every open stamp — so two concurrent stamps
|
|
26
|
+
* would read each other's uncommitted rows and a commit of either would write the other's
|
|
27
|
+
* staged actions into its own durable log entry. A stamp is released by commit (success or
|
|
28
|
+
* partial) or by rollback; a CLEAN commit failure keeps its entry so `rollback(stampId)`
|
|
29
|
+
* stays a complete recovery, meaning an abandoned failed commit holds the coordinator against
|
|
30
|
+
* new stamps until it is rolled back. The guard sees only what opens a stamp, so two
|
|
31
|
+
* coordinators sharing collection instances — and writers that stage only via Tree.stage /
|
|
32
|
+
* Collection.act, which open none — stay the caller's contract ("own bridge per writer" —
|
|
33
|
+
* docs/transactions.md), not this map's.
|
|
34
|
+
*
|
|
35
|
+
* Each snapshot holds BOTH halves of a collection's staged state — tracker transforms AND
|
|
36
|
+
* the pending action queue — as one {@link Collection.snapshotPending} value. Restoring only
|
|
37
|
+
* the transforms would leave a rolled-back stamp's actions queued, where the next commit on
|
|
38
|
+
* that collection would write them into ITS durable log entry (and a conflicting sync's
|
|
39
|
+
* `replayActions` would re-apply them into the tracker as live data). Keeping the pair in one
|
|
40
|
+
* value makes half-restored staged state unrepresentable here.
|
|
41
|
+
*
|
|
42
|
+
* `preSnapshot` is keyed by the {@link Collection} INSTANCE, not by {@link CollectionId}: the
|
|
43
|
+
* collection map this coordinator is handed is owned by its caller (the Quereus adapter's
|
|
44
|
+
* registry), which may replace the instance stored under an id when a table re-initializes.
|
|
45
|
+
* An id-keyed snapshot would then restore the OLD instance's staged state onto the NEW one;
|
|
46
|
+
* instance keys make that unrepresentable — the new instance simply gets its own capture at
|
|
47
|
+
* the next reconcile, and the stale entry restores a detached object nobody reads.
|
|
48
|
+
*
|
|
49
|
+
* Capture is LAZY: a collection enters the map at the first {@link applyActions} after it
|
|
50
|
+
* appears in `this.collections` (see {@link captureUncaptured}), so a collection registered
|
|
51
|
+
* mid-transaction is still captured before anything stages into it. */
|
|
19
52
|
private stampData;
|
|
20
|
-
private nextStampOrder;
|
|
21
53
|
constructor(transactor: ITransactor, collections: Map<CollectionId, Collection<any>>);
|
|
22
54
|
/**
|
|
23
55
|
* Apply actions to collections (called by engines during statement execution).
|
|
@@ -30,8 +62,49 @@ export declare class TransactionCoordinator {
|
|
|
30
62
|
* @param stampId - The transaction stamp ID to tag actions with
|
|
31
63
|
*/
|
|
32
64
|
applyActions(actions: CollectionActions[], stampId: string): Promise<void>;
|
|
65
|
+
/** The id of the open stamp {@link stampData} tracks when it is not `stampId`; undefined when
|
|
66
|
+
* no OTHER stamp is open. The single-open-stamp invariant on {@link stampData} is what makes
|
|
67
|
+
* "the" (singular) correct here. */
|
|
68
|
+
private openStampOtherThan;
|
|
69
|
+
/**
|
|
70
|
+
* Capture the pre-staging state of every registered collection `into` does not already hold.
|
|
71
|
+
*
|
|
72
|
+
* Called on EVERY {@link applyActions}, not only a stamp's first. `this.collections` is owned
|
|
73
|
+
* by the caller (the Quereus adapter's registry) and grows as tables open mid-transaction; a
|
|
74
|
+
* collection registered after the stamp's first call would otherwise be visible to commit but
|
|
75
|
+
* absent from every snapshot, so {@link rollback} would never visit it and its staged state
|
|
76
|
+
* would survive into the next transaction's durable log entry.
|
|
77
|
+
*
|
|
78
|
+
* `applyActions` is the right capture point because it precedes any staging that call performs
|
|
79
|
+
* — and on the Quereus path, where the vtab stages directly into the trees, the awaited
|
|
80
|
+
* empty-actions applyActions call exists precisely to be that pre-stage barrier (see
|
|
81
|
+
* optimystic-module.ts's "applyActions before any collection.stage" invariant).
|
|
82
|
+
*
|
|
83
|
+
* The already-captured guard is load-bearing: registration is idempotent (the adapter
|
|
84
|
+
* re-registers already-open index trees), and re-capturing a collection this stamp already
|
|
85
|
+
* staged into would record a DIRTY state as "before", making rollback preserve the very
|
|
86
|
+
* actions it must discard.
|
|
87
|
+
*
|
|
88
|
+
* Synchronous and await-free BY CONTRACT, for the same reason execute()'s pre-stage snapshot
|
|
89
|
+
* loop is: an interleaved stage would land inside a snapshot. Callers must not await between
|
|
90
|
+
* this call and the staging it guards.
|
|
91
|
+
*
|
|
92
|
+
* NOTE: this runs per applyActions call rather than once per transaction. Per-call cost for an
|
|
93
|
+
* already-captured collection is one Map.has; snapshotPending (which deep-copies the transforms)
|
|
94
|
+
* still runs at most once per collection per stamp. Unmeasured. If the registered-collection
|
|
95
|
+
* count ever grows large enough for the scan itself to matter, track a per-stamp "collections
|
|
96
|
+
* map size at last capture" rather than dropping the reconcile.
|
|
97
|
+
*/
|
|
98
|
+
private captureUncaptured;
|
|
33
99
|
/**
|
|
34
|
-
*
|
|
100
|
+
* Stage each action against its collection, tagged `transaction: stampId`, without touching
|
|
101
|
+
* the {@link stampData} bookkeeping.
|
|
102
|
+
*
|
|
103
|
+
* That tag is a contract, not an implementation detail: it is the provenance the rollback tests
|
|
104
|
+
* read (`expectNoActionsFromStamp` in coordinator-rollback-pending.spec.ts) to tell one stamp's
|
|
105
|
+
* queued actions from another's. Only {@link applyActions} calls this; the split exists just to
|
|
106
|
+
* keep the single-open-stamp guard and the pre-stage capture readable apart from the staging
|
|
107
|
+
* loop.
|
|
35
108
|
*/
|
|
36
109
|
private applyActionsRaw;
|
|
37
110
|
/**
|
|
@@ -91,9 +164,20 @@ export declare class TransactionCoordinator {
|
|
|
91
164
|
/**
|
|
92
165
|
* Rollback a transaction (undo only the given stampId's applied actions).
|
|
93
166
|
*
|
|
94
|
-
* Restores
|
|
95
|
-
*
|
|
96
|
-
*
|
|
167
|
+
* Restores each collection's staged state — tracker transforms and the pending action
|
|
168
|
+
* queue — to the snapshot taken before the stampId's first applyActions call. Because the
|
|
169
|
+
* coordinator allows at most ONE open stamp (the invariant on {@link stampData}), there is
|
|
170
|
+
* never a sibling stamp whose staged state that restore could clobber, so rewinding is the
|
|
171
|
+
* whole of rollback.
|
|
172
|
+
*
|
|
173
|
+
* Rolling back a stamp with no tracked entry — never opened, or already released by a commit
|
|
174
|
+
* or an earlier rollback — is a no-op.
|
|
175
|
+
*
|
|
176
|
+
* NOTE: this method is complete only while that invariant holds. If the guard is ever relaxed
|
|
177
|
+
* to permit concurrent stamps, a plain rewind stops being enough — it would discard a sibling
|
|
178
|
+
* stamp's staged state along with this one — and the per-collection-earliest-capture plus
|
|
179
|
+
* survivor-replay this method used to carry has to come back. Recover it from commit 26718f8a
|
|
180
|
+
* (`ticket(implement): coordinator-drop-multi-stamp-replay-machinery`) rather than re-deriving.
|
|
97
181
|
*
|
|
98
182
|
* @param stampId - The transaction stamp ID to rollback
|
|
99
183
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/transaction/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAW,YAAY,EAAE,UAAU,EAAwC,MAAM,aAAa,CAAC;AACxH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAG5H,OAAO,KAAK,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/transaction/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAW,YAAY,EAAE,UAAU,EAAwC,MAAM,aAAa,CAAC;AACxH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAG5H,OAAO,KAAK,EAAE,UAAU,EAAsB,MAAM,6BAA6B,CAAC;AAClF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AA2C1D;;;;;;;;;GASG;AACH,qBAAa,sBAAsB;IAwCjC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAxC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2EAiCuE;IACvE,OAAO,CAAC,SAAS,CAEZ;gBAGa,UAAU,EAAE,WAAW,EACvB,WAAW,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAGjE;;;;;;;;;OASG;IACG,YAAY,CACjB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAwBhB;;wCAEoC;IACpC,OAAO,CAAC,kBAAkB;IAO1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;;;;;;OASG;YACW,eAAe;IAiB7B;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAsF5E;;;;;;;;;;;;;;;;;;;;;;OAsBG;YACW,UAAU;IAkExB;;;;;;OAMG;YACW,iBAAiB;IAkK/B;;;;;;;;;;;;;;;;;;;OAmBG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC9C;;;;;;OAMG;IACH,aAAa,IAAI,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC;IAe9C;;;;;OAKG;IACH,eAAe,IAAI,IAAI;IAMvB;;OAEG;IACH,mBAAmB,IAAI,cAAc,EAAE;IAQvC;;OAEG;IACH,qBAAqB,IAAI,IAAI;IAM7B;;;;;;;;OAQG;IACG,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IA+R7F;;;;OAIG;YACW,wBAAwB;IA8EtC;;;;;;;;;;OAUG;YACW,qBAAqB;IA2EnC;;;;;;;OAOG;YACW,WAAW;IAmCzB;;;;;;;;;;OAUG;YACW,SAAS;IA4DvB;;;;OAIG;YACW,cAAc;IAwC5B;;;;;;OAMG;YACW,WAAW;IA4DzB;;;;OAIG;YACW,gBAAgB;IA0E9B;;;;;OAKG;YACW,WAAW;CAkBzB"}
|