From 26d4c0a31a9381066106efe8b6bba60cee1bc07c Mon Sep 17 00:00:00 2001 From: Arnaud Becher Date: Sun, 18 Dec 2022 20:54:30 +0100 Subject: [PATCH 1/2] generate posts og images with spatie's Browsershot --- composer.json | 3 +- composer.lock | 549 ++++++++++++++++++++++- generate_blog_ogimages.php | 47 ++ package-lock.json | 862 ++++++++++++++++++++++++++++++++----- package.json | 1 + 5 files changed, 1343 insertions(+), 119 deletions(-) create mode 100755 generate_blog_ogimages.php diff --git a/composer.json b/composer.json index 54b3a7d..b72f57e 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,8 @@ "require": { "php": "~8.1", "tightenco/jigsaw": "^1.3", - "torchlight/torchlight-jigsaw": "^0.3.3" + "torchlight/torchlight-jigsaw": "^0.3.3", + "spatie/browsershot": "^3.57" }, "require-dev": { "spatie/ray": "^1.36" diff --git a/composer.lock b/composer.lock index 275f93a..2275f2c 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ac528ea06c9741717664afa56edfc2af", + "content-hash": "fe81121d17540342003042d5612096ff", "packages": [ { "name": "brick/math", @@ -1492,6 +1492,302 @@ }, "time": "2022-10-14T19:24:07+00:00" }, + { + "name": "intervention/image", + "version": "2.7.2", + "source": { + "type": "git", + "url": "https://github.com/Intervention/image.git", + "reference": "04be355f8d6734c826045d02a1079ad658322dad" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Intervention/image/zipball/04be355f8d6734c826045d02a1079ad658322dad", + "reference": "04be355f8d6734c826045d02a1079ad658322dad", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "guzzlehttp/psr7": "~1.1 || ^2.0", + "php": ">=5.4.0" + }, + "require-dev": { + "mockery/mockery": "~0.9.2", + "phpunit/phpunit": "^4.8 || ^5.7 || ^7.5.15" + }, + "suggest": { + "ext-gd": "to use GD library based image processing.", + "ext-imagick": "to use Imagick based image processing.", + "intervention/imagecache": "Caching extension for the Intervention Image library" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4-dev" + }, + "laravel": { + "providers": [ + "Intervention\\Image\\ImageServiceProvider" + ], + "aliases": { + "Image": "Intervention\\Image\\Facades\\Image" + } + } + }, + "autoload": { + "psr-4": { + "Intervention\\Image\\": "src/Intervention/Image" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Oliver Vogel", + "email": "oliver@intervention.io", + "homepage": "https://intervention.io/" + } + ], + "description": "Image handling and manipulation library with support for Laravel integration", + "homepage": "http://image.intervention.io/", + "keywords": [ + "gd", + "image", + "imagick", + "laravel", + "thumbnail", + "watermark" + ], + "support": { + "issues": "https://github.com/Intervention/image/issues", + "source": "https://github.com/Intervention/image/tree/2.7.2" + }, + "funding": [ + { + "url": "https://paypal.me/interventionio", + "type": "custom" + }, + { + "url": "https://github.com/Intervention", + "type": "github" + } + ], + "time": "2022-05-21T17:30:32+00:00" + }, + { + "name": "league/flysystem", + "version": "3.11.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/flysystem.git", + "reference": "7e423e5dd240a60adfab9bde058d7668863b7731" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/7e423e5dd240a60adfab9bde058d7668863b7731", + "reference": "7e423e5dd240a60adfab9bde058d7668863b7731", + "shasum": "" + }, + "require": { + "league/mime-type-detection": "^1.0.0", + "php": "^8.0.2" + }, + "conflict": { + "aws/aws-sdk-php": "3.209.31 || 3.210.0", + "guzzlehttp/guzzle": "<7.0", + "guzzlehttp/ringphp": "<1.1.1", + "phpseclib/phpseclib": "3.0.15", + "symfony/http-client": "<5.2" + }, + "require-dev": { + "async-aws/s3": "^1.5", + "async-aws/simple-s3": "^1.1", + "aws/aws-sdk-php": "^3.198.1", + "composer/semver": "^3.0", + "ext-fileinfo": "*", + "ext-ftp": "*", + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.5", + "google/cloud-storage": "^1.23", + "microsoft/azure-storage-blob": "^1.1", + "phpseclib/phpseclib": "^3.0.14", + "phpstan/phpstan": "^0.12.26", + "phpunit/phpunit": "^9.5.11", + "sabre/dav": "^4.3.1" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Flysystem\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "File storage abstraction for PHP", + "keywords": [ + "WebDAV", + "aws", + "cloud", + "file", + "files", + "filesystem", + "filesystems", + "ftp", + "s3", + "sftp", + "storage" + ], + "support": { + "issues": "https://github.com/thephpleague/flysystem/issues", + "source": "https://github.com/thephpleague/flysystem/tree/3.11.0" + }, + "funding": [ + { + "url": "https://ecologi.com/frankdejonge", + "type": "custom" + }, + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2022-12-02T14:39:57+00:00" + }, + { + "name": "league/glide", + "version": "2.2.2", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/glide.git", + "reference": "bff5b0fe2fd26b2fde2d6958715fde313887d79d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/glide/zipball/bff5b0fe2fd26b2fde2d6958715fde313887d79d", + "reference": "bff5b0fe2fd26b2fde2d6958715fde313887d79d", + "shasum": "" + }, + "require": { + "intervention/image": "^2.7", + "league/flysystem": "^2.0|^3.0", + "php": "^7.2|^8.0", + "psr/http-message": "^1.0" + }, + "require-dev": { + "mockery/mockery": "^1.3.3", + "phpunit/php-token-stream": "^3.1|^4.0", + "phpunit/phpunit": "^8.5|^9.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\Glide\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jonathan Reinink", + "email": "jonathan@reinink.ca", + "homepage": "http://reinink.ca" + }, + { + "name": "Titouan Galopin", + "email": "galopintitouan@gmail.com", + "homepage": "https://titouangalopin.com" + } + ], + "description": "Wonderfully easy on-demand image manipulation library with an HTTP based API.", + "homepage": "http://glide.thephpleague.com", + "keywords": [ + "ImageMagick", + "editing", + "gd", + "image", + "imagick", + "league", + "manipulation", + "processing" + ], + "support": { + "issues": "https://github.com/thephpleague/glide/issues", + "source": "https://github.com/thephpleague/glide/tree/2.2.2" + }, + "time": "2022-02-21T07:40:55+00:00" + }, + { + "name": "league/mime-type-detection", + "version": "1.11.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/mime-type-detection.git", + "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "reference": "ff6248ea87a9f116e78edd6002e39e5128a0d4dd", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^3.2", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "League\\MimeTypeDetection\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Frank de Jonge", + "email": "info@frankdejonge.nl" + } + ], + "description": "Mime-type detection for Flysystem", + "support": { + "issues": "https://github.com/thephpleague/mime-type-detection/issues", + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.11.0" + }, + "funding": [ + { + "url": "https://github.com/frankdejonge", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/league/flysystem", + "type": "tidelift" + } + ], + "time": "2022-04-17T13:12:02+00:00" + }, { "name": "michelf/php-markdown", "version": "1.9.1", @@ -2428,6 +2724,255 @@ ], "time": "2022-09-16T03:22:46+00:00" }, + { + "name": "spatie/browsershot", + "version": "3.57.5", + "source": { + "type": "git", + "url": "https://github.com/spatie/browsershot.git", + "reference": "a4ae0f3a289cfb9384f2ee01b7f37c271f6a4159" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/browsershot/zipball/a4ae0f3a289cfb9384f2ee01b7f37c271f6a4159", + "reference": "a4ae0f3a289cfb9384f2ee01b7f37c271f6a4159", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.4|^8.0", + "spatie/image": "^1.5.3|^2.0", + "spatie/temporary-directory": "^1.1|^2.0", + "symfony/process": "^4.2|^5.0|^6.0" + }, + "require-dev": { + "pestphp/pest": "^1.20", + "spatie/phpunit-snapshot-assertions": "^4.2.3" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Browsershot\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://github.com/freekmurze", + "role": "Developer" + } + ], + "description": "Convert a webpage to an image or pdf using headless Chrome", + "homepage": "https://github.com/spatie/browsershot", + "keywords": [ + "chrome", + "convert", + "headless", + "image", + "pdf", + "puppeteer", + "screenshot", + "webpage" + ], + "support": { + "source": "https://github.com/spatie/browsershot/tree/3.57.5" + }, + "funding": [ + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-12-05T15:59:26+00:00" + }, + { + "name": "spatie/image", + "version": "2.2.4", + "source": { + "type": "git", + "url": "https://github.com/spatie/image.git", + "reference": "c2dc137c52d17bf12aff94ad051370c0f106b322" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/image/zipball/c2dc137c52d17bf12aff94ad051370c0f106b322", + "reference": "c2dc137c52d17bf12aff94ad051370c0f106b322", + "shasum": "" + }, + "require": { + "ext-exif": "*", + "ext-json": "*", + "ext-mbstring": "*", + "league/glide": "^2.2.2", + "php": "^8.0", + "spatie/image-optimizer": "^1.1", + "spatie/temporary-directory": "^1.0|^2.0", + "symfony/process": "^3.0|^4.0|^5.0|^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.5", + "symfony/var-dumper": "^4.0|^5.0|^6.0", + "vimeo/psalm": "^4.6" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\Image\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Manipulate images with an expressive API", + "homepage": "https://github.com/spatie/image", + "keywords": [ + "image", + "spatie" + ], + "support": { + "source": "https://github.com/spatie/image/tree/2.2.4" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-08-09T10:18:57+00:00" + }, + { + "name": "spatie/image-optimizer", + "version": "1.6.2", + "source": { + "type": "git", + "url": "https://github.com/spatie/image-optimizer.git", + "reference": "6db75529cbf8fa84117046a9d513f277aead90a0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/image-optimizer/zipball/6db75529cbf8fa84117046a9d513f277aead90a0", + "reference": "6db75529cbf8fa84117046a9d513f277aead90a0", + "shasum": "" + }, + "require": { + "ext-fileinfo": "*", + "php": "^7.3|^8.0", + "psr/log": "^1.0 | ^2.0 | ^3.0", + "symfony/process": "^4.2|^5.0|^6.0" + }, + "require-dev": { + "phpunit/phpunit": "^8.5.21|^9.4.4", + "symfony/var-dumper": "^4.2|^5.0|^6.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\ImageOptimizer\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Freek Van der Herten", + "email": "freek@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Easily optimize images using PHP", + "homepage": "https://github.com/spatie/image-optimizer", + "keywords": [ + "image-optimizer", + "spatie" + ], + "support": { + "issues": "https://github.com/spatie/image-optimizer/issues", + "source": "https://github.com/spatie/image-optimizer/tree/1.6.2" + }, + "time": "2021-12-21T10:08:05+00:00" + }, + { + "name": "spatie/temporary-directory", + "version": "2.1.1", + "source": { + "type": "git", + "url": "https://github.com/spatie/temporary-directory.git", + "reference": "e2818d871783d520b319c2d38dc37c10ecdcde20" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/spatie/temporary-directory/zipball/e2818d871783d520b319c2d38dc37c10ecdcde20", + "reference": "e2818d871783d520b319c2d38dc37c10ecdcde20", + "shasum": "" + }, + "require": { + "php": "^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Spatie\\TemporaryDirectory\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Alex Vanderbist", + "email": "alex@spatie.be", + "homepage": "https://spatie.be", + "role": "Developer" + } + ], + "description": "Easily create, use and destroy temporary directories", + "homepage": "https://github.com/spatie/temporary-directory", + "keywords": [ + "php", + "spatie", + "temporary-directory" + ], + "support": { + "issues": "https://github.com/spatie/temporary-directory/issues", + "source": "https://github.com/spatie/temporary-directory/tree/2.1.1" + }, + "funding": [ + { + "url": "https://spatie.be/open-source/support-us", + "type": "custom" + }, + { + "url": "https://github.com/spatie", + "type": "github" + } + ], + "time": "2022-08-23T07:15:15+00:00" + }, { "name": "symfony/console", "version": "v6.1.6", @@ -4993,5 +5538,5 @@ "php": "~8.1" }, "platform-dev": [], - "plugin-api-version": "2.2.0" + "plugin-api-version": "2.1.0" } diff --git a/generate_blog_ogimages.php b/generate_blog_ogimages.php new file mode 100755 index 0000000..9bbbd76 --- /dev/null +++ b/generate_blog_ogimages.php @@ -0,0 +1,47 @@ +#!/usr/bin/php +parse( + file_get_contents('./source/_posts/' . $post) + ); + + $yaml = $document->getYAML(); + + $date = Carbon\Carbon::createFromTimestamp($yaml['date'])->format('F j, Y'); + $author = match($yaml['author']) { + 'philippe' => [ + 'name' => 'Philippe Lonchampt', + 'avatar' => 'https://gravatar.com/avatar/' . md5('philippelonchampt@gmail.com') . '?d=retro', + ], + 'arnaud' => [ + 'name' => 'Arnaud Becher', + 'avatar' => 'https://gravatar.com/avatar/' . md5('arnaud.becher@gmail.com') . '?d=retro', + ], + 'antoine' => [ + 'name' => 'Antoine Guingand', + 'avatar' => 'https://gravatar.com/avatar/' . md5('guingand.antoine@gmail.com') . '?d=retro', + ] + }; + + Spatie\Browsershot\Browsershot::html(<<{$yaml['title']} +

