bidi2pdf 0.1.12 → 0.1.14

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 (116) hide show
  1. checksums.yaml +4 -4
  2. data/.devcontainer/Dockerfile +53 -0
  3. data/.devcontainer/devcontainer.json +51 -0
  4. data/.devcontainer/docker-compose.yml +33 -0
  5. data/.rubocop.yml +1 -1
  6. data/.ruby-gemset +1 -1
  7. data/.ruby-version +1 -1
  8. data/CHANGELOG.md +115 -4
  9. data/README.md +12 -0
  10. data/docker/Dockerfile +2 -2
  11. data/docker/Dockerfile.slim +2 -2
  12. data/docker/chrome-driver/chrome.json +874 -0
  13. data/docker/entrypoint.sh +3 -3
  14. data/lib/bidi2pdf/bidi/browser_tab.rb +52 -0
  15. data/lib/bidi2pdf/bidi/commands/capture_screenshot.rb +33 -0
  16. data/lib/bidi2pdf/bidi/commands/set_viewport.rb +32 -0
  17. data/lib/bidi2pdf/bidi/commands.rb +2 -0
  18. data/lib/bidi2pdf/bidi/event_manager.rb +2 -2
  19. data/lib/bidi2pdf/chromedriver_manager.rb +11 -0
  20. data/lib/bidi2pdf/cli.rb +11 -1
  21. data/lib/bidi2pdf/launcher.rb +5 -3
  22. data/lib/bidi2pdf/process_tree.rb +2 -2
  23. data/lib/bidi2pdf/test_helpers/images.rb +8 -0
  24. data/lib/bidi2pdf/test_helpers/pdf_file_helper.rb +5 -1
  25. data/lib/bidi2pdf/test_helpers/pdf_reader_utils.rb +1 -2
  26. data/lib/bidi2pdf/test_helpers/pdf_text_sanitizer.rb +29 -109
  27. data/lib/bidi2pdf/test_helpers/testcontainers/chromedriver_container.rb +1 -1
  28. data/lib/bidi2pdf/test_helpers/testcontainers/chromedriver_test_helper.rb +46 -13
  29. data/lib/bidi2pdf/test_helpers/testcontainers/container_endpoint.rb +30 -0
  30. data/lib/bidi2pdf/test_helpers/testcontainers/shared_docker_network.rb +5 -1
  31. data/lib/bidi2pdf/test_helpers/testcontainers/testcontainers_refinement.rb +33 -0
  32. data/lib/bidi2pdf/test_helpers/testcontainers.rb +1 -0
  33. data/lib/bidi2pdf/version.rb +1 -1
  34. data/lib/bidi2pdf.rb +2 -0
  35. data/sig/bidi2pdf/bidi/add_headers_interceptor.rbs +16 -9
  36. data/sig/bidi2pdf/bidi/auth_interceptor.rbs +32 -7
  37. data/sig/bidi2pdf/bidi/browser.rbs +4 -31
  38. data/sig/bidi2pdf/bidi/browser_console_logger.rbs +59 -0
  39. data/sig/bidi2pdf/bidi/browser_tab.rbs +252 -25
  40. data/sig/bidi2pdf/bidi/client.rbs +95 -43
  41. data/sig/bidi2pdf/bidi/command_manager.rbs +5 -17
  42. data/sig/bidi2pdf/bidi/commands/add_intercept.rbs +16 -8
  43. data/sig/bidi2pdf/bidi/commands/base.rbs +49 -9
  44. data/sig/bidi2pdf/bidi/commands/browser_close.rbs +3 -1
  45. data/sig/bidi2pdf/bidi/commands/browser_create_user_context.rbs +2 -0
  46. data/sig/bidi2pdf/bidi/commands/browser_remove_user_context.rbs +19 -0
  47. data/sig/bidi2pdf/bidi/commands/browsing_context_close.rbs +8 -2
  48. data/sig/bidi2pdf/bidi/commands/browsing_context_navigate.rbs +12 -6
  49. data/sig/bidi2pdf/bidi/commands/browsing_context_print.rbs +10 -5
  50. data/sig/bidi2pdf/bidi/commands/cancel_auth.rbs +8 -2
  51. data/sig/bidi2pdf/bidi/commands/capture_screenshot.rbs +31 -0
  52. data/sig/bidi2pdf/bidi/commands/cdp_get_session.rbs +17 -0
  53. data/sig/bidi2pdf/bidi/commands/create_window.rbs +4 -0
  54. data/sig/bidi2pdf/bidi/commands/get_user_contexts.rbs +2 -0
  55. data/sig/bidi2pdf/bidi/commands/network_continue.rbs +4 -0
  56. data/sig/bidi2pdf/bidi/commands/page_print.rbs +28 -0
  57. data/sig/bidi2pdf/bidi/commands/print_parameters_validator.rbs +3 -0
  58. data/sig/bidi2pdf/bidi/commands/provide_credentials.rbs +12 -6
  59. data/sig/bidi2pdf/bidi/commands/script_evaluate.rbs +4 -0
  60. data/sig/bidi2pdf/bidi/commands/session_end.rbs +2 -0
  61. data/sig/bidi2pdf/bidi/commands/session_status.rbs +3 -1
  62. data/sig/bidi2pdf/bidi/commands/session_subscribe.rbs +4 -0
  63. data/sig/bidi2pdf/bidi/commands/set_tab_cookie.rbs +51 -23
  64. data/sig/bidi2pdf/bidi/commands/set_usercontext_cookie.rbs +17 -19
  65. data/sig/bidi2pdf/bidi/commands/set_viewport.rbs +31 -0
  66. data/sig/bidi2pdf/bidi/connection_manager.rbs +2 -1
  67. data/sig/bidi2pdf/bidi/event_manager.rbs +14 -19
  68. data/sig/bidi2pdf/bidi/interceptor.rbs +5 -0
  69. data/sig/bidi2pdf/bidi/js_logger_helper.rbs +9 -0
  70. data/sig/bidi2pdf/bidi/logger_events.rbs +21 -0
  71. data/sig/bidi2pdf/bidi/navigation_failed_events.rbs +17 -0
  72. data/sig/bidi2pdf/bidi/network_event.rbs +54 -46
  73. data/sig/bidi2pdf/bidi/network_event_formatters/network_event_console_formatter.rbs +63 -0
  74. data/sig/bidi2pdf/bidi/network_event_formatters/network_event_formatter_utils.rbs +15 -0
  75. data/sig/bidi2pdf/bidi/network_event_formatters/network_event_html_formatter.rbs +18 -0
  76. data/sig/bidi2pdf/bidi/network_event_formatters.rbs +6 -0
  77. data/sig/bidi2pdf/bidi/network_events.rbs +14 -39
  78. data/sig/bidi2pdf/bidi/session.rbs +144 -31
  79. data/sig/bidi2pdf/bidi/user_context.rbs +64 -45
  80. data/sig/bidi2pdf/bidi/web_socket_dispatcher.rbs +22 -30
  81. data/sig/bidi2pdf/chromedriver_manager.rbs +57 -22
  82. data/sig/bidi2pdf/cli.rbs +22 -2
  83. data/sig/bidi2pdf/dsl.rbs +34 -0
  84. data/sig/bidi2pdf/launcher.rbs +39 -1
  85. data/sig/bidi2pdf/notifications/event.rbs +40 -0
  86. data/sig/bidi2pdf/notifications/instrumenter.rbs +21 -0
  87. data/sig/bidi2pdf/notifications/logging_subscriber.rbs +41 -0
  88. data/sig/bidi2pdf/notifications.rbs +24 -0
  89. data/sig/bidi2pdf/process_tree.rbs +2 -2
  90. data/sig/bidi2pdf/session_runner.rbs +41 -1
  91. data/sig/bidi2pdf/test_helpers/configuration.rbs +51 -0
  92. data/sig/bidi2pdf/test_helpers/images/extractor.rbs +43 -0
  93. data/sig/bidi2pdf/test_helpers/images/image_similarity_checker.rbs +35 -0
  94. data/sig/bidi2pdf/test_helpers/images/tiff_helper.rbs +70 -0
  95. data/sig/bidi2pdf/test_helpers/images.rbs +0 -0
  96. data/sig/bidi2pdf/test_helpers/matchers/contains_pdf_image.rbs +0 -0
  97. data/sig/bidi2pdf/test_helpers/matchers/contains_pdf_text.rbs +0 -0
  98. data/sig/bidi2pdf/test_helpers/matchers/have_pdf_page_count.rbs +0 -0
  99. data/sig/bidi2pdf/test_helpers/matchers/match_pdf_text.rbs +0 -0
  100. data/sig/bidi2pdf/test_helpers/pdf_file_helper.rbs +23 -0
  101. data/sig/bidi2pdf/test_helpers/pdf_reader_utils.rbs +49 -0
  102. data/sig/bidi2pdf/test_helpers/pdf_text_sanitizer.rbs +38 -0
  103. data/sig/bidi2pdf/test_helpers/spec_paths_helper.rbs +35 -0
  104. data/sig/bidi2pdf/test_helpers/testcontainers/chromedriver_container.rbs +43 -0
  105. data/sig/bidi2pdf/test_helpers/testcontainers/chromedriver_test_helper.rbs +45 -0
  106. data/sig/bidi2pdf/test_helpers/testcontainers/container_endpoint.rbs +25 -0
  107. data/sig/bidi2pdf/test_helpers/testcontainers/shared_docker_network.rbs +3 -0
  108. data/sig/bidi2pdf/test_helpers/testcontainers/testcontainers_refinement.rbs +47 -0
  109. data/sig/bidi2pdf/test_helpers/testcontainers.rbs +6 -0
  110. data/sig/bidi2pdf/test_helpers.rbs +0 -0
  111. data/sig/bidi2pdf/verbose_logger.rbs +37 -0
  112. data/sig/bidi2pdf/version.rbs +3 -0
  113. data/sig/bidi2pdf.rbs +112 -2
  114. data/tasks/generate_rbs.rake +11 -11
  115. metadata +62 -10
  116. data/sig/bidi2pdf/utils.rbs +0 -5
