bidi2pdf 0.1.0
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 +7 -0
- data/.idea/.gitignore +8 -0
- data/.rspec +3 -0
- data/.rubocop.yml +50 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/CHANGELOG.md +5 -0
- data/LICENSE.txt +21 -0
- data/README.md +119 -0
- data/Rakefile +22 -0
- data/docker/Dockerfile +35 -0
- data/docker/docker-compose.yml +1 -0
- data/exe/bidi2pdf +7 -0
- data/lib/bidi2pdf/bidi/add_headers_interceptor.rb +42 -0
- data/lib/bidi2pdf/bidi/auth_interceptor.rb +67 -0
- data/lib/bidi2pdf/bidi/browser.rb +15 -0
- data/lib/bidi2pdf/bidi/browser_tab.rb +180 -0
- data/lib/bidi2pdf/bidi/client.rb +224 -0
- data/lib/bidi2pdf/bidi/event_manager.rb +84 -0
- data/lib/bidi2pdf/bidi/network_event.rb +54 -0
- data/lib/bidi2pdf/bidi/network_events.rb +82 -0
- data/lib/bidi2pdf/bidi/print_parameters_validator.rb +114 -0
- data/lib/bidi2pdf/bidi/session.rb +135 -0
- data/lib/bidi2pdf/bidi/user_context.rb +75 -0
- data/lib/bidi2pdf/bidi/web_socket_dispatcher.rb +70 -0
- data/lib/bidi2pdf/chromedriver_manager.rb +160 -0
- data/lib/bidi2pdf/cli.rb +118 -0
- data/lib/bidi2pdf/launcher.rb +46 -0
- data/lib/bidi2pdf/session_runner.rb +123 -0
- data/lib/bidi2pdf/utils.rb +15 -0
- data/lib/bidi2pdf/version.rb +5 -0
- data/lib/bidi2pdf.rb +25 -0
- data/sig/bidi2pdf/chrome/chromedriver_downloader.rbs +11 -0
- data/sig/bidi2pdf/chrome/downloader_helper.rbs +9 -0
- data/sig/bidi2pdf/chrome/finder.rbs +27 -0
- data/sig/bidi2pdf/chrome/platform.rbs +13 -0
- data/sig/bidi2pdf/chrome/version_resolver.rbs +19 -0
- data/sig/bidi2pdf.rbs +4 -0
- data/tmp/.keep +0 -0
- metadata +327 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
module Bidi2pdf
|
2
|
+
module Chrome
|
3
|
+
module VersionResolver
|
4
|
+
def browser_build_version: -> Gem::Version
|
5
|
+
|
6
|
+
def browser_version: -> Gem::Version
|
7
|
+
|
8
|
+
def direct_url_from_api: (_ToS driver_version, String driver_filename) -> String
|
9
|
+
|
10
|
+
def latest_patch_version_for_build: -> String
|
11
|
+
|
12
|
+
def normalize_version: (_ToS version) -> Gem::Version
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def fetch_data: (String json_file) -> String
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/sig/bidi2pdf.rbs
ADDED
data/tmp/.keep
ADDED
File without changes
|
metadata
ADDED
@@ -0,0 +1,327 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: bidi2pdf
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dieter S.
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2025-04-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: base64
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.2.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.2.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: chromedriver-binary
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: json
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2.10'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2.10'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rubyzip
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.4'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.4'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: thor
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.3'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.3'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: websocket-client-simple
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.9.0
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.9.0
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: diff-lcs
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '1.5'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '1.5'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: pdf-reader
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '2.14'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '2.14'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rake
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '13.0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '13.0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rspec
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '3.0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '3.0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: rubocop
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '1.21'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '1.21'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: rubocop-rake
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0.7'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0.7'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: rubocop-rspec
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - "~>"
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '3.5'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - "~>"
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '3.5'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: simplecov
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0.22'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0.22'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: unicode_utils
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - "~>"
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '1.4'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - "~>"
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '1.4'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: webrick
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - "~>"
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '1.9'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - "~>"
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '1.9'
|
237
|
+
description: |
|
238
|
+
Bidi2pdf is a powerful PDF generation tool that uses Chrome's BiDirectional Protocol
|
239
|
+
to render web pages as high-quality PDF documents. It offers:
|
240
|
+
|
241
|
+
* Command-line interface for easy PDF generation
|
242
|
+
* Support for cookies, headers, and basic authentication
|
243
|
+
* Waiting conditions (window loaded, network idle)
|
244
|
+
* Headless Chrome operation for server environments
|
245
|
+
* Docker compatibility
|
246
|
+
* Customizable PDF output options
|
247
|
+
|
248
|
+
Bidi2pdf uses ChromeDriver to control Chrome through its BiDi protocol, providing
|
249
|
+
precise rendering for reports, invoices, documentation, and other PDF documents
|
250
|
+
from web-based content. It automatically manages the ChromeDriver binary and browser
|
251
|
+
sessions for a seamless experience.
|
252
|
+
email:
|
253
|
+
- 101627195+dieter-medium@users.noreply.github.com
|
254
|
+
executables:
|
255
|
+
- bidi2pdf
|
256
|
+
extensions: []
|
257
|
+
extra_rdoc_files: []
|
258
|
+
files:
|
259
|
+
- ".idea/.gitignore"
|
260
|
+
- ".rspec"
|
261
|
+
- ".rubocop.yml"
|
262
|
+
- ".ruby-gemset"
|
263
|
+
- ".ruby-version"
|
264
|
+
- CHANGELOG.md
|
265
|
+
- LICENSE.txt
|
266
|
+
- README.md
|
267
|
+
- Rakefile
|
268
|
+
- docker/Dockerfile
|
269
|
+
- docker/docker-compose.yml
|
270
|
+
- exe/bidi2pdf
|
271
|
+
- lib/bidi2pdf.rb
|
272
|
+
- lib/bidi2pdf/bidi/add_headers_interceptor.rb
|
273
|
+
- lib/bidi2pdf/bidi/auth_interceptor.rb
|
274
|
+
- lib/bidi2pdf/bidi/browser.rb
|
275
|
+
- lib/bidi2pdf/bidi/browser_tab.rb
|
276
|
+
- lib/bidi2pdf/bidi/client.rb
|
277
|
+
- lib/bidi2pdf/bidi/event_manager.rb
|
278
|
+
- lib/bidi2pdf/bidi/network_event.rb
|
279
|
+
- lib/bidi2pdf/bidi/network_events.rb
|
280
|
+
- lib/bidi2pdf/bidi/print_parameters_validator.rb
|
281
|
+
- lib/bidi2pdf/bidi/session.rb
|
282
|
+
- lib/bidi2pdf/bidi/user_context.rb
|
283
|
+
- lib/bidi2pdf/bidi/web_socket_dispatcher.rb
|
284
|
+
- lib/bidi2pdf/chromedriver_manager.rb
|
285
|
+
- lib/bidi2pdf/cli.rb
|
286
|
+
- lib/bidi2pdf/launcher.rb
|
287
|
+
- lib/bidi2pdf/session_runner.rb
|
288
|
+
- lib/bidi2pdf/utils.rb
|
289
|
+
- lib/bidi2pdf/version.rb
|
290
|
+
- sig/bidi2pdf.rbs
|
291
|
+
- sig/bidi2pdf/chrome/chromedriver_downloader.rbs
|
292
|
+
- sig/bidi2pdf/chrome/downloader_helper.rbs
|
293
|
+
- sig/bidi2pdf/chrome/finder.rbs
|
294
|
+
- sig/bidi2pdf/chrome/platform.rbs
|
295
|
+
- sig/bidi2pdf/chrome/version_resolver.rbs
|
296
|
+
- tmp/.keep
|
297
|
+
homepage: https://github.com/dieter-medium/bidi2pdf
|
298
|
+
licenses:
|
299
|
+
- MIT
|
300
|
+
metadata:
|
301
|
+
allowed_push_host: https://rubygems.org
|
302
|
+
homepage_uri: https://github.com/dieter-medium/bidi2pdf
|
303
|
+
source_code_uri: https://github.com/dieter-medium/bidi2pdf
|
304
|
+
changelog_uri: https://github.com/dieter-medium/bidi2pdf/blob/master/CHANGELOG.md
|
305
|
+
rubygems_mfa_required: 'true'
|
306
|
+
post_install_message:
|
307
|
+
rdoc_options: []
|
308
|
+
require_paths:
|
309
|
+
- lib
|
310
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
311
|
+
requirements:
|
312
|
+
- - ">="
|
313
|
+
- !ruby/object:Gem::Version
|
314
|
+
version: 3.0.0
|
315
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
316
|
+
requirements:
|
317
|
+
- - ">="
|
318
|
+
- !ruby/object:Gem::Version
|
319
|
+
version: '0'
|
320
|
+
requirements: []
|
321
|
+
rubygems_version: 3.5.11
|
322
|
+
signing_key:
|
323
|
+
specification_version: 4
|
324
|
+
summary: A Ruby gem that generates PDFs from web pages using Chrome's BiDi protocol,
|
325
|
+
providing high-quality PDF documents from any URL with full support for modern web
|
326
|
+
features.
|
327
|
+
test_files: []
|