chore: update MoQ dependencies to latest versions #53
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Updates all MoQ dependencies to their latest published versions and adapts code to breaking API changes.
Rust crate updates:
moq-litemoq-nativemoq-transporthangJS/TS updates:
@moq/hang@moq/lite@moq/signalsKey API migrations:
Origin::produce()API simplified — no longer returns struct with.producer/.consumerfields; use.consume()to get consumerclient.connect()→client.with_publish().with_consume().connect()builder patternhang::TrackProducer→hang::container::OrderedProducerhang::{Timestamp, BufList, Frame}moved tohang::container::modulecatalog::Audiois no longerOptioninCatalogstructcatalog::AudioConfignow requirescontainerandjitterfieldsmoq_native::Requestreplacesweb_transport_quinn::Sessionin gatewayUpdates since last revision
catalog_to_json()helper inmod.rsthat injectspriorityfields into the serialized catalog JSON. The Rusthang0.13.0 removedpriorityfromAudio/Videostructs, but the published@moq/hang0.1.2 Zod schema still requires it. The upstream JS source onmainhas already dropped this requirement, but it hasn't been published to npm yet. The shim usespriority: 60for video andpriority: 80for audio (matching the upstream JSPRIORITYconstants). Bothpush.rsandpeer.rsnow use this helper instead ofcatalog.to_string().Default::default()→Container::default()for clippy pedantic lint.Review & Testing Checklist for Human
"expected": "number", "path": ["priority"]), but this has not been verified at runtime.priority: 60(video) andpriority: 80(audio) injected bycatalog_to_json()inmod.rs. These match the upstream JSPRIORITYconstants but are not enforced by any shared definition.priority: 2inpull.rs:386andpeer.rs:828whereaudio.prioritywas previously used (theAudiostruct no longer has apriorityfield in hang 0.13.0).create_broadcasterror handling — The new API returnsOption<BroadcastProducer>. Check that the error path is reasonable if broadcast creation fails.server.rsrefactor changed how WebTransport connections are accepted. Verify publishers and subscribers can connect.Recommended test plan:
Notes
hangcrate removed several transitive dependencies (h264-parser, mp4-atom, scuffle-h265, etc.) which is why Cargo.lock has many removals@moq/hangpublishes a new npm version that drops thepriorityrequirement from the schemaLink to Devin run: https://staging.itsdev.in/sessions/aa3dd2facc404f53ba60d51ba7314b40
Requested by: Claudio Costa (@streamer45)