-module(butterbee@webdriver). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/butterbee/webdriver.gleam"). -export([new/0, with_context/2, with_config/2, with_state/2, map_state/2, with_socket/2, get_socket/1, get_context/1, get_config/1, get_state/1, do/2]). -export_type([web_driver/1, empty/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. ?MODULEDOC(" The webdriver module contains the WebDriver type and functions to create and configure webdriver sessions.\n"). -type web_driver(VGU) :: {web_driver, gleam@option:option(butterbee@internal@socket:web_driver_socket()), gleam@option:option(butterbidi@browsing_context@types@browsing_context:browsing_context()), gleam@option:option(butterbee@config:butterbee_config()), {ok, VGU} | {error, butterbee@internal@error:butterbee_error()}}. -type empty() :: empty. -file("src/butterbee/webdriver.gleam", 29). -spec new() -> web_driver(empty()). new() -> {web_driver, none, none, none, {ok, empty}}. -file("src/butterbee/webdriver.gleam", 33). -spec with_context( web_driver(VGW), butterbidi@browsing_context@types@browsing_context:browsing_context() ) -> web_driver(VGW). with_context(Webdriver, Context) -> {web_driver, erlang:element(2, Webdriver), {some, Context}, erlang:element(4, Webdriver), erlang:element(5, Webdriver)}. -file("src/butterbee/webdriver.gleam", 40). -spec with_config(web_driver(VGZ), butterbee@config:butterbee_config()) -> web_driver(VGZ). with_config(Webdriver, Config) -> {web_driver, erlang:element(2, Webdriver), erlang:element(3, Webdriver), {some, Config}, erlang:element(5, Webdriver)}. -file("src/butterbee/webdriver.gleam", 47). -spec with_state( web_driver(any()), {ok, VHE} | {error, butterbee@internal@error:butterbee_error()} ) -> web_driver(VHE). with_state(Webdriver, State) -> {web_driver, erlang:element(2, Webdriver), erlang:element(3, Webdriver), erlang:element(4, Webdriver), State}. -file("src/butterbee/webdriver.gleam", 54). -spec map_state( {ok, VHI} | {error, butterbee@internal@error:butterbee_error()}, web_driver(any()) ) -> web_driver(VHI). map_state(State, Webdriver) -> {web_driver, erlang:element(2, Webdriver), erlang:element(3, Webdriver), erlang:element(4, Webdriver), State}. -file("src/butterbee/webdriver.gleam", 61). -spec with_socket( web_driver(VHO), butterbee@internal@socket:web_driver_socket() ) -> web_driver(VHO). with_socket(Webdriver, Socket) -> {web_driver, {some, Socket}, erlang:element(3, Webdriver), erlang:element(4, Webdriver), erlang:element(5, Webdriver)}. -file("src/butterbee/webdriver.gleam", 68). -spec get_socket(web_driver(any())) -> {ok, butterbee@internal@socket:web_driver_socket()} | {error, butterbee@internal@error:butterbee_error()}. get_socket(Driver) -> case erlang:element(2, Driver) of none -> {error, driver_does_not_have_socket}; {some, Socket} -> {ok, Socket} end. -file("src/butterbee/webdriver.gleam", 77). -spec get_context(web_driver(any())) -> {ok, butterbidi@browsing_context@types@browsing_context:browsing_context()} | {error, butterbee@internal@error:butterbee_error()}. get_context(Driver) -> case erlang:element(3, Driver) of none -> {error, driver_does_not_have_context}; {some, Context} -> {ok, Context} end. -file("src/butterbee/webdriver.gleam", 86). -spec get_config(web_driver(any())) -> {ok, butterbee@config:butterbee_config()} | {error, butterbee@internal@error:butterbee_error()}. get_config(Driver) -> case erlang:element(4, Driver) of none -> {error, driver_does_not_have_config}; {some, Config} -> {ok, Config} end. -file("src/butterbee/webdriver.gleam", 95). -spec get_state(web_driver(VID)) -> {ok, VID} | {error, butterbee@internal@error:butterbee_error()}. get_state(Webdriver) -> erlang:element(5, Webdriver). -file("src/butterbee/webdriver.gleam", 102). ?DOC(" Perform an action using the webdriver and update the webdriver state\n"). -spec do(web_driver(VIH), fun((web_driver(VIH)) -> web_driver(VIK))) -> web_driver(VIK). do(Webdriver, Action) -> Action(Webdriver).