@@ -0,0 +1,47 @@
1
+ module Bidi2pdf
2
+ module TestHelpers
3
+ module TestcontainersRefinement
4
+ @aliases: untyped
5
+
6
+ @_network: untyped
7
+
8
+ def id: () -> untyped
9
+
10
+ def aliases: () -> untyped
11
+
12
+ def aliases=: (untyped aliases) -> untyped
13
+
14
+ def network: () -> untyped
15
+
16
+ def with_network: (untyped network) -> self
17
+
18
+ def with_network_aliases: (*untyped aliases) -> self
19
+
20
+ def container_json: () -> untyped
21
+
22
+ # Address of the Docker host at which this container's *mapped* ports
23
+ # are reachable from the test process.
24
+ #
25
+ # Resolution belongs to testcontainers: it honours TC_HOST, a tcp:/ssh:
26
+ # DOCKER_HOST, a native local daemon, and a sibling container reaching
27
+ # the daemon over the bridge gateway — and it derives #mapped_port from
28
+ # the same decision, so the two must stay on one path. We only add a
29
+ # fallback for the cases 0.2.0 leaves unresolved.
30
+ #
31
+ # This is not the address containers use to reach each other; for that
32
+ # the helpers join a shared network and address containers by alias.
33
+ def accessible_host: () -> untyped
34
+
35
+ # testcontainers-core 0.2.0 cannot resolve a host when the test process
36
+ # runs inside a container and the container under test is on a custom
37
+ # network: #container_gateway_ip hardcodes the "bridge" network key
38
+ # (docker_container.rb:1074), so #host returns nil. On the default
39
+ # bridge it can instead reach docker_container.rb:703, which calls an
40
+ # undefined `bridge_ip`. Both are fixed on testcontainers-ruby main;
41
+ # treat either as "unresolved" and fall back.
42
+ def resolved_host: () -> untyped
43
+
44
+ def _container_create_options: () -> untyped
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,6 @@
1
+ module Bidi2pdf
2
+ module TestHelpers
3
+ module Testcontainers
4
+ end
5
+ end
6
+ end
File without changes
@@ -0,0 +1,37 @@
1
+ module Bidi2pdf
2
+ class VerboseLogger < SimpleDelegator
3
+ @logger: untyped
4
+
5
+ @verbosity: untyped
6
+
7
+ VERBOSITY_LEVELS: { none: 0, low: 1, medium: 2, high: 3 }
8
+
9
+ attr_reader logger: untyped
10
+
11
+ attr_reader verbosity: untyped
12
+
13
+ def initialize: (untyped logger, ?::Symbol verbosity) -> void
14
+
15
+ def verbosity=: (untyped verbosity) -> untyped
16
+
17
+ def verbosity_sym: () -> untyped
18
+
19
+ def debug1: (?untyped? progname) { (?) -> untyped } -> (nil | untyped)
20
+
21
+ def debug1?: () -> untyped
22
+
23
+ def debug1!: () -> untyped
24
+
25
+ def debug2: (?untyped? progname) { (?) -> untyped } -> (nil | untyped)
26
+
27
+ def debug2?: () -> untyped
28
+
29
+ def debug2!: () -> untyped
30
+
31
+ def debug3: (?untyped? progname) { (?) -> untyped } -> (nil | untyped)
32
+
33
+ def debug3?: () -> untyped
34
+
35
+ def debug3!: () -> untyped
36
+ end
37
+ end
@@ -0,0 +1,3 @@
1
+ module Bidi2pdf
2
+ VERSION: "0.1.14"
3
+ end
data/sig/bidi2pdf.rbs CHANGED
@@ -1,4 +1,114 @@
1
1
  module Bidi2pdf
