diff --git a/.env.example b/.env.example index d62ec37c..007a91d8 100644 --- a/.env.example +++ b/.env.example @@ -48,10 +48,10 @@ OSS_BUCKET= OSS_ENDPOINT= OSS_URL= -AWS_ACCESS_KEY_ID= -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION= -AWS_BUCKET= +S3_ACCESS_KEY_ID= +S3_SECRET_ACCESS_KEY= +S3_DEFAULT_REGION= +S3_BUCKET= DO_SPACES_KEY= DO_SPACES_SECRET= diff --git a/.env.testing b/.env.testing index 852247d7..d0361048 100644 --- a/.env.testing +++ b/.env.testing @@ -34,10 +34,10 @@ MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=null MAIL_FROM_NAME="${APP_NAME}" -AWS_ACCESS_KEY_ID= -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION=us-east-1 -AWS_BUCKET= +S3_ACCESS_KEY_ID= +S3_SECRET_ACCESS_KEY= +S3_DEFAULT_REGION=us-east-1 +S3_BUCKET= PUSHER_APP_ID= PUSHER_APP_KEY= diff --git a/composer.json b/composer.json index cec043cd..95c60940 100644 --- a/composer.json +++ b/composer.json @@ -28,17 +28,17 @@ "laravel/ui": "^3.2.0", "league/flysystem-aws-s3-v3": "^1.0.29", "league/flysystem-cached-adapter": "^1.1.0", - "madnest/madzipper": "^1.1.0", "spatie/laravel-backup": "^6.16.1", "spatie/laravel-query-builder": "^3.5", "spatie/laravel-queueable-action": "^2.12", "spatie/laravel-tail": "^4.3.3", + "stechstudio/laravel-zipstream": "^4.4", "teamtnt/laravel-scout-tntsearch-driver": "^11.5.0.0", "vimeo/psalm": "^4.8.1" }, "require-dev": { "ext-json": "*", - "friendsofphp/php-cs-fixer": "^3.0", + "friendsofphp/php-cs-fixer": "^3.0.0", "barryvdh/laravel-ide-helper": "^2.10", "facade/ignition": "^2.11.0", "fakerphp/faker": "^1.15.0", diff --git a/composer.lock b/composer.lock index b08e6de4..0d255415 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": "e4a7f5591e1c7216ee06ab20feba09d3", + "content-hash": "3c897439f8ef41534a743d4a05020502", "packages": [ { "name": "amphp/amp", @@ -230,16 +230,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.185.18", + "version": "3.186.0", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "726d042a6e445557a5709735b494886d4f12025a" + "reference": "e8511d38de286233bcb6a827d3344c0fc4808b75" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/726d042a6e445557a5709735b494886d4f12025a", - "reference": "726d042a6e445557a5709735b494886d4f12025a", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/e8511d38de286233bcb6a827d3344c0fc4808b75", + "reference": "e8511d38de286233bcb6a827d3344c0fc4808b75", "shasum": "" }, "require": { @@ -314,9 +314,9 @@ "support": { "forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80", "issues": "https://github.com/aws/aws-sdk-php/issues", - "source": "https://github.com/aws/aws-sdk-php/tree/3.185.18" + "source": "https://github.com/aws/aws-sdk-php/tree/3.186.0" }, - "time": "2021-07-21T18:18:25+00:00" + "time": "2021-07-27T18:17:00+00:00" }, { "name": "bacon/bacon-qr-code", @@ -910,6 +910,81 @@ }, "time": "2020-10-02T16:03:48+00:00" }, + { + "name": "dflydev/dot-access-data", + "version": "v3.0.0", + "source": { + "type": "git", + "url": "https://github.com/dflydev/dflydev-dot-access-data.git", + "reference": "e04ff030d24a33edc2421bef305e32919dd78fc3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dflydev/dflydev-dot-access-data/zipball/e04ff030d24a33edc2421bef305e32919dd78fc3", + "reference": "e04ff030d24a33edc2421bef305e32919dd78fc3", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.42", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.3", + "scrutinizer/ocular": "1.6.0", + "squizlabs/php_codesniffer": "^3.5", + "vimeo/psalm": "^3.14" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Dflydev\\DotAccessData\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Dragonfly Development Inc.", + "email": "info@dflydev.com", + "homepage": "http://dflydev.com" + }, + { + "name": "Beau Simensen", + "email": "beau@dflydev.com", + "homepage": "http://beausimensen.com" + }, + { + "name": "Carlos Frutos", + "email": "carlos@kiwing.it", + "homepage": "https://github.com/cfrutos" + }, + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com" + } + ], + "description": "Given a deep data structure, access data by dot notation.", + "homepage": "https://github.com/dflydev/dflydev-dot-access-data", + "keywords": [ + "access", + "data", + "dot", + "notation" + ], + "support": { + "issues": "https://github.com/dflydev/dflydev-dot-access-data/issues", + "source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.0" + }, + "time": "2021-01-01T22:08:42+00:00" + }, { "name": "dnoegel/php-xdg-base-dir", "version": "v0.1.1", @@ -2787,16 +2862,16 @@ }, { "name": "laravel/framework", - "version": "v8.51.0", + "version": "v8.52.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "208d9c0043b4c192a9bb9b15782cc4ec37f28bb0" + "reference": "8fe9877d52e25f8aed36c51734e5a8510be967e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/208d9c0043b4c192a9bb9b15782cc4ec37f28bb0", - "reference": "208d9c0043b4c192a9bb9b15782cc4ec37f28bb0", + "url": "https://api.github.com/repos/laravel/framework/zipball/8fe9877d52e25f8aed36c51734e5a8510be967e6", + "reference": "8fe9877d52e25f8aed36c51734e5a8510be967e6", "shasum": "" }, "require": { @@ -2951,7 +3026,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-07-20T14:38:36+00:00" + "time": "2021-07-27T13:03:29+00:00" }, { "name": "laravel/sanctum", @@ -3217,42 +3292,51 @@ }, { "name": "league/commonmark", - "version": "1.6.6", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/thephpleague/commonmark.git", - "reference": "c4228d11e30d7493c6836d20872f9582d8ba6dcf" + "reference": "167142baf9a6b946f99ad9325b06028606f8238e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/c4228d11e30d7493c6836d20872f9582d8ba6dcf", - "reference": "c4228d11e30d7493c6836d20872f9582d8ba6dcf", + "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/167142baf9a6b946f99ad9325b06028606f8238e", + "reference": "167142baf9a6b946f99ad9325b06028606f8238e", "shasum": "" }, "require": { "ext-mbstring": "*", - "php": "^7.1 || ^8.0" - }, - "conflict": { - "scrutinizer/ocular": "1.7.*" + "league/config": "^1.1", + "php": "^7.4 || ^8.0", + "psr/event-dispatcher": "^1.0", + "symfony/polyfill-php80": "^1.15" }, "require-dev": { - "cebe/markdown": "~1.0", - "commonmark/commonmark.js": "0.29.2", - "erusev/parsedown": "~1.0", + "cebe/markdown": "^1.0", + "commonmark/cmark": "0.30.0", + "commonmark/commonmark.js": "0.30.0", + "composer/package-versions-deprecated": "^1.8", + "erusev/parsedown": "^1.0", "ext-json": "*", "github/gfm": "0.29.0", - "michelf/php-markdown": "~1.4", - "mikehaertl/php-shellcommand": "^1.4", - "phpstan/phpstan": "^0.12.90", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.2", - "scrutinizer/ocular": "^1.5", - "symfony/finder": "^4.2" + "michelf/php-markdown": "^1.4", + "phpstan/phpstan": "^0.12.88", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "symfony/finder": "^5.3", + "symfony/yaml": "^2.3 | ^3.0 | ^4.0 | ^5.0", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.7.3" + }, + "suggest": { + "symfony/yaml": "v2.3+ required if using the Front Matter extension" }, - "bin": [ - "bin/commonmark" - ], "type": "library", + "extra": { + "branch-alias": { + "dev-main": "2.1-dev" + } + }, "autoload": { "psr-4": { "League\\CommonMark\\": "src" @@ -3270,7 +3354,7 @@ "role": "Lead Developer" } ], - "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and Github-Flavored Markdown (GFM)", + "description": "Highly-extensible PHP Markdown parser which fully supports the CommonMark spec and GitHub-Flavored Markdown (GFM)", "homepage": "https://commonmark.thephpleague.com", "keywords": [ "commonmark", @@ -3284,6 +3368,7 @@ ], "support": { "docs": "https://commonmark.thephpleague.com/", + "forum": "https://github.com/thephpleague/commonmark/discussions", "issues": "https://github.com/thephpleague/commonmark/issues", "rss": "https://github.com/thephpleague/commonmark/releases.atom", "source": "https://github.com/thephpleague/commonmark" @@ -3314,7 +3399,89 @@ "type": "tidelift" } ], - "time": "2021-07-17T17:13:23+00:00" + "time": "2021-07-24T20:12:58+00:00" + }, + { + "name": "league/config", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/config.git", + "reference": "20d42d88f12a76ff862e17af4f14a5a4bbfd0925" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/config/zipball/20d42d88f12a76ff862e17af4f14a5a4bbfd0925", + "reference": "20d42d88f12a76ff862e17af4f14a5a4bbfd0925", + "shasum": "" + }, + "require": { + "dflydev/dot-access-data": "^3.0", + "nette/schema": "^1.2", + "php": "^7.4 || ^8.0" + }, + "require-dev": { + "phpstan/phpstan": "^0.12.90", + "phpunit/phpunit": "^9.5.5", + "scrutinizer/ocular": "^1.8.1", + "unleashedtech/php-coding-standard": "^3.1", + "vimeo/psalm": "^4.7.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-main": "1.2-dev" + } + }, + "autoload": { + "psr-4": { + "League\\Config\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + } + ], + "description": "Define configuration arrays with strict schemas and access values with dot notation", + "homepage": "https://config.thephpleague.com", + "keywords": [ + "array", + "config", + "configuration", + "dot", + "dot-access", + "nested", + "schema" + ], + "support": { + "docs": "https://config.thephpleague.com/", + "issues": "https://github.com/thephpleague/config/issues", + "rss": "https://github.com/thephpleague/config/releases.atom", + "source": "https://github.com/thephpleague/config" + }, + "funding": [ + { + "url": "https://www.colinodell.com/sponsor", + "type": "custom" + }, + { + "url": "https://www.paypal.me/colinpodell/10.00", + "type": "custom" + }, + { + "url": "https://github.com/colinodell", + "type": "github" + } + ], + "time": "2021-06-19T15:52:37+00:00" }, { "name": "league/flysystem", @@ -3569,44 +3736,35 @@ "time": "2021-01-18T20:58:21+00:00" }, { - "name": "madnest/madzipper", - "version": "v1.1.0", + "name": "maennchen/zipstream-php", + "version": "2.1.0", "source": { "type": "git", - "url": "https://github.com/madnest/madzipper.git", - "reference": "fd1d8199d04eac103eed9355c9bba680dcf8b89b" + "url": "https://github.com/maennchen/ZipStream-PHP.git", + "reference": "c4c5803cc1f93df3d2448478ef79394a5981cc58" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/madnest/madzipper/zipball/fd1d8199d04eac103eed9355c9bba680dcf8b89b", - "reference": "fd1d8199d04eac103eed9355c9bba680dcf8b89b", + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/c4c5803cc1f93df3d2448478ef79394a5981cc58", + "reference": "c4c5803cc1f93df3d2448478ef79394a5981cc58", "shasum": "" }, "require": { - "ext-zip": "*", - "illuminate/filesystem": "^6.18|^7.0|^8.0", - "illuminate/support": "^6.18|^7.0|^8.0", - "php": ">=7.2.0" + "myclabs/php-enum": "^1.5", + "php": ">= 7.1", + "psr/http-message": "^1.0", + "symfony/polyfill-mbstring": "^1.0" }, "require-dev": { - "mockery/mockery": "^1.3", - "orchestra/testbench": "^5.1", - "phpunit/phpunit": "^8.0|^9.0" + "ext-zip": "*", + "guzzlehttp/guzzle": ">= 6.3", + "mikey179/vfsstream": "^1.6", + "phpunit/phpunit": ">= 7.5" }, "type": "library", - "extra": { - "laravel": { - "providers": [ - "Madnest\\Madzipper\\MadzipperServiceProvider" - ], - "aliases": { - "Madzipper": "Madnest\\Madzipper\\Madzipper" - } - } - }, "autoload": { "psr-4": { - "Madnest\\Madzipper\\": "src/Madnest/Madzipper" + "ZipStream\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3615,18 +3773,38 @@ ], "authors": [ { - "name": "Jakub Theimer", - "email": "theimer@madne.st", - "homepage": "https://madne.st", - "role": "Developer" + "name": "Paul Duncan", + "email": "pabs@pablotron.org" + }, + { + "name": "Jonatan Männchen", + "email": "jonatan@maennchen.ch" + }, + { + "name": "Jesse Donat", + "email": "donatj@gmail.com" + }, + { + "name": "András Kolesár", + "email": "kolesar@kolesar.hu" } ], - "description": "Wannabe successor of Chumper/Zipper package for Laravel", + "description": "ZipStream is a library for dynamically streaming dynamic zip files from PHP without writing to the disk at all on the server.", + "keywords": [ + "stream", + "zip" + ], "support": { - "issues": "https://github.com/madnest/madzipper/issues", - "source": "https://github.com/madnest/madzipper/tree/v1.1.0" + "issues": "https://github.com/maennchen/ZipStream-PHP/issues", + "source": "https://github.com/maennchen/ZipStream-PHP/tree/master" }, - "time": "2020-12-01T23:44:14+00:00" + "funding": [ + { + "url": "https://opencollective.com/zipstream", + "type": "open_collective" + } + ], + "time": "2020-05-30T13:11:16+00:00" }, { "name": "mockery/mockery", @@ -3788,16 +3966,16 @@ }, { "name": "monolog/monolog", - "version": "2.3.1", + "version": "2.3.2", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "9738e495f288eec0b187e310b7cdbbb285777dbe" + "reference": "71312564759a7db5b789296369c1a264efc43aad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/9738e495f288eec0b187e310b7cdbbb285777dbe", - "reference": "9738e495f288eec0b187e310b7cdbbb285777dbe", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/71312564759a7db5b789296369c1a264efc43aad", + "reference": "71312564759a7db5b789296369c1a264efc43aad", "shasum": "" }, "require": { @@ -3868,7 +4046,7 @@ ], "support": { "issues": "https://github.com/Seldaek/monolog/issues", - "source": "https://github.com/Seldaek/monolog/tree/2.3.1" + "source": "https://github.com/Seldaek/monolog/tree/2.3.2" }, "funding": [ { @@ -3880,7 +4058,7 @@ "type": "tidelift" } ], - "time": "2021-07-14T11:56:39+00:00" + "time": "2021-07-23T07:42:52+00:00" }, { "name": "mtdowling/jmespath.php", @@ -4002,23 +4180,84 @@ "time": "2020-11-13T09:40:50+00:00" }, { - "name": "nesbot/carbon", - "version": "2.50.0", + "name": "myclabs/php-enum", + "version": "1.8.3", "source": { "type": "git", - "url": "https://github.com/briannesbitt/Carbon.git", - "reference": "f47f17d17602b2243414a44ad53d9f8b9ada5fdb" + "url": "https://github.com/myclabs/php-enum.git", + "reference": "b942d263c641ddb5190929ff840c68f78713e937" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/f47f17d17602b2243414a44ad53d9f8b9ada5fdb", - "reference": "f47f17d17602b2243414a44ad53d9f8b9ada5fdb", + "url": "https://api.github.com/repos/myclabs/php-enum/zipball/b942d263c641ddb5190929ff840c68f78713e937", + "reference": "b942d263c641ddb5190929ff840c68f78713e937", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^7.3 || ^8.0" + }, + "require-dev": { + "phpunit/phpunit": "^9.5", + "squizlabs/php_codesniffer": "1.*", + "vimeo/psalm": "^4.6.2" + }, + "type": "library", + "autoload": { + "psr-4": { + "MyCLabs\\Enum\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP Enum contributors", + "homepage": "https://github.com/myclabs/php-enum/graphs/contributors" + } + ], + "description": "PHP Enum implementation", + "homepage": "http://github.com/myclabs/php-enum", + "keywords": [ + "enum" + ], + "support": { + "issues": "https://github.com/myclabs/php-enum/issues", + "source": "https://github.com/myclabs/php-enum/tree/1.8.3" + }, + "funding": [ + { + "url": "https://github.com/mnapoli", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum", + "type": "tidelift" + } + ], + "time": "2021-07-05T08:18:36+00:00" + }, + { + "name": "nesbot/carbon", + "version": "2.51.0", + "source": { + "type": "git", + "url": "https://github.com/briannesbitt/Carbon.git", + "reference": "48ebff252df4d3b60ecb8e2583f79dfba6b56bc8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/48ebff252df4d3b60ecb8e2583f79dfba6b56bc8", + "reference": "48ebff252df4d3b60ecb8e2583f79dfba6b56bc8", "shasum": "" }, "require": { "ext-json": "*", "php": "^7.1.8 || ^8.0", "symfony/polyfill-mbstring": "^1.0", + "symfony/polyfill-php80": "^1.16", "symfony/translation": "^3.4 || ^4.0 || ^5.0" }, "require-dev": { @@ -4037,8 +4276,8 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev", - "dev-3.x": "3.x-dev" + "dev-3.x": "3.x-dev", + "dev-master": "2.x-dev" }, "laravel": { "providers": [ @@ -4092,7 +4331,7 @@ "type": "tidelift" } ], - "time": "2021-06-28T22:38:45+00:00" + "time": "2021-07-28T08:28:41+00:00" }, { "name": "netresearch/jsonmapper", @@ -4145,6 +4384,153 @@ }, "time": "2020-12-01T19:48:11+00:00" }, + { + "name": "nette/schema", + "version": "v1.2.1", + "source": { + "type": "git", + "url": "https://github.com/nette/schema.git", + "reference": "f5ed39fc96358f922cedfd1e516f0dadf5d2be0d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/schema/zipball/f5ed39fc96358f922cedfd1e516f0dadf5d2be0d", + "reference": "f5ed39fc96358f922cedfd1e516f0dadf5d2be0d", + "shasum": "" + }, + "require": { + "nette/utils": "^3.1.4 || ^4.0", + "php": ">=7.1 <8.1" + }, + "require-dev": { + "nette/tester": "^2.3 || ^2.4", + "phpstan/phpstan-nette": "^0.12", + "tracy/tracy": "^2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "📐 Nette Schema: validating data structures against a given Schema.", + "homepage": "https://nette.org", + "keywords": [ + "config", + "nette" + ], + "support": { + "issues": "https://github.com/nette/schema/issues", + "source": "https://github.com/nette/schema/tree/v1.2.1" + }, + "time": "2021-03-04T17:51:11+00:00" + }, + { + "name": "nette/utils", + "version": "v3.2.2", + "source": { + "type": "git", + "url": "https://github.com/nette/utils.git", + "reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/nette/utils/zipball/967cfc4f9a1acd5f1058d76715a424c53343c20c", + "reference": "967cfc4f9a1acd5f1058d76715a424c53343c20c", + "shasum": "" + }, + "require": { + "php": ">=7.2 <8.1" + }, + "conflict": { + "nette/di": "<3.0.6" + }, + "require-dev": { + "nette/tester": "~2.0", + "phpstan/phpstan": "^0.12", + "tracy/tracy": "^2.3" + }, + "suggest": { + "ext-gd": "to use Image", + "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()", + "ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()", + "ext-json": "to use Nette\\Utils\\Json", + "ext-mbstring": "to use Strings::lower() etc...", + "ext-tokenizer": "to use Nette\\Utils\\Reflection::getUseStatements()", + "ext-xml": "to use Strings::length() etc. when mbstring is not available" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause", + "GPL-2.0-only", + "GPL-3.0-only" + ], + "authors": [ + { + "name": "David Grudl", + "homepage": "https://davidgrudl.com" + }, + { + "name": "Nette Community", + "homepage": "https://nette.org/contributors" + } + ], + "description": "🛠 Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or strong password generating etc.", + "homepage": "https://nette.org", + "keywords": [ + "array", + "core", + "datetime", + "images", + "json", + "nette", + "paginator", + "password", + "slugify", + "string", + "unicode", + "utf-8", + "utility", + "validation" + ], + "support": { + "issues": "https://github.com/nette/utils/issues", + "source": "https://github.com/nette/utils/tree/v3.2.2" + }, + "time": "2021-03-03T22:53:25+00:00" + }, { "name": "nikic/php-parser", "version": "v4.12.0", @@ -7552,17 +7938,79 @@ "time": "2020-11-09T15:54:21+00:00" }, { - "name": "stripe/stripe-php", - "version": "v7.90.0", + "name": "stechstudio/laravel-zipstream", + "version": "4.4", "source": { "type": "git", - "url": "https://github.com/stripe/stripe-php.git", - "reference": "c33e0810a05be37b0ff372f2bc83b82ca8010e61" + "url": "https://github.com/stechstudio/laravel-zipstream.git", + "reference": "f147788df01bdfed00360b1c2b349f7317f06f23" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stripe/stripe-php/zipball/c33e0810a05be37b0ff372f2bc83b82ca8010e61", - "reference": "c33e0810a05be37b0ff372f2bc83b82ca8010e61", + "url": "https://api.github.com/repos/stechstudio/laravel-zipstream/zipball/f147788df01bdfed00360b1c2b349f7317f06f23", + "reference": "f147788df01bdfed00360b1c2b349f7317f06f23", + "shasum": "" + }, + "require": { + "guzzlehttp/guzzle": "^6.0|^7.0", + "illuminate/support": "^5.6|^6.0|^7.0|^8.0", + "maennchen/zipstream-php": "^v2.0", + "php": "^7.1|^8.0" + }, + "require-dev": { + "orchestra/testbench": "^5.0|^6.0", + "phpunit/phpunit": "^9.0" + }, + "type": "library", + "extra": { + "laravel": { + "providers": [ + "STS\\ZipStream\\ZipStreamServiceProvider" + ], + "aliases": { + "Zip": "STS\\ZipStream\\ZipStreamFacade" + } + } + }, + "autoload": { + "psr-4": { + "STS\\ZipStream\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Joseph Szobody", + "email": "joseph@stechstudio.com" + } + ], + "description": "Build", + "homepage": "https://github.com/stechstudio/laravel-zipstream", + "keywords": [ + "laravel-zipstream", + "stechstudio" + ], + "support": { + "issues": "https://github.com/stechstudio/laravel-zipstream/issues", + "source": "https://github.com/stechstudio/laravel-zipstream/tree/4.4" + }, + "time": "2021-07-06T20:59:08+00:00" + }, + { + "name": "stripe/stripe-php", + "version": "v7.91.0", + "source": { + "type": "git", + "url": "https://github.com/stripe/stripe-php.git", + "reference": "bb7db27140858833ecc2a95de94763b5a120bc5d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/stripe/stripe-php/zipball/bb7db27140858833ecc2a95de94763b5a120bc5d", + "reference": "bb7db27140858833ecc2a95de94763b5a120bc5d", "shasum": "" }, "require": { @@ -7608,9 +8056,9 @@ ], "support": { "issues": "https://github.com/stripe/stripe-php/issues", - "source": "https://github.com/stripe/stripe-php/tree/v7.90.0" + "source": "https://github.com/stripe/stripe-php/tree/v7.91.0" }, - "time": "2021-07-21T01:11:04+00:00" + "time": "2021-07-22T18:05:48+00:00" }, { "name": "swiftmailer/swiftmailer", @@ -7689,16 +8137,16 @@ }, { "name": "symfony/console", - "version": "v5.3.2", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "649730483885ff2ca99ca0560ef0e5f6b03f2ac1" + "reference": "ebd610dacd40d75b6a12bf64b5ccd494fc7d6ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/649730483885ff2ca99ca0560ef0e5f6b03f2ac1", - "reference": "649730483885ff2ca99ca0560ef0e5f6b03f2ac1", + "url": "https://api.github.com/repos/symfony/console/zipball/ebd610dacd40d75b6a12bf64b5ccd494fc7d6ab1", + "reference": "ebd610dacd40d75b6a12bf64b5ccd494fc7d6ab1", "shasum": "" }, "require": { @@ -7706,11 +8154,12 @@ "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", - "symfony/polyfill-php80": "^1.15", + "symfony/polyfill-php80": "^1.16", "symfony/service-contracts": "^1.1|^2", "symfony/string": "^5.1" }, "conflict": { + "psr/log": ">=3", "symfony/dependency-injection": "<4.4", "symfony/dotenv": "<5.1", "symfony/event-dispatcher": "<4.4", @@ -7718,10 +8167,10 @@ "symfony/process": "<4.4" }, "provide": { - "psr/log-implementation": "1.0" + "psr/log-implementation": "1.0|2.0" }, "require-dev": { - "psr/log": "~1.0", + "psr/log": "^1|^2", "symfony/config": "^4.4|^5.0", "symfony/dependency-injection": "^4.4|^5.0", "symfony/event-dispatcher": "^4.4|^5.0", @@ -7767,7 +8216,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.3.2" + "source": "https://github.com/symfony/console/tree/v5.3.4" }, "funding": [ { @@ -7783,24 +8232,25 @@ "type": "tidelift" } ], - "time": "2021-06-12T09:42:48+00:00" + "time": "2021-07-26T16:33:26+00:00" }, { "name": "symfony/css-selector", - "version": "v5.3.0", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "fcd0b29a7a0b1bb5bfbedc6231583d77fea04814" + "reference": "7fb120adc7f600a59027775b224c13a33530dd90" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/fcd0b29a7a0b1bb5bfbedc6231583d77fea04814", - "reference": "fcd0b29a7a0b1bb5bfbedc6231583d77fea04814", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/7fb120adc7f600a59027775b224c13a33530dd90", + "reference": "7fb120adc7f600a59027775b224c13a33530dd90", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -7832,7 +8282,7 @@ "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.3.0" + "source": "https://github.com/symfony/css-selector/tree/v5.3.4" }, "funding": [ { @@ -7848,7 +8298,7 @@ "type": "tidelift" } ], - "time": "2021-05-26T17:40:38+00:00" + "time": "2021-07-21T12:38:00+00:00" }, { "name": "symfony/deprecation-contracts", @@ -7919,22 +8369,21 @@ }, { "name": "symfony/error-handler", - "version": "v5.3.3", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "43323e79c80719e8a4674e33484bca98270d223f" + "reference": "281f6c4660bcf5844bb0346fe3a4664722fe4c73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/43323e79c80719e8a4674e33484bca98270d223f", - "reference": "43323e79c80719e8a4674e33484bca98270d223f", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/281f6c4660bcf5844bb0346fe3a4664722fe4c73", + "reference": "281f6c4660bcf5844bb0346fe3a4664722fe4c73", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/log": "^1.0", - "symfony/polyfill-php80": "^1.15", + "psr/log": "^1|^2|^3", "symfony/var-dumper": "^4.4|^5.0" }, "require-dev": { @@ -7968,7 +8417,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v5.3.3" + "source": "https://github.com/symfony/error-handler/tree/v5.3.4" }, "funding": [ { @@ -7984,27 +8433,27 @@ "type": "tidelift" } ], - "time": "2021-06-24T08:13:00+00:00" + "time": "2021-07-23T15:55:36+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.3.0", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "67a5f354afa8e2f231081b3fa11a5912f933c3ce" + "reference": "f2fd2208157553874560f3645d4594303058c4bd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/67a5f354afa8e2f231081b3fa11a5912f933c3ce", - "reference": "67a5f354afa8e2f231081b3fa11a5912f933c3ce", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/f2fd2208157553874560f3645d4594303058c4bd", + "reference": "f2fd2208157553874560f3645d4594303058c4bd", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/deprecation-contracts": "^2.1", "symfony/event-dispatcher-contracts": "^2", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { "symfony/dependency-injection": "<4.4" @@ -8014,7 +8463,7 @@ "symfony/event-dispatcher-implementation": "2.0" }, "require-dev": { - "psr/log": "~1.0", + "psr/log": "^1|^2|^3", "symfony/config": "^4.4|^5.0", "symfony/dependency-injection": "^4.4|^5.0", "symfony/error-handler": "^4.4|^5.0", @@ -8053,7 +8502,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v5.3.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.3.4" }, "funding": [ { @@ -8069,7 +8518,7 @@ "type": "tidelift" } ], - "time": "2021-05-26T17:43:10+00:00" + "time": "2021-07-23T15:55:36+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -8152,20 +8601,21 @@ }, { "name": "symfony/finder", - "version": "v5.3.0", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "0ae3f047bed4edff6fd35b26a9a6bfdc92c953c6" + "reference": "17f50e06018baec41551a71a15731287dbaab186" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/0ae3f047bed4edff6fd35b26a9a6bfdc92c953c6", - "reference": "0ae3f047bed4edff6fd35b26a9a6bfdc92c953c6", + "url": "https://api.github.com/repos/symfony/finder/zipball/17f50e06018baec41551a71a15731287dbaab186", + "reference": "17f50e06018baec41551a71a15731287dbaab186", "shasum": "" }, "require": { - "php": ">=7.2.5" + "php": ">=7.2.5", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -8193,7 +8643,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.3.0" + "source": "https://github.com/symfony/finder/tree/v5.3.4" }, "funding": [ { @@ -8209,7 +8659,7 @@ "type": "tidelift" } ], - "time": "2021-05-26T12:52:38+00:00" + "time": "2021-07-23T15:54:19+00:00" }, { "name": "symfony/http-client-contracts", @@ -8291,23 +8741,23 @@ }, { "name": "symfony/http-foundation", - "version": "v5.3.3", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "0e45ab1574caa0460d9190871a8ce47539e40ccf" + "reference": "d6602aca7d3e11f401a0b24f43b611c530abfad3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/0e45ab1574caa0460d9190871a8ce47539e40ccf", - "reference": "0e45ab1574caa0460d9190871a8ce47539e40ccf", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d6602aca7d3e11f401a0b24f43b611c530abfad3", + "reference": "d6602aca7d3e11f401a0b24f43b611c530abfad3", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-mbstring": "~1.1", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "require-dev": { "predis/predis": "~1.0", @@ -8344,7 +8794,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.3.3" + "source": "https://github.com/symfony/http-foundation/tree/v5.3.4" }, "funding": [ { @@ -8360,25 +8810,25 @@ "type": "tidelift" } ], - "time": "2021-06-27T09:19:40+00:00" + "time": "2021-07-23T15:55:36+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.3.3", + "version": "v5.3.5", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "90ad9f4b21ddcb8ebe9faadfcca54929ad23f9f8" + "reference": "9eb3ee3cb6c69e12ba5770665b89fe82f0b99033" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/90ad9f4b21ddcb8ebe9faadfcca54929ad23f9f8", - "reference": "90ad9f4b21ddcb8ebe9faadfcca54929ad23f9f8", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/9eb3ee3cb6c69e12ba5770665b89fe82f0b99033", + "reference": "9eb3ee3cb6c69e12ba5770665b89fe82f0b99033", "shasum": "" }, "require": { "php": ">=7.2.5", - "psr/log": "~1.0", + "psr/log": "^1|^2", "symfony/deprecation-contracts": "^2.1", "symfony/error-handler": "^4.4|^5.0", "symfony/event-dispatcher": "^5.0", @@ -8386,7 +8836,7 @@ "symfony/http-foundation": "^5.3", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-php73": "^1.9", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { "symfony/browser-kit": "<4.4", @@ -8405,7 +8855,7 @@ "twig/twig": "<2.13" }, "provide": { - "psr/log-implementation": "1.0" + "psr/log-implementation": "1.0|2.0" }, "require-dev": { "psr/cache": "^1.0|^2.0|^3.0", @@ -8456,7 +8906,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v5.3.3" + "source": "https://github.com/symfony/http-kernel/tree/v5.3.5" }, "funding": [ { @@ -8472,20 +8922,20 @@ "type": "tidelift" } ], - "time": "2021-06-30T08:27:49+00:00" + "time": "2021-07-27T04:39:22+00:00" }, { "name": "symfony/mime", - "version": "v5.3.2", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "47dd7912152b82d0d4c8d9040dbc93d6232d472a" + "reference": "633e4e8afe9e529e5599d71238849a4218dd497b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/47dd7912152b82d0d4c8d9040dbc93d6232d472a", - "reference": "47dd7912152b82d0d4c8d9040dbc93d6232d472a", + "url": "https://api.github.com/repos/symfony/mime/zipball/633e4e8afe9e529e5599d71238849a4218dd497b", + "reference": "633e4e8afe9e529e5599d71238849a4218dd497b", "shasum": "" }, "require": { @@ -8493,7 +8943,7 @@ "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-intl-idn": "^1.10", "symfony/polyfill-mbstring": "^1.0", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { "egulias/email-validator": "~3.0.0", @@ -8539,7 +8989,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.3.2" + "source": "https://github.com/symfony/mime/tree/v5.3.4" }, "funding": [ { @@ -8555,7 +9005,7 @@ "type": "tidelift" } ], - "time": "2021-06-09T10:58:01+00:00" + "time": "2021-07-21T12:40:44+00:00" }, { "name": "symfony/polyfill-ctype", @@ -9375,21 +9825,21 @@ }, { "name": "symfony/process", - "version": "v5.3.2", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "714b47f9196de61a196d86c4bad5f09201b307df" + "reference": "d16634ee55b895bd85ec714dadc58e4428ecf030" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/714b47f9196de61a196d86c4bad5f09201b307df", - "reference": "714b47f9196de61a196d86c4bad5f09201b307df", + "url": "https://api.github.com/repos/symfony/process/zipball/d16634ee55b895bd85ec714dadc58e4428ecf030", + "reference": "d16634ee55b895bd85ec714dadc58e4428ecf030", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -9417,7 +9867,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.3.2" + "source": "https://github.com/symfony/process/tree/v5.3.4" }, "funding": [ { @@ -9433,26 +9883,26 @@ "type": "tidelift" } ], - "time": "2021-06-12T10:15:01+00:00" + "time": "2021-07-23T15:54:19+00:00" }, { "name": "symfony/routing", - "version": "v5.3.0", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "368e81376a8e049c37cb80ae87dbfbf411279199" + "reference": "0a35d2f57d73c46ab6d042ced783b81d09a624c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/368e81376a8e049c37cb80ae87dbfbf411279199", - "reference": "368e81376a8e049c37cb80ae87dbfbf411279199", + "url": "https://api.github.com/repos/symfony/routing/zipball/0a35d2f57d73c46ab6d042ced783b81d09a624c4", + "reference": "0a35d2f57d73c46ab6d042ced783b81d09a624c4", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/deprecation-contracts": "^2.1", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { "doctrine/annotations": "<1.12", @@ -9462,7 +9912,7 @@ }, "require-dev": { "doctrine/annotations": "^1.12", - "psr/log": "~1.0", + "psr/log": "^1|^2|^3", "symfony/config": "^5.3", "symfony/dependency-injection": "^4.4|^5.0", "symfony/expression-language": "^4.4|^5.0", @@ -9507,7 +9957,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.3.0" + "source": "https://github.com/symfony/routing/tree/v5.3.4" }, "funding": [ { @@ -9523,7 +9973,7 @@ "type": "tidelift" } ], - "time": "2021-05-26T17:43:10+00:00" + "time": "2021-07-23T15:55:36+00:00" }, { "name": "symfony/service-contracts", @@ -9689,23 +10139,23 @@ }, { "name": "symfony/translation", - "version": "v5.3.3", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "380b8c9e944d0e364b25f28e8e555241eb49c01c" + "reference": "d89ad7292932c2699cbe4af98d72c5c6bbc504c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/380b8c9e944d0e364b25f28e8e555241eb49c01c", - "reference": "380b8c9e944d0e364b25f28e8e555241eb49c01c", + "url": "https://api.github.com/repos/symfony/translation/zipball/d89ad7292932c2699cbe4af98d72c5c6bbc504c1", + "reference": "d89ad7292932c2699cbe4af98d72c5c6bbc504c1", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15", + "symfony/polyfill-php80": "^1.16", "symfony/translation-contracts": "^2.3" }, "conflict": { @@ -9719,7 +10169,7 @@ "symfony/translation-implementation": "2.3" }, "require-dev": { - "psr/log": "~1.0", + "psr/log": "^1|^2|^3", "symfony/config": "^4.4|^5.0", "symfony/console": "^4.4|^5.0", "symfony/dependency-injection": "^5.0", @@ -9764,7 +10214,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.3.3" + "source": "https://github.com/symfony/translation/tree/v5.3.4" }, "funding": [ { @@ -9780,7 +10230,7 @@ "type": "tidelift" } ], - "time": "2021-06-27T12:22:47+00:00" + "time": "2021-07-25T09:39:16+00:00" }, { "name": "symfony/translation-contracts", @@ -9862,22 +10312,22 @@ }, { "name": "symfony/var-dumper", - "version": "v5.3.3", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "46aa709affb9ad3355bd7a810f9662d71025c384" + "reference": "a895407f7cf55da42aa1480935d707684b690bfc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/46aa709affb9ad3355bd7a810f9662d71025c384", - "reference": "46aa709affb9ad3355bd7a810f9662d71025c384", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/a895407f7cf55da42aa1480935d707684b690bfc", + "reference": "a895407f7cf55da42aa1480935d707684b690bfc", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/polyfill-mbstring": "~1.0", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "conflict": { "phpunit/phpunit": "<5.4.3", @@ -9930,7 +10380,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.3.3" + "source": "https://github.com/symfony/var-dumper/tree/v5.3.4" }, "funding": [ { @@ -9946,7 +10396,7 @@ "type": "tidelift" } ], - "time": "2021-06-24T08:13:00+00:00" + "time": "2021-07-23T15:55:36+00:00" }, { "name": "teamtnt/laravel-scout-tntsearch-driver", @@ -10098,16 +10548,16 @@ }, { "name": "theseer/tokenizer", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "75a63c33a8577608444246075ea0af0d052e452a" + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", - "reference": "75a63c33a8577608444246075ea0af0d052e452a", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/34a41e998c2183e22995f158c581e7b5e755ab9e", + "reference": "34a41e998c2183e22995f158c581e7b5e755ab9e", "shasum": "" }, "require": { @@ -10136,7 +10586,7 @@ "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", "support": { "issues": "https://github.com/theseer/tokenizer/issues", - "source": "https://github.com/theseer/tokenizer/tree/master" + "source": "https://github.com/theseer/tokenizer/tree/1.2.1" }, "funding": [ { @@ -10144,7 +10594,7 @@ "type": "github" } ], - "time": "2020-07-12T23:59:07+00:00" + "time": "2021-07-28T10:34:58+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -10788,16 +11238,16 @@ }, { "name": "composer/composer", - "version": "2.1.4", + "version": "2.1.5", "source": { "type": "git", "url": "https://github.com/composer/composer.git", - "reference": "5701b38ec6c66dd143658e6aa18e1808d2d5dc4b" + "reference": "ac679902e9f66b85a8f9d8c1c88180f609a8745d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/composer/zipball/5701b38ec6c66dd143658e6aa18e1808d2d5dc4b", - "reference": "5701b38ec6c66dd143658e6aa18e1808d2d5dc4b", + "url": "https://api.github.com/repos/composer/composer/zipball/ac679902e9f66b85a8f9d8c1c88180f609a8745d", + "reference": "ac679902e9f66b85a8f9d8c1c88180f609a8745d", "shasum": "" }, "require": { @@ -10866,7 +11316,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/composer/issues", - "source": "https://github.com/composer/composer/tree/2.1.4" + "source": "https://github.com/composer/composer/tree/2.1.5" }, "funding": [ { @@ -10882,7 +11332,7 @@ "type": "tidelift" } ], - "time": "2021-07-22T11:55:24+00:00" + "time": "2021-07-23T08:35:47+00:00" }, { "name": "composer/metadata-minifier", @@ -11594,16 +12044,16 @@ }, { "name": "nunomaduro/collision", - "version": "v5.5.0", + "version": "v5.6.0", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "b5cb36122f1c142c3c3ee20a0ae778439ef0244b" + "reference": "0122ac6b03c75279ef78d1c0ad49725dfc52a8d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/b5cb36122f1c142c3c3ee20a0ae778439ef0244b", - "reference": "b5cb36122f1c142c3c3ee20a0ae778439ef0244b", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/0122ac6b03c75279ef78d1c0ad49725dfc52a8d2", + "reference": "0122ac6b03c75279ef78d1c0ad49725dfc52a8d2", "shasum": "" }, "require": { @@ -11617,10 +12067,10 @@ "fideloper/proxy": "^4.4.1", "friendsofphp/php-cs-fixer": "^2.17.3", "fruitcake/laravel-cors": "^2.0.3", - "laravel/framework": "^9.0", + "laravel/framework": "^8.0 || ^9.0", "nunomaduro/larastan": "^0.6.2", "nunomaduro/mock-final-classes": "^1.0", - "orchestra/testbench": "^7.0", + "orchestra/testbench": "^6.0 || ^7.0", "phpstan/phpstan": "^0.12.64", "phpunit/phpunit": "^9.5.0" }, @@ -11678,7 +12128,7 @@ "type": "patreon" } ], - "time": "2021-06-22T20:47:22+00:00" + "time": "2021-07-26T20:39:06+00:00" }, { "name": "php-cs-fixer/diff", @@ -11895,21 +12345,22 @@ }, { "name": "symfony/filesystem", - "version": "v5.3.3", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "19b71c8f313b411172dd5f470fd61f24466d79a9" + "reference": "343f4fe324383ca46792cae728a3b6e2f708fb32" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/19b71c8f313b411172dd5f470fd61f24466d79a9", - "reference": "19b71c8f313b411172dd5f470fd61f24466d79a9", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/343f4fe324383ca46792cae728a3b6e2f708fb32", + "reference": "343f4fe324383ca46792cae728a3b6e2f708fb32", "shasum": "" }, "require": { "php": ">=7.2.5", - "symfony/polyfill-ctype": "~1.8" + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -11937,7 +12388,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v5.3.3" + "source": "https://github.com/symfony/filesystem/tree/v5.3.4" }, "funding": [ { @@ -11953,27 +12404,27 @@ "type": "tidelift" } ], - "time": "2021-06-30T07:27:52+00:00" + "time": "2021-07-21T12:40:44+00:00" }, { "name": "symfony/options-resolver", - "version": "v5.3.0", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "162e886ca035869866d233a2bfef70cc28f9bbe5" + "reference": "a603e5701bd6e305cfc777a8b50bf081ef73105e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/162e886ca035869866d233a2bfef70cc28f9bbe5", - "reference": "162e886ca035869866d233a2bfef70cc28f9bbe5", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/a603e5701bd6e305cfc777a8b50bf081ef73105e", + "reference": "a603e5701bd6e305cfc777a8b50bf081ef73105e", "shasum": "" }, "require": { "php": ">=7.2.5", "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-php73": "~1.0", - "symfony/polyfill-php80": "^1.15" + "symfony/polyfill-php80": "^1.16" }, "type": "library", "autoload": { @@ -12006,7 +12457,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v5.3.0" + "source": "https://github.com/symfony/options-resolver/tree/v5.3.4" }, "funding": [ { @@ -12022,20 +12473,20 @@ "type": "tidelift" } ], - "time": "2021-05-26T17:43:10+00:00" + "time": "2021-07-23T15:55:36+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.3.0", + "version": "v5.3.4", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "313d02f59d6543311865007e5ff4ace05b35ee65" + "reference": "b24c6a92c6db316fee69e38c80591e080e41536c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/313d02f59d6543311865007e5ff4ace05b35ee65", - "reference": "313d02f59d6543311865007e5ff4ace05b35ee65", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/b24c6a92c6db316fee69e38c80591e080e41536c", + "reference": "b24c6a92c6db316fee69e38c80591e080e41536c", "shasum": "" }, "require": { @@ -12068,7 +12519,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v5.3.0" + "source": "https://github.com/symfony/stopwatch/tree/v5.3.4" }, "funding": [ { @@ -12084,7 +12535,7 @@ "type": "tidelift" } ], - "time": "2021-05-26T17:43:10+00:00" + "time": "2021-07-10T08:58:57+00:00" } ], "aliases": [], diff --git a/config/app.php b/config/app.php index 64885dfd..099b59ff 100644 --- a/config/app.php +++ b/config/app.php @@ -162,7 +162,6 @@ return [ TeamTNT\Scout\TNTSearchScoutServiceProvider::class, Intervention\Image\ImageServiceProvider::class, - Madnest\Madzipper\MadzipperServiceProvider::class, App\Providers\FortifyServiceProvider::class, /* @@ -229,36 +228,27 @@ return [ 'Image' => Intervention\Image\Facades\Image::class, 'Stripe' => Cartalyst\Stripe\Laravel\Facades\Stripe::class, 'Crawler' => Jaybizzle\LaravelCrawlerDetect\Facades\LaravelCrawlerDetect::class, - //'Madzipper' => Madnest\Madzipper\Madzipper::class, ], - 'deploy_secret' => env('APP_DEPLOY_SECRET'), - 'deploy_branch' => env('APP_DEPLOY_BRANCH'), - + 'deploy_secret' => env('APP_DEPLOY_SECRET'), + 'deploy_branch' => env('APP_DEPLOY_BRANCH'), 'debug_blacklist' => [ - '_ENV' => [ + '_ENV' => [ 'APP_KEY', - 'DB_USERNAME', 'DB_PASSWORD', 'REDIS_PASSWORD', 'MAIL_PASSWORD', - 'PUSHER_APP_KEY', 'PUSHER_APP_SECRET', - 'PASSPORT_CLIENT_ID', 'PASSPORT_CLIENT_SECRET', - - 'AWS_SECRET_ACCESS_KEY', - 'AWS_ACCESS_KEY_ID', - + 'S3_SECRET_ACCESS_KEY', + 'S3_ACCESS_KEY_ID', 'DO_SPACES_KEY', 'DO_SPACES_SECRET', - 'WASABI_KEY', 'WASABI_SECRET', - 'BACKBLAZE_KEY', 'BACKBLAZE_SECRET', ], @@ -276,8 +266,8 @@ return [ 'PASSPORT_CLIENT_ID', 'PASSPORT_CLIENT_SECRET', - 'AWS_SECRET_ACCESS_KEY', - 'AWS_ACCESS_KEY_ID', + 'S3_SECRET_ACCESS_KEY', + 'S3_ACCESS_KEY_ID', 'DO_SPACES_KEY', 'DO_SPACES_SECRET', @@ -288,7 +278,7 @@ return [ 'BACKBLAZE_KEY', 'BACKBLAZE_SECRET', ], - '_POST' => [ + '_POST' => [ 'password', ], ], diff --git a/config/cache.php b/config/cache.php index 9d878a8d..c019444f 100644 --- a/config/cache.php +++ b/config/cache.php @@ -76,9 +76,9 @@ return [ 'dynamodb' => [ 'driver' => 'dynamodb', - 'key' => env('AWS_ACCESS_KEY_ID'), - 'secret' => env('AWS_SECRET_ACCESS_KEY'), - 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'key' => env('S3_ACCESS_KEY_ID'), + 'secret' => env('S3_SECRET_ACCESS_KEY'), + 'region' => env('S3_DEFAULT_REGION', 'us-east-1'), 'table' => env('DYNAMODB_CACHE_TABLE', 'cache'), 'endpoint' => env('DYNAMODB_ENDPOINT'), ], diff --git a/config/filesystems.php b/config/filesystems.php index c1d1bf8c..a234d974 100644 --- a/config/filesystems.php +++ b/config/filesystems.php @@ -45,58 +45,19 @@ return [ 'driver' => 'local', 'root' => storage_path('app'), ], - 'public' => [ 'driver' => 'local', 'root' => storage_path('app/public'), 'url' => env('APP_URL').'/storage', 'visibility' => 'public', ], - - 'oss' => [ - 'driver' => 's3', - 'key' => env('OSS_ACCESS_KEY_ID'), - 'secret' => env('OSS_SECRET_ACCESS_KEY'), - 'region' => env('OSS_REGION'), - 'bucket' => env('OSS_BUCKET'), - 'endpoint' => env('OSS_ENDPOINT'), - 'url' => env('OSS_URL'), - ], - 's3' => [ 'driver' => 's3', - 'key' => env('AWS_ACCESS_KEY_ID'), - 'secret' => env('AWS_SECRET_ACCESS_KEY'), - 'region' => env('AWS_DEFAULT_REGION'), - 'bucket' => env('AWS_BUCKET'), - 'endpoint' => env('AWS_URL'), - ], - - 'spaces' => [ - 'driver' => 's3', - 'key' => env('DO_SPACES_KEY'), - 'secret' => env('DO_SPACES_SECRET'), - 'endpoint' => env('DO_SPACES_ENDPOINT'), - 'region' => env('DO_SPACES_REGION'), - 'bucket' => env('DO_SPACES_BUCKET'), - ], - - 'wasabi' => [ - 'driver' => 's3', - 'key' => env('WASABI_KEY'), - 'secret' => env('WASABI_SECRET'), - 'endpoint' => env('WASABI_ENDPOINT'), - 'region' => env('WASABI_REGION'), - 'bucket' => env('WASABI_BUCKET'), - ], - - 'backblaze' => [ - 'driver' => 's3', - 'key' => env('BACKBLAZE_KEY'), - 'secret' => env('BACKBLAZE_SECRET'), - 'endpoint' => env('BACKBLAZE_ENDPOINT'), - 'region' => env('BACKBLAZE_REGION'), - 'bucket' => env('BACKBLAZE_BUCKET'), + 'key' => env('S3_ACCESS_KEY_ID'), + 'secret' => env('S3_SECRET_ACCESS_KEY'), + 'region' => env('S3_DEFAULT_REGION'), + 'bucket' => env('S3_BUCKET'), + 'endpoint' => env('S3_URL'), ], ], ]; diff --git a/config/queue.php b/config/queue.php index a36e3c58..9170077a 100644 --- a/config/queue.php +++ b/config/queue.php @@ -49,11 +49,11 @@ return [ 'sqs' => [ 'driver' => 'sqs', - 'key' => env('AWS_ACCESS_KEY_ID'), - 'secret' => env('AWS_SECRET_ACCESS_KEY'), + 'key' => env('S3_ACCESS_KEY_ID'), + 'secret' => env('S3_SECRET_ACCESS_KEY'), 'prefix' => env('SQS_PREFIX', 'https://sqs.us-east-1.amazonaws.com/your-account-id'), 'queue' => env('SQS_QUEUE', 'your-queue-name'), - 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'region' => env('S3_DEFAULT_REGION', 'us-east-1'), ], 'redis' => [ diff --git a/config/services.php b/config/services.php index 120d6d5c..effb5d55 100644 --- a/config/services.php +++ b/config/services.php @@ -24,9 +24,9 @@ return [ ], 'ses' => [ - 'key' => env('AWS_ACCESS_KEY_ID'), - 'secret' => env('AWS_SECRET_ACCESS_KEY'), - 'region' => env('AWS_DEFAULT_REGION', 'us-east-1'), + 'key' => env('S3_ACCESS_KEY_ID'), + 'secret' => env('S3_SECRET_ACCESS_KEY'), + 'region' => env('S3_DEFAULT_REGION', 'us-east-1'), ], 'passport' => [ diff --git a/config/zipstream.php b/config/zipstream.php new file mode 100644 index 00000000..eac75dfb --- /dev/null +++ b/config/zipstream.php @@ -0,0 +1,33 @@ + [ + 'predict' => env('ZIPSTREAM_PREDICT_SIZE', true), + ], + + // Default options for files added + 'file' => [ + 'method' => env('ZIPSTREAM_FILE_METHOD', 'store'), + + 'deflate' => env('ZIPSTREAM_FILE_DEFLATE'), + ], + + // Configs for S3 files + 'aws' => [ + 'credentials' => [ + 'key' => env('S3_ACCESS_KEY_ID'), + 'secret' => env('S3_SECRET_ACCESS_KEY'), + ], + 'version' => 'latest', + 'endpoint' => env('S3_URL'), + 'use_path_style_endpoint' => env('ZIPSTREAM_S3_PATH_STYLE_ENDPOINT', false), + 'region' => env('ZIPSTREAM_S3_REGION', env('S3_DEFAULT_REGION', 'us-east-1')), + ], + + // https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_credentials_anonymous.html + 'aws_anonymous_client' => env('S3_ANONYMOUS', false), +]; diff --git a/env.testing b/env.testing index 7313089c..bc85d7d6 100644 --- a/env.testing +++ b/env.testing @@ -34,10 +34,10 @@ MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS="${MAIL_USERNAME}" MAIL_FROM_NAME="${MAIL_USERNAME}" -AWS_ACCESS_KEY_ID= -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION= -AWS_BUCKET= +S3_ACCESS_KEY_ID= +S3_SECRET_ACCESS_KEY= +S3_DEFAULT_REGION= +S3_BUCKET= DO_SPACES_KEY= DO_SPACES_SECRET= diff --git a/public/mix-manifest.json b/public/mix-manifest.json index 94879066..07a42a5a 100644 --- a/public/mix-manifest.json +++ b/public/mix-manifest.json @@ -4,8 +4,8 @@ "/chunks/admin.js": "/chunks/admin.js?id=f48be89654bdd5857619", "/chunks/admin-account.js": "/chunks/admin-account.js?id=e96160a07e0045280e2c", "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js": "/chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/app-index~chu~c7a13fb0.js?id=91adf6625e49f0b93731", - "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~a7b1c983.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~a7b1c983.js?id=66c2c205086f658115d7", - "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~eeab5771.js?id=1afc2a786d4a7222405e", + "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~39825672.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~39825672.js?id=6c16b40191c43d6bd8ee", + "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js?id=f580c1668c202a4542d2", "/chunks/admin~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser.js?id=5b0057f770c45f0ffd92", "/chunks/admin~chunks/files~chunks/settings~chunks/shared/file-browser.js": "/chunks/admin~chunks/files~chunks/settings~chunks/shared/file-browser.js?id=d5c9e6104890d4a17143", "/chunks/admin~chunks/platform.js": "/chunks/admin~chunks/platform.js?id=2f834ba9277e999fee7a", @@ -75,6 +75,7 @@ "/chunks/shared/single-file.js": "/chunks/shared/single-file.js?id=7886247bb35deada28a2", "/chunks/sign-in.js": "/chunks/sign-in.js?id=6e5c9d01fd2214d21de2", "/chunks/sign-up.js": "/chunks/sign-up.js?id=0838eae8d5c33f41789c", + "/chunks/status-check.js": "/chunks/status-check.js?id=635d75468141b45bf14c", "/chunks/stripe-credentials.js": "/chunks/stripe-credentials.js?id=fc62992171c9d72c3f4c", "/chunks/subscription-plans.js": "/chunks/subscription-plans.js?id=1f3df9ae55ca315928d4", "/chunks/subscription-service.js": "/chunks/subscription-service.js?id=1abfefb47d2e34107b64", @@ -90,211 +91,21 @@ "/chunks/user-storage.js": "/chunks/user-storage.js?id=2ec04730d677842c8d10", "/chunks/user-subscription.js": "/chunks/user-subscription.js?id=fc7ddaca95c26ec5c217", "/chunks/users.js": "/chunks/users.js?id=720f418eef0585bdb419", - "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~6c99cc74.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~6c99cc74.js?id=0a6998f62a162c08a48f", - "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~cfac0ed6.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~cfac0ed6.js?id=f66c7653a087fe1f3320", - "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js?id=9d10953d3b088324dfe3", - "/vendors~chunks/platform~chunks/shared.js": "/vendors~chunks/platform~chunks/shared.js?id=7d09e0b0658e140a7ffa", - "/chunks/platform.2fb97113768ec6ac8cf4.hot-update.js": "/chunks/platform.2fb97113768ec6ac8cf4.hot-update.js", - "/chunks/platform.269c296529f1e0bebfbc.hot-update.js": "/chunks/platform.269c296529f1e0bebfbc.hot-update.js", - "/js/main.fbb839974ed1b2dceb01.hot-update.js": "/js/main.fbb839974ed1b2dceb01.hot-update.js", - "/js/main.a16169bc4e06eb7f5dc9.hot-update.js": "/js/main.a16169bc4e06eb7f5dc9.hot-update.js", - "/js/main.fb460478cb691bafeaf9.hot-update.js": "/js/main.fb460478cb691bafeaf9.hot-update.js", - "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~39825672.js": "/chunks/admin-account~chunks/app-setup~chunks/billings-detail~chunks/create-new-password~chunks/datab~39825672.js?id=6c16b40191c43d6bd8ee", - "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js": "/chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~chunks/~3e4fdd8b.js?id=f580c1668c202a4542d2", - "/chunks/status-check.js": "/chunks/status-check.js?id=635d75468141b45bf14c", "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~25aaad73.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~25aaad73.js?id=0de519ac9b2c2754e0c2", "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~81c8aec0.js": "/vendors~chunks/admin~chunks/admin-account~chunks/app-appearance~chunks/app-billings~chunks/app-email~81c8aec0.js?id=ca3b57f70682c1c315f7", - "/js/main.c2ea1287545920d2d1d7.hot-update.js": "/js/main.c2ea1287545920d2d1d7.hot-update.js", - "/chunks/status-check.63fa29d966c15c677ded.hot-update.js": "/chunks/status-check.63fa29d966c15c677ded.hot-update.js", - "/chunks/status-check.56f7ef8040cf10183052.hot-update.js": "/chunks/status-check.56f7ef8040cf10183052.hot-update.js", - "/chunks/status-check.8eac1daf25a1315057b5.hot-update.js": "/chunks/status-check.8eac1daf25a1315057b5.hot-update.js", - "/chunks/status-check.e69a44900306402e2575.hot-update.js": "/chunks/status-check.e69a44900306402e2575.hot-update.js", - "/chunks/status-check.0335abb595171fb8febd.hot-update.js": "/chunks/status-check.0335abb595171fb8febd.hot-update.js", - "/chunks/status-check.925d2eb52c3b6f1092fc.hot-update.js": "/chunks/status-check.925d2eb52c3b6f1092fc.hot-update.js", - "/chunks/status-check.fa734d0ff0501d95d78a.hot-update.js": "/chunks/status-check.fa734d0ff0501d95d78a.hot-update.js", - "/chunks/status-check.b52a65d0854eba152db0.hot-update.js": "/chunks/status-check.b52a65d0854eba152db0.hot-update.js", - "/chunks/status-check.94a238343d32a3593730.hot-update.js": "/chunks/status-check.94a238343d32a3593730.hot-update.js", - "/chunks/status-check.d26d16eb0f805934099e.hot-update.js": "/chunks/status-check.d26d16eb0f805934099e.hot-update.js", - "/chunks/status-check.817d38d76d20d9b6b999.hot-update.js": "/chunks/status-check.817d38d76d20d9b6b999.hot-update.js", - "/chunks/status-check.b23cf9da9024262c156c.hot-update.js": "/chunks/status-check.b23cf9da9024262c156c.hot-update.js", - "/chunks/status-check.3caf4f948b9fb43bbe84.hot-update.js": "/chunks/status-check.3caf4f948b9fb43bbe84.hot-update.js", - "/chunks/status-check.fd48ccab164693fcdea5.hot-update.js": "/chunks/status-check.fd48ccab164693fcdea5.hot-update.js", - "/chunks/status-check.344bf3c13a2e36441be0.hot-update.js": "/chunks/status-check.344bf3c13a2e36441be0.hot-update.js", - "/chunks/status-check.ea968d6ece69aae07f08.hot-update.js": "/chunks/status-check.ea968d6ece69aae07f08.hot-update.js", - "/chunks/status-check.743a142fe4730f6d72af.hot-update.js": "/chunks/status-check.743a142fe4730f6d72af.hot-update.js", - "/chunks/status-check.5a6d6b03ac02d0701914.hot-update.js": "/chunks/status-check.5a6d6b03ac02d0701914.hot-update.js", - "/chunks/status-check.82222dc83f1b97faa180.hot-update.js": "/chunks/status-check.82222dc83f1b97faa180.hot-update.js", - "/chunks/status-check.12a7818cafb4f559e3ca.hot-update.js": "/chunks/status-check.12a7818cafb4f559e3ca.hot-update.js", - "/chunks/status-check.4f234d9cc5aa1f7383d6.hot-update.js": "/chunks/status-check.4f234d9cc5aa1f7383d6.hot-update.js", - "/chunks/status-check.a003a3da687f128f1e7e.hot-update.js": "/chunks/status-check.a003a3da687f128f1e7e.hot-update.js", - "/chunks/status-check.153b00e47876739069e3.hot-update.js": "/chunks/status-check.153b00e47876739069e3.hot-update.js", - "/chunks/status-check.2bae6095b187aef98c4a.hot-update.js": "/chunks/status-check.2bae6095b187aef98c4a.hot-update.js", - "/chunks/status-check.117479536341a6383292.hot-update.js": "/chunks/status-check.117479536341a6383292.hot-update.js", - "/chunks/status-check.2b4d86d0cae4f430abca.hot-update.js": "/chunks/status-check.2b4d86d0cae4f430abca.hot-update.js", - "/chunks/status-check.21ec11073ec3500f7ba1.hot-update.js": "/chunks/status-check.21ec11073ec3500f7ba1.hot-update.js", - "/chunks/status-check.2f86dfe4fe2abec46c5e.hot-update.js": "/chunks/status-check.2f86dfe4fe2abec46c5e.hot-update.js", - "/chunks/status-check.5773c30fb2fcb9d05689.hot-update.js": "/chunks/status-check.5773c30fb2fcb9d05689.hot-update.js", - "/chunks/status-check.03a83305772f7918d123.hot-update.js": "/chunks/status-check.03a83305772f7918d123.hot-update.js", - "/chunks/status-check.21bdb0e4207c0a40f7f6.hot-update.js": "/chunks/status-check.21bdb0e4207c0a40f7f6.hot-update.js", - "/chunks/status-check.656aa08d4bae5f1c3df3.hot-update.js": "/chunks/status-check.656aa08d4bae5f1c3df3.hot-update.js", - "/chunks/status-check.5211425a983b819363c7.hot-update.js": "/chunks/status-check.5211425a983b819363c7.hot-update.js", - "/chunks/status-check.859628c5c6992d3bb018.hot-update.js": "/chunks/status-check.859628c5c6992d3bb018.hot-update.js", - "/chunks/status-check.78422de75fed79be3951.hot-update.js": "/chunks/status-check.78422de75fed79be3951.hot-update.js", - "/chunks/status-check.908af3c7f8f9a7b1ae21.hot-update.js": "/chunks/status-check.908af3c7f8f9a7b1ae21.hot-update.js", - "/chunks/status-check.cbdef22c5c6001f2d227.hot-update.js": "/chunks/status-check.cbdef22c5c6001f2d227.hot-update.js", - "/chunks/status-check.62eafd6d519bd018414b.hot-update.js": "/chunks/status-check.62eafd6d519bd018414b.hot-update.js", - "/chunks/status-check.4083ee0f0450741e34b3.hot-update.js": "/chunks/status-check.4083ee0f0450741e34b3.hot-update.js", - "/chunks/status-check.c5fc51f63061817cc012.hot-update.js": "/chunks/status-check.c5fc51f63061817cc012.hot-update.js", - "/chunks/status-check.6367aec2f0f20b55910e.hot-update.js": "/chunks/status-check.6367aec2f0f20b55910e.hot-update.js", - "/chunks/status-check.0332955397de443c048f.hot-update.js": "/chunks/status-check.0332955397de443c048f.hot-update.js", - "/chunks/status-check.27d85b5ebb3b6e946930.hot-update.js": "/chunks/status-check.27d85b5ebb3b6e946930.hot-update.js", - "/chunks/status-check.4de407b5ef2da57f3d29.hot-update.js": "/chunks/status-check.4de407b5ef2da57f3d29.hot-update.js", - "/chunks/status-check.24f6388ea8eb94ebe753.hot-update.js": "/chunks/status-check.24f6388ea8eb94ebe753.hot-update.js", - "/chunks/status-check.6e32f854037eb3962c05.hot-update.js": "/chunks/status-check.6e32f854037eb3962c05.hot-update.js", - "/chunks/status-check.beab2f037dc3451bd183.hot-update.js": "/chunks/status-check.beab2f037dc3451bd183.hot-update.js", - "/chunks/status-check.8d938d248630f003d0f0.hot-update.js": "/chunks/status-check.8d938d248630f003d0f0.hot-update.js", - "/chunks/status-check.6e64aab3299cb4187df4.hot-update.js": "/chunks/status-check.6e64aab3299cb4187df4.hot-update.js", - "/chunks/status-check.f02f451b6a39b1505420.hot-update.js": "/chunks/status-check.f02f451b6a39b1505420.hot-update.js", - "/chunks/status-check.41a0d8d8ff82a12822d5.hot-update.js": "/chunks/status-check.41a0d8d8ff82a12822d5.hot-update.js", - "/chunks/status-check.9e5c61113daf0ef6e8a7.hot-update.js": "/chunks/status-check.9e5c61113daf0ef6e8a7.hot-update.js", - "/chunks/status-check.04b816923d6220da8bcd.hot-update.js": "/chunks/status-check.04b816923d6220da8bcd.hot-update.js", - "/chunks/status-check.3d05edacfae90f309828.hot-update.js": "/chunks/status-check.3d05edacfae90f309828.hot-update.js", - "/chunks/status-check.aaebee1463c6323bbc6a.hot-update.js": "/chunks/status-check.aaebee1463c6323bbc6a.hot-update.js", - "/chunks/status-check.70cbffa431377a3150be.hot-update.js": "/chunks/status-check.70cbffa431377a3150be.hot-update.js", - "/chunks/status-check.71df47da915040cf2118.hot-update.js": "/chunks/status-check.71df47da915040cf2118.hot-update.js", - "/chunks/status-check.818828709ad87794fbe9.hot-update.js": "/chunks/status-check.818828709ad87794fbe9.hot-update.js", - "/chunks/status-check.133fe71e1cb3f84ee1e4.hot-update.js": "/chunks/status-check.133fe71e1cb3f84ee1e4.hot-update.js", - "/chunks/status-check.5f3da43accc8be3d1a2b.hot-update.js": "/chunks/status-check.5f3da43accc8be3d1a2b.hot-update.js", - "/chunks/status-check.028c5b059149a81f7787.hot-update.js": "/chunks/status-check.028c5b059149a81f7787.hot-update.js", - "/chunks/status-check.17d9938802d2e0de939e.hot-update.js": "/chunks/status-check.17d9938802d2e0de939e.hot-update.js", - "/chunks/status-check.55864bdb9120e9c5dec2.hot-update.js": "/chunks/status-check.55864bdb9120e9c5dec2.hot-update.js", - "/chunks/status-check.89f667b0b909a3f26fdc.hot-update.js": "/chunks/status-check.89f667b0b909a3f26fdc.hot-update.js", - "/chunks/status-check.046ee03118743db52823.hot-update.js": "/chunks/status-check.046ee03118743db52823.hot-update.js", - "/chunks/status-check.369a05557ff60fd9dc18.hot-update.js": "/chunks/status-check.369a05557ff60fd9dc18.hot-update.js", - "/chunks/status-check.75d1417fa31fbbcfda5c.hot-update.js": "/chunks/status-check.75d1417fa31fbbcfda5c.hot-update.js", - "/chunks/status-check.2556456bff5ae93f32ed.hot-update.js": "/chunks/status-check.2556456bff5ae93f32ed.hot-update.js", - "/chunks/status-check.83ba79669c740c10b6ee.hot-update.js": "/chunks/status-check.83ba79669c740c10b6ee.hot-update.js", - "/chunks/status-check.09bab771f6e1f18dab46.hot-update.js": "/chunks/status-check.09bab771f6e1f18dab46.hot-update.js", - "/chunks/status-check.02c1726eaaded87b4c41.hot-update.js": "/chunks/status-check.02c1726eaaded87b4c41.hot-update.js", - "/chunks/status-check.a8adf92deeeda8925b60.hot-update.js": "/chunks/status-check.a8adf92deeeda8925b60.hot-update.js", - "/chunks/status-check.2deadcd44fb48105d730.hot-update.js": "/chunks/status-check.2deadcd44fb48105d730.hot-update.js", - "/chunks/status-check.839642e4f10111e58a22.hot-update.js": "/chunks/status-check.839642e4f10111e58a22.hot-update.js", - "/chunks/status-check.6ce31ad99aa96d5b5993.hot-update.js": "/chunks/status-check.6ce31ad99aa96d5b5993.hot-update.js", - "/chunks/status-check.701cf5a929649d21713e.hot-update.js": "/chunks/status-check.701cf5a929649d21713e.hot-update.js", - "/chunks/status-check.3e4358af3c0450adfd95.hot-update.js": "/chunks/status-check.3e4358af3c0450adfd95.hot-update.js", - "/chunks/status-check.01efdf5080444cc90af5.hot-update.js": "/chunks/status-check.01efdf5080444cc90af5.hot-update.js", - "/chunks/status-check.846f9c7f5da907550aaf.hot-update.js": "/chunks/status-check.846f9c7f5da907550aaf.hot-update.js", - "/chunks/status-check.024478ce34199ac7844b.hot-update.js": "/chunks/status-check.024478ce34199ac7844b.hot-update.js", - "/chunks/status-check.4f72acb05a725e6eca35.hot-update.js": "/chunks/status-check.4f72acb05a725e6eca35.hot-update.js", - "/chunks/status-check.3532526f22a4041a748b.hot-update.js": "/chunks/status-check.3532526f22a4041a748b.hot-update.js", - "/chunks/status-check.649a7aee2ae9580df2eb.hot-update.js": "/chunks/status-check.649a7aee2ae9580df2eb.hot-update.js", - "/chunks/status-check.4c850b632e7e0d2b61fa.hot-update.js": "/chunks/status-check.4c850b632e7e0d2b61fa.hot-update.js", - "/chunks/status-check.1c443b9b41fa0e557015.hot-update.js": "/chunks/status-check.1c443b9b41fa0e557015.hot-update.js", - "/chunks/status-check.43cd10467f8145ab8b8a.hot-update.js": "/chunks/status-check.43cd10467f8145ab8b8a.hot-update.js", - "/chunks/status-check.d481f098122f8655e168.hot-update.js": "/chunks/status-check.d481f098122f8655e168.hot-update.js", - "/chunks/status-check.a2c752fc5e7dbfc99947.hot-update.js": "/chunks/status-check.a2c752fc5e7dbfc99947.hot-update.js", - "/chunks/status-check.277b6609c757ec412ed6.hot-update.js": "/chunks/status-check.277b6609c757ec412ed6.hot-update.js", - "/chunks/status-check.5644c5af469338e1e03b.hot-update.js": "/chunks/status-check.5644c5af469338e1e03b.hot-update.js", - "/chunks/status-check.5f89e0e74f0a67dfe6ea.hot-update.js": "/chunks/status-check.5f89e0e74f0a67dfe6ea.hot-update.js", - "/chunks/status-check.5766b48d22a243437a6b.hot-update.js": "/chunks/status-check.5766b48d22a243437a6b.hot-update.js", - "/chunks/status-check.113f6b7ae77db4eac24f.hot-update.js": "/chunks/status-check.113f6b7ae77db4eac24f.hot-update.js", - "/chunks/status-check.bad00428f8bd7830ccc2.hot-update.js": "/chunks/status-check.bad00428f8bd7830ccc2.hot-update.js", - "/chunks/status-check.8e8b19f34cd29d04c28d.hot-update.js": "/chunks/status-check.8e8b19f34cd29d04c28d.hot-update.js", - "/chunks/status-check.7acf77341bdc0fd0843e.hot-update.js": "/chunks/status-check.7acf77341bdc0fd0843e.hot-update.js", - "/chunks/status-check.8959cc673db134489b96.hot-update.js": "/chunks/status-check.8959cc673db134489b96.hot-update.js", - "/chunks/status-check.0f0f5fd801d84fd294f2.hot-update.js": "/chunks/status-check.0f0f5fd801d84fd294f2.hot-update.js", - "/chunks/status-check.4a7ed4b9a955f6ef0258.hot-update.js": "/chunks/status-check.4a7ed4b9a955f6ef0258.hot-update.js", - "/chunks/status-check.42f2561f7ed01edb7b9e.hot-update.js": "/chunks/status-check.42f2561f7ed01edb7b9e.hot-update.js", - "/chunks/status-check.307cbf84fac83c53b419.hot-update.js": "/chunks/status-check.307cbf84fac83c53b419.hot-update.js", - "/chunks/status-check.f9a2880175ec95388827.hot-update.js": "/chunks/status-check.f9a2880175ec95388827.hot-update.js", - "/chunks/status-check.0c7c19c8fb32b76d9cfe.hot-update.js": "/chunks/status-check.0c7c19c8fb32b76d9cfe.hot-update.js", - "/chunks/status-check.dfa86748f8af397925a8.hot-update.js": "/chunks/status-check.dfa86748f8af397925a8.hot-update.js", - "/chunks/status-check.34bdf238910f0b66a954.hot-update.js": "/chunks/status-check.34bdf238910f0b66a954.hot-update.js", - "/chunks/status-check.21b2ade29ea985949dfa.hot-update.js": "/chunks/status-check.21b2ade29ea985949dfa.hot-update.js", - "/chunks/status-check.baa7022569488793f294.hot-update.js": "/chunks/status-check.baa7022569488793f294.hot-update.js", - "/chunks/status-check.48fe84b10d2b825983e8.hot-update.js": "/chunks/status-check.48fe84b10d2b825983e8.hot-update.js", - "/chunks/status-check.9cd90094c730296236af.hot-update.js": "/chunks/status-check.9cd90094c730296236af.hot-update.js", - "/chunks/status-check.b6ba8f66b0c827f642e0.hot-update.js": "/chunks/status-check.b6ba8f66b0c827f642e0.hot-update.js", - "/chunks/status-check.063a157f083452b8b125.hot-update.js": "/chunks/status-check.063a157f083452b8b125.hot-update.js", - "/chunks/status-check.c2ad5ae060ef91ab6871.hot-update.js": "/chunks/status-check.c2ad5ae060ef91ab6871.hot-update.js", - "/chunks/status-check.3891829a59fb48de60ce.hot-update.js": "/chunks/status-check.3891829a59fb48de60ce.hot-update.js", - "/chunks/status-check.b8524057c92cf78e2417.hot-update.js": "/chunks/status-check.b8524057c92cf78e2417.hot-update.js", - "/chunks/status-check.c2c2b27fb8e745ed8963.hot-update.js": "/chunks/status-check.c2c2b27fb8e745ed8963.hot-update.js", - "/chunks/status-check.15d6b6e8f8475864a673.hot-update.js": "/chunks/status-check.15d6b6e8f8475864a673.hot-update.js", - "/chunks/status-check.e1e749b26d87429a53a5.hot-update.js": "/chunks/status-check.e1e749b26d87429a53a5.hot-update.js", - "/chunks/status-check.342fab583e418b3ebbed.hot-update.js": "/chunks/status-check.342fab583e418b3ebbed.hot-update.js", - "/chunks/status-check.874b6be18d7aec08c953.hot-update.js": "/chunks/status-check.874b6be18d7aec08c953.hot-update.js", - "/chunks/status-check.e9174089178511cfce23.hot-update.js": "/chunks/status-check.e9174089178511cfce23.hot-update.js", - "/chunks/status-check.fd3ef69c9b6f81c92394.hot-update.js": "/chunks/status-check.fd3ef69c9b6f81c92394.hot-update.js", - "/chunks/status-check.78ba39dc0f31677098e8.hot-update.js": "/chunks/status-check.78ba39dc0f31677098e8.hot-update.js", - "/chunks/status-check.3be338b4385837e5654a.hot-update.js": "/chunks/status-check.3be338b4385837e5654a.hot-update.js", - "/chunks/status-check.2aab334f1e78b69f9dda.hot-update.js": "/chunks/status-check.2aab334f1e78b69f9dda.hot-update.js", - "/chunks/status-check.5149b186c7ce6ea2480c.hot-update.js": "/chunks/status-check.5149b186c7ce6ea2480c.hot-update.js", - "/chunks/status-check.25a5d00d0b6ac88049aa.hot-update.js": "/chunks/status-check.25a5d00d0b6ac88049aa.hot-update.js", - "/chunks/status-check.a63a1d526dfed0a76b1e.hot-update.js": "/chunks/status-check.a63a1d526dfed0a76b1e.hot-update.js", - "/chunks/status-check.57c6ee73eb5756b44f65.hot-update.js": "/chunks/status-check.57c6ee73eb5756b44f65.hot-update.js", - "/chunks/status-check.655180fb3bb8f2efd7ae.hot-update.js": "/chunks/status-check.655180fb3bb8f2efd7ae.hot-update.js", - "/chunks/status-check.29342b5167bd43d568f5.hot-update.js": "/chunks/status-check.29342b5167bd43d568f5.hot-update.js", - "/chunks/status-check.df584bec143167d59b30.hot-update.js": "/chunks/status-check.df584bec143167d59b30.hot-update.js", - "/chunks/status-check.25ff987a9d155f6a08c9.hot-update.js": "/chunks/status-check.25ff987a9d155f6a08c9.hot-update.js", - "/chunks/status-check.9ddbb495101d3b822daf.hot-update.js": "/chunks/status-check.9ddbb495101d3b822daf.hot-update.js", - "/chunks/status-check.1b4fc4962eb0a2abf3dd.hot-update.js": "/chunks/status-check.1b4fc4962eb0a2abf3dd.hot-update.js", - "/chunks/status-check.ec77ec1f605d9f475cca.hot-update.js": "/chunks/status-check.ec77ec1f605d9f475cca.hot-update.js", - "/chunks/status-check.61056a5eacdc788fdb48.hot-update.js": "/chunks/status-check.61056a5eacdc788fdb48.hot-update.js", - "/chunks/status-check.de33b68974f5a3e9343d.hot-update.js": "/chunks/status-check.de33b68974f5a3e9343d.hot-update.js", - "/chunks/status-check.6deee25c3fa2227ac05c.hot-update.js": "/chunks/status-check.6deee25c3fa2227ac05c.hot-update.js", - "/js/main.346469da6ba011c0109f.hot-update.js": "/js/main.346469da6ba011c0109f.hot-update.js", - "/chunks/status-check.346469da6ba011c0109f.hot-update.js": "/chunks/status-check.346469da6ba011c0109f.hot-update.js", - "/js/main.fed47f21bf43ddf8070d.hot-update.js": "/js/main.fed47f21bf43ddf8070d.hot-update.js", - "/chunks/status-check.fed47f21bf43ddf8070d.hot-update.js": "/chunks/status-check.fed47f21bf43ddf8070d.hot-update.js", - "/chunks/status-check.a6bbcb26f56eeb17115c.hot-update.js": "/chunks/status-check.a6bbcb26f56eeb17115c.hot-update.js", - "/chunks/status-check.2110cbfc3b787f160276.hot-update.js": "/chunks/status-check.2110cbfc3b787f160276.hot-update.js", - "/chunks/status-check.f24b656e0468f2d00b4f.hot-update.js": "/chunks/status-check.f24b656e0468f2d00b4f.hot-update.js", - "/chunks/status-check.05b0553aadf9779806cd.hot-update.js": "/chunks/status-check.05b0553aadf9779806cd.hot-update.js", - "/chunks/status-check.13342e70f59140ae74c2.hot-update.js": "/chunks/status-check.13342e70f59140ae74c2.hot-update.js", - "/chunks/status-check.87e610af0ba29a732796.hot-update.js": "/chunks/status-check.87e610af0ba29a732796.hot-update.js", - "/chunks/status-check.9e087dc2b137ef2c85cc.hot-update.js": "/chunks/status-check.9e087dc2b137ef2c85cc.hot-update.js", - "/chunks/status-check.d7e06b44ad2eb06686bb.hot-update.js": "/chunks/status-check.d7e06b44ad2eb06686bb.hot-update.js", - "/chunks/status-check.7d330409915d9d7d53e8.hot-update.js": "/chunks/status-check.7d330409915d9d7d53e8.hot-update.js", - "/chunks/admin-account.b0c3374208474353d7fe.hot-update.js": "/chunks/admin-account.b0c3374208474353d7fe.hot-update.js", - "/chunks/app-setup.b0c3374208474353d7fe.hot-update.js": "/chunks/app-setup.b0c3374208474353d7fe.hot-update.js", - "/chunks/billings-detail.b0c3374208474353d7fe.hot-update.js": "/chunks/billings-detail.b0c3374208474353d7fe.hot-update.js", - "/chunks/database.b0c3374208474353d7fe.hot-update.js": "/chunks/database.b0c3374208474353d7fe.hot-update.js", - "/chunks/environment-setup.b0c3374208474353d7fe.hot-update.js": "/chunks/environment-setup.b0c3374208474353d7fe.hot-update.js", - "/chunks/installation-disclaimer.b0c3374208474353d7fe.hot-update.js": "/chunks/installation-disclaimer.b0c3374208474353d7fe.hot-update.js", - "/chunks/purchase-code.b0c3374208474353d7fe.hot-update.js": "/chunks/purchase-code.b0c3374208474353d7fe.hot-update.js", - "/chunks/stripe-credentials.b0c3374208474353d7fe.hot-update.js": "/chunks/stripe-credentials.b0c3374208474353d7fe.hot-update.js", - "/chunks/subscription-plans.b0c3374208474353d7fe.hot-update.js": "/chunks/subscription-plans.b0c3374208474353d7fe.hot-update.js", - "/chunks/subscription-service.b0c3374208474353d7fe.hot-update.js": "/chunks/subscription-service.b0c3374208474353d7fe.hot-update.js", - "/chunks/status-check.0f14031d4868f0989dd6.hot-update.js": "/chunks/status-check.0f14031d4868f0989dd6.hot-update.js", - "/chunks/status-check.b2ac3607bcf6295b4d10.hot-update.js": "/chunks/status-check.b2ac3607bcf6295b4d10.hot-update.js", - "/chunks/status-check.f316b77b0d63454fb2b0.hot-update.js": "/chunks/status-check.f316b77b0d63454fb2b0.hot-update.js", - "/chunks/status-check.cba5e0e686d4165d0e5b.hot-update.js": "/chunks/status-check.cba5e0e686d4165d0e5b.hot-update.js", - "/chunks/status-check.875ff8ea9b5f6b427e3d.hot-update.js": "/chunks/status-check.875ff8ea9b5f6b427e3d.hot-update.js", - "/chunks/status-check.12d2c68ca5d98223766c.hot-update.js": "/chunks/status-check.12d2c68ca5d98223766c.hot-update.js", - "/chunks/status-check.7920c3c8d544ef1e8dfa.hot-update.js": "/chunks/status-check.7920c3c8d544ef1e8dfa.hot-update.js", - "/chunks/status-check.650821558473b8202711.hot-update.js": "/chunks/status-check.650821558473b8202711.hot-update.js", - "/js/main.fe5e650dee5a1bb1fc13.hot-update.js": "/js/main.fe5e650dee5a1bb1fc13.hot-update.js", - "/chunks/setup-wizard.72c41776eacb54277e7b.hot-update.js": "/chunks/setup-wizard.72c41776eacb54277e7b.hot-update.js", - "/js/main.1a7a79423134ff81c39e.hot-update.js": "/js/main.1a7a79423134ff81c39e.hot-update.js", - "/chunks/status-check.43c5e2ea66b5c644abaa.hot-update.js": "/chunks/status-check.43c5e2ea66b5c644abaa.hot-update.js", - "/chunks/status-check.0407d7cadd6459a2005a.hot-update.js": "/chunks/status-check.0407d7cadd6459a2005a.hot-update.js", - "/chunks/status-check.7a654201d619492b9376.hot-update.js": "/chunks/status-check.7a654201d619492b9376.hot-update.js", - "/chunks/status-check.031b18740a152e7a4afe.hot-update.js": "/chunks/status-check.031b18740a152e7a4afe.hot-update.js", - "/chunks/status-check.7eb7825dea3966215cac.hot-update.js": "/chunks/status-check.7eb7825dea3966215cac.hot-update.js", - "/chunks/status-check.20d5dcc79d3a534cb81f.hot-update.js": "/chunks/status-check.20d5dcc79d3a534cb81f.hot-update.js", - "/chunks/status-check.46c1ceffd07c9cd4efd7.hot-update.js": "/chunks/status-check.46c1ceffd07c9cd4efd7.hot-update.js", - "/chunks/status-check.2c09dddbdc08be3cff85.hot-update.js": "/chunks/status-check.2c09dddbdc08be3cff85.hot-update.js", - "/chunks/status-check.cfd5dfab739238654232.hot-update.js": "/chunks/status-check.cfd5dfab739238654232.hot-update.js", - "/chunks/status-check.4545d2bb3a274c9d33e6.hot-update.js": "/chunks/status-check.4545d2bb3a274c9d33e6.hot-update.js", - "/chunks/status-check.3059fc882bb7470ea906.hot-update.js": "/chunks/status-check.3059fc882bb7470ea906.hot-update.js", - "/chunks/status-check.fabc216483cd1a46178f.hot-update.js": "/chunks/status-check.fabc216483cd1a46178f.hot-update.js", - "/chunks/status-check.2173dc6d5f4e6a54ee7c.hot-update.js": "/chunks/status-check.2173dc6d5f4e6a54ee7c.hot-update.js", - "/chunks/status-check.98c68242f87b96f7722c.hot-update.js": "/chunks/status-check.98c68242f87b96f7722c.hot-update.js", - "/chunks/status-check.4b98c68a29333a6337cc.hot-update.js": "/chunks/status-check.4b98c68a29333a6337cc.hot-update.js", - "/chunks/status-check.7178131f4e152a536f0e.hot-update.js": "/chunks/status-check.7178131f4e152a536f0e.hot-update.js", - "/chunks/status-check.807b117afc2ff10989b5.hot-update.js": "/chunks/status-check.807b117afc2ff10989b5.hot-update.js", - "/chunks/status-check.d6a3ce2c20f008057804.hot-update.js": "/chunks/status-check.d6a3ce2c20f008057804.hot-update.js", - "/chunks/status-check.8d8bf142eb151aa57a29.hot-update.js": "/chunks/status-check.8d8bf142eb151aa57a29.hot-update.js", - "/chunks/status-check.362d9498a4fd7f2a55c8.hot-update.js": "/chunks/status-check.362d9498a4fd7f2a55c8.hot-update.js" + "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js": "/vendors~chunks/files~chunks/platform~chunks/shared~chunks/shared/file-browser~chunks/shared/single-file.js?id=9d10953d3b088324dfe3", + "/vendors~chunks/platform~chunks/shared.js": "/vendors~chunks/platform~chunks/shared.js?id=7d09e0b0658e140a7ffa", + "/js/main.57400113f383f4062d18.hot-update.js": "/js/main.57400113f383f4062d18.hot-update.js", + "/js/main.73d8c447097ea4686777.hot-update.js": "/js/main.73d8c447097ea4686777.hot-update.js", + "/js/main.0efd84c3833d84b7431f.hot-update.js": "/js/main.0efd84c3833d84b7431f.hot-update.js", + "/js/main.7756efc0c099cafc2144.hot-update.js": "/js/main.7756efc0c099cafc2144.hot-update.js", + "/js/main.16af1ec90f7cb7cfdc27.hot-update.js": "/js/main.16af1ec90f7cb7cfdc27.hot-update.js", + "/js/main.6d974de4f295f73172f2.hot-update.js": "/js/main.6d974de4f295f73172f2.hot-update.js", + "/js/main.784dc3bf93503ddfb3eb.hot-update.js": "/js/main.784dc3bf93503ddfb3eb.hot-update.js", + "/js/main.a7e623e5e87a8cd06638.hot-update.js": "/js/main.a7e623e5e87a8cd06638.hot-update.js", + "/js/main.fd177999a27d9a9e56ed.hot-update.js": "/js/main.fd177999a27d9a9e56ed.hot-update.js", + "/js/main.8b39d84cfbd9e8d53355.hot-update.js": "/js/main.8b39d84cfbd9e8d53355.hot-update.js", + "/js/main.571d6eb6e4cdc38cf4e7.hot-update.js": "/js/main.571d6eb6e4cdc38cf4e7.hot-update.js", + "/js/main.0a092bdc430e651e46a6.hot-update.js": "/js/main.0a092bdc430e651e46a6.hot-update.js", + "/js/main.a2e4ef0944dba57924a8.hot-update.js": "/js/main.a2e4ef0944dba57924a8.hot-update.js" } diff --git a/resources/js/store/modules/fileFunctions.js b/resources/js/store/modules/fileFunctions.js index e1575aba..2ea7a6d2 100644 --- a/resources/js/store/modules/fileFunctions.js +++ b/resources/js/store/modules/fileFunctions.js @@ -15,56 +15,28 @@ const defaultState = { } const actions = { - downloadFolder: ({commit, getters}, folder) => { - - commit('PROCESSING_POPUP', { - title: i18n.t('popup_zipping.title'), - message: i18n.t('popup_zipping.message') - }) + downloadFolder: ({getters}, folder) => { let route = getters.sharedDetail ? `/api/zip/folder/${folder.id}/${router.currentRoute.params.token}` : `/api/zip/folder/${folder.id}` - axios.get(route) - .then(response => { - Vue.prototype.$downloadFile(response.data.url, response.data.name) - }) - .catch(() => { - Vue.prototype.$isSomethingWrong() - }) - .finally(() => { - commit('PROCESSING_POPUP', undefined) - }) + Vue.prototype.$downloadFile(route, 'files.zip') }, - downloadFiles: ({commit, getters}) => { + downloadFiles: ({getters}) => { let files = [] // get ids of selected files getters.clipboard.forEach(file => files.push(file.id)) + let ids = files.join(',') + // Get route let route = getters.sharedDetail - ? `/api/zip/files/${router.currentRoute.params.token}` - : '/api/zip/files' + ? `/api/zip/files/${router.currentRoute.params.token}/?ids=${ids}` + : `/api/zip/files?ids=${ids}` - commit('PROCESSING_POPUP', { - title: i18n.t('popup_zipping.title'), - message: i18n.t('popup_zipping.message'), - }) - - axios.post(route, { - items: files - }) - .then(response => { - Vue.prototype.$downloadFile(response.data.url, response.data.name) - }) - .catch(() => { - Vue.prototype.$isSomethingWrong() - }) - .finally(() => { - commit('PROCESSING_POPUP', undefined) - }) + Vue.prototype.$downloadFile(route, 'files.zip') }, moveItem: ({commit, getters, dispatch}, {to_item, noSelectedItem}) => { diff --git a/routes/api.php b/routes/api.php index 5acfa2b9..c36b702a 100644 --- a/routes/api.php +++ b/routes/api.php @@ -81,5 +81,5 @@ Route::group(['middleware' => ['auth:sanctum']], function () { Route::post('/move', MoveFileOrFolderController::class); Route::get('/zip/folder/{id}', ZipFolderController::class); - Route::post('/zip/files', ZipFilesController::class); + Route::get('/zip/files', ZipFilesController::class); }); diff --git a/src/Domain/Homepage/Controllers/IndexController.php b/src/Domain/Homepage/Controllers/IndexController.php index ee90198a..de6d897f 100644 --- a/src/Domain/Homepage/Controllers/IndexController.php +++ b/src/Domain/Homepage/Controllers/IndexController.php @@ -1,5 +1,4 @@ [ 'FILESYSTEM_DRIVER' => $request->input('storage.driver') ?? null, - 'AWS_ACCESS_KEY_ID' => $request->input('storage.key') ?? null, - 'AWS_SECRET_ACCESS_KEY' => $request->input('storage.secret') ?? null, - 'AWS_DEFAULT_REGION' => $request->input('storage.region') ?? null, - 'AWS_BUCKET' => $request->input('storage.bucket') ?? null, - ], - 'spaces' => [ - 'FILESYSTEM_DRIVER' => $request->input('storage.driver') ?? null, - 'DO_SPACES_KEY' => $request->input('storage.key') ?? null, - 'DO_SPACES_SECRET' => $request->input('storage.secret') ?? null, - 'DO_SPACES_ENDPOINT' => $request->input('storage.endpoint') ?? null, - 'DO_SPACES_REGION' => $request->input('storage.region') ?? null, - 'DO_SPACES_BUCKET' => $request->input('storage.bucket') ?? null, - ], - 'wasabi' => [ - 'FILESYSTEM_DRIVER' => $request->input('storage.driver') ?? null, - 'WASABI_KEY' => $request->input('storage.key') ?? null, - 'WASABI_SECRET' => $request->input('storage.secret') ?? null, - 'WASABI_ENDPOINT' => $request->input('storage.endpoint') ?? null, - 'WASABI_REGION' => $request->input('storage.region') ?? null, - 'WASABI_BUCKET' => $request->input('storage.bucket') ?? null, - ], - 'backblaze' => [ - 'FILESYSTEM_DRIVER' => $request->input('storage.driver') ?? null, - 'BACKBLAZE_KEY' => $request->input('storage.key') ?? null, - 'BACKBLAZE_SECRET' => $request->input('storage.secret') ?? null, - 'BACKBLAZE_ENDPOINT' => $request->input('storage.endpoint') ?? null, - 'BACKBLAZE_REGION' => $request->input('storage.region') ?? null, - 'BACKBLAZE_BUCKET' => $request->input('storage.bucket') ?? null, - ], - 'oss' => [ - 'FILESYSTEM_DRIVER' => $request->input('storage.driver') ?? null, - 'OSS_ACCESS_KEY_ID' => $request->input('storage.key') ?? null, - 'OSS_SECRET_ACCESS_KEY' => $request->input('storage.secret') ?? null, - 'OSS_ENDPOINT' => $request->input('storage.endpoint') ?? null, - 'OSS_REGION' => $request->input('storage.region') ?? null, - 'OSS_BUCKET' => $request->input('storage.bucket') ?? null, + 'S3_ACCESS_KEY_ID' => $request->input('storage.key') ?? null, + 'S3_SECRET_ACCESS_KEY' => $request->input('storage.secret') ?? null, + 'S3_DEFAULT_REGION' => $request->input('storage.region') ?? null, + 'S3_BUCKET' => $request->input('storage.bucket') ?? null, + 'S3_URL' => $request->input('storage.endpoint') ?? null, ], ]; diff --git a/src/Domain/Zip/Actions/ZipFilesAction.php b/src/Domain/Zip/Actions/ZipFilesAction.php index 1a9b92fb..0450d1e9 100644 --- a/src/Domain/Zip/Actions/ZipFilesAction.php +++ b/src/Domain/Zip/Actions/ZipFilesAction.php @@ -1,70 +1,44 @@ each(function ($file) use ($disk_local) { - try { - $disk_local->put("temp/$file->basename", Storage::get("files/$file->user_id/$file->basename")); - } catch (FileNotFoundException $e) { - throw new HttpException(404, 'File not found'); - } - }); - } - - // Get zip path - $zip_name = Str::random() . '.zip'; - + ): ZipStream { // Create zip - $zipper = new \Madnest\Madzipper\Madzipper; - $zip = $zipper->make($disk_local->path("zip/$zip_name")); + $zip = Zip::create('files.zip'); - // Add files to zip - $files->each(function ($file) use ($zip, $disk_local) { - $file_path = is_storage_driver('local') - ? $disk_local->path("files/$file->user_id/$file->basename") - : $disk_local->path("temp/$file->basename"); + $files->map(function ($file) use ($zip) { + // get file path + $filePath = "files/$file->user_id/$file->basename"; - $zip->addString("$file->name.$file->mimetype", File::get($file_path)); + // Add file into zip + if (Storage::exists($filePath)) { + // local disk + if (is_storage_driver('local')) { + $zip->add(storage_path("app/files/$file->user_id/$file->basename"), $file->name); + } + + // s3 client + if (is_storage_driver('s3')) { + $bucketName = config('filesystems.disks.s3.bucket'); + + $zip->add("s3://$bucketName/files/$file->user_id/$file->basename", $file->name); + } + } }); - // Close zip - //$zip->close(); - - // Delete temporary files - if (! is_storage_driver('local')) { - $files->each(function ($file) use ($disk_local) { - $disk_local->delete("temp/$file->basename"); - }); - } - - // Store zip record - return Zip::create([ - 'user_id' => $shared->user_id ?? Auth::id(), - 'shared_token' => $shared->token ?? null, - 'basename' => $zip_name, - ]); + return $zip; } } diff --git a/src/Domain/Zip/Actions/ZipFolderAction.php b/src/Domain/Zip/Actions/ZipFolderAction.php index f25d468c..8d0999d8 100644 --- a/src/Domain/Zip/Actions/ZipFolderAction.php +++ b/src/Domain/Zip/Actions/ZipFolderAction.php @@ -1,15 +1,12 @@ user_id; + // Get folder $requested_folder = Folder::with(['folders.files', 'files']) ->where('id', $id) - ->where('user_id', Auth::id() ?? $shared->user_id) + ->where('user_id', $user_id) ->with('folders') ->first(); $files = get_files_for_zip($requested_folder, collect([])); - // Local storage instance - $disk_local = Storage::disk('local'); + // Create zip + $zip = Zip::create('files.zip'); - // Move file to local storage from external storage service - if (! is_storage_driver('local')) { - foreach ($files as $file) { - try { - $disk_local->put("temp/{$file['basename']}", Storage::get("files/$requested_folder->user_id/{$file['basename']}")); - } catch (FileNotFoundException $e) { - throw new HttpException(404, 'File not found'); + foreach ($files as $file) { + // get file path + $filePath = "files/$user_id/{$file['basename']}"; + + // Add file into zip + if (Storage::exists($filePath)) { + $zipDestination = "{$file['folder_path']}/{$file['name']}"; + + // local disk + if (is_storage_driver('local')) { + $zip->add(storage_path("app/files/$user_id/{$file['basename']}"), $zipDestination); + } + + // s3 client + if (is_storage_driver('s3')) { + $bucketName = config('filesystems.disks.s3.bucket'); + + $zip->add("s3://$bucketName/files/$user_id/{$file['basename']}", $zipDestination); } } } - // Get zip path - $zip_name = Str::random(16) . '-' . Str::slug($requested_folder->name) . '.zip'; - - // Create zip - $zipper = new \Madnest\Madzipper\Madzipper; - $zip = $zipper->make($disk_local->path("zip/$zip_name")); - - // Add files to zip - foreach ($files as $file) { - $file_path = is_storage_driver('local') - ? $disk_local->path("files/$requested_folder->user_id/{$file['basename']}") - : $disk_local->path("temp/{$file['basename']}"); - - $zip - ->folder($file['folder_path']) - ->addString("{$file['name']}.{$file['mimetype']}", File::get($file_path)); - } - - // Close zip - //$zip->close(); - - // Delete temporary files - if (! is_storage_driver('local')) { - foreach ($files as $file) { - $disk_local->delete('temp/' . $file['basename']); - } - } - - // Store zip record - return Zip::create([ - 'user_id' => $shared->user_id ?? Auth::id(), - 'shared_token' => $shared->token ?? null, - 'basename' => $zip_name, - ]); + return $zip; } } diff --git a/src/Domain/Zip/Controllers/VisitorZipFilesController.php b/src/Domain/Zip/Controllers/VisitorZipFilesController.php index 1f5aa7d5..58c577c6 100644 --- a/src/Domain/Zip/Controllers/VisitorZipFilesController.php +++ b/src/Domain/Zip/Controllers/VisitorZipFilesController.php @@ -3,12 +3,13 @@ namespace Domain\Zip\Controllers; use Illuminate\Http\Request; use Domain\Files\Models\File; -use Illuminate\Http\Response; use Domain\Sharing\Models\Share; use App\Http\Controllers\Controller; use Domain\Zip\Actions\ZipFilesAction; +use Domain\Traffic\Actions\RecordDownloadAction; use Domain\Sharing\Actions\ProtectShareRecordAction; use Domain\Sharing\Actions\VerifyAccessToItemAction; +use STS\ZipStream\ZipStream; /** * Guest download multiple files via zip @@ -18,6 +19,7 @@ class VisitorZipFilesController extends Controller public function __construct( private ProtectShareRecordAction $protectShareRecord, private VerifyAccessToItemAction $verifyAccessToItem, + private RecordDownloadAction $recordDownload, private ZipFilesAction $zipFiles, ) { } @@ -25,7 +27,7 @@ class VisitorZipFilesController extends Controller public function __invoke( Request $request, Share $shared, - ): Response { + ): ZipStream { // Check ability to access protected share record ($this->protectShareRecord)($shared); @@ -46,10 +48,11 @@ class VisitorZipFilesController extends Controller // Create zip $zip = ($this->zipFiles)($files, $shared); - // Get file - return response([ - 'url' => url("/zip/{$zip->id}/public/{$shared->token}"), - 'name' => $zip->basename, - ], 201); + ($this->recordDownload)( + file_size: $zip->predictZipSize(), + user_id: $shared->user_id, + ); + + return $zip; } } diff --git a/src/Domain/Zip/Controllers/VisitorZipFolderController.php b/src/Domain/Zip/Controllers/VisitorZipFolderController.php index 74fd4025..e588e415 100644 --- a/src/Domain/Zip/Controllers/VisitorZipFolderController.php +++ b/src/Domain/Zip/Controllers/VisitorZipFolderController.php @@ -1,11 +1,12 @@ protectShareRecord)($shared); @@ -36,16 +38,17 @@ class VisitorZipFolderController extends Controller ->where('id', $id); if (! $folder->exists()) { - abort(404, 'Requested folder doesn\'t exists.'); + abort(404, "Requested folder doesn't exists."); } // Create zip $zip = ($this->zipFolder)($id, $shared); - // Get file - return response([ - 'url' => url("/zip/{$zip->id}/public/{$shared->token}"), - 'name' => $zip->basename, - ], 201); + ($this->recordDownload)( + file_size: $zip->predictZipSize(), + user_id: $shared->user_id, + ); + + return $zip; } } diff --git a/src/Domain/Zip/Controllers/ZipFilesController.php b/src/Domain/Zip/Controllers/ZipFilesController.php index 063da223..82addecd 100644 --- a/src/Domain/Zip/Controllers/ZipFilesController.php +++ b/src/Domain/Zip/Controllers/ZipFilesController.php @@ -2,31 +2,35 @@ namespace Domain\Zip\Controllers; use Illuminate\Http\Request; +use STS\ZipStream\ZipStream; use Domain\Files\Models\File; -use Illuminate\Http\Response; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use Domain\Zip\Actions\ZipFilesAction; +use Domain\Traffic\Actions\RecordDownloadAction; class ZipFilesController extends Controller { public function __construct( private ZipFilesAction $zipFiles, + private RecordDownloadAction $recordDownload, ) { } public function __invoke( Request $request, - ): Response { + ): ZipStream { $files = File::whereUserId(Auth::id()) - ->whereIn('id', $request->input('items')) + ->whereIn('id', explode(',', $request->get('ids'))) ->get(); $zip = ($this->zipFiles)($files); - return response([ - 'url' => route('zip', $zip->id), - 'name' => $zip->basename, - ], 201); + ($this->recordDownload)( + file_size: $zip->predictZipSize(), + user_id: Auth::id(), + ); + + return $zip; } } diff --git a/src/Domain/Zip/Controllers/ZipFolderController.php b/src/Domain/Zip/Controllers/ZipFolderController.php index 3702d332..f131ad74 100644 --- a/src/Domain/Zip/Controllers/ZipFolderController.php +++ b/src/Domain/Zip/Controllers/ZipFolderController.php @@ -1,34 +1,38 @@ where('id', $id); if (! $folder->exists()) { - abort(404, "Requested folder doesn't exists."); + response("Requested folder doesn't exists.", 404); } $zip = ($this->zipFolder)($id); - return response([ - 'url' => route('zip', $zip->id), - 'name' => $zip->basename, - ], 201); + ($this->recordDownload)( + file_size: $zip->predictZipSize(), + user_id: Auth::id(), + ); + + return $zip; } }