Dhalang 0.6.2 → 0.6.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0b5a8f2427673c1a21cbbfcc3f9b3119c11890b9dbb21a1656ec970c14b4faef
4
- data.tar.gz: d98cac7a86e5c12c0fc845e71a8810c3adaa3c583fb53a4139f2e1408231cceb
3
+ metadata.gz: 35f7dcd3cc7787c9e13429033b9c177d6f5c82f0b94364a2d4efbe3ffe601a16
4
+ data.tar.gz: b204fe4df6c7b3e0da1e7d59407a711a9bd1d9f41c7828b05eccc478499e2b0b
5
5
  SHA512:
6
- metadata.gz: 142fcef44cc80374790a915356c7eda5b5a5d91e532c44a4a81515f07454b9c2a7a04d34d53b3cb481fb0ed2f58cc6a0ed974a0ad4d244e9622f754e32e47624
7
- data.tar.gz: 8379ed46f315e7cf3cfa657c2972fbdc3e34bee4255f2be741e84835c82536d4ace52290fb0197e1638a77667fa0a59309357ce62bca3887ba746c44665d8e9c
6
+ metadata.gz: 25c582e213b4b26851e59859ab24115f136ea02b4b2889eb99502a9b3d3ddc7688f667ffe656d4f79afb81a65dda0b81a2e482a8d310890a1baf5c11fd17dbc0
7
+ data.tar.gz: 3cd5d4ece1b4e8f87a59abeb781ae241e8b7a515665f6b5c57cc636ccb767a98ebc7a7be71f7746f379bf71d083aba33eb7003c524e9efa1d652d77a940b2656
data/.travis.yml CHANGED
@@ -1,13 +1,21 @@
1
1
  language: ruby
2
2
  node_js:
3
- - node
3
+ - node
4
4
  rvm:
5
- - 2.6
5
+ - 2.6
6
6
  addons:
7
7
  chrome: stable
8
8
  before_install:
9
- - nvm install v15.0.1
9
+ - nvm install v15.0.1
10
10
  install:
11
- - bundle install
12
- - npm install
13
- script: bundle exec rake spec
11
+ - bundle install
12
+ - npm install
13
+ script: bundle exec rake spec
14
+ deploy:
15
+ provider: rubygems
16
+ gemspec: Dhalang.gemspec
17
+ api_key:
18
+ secure: PMiaYF8Xtyyl9Kuhf9WwDRaUzUcqbe430DF8Rwk2qYM1oI8eiYbESswHVavAnrT+ZLKZVzp0+avXJ1TFjoz2tHBa7YVmmz76+RvECozwBXFVofK0GX8c6PVZTuuHgoanr1RVv0KTJOZXs5Aa+372Er31ESuwaaRPU2y/d8aotxtoe7MUoVle67S7Z28H53jwDCut54WFq6hKi+gNO/B+7y/e2efPgrqSktHxaPDGcaUaX9v8fAYBJgAulJLYMeRj+m7IQccajIjppr7vWDE1m9XEDAK71i3EZis96/z+KexB2bo3+Qc+TvpTWP5NeKw61uhtPn9HU4+XCaOV8Vz0e6PH2JfS82h333BcSifXjcFb9iQU8aEMpSpcjraUvvvu8JZepUUO//vtGEJLyOJ0L4f9XiUPhQ15OYjBsJ2ADFdNcqyFeASDuLoeKbAQrWunyTStb+wFrr5TzAoQp9ItZbEt6eHaI6WSd4qhJfzqU7NOzE06Ns03J1jMdmzMxREl8ENJFle65fQouQfRnfcZTS6qW7UX/7YZUiMw60Cpa15qHW+92glCkOuiZUhr4D999ejqMFY5Jd3tHGVBX0/1MWc2jl0fPk2/fueA/YW8xLd3xKP9p0KhbqWZhiMxIct5w718nfOLuSoL1VLJRImj4HAKmoCFKP4RE+1Vl95UwEY=
19
+ on:
20
+ branch: master
21
+ tags: true
data/Dhalang.gemspec CHANGED
@@ -22,9 +22,9 @@ Gem::Specification.new do |spec|
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ["lib"]
24
24
 
25
- spec.add_development_dependency "bundler", "~> 1.16"
26
- spec.add_development_dependency "rake", "~> 13.0.1"
25
+ spec.add_development_dependency "bundler", "~> 2.3.6"
26
+ spec.add_development_dependency "fastimage", "~> 2.2.6"
27
+ spec.add_development_dependency "pdf-reader", "~> 2.9.0"
28
+ spec.add_development_dependency "rake", "~> 13.0.6"
27
29
  spec.add_development_dependency "rspec", "~> 3.0"
28
- spec.add_development_dependency "pdf-reader", "~> 2.2"
29
- spec.add_development_dependency "fastimage", "~> 1.8"
30
30
  end
data/Gemfile.lock CHANGED
@@ -1,52 +1,49 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- Dhalang (0.6.0)
4
+ Dhalang (0.6.4)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- Ascii85 (1.0.3)
10
- addressable (2.3.8)
9
+ Ascii85 (1.1.0)
11
10
  afm (0.2.2)
12
- diff-lcs (1.3)
13
- fastimage (1.9.0)
14
- addressable (~> 2.3.5)
11
+ diff-lcs (1.5.0)
12
+ fastimage (2.2.6)
15
13
  hashery (2.1.2)
