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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/CLAUDE.md +44 -0
  3. data/README.md +8 -1
  4. data/Steepfile +36 -0
  5. data/lib/puppeteer/bidi/async_utils.rb +1 -0
  6. data/lib/puppeteer/bidi/browser.rb +43 -24
  7. data/lib/puppeteer/bidi/browser_context.rb +13 -4
  8. data/lib/puppeteer/bidi/browser_launcher.rb +1 -0
  9. data/lib/puppeteer/bidi/connection.rb +26 -9
  10. data/lib/puppeteer/bidi/core/browser.rb +15 -14
  11. data/lib/puppeteer/bidi/core/browsing_context.rb +64 -46
  12. data/lib/puppeteer/bidi/core/disposable.rb +10 -3
  13. data/lib/puppeteer/bidi/core/errors.rb +18 -1
  14. data/lib/puppeteer/bidi/core/event_emitter.rb +18 -9
  15. data/lib/puppeteer/bidi/core/navigation.rb +4 -3
  16. data/lib/puppeteer/bidi/core/realm.rb +29 -26
  17. data/lib/puppeteer/bidi/core/request.rb +33 -29
  18. data/lib/puppeteer/bidi/core/session.rb +14 -11
  19. data/lib/puppeteer/bidi/core/user_context.rb +17 -16
  20. data/lib/puppeteer/bidi/core/user_prompt.rb +8 -7
  21. data/lib/puppeteer/bidi/core.rb +1 -0
  22. data/lib/puppeteer/bidi/deserializer.rb +1 -0
  23. data/lib/puppeteer/bidi/element_handle.rb +52 -52
  24. data/lib/puppeteer/bidi/errors.rb +1 -0
  25. data/lib/puppeteer/bidi/file_chooser.rb +1 -0
  26. data/lib/puppeteer/bidi/frame.rb +70 -70
  27. data/lib/puppeteer/bidi/http_response.rb +1 -0
  28. data/lib/puppeteer/bidi/injected_source.rb +1 -0
  29. data/lib/puppeteer/bidi/js_handle.rb +23 -23
  30. data/lib/puppeteer/bidi/keyboard.rb +24 -13
  31. data/lib/puppeteer/bidi/lazy_arg.rb +1 -0
  32. data/lib/puppeteer/bidi/mouse.rb +31 -18
  33. data/lib/puppeteer/bidi/page.rb +87 -87
  34. data/lib/puppeteer/bidi/query_handler.rb +3 -0
  35. data/lib/puppeteer/bidi/realm.rb +70 -6
  36. data/lib/puppeteer/bidi/serializer.rb +1 -0
  37. data/lib/puppeteer/bidi/target.rb +27 -0
  38. data/lib/puppeteer/bidi/timeout_settings.rb +1 -0
  39. data/lib/puppeteer/bidi/transport.rb +1 -0
  40. data/lib/puppeteer/bidi/version.rb +1 -1
  41. data/lib/puppeteer/bidi/wait_task.rb +1 -0
  42. data/lib/puppeteer/bidi.rb +13 -4
  43. data/sig/_external.rbs +134 -0
  44. data/sig/_supplementary.rbs +20 -0
  45. data/sig/puppeteer/bidi/async_utils.rbs +68 -0
  46. data/sig/puppeteer/bidi/browser.rbs +34 -27
  47. data/sig/puppeteer/bidi/browser_context.rbs +39 -0
  48. data/sig/puppeteer/bidi/browser_launcher.rbs +45 -0
  49. data/sig/puppeteer/bidi/connection.rbs +67 -0
  50. data/sig/puppeteer/bidi/core/browser.rbs +79 -0
  51. data/sig/puppeteer/bidi/core/browsing_context.rbs +210 -0
  52. data/sig/puppeteer/bidi/core/disposable.rbs +42 -0
  53. data/sig/puppeteer/bidi/core/errors.rbs +65 -0
  54. data/sig/puppeteer/bidi/core/event_emitter.rbs +50 -0
  55. data/sig/puppeteer/bidi/core/navigation.rbs +37 -0
  56. data/sig/puppeteer/bidi/core/realm.rbs +132 -0
  57. data/sig/puppeteer/bidi/core/request.rbs +120 -0
  58. data/sig/puppeteer/bidi/core/session.rbs +65 -0
  59. data/sig/puppeteer/bidi/core/user_context.rbs +72 -0
  60. data/sig/puppeteer/bidi/core/user_prompt.rbs +52 -0
  61. data/sig/puppeteer/bidi/core.rbs +9 -0
  62. data/sig/puppeteer/bidi/deserializer.rbs +28 -0
  63. data/sig/puppeteer/bidi/element_handle.rbs +52 -52
  64. data/sig/puppeteer/bidi/errors.rbs +34 -0
  65. data/sig/puppeteer/bidi/file_chooser.rbs +27 -0
  66. data/sig/puppeteer/bidi/frame.rbs +70 -70
  67. data/sig/puppeteer/bidi/http_response.rbs +18 -0
  68. data/sig/puppeteer/bidi/injected_source.rbs +21 -0
  69. data/sig/puppeteer/bidi/js_handle.rbs +23 -23
  70. data/sig/puppeteer/bidi/keyboard.rbs +57 -0
  71. data/sig/puppeteer/bidi/lazy_arg.rbs +15 -0
  72. data/sig/puppeteer/bidi/mouse.rbs +73 -0
  73. data/sig/puppeteer/bidi/page.rbs +87 -87
  74. data/sig/puppeteer/bidi/query_handler.rbs +113 -0
  75. data/sig/puppeteer/bidi/realm.rbs +141 -0
  76. data/sig/puppeteer/bidi/serializer.rbs +31 -0
  77. data/sig/puppeteer/bidi/target.rbs +68 -0
  78. data/sig/puppeteer/bidi/timeout_settings.rbs +14 -0
  79. data/sig/puppeteer/bidi/transport.rbs +43 -0
  80. data/sig/puppeteer/bidi/wait_task.rbs +62 -0
  81. data/sig/puppeteer/bidi.rbs +7 -5
  82. 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
@@ -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: untyped
7
- # @rbs return: Browser
8
- def self.launch: (**untyped options) -> Browser
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.beta1
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