bidi2pdf 0.1.13 → 0.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.devcontainer/Dockerfile +53 -0
- data/.devcontainer/devcontainer.json +51 -0
- data/.devcontainer/docker-compose.yml +33 -0
- data/.ruby-gemset +1 -1
- data/.ruby-version +1 -1
- data/CHANGELOG.md +93 -6
- data/README.md +80 -5
- data/docker/Dockerfile +1 -1
- data/docker/Dockerfile.slim +2 -2
- data/docker/chrome-driver/chrome.json +874 -0
- data/lib/bidi2pdf/bidi/browser_tab.rb +97 -4
- data/lib/bidi2pdf/bidi/buffered_web_socket_client.rb +178 -0
- data/lib/bidi2pdf/bidi/client.rb +12 -5
- data/lib/bidi2pdf/bidi/commands/base.rb +2 -0
- data/lib/bidi2pdf/bidi/commands/capture_screenshot.rb +33 -0
- data/lib/bidi2pdf/bidi/commands/set_viewport.rb +32 -0
- data/lib/bidi2pdf/bidi/commands.rb +2 -0
- data/lib/bidi2pdf/bidi/network_event.rb +12 -3
- data/lib/bidi2pdf/bidi/network_events.rb +9 -1
- data/lib/bidi2pdf/bidi/session.rb +1 -1
- data/lib/bidi2pdf/chromedriver_manager.rb +10 -6
- data/lib/bidi2pdf/cli.rb +11 -1
- data/lib/bidi2pdf/launcher.rb +5 -3
- data/lib/bidi2pdf/notifications/logging_subscriber.rb +2 -0
- data/lib/bidi2pdf/session_warmer.rb +377 -0
- data/lib/bidi2pdf/test_helpers/images.rb +8 -0
- data/lib/bidi2pdf/test_helpers/pdf_reader_utils.rb +1 -2
- data/lib/bidi2pdf/test_helpers/pdf_text_sanitizer.rb +1 -2
- data/lib/bidi2pdf/test_helpers/testcontainers/chromedriver_container.rb +1 -1
- data/lib/bidi2pdf/test_helpers/testcontainers/chromedriver_test_helper.rb +22 -2
- data/lib/bidi2pdf/test_helpers/testcontainers/container_endpoint.rb +30 -0
- data/lib/bidi2pdf/test_helpers/testcontainers/testcontainers_refinement.rb +33 -0
- data/lib/bidi2pdf/test_helpers/testcontainers.rb +1 -0
- data/lib/bidi2pdf/version.rb +1 -1
- data/lib/bidi2pdf.rb +26 -1
- data/sig/bidi2pdf/bidi/add_headers_interceptor.rbs +16 -9
- data/sig/bidi2pdf/bidi/auth_interceptor.rbs +32 -7
- data/sig/bidi2pdf/bidi/browser.rbs +4 -31
- data/sig/bidi2pdf/bidi/browser_console_logger.rbs +59 -0
- data/sig/bidi2pdf/bidi/browser_tab.rbs +269 -25
- data/sig/bidi2pdf/bidi/buffered_web_socket_client.rbs +81 -0
- data/sig/bidi2pdf/bidi/client.rbs +103 -43
- data/sig/bidi2pdf/bidi/command_manager.rbs +5 -17
- data/sig/bidi2pdf/bidi/commands/add_intercept.rbs +16 -8
- data/sig/bidi2pdf/bidi/commands/base.rbs +49 -9
- data/sig/bidi2pdf/bidi/commands/browser_close.rbs +3 -1
- data/sig/bidi2pdf/bidi/commands/browser_create_user_context.rbs +2 -0
- data/sig/bidi2pdf/bidi/commands/browser_remove_user_context.rbs +19 -0
- data/sig/bidi2pdf/bidi/commands/browsing_context_close.rbs +8 -2
- data/sig/bidi2pdf/bidi/commands/browsing_context_navigate.rbs +12 -6
- data/sig/bidi2pdf/bidi/commands/browsing_context_print.rbs +10 -5
- data/sig/bidi2pdf/bidi/commands/cancel_auth.rbs +8 -2
- data/sig/bidi2pdf/bidi/commands/capture_screenshot.rbs +31 -0
- data/sig/bidi2pdf/bidi/commands/cdp_get_session.rbs +17 -0
- data/sig/bidi2pdf/bidi/commands/create_window.rbs +4 -0
- data/sig/bidi2pdf/bidi/commands/get_user_contexts.rbs +2 -0
- data/sig/bidi2pdf/bidi/commands/network_continue.rbs +4 -0
- data/sig/bidi2pdf/bidi/commands/page_print.rbs +28 -0
- data/sig/bidi2pdf/bidi/commands/print_parameters_validator.rbs +3 -0
- data/sig/bidi2pdf/bidi/commands/provide_credentials.rbs +12 -6
- data/sig/bidi2pdf/bidi/commands/script_evaluate.rbs +4 -0
- data/sig/bidi2pdf/bidi/commands/session_end.rbs +2 -0
- data/sig/bidi2pdf/bidi/commands/session_status.rbs +3 -1
- data/sig/bidi2pdf/bidi/commands/session_subscribe.rbs +4 -0
- data/sig/bidi2pdf/bidi/commands/set_tab_cookie.rbs +51 -23
- data/sig/bidi2pdf/bidi/commands/set_usercontext_cookie.rbs +17 -19
- data/sig/bidi2pdf/bidi/commands/set_viewport.rbs +31 -0
- data/sig/bidi2pdf/bidi/connection_manager.rbs +2 -1
- data/sig/bidi2pdf/bidi/event_manager.rbs +14 -19
- data/sig/bidi2pdf/bidi/interceptor.rbs +5 -0
- data/sig/bidi2pdf/bidi/js_logger_helper.rbs +9 -0
- data/sig/bidi2pdf/bidi/logger_events.rbs +21 -0
- data/sig/bidi2pdf/bidi/navigation_failed_events.rbs +17 -0
- data/sig/bidi2pdf/bidi/network_event.rbs +64 -46
- data/sig/bidi2pdf/bidi/network_event_formatters/network_event_console_formatter.rbs +63 -0
- data/sig/bidi2pdf/bidi/network_event_formatters/network_event_formatter_utils.rbs +15 -0
- data/sig/bidi2pdf/bidi/network_event_formatters/network_event_html_formatter.rbs +18 -0
- data/sig/bidi2pdf/bidi/network_event_formatters.rbs +6 -0
- data/sig/bidi2pdf/bidi/network_events.rbs +14 -39
- data/sig/bidi2pdf/bidi/session.rbs +144 -31
- data/sig/bidi2pdf/bidi/user_context.rbs +64 -45
- data/sig/bidi2pdf/bidi/web_socket_dispatcher.rbs +22 -30
- data/sig/bidi2pdf/chromedriver_manager.rbs +61 -22
- data/sig/bidi2pdf/cli.rbs +22 -2
- data/sig/bidi2pdf/dsl.rbs +34 -0
- data/sig/bidi2pdf/launcher.rbs +39 -1
- data/sig/bidi2pdf/notifications/event.rbs +40 -0
- data/sig/bidi2pdf/notifications/instrumenter.rbs +21 -0
- data/sig/bidi2pdf/notifications/logging_subscriber.rbs +41 -0
- data/sig/bidi2pdf/notifications.rbs +24 -0
- data/sig/bidi2pdf/process_tree.rbs +2 -2
- data/sig/bidi2pdf/session_runner.rbs +41 -1
- data/sig/bidi2pdf/session_warmer.rbs +221 -0
- data/sig/bidi2pdf/test_helpers/configuration.rbs +51 -0
- data/sig/bidi2pdf/test_helpers/images/extractor.rbs +43 -0
- data/sig/bidi2pdf/test_helpers/images/image_similarity_checker.rbs +35 -0
- data/sig/bidi2pdf/test_helpers/images/tiff_helper.rbs +70 -0
- data/sig/bidi2pdf/test_helpers/images.rbs +0 -0
- data/sig/bidi2pdf/test_helpers/matchers/contains_pdf_image.rbs +0 -0
- data/sig/bidi2pdf/test_helpers/matchers/contains_pdf_text.rbs +0 -0
- data/sig/bidi2pdf/test_helpers/matchers/have_pdf_page_count.rbs +0 -0
- data/sig/bidi2pdf/test_helpers/matchers/match_pdf_text.rbs +0 -0
- data/sig/bidi2pdf/test_helpers/pdf_file_helper.rbs +23 -0
- data/sig/bidi2pdf/test_helpers/pdf_reader_utils.rbs +49 -0
- data/sig/bidi2pdf/test_helpers/pdf_text_sanitizer.rbs +38 -0
- data/sig/bidi2pdf/test_helpers/spec_paths_helper.rbs +35 -0
- data/sig/bidi2pdf/test_helpers/testcontainers/chromedriver_container.rbs +43 -0
- data/sig/bidi2pdf/test_helpers/testcontainers/chromedriver_test_helper.rbs +45 -0
- data/sig/bidi2pdf/test_helpers/testcontainers/container_endpoint.rbs +25 -0
- data/sig/bidi2pdf/test_helpers/testcontainers/shared_docker_network.rbs +3 -0
- data/sig/bidi2pdf/test_helpers/testcontainers/testcontainers_refinement.rbs +47 -0
- data/sig/bidi2pdf/test_helpers/testcontainers.rbs +6 -0
- data/sig/bidi2pdf/test_helpers.rbs +0 -0
- data/sig/bidi2pdf/verbose_logger.rbs +37 -0
- data/sig/bidi2pdf/version.rbs +3 -0
- data/sig/bidi2pdf.rbs +130 -2
- data/tasks/generate_rbs.rake +11 -11
- data/tasks/release_credentials_check.rake +97 -0
- metadata +67 -10
- data/sig/bidi2pdf/utils.rbs +0 -5
|
@@ -2,29 +2,57 @@ module Bidi2pdf
|
|
|
2
2
|
module Bidi
|
|
3
3
|
module Commands
|
|
4
4
|
class SetTabCookie
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
5
|
+
self.@time_provider: untyped
|
|
6
|
+
|
|
7
|
+
@name: untyped
|
|
8
|
+
|
|
9
|
+
@value: untyped
|
|
10
|
+
|
|
11
|
+
@domain: untyped
|
|
12
|
+
|
|
13
|
+
@path: untyped
|
|
14
|
+
|
|
15
|
+
@secure: untyped
|
|
16
|
+
|
|
17
|
+
@http_only: untyped
|
|
18
|
+
|
|
19
|
+
@same_site: untyped
|
|
20
|
+
|
|
21
|
+
@ttl: untyped
|
|
22
|
+
|
|
23
|
+
@browsing_context_id: untyped
|
|
24
|
+
|
|
25
|
+
include Base
|
|
26
|
+
|
|
27
|
+
attr_writer self.time_provider: untyped
|
|
28
|
+
|
|
29
|
+
def self.time_provider: () -> untyped
|
|
30
|
+
|
|
31
|
+
attr_reader name: untyped
|
|
32
|
+
|
|
33
|
+
attr_reader value: untyped
|
|
34
|
+
|
|
35
|
+
attr_reader domain: untyped
|
|
36
|
+
|
|
37
|
+
attr_reader path: untyped
|
|
38
|
+
|
|
39
|
+
attr_reader secure: untyped
|
|
40
|
+
|
|
41
|
+
attr_reader http_only: untyped
|
|
42
|
+
|
|
43
|
+
attr_reader same_site: untyped
|
|
44
|
+
|
|
45
|
+
attr_reader ttl: untyped
|
|
46
|
+
|
|
47
|
+
attr_reader browsing_context_id: untyped
|
|
48
|
+
|
|
49
|
+
def initialize: (name: untyped, value: untyped, domain: untyped, browsing_context_id: untyped, ?path: ::String, ?secure: bool, ?http_only: bool, ?same_site: ::String, ?ttl: ::Integer) -> void
|
|
50
|
+
|
|
51
|
+
def expiry: () -> untyped
|
|
52
|
+
|
|
53
|
+
def method_name: () -> "storage.setCookie"
|
|
54
|
+
|
|
55
|
+
def params: () -> untyped
|
|
28
56
|
end
|
|
29
57
|
end
|
|
30
58
|
end
|
|
@@ -2,25 +2,23 @@ module Bidi2pdf
|
|
|
2
2
|
module Bidi
|
|
3
3
|
module Commands
|
|
4
4
|
class SetUsercontextCookie < SetTabCookie
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def expiry: () -> Integer
|
|
5
|
+
@user_context_id: untyped
|
|
6
|
+
|
|
7
|
+
@source_origin: untyped
|
|
8
|
+
|
|
9
|
+
include Base
|
|
10
|
+
|
|
11
|
+
attr_reader user_context_id: untyped
|
|
12
|
+
|
|
13
|
+
attr_reader source_origin: untyped
|
|
14
|
+
|
|
15
|
+
def initialize: (name: untyped, value: untyped, domain: untyped, user_context_id: untyped, source_origin: untyped, ?path: ::String, ?secure: bool, ?http_only: bool, ?same_site: ::String, ?ttl: ::Integer) -> void
|
|
16
|
+
|
|
17
|
+
def expiry: () -> untyped
|
|
18
|
+
|
|
19
|
+
def method_name: () -> "storage.setCookie"
|
|
20
|
+
|
|
21
|
+
def params: () -> untyped
|
|
24
22
|
end
|
|
25
23
|
end
|
|
26
24
|
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
module Bidi2pdf
|
|
2
|
+
module Bidi
|
|
3
|
+
module Commands
|
|
4
|
+
class SetViewport
|
|
5
|
+
@context: untyped
|
|
6
|
+
|
|
7
|
+
@width: untyped
|
|
8
|
+
|
|
9
|
+
@height: untyped
|
|
10
|
+
|
|
11
|
+
@device_pixel_ratio: untyped
|
|
12
|
+
|
|
13
|
+
include Base
|
|
14
|
+
|
|
15
|
+
attr_reader context: untyped
|
|
16
|
+
|
|
17
|
+
attr_reader width: untyped
|
|
18
|
+
|
|
19
|
+
attr_reader height: untyped
|
|
20
|
+
|
|
21
|
+
attr_reader device_pixel_ratio: untyped
|
|
22
|
+
|
|
23
|
+
def initialize: (context: untyped, width: untyped, height: untyped, ?device_pixel_ratio: untyped?) -> void
|
|
24
|
+
|
|
25
|
+
def method_name: () -> "browsingContext.setViewport"
|
|
26
|
+
|
|
27
|
+
def params: () -> untyped
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -5,12 +5,13 @@ module Bidi2pdf
|
|
|
5
5
|
|
|
6
6
|
@connected: untyped
|
|
7
7
|
|
|
8
|
-
@
|
|
8
|
+
@connection_latch: untyped
|
|
9
9
|
|
|
10
10
|
def initialize: (logger: untyped) -> void
|
|
11
11
|
|
|
12
12
|
def mark_connected: () -> (nil | untyped)
|
|
13
13
|
|
|
14
|
+
# rubocop:disable Naming/PredicateMethod
|
|
14
15
|
def wait_until_open: (timeout: untyped) -> true
|
|
15
16
|
end
|
|
16
17
|
end
|
|
@@ -1,35 +1,30 @@
|
|
|
1
1
|
module Bidi2pdf
|
|
2
2
|
module Bidi
|
|
3
3
|
class EventManager
|
|
4
|
-
|
|
5
|
-
attr_reader block: untyped
|
|
6
|
-
attr_reader id: String
|
|
4
|
+
@listeners: untyped
|
|
7
5
|
|
|
8
|
-
|
|
6
|
+
@type: untyped
|
|
9
7
|
|
|
10
|
-
|
|
8
|
+
Listener: untyped
|
|
11
9
|
|
|
12
|
-
|
|
10
|
+
attr_reader type: untyped
|
|
13
11
|
|
|
14
|
-
|
|
12
|
+
def initialize: (untyped type) -> void
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
end
|
|
14
|
+
def on: (*untyped event_names) { (?) -> untyped } -> untyped
|
|
18
15
|
|
|
19
|
-
|
|
20
|
-
@type: untyped
|
|
21
|
-
|
|
22
|
-
attr_reader type: untyped
|
|
16
|
+
def off: (untyped event_name, untyped listener) -> untyped
|
|
23
17
|
|
|
24
|
-
def
|
|
18
|
+
def dispatch: (untyped event_name, *untyped args) -> untyped
|
|
25
19
|
|
|
26
|
-
def
|
|
20
|
+
def clear: (?untyped? event_name) -> untyped
|
|
27
21
|
|
|
28
|
-
|
|
22
|
+
private
|
|
29
23
|
|
|
30
|
-
def
|
|
24
|
+
def log_msg: (untyped prefix, untyped data) -> untyped
|
|
31
25
|
|
|
32
|
-
|
|
26
|
+
# rubocop: disable all
|
|
27
|
+
def truncate_large_values: (untyped org, ?::Integer max_length, ?::Integer max_depth, ?::Integer current_depth) -> ("...(too deep)..." | untyped)
|
|
33
28
|
end
|
|
34
29
|
end
|
|
35
|
-
end
|
|
30
|
+
end
|
|
@@ -3,6 +3,8 @@ module Bidi2pdf
|
|
|
3
3
|
module Interceptor
|
|
4
4
|
@client: untyped
|
|
5
5
|
|
|
6
|
+
@handle_event_listener: untyped
|
|
7
|
+
|
|
6
8
|
def self.included: (untyped base) -> untyped
|
|
7
9
|
|
|
8
10
|
module ClassMethods
|
|
@@ -19,6 +21,9 @@ module Bidi2pdf
|
|
|
19
21
|
|
|
20
22
|
def register_with_client: (client: untyped) -> untyped
|
|
21
23
|
|
|
24
|
+
def unregister_with_client: (client: untyped) -> (nil | untyped)
|
|
25
|
+
|
|
26
|
+
# rubocop: disable Metrics/AbcSize
|
|
22
27
|
def handle_event: (untyped response) -> untyped
|
|
23
28
|
|
|
24
29
|
def interceptor_id: () -> untyped
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Bidi2pdf
|
|
2
|
+
module Bidi
|
|
3
|
+
class LoggerEvents
|
|
4
|
+
@context_id: untyped
|
|
5
|
+
|
|
6
|
+
@browser_console_logger: untyped
|
|
7
|
+
|
|
8
|
+
attr_reader context_id: untyped
|
|
9
|
+
|
|
10
|
+
attr_reader browser_console_logger: untyped
|
|
11
|
+
|
|
12
|
+
def initialize: (untyped context_id) -> void
|
|
13
|
+
|
|
14
|
+
def handle_event: (untyped data) -> untyped
|
|
15
|
+
|
|
16
|
+
def handle_response: (untyped _method, untyped event) -> untyped
|
|
17
|
+
|
|
18
|
+
def resolve_log_level: (untyped js_level) -> untyped
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Bidi2pdf
|
|
2
|
+
module Bidi
|
|
3
|
+
class NavigationFailedEvents
|
|
4
|
+
@context_id: untyped
|
|
5
|
+
|
|
6
|
+
attr_reader context_id: untyped
|
|
7
|
+
|
|
8
|
+
attr_reader browser_console_logger: untyped
|
|
9
|
+
|
|
10
|
+
def initialize: (untyped context_id) -> void
|
|
11
|
+
|
|
12
|
+
def handle_event: (untyped data) -> untyped
|
|
13
|
+
|
|
14
|
+
def handle_response: (untyped _method, untyped event) -> untyped
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -1,51 +1,69 @@
|
|
|
1
1
|
module Bidi2pdf
|
|
2
2
|
module Bidi
|
|
3
3
|
class NetworkEvent
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
@url:
|
|
7
|
-
|
|
8
|
-
@
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
@
|
|
13
|
-
|
|
14
|
-
@
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
@
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
attr_reader
|
|
25
|
-
|
|
26
|
-
attr_reader
|
|
27
|
-
|
|
28
|
-
attr_reader
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
4
|
+
@id: untyped
|
|
5
|
+
|
|
6
|
+
@url: untyped
|
|
7
|
+
|
|
8
|
+
@start_timestamp: untyped
|
|
9
|
+
|
|
10
|
+
@timing: untyped
|
|
11
|
+
|
|
12
|
+
@state: untyped
|
|
13
|
+
|
|
14
|
+
@http_status_code: untyped
|
|
15
|
+
|
|
16
|
+
@http_method: untyped
|
|
17
|
+
|
|
18
|
+
@navigation: untyped
|
|
19
|
+
|
|
20
|
+
@end_timestamp: untyped
|
|
21
|
+
|
|
22
|
+
@bytes_received: untyped
|
|
23
|
+
|
|
24
|
+
attr_reader id: untyped
|
|
25
|
+
|
|
26
|
+
attr_reader url: untyped
|
|
27
|
+
|
|
28
|
+
attr_reader state: untyped
|
|
29
|
+
|
|
30
|
+
attr_reader start_timestamp: untyped
|
|
31
|
+
|
|
32
|
+
attr_reader end_timestamp: untyped
|
|
33
|
+
|
|
34
|
+
attr_reader timing: untyped
|
|
35
|
+
|
|
36
|
+
attr_reader http_status_code: untyped
|
|
37
|
+
|
|
38
|
+
attr_reader http_method: untyped
|
|
39
|
+
|
|
40
|
+
attr_reader bytes_received: untyped
|
|
41
|
+
|
|
42
|
+
attr_reader navigation: untyped
|
|
43
|
+
|
|
44
|
+
STATE_MAP: { "network.responseStarted" => "started", "network.responseCompleted" => "completed", "network.fetchError" => "error" }
|
|
45
|
+
|
|
46
|
+
# @param [String, nil] navigation The BiDi navigation ID this request belongs to - present on
|
|
47
|
+
# the main-frame document request, letting a caller correlate a specific
|
|
48
|
+
# browsingContext.navigate call to the network event carrying its actual HTTP status. A
|
|
49
|
+
# sub-resource request (an image, a script, ...) has no real BiDi navigation ID and stays
|
|
50
|
+
# nil here - #id already distinguishes one event from another in logs, so this field is
|
|
51
|
+
# left alone rather than filled with a value the protocol never sent.
|
|
52
|
+
def initialize: (id: untyped, url: untyped, timestamp: untyped, timing: untyped, state: untyped, ?http_status_code: untyped?, ?http_method: untyped?, ?navigation: untyped?) -> void
|
|
53
|
+
|
|
54
|
+
def update_state: (untyped new_state, ?timestamp: untyped?, ?timing: untyped?, ?http_status_code: untyped?, ?bytes_received: untyped?) -> untyped
|
|
55
|
+
|
|
56
|
+
def map_state: (untyped state) -> untyped
|
|
57
|
+
|
|
58
|
+
def format_timestamp: (untyped timestamp) -> ("N/A" | untyped)
|
|
59
|
+
|
|
60
|
+
def duration_seconds: () -> (nil | untyped)
|
|
61
|
+
|
|
62
|
+
def in_progress?: () -> untyped
|
|
63
|
+
|
|
64
|
+
def to_s: () -> ::String
|
|
65
|
+
|
|
66
|
+
def dup: () -> untyped
|
|
49
67
|
end
|
|
50
68
|
end
|
|
51
|
-
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
module Bidi2pdf
|
|
2
|
+
module Bidi
|
|
3
|
+
module NetworkEventFormatters
|
|
4
|
+
# rubocop: disable Metrics/AbcSize
|
|
5
|
+
class NetworkEventConsoleFormatter
|
|
6
|
+
@color_enabled: untyped
|
|
7
|
+
|
|
8
|
+
@logger: untyped
|
|
9
|
+
|
|
10
|
+
include NetworkEventFormatterUtils
|
|
11
|
+
|
|
12
|
+
attr_reader color_enabled: untyped
|
|
13
|
+
|
|
14
|
+
attr_reader logger: untyped
|
|
15
|
+
|
|
16
|
+
# ANSI styles
|
|
17
|
+
RESET: "\e[0m"
|
|
18
|
+
|
|
19
|
+
BOLD: "\e[1m"
|
|
20
|
+
|
|
21
|
+
DIM: "\e[2m"
|
|
22
|
+
|
|
23
|
+
RED: "\e[31m"
|
|
24
|
+
|
|
25
|
+
GREEN: "\e[32m"
|
|
26
|
+
|
|
27
|
+
YELLOW: "\e[33m"
|
|
28
|
+
|
|
29
|
+
CYAN: "\e[36m"
|
|
30
|
+
|
|
31
|
+
GRAY: "\e[90m"
|
|
32
|
+
|
|
33
|
+
def initialize: (?color: bool, ?logger: untyped) -> void
|
|
34
|
+
|
|
35
|
+
def log: (untyped events) -> untyped
|
|
36
|
+
|
|
37
|
+
def pretty_log: (untyped event) -> untyped
|
|
38
|
+
|
|
39
|
+
private
|
|
40
|
+
|
|
41
|
+
def format_timing: (untyped event) -> ("" | untyped)
|
|
42
|
+
|
|
43
|
+
def color_for_status: (untyped code) -> untyped
|
|
44
|
+
|
|
45
|
+
def bold: (untyped str) -> (::String | untyped)
|
|
46
|
+
|
|
47
|
+
def dim: (untyped str) -> (::String | untyped)
|
|
48
|
+
|
|
49
|
+
def green: (?::String str) -> (::String | untyped)
|
|
50
|
+
|
|
51
|
+
def yellow: (?::String str) -> (::String | untyped)
|
|
52
|
+
|
|
53
|
+
def red: (?::String str) -> (::String | untyped)
|
|
54
|
+
|
|
55
|
+
def cyan: (?::String str) -> (::String | untyped)
|
|
56
|
+
|
|
57
|
+
def gray: (?::String str) -> (::String | untyped)
|
|
58
|
+
|
|
59
|
+
def reset: () -> (untyped | "")
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
|
63
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module Bidi2pdf
|
|
2
|
+
module Bidi
|
|
3
|
+
module NetworkEventFormatters
|
|
4
|
+
module NetworkEventFormatterUtils
|
|
5
|
+
def format_bytes: (untyped size) -> ("N/A" | untyped)
|
|
6
|
+
|
|
7
|
+
def parse_timing: (untyped event) -> (::Array[untyped] | untyped)
|
|
8
|
+
|
|
9
|
+
def format_timestamp: (untyped timestamp) -> ("N/A" | untyped)
|
|
10
|
+
|
|
11
|
+
def shorten_url: (untyped url) -> (untyped | "data:text/html,...")
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Bidi2pdf
|
|
2
|
+
module Bidi
|
|
3
|
+
module NetworkEventFormatters
|
|
4
|
+
class NetworkEventHtmlFormatter
|
|
5
|
+
include NetworkEventFormatterUtils
|
|
6
|
+
|
|
7
|
+
def render: (untyped events) -> (nil | ::String)
|
|
8
|
+
|
|
9
|
+
def toc_entry: (untyped event, untyped index) -> ::String
|
|
10
|
+
|
|
11
|
+
# rubocop: disable Metrics/AbcSize
|
|
12
|
+
def render_event: (untyped event, untyped index) -> ::String
|
|
13
|
+
|
|
14
|
+
def render_timing_bars: (untyped timing) -> ("" | ::String)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -1,55 +1,30 @@
|
|
|
1
1
|
module Bidi2pdf
|
|
2
2
|
module Bidi
|
|
3
3
|
class NetworkEvents
|
|
4
|
-
|
|
4
|
+
@context_id: untyped
|
|
5
5
|
|
|
6
|
-
@events:
|
|
7
|
-
@browser: Bidi2pdf::Bidi::Browser?
|
|
8
|
-
@event_manager: Bidi2pdf::Bidi::EventManager?
|
|
9
|
-
@recording: bool
|
|
10
|
-
@filters: Array[Proc]
|
|
6
|
+
@events: untyped
|
|
11
7
|
|
|
12
|
-
|
|
13
|
-
attr_reader recording: bool
|
|
8
|
+
@network_event_formatter: untyped
|
|
14
9
|
|
|
15
|
-
|
|
10
|
+
attr_reader context_id: untyped
|
|
16
11
|
|
|
17
|
-
|
|
12
|
+
attr_reader events: untyped
|
|
18
13
|
|
|
19
|
-
|
|
14
|
+
attr_reader network_event_formatter: untyped
|
|
20
15
|
|
|
21
|
-
def
|
|
16
|
+
def initialize: (untyped context_id) -> void
|
|
22
17
|
|
|
23
|
-
def
|
|
18
|
+
def handle_event: (untyped data) -> untyped
|
|
24
19
|
|
|
25
|
-
|
|
20
|
+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
|
21
|
+
def handle_response: (untyped method, untyped event) -> (nil | untyped)
|
|
26
22
|
|
|
27
|
-
def
|
|
23
|
+
def all_events: () -> untyped
|
|
28
24
|
|
|
29
|
-
def
|
|
25
|
+
def log_network_traffic: (?format: ::Symbol) -> untyped
|
|
30
26
|
|
|
31
|
-
def
|
|
32
|
-
| () -> Enumerator[NetworkEvent, self]
|
|
33
|
-
|
|
34
|
-
def find_by_url: (String url_pattern) -> Array[NetworkEvent]
|
|
35
|
-
|
|
36
|
-
def find_by_method: (String method) -> Array[NetworkEvent]
|
|
37
|
-
|
|
38
|
-
def completed_requests: () -> Array[NetworkEvent]
|
|
39
|
-
|
|
40
|
-
def pending_requests: () -> Array[NetworkEvent]
|
|
41
|
-
|
|
42
|
-
def to_a: () -> Array[NetworkEvent]
|
|
43
|
-
|
|
44
|
-
private
|
|
45
|
-
|
|
46
|
-
def setup_event_listeners: () -> void
|
|
47
|
-
|
|
48
|
-
def handle_request_event: (Hash[String, untyped] params) -> void
|
|
49
|
-
|
|
50
|
-
def handle_response_event: (Hash[String, untyped] params) -> void
|
|
51
|
-
|
|
52
|
-
def handle_loading_finished_event: (Hash[String, untyped] params) -> void
|
|
27
|
+
def wait_until_network_idle: (?timeout: ::Integer, ?poll_interval: ::Float) -> untyped
|
|
53
28
|
end
|
|
54
29
|
end
|
|
55
|
-
end
|
|
30
|
+
end
|