16
- pdf-reader (2.4.0)
17
- Ascii85 (~> 1.0.0)
14
+ pdf-reader (2.9.2)
15
+ Ascii85 (~> 1.0)
18
16
  afm (~> 0.2.1)
19
17
  hashery (~> 2.0)
20
18
  ruby-rc4
21
19
  ttfunk
22
- rake (13.0.1)
23
- rspec (3.9.0)
24
- rspec-core (~> 3.9.0)
25
- rspec-expectations (~> 3.9.0)
26
- rspec-mocks (~> 3.9.0)
27
- rspec-core (3.9.1)
28
- rspec-support (~> 3.9.1)
29
- rspec-expectations (3.9.0)
20
+ rake (13.0.6)
21
+ rspec (3.11.0)
22
+ rspec-core (~> 3.11.0)
23
+ rspec-expectations (~> 3.11.0)
24
+ rspec-mocks (~> 3.11.0)
25
+ rspec-core (3.11.0)
26
+ rspec-support (~> 3.11.0)
27
+ rspec-expectations (3.11.0)
30
28
  diff-lcs (>= 1.2.0, < 2.0)
31
- rspec-support (~> 3.9.0)
32
- rspec-mocks (3.9.1)
29
+ rspec-support (~> 3.11.0)
30
+ rspec-mocks (3.11.1)
33
31
  diff-lcs (>= 1.2.0, < 2.0)
34
- rspec-support (~> 3.9.0)
35
- rspec-support (3.9.2)
32
+ rspec-support (~> 3.11.0)
33
+ rspec-support (3.11.0)
36
34
  ruby-rc4 (0.1.5)
37
- ttfunk (1.6.2.1)
35
+ ttfunk (1.7.0)
38
36
 
39
37
  PLATFORMS
40
- ruby
41
- x64-mingw32
38
+ x86_64-darwin-20
42
39
 
43
40
  DEPENDENCIES
44
41
  Dhalang!
45
- bundler (~> 1.16)
46
- fastimage (~> 1.8)
47
- pdf-reader (~> 2.2)
48
- rake (~> 13.0.1)
42
+ bundler (~> 2.3.6)
43
+ fastimage (~> 2.2.6)
44
+ pdf-reader (~> 2.9.0)
45
+ rake (~> 13.0.6)
49
46
  rspec (~> 3.0)
50
47
 
51
48
  BUNDLED WITH
52
- 1.17.3
49
+ 2.3.15
data/README.md CHANGED
@@ -27,19 +27,32 @@ Install puppeteer in your application's root directory:
27
27
  <sub>NodeJS v10.18.1 or greater is required</sub>
28
28
  ## Usage
29
29
  __Get a PDF of a website url__
30
- `Dhalang::PDF.get_from_url("https://www.google.com")`
30
+ ```ruby
31
+ Dhalang::PDF.get_from_url("https://www.google.com")
32
+ ```
31
33
  It is important to pass the complete url, leaving out https://, http:// or www. will result in an error.
32
-
34
+
33
35
  __Get a PDF of a HTML string__
34
- `Dhalang::PDF.get_from_html("<html><head></head><body><h1>examplestring</h1></body></html>")`
36
+ ```ruby
37
+ Dhalang::PDF.get_from_html("<html><head></head><body><h1>examplestring</h1></body></html>")
38
+ ```
35
39
 
36
40
  __Get a PNG screenshot of a website__
37
- `Dhalang::Screenshot.get_from_url_as_png("https://www.google.com")`
41
+ ```ruby
42
+ Dhalang::Screenshot.get_from_url("https://www.google.com", :png)
43
+ ```
38
44
 
39
45
  __Get a JPEG screenshot of a website__
40
- `Dhalang::Screenshot.get_from_url_as_jpeg("https://www.google.com")`
46
+ ```ruby
47
+ Dhalang::Screenshot.get_from_url("https://www.google.com", :jpeg)
48
+ ```
41
49
 
42
- All methods return a string containing the PDF or JPEG/PNG in binary.
50
+ __Get a WEBP screenshot of a website__
51
+ ```ruby
52
+ Dhalang::Screenshot.get_from_url("https://www.google.com", :webp)
53
+ ```
54
+
55
+ All methods return a string containing the PDF or JPEG/PNG/WEBP in binary.
43
56
 
44
57
 
45
58
 
@@ -47,31 +60,40 @@ All methods return a string containing the PDF or JPEG/PNG in binary.
47
60
  To override the default options that are set by Dhalang you can pass as last argument a hash with the custom options you want to set.
48
61
 
49
62
  For example to set custom margins for PDFs:
50
-
51
- `Dhalang::PDF.get_from_url("https://www.google.com", {margin: { top: 100, right: 100, bottom: 100, left: 100}})
52
- `
63
+ ```ruby
64
+ Dhalang::PDF.get_from_url("https://www.google.com", {margin: { top: 100, right: 100, bottom: 100, left: 100}})
65
+ ```
53
66
 
54
67
  For example to only take a screenshot of the visible part of the page:
55
- `Dhalang::Screenshot.get_from_url_as_png("https://www.google.com", {fullPage: false})
56
- `
68
+ ```ruby
69
+ Dhalang::Screenshot.get_from_url("https://www.google.com", :webp, {fullPage: false})
70
+ ```
57
71
 