2
- VERSION: String
3
- # See the writing guide of rbs: https://github.com/ruby/rbs#guides
2
+ self.@logger: untyped
3
+
4
+ self.@network_events_logger: untyped
5
+
6
+ self.@browser_console_logger: untyped
7
+
8
+ self.@logging_subscriber: untyped
9
+
10
+ self.@notification_service: untyped
11
+
12
+ PAPER_FORMATS_CM: { letter: { width: ::Float, height: ::Float }, legal: { width: ::Float, height: ::Float }, tabloid: { width: ::Float, height: ::Float }, ledger: { width: ::Float, height: ::Float }, a0: { width: ::Float, height: ::Float }, a1: { width: ::Float, height: ::Float }, a2: { width: ::Float, height: ::Float }, a3: { width: ::Float, height: ::Float }, a4: { width: ::Float, height: ::Float }, a5: { width: ::Float, height: ::Float }, a6: { width: ::Float, height: ::Float } }
13
+
14
+ class Error < StandardError
15
+ end
16
+
17
+ class SessionNotStartedError < Error
18
+ end
19
+
20
+ class WebsocketError < Error
21
+ end
22
+
23
+ class ClientError < WebsocketError
24
+ end
25
+
26
+ class CmdError < ClientError
27
+ @cmd: untyped
28
+
29
+ @response: untyped
30
+
31
+ attr_reader cmd: untyped
32
+
33
+ attr_reader response: untyped
34
+
35
+ def initialize: (untyped cmd, untyped response) -> void
36
+ end
37
+
38
+ class CmdResponseNotStoredError < ClientError
39
+ end
40
+
41
+ class CmdTimeoutError < ClientError
42
+ end
43
+
44
+ class PrintError < Error
45
+ end
46
+
47
+ class ScreenshotError < Error
48
+ end
49
+
50
+ class ScriptInjectionError < Error
51
+ end
52
+
53
+ class StyleInjectionError < Error
54
+ end
55
+
56
+ class NotificationsError < Error
57
+ @causes: untyped
58
+
59
+ attr_reader causes: untyped
60
+
61
+ def initialize: (untyped causes) -> void
62
+ end
63
+
64
+ class NavigationError < Error
65
+ end
66
+
67
+ class NavigationAuthError < NavigationError
68
+ @url: untyped
69
+
70
+ attr_reader url: untyped
71
+
72
+ def initialize: (untyped url, ?untyped? message) -> void
73
+ end
74
+
75
+ class NavigationTimeoutError < NavigationError
76
+ end
77
+
78
+ class NavigationNotFoundError < NavigationError
79
+ end
80
+
81
+ class NavigationDNSError < NavigationError
82
+ end
83
+
84
+ attr_accessor self.default_timeout: untyped
85
+
86
+ attr_accessor self.enable_default_logging_subscriber: untyped
87
+
88
+ attr_reader self.logging_subscriber: untyped
89
+
90
+ attr_reader self.logger: untyped
91
+
92
+ attr_reader self.network_events_logger: untyped
93
+
94
+ attr_reader self.browser_console_logger: untyped
95
+
96
+ attr_reader self.notification_service: untyped
97
+
98
+ # Allow configuration through a block
99
+ def self.configure: () ?{ (untyped) -> untyped } -> untyped
100
+
101
+ def self.init: () -> untyped
102
+
103
+ def self.translate_paper_format: (untyped format) -> { width: untyped, height: untyped }
104
+
105
+ def self.logger=: (untyped new_logger) -> untyped
106
+
107
+ def self.network_events_logger=: (untyped new_network_events_logger) -> untyped
108
+
109
+ def self.browser_console_logger=: (untyped new_browser_console_logger) -> untyped
110
+
111
+ def self.logging_subscriber=: (untyped new_logging_subscriber) -> untyped
112
+
113
+ def self.notification_service=: (untyped new_notification_service) -> untyped
4
114
  end
