-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())) -> WZT)) -> WZT. 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())) -> XCD)) -> XCD. disable(Callback__) -> Callback__(<<"Page.disable"/utf8>>, none). -spec enable(fun((binary(), gleam@option:option(any())) -> XCH)) -> XCH. 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())) -> XEG) ) -> XEG. reset_navigation_history(Callback__) -> Callback__(<<"Page.resetNavigationHistory"/utf8>>, none). -spec handle_java_script_dialog( fun((binary(), gleam@option:option(gleam@json:json())) -> XEK), boolean(), gleam@option:option(binary()) ) -> XEK. 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())) -> XFJ), integer() ) -> XFJ. 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())) -> XHC), gleam@option:option(boolean()), gleam@option:option(binary()) ) -> XHC. 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())) -> XHL), script_identifier() ) -> XHL. 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())) -> XHQ), boolean() ) -> XHQ. 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())) -> XHV), frame_id(), binary() ) -> XHV. 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())) -> XIA), boolean() ) -> XIA. 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())) -> XIF)) -> XIF. stop_loading(Callback__) -> Callback__(<<"Page.stopLoading"/utf8>>, none). -spec close(fun((binary(), gleam@option:option(any())) -> XIJ)) -> XIJ. close(Callback__) -> Callback__(<<"Page.close"/utf8>>, none). -spec set_intercept_file_chooser_dialog( fun((binary(), gleam@option:option(gleam@json:json())) -> XIN), boolean() ) -> XIN. set_intercept_file_chooser_dialog(Callback__, Enabled) -> Callback__( <<"Page.setInterceptFileChooserDialog"/utf8>>, {some, gleam@json:object([{<<"enabled"/utf8>>, gleam@json:bool(Enabled)}])} ).