58
72
  A list of all possible PDF options that can be set, can be found at: https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#pagepdfoptions
59
73
 
60
74
  A list of all possible screenshot options that can be set, can be found at: https://github.com/puppeteer/puppeteer/blob/main/docs/api.md#pagescreenshotoptions
61
75
 
62
-
76
+ > The default Puppeteer options contain the options `headerTemplate` and `footerTemplate`. Puppeteer expects these to be HTML strings. By default, the Dhalang
77
+ > gem passes all options as arguments in a `node ...` shell command. In case the HTML strings are too long they might surpass the maximum
78
+ > argument length of the host. For example, on Linux the `MAX_ARG_LEN` is 128kB. Therefore, you can also pass the headers and footers as file path using the
79
+ > options `headerTemplateFile` and `footerTemplateFile`. These non-Puppeteer-options will be used to populate the Puppeteer-options `headerTemplate` and `footerTemplate`.
80
+ >
81
+ > For example: `Dhalang::PDF.get_from_url("https://www.google.com", {headerTemplateFile: '/tmp/header.html', footerTemplateFile: '/tmp/footer.html'})`
63
82
 
64
83
 
65
84
  ## Custom user options
66
85
  You may want to change the way Dhalang interacts with Puppeteer in general. User options can be set by providing them in a hash as last argument to any calls you make to the library. Are you setting both custom PDF and user options? Then they should be passed as a single hash.
67
86
 
68
87
  For example to set a custom navigation timeout:
69
- `Dhalang::Screenshot.get_from_url_as_jpeg("https://www.google.com", {navigationTimeout: 20000})`
88
+ ```ruby
89
+ Dhalang::Screenshot.get_from_url("https://www.google.com", :jpeg, {navigationTimeout: 20000})
90
+ ```
70
91
 
71
92
  Below table lists all possible configuration parameters that can be set:
72
93
  | Key | Description | Default |
73
94
  |--------------------|-----------------------------------------------------------------------------------------|---------------------------------|
74
95
  | navigationTimeout | Amount of milliseconds until Puppeteer while timeout when navigating to the given page | 10000 |
96
+ | printToPDFTimeout | Amount of milliseconds until Puppeteer while timeout when calling Page.printToPDF | 0 (unlimited) |
75
97
  | navigationWaitForSelector | If set, Dhalang will wait for the specified selector to appear before creating the screenshot or PDF | None |
76
98
  | navigationWaitForXPath | If set, Dhalang will wait for the specified XPath to appear before creating the screenshot or PDF | None |
77
99
  | userAgent | User agent to send with the request | Default Puppeteer one |
@@ -79,7 +101,7 @@ Below table lists all possible configuration parameters that can be set:
79
101
  | isAutoHeight | When set to true the height of generated PDFs will be based on the scrollHeight property of the document body | false |
80
102
  | viewPort | Custom viewport to use for the request | Default Puppeteer one |
81
103
  | httpAuthenticationCredentials | Custom HTTP authentication credentials to use for the request | None |
82
-
104
+ | chromeOptions | A array of [options](https://peter.sh/experiments/chromium-command-line-switches/) that can be passed to puppeteer in addition to the mandatory `['--no-sandbox', '--disable-setuid-sandbox']` | [] |
83
105
 
84
106
 
85
107
  ## Examples of using Dhalang
@@ -91,18 +113,10 @@ def example_controller_method
91
113
  end
92
114
  ```
93
115
 
94
- To return a PNG from a Rails controller you can do the following:
116
+ To return a screenshot from a Rails controller you can do the following:
95
117
  ```ruby
96
118
  def example_controller_method
97
- binary_png = Dhalang::Screenshot.get_from_url_as_png("https://www.google.com")
119
+ binary_png = Dhalang::Screenshot.get_from_url("https://www.google.com", :png)
98
120
  send_data(binary_png, filename: 'screenshotofgoogle.png', type: 'image/png')
99
121
  end
100
- ```
101
-
102
- To return a JPEG from a Rails controller you can do the following:
103
- ```ruby
104
- def example_controller_method
105
- binary_jpeg = Dhalang::Screenshot.get_from_url_as_jpeg("https://www.google.com")
106
- send_data(binary_jpeg, filename: 'screenshotofgoogle.jpeg', type: 'image/jpeg')
107
- end
108
- ```
122
+ ```
@@ -5,15 +5,17 @@ module Dhalang
5
5
  private_constant :NODE_MODULES_PATH
6
6
 
7
7
  USER_OPTIONS = {
8
- navigationTimeout: 10000,
9
- navigationWaitUntil: 'load',
10
- navigationWaitForSelector: '',
11
- navigationWaitForXPath: '',
12
- userAgent: '',
13
- isHeadless: true,
14
- viewPort: '',
15
- httpAuthenticationCredentials: '',
16
- isAutoHeight: false
8
+ navigationTimeout: 10000,
9
+ printToPDFTimeout: 0, # unlimited
10
+ navigationWaitUntil: 'load',
11
+ navigationWaitForSelector: '',
12
+ navigationWaitForXPath: '',
13
+ userAgent: '',
14
+ isHeadless: true,
15
+ viewPort: '',
16
+ httpAuthenticationCredentials: '',
17
+ isAutoHeight: false,
18
+ chromeOptions: []
17
19
  }
18
20
  private_constant :USER_OPTIONS
19
21
 
@@ -22,6 +24,8 @@ module Dhalang
22
24
  displayHeaderFooter: false,
23
25
  headerTemplate: '',
24
26
  footerTemplate: '',
27
+ headerTemplateFile: '',
28
+ footerTemplateFile: '',
25
29
  printBackground: true,
26
30
  landscape: false,
27
31
  pageRanges: '',
@@ -34,18 +38,15 @@ module Dhalang
34
38
  }
