-module(chrobot@protocol@log). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([encode__log_entry_source/1, decode__log_entry_source/1, encode__log_entry_level/1, decode__log_entry_level/1, encode__log_entry_category/1, decode__log_entry_category/1, encode__log_entry/1, decode__log_entry/1, encode__violation_setting_name/1, decode__violation_setting_name/1, encode__violation_setting/1, decode__violation_setting/1, clear/1, disable/1, enable/1, start_violations_report/2, stop_violations_report/1]). -export_type([log_entry/0, log_entry_source/0, log_entry_level/0, log_entry_category/0, violation_setting/0, violation_setting_name/0]). -type log_entry() :: {log_entry, log_entry_source(), log_entry_level(), binary(), gleam@option:option(log_entry_category()), chrobot@protocol@runtime:timestamp(), gleam@option:option(binary()), gleam@option:option(integer()), gleam@option:option(chrobot@protocol@runtime:stack_trace()), gleam@option:option(chrobot@protocol@network:request_id()), gleam@option:option(binary()), gleam@option:option(list(chrobot@protocol@runtime:remote_object()))}. -type log_entry_source() :: log_entry_source_xml | log_entry_source_javascript | log_entry_source_network | log_entry_source_storage | log_entry_source_appcache | log_entry_source_rendering | log_entry_source_security | log_entry_source_deprecation | log_entry_source_worker | log_entry_source_violation | log_entry_source_intervention | log_entry_source_recommendation | log_entry_source_other. -type log_entry_level() :: log_entry_level_verbose | log_entry_level_info | log_entry_level_warning | log_entry_level_error. -type log_entry_category() :: log_entry_category_cors. -type violation_setting() :: {violation_setting, violation_setting_name(), float()}. -type violation_setting_name() :: violation_setting_name_long_task | violation_setting_name_long_layout | violation_setting_name_blocked_event | violation_setting_name_blocked_parser | violation_setting_name_discouraged_api_use | violation_setting_name_handler | violation_setting_name_recurring_handler. -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 67). -spec encode__log_entry_source(log_entry_source()) -> gleam@json:json(). encode__log_entry_source(Value__) -> _pipe = case Value__ of log_entry_source_xml -> <<"xml"/utf8>>; log_entry_source_javascript -> <<"javascript"/utf8>>; log_entry_source_network -> <<"network"/utf8>>; log_entry_source_storage -> <<"storage"/utf8>>; log_entry_source_appcache -> <<"appcache"/utf8>>; log_entry_source_rendering -> <<"rendering"/utf8>>; log_entry_source_security -> <<"security"/utf8>>; log_entry_source_deprecation -> <<"deprecation"/utf8>>; log_entry_source_worker -> <<"worker"/utf8>>; log_entry_source_violation -> <<"violation"/utf8>>; log_entry_source_intervention -> <<"intervention"/utf8>>; log_entry_source_recommendation -> <<"recommendation"/utf8>>; log_entry_source_other -> <<"other"/utf8>> end, gleam@json:string(_pipe). -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 87). -spec decode__log_entry_source(gleam@dynamic:dynamic_()) -> {ok, log_entry_source()} | {error, list(gleam@dynamic:decode_error())}. decode__log_entry_source(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"xml"/utf8>>} -> {ok, log_entry_source_xml}; {ok, <<"javascript"/utf8>>} -> {ok, log_entry_source_javascript}; {ok, <<"network"/utf8>>} -> {ok, log_entry_source_network}; {ok, <<"storage"/utf8>>} -> {ok, log_entry_source_storage}; {ok, <<"appcache"/utf8>>} -> {ok, log_entry_source_appcache}; {ok, <<"rendering"/utf8>>} -> {ok, log_entry_source_rendering}; {ok, <<"security"/utf8>>} -> {ok, log_entry_source_security}; {ok, <<"deprecation"/utf8>>} -> {ok, log_entry_source_deprecation}; {ok, <<"worker"/utf8>>} -> {ok, log_entry_source_worker}; {ok, <<"violation"/utf8>>} -> {ok, log_entry_source_violation}; {ok, <<"intervention"/utf8>>} -> {ok, log_entry_source_intervention}; {ok, <<"recommendation"/utf8>>} -> {ok, log_entry_source_recommendation}; {ok, <<"other"/utf8>>} -> {ok, log_entry_source_other}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 124). -spec encode__log_entry_level(log_entry_level()) -> gleam@json:json(). encode__log_entry_level(Value__) -> _pipe = case Value__ of log_entry_level_verbose -> <<"verbose"/utf8>>; log_entry_level_info -> <<"info"/utf8>>; log_entry_level_warning -> <<"warning"/utf8>>; log_entry_level_error -> <<"error"/utf8>> end, gleam@json:string(_pipe). -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 135). -spec decode__log_entry_level(gleam@dynamic:dynamic_()) -> {ok, log_entry_level()} | {error, list(gleam@dynamic:decode_error())}. decode__log_entry_level(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"verbose"/utf8>>} -> {ok, log_entry_level_verbose}; {ok, <<"info"/utf8>>} -> {ok, log_entry_level_info}; {ok, <<"warning"/utf8>>} -> {ok, log_entry_level_warning}; {ok, <<"error"/utf8>>} -> {ok, log_entry_level_error}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 160). -spec encode__log_entry_category(log_entry_category()) -> gleam@json:json(). encode__log_entry_category(Value__) -> _pipe = case Value__ of log_entry_category_cors -> <<"cors"/utf8>> end, gleam@json:string(_pipe). -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 168). -spec decode__log_entry_category(gleam@dynamic:dynamic_()) -> {ok, log_entry_category()} | {error, list(gleam@dynamic:decode_error())}. decode__log_entry_category(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"cors"/utf8>>} -> {ok, log_entry_category_cors}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 184). -spec encode__log_entry(log_entry()) -> gleam@json:json(). encode__log_entry(Value__) -> gleam@json:object( begin _pipe = [{<<"source"/utf8>>, encode__log_entry_source(erlang:element(2, Value__))}, {<<"level"/utf8>>, encode__log_entry_level(erlang:element(3, Value__))}, {<<"text"/utf8>>, gleam@json:string(erlang:element(4, Value__))}, {<<"timestamp"/utf8>>, chrobot@protocol@runtime:encode__timestamp( erlang:element(6, Value__) )}], _pipe@1 = chrobot@internal@utils:add_optional( _pipe, erlang:element(5, Value__), fun(Inner_value__) -> {<<"category"/utf8>>, encode__log_entry_category(Inner_value__)} end ), _pipe@2 = chrobot@internal@utils:add_optional( _pipe@1, erlang:element(7, 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(8, Value__), fun(Inner_value__@2) -> {<<"lineNumber"/utf8>>, gleam@json:int(Inner_value__@2)} end ), _pipe@4 = chrobot@internal@utils:add_optional( _pipe@3, erlang:element(9, Value__), fun(Inner_value__@3) -> {<<"stackTrace"/utf8>>, chrobot@protocol@runtime:encode__stack_trace( Inner_value__@3 )} end ), _pipe@5 = chrobot@internal@utils:add_optional( _pipe@4, erlang:element(10, Value__), fun(Inner_value__@4) -> {<<"networkRequestId"/utf8>>, chrobot@protocol@network:encode__request_id( Inner_value__@4 )} end ), _pipe@6 = chrobot@internal@utils:add_optional( _pipe@5, erlang:element(11, Value__), fun(Inner_value__@5) -> {<<"workerId"/utf8>>, gleam@json:string(Inner_value__@5)} end ), chrobot@internal@utils:add_optional( _pipe@6, erlang:element(12, Value__), fun(Inner_value__@6) -> {<<"args"/utf8>>, gleam@json:array( Inner_value__@6, fun chrobot@protocol@runtime:encode__remote_object/1 )} end ) end ). -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 217). -spec decode__log_entry(gleam@dynamic:dynamic_()) -> {ok, log_entry()} | {error, list(gleam@dynamic:decode_error())}. decode__log_entry(Value__) -> gleam@result:'try'( (gleam@dynamic:field(<<"source"/utf8>>, fun decode__log_entry_source/1))( Value__ ), fun(Source) -> gleam@result:'try'( (gleam@dynamic:field( <<"level"/utf8>>, fun decode__log_entry_level/1 ))(Value__), fun(Level) -> gleam@result:'try'( (gleam@dynamic:field( <<"text"/utf8>>, fun gleam@dynamic:string/1 ))(Value__), fun(Text) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"category"/utf8>>, fun decode__log_entry_category/1 ))(Value__), fun(Category) -> gleam@result:'try'( (gleam@dynamic:field( <<"timestamp"/utf8>>, fun chrobot@protocol@runtime:decode__timestamp/1 ))(Value__), fun(Timestamp) -> 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:int/1 ))(Value__), fun(Line_number) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"stackTrace"/utf8>>, fun chrobot@protocol@runtime:decode__stack_trace/1 ))(Value__), fun(Stack_trace) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"networkRequestId"/utf8>>, fun chrobot@protocol@network:decode__request_id/1 ))( Value__ ), fun( Network_request_id ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"workerId"/utf8>>, fun gleam@dynamic:string/1 ))( Value__ ), fun( Worker_id ) -> gleam@result:'try'( (gleam@dynamic:optional_field( <<"args"/utf8>>, gleam@dynamic:list( fun chrobot@protocol@runtime:decode__remote_object/1 ) ))( Value__ ), fun( Args ) -> {ok, {log_entry, Source, Level, Text, Category, Timestamp, Url, Line_number, Stack_trace, Network_request_id, Worker_id, Args}} end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ). -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 292). -spec encode__violation_setting_name(violation_setting_name()) -> gleam@json:json(). encode__violation_setting_name(Value__) -> _pipe = case Value__ of violation_setting_name_long_task -> <<"longTask"/utf8>>; violation_setting_name_long_layout -> <<"longLayout"/utf8>>; violation_setting_name_blocked_event -> <<"blockedEvent"/utf8>>; violation_setting_name_blocked_parser -> <<"blockedParser"/utf8>>; violation_setting_name_discouraged_api_use -> <<"discouragedAPIUse"/utf8>>; violation_setting_name_handler -> <<"handler"/utf8>>; violation_setting_name_recurring_handler -> <<"recurringHandler"/utf8>> end, gleam@json:string(_pipe). -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 306). -spec decode__violation_setting_name(gleam@dynamic:dynamic_()) -> {ok, violation_setting_name()} | {error, list(gleam@dynamic:decode_error())}. decode__violation_setting_name(Value__) -> case gleam@dynamic:string(Value__) of {ok, <<"longTask"/utf8>>} -> {ok, violation_setting_name_long_task}; {ok, <<"longLayout"/utf8>>} -> {ok, violation_setting_name_long_layout}; {ok, <<"blockedEvent"/utf8>>} -> {ok, violation_setting_name_blocked_event}; {ok, <<"blockedParser"/utf8>>} -> {ok, violation_setting_name_blocked_parser}; {ok, <<"discouragedAPIUse"/utf8>>} -> {ok, violation_setting_name_discouraged_api_use}; {ok, <<"handler"/utf8>>} -> {ok, violation_setting_name_handler}; {ok, <<"recurringHandler"/utf8>>} -> {ok, violation_setting_name_recurring_handler}; {error, Error} -> {error, Error}; {ok, Other} -> {error, [{decode_error, <<"valid enum property"/utf8>>, Other, [<<"enum decoder"/utf8>>]}]} end. -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 328). -spec encode__violation_setting(violation_setting()) -> gleam@json:json(). encode__violation_setting(Value__) -> gleam@json:object( [{<<"name"/utf8>>, encode__violation_setting_name(erlang:element(2, Value__))}, {<<"threshold"/utf8>>, gleam@json:float(erlang:element(3, Value__))}] ). -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 336). -spec decode__violation_setting(gleam@dynamic:dynamic_()) -> {ok, violation_setting()} | {error, list(gleam@dynamic:decode_error())}. decode__violation_setting(Value__) -> gleam@result:'try'( (gleam@dynamic:field( <<"name"/utf8>>, fun decode__violation_setting_name/1 ))(Value__), fun(Name) -> gleam@result:'try'( (gleam@dynamic:field( <<"threshold"/utf8>>, fun gleam@dynamic:float/1 ))(Value__), fun(Threshold) -> {ok, {violation_setting, Name, Threshold}} end ) end ). -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 347). -spec clear(fun((binary(), gleam@option:option(any())) -> APFC)) -> APFC. clear(Callback__) -> Callback__(<<"Log.clear"/utf8>>, none). -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 353). -spec disable(fun((binary(), gleam@option:option(any())) -> APFG)) -> APFG. disable(Callback__) -> Callback__(<<"Log.disable"/utf8>>, none). -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 360). -spec enable(fun((binary(), gleam@option:option(any())) -> APFK)) -> APFK. enable(Callback__) -> Callback__(<<"Log.enable"/utf8>>, none). -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 371). -spec start_violations_report( fun((binary(), gleam@option:option(gleam@json:json())) -> APFO), list(violation_setting()) ) -> APFO. start_violations_report(Callback__, Config) -> Callback__( <<"Log.startViolationsReport"/utf8>>, {some, gleam@json:object( [{<<"config"/utf8>>, gleam@json:array( Config, fun encode__violation_setting/1 )}] )} ). -file("/Users/jonas/Projects/chrobot/src/chrobot/protocol/log.gleam", 387). -spec stop_violations_report( fun((binary(), gleam@option:option(any())) -> APFU) ) -> APFU. stop_violations_report(Callback__) -> Callback__(<<"Log.stopViolationsReport"/utf8>>, none).