puppeteer-bidi 0.0.1.beta1 → 0.0.1.beta2
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/CLAUDE.md +44 -0
- data/README.md +8 -1
- data/Steepfile +36 -0
- data/lib/puppeteer/bidi/async_utils.rb +1 -0
- data/lib/puppeteer/bidi/browser.rb +43 -24
- data/lib/puppeteer/bidi/browser_context.rb +13 -4
- data/lib/puppeteer/bidi/browser_launcher.rb +1 -0
- data/lib/puppeteer/bidi/connection.rb +26 -9
- data/lib/puppeteer/bidi/core/browser.rb +15 -14
- data/lib/puppeteer/bidi/core/browsing_context.rb +64 -46
- data/lib/puppeteer/bidi/core/disposable.rb +10 -3
- data/lib/puppeteer/bidi/core/errors.rb +18 -1
- data/lib/puppeteer/bidi/core/event_emitter.rb +18 -9
- data/lib/puppeteer/bidi/core/navigation.rb +4 -3
- data/lib/puppeteer/bidi/core/realm.rb +29 -26
- data/lib/puppeteer/bidi/core/request.rb +33 -29
- data/lib/puppeteer/bidi/core/session.rb +14 -11
- data/lib/puppeteer/bidi/core/user_context.rb +17 -16
- data/lib/puppeteer/bidi/core/user_prompt.rb +8 -7
- data/lib/puppeteer/bidi/core.rb +1 -0
- data/lib/puppeteer/bidi/deserializer.rb +1 -0
- data/lib/puppeteer/bidi/element_handle.rb +52 -52
- data/lib/puppeteer/bidi/errors.rb +1 -0
- data/lib/puppeteer/bidi/file_chooser.rb +1 -0
- data/lib/puppeteer/bidi/frame.rb +70 -70
- data/lib/puppeteer/bidi/http_response.rb +1 -0
- data/lib/puppeteer/bidi/injected_source.rb +1 -0
- data/lib/puppeteer/bidi/js_handle.rb +23 -23
- data/lib/puppeteer/bidi/keyboard.rb +24 -13
- data/lib/puppeteer/bidi/lazy_arg.rb +1 -0
- data/lib/puppeteer/bidi/mouse.rb +31 -18
- data/lib/puppeteer/bidi/page.rb +87 -87
- data/lib/puppeteer/bidi/query_handler.rb +3 -0
- data/lib/puppeteer/bidi/realm.rb +70 -6
- data/lib/puppeteer/bidi/serializer.rb +1 -0
- data/lib/puppeteer/bidi/target.rb +27 -0
- data/lib/puppeteer/bidi/timeout_settings.rb +1 -0
- data/lib/puppeteer/bidi/transport.rb +1 -0
- data/lib/puppeteer/bidi/version.rb +1 -1
- data/lib/puppeteer/bidi/wait_task.rb +1 -0
- data/lib/puppeteer/bidi.rb +13 -4
- data/sig/_external.rbs +134 -0
- data/sig/_supplementary.rbs +20 -0
- data/sig/puppeteer/bidi/async_utils.rbs +68 -0
- data/sig/puppeteer/bidi/browser.rbs +34 -27
- data/sig/puppeteer/bidi/browser_context.rbs +39 -0
- data/sig/puppeteer/bidi/browser_launcher.rbs +45 -0
- data/sig/puppeteer/bidi/connection.rbs +67 -0
- data/sig/puppeteer/bidi/core/browser.rbs +79 -0
- data/sig/puppeteer/bidi/core/browsing_context.rbs +210 -0
- data/sig/puppeteer/bidi/core/disposable.rbs +42 -0
- data/sig/puppeteer/bidi/core/errors.rbs +65 -0
- data/sig/puppeteer/bidi/core/event_emitter.rbs +50 -0
- data/sig/puppeteer/bidi/core/navigation.rbs +37 -0
- data/sig/puppeteer/bidi/core/realm.rbs +132 -0
- data/sig/puppeteer/bidi/core/request.rbs +120 -0
- data/sig/puppeteer/bidi/core/session.rbs +65 -0
- data/sig/puppeteer/bidi/core/user_context.rbs +72 -0
- data/sig/puppeteer/bidi/core/user_prompt.rbs +52 -0
- data/sig/puppeteer/bidi/core.rbs +9 -0
- data/sig/puppeteer/bidi/deserializer.rbs +28 -0
- data/sig/puppeteer/bidi/element_handle.rbs +52 -52
- data/sig/puppeteer/bidi/errors.rbs +34 -0
- data/sig/puppeteer/bidi/file_chooser.rbs +27 -0
- data/sig/puppeteer/bidi/frame.rbs +70 -70
- data/sig/puppeteer/bidi/http_response.rbs +18 -0
- data/sig/puppeteer/bidi/injected_source.rbs +21 -0
- data/sig/puppeteer/bidi/js_handle.rbs +23 -23
- data/sig/puppeteer/bidi/keyboard.rbs +57 -0
- data/sig/puppeteer/bidi/lazy_arg.rbs +15 -0
- data/sig/puppeteer/bidi/mouse.rbs +73 -0
- data/sig/puppeteer/bidi/page.rbs +87 -87
- data/sig/puppeteer/bidi/query_handler.rbs +113 -0
- data/sig/puppeteer/bidi/realm.rbs +141 -0
- data/sig/puppeteer/bidi/serializer.rbs +31 -0
- data/sig/puppeteer/bidi/target.rbs +68 -0
- data/sig/puppeteer/bidi/timeout_settings.rbs +14 -0
- data/sig/puppeteer/bidi/transport.rbs +43 -0
- data/sig/puppeteer/bidi/wait_task.rbs +62 -0
- data/sig/puppeteer/bidi.rbs +7 -5
- metadata +35 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# Generated from lib/puppeteer/bidi/timeout_settings.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Puppeteer
|
|
4
|
+
module Bidi
|
|
5
|
+
# Minimal timeout settings helper to share default wait values across realms.
|
|
6
|
+
class TimeoutSettings
|
|
7
|
+
def initialize: (untyped default_timeout) -> untyped
|
|
8
|
+
|
|
9
|
+
def timeout: () -> untyped
|
|
10
|
+
|
|
11
|
+
def set_default_timeout: (untyped timeout) -> untyped
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Generated from lib/puppeteer/bidi/transport.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Puppeteer
|
|
4
|
+
module Bidi
|
|
5
|
+
# Transport handles WebSocket communication with BiDi server
|
|
6
|
+
# This is the lowest layer that manages raw WebSocket send/receive
|
|
7
|
+
class Transport
|
|
8
|
+
class ClosedError < Error
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
attr_reader url: untyped
|
|
12
|
+
|
|
13
|
+
def initialize: (untyped url) -> untyped
|
|
14
|
+
|
|
15
|
+
# Connect to WebSocket and start receiving messages
|
|
16
|
+
def connect: () -> untyped
|
|
17
|
+
|
|
18
|
+
# Send a message to BiDi server
|
|
19
|
+
def async_send_message: (untyped message) -> untyped
|
|
20
|
+
|
|
21
|
+
# Register message handler
|
|
22
|
+
def on_message: () ?{ (?) -> untyped } -> untyped
|
|
23
|
+
|
|
24
|
+
# Register close handler
|
|
25
|
+
def on_close: () ?{ (?) -> untyped } -> untyped
|
|
26
|
+
|
|
27
|
+
# Close the WebSocket connection
|
|
28
|
+
def close: () -> untyped
|
|
29
|
+
|
|
30
|
+
def closed?: () -> untyped
|
|
31
|
+
|
|
32
|
+
def connected?: () -> untyped
|
|
33
|
+
|
|
34
|
+
private
|
|
35
|
+
|
|
36
|
+
def receive_loop: (untyped connection) -> untyped
|
|
37
|
+
|
|
38
|
+
def debug_print_send: (untyped message) -> untyped
|
|
39
|
+
|
|
40
|
+
def debug_print_receive: (untyped message) -> untyped
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Generated from lib/puppeteer/bidi/wait_task.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module Puppeteer
|
|
4
|
+
module Bidi
|
|
5
|
+
# WaitTask orchestrates polling for a predicate using Puppeteer's Poller classes.
|
|
6
|
+
# This is a faithful port of Puppeteer's WaitTask implementation:
|
|
7
|
+
# https://github.com/puppeteer/puppeteer/blob/main/packages/puppeteer-core/src/common/WaitTask.ts
|
|
8
|
+
#
|
|
9
|
+
# Note: signal and AbortSignal are not implemented as they are JavaScript-specific
|
|
10
|
+
class WaitTask
|
|
11
|
+
# Corresponds to Puppeteer's WaitTask constructor
|
|
12
|
+
# @param world [Realm] The realm to execute in (matches Puppeteer's World abstraction)
|
|
13
|
+
# @param options [Hash] Options for waiting
|
|
14
|
+
# @option options [String, Numeric] :polling Polling strategy ('raf', 'mutation', or interval in ms)
|
|
15
|
+
# @option options [Numeric] :timeout Timeout in milliseconds
|
|
16
|
+
# @option options [ElementHandle] :root Root element for mutation polling
|
|
17
|
+
# @param fn [String] JavaScript function to evaluate
|
|
18
|
+
# @param args [Array] Arguments to pass to the function
|
|
19
|
+
def initialize: (untyped world, untyped options, untyped fn, *untyped args) -> untyped
|
|
20
|
+
|
|
21
|
+
# Get the result as a promise
|
|
22
|
+
# Corresponds to Puppeteer's get result(): Promise<HandleFor<T>>
|
|
23
|
+
# @return [Async::Promise] Promise that resolves to JSHandle
|
|
24
|
+
def result: () -> untyped
|
|
25
|
+
|
|
26
|
+
# Rerun the polling task
|
|
27
|
+
# Corresponds to Puppeteer's async rerun(): Promise<void>
|
|
28
|
+
def rerun: () -> untyped
|
|
29
|
+
|
|
30
|
+
# Terminate the task
|
|
31
|
+
# Corresponds to Puppeteer's async terminate(error?: Error): Promise<void>
|
|
32
|
+
# @param error [Exception, nil] Error to reject with
|
|
33
|
+
def terminate: (?untyped error) -> untyped
|
|
34
|
+
|
|
35
|
+
private
|
|
36
|
+
|
|
37
|
+
# Run a single rerun cycle. Mirrors the async rerun logic from Puppeteer.
|
|
38
|
+
def perform_rerun: () -> untyped
|
|
39
|
+
|
|
40
|
+
# Create RAFPoller instance
|
|
41
|
+
# Corresponds to Puppeteer's evaluateHandle call for RAFPoller
|
|
42
|
+
def create_raf_poller: () -> untyped
|
|
43
|
+
|
|
44
|
+
# Create MutationPoller instance
|
|
45
|
+
# Corresponds to Puppeteer's evaluateHandle call for MutationPoller
|
|
46
|
+
def create_mutation_poller: () -> untyped
|
|
47
|
+
|
|
48
|
+
# Create IntervalPoller instance
|
|
49
|
+
# Corresponds to Puppeteer's evaluateHandle call for IntervalPoller
|
|
50
|
+
def create_interval_poller: () -> untyped
|
|
51
|
+
|
|
52
|
+
# Check if error should terminate task
|
|
53
|
+
# Corresponds to Puppeteer's getBadError(error: unknown): Error | undefined
|
|
54
|
+
# @param error [Exception] Error to check
|
|
55
|
+
# @return [Exception, nil] Error if it should terminate, nil if recoverable
|
|
56
|
+
def get_bad_error: (untyped error) -> untyped
|
|
57
|
+
|
|
58
|
+
# Safely stop and dispose a poller handle, ignoring cleanup errors
|
|
59
|
+
def stop_and_dispose_poller: (untyped poller) -> untyped
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
data/sig/puppeteer/bidi.rbs
CHANGED
|
@@ -2,14 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
module Puppeteer
|
|
4
4
|
module Bidi
|
|
5
|
+
type launch_options = { ?executable_path: String, ?user_data_dir: String, ?headless: bool, ?args: Array[String], ?timeout: Numeric }
|
|
6
|
+
|
|
5
7
|
# Launch a new browser instance
|
|
6
|
-
# @rbs **options:
|
|
7
|
-
# @rbs return: Browser
|
|
8
|
-
def self.launch: (**
|
|
8
|
+
# @rbs **options: launch_options -- Launch options
|
|
9
|
+
# @rbs return: Browser -- Browser instance
|
|
10
|
+
def self.launch: (**launch_options options) -> Browser
|
|
9
11
|
|
|
10
12
|
# Connect to an existing browser instance
|
|
11
|
-
# @rbs ws_endpoint: String
|
|
12
|
-
# @rbs return: Browser
|
|
13
|
+
# @rbs ws_endpoint: String -- WebSocket endpoint URL
|
|
14
|
+
# @rbs return: Browser -- Browser instance
|
|
13
15
|
def self.connect: (String ws_endpoint) -> Browser
|
|
14
16
|
end
|
|
15
17
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: puppeteer-bidi
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.1.
|
|
4
|
+
version: 0.0.1.beta2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- YusukeIwaki
|
|
@@ -101,6 +101,7 @@ files:
|
|
|
101
101
|
- LICENSE.txt
|
|
102
102
|
- README.md
|
|
103
103
|
- Rakefile
|
|
104
|
+
- Steepfile
|
|
104
105
|
- lib/puppeteer/bidi.rb
|
|
105
106
|
- lib/puppeteer/bidi/async_utils.rb
|
|
106
107
|
- lib/puppeteer/bidi/browser.rb
|
|
@@ -143,12 +144,45 @@ files:
|
|
|
143
144
|
- lib/puppeteer/bidi/version.rb
|
|
144
145
|
- lib/puppeteer/bidi/wait_task.rb
|
|
145
146
|
- scripts/update_injected_source.rb
|
|
147
|
+
- sig/_external.rbs
|
|
148
|
+
- sig/_supplementary.rbs
|
|
146
149
|
- sig/puppeteer/bidi.rbs
|
|
150
|
+
- sig/puppeteer/bidi/async_utils.rbs
|
|
147
151
|
- sig/puppeteer/bidi/browser.rbs
|
|
152
|
+
- sig/puppeteer/bidi/browser_context.rbs
|
|
153
|
+
- sig/puppeteer/bidi/browser_launcher.rbs
|
|
154
|
+
- sig/puppeteer/bidi/connection.rbs
|
|
155
|
+
- sig/puppeteer/bidi/core.rbs
|
|
156
|
+
- sig/puppeteer/bidi/core/browser.rbs
|
|
157
|
+
- sig/puppeteer/bidi/core/browsing_context.rbs
|
|
158
|
+
- sig/puppeteer/bidi/core/disposable.rbs
|
|
159
|
+
- sig/puppeteer/bidi/core/errors.rbs
|
|
160
|
+
- sig/puppeteer/bidi/core/event_emitter.rbs
|
|
161
|
+
- sig/puppeteer/bidi/core/navigation.rbs
|
|
162
|
+
- sig/puppeteer/bidi/core/realm.rbs
|
|
163
|
+
- sig/puppeteer/bidi/core/request.rbs
|
|
164
|
+
- sig/puppeteer/bidi/core/session.rbs
|
|
165
|
+
- sig/puppeteer/bidi/core/user_context.rbs
|
|
166
|
+
- sig/puppeteer/bidi/core/user_prompt.rbs
|
|
167
|
+
- sig/puppeteer/bidi/deserializer.rbs
|
|
148
168
|
- sig/puppeteer/bidi/element_handle.rbs
|
|
169
|
+
- sig/puppeteer/bidi/errors.rbs
|
|
170
|
+
- sig/puppeteer/bidi/file_chooser.rbs
|
|
149
171
|
- sig/puppeteer/bidi/frame.rbs
|
|
172
|
+
- sig/puppeteer/bidi/http_response.rbs
|
|
173
|
+
- sig/puppeteer/bidi/injected_source.rbs
|
|
150
174
|
- sig/puppeteer/bidi/js_handle.rbs
|
|
175
|
+
- sig/puppeteer/bidi/keyboard.rbs
|
|
176
|
+
- sig/puppeteer/bidi/lazy_arg.rbs
|
|
177
|
+
- sig/puppeteer/bidi/mouse.rbs
|
|
151
178
|
- sig/puppeteer/bidi/page.rbs
|
|
179
|
+
- sig/puppeteer/bidi/query_handler.rbs
|
|
180
|
+
- sig/puppeteer/bidi/realm.rbs
|
|
181
|
+
- sig/puppeteer/bidi/serializer.rbs
|
|
182
|
+
- sig/puppeteer/bidi/target.rbs
|
|
183
|
+
- sig/puppeteer/bidi/timeout_settings.rbs
|
|
184
|
+
- sig/puppeteer/bidi/transport.rbs
|
|
185
|
+
- sig/puppeteer/bidi/wait_task.rbs
|
|
152
186
|
homepage: https://github.com/YusukeIwaki/puppeteer-bidi
|
|
153
187
|
licenses:
|
|
154
188
|
- MIT
|