puppeteer-ruby 0.45.6 → 0.50.0.alpha6
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/.rubocop.yml +1 -3
- data/AGENTS.md +170 -0
- data/CLAUDE/README.md +41 -0
- data/CLAUDE/architecture.md +253 -0
- data/CLAUDE/cdp_protocol.md +230 -0
- data/CLAUDE/concurrency.md +216 -0
- data/CLAUDE/porting_puppeteer.md +605 -0
- data/CLAUDE/rbs_type_checking.md +101 -0
- data/CLAUDE/spec_migration_plans.md +1039 -0
- data/CLAUDE/testing.md +278 -0
- data/CLAUDE.md +242 -0
- data/README.md +9 -0
- data/Rakefile +7 -0
- data/Steepfile +28 -0
- data/docs/api_coverage.md +106 -57
- data/lib/puppeteer/aria_query_handler.rb +3 -2
- data/lib/puppeteer/async_utils.rb +214 -0
- data/lib/puppeteer/browser.rb +98 -56
- data/lib/puppeteer/browser_connector.rb +18 -3
- data/lib/puppeteer/browser_context.rb +196 -3
- data/lib/puppeteer/browser_runner.rb +18 -10
- data/lib/puppeteer/cdp_session.rb +67 -23
- data/lib/puppeteer/chrome_target_manager.rb +65 -40
- data/lib/puppeteer/connection.rb +55 -36
- data/lib/puppeteer/console_message.rb +9 -1
- data/lib/puppeteer/console_patch.rb +47 -0
- data/lib/puppeteer/css_coverage.rb +5 -3
- data/lib/puppeteer/custom_query_handler.rb +80 -33
- data/lib/puppeteer/define_async_method.rb +31 -37
- data/lib/puppeteer/dialog.rb +47 -14
- data/lib/puppeteer/element_handle.rb +236 -62
- data/lib/puppeteer/emulation_manager.rb +1 -1
- data/lib/puppeteer/env.rb +1 -1
- data/lib/puppeteer/errors.rb +25 -2
- data/lib/puppeteer/event_callbackable.rb +15 -0
- data/lib/puppeteer/events.rb +4 -0
- data/lib/puppeteer/execution_context.rb +148 -3
- data/lib/puppeteer/file_chooser.rb +6 -0
- data/lib/puppeteer/frame.rb +177 -91
- data/lib/puppeteer/frame_manager.rb +69 -48
- data/lib/puppeteer/http_request.rb +114 -38
- data/lib/puppeteer/http_response.rb +24 -7
- data/lib/puppeteer/isolated_world.rb +64 -41
- data/lib/puppeteer/js_coverage.rb +5 -3
- data/lib/puppeteer/js_handle.rb +77 -16
- data/lib/puppeteer/keyboard.rb +30 -17
- data/lib/puppeteer/launcher/browser_options.rb +3 -1
- data/lib/puppeteer/launcher/chrome.rb +8 -5
- data/lib/puppeteer/launcher/launch_options.rb +7 -2
- data/lib/puppeteer/launcher.rb +4 -8
- data/lib/puppeteer/lifecycle_watcher.rb +38 -22
- data/lib/puppeteer/locators.rb +733 -0
- data/lib/puppeteer/mouse.rb +273 -64
- data/lib/puppeteer/network_event_manager.rb +7 -0
- data/lib/puppeteer/network_manager.rb +393 -112
- data/lib/puppeteer/p_query_handler.rb +367 -0
- data/lib/puppeteer/p_selector_parser.rb +241 -0
- data/lib/puppeteer/page/screenshot_task_queue.rb +14 -4
- data/lib/puppeteer/page.rb +583 -226
- data/lib/puppeteer/puppeteer.rb +171 -64
- data/lib/puppeteer/query_handler_manager.rb +66 -16
- data/lib/puppeteer/reactor_runner.rb +247 -0
- data/lib/puppeteer/remote_object.rb +127 -47
- data/lib/puppeteer/target.rb +74 -27
- data/lib/puppeteer/task_manager.rb +3 -1
- data/lib/puppeteer/timeout_helper.rb +6 -10
- data/lib/puppeteer/touch_handle.rb +39 -0
- data/lib/puppeteer/touch_screen.rb +72 -22
- data/lib/puppeteer/tracing.rb +3 -3
- data/lib/puppeteer/version.rb +1 -1
- data/lib/puppeteer/wait_task.rb +264 -101
- data/lib/puppeteer/web_socket.rb +2 -2
- data/lib/puppeteer/web_socket_transport.rb +91 -27
- data/lib/puppeteer/web_worker.rb +175 -0
- data/lib/puppeteer.rb +23 -4
- data/puppeteer-ruby.gemspec +15 -11
- data/sig/_external.rbs +8 -0
- data/sig/_supplementary.rbs +314 -0
- data/sig/puppeteer/browser.rbs +166 -0
- data/sig/puppeteer/cdp_session.rbs +64 -0
- data/sig/puppeteer/dialog.rbs +41 -0
- data/sig/puppeteer/element_handle.rbs +308 -0
- data/sig/puppeteer/execution_context.rbs +87 -0
- data/sig/puppeteer/frame.rbs +233 -0
- data/sig/puppeteer/http_request.rbs +214 -0
- data/sig/puppeteer/http_response.rbs +89 -0
- data/sig/puppeteer/js_handle.rbs +64 -0
- data/sig/puppeteer/keyboard.rbs +40 -0
- data/sig/puppeteer/locators.rbs +222 -0
- data/sig/puppeteer/mouse.rbs +113 -0
- data/sig/puppeteer/p_query_handler.rbs +73 -0
- data/sig/puppeteer/p_selector_parser.rbs +31 -0
- data/sig/puppeteer/page.rbs +522 -0
- data/sig/puppeteer/puppeteer.rbs +98 -0
- data/sig/puppeteer/remote_object.rbs +78 -0
- data/sig/puppeteer/touch_handle.rbs +21 -0
- data/sig/puppeteer/touch_screen.rbs +35 -0
- data/sig/puppeteer/web_worker.rbs +83 -0
- metadata +122 -45
- data/CHANGELOG.md +0 -397
- data/lib/puppeteer/concurrent_ruby_utils.rb +0 -81
- data/lib/puppeteer/firefox_target_manager.rb +0 -157
- data/lib/puppeteer/launcher/firefox.rb +0 -453
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Generated from lib/puppeteer/mouse.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
class Puppeteer::Mouse
|
|
4
|
+
module Button
|
|
5
|
+
NONE: ::String
|
|
6
|
+
|
|
7
|
+
LEFT: ::String
|
|
8
|
+
|
|
9
|
+
RIGHT: ::String
|
|
10
|
+
|
|
11
|
+
MIDDLE: ::String
|
|
12
|
+
|
|
13
|
+
BACK: ::String
|
|
14
|
+
|
|
15
|
+
FORWARD: ::String
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
module ButtonFlag
|
|
19
|
+
NONE: ::Integer
|
|
20
|
+
|
|
21
|
+
LEFT: ::Integer
|
|
22
|
+
|
|
23
|
+
RIGHT: untyped
|
|
24
|
+
|
|
25
|
+
MIDDLE: untyped
|
|
26
|
+
|
|
27
|
+
BACK: untyped
|
|
28
|
+
|
|
29
|
+
FORWARD: untyped
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# @rbs client: Puppeteer::CDPSession -- CDP session
|
|
33
|
+
# @rbs keyboard: Puppeteer::Keyboard -- Keyboard instance
|
|
34
|
+
# @rbs return: void -- No return value
|
|
35
|
+
def initialize: (Puppeteer::CDPSession client, Puppeteer::Keyboard keyboard) -> void
|
|
36
|
+
|
|
37
|
+
# @rbs return: void -- No return value
|
|
38
|
+
def reset: () -> void
|
|
39
|
+
|
|
40
|
+
# @rbs x: Numeric -- X coordinate
|
|
41
|
+
# @rbs y: Numeric -- Y coordinate
|
|
42
|
+
# @rbs steps: Integer? -- Number of intermediate steps
|
|
43
|
+
# @rbs return: void -- No return value
|
|
44
|
+
def move: (Numeric x, Numeric y, ?steps: Integer?) -> void
|
|
45
|
+
|
|
46
|
+
# @rbs x: Numeric -- X coordinate
|
|
47
|
+
# @rbs y: Numeric -- Y coordinate
|
|
48
|
+
# @rbs delay: Numeric? -- Delay between down and up (ms)
|
|
49
|
+
# @rbs button: String? -- Mouse button
|
|
50
|
+
# @rbs click_count: Integer? -- Deprecated: use count (click_count only sets clickCount)
|
|
51
|
+
# @rbs count: Integer? -- Number of click repetitions
|
|
52
|
+
# @rbs return: void -- No return value
|
|
53
|
+
def click: (Numeric x, Numeric y, ?delay: Numeric?, ?button: String?, ?click_count: Integer?, ?count: Integer?) -> void
|
|
54
|
+
|
|
55
|
+
private def warn_deprecated_click_count: () -> untyped
|
|
56
|
+
|
|
57
|
+
attr_accessor deprecated_click_count_warned: untyped
|
|
58
|
+
|
|
59
|
+
# @rbs button: String? -- Mouse button
|
|
60
|
+
# @rbs click_count: Integer? -- Click count to report
|
|
61
|
+
# @rbs return: void -- No return value
|
|
62
|
+
def down: (?button: String?, ?click_count: Integer?) -> void
|
|
63
|
+
|
|
64
|
+
# @rbs button: String? -- Mouse button
|
|
65
|
+
# @rbs click_count: Integer? -- Click count to report
|
|
66
|
+
# @rbs return: void -- No return value
|
|
67
|
+
def up: (?button: String?, ?click_count: Integer?) -> void
|
|
68
|
+
|
|
69
|
+
# Dispatches a `mousewheel` event.
|
|
70
|
+
#
|
|
71
|
+
# @rbs delta_x: Numeric -- Scroll delta X
|
|
72
|
+
# @rbs delta_y: Numeric -- Scroll delta Y
|
|
73
|
+
# @rbs return: void -- No return value
|
|
74
|
+
def wheel: (?delta_x: Numeric, ?delta_y: Numeric) -> void
|
|
75
|
+
|
|
76
|
+
# @rbs start: Puppeteer::ElementHandle::Point -- Drag start point
|
|
77
|
+
# @rbs target: Puppeteer::ElementHandle::Point -- Drag end point
|
|
78
|
+
# @rbs return: Hash[String, untyped] -- Drag data payload
|
|
79
|
+
def drag: (Puppeteer::ElementHandle::Point start, Puppeteer::ElementHandle::Point target) -> Hash[String, untyped]
|
|
80
|
+
|
|
81
|
+
# @rbs target: Puppeteer::ElementHandle::Point -- Drag target point
|
|
82
|
+
# @rbs data: Hash[String, untyped] -- Drag data payload
|
|
83
|
+
# @rbs return: void -- No return value
|
|
84
|
+
def drag_enter: (Puppeteer::ElementHandle::Point target, Hash[String, untyped] data) -> void
|
|
85
|
+
|
|
86
|
+
# @rbs target: Puppeteer::ElementHandle::Point -- Drag target point
|
|
87
|
+
# @rbs data: Hash[String, untyped] -- Drag data payload
|
|
88
|
+
# @rbs return: void -- No return value
|
|
89
|
+
def drag_over: (Puppeteer::ElementHandle::Point target, Hash[String, untyped] data) -> void
|
|
90
|
+
|
|
91
|
+
# @rbs target: Puppeteer::ElementHandle::Point -- Drag target point
|
|
92
|
+
# @rbs data: Hash[String, untyped] -- Drag data payload
|
|
93
|
+
# @rbs return: void -- No return value
|
|
94
|
+
def drop: (Puppeteer::ElementHandle::Point target, Hash[String, untyped] data) -> void
|
|
95
|
+
|
|
96
|
+
# @rbs start: Puppeteer::ElementHandle::Point -- Drag start point
|
|
97
|
+
# @rbs target: Puppeteer::ElementHandle::Point -- Drag end point
|
|
98
|
+
# @rbs delay: Numeric? -- Delay before drop (ms)
|
|
99
|
+
# @rbs return: void -- No return value
|
|
100
|
+
def drag_and_drop: (Puppeteer::ElementHandle::Point start, Puppeteer::ElementHandle::Point target, ?delay: Numeric?) -> void
|
|
101
|
+
|
|
102
|
+
private def state: () -> untyped
|
|
103
|
+
|
|
104
|
+
# @rbs block: Proc -- Block receiving state update callback
|
|
105
|
+
# @rbs return: untyped -- Block result
|
|
106
|
+
private def with_transaction: () ?{ (?) -> untyped } -> untyped
|
|
107
|
+
|
|
108
|
+
private def merge_state: (untyped base_state, untyped transaction) -> untyped
|
|
109
|
+
|
|
110
|
+
private def button_flag: (untyped button) -> untyped
|
|
111
|
+
|
|
112
|
+
private def button_from_pressed_buttons: (untyped buttons) -> untyped
|
|
113
|
+
end
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Generated from lib/puppeteer/p_query_handler.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
class Puppeteer::PQueryHandler
|
|
4
|
+
POLLING_DEFAULT_SECONDS: ::Float
|
|
5
|
+
|
|
6
|
+
CSS_QUERY_SELECTOR_JS: ::String
|
|
7
|
+
|
|
8
|
+
PIERCE_JS: ::String
|
|
9
|
+
|
|
10
|
+
PIERCE_ALL_JS: ::String
|
|
11
|
+
|
|
12
|
+
DOM_SORT_JS: ::String
|
|
13
|
+
|
|
14
|
+
# @rbs query_handler_manager: untyped -- Query handler manager
|
|
15
|
+
# @rbs return: void -- No return value
|
|
16
|
+
def initialize: (?query_handler_manager: untyped) -> void
|
|
17
|
+
|
|
18
|
+
# @rbs element: Puppeteer::ElementHandle -- Root element
|
|
19
|
+
# @rbs selector: String -- PSelector string
|
|
20
|
+
# @rbs return: Puppeteer::ElementHandle? -- First matching element
|
|
21
|
+
def query_one: (Puppeteer::ElementHandle element, String selector) -> Puppeteer::ElementHandle?
|
|
22
|
+
|
|
23
|
+
# @rbs element: Puppeteer::ElementHandle -- Root element
|
|
24
|
+
# @rbs selector: String -- PSelector string
|
|
25
|
+
# @rbs return: Array[Puppeteer::ElementHandle] -- Matching elements
|
|
26
|
+
def query_all: (Puppeteer::ElementHandle element, String selector) -> Array[Puppeteer::ElementHandle]
|
|
27
|
+
|
|
28
|
+
# @rbs element: Puppeteer::ElementHandle -- Root element
|
|
29
|
+
# @rbs selector: String -- PSelector string
|
|
30
|
+
# @rbs return: Puppeteer::JSHandle -- Handle to array of elements
|
|
31
|
+
def query_all_array: (Puppeteer::ElementHandle element, String selector) -> Puppeteer::JSHandle
|
|
32
|
+
|
|
33
|
+
# @rbs element_or_frame: Puppeteer::ElementHandle | Puppeteer::Frame -- Root element or frame
|
|
34
|
+
# @rbs selector: String -- PSelector string
|
|
35
|
+
# @rbs visible: bool? -- Wait for element to be visible
|
|
36
|
+
# @rbs hidden: bool? -- Wait for element to be hidden
|
|
37
|
+
# @rbs timeout: Numeric? -- Timeout in milliseconds
|
|
38
|
+
# @rbs polling: (String | Numeric | nil) -- Polling strategy
|
|
39
|
+
# @rbs return: Puppeteer::ElementHandle? -- Matching element
|
|
40
|
+
def wait_for: (Puppeteer::ElementHandle | Puppeteer::Frame element_or_frame, String selector, visible: bool?, hidden: bool?, timeout: Numeric?, ?polling: String | Numeric | nil) -> Puppeteer::ElementHandle?
|
|
41
|
+
|
|
42
|
+
private
|
|
43
|
+
|
|
44
|
+
def run_complex_selector: (untyped root, untyped complex) -> untyped
|
|
45
|
+
|
|
46
|
+
def apply_compound: (untyped elements, untyped compound) -> untyped
|
|
47
|
+
|
|
48
|
+
def apply_css_selector: (untyped elements, untyped selector) -> untyped
|
|
49
|
+
|
|
50
|
+
def query_css_selector: (untyped element, untyped selector) -> untyped
|
|
51
|
+
|
|
52
|
+
def apply_pseudo_selector: (untyped elements, untyped pseudo) -> untyped
|
|
53
|
+
|
|
54
|
+
def query_handler_for_pseudo: (untyped name) -> untyped
|
|
55
|
+
|
|
56
|
+
def pierce: (untyped elements) -> untyped
|
|
57
|
+
|
|
58
|
+
def pierce_all: (untyped elements) -> untyped
|
|
59
|
+
|
|
60
|
+
def dom_sort: (untyped elements) -> untyped
|
|
61
|
+
|
|
62
|
+
def array_handle_to_elements: (untyped array_handle) -> untyped
|
|
63
|
+
|
|
64
|
+
def ensure_context: (untyped handle, untyped context) -> untyped
|
|
65
|
+
|
|
66
|
+
def transfer_handle: (untyped frame, untyped handle) -> untyped
|
|
67
|
+
|
|
68
|
+
def polling_interval_seconds: (untyped polling, visible: untyped, hidden: untyped) -> untyped
|
|
69
|
+
|
|
70
|
+
def monotonic_time: () -> untyped
|
|
71
|
+
|
|
72
|
+
def raise_timeout: (untyped selector) -> untyped
|
|
73
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Generated from lib/puppeteer/p_selector_parser.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Puppeteer
|
|
4
|
+
module PSelectorParser
|
|
5
|
+
class PseudoSelector
|
|
6
|
+
attr_reader name: untyped
|
|
7
|
+
|
|
8
|
+
attr_reader value: untyped
|
|
9
|
+
|
|
10
|
+
def initialize: (name: untyped, value: untyped) -> untyped
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
PSEUDO_PREFIX: ::String
|
|
14
|
+
|
|
15
|
+
# @rbs selector: String -- Selector to parse
|
|
16
|
+
# @rbs return: [Array[untyped], bool, bool, bool] -- Parsed selectors and flags
|
|
17
|
+
def self.parse: (String selector) -> [ Array[untyped], bool, bool, bool ]
|
|
18
|
+
|
|
19
|
+
def self.flush_storage: (untyped storage, untyped compound) -> untyped
|
|
20
|
+
|
|
21
|
+
def self.parse_name: (untyped selector, untyped index) -> untyped
|
|
22
|
+
|
|
23
|
+
def self.skip_spaces: (untyped selector, untyped index) -> untyped
|
|
24
|
+
|
|
25
|
+
def self.parse_argument: (untyped selector, untyped index) -> untyped
|
|
26
|
+
|
|
27
|
+
def self.starts_with_at?: (untyped selector, untyped index, untyped token) -> untyped
|
|
28
|
+
|
|
29
|
+
def self.unquote: (untyped text) -> untyped
|
|
30
|
+
end
|
|
31
|
+
end
|