@optimystic/db-p2p 0.13.4 → 0.14.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/README.md +6 -6
- package/dist/src/cluster/block-transfer-service.d.ts +67 -8
- package/dist/src/cluster/block-transfer-service.d.ts.map +1 -1
- package/dist/src/cluster/block-transfer-service.js +101 -62
- package/dist/src/cluster/block-transfer-service.js.map +1 -1
- package/dist/src/cluster/client.d.ts +18 -1
- package/dist/src/cluster/client.d.ts.map +1 -1
- package/dist/src/cluster/client.js +55 -39
- package/dist/src/cluster/client.js.map +1 -1
- package/dist/src/cluster/cluster-error.d.ts +38 -0
- package/dist/src/cluster/cluster-error.d.ts.map +1 -0
- package/dist/src/cluster/cluster-error.js +51 -0
- package/dist/src/cluster/cluster-error.js.map +1 -0
- package/dist/src/cluster/cluster-repo.d.ts +135 -3
- package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
- package/dist/src/cluster/cluster-repo.js +333 -58
- package/dist/src/cluster/cluster-repo.js.map +1 -1
- package/dist/src/cluster/commit-cert.d.ts +63 -0
- package/dist/src/cluster/commit-cert.d.ts.map +1 -0
- package/dist/src/cluster/commit-cert.js +108 -0
- package/dist/src/cluster/commit-cert.js.map +1 -0
- package/dist/src/cluster/service.d.ts +46 -11
- package/dist/src/cluster/service.d.ts.map +1 -1
- package/dist/src/cluster/service.js +97 -33
- package/dist/src/cluster/service.js.map +1 -1
- package/dist/src/cluster/spread-on-churn.d.ts +13 -0
- package/dist/src/cluster/spread-on-churn.d.ts.map +1 -1
- package/dist/src/cluster/spread-on-churn.js +34 -4
- package/dist/src/cluster/spread-on-churn.js.map +1 -1
- package/dist/src/cohort-topic/bootstrap-evidence-builder.d.ts +59 -0
- package/dist/src/cohort-topic/bootstrap-evidence-builder.d.ts.map +1 -0
- package/dist/src/cohort-topic/bootstrap-evidence-builder.js +79 -0
- package/dist/src/cohort-topic/bootstrap-evidence-builder.js.map +1 -0
- package/dist/src/cohort-topic/bootstrap-evidence-verifiers.d.ts +81 -0
- package/dist/src/cohort-topic/bootstrap-evidence-verifiers.d.ts.map +1 -0
- package/dist/src/cohort-topic/bootstrap-evidence-verifiers.js +93 -0
- package/dist/src/cohort-topic/bootstrap-evidence-verifiers.js.map +1 -0
- package/dist/src/cohort-topic/bootstrap-parent-reference.d.ts +108 -0
- package/dist/src/cohort-topic/bootstrap-parent-reference.d.ts.map +1 -0
- package/dist/src/cohort-topic/bootstrap-parent-reference.js +108 -0
- package/dist/src/cohort-topic/bootstrap-parent-reference.js.map +1 -0
- package/dist/src/cohort-topic/change-bridge.d.ts +65 -0
- package/dist/src/cohort-topic/change-bridge.d.ts.map +1 -0
- package/dist/src/cohort-topic/change-bridge.js +76 -0
- package/dist/src/cohort-topic/change-bridge.js.map +1 -0
- package/dist/src/cohort-topic/cohort-gossip-driver.d.ts +74 -0
- package/dist/src/cohort-topic/cohort-gossip-driver.d.ts.map +1 -0
- package/dist/src/cohort-topic/cohort-gossip-driver.js +87 -0
- package/dist/src/cohort-topic/cohort-gossip-driver.js.map +1 -0
- package/dist/src/cohort-topic/cohort-gossip-transport.d.ts +42 -0
- package/dist/src/cohort-topic/cohort-gossip-transport.d.ts.map +1 -0
- package/dist/src/cohort-topic/cohort-gossip-transport.js +57 -0
- package/dist/src/cohort-topic/cohort-gossip-transport.js.map +1 -0
- package/dist/src/cohort-topic/fret-trust-anchor.d.ts +100 -0
- package/dist/src/cohort-topic/fret-trust-anchor.d.ts.map +1 -0
- package/dist/src/cohort-topic/fret-trust-anchor.js +115 -0
- package/dist/src/cohort-topic/fret-trust-anchor.js.map +1 -0
- package/dist/src/cohort-topic/host.d.ts +573 -0
- package/dist/src/cohort-topic/host.d.ts.map +1 -0
- package/dist/src/cohort-topic/host.js +1460 -0
- package/dist/src/cohort-topic/host.js.map +1 -0
- package/dist/src/cohort-topic/index.d.ts +14 -0
- package/dist/src/cohort-topic/index.d.ts.map +1 -0
- package/dist/src/cohort-topic/index.js +14 -0
- package/dist/src/cohort-topic/index.js.map +1 -0
- package/dist/src/cohort-topic/membership-publish-sink.d.ts +14 -0
- package/dist/src/cohort-topic/membership-publish-sink.d.ts.map +1 -0
- package/dist/src/cohort-topic/membership-publish-sink.js +17 -0
- package/dist/src/cohort-topic/membership-publish-sink.js.map +1 -0
- package/dist/src/cohort-topic/membership-source.d.ts +36 -0
- package/dist/src/cohort-topic/membership-source.d.ts.map +1 -0
- package/dist/src/cohort-topic/membership-source.js +58 -0
- package/dist/src/cohort-topic/membership-source.js.map +1 -0
- package/dist/src/cohort-topic/peer-codec.d.ts +18 -0
- package/dist/src/cohort-topic/peer-codec.d.ts.map +1 -0
- package/dist/src/cohort-topic/peer-codec.js +26 -0
- package/dist/src/cohort-topic/peer-codec.js.map +1 -0
- package/dist/src/cohort-topic/peer-sig.d.ts +52 -0
- package/dist/src/cohort-topic/peer-sig.d.ts.map +1 -0
- package/dist/src/cohort-topic/peer-sig.js +83 -0
- package/dist/src/cohort-topic/peer-sig.js.map +1 -0
- package/dist/src/cohort-topic/protocols.d.ts +49 -0
- package/dist/src/cohort-topic/protocols.d.ts.map +1 -0
- package/dist/src/cohort-topic/protocols.js +58 -0
- package/dist/src/cohort-topic/protocols.js.map +1 -0
- package/dist/src/cohort-topic/reactivity-membership-gate.d.ts +49 -0
- package/dist/src/cohort-topic/reactivity-membership-gate.d.ts.map +1 -0
- package/dist/src/cohort-topic/reactivity-membership-gate.js +42 -0
- package/dist/src/cohort-topic/reactivity-membership-gate.js.map +1 -0
- package/dist/src/cohort-topic/size-estimator.d.ts +16 -0
- package/dist/src/cohort-topic/size-estimator.d.ts.map +1 -0
- package/dist/src/cohort-topic/size-estimator.js +16 -0
- package/dist/src/cohort-topic/size-estimator.js.map +1 -0
- package/dist/src/cohort-topic/stream-util.d.ts +19 -0
- package/dist/src/cohort-topic/stream-util.d.ts.map +1 -0
- package/dist/src/cohort-topic/stream-util.js +76 -0
- package/dist/src/cohort-topic/stream-util.js.map +1 -0
- package/dist/src/cohort-topic/threshold-crypto.d.ts +94 -0
- package/dist/src/cohort-topic/threshold-crypto.d.ts.map +1 -0
- package/dist/src/cohort-topic/threshold-crypto.js +178 -0
- package/dist/src/cohort-topic/threshold-crypto.js.map +1 -0
- package/dist/src/cohort-topic/topic-router.d.ts +41 -0
- package/dist/src/cohort-topic/topic-router.d.ts.map +1 -0
- package/dist/src/cohort-topic/topic-router.js +63 -0
- package/dist/src/cohort-topic/topic-router.js.map +1 -0
- package/dist/src/dispute/cascade.d.ts +179 -0
- package/dist/src/dispute/cascade.d.ts.map +1 -0
- package/dist/src/dispute/cascade.js +315 -0
- package/dist/src/dispute/cascade.js.map +1 -0
- package/dist/src/dispute/client.d.ts +2 -1
- package/dist/src/dispute/client.d.ts.map +1 -1
- package/dist/src/dispute/client.js +12 -3
- package/dist/src/dispute/client.js.map +1 -1
- package/dist/src/dispute/dispute-service.d.ts +41 -1
- package/dist/src/dispute/dispute-service.d.ts.map +1 -1
- package/dist/src/dispute/dispute-service.js +147 -21
- package/dist/src/dispute/dispute-service.js.map +1 -1
- package/dist/src/dispute/index.d.ts +2 -0
- package/dist/src/dispute/index.d.ts.map +1 -1
- package/dist/src/dispute/index.js +2 -0
- package/dist/src/dispute/index.js.map +1 -1
- package/dist/src/dispute/invalidation.d.ts +266 -0
- package/dist/src/dispute/invalidation.d.ts.map +1 -0
- package/dist/src/dispute/invalidation.js +405 -0
- package/dist/src/dispute/invalidation.js.map +1 -0
- package/dist/src/dispute/types.d.ts +14 -0
- package/dist/src/dispute/types.d.ts.map +1 -1
- package/dist/src/dispute/types.js.map +1 -1
- package/dist/src/index.d.ts +4 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/libp2p-key-network.d.ts +8 -1
- package/dist/src/libp2p-key-network.d.ts.map +1 -1
- package/dist/src/libp2p-key-network.js +67 -8
- package/dist/src/libp2p-key-network.js.map +1 -1
- package/dist/src/libp2p-node-base.d.ts +57 -3
- package/dist/src/libp2p-node-base.d.ts.map +1 -1
- package/dist/src/libp2p-node-base.js +523 -6
- package/dist/src/libp2p-node-base.js.map +1 -1
- package/dist/src/matchmaking/aggregate-counts.d.ts +67 -0
- package/dist/src/matchmaking/aggregate-counts.d.ts.map +1 -0
- package/dist/src/matchmaking/aggregate-counts.js +60 -0
- package/dist/src/matchmaking/aggregate-counts.js.map +1 -0
- package/dist/src/matchmaking/index.d.ts +20 -0
- package/dist/src/matchmaking/index.d.ts.map +1 -0
- package/dist/src/matchmaking/index.js +20 -0
- package/dist/src/matchmaking/index.js.map +1 -0
- package/dist/src/matchmaking/module.d.ts +181 -0
- package/dist/src/matchmaking/module.d.ts.map +1 -0
- package/dist/src/matchmaking/module.js +221 -0
- package/dist/src/matchmaking/module.js.map +1 -0
- package/dist/src/matchmaking/protocols.d.ts +37 -0
- package/dist/src/matchmaking/protocols.d.ts.map +1 -0
- package/dist/src/matchmaking/protocols.js +42 -0
- package/dist/src/matchmaking/protocols.js.map +1 -0
- package/dist/src/matchmaking/provider-manager.d.ts +52 -0
- package/dist/src/matchmaking/provider-manager.d.ts.map +1 -0
- package/dist/src/matchmaking/provider-manager.js +74 -0
- package/dist/src/matchmaking/provider-manager.js.map +1 -0
- package/dist/src/matchmaking/query-handler.d.ts +34 -0
- package/dist/src/matchmaking/query-handler.d.ts.map +1 -0
- package/dist/src/matchmaking/query-handler.js +62 -0
- package/dist/src/matchmaking/query-handler.js.map +1 -0
- package/dist/src/matchmaking/query-transport.d.ts +180 -0
- package/dist/src/matchmaking/query-transport.d.ts.map +1 -0
- package/dist/src/matchmaking/query-transport.js +315 -0
- package/dist/src/matchmaking/query-transport.js.map +1 -0
- package/dist/src/matchmaking/seeker-manager.d.ts +39 -0
- package/dist/src/matchmaking/seeker-manager.d.ts.map +1 -0
- package/dist/src/matchmaking/seeker-manager.js +49 -0
- package/dist/src/matchmaking/seeker-manager.js.map +1 -0
- package/dist/src/matchmaking/seeker-walk-client.d.ts +127 -0
- package/dist/src/matchmaking/seeker-walk-client.d.ts.map +1 -0
- package/dist/src/matchmaking/seeker-walk-client.js +189 -0
- package/dist/src/matchmaking/seeker-walk-client.js.map +1 -0
- package/dist/src/matchmaking/traffic-validation.d.ts +128 -0
- package/dist/src/matchmaking/traffic-validation.d.ts.map +1 -0
- package/dist/src/matchmaking/traffic-validation.js +105 -0
- package/dist/src/matchmaking/traffic-validation.js.map +1 -0
- package/dist/src/network/network-manager-service.d.ts +4 -2
- package/dist/src/network/network-manager-service.d.ts.map +1 -1
- package/dist/src/network/network-manager-service.js +9 -3
- package/dist/src/network/network-manager-service.js.map +1 -1
- package/dist/src/protocol-client.d.ts +25 -0
- package/dist/src/protocol-client.d.ts.map +1 -1
- package/dist/src/protocol-client.js +126 -4
- package/dist/src/protocol-client.js.map +1 -1
- package/dist/src/reactivity/forwarder-host.d.ts +198 -0
- package/dist/src/reactivity/forwarder-host.d.ts.map +1 -0
- package/dist/src/reactivity/forwarder-host.js +355 -0
- package/dist/src/reactivity/forwarder-host.js.map +1 -0
- package/dist/src/reactivity/index.d.ts +19 -0
- package/dist/src/reactivity/index.d.ts.map +1 -0
- package/dist/src/reactivity/index.js +19 -0
- package/dist/src/reactivity/index.js.map +1 -0
- package/dist/src/reactivity/notify-transport.d.ts +70 -0
- package/dist/src/reactivity/notify-transport.d.ts.map +1 -0
- package/dist/src/reactivity/notify-transport.js +111 -0
- package/dist/src/reactivity/notify-transport.js.map +1 -0
- package/dist/src/reactivity/origination-manager.d.ts +110 -0
- package/dist/src/reactivity/origination-manager.d.ts.map +1 -0
- package/dist/src/reactivity/origination-manager.js +129 -0
- package/dist/src/reactivity/origination-manager.js.map +1 -0
- package/dist/src/reactivity/protocols.d.ts +43 -0
- package/dist/src/reactivity/protocols.d.ts.map +1 -0
- package/dist/src/reactivity/protocols.js +50 -0
- package/dist/src/reactivity/protocols.js.map +1 -0
- package/dist/src/reactivity/push-state-gossip.d.ts +132 -0
- package/dist/src/reactivity/push-state-gossip.d.ts.map +1 -0
- package/dist/src/reactivity/push-state-gossip.js +231 -0
- package/dist/src/reactivity/push-state-gossip.js.map +1 -0
- package/dist/src/reactivity/recover-transport.d.ts +167 -0
- package/dist/src/reactivity/recover-transport.d.ts.map +1 -0
- package/dist/src/reactivity/recover-transport.js +308 -0
- package/dist/src/reactivity/recover-transport.js.map +1 -0
- package/dist/src/reactivity/rotation-rereg-scheduler.d.ts +142 -0
- package/dist/src/reactivity/rotation-rereg-scheduler.d.ts.map +1 -0
- package/dist/src/reactivity/rotation-rereg-scheduler.js +223 -0
- package/dist/src/reactivity/rotation-rereg-scheduler.js.map +1 -0
- package/dist/src/reactivity/subscriber-registry.d.ts +47 -0
- package/dist/src/reactivity/subscriber-registry.d.ts.map +1 -0
- package/dist/src/reactivity/subscriber-registry.js +87 -0
- package/dist/src/reactivity/subscriber-registry.js.map +1 -0
- package/dist/src/reactivity/subscription-manager.d.ts +221 -0
- package/dist/src/reactivity/subscription-manager.d.ts.map +1 -0
- package/dist/src/reactivity/subscription-manager.js +302 -0
- package/dist/src/reactivity/subscription-manager.js.map +1 -0
- package/dist/src/reactivity/topic-bytes.d.ts +32 -0
- package/dist/src/reactivity/topic-bytes.d.ts.map +1 -0
- package/dist/src/reactivity/topic-bytes.js +34 -0
- package/dist/src/reactivity/topic-bytes.js.map +1 -0
- package/dist/src/repo/client.d.ts.map +1 -1
- package/dist/src/repo/client.js +51 -19
- package/dist/src/repo/client.js.map +1 -1
- package/dist/src/repo/cluster-coordinator.d.ts +9 -0
- package/dist/src/repo/cluster-coordinator.d.ts.map +1 -1
- package/dist/src/repo/cluster-coordinator.js +65 -22
- package/dist/src/repo/cluster-coordinator.js.map +1 -1
- package/dist/src/repo/coordinator-repo.d.ts +20 -0
- package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
- package/dist/src/repo/coordinator-repo.js +101 -16
- package/dist/src/repo/coordinator-repo.js.map +1 -1
- package/dist/src/repo/service.d.ts +46 -1
- package/dist/src/repo/service.d.ts.map +1 -1
- package/dist/src/repo/service.js +79 -45
- package/dist/src/repo/service.js.map +1 -1
- package/dist/src/rpc-deadline.d.ts +37 -0
- package/dist/src/rpc-deadline.d.ts.map +1 -0
- package/dist/src/rpc-deadline.js +31 -0
- package/dist/src/rpc-deadline.js.map +1 -0
- package/dist/src/storage/block-storage.d.ts +2 -0
- package/dist/src/storage/block-storage.d.ts.map +1 -1
- package/dist/src/storage/block-storage.js +95 -2
- package/dist/src/storage/block-storage.js.map +1 -1
- package/dist/src/storage/i-block-storage.d.ts +25 -0
- package/dist/src/storage/i-block-storage.d.ts.map +1 -1
- package/dist/src/storage/storage-repo.d.ts +53 -2
- package/dist/src/storage/storage-repo.d.ts.map +1 -1
- package/dist/src/storage/storage-repo.js +193 -9
- package/dist/src/storage/storage-repo.js.map +1 -1
- package/dist/src/sync/client.d.ts +4 -1
- package/dist/src/sync/client.d.ts.map +1 -1
- package/dist/src/sync/client.js +5 -2
- package/dist/src/sync/client.js.map +1 -1
- package/dist/src/testing/cohort-topic-mesh-harness.d.ts +219 -0
- package/dist/src/testing/cohort-topic-mesh-harness.d.ts.map +1 -0
- package/dist/src/testing/cohort-topic-mesh-harness.js +467 -0
- package/dist/src/testing/cohort-topic-mesh-harness.js.map +1 -0
- package/dist/src/testing/matchmaking-mesh-harness.d.ts +187 -0
- package/dist/src/testing/matchmaking-mesh-harness.d.ts.map +1 -0
- package/dist/src/testing/matchmaking-mesh-harness.js +358 -0
- package/dist/src/testing/matchmaking-mesh-harness.js.map +1 -0
- package/dist/src/testing/mesh-harness.d.ts.map +1 -1
- package/dist/src/testing/mesh-harness.js +23 -1
- package/dist/src/testing/mesh-harness.js.map +1 -1
- package/dist/src/testing/reactivity-mesh-harness.d.ts +298 -0
- package/dist/src/testing/reactivity-mesh-harness.d.ts.map +1 -0
- package/dist/src/testing/reactivity-mesh-harness.js +663 -0
- package/dist/src/testing/reactivity-mesh-harness.js.map +1 -0
- package/package.json +7 -4
- package/src/cluster/block-transfer-service.ts +133 -68
- package/src/cluster/client.ts +64 -45
- package/src/cluster/cluster-error.ts +64 -0
- package/src/cluster/cluster-repo.ts +405 -55
- package/src/cluster/commit-cert.ts +139 -0
- package/src/cluster/service.ts +116 -44
- package/src/cluster/spread-on-churn.ts +328 -285
- package/src/cohort-topic/bootstrap-evidence-builder.ts +122 -0
- package/src/cohort-topic/bootstrap-evidence-verifiers.ts +132 -0
- package/src/cohort-topic/bootstrap-parent-reference.ts +159 -0
- package/src/cohort-topic/change-bridge.ts +109 -0
- package/src/cohort-topic/cohort-gossip-driver.ts +144 -0
- package/src/cohort-topic/cohort-gossip-transport.ts +74 -0
- package/src/cohort-topic/fret-trust-anchor.ts +153 -0
- package/src/cohort-topic/host.ts +2175 -0
- package/src/cohort-topic/index.ts +13 -0
- package/src/cohort-topic/membership-publish-sink.ts +20 -0
- package/src/cohort-topic/membership-source.ts +68 -0
- package/src/cohort-topic/peer-codec.ts +31 -0
- package/src/cohort-topic/peer-sig.ts +86 -0
- package/src/cohort-topic/protocols.ts +71 -0
- package/src/cohort-topic/reactivity-membership-gate.ts +77 -0
- package/src/cohort-topic/size-estimator.ts +16 -0
- package/src/cohort-topic/stream-util.ts +87 -0
- package/src/cohort-topic/threshold-crypto.ts +239 -0
- package/src/cohort-topic/topic-router.ts +77 -0
- package/src/dispute/cascade.ts +517 -0
- package/src/dispute/client.ts +12 -2
- package/src/dispute/dispute-service.ts +171 -24
- package/src/dispute/index.ts +42 -0
- package/src/dispute/invalidation.ts +587 -0
- package/src/dispute/types.ts +14 -0
- package/src/index.ts +4 -0
- package/src/libp2p-key-network.ts +67 -9
- package/src/libp2p-node-base.ts +633 -14
- package/src/matchmaking/aggregate-counts.ts +104 -0
- package/src/matchmaking/index.ts +20 -0
- package/src/matchmaking/module.ts +363 -0
- package/src/matchmaking/protocols.ts +51 -0
- package/src/matchmaking/provider-manager.ts +95 -0
- package/src/matchmaking/query-handler.ts +88 -0
- package/src/matchmaking/query-transport.ts +483 -0
- package/src/matchmaking/seeker-manager.ts +64 -0
- package/src/matchmaking/seeker-walk-client.ts +293 -0
- package/src/matchmaking/traffic-validation.ts +195 -0
- package/src/network/network-manager-service.ts +9 -2
- package/src/protocol-client.ts +119 -5
- package/src/reactivity/forwarder-host.ts +438 -0
- package/src/reactivity/index.ts +19 -0
- package/src/reactivity/notify-transport.ts +144 -0
- package/src/reactivity/origination-manager.ts +192 -0
- package/src/reactivity/protocols.ts +61 -0
- package/src/reactivity/push-state-gossip.ts +291 -0
- package/src/reactivity/recover-transport.ts +408 -0
- package/src/reactivity/rotation-rereg-scheduler.ts +256 -0
- package/src/reactivity/subscriber-registry.ts +96 -0
- package/src/reactivity/subscription-manager.ts +450 -0
- package/src/reactivity/topic-bytes.ts +37 -0
- package/src/repo/client.ts +54 -19
- package/src/repo/cluster-coordinator.ts +66 -26
- package/src/repo/coordinator-repo.ts +99 -15
- package/src/repo/service.ts +90 -42
- package/src/rpc-deadline.ts +45 -0
- package/src/storage/block-storage.ts +106 -3
- package/src/storage/i-block-storage.ts +27 -0
- package/src/storage/storage-repo.ts +209 -13
- package/src/sync/client.ts +5 -2
- package/src/testing/cohort-topic-mesh-harness.ts +613 -0
- package/src/testing/matchmaking-mesh-harness.ts +475 -0
- package/src/testing/mesh-harness.ts +22 -2
- package/src/testing/reactivity-mesh-harness.ts +922 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured error envelope for the cluster protocol.
|
|
3
|
+
*
|
|
4
|
+
* When a cluster member throws while processing an `update` (validation,
|
|
5
|
+
* signature, merge, or consensus failure), the service serializes the error as
|
|
6
|
+
* this envelope and closes the stream normally instead of aborting it. The
|
|
7
|
+
* coordinator's {@link ClusterClient} detects the envelope and rethrows a real
|
|
8
|
+
* `Error` carrying the server's message/name/code — so the genuine cause is
|
|
9
|
+
* visible on the coordinator side (which already enables `optimystic:*` debug)
|
|
10
|
+
* rather than collapsing into an opaque `StreamResetError`.
|
|
11
|
+
*
|
|
12
|
+
* The marker key `__clusterError` cannot collide with a successful response: a
|
|
13
|
+
* {@link ClusterRecord} never carries a top-level field by this name, and the
|
|
14
|
+
* redirect payload is keyed under `redirect`.
|
|
15
|
+
*/
|
|
16
|
+
/** Top-level key that marks a response as a structured cluster error. */
|
|
17
|
+
export declare const CLUSTER_ERROR_KEY = "__clusterError";
|
|
18
|
+
/** Serializable error detail carried in a {@link ClusterErrorEnvelope}. */
|
|
19
|
+
export interface ClusterErrorDetail {
|
|
20
|
+
message: string;
|
|
21
|
+
name: string;
|
|
22
|
+
/** Stable error code (e.g. libp2p `ERR_*`) when the source error carries one. */
|
|
23
|
+
code?: string;
|
|
24
|
+
}
|
|
25
|
+
/** Wire shape of a structured cluster error response. */
|
|
26
|
+
export interface ClusterErrorEnvelope {
|
|
27
|
+
__clusterError: ClusterErrorDetail;
|
|
28
|
+
}
|
|
29
|
+
/** Build a {@link ClusterErrorEnvelope} from any thrown value. */
|
|
30
|
+
export declare function toClusterErrorEnvelope(err: unknown): ClusterErrorEnvelope;
|
|
31
|
+
/** Type guard: is `value` a structured cluster error envelope (not a record/redirect)? */
|
|
32
|
+
export declare function isClusterErrorEnvelope(value: unknown): value is ClusterErrorEnvelope;
|
|
33
|
+
/**
|
|
34
|
+
* Reconstruct a real `Error` from a cluster error envelope, preserving `name`
|
|
35
|
+
* and `code` so the coordinator's reputation/penalty classification still works.
|
|
36
|
+
*/
|
|
37
|
+
export declare function clusterErrorFromEnvelope(envelope: ClusterErrorEnvelope): Error;
|
|
38
|
+
//# sourceMappingURL=cluster-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cluster-error.d.ts","sourceRoot":"","sources":["../../../src/cluster/cluster-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,yEAAyE;AACzE,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,yDAAyD;AACzD,MAAM,WAAW,oBAAoB;IACpC,cAAc,EAAE,kBAAkB,CAAC;CACnC;AAED,kEAAkE;AAClE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAWzE;AAED,0FAA0F;AAC1F,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,oBAAoB,CAIpF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,KAAK,CAM9E"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured error envelope for the cluster protocol.
|
|
3
|
+
*
|
|
4
|
+
* When a cluster member throws while processing an `update` (validation,
|
|
5
|
+
* signature, merge, or consensus failure), the service serializes the error as
|
|
6
|
+
* this envelope and closes the stream normally instead of aborting it. The
|
|
7
|
+
* coordinator's {@link ClusterClient} detects the envelope and rethrows a real
|
|
8
|
+
* `Error` carrying the server's message/name/code — so the genuine cause is
|
|
9
|
+
* visible on the coordinator side (which already enables `optimystic:*` debug)
|
|
10
|
+
* rather than collapsing into an opaque `StreamResetError`.
|
|
11
|
+
*
|
|
12
|
+
* The marker key `__clusterError` cannot collide with a successful response: a
|
|
13
|
+
* {@link ClusterRecord} never carries a top-level field by this name, and the
|
|
14
|
+
* redirect payload is keyed under `redirect`.
|
|
15
|
+
*/
|
|
16
|
+
/** Top-level key that marks a response as a structured cluster error. */
|
|
17
|
+
export const CLUSTER_ERROR_KEY = '__clusterError';
|
|
18
|
+
/** Build a {@link ClusterErrorEnvelope} from any thrown value. */
|
|
19
|
+
export function toClusterErrorEnvelope(err) {
|
|
20
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
21
|
+
const rawCode = error.code;
|
|
22
|
+
const detail = {
|
|
23
|
+
message: error.message,
|
|
24
|
+
name: error.name
|
|
25
|
+
};
|
|
26
|
+
if (typeof rawCode === 'string' && rawCode.length > 0) {
|
|
27
|
+
detail.code = rawCode;
|
|
28
|
+
}
|
|
29
|
+
return { __clusterError: detail };
|
|
30
|
+
}
|
|
31
|
+
/** Type guard: is `value` a structured cluster error envelope (not a record/redirect)? */
|
|
32
|
+
export function isClusterErrorEnvelope(value) {
|
|
33
|
+
if (typeof value !== 'object' || value === null)
|
|
34
|
+
return false;
|
|
35
|
+
const detail = value[CLUSTER_ERROR_KEY];
|
|
36
|
+
return typeof detail === 'object' && detail !== null;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Reconstruct a real `Error` from a cluster error envelope, preserving `name`
|
|
40
|
+
* and `code` so the coordinator's reputation/penalty classification still works.
|
|
41
|
+
*/
|
|
42
|
+
export function clusterErrorFromEnvelope(envelope) {
|
|
43
|
+
const detail = envelope[CLUSTER_ERROR_KEY];
|
|
44
|
+
const error = new Error(detail.message || 'cluster update failed');
|
|
45
|
+
if (detail.name)
|
|
46
|
+
error.name = detail.name;
|
|
47
|
+
if (detail.code)
|
|
48
|
+
error.code = detail.code;
|
|
49
|
+
return error;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=cluster-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cluster-error.js","sourceRoot":"","sources":["../../../src/cluster/cluster-error.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,yEAAyE;AACzE,MAAM,CAAC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC;AAelD,kEAAkE;AAClE,MAAM,UAAU,sBAAsB,CAAC,GAAY;IAClD,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAClE,MAAM,OAAO,GAAI,KAA4B,CAAC,IAAI,CAAC;IACnD,MAAM,MAAM,GAAuB;QAClC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;KAChB,CAAC;IACF,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;AACnC,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,sBAAsB,CAAC,KAAc;IACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,MAAM,GAAI,KAA2C,CAAC,iBAAiB,CAAC,CAAC;IAC/E,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAA8B;IACtE,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,IAAI,uBAAuB,CAAC,CAAC;IACnE,IAAI,MAAM,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IAC1C,IAAI,MAAM,CAAC,IAAI;QAAG,KAA2B,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACjE,OAAO,KAAK,CAAC;AACd,CAAC"}
|
|
@@ -1,11 +1,56 @@
|
|
|
1
|
-
import type { IRepo, ClusterRecord, ITransactionValidator, ClusterConsensusConfig } from "@optimystic/db-core";
|
|
1
|
+
import type { IRepo, ClusterRecord, ITransactionValidator, ClusterConsensusConfig, BlockId, ActionId, ActionRev, CommitCert, InvalidateRequest } from "@optimystic/db-core";
|
|
2
2
|
import type { ICluster } from "@optimystic/db-core";
|
|
3
3
|
import type { IPeerNetwork } from "@optimystic/db-core";
|
|
4
|
+
import { type ArbitratorSetRecompute } from "../dispute/invalidation.js";
|
|
4
5
|
import type { PeerId, PrivateKey } from "@libp2p/interface";
|
|
5
6
|
import type { PartitionDetector } from "./partition-detector.js";
|
|
6
7
|
import type { FretService } from "p2p-fret";
|
|
7
8
|
import type { IPeerReputation } from "../reputation/types.js";
|
|
8
9
|
import type { ITransactionStateStore } from "./i-transaction-state-store.js";
|
|
10
|
+
/**
|
|
11
|
+
* Actively reconciles a block this member committed without having seen the matching
|
|
12
|
+
* pend (cohort drift between the independent pend and commit cluster-transactions).
|
|
13
|
+
* Pulls the committed revision from a cohort peer that holds it and restores it into
|
|
14
|
+
* local storage. Injected so {@link ClusterMember} stays transport-agnostic — mirrors
|
|
15
|
+
* how `CoordinatorRepo` receives its `clusterLatestCallback`.
|
|
16
|
+
*
|
|
17
|
+
* @param blockId the under-replicated block to restore
|
|
18
|
+
* @param committed the committed `(actionId, rev)` agreed by consensus
|
|
19
|
+
* @param cohortPeerIds cohort members to pull from (self already excluded)
|
|
20
|
+
*/
|
|
21
|
+
export type ReconcileBlockCallback = (blockId: BlockId, committed: ActionRev, cohortPeerIds: string[]) => Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Sink for the {@link CommitCert} this member assembled at consensus, fired once per committed action
|
|
24
|
+
* **before** the commit is applied to local storage (so it is already retained when
|
|
25
|
+
* {@link StorageRepo.commit} emits the matching `CollectionChangeEvent` the reactivity bridge reads).
|
|
26
|
+
* The bytes are the cluster's own `approve` commit signatures, forwarded UNCHANGED — never re-signed.
|
|
27
|
+
* Optional; absent on nodes that do not originate reactivity notifications. A throwing sink is
|
|
28
|
+
* isolated + logged (it must never break consensus).
|
|
29
|
+
*/
|
|
30
|
+
export type CommitCertificateSink = (actionId: ActionId, cert: CommitCert) => void;
|
|
31
|
+
/**
|
|
32
|
+
* Applies a consensus-ordered {@link InvalidateRequest} to local storage — the deterministic
|
|
33
|
+
* reversal every member runs once consensus on the invalidation is reached. The implementation
|
|
34
|
+
* recomputes the per-block as-if-`T_inv`-absent content, writes the compensating revisions, and
|
|
35
|
+
* appends the durable invalidation log entry (see `applyInvalidation` in the dispute module). It
|
|
36
|
+
* is injected so {@link ClusterMember} stays storage/log-agnostic (mirrors {@link ReconcileBlockCallback}).
|
|
37
|
+
*
|
|
38
|
+
* The certificate is verified by {@link ClusterMember} *before* the sink is invoked, so a sink
|
|
39
|
+
* implementation may assume `request.resolution` is already a valid challenger-wins certificate.
|
|
40
|
+
* A throwing sink is logged and tolerated (never resets the cluster stream); the in-memory dedup
|
|
41
|
+
* marker is rolled back so a re-broadcast can retry.
|
|
42
|
+
*/
|
|
43
|
+
export type InvalidationApplySink = (request: InvalidateRequest) => Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Optional **layer-2** capability for invalidation-certificate verification: re-derives the
|
|
46
|
+
* legitimately-selected arbitrator set from this member's topology view and judges the carried set
|
|
47
|
+
* (see {@link ArbitratorSetRecompute}). Injected so {@link ClusterMember} stays network-agnostic; the
|
|
48
|
+
* composition root supplies it from FRET when available. When absent (or when the member cannot
|
|
49
|
+
* reconstruct the historical topology), {@link applyConsensusInvalidation} accepts a layer-1-valid
|
|
50
|
+
* certificate and logs that it applied an invalidation it could not fully anchor — the documented
|
|
51
|
+
* interim posture (see `tickets/plan/cohort-topic-membership-cert-trust-anchoring.md`).
|
|
52
|
+
*/
|
|
53
|
+
export type RecomputeArbitratorSetCapability = ArbitratorSetRecompute;
|
|
9
54
|
interface ClusterMemberComponents {
|
|
10
55
|
storageRepo: IRepo;
|
|
11
56
|
peerNetwork: IPeerNetwork;
|
|
@@ -18,6 +63,14 @@ interface ClusterMemberComponents {
|
|
|
18
63
|
reputation?: IPeerReputation;
|
|
19
64
|
consensusConfig?: ClusterConsensusConfig;
|
|
20
65
|
stateStore?: ITransactionStateStore;
|
|
66
|
+
/** Restores a block under-replicated by cohort drift; see {@link ReconcileBlockCallback}. */
|
|
67
|
+
reconcileBlock?: ReconcileBlockCallback;
|
|
68
|
+
/** Receives the consensus commit cert per committed action; see {@link CommitCertificateSink}. */
|
|
69
|
+
onCommitCertificate?: CommitCertificateSink;
|
|
70
|
+
/** Applies a consensus-ordered invalidation to local storage; see {@link InvalidationApplySink}. */
|
|
71
|
+
onInvalidate?: InvalidationApplySink;
|
|
72
|
+
/** Layer-2 arbitrator-set recompute for invalidation verification; see {@link RecomputeArbitratorSetCapability}. */
|
|
73
|
+
recomputeArbitratorSet?: RecomputeArbitratorSetCapability;
|
|
21
74
|
}
|
|
22
75
|
export declare function clusterMember(components: ClusterMemberComponents): ClusterMember;
|
|
23
76
|
/**
|
|
@@ -34,16 +87,20 @@ export declare class ClusterMember implements ICluster {
|
|
|
34
87
|
private readonly validator?;
|
|
35
88
|
private readonly reputation?;
|
|
36
89
|
private readonly stateStore?;
|
|
90
|
+
private readonly reconcileBlock?;
|
|
91
|
+
private readonly onCommitCertificate?;
|
|
92
|
+
private readonly onInvalidate?;
|
|
93
|
+
private readonly recomputeArbitratorSet?;
|
|
37
94
|
private activeTransactions;
|
|
38
95
|
private executedTransactions;
|
|
96
|
+
private appliedInvalidations;
|
|
39
97
|
private cleanupQueue;
|
|
40
98
|
private pendingUpdates;
|
|
41
|
-
private currentValidationRecord?;
|
|
42
99
|
private readonly expirationInterval;
|
|
43
100
|
private readonly cleanupInterval;
|
|
44
101
|
/** Effective super-majority threshold. Defaults to 1.0 (unanimity) for backward compatibility. */
|
|
45
102
|
private readonly superMajorityThreshold;
|
|
46
|
-
constructor(storageRepo: IRepo, peerNetwork: IPeerNetwork, peerId: PeerId, privateKey: PrivateKey, protocolPrefix?: string | undefined, _partitionDetector?: PartitionDetector, fretService?: FretService | undefined, validator?: ITransactionValidator | undefined, reputation?: IPeerReputation | undefined, consensusConfig?: ClusterConsensusConfig, stateStore?: ITransactionStateStore | undefined);
|
|
103
|
+
constructor(storageRepo: IRepo, peerNetwork: IPeerNetwork, peerId: PeerId, privateKey: PrivateKey, protocolPrefix?: string | undefined, _partitionDetector?: PartitionDetector, fretService?: FretService | undefined, validator?: ITransactionValidator | undefined, reputation?: IPeerReputation | undefined, consensusConfig?: ClusterConsensusConfig, stateStore?: ITransactionStateStore | undefined, reconcileBlock?: ReconcileBlockCallback | undefined, onCommitCertificate?: CommitCertificateSink | undefined, onInvalidate?: InvalidationApplySink | undefined, recomputeArbitratorSet?: RecomputeArbitratorSetCapability | undefined);
|
|
47
104
|
/**
|
|
48
105
|
* Clears all interval and timeout handles and empties active state.
|
|
49
106
|
* Called during node shutdown to prevent leaked timers.
|
|
@@ -113,6 +170,81 @@ export declare class ClusterMember implements ICluster {
|
|
|
113
170
|
* @see docs/internals.md "Check-Then-Act Race in Consensus" and "Independent Node Storage" pitfalls
|
|
114
171
|
*/
|
|
115
172
|
private handleConsensus;
|
|
173
|
+
/**
|
|
174
|
+
* Applies one consensus-approved operation to local storage.
|
|
175
|
+
*
|
|
176
|
+
* By the time we reach here the cluster has *already* reached consensus, so the
|
|
177
|
+
* operation is authoritative cluster-wide. A failure applying it to THIS member's
|
|
178
|
+
* local store therefore does not mean the operation is invalid — it means our
|
|
179
|
+
* local state has diverged from the agreed history:
|
|
180
|
+
*
|
|
181
|
+
* - **ahead**: we already hold a newer revision, so a stale pend/commit is a
|
|
182
|
+
* no-op for us (`StorageRepo.commit` returns `success:false` with `missing`);
|
|
183
|
+
* - **behind**: we missed the prior `pend` cluster-transaction (cohort drift
|
|
184
|
+
* between the independent pend and commit phases, or transient unreachability),
|
|
185
|
+
* so we lack the pending action — `StorageRepo.commit` *throws* "Pending
|
|
186
|
+
* action … not found".
|
|
187
|
+
*
|
|
188
|
+
* For the **behind** case we hold no revision of the committed blocks at all, so we
|
|
189
|
+
* actively reconcile: pull the committed revision from a cohort peer that holds it
|
|
190
|
+
* (`reconcileBlock`) and restore it locally. Lazy read-repair on a later read cannot
|
|
191
|
+
* recover it on its own when cohort drift has left the block under-replicated (no
|
|
192
|
+
* reachable peer the reader sees holds the newer rev), so reconciling here is what
|
|
193
|
+
* keeps cross-cohort transactions converging. For the **ahead** case we already hold
|
|
194
|
+
* ≥ the committed rev, so we tolerate the no-op without reconciling downward.
|
|
195
|
+
*
|
|
196
|
+
* Whatever happens, we must NOT reset the stream: throwing here would reset the
|
|
197
|
+
* cluster stream the coordinator is awaiting and surface as a spurious
|
|
198
|
+
* `StreamResetError`, sinking an otherwise-successful transaction. So divergence —
|
|
199
|
+
* and any reconciliation failure — is tolerated (logged for observability). A
|
|
200
|
+
* genuinely *invalid* pend can never get this far: it is rejected during the promise
|
|
201
|
+
* phase (`validatePendOperations`, which validates pend ops only — commits carry no
|
|
202
|
+
* promise-phase validation).
|
|
203
|
+
*
|
|
204
|
+
* The propagate-vs-tolerate split keys off the failure's *nature* via `CommitResult`,
|
|
205
|
+
* not throw-vs-return: a missing pend (thrown "not found") or a stale/ahead commit
|
|
206
|
+
* (`success:false` with `missing`) is divergence and tolerated, whereas a genuine
|
|
207
|
+
* mid-commit `internalCommit` fault (`success:false` with a bare `reason`, no
|
|
208
|
+
* `missing`) is propagated so {@link handleConsensus} rolls back the executed marker
|
|
209
|
+
* and rethrows — exactly like an unexpected thrown fault.
|
|
210
|
+
*/
|
|
211
|
+
private applyConsensusOperation;
|
|
212
|
+
/**
|
|
213
|
+
* Applies a consensus-ordered invalidation on this member: dedup → certificate verification →
|
|
214
|
+
* capture the invalidation's commit cert (for reactivity reuse) → delegate the compensating write +
|
|
215
|
+
* durable log append to the injected {@link InvalidationApplySink}.
|
|
216
|
+
*
|
|
217
|
+
* Like every other branch of {@link applyConsensusOperation}, a failure here is tolerated rather
|
|
218
|
+
* than thrown — a throw would reset the cluster stream. A forged/sub-threshold certificate is
|
|
219
|
+
* rejected (and never reaches the sink); a sink fault is logged and its dedup marker rolled back
|
|
220
|
+
* so a re-broadcast can retry. The durable, authoritative dedup is the invalidation log entry the
|
|
221
|
+
* sink consults; the in-memory map is only a fast path.
|
|
222
|
+
*/
|
|
223
|
+
private applyConsensusInvalidation;
|
|
224
|
+
/**
|
|
225
|
+
* Record the consensus commit cert for `actionId` into the injected {@link CommitCertificateSink},
|
|
226
|
+
* if one is wired. The cert is built from the agreed `record.commits` (the per-member `approve`
|
|
227
|
+
* commit signatures), forwarded UNCHANGED for reactivity to reuse. `signedPayload` is the exact
|
|
228
|
+
* commit-vote preimage those signatures were produced over (`utf8(commitHash + ":approve")`),
|
|
229
|
+
* computed by the caller from the same `record` *before* the synchronous commit — reactivity sets a
|
|
230
|
+
* notification's `digest` from it so a real threshold-verify over `digest` succeeds. Stays
|
|
231
|
+
* **synchronous** (no `await` here) so the cert is retained before `StorageRepo.commit` emits its
|
|
232
|
+
* change event. No-op (zero cost) when no sink is configured; a throwing sink is isolated + logged so
|
|
233
|
+
* it can never break consensus.
|
|
234
|
+
*/
|
|
235
|
+
private captureCommitCert;
|
|
236
|
+
/**
|
|
237
|
+
* After tolerating a "behind" commit divergence, pull the committed revision of
|
|
238
|
+
* each block from a cohort peer that holds it and restore it locally. Best-effort:
|
|
239
|
+
* a missing callback, an empty cohort, or a per-block failure/timeout is logged and
|
|
240
|
+
* tolerated — never thrown, since a throw out of consensus execution resets the
|
|
241
|
+
* cluster stream.
|
|
242
|
+
*/
|
|
243
|
+
private reconcileDivergentCommit;
|
|
244
|
+
/** Reconcile a single block, bounding the awaited callback and swallowing failures. */
|
|
245
|
+
private reconcileOneBlock;
|
|
246
|
+
/** Bound an awaited reconcile so a slow/unreachable cohort peer can't stall consensus. */
|
|
247
|
+
private withReconcileTimeout;
|
|
116
248
|
private handleRejection;
|
|
117
249
|
private setupTimeouts;
|
|
118
250
|
private hasConflict;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cluster-repo.d.ts","sourceRoot":"","sources":["../../../src/cluster/cluster-repo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAA0B,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"cluster-repo.d.ts","sourceRoot":"","sources":["../../../src/cluster/cluster-repo.ts"],"names":[],"mappings":"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"}
|