Current section

Files

Jump to
chrobot src protocol@page.erl
Raw

src/protocol@page.erl

-module(protocol@page).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([encode__frame_id/1, decode__frame_id/1, encode__frame/1, decode__frame/1, encode__frame_tree/1, decode__frame_tree/1, encode__script_identifier/1, decode__script_identifier/1, encode__transition_type/1, decode__transition_type/1, encode__navigation_entry/1, decode__navigation_entry/1, encode__dialog_type/1, decode__dialog_type/1, encode__app_manifest_error/1, decode__app_manifest_error/1, encode__layout_viewport/1, decode__layout_viewport/1, encode__visual_viewport/1, decode__visual_viewport/1, encode__viewport/1, decode__viewport/1, decode__add_script_to_evaluate_on_new_document_response/1, decode__capture_screenshot_response/1, decode__create_isolated_world_response/1, decode__get_app_manifest_response/1, decode__get_frame_tree_response/1, decode__get_layout_metrics_response/1, decode__get_navigation_history_response/1, decode__navigate_response/1, decode__print_to_pdf_response/1, add_script_to_evaluate_on_new_document/2, bring_to_front/1, encode__capture_screenshot_format/1, capture_screenshot/4, decode__capture_screenshot_format/1, create_isolated_world/4, disable/1, enable/1, get_app_manifest/2, get_frame_tree/1, get_layout_metrics/1, get_navigation_history/1, reset_navigation_history/1, handle_java_script_dialog/3, navigate/5, navigate_to_history_entry/2, print_to_pdf/15, reload/3, remove_script_to_evaluate_on_new_document/2, set_bypass_csp/2, set_document_content/3, set_lifecycle_events_enabled/2, stop_loading/1, close/1, set_intercept_file_chooser_dialog/2]).
-export_type([frame_id/0, frame/0, frame_tree/0, script_identifier/0, transition_type/0, navigation_entry/0, dialog_type/0, app_manifest_error/0, layout_viewport/0, visual_viewport/0, viewport/0, add_script_to_evaluate_on_new_document_response/0, capture_screenshot_response/0, create_isolated_world_response/0, get_app_manifest_response/0, get_frame_tree_response/0, get_layout_metrics_response/0, get_navigation_history_response/0, navigate_response/0, print_to_pdf_response/0, capture_screenshot_format/0]).
-type frame_id() :: {frame_id, binary()}.
-type frame() :: {frame,
frame_id(),
gleam@option:option(frame_id()),
protocol@network:loader_id(),
gleam@option:option(binary()),
binary(),
binary(),
binary()}.
-type frame_tree() :: {frame_tree,
frame(),
gleam@option:option(list(frame_tree()))}.
-type script_identifier() :: {script_identifier, binary()}.
-type transition_type() :: transition_type_link |
transition_type_typed |
transition_type_address_bar |
transition_type_auto_bookmark |
transition_type_auto_subframe |
transition_type_manual_subframe |
transition_type_generated |
transition_type_auto_toplevel |
transition_type_form_submit |
transition_type_reload |
transition_type_keyword |
transition_type_keyword_generated |
transition_type_other.
-type navigation_entry() :: {navigation_entry,
integer(),
binary(),
binary(),
binary(),
transition_type()}.
-type dialog_type() :: dialog_type_alert |
dialog_type_confirm |
dialog_type_prompt |
dialog_type_beforeunload.
-type app_manifest_error() :: {app_manifest_error,
binary(),
integer(),
integer(),
integer()}.
-type layout_viewport() :: {layout_viewport,
integer(),
integer(),
integer(),
integer()}.
-type visual_viewport() :: {visual_viewport,
float(),
float(),
float(),
float(),
float(),
float(),
float(),
gleam@option:option(float())}.
-type viewport() :: {viewport, float(), float(), float(), float(), float()}.
-type add_script_to_evaluate_on_new_document_response() :: {add_script_to_evaluate_on_new_document_response,
script_identifier()}.
-type capture_screenshot_response() :: {capture_screenshot_response, binary()}.
-type create_isolated_world_response() :: {create_isolated_world_response,
protocol@runtime:execution_context_id()}.
-type get_app_manifest_response() :: {get_app_manifest_response,
binary(),
list(app_manifest_error()),
gleam@option:option(binary())}.
-type get_frame_tree_response() :: {get_frame_tree_response, frame_tree()}.
-type get_layout_metrics_response() :: {get_layout_metrics_response,
layout_viewport(),
visual_viewport(),
protocol@dom:rect()}.
-type get_navigation_history_response() :: {get_navigation_history_response,
integer(),
list(navigation_entry())}.
-type navigate_response() :: {navigate_response,
frame_id(),
gleam@option:option(protocol@network:loader_id()),
gleam@option:option(binary())}.
-type print_to_pdf_response() :: {print_to_pdf_response, binary()}.
-type capture_screenshot_format() :: capture_screenshot_format_jpeg |
capture_screenshot_format_png |
capture_screenshot_format_webp.
-spec encode__frame_id(frame_id()) -> gleam@json:json().
encode__frame_id(Value__) ->
case Value__ of
{frame_id, Inner_value__} ->
gleam@json:string(Inner_value__)
end.
-spec decode__frame_id(gleam@dynamic:dynamic_()) -> {ok, frame_id()} |
{error, list(gleam@dynamic:decode_error())}.
decode__frame_id(Value__) ->
_pipe = Value__,
(gleam@dynamic:decode1(
fun(Field@0) -> {frame_id, Field@0} end,
fun gleam@dynamic:string/1
))(_pipe).
-spec encode__frame(frame()) -> gleam@json:json().
encode__frame(Value__) ->
gleam@json:object(
begin
_pipe = [{<<"id"/utf8>>,
encode__frame_id(erlang:element(2, Value__))},
{<<"loaderId"/utf8>>,
protocol@network:encode__loader_id(
erlang:element(4, Value__)
)},
{<<"url"/utf8>>, gleam@json:string(erlang:element(6, Value__))},
{<<"securityOrigin"/utf8>>,
gleam@json:string(erlang:element(7, Value__))},
{<<"mimeType"/utf8>>,
gleam@json:string(erlang:element(8, Value__))}],
_pipe@1 = chrobot@internal@utils:add_optional(
_pipe,
erlang:element(3, Value__),
fun(Inner_value__) ->
{<<"parentId"/utf8>>, encode__frame_id(Inner_value__)}
end
),
chrobot@internal@utils:add_optional(
_pipe@1,
erlang:element(5, Value__),
fun(Inner_value__@1) ->
{<<"name"/utf8>>, gleam@json:string(Inner_value__@1)}
end
)
end
).
-spec decode__frame(gleam@dynamic:dynamic_()) -> {ok, frame()} |
{error, list(gleam@dynamic:decode_error())}.
decode__frame(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"id"/utf8>>, fun decode__frame_id/1))(Value__),
fun(Id) ->
gleam@result:'try'(
(gleam@dynamic:optional_field(
<<"parentId"/utf8>>,
fun decode__frame_id/1
))(Value__),
fun(Parent_id) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"loaderId"/utf8>>,
fun protocol@network:decode__loader_id/1
))(Value__),
fun(Loader_id) ->
gleam@result:'try'(
(gleam@dynamic:optional_field(
<<"name"/utf8>>,
fun gleam@dynamic:string/1
))(Value__),
fun(Name) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"url"/utf8>>,
fun gleam@dynamic:string/1
))(Value__),
fun(Url) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"securityOrigin"/utf8>>,
fun gleam@dynamic:string/1
))(Value__),
fun(Security_origin) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"mimeType"/utf8>>,
fun gleam@dynamic:string/1
))(Value__),
fun(Mime_type) ->
{ok,
{frame,
Id,
Parent_id,
Loader_id,
Name,
Url,
Security_origin,
Mime_type}}
end
)
end
)
end
)
end
)
end
)
end
)
end
).
-spec encode__frame_tree(frame_tree()) -> gleam@json:json().
encode__frame_tree(Value__) ->
gleam@json:object(
begin
_pipe = [{<<"frame"/utf8>>,
encode__frame(erlang:element(2, Value__))}],
chrobot@internal@utils:add_optional(
_pipe,
erlang:element(3, Value__),
fun(Inner_value__) ->
{<<"childFrames"/utf8>>,
gleam@json:array(
Inner_value__,
fun encode__frame_tree/1
)}
end
)
end
).
-spec decode__frame_tree(gleam@dynamic:dynamic_()) -> {ok, frame_tree()} |
{error, list(gleam@dynamic:decode_error())}.
decode__frame_tree(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"frame"/utf8>>, fun decode__frame/1))(Value__),
fun(Frame) ->
gleam@result:'try'(
(gleam@dynamic:optional_field(
<<"childFrames"/utf8>>,
gleam@dynamic:list(fun decode__frame_tree/1)
))(Value__),
fun(Child_frames) -> {ok, {frame_tree, Frame, Child_frames}} end
)
end
).
-spec encode__script_identifier(script_identifier()) -> gleam@json:json().
encode__script_identifier(Value__) ->
case Value__ of
{script_identifier, Inner_value__} ->
gleam@json:string(Inner_value__)
end.
-spec decode__script_identifier(gleam@dynamic:dynamic_()) -> {ok,
script_identifier()} |
{error, list(gleam@dynamic:decode_error())}.
decode__script_identifier(Value__) ->
_pipe = Value__,
(gleam@dynamic:decode1(
fun(Field@0) -> {script_identifier, Field@0} end,
fun gleam@dynamic:string/1
))(_pipe).
-spec encode__transition_type(transition_type()) -> gleam@json:json().
encode__transition_type(Value__) ->
_pipe = case Value__ of
transition_type_link ->
<<"link"/utf8>>;
transition_type_typed ->
<<"typed"/utf8>>;
transition_type_address_bar ->
<<"address_bar"/utf8>>;
transition_type_auto_bookmark ->
<<"auto_bookmark"/utf8>>;
transition_type_auto_subframe ->
<<"auto_subframe"/utf8>>;
transition_type_manual_subframe ->
<<"manual_subframe"/utf8>>;
transition_type_generated ->
<<"generated"/utf8>>;
transition_type_auto_toplevel ->
<<"auto_toplevel"/utf8>>;
transition_type_form_submit ->
<<"form_submit"/utf8>>;
transition_type_reload ->
<<"reload"/utf8>>;
transition_type_keyword ->
<<"keyword"/utf8>>;
transition_type_keyword_generated ->
<<"keyword_generated"/utf8>>;
transition_type_other ->
<<"other"/utf8>>
end,
gleam@json:string(_pipe).
-spec decode__transition_type(gleam@dynamic:dynamic_()) -> {ok,
transition_type()} |
{error, list(gleam@dynamic:decode_error())}.
decode__transition_type(Value__) ->
case gleam@dynamic:string(Value__) of
{ok, <<"link"/utf8>>} ->
{ok, transition_type_link};
{ok, <<"typed"/utf8>>} ->
{ok, transition_type_typed};
{ok, <<"address_bar"/utf8>>} ->
{ok, transition_type_address_bar};
{ok, <<"auto_bookmark"/utf8>>} ->
{ok, transition_type_auto_bookmark};
{ok, <<"auto_subframe"/utf8>>} ->
{ok, transition_type_auto_subframe};
{ok, <<"manual_subframe"/utf8>>} ->
{ok, transition_type_manual_subframe};
{ok, <<"generated"/utf8>>} ->
{ok, transition_type_generated};
{ok, <<"auto_toplevel"/utf8>>} ->
{ok, transition_type_auto_toplevel};
{ok, <<"form_submit"/utf8>>} ->
{ok, transition_type_form_submit};
{ok, <<"reload"/utf8>>} ->
{ok, transition_type_reload};
{ok, <<"keyword"/utf8>>} ->
{ok, transition_type_keyword};
{ok, <<"keyword_generated"/utf8>>} ->
{ok, transition_type_keyword_generated};
{ok, <<"other"/utf8>>} ->
{ok, transition_type_other};
{error, Error} ->
{error, Error};
{ok, Other} ->
{error,
[{decode_error,
<<"valid enum property"/utf8>>,
Other,
[<<"enum decoder"/utf8>>]}]}
end.
-spec encode__navigation_entry(navigation_entry()) -> gleam@json:json().
encode__navigation_entry(Value__) ->
gleam@json:object(
[{<<"id"/utf8>>, gleam@json:int(erlang:element(2, Value__))},
{<<"url"/utf8>>, gleam@json:string(erlang:element(3, Value__))},
{<<"userTypedURL"/utf8>>,
gleam@json:string(erlang:element(4, Value__))},
{<<"title"/utf8>>, gleam@json:string(erlang:element(5, Value__))},
{<<"transitionType"/utf8>>,
encode__transition_type(erlang:element(6, Value__))}]
).
-spec decode__navigation_entry(gleam@dynamic:dynamic_()) -> {ok,
navigation_entry()} |
{error, list(gleam@dynamic:decode_error())}.
decode__navigation_entry(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"id"/utf8>>, fun gleam@dynamic:int/1))(Value__),
fun(Id) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"url"/utf8>>, fun gleam@dynamic:string/1))(
Value__
),
fun(Url) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"userTypedURL"/utf8>>,
fun gleam@dynamic:string/1
))(Value__),
fun(User_typed_url) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"title"/utf8>>,
fun gleam@dynamic:string/1
))(Value__),
fun(Title) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"transitionType"/utf8>>,
fun decode__transition_type/1
))(Value__),
fun(Transition_type) ->
{ok,
{navigation_entry,
Id,
Url,
User_typed_url,
Title,
Transition_type}}
end
)
end
)
end
)
end
)
end
).
-spec encode__dialog_type(dialog_type()) -> gleam@json:json().
encode__dialog_type(Value__) ->
_pipe = case Value__ of
dialog_type_alert ->
<<"alert"/utf8>>;
dialog_type_confirm ->
<<"confirm"/utf8>>;
dialog_type_prompt ->
<<"prompt"/utf8>>;
dialog_type_beforeunload ->
<<"beforeunload"/utf8>>
end,
gleam@json:string(_pipe).
-spec decode__dialog_type(gleam@dynamic:dynamic_()) -> {ok, dialog_type()} |
{error, list(gleam@dynamic:decode_error())}.
decode__dialog_type(Value__) ->
case gleam@dynamic:string(Value__) of
{ok, <<"alert"/utf8>>} ->
{ok, dialog_type_alert};
{ok, <<"confirm"/utf8>>} ->
{ok, dialog_type_confirm};
{ok, <<"prompt"/utf8>>} ->
{ok, dialog_type_prompt};
{ok, <<"beforeunload"/utf8>>} ->
{ok, dialog_type_beforeunload};
{error, Error} ->
{error, Error};
{ok, Other} ->
{error,
[{decode_error,
<<"valid enum property"/utf8>>,
Other,
[<<"enum decoder"/utf8>>]}]}
end.
-spec encode__app_manifest_error(app_manifest_error()) -> gleam@json:json().
encode__app_manifest_error(Value__) ->
gleam@json:object(
[{<<"message"/utf8>>, gleam@json:string(erlang:element(2, Value__))},
{<<"critical"/utf8>>, gleam@json:int(erlang:element(3, Value__))},
{<<"line"/utf8>>, gleam@json:int(erlang:element(4, Value__))},
{<<"column"/utf8>>, gleam@json:int(erlang:element(5, Value__))}]
).
-spec decode__app_manifest_error(gleam@dynamic:dynamic_()) -> {ok,
app_manifest_error()} |
{error, list(gleam@dynamic:decode_error())}.
decode__app_manifest_error(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"message"/utf8>>, fun gleam@dynamic:string/1))(
Value__
),
fun(Message) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"critical"/utf8>>,
fun gleam@dynamic:int/1
))(Value__),
fun(Critical) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"line"/utf8>>,
fun gleam@dynamic:int/1
))(Value__),
fun(Line) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"column"/utf8>>,
fun gleam@dynamic:int/1
))(Value__),
fun(Column) ->
{ok,
{app_manifest_error,
Message,
Critical,
Line,
Column}}
end
)
end
)
end
)
end
).
-spec encode__layout_viewport(layout_viewport()) -> gleam@json:json().
encode__layout_viewport(Value__) ->
gleam@json:object(
[{<<"pageX"/utf8>>, gleam@json:int(erlang:element(2, Value__))},
{<<"pageY"/utf8>>, gleam@json:int(erlang:element(3, Value__))},
{<<"clientWidth"/utf8>>, gleam@json:int(erlang:element(4, Value__))},
{<<"clientHeight"/utf8>>,
gleam@json:int(erlang:element(5, Value__))}]
).
-spec decode__layout_viewport(gleam@dynamic:dynamic_()) -> {ok,
layout_viewport()} |
{error, list(gleam@dynamic:decode_error())}.
decode__layout_viewport(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"pageX"/utf8>>, fun gleam@dynamic:int/1))(
Value__
),
fun(Page_x) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"pageY"/utf8>>, fun gleam@dynamic:int/1))(
Value__
),
fun(Page_y) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"clientWidth"/utf8>>,
fun gleam@dynamic:int/1
))(Value__),
fun(Client_width) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"clientHeight"/utf8>>,
fun gleam@dynamic:int/1
))(Value__),
fun(Client_height) ->
{ok,
{layout_viewport,
Page_x,
Page_y,
Client_width,
Client_height}}
end
)
end
)
end
)
end
).
-spec encode__visual_viewport(visual_viewport()) -> gleam@json:json().
encode__visual_viewport(Value__) ->
gleam@json:object(
begin
_pipe = [{<<"offsetX"/utf8>>,
gleam@json:float(erlang:element(2, Value__))},
{<<"offsetY"/utf8>>,
gleam@json:float(erlang:element(3, Value__))},
{<<"pageX"/utf8>>, gleam@json:float(erlang:element(4, Value__))},
{<<"pageY"/utf8>>, gleam@json:float(erlang:element(5, Value__))},
{<<"clientWidth"/utf8>>,
gleam@json:float(erlang:element(6, Value__))},
{<<"clientHeight"/utf8>>,
gleam@json:float(erlang:element(7, Value__))},
{<<"scale"/utf8>>, gleam@json:float(erlang:element(8, Value__))}],
chrobot@internal@utils:add_optional(
_pipe,
erlang:element(9, Value__),
fun(Inner_value__) ->
{<<"zoom"/utf8>>, gleam@json:float(Inner_value__)}
end
)
end
).
-spec decode__visual_viewport(gleam@dynamic:dynamic_()) -> {ok,
visual_viewport()} |
{error, list(gleam@dynamic:decode_error())}.
decode__visual_viewport(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"offsetX"/utf8>>, fun gleam@dynamic:float/1))(
Value__
),
fun(Offset_x) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"offsetY"/utf8>>,
fun gleam@dynamic:float/1
))(Value__),
fun(Offset_y) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"pageX"/utf8>>,
fun gleam@dynamic:float/1
))(Value__),
fun(Page_x) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"pageY"/utf8>>,
fun gleam@dynamic:float/1
))(Value__),
fun(Page_y) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"clientWidth"/utf8>>,
fun gleam@dynamic:float/1
))(Value__),
fun(Client_width) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"clientHeight"/utf8>>,
fun gleam@dynamic:float/1
))(Value__),
fun(Client_height) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"scale"/utf8>>,
fun gleam@dynamic:float/1
))(Value__),
fun(Scale) ->
gleam@result:'try'(
(gleam@dynamic:optional_field(
<<"zoom"/utf8>>,
fun gleam@dynamic:float/1
))(Value__),
fun(Zoom) ->
{ok,
{visual_viewport,
Offset_x,
Offset_y,
Page_x,
Page_y,
Client_width,
Client_height,
Scale,
Zoom}}
end
)
end
)
end
)
end
)
end
)
end
)
end
)
end
).
-spec encode__viewport(viewport()) -> gleam@json:json().
encode__viewport(Value__) ->
gleam@json:object(
[{<<"x"/utf8>>, gleam@json:float(erlang:element(2, Value__))},
{<<"y"/utf8>>, gleam@json:float(erlang:element(3, Value__))},
{<<"width"/utf8>>, gleam@json:float(erlang:element(4, Value__))},
{<<"height"/utf8>>, gleam@json:float(erlang:element(5, Value__))},
{<<"scale"/utf8>>, gleam@json:float(erlang:element(6, Value__))}]
).
-spec decode__viewport(gleam@dynamic:dynamic_()) -> {ok, viewport()} |
{error, list(gleam@dynamic:decode_error())}.
decode__viewport(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"x"/utf8>>, fun gleam@dynamic:float/1))(Value__),
fun(X) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"y"/utf8>>, fun gleam@dynamic:float/1))(
Value__
),
fun(Y) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"width"/utf8>>,
fun gleam@dynamic:float/1
))(Value__),
fun(Width) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"height"/utf8>>,
fun gleam@dynamic:float/1
))(Value__),
fun(Height) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"scale"/utf8>>,
fun gleam@dynamic:float/1
))(Value__),
fun(Scale) ->
{ok,
{viewport,
X,
Y,
Width,
Height,
Scale}}
end
)
end
)
end
)
end
)
end
).
-spec decode__add_script_to_evaluate_on_new_document_response(
gleam@dynamic:dynamic_()
) -> {ok, add_script_to_evaluate_on_new_document_response()} |
{error, list(gleam@dynamic:decode_error())}.
decode__add_script_to_evaluate_on_new_document_response(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"identifier"/utf8>>,
fun decode__script_identifier/1
))(Value__),
fun(Identifier) ->
{ok, {add_script_to_evaluate_on_new_document_response, Identifier}}
end
).
-spec decode__capture_screenshot_response(gleam@dynamic:dynamic_()) -> {ok,
capture_screenshot_response()} |
{error, list(gleam@dynamic:decode_error())}.
decode__capture_screenshot_response(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"data"/utf8>>, fun gleam@dynamic:string/1))(
Value__
),
fun(Data) -> {ok, {capture_screenshot_response, Data}} end
).
-spec decode__create_isolated_world_response(gleam@dynamic:dynamic_()) -> {ok,
create_isolated_world_response()} |
{error, list(gleam@dynamic:decode_error())}.
decode__create_isolated_world_response(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"executionContextId"/utf8>>,
fun protocol@runtime:decode__execution_context_id/1
))(Value__),
fun(Execution_context_id) ->
{ok, {create_isolated_world_response, Execution_context_id}}
end
).
-spec decode__get_app_manifest_response(gleam@dynamic:dynamic_()) -> {ok,
get_app_manifest_response()} |
{error, list(gleam@dynamic:decode_error())}.
decode__get_app_manifest_response(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"url"/utf8>>, fun gleam@dynamic:string/1))(
Value__
),
fun(Url) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"errors"/utf8>>,
gleam@dynamic:list(fun decode__app_manifest_error/1)
))(Value__),
fun(Errors) ->
gleam@result:'try'(
(gleam@dynamic:optional_field(
<<"data"/utf8>>,
fun gleam@dynamic:string/1
))(Value__),
fun(Data) ->
{ok, {get_app_manifest_response, Url, Errors, Data}}
end
)
end
)
end
).
-spec decode__get_frame_tree_response(gleam@dynamic:dynamic_()) -> {ok,
get_frame_tree_response()} |
{error, list(gleam@dynamic:decode_error())}.
decode__get_frame_tree_response(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"frameTree"/utf8>>, fun decode__frame_tree/1))(
Value__
),
fun(Frame_tree) -> {ok, {get_frame_tree_response, Frame_tree}} end
).
-spec decode__get_layout_metrics_response(gleam@dynamic:dynamic_()) -> {ok,
get_layout_metrics_response()} |
{error, list(gleam@dynamic:decode_error())}.
decode__get_layout_metrics_response(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"cssLayoutViewport"/utf8>>,
fun decode__layout_viewport/1
))(Value__),
fun(Css_layout_viewport) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"cssVisualViewport"/utf8>>,
fun decode__visual_viewport/1
))(Value__),
fun(Css_visual_viewport) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"cssContentSize"/utf8>>,
fun protocol@dom:decode__rect/1
))(Value__),
fun(Css_content_size) ->
{ok,
{get_layout_metrics_response,
Css_layout_viewport,
Css_visual_viewport,
Css_content_size}}
end
)
end
)
end
).
-spec decode__get_navigation_history_response(gleam@dynamic:dynamic_()) -> {ok,
get_navigation_history_response()} |
{error, list(gleam@dynamic:decode_error())}.
decode__get_navigation_history_response(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"currentIndex"/utf8>>, fun gleam@dynamic:int/1))(
Value__
),
fun(Current_index) ->
gleam@result:'try'(
(gleam@dynamic:field(
<<"entries"/utf8>>,
gleam@dynamic:list(fun decode__navigation_entry/1)
))(Value__),
fun(Entries) ->
{ok,
{get_navigation_history_response,
Current_index,
Entries}}
end
)
end
).
-spec decode__navigate_response(gleam@dynamic:dynamic_()) -> {ok,
navigate_response()} |
{error, list(gleam@dynamic:decode_error())}.
decode__navigate_response(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"frameId"/utf8>>, fun decode__frame_id/1))(
Value__
),
fun(Frame_id) ->
gleam@result:'try'(
(gleam@dynamic:optional_field(
<<"loaderId"/utf8>>,
fun protocol@network:decode__loader_id/1
))(Value__),
fun(Loader_id) ->
gleam@result:'try'(
(gleam@dynamic:optional_field(
<<"errorText"/utf8>>,
fun gleam@dynamic:string/1
))(Value__),
fun(Error_text) ->
{ok,
{navigate_response,
Frame_id,
Loader_id,
Error_text}}
end
)
end
)
end
).
-spec decode__print_to_pdf_response(gleam@dynamic:dynamic_()) -> {ok,
print_to_pdf_response()} |
{error, list(gleam@dynamic:decode_error())}.
decode__print_to_pdf_response(Value__) ->
gleam@result:'try'(
(gleam@dynamic:field(<<"data"/utf8>>, fun gleam@dynamic:string/1))(
Value__
),
fun(Data) -> {ok, {print_to_pdf_response, Data}} end
).
-spec add_script_to_evaluate_on_new_document(
fun((binary(), gleam@option:option(gleam@json:json())) -> {ok,
gleam@dynamic:dynamic_()} |
{error, chrome:request_error()}),
binary()
) -> {ok, add_script_to_evaluate_on_new_document_response()} |
{error, chrome:request_error()}.
add_script_to_evaluate_on_new_document(Callback__, Source) ->
gleam@result:'try'(
Callback__(
<<"Page.addScriptToEvaluateOnNewDocument"/utf8>>,
{some,
gleam@json:object(
[{<<"source"/utf8>>, gleam@json:string(Source)}]
)}
),
fun(Result__) ->
_pipe = decode__add_script_to_evaluate_on_new_document_response(
Result__
),
gleam@result:replace_error(_pipe, protocol_error)
end
).
-spec bring_to_front(fun((binary(), gleam@option:option(any())) -> AHUM)) -> AHUM.
bring_to_front(Callback__) ->
Callback__(<<"Page.bringToFront"/utf8>>, none).
-spec encode__capture_screenshot_format(capture_screenshot_format()) -> gleam@json:json().
encode__capture_screenshot_format(Value__) ->
_pipe = case Value__ of
capture_screenshot_format_jpeg ->
<<"jpeg"/utf8>>;
capture_screenshot_format_png ->
<<"png"/utf8>>;
capture_screenshot_format_webp ->
<<"webp"/utf8>>
end,
gleam@json:string(_pipe).
-spec capture_screenshot(
fun((binary(), gleam@option:option(gleam@json:json())) -> {ok,
gleam@dynamic:dynamic_()} |
{error, chrome:request_error()}),
gleam@option:option(capture_screenshot_format()),
gleam@option:option(integer()),
gleam@option:option(viewport())
) -> {ok, capture_screenshot_response()} | {error, chrome:request_error()}.
capture_screenshot(Callback__, Format, Quality, Clip) ->
gleam@result:'try'(
Callback__(
<<"Page.captureScreenshot"/utf8>>,
{some,
gleam@json:object(
begin
_pipe = [],
_pipe@1 = chrobot@internal@utils:add_optional(
_pipe,
Format,
fun(Inner_value__) ->
{<<"format"/utf8>>,
encode__capture_screenshot_format(
Inner_value__
)}
end
),
_pipe@2 = chrobot@internal@utils:add_optional(
_pipe@1,
Quality,
fun(Inner_value__@1) ->
{<<"quality"/utf8>>,
gleam@json:int(Inner_value__@1)}
end
),
chrobot@internal@utils:add_optional(
_pipe@2,
Clip,
fun(Inner_value__@2) ->
{<<"clip"/utf8>>,
encode__viewport(Inner_value__@2)}
end
)
end
)}
),
fun(Result__) ->
_pipe@3 = decode__capture_screenshot_response(Result__),
gleam@result:replace_error(_pipe@3, protocol_error)
end
).
-spec decode__capture_screenshot_format(gleam@dynamic:dynamic_()) -> {ok,
capture_screenshot_format()} |
{error, list(gleam@dynamic:decode_error())}.
decode__capture_screenshot_format(Value__) ->
case gleam@dynamic:string(Value__) of
{ok, <<"jpeg"/utf8>>} ->
{ok, capture_screenshot_format_jpeg};
{ok, <<"png"/utf8>>} ->
{ok, capture_screenshot_format_png};
{ok, <<"webp"/utf8>>} ->
{ok, capture_screenshot_format_webp};
{error, Error} ->
{error, Error};
{ok, Other} ->
{error,
[{decode_error,
<<"valid enum property"/utf8>>,
Other,
[<<"enum decoder"/utf8>>]}]}
end.
-spec create_isolated_world(
fun((binary(), gleam@option:option(gleam@json:json())) -> {ok,
gleam@dynamic:dynamic_()} |
{error, chrome:request_error()}),
frame_id(),
gleam@option:option(binary()),
gleam@option:option(boolean())
) -> {ok, create_isolated_world_response()} | {error, chrome:request_error()}.
create_isolated_world(Callback__, Frame_id, World_name, Grant_univeral_access) ->
gleam@result:'try'(
Callback__(
<<"Page.createIsolatedWorld"/utf8>>,
{some,
gleam@json:object(
begin
_pipe = [{<<"frameId"/utf8>>,
encode__frame_id(Frame_id)}],
_pipe@1 = chrobot@internal@utils:add_optional(
_pipe,
World_name,
fun(Inner_value__) ->
{<<"worldName"/utf8>>,
gleam@json:string(Inner_value__)}
end
),
chrobot@internal@utils:add_optional(
_pipe@1,
Grant_univeral_access,
fun(Inner_value__@1) ->
{<<"grantUniveralAccess"/utf8>>,
gleam@json:bool(Inner_value__@1)}
end
)
end
)}
),
fun(Result__) ->
_pipe@2 = decode__create_isolated_world_response(Result__),
gleam@result:replace_error(_pipe@2, protocol_error)
end
).
-spec disable(fun((binary(), gleam@option:option(any())) -> AHWW)) -> AHWW.
disable(Callback__) ->
Callback__(<<"Page.disable"/utf8>>, none).
-spec enable(fun((binary(), gleam@option:option(any())) -> AHXA)) -> AHXA.
enable(Callback__) ->
Callback__(<<"Page.enable"/utf8>>, none).
-spec get_app_manifest(
fun((binary(), gleam@option:option(gleam@json:json())) -> {ok,
gleam@dynamic:dynamic_()} |
{error, chrome:request_error()}),
gleam@option:option(binary())
) -> {ok, get_app_manifest_response()} | {error, chrome:request_error()}.
get_app_manifest(Callback__, Manifest_id) ->
gleam@result:'try'(
Callback__(
<<"Page.getAppManifest"/utf8>>,
{some,
gleam@json:object(
begin
_pipe = [],
chrobot@internal@utils:add_optional(
_pipe,
Manifest_id,
fun(Inner_value__) ->
{<<"manifestId"/utf8>>,
gleam@json:string(Inner_value__)}
end
)
end
)}
),
fun(Result__) -> _pipe@1 = decode__get_app_manifest_response(Result__),
gleam@result:replace_error(_pipe@1, protocol_error) end
).
-spec get_frame_tree(
fun((binary(), gleam@option:option(any())) -> {ok, gleam@dynamic:dynamic_()} |
{error, chrome:request_error()})
) -> {ok, get_frame_tree_response()} | {error, chrome:request_error()}.
get_frame_tree(Callback__) ->
gleam@result:'try'(
Callback__(<<"Page.getFrameTree"/utf8>>, none),
fun(Result__) -> _pipe = decode__get_frame_tree_response(Result__),
gleam@result:replace_error(_pipe, protocol_error) end
).
-spec get_layout_metrics(
fun((binary(), gleam@option:option(any())) -> {ok, gleam@dynamic:dynamic_()} |
{error, chrome:request_error()})
) -> {ok, get_layout_metrics_response()} | {error, chrome:request_error()}.
get_layout_metrics(Callback__) ->
gleam@result:'try'(
Callback__(<<"Page.getLayoutMetrics"/utf8>>, none),
fun(Result__) -> _pipe = decode__get_layout_metrics_response(Result__),
gleam@result:replace_error(_pipe, protocol_error) end
).
-spec get_navigation_history(
fun((binary(), gleam@option:option(any())) -> {ok, gleam@dynamic:dynamic_()} |
{error, chrome:request_error()})
) -> {ok, get_navigation_history_response()} | {error, chrome:request_error()}.
get_navigation_history(Callback__) ->
gleam@result:'try'(
Callback__(<<"Page.getNavigationHistory"/utf8>>, none),
fun(Result__) ->
_pipe = decode__get_navigation_history_response(Result__),
gleam@result:replace_error(_pipe, protocol_error)
end
).
-spec reset_navigation_history(
fun((binary(), gleam@option:option(any())) -> AHYZ)
) -> AHYZ.
reset_navigation_history(Callback__) ->
Callback__(<<"Page.resetNavigationHistory"/utf8>>, none).
-spec handle_java_script_dialog(
fun((binary(), gleam@option:option(gleam@json:json())) -> AHZD),
boolean(),
gleam@option:option(binary())
) -> AHZD.
handle_java_script_dialog(Callback__, Accept, Prompt_text) ->
Callback__(
<<"Page.handleJavaScriptDialog"/utf8>>,
{some,
gleam@json:object(
begin
_pipe = [{<<"accept"/utf8>>, gleam@json:bool(Accept)}],
chrobot@internal@utils:add_optional(
_pipe,
Prompt_text,
fun(Inner_value__) ->
{<<"promptText"/utf8>>,
gleam@json:string(Inner_value__)}
end
)
end
)}
).
-spec navigate(
fun((binary(), gleam@option:option(gleam@json:json())) -> {ok,
gleam@dynamic:dynamic_()} |
{error, chrome:request_error()}),
binary(),
gleam@option:option(binary()),
gleam@option:option(transition_type()),
gleam@option:option(frame_id())
) -> {ok, navigate_response()} | {error, chrome:request_error()}.
navigate(Callback__, Url, Referrer, Transition_type, Frame_id) ->
gleam@result:'try'(
Callback__(
<<"Page.navigate"/utf8>>,
{some,
gleam@json:object(
begin
_pipe = [{<<"url"/utf8>>, gleam@json:string(Url)}],
_pipe@1 = chrobot@internal@utils:add_optional(
_pipe,
Referrer,
fun(Inner_value__) ->
{<<"referrer"/utf8>>,
gleam@json:string(Inner_value__)}
end
),
_pipe@2 = chrobot@internal@utils:add_optional(
_pipe@1,
Transition_type,
fun(Inner_value__@1) ->
{<<"transitionType"/utf8>>,
encode__transition_type(Inner_value__@1)}
end
),
chrobot@internal@utils:add_optional(
_pipe@2,
Frame_id,
fun(Inner_value__@2) ->
{<<"frameId"/utf8>>,
encode__frame_id(Inner_value__@2)}
end
)
end
)}
),
fun(Result__) -> _pipe@3 = decode__navigate_response(Result__),
gleam@result:replace_error(_pipe@3, protocol_error) end
).
-spec navigate_to_history_entry(
fun((binary(), gleam@option:option(gleam@json:json())) -> AIAC),
integer()
) -> AIAC.
navigate_to_history_entry(Callback__, Entry_id) ->
Callback__(
<<"Page.navigateToHistoryEntry"/utf8>>,
{some,
gleam@json:object([{<<"entryId"/utf8>>, gleam@json:int(Entry_id)}])}
).
-spec print_to_pdf(
fun((binary(), gleam@option:option(gleam@json:json())) -> {ok,
gleam@dynamic:dynamic_()} |
{error, chrome:request_error()}),
gleam@option:option(boolean()),
gleam@option:option(boolean()),
gleam@option:option(boolean()),
gleam@option:option(float()),
gleam@option:option(float()),
gleam@option:option(float()),
gleam@option:option(float()),
gleam@option:option(float()),
gleam@option:option(float()),
gleam@option:option(float()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(boolean())
) -> {ok, print_to_pdf_response()} | {error, chrome:request_error()}.
print_to_pdf(
Callback__,
Landscape,
Display_header_footer,
Print_background,
Scale,
Paper_width,
Paper_height,
Margin_top,
Margin_bottom,
Margin_left,
Margin_right,
Page_ranges,
Header_template,
Footer_template,
Prefer_css_page_size
) ->
gleam@result:'try'(
Callback__(
<<"Page.printToPDF"/utf8>>,
{some,
gleam@json:object(
begin
_pipe = [],
_pipe@1 = chrobot@internal@utils:add_optional(
_pipe,
Landscape,
fun(Inner_value__) ->
{<<"landscape"/utf8>>,
gleam@json:bool(Inner_value__)}
end
),
_pipe@2 = chrobot@internal@utils:add_optional(
_pipe@1,
Display_header_footer,
fun(Inner_value__@1) ->
{<<"displayHeaderFooter"/utf8>>,
gleam@json:bool(Inner_value__@1)}
end
),
_pipe@3 = chrobot@internal@utils:add_optional(
_pipe@2,
Print_background,
fun(Inner_value__@2) ->
{<<"printBackground"/utf8>>,
gleam@json:bool(Inner_value__@2)}
end
),
_pipe@4 = chrobot@internal@utils:add_optional(
_pipe@3,
Scale,
fun(Inner_value__@3) ->
{<<"scale"/utf8>>,
gleam@json:float(Inner_value__@3)}
end
),
_pipe@5 = chrobot@internal@utils:add_optional(
_pipe@4,
Paper_width,
fun(Inner_value__@4) ->
{<<"paperWidth"/utf8>>,
gleam@json:float(Inner_value__@4)}
end
),
_pipe@6 = chrobot@internal@utils:add_optional(
_pipe@5,
Paper_height,
fun(Inner_value__@5) ->
{<<"paperHeight"/utf8>>,
gleam@json:float(Inner_value__@5)}
end
),
_pipe@7 = chrobot@internal@utils:add_optional(
_pipe@6,
Margin_top,
fun(Inner_value__@6) ->
{<<"marginTop"/utf8>>,
gleam@json:float(Inner_value__@6)}
end
),
_pipe@8 = chrobot@internal@utils:add_optional(
_pipe@7,
Margin_bottom,
fun(Inner_value__@7) ->
{<<"marginBottom"/utf8>>,
gleam@json:float(Inner_value__@7)}
end
),
_pipe@9 = chrobot@internal@utils:add_optional(
_pipe@8,
Margin_left,
fun(Inner_value__@8) ->
{<<"marginLeft"/utf8>>,
gleam@json:float(Inner_value__@8)}
end
),
_pipe@10 = chrobot@internal@utils:add_optional(
_pipe@9,
Margin_right,
fun(Inner_value__@9) ->
{<<"marginRight"/utf8>>,
gleam@json:float(Inner_value__@9)}
end
),
_pipe@11 = chrobot@internal@utils:add_optional(
_pipe@10,
Page_ranges,
fun(Inner_value__@10) ->
{<<"pageRanges"/utf8>>,
gleam@json:string(Inner_value__@10)}
end
),
_pipe@12 = chrobot@internal@utils:add_optional(
_pipe@11,
Header_template,
fun(Inner_value__@11) ->
{<<"headerTemplate"/utf8>>,
gleam@json:string(Inner_value__@11)}
end
),
_pipe@13 = chrobot@internal@utils:add_optional(
_pipe@12,
Footer_template,
fun(Inner_value__@12) ->
{<<"footerTemplate"/utf8>>,
gleam@json:string(Inner_value__@12)}
end
),
chrobot@internal@utils:add_optional(
_pipe@13,
Prefer_css_page_size,
fun(Inner_value__@13) ->
{<<"preferCSSPageSize"/utf8>>,
gleam@json:bool(Inner_value__@13)}
end
)
end
)}
),
fun(Result__) -> _pipe@14 = decode__print_to_pdf_response(Result__),
gleam@result:replace_error(_pipe@14, protocol_error) end
).
-spec reload(
fun((binary(), gleam@option:option(gleam@json:json())) -> AIBV),
gleam@option:option(boolean()),
gleam@option:option(binary())
) -> AIBV.
reload(Callback__, Ignore_cache, Script_to_evaluate_on_load) ->
Callback__(
<<"Page.reload"/utf8>>,
{some,
gleam@json:object(
begin
_pipe = [],
_pipe@1 = chrobot@internal@utils:add_optional(
_pipe,
Ignore_cache,
fun(Inner_value__) ->
{<<"ignoreCache"/utf8>>,
gleam@json:bool(Inner_value__)}
end
),
chrobot@internal@utils:add_optional(
_pipe@1,
Script_to_evaluate_on_load,
fun(Inner_value__@1) ->
{<<"scriptToEvaluateOnLoad"/utf8>>,
gleam@json:string(Inner_value__@1)}
end
)
end
)}
).
-spec remove_script_to_evaluate_on_new_document(
fun((binary(), gleam@option:option(gleam@json:json())) -> AICE),
script_identifier()
) -> AICE.
remove_script_to_evaluate_on_new_document(Callback__, Identifier) ->
Callback__(
<<"Page.removeScriptToEvaluateOnNewDocument"/utf8>>,
{some,
gleam@json:object(
[{<<"identifier"/utf8>>, encode__script_identifier(Identifier)}]
)}
).
-spec set_bypass_csp(
fun((binary(), gleam@option:option(gleam@json:json())) -> AICJ),
boolean()
) -> AICJ.
set_bypass_csp(Callback__, Enabled) ->
Callback__(
<<"Page.setBypassCSP"/utf8>>,
{some,
gleam@json:object([{<<"enabled"/utf8>>, gleam@json:bool(Enabled)}])}
).
-spec set_document_content(
fun((binary(), gleam@option:option(gleam@json:json())) -> AICO),
frame_id(),
binary()
) -> AICO.
set_document_content(Callback__, Frame_id, Html) ->
Callback__(
<<"Page.setDocumentContent"/utf8>>,
{some,
gleam@json:object(
[{<<"frameId"/utf8>>, encode__frame_id(Frame_id)},
{<<"html"/utf8>>, gleam@json:string(Html)}]
)}
).
-spec set_lifecycle_events_enabled(
fun((binary(), gleam@option:option(gleam@json:json())) -> AICT),
boolean()
) -> AICT.
set_lifecycle_events_enabled(Callback__, Enabled) ->
Callback__(
<<"Page.setLifecycleEventsEnabled"/utf8>>,
{some,
gleam@json:object([{<<"enabled"/utf8>>, gleam@json:bool(Enabled)}])}
).
-spec stop_loading(fun((binary(), gleam@option:option(any())) -> AICY)) -> AICY.
stop_loading(Callback__) ->
Callback__(<<"Page.stopLoading"/utf8>>, none).
-spec close(fun((binary(), gleam@option:option(any())) -> AIDC)) -> AIDC.
close(Callback__) ->
Callback__(<<"Page.close"/utf8>>, none).
-spec set_intercept_file_chooser_dialog(
fun((binary(), gleam@option:option(gleam@json:json())) -> AIDG),
boolean()
) -> AIDG.
set_intercept_file_chooser_dialog(Callback__, Enabled) ->
Callback__(
<<"Page.setInterceptFileChooserDialog"/utf8>>,
{some,
gleam@json:object([{<<"enabled"/utf8>>, gleam@json:bool(Enabled)}])}
).