Packages

Low-level Elixir implementation of the W3C WebDriver BiDi Protocol.

Current section

Files

Jump to
bibbidi mix.exs
Raw

mix.exs

defmodule Bibbidi.MixProject do
use Mix.Project
@version "0.3.0"
@source_url "https://github.com/petermueller/bibbidi"
def project do
[
app: :bibbidi,
name: "Bibbidi",
version: @version,
elixir: "~> 1.19",
description: "Low-level Elixir implementation of the W3C WebDriver BiDi Protocol.",
source_url: @source_url,
homepage_url: @source_url,
start_permanent: Mix.env() == :prod,
elixirc_paths: elixirc_paths(Mix.env()),
aliases: aliases(),
deps: deps(),
docs: docs(),
package: package(),
usage_rules: usage_rules()
]
end
defp docs do
[
main: "readme",
logo: "assets/icon.png",
assets: %{"assets" => "assets"},
source_ref: "v#{@version}",
extras: [
"README.md",
"CHANGELOG.md",
"examples/interactive_browser.livemd",
{"examples/op_workflow/op_workflow.md", title: "Op Workflow Example"}
],
groups_for_extras: [
Examples: [
"examples/interactive_browser.livemd",
"examples/op_workflow/op_workflow.md"
]
],
groups_for_modules: [
Core: [
Bibbidi,
Bibbidi.Browser,
Bibbidi.Connection,
Bibbidi.Protocol,
Bibbidi.Session,
Bibbidi.Encodable,
Bibbidi.Keys,
Bibbidi.Telemetry,
Bibbidi.Telemetry.Metadata
],
Transport: ~r/Bibbidi\.Transport/,
Browser: ~r/Bibbidi\.(Commands|Types)\.Browser/,
BrowsingContext: ~r/Bibbidi\.(Commands|Types|Events)\.BrowsingContext/,
Emulation: ~r/Bibbidi\.(Commands|Types)\.Emulation/,
Input: ~r/Bibbidi\.(Commands|Types|Events)\.Input/,
Log: ~r/Bibbidi\.(Commands|Types|Events)\.Log/,
Network: ~r/Bibbidi\.(Commands|Types|Events)\.Network/,
Script: ~r/Bibbidi\.(Commands|Types|Events)\.Script/,
Session: ~r/Bibbidi\.(Commands|Types)\.Session/,
Storage: ~r/Bibbidi\.(Commands|Types)\.Storage/,
WebExtension: ~r/Bibbidi\.(Commands|Types)\.WebExtension/,
Types: ~r/Bibbidi\.Types\./,
Events: ~r/\ABibbidi\.Events\z/,
"Mix Tasks": ~r/Mix\.Tasks\./,
Internals: ~r/Bibbidi\.CDDL/
],
nest_modules_by_prefix: [
Bibbidi.Commands,
Bibbidi.Commands.Browser,
Bibbidi.Commands.BrowsingContext,
Bibbidi.Commands.Emulation,
Bibbidi.Commands.Input,
Bibbidi.Commands.Network,
Bibbidi.Commands.Script,
Bibbidi.Commands.Session,
Bibbidi.Commands.Storage,
Bibbidi.Commands.WebExtension,
Bibbidi.Types,
Bibbidi.Types.Browser,
Bibbidi.Types.BrowsingContext,
Bibbidi.Types.Emulation,
Bibbidi.Types.Input,
Bibbidi.Types.Log,
Bibbidi.Types.Network,
Bibbidi.Types.Script,
Bibbidi.Types.Session,
Bibbidi.Types.Storage,
Bibbidi.Types.WebExtension,
Bibbidi.Events,
Bibbidi.Events.BrowsingContext,
Bibbidi.Events.Input,
Bibbidi.Events.Log,
Bibbidi.Events.Network,
Bibbidi.Events.Script,
Bibbidi.Transport,
Bibbidi.Telemetry
]
]
end
defp package do
[
files: ~w(lib priv .formatter.exs mix.exs README* LICENSE* CHANGELOG* usage-rules.md),
licenses: ["MIT"],
links: %{
"GitHub" => @source_url,
"WebDriver BiDi Spec" => "https://w3c.github.io/webdriver-bidi/"
}
]
end
defp usage_rules do
# Example for those using claude.
[
file: "AGENTS.md",
# rules to include directly in AGENTS.md
usage_rules: ["usage_rules:all"],
skills: [
location: ".claude/skills",
# build skills that combine multiple usage rules
build: []
]
]
end
def cli do
[preferred_envs: ["test.all": :test]]
end
defp aliases do
[
"test.all": ["test --include integration"]
]
end
defp elixirc_paths(:test), do: ["lib", "dev", "test/support"]
defp elixirc_paths(:dev), do: ["lib", "dev"]
defp elixirc_paths(_), do: ["lib"]
# Run "mix help compile.app" to learn about applications.
def application do
[
extra_applications: [:logger]
]
end
# Run "mix help deps" to learn about dependencies.
defp deps do
[
{:mint_web_socket, "~> 1.0"},
{:telemetry, "~> 1.0"},
{:zoi, "~> 0.17"},
{:igniter, "~> 0.7", only: [:dev, :test]},
{:nimble_parsec, "~> 1.0", only: [:dev, :test]},
{:ex_doc, "~> 0.40", only: :dev, runtime: false, warn_if_outdated: true},
{:usage_rules, "~> 1.0", only: [:dev]},
{:bandit, "~> 1.0", only: :test},
{:mox, "~> 1.0", only: :test},
{:plug, "~> 1.14", only: :test},
{:benchee, "~> 1.0", only: :dev, runtime: false}
]
end
end