Features
- Type modules (
Bibbidi.Types.*) — all named BiDi protocol types now have generated modules underBibbidi.Types.*with Zoi schemas (schema/0),@type t, and ExDoc documentation. Covers primitive aliases, string enums, struct-like maps, and choice/union types (~163 modules). - Improved command struct documentation — moduledocs include spec links, field descriptions with ExDoc cross-references to type modules (e.g.
t:Bibbidi.Types.Script.Target.t/0), and required/optional annotations. - Typed schemas on command structs —
@schemafields now reference type module schemas (e.g.Bibbidi.Types.BrowsingContext.schema()) instead ofZoi.any(), providing real validation and introspection for command fields. - Event structs — BiDi events are parsed into typed structs (one per event method). Subscribers receive
{:bibbidi_event, method, %EventStruct{}}instead of raw maps. - Telemetry correlation — command start/stop events include
:meta, event received includes:context/:navigation/:requestwhen present :connection_modoption — all generated facade functions acceptconnection_mod: MyModfor clean Mox-based testingBibbidi.Keys— maps human-friendly key names to BiDi Unicode codepoints for keyboard actions
Breaking
- Event subscribers receive structs instead of raw maps
- All facade functions accept
opts \\ [] - Command structs have a
:metafield (defaults tonil)
See CHANGELOG.md for full details.