by {$author['name']}

+ {$date} + TEXT + ) + ->showBackground() + ->windowSize(1200, 630) + ->setScreenshotType('jpeg', 100) + ->save( + './source/assets/img/posts/' . substr($post, 0, -3) . '/ogimage.jpg' + ); + die(); + +} + diff --git a/package-lock.json b/package-lock.json index 270f647..65bec49 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,6 +6,7 @@ "": { "dependencies": { "alpinejs": "^3.10.4", + "puppeteer": "^19.4.1", "vue": "^2.6.10", "vue-carousel": "^0.8.1" }, @@ -37,7 +38,6 @@ "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, "dependencies": { "@babel/highlight": "^7.16.7" }, @@ -420,7 +420,6 @@ "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -467,7 +466,6 @@ "version": "7.16.10", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, "dependencies": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", @@ -481,7 +479,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "dependencies": { "color-convert": "^1.9.0" }, @@ -493,7 +490,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "dependencies": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -507,7 +503,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "dependencies": { "color-name": "1.1.3" } @@ -515,14 +510,12 @@ "node_modules/@babel/highlight/node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "node_modules/@babel/highlight/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, "engines": { "node": ">=4" } @@ -531,7 +524,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "dependencies": { "has-flag": "^3.0.0" }, @@ -2061,7 +2053,7 @@ "version": "17.0.23", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==", - "dev": true + "devOptional": true }, "node_modules/@types/parse-json": { "version": "4.0.0", @@ -2130,6 +2122,15 @@ "@types/node": "*" } }, + "node_modules/@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@vue/component-compiler-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", @@ -2470,6 +2471,17 @@ "node": ">=0.4.0" } }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -2610,6 +2622,11 @@ "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", "dev": true }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "node_modules/array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", @@ -2810,14 +2827,12 @@ "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, "funding": [ { "type": "github", @@ -2866,6 +2881,52 @@ "node": ">=8" } }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -2999,7 +3060,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3297,6 +3357,14 @@ "isarray": "^1.0.0" } }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "engines": { + "node": "*" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -3347,7 +3415,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "engines": { "node": ">=6" } @@ -3460,6 +3527,11 @@ "fsevents": "~2.3.2" } }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, "node_modules/chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", @@ -3688,8 +3760,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "node_modules/concat/node_modules/commander": { "version": "2.20.3", @@ -3932,6 +4003,14 @@ "sha.js": "^2.4.8" } }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dependencies": { + "node-fetch": "2.6.7" + } + }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -4210,7 +4289,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -4390,6 +4468,11 @@ "node": ">= 0.8.0" } }, + "node_modules/devtools-protocol": { + "version": "0.0.1068969", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1068969.tgz", + "integrity": "sha512-ATFTrPbY1dKYhPPvpjtwWKSK2mIwGmRwX54UASn9THEuIZCe2n9k3vVuMmt6jWeL+e5QaaguEv/pMyR+JQB7VQ==" + }, "node_modules/didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -4657,6 +4740,14 @@ "node": ">= 0.8" } }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, "node_modules/engine.io": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", @@ -4745,7 +4836,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "dependencies": { "is-arrayish": "^0.2.1" } @@ -4775,7 +4865,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, "engines": { "node": ">=0.8.0" } @@ -5117,6 +5206,39 @@ "node": ">= 4" } }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -5172,6 +5294,14 @@ "node": ">=0.8.0" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/file-loader": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", @@ -5345,6 +5475,11 @@ "node": ">= 0.6" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, "node_modules/fs-extra": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", @@ -5368,8 +5503,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "node_modules/fsevents": { "version": "2.3.2", @@ -5439,7 +5573,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -5915,6 +6048,18 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -5952,7 +6097,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, "funding": [ { "type": "github", @@ -6049,7 +6193,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -6093,7 +6236,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" @@ -6102,8 +6244,7 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/interpret": { "version": "2.2.0", @@ -6148,8 +6289,7 @@ "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "node_modules/is-binary-path": { "version": "2.1.0", @@ -6391,8 +6531,18 @@ "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } }, "node_modules/jsesc": { "version": "2.5.2", @@ -6415,8 +6565,7 @@ "node_modules/json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "node_modules/json-schema-traverse": { "version": "0.4.1", @@ -6653,8 +6802,7 @@ "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "node_modules/loader-runner": { "version": "4.2.0", @@ -7051,7 +7199,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, @@ -7083,11 +7230,15 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "node_modules/multicast-dns": { "version": "6.2.3", @@ -7154,6 +7305,25 @@ "node": ">=6.4.0" } }, + "node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, "node_modules/node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -7372,7 +7542,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "dependencies": { "wrappy": "1" } @@ -7541,7 +7710,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "dependencies": { "callsites": "^3.0.0" }, @@ -7566,7 +7734,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -7630,7 +7797,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -7660,7 +7826,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, "engines": { "node": ">=8" } @@ -7681,6 +7846,11 @@ "node": ">=0.12" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -8392,6 +8562,14 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -8414,6 +8592,11 @@ "node": ">= 0.10" } }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -8440,12 +8623,91 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, + "node_modules/puppeteer": { + "version": "19.4.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.4.1.tgz", + "integrity": "sha512-PCnrR13B8A+VSEDXRmrNXRZbrkF1tfsI1hKSC7vs13eNS6CUD3Y4FA8SF8/VZy+Pm1kg5AggJT2Nu3HLAtGkFg==", + "hasInstallScript": true, + "dependencies": { + "cosmiconfig": "8.0.0", + "https-proxy-agent": "5.0.1", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "puppeteer-core": "19.4.1" + }, + "engines": { + "node": ">=14.1.0" + } + }, + "node_modules/puppeteer-core": { + "version": "19.4.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.4.1.tgz", + "integrity": "sha512-JHIuqtqrUAx4jGOTxXu4ilapV2jabxtVMA/e4wwFUMvtSsqK4nVBSI+Z1SKDoz7gRy/JUIc8WzmfocCa6SIZ1w==", + "dependencies": { + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.1068969", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.11.0" + }, + "engines": { + "node": ">=14.1.0" + } + }, + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/puppeteer/node_modules/cosmiconfig": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "dependencies": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/qs": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", @@ -8780,7 +9042,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "engines": { "node": ">=4" } @@ -8836,7 +9097,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, "dependencies": { "glob": "^7.1.3" }, @@ -9534,7 +9794,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -9543,7 +9802,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -9763,6 +10021,45 @@ "node": ">=6" } }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tar-stream/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/terser": { "version": "5.12.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", @@ -9922,6 +10219,11 @@ "node": ">=0.8.0" } }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, "node_modules/thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -9976,6 +10278,11 @@ "node": ">=0.6" } }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "node_modules/tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", @@ -10020,6 +10327,38 @@ "node": "*" } }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "node_modules/unbzip2-stream/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "node_modules/unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -10124,8 +10463,7 @@ "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "node_modules/util/node_modules/inherits": { "version": "2.0.3", @@ -10307,6 +10645,11 @@ "minimalistic-assert": "^1.0.0" } }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, "node_modules/webpack": { "version": "5.71.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.71.0.tgz", @@ -10744,6 +11087,15 @@ "node": ">=0.8.0" } }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -10791,8 +11143,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "node_modules/ws": { "version": "8.2.3", @@ -10884,6 +11235,15 @@ "node": ">=12" } }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/yeast": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", @@ -10905,7 +11265,6 @@ "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz", "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==", - "dev": true, "requires": { "@babel/highlight": "^7.16.7" } @@ -11196,8 +11555,7 @@ "@babel/helper-validator-identifier": { "version": "7.16.7", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz", - "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==", - "dev": true + "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==" }, "@babel/helper-validator-option": { "version": "7.16.7", @@ -11232,7 +11590,6 @@ "version": "7.16.10", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.16.10.tgz", "integrity": "sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==", - "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.16.7", "chalk": "^2.0.0", @@ -11243,7 +11600,6 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -11252,7 +11608,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -11263,7 +11618,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -11271,20 +11625,17 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -12411,7 +12762,7 @@ "version": "17.0.23", "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz", "integrity": "sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==", - "dev": true + "devOptional": true }, "@types/parse-json": { "version": "4.0.0", @@ -12480,6 +12831,15 @@ "@types/node": "*" } }, + "@types/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", + "optional": true, + "requires": { + "@types/node": "*" + } + }, "@vue/component-compiler-utils": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz", @@ -12779,6 +13139,14 @@ "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", "dev": true }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, "aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", @@ -12882,6 +13250,11 @@ "integrity": "sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==", "dev": true }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "array-flatten": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", @@ -13044,14 +13417,12 @@ "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "base64id": { "version": "2.0.0", @@ -13077,6 +13448,37 @@ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -13191,7 +13593,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -13441,6 +13842,11 @@ "isarray": "^1.0.0" } }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" + }, "buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -13484,8 +13890,7 @@ "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==" }, "camel-case": { "version": "4.1.2", @@ -13559,6 +13964,11 @@ "readdirp": "~3.6.0" } }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, "chrome-trace-event": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", @@ -13755,8 +14165,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "connect": { "version": "3.6.6", @@ -13956,6 +14365,14 @@ "sha.js": "^2.4.8" } }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "requires": { + "node-fetch": "2.6.7" + } + }, "cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", @@ -14158,7 +14575,6 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, "requires": { "ms": "2.1.2" } @@ -14290,6 +14706,11 @@ "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", "dev": true }, + "devtools-protocol": { + "version": "0.0.1068969", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1068969.tgz", + "integrity": "sha512-ATFTrPbY1dKYhPPvpjtwWKSK2mIwGmRwX54UASn9THEuIZCe2n9k3vVuMmt6jWeL+e5QaaguEv/pMyR+JQB7VQ==" + }, "didyoumean": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", @@ -14513,6 +14934,14 @@ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, "engine.io": { "version": "6.1.3", "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.1.3.tgz", @@ -14583,7 +15012,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "requires": { "is-arrayish": "^0.2.1" } @@ -14609,8 +15037,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint-scope": { "version": "5.1.1", @@ -14880,6 +15307,27 @@ } } }, + "extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "requires": { + "@types/yauzl": "^2.9.1", + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "dependencies": { + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -14929,6 +15377,14 @@ "websocket-driver": ">=0.5.1" } }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "requires": { + "pend": "~1.2.0" + } + }, "file-loader": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", @@ -15044,6 +15500,11 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", "dev": true }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==" + }, "fs-extra": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz", @@ -15064,8 +15525,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "2.3.2", @@ -15113,7 +15573,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -15478,6 +15937,15 @@ "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", "dev": true }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, "human-signals": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", @@ -15503,8 +15971,7 @@ "ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "ignore": { "version": "5.2.0", @@ -15568,7 +16035,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -15594,7 +16060,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -15603,8 +16068,7 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "interpret": { "version": "2.2.0", @@ -15637,8 +16101,7 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-binary-path": { "version": "2.1.0", @@ -15807,8 +16270,15 @@ "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } }, "jsesc": { "version": "2.5.2", @@ -15825,8 +16295,7 @@ "json-parse-even-better-errors": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" }, "json-schema-traverse": { "version": "0.4.1", @@ -16015,8 +16484,7 @@ "lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==" }, "loader-runner": { "version": "4.2.0", @@ -16332,7 +16800,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -16358,11 +16825,15 @@ "minimist": "^1.2.6" } }, + "mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==" + }, "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, "multicast-dns": { "version": "6.2.3", @@ -16414,6 +16885,14 @@ "integrity": "sha512-3OHy8KI8MuwADyugQRZBsaqe3c0r3yxQSoLsDBVk7vAjPmfG01512MPBQjfmBJxrH+2qURbiBf/ZyoimrhdA6A==", "dev": true }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, "node-forge": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", @@ -16583,7 +17062,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -16709,7 +17187,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "requires": { "callsites": "^3.0.0" } @@ -16731,7 +17208,6 @@ "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, "requires": { "@babel/code-frame": "^7.0.0", "error-ex": "^1.3.1", @@ -16782,8 +17258,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-key": { "version": "3.1.1", @@ -16806,8 +17281,7 @@ "path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==" }, "pbkdf2": { "version": "3.1.2", @@ -16822,6 +17296,11 @@ "sha.js": "^2.4.8" } }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" + }, "picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -17261,6 +17740,11 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -17279,6 +17763,11 @@ } } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -17307,12 +17796,71 @@ } } }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", "dev": true }, + "puppeteer": { + "version": "19.4.1", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-19.4.1.tgz", + "integrity": "sha512-PCnrR13B8A+VSEDXRmrNXRZbrkF1tfsI1hKSC7vs13eNS6CUD3Y4FA8SF8/VZy+Pm1kg5AggJT2Nu3HLAtGkFg==", + "requires": { + "cosmiconfig": "8.0.0", + "https-proxy-agent": "5.0.1", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "puppeteer-core": "19.4.1" + }, + "dependencies": { + "cosmiconfig": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.0.0.tgz", + "integrity": "sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ==", + "requires": { + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0" + } + } + } + }, + "puppeteer-core": { + "version": "19.4.1", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-19.4.1.tgz", + "integrity": "sha512-JHIuqtqrUAx4jGOTxXu4ilapV2jabxtVMA/e4wwFUMvtSsqK4nVBSI+Z1SKDoz7gRy/JUIc8WzmfocCa6SIZ1w==", + "requires": { + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.1068969", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.11.0" + }, + "dependencies": { + "ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "requires": {} + } + } + }, "qs": { "version": "6.2.3", "resolved": "https://registry.npmjs.org/qs/-/qs-6.2.3.tgz", @@ -17568,8 +18116,7 @@ "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==" }, "resp-modifier": { "version": "6.0.2", @@ -17614,7 +18161,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, "requires": { "glob": "^7.1.3" } @@ -18175,7 +18721,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "requires": { "safe-buffer": "~5.2.0" }, @@ -18183,8 +18728,7 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" } } }, @@ -18329,6 +18873,41 @@ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, + "tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "requires": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "terser": { "version": "5.12.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz", @@ -18439,6 +19018,11 @@ } } }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, "thunky": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", @@ -18481,6 +19065,11 @@ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "tslib": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", @@ -18509,6 +19098,26 @@ "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==", "dev": true }, + "unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, "unicode-canonical-property-names-ecmascript": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", @@ -18604,8 +19213,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "utils-merge": { "version": "1.0.1", @@ -18749,6 +19357,11 @@ "minimalistic-assert": "^1.0.0" } }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, "webpack": { "version": "5.71.0", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.71.0.tgz", @@ -19042,6 +19655,15 @@ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -19077,8 +19699,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { "version": "8.2.3", @@ -19138,6 +19759,15 @@ "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", "dev": true }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "yeast": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", diff --git a/package.json b/package.json index 6b87009..22be05d 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ }, "dependencies": { "alpinejs": "^3.10.4", + "puppeteer": "^19.4.1", "vue": "^2.6.10", "vue-carousel": "^0.8.1" } From b3138ec85c161142bc331aefbe330021bab42f6a Mon Sep 17 00:00:00 2001 From: Arnaud Becher Date: Sun, 18 Dec 2022 20:55:13 +0100 Subject: [PATCH 2/2] first try --- .../ogimage.jpg | Bin 0 -> 39429 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 source/assets/img/posts/a-probability-approach-to-cache-a-resource-retrieved-from-an-external-api/ogimage.jpg diff --git a/source/assets/img/posts/a-probability-approach-to-cache-a-resource-retrieved-from-an-external-api/ogimage.jpg b/source/assets/img/posts/a-probability-approach-to-cache-a-resource-retrieved-from-an-external-api/ogimage.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f41e5147518ca8b0780e59bdedf82f1a2fe25542 GIT binary patch literal 39429 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 a5Eu=C(GVC7fzc2c4S~@R0Ea;R|C<0uwcr>4 literal 0 HcmV?d00001