@@ -6,7 +6,7 @@ require "rbs"
6
6
  SOURCE_DIR = "lib"
7
7
  OUTPUT_DIR = "sig"
8
8
 
9
- # rubocop:disable Metrics/BlockLength
9
+ # rubocop:disable-next Metrics/BlockLength
10
10
  namespace :rbs do
11
11
  file_list = FileList["#{SOURCE_DIR}/**/*.rb"]
12
12
 
@@ -32,15 +32,11 @@ namespace :rbs do
32
32
  parser = RBS::Prototype::RB.new
33
33
  parser.parse input.read
34
34
 
35
- if output.file?
36
- puts "⚠️ RBS file already exists: #{rbs_path}"
37
- else
38
- puts "📝 Writing RBS file: #{rbs_path}"
35
+ puts "📝 Writing RBS file: #{rbs_path}"
39
36
 
40
- output.open("w") do |io|
41
- writer = RBS::Writer.new(out: io)
42
- writer.write(parser.decls)
43
- end
37
+ output.open("w") do |io|
38
+ writer = RBS::Writer.new(out: io)
39
+ writer.write(parser.decls)
44
40
  end
45
41
  rescue StandardError => e
46
42
  puts "❌ Error generating RBS for #{rb_path}: #{e.message}"
@@ -55,10 +51,14 @@ namespace :rbs do
55
51
 
