bidi2pdf 0.1.1 โ 0.1.3
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 +13 -0
- data/CHANGELOG.md +40 -2
- data/README.md +10 -0
- data/Rakefile +2 -0
- data/cliff.toml +138 -0
- data/docker/Dockerfile.chromedriver +33 -0
- data/docker/docker-compose.yml +7 -0
- data/docker/entrypoint.sh +3 -0
- data/docker/nginx/default.conf +6 -0
- data/lib/bidi2pdf/bidi/add_headers_interceptor.rb +1 -1
- data/lib/bidi2pdf/bidi/auth_interceptor.rb +1 -1
- data/lib/bidi2pdf/bidi/client.rb +62 -146
- data/lib/bidi2pdf/bidi/command_manager.rb +82 -0
- data/lib/bidi2pdf/bidi/connection_manager.rb +34 -0
- data/lib/bidi2pdf/bidi/session.rb +30 -22
- data/lib/bidi2pdf/chromedriver_manager.rb +40 -16
- data/lib/bidi2pdf/cli.rb +147 -18
- data/lib/bidi2pdf/launcher.rb +19 -6
- data/lib/bidi2pdf/version.rb +1 -1
- data/sig/bidi2pdf/bidi/add_headers_interceptor.rbs +20 -0
- data/sig/bidi2pdf/bidi/auth_interceptor.rbs +17 -0
- data/sig/bidi2pdf/bidi/browser.rbs +38 -0
- data/sig/bidi2pdf/bidi/browser_tab.rbs +42 -0
- data/sig/bidi2pdf/bidi/client.rbs +72 -0
- data/sig/bidi2pdf/bidi/event_manager.rbs +29 -0
- data/sig/bidi2pdf/bidi/network_event.rbs +51 -0
- data/sig/bidi2pdf/bidi/network_events.rbs +55 -0
- data/sig/bidi2pdf/bidi/print_parameters_validator.rbs +44 -0
- data/sig/bidi2pdf/bidi/session.rbs +52 -0
- data/sig/bidi2pdf/bidi/user_context.rbs +50 -0
- data/sig/bidi2pdf/bidi/web_socket_dispatcher.rbs +53 -0
- data/sig/bidi2pdf/chromedriver_manager.rbs +42 -0
- data/sig/bidi2pdf/cli.rbs +21 -0
- data/sig/bidi2pdf/launcher.rbs +38 -0
- data/sig/bidi2pdf/process_tree.rbs +27 -0
- data/sig/bidi2pdf/session_runner.rbs +51 -0
- data/sig/bidi2pdf/utils.rbs +5 -0
- data/sig/vendor/thor.rbs +13 -0
- data/tasks/changelog.rake +29 -0
- data/tasks/generate_rbs.rake +64 -0
- metadata +48 -8
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
def cliff_installed?
|
4
|
+
system("which git-cliff > /dev/null 2>&1")
|
5
|
+
end
|
6
|
+
|
7
|
+
namespace :changelog do
|
8
|
+
desc "Generate unreleased section in CHANGELOG.md (requires git-cliff)"
|
9
|
+
task :update_unreleased do
|
10
|
+
unless cliff_installed?
|
11
|
+
puts "๐ซ git-cliff is not installed!"
|
12
|
+
puts "๐ Install it here: https://git-cliff.org/docs/installation/"
|
13
|
+
exit 1
|
14
|
+
end
|
15
|
+
|
16
|
+
generated = `git cliff --unreleased`
|
17
|
+
|
18
|
+
changelog_path = "CHANGELOG.md"
|
19
|
+
changelog = File.read(changelog_path)
|
20
|
+
|
21
|
+
updated = changelog.sub(
|
22
|
+
/<!--.*generated\s+by\s+git-cliff\s+start\s+-->(.*?)<!--\s+generated\s+by\s+git-cliff\s+end\s+-->/m,
|
23
|
+
generated.strip
|
24
|
+
)
|
25
|
+
|
26
|
+
File.write(changelog_path, updated)
|
27
|
+
puts "โ
Replaced generated section in CHANGELOG.md"
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "fileutils"
|
4
|
+
require "rbs"
|
5
|
+
|
6
|
+
SOURCE_DIR = "lib"
|
7
|
+
OUTPUT_DIR = "sig"
|
8
|
+
|
9
|
+
# rubocop:disable Metrics/BlockLength
|
10
|
+
namespace :rbs do
|
11
|
+
file_list = FileList["#{SOURCE_DIR}/**/*.rb"]
|
12
|
+
|
13
|
+
desc "Generate all RBS files"
|
14
|
+
task generate_rbs: :rbs_targets
|
15
|
+
|
16
|
+
rbs_map = file_list.to_h do |rb|
|
17
|
+
relative = rb.sub(%r{^#{SOURCE_DIR}/}, "")
|
18
|
+
rbs = File.join(OUTPUT_DIR, relative.sub(/\.rb$/, ".rbs"))
|
19
|
+
[rbs, rb]
|
20
|
+
end
|
21
|
+
|
22
|
+
rbs_map.each do |rbs_path, rb_path|
|
23
|
+
file rbs_path => rb_path do
|
24
|
+
puts "๐ง Generating: #{rbs_path} (from #{rb_path})"
|
25
|
+
|
26
|
+
FileUtils.mkdir_p(File.dirname(rbs_path))
|
27
|
+
|
28
|
+
begin
|
29
|
+
input = Pathname(rb_path)
|
30
|
+
output = Pathname(rbs_path)
|
31
|
+
|
32
|
+
parser = RBS::Prototype::RB.new
|
33
|
+
parser.parse input.read
|
34
|
+
|
35
|
+
if output.file?
|
36
|
+
puts "โ ๏ธ RBS file already exists: #{rbs_path}"
|
37
|
+
else
|
38
|
+
puts "๐ Writing RBS file: #{rbs_path}"
|
39
|
+
|
40
|
+
output.open("w") do |io|
|
41
|
+
writer = RBS::Writer.new(out: io)
|
42
|
+
writer.write(parser.decls)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
rescue StandardError => e
|
46
|
+
puts "โ Error generating RBS for #{rb_path}: #{e.message}"
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
desc "Generate RBS files for all Ruby files"
|
52
|
+
task rbs_targets: rbs_map.keys do
|
53
|
+
puts "โ
RBS generation complete!"
|
54
|
+
end
|
55
|
+
|
56
|
+
desc "Clean all generated RBS files"
|
57
|
+
task :clean_rbs do
|
58
|
+
FileList["#{OUTPUT_DIR}/**/*.rbs"].each do |file|
|
59
|
+
FileUtils.rm_f(file)
|
60
|
+
end
|
61
|
+
puts "๐งน Cleaned up all RBS files"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
# rubocop:enable Metrics/BlockLength
|
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.
|
4
|
+
version: 0.1.3
|
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-
|
11
|
+
date: 2025-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: base64
|
@@ -150,6 +150,20 @@ dependencies:
|
|
150
150
|
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '13.0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rbs
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '3.4'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '3.4'
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: rspec
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
@@ -221,33 +235,33 @@ dependencies:
|
|
221
235
|
- !ruby/object:Gem::Version
|
222
236
|
version: '0.22'
|
223
237
|
- !ruby/object:Gem::Dependency
|
224
|
-
name:
|
238
|
+
name: testcontainers
|
225
239
|
requirement: !ruby/object:Gem::Requirement
|
226
240
|
requirements:
|
227
241
|
- - "~>"
|
228
242
|
- !ruby/object:Gem::Version
|
229
|
-
version:
|
243
|
+
version: 0.2.0
|
230
244
|
type: :development
|
231
245
|
prerelease: false
|
232
246
|
version_requirements: !ruby/object:Gem::Requirement
|
233
247
|
requirements:
|
234
248
|
- - "~>"
|
235
249
|
- !ruby/object:Gem::Version
|
236
|
-
version:
|
250
|
+
version: 0.2.0
|
237
251
|
- !ruby/object:Gem::Dependency
|
238
|
-
name:
|
252
|
+
name: unicode_utils
|
239
253
|
requirement: !ruby/object:Gem::Requirement
|
240
254
|
requirements:
|
241
255
|
- - "~>"
|
242
256
|
- !ruby/object:Gem::Version
|
243
|
-
version: '1.
|
257
|
+
version: '1.4'
|
244
258
|
type: :development
|
245
259
|
prerelease: false
|
246
260
|
version_requirements: !ruby/object:Gem::Requirement
|
247
261
|
requirements:
|
248
262
|
- - "~>"
|
249
263
|
- !ruby/object:Gem::Version
|
250
|
-
version: '1.
|
264
|
+
version: '1.4'
|
251
265
|
description: |
|
252
266
|
Bidi2pdf is a powerful PDF generation tool that uses Chrome's BiDirectional Protocol
|
253
267
|
to render web pages as high-quality PDF documents. It offers:
|
@@ -279,8 +293,11 @@ files:
|
|
279
293
|
- LICENSE.txt
|
280
294
|
- README.md
|
281
295
|
- Rakefile
|
296
|
+
- cliff.toml
|
282
297
|
- docker/Dockerfile
|
298
|
+
- docker/Dockerfile.chromedriver
|
283
299
|
- docker/docker-compose.yml
|
300
|
+
- docker/entrypoint.sh
|
284
301
|
- docker/nginx/default.conf
|
285
302
|
- docker/nginx/htpasswd
|
286
303
|
- exe/bidi2pdf
|
@@ -290,6 +307,8 @@ files:
|
|
290
307
|
- lib/bidi2pdf/bidi/browser.rb
|
291
308
|
- lib/bidi2pdf/bidi/browser_tab.rb
|
292
309
|
- lib/bidi2pdf/bidi/client.rb
|
310
|
+
- lib/bidi2pdf/bidi/command_manager.rb
|
311
|
+
- lib/bidi2pdf/bidi/connection_manager.rb
|
293
312
|
- lib/bidi2pdf/bidi/event_manager.rb
|
294
313
|
- lib/bidi2pdf/bidi/network_event.rb
|
295
314
|
- lib/bidi2pdf/bidi/network_events.rb
|
@@ -305,11 +324,32 @@ files:
|
|
305
324
|
- lib/bidi2pdf/utils.rb
|
306
325
|
- lib/bidi2pdf/version.rb
|
307
326
|
- sig/bidi2pdf.rbs
|
327
|
+
- sig/bidi2pdf/bidi/add_headers_interceptor.rbs
|
328
|
+
- sig/bidi2pdf/bidi/auth_interceptor.rbs
|
329
|
+
- sig/bidi2pdf/bidi/browser.rbs
|
330
|
+
- sig/bidi2pdf/bidi/browser_tab.rbs
|
331
|
+
- sig/bidi2pdf/bidi/client.rbs
|
332
|
+
- sig/bidi2pdf/bidi/event_manager.rbs
|
333
|
+
- sig/bidi2pdf/bidi/network_event.rbs
|
334
|
+
- sig/bidi2pdf/bidi/network_events.rbs
|
335
|
+
- sig/bidi2pdf/bidi/print_parameters_validator.rbs
|
336
|
+
- sig/bidi2pdf/bidi/session.rbs
|
337
|
+
- sig/bidi2pdf/bidi/user_context.rbs
|
338
|
+
- sig/bidi2pdf/bidi/web_socket_dispatcher.rbs
|
308
339
|
- sig/bidi2pdf/chrome/chromedriver_downloader.rbs
|
309
340
|
- sig/bidi2pdf/chrome/downloader_helper.rbs
|
310
341
|
- sig/bidi2pdf/chrome/finder.rbs
|
311
342
|
- sig/bidi2pdf/chrome/platform.rbs
|
312
343
|
- sig/bidi2pdf/chrome/version_resolver.rbs
|
344
|
+
- sig/bidi2pdf/chromedriver_manager.rbs
|
345
|
+
- sig/bidi2pdf/cli.rbs
|
346
|
+
- sig/bidi2pdf/launcher.rbs
|
347
|
+
- sig/bidi2pdf/process_tree.rbs
|
348
|
+
- sig/bidi2pdf/session_runner.rbs
|
349
|
+
- sig/bidi2pdf/utils.rbs
|
350
|
+
- sig/vendor/thor.rbs
|
351
|
+
- tasks/changelog.rake
|
352
|
+
- tasks/generate_rbs.rake
|
313
353
|
- tmp/.keep
|
314
354
|
homepage: https://github.com/dieter-medium/bidi2pdf
|
315
355
|
licenses:
|