bidi2pdf 0.1.6 → 0.1.7

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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +4 -1
  3. data/CHANGELOG.md +32 -4
  4. data/README.md +14 -0
  5. data/docker/Dockerfile +1 -1
  6. data/docker/Dockerfile.chromedriver +1 -1
  7. data/docker/Dockerfile.slim +2 -2
  8. data/lib/bidi2pdf/bidi/browser_console_logger.rb +92 -0
  9. data/lib/bidi2pdf/bidi/browser_tab.rb +391 -41
  10. data/lib/bidi2pdf/bidi/client.rb +85 -23
  11. data/lib/bidi2pdf/bidi/command_manager.rb +46 -48
  12. data/lib/bidi2pdf/bidi/commands/base.rb +39 -1
  13. data/lib/bidi2pdf/bidi/commands/browser_remove_user_context.rb +27 -0
  14. data/lib/bidi2pdf/bidi/commands/browsing_context_print.rb +4 -0
  15. data/lib/bidi2pdf/bidi/commands/print_parameters_validator.rb +5 -0
  16. data/lib/bidi2pdf/bidi/commands.rb +1 -0
  17. data/lib/bidi2pdf/bidi/event_manager.rb +1 -1
  18. data/lib/bidi2pdf/bidi/interceptor.rb +1 -1
  19. data/lib/bidi2pdf/bidi/js_logger_helper.rb +16 -0
  20. data/lib/bidi2pdf/bidi/logger_events.rb +25 -45
  21. data/lib/bidi2pdf/bidi/network_event.rb +15 -0
  22. data/lib/bidi2pdf/bidi/network_event_formatters/network_event_console_formatter.rb +4 -3
  23. data/lib/bidi2pdf/bidi/network_events.rb +27 -17
  24. data/lib/bidi2pdf/bidi/session.rb +119 -12
  25. data/lib/bidi2pdf/bidi/user_context.rb +62 -0
  26. data/lib/bidi2pdf/bidi/web_socket_dispatcher.rb +7 -7
  27. data/lib/bidi2pdf/chromedriver_manager.rb +48 -21
  28. data/lib/bidi2pdf/cli.rb +10 -2
  29. data/lib/bidi2pdf/dsl.rb +33 -0
  30. data/lib/bidi2pdf/launcher.rb +30 -0
  31. data/lib/bidi2pdf/notifications/event.rb +52 -0
  32. data/lib/bidi2pdf/notifications/instrumenter.rb +65 -0
  33. data/lib/bidi2pdf/notifications/logging_subscriber.rb +136 -0
  34. data/lib/bidi2pdf/notifications.rb +78 -0
  35. data/lib/bidi2pdf/session_runner.rb +35 -3
  36. data/lib/bidi2pdf/verbose_logger.rb +79 -0
  37. data/lib/bidi2pdf/version.rb +1 -1
  38. data/lib/bidi2pdf.rb +99 -7
  39. data/sig/bidi2pdf/bidi/client.rbs +1 -1
  40. metadata +39 -4
  41. data/lib/bidi2pdf/utils.rb +0 -15
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bidi2pdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dieter S.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-04-12 00:00:00.000000000 Z
11
+ date: 2025-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -178,6 +178,20 @@ dependencies:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
180
  version: '3.0'
181
+ - !ruby/object:Gem::Dependency
182
+ name: rspec-benchmark
183
+ requirement: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - "~>"
186
+ - !ruby/object:Gem::Version
187
+ version: '0.6'
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - "~>"
193
+ - !ruby/object:Gem::Version
194
+ version: '0.6'
181
195
  - !ruby/object:Gem::Dependency
182
196
  name: rubocop
183
197
  requirement: !ruby/object:Gem::Requirement
@@ -276,6 +290,20 @@ dependencies:
276
290
  - - "~>"
277
291
  - !ruby/object:Gem::Version
278
292
  version: '1.4'