56
52
  desc "Clean all generated RBS files"
57
53
  task :clean_rbs do
58
- FileList["#{OUTPUT_DIR}/**/*.rbs"].each do |file|
54
+ # sig/vendor/** holds hand-written signatures for third-party gems (e.g. Thor) with no
55
+ # corresponding lib/ source to regenerate from - excluded so a clean+regenerate cycle can't
56
+ # delete them with no way to get them back.
57
+ generated = FileList["#{OUTPUT_DIR}/**/*.rbs"].exclude("#{OUTPUT_DIR}/vendor/**")
58
+
59
+ generated.each do |file|
59
60
  FileUtils.rm_f(file)
60
61
  end
61
62
  puts "🧹 Cleaned up all RBS files"
62
63
  end
63
64
  end
64
- # rubocop:enable Metrics/BlockLength
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bidi2pdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.12
4
+ version: 0.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dieter S.
@@ -67,16 +67,22 @@ dependencies:
67
67
  name: json
68
68
  requirement: !ruby/object:Gem::Requirement
69
69
  requirements:
70
- - - "~>"
70
+ - - ">="
71
71
  - !ruby/object:Gem::Version
72
72
  version: '2.10'
73
+ - - "<"
74
+ - !ruby/object:Gem::Version
75
+ version: '4.0'
73
76
  type: :runtime