35
39
  private_constant :DEFAULT_PDF_OPTIONS
36
40
 
37
- DEFAULT_PNG_OPTIONS = {
41
+ DEFAULT_SCREENSHOT_OPTIONS = {
38
42
  fullPage: true,
39
43
  clip: nil,
40
44
  omitBackground: false
41
45
  }
42
- private_constant :DEFAULT_PNG_OPTIONS
46
+ private_constant :DEFAULT_SCREENSHOT_OPTIONS
43
47
 
44
48
  DEFAULT_JPEG_OPTIONS = {
45
- quality: 100,
46
- fullPage: true,
47
- clip: nil,
48
- omitBackground: false
49
+ quality: 100
49
50
  }
50
51
  private_constant :DEFAULT_JPEG_OPTIONS
51
52
 
@@ -88,7 +89,7 @@ module Dhalang
88
89
  imageType: temp_file_extension,
89
90
  userOptions: USER_OPTIONS.map { |option, value| [option, options.has_key?(option) ? options[option] : value]}.to_h,
90
91
  pdfOptions: DEFAULT_PDF_OPTIONS.map { |option, value| [option, options.has_key?(option) ? options[option] : value] }.to_h,
91
- pngOptions: DEFAULT_PNG_OPTIONS.map { |option, value| [option, options.has_key?(option) ? options[option] : value] }.to_h,
92
+ screenshotOptions: DEFAULT_SCREENSHOT_OPTIONS.map { |option, value| [option, options.has_key?(option) ? options[option] : value] }.to_h,
92
93
  jpegOptions: DEFAULT_JPEG_OPTIONS.map { |option, value| [option, options.has_key?(option) ? options[option] : value] }.to_h
93
94
  }.to_json
94
95
  end
@@ -1,3 +1,3 @@
1
1
  module Dhalang
2
- VERSION = "0.6.2"
2
+ VERSION = "0.6.5"
3
3
  end
data/lib/Screenshot.rb CHANGED
@@ -2,8 +2,11 @@ module Dhalang
2
2
  # Allows consumers of this library to take screenshots with Puppeteer.
3
3
  class Screenshot
4
4
  PUPPETEER_SCRIPT_PATH = File.expand_path('../js/screenshot-generator.js', __FILE__).freeze
5
+ IMAGE_TYPES = [:jpeg, :png, :webp].freeze
5
6
  private_constant :PUPPETEER_SCRIPT_PATH
7
+ private_constant :IMAGE_TYPES
6
8
 
9
+ # <b>DEPRECATED:</b> Please use `get_from_url(url, :jpeg)` instead.
7
10
  # Captures a full JPEG screenshot of the webpage under the given url.
8
11
  #
9
12
  # @param [String] url The url to take a screenshot of.
@@ -11,9 +14,11 @@ module Dhalang
11
14
  #
12
15
  # @return [String] the screenshot that was taken as binary.
13
16
  def self.get_from_url_as_jpeg(url, options = {})
14
- get(url, "jpeg", options)
17
+ warn "[DEPRECATION] `get_from_url_as_jpeg` is deprecated. Use `get_from_url(url, :jpeg)` instead."
18
+ get_from_url(url, :jpeg, options)
15
19
  end
16
20
 
21
+ # <b>DEPRECATED:</b> Please use `get_from_url(url, :png)` instead.
17
22
  # Captures a full PNG screenshot of the webpage under the given url.
18
23
  #
19
24
  # @param [String] url The url to take a screenshot of.
@@ -21,19 +26,22 @@ module Dhalang
21
26
  #
22
27
  # @return [String] The screenshot that was taken as binary.
23
28
  def self.get_from_url_as_png(url, options = {})
24
- get(url, "png", options)
29
+ warn "[DEPRECATION] `get_from_url_as_png` is deprecated. Use `get_from_url(url, :png)` instead."
30
+ get_from_url(url, :png, options)
25
31
  end
26
-
27
- # Groups and executes the logic for taking a screenhot of a webpage.
32
+
33
+ # Captures ascreenshot of the webpage under the given url.
28
34
  #
29
35
  # @param [String] url The url to take a screenshot of.
30
- # @param [String] image_type The image type to use for storing the screenshot.
31
- # @param [Hash] options Set of options to use, passed by the user of this library.
36
+ # @param [String] image_type The image type (JPEG/PNG/WEBP) to use for storing the screenshot.
37
+ # @param [Hash] options User configurable options.
32
38
  #
33
39
  # @return [String] The screenshot that was taken as binary.
34
- private_class_method def self.get(url, image_type, options)
40
+ def self.get_from_url(url, image_type, options = {})
35
41
  UrlUtils.validate(url)
42
+ validate_image_type(image_type)
36
43
  validate_options(options)
