Dhalang 0.3.1 → 0.4.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 +4 -4
- data/.travis.yml +4 -0
- data/Dhalang.gemspec +0 -2
- data/Gemfile.lock +2 -2
- data/README.md +21 -4
- data/lib/Dhalang.rb +1 -0
- data/lib/Dhalang/puppeteer.rb +66 -5
- data/lib/Dhalang/version.rb +1 -1
- data/lib/PDF.rb +12 -9
- data/lib/Screenshot.rb +9 -6
- data/lib/js/dhalang.js +32 -23
- data/lib/js/pdf-generator.js +7 -11
- data/lib/js/screenshot-generator.js +4 -3
- data/package-lock.json +233 -151
- data/package.json +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 835393ff0f501220a6c71edd20db19897e874b578f0921b37f70b5403840c928
|
4
|
+
data.tar.gz: 285639cb8e59c0416d82a15c15ef7e656c00e5d2498b19f885d8635dafc05314
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aeacd63e036366dcd4f61da1b06fe65965378c6d4dba61de5401daa67f7f3f06744f01e7e4d24bd0d28a157e052eb5ff597695e978f73b9290594787ef48a482
|
7
|
+
data.tar.gz: 1888bee0d744f67529fa7927740fbe057ceb73c571c3d06d7de74e24ee028f0769592bc7107bb1696e31e448fd02f7ead676b57f0a94bb2d8ee68192e1382c18
|
data/.travis.yml
CHANGED
data/Dhalang.gemspec
CHANGED
@@ -13,8 +13,6 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.summary = "Ruby wrapper for Puppeteer. Generate screenshots and PDF's from HTML!"
|
14
14
|
spec.homepage = "https://github.com/NielsSteensma/Dhalang"
|
15
15
|
|
16
|
-
|
17
|
-
|
18
16
|
# Specify which files should be added to the gem when it is released.
|
19
17
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
20
18
|
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -21,7 +21,7 @@ Install puppeteer in your application's root directory:
|
|
21
21
|
|
22
22
|
$ npm install puppeteer
|
23
23
|
|
24
|
-
<sub>NodeJS
|
24
|
+
<sub>NodeJS v10.18.1 or greater is required</sub>
|
25
25
|
## Usage
|
26
26
|
__Get a PDF of a website url__
|
27
27
|
`Dhalang::PDF.get_from_url("https://www.google.com")`
|
@@ -38,7 +38,24 @@ __Get a JPEG screenshot of a website__
|
|
38
38
|
|
39
39
|
All methods return a string containing the PDF or JPEG/PNG in binary.
|
40
40
|
|
41
|
-
|
41
|
+
|
42
|
+
|
43
|
+
## Custom configuration
|
44
|
+
Depending on your use case you may want to change the way Dhalang interacts with Puppeteer. You can do this by passing a Hash with custom configuration parameters as last argument to any calls you make to the library.
|
45
|
+
|
46
|
+
So for example:
|
47
|
+
`Dhalang::Screenshot.get_from_url_as_jpeg("https://www.google.com", {navigation_timeout: 20000})`
|
48
|
+
|
49
|
+
Below table list the possible configuration parameters you can set:
|
50
|
+
| Key | Description | Default |
|
51
|
+
|--------------------|-----------------------------------------------------------------------------------------|---------------------------------|
|
52
|
+
| navigation_timeout | Amount of milliseconds until Puppeteer while timeout when navigating to the given page | 10000 |
|
53
|
+
| user_agent | User agent to send with the request | Default Puppeteer one |
|
54
|
+
| view_port | Custom viewport to use for the request | Default Puppeteer one |
|
55
|
+
| http_authentication_credentials | Custom HTTP authentication credentials to use for the request | None |
|
56
|
+
|
57
|
+
## Examples
|
58
|
+
To return a PDF from a Rails controller you can do the following:
|
42
59
|
```
|
43
60
|
def example_controller_method
|
44
61
|
binary_pdf = Dhalang::PDF.get_from_url("https://www.google.com")
|
@@ -46,7 +63,7 @@ def example_controller_method
|
|
46
63
|
end
|
47
64
|
```
|
48
65
|
|
49
|
-
To return
|
66
|
+
To return a PNG from a Rails controller you can do the following:
|
50
67
|
```
|
51
68
|
def example_controller_method
|
52
69
|
binary_png = Dhalang::Screenshot.get_from_url_as_png("https://www.google.com")
|
@@ -54,7 +71,7 @@ def example_controller_method
|
|
54
71
|
end
|
55
72
|
```
|
56
73
|
|
57
|
-
To return
|
74
|
+
To return a JPEG from a Rails controller you can do the following:
|
58
75
|
```
|
59
76
|
def example_controller_method
|
60
77
|
binary_jpeg = Dhalang::Screenshot.get_from_url_as_jpeg("https://www.google.com")
|
data/lib/Dhalang.rb
CHANGED
data/lib/Dhalang/puppeteer.rb
CHANGED
@@ -3,15 +3,76 @@ module Dhalang
|
|
3
3
|
class Puppeteer
|
4
4
|
NODE_MODULES_PATH = Dir.pwd + '/node_modules/'.freeze
|
5
5
|
private_constant :NODE_MODULES_PATH
|
6
|
-
|
6
|
+
|
7
|
+
NAVIGATION_TIMEOUT = 10000
|
8
|
+
private_constant :NAVIGATION_TIMEOUT
|
9
|
+
|
10
|
+
NAVIGATION_WAIT_UNTIL = 'load'
|
11
|
+
private_constant :NAVIGATION_WAIT_UNTIL
|
12
|
+
|
13
|
+
USER_AGENT = ''
|
14
|
+
private_constant :USER_AGENT
|
15
|
+
|
16
|
+
VIEW_PORT = ''
|
17
|
+
private_constant :VIEW_PORT
|
18
|
+
|
19
|
+
HTTP_AUTHENTICATION_CREDENTIALS = ''
|
20
|
+
private_constant :HTTP_AUTHENTICATION_CREDENTIALS
|
21
|
+
|
22
|
+
DEFAULT_OPTIONS = {
|
23
|
+
scale: 1,
|
24
|
+
displayHeaderFooter: false,
|
25
|
+
headerTemplate: '',
|
26
|
+
footerTemplate: '',
|
27
|
+
printBackground: true,
|
28
|
+
landscape: false,
|
29
|
+
pageRanges: '',
|
30
|
+
format: 'A4',
|
31
|
+
width: '',
|
32
|
+
height: '',
|
33
|
+
margin: { top: 36, right: 36, bottom: 20, left: 36 },
|
34
|
+
preferCSSPageSiz: false
|
35
|
+
}
|
36
|
+
private_constant :DEFAULT_OPTIONS
|
37
|
+
|
38
|
+
|
7
39
|
# Launches a new Node process, executing the (Puppeteer) script under the given script_path.
|
8
40
|
#
|
9
41
|
# @param [String] page_url The url to pass to the goTo method of Puppeteer.
|
10
42
|
# @param [String] script_path The absolute path of the JS script to execute.
|
11
|
-
# @param [String] temp_file_path The absolute path of the temp file to use to write any actions
|
43
|
+
# @param [String] temp_file_path The absolute path of the temp file to use to write any actions from Puppeteer.
|
12
44
|
# @param [String] temp_file_extension The extension of the temp file.
|
13
|
-
|
14
|
-
|
45
|
+
# @param [Object] options Set of options to use, configurable by the user.
|
46
|
+
def self.visit(page_url, script_path, temp_file_path, temp_file_extension, options)
|
47
|
+
configuration = create_configuration(page_url, script_path, temp_file_path, temp_file_extension, options)
|
48
|
+
Kernel.system("node #{script_path} #{Shellwords.escape(configuration)}")
|
49
|
+
end
|
50
|
+
|
51
|
+
|
52
|
+
# Returns a JSON string with the configuration to use within the Puppeteer script.
|
53
|
+
#
|
54
|
+
# @param [String] page_url The url to pass to the goTo method of Puppeteer.
|
55
|
+
# @param [String] script_path The absolute path of the JS script to execute.
|
56
|
+
# @param [String] temp_file_path The absolute path of the temp file to use to write any actions from Puppeteer.
|
57
|
+
# @param [String] temp_file_extension The extension of the temp file.
|
58
|
+
# @param [Hash] options Set of options to use, configurable by the user.
|
59
|
+
private_class_method def self.create_configuration(page_url, script_path, temp_file_path, temp_file_extension, options)
|
60
|
+
{
|
61
|
+
webPageUrl: page_url,
|
62
|
+
tempFilePath: temp_file_path,
|
63
|
+
puppeteerPath: NODE_MODULES_PATH,
|
64
|
+
imageType: temp_file_extension,
|
65
|
+
userOptions: {
|
66
|
+
navigationParameters: {
|
67
|
+
timeout: options.has_key?(:navigation_timeout) ? options[:navigation_timeout] : NAVIGATION_TIMEOUT,
|
68
|
+
waitUntil: NAVIGATION_WAIT_UNTIL
|
69
|
+
},
|
70
|
+
userAgent: options.has_key?(:user_agent) ? options[:user_agent] : USER_AGENT,
|
71
|
+
viewPort: options.has_key?(:view_port) ? options[:view_port] : VIEW_PORT,
|
72
|
+
httpAuthenticationCredentials: options.has_key?(:http_authentication_credentials) ? options[:http_authentication_credentials] : HTTP_AUTHENTICATION_CREDENTIALS
|
73
|
+
},
|
74
|
+
pdfOptions: DEFAULT_OPTIONS.map { |option, value| [option, options.has_key?(option) ? options[option] : value] }.to_h
|
75
|
+
}.to_json
|
15
76
|
end
|
16
77
|
end
|
17
|
-
end
|
78
|
+
end
|
data/lib/Dhalang/version.rb
CHANGED
data/lib/PDF.rb
CHANGED
@@ -6,25 +6,27 @@ module Dhalang
|
|
6
6
|
|
7
7
|
# Captures the full webpage under the given url as PDF.
|
8
8
|
#
|
9
|
-
# @param [String] url
|
9
|
+
# @param [String] url The url to get as PDF.
|
10
|
+
# @param [Hash] options User configurable options.
|
10
11
|
#
|
11
12
|
# @return [String] The PDF that was created as binary.
|
12
|
-
def self.get_from_url(url)
|
13
|
+
def self.get_from_url(url, options = {})
|
13
14
|
UrlUtils.validate(url)
|
14
|
-
get(url)
|
15
|
+
get(url, options)
|
15
16
|
end
|
16
17
|
|
17
18
|
# Captures the full HTML as PDF.
|
18
19
|
# Useful when creating dynamic content, for example invoices.
|
19
20
|
#
|
20
|
-
# @param [String]
|
21
|
+
# @param [String] html The html to get as PDF.
|
22
|
+
# @param [Hash] options User configurable options.
|
21
23
|
#
|
22
24
|
# @return [String] The PDF that was created as binary.
|
23
|
-
def self.get_from_html(html)
|
25
|
+
def self.get_from_html(html, options = {})
|
24
26
|
html_file = FileUtils.create_temp_file("html", html)
|
25
27
|
url = "file://" + html_file.path
|
26
28
|
begin
|
27
|
-
binary_pdf_content = get(url)
|
29
|
+
binary_pdf_content = get(url, options)
|
28
30
|
ensure
|
29
31
|
FileUtils.delete(html_file)
|
30
32
|
end
|
@@ -34,13 +36,14 @@ module Dhalang
|
|
34
36
|
|
35
37
|
# Groups and executes the logic for creating a PDF of a webpage.
|
36
38
|
#
|
37
|
-
# @param [String]
|
39
|
+
# @param [String] url The url to create a PDF for.
|
40
|
+
# @param [Hash] options Set of options to use, passed by the user of this library.
|
38
41
|
#
|
39
42
|
# @return [String] The PDF that was created as binary.
|
40
|
-
private_class_method def self.get(url)
|
43
|
+
private_class_method def self.get(url, options)
|
41
44
|
temp_file = FileUtils.create_temp_file("pdf")
|
42
45
|
begin
|
43
|
-
Puppeteer.visit(url, PUPPETEER_SCRIPT_PATH, temp_file.path, "pdf")
|
46
|
+
Puppeteer.visit(url, PUPPETEER_SCRIPT_PATH, temp_file.path, "pdf", options)
|
44
47
|
binary_pdf_content = FileUtils.read_binary(temp_file.path)
|
45
48
|
ensure
|
46
49
|
FileUtils.delete(temp_file)
|
data/lib/Screenshot.rb
CHANGED
@@ -7,32 +7,35 @@ module Dhalang
|
|
7
7
|
# Captures a full JPEG screenshot of the webpage under the given url.
|
8
8
|
#
|
9
9
|
# @param [String] url The url to take a screenshot of.
|
10
|
+
# @param [Hash] options User configurable options.
|
10
11
|
#
|
11
12
|
# @return [String] the screenshot that was taken as binary.
|
12
|
-
def self.get_from_url_as_jpeg(url)
|
13
|
-
get(url, "jpeg")
|
13
|
+
def self.get_from_url_as_jpeg(url, options = {})
|
14
|
+
get(url, "jpeg", options)
|
14
15
|
end
|
15
16
|
|
16
17
|
# Captures a full PNG screenshot of the webpage under the given url.
|
17
18
|
#
|
18
19
|
# @param [String] url The url to take a screenshot of.
|
20
|
+
# @param [Hash] options User configurable options.
|
19
21
|
#
|
20
22
|
# @return [String] The screenshot that was taken as binary.
|
21
|
-
def self.get_from_url_as_png(url)
|
22
|
-
get(url, "png")
|
23
|
+
def self.get_from_url_as_png(url, options = {})
|
24
|
+
get(url, "png", options)
|
23
25
|
end
|
24
26
|
|
25
27
|
# Groups and executes the logic for taking a screenhot of a webpage.
|
26
28
|
#
|
27
29
|
# @param [String] url The url to take a screenshot of.
|
28
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.
|
29
32
|
#
|
30
33
|
# @return [String] The screenshot that was taken as binary.
|
31
|
-
private_class_method def self.get(url, image_type)
|
34
|
+
private_class_method def self.get(url, image_type, options)
|
32
35
|
UrlUtils.validate(url)
|
33
36
|
temp_file = FileUtils.create_temp_file(image_type)
|
34
37
|
begin
|
35
|
-
Puppeteer.visit(url, PUPPETEER_SCRIPT_PATH, temp_file.path, image_type)
|
38
|
+
Puppeteer.visit(url, PUPPETEER_SCRIPT_PATH, temp_file.path, image_type, options)
|
36
39
|
binary_image_content = FileUtils.read_binary(temp_file.path)
|
37
40
|
ensure
|
38
41
|
FileUtils.delete(temp_file)
|
data/lib/js/dhalang.js
CHANGED
@@ -1,30 +1,32 @@
|
|
1
1
|
/**
|
2
2
|
* @typedef {Object} Configuration
|
3
|
-
* @property {string} webPageUrl
|
4
|
-
* @property {string} tempFilePath
|
5
|
-
* @property {string} puppeteerModulePath
|
6
|
-
* @property {string} imageType
|
3
|
+
* @property {string} webPageUrl - The url of the webpage to visit.
|
4
|
+
* @property {string} tempFilePath - The path of the tempfile to write the screenshot/pdf to.
|
5
|
+
* @property {string} puppeteerModulePath - The path of the Puppeteer module.
|
6
|
+
* @property {string} imageType - The type of image to save ( undefined for pdfgenerator ).
|
7
|
+
* @property {UserOptions} userOptions - User defined and default parameters to use when navigating to pages with Puppeteer.
|
8
|
+
*/
|
9
|
+
/**
|
10
|
+
* @typedef {Object} UserOptions
|
11
|
+
* @property {NavigationParameters} navigationParameters - The parameters to use when navigating to pages with Puppeteer.
|
12
|
+
* @property {string} userAgent - The user agent to send with requests.
|
13
|
+
* @property {Object} viewPort - The view port to use.
|
14
|
+
* @property {Object} httpAuthenticationCredentials - The credentials to use for HTTP authentication.
|
7
15
|
*/
|
8
16
|
|
9
17
|
/**
|
10
18
|
* @typedef {Object} NavigationParameters
|
11
|
-
* @property {number} timeout
|
12
|
-
* @property {string} waituntil
|
19
|
+
* @property {number} timeout - Maximum in milliseconds until navigation times out, we use a default of 10 seconds as timeout.
|
20
|
+
* @property {string} waituntil - Determines when the navigation was finished, we wait here until the Window.load event is fired ( meaning all images, stylesheet, etc was loaded ).
|
13
21
|
*/
|
14
22
|
|
15
23
|
/**
|
16
|
-
*
|
17
|
-
* @param {Boolean} isForScreenshotGenerator - Indicates if this configuration is for a screenshot generator.
|
24
|
+
* Parses the given configuration process argument from Ruby to a JS object.
|
18
25
|
* @returns {Configuration}
|
19
|
-
* The
|
26
|
+
* The configuration object.
|
20
27
|
*/
|
21
|
-
exports.getConfiguration = function (
|
22
|
-
return
|
23
|
-
puppeteerPath: process.argv[2],
|
24
|
-
webPageUrl: process.argv[3],
|
25
|
-
tempFilePath: process.argv[4],
|
26
|
-
imageType: isForScreenshotGenerator ? process.argv[5] : undefined
|
27
|
-
}
|
28
|
+
exports.getConfiguration = function () {
|
29
|
+
return JSON.parse(process.argv[2])
|
28
30
|
}
|
29
31
|
|
30
32
|
/**
|
@@ -42,13 +44,20 @@ exports.launchPuppeteer = async function (puppeteerModulePath) {
|
|
42
44
|
}
|
43
45
|
|
44
46
|
/**
|
45
|
-
*
|
46
|
-
* @
|
47
|
-
* The
|
47
|
+
* Configures the given Puppeteer page.
|
48
|
+
* @param {Object} page - The Puppeteer page to configure.
|
49
|
+
* @param {UserOptions} configuration - The configuration to use.
|
48
50
|
*/
|
49
|
-
exports.
|
50
|
-
|
51
|
-
|
52
|
-
|
51
|
+
exports.configurePage = async function (page, configuration) {
|
52
|
+
if (configuration.userAgent !== "") {
|
53
|
+
await page.setUserAgent(configuration.userAgent)
|
54
|
+
}
|
55
|
+
|
56
|
+
if (configuration.viewPort !== "") {
|
57
|
+
await page.setViewport(configuration.viewPort)
|
58
|
+
}
|
59
|
+
|
60
|
+
if (configuration.httpAuthenticationCredentials !== "") {
|
61
|
+
await page.authenticate(configuration.authenticationCredentials)
|
53
62
|
}
|
54
63
|
}
|
data/lib/js/pdf-generator.js
CHANGED
@@ -2,24 +2,20 @@
|
|
2
2
|
const dhalang = require('./dhalang');
|
3
3
|
|
4
4
|
const createPdf = async () => {
|
5
|
-
const configuration = dhalang.getConfiguration(
|
5
|
+
const configuration = dhalang.getConfiguration();
|
6
6
|
|
7
7
|
let browser;
|
8
8
|
try {
|
9
9
|
browser = await dhalang.launchPuppeteer(configuration.puppeteerPath);
|
10
10
|
const page = await browser.newPage();
|
11
|
-
await
|
12
|
-
await page.
|
11
|
+
await dhalang.configurePage(page, configuration.userOptions);
|
12
|
+
await page.goto(configuration.webPageUrl, configuration.userOptions.navigationParameters);
|
13
|
+
await page.waitForTimeout(250);
|
13
14
|
await page.pdf({
|
14
|
-
|
15
|
-
|
16
|
-
margin: {
|
17
|
-
top: 36,
|
18
|
-
right: 36,
|
19
|
-
bottom: 20,
|
20
|
-
left: 36
|
15
|
+
...{
|
16
|
+
path: configuration.tempFilePath
|
21
17
|
},
|
22
|
-
|
18
|
+
...configuration.pdfOptions
|
23
19
|
});
|
24
20
|
} catch (error) {
|
25
21
|
console.log(error.message);
|
@@ -2,14 +2,15 @@
|
|
2
2
|
const dhalang = require('./dhalang')
|
3
3
|
|
4
4
|
const createPdf = async () => {
|
5
|
-
const configuration = dhalang.getConfiguration(
|
5
|
+
const configuration = dhalang.getConfiguration();
|
6
6
|
|
7
7
|
let browser;
|
8
8
|
try {
|
9
9
|
browser = await dhalang.launchPuppeteer(configuration.puppeteerPath);
|
10
10
|
const page = await browser.newPage();
|
11
|
-
await
|
12
|
-
await page.
|
11
|
+
await dhalang.configurePage(page, configuration.userOptions);
|
12
|
+
await page.goto(configuration.webPageUrl, configuration.userOptions.navigationParameters);
|
13
|
+
await page.waitForTimeout(250);
|
13
14
|
await page.screenshot({
|
14
15
|
path: configuration.tempFilePath,
|
15
16
|
type: configuration.imageType,
|
data/package-lock.json
CHANGED
@@ -4,19 +4,27 @@
|
|
4
4
|
"lockfileVersion": 1,
|
5
5
|
"requires": true,
|
6
6
|
"dependencies": {
|
7
|
-
"
|
8
|
-
"version": "
|
9
|
-
"resolved": "https://registry.npmjs.org/
|
10
|
-
"integrity": "sha512-
|
7
|
+
"@types/node": {
|
8
|
+
"version": "14.14.2",
|
9
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.2.tgz",
|
10
|
+
"integrity": "sha512-jeYJU2kl7hL9U5xuI/BhKPZ4vqGM/OmK6whiFAXVhlstzZhVamWhDSmHyGLIp+RVyuF9/d0dqr2P85aFj4BvJg==",
|
11
|
+
"dev": true,
|
12
|
+
"optional": true
|
13
|
+
},
|
14
|
+
"@types/yauzl": {
|
15
|
+
"version": "2.9.1",
|
16
|
+
"resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz",
|
17
|
+
"integrity": "sha512-A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==",
|
11
18
|
"dev": true,
|
19
|
+
"optional": true,
|
12
20
|
"requires": {
|
13
|
-
"
|
21
|
+
"@types/node": "*"
|
14
22
|
}
|
15
23
|
},
|
16
|
-
"
|
17
|
-
"version": "1.
|
18
|
-
"resolved": "https://registry.npmjs.org/
|
19
|
-
"integrity": "sha512-
|
24
|
+
"agent-base": {
|
25
|
+
"version": "5.1.1",
|
26
|
+
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz",
|
27
|
+
"integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==",
|
20
28
|
"dev": true
|
21
29
|
},
|
22
30
|
"balanced-match": {
|
@@ -25,6 +33,23 @@
|
|
25
33
|
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
|
26
34
|
"dev": true
|
27
35
|
},
|
36
|
+
"base64-js": {
|
37
|
+
"version": "1.3.1",
|
38
|
+
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
|
39
|
+
"integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==",
|
40
|
+
"dev": true
|
41
|
+
},
|
42
|
+
"bl": {
|
43
|
+
"version": "4.0.3",
|
44
|
+
"resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz",
|
45
|
+
"integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==",
|
46
|
+
"dev": true,
|
47
|
+
"requires": {
|
48
|
+
"buffer": "^5.5.0",
|
49
|
+
"inherits": "^2.0.4",
|
50
|
+
"readable-stream": "^3.4.0"
|
51
|
+
}
|
52
|
+
},
|
28
53
|
"brace-expansion": {
|
29
54
|
"version": "1.1.11",
|
30
55
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
@@ -35,16 +60,26 @@
|
|
35
60
|
"concat-map": "0.0.1"
|
36
61
|
}
|
37
62
|
},
|
63
|
+
"buffer": {
|
64
|
+
"version": "5.6.0",
|
65
|
+
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
|
66
|
+
"integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
|
67
|
+
"dev": true,
|
68
|
+
"requires": {
|
69
|
+
"base64-js": "^1.0.2",
|
70
|
+
"ieee754": "^1.1.4"
|
71
|
+
}
|
72
|
+
},
|
38
73
|
"buffer-crc32": {
|
39
74
|
"version": "0.2.13",
|
40
75
|
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
|
41
76
|
"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
|
42
77
|
"dev": true
|
43
78
|
},
|
44
|
-
"
|
45
|
-
"version": "1.1.
|
46
|
-
"resolved": "https://registry.npmjs.org/
|
47
|
-
"integrity": "sha512-
|
79
|
+
"chownr": {
|
80
|
+
"version": "1.1.4",
|
81
|
+
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
|
82
|
+
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
|
48
83
|
"dev": true
|
49
84
|
},
|
50
85
|
"concat-map": {
|
@@ -53,75 +88,40 @@
|
|
53
88
|
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
|
54
89
|
"dev": true
|
55
90
|
},
|
56
|
-
"concat-stream": {
|
57
|
-
"version": "1.6.2",
|
58
|
-
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
|
59
|
-
"integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
|
60
|
-
"dev": true,
|
61
|
-
"requires": {
|
62
|
-
"buffer-from": "^1.0.0",
|
63
|
-
"inherits": "^2.0.3",
|
64
|
-
"readable-stream": "^2.2.2",
|
65
|
-
"typedarray": "^0.0.6"
|
66
|
-
}
|
67
|
-
},
|
68
|
-
"core-util-is": {
|
69
|
-
"version": "1.0.2",
|
70
|
-
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
71
|
-
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
|
72
|
-
"dev": true
|
73
|
-
},
|
74
91
|
"debug": {
|
75
|
-
"version": "4.
|
76
|
-
"resolved": "https://registry.npmjs.org/debug/-/debug-4.
|
77
|
-
"integrity": "sha512-
|
92
|
+
"version": "4.2.0",
|
93
|
+
"resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
|
94
|
+
"integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
|
78
95
|
"dev": true,
|
79
96
|
"requires": {
|
80
|
-
"ms": "
|
97
|
+
"ms": "2.1.2"
|
81
98
|
}
|
82
99
|
},
|
83
|
-
"
|
84
|
-
"version": "
|
85
|
-
"resolved": "https://registry.npmjs.org/
|
86
|
-
"integrity": "sha512-
|
100
|
+
"devtools-protocol": {
|
101
|
+
"version": "0.0.799653",
|
102
|
+
"resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.799653.tgz",
|
103
|
+
"integrity": "sha512-t1CcaZbvm8pOlikqrsIM9GOa7Ipp07+4h/q9u0JXBWjPCjHdBl9KkddX87Vv9vBHoBGtwV79sYQNGnQM6iS5gg==",
|
87
104
|
"dev": true
|
88
105
|
},
|
89
|
-
"
|
90
|
-
"version": "
|
91
|
-
"resolved": "https://registry.npmjs.org/
|
92
|
-
"integrity": "
|
106
|
+
"end-of-stream": {
|
107
|
+
"version": "1.4.4",
|
108
|
+
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
109
|
+
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
|
93
110
|
"dev": true,
|
94
111
|
"requires": {
|
95
|
-
"
|
112
|
+
"once": "^1.4.0"
|
96
113
|
}
|
97
114
|
},
|
98
115
|
"extract-zip": {
|
99
|
-
"version": "
|
100
|
-
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-
|
101
|
-
"integrity": "sha512-
|
116
|
+
"version": "2.0.1",
|
117
|
+
"resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz",
|
118
|
+
"integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==",
|
102
119
|
"dev": true,
|
103
120
|
"requires": {
|
104
|
-
"
|
105
|
-
"debug": "^
|
106
|
-
"
|
121
|
+
"@types/yauzl": "^2.9.1",
|
122
|
+
"debug": "^4.1.1",
|
123
|
+
"get-stream": "^5.1.0",
|
107
124
|
"yauzl": "^2.10.0"
|
108
|
-
},
|
109
|
-
"dependencies": {
|
110
|
-
"debug": {
|
111
|
-
"version": "2.6.9",
|
112
|
-
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
|
113
|
-
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
|
114
|
-
"dev": true,
|
115
|
-
"requires": {
|
116
|
-
"ms": "2.0.0"
|
117
|
-
}
|
118
|
-
},
|
119
|
-
"ms": {
|
120
|
-
"version": "2.0.0",
|
121
|
-
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
|
122
|
-
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
|
123
|
-
"dev": true
|
124
|
-
}
|
125
125
|
}
|
126
126
|
},
|
127
127
|
"fd-slicer": {
|
@@ -133,12 +133,37 @@
|
|
133
133
|
"pend": "~1.2.0"
|
134
134
|
}
|
135
135
|
},
|
136
|
+
"find-up": {
|
137
|
+
"version": "4.1.0",
|
138
|
+
"resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
|
139
|
+
"integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
|
140
|
+
"dev": true,
|
141
|
+
"requires": {
|
142
|
+
"locate-path": "^5.0.0",
|
143
|
+
"path-exists": "^4.0.0"
|
144
|
+
}
|
145
|
+
},
|
146
|
+
"fs-constants": {
|
147
|
+
"version": "1.0.0",
|
148
|
+
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
149
|
+
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
|
150
|
+
"dev": true
|
151
|
+
},
|
136
152
|
"fs.realpath": {
|
137
153
|
"version": "1.0.0",
|
138
154
|
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
139
155
|
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
|
140
156
|
"dev": true
|
141
157
|
},
|
158
|
+
"get-stream": {
|
159
|
+
"version": "5.2.0",
|
160
|
+
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
|
161
|
+
"integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
|
162
|
+
"dev": true,
|
163
|
+
"requires": {
|
164
|
+
"pump": "^3.0.0"
|
165
|
+
}
|
166
|
+
},
|
142
167
|
"glob": {
|
143
168
|
"version": "7.1.6",
|
144
169
|
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
|
@@ -154,26 +179,21 @@
|
|
154
179
|
}
|
155
180
|
},
|
156
181
|
"https-proxy-agent": {
|
157
|
-
"version": "
|
158
|
-
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-
|
159
|
-
"integrity": "sha512-
|
182
|
+
"version": "4.0.0",
|
183
|
+
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz",
|
184
|
+
"integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==",
|
160
185
|
"dev": true,
|
161
186
|
"requires": {
|
162
|
-
"agent-base": "
|
163
|
-
"debug": "
|
164
|
-
},
|
165
|
-
"dependencies": {
|
166
|
-
"debug": {
|
167
|
-
"version": "3.2.6",
|
168
|
-
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
|
169
|
-
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
|
170
|
-
"dev": true,
|
171
|
-
"requires": {
|
172
|
-
"ms": "^2.1.1"
|
173
|
-
}
|
174
|
-
}
|
187
|
+
"agent-base": "5",
|
188
|
+
"debug": "4"
|
175
189
|
}
|
176
190
|
},
|
191
|
+
"ieee754": {
|
192
|
+
"version": "1.1.13",
|
193
|
+
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
|
194
|
+
"integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==",
|
195
|
+
"dev": true
|
196
|
+
},
|
177
197
|
"inflight": {
|
178
198
|
"version": "1.0.6",
|
179
199
|
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
@@ -190,17 +210,14 @@
|
|
190
210
|
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
191
211
|
"dev": true
|
192
212
|
},
|
193
|
-
"
|
194
|
-
"version": "
|
195
|
-
"resolved": "https://registry.npmjs.org/
|
196
|
-
"integrity": "
|
197
|
-
"dev": true
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
"resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz",
|
202
|
-
"integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==",
|
203
|
-
"dev": true
|
213
|
+
"locate-path": {
|
214
|
+
"version": "5.0.0",
|
215
|
+
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
|
216
|
+
"integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
|
217
|
+
"dev": true,
|
218
|
+
"requires": {
|
219
|
+
"p-locate": "^4.1.0"
|
220
|
+
}
|
204
221
|
},
|
205
222
|
"minimatch": {
|
206
223
|
"version": "3.0.4",
|
@@ -211,21 +228,12 @@
|
|
211
228
|
"brace-expansion": "^1.1.7"
|
212
229
|
}
|
213
230
|
},
|
214
|
-
"
|
215
|
-
"version": "
|
216
|
-
"resolved": "https://registry.npmjs.org/
|
217
|
-
"integrity": "sha512-
|
231
|
+
"mkdirp-classic": {
|
232
|
+
"version": "0.5.3",
|
233
|
+
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
|
234
|
+
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
|
218
235
|
"dev": true
|
219
236
|
},
|
220
|
-
"mkdirp": {
|
221
|
-
"version": "0.5.5",
|
222
|
-
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
|
223
|
-
"integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
|
224
|
-
"dev": true,
|
225
|
-
"requires": {
|
226
|
-
"minimist": "^1.2.5"
|
227
|
-
}
|
228
|
-
},
|
229
237
|
"ms": {
|
230
238
|
"version": "2.1.2",
|
231
239
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
|
@@ -241,6 +249,36 @@
|
|
241
249
|
"wrappy": "1"
|
242
250
|
}
|
243
251
|
},
|
252
|
+
"p-limit": {
|
253
|
+
"version": "2.3.0",
|
254
|
+
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
|
255
|
+
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
|
256
|
+
"dev": true,
|
257
|
+
"requires": {
|
258
|
+
"p-try": "^2.0.0"
|
259
|
+
}
|
260
|
+
},
|
261
|
+
"p-locate": {
|
262
|
+
"version": "4.1.0",
|
263
|
+
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
|
264
|
+
"integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
|
265
|
+
"dev": true,
|
266
|
+
"requires": {
|
267
|
+
"p-limit": "^2.2.0"
|
268
|
+
}
|
269
|
+
},
|
270
|
+
"p-try": {
|
271
|
+
"version": "2.2.0",
|
272
|
+
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
|
273
|
+
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
|
274
|
+
"dev": true
|
275
|
+
},
|
276
|
+
"path-exists": {
|
277
|
+
"version": "4.0.0",
|
278
|
+
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
|
279
|
+
"integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
|
280
|
+
"dev": true
|
281
|
+
},
|
244
282
|
"path-is-absolute": {
|
245
283
|
"version": "1.0.1",
|
246
284
|
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
@@ -253,11 +291,14 @@
|
|
253
291
|
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
|
254
292
|
"dev": true
|
255
293
|
},
|
256
|
-
"
|
257
|
-
"version": "2.0
|
258
|
-
"resolved": "https://registry.npmjs.org/
|
259
|
-
"integrity": "sha512-
|
260
|
-
"dev": true
|
294
|
+
"pkg-dir": {
|
295
|
+
"version": "4.2.0",
|
296
|
+
"resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
|
297
|
+
"integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
|
298
|
+
"dev": true,
|
299
|
+
"requires": {
|
300
|
+
"find-up": "^4.0.0"
|
301
|
+
}
|
261
302
|
},
|
262
303
|
"progress": {
|
263
304
|
"version": "2.0.3",
|
@@ -271,67 +312,111 @@
|
|
271
312
|
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
|
272
313
|
"dev": true
|
273
314
|
},
|
315
|
+
"pump": {
|
316
|
+
"version": "3.0.0",
|
317
|
+
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
|
318
|
+
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
|
319
|
+
"dev": true,
|
320
|
+
"requires": {
|
321
|
+
"end-of-stream": "^1.1.0",
|
322
|
+
"once": "^1.3.1"
|
323
|
+
}
|
324
|
+
},
|
274
325
|
"puppeteer": {
|
275
|
-
"version": "
|
276
|
-
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-
|
277
|
-
"integrity": "sha512-
|
326
|
+
"version": "5.3.1",
|
327
|
+
"resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-5.3.1.tgz",
|
328
|
+
"integrity": "sha512-YTM1RaBeYrj6n7IlRXRYLqJHF+GM7tasbvrNFx6w1S16G76NrPq7oYFKLDO+BQsXNtS8kW2GxWCXjIMPvfDyaQ==",
|
278
329
|
"dev": true,
|
279
330
|
"requires": {
|
280
331
|
"debug": "^4.1.0",
|
281
|
-
"
|
282
|
-
"
|
283
|
-
"
|
332
|
+
"devtools-protocol": "0.0.799653",
|
333
|
+
"extract-zip": "^2.0.0",
|
334
|
+
"https-proxy-agent": "^4.0.0",
|
335
|
+
"pkg-dir": "^4.2.0",
|
284
336
|
"progress": "^2.0.1",
|
285
337
|
"proxy-from-env": "^1.0.0",
|
286
|
-
"rimraf": "^
|
287
|
-
"
|
338
|
+
"rimraf": "^3.0.2",
|
339
|
+
"tar-fs": "^2.0.0",
|
340
|
+
"unbzip2-stream": "^1.3.3",
|
341
|
+
"ws": "^7.2.3"
|
288
342
|
}
|
289
343
|
},
|
290
344
|
"readable-stream": {
|
291
|
-
"version": "
|
292
|
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-
|
293
|
-
"integrity": "sha512-
|
345
|
+
"version": "3.6.0",
|
346
|
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
|
347
|
+
"integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
|
294
348
|
"dev": true,
|
295
349
|
"requires": {
|
296
|
-
"
|
297
|
-
"
|
298
|
-
"
|
299
|
-
"process-nextick-args": "~2.0.0",
|
300
|
-
"safe-buffer": "~5.1.1",
|
301
|
-
"string_decoder": "~1.1.1",
|
302
|
-
"util-deprecate": "~1.0.1"
|
350
|
+
"inherits": "^2.0.3",
|
351
|
+
"string_decoder": "^1.1.1",
|
352
|
+
"util-deprecate": "^1.0.1"
|
303
353
|
}
|
304
354
|
},
|
305
355
|
"rimraf": {
|
306
|
-
"version": "
|
307
|
-
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-
|
308
|
-
"integrity": "sha512-
|
356
|
+
"version": "3.0.2",
|
357
|
+
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
|
358
|
+
"integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
|
309
359
|
"dev": true,
|
310
360
|
"requires": {
|
311
361
|
"glob": "^7.1.3"
|
312
362
|
}
|
313
363
|
},
|
314
364
|
"safe-buffer": {
|
315
|
-
"version": "5.1
|
316
|
-
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.
|
317
|
-
"integrity": "sha512-
|
365
|
+
"version": "5.2.1",
|
366
|
+
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
367
|
+
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
|
318
368
|
"dev": true
|
319
369
|
},
|
320
370
|
"string_decoder": {
|
321
|
-
"version": "1.
|
322
|
-
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.
|
323
|
-
"integrity": "sha512-
|
371
|
+
"version": "1.3.0",
|
372
|
+
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
|
373
|
+
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
|
374
|
+
"dev": true,
|
375
|
+
"requires": {
|
376
|
+
"safe-buffer": "~5.2.0"
|
377
|
+
}
|
378
|
+
},
|
379
|
+
"tar-fs": {
|
380
|
+
"version": "2.1.0",
|
381
|
+
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz",
|
382
|
+
"integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==",
|
383
|
+
"dev": true,
|
384
|
+
"requires": {
|
385
|
+
"chownr": "^1.1.1",
|
386
|
+
"mkdirp-classic": "^0.5.2",
|
387
|
+
"pump": "^3.0.0",
|
388
|
+
"tar-stream": "^2.0.0"
|
389
|
+
}
|
390
|
+
},
|
391
|
+
"tar-stream": {
|
392
|
+
"version": "2.1.4",
|
393
|
+
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz",
|
394
|
+
"integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==",
|
324
395
|
"dev": true,
|
325
396
|
"requires": {
|
326
|
-
"
|
397
|
+
"bl": "^4.0.3",
|
398
|
+
"end-of-stream": "^1.4.1",
|
399
|
+
"fs-constants": "^1.0.0",
|
400
|
+
"inherits": "^2.0.3",
|
401
|
+
"readable-stream": "^3.1.1"
|
327
402
|
}
|
328
403
|
},
|
329
|
-
"
|
330
|
-
"version": "
|
331
|
-
"resolved": "https://registry.npmjs.org/
|
332
|
-
"integrity": "sha1-
|
404
|
+
"through": {
|
405
|
+
"version": "2.3.8",
|
406
|
+
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
407
|
+
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
|
333
408
|
"dev": true
|
334
409
|
},
|
410
|
+
"unbzip2-stream": {
|
411
|
+
"version": "1.4.3",
|
412
|
+
"resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz",
|
413
|
+
"integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==",
|
414
|
+
"dev": true,
|
415
|
+
"requires": {
|
416
|
+
"buffer": "^5.2.1",
|
417
|
+
"through": "^2.3.8"
|
418
|
+
}
|
419
|
+
},
|
335
420
|
"util-deprecate": {
|
336
421
|
"version": "1.0.2",
|
337
422
|
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
@@ -345,13 +430,10 @@
|
|
345
430
|
"dev": true
|
346
431
|
},
|
347
432
|
"ws": {
|
348
|
-
"version": "
|
349
|
-
"resolved": "https://registry.npmjs.org/ws/-/ws-
|
350
|
-
"integrity": "sha512-
|
351
|
-
"dev": true
|
352
|
-
"requires": {
|
353
|
-
"async-limiter": "~1.0.0"
|
354
|
-
}
|
433
|
+
"version": "7.3.1",
|
434
|
+
"resolved": "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz",
|
435
|
+
"integrity": "sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==",
|
436
|
+
"dev": true
|
355
437
|
},
|
356
438
|
"yauzl": {
|
357
439
|
"version": "2.10.0",
|
data/package.json
CHANGED
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.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Niels Steensma
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|