74
77
  prerelease: false
75
78
  version_requirements: !ruby/object:Gem::Requirement
76
79
  requirements:
77
- - - "~>"
80
+ - - ">="
78
81
  - !ruby/object:Gem::Version
79
82
  version: '2.10'
83
+ - - "<"
84
+ - !ruby/object:Gem::Version
85
+ version: '4.0'
80
86
  - !ruby/object:Gem::Dependency
81
87
  name: rubyzip
82
88
  requirement: !ruby/object:Gem::Requirement
@@ -195,14 +201,14 @@ dependencies:
195
201
  requirements:
196
202
  - - "~>"
197
203
  - !ruby/object:Gem::Version
198
- version: '3.4'
204
+ version: '4.0'
199
205
  type: :development
200
206
  prerelease: false
201
207
  version_requirements: !ruby/object:Gem::Requirement
202
208
  requirements:
203
209
  - - "~>"
204
210
  - !ruby/object:Gem::Version
205
- version: '3.4'
211
+ version: '4.0'
206
212
  - !ruby/object:Gem::Dependency
207
213
  name: rspec
208
214
  requirement: !ruby/object:Gem::Requirement
@@ -293,14 +299,14 @@ dependencies:
293
299
  requirements:
294
300
  - - "~>"
295
301
  - !ruby/object:Gem::Version
296
- version: '0.22'
302
+ version: '1.2'
297
303
  type: :development
298
304
  prerelease: false
299
305
  version_requirements: !ruby/object:Gem::Requirement
300
306
  requirements:
301
307
  - - "~>"
302
308
  - !ruby/object:Gem::Version
303
- version: '0.22'
309
+ version: '1.2'
304
310
  - !ruby/object:Gem::Dependency
305
311
  name: testcontainers
306
312
  requirement: !ruby/object:Gem::Requirement
@@ -379,6 +385,9 @@ executables:
379
385
  extensions: []
380
386
  extra_rdoc_files: []
381
387
  files:
388
+ - ".devcontainer/Dockerfile"
389
+ - ".devcontainer/devcontainer.json"
390
+ - ".devcontainer/docker-compose.yml"
382
391
  - ".idea/.gitignore"
383
392
  - ".rspec"
384
393
  - ".rubocop.yml"
@@ -392,6 +401,7 @@ files:
392
401
  - docker/Dockerfile
393
402
  - docker/Dockerfile.chromedriver
394
403
  - docker/Dockerfile.slim
404
+ - docker/chrome-driver/chrome.json
395
405
  - docker/docker-compose.yml
396
406
  - docker/entrypoint.sh
397
407
  - docker/nginx/default.conf
@@ -415,6 +425,7 @@ files:
415
425
  - lib/bidi2pdf/bidi/commands/browsing_context_navigate.rb
416
426
  - lib/bidi2pdf/bidi/commands/browsing_context_print.rb
417
427
  - lib/bidi2pdf/bidi/commands/cancel_auth.rb
428
+ - lib/bidi2pdf/bidi/commands/capture_screenshot.rb
418
429
  - lib/bidi2pdf/bidi/commands/cdp_get_session.rb
419
430
  - lib/bidi2pdf/bidi/commands/create_tab.rb
420
431
  - lib/bidi2pdf/bidi/commands/create_window.rb
@@ -429,6 +440,7 @@ files:
429
440
  - lib/bidi2pdf/bidi/commands/session_subscribe.rb
430
441
  - lib/bidi2pdf/bidi/commands/set_tab_cookie.rb
431
442
  - lib/bidi2pdf/bidi/commands/set_usercontext_cookie.rb
443
+ - lib/bidi2pdf/bidi/commands/set_viewport.rb
432
444
  - lib/bidi2pdf/bidi/connection_manager.rb
433
445
  - lib/bidi2pdf/bidi/event_manager.rb
434
446
  - lib/bidi2pdf/bidi/interceptor.rb
@@ -471,6 +483,7 @@ files:
471
483
  - lib/bidi2pdf/test_helpers/testcontainers.rb
