@optimystic/db-p2p 1.0.0-beta.3 → 1.0.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/cluster/block-transfer-service.d.ts +73 -1
- package/dist/src/cluster/block-transfer-service.d.ts.map +1 -1
- package/dist/src/cluster/block-transfer-service.js +70 -3
- package/dist/src/cluster/block-transfer-service.js.map +1 -1
- package/dist/src/cluster/block-transfer.d.ts +16 -1
- package/dist/src/cluster/block-transfer.d.ts.map +1 -1
- package/dist/src/cluster/block-transfer.js +73 -72
- package/dist/src/cluster/block-transfer.js.map +1 -1
- package/dist/src/cluster/client.d.ts +4 -6
- package/dist/src/cluster/client.d.ts.map +1 -1
- package/dist/src/cluster/client.js +8 -13
- package/dist/src/cluster/client.js.map +1 -1
- package/dist/src/cluster/cluster-policy.d.ts +2 -1
- package/dist/src/cluster/cluster-policy.d.ts.map +1 -1
- package/dist/src/cluster/cluster-policy.js.map +1 -1
- package/dist/src/cluster/cluster-repo.d.ts +126 -6
- package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
- package/dist/src/cluster/cluster-repo.js +378 -50
- package/dist/src/cluster/cluster-repo.js.map +1 -1
- package/dist/src/cluster/commit-proof.js +2 -2
- package/dist/src/cluster/race-resolution.d.ts +51 -7
- package/dist/src/cluster/race-resolution.d.ts.map +1 -1
- package/dist/src/cluster/race-resolution.js +71 -7
- package/dist/src/cluster/race-resolution.js.map +1 -1
- package/dist/src/cluster/rebalance-monitor.d.ts +67 -5
- package/dist/src/cluster/rebalance-monitor.d.ts.map +1 -1
- package/dist/src/cluster/rebalance-monitor.js +120 -26
- package/dist/src/cluster/rebalance-monitor.js.map +1 -1
- package/dist/src/cluster/spread-on-churn.d.ts.map +1 -1
- package/dist/src/cluster/spread-on-churn.js +34 -47
- package/dist/src/cluster/spread-on-churn.js.map +1 -1
- package/dist/src/cohort-topic/host.d.ts.map +1 -1
- package/dist/src/cohort-topic/host.js +8 -6
- package/dist/src/cohort-topic/host.js.map +1 -1
- package/dist/src/cohort-topic/membership-source.js +1 -1
- package/dist/src/cohort-topic/membership-source.js.map +1 -1
- package/dist/src/cohort-topic/peer-codec.d.ts.map +1 -1
- package/dist/src/cohort-topic/peer-codec.js +5 -2
- package/dist/src/cohort-topic/peer-codec.js.map +1 -1
- package/dist/src/cohort-topic/stream-util.d.ts +24 -3
- package/dist/src/cohort-topic/stream-util.d.ts.map +1 -1
- package/dist/src/cohort-topic/stream-util.js +36 -3
- package/dist/src/cohort-topic/stream-util.js.map +1 -1
- package/dist/src/cohort-topic/topic-router.d.ts +9 -0
- package/dist/src/cohort-topic/topic-router.d.ts.map +1 -1
- package/dist/src/cohort-topic/topic-router.js +12 -2
- package/dist/src/cohort-topic/topic-router.js.map +1 -1
- package/dist/src/dispute/client.d.ts.map +1 -1
- package/dist/src/dispute/client.js +15 -3
- package/dist/src/dispute/client.js.map +1 -1
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/libp2p-key-network.d.ts +78 -17
- package/dist/src/libp2p-key-network.d.ts.map +1 -1
- package/dist/src/libp2p-key-network.js +234 -147
- package/dist/src/libp2p-key-network.js.map +1 -1
- package/dist/src/libp2p-node-base.d.ts +35 -1
- package/dist/src/libp2p-node-base.d.ts.map +1 -1
- package/dist/src/libp2p-node-base.js +151 -26
- package/dist/src/libp2p-node-base.js.map +1 -1
- package/dist/src/libp2p-node-rn.d.ts +2 -2
- package/dist/src/libp2p-node-rn.d.ts.map +1 -1
- package/dist/src/libp2p-node-rn.js.map +1 -1
- package/dist/src/libp2p-node.d.ts +2 -2
- package/dist/src/libp2p-node.d.ts.map +1 -1
- package/dist/src/libp2p-node.js.map +1 -1
- package/dist/src/logger.d.ts.map +1 -1
- package/dist/src/logger.js +6 -1
- package/dist/src/logger.js.map +1 -1
- package/dist/src/matchmaking/query-transport.d.ts +3 -4
- package/dist/src/matchmaking/query-transport.d.ts.map +1 -1
- package/dist/src/matchmaking/query-transport.js +9 -9
- package/dist/src/matchmaking/query-transport.js.map +1 -1
- package/dist/src/network/network-manager-service.d.ts +10 -5
- package/dist/src/network/network-manager-service.d.ts.map +1 -1
- package/dist/src/network/network-manager-service.js +11 -2
- package/dist/src/network/network-manager-service.js.map +1 -1
- package/dist/src/network/relay-reservation.d.ts +170 -0
- package/dist/src/network/relay-reservation.d.ts.map +1 -0
- package/dist/src/network/relay-reservation.js +527 -0
- package/dist/src/network/relay-reservation.js.map +1 -0
- package/dist/src/pend-validation.d.ts +3 -2
- package/dist/src/pend-validation.d.ts.map +1 -1
- package/dist/src/pend-validation.js +3 -2
- package/dist/src/pend-validation.js.map +1 -1
- package/dist/src/protocol-client.d.ts +8 -1
- package/dist/src/protocol-client.d.ts.map +1 -1
- package/dist/src/protocol-client.js +11 -0
- package/dist/src/protocol-client.js.map +1 -1
- package/dist/src/reactivity/forwarder-host.d.ts +2 -1
- package/dist/src/reactivity/forwarder-host.d.ts.map +1 -1
- package/dist/src/reactivity/forwarder-host.js +2 -1
- package/dist/src/reactivity/forwarder-host.js.map +1 -1
- package/dist/src/reactivity/origination-manager.d.ts +3 -3
- package/dist/src/reactivity/origination-manager.js +3 -3
- package/dist/src/reactivity/recover-transport.d.ts +22 -14
- package/dist/src/reactivity/recover-transport.d.ts.map +1 -1
- package/dist/src/reactivity/recover-transport.js +32 -19
- package/dist/src/reactivity/recover-transport.js.map +1 -1
- package/dist/src/reactivity/subscription-manager.d.ts +2 -2
- package/dist/src/reactivity/topic-bytes.d.ts +6 -7
- package/dist/src/reactivity/topic-bytes.d.ts.map +1 -1
- package/dist/src/reactivity/topic-bytes.js +8 -9
- package/dist/src/reactivity/topic-bytes.js.map +1 -1
- package/dist/src/repo/client.d.ts +5 -2
- package/dist/src/repo/client.d.ts.map +1 -1
- package/dist/src/repo/client.js +49 -40
- package/dist/src/repo/client.js.map +1 -1
- package/dist/src/repo/cluster-coordinator.d.ts +77 -5
- package/dist/src/repo/cluster-coordinator.d.ts.map +1 -1
- package/dist/src/repo/cluster-coordinator.js +131 -20
- package/dist/src/repo/cluster-coordinator.js.map +1 -1
- package/dist/src/repo/coordinator-repo.d.ts +238 -122
- package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
- package/dist/src/repo/coordinator-repo.js +625 -472
- package/dist/src/repo/coordinator-repo.js.map +1 -1
- package/dist/src/repo/i-under-replication-ledger.d.ts +87 -0
- package/dist/src/repo/i-under-replication-ledger.d.ts.map +1 -0
- package/dist/src/repo/i-under-replication-ledger.js +2 -0
- package/dist/src/repo/i-under-replication-ledger.js.map +1 -0
- package/dist/src/repo/kv-under-replication-ledger.d.ts +91 -0
- package/dist/src/repo/kv-under-replication-ledger.d.ts.map +1 -0
- package/dist/src/repo/kv-under-replication-ledger.js +287 -0
- package/dist/src/repo/kv-under-replication-ledger.js.map +1 -0
- package/dist/src/repo/responsibility.d.ts +37 -0
- package/dist/src/repo/responsibility.d.ts.map +1 -0
- package/dist/src/repo/responsibility.js +37 -0
- package/dist/src/repo/responsibility.js.map +1 -0
- package/dist/src/repo/service.d.ts +44 -15
- package/dist/src/repo/service.d.ts.map +1 -1
- package/dist/src/repo/service.js +64 -27
- package/dist/src/repo/service.js.map +1 -1
- package/dist/src/repo/stuck-reservation.d.ts +127 -0
- package/dist/src/repo/stuck-reservation.d.ts.map +1 -0
- package/dist/src/repo/stuck-reservation.js +179 -0
- package/dist/src/repo/stuck-reservation.js.map +1 -0
- package/dist/src/repo/under-replication-drain.d.ts +208 -0
- package/dist/src/repo/under-replication-drain.d.ts.map +1 -0
- package/dist/src/repo/under-replication-drain.js +461 -0
- package/dist/src/repo/under-replication-drain.js.map +1 -0
- package/dist/src/rn.d.ts +5 -0
- package/dist/src/rn.d.ts.map +1 -1
- package/dist/src/rn.js +5 -0
- package/dist/src/rn.js.map +1 -1
- package/dist/src/storage/block-latch.d.ts +3 -2
- package/dist/src/storage/block-latch.d.ts.map +1 -1
- package/dist/src/storage/block-latch.js +7 -4
- package/dist/src/storage/block-latch.js.map +1 -1
- package/dist/src/storage/block-storage.d.ts +45 -3
- package/dist/src/storage/block-storage.d.ts.map +1 -1
- package/dist/src/storage/block-storage.js +156 -9
- package/dist/src/storage/block-storage.js.map +1 -1
- package/dist/src/storage/i-block-storage.d.ts +57 -5
- package/dist/src/storage/i-block-storage.d.ts.map +1 -1
- package/dist/src/storage/i-block-storage.js.map +1 -1
- package/dist/src/storage/pending-claim.d.ts +167 -0
- package/dist/src/storage/pending-claim.d.ts.map +1 -0
- package/dist/src/storage/pending-claim.js +156 -0
- package/dist/src/storage/pending-claim.js.map +1 -0
- package/dist/src/storage/raw-store-codec.d.ts +13 -0
- package/dist/src/storage/raw-store-codec.d.ts.map +1 -1
- package/dist/src/storage/raw-store-codec.js +24 -3
- package/dist/src/storage/raw-store-codec.js.map +1 -1
- package/dist/src/storage/restoration-coordinator.d.ts.map +1 -1
- package/dist/src/storage/restoration-coordinator.js +2 -1
- package/dist/src/storage/restoration-coordinator.js.map +1 -1
- package/dist/src/storage/ring-shift-coordinator.d.ts.map +1 -1
- package/dist/src/storage/ring-shift-coordinator.js +3 -3
- package/dist/src/storage/ring-shift-coordinator.js.map +1 -1
- package/dist/src/storage/storage-repo.d.ts +122 -5
- package/dist/src/storage/storage-repo.d.ts.map +1 -1
- package/dist/src/storage/storage-repo.js +245 -68
- package/dist/src/storage/storage-repo.js.map +1 -1
- package/dist/src/storage/struct.d.ts +58 -0
- package/dist/src/storage/struct.d.ts.map +1 -1
- package/dist/src/testing/mesh-harness.d.ts +77 -11
- package/dist/src/testing/mesh-harness.d.ts.map +1 -1
- package/dist/src/testing/mesh-harness.js +226 -100
- package/dist/src/testing/mesh-harness.js.map +1 -1
- package/package.json +2 -2
- package/readme.md +27 -3
- package/src/cluster/block-transfer-service.ts +132 -4
- package/src/cluster/block-transfer.ts +79 -84
- package/src/cluster/client.ts +115 -119
- package/src/cluster/cluster-policy.ts +2 -1
- package/src/cluster/cluster-repo.ts +422 -56
- package/src/cluster/commit-proof.ts +2 -2
- package/src/cluster/race-resolution.ts +76 -7
- package/src/cluster/rebalance-monitor.ts +677 -539
- package/src/cluster/spread-on-churn.ts +34 -54
- package/src/cohort-topic/host.ts +8 -6
- package/src/cohort-topic/membership-source.ts +1 -1
- package/src/cohort-topic/peer-codec.ts +34 -31
- package/src/cohort-topic/stream-util.ts +39 -4
- package/src/cohort-topic/topic-router.ts +12 -2
- package/src/dispute/client.ts +17 -7
- package/src/index.ts +64 -59
- package/src/libp2p-key-network.ts +1377 -1260
- package/src/libp2p-node-base.ts +186 -27
- package/src/libp2p-node-rn.ts +31 -30
- package/src/libp2p-node.ts +37 -36
- package/src/logger.ts +6 -1
- package/src/matchmaking/query-transport.ts +9 -9
- package/src/network/network-manager-service.ts +16 -5
- package/src/network/relay-reservation.ts +636 -0
- package/src/pend-validation.ts +3 -2
- package/src/protocol-client.ts +13 -1
- package/src/reactivity/forwarder-host.ts +2 -1
- package/src/reactivity/origination-manager.ts +3 -3
- package/src/reactivity/recover-transport.ts +39 -22
- package/src/reactivity/subscription-manager.ts +2 -2
- package/src/reactivity/topic-bytes.ts +35 -37
- package/src/repo/client.ts +172 -173
- package/src/repo/cluster-coordinator.ts +145 -19
- package/src/repo/coordinator-repo.ts +652 -505
- package/src/repo/i-under-replication-ledger.ts +89 -0
- package/src/repo/kv-under-replication-ledger.ts +302 -0
- package/src/repo/responsibility.ts +48 -0
- package/src/repo/service.ts +76 -39
- package/src/repo/stuck-reservation.ts +224 -0
- package/src/repo/under-replication-drain.ts +582 -0
- package/src/rn.ts +74 -69
- package/src/storage/block-latch.ts +7 -4
- package/src/storage/block-storage.ts +161 -10
- package/src/storage/i-block-storage.ts +60 -5
- package/src/storage/pending-claim.ts +200 -0
- package/src/storage/raw-store-codec.ts +26 -3
- package/src/storage/restoration-coordinator.ts +212 -211
- package/src/storage/ring-shift-coordinator.ts +271 -271
- package/src/storage/storage-repo.ts +280 -72
- package/src/storage/struct.ts +58 -0
- package/src/testing/mesh-harness.ts +293 -112
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol-client.js","sourceRoot":"","sources":["../../src/protocol-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAG5E,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,GAAG,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,cAAc,CAAC;AAEtD,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACjC,IAAI,GAAG,uBAAuB,CAAC;IACxC,YAAY,IAAY,EAAE,QAAgB,EAAE,EAAU;QACrD,KAAK,CAAC,sBAAsB,IAAI,aAAa,QAAQ,UAAU,EAAE,IAAI,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IAChC,CAAC;CACD;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,kBAAkB,CAAC;AAE9D,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACrC,IAAI,GAAG,2BAA2B,CAAC;IAC5C,YAAY,IAAY,EAAE,QAAgB,EAAE,EAAU;QACrD,KAAK,CAAC,0BAA0B,IAAI,aAAa,QAAQ,UAAU,EAAE,IAAI,CAAC,CAAC;QAC3E,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACpC,CAAC;CACD;AAED,oEAAoE;AACpE,MAAM,OAAO,cAAc;IAEN;IACA;IAFpB,YACoB,MAAc,EACd,WAAyB;QADzB,WAAM,GAAN,MAAM,CAAQ;QACd,gBAAW,GAAX,WAAW,CAAc;IACzC,CAAC;
|
|
1
|
+
{"version":3,"file":"protocol-client.js","sourceRoot":"","sources":["../../src/protocol-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -174,7 +174,8 @@ export declare class ReactivityForwarderHost {
|
|
|
174
174
|
* (`isDraining(now)`) returns its {@link RotationRedirectV1}; once `T_drain` closes, evicts the gate **and**
|
|
175
175
|
* the topic's served `PushState` (the old tail originates nothing further — this also reclaims the
|
|
176
176
|
* `served` / `ingestTails` maps the 12.31 review flagged as un-evicted on rotation) and returns `undefined`,
|
|
177
|
-
* so the next request
|
|
177
|
+
* so this member declines the next request and the subscriber's transport tries the next cohort member
|
|
178
|
+
* (re-walking / chain-reading only once every member declines).
|
|
178
179
|
*/
|
|
179
180
|
rotationRedirectFor(oldTopicId: Uint8Array, now: number): RotationRedirectV1 | undefined;
|
|
180
181
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forwarder-host.d.ts","sourceRoot":"","sources":["../../../src/reactivity/forwarder-host.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"forwarder-host.d.ts","sourceRoot":"","sources":["../../../src/reactivity/forwarder-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -235,7 +235,8 @@ export class ReactivityForwarderHost {
|
|
|
235
235
|
* (`isDraining(now)`) returns its {@link RotationRedirectV1}; once `T_drain` closes, evicts the gate **and**
|
|
236
236
|
* the topic's served `PushState` (the old tail originates nothing further — this also reclaims the
|
|
237
237
|
* `served` / `ingestTails` maps the 12.31 review flagged as un-evicted on rotation) and returns `undefined`,
|
|
238
|
-
* so the next request
|
|
238
|
+
* so this member declines the next request and the subscriber's transport tries the next cohort member
|
|
239
|
+
* (re-walking / chain-reading only once every member declines).
|
|
239
240
|
*/
|
|
240
241
|
rotationRedirectFor(oldTopicId, now) {
|
|
241
242
|
const key = this.topicKey(oldTopicId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forwarder-host.js","sourceRoot":"","sources":["../../../src/reactivity/forwarder-host.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"forwarder-host.js","sourceRoot":"","sources":["../../../src/reactivity/forwarder-host.ts"],"names":[],"mappings":"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"}
|
|
@@ -100,9 +100,9 @@ export declare class ReactivityOriginationManager {
|
|
|
100
100
|
* recover serve begins redirecting to the new tree.
|
|
101
101
|
*
|
|
102
102
|
* **Encoding contract.** `ctx.tailId` is the reactivity tail anchor bytes the node resolved
|
|
103
|
-
* (`reactivityTailBytes(event.tailId)` in production — the SAME utf8 encoding origination's membership
|
|
104
|
-
* and a subscriber's `reactivityTopicId(reactivityTailBytes(tail))` use,
|
|
105
|
-
*
|
|
103
|
+
* (`reactivityTailBytes(event.tailId)` in production — the SAME raw utf8 encoding origination's membership
|
|
104
|
+
* gate and a subscriber's `reactivityTopicId(reactivityTailBytes(tail))` use, never a pre-hashed digest).
|
|
105
|
+
* So `oldTopicId = reactivityTopicId(oldAnchorBytes)` is byte-identical to the topic a
|
|
106
106
|
* subscriber subscribed under — a mismatch would silently never redirect.
|
|
107
107
|
*/
|
|
108
108
|
private detectTailRotation;
|
|
@@ -110,9 +110,9 @@ export class ReactivityOriginationManager {
|
|
|
110
110
|
* recover serve begins redirecting to the new tree.
|
|
111
111
|
*
|
|
112
112
|
* **Encoding contract.** `ctx.tailId` is the reactivity tail anchor bytes the node resolved
|
|
113
|
-
* (`reactivityTailBytes(event.tailId)` in production — the SAME utf8 encoding origination's membership
|
|
114
|
-
* and a subscriber's `reactivityTopicId(reactivityTailBytes(tail))` use,
|
|
115
|
-
*
|
|
113
|
+
* (`reactivityTailBytes(event.tailId)` in production — the SAME raw utf8 encoding origination's membership
|
|
114
|
+
* gate and a subscriber's `reactivityTopicId(reactivityTailBytes(tail))` use, never a pre-hashed digest).
|
|
115
|
+
* So `oldTopicId = reactivityTopicId(oldAnchorBytes)` is byte-identical to the topic a
|
|
116
116
|
* subscriber subscribed under — a mismatch would silently never redirect.
|
|
117
117
|
*/
|
|
118
118
|
detectTailRotation(event, ctx) {
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
* - {@link createRecoverRequestHandler} / {@link registerRecoverHandler} — the **inbound** serve handler.
|
|
20
20
|
* Decode (bounded) → verify the request's peer-key signature against the dialing peer → reject a
|
|
21
21
|
* replay/stale request → resolve the live `PushState` → `serveBackfill` / `serveResume` → reply. Any
|
|
22
|
-
* failure
|
|
22
|
+
* failure **declines** rather than throwing out of the handler: the member sends a zero-length reply (no
|
|
23
|
+
* result), and the dialing transport falls through to the next cohort candidate.
|
|
23
24
|
*
|
|
24
25
|
* ## Dial-target encoding bridge (load-bearing)
|
|
25
26
|
*
|
|
@@ -81,8 +82,12 @@ export declare class RotationRedirectError extends Error {
|
|
|
81
82
|
}
|
|
82
83
|
/** The wire exchange seam: open the recover protocol to `target`, send `frame`, return the bounded reply. */
|
|
83
84
|
export interface RecoverDialer {
|
|
84
|
-
/**
|
|
85
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Exchange one request frame for one reply frame with `target` (peer-id string). Resolves `undefined` when
|
|
87
|
+
* the member declined (no served state, a failed signature / replay check, an undecodable request) — the
|
|
88
|
+
* same contract as {@link requestResponse}. Rejects on a dial failure.
|
|
89
|
+
*/
|
|
90
|
+
exchange(target: string, frame: Uint8Array): Promise<Uint8Array | undefined>;
|
|
86
91
|
}
|
|
87
92
|
/** Build the production libp2p-backed {@link RecoverDialer} over {@link requestResponse}. */
|
|
88
93
|
export declare function createLibp2pRecoverDialer(node: Libp2p, recoverProtocol?: string, maxBytes?: number): RecoverDialer;
|
|
@@ -102,9 +107,11 @@ export interface Libp2pReactivityRecoverTransportOptions {
|
|
|
102
107
|
/**
|
|
103
108
|
* The outbound recover transport: one instance per node, exposing the two db-core function seams against it.
|
|
104
109
|
* Each returned transport dials the **sticky primary first** (one round trip after a brief flap), falling
|
|
105
|
-
* back to a **cohort-walk** member on a dial failure
|
|
106
|
-
* can answer
|
|
107
|
-
*
|
|
110
|
+
* back to a **cohort-walk** member on a dial failure *or* when the dialed member declines (any member that
|
|
111
|
+
* holds the topic's gossiped `PushState` can answer, so one member with nothing to serve must not end the
|
|
112
|
+
* walk). A kind mismatch, an undecodable reply, or every target failing / declining surfaces as a rejection
|
|
113
|
+
* so the caller's retry/escalation policy (the subscription manager's backfill escalation, or
|
|
114
|
+
* `manager.resume()`'s caller) takes over.
|
|
108
115
|
*/
|
|
109
116
|
export declare class Libp2pReactivityRecoverTransport {
|
|
110
117
|
private readonly dialer;
|
|
@@ -118,10 +125,13 @@ export declare class Libp2pReactivityRecoverTransport {
|
|
|
118
125
|
/** The {@link ResumeTransport} for `(topicId, collectionId)` — frames + dials a signed {@link ResumeV1}. */
|
|
119
126
|
resumeTransport(topicId: Uint8Array, collectionId: string): ResumeTransport;
|
|
120
127
|
/**
|
|
121
|
-
* Exchange one recover frame with the first
|
|
122
|
-
* member. A **dial failure**
|
|
123
|
-
*
|
|
124
|
-
*
|
|
128
|
+
* Exchange one recover frame with the first target that answers: sticky primary, then each cohort-walk
|
|
129
|
+
* member. A **dial failure** and a **declined** request (the member had no result — no served state, a
|
|
130
|
+
* failed signature / replay check, an undecodable request) both fall through to the next candidate. A
|
|
131
|
+
* reply frame is **terminal** (the member answered for the cohort): a `kind: "rotated"` redirect throws
|
|
132
|
+
* {@link RotationRedirectError}, and a reply that fails to decode or decodes to the wrong `kind` is a
|
|
133
|
+
* protocol error. When no candidate answers, throws the last candidate's outcome — a
|
|
134
|
+
* {@link NoResultReplyError} if it declined, its dial error if it failed to dial.
|
|
125
135
|
*/
|
|
126
136
|
private exchange;
|
|
127
137
|
/**
|
|
@@ -160,10 +170,8 @@ export interface RecoverServeDeps {
|
|
|
160
170
|
* Build the recover serve callback for {@link handleRequestResponse}: it returns the reply frame, or
|
|
161
171
|
* `undefined` on a decode/verify/replay/resolve failure. It never throws out of the handler.
|
|
162
172
|
*
|
|
163
|
-
*
|
|
164
|
-
* {@link Libp2pReactivityRecoverTransport
|
|
165
|
-
* than falling through to the next cohort candidate — one member declining ends the whole recover walk.
|
|
166
|
-
* Tracked as `debt-stream-reply-no-result-untyped`.
|
|
173
|
+
* `undefined` reaches the dialer as a zero-length frame, which {@link requestResponse} resolves as no result
|
|
174
|
+
* and {@link Libp2pReactivityRecoverTransport} treats as a decline — it tries the next cohort candidate.
|
|
167
175
|
*/
|
|
168
176
|
export declare function createRecoverRequestHandler(deps: RecoverServeDeps): (frame: Uint8Array, fromPeer: PeerId) => Promise<Uint8Array | undefined>;
|
|
169
177
|
/** Register the inbound recover protocol handler on `node` (request-reply over the recover protocol). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recover-transport.d.ts","sourceRoot":"","sources":["../../../src/reactivity/recover-transport.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"recover-transport.d.ts","sourceRoot":"","sources":["../../../src/reactivity/recover-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
* - {@link createRecoverRequestHandler} / {@link registerRecoverHandler} — the **inbound** serve handler.
|
|
20
20
|
* Decode (bounded) → verify the request's peer-key signature against the dialing peer → reject a
|
|
21
21
|
* replay/stale request → resolve the live `PushState` → `serveBackfill` / `serveResume` → reply. Any
|
|
22
|
-
* failure
|
|
22
|
+
* failure **declines** rather than throwing out of the handler: the member sends a zero-length reply (no
|
|
23
|
+
* result), and the dialing transport falls through to the next cohort candidate.
|
|
23
24
|
*
|
|
24
25
|
* ## Dial-target encoding bridge (load-bearing)
|
|
25
26
|
*
|
|
@@ -33,7 +34,7 @@
|
|
|
33
34
|
*/
|
|
34
35
|
import { peerIdFromString } from "@libp2p/peer-id";
|
|
35
36
|
import { b64urlToBytes, bytesToB64url, reactivityTopicId, serveBackfill, serveResume, backfillSigningPayload, resumeSigningPayload, encodeRecoverRequestV1, decodeRecoverRequestV1, encodeRecoverReplyV1, decodeRecoverReplyV1, } from "@optimystic/db-core";
|
|
36
|
-
import { requestResponse, handleRequestResponse, DEFAULT_STREAM_MAX_BYTES } from "../cohort-topic/stream-util.js";
|
|
37
|
+
import { requestResponse, handleRequestResponse, NoResultReplyError, DEFAULT_STREAM_MAX_BYTES } from "../cohort-topic/stream-util.js";
|
|
37
38
|
import { verifyPeerSig, signPeerSig } from "../cohort-topic/peer-sig.js";
|
|
38
39
|
import { peerIdToBytes, bytesToPeerIdString } from "../cohort-topic/peer-codec.js";
|
|
39
40
|
import { PROTOCOL_REACTIVITY_RECOVER } from "./protocols.js";
|
|
@@ -93,9 +94,11 @@ export function createLibp2pRecoverDialer(node, recoverProtocol = PROTOCOL_REACT
|
|
|
93
94
|
/**
|
|
94
95
|
* The outbound recover transport: one instance per node, exposing the two db-core function seams against it.
|
|
95
96
|
* Each returned transport dials the **sticky primary first** (one round trip after a brief flap), falling
|
|
96
|
-
* back to a **cohort-walk** member on a dial failure
|
|
97
|
-
* can answer
|
|
98
|
-
*
|
|
97
|
+
* back to a **cohort-walk** member on a dial failure *or* when the dialed member declines (any member that
|
|
98
|
+
* holds the topic's gossiped `PushState` can answer, so one member with nothing to serve must not end the
|
|
99
|
+
* walk). A kind mismatch, an undecodable reply, or every target failing / declining surfaces as a rejection
|
|
100
|
+
* so the caller's retry/escalation policy (the subscription manager's backfill escalation, or
|
|
101
|
+
* `manager.resume()`'s caller) takes over.
|
|
99
102
|
*/
|
|
100
103
|
export class Libp2pReactivityRecoverTransport {
|
|
101
104
|
dialer;
|
|
@@ -133,10 +136,13 @@ export class Libp2pReactivityRecoverTransport {
|
|
|
133
136
|
};
|
|
134
137
|
}
|
|
135
138
|
/**
|
|
136
|
-
* Exchange one recover frame with the first
|
|
137
|
-
* member. A **dial failure**
|
|
138
|
-
*
|
|
139
|
-
*
|
|
139
|
+
* Exchange one recover frame with the first target that answers: sticky primary, then each cohort-walk
|
|
140
|
+
* member. A **dial failure** and a **declined** request (the member had no result — no served state, a
|
|
141
|
+
* failed signature / replay check, an undecodable request) both fall through to the next candidate. A
|
|
142
|
+
* reply frame is **terminal** (the member answered for the cohort): a `kind: "rotated"` redirect throws
|
|
143
|
+
* {@link RotationRedirectError}, and a reply that fails to decode or decodes to the wrong `kind` is a
|
|
144
|
+
* protocol error. When no candidate answers, throws the last candidate's outcome — a
|
|
145
|
+
* {@link NoResultReplyError} if it declined, its dial error if it failed to dial.
|
|
140
146
|
*/
|
|
141
147
|
async exchange(kind, frame, topicId, collectionId) {
|
|
142
148
|
const targets = this.selectTargets(topicId, collectionId);
|
|
@@ -154,6 +160,15 @@ export class Libp2pReactivityRecoverTransport {
|
|
|
154
160
|
log("recover dial to %s failed, trying next target: %o", target, err);
|
|
155
161
|
continue;
|
|
156
162
|
}
|
|
163
|
+
if (replyFrame === undefined) {
|
|
164
|
+
// Declined → fall back to the next candidate, resending the same signed frame.
|
|
165
|
+
// NOTE: the resend is admissible only because each node's `CorrelationReplayGuard` is node-local
|
|
166
|
+
// (`RecoverServeDeps.replayGuard`). If the guard is ever shared across a cohort, the retried frame
|
|
167
|
+
// would be rejected everywhere as a replay, and each fallthrough would need a freshly signed request.
|
|
168
|
+
lastErr = new NoResultReplyError(`reactivity recover ${kind} from ${target}`);
|
|
169
|
+
log("recover %s declined by %s, trying next target", kind, target);
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
157
172
|
const reply = decodeRecoverReplyV1(replyFrame, this.maxBytes); // a decode failure here is terminal
|
|
158
173
|
// A rotated cohort answered authoritatively: surface the redirect and stop the walk (terminal, never
|
|
159
174
|
// a fallthrough — the dialed member spoke for the cohort).
|
|
@@ -200,17 +215,17 @@ export class Libp2pReactivityRecoverTransport {
|
|
|
200
215
|
/**
|
|
201
216
|
* Verify the request's peer-key signature against the dialing peer, then admit it through the freshness +
|
|
202
217
|
* anti-replay guard. The dialing peer's id **is** the signer (no signer-id field on the wire); the signature
|
|
203
|
-
* bytes are the anti-replay key (globally unique + authenticated). Returns `false` (
|
|
218
|
+
* bytes are the anti-replay key (globally unique + authenticated). Returns `false` (decline) on a
|
|
204
219
|
* bad signature, a stale/future timestamp, or a replay.
|
|
205
220
|
*/
|
|
206
221
|
function verifyAndAdmit(deps, signerId, payload, signatureB64, timestamp, now) {
|
|
207
222
|
const signature = b64urlToBytes(signatureB64);
|
|
208
223
|
if (!verifyPeerSig(signerId, payload, signature)) {
|
|
209
|
-
log("recover serve: signature verification failed for %s (
|
|
224
|
+
log("recover serve: signature verification failed for %s (declined)", signerId);
|
|
210
225
|
return false;
|
|
211
226
|
}
|
|
212
227
|
if (!deps.replayGuard.accept(signature, peerIdToBytes(signerId), timestamp, now)) {
|
|
213
|
-
log("recover serve: replay/stale request from %s (
|
|
228
|
+
log("recover serve: replay/stale request from %s (declined)", signerId);
|
|
214
229
|
return false;
|
|
215
230
|
}
|
|
216
231
|
return true;
|
|
@@ -230,7 +245,7 @@ function serveBackfillReply(deps, req, now) {
|
|
|
230
245
|
}
|
|
231
246
|
const ps = deps.pushStateForCollection(req.collectionId);
|
|
232
247
|
if (ps === undefined) {
|
|
233
|
-
return undefined; // not a serving member for this collection →
|
|
248
|
+
return undefined; // not a serving member for this collection → decline (the subscriber tries the next member)
|
|
234
249
|
}
|
|
235
250
|
const backfillReply = serveBackfill(ps.replayBuffer, req, ps.collectionId);
|
|
236
251
|
return encodeRecoverReplyV1({ v: 1, kind: "backfill", backfillReply }, maxBytes);
|
|
@@ -270,10 +285,8 @@ function serveResumeReply(deps, req, now) {
|
|
|
270
285
|
* Build the recover serve callback for {@link handleRequestResponse}: it returns the reply frame, or
|
|
271
286
|
* `undefined` on a decode/verify/replay/resolve failure. It never throws out of the handler.
|
|
272
287
|
*
|
|
273
|
-
*
|
|
274
|
-
* {@link Libp2pReactivityRecoverTransport
|
|
275
|
-
* than falling through to the next cohort candidate — one member declining ends the whole recover walk.
|
|
276
|
-
* Tracked as `debt-stream-reply-no-result-untyped`.
|
|
288
|
+
* `undefined` reaches the dialer as a zero-length frame, which {@link requestResponse} resolves as no result
|
|
289
|
+
* and {@link Libp2pReactivityRecoverTransport} treats as a decline — it tries the next cohort candidate.
|
|
277
290
|
*/
|
|
278
291
|
export function createRecoverRequestHandler(deps) {
|
|
279
292
|
const maxBytes = deps.maxBytes ?? DEFAULT_STREAM_MAX_BYTES;
|
|
@@ -298,8 +311,8 @@ export function createRecoverRequestHandler(deps) {
|
|
|
298
311
|
}
|
|
299
312
|
catch (err) {
|
|
300
313
|
// A malformed/foreign request (decode failure, foreign collectionId from serve*) must never throw
|
|
301
|
-
// out of the stream handler: log +
|
|
302
|
-
log("recover serve: dropping request (
|
|
314
|
+
// out of the stream handler: log + decline (a zero-length reply; the dialer tries the next member).
|
|
315
|
+
log("recover serve: dropping request (declined): %o", err);
|
|
303
316
|
return Promise.resolve(undefined);
|
|
304
317
|
}
|
|
305
318
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recover-transport.js","sourceRoot":"","sources":["../../../src/reactivity/recover-transport.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"recover-transport.js","sourceRoot":"","sources":["../../../src/reactivity/recover-transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,8 +42,8 @@ export interface ReactivitySubscriptionManagerOptions {
|
|
|
42
42
|
*
|
|
43
43
|
* **Load-bearing encoding contract.** When a production subscribe factory converts a `BlockId` tail to
|
|
44
44
|
* these bytes it MUST use `reactivityTailBytes(tailId)` (`reactivity/topic-bytes.ts`) — the SAME function
|
|
45
|
-
* origination's membership gate uses —
|
|
46
|
-
*
|
|
45
|
+
* origination's membership gate uses — never a pre-hashed digest of the id, which would double-hash.
|
|
46
|
+
* Origination derives the topic's `coord_0` cohort from `reactivityTopicId(reactivityTailBytes(
|
|
47
47
|
* tailId))`; if this side feeds differently-encoded bytes it subscribes to a *different* coord and
|
|
48
48
|
* origination silently never reaches it (the `topic-bytes-encoding` spec pins the coord-equality).
|
|
49
49
|
*/
|
|
@@ -9,11 +9,10 @@
|
|
|
9
9
|
* feed it the **same** bytes for a given tail, or they resolve different coords and origination silently
|
|
10
10
|
* never reaches subscribers (green tests, dead feature).
|
|
11
11
|
*
|
|
12
|
-
* This module is that single source of truth: `reactivityTailBytes(tailId)
|
|
13
|
-
* the
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* and (b) force the synchronous origination gate to become async.
|
|
12
|
+
* This module is that single source of truth: `reactivityTailBytes(tailId)` is the tail's routing key
|
|
13
|
+
* (db-core's `routingKeyForBlock`, the raw utf8 of the id) — the same bytes every cohort lookup for that
|
|
14
|
+
* block is keyed on. It must stay raw: a pre-hashed digest would double-hash relative to the spec's
|
|
15
|
+
* `H(tailId ‖ "reactivity")`.
|
|
17
16
|
*
|
|
18
17
|
* It lives in the reactivity surface (not buried in the gate) so the subscribe path and the gate import the
|
|
19
18
|
* exact same function rather than re-deriving the encoding independently. The
|
|
@@ -21,8 +20,8 @@
|
|
|
21
20
|
*/
|
|
22
21
|
import type { BlockId } from "@optimystic/db-core";
|
|
23
22
|
/**
|
|
24
|
-
* The pinned `BlockId` → raw tail bytes encoding fed into `reactivityTopicId`: the
|
|
25
|
-
* tail block-id string (
|
|
23
|
+
* The pinned `BlockId` → raw tail bytes encoding fed into `reactivityTopicId`: the tail's routing key, i.e.
|
|
24
|
+
* the **raw** utf8 bytes of the tail block-id string (never a pre-hashed digest).
|
|
26
25
|
*
|
|
27
26
|
* Load-bearing: origination and the subscriber side must call this **same** function for a given tail (see
|
|
28
27
|
* the module doc) — a mismatch resolves different `coord_0`s and origination silently never reaches
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic-bytes.d.ts","sourceRoot":"","sources":["../../../src/reactivity/topic-bytes.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"topic-bytes.d.ts","sourceRoot":"","sources":["../../../src/reactivity/topic-bytes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,UAAU,CAE/D"}
|
|
@@ -9,26 +9,25 @@
|
|
|
9
9
|
* feed it the **same** bytes for a given tail, or they resolve different coords and origination silently
|
|
10
10
|
* never reaches subscribers (green tests, dead feature).
|
|
11
11
|
*
|
|
12
|
-
* This module is that single source of truth: `reactivityTailBytes(tailId)
|
|
13
|
-
* the
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* and (b) force the synchronous origination gate to become async.
|
|
12
|
+
* This module is that single source of truth: `reactivityTailBytes(tailId)` is the tail's routing key
|
|
13
|
+
* (db-core's `routingKeyForBlock`, the raw utf8 of the id) — the same bytes every cohort lookup for that
|
|
14
|
+
* block is keyed on. It must stay raw: a pre-hashed digest would double-hash relative to the spec's
|
|
15
|
+
* `H(tailId ‖ "reactivity")`.
|
|
17
16
|
*
|
|
18
17
|
* It lives in the reactivity surface (not buried in the gate) so the subscribe path and the gate import the
|
|
19
18
|
* exact same function rather than re-deriving the encoding independently. The
|
|
20
19
|
* `cohort-topic/reactivity-membership-gate.ts` module re-exports it for its existing callers.
|
|
21
20
|
*/
|
|
22
|
-
|
|
21
|
+
import { routingKeyForBlock } from "@optimystic/db-core";
|
|
23
22
|
/**
|
|
24
|
-
* The pinned `BlockId` → raw tail bytes encoding fed into `reactivityTopicId`: the
|
|
25
|
-
* tail block-id string (
|
|
23
|
+
* The pinned `BlockId` → raw tail bytes encoding fed into `reactivityTopicId`: the tail's routing key, i.e.
|
|
24
|
+
* the **raw** utf8 bytes of the tail block-id string (never a pre-hashed digest).
|
|
26
25
|
*
|
|
27
26
|
* Load-bearing: origination and the subscriber side must call this **same** function for a given tail (see
|
|
28
27
|
* the module doc) — a mismatch resolves different `coord_0`s and origination silently never reaches
|
|
29
28
|
* subscribers. The `topic-bytes-encoding` spec pins the coord-equality both ways.
|
|
30
29
|
*/
|
|
31
30
|
export function reactivityTailBytes(tailId) {
|
|
32
|
-
return
|
|
31
|
+
return routingKeyForBlock(tailId);
|
|
33
32
|
}
|
|
34
33
|
//# sourceMappingURL=topic-bytes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic-bytes.js","sourceRoot":"","sources":["../../../src/reactivity/topic-bytes.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"topic-bytes.js","sourceRoot":"","sources":["../../../src/reactivity/topic-bytes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAe;IAClD,OAAO,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -11,7 +11,10 @@ export declare class RepoClient extends ProtocolClient implements IRepo {
|
|
|
11
11
|
commit(request: CommitRequest, options: MessageOptions): Promise<CommitResult>;
|
|
12
12
|
private extractCorrelationId;
|
|
13
13
|
private processRepoMessage;
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
/**
|
|
15
|
+
* The block a redirected op is coordinated on — the block `RepoService.deriveBlockKey` redirected
|
|
16
|
+
* it by, and so the block its coordinator hint belongs to.
|
|
17
|
+
*/
|
|
18
|
+
private coordinatedBlockId;
|
|
16
19
|
}
|
|
17
20
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/repo/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAC7F,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAC3D,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD,qBAAa,UAAW,SAAQ,cAAe,YAAW,KAAK;IACC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM;IAA/F,OAAO;IAIP,mCAAmC;WACrB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU;IAI9F,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAO5E,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC;IAOxF,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvE,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAOpF,OAAO,CAAC,oBAAoB;YASd,kBAAkB;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/repo/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,YAAY,EAC7F,WAAW,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,EAC3D,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAKvD,qBAAa,UAAW,SAAQ,cAAe,YAAW,KAAK;IACC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM;IAA/F,OAAO;IAIP,mCAAmC;WACrB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU;IAI9F,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAO5E,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC;IAOxF,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvE,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAOpF,OAAO,CAAC,oBAAoB;YASd,kBAAkB;IA+FhC;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAc1B"}
|