293
+ - !ruby/object:Gem::Dependency
294
+ name: websocket-native
295
+ requirement: !ruby/object:Gem::Requirement
296
+ requirements:
297
+ - - "~>"
298
+ - !ruby/object:Gem::Version
299
+ version: '1.0'
300
+ type: :development
301
+ prerelease: false
302
+ version_requirements: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ - - "~>"
305
+ - !ruby/object:Gem::Version
306
+ version: '1.0'
279
307
  description: |
280
308
  Bidi2pdf is a powerful PDF generation tool that uses Chrome's BiDirectional Protocol
281
309
  to render web pages as high-quality PDF documents. It offers:
@@ -320,6 +348,7 @@ files:
320
348
  - lib/bidi2pdf/bidi/add_headers_interceptor.rb
321
349
  - lib/bidi2pdf/bidi/auth_interceptor.rb
322
350
  - lib/bidi2pdf/bidi/browser.rb
351
+ - lib/bidi2pdf/bidi/browser_console_logger.rb
323
352
  - lib/bidi2pdf/bidi/browser_tab.rb
324
353
  - lib/bidi2pdf/bidi/client.rb
325
354
  - lib/bidi2pdf/bidi/command_manager.rb
@@ -328,6 +357,7 @@ files:
328
357
  - lib/bidi2pdf/bidi/commands/base.rb
329
358
  - lib/bidi2pdf/bidi/commands/browser_close.rb
330
359
  - lib/bidi2pdf/bidi/commands/browser_create_user_context.rb
360
+ - lib/bidi2pdf/bidi/commands/browser_remove_user_context.rb
331
361
  - lib/bidi2pdf/bidi/commands/browsing_context_close.rb
332
362
  - lib/bidi2pdf/bidi/commands/browsing_context_navigate.rb
333
363
  - lib/bidi2pdf/bidi/commands/browsing_context_print.rb
@@ -347,6 +377,7 @@ files:
347
377
  - lib/bidi2pdf/bidi/connection_manager.rb
348
378
  - lib/bidi2pdf/bidi/event_manager.rb
349
379
  - lib/bidi2pdf/bidi/interceptor.rb
380
+ - lib/bidi2pdf/bidi/js_logger_helper.rb
350
381
  - lib/bidi2pdf/bidi/logger_events.rb
351
382
  - lib/bidi2pdf/bidi/network_event.rb
352
383
  - lib/bidi2pdf/bidi/network_event_formatters.rb
@@ -361,9 +392,13 @@ files:
361
392
  - lib/bidi2pdf/cli.rb
362
393
  - lib/bidi2pdf/dsl.rb
363
394
  - lib/bidi2pdf/launcher.rb
395
+ - lib/bidi2pdf/notifications.rb
396
+ - lib/bidi2pdf/notifications/event.rb
397
+ - lib/bidi2pdf/notifications/instrumenter.rb
398
+ - lib/bidi2pdf/notifications/logging_subscriber.rb
364
399
  - lib/bidi2pdf/process_tree.rb
365
400
  - lib/bidi2pdf/session_runner.rb
366
- - lib/bidi2pdf/utils.rb
401
+ - lib/bidi2pdf/verbose_logger.rb
367
402
  - lib/bidi2pdf/version.rb
368
403
  - sig/bidi2pdf.rbs
369
404
  - sig/bidi2pdf/bidi/add_headers_interceptor.rbs
@@ -429,7 +464,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
429
464
  requirements:
430
465
  - - ">="
431
466
  - !ruby/object:Gem::Version
432
- version: 3.0.0
467
+ version: 3.3.0
433
468
  required_rubygems_version: !ruby/object:Gem::Requirement
434
469
  requirements:
435
470
  - - ">="
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Bidi2pdf
4
- module Utils
5
- def timed(operation_name)
6
- start_time = Time.now
7
- result = yield
8
- elapsed = Time.now - start_time
9
- Bidi2pdf.logger.debug "#{operation_name} completed in #{elapsed.round(3)}s"
10
- result
11
- end
12
-
13
- module_function :timed
14
- end
15
- end