472
484
  - lib/bidi2pdf/test_helpers/testcontainers/chromedriver_container.rb
473
485
  - lib/bidi2pdf/test_helpers/testcontainers/chromedriver_test_helper.rb
486
+ - lib/bidi2pdf/test_helpers/testcontainers/container_endpoint.rb
474
487
  - lib/bidi2pdf/test_helpers/testcontainers/shared_docker_network.rb
475
488
  - lib/bidi2pdf/test_helpers/testcontainers/testcontainers_refinement.rb
476
489
  - lib/bidi2pdf/verbose_logger.rb
@@ -479,6 +492,7 @@ files:
479
492
  - sig/bidi2pdf/bidi/add_headers_interceptor.rbs
480
493
  - sig/bidi2pdf/bidi/auth_interceptor.rbs
481
494
  - sig/bidi2pdf/bidi/browser.rbs
495
+ - sig/bidi2pdf/bidi/browser_console_logger.rbs
482
496
  - sig/bidi2pdf/bidi/browser_tab.rbs
483
497
  - sig/bidi2pdf/bidi/client.rbs
484
498
  - sig/bidi2pdf/bidi/command_manager.rbs
@@ -487,14 +501,18 @@ files:
487
501
  - sig/bidi2pdf/bidi/commands/base.rbs
488
502
  - sig/bidi2pdf/bidi/commands/browser_close.rbs
489
503
  - sig/bidi2pdf/bidi/commands/browser_create_user_context.rbs
504
+ - sig/bidi2pdf/bidi/commands/browser_remove_user_context.rbs
490
505
  - sig/bidi2pdf/bidi/commands/browsing_context_close.rbs
491
506
  - sig/bidi2pdf/bidi/commands/browsing_context_navigate.rbs
492
507
  - sig/bidi2pdf/bidi/commands/browsing_context_print.rbs
493
508
  - sig/bidi2pdf/bidi/commands/cancel_auth.rbs
509
+ - sig/bidi2pdf/bidi/commands/capture_screenshot.rbs
510
+ - sig/bidi2pdf/bidi/commands/cdp_get_session.rbs
494
511
  - sig/bidi2pdf/bidi/commands/create_tab.rbs
495
512
  - sig/bidi2pdf/bidi/commands/create_window.rbs
496
513
  - sig/bidi2pdf/bidi/commands/get_user_contexts.rbs
497
514
  - sig/bidi2pdf/bidi/commands/network_continue.rbs
515
+ - sig/bidi2pdf/bidi/commands/page_print.rbs
498
516
  - sig/bidi2pdf/bidi/commands/print_parameters_validator.rbs
499
517
  - sig/bidi2pdf/bidi/commands/provide_credentials.rbs
500
518
  - sig/bidi2pdf/bidi/commands/script_evaluate.rbs
@@ -503,20 +521,54 @@ files:
503
521
  - sig/bidi2pdf/bidi/commands/session_subscribe.rbs
504
522
  - sig/bidi2pdf/bidi/commands/set_tab_cookie.rbs
505
523
  - sig/bidi2pdf/bidi/commands/set_usercontext_cookie.rbs
524
+ - sig/bidi2pdf/bidi/commands/set_viewport.rbs
506
525
  - sig/bidi2pdf/bidi/connection_manager.rbs
507
526
  - sig/bidi2pdf/bidi/event_manager.rbs
508
527
  - sig/bidi2pdf/bidi/interceptor.rbs
528
+ - sig/bidi2pdf/bidi/js_logger_helper.rbs
529
+ - sig/bidi2pdf/bidi/logger_events.rbs
530
+ - sig/bidi2pdf/bidi/navigation_failed_events.rbs
509
531
  - sig/bidi2pdf/bidi/network_event.rbs
532
+ - sig/bidi2pdf/bidi/network_event_formatters.rbs
533
+ - sig/bidi2pdf/bidi/network_event_formatters/network_event_console_formatter.rbs
534
+ - sig/bidi2pdf/bidi/network_event_formatters/network_event_formatter_utils.rbs
535
+ - sig/bidi2pdf/bidi/network_event_formatters/network_event_html_formatter.rbs
510
536
  - sig/bidi2pdf/bidi/network_events.rbs