44
+
37
45
  temp_file = FileUtils.create_temp_file(image_type)
38
46
  begin
39
47
  Puppeteer.visit(url, PUPPETEER_SCRIPT_PATH, temp_file.path, image_type, options)
@@ -44,6 +52,15 @@ module Dhalang
44
52
  return binary_image_content
45
53
  end
46
54
 
55
+ # Raises an error if the given image type is not supported.
56
+ #
57
+ # @param [String] image_type The image_type to validate
58
+ private_class_method def self.validate_image_type(image_type)
59
+ if !IMAGE_TYPES.include? image_type.downcase
60
+ raise DhalangError, 'Unsupported image type'
61
+ end
62
+ end
63
+
47
64
  # Raises an error if the given options might conflict with the Puppeteer configuration.
48
65
  #
49
66
  # @param [Hash] options The options to validate
data/lib/js/dhalang.js CHANGED
@@ -1,3 +1,5 @@
1
+ const fs = require('fs')
2
+
1
3
  /**
2
4
  * @typedef {Object} Configuration
3
5
  * @property {string} webPageUrl - The url of the webpage to visit.
@@ -6,7 +8,7 @@
6
8
  * @property {string} imageType - The type of image to save ( undefined for pdfgenerator ).
7
9
  * @property {UserOptions} userOptions - User defined and default parameters to use when navigating to pages.
8
10
  * @property {Object} pdfOptions - User defined and default parameters to use when creating PDFs. Note: Do not use directly, rather use {@link getConfiguredPdfOptions}.
9
- * @property {Object} pngOptions - User defined and default parameters to use when creating PNGs.
11
+ * @property {Object} screenshotOptions - User defined and default parameters to use when creating screenshots.
10
12
  * @property {Object} jpegOptions - User defined and default parameters to use when creating JPEGs.
11
13
  */
12
14
 
