@optimystic/db-p2p 1.0.0-beta.3 → 1.1.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 +155 -9
- package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
- package/dist/src/cluster/cluster-repo.js +446 -58
- 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 +96 -11
- package/dist/src/repo/cluster-coordinator.d.ts.map +1 -1
- package/dist/src/repo/cluster-coordinator.js +164 -25
- package/dist/src/repo/cluster-coordinator.js.map +1 -1
- package/dist/src/repo/coordinator-repo.d.ts +240 -122
- package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
- package/dist/src/repo/coordinator-repo.js +627 -473
- 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 +493 -65
- 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 +183 -25
- package/src/repo/coordinator-repo.ts +656 -506
- 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":"ring-shift-coordinator.js","sourceRoot":"","sources":["../../../src/storage/ring-shift-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ring-shift-coordinator.js","sourceRoot":"","sources":["../../../src/storage/ring-shift-coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAIzD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,MAAM,GAAG,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;AAmDvC;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,oBAAoB;IAMd;IALD,eAAe,CAAS;IACzC,yFAAyF;IACjF,QAAQ,GAAG,KAAK,CAAC;IAEzB,YACkB,IAAmB,EACpC,SAA0B,EAAE;QADX,SAAI,GAAJ,IAAI,CAAe;QAGpC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY,CAAC,UAA6D;QAC/E,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;QACzD,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;QAC3D,IAAI,OAAO,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;YAClC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC;YACJ,OAAO,UAAU,CAAC,SAAS,KAAK,KAAK;gBACpC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC;gBACtD,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QACxD,CAAC;gBAAS,CAAC;YACV,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACvB,CAAC;IACF,CAAC;IAED;;;;;;OAMG;IACH,gBAAgB;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;QACxD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACvC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;QAC9B,CAAC;QACD,mGAAmG;QACnG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CACrC,IAAI,CAAC,QAAQ;YACZ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;YACvH,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAChD,CAAC;QACF,GAAG,CAAC,qCAAqC,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;QACvF,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC7B,CAAC;IAED,kDAAkD;IAE1C,KAAK,CAAC,OAAO,CAAC,YAAoB,EAAE,OAAkC;QAC7E,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC;QAExC,yFAAyF;QACzF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACpG,MAAM,UAAU,GAAkB;YACjC,GAAG,MAAM;YACT,MAAM,EAAE,QAAQ;YAChB,QAAQ,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE;SAC/D,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACnD,GAAG,CAAC,gCAAgC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAE7D,yEAAyE;QACzE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;QAChF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;YACjB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvB,GAAG,CAAC,iDAAiD,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAChF,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;QACzE,CAAC;QAED,sGAAsG;QACtG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACxF,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;QACD,GAAG,CAAC,sCAAsC,EAAE,OAAO,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChF,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjF,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,gBAAgB,CAAC,IAAc,EAAE,KAAa;QAC3D,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,mCAAmC;QACzD,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,EAAE,CAAC;YACnD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QAC3C,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACpG,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;QACnE,CAAC;QACD,uFAAuF;QACvF,OAAO,SAAS,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAC9F,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,iBAAiB,CAC9B,YAAwC,EACxC,YAAwC;QAExC,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;YACzD,IAAI,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;gBACnF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpB,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,cAAc,CAAC,IAAc,EAAE,KAAa;QACzD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoB,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,sCAAsC;QACrF,KAAK,MAAM,OAAO,IAAI,IAAI,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YAC1D,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;gBACzC,IAAI,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU;oBAAE,OAAO,KAAK,CAAC;gBAClD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;gBAC5D,OAAO,IAAI,KAAK,SAAS,IAAI,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAED,kDAAkD;IAE1C,KAAK,CAAC,MAAM,CAAC,YAAoB,EAAE,OAAkC;QAC5E,MAAM,OAAO,GAAG,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC;QACxC,6FAA6F;QAC7F,8FAA8F;QAC9F,oEAAoE;QACpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QACpG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QACxF,GAAG,CAAC,gCAAgC,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;QAC7D,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC;IAChE,CAAC;IAED,yBAAyB;IAEzB,wFAAwF;IAChF,QAAQ,CAAC,OAAkC;QAClD,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YACzF,OAAO;QACR,CAAC;QACD,6FAA6F;QAC7F,8FAA8F;QAC9F,6FAA6F;QAC7F,wFAAwF;QACxF,iGAAiG;QACjG,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAC;QACvD,IAAI,GAAG,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC1H,CAAC;aAAM,CAAC;YACP,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IAED,kGAAkG;IAC1F,SAAS,CAAC,IAAmB;QACpC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QAC1C,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { IRepo, MessageOptions, BlockId, CommitRequest, CommitResult, GetBlockResults, PendRequest, PendResult, ActionBlocks, ActionId, BlockGets, IBlock, ActionRev, PendValidationHook, UnvalidatablePendPolicy, CollectionId, IBlockChangeNotifier, CollectionChangeListener } from "@optimystic/db-core";
|
|
1
|
+
import type { IRepo, MessageOptions, BlockId, CommitRequest, CommitResult, GetBlockResults, PendRequest, PendResult, ActionBlocks, ActionId, BlockGets, IBlock, ActionRev, PendValidationHook, UnvalidatablePendPolicy, CollectionId, IBlockChangeNotifier, CollectionChangeListener, IBlockDurabilityNotifier, BlockDurabilityListener, BlockDurabilityReachedEvent } from "@optimystic/db-core";
|
|
2
2
|
import type { IBlockStorage } from "./i-block-storage.js";
|
|
3
|
+
import { type PendingClaim } from "./pending-claim.js";
|
|
3
4
|
import type { IBlockReplicaStore } from "../cluster/block-transfer-service.js";
|
|
4
5
|
import { type BlockCommitProof } from "../cluster/commit-proof.js";
|
|
5
6
|
/**
|
|
@@ -122,7 +123,25 @@ export interface IRevisionActionReader {
|
|
|
122
123
|
*/
|
|
123
124
|
getRevisionAction(blockId: BlockId, rev: number): Promise<ActionId | undefined>;
|
|
124
125
|
}
|
|
125
|
-
|
|
126
|
+
/**
|
|
127
|
+
* The capability that answers "which pending records hold this block, and for which slot and
|
|
128
|
+
* base?" — the questions the promise-round votes need. The rival check
|
|
129
|
+
* (`ClusterMember.validatePendOperations`) lists every record's claim, because a record the incoming
|
|
130
|
+
* writer has built on is not a reservation against it (`isReservationAgainst`), and
|
|
131
|
+
* `GetBlockResult.state.pendings` carries only action ids; the commit vote
|
|
132
|
+
* (`ClusterMember.validateCommitBaseDeclarations`) reads one record's claim, to compare the base its
|
|
133
|
+
* pend carried with the one the commit declares. Named for the same reason as
|
|
134
|
+
* {@link IRevisionActionReader}: a repo that lacks `listPendingClaims` degrades the pend vote to
|
|
135
|
+
* "every rival reserves" rather than to silently admitting one, and one that lacks `pendingClaimOf`
|
|
136
|
+
* makes the commit vote abstain — each method is probed on its own.
|
|
137
|
+
*/
|
|
138
|
+
export interface IPendingClaimReader {
|
|
139
|
+
/** See `IBlockStorage.listPendingClaims`. Read-only; never takes the block write latch. */
|
|
140
|
+
listPendingClaims(blockId: BlockId): Promise<PendingClaim[]>;
|
|
141
|
+
/** See `IBlockStorage.pendingClaimOf`. Read-only; never takes the block write latch. */
|
|
142
|
+
pendingClaimOf(blockId: BlockId, actionId: ActionId): Promise<PendingClaim | undefined>;
|
|
143
|
+
}
|
|
144
|
+
export declare class StorageRepo implements IRepo, IBlockChangeNotifier, IBlockDurabilityNotifier, IBlockReplicaStore, ICommitDigestPreviewer, ICommitProofPersister, IRevisionActionReader, IPendingClaimReader {
|
|
126
145
|
private readonly createBlockStorage;
|
|
127
146
|
private readonly validatePend?;
|
|
128
147
|
private readonly unvalidatablePendPolicy;
|
|
@@ -130,6 +149,9 @@ export declare class StorageRepo implements IRepo, IBlockChangeNotifier, IBlockR
|
|
|
130
149
|
private readonly changeListeners;
|
|
131
150
|
/** Catch-all change listeners — fire for EVERY collection's commit on this node. */
|
|
132
151
|
private readonly anyChangeListeners;
|
|
152
|
+
/** Full-replication listeners — fire when a block this node acknowledged below `full` has
|
|
153
|
+
* reached every cohort member. See {@link IBlockDurabilityNotifier}. */
|
|
154
|
+
private readonly durabilityListeners;
|
|
133
155
|
constructor(createBlockStorage: (blockId: BlockId) => IBlockStorage, options?: StorageRepoOptions);
|
|
134
156
|
/**
|
|
135
157
|
* Subscribe to commits that mutate `collectionId`'s blocks on this node.
|
|
@@ -158,7 +180,26 @@ export declare class StorageRepo implements IRepo, IBlockChangeNotifier, IBlockR
|
|
|
158
180
|
private emitCollectionChanges;
|
|
159
181
|
/** Dispatch `event` to a snapshot of `listeners` (safe under mid-emit (un)subscribe), isolating + logging any throw. */
|
|
160
182
|
private fireChangeListeners;
|
|
161
|
-
|
|
183
|
+
/** Subscribe to full-replication events. See {@link IBlockDurabilityNotifier}. */
|
|
184
|
+
onBlockDurabilityReached(listener: BlockDurabilityListener): () => void;
|
|
185
|
+
/**
|
|
186
|
+
* Fire one {@link BlockDurabilityReachedEvent} to every subscriber. The producer is the
|
|
187
|
+
* under-replication drain, which reaches this through a one-method sink the node hands it and
|
|
188
|
+
* calls it only AFTER the block's ledger entry is gone. Same listener isolation as
|
|
189
|
+
* {@link fireChangeListeners}: a throwing listener is logged and the rest still run.
|
|
190
|
+
*/
|
|
191
|
+
emitBlockDurabilityReached(event: BlockDurabilityReachedEvent): void;
|
|
192
|
+
get({ blockIds, context, lineageOf }: BlockGets, _options?: MessageOptions): Promise<GetBlockResults>;
|
|
193
|
+
/**
|
|
194
|
+
* Answers {@link BlockGets.lineageOf} on every entry, from this node's own records (see
|
|
195
|
+
* {@link IBlockStorage.lineageOf}). Runs after the block reads, so it describes storage at least
|
|
196
|
+
* as new as the content served beside it; every fact it reads only ever moves forward, so a
|
|
197
|
+
* commit landing in between cannot make the answer wrong, only early.
|
|
198
|
+
*
|
|
199
|
+
* A read fault answers `unknown` rather than failing the batch: the asker reads that as "this
|
|
200
|
+
* node could not say", which is exactly what happened.
|
|
201
|
+
*/
|
|
202
|
+
private answerLineage;
|
|
162
203
|
/**
|
|
163
204
|
* The one place a local coverage gap is healed from a peer. `getBlock` is local-only; when it
|
|
164
205
|
* reports the target revision as not covered ({@link RevisionNotCoveredError}) this fetches it
|
|
@@ -300,6 +341,10 @@ export declare class StorageRepo implements IRepo, IBlockChangeNotifier, IBlockR
|
|
|
300
341
|
* range means this node holds no record for that revision.
|
|
301
342
|
*/
|
|
302
343
|
getRevisionAction(blockId: BlockId, rev: number): Promise<ActionId | undefined>;
|
|
344
|
+
/** See {@link IPendingClaimReader}. */
|
|
345
|
+
listPendingClaims(blockId: BlockId): Promise<PendingClaim[]>;
|
|
346
|
+
/** See {@link IPendingClaimReader}. */
|
|
347
|
+
pendingClaimOf(blockId: BlockId, actionId: ActionId): Promise<PendingClaim | undefined>;
|
|
303
348
|
/**
|
|
304
349
|
* The {@link BlockCommitProof} this node retained for `blockId` at `rev`, or `undefined` when it
|
|
305
350
|
* kept none — a revision committed before proofs were persisted, a member whose materialization
|
|
@@ -316,10 +361,82 @@ export declare class StorageRepo implements IRepo, IBlockChangeNotifier, IBlockR
|
|
|
316
361
|
/**
|
|
317
362
|
* @param declaredBaseRev The committed revision of the base the WRITER applied this block's
|
|
318
363
|
* transform to, as declared in the commit op's `blockDigests[blockId].baseRev`. Untrusted wire
|
|
319
|
-
* data, so it is typed `unknown` and validated
|
|
320
|
-
*
|
|
364
|
+
* data, so it is typed `unknown` and validated in {@link guardCommitBase} — where it is the
|
|
365
|
+
* FALLBACK, not the primary check: the base the record's own pend carried (`PendingClaim.baseRev`)
|
|
366
|
+
* is read first. Absent from the read-driven promotion in {@link get}, which has no commit request
|
|
367
|
+
* and has already judged the stored base (`mayPromoteOnRead`).
|
|
321
368
|
*/
|
|
322
369
|
private internalCommit;
|
|
370
|
+
/**
|
|
371
|
+
* The fork guard: an update-only transform is applied ONLY to the base its author computed it
|
|
372
|
+
* against. Revisions are allocated per COLLECTION, not per block, so `rev - 1` is meaningless here —
|
|
373
|
+
* a member legitimately holds block X at rev 1 and receives a commit of X at rev 7 when revs 2-6
|
|
374
|
+
* touched other blocks (the retired decision `st-commit-contiguity-guard-premise`). The only sound
|
|
375
|
+
* discriminator is what the author said the base was, and the author says it twice:
|
|
376
|
+
*
|
|
377
|
+
* - `stored` — the base the record's own PEND carried for this block (`PendRequest.baseRevs`, kept
|
|
378
|
+
* as `PendingClaim.baseRev`). PRIMARY, because it was recorded with the very operations it
|
|
379
|
+
* describes and is present on every path that applies the record, commit message or not.
|
|
380
|
+
* - `declared` — `blockDigests[blockId].baseRev` on the commit. The FALLBACK, for a record whose
|
|
381
|
+
* pend named no base: a sender running older code, or a drift-blind source (test doubles).
|
|
382
|
+
* Untrusted wire data with no ingress schema (same rule as ClusterMember.validateCommitOperations):
|
|
383
|
+
* anything but a number abstains rather than being coerced into a comparison.
|
|
384
|
+
*
|
|
385
|
+
* Three steps, in order:
|
|
386
|
+
*
|
|
387
|
+
* 1. Both present and unequal → refuse, with its own detail and log line. An honest writer never
|
|
388
|
+
* does this (the base pinned at staging is the one pended and the one declared — `Tracker`), so
|
|
389
|
+
* the shape it closes is a member holding a STALE pending record from an earlier attempt of a
|
|
390
|
+
* retried action — the retry's pend never reached this member — that receives the retry's
|
|
391
|
+
* commit: the old record's operations were computed against a different base, and a guard that
|
|
392
|
+
* read only the declaration would apply them wherever this member's latest happened to equal
|
|
393
|
+
* the new declaration.
|
|
394
|
+
* 2. `effective = stored ?? declared`; a number, and `latest?.rev !== effective` → refuse. Covers
|
|
395
|
+
* all three unsafe states: BEHIND the base (missed updates — the fork case), AHEAD of it (this
|
|
396
|
+
* member holds a revision the writer never saw — divergent history), and no local revision at
|
|
397
|
+
* all against a numeric base.
|
|
398
|
+
* 3. Neither present → apply as before the guard existed, logged as `commit:base-undeclared` so the
|
|
399
|
+
* residual is countable. This is the one arm left open, BY CHOICE, for senders that name no
|
|
400
|
+
* base anywhere: refusing a base-less pend outright would turn every such writer's write into a
|
|
401
|
+
* hard failure on a release that may run mixed versions for a while.
|
|
402
|
+
*
|
|
403
|
+
* Base-independent transforms — an insert (replaces the block wholesale) or a delete (materializes
|
|
404
|
+
* to nothing) — are never guarded, keyed on the member's OWN pended transform and never on a
|
|
405
|
+
* declaration, so a hostile writer cannot flip the arm by attaching a bogus base.
|
|
406
|
+
*
|
|
407
|
+
* Refusing is cheap and self-healing: refuseMissingBase throws MissingBaseRevisionError, which
|
|
408
|
+
* commit() classifies as divergence and ClusterMember.applyConsensusOperation maps to "behind",
|
|
409
|
+
* running reconcileDivergentCommit to pull the committed revision from a cohort peer. The writer's
|
|
410
|
+
* retry then lands on a healed base. A hostile writer naming a junk numeric base — on the pend or
|
|
411
|
+
* on the commit — can force refusals and reconcile churn, but never a fork.
|
|
412
|
+
*
|
|
413
|
+
* NOTE: the AHEAD case is reported as "behind" divergence like every other missing-base refusal, so
|
|
414
|
+
* a cohort where nobody holds `rev` reconciles, fails `no-rev-quorum`, and logs that rather than a
|
|
415
|
+
* clean stale failure. Correct outcome — the writer read a base the cohort has moved past, and its
|
|
416
|
+
* retry re-reads — but the log reads as lag when it is the opposite. If those lines ever have to be
|
|
417
|
+
* triaged in volume, give the ahead arm its own reason string.
|
|
418
|
+
*/
|
|
419
|
+
private guardCommitBase;
|
|
420
|
+
/**
|
|
421
|
+
* Whether the read-driven promotion in {@link get} may apply `actionId`'s pending record here: a
|
|
422
|
+
* base-independent record (an insert or a delete) always; an update-only one only when the base
|
|
423
|
+
* its pend carried (`PendingClaim.baseRev`) is a number equal to this node's `latest`. Anything
|
|
424
|
+
* else — a base this node has not reached, one it is past, or none stored at all — DECLINES, and
|
|
425
|
+
* the caller leaves the record and `latest` untouched.
|
|
426
|
+
*
|
|
427
|
+
* Declining is deliberately distinct from {@link refuseMissingBase}, which deletes the record
|
|
428
|
+
* because it can never be promoted here. A declined record is not dead: this node's latest reaches
|
|
429
|
+
* the stored base only through a replica or reconcile, and when that lands `sweepDeadClaims`
|
|
430
|
+
* removes the record if its slot is passed, or a later context read promotes it if not. A record
|
|
431
|
+
* whose pend named no base is declined too — the promotion must not apply a change whose base it
|
|
432
|
+
* cannot establish, and block repair supplies the version instead. The cost falls on base-less
|
|
433
|
+
* senders alone: their held-but-missed records no longer come current on a read, only through the
|
|
434
|
+
* next commit's reconcile or the coordinator's read-repair.
|
|
435
|
+
*
|
|
436
|
+
* {@link guardCommitBase} still runs inside `internalCommit` afterwards; under the latch the
|
|
437
|
+
* caller holds, this check is exactly what makes it pass.
|
|
438
|
+
*/
|
|
439
|
+
private mayPromoteOnRead;
|
|
323
440
|
/**
|
|
324
441
|
* Retain `proof` for a block this call found ALREADY committed at `(rev, actionId)` — the paths
|
|
325
442
|
* that land (or find already landed) a revision without running {@link internalCommit}, and would
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-repo.d.ts","sourceRoot":"","sources":["../../../src/storage/storage-repo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EACnH,QAAQ,EAAE,SAAS,EACH,MAAM,EAAE,SAAS,EACjC,kBAAkB,EAAE,uBAAuB,EAC3C,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"storage-repo.d.ts","sourceRoot":"","sources":["../../../src/storage/storage-repo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EACnH,QAAQ,EAAE,SAAS,EACH,MAAM,EAAE,SAAS,EACjC,kBAAkB,EAAE,uBAAuB,EAC3C,YAAY,EAAE,oBAAoB,EAAE,wBAAwB,EAC5D,wBAAwB,EAAE,uBAAuB,EAAE,2BAA2B,EAE9E,MAAM,qBAAqB,CAAC;AAM7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAA4D,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC/E,OAAO,EAAuB,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AASxF;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,0BAA0B,CAAC;AAEpE;;;;;GAKG;AACH,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE9E;;;;;;GAMG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACtC,QAAQ,CAAC,OAAO,EAAE,OAAO;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM;gBAAtC,OAAO,EAAE,OAAO,EAAW,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI3E;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAE1E;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,yBAAyB,uBAAuB,CAAC;AAE9D;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAEvE;AAED,MAAM,MAAM,kBAAkB,GAAG;IAChC,6DAA6D;IAC7D,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC;;;;;;;;;;;;;OAaG;IACH,uBAAuB,CAAC,EAAE,uBAAuB,CAAC;CAClD,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAAG;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACtC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC,CAAC;CACjH;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,qBAAqB;IACrC,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;CAC1G;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,qBAAqB;IACrC;;;;OAIG;IACH,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;CAChF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,mBAAmB;IACnC,2FAA2F;IAC3F,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC7D,wFAAwF;IACxF,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;CACxF;AAED,qBAAa,WAAY,YAAW,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB;IAYtM,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAXpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;IAClE,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA0D;IAC1F,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAC1E;6EACyE;IACzE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsC;gBAGxD,kBAAkB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,aAAa,EACxE,OAAO,CAAC,EAAE,kBAAkB;IAM7B;;;OAGG;IACH,kBAAkB,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAqB9F;;;;;;OAMG;IACH,qBAAqB,CAAC,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAUrE;;;;;;;;;;OAUG;IACH,OAAO,CAAC,qBAAqB;IAiB7B,wHAAwH;IACxH,OAAO,CAAC,mBAAmB;IAU3B,kFAAkF;IAClF,wBAAwB,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM,IAAI;IAUvE;;;;;OAKG;IACH,0BAA0B,CAAC,KAAK,EAAE,2BAA2B,GAAG,IAAI;IAU9D,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAkO3G;;;;;;;;OAQG;YACW,aAAa;IAY3B;;;;;;;;;;;;;;;OAeG;YACW,gBAAgB;IA8B9B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAqBhB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IA6N1E,MAAM,CAAC,SAAS,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/E;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,MAAM,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IA+NhH;;;;;;;;;;;;;;;;;;;OAmBG;YACW,wBAAwB;IAkBtC;;;;;;OAMG;IACG,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAYnD;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,aAAa,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqD/H;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,GAAG,SAAS,CAAC;IA8CtH;;;;OAIG;IACG,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAQrF,uCAAuC;IACjC,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIlE,uCAAuC;IACjC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;IAI7F;;;;;;;;;;;OAWG;IACG,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAIzF;;;;;;;OAOG;YACW,cAAc;IAwF5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;YACW,eAAe;IAgC7B;;;;;;;;;;;;;;;;;;OAkBG;YACW,gBAAgB;IAY9B;;;;;;;;;;;;;;OAcG;YACW,aAAa;IAgB3B;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;YACW,4BAA4B;IA8B1C;;;;;;;;;;;;;;;;;;;;;;OAsBG;YACW,cAAc;IA0C5B;;;;;;;;;OASG;YACW,iBAAiB;CAY/B"}
|