511
537
  - sig/bidi2pdf/bidi/session.rbs
512
538
  - sig/bidi2pdf/bidi/user_context.rbs
513
539
  - sig/bidi2pdf/bidi/web_socket_dispatcher.rbs
514
540
  - sig/bidi2pdf/chromedriver_manager.rbs
515
541
  - sig/bidi2pdf/cli.rbs
542
+ - sig/bidi2pdf/dsl.rbs
516
543
  - sig/bidi2pdf/launcher.rbs
544
+ - sig/bidi2pdf/notifications.rbs
545
+ - sig/bidi2pdf/notifications/event.rbs
546
+ - sig/bidi2pdf/notifications/instrumenter.rbs
547
+ - sig/bidi2pdf/notifications/logging_subscriber.rbs
517
548
  - sig/bidi2pdf/process_tree.rbs
518
549
  - sig/bidi2pdf/session_runner.rbs
519
- - sig/bidi2pdf/utils.rbs
550
+ - sig/bidi2pdf/test_helpers.rbs
551
+ - sig/bidi2pdf/test_helpers/configuration.rbs
552
+ - sig/bidi2pdf/test_helpers/images.rbs
553
+ - sig/bidi2pdf/test_helpers/images/extractor.rbs
554
+ - sig/bidi2pdf/test_helpers/images/image_similarity_checker.rbs
555
+ - sig/bidi2pdf/test_helpers/images/tiff_helper.rbs
556
+ - sig/bidi2pdf/test_helpers/matchers/contains_pdf_image.rbs
557
+ - sig/bidi2pdf/test_helpers/matchers/contains_pdf_text.rbs
558
+ - sig/bidi2pdf/test_helpers/matchers/have_pdf_page_count.rbs
559
+ - sig/bidi2pdf/test_helpers/matchers/match_pdf_text.rbs
560
+ - sig/bidi2pdf/test_helpers/pdf_file_helper.rbs
561
+ - sig/bidi2pdf/test_helpers/pdf_reader_utils.rbs
562
+ - sig/bidi2pdf/test_helpers/pdf_text_sanitizer.rbs
563
+ - sig/bidi2pdf/test_helpers/spec_paths_helper.rbs
564
+ - sig/bidi2pdf/test_helpers/testcontainers.rbs
565
+ - sig/bidi2pdf/test_helpers/testcontainers/chromedriver_container.rbs
566
+ - sig/bidi2pdf/test_helpers/testcontainers/chromedriver_test_helper.rbs
567
+ - sig/bidi2pdf/test_helpers/testcontainers/container_endpoint.rbs
568
+ - sig/bidi2pdf/test_helpers/testcontainers/shared_docker_network.rbs
569
+ - sig/bidi2pdf/test_helpers/testcontainers/testcontainers_refinement.rbs
570
+ - sig/bidi2pdf/verbose_logger.rbs
571
+ - sig/bidi2pdf/version.rbs
520
572
  - sig/vendor/thor.rbs
521
573
  - tasks/changelog.rake
522
574
  - tasks/coverage.rake
@@ -538,14 +590,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
538
590
  requirements:
539
591
  - - ">="
540
592
  - !ruby/object:Gem::Version
541
- version: 3.3.0
593
+ version: 3.4.0
542
594
  required_rubygems_version: !ruby/object:Gem::Requirement
543
595
  requirements:
544
596
  - - ">="
545
597
  - !ruby/object:Gem::Version
546
598
  version: '0'
547
599
  requirements: []
548
- rubygems_version: 3.6.8
600
+ rubygems_version: 3.6.9
549
601
  specification_version: 4
550
602
  summary: A Ruby gem that generates PDFs from web pages using Chrome's BiDi protocol,
551
603
  providing high-quality PDF documents from any URL with full support for modern web
@@ -1,5 +0,0 @@
1
- module Bidi2pdf
2
- module Utils
3
- def self?.timed: (untyped operation_name) { () -> untyped } -> untyped
4
- end
5
- end