Skip to content

v0.3.0

Latest

Choose a tag to compare

@petermueller petermueller released this 21 Mar 04:18
· 1 commit to main since this release
8e4ce5f

Features

  • Type modules (Bibbidi.Types.*) — all named BiDi protocol types now have generated modules under Bibbidi.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@schema fields now reference type module schemas (e.g. Bibbidi.Types.BrowsingContext.schema()) instead of Zoi.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/:request when present
  • :connection_mod option — all generated facade functions accept connection_mod: MyMod for clean Mox-based testing
  • Bibbidi.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 :meta field (defaults to nil)

See CHANGELOG.md for full details.