-module(protocol@network). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([encode__resource_type/1, decode__resource_type/1, encode__loader_id/1, decode__loader_id/1, encode__request_id/1, decode__request_id/1, encode__interception_id/1, decode__interception_id/1, encode__error_reason/1, decode__error_reason/1, encode__time_since_epoch/1, decode__time_since_epoch/1, encode__monotonic_time/1, decode__monotonic_time/1, encode__headers/1, decode__headers/1, encode__connection_type/1, decode__connection_type/1, encode__cookie_same_site/1, decode__cookie_same_site/1, encode__resource_timing/1, decode__resource_timing/1, encode__resource_priority/1, decode__resource_priority/1, encode__post_data_entry/1, decode__post_data_entry/1, encode__request_referrer_policy/1, decode__request_referrer_policy/1, encode__request/1, decode__request/1, encode__signed_certificate_timestamp/1, decode__signed_certificate_timestamp/1, encode__certificate_transparency_compliance/1, encode__security_details/1, decode__certificate_transparency_compliance/1, decode__security_details/1, encode__blocked_reason/1, decode__blocked_reason/1, encode__cors_error/1, decode__cors_error/1, encode__cors_error_status/1, decode__cors_error_status/1, encode__service_worker_response_source/1, decode__service_worker_response_source/1, encode__service_worker_router_source/1, decode__service_worker_router_source/1, encode__response/1, decode__response/1, encode__web_socket_request/1, decode__web_socket_request/1, encode__web_socket_response/1, decode__web_socket_response/1, encode__web_socket_frame/1, decode__web_socket_frame/1, encode__cached_resource/1, decode__cached_resource/1, encode__initiator_type/1, decode__initiator_type/1, encode__initiator/1, decode__initiator/1, encode__cookie/1, decode__cookie/1, encode__cookie_param/1, decode__cookie_param/1, decode__get_cookies_response/1, decode__get_response_body_response/1, decode__get_request_post_data_response/1, clear_browser_cache/1, clear_browser_cookies/1, delete_cookies/6, disable/1, emulate_network_conditions/6, enable/2, get_cookies/2, get_response_body/2, get_request_post_data/2, set_bypass_service_worker/2, set_cache_disabled/2, set_cookie/10, set_cookies/2, set_extra_http_headers/2, set_user_agent_override/4]). -export_type([resource_type/0, loader_id/0, request_id/0, interception_id/0, error_reason/0, time_since_epoch/0, monotonic_time/0, headers/0, connection_type/0, cookie_same_site/0, resource_timing/0, resource_priority/0, post_data_entry/0, request/0, request_referrer_policy/0, signed_certificate_timestamp/0, security_details/0, certificate_transparency_compliance/0, blocked_reason/0, cors_error/0, cors_error_status/0, service_worker_response_source/0, service_worker_router_source/0, response/0, web_socket_request/0, web_socket_response/0, web_socket_frame/0, cached_resource/0, initiator/0, initiator_type/0, cookie/0, cookie_param/0, get_cookies_response/0, get_response_body_response/0, get_request_post_data_response/0]). -type resource_type() :: resource_type_document | resource_type_stylesheet | resource_type_image | resource_type_media | resource_type_font | resource_type_script | resource_type_text_track | resource_type_xhr | resource_type_fetch | resource_type_prefetch | resource_type_event_source | resource_type_web_socket | resource_type_manifest | resource_type_signed_exchange | resource_type_ping | resource_type_csp_violation_report | resource_type_preflight | resource_type_other. -type loader_id() :: {loader_id, binary()}. -type request_id() :: {request_id, binary()}. -type interception_id() :: {interception_id, binary()}. -type error_reason() :: error_reason_failed | error_reason_aborted | error_reason_timed_out | error_reason_access_denied | error_reason_connection_closed | error_reason_connection_reset | error_reason_connection_refused | error_reason_connection_aborted | error_reason_connection_failed | error_reason_name_not_resolved | error_reason_internet_disconnected | error_reason_address_unreachable | error_reason_blocked_by_client | error_reason_blocked_by_response. -type time_since_epoch() :: {time_since_epoch, float()}. -type monotonic_time() :: {monotonic_time, float()}. -type headers() :: {headers, gleam@dict:dict(binary(), binary())}. -type connection_type() :: connection_type_none | connection_type_cellular2g | connection_type_cellular3g | connection_type_cellular4g | connection_type_bluetooth | connection_type_ethernet | connection_type_wifi | connection_type_wimax | connection_type_other. -type cookie_same_site() :: cookie_same_site_strict | cookie_same_site_lax | cookie_same_site_none. -type resource_timing() :: {resource_timing, float(), float(), float(), float(), float(), float(), float(), float(), float(), float(), float(), float()}. -type resource_priority() :: resource_priority_very_low | resource_priority_low | resource_priority_medium | resource_priority_high | resource_priority_very_high. -type post_data_entry() :: {post_data_entry, gleam@option:option(binary())}. -type request() :: {request, binary(), gleam@option:option(binary()), binary(), headers(), gleam@option:option(boolean()), gleam@option:option(protocol@security:mixed_content_type()), resource_priority(), request_referrer_policy(), gleam@option:option(boolean())}. -type request_referrer_policy() :: request_referrer_policy_unsafe_url | request_referrer_policy_no_referrer_when_downgrade | request_referrer_policy_no_referrer | request_referrer_policy_origin | request_referrer_policy_origin_when_cross_origin | request_referrer_policy_same_origin | request_referrer_policy_strict_origin | request_referrer_policy_strict_origin_when_cross_origin. -type signed_certificate_timestamp() :: {signed_certificate_timestamp, binary(), binary(), binary(), binary(), float(), binary(), binary(), binary()}. -type security_details() :: {security_details, binary(), binary(), gleam@option:option(binary()), binary(), gleam@option:option(binary()), protocol@security:certificate_id(), binary(), list(binary()), binary(), time_since_epoch(), time_since_epoch(), list(signed_certificate_timestamp()), certificate_transparency_compliance(), gleam@option:option(integer()), boolean()}. -type certificate_transparency_compliance() :: certificate_transparency_compliance_unknown | certificate_transparency_compliance_not_compliant | certificate_transparency_compliance_compliant. -type blocked_reason() :: blocked_reason_other | blocked_reason_csp | blocked_reason_mixed_content | blocked_reason_origin | blocked_reason_inspector | blocked_reason_subresource_filter | blocked_reason_content_type | blocked_reason_coep_frame_resource_needs_coep_header | blocked_reason_coop_sandboxed_iframe_cannot_navigate_to_coop_page | blocked_reason_corp_not_same_origin | blocked_reason_corp_not_same_origin_after_defaulted_to_same_origin_by_coep | blocked_reason_corp_not_same_site. -type cors_error() :: cors_error_disallowed_by_mode | cors_error_invalid_response | cors_error_wildcard_origin_not_allowed | cors_error_missing_allow_origin_header | cors_error_multiple_allow_origin_values | cors_error_invalid_allow_origin_value | cors_error_allow_origin_mismatch | cors_error_invalid_allow_credentials | cors_error_cors_disabled_scheme | cors_error_preflight_invalid_status | cors_error_preflight_disallowed_redirect | cors_error_preflight_wildcard_origin_not_allowed | cors_error_preflight_missing_allow_origin_header | cors_error_preflight_multiple_allow_origin_values | cors_error_preflight_invalid_allow_origin_value | cors_error_preflight_allow_origin_mismatch | cors_error_preflight_invalid_allow_credentials | cors_error_preflight_missing_allow_external | cors_error_preflight_invalid_allow_external | cors_error_preflight_missing_allow_private_network | cors_error_preflight_invalid_allow_private_network | cors_error_invalid_allow_methods_preflight_response | cors_error_invalid_allow_headers_preflight_response | cors_error_method_disallowed_by_preflight_response | cors_error_header_disallowed_by_preflight_response | cors_error_redirect_contains_credentials | cors_error_insecure_private_network | cors_error_invalid_private_network_access | cors_error_unexpected_private_network_access | cors_error_no_cors_redirect_mode_not_follow | cors_error_preflight_missing_private_network_access_id | cors_error_preflight_missing_private_network_access_name | cors_error_private_network_access_permission_unavailable | cors_error_private_network_access_permission_denied. -type cors_error_status() :: {cors_error_status, cors_error(), binary()}. -type service_worker_response_source() :: service_worker_response_source_cache_storage | service_worker_response_source_http_cache | service_worker_response_source_fallback_code | service_worker_response_source_network. -type service_worker_router_source() :: service_worker_router_source_network | service_worker_router_source_cache | service_worker_router_source_fetch_event | service_worker_router_source_race_network_and_fetch_handler. -type response() :: {response, binary(), integer(), binary(), headers(), binary(), binary(), gleam@option:option(headers()), boolean(), float(), gleam@option:option(binary()), gleam@option:option(integer()), gleam@option:option(boolean()), gleam@option:option(boolean()), gleam@option:option(boolean()), gleam@option:option(boolean()), float(), gleam@option:option(resource_timing()), gleam@option:option(service_worker_response_source()), gleam@option:option(time_since_epoch()), gleam@option:option(binary()), gleam@option:option(binary()), protocol@security:security_state(), gleam@option:option(security_details())}. -type web_socket_request() :: {web_socket_request, headers()}. -type web_socket_response() :: {web_socket_response, integer(), binary(), headers(), gleam@option:option(binary()), gleam@option:option(headers()), gleam@option:option(binary())}. -type web_socket_frame() :: {web_socket_frame, float(), boolean(), binary()}. -type cached_resource() :: {cached_resource, binary(), resource_type(), gleam@option:option(response()), float()}. -type initiator() :: {initiator, initiator_type(), gleam@option:option(protocol@runtime:stack_trace()), gleam@option:option(binary()), gleam@option:option(float()), gleam@option:option(float()), gleam@option:option(request_id())}. -type initiator_type() :: initiator_type_parser | initiator_type_script | initiator_type_preload | initiator_type_signed_exchange | initiator_type_preflight | initiator_type_other. -type cookie() :: {cookie, binary(), binary(), binary(), binary(), float(), integer(), boolean(), boolean(), boolean(), gleam@option:option(cookie_same_site())}. -type cookie_param() :: {cookie_param, binary(), binary(), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(boolean()), gleam@option:option(boolean()), gleam@option:option(cookie_same_site()), gleam@option:option(time_since_epoch())}. -type get_cookies_response() :: {get_cookies_response, list(cookie())}. -type get_response_body_response() :: {get_response_body_response, binary(), boolean()}. -type get_request_post_data_response() :: {get_request_post_data_response, binary()}. -spec encode__resource_type(resource_type()) -> gleam@json:json(). encode__resource_type(Value__) -> _pipe = case Value__ of resource_type_document -> <<"Document"/utf8>>; resource_type_stylesheet -> <<"Stylesheet"/utf8>>; resource_type_image -> <<"Image"/utf8>>; resource_type_media -> <<"Media"/utf8>>; resource_type_font -> <<"Font"/utf8>>; resource_type_script -> <<"Script"/utf8>>; resource_type_text_track -> <<"TextTrack"/utf8>>; resource_type_xhr -> <<"XHR"/utf8>>; resource_type_fetch -> <<"Fetch"/utf8>>; resource_type_prefetch -> <<"Prefetch"/utf8>>; resource_type_event_source -> <<"EventSource"/utf8>>; resource_type_web_socket -> <<"WebSocket"/utf8>>; resource_type_manifest -> <<"Manifest"/utf8>>; resource_type_signed_exchange -> <<"SignedExchange"/utf8>>; resource_type_ping -> <<"Ping"/utf8>>; resource_type_csp_violation_report -> <<"CSPViolationReport"/utf8>>; resource_type_preflight -> <<"Preflight"/utf8>>; resource_type_other -> <<"Other"/utf8>> end, gleam@json:string(_pipe). -spec decode__resource_type(gleam@dynamic:dynamic_()) -> {ok, resource_type()} | {error, list(gleam@dynamic:decode_error())}. decode__resource_type(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"Document"/utf8>>} -> {ok, resource_type_document}; {ok, <<"Stylesheet"/utf8>>} -> {ok, resource_type_stylesheet}; {ok, <<"Image"/utf8>>} -> {ok, resource_type_image}; {ok, <<"Media"/utf8>>} -> {ok, resource_type_media}; {ok, <<"Font"/utf8>>} -> {ok, resource_type_font}; {ok, <<"Script"/utf8>>} -> {ok, resource_type_script}; {ok, <<"TextTrack"/utf8>>} -> {ok, resource_type_text_track}; {ok, <<"XHR"/utf8>>} -> {ok, resource_type_xhr}; {ok, <<"Fetch"/utf8>>} -> {ok, resource_type_fetch}; {ok, <<"Prefetch"/utf8>>} -> {ok, resource_type_prefetch}; {ok, <<"EventSource"/utf8>>} -> {ok, resource_type_event_source}; {ok, <<"WebSocket"/utf8>>} -> {ok, resource_type_web_socket}; {ok, <<"Manifest"/utf8>>} -> {ok, resource_type_manifest}; {ok, <<"SignedExchange"/utf8>>} -> {ok, resource_type_signed_exchange}; {ok, <<"Ping"/utf8>>} -> {ok, resource_type_ping}; {ok, <<"CSPViolationReport"/utf8>>} -> {ok, resource_type_csp_violation_report}; {ok, <<"Preflight"/utf8>>} -> {ok, resource_type_preflight}; {ok, <<"Other"/utf8>>} -> {ok, resource_type_other}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -spec encode__loader_id(loader_id()) -> gleam@json:json(). encode__loader_id(Value__) -> case Value__ of {loader_id, Inner_value__} -> gleam@json:string(Inner_value__) end. -spec decode__loader_id(gleam@dynamic:dynamic_()) -> {ok, loader_id()} | {error, list(gleam@dynamic:decode_error())}. decode__loader_id(Value__) -> _pipe = Value__, (gleam@dynamic:decode1( fun(Field@0) -> {loader_id, Field@0} end, fun gleam@dynamic:string/1 ))(_pipe). -spec encode__request_id(request_id()) -> gleam@json:json(). encode__request_id(Value__) -> case Value__ of {request_id, Inner_value__} -> gleam@json:string(Inner_value__) end. -spec decode__request_id(gleam@dynamic:dynamic_()) -> {ok, request_id()} | {error, list(gleam@dynamic:decode_error())}. decode__request_id(Value__) -> _pipe = Value__, (gleam@dynamic:decode1( fun(Field@0) -> {request_id, Field@0} end, fun gleam@dynamic:string/1 ))(_pipe). -spec encode__interception_id(interception_id()) -> gleam@json:json(). encode__interception_id(Value__) -> case Value__ of {interception_id, Inner_value__} -> gleam@json:string(Inner_value__) end. -spec decode__interception_id(gleam@dynamic:dynamic_()) -> {ok, interception_id()} | {error, list(gleam@dynamic:decode_error())}. decode__interception_id(Value__) -> _pipe = Value__, (gleam@dynamic:decode1( fun(Field@0) -> {interception_id, Field@0} end, fun gleam@dynamic:string/1 ))(_pipe). -spec encode__error_reason(error_reason()) -> gleam@json:json(). encode__error_reason(Value__) -> _pipe = case Value__ of error_reason_failed -> <<"Failed"/utf8>>; error_reason_aborted -> <<"Aborted"/utf8>>; error_reason_timed_out -> <<"TimedOut"/utf8>>; error_reason_access_denied -> <<"AccessDenied"/utf8>>; error_reason_connection_closed -> <<"ConnectionClosed"/utf8>>; error_reason_connection_reset -> <<"ConnectionReset"/utf8>>; error_reason_connection_refused -> <<"ConnectionRefused"/utf8>>; error_reason_connection_aborted -> <<"ConnectionAborted"/utf8>>; error_reason_connection_failed -> <<"ConnectionFailed"/utf8>>; error_reason_name_not_resolved -> <<"NameNotResolved"/utf8>>; error_reason_internet_disconnected -> <<"InternetDisconnected"/utf8>>; error_reason_address_unreachable -> <<"AddressUnreachable"/utf8>>; error_reason_blocked_by_client -> <<"BlockedByClient"/utf8>>; error_reason_blocked_by_response -> <<"BlockedByResponse"/utf8>> end, gleam@json:string(_pipe). -spec decode__error_reason(gleam@dynamic:dynamic_()) -> {ok, error_reason()} | {error, list(gleam@dynamic:decode_error())}. decode__error_reason(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"Failed"/utf8>>} -> {ok, error_reason_failed}; {ok, <<"Aborted"/utf8>>} -> {ok, error_reason_aborted}; {ok, <<"TimedOut"/utf8>>} -> {ok, error_reason_timed_out}; {ok, <<"AccessDenied"/utf8>>} -> {ok, error_reason_access_denied}; {ok, <<"ConnectionClosed"/utf8>>} -> {ok, error_reason_connection_closed}; {ok, <<"ConnectionReset"/utf8>>} -> {ok, error_reason_connection_reset}; {ok, <<"ConnectionRefused"/utf8>>} -> {ok, error_reason_connection_refused}; {ok, <<"ConnectionAborted"/utf8>>} -> {ok, error_reason_connection_aborted}; {ok, <<"ConnectionFailed"/utf8>>} -> {ok, error_reason_connection_failed}; {ok, <<"NameNotResolved"/utf8>>} -> {ok, error_reason_name_not_resolved}; {ok, <<"InternetDisconnected"/utf8>>} -> {ok, error_reason_internet_disconnected}; {ok, <<"AddressUnreachable"/utf8>>} -> {ok, error_reason_address_unreachable}; {ok, <<"BlockedByClient"/utf8>>} -> {ok, error_reason_blocked_by_client}; {ok, <<"BlockedByResponse"/utf8>>} -> {ok, error_reason_blocked_by_response}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -spec encode__time_since_epoch(time_since_epoch()) -> gleam@json:json(). encode__time_since_epoch(Value__) -> case Value__ of {time_since_epoch, Inner_value__} -> gleam@json:float(Inner_value__) end. -spec decode__time_since_epoch(gleam@dynamic:dynamic_()) -> {ok, time_since_epoch()} | {error, list(gleam@dynamic:decode_error())}. decode__time_since_epoch(Value__) -> _pipe = Value__, (gleam@dynamic:decode1( fun(Field@0) -> {time_since_epoch, Field@0} end, fun gleam@dynamic:float/1 ))(_pipe). -spec encode__monotonic_time(monotonic_time()) -> gleam@json:json(). encode__monotonic_time(Value__) -> case Value__ of {monotonic_time, Inner_value__} -> gleam@json:float(Inner_value__) end. -spec decode__monotonic_time(gleam@dynamic:dynamic_()) -> {ok, monotonic_time()} | {error, list(gleam@dynamic:decode_error())}. decode__monotonic_time(Value__) -> _pipe = Value__, (gleam@dynamic:decode1( fun(Field@0) -> {monotonic_time, Field@0} end, fun gleam@dynamic:float/1 ))(_pipe). -spec encode__headers(headers()) -> gleam@json:json(). encode__headers(Value__) -> case Value__ of {headers, Inner_value__} -> _pipe = maps:to_list(Inner_value__), _pipe@1 = gleam@list:map( _pipe, fun(I) -> {erlang:element(1, I), gleam@json:string(erlang:element(2, I))} end ), gleam@json:object(_pipe@1) end. -spec decode__headers(gleam@dynamic:dynamic_()) -> {ok, headers()} | {error, list(gleam@dynamic:decode_error())}. decode__headers(Value__) -> _pipe = Value__, (gleam@dynamic:decode1( fun(Field@0) -> {headers, Field@0} end, gleam@dynamic:dict( fun gleam@dynamic:string/1, fun gleam@dynamic:string/1 ) ))(_pipe). -spec encode__connection_type(connection_type()) -> gleam@json:json(). encode__connection_type(Value__) -> _pipe = case Value__ of connection_type_none -> <<"none"/utf8>>; connection_type_cellular2g -> <<"cellular2g"/utf8>>; connection_type_cellular3g -> <<"cellular3g"/utf8>>; connection_type_cellular4g -> <<"cellular4g"/utf8>>; connection_type_bluetooth -> <<"bluetooth"/utf8>>; connection_type_ethernet -> <<"ethernet"/utf8>>; connection_type_wifi -> <<"wifi"/utf8>>; connection_type_wimax -> <<"wimax"/utf8>>; connection_type_other -> <<"other"/utf8>> end, gleam@json:string(_pipe). -spec decode__connection_type(gleam@dynamic:dynamic_()) -> {ok, connection_type()} | {error, list(gleam@dynamic:decode_error())}. decode__connection_type(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"none"/utf8>>} -> {ok, connection_type_none}; {ok, <<"cellular2g"/utf8>>} -> {ok, connection_type_cellular2g}; {ok, <<"cellular3g"/utf8>>} -> {ok, connection_type_cellular3g}; {ok, <<"cellular4g"/utf8>>} -> {ok, connection_type_cellular4g}; {ok, <<"bluetooth"/utf8>>} -> {ok, connection_type_bluetooth}; {ok, <<"ethernet"/utf8>>} -> {ok, connection_type_ethernet}; {ok, <<"wifi"/utf8>>} -> {ok, connection_type_wifi}; {ok, <<"wimax"/utf8>>} -> {ok, connection_type_wimax}; {ok, <<"other"/utf8>>} -> {ok, connection_type_other}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -spec encode__cookie_same_site(cookie_same_site()) -> gleam@json:json(). encode__cookie_same_site(Value__) -> _pipe = case Value__ of cookie_same_site_strict -> <<"Strict"/utf8>>; cookie_same_site_lax -> <<"Lax"/utf8>>; cookie_same_site_none -> <<"None"/utf8>> end, gleam@json:string(_pipe). -spec decode__cookie_same_site(gleam@dynamic:dynamic_()) -> {ok, cookie_same_site()} | {error, list(gleam@dynamic:decode_error())}. decode__cookie_same_site(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"Strict"/utf8>>} -> {ok, cookie_same_site_strict}; {ok, <<"Lax"/utf8>>} -> {ok, cookie_same_site_lax}; {ok, <<"None"/utf8>>} -> {ok, cookie_same_site_none}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -spec encode__resource_timing(resource_timing()) -> gleam@json:json(). encode__resource_timing(Value__) -> gleam@json:object( [{<<"requestTime"/utf8>>, gleam@json:float(erlang:element(2, Value__))}, {<<"proxyStart"/utf8>>, gleam@json:float(erlang:element(3, Value__))}, {<<"proxyEnd"/utf8>>, gleam@json:float(erlang:element(4, Value__))}, {<<"dnsStart"/utf8>>, gleam@json:float(erlang:element(5, Value__))}, {<<"dnsEnd"/utf8>>, gleam@json:float(erlang:element(6, Value__))}, {<<"connectStart"/utf8>>, gleam@json:float(erlang:element(7, Value__))}, {<<"connectEnd"/utf8>>, gleam@json:float(erlang:element(8, Value__))}, {<<"sslStart"/utf8>>, gleam@json:float(erlang:element(9, Value__))}, {<<"sslEnd"/utf8>>, gleam@json:float(erlang:element(10, Value__))}, {<<"sendStart"/utf8>>, gleam@json:float(erlang:element(11, Value__))}, {<<"sendEnd"/utf8>>, gleam@json:float(erlang:element(12, Value__))}, {<<"receiveHeadersEnd"/utf8>>, gleam@json:float(erlang:element(13, Value__))}] ). -spec decode__resource_timing(gleam@dynamic:dynamic_()) -> {ok, resource_timing()} | {error, list(gleam@dynamic:decode_error())}. decode__resource_timing(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"requestTime"/utf8>>, fun gleam@dynamic:float/1))( Value__ ), fun(Request_time) -> gleam@result:'try'( (gleam@dynamic:field( <<"proxyStart"/utf8>>, fun gleam@dynamic:float/1 ))(Value__), fun(Proxy_start) -> gleam@result:'try'( (gleam@dynamic:field( <<"proxyEnd"/utf8>>, fun gleam@dynamic:float/1 ))(Value__), fun(Proxy_end) -> gleam@result:'try'( (gleam@dynamic:field( <<"dnsStart"/utf8>>, fun gleam@dynamic:float/1 ))(Value__), fun(Dns_start) -> gleam@result:'try'( (gleam@dynamic:field( <<"dnsEnd"/utf8>>, fun gleam@dynamic:float/1 ))(Value__), fun(Dns_end) -> gleam@result:'try'( (gleam@dynamic:field( <<"connectStart"/utf8>>, fun gleam@dynamic:float/1 ))(Value__), fun(Connect_start) -> gleam@result:'try'( (gleam@dynamic:field( <<"connectEnd"/utf8>>, fun gleam@dynamic:float/1 ))(Value__), fun(Connect_end) -> gleam@result:'try'( (gleam@dynamic:field( <<"sslStart"/utf8>>, fun gleam@dynamic:float/1 ))(Value__), fun(Ssl_start) -> gleam@result:'try'( (gleam@dynamic:field( <<"sslEnd"/utf8>>, fun gleam@dynamic:float/1 ))( Value__ ), fun( Ssl_end ) -> gleam@result:'try'( (gleam@dynamic:field( <<"sendStart"/utf8>>, fun gleam@dynamic:float/1 ))( Value__ ), fun( Send_start ) -> gleam@result:'try'( (gleam@dynamic:field( <<"sendEnd"/utf8>>, fun gleam@dynamic:float/1 ))( Value__ ), fun( Send_end ) -> gleam@result:'try'( (gleam@dynamic:field( <<"receiveHeadersEnd"/utf8>>, fun gleam@dynamic:float/1 ))( Value__ ), fun( Receive_headers_end ) -> {ok, {resource_timing, Request_time, Proxy_start, Proxy_end, Dns_start, Dns_end, Connect_start, Connect_end, Ssl_start, Ssl_end, Send_start, Send_end, Receive_headers_end}} end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ). -spec encode__resource_priority(resource_priority()) -> gleam@json:json(). encode__resource_priority(Value__) -> _pipe = case Value__ of resource_priority_very_low -> <<"VeryLow"/utf8>>; resource_priority_low -> <<"Low"/utf8>>; resource_priority_medium -> <<"Medium"/utf8>>; resource_priority_high -> <<"High"/utf8>>; resource_priority_very_high -> <<"VeryHigh"/utf8>> end, gleam@json:string(_pipe). -spec decode__resource_priority(gleam@dynamic:dynamic_()) -> {ok, resource_priority()} | {error, list(gleam@dynamic:decode_error())}. decode__resource_priority(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"VeryLow"/utf8>>} -> {ok, resource_priority_very_low}; {ok, <<"Low"/utf8>>} -> {ok, resource_priority_low}; {ok, <<"Medium"/utf8>>} -> {ok, resource_priority_medium}; {ok, <<"High"/utf8>>} -> {ok, resource_priority_high}; {ok, <<"VeryHigh"/utf8>>} -> {ok, resource_priority_very_high}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -spec encode__post_data_entry(post_data_entry()) -> gleam@json:json(). encode__post_data_entry(Value__) -> gleam@json:object( begin _pipe = [], chrobot@internal@utils:add_optional( _pipe, erlang:element(2, Value__), fun(Inner_value__) -> {<<"bytes"/utf8>>, gleam@json:string(Inner_value__)} end ) end ). -spec decode__post_data_entry(gleam@dynamic:dynamic_()) -> {ok, post_data_entry()} | {error, list(gleam@dynamic:decode_error())}. decode__post_data_entry(Value__) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"bytes"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Bytes) -> {ok, {post_data_entry, Bytes}} end ). -spec encode__request_referrer_policy(request_referrer_policy()) -> gleam@json:json(). encode__request_referrer_policy(Value__) -> _pipe = case Value__ of request_referrer_policy_unsafe_url -> <<"unsafe-url"/utf8>>; request_referrer_policy_no_referrer_when_downgrade -> <<"no-referrer-when-downgrade"/utf8>>; request_referrer_policy_no_referrer -> <<"no-referrer"/utf8>>; request_referrer_policy_origin -> <<"origin"/utf8>>; request_referrer_policy_origin_when_cross_origin -> <<"origin-when-cross-origin"/utf8>>; request_referrer_policy_same_origin -> <<"same-origin"/utf8>>; request_referrer_policy_strict_origin -> <<"strict-origin"/utf8>>; request_referrer_policy_strict_origin_when_cross_origin -> <<"strict-origin-when-cross-origin"/utf8>> end, gleam@json:string(_pipe). -spec decode__request_referrer_policy(gleam@dynamic:dynamic_()) -> {ok, request_referrer_policy()} | {error, list(gleam@dynamic:decode_error())}. decode__request_referrer_policy(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"unsafe-url"/utf8>>} -> {ok, request_referrer_policy_unsafe_url}; {ok, <<"no-referrer-when-downgrade"/utf8>>} -> {ok, request_referrer_policy_no_referrer_when_downgrade}; {ok, <<"no-referrer"/utf8>>} -> {ok, request_referrer_policy_no_referrer}; {ok, <<"origin"/utf8>>} -> {ok, request_referrer_policy_origin}; {ok, <<"origin-when-cross-origin"/utf8>>} -> {ok, request_referrer_policy_origin_when_cross_origin}; {ok, <<"same-origin"/utf8>>} -> {ok, request_referrer_policy_same_origin}; {ok, <<"strict-origin"/utf8>>} -> {ok, request_referrer_policy_strict_origin}; {ok, <<"strict-origin-when-cross-origin"/utf8>>} -> {ok, request_referrer_policy_strict_origin_when_cross_origin}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -spec encode__request(request()) -> gleam@json:json(). encode__request(Value__) -> gleam@json:object( begin _pipe = [{<<"url"/utf8>>, gleam@json:string(erlang:element(2, Value__))}, {<<"method"/utf8>>, gleam@json:string(erlang:element(4, Value__))}, {<<"headers"/utf8>>, encode__headers(erlang:element(5, Value__))}, {<<"initialPriority"/utf8>>, encode__resource_priority(erlang:element(8, Value__))}, {<<"referrerPolicy"/utf8>>, encode__request_referrer_policy(erlang:element(9, Value__))}], _pipe@1 = chrobot@internal@utils:add_optional( _pipe, erlang:element(3, Value__), fun(Inner_value__) -> {<<"urlFragment"/utf8>>, gleam@json:string(Inner_value__)} end ), _pipe@2 = chrobot@internal@utils:add_optional( _pipe@1, erlang:element(6, Value__), fun(Inner_value__@1) -> {<<"hasPostData"/utf8>>, gleam@json:bool(Inner_value__@1)} end ), _pipe@3 = chrobot@internal@utils:add_optional( _pipe@2, erlang:element(7, Value__), fun(Inner_value__@2) -> {<<"mixedContentType"/utf8>>, protocol@security:encode__mixed_content_type( Inner_value__@2 )} end ), chrobot@internal@utils:add_optional( _pipe@3, erlang:element(10, Value__), fun(Inner_value__@3) -> {<<"isLinkPreload"/utf8>>, gleam@json:bool(Inner_value__@3)} end ) end ). -spec decode__request(gleam@dynamic:dynamic_()) -> {ok, request()} | {error, list(gleam@dynamic:decode_error())}. decode__request(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"url"/utf8>>, fun gleam@dynamic:string/1))( Value__ ), fun(Url) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"urlFragment"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Url_fragment) -> gleam@result:'try'( (gleam@dynamic:field( <<"method"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Method) -> gleam@result:'try'( (gleam@dynamic:field( <<"headers"/utf8>>, fun decode__headers/1 ))(Value__), fun(Headers) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"hasPostData"/utf8>>, fun gleam@dynamic:bool/1 ))(Value__), fun(Has_post_data) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"mixedContentType"/utf8>>, fun protocol@security:decode__mixed_content_type/1 ))(Value__), fun(Mixed_content_type) -> gleam@result:'try'( (gleam@dynamic:field( <<"initialPriority"/utf8>>, fun decode__resource_priority/1 ))(Value__), fun(Initial_priority) -> gleam@result:'try'( (gleam@dynamic:field( <<"referrerPolicy"/utf8>>, fun decode__request_referrer_policy/1 ))(Value__), fun( Referrer_policy ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"isLinkPreload"/utf8>>, fun gleam@dynamic:bool/1 ))( Value__ ), fun( Is_link_preload ) -> {ok, {request, Url, Url_fragment, Method, Headers, Has_post_data, Mixed_content_type, Initial_priority, Referrer_policy, Is_link_preload}} end ) end ) end ) end ) end ) end ) end ) end ) end ). -spec encode__signed_certificate_timestamp(signed_certificate_timestamp()) -> gleam@json:json(). encode__signed_certificate_timestamp(Value__) -> gleam@json:object( [{<<"status"/utf8>>, gleam@json:string(erlang:element(2, Value__))}, {<<"origin"/utf8>>, gleam@json:string(erlang:element(3, Value__))}, {<<"logDescription"/utf8>>, gleam@json:string(erlang:element(4, Value__))}, {<<"logId"/utf8>>, gleam@json:string(erlang:element(5, Value__))}, {<<"timestamp"/utf8>>, gleam@json:float(erlang:element(6, Value__))}, {<<"hashAlgorithm"/utf8>>, gleam@json:string(erlang:element(7, Value__))}, {<<"signatureAlgorithm"/utf8>>, gleam@json:string(erlang:element(8, Value__))}, {<<"signatureData"/utf8>>, gleam@json:string(erlang:element(9, Value__))}] ). -spec decode__signed_certificate_timestamp(gleam@dynamic:dynamic_()) -> {ok, signed_certificate_timestamp()} | {error, list(gleam@dynamic:decode_error())}. decode__signed_certificate_timestamp(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"status"/utf8>>, fun gleam@dynamic:string/1))( Value__ ), fun(Status) -> gleam@result:'try'( (gleam@dynamic:field( <<"origin"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Origin) -> gleam@result:'try'( (gleam@dynamic:field( <<"logDescription"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Log_description) -> gleam@result:'try'( (gleam@dynamic:field( <<"logId"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Log_id) -> gleam@result:'try'( (gleam@dynamic:field( <<"timestamp"/utf8>>, fun gleam@dynamic:float/1 ))(Value__), fun(Timestamp) -> gleam@result:'try'( (gleam@dynamic:field( <<"hashAlgorithm"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Hash_algorithm) -> gleam@result:'try'( (gleam@dynamic:field( <<"signatureAlgorithm"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Signature_algorithm) -> gleam@result:'try'( (gleam@dynamic:field( <<"signatureData"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun( Signature_data ) -> {ok, {signed_certificate_timestamp, Status, Origin, Log_description, Log_id, Timestamp, Hash_algorithm, Signature_algorithm, Signature_data}} end ) end ) end ) end ) end ) end ) end ) end ). -spec encode__certificate_transparency_compliance( certificate_transparency_compliance() ) -> gleam@json:json(). encode__certificate_transparency_compliance(Value__) -> _pipe = case Value__ of certificate_transparency_compliance_unknown -> <<"unknown"/utf8>>; certificate_transparency_compliance_not_compliant -> <<"not-compliant"/utf8>>; certificate_transparency_compliance_compliant -> <<"compliant"/utf8>> end, gleam@json:string(_pipe). -spec encode__security_details(security_details()) -> gleam@json:json(). encode__security_details(Value__) -> gleam@json:object( begin _pipe = [{<<"protocol"/utf8>>, gleam@json:string(erlang:element(2, Value__))}, {<<"keyExchange"/utf8>>, gleam@json:string(erlang:element(3, Value__))}, {<<"cipher"/utf8>>, gleam@json:string(erlang:element(5, Value__))}, {<<"certificateId"/utf8>>, protocol@security:encode__certificate_id( erlang:element(7, Value__) )}, {<<"subjectName"/utf8>>, gleam@json:string(erlang:element(8, Value__))}, {<<"sanList"/utf8>>, gleam@json:array( erlang:element(9, Value__), fun gleam@json:string/1 )}, {<<"issuer"/utf8>>, gleam@json:string(erlang:element(10, Value__))}, {<<"validFrom"/utf8>>, encode__time_since_epoch(erlang:element(11, Value__))}, {<<"validTo"/utf8>>, encode__time_since_epoch(erlang:element(12, Value__))}, {<<"signedCertificateTimestampList"/utf8>>, gleam@json:array( erlang:element(13, Value__), fun encode__signed_certificate_timestamp/1 )}, {<<"certificateTransparencyCompliance"/utf8>>, encode__certificate_transparency_compliance( erlang:element(14, Value__) )}, {<<"encryptedClientHello"/utf8>>, gleam@json:bool(erlang:element(16, Value__))}], _pipe@1 = chrobot@internal@utils:add_optional( _pipe, erlang:element(4, Value__), fun(Inner_value__) -> {<<"keyExchangeGroup"/utf8>>, gleam@json:string(Inner_value__)} end ), _pipe@2 = chrobot@internal@utils:add_optional( _pipe@1, erlang:element(6, Value__), fun(Inner_value__@1) -> {<<"mac"/utf8>>, gleam@json:string(Inner_value__@1)} end ), chrobot@internal@utils:add_optional( _pipe@2, erlang:element(15, Value__), fun(Inner_value__@2) -> {<<"serverSignatureAlgorithm"/utf8>>, gleam@json:int(Inner_value__@2)} end ) end ). -spec decode__certificate_transparency_compliance(gleam@dynamic:dynamic_()) -> {ok, certificate_transparency_compliance()} | {error, list(gleam@dynamic:decode_error())}. decode__certificate_transparency_compliance(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"unknown"/utf8>>} -> {ok, certificate_transparency_compliance_unknown}; {ok, <<"not-compliant"/utf8>>} -> {ok, certificate_transparency_compliance_not_compliant}; {ok, <<"compliant"/utf8>>} -> {ok, certificate_transparency_compliance_compliant}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -spec decode__security_details(gleam@dynamic:dynamic_()) -> {ok, security_details()} | {error, list(gleam@dynamic:decode_error())}. decode__security_details(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"protocol"/utf8>>, fun gleam@dynamic:string/1))( Value__ ), fun(Protocol) -> gleam@result:'try'( (gleam@dynamic:field( <<"keyExchange"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Key_exchange) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"keyExchangeGroup"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Key_exchange_group) -> gleam@result:'try'( (gleam@dynamic:field( <<"cipher"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Cipher) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"mac"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Mac) -> gleam@result:'try'( (gleam@dynamic:field( <<"certificateId"/utf8>>, fun protocol@security:decode__certificate_id/1 ))(Value__), fun(Certificate_id) -> gleam@result:'try'( (gleam@dynamic:field( <<"subjectName"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Subject_name) -> gleam@result:'try'( (gleam@dynamic:field( <<"sanList"/utf8>>, gleam@dynamic:list( fun gleam@dynamic:string/1 ) ))(Value__), fun(San_list) -> gleam@result:'try'( (gleam@dynamic:field( <<"issuer"/utf8>>, fun gleam@dynamic:string/1 ))( Value__ ), fun( Issuer ) -> gleam@result:'try'( (gleam@dynamic:field( <<"validFrom"/utf8>>, fun decode__time_since_epoch/1 ))( Value__ ), fun( Valid_from ) -> gleam@result:'try'( (gleam@dynamic:field( <<"validTo"/utf8>>, fun decode__time_since_epoch/1 ))( Value__ ), fun( Valid_to ) -> gleam@result:'try'( (gleam@dynamic:field( <<"signedCertificateTimestampList"/utf8>>, gleam@dynamic:list( fun decode__signed_certificate_timestamp/1 ) ))( Value__ ), fun( Signed_certificate_timestamp_list ) -> gleam@result:'try'( (gleam@dynamic:field( <<"certificateTransparencyCompliance"/utf8>>, fun decode__certificate_transparency_compliance/1 ))( Value__ ), fun( Certificate_transparency_compliance ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"serverSignatureAlgorithm"/utf8>>, fun gleam@dynamic:int/1 ))( Value__ ), fun( Server_signature_algorithm ) -> gleam@result:'try'( (gleam@dynamic:field( <<"encryptedClientHello"/utf8>>, fun gleam@dynamic:bool/1 ))( Value__ ), fun( Encrypted_client_hello ) -> {ok, {security_details, Protocol, Key_exchange, Key_exchange_group, Cipher, Mac, Certificate_id, Subject_name, San_list, Issuer, Valid_from, Valid_to, Signed_certificate_timestamp_list, Certificate_transparency_compliance, Server_signature_algorithm, Encrypted_client_hello}} end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ). -spec encode__blocked_reason(blocked_reason()) -> gleam@json:json(). encode__blocked_reason(Value__) -> _pipe = case Value__ of blocked_reason_other -> <<"other"/utf8>>; blocked_reason_csp -> <<"csp"/utf8>>; blocked_reason_mixed_content -> <<"mixed-content"/utf8>>; blocked_reason_origin -> <<"origin"/utf8>>; blocked_reason_inspector -> <<"inspector"/utf8>>; blocked_reason_subresource_filter -> <<"subresource-filter"/utf8>>; blocked_reason_content_type -> <<"content-type"/utf8>>; blocked_reason_coep_frame_resource_needs_coep_header -> <<"coep-frame-resource-needs-coep-header"/utf8>>; blocked_reason_coop_sandboxed_iframe_cannot_navigate_to_coop_page -> <<"coop-sandboxed-iframe-cannot-navigate-to-coop-page"/utf8>>; blocked_reason_corp_not_same_origin -> <<"corp-not-same-origin"/utf8>>; blocked_reason_corp_not_same_origin_after_defaulted_to_same_origin_by_coep -> <<"corp-not-same-origin-after-defaulted-to-same-origin-by-coep"/utf8>>; blocked_reason_corp_not_same_site -> <<"corp-not-same-site"/utf8>> end, gleam@json:string(_pipe). -spec decode__blocked_reason(gleam@dynamic:dynamic_()) -> {ok, blocked_reason()} | {error, list(gleam@dynamic:decode_error())}. decode__blocked_reason(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"other"/utf8>>} -> {ok, blocked_reason_other}; {ok, <<"csp"/utf8>>} -> {ok, blocked_reason_csp}; {ok, <<"mixed-content"/utf8>>} -> {ok, blocked_reason_mixed_content}; {ok, <<"origin"/utf8>>} -> {ok, blocked_reason_origin}; {ok, <<"inspector"/utf8>>} -> {ok, blocked_reason_inspector}; {ok, <<"subresource-filter"/utf8>>} -> {ok, blocked_reason_subresource_filter}; {ok, <<"content-type"/utf8>>} -> {ok, blocked_reason_content_type}; {ok, <<"coep-frame-resource-needs-coep-header"/utf8>>} -> {ok, blocked_reason_coep_frame_resource_needs_coep_header}; {ok, <<"coop-sandboxed-iframe-cannot-navigate-to-coop-page"/utf8>>} -> {ok, blocked_reason_coop_sandboxed_iframe_cannot_navigate_to_coop_page}; {ok, <<"corp-not-same-origin"/utf8>>} -> {ok, blocked_reason_corp_not_same_origin}; {ok, <<"corp-not-same-origin-after-defaulted-to-same-origin-by-coep"/utf8>>} -> {ok, blocked_reason_corp_not_same_origin_after_defaulted_to_same_origin_by_coep}; {ok, <<"corp-not-same-site"/utf8>>} -> {ok, blocked_reason_corp_not_same_site}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -spec encode__cors_error(cors_error()) -> gleam@json:json(). encode__cors_error(Value__) -> _pipe = case Value__ of cors_error_disallowed_by_mode -> <<"DisallowedByMode"/utf8>>; cors_error_invalid_response -> <<"InvalidResponse"/utf8>>; cors_error_wildcard_origin_not_allowed -> <<"WildcardOriginNotAllowed"/utf8>>; cors_error_missing_allow_origin_header -> <<"MissingAllowOriginHeader"/utf8>>; cors_error_multiple_allow_origin_values -> <<"MultipleAllowOriginValues"/utf8>>; cors_error_invalid_allow_origin_value -> <<"InvalidAllowOriginValue"/utf8>>; cors_error_allow_origin_mismatch -> <<"AllowOriginMismatch"/utf8>>; cors_error_invalid_allow_credentials -> <<"InvalidAllowCredentials"/utf8>>; cors_error_cors_disabled_scheme -> <<"CorsDisabledScheme"/utf8>>; cors_error_preflight_invalid_status -> <<"PreflightInvalidStatus"/utf8>>; cors_error_preflight_disallowed_redirect -> <<"PreflightDisallowedRedirect"/utf8>>; cors_error_preflight_wildcard_origin_not_allowed -> <<"PreflightWildcardOriginNotAllowed"/utf8>>; cors_error_preflight_missing_allow_origin_header -> <<"PreflightMissingAllowOriginHeader"/utf8>>; cors_error_preflight_multiple_allow_origin_values -> <<"PreflightMultipleAllowOriginValues"/utf8>>; cors_error_preflight_invalid_allow_origin_value -> <<"PreflightInvalidAllowOriginValue"/utf8>>; cors_error_preflight_allow_origin_mismatch -> <<"PreflightAllowOriginMismatch"/utf8>>; cors_error_preflight_invalid_allow_credentials -> <<"PreflightInvalidAllowCredentials"/utf8>>; cors_error_preflight_missing_allow_external -> <<"PreflightMissingAllowExternal"/utf8>>; cors_error_preflight_invalid_allow_external -> <<"PreflightInvalidAllowExternal"/utf8>>; cors_error_preflight_missing_allow_private_network -> <<"PreflightMissingAllowPrivateNetwork"/utf8>>; cors_error_preflight_invalid_allow_private_network -> <<"PreflightInvalidAllowPrivateNetwork"/utf8>>; cors_error_invalid_allow_methods_preflight_response -> <<"InvalidAllowMethodsPreflightResponse"/utf8>>; cors_error_invalid_allow_headers_preflight_response -> <<"InvalidAllowHeadersPreflightResponse"/utf8>>; cors_error_method_disallowed_by_preflight_response -> <<"MethodDisallowedByPreflightResponse"/utf8>>; cors_error_header_disallowed_by_preflight_response -> <<"HeaderDisallowedByPreflightResponse"/utf8>>; cors_error_redirect_contains_credentials -> <<"RedirectContainsCredentials"/utf8>>; cors_error_insecure_private_network -> <<"InsecurePrivateNetwork"/utf8>>; cors_error_invalid_private_network_access -> <<"InvalidPrivateNetworkAccess"/utf8>>; cors_error_unexpected_private_network_access -> <<"UnexpectedPrivateNetworkAccess"/utf8>>; cors_error_no_cors_redirect_mode_not_follow -> <<"NoCorsRedirectModeNotFollow"/utf8>>; cors_error_preflight_missing_private_network_access_id -> <<"PreflightMissingPrivateNetworkAccessId"/utf8>>; cors_error_preflight_missing_private_network_access_name -> <<"PreflightMissingPrivateNetworkAccessName"/utf8>>; cors_error_private_network_access_permission_unavailable -> <<"PrivateNetworkAccessPermissionUnavailable"/utf8>>; cors_error_private_network_access_permission_denied -> <<"PrivateNetworkAccessPermissionDenied"/utf8>> end, gleam@json:string(_pipe). -spec decode__cors_error(gleam@dynamic:dynamic_()) -> {ok, cors_error()} | {error, list(gleam@dynamic:decode_error())}. decode__cors_error(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"DisallowedByMode"/utf8>>} -> {ok, cors_error_disallowed_by_mode}; {ok, <<"InvalidResponse"/utf8>>} -> {ok, cors_error_invalid_response}; {ok, <<"WildcardOriginNotAllowed"/utf8>>} -> {ok, cors_error_wildcard_origin_not_allowed}; {ok, <<"MissingAllowOriginHeader"/utf8>>} -> {ok, cors_error_missing_allow_origin_header}; {ok, <<"MultipleAllowOriginValues"/utf8>>} -> {ok, cors_error_multiple_allow_origin_values}; {ok, <<"InvalidAllowOriginValue"/utf8>>} -> {ok, cors_error_invalid_allow_origin_value}; {ok, <<"AllowOriginMismatch"/utf8>>} -> {ok, cors_error_allow_origin_mismatch}; {ok, <<"InvalidAllowCredentials"/utf8>>} -> {ok, cors_error_invalid_allow_credentials}; {ok, <<"CorsDisabledScheme"/utf8>>} -> {ok, cors_error_cors_disabled_scheme}; {ok, <<"PreflightInvalidStatus"/utf8>>} -> {ok, cors_error_preflight_invalid_status}; {ok, <<"PreflightDisallowedRedirect"/utf8>>} -> {ok, cors_error_preflight_disallowed_redirect}; {ok, <<"PreflightWildcardOriginNotAllowed"/utf8>>} -> {ok, cors_error_preflight_wildcard_origin_not_allowed}; {ok, <<"PreflightMissingAllowOriginHeader"/utf8>>} -> {ok, cors_error_preflight_missing_allow_origin_header}; {ok, <<"PreflightMultipleAllowOriginValues"/utf8>>} -> {ok, cors_error_preflight_multiple_allow_origin_values}; {ok, <<"PreflightInvalidAllowOriginValue"/utf8>>} -> {ok, cors_error_preflight_invalid_allow_origin_value}; {ok, <<"PreflightAllowOriginMismatch"/utf8>>} -> {ok, cors_error_preflight_allow_origin_mismatch}; {ok, <<"PreflightInvalidAllowCredentials"/utf8>>} -> {ok, cors_error_preflight_invalid_allow_credentials}; {ok, <<"PreflightMissingAllowExternal"/utf8>>} -> {ok, cors_error_preflight_missing_allow_external}; {ok, <<"PreflightInvalidAllowExternal"/utf8>>} -> {ok, cors_error_preflight_invalid_allow_external}; {ok, <<"PreflightMissingAllowPrivateNetwork"/utf8>>} -> {ok, cors_error_preflight_missing_allow_private_network}; {ok, <<"PreflightInvalidAllowPrivateNetwork"/utf8>>} -> {ok, cors_error_preflight_invalid_allow_private_network}; {ok, <<"InvalidAllowMethodsPreflightResponse"/utf8>>} -> {ok, cors_error_invalid_allow_methods_preflight_response}; {ok, <<"InvalidAllowHeadersPreflightResponse"/utf8>>} -> {ok, cors_error_invalid_allow_headers_preflight_response}; {ok, <<"MethodDisallowedByPreflightResponse"/utf8>>} -> {ok, cors_error_method_disallowed_by_preflight_response}; {ok, <<"HeaderDisallowedByPreflightResponse"/utf8>>} -> {ok, cors_error_header_disallowed_by_preflight_response}; {ok, <<"RedirectContainsCredentials"/utf8>>} -> {ok, cors_error_redirect_contains_credentials}; {ok, <<"InsecurePrivateNetwork"/utf8>>} -> {ok, cors_error_insecure_private_network}; {ok, <<"InvalidPrivateNetworkAccess"/utf8>>} -> {ok, cors_error_invalid_private_network_access}; {ok, <<"UnexpectedPrivateNetworkAccess"/utf8>>} -> {ok, cors_error_unexpected_private_network_access}; {ok, <<"NoCorsRedirectModeNotFollow"/utf8>>} -> {ok, cors_error_no_cors_redirect_mode_not_follow}; {ok, <<"PreflightMissingPrivateNetworkAccessId"/utf8>>} -> {ok, cors_error_preflight_missing_private_network_access_id}; {ok, <<"PreflightMissingPrivateNetworkAccessName"/utf8>>} -> {ok, cors_error_preflight_missing_private_network_access_name}; {ok, <<"PrivateNetworkAccessPermissionUnavailable"/utf8>>} -> {ok, cors_error_private_network_access_permission_unavailable}; {ok, <<"PrivateNetworkAccessPermissionDenied"/utf8>>} -> {ok, cors_error_private_network_access_permission_denied}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -spec encode__cors_error_status(cors_error_status()) -> gleam@json:json(). encode__cors_error_status(Value__) -> gleam@json:object( [{<<"corsError"/utf8>>, encode__cors_error(erlang:element(2, Value__))}, {<<"failedParameter"/utf8>>, gleam@json:string(erlang:element(3, Value__))}] ). -spec decode__cors_error_status(gleam@dynamic:dynamic_()) -> {ok, cors_error_status()} | {error, list(gleam@dynamic:decode_error())}. decode__cors_error_status(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"corsError"/utf8>>, fun decode__cors_error/1))( Value__ ), fun(Cors_error) -> gleam@result:'try'( (gleam@dynamic:field( <<"failedParameter"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Failed_parameter) -> {ok, {cors_error_status, Cors_error, Failed_parameter}} end ) end ). -spec encode__service_worker_response_source(service_worker_response_source()) -> gleam@json:json(). encode__service_worker_response_source(Value__) -> _pipe = case Value__ of service_worker_response_source_cache_storage -> <<"cache-storage"/utf8>>; service_worker_response_source_http_cache -> <<"http-cache"/utf8>>; service_worker_response_source_fallback_code -> <<"fallback-code"/utf8>>; service_worker_response_source_network -> <<"network"/utf8>> end, gleam@json:string(_pipe). -spec decode__service_worker_response_source(gleam@dynamic:dynamic_()) -> {ok, service_worker_response_source()} | {error, list(gleam@dynamic:decode_error())}. decode__service_worker_response_source(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"cache-storage"/utf8>>} -> {ok, service_worker_response_source_cache_storage}; {ok, <<"http-cache"/utf8>>} -> {ok, service_worker_response_source_http_cache}; {ok, <<"fallback-code"/utf8>>} -> {ok, service_worker_response_source_fallback_code}; {ok, <<"network"/utf8>>} -> {ok, service_worker_response_source_network}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -spec encode__service_worker_router_source(service_worker_router_source()) -> gleam@json:json(). encode__service_worker_router_source(Value__) -> _pipe = case Value__ of service_worker_router_source_network -> <<"network"/utf8>>; service_worker_router_source_cache -> <<"cache"/utf8>>; service_worker_router_source_fetch_event -> <<"fetch-event"/utf8>>; service_worker_router_source_race_network_and_fetch_handler -> <<"race-network-and-fetch-handler"/utf8>> end, gleam@json:string(_pipe). -spec decode__service_worker_router_source(gleam@dynamic:dynamic_()) -> {ok, service_worker_router_source()} | {error, list(gleam@dynamic:decode_error())}. decode__service_worker_router_source(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"network"/utf8>>} -> {ok, service_worker_router_source_network}; {ok, <<"cache"/utf8>>} -> {ok, service_worker_router_source_cache}; {ok, <<"fetch-event"/utf8>>} -> {ok, service_worker_router_source_fetch_event}; {ok, <<"race-network-and-fetch-handler"/utf8>>} -> {ok, service_worker_router_source_race_network_and_fetch_handler}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -spec encode__response(response()) -> gleam@json:json(). encode__response(Value__) -> gleam@json:object( begin _pipe = [{<<"url"/utf8>>, gleam@json:string(erlang:element(2, Value__))}, {<<"status"/utf8>>, gleam@json:int(erlang:element(3, Value__))}, {<<"statusText"/utf8>>, gleam@json:string(erlang:element(4, Value__))}, {<<"headers"/utf8>>, encode__headers(erlang:element(5, Value__))}, {<<"mimeType"/utf8>>, gleam@json:string(erlang:element(6, Value__))}, {<<"charset"/utf8>>, gleam@json:string(erlang:element(7, Value__))}, {<<"connectionReused"/utf8>>, gleam@json:bool(erlang:element(9, Value__))}, {<<"connectionId"/utf8>>, gleam@json:float(erlang:element(10, Value__))}, {<<"encodedDataLength"/utf8>>, gleam@json:float(erlang:element(17, Value__))}, {<<"securityState"/utf8>>, protocol@security:encode__security_state( erlang:element(23, Value__) )}], _pipe@1 = chrobot@internal@utils:add_optional( _pipe, erlang:element(8, Value__), fun(Inner_value__) -> {<<"requestHeaders"/utf8>>, encode__headers(Inner_value__)} end ), _pipe@2 = chrobot@internal@utils:add_optional( _pipe@1, erlang:element(11, Value__), fun(Inner_value__@1) -> {<<"remoteIPAddress"/utf8>>, gleam@json:string(Inner_value__@1)} end ), _pipe@3 = chrobot@internal@utils:add_optional( _pipe@2, erlang:element(12, Value__), fun(Inner_value__@2) -> {<<"remotePort"/utf8>>, gleam@json:int(Inner_value__@2)} end ), _pipe@4 = chrobot@internal@utils:add_optional( _pipe@3, erlang:element(13, Value__), fun(Inner_value__@3) -> {<<"fromDiskCache"/utf8>>, gleam@json:bool(Inner_value__@3)} end ), _pipe@5 = chrobot@internal@utils:add_optional( _pipe@4, erlang:element(14, Value__), fun(Inner_value__@4) -> {<<"fromServiceWorker"/utf8>>, gleam@json:bool(Inner_value__@4)} end ), _pipe@6 = chrobot@internal@utils:add_optional( _pipe@5, erlang:element(15, Value__), fun(Inner_value__@5) -> {<<"fromPrefetchCache"/utf8>>, gleam@json:bool(Inner_value__@5)} end ), _pipe@7 = chrobot@internal@utils:add_optional( _pipe@6, erlang:element(16, Value__), fun(Inner_value__@6) -> {<<"fromEarlyHints"/utf8>>, gleam@json:bool(Inner_value__@6)} end ), _pipe@8 = chrobot@internal@utils:add_optional( _pipe@7, erlang:element(18, Value__), fun(Inner_value__@7) -> {<<"timing"/utf8>>, encode__resource_timing(Inner_value__@7)} end ), _pipe@9 = chrobot@internal@utils:add_optional( _pipe@8, erlang:element(19, Value__), fun(Inner_value__@8) -> {<<"serviceWorkerResponseSource"/utf8>>, encode__service_worker_response_source(Inner_value__@8)} end ), _pipe@10 = chrobot@internal@utils:add_optional( _pipe@9, erlang:element(20, Value__), fun(Inner_value__@9) -> {<<"responseTime"/utf8>>, encode__time_since_epoch(Inner_value__@9)} end ), _pipe@11 = chrobot@internal@utils:add_optional( _pipe@10, erlang:element(21, Value__), fun(Inner_value__@10) -> {<<"cacheStorageCacheName"/utf8>>, gleam@json:string(Inner_value__@10)} end ), _pipe@12 = chrobot@internal@utils:add_optional( _pipe@11, erlang:element(22, Value__), fun(Inner_value__@11) -> {<<"protocol"/utf8>>, gleam@json:string(Inner_value__@11)} end ), chrobot@internal@utils:add_optional( _pipe@12, erlang:element(24, Value__), fun(Inner_value__@12) -> {<<"securityDetails"/utf8>>, encode__security_details(Inner_value__@12)} end ) end ). -spec decode__response(gleam@dynamic:dynamic_()) -> {ok, response()} | {error, list(gleam@dynamic:decode_error())}. decode__response(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"url"/utf8>>, fun gleam@dynamic:string/1))( Value__ ), fun(Url) -> gleam@result:'try'( (gleam@dynamic:field(<<"status"/utf8>>, fun gleam@dynamic:int/1))( Value__ ), fun(Status) -> gleam@result:'try'( (gleam@dynamic:field( <<"statusText"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Status_text) -> gleam@result:'try'( (gleam@dynamic:field( <<"headers"/utf8>>, fun decode__headers/1 ))(Value__), fun(Headers) -> gleam@result:'try'( (gleam@dynamic:field( <<"mimeType"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Mime_type) -> gleam@result:'try'( (gleam@dynamic:field( <<"charset"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Charset) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"requestHeaders"/utf8>>, fun decode__headers/1 ))(Value__), fun(Request_headers) -> gleam@result:'try'( (gleam@dynamic:field( <<"connectionReused"/utf8>>, fun gleam@dynamic:bool/1 ))(Value__), fun( Connection_reused ) -> gleam@result:'try'( (gleam@dynamic:field( <<"connectionId"/utf8>>, fun gleam@dynamic:float/1 ))( Value__ ), fun( Connection_id ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"remoteIPAddress"/utf8>>, fun gleam@dynamic:string/1 ))( Value__ ), fun( Remote_ip_address ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"remotePort"/utf8>>, fun gleam@dynamic:int/1 ))( Value__ ), fun( Remote_port ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"fromDiskCache"/utf8>>, fun gleam@dynamic:bool/1 ))( Value__ ), fun( From_disk_cache ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"fromServiceWorker"/utf8>>, fun gleam@dynamic:bool/1 ))( Value__ ), fun( From_service_worker ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"fromPrefetchCache"/utf8>>, fun gleam@dynamic:bool/1 ))( Value__ ), fun( From_prefetch_cache ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"fromEarlyHints"/utf8>>, fun gleam@dynamic:bool/1 ))( Value__ ), fun( From_early_hints ) -> gleam@result:'try'( (gleam@dynamic:field( <<"encodedDataLength"/utf8>>, fun gleam@dynamic:float/1 ))( Value__ ), fun( Encoded_data_length ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"timing"/utf8>>, fun decode__resource_timing/1 ))( Value__ ), fun( Timing ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"serviceWorkerResponseSource"/utf8>>, fun decode__service_worker_response_source/1 ))( Value__ ), fun( Service_worker_response_source ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"responseTime"/utf8>>, fun decode__time_since_epoch/1 ))( Value__ ), fun( Response_time ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"cacheStorageCacheName"/utf8>>, fun gleam@dynamic:string/1 ))( Value__ ), fun( Cache_storage_cache_name ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"protocol"/utf8>>, fun gleam@dynamic:string/1 ))( Value__ ), fun( Protocol ) -> gleam@result:'try'( (gleam@dynamic:field( <<"securityState"/utf8>>, fun protocol@security:decode__security_state/1 ))( Value__ ), fun( Security_state ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"securityDetails"/utf8>>, fun decode__security_details/1 ))( Value__ ), fun( Security_details ) -> {ok, {response, Url, Status, Status_text, Headers, Mime_type, Charset, Request_headers, Connection_reused, Connection_id, Remote_ip_address, Remote_port, From_disk_cache, From_service_worker, From_prefetch_cache, From_early_hints, Encoded_data_length, Timing, Service_worker_response_source, Response_time, Cache_storage_cache_name, Protocol, Security_state, Security_details}} end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ). -spec encode__web_socket_request(web_socket_request()) -> gleam@json:json(). encode__web_socket_request(Value__) -> gleam@json:object( [{<<"headers"/utf8>>, encode__headers(erlang:element(2, Value__))}] ). -spec decode__web_socket_request(gleam@dynamic:dynamic_()) -> {ok, web_socket_request()} | {error, list(gleam@dynamic:decode_error())}. decode__web_socket_request(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"headers"/utf8>>, fun decode__headers/1))( Value__ ), fun(Headers) -> {ok, {web_socket_request, Headers}} end ). -spec encode__web_socket_response(web_socket_response()) -> gleam@json:json(). encode__web_socket_response(Value__) -> gleam@json:object( begin _pipe = [{<<"status"/utf8>>, gleam@json:int(erlang:element(2, Value__))}, {<<"statusText"/utf8>>, gleam@json:string(erlang:element(3, Value__))}, {<<"headers"/utf8>>, encode__headers(erlang:element(4, Value__))}], _pipe@1 = chrobot@internal@utils:add_optional( _pipe, erlang:element(5, Value__), fun(Inner_value__) -> {<<"headersText"/utf8>>, gleam@json:string(Inner_value__)} end ), _pipe@2 = chrobot@internal@utils:add_optional( _pipe@1, erlang:element(6, Value__), fun(Inner_value__@1) -> {<<"requestHeaders"/utf8>>, encode__headers(Inner_value__@1)} end ), chrobot@internal@utils:add_optional( _pipe@2, erlang:element(7, Value__), fun(Inner_value__@2) -> {<<"requestHeadersText"/utf8>>, gleam@json:string(Inner_value__@2)} end ) end ). -spec decode__web_socket_response(gleam@dynamic:dynamic_()) -> {ok, web_socket_response()} | {error, list(gleam@dynamic:decode_error())}. decode__web_socket_response(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"status"/utf8>>, fun gleam@dynamic:int/1))( Value__ ), fun(Status) -> gleam@result:'try'( (gleam@dynamic:field( <<"statusText"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Status_text) -> gleam@result:'try'( (gleam@dynamic:field( <<"headers"/utf8>>, fun decode__headers/1 ))(Value__), fun(Headers) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"headersText"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Headers_text) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"requestHeaders"/utf8>>, fun decode__headers/1 ))(Value__), fun(Request_headers) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"requestHeadersText"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Request_headers_text) -> {ok, {web_socket_response, Status, Status_text, Headers, Headers_text, Request_headers, Request_headers_text}} end ) end ) end ) end ) end ) end ). -spec encode__web_socket_frame(web_socket_frame()) -> gleam@json:json(). encode__web_socket_frame(Value__) -> gleam@json:object( [{<<"opcode"/utf8>>, gleam@json:float(erlang:element(2, Value__))}, {<<"mask"/utf8>>, gleam@json:bool(erlang:element(3, Value__))}, {<<"payloadData"/utf8>>, gleam@json:string(erlang:element(4, Value__))}] ). -spec decode__web_socket_frame(gleam@dynamic:dynamic_()) -> {ok, web_socket_frame()} | {error, list(gleam@dynamic:decode_error())}. decode__web_socket_frame(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"opcode"/utf8>>, fun gleam@dynamic:float/1))( Value__ ), fun(Opcode) -> gleam@result:'try'( (gleam@dynamic:field(<<"mask"/utf8>>, fun gleam@dynamic:bool/1))( Value__ ), fun(Mask) -> gleam@result:'try'( (gleam@dynamic:field( <<"payloadData"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Payload_data) -> {ok, {web_socket_frame, Opcode, Mask, Payload_data}} end ) end ) end ). -spec encode__cached_resource(cached_resource()) -> gleam@json:json(). encode__cached_resource(Value__) -> gleam@json:object( begin _pipe = [{<<"url"/utf8>>, gleam@json:string(erlang:element(2, Value__))}, {<<"type"/utf8>>, encode__resource_type(erlang:element(3, Value__))}, {<<"bodySize"/utf8>>, gleam@json:float(erlang:element(5, Value__))}], chrobot@internal@utils:add_optional( _pipe, erlang:element(4, Value__), fun(Inner_value__) -> {<<"response"/utf8>>, encode__response(Inner_value__)} end ) end ). -spec decode__cached_resource(gleam@dynamic:dynamic_()) -> {ok, cached_resource()} | {error, list(gleam@dynamic:decode_error())}. decode__cached_resource(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"url"/utf8>>, fun gleam@dynamic:string/1))( Value__ ), fun(Url) -> gleam@result:'try'( (gleam@dynamic:field( <<"type"/utf8>>, fun decode__resource_type/1 ))(Value__), fun(Type_) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"response"/utf8>>, fun decode__response/1 ))(Value__), fun(Response) -> gleam@result:'try'( (gleam@dynamic:field( <<"bodySize"/utf8>>, fun gleam@dynamic:float/1 ))(Value__), fun(Body_size) -> {ok, {cached_resource, Url, Type_, Response, Body_size}} end ) end ) end ) end ). -spec encode__initiator_type(initiator_type()) -> gleam@json:json(). encode__initiator_type(Value__) -> _pipe = case Value__ of initiator_type_parser -> <<"parser"/utf8>>; initiator_type_script -> <<"script"/utf8>>; initiator_type_preload -> <<"preload"/utf8>>; initiator_type_signed_exchange -> <<"SignedExchange"/utf8>>; initiator_type_preflight -> <<"preflight"/utf8>>; initiator_type_other -> <<"other"/utf8>> end, gleam@json:string(_pipe). -spec decode__initiator_type(gleam@dynamic:dynamic_()) -> {ok, initiator_type()} | {error, list(gleam@dynamic:decode_error())}. decode__initiator_type(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"parser"/utf8>>} -> {ok, initiator_type_parser}; {ok, <<"script"/utf8>>} -> {ok, initiator_type_script}; {ok, <<"preload"/utf8>>} -> {ok, initiator_type_preload}; {ok, <<"SignedExchange"/utf8>>} -> {ok, initiator_type_signed_exchange}; {ok, <<"preflight"/utf8>>} -> {ok, initiator_type_preflight}; {ok, <<"other"/utf8>>} -> {ok, initiator_type_other}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -spec encode__initiator(initiator()) -> gleam@json:json(). encode__initiator(Value__) -> gleam@json:object( begin _pipe = [{<<"type"/utf8>>, encode__initiator_type(erlang:element(2, Value__))}], _pipe@1 = chrobot@internal@utils:add_optional( _pipe, erlang:element(3, Value__), fun(Inner_value__) -> {<<"stack"/utf8>>, protocol@runtime:encode__stack_trace(Inner_value__)} end ), _pipe@2 = chrobot@internal@utils:add_optional( _pipe@1, erlang:element(4, Value__), fun(Inner_value__@1) -> {<<"url"/utf8>>, gleam@json:string(Inner_value__@1)} end ), _pipe@3 = chrobot@internal@utils:add_optional( _pipe@2, erlang:element(5, Value__), fun(Inner_value__@2) -> {<<"lineNumber"/utf8>>, gleam@json:float(Inner_value__@2)} end ), _pipe@4 = chrobot@internal@utils:add_optional( _pipe@3, erlang:element(6, Value__), fun(Inner_value__@3) -> {<<"columnNumber"/utf8>>, gleam@json:float(Inner_value__@3)} end ), chrobot@internal@utils:add_optional( _pipe@4, erlang:element(7, Value__), fun(Inner_value__@4) -> {<<"requestId"/utf8>>, encode__request_id(Inner_value__@4)} end ) end ). -spec decode__initiator(gleam@dynamic:dynamic_()) -> {ok, initiator()} | {error, list(gleam@dynamic:decode_error())}. decode__initiator(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"type"/utf8>>, fun decode__initiator_type/1))( Value__ ), fun(Type_) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"stack"/utf8>>, fun protocol@runtime:decode__stack_trace/1 ))(Value__), fun(Stack) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"url"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Url) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"lineNumber"/utf8>>, fun gleam@dynamic:float/1 ))(Value__), fun(Line_number) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"columnNumber"/utf8>>, fun gleam@dynamic:float/1 ))(Value__), fun(Column_number) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"requestId"/utf8>>, fun decode__request_id/1 ))(Value__), fun(Request_id) -> {ok, {initiator, Type_, Stack, Url, Line_number, Column_number, Request_id}} end ) end ) end ) end ) end ) end ). -spec encode__cookie(cookie()) -> gleam@json:json(). encode__cookie(Value__) -> gleam@json:object( begin _pipe = [{<<"name"/utf8>>, gleam@json:string(erlang:element(2, Value__))}, {<<"value"/utf8>>, gleam@json:string(erlang:element(3, Value__))}, {<<"domain"/utf8>>, gleam@json:string(erlang:element(4, Value__))}, {<<"path"/utf8>>, gleam@json:string(erlang:element(5, Value__))}, {<<"expires"/utf8>>, gleam@json:float(erlang:element(6, Value__))}, {<<"size"/utf8>>, gleam@json:int(erlang:element(7, Value__))}, {<<"httpOnly"/utf8>>, gleam@json:bool(erlang:element(8, Value__))}, {<<"secure"/utf8>>, gleam@json:bool(erlang:element(9, Value__))}, {<<"session"/utf8>>, gleam@json:bool(erlang:element(10, Value__))}], chrobot@internal@utils:add_optional( _pipe, erlang:element(11, Value__), fun(Inner_value__) -> {<<"sameSite"/utf8>>, encode__cookie_same_site(Inner_value__)} end ) end ). -spec decode__cookie(gleam@dynamic:dynamic_()) -> {ok, cookie()} | {error, list(gleam@dynamic:decode_error())}. decode__cookie(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"name"/utf8>>, fun gleam@dynamic:string/1))( Value__ ), fun(Name) -> gleam@result:'try'( (gleam@dynamic:field( <<"value"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Value) -> gleam@result:'try'( (gleam@dynamic:field( <<"domain"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Domain) -> gleam@result:'try'( (gleam@dynamic:field( <<"path"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Path) -> gleam@result:'try'( (gleam@dynamic:field( <<"expires"/utf8>>, fun gleam@dynamic:float/1 ))(Value__), fun(Expires) -> gleam@result:'try'( (gleam@dynamic:field( <<"size"/utf8>>, fun gleam@dynamic:int/1 ))(Value__), fun(Size) -> gleam@result:'try'( (gleam@dynamic:field( <<"httpOnly"/utf8>>, fun gleam@dynamic:bool/1 ))(Value__), fun(Http_only) -> gleam@result:'try'( (gleam@dynamic:field( <<"secure"/utf8>>, fun gleam@dynamic:bool/1 ))(Value__), fun(Secure) -> gleam@result:'try'( (gleam@dynamic:field( <<"session"/utf8>>, fun gleam@dynamic:bool/1 ))( Value__ ), fun( Session ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"sameSite"/utf8>>, fun decode__cookie_same_site/1 ))( Value__ ), fun( Same_site ) -> {ok, {cookie, Name, Value, Domain, Path, Expires, Size, Http_only, Secure, Session, Same_site}} end ) end ) end ) end ) end ) end ) end ) end ) end ) end ). -spec encode__cookie_param(cookie_param()) -> gleam@json:json(). encode__cookie_param(Value__) -> gleam@json:object( begin _pipe = [{<<"name"/utf8>>, gleam@json:string(erlang:element(2, Value__))}, {<<"value"/utf8>>, gleam@json:string(erlang:element(3, Value__))}], _pipe@1 = chrobot@internal@utils:add_optional( _pipe, erlang:element(4, Value__), fun(Inner_value__) -> {<<"url"/utf8>>, gleam@json:string(Inner_value__)} end ), _pipe@2 = chrobot@internal@utils:add_optional( _pipe@1, erlang:element(5, Value__), fun(Inner_value__@1) -> {<<"domain"/utf8>>, gleam@json:string(Inner_value__@1)} end ), _pipe@3 = chrobot@internal@utils:add_optional( _pipe@2, erlang:element(6, Value__), fun(Inner_value__@2) -> {<<"path"/utf8>>, gleam@json:string(Inner_value__@2)} end ), _pipe@4 = chrobot@internal@utils:add_optional( _pipe@3, erlang:element(7, Value__), fun(Inner_value__@3) -> {<<"secure"/utf8>>, gleam@json:bool(Inner_value__@3)} end ), _pipe@5 = chrobot@internal@utils:add_optional( _pipe@4, erlang:element(8, Value__), fun(Inner_value__@4) -> {<<"httpOnly"/utf8>>, gleam@json:bool(Inner_value__@4)} end ), _pipe@6 = chrobot@internal@utils:add_optional( _pipe@5, erlang:element(9, Value__), fun(Inner_value__@5) -> {<<"sameSite"/utf8>>, encode__cookie_same_site(Inner_value__@5)} end ), chrobot@internal@utils:add_optional( _pipe@6, erlang:element(10, Value__), fun(Inner_value__@6) -> {<<"expires"/utf8>>, encode__time_since_epoch(Inner_value__@6)} end ) end ). -spec decode__cookie_param(gleam@dynamic:dynamic_()) -> {ok, cookie_param()} | {error, list(gleam@dynamic:decode_error())}. decode__cookie_param(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"name"/utf8>>, fun gleam@dynamic:string/1))( Value__ ), fun(Name) -> gleam@result:'try'( (gleam@dynamic:field( <<"value"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Value) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"url"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Url) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"domain"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Domain) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"path"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Path) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"secure"/utf8>>, fun gleam@dynamic:bool/1 ))(Value__), fun(Secure) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"httpOnly"/utf8>>, fun gleam@dynamic:bool/1 ))(Value__), fun(Http_only) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"sameSite"/utf8>>, fun decode__cookie_same_site/1 ))(Value__), fun(Same_site) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"expires"/utf8>>, fun decode__time_since_epoch/1 ))( Value__ ), fun( Expires ) -> {ok, {cookie_param, Name, Value, Url, Domain, Path, Secure, Http_only, Same_site, Expires}} end ) end ) end ) end ) end ) end ) end ) end ) end ). -spec decode__get_cookies_response(gleam@dynamic:dynamic_()) -> {ok, get_cookies_response()} | {error, list(gleam@dynamic:decode_error())}. decode__get_cookies_response(Value__) -> gleam@result:'try'( (gleam@dynamic:field( <<"cookies"/utf8>>, gleam@dynamic:list(fun decode__cookie/1) ))(Value__), fun(Cookies) -> {ok, {get_cookies_response, Cookies}} end ). -spec decode__get_response_body_response(gleam@dynamic:dynamic_()) -> {ok, get_response_body_response()} | {error, list(gleam@dynamic:decode_error())}. decode__get_response_body_response(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"body"/utf8>>, fun gleam@dynamic:string/1))( Value__ ), fun(Body) -> gleam@result:'try'( (gleam@dynamic:field( <<"base64Encoded"/utf8>>, fun gleam@dynamic:bool/1 ))(Value__), fun(Base64_encoded) -> {ok, {get_response_body_response, Body, Base64_encoded}} end ) end ). -spec decode__get_request_post_data_response(gleam@dynamic:dynamic_()) -> {ok, get_request_post_data_response()} | {error, list(gleam@dynamic:decode_error())}. decode__get_request_post_data_response(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"postData"/utf8>>, fun gleam@dynamic:string/1))( Value__ ), fun(Post_data) -> {ok, {get_request_post_data_response, Post_data}} end ). -spec clear_browser_cache(fun((binary(), gleam@option:option(any())) -> VFL)) -> VFL. clear_browser_cache(Callback__) -> Callback__(<<"Network.clearBrowserCache"/utf8>>, none). -spec clear_browser_cookies(fun((binary(), gleam@option:option(any())) -> VFP)) -> VFP. clear_browser_cookies(Callback__) -> Callback__(<<"Network.clearBrowserCookies"/utf8>>, none). -spec delete_cookies( fun((binary(), gleam@option:option(gleam@json:json())) -> VFT), binary(), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()) ) -> VFT. delete_cookies(Callback__, Name, Url, Domain, Path, Partition_key) -> Callback__( <<"Network.deleteCookies"/utf8>>, {some, gleam@json:object( begin _pipe = [{<<"name"/utf8>>, gleam@json:string(Name)}], _pipe@1 = chrobot@internal@utils:add_optional( _pipe, Url, fun(Inner_value__) -> {<<"url"/utf8>>, gleam@json:string(Inner_value__)} end ), _pipe@2 = chrobot@internal@utils:add_optional( _pipe@1, Domain, fun(Inner_value__@1) -> {<<"domain"/utf8>>, gleam@json:string(Inner_value__@1)} end ), _pipe@3 = chrobot@internal@utils:add_optional( _pipe@2, Path, fun(Inner_value__@2) -> {<<"path"/utf8>>, gleam@json:string(Inner_value__@2)} end ), chrobot@internal@utils:add_optional( _pipe@3, Partition_key, fun(Inner_value__@3) -> {<<"partitionKey"/utf8>>, gleam@json:string(Inner_value__@3)} end ) end )} ). -spec disable(fun((binary(), gleam@option:option(any())) -> VGG)) -> VGG. disable(Callback__) -> Callback__(<<"Network.disable"/utf8>>, none). -spec emulate_network_conditions( fun((binary(), gleam@option:option(gleam@json:json())) -> VGK), boolean(), float(), float(), float(), gleam@option:option(connection_type()) ) -> VGK. emulate_network_conditions( Callback__, Offline, Latency, Download_throughput, Upload_throughput, Connection_type ) -> Callback__( <<"Network.emulateNetworkConditions"/utf8>>, {some, gleam@json:object( begin _pipe = [{<<"offline"/utf8>>, gleam@json:bool(Offline)}, {<<"latency"/utf8>>, gleam@json:float(Latency)}, {<<"downloadThroughput"/utf8>>, gleam@json:float(Download_throughput)}, {<<"uploadThroughput"/utf8>>, gleam@json:float(Upload_throughput)}], chrobot@internal@utils:add_optional( _pipe, Connection_type, fun(Inner_value__) -> {<<"connectionType"/utf8>>, encode__connection_type(Inner_value__)} end ) end )} ). -spec enable( fun((binary(), gleam@option:option(gleam@json:json())) -> VGR), gleam@option:option(integer()) ) -> VGR. enable(Callback__, Max_post_data_size) -> Callback__( <<"Network.enable"/utf8>>, {some, gleam@json:object( begin _pipe = [], chrobot@internal@utils:add_optional( _pipe, Max_post_data_size, fun(Inner_value__) -> {<<"maxPostDataSize"/utf8>>, gleam@json:int(Inner_value__)} end ) end )} ). -spec get_cookies( fun((binary(), gleam@option:option(gleam@json:json())) -> {ok, gleam@dynamic:dynamic_()} | {error, chrome:request_error()}), gleam@option:option(list(binary())) ) -> {ok, get_cookies_response()} | {error, chrome:request_error()}. get_cookies(Callback__, Urls) -> gleam@result:'try'( Callback__( <<"Network.getCookies"/utf8>>, {some, gleam@json:object( begin _pipe = [], chrobot@internal@utils:add_optional( _pipe, Urls, fun(Inner_value__) -> {<<"urls"/utf8>>, gleam@json:array( Inner_value__, fun gleam@json:string/1 )} end ) end )} ), fun(Result__) -> _pipe@1 = decode__get_cookies_response(Result__), gleam@result:replace_error(_pipe@1, protocol_error) end ). -spec get_response_body( fun((binary(), gleam@option:option(gleam@json:json())) -> {ok, gleam@dynamic:dynamic_()} | {error, chrome:request_error()}), request_id() ) -> {ok, get_response_body_response()} | {error, chrome:request_error()}. get_response_body(Callback__, Request_id) -> gleam@result:'try'( Callback__( <<"Network.getResponseBody"/utf8>>, {some, gleam@json:object( [{<<"requestId"/utf8>>, encode__request_id(Request_id)}] )} ), fun(Result__) -> _pipe = decode__get_response_body_response(Result__), gleam@result:replace_error(_pipe, protocol_error) end ). -spec get_request_post_data( fun((binary(), gleam@option:option(gleam@json:json())) -> {ok, gleam@dynamic:dynamic_()} | {error, chrome:request_error()}), request_id() ) -> {ok, get_request_post_data_response()} | {error, chrome:request_error()}. get_request_post_data(Callback__, Request_id) -> gleam@result:'try'( Callback__( <<"Network.getRequestPostData"/utf8>>, {some, gleam@json:object( [{<<"requestId"/utf8>>, encode__request_id(Request_id)}] )} ), fun(Result__) -> _pipe = decode__get_request_post_data_response(Result__), gleam@result:replace_error(_pipe, protocol_error) end ). -spec set_bypass_service_worker( fun((binary(), gleam@option:option(gleam@json:json())) -> VIL), boolean() ) -> VIL. set_bypass_service_worker(Callback__, Bypass) -> Callback__( <<"Network.setBypassServiceWorker"/utf8>>, {some, gleam@json:object([{<<"bypass"/utf8>>, gleam@json:bool(Bypass)}])} ). -spec set_cache_disabled( fun((binary(), gleam@option:option(gleam@json:json())) -> VIQ), boolean() ) -> VIQ. set_cache_disabled(Callback__, Cache_disabled) -> Callback__( <<"Network.setCacheDisabled"/utf8>>, {some, gleam@json:object( [{<<"cacheDisabled"/utf8>>, gleam@json:bool(Cache_disabled)}] )} ). -spec set_cookie( fun((binary(), gleam@option:option(gleam@json:json())) -> VIV), binary(), binary(), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(binary()), gleam@option:option(boolean()), gleam@option:option(boolean()), gleam@option:option(cookie_same_site()), gleam@option:option(time_since_epoch()) ) -> VIV. set_cookie( Callback__, Name, Value, Url, Domain, Path, Secure, Http_only, Same_site, Expires ) -> Callback__( <<"Network.setCookie"/utf8>>, {some, gleam@json:object( begin _pipe = [{<<"name"/utf8>>, gleam@json:string(Name)}, {<<"value"/utf8>>, gleam@json:string(Value)}], _pipe@1 = chrobot@internal@utils:add_optional( _pipe, Url, fun(Inner_value__) -> {<<"url"/utf8>>, gleam@json:string(Inner_value__)} end ), _pipe@2 = chrobot@internal@utils:add_optional( _pipe@1, Domain, fun(Inner_value__@1) -> {<<"domain"/utf8>>, gleam@json:string(Inner_value__@1)} end ), _pipe@3 = chrobot@internal@utils:add_optional( _pipe@2, Path, fun(Inner_value__@2) -> {<<"path"/utf8>>, gleam@json:string(Inner_value__@2)} end ), _pipe@4 = chrobot@internal@utils:add_optional( _pipe@3, Secure, fun(Inner_value__@3) -> {<<"secure"/utf8>>, gleam@json:bool(Inner_value__@3)} end ), _pipe@5 = chrobot@internal@utils:add_optional( _pipe@4, Http_only, fun(Inner_value__@4) -> {<<"httpOnly"/utf8>>, gleam@json:bool(Inner_value__@4)} end ), _pipe@6 = chrobot@internal@utils:add_optional( _pipe@5, Same_site, fun(Inner_value__@5) -> {<<"sameSite"/utf8>>, encode__cookie_same_site(Inner_value__@5)} end ), chrobot@internal@utils:add_optional( _pipe@6, Expires, fun(Inner_value__@6) -> {<<"expires"/utf8>>, encode__time_since_epoch(Inner_value__@6)} end ) end )} ). -spec set_cookies( fun((binary(), gleam@option:option(gleam@json:json())) -> VJO), list(cookie_param()) ) -> VJO. set_cookies(Callback__, Cookies) -> Callback__( <<"Network.setCookies"/utf8>>, {some, gleam@json:object( [{<<"cookies"/utf8>>, gleam@json:array(Cookies, fun encode__cookie_param/1)}] )} ). -spec set_extra_http_headers( fun((binary(), gleam@option:option(gleam@json:json())) -> VJU), headers() ) -> VJU. set_extra_http_headers(Callback__, Headers) -> Callback__( <<"Network.setExtraHTTPHeaders"/utf8>>, {some, gleam@json:object([{<<"headers"/utf8>>, encode__headers(Headers)}])} ). -spec set_user_agent_override( fun((binary(), gleam@option:option(gleam@json:json())) -> VJZ), binary(), gleam@option:option(binary()), gleam@option:option(binary()) ) -> VJZ. set_user_agent_override(Callback__, User_agent, Accept_language, Platform) -> Callback__( <<"Network.setUserAgentOverride"/utf8>>, {some, gleam@json:object( begin _pipe = [{<<"userAgent"/utf8>>, gleam@json:string(User_agent)}], _pipe@1 = chrobot@internal@utils:add_optional( _pipe, Accept_language, fun(Inner_value__) -> {<<"acceptLanguage"/utf8>>, gleam@json:string(Inner_value__)} end ), chrobot@internal@utils:add_optional( _pipe@1, Platform, fun(Inner_value__@1) -> {<<"platform"/utf8>>, gleam@json:string(Inner_value__@1)} end ) end )} ).