@optimystic/db-core 0.13.5 → 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/dist/src/cluster/structs.d.ts +13 -0
- package/dist/src/cluster/structs.d.ts.map +1 -1
- package/dist/src/cohort-topic/addressing.d.ts +53 -0
- package/dist/src/cohort-topic/addressing.d.ts.map +1 -0
- package/dist/src/cohort-topic/addressing.js +95 -0
- package/dist/src/cohort-topic/addressing.js.map +1 -0
- package/dist/src/cohort-topic/antidos/bootstrap-evidence-envelope.d.ts +105 -0
- package/dist/src/cohort-topic/antidos/bootstrap-evidence-envelope.d.ts.map +1 -0
- package/dist/src/cohort-topic/antidos/bootstrap-evidence-envelope.js +197 -0
- package/dist/src/cohort-topic/antidos/bootstrap-evidence-envelope.js.map +1 -0
- package/dist/src/cohort-topic/antidos/bootstrap-evidence.d.ts +50 -0
- package/dist/src/cohort-topic/antidos/bootstrap-evidence.d.ts.map +1 -0
- package/dist/src/cohort-topic/antidos/bootstrap-evidence.js +62 -0
- package/dist/src/cohort-topic/antidos/bootstrap-evidence.js.map +1 -0
- package/dist/src/cohort-topic/antidos/index.d.ts +6 -0
- package/dist/src/cohort-topic/antidos/index.d.ts.map +1 -0
- package/dist/src/cohort-topic/antidos/index.js +6 -0
- package/dist/src/cohort-topic/antidos/index.js.map +1 -0
- package/dist/src/cohort-topic/antidos/rate-limiter.d.ts +95 -0
- package/dist/src/cohort-topic/antidos/rate-limiter.d.ts.map +1 -0
- package/dist/src/cohort-topic/antidos/rate-limiter.js +146 -0
- package/dist/src/cohort-topic/antidos/rate-limiter.js.map +1 -0
- package/dist/src/cohort-topic/antidos/replay-guard.d.ts +37 -0
- package/dist/src/cohort-topic/antidos/replay-guard.d.ts.map +1 -0
- package/dist/src/cohort-topic/antidos/replay-guard.js +78 -0
- package/dist/src/cohort-topic/antidos/replay-guard.js.map +1 -0
- package/dist/src/cohort-topic/antidos/topic-budget.d.ts +50 -0
- package/dist/src/cohort-topic/antidos/topic-budget.d.ts.map +1 -0
- package/dist/src/cohort-topic/antidos/topic-budget.js +95 -0
- package/dist/src/cohort-topic/antidos/topic-budget.js.map +1 -0
- package/dist/src/cohort-topic/antiflood/index.d.ts +3 -0
- package/dist/src/cohort-topic/antiflood/index.d.ts.map +1 -0
- package/dist/src/cohort-topic/antiflood/index.js +3 -0
- package/dist/src/cohort-topic/antiflood/index.js.map +1 -0
- package/dist/src/cohort-topic/antiflood/invariants.d.ts +70 -0
- package/dist/src/cohort-topic/antiflood/invariants.d.ts.map +1 -0
- package/dist/src/cohort-topic/antiflood/invariants.js +86 -0
- package/dist/src/cohort-topic/antiflood/invariants.js.map +1 -0
- package/dist/src/cohort-topic/antiflood/jitter.d.ts +65 -0
- package/dist/src/cohort-topic/antiflood/jitter.d.ts.map +1 -0
- package/dist/src/cohort-topic/antiflood/jitter.js +75 -0
- package/dist/src/cohort-topic/antiflood/jitter.js.map +1 -0
- package/dist/src/cohort-topic/coldstart.d.ts +117 -0
- package/dist/src/cohort-topic/coldstart.d.ts.map +1 -0
- package/dist/src/cohort-topic/coldstart.js +127 -0
- package/dist/src/cohort-topic/coldstart.js.map +1 -0
- package/dist/src/cohort-topic/dmax.d.ts +44 -0
- package/dist/src/cohort-topic/dmax.d.ts.map +1 -0
- package/dist/src/cohort-topic/dmax.js +70 -0
- package/dist/src/cohort-topic/dmax.js.map +1 -0
- package/dist/src/cohort-topic/gossip/bus.d.ts +85 -0
- package/dist/src/cohort-topic/gossip/bus.d.ts.map +1 -0
- package/dist/src/cohort-topic/gossip/bus.js +146 -0
- package/dist/src/cohort-topic/gossip/bus.js.map +1 -0
- package/dist/src/cohort-topic/gossip/index.d.ts +4 -0
- package/dist/src/cohort-topic/gossip/index.d.ts.map +1 -0
- package/dist/src/cohort-topic/gossip/index.js +4 -0
- package/dist/src/cohort-topic/gossip/index.js.map +1 -0
- package/dist/src/cohort-topic/gossip/records.d.ts +12 -0
- package/dist/src/cohort-topic/gossip/records.d.ts.map +1 -0
- package/dist/src/cohort-topic/gossip/records.js +41 -0
- package/dist/src/cohort-topic/gossip/records.js.map +1 -0
- package/dist/src/cohort-topic/gossip/view.d.ts +39 -0
- package/dist/src/cohort-topic/gossip/view.d.ts.map +1 -0
- package/dist/src/cohort-topic/gossip/view.js +30 -0
- package/dist/src/cohort-topic/gossip/view.js.map +1 -0
- package/dist/src/cohort-topic/index.d.ts +21 -0
- package/dist/src/cohort-topic/index.d.ts.map +1 -0
- package/dist/src/cohort-topic/index.js +21 -0
- package/dist/src/cohort-topic/index.js.map +1 -0
- package/dist/src/cohort-topic/load/barometer.d.ts +78 -0
- package/dist/src/cohort-topic/load/barometer.d.ts.map +1 -0
- package/dist/src/cohort-topic/load/barometer.js +93 -0
- package/dist/src/cohort-topic/load/barometer.js.map +1 -0
- package/dist/src/cohort-topic/load/index.d.ts +2 -0
- package/dist/src/cohort-topic/load/index.d.ts.map +1 -0
- package/dist/src/cohort-topic/load/index.js +2 -0
- package/dist/src/cohort-topic/load/index.js.map +1 -0
- package/dist/src/cohort-topic/member-engine.d.ts +134 -0
- package/dist/src/cohort-topic/member-engine.d.ts.map +1 -0
- package/dist/src/cohort-topic/member-engine.js +264 -0
- package/dist/src/cohort-topic/member-engine.js.map +1 -0
- package/dist/src/cohort-topic/membership/index.d.ts +4 -0
- package/dist/src/cohort-topic/membership/index.d.ts.map +1 -0
- package/dist/src/cohort-topic/membership/index.js +4 -0
- package/dist/src/cohort-topic/membership/index.js.map +1 -0
- package/dist/src/cohort-topic/membership/publisher.d.ts +82 -0
- package/dist/src/cohort-topic/membership/publisher.d.ts.map +1 -0
- package/dist/src/cohort-topic/membership/publisher.js +107 -0
- package/dist/src/cohort-topic/membership/publisher.js.map +1 -0
- package/dist/src/cohort-topic/membership/source.d.ts +31 -0
- package/dist/src/cohort-topic/membership/source.d.ts.map +1 -0
- package/dist/src/cohort-topic/membership/source.js +32 -0
- package/dist/src/cohort-topic/membership/source.js.map +1 -0
- package/dist/src/cohort-topic/membership/verifier.d.ts +96 -0
- package/dist/src/cohort-topic/membership/verifier.d.ts.map +1 -0
- package/dist/src/cohort-topic/membership/verifier.js +250 -0
- package/dist/src/cohort-topic/membership/verifier.js.map +1 -0
- package/dist/src/cohort-topic/ports.d.ts +149 -0
- package/dist/src/cohort-topic/ports.d.ts.map +1 -0
- package/dist/src/cohort-topic/ports.js +25 -0
- package/dist/src/cohort-topic/ports.js.map +1 -0
- package/dist/src/cohort-topic/promotion.d.ts +135 -0
- package/dist/src/cohort-topic/promotion.d.ts.map +1 -0
- package/dist/src/cohort-topic/promotion.js +269 -0
- package/dist/src/cohort-topic/promotion.js.map +1 -0
- package/dist/src/cohort-topic/registration/bytes.d.ts +16 -0
- package/dist/src/cohort-topic/registration/bytes.d.ts.map +1 -0
- package/dist/src/cohort-topic/registration/bytes.js +32 -0
- package/dist/src/cohort-topic/registration/bytes.js.map +1 -0
- package/dist/src/cohort-topic/registration/handoff.d.ts +69 -0
- package/dist/src/cohort-topic/registration/handoff.d.ts.map +1 -0
- package/dist/src/cohort-topic/registration/handoff.js +98 -0
- package/dist/src/cohort-topic/registration/handoff.js.map +1 -0
- package/dist/src/cohort-topic/registration/index.d.ts +7 -0
- package/dist/src/cohort-topic/registration/index.d.ts.map +1 -0
- package/dist/src/cohort-topic/registration/index.js +7 -0
- package/dist/src/cohort-topic/registration/index.js.map +1 -0
- package/dist/src/cohort-topic/registration/renewal.d.ts +115 -0
- package/dist/src/cohort-topic/registration/renewal.d.ts.map +1 -0
- package/dist/src/cohort-topic/registration/renewal.js +306 -0
- package/dist/src/cohort-topic/registration/renewal.js.map +1 -0
- package/dist/src/cohort-topic/registration/sharding.d.ts +31 -0
- package/dist/src/cohort-topic/registration/sharding.d.ts.map +1 -0
- package/dist/src/cohort-topic/registration/sharding.js +48 -0
- package/dist/src/cohort-topic/registration/sharding.js.map +1 -0
- package/dist/src/cohort-topic/registration/store.d.ts +13 -0
- package/dist/src/cohort-topic/registration/store.d.ts.map +1 -0
- package/dist/src/cohort-topic/registration/store.js +72 -0
- package/dist/src/cohort-topic/registration/store.js.map +1 -0
- package/dist/src/cohort-topic/registration/types.d.ts +71 -0
- package/dist/src/cohort-topic/registration/types.d.ts.map +1 -0
- package/dist/src/cohort-topic/registration/types.js +27 -0
- package/dist/src/cohort-topic/registration/types.js.map +1 -0
- package/dist/src/cohort-topic/ring-hash.d.ts +27 -0
- package/dist/src/cohort-topic/ring-hash.d.ts.map +1 -0
- package/dist/src/cohort-topic/ring-hash.js +45 -0
- package/dist/src/cohort-topic/ring-hash.js.map +1 -0
- package/dist/src/cohort-topic/service.d.ts +157 -0
- package/dist/src/cohort-topic/service.d.ts.map +1 -0
- package/dist/src/cohort-topic/service.js +237 -0
- package/dist/src/cohort-topic/service.js.map +1 -0
- package/dist/src/cohort-topic/sig/index.d.ts +3 -0
- package/dist/src/cohort-topic/sig/index.d.ts.map +1 -0
- package/dist/src/cohort-topic/sig/index.js +3 -0
- package/dist/src/cohort-topic/sig/index.js.map +1 -0
- package/dist/src/cohort-topic/sig/payloads.d.ts +25 -0
- package/dist/src/cohort-topic/sig/payloads.d.ts.map +1 -0
- package/dist/src/cohort-topic/sig/payloads.js +25 -0
- package/dist/src/cohort-topic/sig/payloads.js.map +1 -0
- package/dist/src/cohort-topic/sig/threshold.d.ts +33 -0
- package/dist/src/cohort-topic/sig/threshold.d.ts.map +1 -0
- package/dist/src/cohort-topic/sig/threshold.js +51 -0
- package/dist/src/cohort-topic/sig/threshold.js.map +1 -0
- package/dist/src/cohort-topic/tiers.d.ts +58 -0
- package/dist/src/cohort-topic/tiers.d.ts.map +1 -0
- package/dist/src/cohort-topic/tiers.js +49 -0
- package/dist/src/cohort-topic/tiers.js.map +1 -0
- package/dist/src/cohort-topic/traffic.d.ts +90 -0
- package/dist/src/cohort-topic/traffic.d.ts.map +1 -0
- package/dist/src/cohort-topic/traffic.js +146 -0
- package/dist/src/cohort-topic/traffic.js.map +1 -0
- package/dist/src/cohort-topic/walk.d.ts +123 -0
- package/dist/src/cohort-topic/walk.d.ts.map +1 -0
- package/dist/src/cohort-topic/walk.js +150 -0
- package/dist/src/cohort-topic/walk.js.map +1 -0
- package/dist/src/cohort-topic/willingness.d.ts +123 -0
- package/dist/src/cohort-topic/willingness.d.ts.map +1 -0
- package/dist/src/cohort-topic/willingness.js +143 -0
- package/dist/src/cohort-topic/willingness.js.map +1 -0
- package/dist/src/cohort-topic/wire/codec.d.ts +42 -0
- package/dist/src/cohort-topic/wire/codec.d.ts.map +1 -0
- package/dist/src/cohort-topic/wire/codec.js +163 -0
- package/dist/src/cohort-topic/wire/codec.js.map +1 -0
- package/dist/src/cohort-topic/wire/index.d.ts +6 -0
- package/dist/src/cohort-topic/wire/index.d.ts.map +1 -0
- package/dist/src/cohort-topic/wire/index.js +6 -0
- package/dist/src/cohort-topic/wire/index.js.map +1 -0
- package/dist/src/cohort-topic/wire/payloads.d.ts +38 -0
- package/dist/src/cohort-topic/wire/payloads.d.ts.map +1 -0
- package/dist/src/cohort-topic/wire/payloads.js +102 -0
- package/dist/src/cohort-topic/wire/payloads.js.map +1 -0
- package/dist/src/cohort-topic/wire/types.d.ts +304 -0
- package/dist/src/cohort-topic/wire/types.d.ts.map +1 -0
- package/dist/src/cohort-topic/wire/types.js +16 -0
- package/dist/src/cohort-topic/wire/types.js.map +1 -0
- package/dist/src/cohort-topic/wire/validate.d.ts +25 -0
- package/dist/src/cohort-topic/wire/validate.d.ts.map +1 -0
- package/dist/src/cohort-topic/wire/validate.js +427 -0
- package/dist/src/cohort-topic/wire/validate.js.map +1 -0
- package/dist/src/collection/collection.d.ts +58 -1
- package/dist/src/collection/collection.d.ts.map +1 -1
- package/dist/src/collection/collection.js +76 -0
- package/dist/src/collection/collection.js.map +1 -1
- package/dist/src/collections/tree/tree.d.ts +58 -2
- package/dist/src/collections/tree/tree.d.ts.map +1 -1
- package/dist/src/collections/tree/tree.js +59 -2
- package/dist/src/collections/tree/tree.js.map +1 -1
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/log/log.d.ts +42 -4
- package/dist/src/log/log.d.ts.map +1 -1
- package/dist/src/log/log.js +71 -3
- package/dist/src/log/log.js.map +1 -1
- package/dist/src/log/struct.d.ts +122 -2
- package/dist/src/log/struct.d.ts.map +1 -1
- package/dist/src/log/struct.js.map +1 -1
- package/dist/src/matchmaking/capability-filter.d.ts +24 -0
- package/dist/src/matchmaking/capability-filter.d.ts.map +1 -0
- package/dist/src/matchmaking/capability-filter.js +37 -0
- package/dist/src/matchmaking/capability-filter.js.map +1 -0
- package/dist/src/matchmaking/config.d.ts +77 -0
- package/dist/src/matchmaking/config.d.ts.map +1 -0
- package/dist/src/matchmaking/config.js +69 -0
- package/dist/src/matchmaking/config.js.map +1 -0
- package/dist/src/matchmaking/index.d.ts +21 -0
- package/dist/src/matchmaking/index.d.ts.map +1 -0
- package/dist/src/matchmaking/index.js +21 -0
- package/dist/src/matchmaking/index.js.map +1 -0
- package/dist/src/matchmaking/multi-cohort-seeker.d.ts +133 -0
- package/dist/src/matchmaking/multi-cohort-seeker.d.ts.map +1 -0
- package/dist/src/matchmaking/multi-cohort-seeker.js +142 -0
- package/dist/src/matchmaking/multi-cohort-seeker.js.map +1 -0
- package/dist/src/matchmaking/provider.d.ts +70 -0
- package/dist/src/matchmaking/provider.d.ts.map +1 -0
- package/dist/src/matchmaking/provider.js +93 -0
- package/dist/src/matchmaking/provider.js.map +1 -0
- package/dist/src/matchmaking/query-eval.d.ts +53 -0
- package/dist/src/matchmaking/query-eval.d.ts.map +1 -0
- package/dist/src/matchmaking/query-eval.js +69 -0
- package/dist/src/matchmaking/query-eval.js.map +1 -0
- package/dist/src/matchmaking/seeker-walk.d.ts +95 -0
- package/dist/src/matchmaking/seeker-walk.d.ts.map +1 -0
- package/dist/src/matchmaking/seeker-walk.js +75 -0
- package/dist/src/matchmaking/seeker-walk.js.map +1 -0
- package/dist/src/matchmaking/seeker.d.ts +51 -0
- package/dist/src/matchmaking/seeker.d.ts.map +1 -0
- package/dist/src/matchmaking/seeker.js +62 -0
- package/dist/src/matchmaking/seeker.js.map +1 -0
- package/dist/src/matchmaking/topic-anchor.d.ts +54 -0
- package/dist/src/matchmaking/topic-anchor.d.ts.map +1 -0
- package/dist/src/matchmaking/topic-anchor.js +67 -0
- package/dist/src/matchmaking/topic-anchor.js.map +1 -0
- package/dist/src/matchmaking/voting-quorum.d.ts +233 -0
- package/dist/src/matchmaking/voting-quorum.d.ts.map +1 -0
- package/dist/src/matchmaking/voting-quorum.js +238 -0
- package/dist/src/matchmaking/voting-quorum.js.map +1 -0
- package/dist/src/matchmaking/wire.d.ts +259 -0
- package/dist/src/matchmaking/wire.d.ts.map +1 -0
- package/dist/src/matchmaking/wire.js +484 -0
- package/dist/src/matchmaking/wire.js.map +1 -0
- package/dist/src/network/i-repo.d.ts +9 -0
- package/dist/src/network/i-repo.d.ts.map +1 -1
- package/dist/src/network/repo-protocol.d.ts +3 -1
- package/dist/src/network/repo-protocol.d.ts.map +1 -1
- package/dist/src/network/struct.d.ts +23 -1
- package/dist/src/network/struct.d.ts.map +1 -1
- package/dist/src/reactivity/backfill.d.ts +118 -0
- package/dist/src/reactivity/backfill.d.ts.map +1 -0
- package/dist/src/reactivity/backfill.js +137 -0
- package/dist/src/reactivity/backfill.js.map +1 -0
- package/dist/src/reactivity/backpressure.d.ts +99 -0
- package/dist/src/reactivity/backpressure.d.ts.map +1 -0
- package/dist/src/reactivity/backpressure.js +153 -0
- package/dist/src/reactivity/backpressure.js.map +1 -0
- package/dist/src/reactivity/checkpoint.d.ts +165 -0
- package/dist/src/reactivity/checkpoint.d.ts.map +1 -0
- package/dist/src/reactivity/checkpoint.js +232 -0
- package/dist/src/reactivity/checkpoint.js.map +1 -0
- package/dist/src/reactivity/config.d.ts +131 -0
- package/dist/src/reactivity/config.d.ts.map +1 -0
- package/dist/src/reactivity/config.js +135 -0
- package/dist/src/reactivity/config.js.map +1 -0
- package/dist/src/reactivity/dedupe.d.ts +51 -0
- package/dist/src/reactivity/dedupe.d.ts.map +1 -0
- package/dist/src/reactivity/dedupe.js +90 -0
- package/dist/src/reactivity/dedupe.js.map +1 -0
- package/dist/src/reactivity/forwarder.d.ts +50 -0
- package/dist/src/reactivity/forwarder.d.ts.map +1 -0
- package/dist/src/reactivity/forwarder.js +52 -0
- package/dist/src/reactivity/forwarder.js.map +1 -0
- package/dist/src/reactivity/index.d.ts +34 -0
- package/dist/src/reactivity/index.d.ts.map +1 -0
- package/dist/src/reactivity/index.js +34 -0
- package/dist/src/reactivity/index.js.map +1 -0
- package/dist/src/reactivity/notification.d.ts +72 -0
- package/dist/src/reactivity/notification.d.ts.map +1 -0
- package/dist/src/reactivity/notification.js +92 -0
- package/dist/src/reactivity/notification.js.map +1 -0
- package/dist/src/reactivity/policy.d.ts +59 -0
- package/dist/src/reactivity/policy.d.ts.map +1 -0
- package/dist/src/reactivity/policy.js +64 -0
- package/dist/src/reactivity/policy.js.map +1 -0
- package/dist/src/reactivity/push-state.d.ts +140 -0
- package/dist/src/reactivity/push-state.d.ts.map +1 -0
- package/dist/src/reactivity/push-state.js +270 -0
- package/dist/src/reactivity/push-state.js.map +1 -0
- package/dist/src/reactivity/recover.d.ts +75 -0
- package/dist/src/reactivity/recover.d.ts.map +1 -0
- package/dist/src/reactivity/recover.js +105 -0
- package/dist/src/reactivity/recover.js.map +1 -0
- package/dist/src/reactivity/replay-buffer.d.ts +57 -0
- package/dist/src/reactivity/replay-buffer.d.ts.map +1 -0
- package/dist/src/reactivity/replay-buffer.js +88 -0
- package/dist/src/reactivity/replay-buffer.js.map +1 -0
- package/dist/src/reactivity/resume.d.ts +214 -0
- package/dist/src/reactivity/resume.d.ts.map +1 -0
- package/dist/src/reactivity/resume.js +358 -0
- package/dist/src/reactivity/resume.js.map +1 -0
- package/dist/src/reactivity/rotation.d.ts +283 -0
- package/dist/src/reactivity/rotation.d.ts.map +1 -0
- package/dist/src/reactivity/rotation.js +265 -0
- package/dist/src/reactivity/rotation.js.map +1 -0
- package/dist/src/reactivity/subscriber.d.ts +66 -0
- package/dist/src/reactivity/subscriber.d.ts.map +1 -0
- package/dist/src/reactivity/subscriber.js +75 -0
- package/dist/src/reactivity/subscriber.js.map +1 -0
- package/dist/src/reactivity/subscription.d.ts +52 -0
- package/dist/src/reactivity/subscription.d.ts.map +1 -0
- package/dist/src/reactivity/subscription.js +28 -0
- package/dist/src/reactivity/subscription.js.map +1 -0
- package/dist/src/reactivity/topic-anchor.d.ts +46 -0
- package/dist/src/reactivity/topic-anchor.d.ts.map +1 -0
- package/dist/src/reactivity/topic-anchor.js +61 -0
- package/dist/src/reactivity/topic-anchor.js.map +1 -0
- package/dist/src/reactivity/verify.d.ts +41 -0
- package/dist/src/reactivity/verify.d.ts.map +1 -0
- package/dist/src/reactivity/verify.js +48 -0
- package/dist/src/reactivity/verify.js.map +1 -0
- package/dist/src/reactivity/wire-validate.d.ts +28 -0
- package/dist/src/reactivity/wire-validate.d.ts.map +1 -0
- package/dist/src/reactivity/wire-validate.js +79 -0
- package/dist/src/reactivity/wire-validate.js.map +1 -0
- package/dist/src/reactivity/wire.d.ts +102 -0
- package/dist/src/reactivity/wire.d.ts.map +1 -0
- package/dist/src/reactivity/wire.js +129 -0
- package/dist/src/reactivity/wire.js.map +1 -0
- package/dist/src/transaction/coordinator.d.ts +9 -5
- package/dist/src/transaction/coordinator.d.ts.map +1 -1
- package/dist/src/transaction/coordinator.js +48 -25
- package/dist/src/transaction/coordinator.js.map +1 -1
- package/dist/src/transactor/change-notifier.d.ts +74 -0
- package/dist/src/transactor/change-notifier.d.ts.map +1 -0
- package/dist/src/transactor/change-notifier.js +4 -0
- package/dist/src/transactor/change-notifier.js.map +1 -0
- package/dist/src/transactor/index.d.ts +1 -0
- package/dist/src/transactor/index.d.ts.map +1 -1
- package/dist/src/transactor/index.js +1 -0
- package/dist/src/transactor/index.js.map +1 -1
- package/dist/src/transactor/network-transactor.d.ts +34 -2
- package/dist/src/transactor/network-transactor.d.ts.map +1 -1
- package/dist/src/transactor/network-transactor.js +113 -13
- package/dist/src/transactor/network-transactor.js.map +1 -1
- package/package.json +2 -2
- package/src/cluster/structs.ts +13 -0
- package/src/cohort-topic/addressing.ts +112 -0
- package/src/cohort-topic/antidos/bootstrap-evidence-envelope.ts +253 -0
- package/src/cohort-topic/antidos/bootstrap-evidence.ts +94 -0
- package/src/cohort-topic/antidos/index.ts +5 -0
- package/src/cohort-topic/antidos/rate-limiter.ts +210 -0
- package/src/cohort-topic/antidos/replay-guard.ts +109 -0
- package/src/cohort-topic/antidos/topic-budget.ts +145 -0
- package/src/cohort-topic/antiflood/index.ts +2 -0
- package/src/cohort-topic/antiflood/invariants.ts +108 -0
- package/src/cohort-topic/antiflood/jitter.ts +117 -0
- package/src/cohort-topic/coldstart.ts +204 -0
- package/src/cohort-topic/dmax.ts +88 -0
- package/src/cohort-topic/gossip/bus.ts +217 -0
- package/src/cohort-topic/gossip/index.ts +3 -0
- package/src/cohort-topic/gossip/records.ts +45 -0
- package/src/cohort-topic/gossip/view.ts +66 -0
- package/src/cohort-topic/index.ts +20 -0
- package/src/cohort-topic/load/barometer.ts +134 -0
- package/src/cohort-topic/load/index.ts +1 -0
- package/src/cohort-topic/member-engine.ts +409 -0
- package/src/cohort-topic/membership/index.ts +3 -0
- package/src/cohort-topic/membership/publisher.ts +171 -0
- package/src/cohort-topic/membership/source.ts +41 -0
- package/src/cohort-topic/membership/verifier.ts +345 -0
- package/src/cohort-topic/ports.ts +157 -0
- package/src/cohort-topic/promotion.ts +384 -0
- package/src/cohort-topic/registration/bytes.ts +37 -0
- package/src/cohort-topic/registration/handoff.ts +154 -0
- package/src/cohort-topic/registration/index.ts +6 -0
- package/src/cohort-topic/registration/renewal.ts +423 -0
- package/src/cohort-topic/registration/sharding.ts +61 -0
- package/src/cohort-topic/registration/store.ts +81 -0
- package/src/cohort-topic/registration/types.ts +76 -0
- package/src/cohort-topic/ring-hash.ts +50 -0
- package/src/cohort-topic/service.ts +390 -0
- package/src/cohort-topic/sig/index.ts +2 -0
- package/src/cohort-topic/sig/payloads.ts +39 -0
- package/src/cohort-topic/sig/threshold.ts +64 -0
- package/src/cohort-topic/tiers.ts +74 -0
- package/src/cohort-topic/traffic.ts +211 -0
- package/src/cohort-topic/walk.ts +255 -0
- package/src/cohort-topic/willingness.ts +237 -0
- package/src/cohort-topic/wire/codec.ts +204 -0
- package/src/cohort-topic/wire/index.ts +16 -0
- package/src/cohort-topic/wire/payloads.ts +117 -0
- package/src/cohort-topic/wire/types.ts +343 -0
- package/src/cohort-topic/wire/validate.ts +478 -0
- package/src/collection/collection.ts +93 -1
- package/src/collections/tree/tree.ts +84 -3
- package/src/index.ts +3 -0
- package/src/log/log.ts +86 -7
- package/src/log/struct.ts +126 -2
- package/src/matchmaking/capability-filter.ts +45 -0
- package/src/matchmaking/config.ts +98 -0
- package/src/matchmaking/index.ts +21 -0
- package/src/matchmaking/multi-cohort-seeker.ts +234 -0
- package/src/matchmaking/provider.ts +123 -0
- package/src/matchmaking/query-eval.ts +105 -0
- package/src/matchmaking/seeker-walk.ts +127 -0
- package/src/matchmaking/seeker.ts +86 -0
- package/src/matchmaking/topic-anchor.ts +90 -0
- package/src/matchmaking/voting-quorum.ts +394 -0
- package/src/matchmaking/wire.ts +680 -0
- package/src/network/i-repo.ts +9 -0
- package/src/network/repo-protocol.ts +3 -2
- package/src/network/struct.ts +24 -1
- package/src/reactivity/backfill.ts +220 -0
- package/src/reactivity/backpressure.ts +191 -0
- package/src/reactivity/checkpoint.ts +308 -0
- package/src/reactivity/config.ts +172 -0
- package/src/reactivity/dedupe.ts +132 -0
- package/src/reactivity/forwarder.ts +87 -0
- package/src/reactivity/index.ts +34 -0
- package/src/reactivity/notification.ts +123 -0
- package/src/reactivity/policy.ts +79 -0
- package/src/reactivity/push-state.ts +343 -0
- package/src/reactivity/recover.ts +153 -0
- package/src/reactivity/replay-buffer.ts +141 -0
- package/src/reactivity/resume.ts +549 -0
- package/src/reactivity/rotation.ts +415 -0
- package/src/reactivity/subscriber.ts +132 -0
- package/src/reactivity/subscription.ts +66 -0
- package/src/reactivity/topic-anchor.ts +71 -0
- package/src/reactivity/verify.ts +73 -0
- package/src/reactivity/wire-validate.ts +87 -0
- package/src/reactivity/wire.ts +224 -0
- package/src/transaction/coordinator.ts +53 -27
- package/src/transactor/change-notifier.ts +80 -0
- package/src/transactor/index.ts +1 -0
- package/src/transactor/network-transactor.ts +133 -15
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reactivity — V1 wire types, codecs, and per-message validation.
|
|
3
|
+
*
|
|
4
|
+
* Transcribed from `docs/reactivity.md` §Wire formats. Reactivity reuses the cohort-topic `RegisterV1`
|
|
5
|
+
* / `RenewV1` envelopes **unchanged**; the reactivity-specific shapes live in two places:
|
|
6
|
+
*
|
|
7
|
+
* 1. **Subscribe app payload** ({@link SubscribeAppPayloadV1}) carried opaquely inside
|
|
8
|
+
* `RegisterV1.appPayload`. Serialized to UTF-8 JSON bytes and handed to the cohort-topic
|
|
9
|
+
* {@link import("../cohort-topic/service.js").RegisterRequest}`.appPayload` slot, which base64url-encodes
|
|
10
|
+
* it on the wire. It is therefore **not** length-framed here — the cohort-topic `RegisterV1` frame
|
|
11
|
+
* wraps it. The subscribe RPC's authentication (peer-key signature over `correlationId` + `timestamp`)
|
|
12
|
+
* is the cohort-topic `RegisterV1` envelope's job, so the payload itself carries no signature.
|
|
13
|
+
*
|
|
14
|
+
* 2. **Notification** ({@link NotificationV1}) sent as a standalone RPC over the reactivity application
|
|
15
|
+
* protocol. It rides the same length-prefixed UTF-8 JSON framing as cohort-topic messages
|
|
16
|
+
* ({@link encodeCohortMessage}). Its `sig` is **bit-for-bit** the commit certificate's threshold
|
|
17
|
+
* signature — reactivity never re-signs (`docs/reactivity.md` §Notification origination).
|
|
18
|
+
*
|
|
19
|
+
* Conventions (matching the cohort-topic wire conventions): all JSON, byte fields base64url (no
|
|
20
|
+
* padding), unix-millisecond timestamps, per-message structural validation on decode, byte-fidelity
|
|
21
|
+
* round-trips (encode→decode→encode is stable). `collectionId` / `tailId` travel as the collection's
|
|
22
|
+
* base64url block ids verbatim. The `BackfillV1` / `ResumeV1` codecs belong to the sibling tickets.
|
|
23
|
+
*/
|
|
24
|
+
import { decodeCohortMessage, encodeCohortMessage, DEFAULT_MAX_MESSAGE_BYTES, } from "../cohort-topic/wire/codec.js";
|
|
25
|
+
import { asObject, b64urlField, failWire as fail, reqBoolean, reqFiniteNumber, reqIntInRange, reqString, reqStringArray, requireV1, } from "./wire-validate.js";
|
|
26
|
+
const utf8Encoder = new TextEncoder();
|
|
27
|
+
const utf8Decoder = new TextDecoder("utf-8", { fatal: true });
|
|
28
|
+
/** Ceiling for an opaque subscribe app payload, guarding decode allocation. */
|
|
29
|
+
export const DEFAULT_MAX_SUBSCRIBE_PAYLOAD_BYTES = 64 * 1024;
|
|
30
|
+
// --- validation helpers ---
|
|
31
|
+
// Generic primitives live in ./wire-validate.js (shared across the reactivity codecs); the
|
|
32
|
+
// notification-specific narrowing stays here next to the type it produces.
|
|
33
|
+
function validateRotationHint(value, what) {
|
|
34
|
+
const obj = asObject(value, what);
|
|
35
|
+
return {
|
|
36
|
+
newTailId: b64urlField(reqString(obj, "newTailId", what), "newTailId", what),
|
|
37
|
+
effectiveAtRevision: reqIntInRange(obj, "effectiveAtRevision", what, 0),
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
// --- Subscribe app payload (opaque RegisterV1.appPayload bytes) ---
|
|
41
|
+
/** Narrow an already-parsed value to {@link SubscribeAppPayloadV1}, throwing on any defect. */
|
|
42
|
+
export function validateSubscribeAppPayloadV1(value) {
|
|
43
|
+
const what = "SubscribeAppPayloadV1";
|
|
44
|
+
const obj = asObject(value, what);
|
|
45
|
+
if (obj["kind"] !== "reactivity") {
|
|
46
|
+
fail(`${what}: field "kind" must be exactly "reactivity"`);
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
kind: "reactivity",
|
|
50
|
+
collectionId: b64urlField(reqString(obj, "collectionId", what), "collectionId", what),
|
|
51
|
+
tailIdAtAttach: b64urlField(reqString(obj, "tailIdAtAttach", what), "tailIdAtAttach", what),
|
|
52
|
+
lastKnownRev: reqIntInRange(obj, "lastKnownRev", what, 0),
|
|
53
|
+
deltaMaxBytes: reqIntInRange(obj, "deltaMaxBytes", what, 0),
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/** Serialize a {@link SubscribeAppPayloadV1} to the opaque UTF-8 JSON bytes for `RegisterV1.appPayload`. */
|
|
57
|
+
export function encodeSubscribeAppPayload(payload) {
|
|
58
|
+
return utf8Encoder.encode(JSON.stringify(validateSubscribeAppPayloadV1(payload)));
|
|
59
|
+
}
|
|
60
|
+
/** Decode opaque `RegisterV1.appPayload` bytes back to a validated {@link SubscribeAppPayloadV1}. */
|
|
61
|
+
export function decodeSubscribeAppPayload(bytes, maxBytes = DEFAULT_MAX_SUBSCRIBE_PAYLOAD_BYTES) {
|
|
62
|
+
return validateSubscribeAppPayloadV1(parseJsonBytes(bytes, maxBytes, "SubscribeAppPayloadV1"));
|
|
63
|
+
}
|
|
64
|
+
/** Parse opaque (non-framed) UTF-8 JSON payload bytes, rejecting oversized/invalid input. */
|
|
65
|
+
function parseJsonBytes(bytes, maxBytes, what) {
|
|
66
|
+
if (bytes.length > maxBytes) {
|
|
67
|
+
fail(`${what}: payload ${bytes.length} exceeds max ${maxBytes} bytes`);
|
|
68
|
+
}
|
|
69
|
+
let text;
|
|
70
|
+
try {
|
|
71
|
+
text = utf8Decoder.decode(bytes);
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
fail(`${what}: payload is not valid UTF-8`);
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
return JSON.parse(text);
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
fail(`${what}: payload is not valid JSON`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// --- Notification (length-framed) ---
|
|
84
|
+
/** Narrow an already-parsed value to {@link NotificationV1}, throwing on any defect. */
|
|
85
|
+
export function validateNotificationV1(value) {
|
|
86
|
+
const what = "NotificationV1";
|
|
87
|
+
const obj = asObject(value, what);
|
|
88
|
+
requireV1(obj, what);
|
|
89
|
+
const signers = reqStringArray(obj["signers"], "signers", what);
|
|
90
|
+
const out = {
|
|
91
|
+
v: 1,
|
|
92
|
+
collectionId: b64urlField(reqString(obj, "collectionId", what), "collectionId", what),
|
|
93
|
+
tailId: b64urlField(reqString(obj, "tailId", what), "tailId", what),
|
|
94
|
+
revision: reqIntInRange(obj, "revision", what, 0),
|
|
95
|
+
digest: b64urlField(reqString(obj, "digest", what), "digest", what),
|
|
96
|
+
timestamp: reqFiniteNumber(obj, "timestamp", what),
|
|
97
|
+
sig: b64urlField(reqString(obj, "sig", what), "sig", what),
|
|
98
|
+
signers: signers.map((s, i) => b64urlField(s, `signers[${i}]`, what)),
|
|
99
|
+
};
|
|
100
|
+
if (obj["delta"] !== undefined) {
|
|
101
|
+
out.delta = b64urlField(reqString(obj, "delta", what), "delta", what);
|
|
102
|
+
}
|
|
103
|
+
if (obj["rotationHint"] !== undefined) {
|
|
104
|
+
out.rotationHint = validateRotationHint(obj["rotationHint"], `${what}.rotationHint`);
|
|
105
|
+
}
|
|
106
|
+
if (obj["invalidation"] !== undefined) {
|
|
107
|
+
out.invalidation = reqBoolean(obj, "invalidation", what);
|
|
108
|
+
}
|
|
109
|
+
if (obj["invalidatedActionId"] !== undefined) {
|
|
110
|
+
out.invalidatedActionId = reqString(obj, "invalidatedActionId", what);
|
|
111
|
+
}
|
|
112
|
+
return out;
|
|
113
|
+
}
|
|
114
|
+
/** Validate an array of {@link NotificationV1} (the `entries`/`recentEntries` carried in backfill/resume replies). */
|
|
115
|
+
export function validateNotificationArray(value, what) {
|
|
116
|
+
if (!Array.isArray(value)) {
|
|
117
|
+
fail(`${what}: field "entries" must be an array`);
|
|
118
|
+
}
|
|
119
|
+
return value.map((entry) => validateNotificationV1(entry));
|
|
120
|
+
}
|
|
121
|
+
/** Encode a {@link NotificationV1} as a length-prefixed UTF-8 JSON frame. */
|
|
122
|
+
export function encodeNotificationV1(msg, maxMessageBytes = DEFAULT_MAX_MESSAGE_BYTES) {
|
|
123
|
+
return encodeCohortMessage(validateNotificationV1(msg), maxMessageBytes);
|
|
124
|
+
}
|
|
125
|
+
/** Decode a length-prefixed {@link NotificationV1} frame. */
|
|
126
|
+
export function decodeNotificationV1(bytes, maxMessageBytes) {
|
|
127
|
+
return validateNotificationV1(decodeCohortMessage(bytes, maxMessageBytes));
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=wire.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/reactivity/wire.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,11 +35,15 @@ export declare class TransactionCoordinator {
|
|
|
35
35
|
*/
|
|
36
36
|
private applyActionsRaw;
|
|
37
37
|
/**
|
|
38
|
-
* Commit a transaction
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
38
|
+
* Commit a transaction: materialise a log entry from each collection's staged
|
|
39
|
+
* pending actions, then orchestrate the distributed consensus (GATHER/PEND/COMMIT).
|
|
40
|
+
*
|
|
41
|
+
* Called by TransactionSession.commit() after all statements have executed. The
|
|
42
|
+
* staged mutations already live in each collection's tracker — applied either via
|
|
43
|
+
* applyActions() (engine-driven path) or directly via Collection.act()/Tree.stage
|
|
44
|
+
* (the vtab's deferred-DML path) — but in BOTH cases without a log entry yet, so
|
|
45
|
+
* this method appends that entry here (see the inline note below) before pending,
|
|
46
|
+
* and folds the committed transforms back into each collection's read cache.
|
|
43
47
|
*
|
|
44
48
|
* @param transaction - The transaction to commit
|
|
45
49
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/transaction/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAW,YAAY,EAAE,UAAU,EAAiE,MAAM,aAAa,CAAC;AACjJ,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE5H,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAgBlD;;;;;;;;;GASG;AACH,qBAAa,sBAAsB;IAUjC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAV7B,yFAAyF;IACzF,OAAO,CAAC,SAAS,CAIZ;IACL,OAAO,CAAC,cAAc,CAAK;gBAGT,UAAU,EAAE,WAAW,EACvB,WAAW,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAGjE;;;;;;;;;OASG;IACG,YAAY,CACjB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAkBhB;;OAEG;YACW,eAAe;IAiB7B
|
|
1
|
+
{"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../../src/transaction/coordinator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAW,YAAY,EAAE,UAAU,EAAiE,MAAM,aAAa,CAAC;AACjJ,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE5H,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAgBlD;;;;;;;;;GASG;AACH,qBAAa,sBAAsB;IAUjC,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAV7B,yFAAyF;IACzF,OAAO,CAAC,SAAS,CAIZ;IACL,OAAO,CAAC,cAAc,CAAK;gBAGT,UAAU,EAAE,WAAW,EACvB,WAAW,EAAE,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAGjE;;;;;;;;;OASG;IACG,YAAY,CACjB,OAAO,EAAE,iBAAiB,EAAE,EAC5B,OAAO,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAkBhB;;OAEG;YACW,eAAe;IAiB7B;;;;;;;;;;;;OAYG;IACG,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAwGrD;;;;;;;;OAQG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA6C9C;;;;;;OAMG;IACH,aAAa,IAAI,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC;IAe9C;;;;;OAKG;IACH,eAAe,IAAI,IAAI;IAMvB;;OAEG;IACH,mBAAmB,IAAI,cAAc,EAAE;IAQvC;;OAEG;IACH,qBAAqB,IAAI,IAAI;IAM7B;;;;OAIG;YACW,cAAc;IAK5B;;;;;;;;OAQG;IACG,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IAkC9E;;;;;;;;;OASG;IACG,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC;IA2G7F;;;;OAIG;YACW,wBAAwB;IA+DtC;;;;;;;OAOG;YACW,qBAAqB;IAuDnC;;;;;;;OAOG;YACW,WAAW;IAgCzB;;;;;;;OAOG;YACW,SAAS;IAuDvB;;;;;;OAMG;YACW,WAAW;IA0EzB;;;;;OAKG;YACW,WAAW;CAWzB"}
|
|
@@ -65,11 +65,15 @@ export class TransactionCoordinator {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
/**
|
|
68
|
-
* Commit a transaction
|
|
68
|
+
* Commit a transaction: materialise a log entry from each collection's staged
|
|
69
|
+
* pending actions, then orchestrate the distributed consensus (GATHER/PEND/COMMIT).
|
|
69
70
|
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
71
|
+
* Called by TransactionSession.commit() after all statements have executed. The
|
|
72
|
+
* staged mutations already live in each collection's tracker — applied either via
|
|
73
|
+
* applyActions() (engine-driven path) or directly via Collection.act()/Tree.stage
|
|
74
|
+
* (the vtab's deferred-DML path) — but in BOTH cases without a log entry yet, so
|
|
75
|
+
* this method appends that entry here (see the inline note below) before pending,
|
|
76
|
+
* and folds the committed transforms back into each collection's read cache.
|
|
73
77
|
*
|
|
74
78
|
* @param transaction - The transaction to commit
|
|
75
79
|
*/
|
|
@@ -77,7 +81,7 @@ export class TransactionCoordinator {
|
|
|
77
81
|
if (isTransactionExpired(transaction.stamp)) {
|
|
78
82
|
throw new Error(`Transaction expired at ${transaction.stamp.expiration}`);
|
|
79
83
|
}
|
|
80
|
-
// Collect
|
|
84
|
+
// Collect collections with staged (un-synced) changes.
|
|
81
85
|
const collectionData = Array.from(this.collections.entries())
|
|
82
86
|
.map(([collectionId, collection]) => ({
|
|
83
87
|
collectionId,
|
|
@@ -90,26 +94,32 @@ export class TransactionCoordinator {
|
|
|
90
94
|
if (collectionData.length === 0) {
|
|
91
95
|
return; // Nothing to commit
|
|
92
96
|
}
|
|
93
|
-
//
|
|
94
|
-
//
|
|
97
|
+
// Append each collection's staged actions to its log, then collect the
|
|
98
|
+
// resulting transforms + critical (log-tail) block for consensus.
|
|
99
|
+
//
|
|
100
|
+
// The actions were staged directly into the trackers (Collection.act, e.g.
|
|
101
|
+
// via Tree.stage) WITHOUT first appending a log entry, so — exactly as
|
|
102
|
+
// execute()/applyActionsToCollection does — we materialise the log entry
|
|
103
|
+
// here from each collection's pending actions. Reading raw tracker
|
|
104
|
+
// transforms without a fresh log entry only ever "worked" for a
|
|
105
|
+
// collection's pristine first commit (where the initial empty log block is
|
|
106
|
+
// itself an uncommitted tracker insert); it broke for any collection with
|
|
107
|
+
// prior committed state — a pre-synced index tree, or a second commit on
|
|
108
|
+
// the same collection — whose log tail lives in storage, not the tracker.
|
|
109
|
+
const allCollectionIds = collectionData.map(({ collectionId }) => collectionId);
|
|
95
110
|
const collectionTransforms = new Map();
|
|
96
111
|
const criticalBlocks = new Map();
|
|
97
|
-
for (const { collectionId, collection
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
if (!log) {
|
|
102
|
-
throw new Error(`Log not found for collection ${collectionId}`);
|
|
103
|
-
}
|
|
104
|
-
const tailPath = await log.chain.getTail();
|
|
105
|
-
if (tailPath) {
|
|
106
|
-
criticalBlocks.set(collectionId, tailPath.block.header.id);
|
|
112
|
+
for (const { collectionId, collection } of collectionData) {
|
|
113
|
+
const applyResult = await this.applyActionsToCollection({ collectionId, actions: collection.getPendingActions() }, transaction, allCollectionIds);
|
|
114
|
+
if (!applyResult.success) {
|
|
115
|
+
throw new Error(`Transaction commit failed: ${applyResult.error}`);
|
|
107
116
|
}
|
|
117
|
+
collectionTransforms.set(collectionId, applyResult.transforms);
|
|
118
|
+
criticalBlocks.set(collectionId, applyResult.logTailBlockId);
|
|
108
119
|
}
|
|
109
|
-
// Compute hash of ALL operations across ALL collections
|
|
110
|
-
//
|
|
111
|
-
|
|
112
|
-
const allOperations = collectionData.flatMap(({ collectionId, transforms }) => [
|
|
120
|
+
// Compute hash of ALL operations across ALL collections (post-log-append).
|
|
121
|
+
// Validators re-execute the transaction and compare their computed hash.
|
|
122
|
+
const allOperations = Array.from(collectionTransforms.entries()).flatMap(([collectionId, transforms]) => [
|
|
113
123
|
...Object.entries(transforms.inserts ?? {}).map(([blockId, block]) => ({ type: 'insert', collectionId, blockId, block })),
|
|
114
124
|
...Object.entries(transforms.updates ?? {}).map(([blockId, operations]) => ({ type: 'update', collectionId, blockId, operations })),
|
|
115
125
|
...(transforms.deletes ?? []).map(blockId => ({ type: 'delete', collectionId, blockId }))
|
|
@@ -120,8 +130,14 @@ export class TransactionCoordinator {
|
|
|
120
130
|
if (!coordResult.success) {
|
|
121
131
|
throw new Error(`Transaction commit failed: ${coordResult.error}`);
|
|
122
132
|
}
|
|
123
|
-
//
|
|
124
|
-
|
|
133
|
+
// Advance actionContext, fold the committed transforms into each
|
|
134
|
+
// collection's read cache, reset the tracker, and drop the now-committed
|
|
135
|
+
// pending actions. Order matters: cache the committed blocks BEFORE
|
|
136
|
+
// resetting the tracker (the transforms are read live), so a collection
|
|
137
|
+
// with prior committed state (a pre-synced index, or any second commit)
|
|
138
|
+
// serves the new revision instead of the stale cached one. Clearing
|
|
139
|
+
// pending keeps a subsequent commit from re-logging these actions.
|
|
140
|
+
for (const { collectionId, collection } of collectionData) {
|
|
125
141
|
const newRev = (collection['source'].actionContext?.rev ?? 0) + 1;
|
|
126
142
|
collection['source'].actionContext = {
|
|
127
143
|
committed: [
|
|
@@ -130,7 +146,9 @@ export class TransactionCoordinator {
|
|
|
130
146
|
],
|
|
131
147
|
rev: newRev,
|
|
132
148
|
};
|
|
149
|
+
collection.applyCommittedToCache(collectionTransforms.get(collectionId));
|
|
133
150
|
collection.tracker.reset();
|
|
151
|
+
collection.clearPendingActions();
|
|
134
152
|
}
|
|
135
153
|
// Clean up stamp tracking data
|
|
136
154
|
this.stampData.delete(transaction.stamp.id);
|
|
@@ -387,8 +405,13 @@ export class TransactionCoordinator {
|
|
|
387
405
|
// Generate action ID from transaction ID
|
|
388
406
|
const actionId = transaction.id;
|
|
389
407
|
const newRev = (collection['source'].actionContext?.rev ?? 0) + 1;
|
|
390
|
-
// Add actions to log (this updates the tracker with log block changes)
|
|
391
|
-
|
|
408
|
+
// Add actions to log (this updates the tracker with log block changes).
|
|
409
|
+
// Persist the transaction's read set on the entry so a later invalidation cascade can
|
|
410
|
+
// discover this action's read-dependents (see ActionEntry.reads). The whole transaction's
|
|
411
|
+
// reads are recorded on every collection's entry: a read may target a block in another
|
|
412
|
+
// collection, and the cascade matches read-dependents by (blockId, revision) regardless of
|
|
413
|
+
// which collection's log the dependent landed in.
|
|
414
|
+
const addResult = await log.addActions(collectionActions.actions, actionId, newRev, () => blockIdsForTransforms(transforms), allCollectionIds, transaction.reads);
|
|
392
415
|
// Return the transforms and log tail block ID
|
|
393
416
|
return {
|
|
394
417
|
success: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/transaction/coordinator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../../src/transaction/coordinator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { BlockId, CollectionId } from '../index.js';
|
|
2
|
+
import type { ActionId } from '../collection/action.js';
|
|
3
|
+
/** A commit landed on this node mutating one collection's blocks. */
|
|
4
|
+
export type CollectionChangeEvent = {
|
|
5
|
+
/** Header/collection id of the affected collection (block.header.collectionId). */
|
|
6
|
+
readonly collectionId: CollectionId;
|
|
7
|
+
/** Blocks within that collection mutated by this commit. */
|
|
8
|
+
readonly blockIds: readonly BlockId[];
|
|
9
|
+
readonly actionId: ActionId;
|
|
10
|
+
readonly rev: number;
|
|
11
|
+
/**
|
|
12
|
+
* The collection's chain tail block id at the time of this commit (the `CommitRequest.tailId`).
|
|
13
|
+
* Anchors the rotating reactivity topic `H(tailId ‖ "reactivity")`. Present on commit-driven
|
|
14
|
+
* events; `undefined` on read-driven promotions (the `StorageRepo.get` path has no commit tail —
|
|
15
|
+
* those never originate anyway, and are cert-gated out downstream).
|
|
16
|
+
*/
|
|
17
|
+
readonly tailId?: BlockId;
|
|
18
|
+
/**
|
|
19
|
+
* `true` iff this change event is a durable **invalidation** — a compensating revision + appended
|
|
20
|
+
* `InvalidationEntry` reversing a previously-committed action proven invalid by dispute
|
|
21
|
+
* (`docs/right-is-right.md` §Durable Invalidation), rather than an ordinary commit. An invalidation
|
|
22
|
+
* is a committed collection change like any other, so it flows through the same notification path;
|
|
23
|
+
* this flag lets a subscriber distinguish it (drop derived results + resubmit) from a plain commit
|
|
24
|
+
* (refresh). A hint only — correctness never depends on it: the subscriber always re-reads the
|
|
25
|
+
* authoritative reverted state. Absent (falsy) on ordinary commits.
|
|
26
|
+
*/
|
|
27
|
+
readonly invalidation?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* When {@link invalidation} is set, the `actionId` of the original committed action that was
|
|
30
|
+
* reversed (the `InvalidationEntry.invalidatedActionId`). Lets an invalidation-aware client
|
|
31
|
+
* dedup/coalesce multiple cascade notifications by the action they reverse, and resubmit exactly
|
|
32
|
+
* the affected work. Absent on ordinary commits.
|
|
33
|
+
*/
|
|
34
|
+
readonly invalidatedActionId?: ActionId;
|
|
35
|
+
};
|
|
36
|
+
export type CollectionChangeListener = (event: CollectionChangeEvent) => void;
|
|
37
|
+
/**
|
|
38
|
+
* The cluster-consensus commit certificate for a committed action — the **authoritative** proof
|
|
39
|
+
* that the cohort agreed the commit. It is the cross-package currency the local change-notifier
|
|
40
|
+
* bridge forwards into the cohort-topic substrate (`CohortTopicService.onLocalCommit`) so reactivity
|
|
41
|
+
* can originate notifications **without re-signing**: a notification's signature is bit-for-bit this
|
|
42
|
+
* `thresholdSig`. The bridge and every downstream consumer treat the bytes as opaque and pass them
|
|
43
|
+
* through unchanged — only the cluster layer that produced consensus ever mints one.
|
|
44
|
+
*
|
|
45
|
+
* Peer ids are carried as their string form (the cluster keys signatures by peer-id string); db-core
|
|
46
|
+
* stays cross-platform and never references a libp2p `PeerId` type here.
|
|
47
|
+
*/
|
|
48
|
+
export type CommitCert = {
|
|
49
|
+
/** Threshold signature bytes proving `signers` agreed the commit. Forwarded UNCHANGED; never re-signed. */
|
|
50
|
+
readonly thresholdSig: Uint8Array;
|
|
51
|
+
/** Peer-id strings whose signatures compose {@link thresholdSig} (a distinct set of size ≥ {@link minSigs}). */
|
|
52
|
+
readonly signers: readonly string[];
|
|
53
|
+
/** Threshold the signer set satisfies (the cluster super-majority / cohort `k − x`). */
|
|
54
|
+
readonly minSigs: number;
|
|
55
|
+
/**
|
|
56
|
+
* The exact byte preimage each `signers[i]` signed to produce its 64-byte chunk of
|
|
57
|
+
* {@link thresholdSig} — the cluster's per-member commit-vote payload `utf8(commitHash + ":approve")`,
|
|
58
|
+
* identical across all approving signers. Reactivity sets a notification's `digest` to
|
|
59
|
+
* base64url(signedPayload) so a subscriber's threshold-verify over `digest` reproduces the exact
|
|
60
|
+
* signed image. Opaque to db-core; minted only by the cluster layer.
|
|
61
|
+
*/
|
|
62
|
+
readonly signedPayload: Uint8Array;
|
|
63
|
+
};
|
|
64
|
+
export interface IBlockChangeNotifier {
|
|
65
|
+
/**
|
|
66
|
+
* Subscribe to commits that mutate the given collection. Returns an
|
|
67
|
+
* idempotent unsubscribe. Listeners are invoked AFTER the commit's critical
|
|
68
|
+
* section (locks released), synchronously in commit order; a throwing
|
|
69
|
+
* listener must not break the commit or other listeners (log + continue).
|
|
70
|
+
*/
|
|
71
|
+
onCollectionChange(collectionId: CollectionId, listener: CollectionChangeListener): () => void;
|
|
72
|
+
}
|
|
73
|
+
export declare function isBlockChangeNotifier(x: unknown): x is IBlockChangeNotifier;
|
|
74
|
+
//# sourceMappingURL=change-notifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-notifier.d.ts","sourceRoot":"","sources":["../../../src/transactor/change-notifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,qEAAqE;AACrE,MAAM,MAAM,qBAAqB,GAAG;IACnC,mFAAmF;IACnF,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;;;;OAQG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,QAAQ,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,MAAM,UAAU,GAAG;IACxB,2GAA2G;IAC3G,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,gHAAgH;IAChH,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,wFAAwF;IACxF,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC;CACnC,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACpC;;;;;OAKG;IACH,kBAAkB,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI,CAAC;CAC/F;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,oBAAoB,CAE3E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-notifier.js","sourceRoot":"","sources":["../../../src/transactor/change-notifier.ts"],"names":[],"mappings":"AA6EA,MAAM,UAAU,qBAAqB,CAAC,CAAU;IAC/C,OAAO,CAAC,CAAC,CAAC,IAAI,OAAQ,CAA0B,CAAC,kBAAkB,KAAK,UAAU,CAAC;AACpF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transactor/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transactor/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transactor/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/transactor/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { PeerId } from "../network/types.js";
|
|
2
|
-
import type { ActionTransforms, ActionBlocks, BlockActionStatus, ITransactor, IKeyNetwork, BlockId, GetBlockResults, PendResult, CommitResult, PendRequest, IRepo, BlockGets, CommitRequest, ClusterNomineesResult } from "../index.js";
|
|
2
|
+
import type { ActionTransforms, ActionBlocks, BlockActionStatus, ITransactor, IKeyNetwork, BlockId, GetBlockResults, PendResult, CommitResult, PendRequest, IRepo, BlockGets, CommitRequest, ClusterNomineesResult, CollectionId } from "../index.js";
|
|
3
|
+
import type { IBlockChangeNotifier, CollectionChangeListener } from "./change-notifier.js";
|
|
3
4
|
type NetworkTransactorInit = {
|
|
4
5
|
timeoutMs: number;
|
|
5
6
|
abortOrCancelTimeoutMs: number;
|
|
@@ -14,16 +15,47 @@ type NetworkTransactorInit = {
|
|
|
14
15
|
* Omit to fall back to a sensible default (3s); set 0 / negative to disable.
|
|
15
16
|
*/
|
|
16
17
|
dialTimeoutMs?: number;
|
|
18
|
+
/**
|
|
19
|
+
* Optional local change-notifier (e.g. the hosting node's StorageRepo) used to
|
|
20
|
+
* satisfy {@link IBlockChangeNotifier}. When supplied, `onCollectionChange`
|
|
21
|
+
* delegates to it so consumers can feature-detect change notifications on the
|
|
22
|
+
* transactor they already hold rather than reaching into node internals. When
|
|
23
|
+
* absent, `onCollectionChange` is a logged no-op.
|
|
24
|
+
*/
|
|
25
|
+
localChangeNotifier?: IBlockChangeNotifier;
|
|
17
26
|
};
|
|
18
|
-
export declare class NetworkTransactor implements ITransactor {
|
|
27
|
+
export declare class NetworkTransactor implements ITransactor, IBlockChangeNotifier {
|
|
19
28
|
private readonly keyNetwork;
|
|
20
29
|
private readonly timeoutMs;
|
|
21
30
|
private readonly abortOrCancelTimeoutMs;
|
|
22
31
|
private readonly dialTimeoutMs;
|
|
23
32
|
private readonly getRepo;
|
|
33
|
+
private readonly localChangeNotifier;
|
|
24
34
|
constructor(init: NetworkTransactorInit);
|
|
35
|
+
/**
|
|
36
|
+
* Subscribe to commits landing on the local node for `collectionId`, delegating
|
|
37
|
+
* to the `localChangeNotifier` supplied at construction. When no notifier was
|
|
38
|
+
* supplied this is a no-op (returns an inert unsubscribe) — a NetworkTransactor
|
|
39
|
+
* with no co-located storage cannot observe commits locally.
|
|
40
|
+
*/
|
|
41
|
+
onCollectionChange(collectionId: CollectionId, listener: CollectionChangeListener): () => void;
|
|
25
42
|
get(blockGets: BlockGets): Promise<GetBlockResults>;
|
|
26
43
|
getStatus(blockActions: ActionBlocks[]): Promise<BlockActionStatus[]>;
|
|
44
|
+
/**
|
|
45
|
+
* Refine the otherwise-`aborted` statuses to `committed-invalidated` for any queried action that has a
|
|
46
|
+
* durable {@link import("../log/struct.js").InvalidationEntry} against it. Reads the collection log via
|
|
47
|
+
* {@link Log.findInvalidation} — the durable, restart-surviving source of truth (`docs/right-is-right.md`
|
|
48
|
+
* §Durable Invalidation) — rather than the per-node, in-memory dispute map. A `pending` slot is left
|
|
49
|
+
* untouched: a still-pending transaction whose base was invalidated will be rejected on its own
|
|
50
|
+
* validation ("pending → will-be-rejected"), which is not the same as `committed-invalidated`.
|
|
51
|
+
*
|
|
52
|
+
* Best-effort and isolated: a log-open/read fault leaves the slot `aborted` (logged) rather than
|
|
53
|
+
* failing the whole status query. The per-call caches keep one log open and one lookup per
|
|
54
|
+
* `(collection, action)` even when many refs share a collection.
|
|
55
|
+
*/
|
|
56
|
+
private refineInvalidatedStatuses;
|
|
57
|
+
/** Whether `actionId` has a durable invalidation entry in `collectionId`'s log (opened once, cached). */
|
|
58
|
+
private hasDurableInvalidation;
|
|
27
59
|
private consolidateCoordinators;
|
|
28
60
|
pend(blockAction: PendRequest): Promise<PendResult>;
|
|
29
61
|
cancel(actionRef: ActionBlocks): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network-transactor.d.ts","sourceRoot":"","sources":["../../../src/transactor/network-transactor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAA6B,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAc,aAAa,EAA+B,qBAAqB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"network-transactor.d.ts","sourceRoot":"","sources":["../../../src/transactor/network-transactor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,WAAW,EAA6B,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAc,aAAa,EAA+B,qBAAqB,EAAE,YAAY,EAAU,MAAM,aAAa,CAAC;AAClU,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAS3F,KAAK,qBAAqB,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,UAAU,EAAE,WAAW,CAAC;IACxB,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,KAAK,CAAC;IACnC;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,mBAAmB,CAAC,EAAE,oBAAoB,CAAC;CAC3C,CAAA;AAWD,qBAAa,iBAAkB,YAAW,WAAW,EAAE,oBAAoB;IAC1E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAmC;gBAGtE,IAAI,EAAE,qBAAqB;IAc5B;;;;;OAKG;IACH,kBAAkB,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,wBAAwB,GAAG,MAAM,IAAI;IAQxF,GAAG,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC;IAyHnD,SAAS,CAAC,YAAY,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA0C3E;;;;;;;;;;;OAWG;YACW,yBAAyB;IA6BvC,yGAAyG;YAC3F,sBAAsB;YAuBtB,uBAAuB;IA+F/B,IAAI,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAgGnD,MAAM,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9C,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAOtE,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;YAyC7C,WAAW;IAezB,0EAA0E;YAC5D,YAAY;IAoC1B,8FAA8F;YAChF,iBAAiB;IAe/B,oHAAoH;YACtG,WAAW;IAqBzB,OAAO,CAAC,mBAAmB;CAY3B;AAiDD;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAIlG"}
|