# @suaveplan/events-transport - Cross-context event bridges for @suaveplan/events: MessageChannel (at-least-once with ack) and BroadcastChannel (at-most-once) transports with nonce dedup, W3C trace context, and AbortSignal support. ## Summary Cross-context event bridges for `@suaveplan/events`: `MessageChannel` (at-least-once with ack/retry) and `BroadcastChannel` (at-most-once, fan-out) transports with nonce deduplication and AbortSignal support. ## Documentation tree - [envelope](./src/core/envelope/envelope.md) — _(no submodules)_ - [envelope](./src/core/envelope/envelope.md) — _(no submodules)_ - [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_ - [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_ - [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_ - [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_ - [broadcast-channel](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_ - [broadcast-channel-transport](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_ - [message-channel](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_ - [message-channel-transport](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_ - [utils](./src/utils/structured-clone-check.md) — _(no submodules)_ - [structured-clone-check](./src/utils/structured-clone-check.md) — _(no submodules)_ - [envelope](./src/core/envelope/envelope.md) — _(no submodules)_- [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_- [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_- [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_- [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_- [broadcast-channel](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_- [broadcast-channel-transport](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_- [message-channel](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_- [message-channel-transport](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_- [utils](./src/utils/structured-clone-check.md) — _(no submodules)_- [structured-clone-check](./src/utils/structured-clone-check.md) — _(no submodules)_- [envelope](./src/core/envelope/envelope.md) — _(no submodules)_- [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_- [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_- [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_- [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_- [broadcast-channel](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_- [broadcast-channel-transport](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_- [message-channel](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_- [message-channel-transport](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_- [utils](./src/utils/structured-clone-check.md) — _(no submodules)_- [structured-clone-check](./src/utils/structured-clone-check.md) — _(no submodules)_- [envelope](./src/core/envelope/envelope.md) — _(no submodules)_- [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_- [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_- [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_- [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_- [broadcast-channel](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_- [broadcast-channel-transport](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_- [message-channel](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_- [message-channel-transport](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_- [utils](./src/utils/structured-clone-check.md) — _(no submodules)_- [structured-clone-check](./src/utils/structured-clone-check.md) — _(no submodules)_- [envelope](./src/core/envelope/envelope.md) — _(no submodules)_- [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_ - [nonce-window](./src/core/nonce-window/nonce-window.md) — _(no submodules)_- [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_ - [transport-interface](./src/core/transport-interface/transport-interface.md) — _(no submodules)_- [broadcast-channel](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_ - [broadcast-channel-transport](./src/transports/broadcast-channel/broadcast-channel-transport.md) — _(no submodules)_- [message-channel](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_ - [message-channel-transport](./src/transports/message-channel/message-channel-transport.md) — _(no submodules)_- [utils](./src/utils/structured-clone-check.md) — _(no submodules)_ - [structured-clone-check](./src/utils/structured-clone-check.md) — _(no submodules)_ ## Packages | Module | Description | |--------|-------------| | [message-channel-transport](src/transports/message-channel/message-channel-transport.md) | Bidirectional at-least-once bridge over `MessageChannel` | | [broadcast-channel-transport](src/transports/broadcast-channel/broadcast-channel-transport.md) | Fan-out at-most-once bridge over `BroadcastChannel` | | [envelope](src/core/envelope/envelope.md) | Transport envelope builder and parser | | [nonce-window](src/core/nonce-window/nonce-window.md) | Sliding dedup window for nonce tracking | | [transport-interface](src/core/transport-interface/transport-interface.md) | Core transport types and interfaces | | [structured-clone-check](src/utils/structured-clone-check.md) | Payload cloneability utility | ## Quick Start ```ts import { createMessageChannelTransport } from "@suaveplan/events-transport"; import { EventBus } from "@suaveplan/events"; const channel = new MessageChannel(); const bus = new EventBus<{ "data.sync": { id: string } }>(); const transport = createMessageChannelTransport({ channel, ackTimeoutMs: 3000 }); const handle = transport.connect(bus); await bus.emitAsync("data.sync", { id: "x" }); console.log(handle.stats.sent); // 1 handle.disconnect(); ``` ## License MIT