@@ -52,7 +54,7 @@ exports.getConfiguration = function () {
52
54
  exports.launchPuppeteer = async function (configuration) {
53
55
  module.paths.push(configuration.puppeteerPath);
54
56
  const puppeteer = require('puppeteer');
55
- const launchArgs = ['--no-sandbox', '--disable-setuid-sandbox'];
57
+ const launchArgs = ['--no-sandbox', '--disable-setuid-sandbox'].concat(configuration.userOptions.chromeOptions).filter((item, index, self) => self.indexOf(item) === index);
56
58
  return await puppeteer.launch({
57
59
  args: launchArgs,
58
60
  headless: configuration.userOptions.isHeadless
@@ -107,6 +109,22 @@ exports.navigate = async function (page, configuration) {
107
109
  exports.getConfiguredPdfOptions = async function (page, configuration) {
108
110
  const pdfOptions = configuration.pdfOptions
109
111
 
112
+ if (pdfOptions['headerTemplateFile'] !== '') {
113
+ try {
114
+ pdfOptions['headerTemplate'] = fs.readFileSync(pdfOptions['headerTemplateFile'], 'utf8')
115
+ } catch(err) {
116
+ // ignoring file related errors
117
+ }
118
+ }
119
+
120
+ if (pdfOptions['footerTemplateFile'] !== '') {
121
+ try {
122
+ pdfOptions['footerTemplate'] = fs.readFileSync(pdfOptions['footerTemplateFile'], 'utf8')
123
+ } catch(err) {
124
+ // ignoring file related errors
125
+ }
126
+ }
127
+
110
128
  if (configuration.userOptions.isAutoHeight === true) {
111
129
  const pageHeight = await page.evaluate(() => {
112
130
  return Math.max(document.body.scrollHeight, document.body.offsetHeight);
@@ -116,6 +134,8 @@ exports.getConfiguredPdfOptions = async function (page, configuration) {
116
134
  }
117
135
  }
118
136
 
137
+ pdfOptions['timeout'] = configuration.userOptions.printToPDFTimeout
138
+
119
139
  return pdfOptions
120
140
  }
121
141
 
@@ -11,13 +11,13 @@ const createScreenshot = async () => {
11
11
  await dhalang.configure(page, configuration.userOptions);
12
12
  await dhalang.navigate(page, configuration);
13
13
 
14
- const screenshotOptions = configuration.imageType === "png" ? configuration.pngOptions : configuration.jpegOptions
15
14
  await page.screenshot({
16
15
  ...{
17
16
  path: configuration.tempFilePath,
18
17
  type: configuration.imageType,
19
18
  },
20
- ...screenshotOptions
19
+ ...(configuration.imageType === "jpeg") && configuration.jpegOptions,
20
+ ...configuration.screenshotOptions
21
21
  });
22
22
  } catch (error) {
23
23
  console.error(error.message);
data/package-lock.json CHANGED
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "dhalang",
3
- "version": "0.6.1",
3
+ "version": "0.6.4",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "dhalang",
9
- "version": "0.6.1",
9
+ "version": "0.6.4",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
- "puppeteer": "^9.0.0"
12
+ "puppeteer": "^13.3.2"
13
13
  }
14
14
  },
15
15
  "node_modules/@types/node": {
@@ -49,9 +49,9 @@
49
49
  "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
50
50
  },
51
51
  "node_modules/bl": {
52
- "version": "4.0.3",
53
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz",
54
- "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==",
52
+ "version": "4.1.0",
53
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
54
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
55
55
  "dependencies": {
56
56
  "buffer": "^5.5.0",
57
57
  "inherits": "^2.0.4",
@@ -94,21 +94,34 @@
94
94
  "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
95
95
  "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
96
96
  },
97
+ "node_modules/cross-fetch": {
98
+ "version": "3.1.5",
99
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
100
+ "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
101
+ "dependencies": {
102
+ "node-fetch": "2.6.7"
103
+ }
104
+ },
97
105
  "node_modules/debug": {
98
- "version": "4.2.0",
99
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
100
- "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
106
+ "version": "4.3.3",
107
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
108
+ "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
101
109
  "dependencies": {
102
110
  "ms": "2.1.2"
103
111
  },
104
112
  "engines": {
105
113
  "node": ">=6.0"
114
+ },
115
+ "peerDependenciesMeta": {
116
+ "supports-color": {
117
+ "optional": true
118
+ }
106
119
  }
107
120
  },
108
121
  "node_modules/devtools-protocol": {
109
- "version": "0.0.869402",
110
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.869402.tgz",
111
- "integrity": "sha512-VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA=="
122
+ "version": "0.0.960912",
123
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.960912.tgz",
124
+ "integrity": "sha512-I3hWmV9rWHbdnUdmMKHF2NuYutIM2kXz2mdXW8ha7TbRlGTVs+PF+PsB5QWvpCek4Fy9B+msiispCfwlhG5Sqg=="
112
125
  },
113
126
  "node_modules/end-of-stream": {
114
127
  "version": "1.4.4",
@@ -123,7 +136,6 @@
123
136
  "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
124
137
  "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
125
138
  "dependencies": {
126
- "@types/yauzl": "^2.9.1",
127
139
  "debug": "^4.1.1",
128
140
  "get-stream": "^5.1.0",
129
141
  "yauzl": "^2.10.0"
@@ -259,11 +271,22 @@
259
271
  "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
260
272
  },
261
273
  "node_modules/node-fetch": {
262
- "version": "2.6.1",
263
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
264
- "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
274
+ "version": "2.6.7",
275
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
276
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
277
+ "dependencies": {
278
+ "whatwg-url": "^5.0.0"
279
+ },
265
280
  "engines": {
266
281
  "node": "4.x || >=6.0.0"
282
+ },
283
+ "peerDependencies": {
284
+ "encoding": "^0.1.0"
285
+ },
286
+ "peerDependenciesMeta": {
287
+ "encoding": {
288
+ "optional": true
289
+ }
267
290
  }
268
291
  },
269
292
  "node_modules/once": {
@@ -359,23 +382,23 @@
359
382
  }
360
383
  },
361
384
  "node_modules/puppeteer": {
362
- "version": "9.0.0",
363
- "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-9.0.0.tgz",
364
- "integrity": "sha512-Avu8SKWQRC1JKNMgfpH7d4KzzHOL/A65jRYrjNU46hxnOYGwqe4zZp/JW8qulaH0Pnbm5qyO3EbSKvqBUlfvkg==",
385
+ "version": "13.3.2",
386
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.3.2.tgz",
387
+ "integrity": "sha512-TIt8/R0eaUwY1c0/O0sCJpSglvGEWVoWFfGZ2dNtxX3eHuBo1ln9abaWfxTjZfsrkYATLSs8oqEdRZpMNnCsvg==",
365
388
  "hasInstallScript": true,
366
389
  "dependencies": {
367
- "debug": "^4.1.0",
368
- "devtools-protocol": "0.0.869402",
369
- "extract-zip": "^2.0.0",
370
- "https-proxy-agent": "^5.0.0",
371
- "node-fetch": "^2.6.1",
372
- "pkg-dir": "^4.2.0",
373
- "progress": "^2.0.1",
374
- "proxy-from-env": "^1.1.0",
375
- "rimraf": "^3.0.2",
376
- "tar-fs": "^2.0.0",
377
- "unbzip2-stream": "^1.3.3",
378
- "ws": "^7.2.3"
390
+ "cross-fetch": "3.1.5",
391
+ "debug": "4.3.3",
392
+ "devtools-protocol": "0.0.960912",
393
+ "extract-zip": "2.0.1",
394
+ "https-proxy-agent": "5.0.0",
395
+ "pkg-dir": "4.2.0",
396
+ "progress": "2.0.3",
397
+ "proxy-from-env": "1.1.0",
398
+ "rimraf": "3.0.2",
399
+ "tar-fs": "2.1.1",
400
+ "unbzip2-stream": "1.4.3",
401
+ "ws": "8.5.0"
379
402
  },
380
403
  "engines": {
381
404
  "node": ">=10.18.1"
@@ -408,7 +431,21 @@
408
431
  "node_modules/safe-buffer": {
409
432
  "version": "5.2.1",
410
433
  "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
411
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
434
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
435
+ "funding": [
436
+ {
437
+ "type": "github",
438
+ "url": "https://github.com/sponsors/feross"
439
+ },
440
+ {
441
+ "type": "patreon",
442
+ "url": "https://www.patreon.com/feross"
443
+ },
444
+ {
445
+ "type": "consulting",
446
+ "url": "https://feross.org/support"
447
+ }
448
+ ]
412
449
  },
413
450
  "node_modules/string_decoder": {
414
451
  "version": "1.3.0",
@@ -419,20 +456,20 @@
419
456
  }
420
457
  },
421
458
  "node_modules/tar-fs": {
422
- "version": "2.1.0",
423
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz",
424
- "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==",
459
+ "version": "2.1.1",
460
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
461
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
425
462
  "dependencies": {
426
463
  "chownr": "^1.1.1",
427
464
  "mkdirp-classic": "^0.5.2",
428
465
  "pump": "^3.0.0",
429
- "tar-stream": "^2.0.0"
466
+ "tar-stream": "^2.1.4"
430
467
  }
431
468
  },
432
469
  "node_modules/tar-stream": {
433
- "version": "2.1.4",
434
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz",
435
- "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==",
470
+ "version": "2.2.0",
471
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
472
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
436
473
  "dependencies": {
437
474
  "bl": "^4.0.3",
438
475
  "end-of-stream": "^1.4.1",
@@ -449,6 +486,11 @@
449
486
  "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
450
487
  "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
451
488
  },
489
+ "node_modules/tr46": {
490
+ "version": "0.0.3",
491
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
492
+ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
493
+ },
452
494
  "node_modules/unbzip2-stream": {
453
495
  "version": "1.4.3",
454
496
  "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
@@ -463,17 +505,43 @@
463
505
  "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
464
506
  "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
465
507
  },
508
+ "node_modules/webidl-conversions": {
509
+ "version": "3.0.1",
510
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
511
+ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
512
+ },
513
+ "node_modules/whatwg-url": {
514
+ "version": "5.0.0",
515
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
516
+ "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
517
+ "dependencies": {
518
+ "tr46": "~0.0.3",
519
+ "webidl-conversions": "^3.0.0"
520
+ }
521
+ },
466
522
  "node_modules/wrappy": {
467
523
  "version": "1.0.2",
468
524
  "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
469
525
  "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
470
526
  },
471
527
  "node_modules/ws": {
472
- "version": "7.3.1",
473
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
474
- "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==",
528
+ "version": "8.5.0",
529
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
530
+ "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
475
531
  "engines": {
476
- "node": ">=8.3.0"
532
+ "node": ">=10.0.0"
533
+ },
534
+ "peerDependencies": {
535
+ "bufferutil": "^4.0.1",
536
+ "utf-8-validate": "^5.0.2"
537
+ },
538
+ "peerDependenciesMeta": {
539
+ "bufferutil": {
540
+ "optional": true
541
+ },
542
+ "utf-8-validate": {
543
+ "optional": true
544
+ }
477
545
  }
478
546
  },
479
547
  "node_modules/yauzl": {
@@ -521,9 +589,9 @@
521
589
  "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
522
590
  },
523
591
  "bl": {
524
- "version": "4.0.3",
525
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz",
526
- "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==",
592
+ "version": "4.1.0",
593
+ "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
594
+ "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
527
595
  "requires": {
528
596
  "buffer": "^5.5.0",
529
597
  "inherits": "^2.0.4",
@@ -563,18 +631,26 @@
563
631
  "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
564
632
  "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
565
633
  },
634
+ "cross-fetch": {
635
+ "version": "3.1.5",
636
+ "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
637
+ "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==",
638
+ "requires": {
639
+ "node-fetch": "2.6.7"
640
+ }
641
+ },
566
642
  "debug": {
567
- "version": "4.2.0",
568
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
569
- "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
643
+ "version": "4.3.3",
644
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
645
+ "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
570
646
  "requires": {
571
647
  "ms": "2.1.2"
572
648
  }
573
649
  },
574
650
  "devtools-protocol": {
575
- "version": "0.0.869402",
576
- "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.869402.tgz",
577
- "integrity": "sha512-VvlVYY+VDJe639yHs5PHISzdWTLL3Aw8rO4cvUtwvoxFd6FHbE4OpHHcde52M6096uYYazAmd4l0o5VuFRO2WA=="
651
+ "version": "0.0.960912",
652
+ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.960912.tgz",
653
+ "integrity": "sha512-I3hWmV9rWHbdnUdmMKHF2NuYutIM2kXz2mdXW8ha7TbRlGTVs+PF+PsB5QWvpCek4Fy9B+msiispCfwlhG5Sqg=="
578
654
  },
579
655
  "end-of-stream": {
580
656
  "version": "1.4.4",
@@ -698,9 +774,12 @@
698
774
  "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
699
775
  },
700
776
  "node-fetch": {
701
- "version": "2.6.1",
702
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
703
- "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
777
+ "version": "2.6.7",
778
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
779
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
780
+ "requires": {
781
+ "whatwg-url": "^5.0.0"
782
+ }
704
783
  },
705
784
  "once": {
706
785
  "version": "1.4.0",
@@ -774,22 +853,22 @@
774
853
  }
775
854
  },
776
855
  "puppeteer": {
777
- "version": "9.0.0",
778
- "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-9.0.0.tgz",
779
- "integrity": "sha512-Avu8SKWQRC1JKNMgfpH7d4KzzHOL/A65jRYrjNU46hxnOYGwqe4zZp/JW8qulaH0Pnbm5qyO3EbSKvqBUlfvkg==",
780
- "requires": {
781
- "debug": "^4.1.0",
782
- "devtools-protocol": "0.0.869402",
783
- "extract-zip": "^2.0.0",
784
- "https-proxy-agent": "^5.0.0",
785
- "node-fetch": "^2.6.1",
786
- "pkg-dir": "^4.2.0",
787
- "progress": "^2.0.1",
788
- "proxy-from-env": "^1.1.0",
789
- "rimraf": "^3.0.2",
790
- "tar-fs": "^2.0.0",
791
- "unbzip2-stream": "^1.3.3",
792
- "ws": "^7.2.3"
856
+ "version": "13.3.2",
857
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.3.2.tgz",
858
+ "integrity": "sha512-TIt8/R0eaUwY1c0/O0sCJpSglvGEWVoWFfGZ2dNtxX3eHuBo1ln9abaWfxTjZfsrkYATLSs8oqEdRZpMNnCsvg==",
859
+ "requires": {
860
+ "cross-fetch": "3.1.5",
861
+ "debug": "4.3.3",
862
+ "devtools-protocol": "0.0.960912",
863
+ "extract-zip": "2.0.1",
864
+ "https-proxy-agent": "5.0.0",
865
+ "pkg-dir": "4.2.0",
866
+ "progress": "2.0.3",
867
+ "proxy-from-env": "1.1.0",
868
+ "rimraf": "3.0.2",
869
+ "tar-fs": "2.1.1",
870
+ "unbzip2-stream": "1.4.3",
871
+ "ws": "8.5.0"
793
872
  }
794
873
  },
795
874
  "readable-stream": {
@@ -824,20 +903,20 @@
824
903
  }
825
904
  },
826
905
  "tar-fs": {
827
- "version": "2.1.0",
828
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz",
829
- "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==",
906
+ "version": "2.1.1",
907
+ "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
908
+ "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
830
909
  "requires": {
831
910
  "chownr": "^1.1.1",
832
911
  "mkdirp-classic": "^0.5.2",
833
912
  "pump": "^3.0.0",
834
- "tar-stream": "^2.0.0"
913
+ "tar-stream": "^2.1.4"
835
914
  }
836
915
  },
837
916
  "tar-stream": {
838
- "version": "2.1.4",
839
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz",
840
- "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==",
917
+ "version": "2.2.0",
918
+ "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
919
+ "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
841
920
  "requires": {
842
921
  "bl": "^4.0.3",
843
922
  "end-of-stream": "^1.4.1",
@@ -851,6 +930,11 @@
851
930
  "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
852
931
  "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
853
932
  },
933
+ "tr46": {
934
+ "version": "0.0.3",
935
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
936
+ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
937
+ },
854
938
  "unbzip2-stream": {
855
939
  "version": "1.4.3",
856
940
  "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
@@ -865,15 +949,30 @@
865
949
  "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
866
950
  "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
867
951
  },
952
+ "webidl-conversions": {
953
+ "version": "3.0.1",
954
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
955
+ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
956
+ },
957
+ "whatwg-url": {
958
+ "version": "5.0.0",
959
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
960
+ "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
961
+ "requires": {
962
+ "tr46": "~0.0.3",
963
+ "webidl-conversions": "^3.0.0"
964
+ }
965
+ },
868
966
  "wrappy": {
869
967
  "version": "1.0.2",
870
968
  "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
871
969
  "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
872
970
  },
873
971
  "ws": {
874
- "version": "7.3.1",
875
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
876
- "integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA=="
972
+ "version": "8.5.0",
973
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz",
974
+ "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==",
975
+ "requires": {}
877
976
  },
878
977
  "yauzl": {
879
978
  "version": "2.10.0",
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dhalang",
3
- "version": "0.6.1",
3
+ "version": "0.6.4",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "directories": {
@@ -20,6 +20,6 @@
20
20
  },
21
21
  "homepage": "https://github.com/NielsSteensma/Dhalang#readme",
22
22
  "dependencies": {
23
- "puppeteer": "^9.0.0"
23
+ "puppeteer": "^13.3.2"
24
24
  }
25
25
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Dhalang
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Niels Steensma
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-25 00:00:00.000000000 Z
11
+ date: 2022-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,70 +16,70 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.16'
19
+ version: 2.3.6
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.16'
26
+ version: 2.3.6
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
28
+ name: fastimage
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 13.0.1
33
+ version: 2.2.6
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 13.0.1
40
+ version: 2.2.6
41
41
  - !ruby/object:Gem::Dependency
42
- name: rspec
42
+ name: pdf-reader
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.0'
47
+ version: 2.9.0
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.0'
54
+ version: 2.9.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: pdf-reader
56
+ name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.2'
61
+ version: 13.0.6
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.2'
68
+ version: 13.0.6
69
69
  - !ruby/object:Gem::Dependency
70
- name: fastimage
70
+ name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.8'
75
+ version: '3.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.8'
82
+ version: '3.0'
83
83
  description:
84
84
  email:
85
85
  - nielssteensma@yahoo.nl
@@ -127,7 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
127
127
  - !ruby/object:Gem::Version
128
128
  version: '0'
129
129
  requirements: []
130
- rubygems_version: 3.0.3
130
+ rubygems_version: 3.0.8
131
131
  signing_key:
132
132
  specification_version: 4
133
133
  summary: Ruby wrapper for Puppeteer. Generate screenshots and PDF's from HTML!