diff --git a/.gitignore b/.gitignore index c0635892a..b26a20012 100644 --- a/.gitignore +++ b/.gitignore @@ -18,10 +18,7 @@ package-lock.json /public/storage /public/themes /public/vendor -/resources/themes/velocity/* -/resources/lang/vendor/admin/* -/resources/lang/vendor/shop/* -/resources/lang/vendor/velocity/* +/resources/lang/vendor /storage/*.key /storage/dcc-data/ /vendor diff --git a/README.md b/README.md index 345456def..059c7c09a 100755 --- a/README.md +++ b/README.md @@ -63,11 +63,9 @@ Take advantage of two of the hottest frameworks used in this project -- Laravel ### Requirements -* **OS**: Ubuntu 16.04 LTS or higher / Windows 7 or Higher (WampServer / XAMPP). * **SERVER**: Apache 2 or NGINX. * **RAM**: 3 GB or higher. * **PHP**: 7.3 or higher. -* **Processor**: Clock Cycle 1 Ghz or higher. * **For MySQL users**: 5.7.23 or higher. * **For MariaDB users**: 10.2.7 or Higher. * **Node**: 8.11.3 LTS or higher. @@ -84,13 +82,7 @@ Take advantage of two of the hottest frameworks used in this project -- Laravel ##### b. Extract the contents of zip and execute the project in your browser: ~~~ -http(s)://localhost/bagisto/public -~~~ - -or - -~~~ -http(s)://example.com/public +http(s)://example.com ~~~ **2. Or you can install Bagisto from your console.** @@ -98,7 +90,7 @@ http(s)://example.com/public ##### Execute these commands below, in order ~~~ -1. composer create-project bagisto/bagisto-standard +1. composer create-project bagisto/bagisto ~~~ ~~~ diff --git a/composer.json b/composer.json index dc64a55af..6e9ae4049 100755 --- a/composer.json +++ b/composer.json @@ -1,13 +1,12 @@ { "name": "bagisto/bagisto", - "description": "Bagisto Laravel ECommerce", + "description": "Bagisto Laravel E-Commerce", "keywords": [ "framework", "laravel" ], "license": "MIT", "type": "project", - "require": { "php": "^7.2.5", "ext-curl": "*", @@ -33,18 +32,18 @@ "intervention/image": "^2.4", "intervention/imagecache": "^2.3", "kalnoy/nestedset": "5.0.1", + "khaled.alshamaa/ar-php": "^5.5.2", "konekt/concord": "^1.2", "laravel/framework": "^7.0", "laravel/scout": "^8.0", "laravel/socialite": "^4.4", "laravel/tinker": "^2.0", "laravel/ui": "^2.0", - "maatwebsite/excel": "3.1.19", + "maatwebsite/excel": "^3.1.26", "paypal/paypal-checkout-sdk": "1.0.1", "prettus/l5-repository": "^2.6", "tymon/jwt-auth": "^1.0.0" }, - "require-dev": { "codeception/codeception": "4.1.1", "codeception/module-asserts": "^1.1", @@ -56,7 +55,6 @@ "nunomaduro/collision": "^4.1", "phpunit/phpunit": "^8.5" }, - "replace": { "bagisto/laravel-user": "v0.1.0", "bagisto/laravel-admin": "v0.1.0", @@ -78,7 +76,6 @@ "bagisto/laravel-paypal": "v0.1.0", "bagisto/laravel-discount": "v0.1.0" }, - "autoload": { "classmap": [ "database/seeds", @@ -115,7 +112,6 @@ "Webkul\\Marketing\\": "packages/Webkul/Marketing/src" } }, - "autoload-dev": { "psr-4": { "Tests\\Acceptance\\": "tests/acceptance/", @@ -124,7 +120,6 @@ "Tests\\Trigger\\": "tests/trigger/" } }, - "extra": { "laravel": { "dont-discover": [ @@ -132,22 +127,18 @@ ] } }, - "scripts": { "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ], - "post-create-project-cmd": [ "@php artisan key:generate", "Webkul\\Core\\Events\\ComposerEvents::postCreateProject" ], - "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", "@php artisan package:discover" ], - "test": [ "set -e", "@php artisan migrate:fresh --env=testing", @@ -155,7 +146,7 @@ "vendor/bin/codecept run functional", "vendor/bin/codecept run trigger" ], - "test-win": [ + "test-win": [ "@set -e", "@php artisan migrate:fresh --env=testing", "vendor\\bin\\codecept.bat run unit", @@ -170,4 +161,4 @@ }, "minimum-stability": "dev", "prefer-stable": true - } +} \ No newline at end of file diff --git a/composer.lock b/composer.lock index 367169b8b..582b8ddd3 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": "60d4ebe6f1f391967ac8ab70925d01ef", + "content-hash": "3316c73c0becc140e699d259f1c55f83", "packages": [ { "name": "algolia/algoliasearch-client-php", @@ -167,16 +167,16 @@ }, { "name": "aws/aws-sdk-php", - "version": "3.171.10", + "version": "3.172.2", "source": { "type": "git", "url": "https://github.com/aws/aws-sdk-php.git", - "reference": "ba12cbba6b7ae8f2aab741e5ac47e8bb30d3eac7" + "reference": "47a4f005e51ffe158526f7ef7b5723b4313f823c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/ba12cbba6b7ae8f2aab741e5ac47e8bb30d3eac7", - "reference": "ba12cbba6b7ae8f2aab741e5ac47e8bb30d3eac7", + "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/47a4f005e51ffe158526f7ef7b5723b4313f823c", + "reference": "47a4f005e51ffe158526f7ef7b5723b4313f823c", "shasum": "" }, "require": { @@ -251,22 +251,22 @@ "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.171.10" + "source": "https://github.com/aws/aws-sdk-php/tree/3.172.2" }, - "time": "2020-12-31T19:13:37+00:00" + "time": "2021-01-27T19:14:10+00:00" }, { "name": "babenkoivan/elastic-adapter", - "version": "v1.9.0", + "version": "v1.11.0", "source": { "type": "git", "url": "https://github.com/babenkoivan/elastic-adapter.git", - "reference": "e9e984e6d171235219d99b29992e3a001d5551b4" + "reference": "49c471dab207ce57512d2fb1f346cc13529a2ba5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/babenkoivan/elastic-adapter/zipball/e9e984e6d171235219d99b29992e3a001d5551b4", - "reference": "e9e984e6d171235219d99b29992e3a001d5551b4", + "url": "https://api.github.com/repos/babenkoivan/elastic-adapter/zipball/49c471dab207ce57512d2fb1f346cc13529a2ba5", + "reference": "49c471dab207ce57512d2fb1f346cc13529a2ba5", "shasum": "" }, "require": { @@ -304,9 +304,9 @@ ], "support": { "issues": "https://github.com/babenkoivan/elastic-adapter/issues", - "source": "https://github.com/babenkoivan/elastic-adapter/tree/v1.9.0" + "source": "https://github.com/babenkoivan/elastic-adapter/tree/v1.11.0" }, - "time": "2020-11-14T15:09:00+00:00" + "time": "2021-01-23T15:54:32+00:00" }, { "name": "babenkoivan/elastic-client", @@ -371,16 +371,16 @@ }, { "name": "babenkoivan/elastic-scout-driver", - "version": "v1.2.1", + "version": "v1.2.2", "source": { "type": "git", "url": "https://github.com/babenkoivan/elastic-scout-driver.git", - "reference": "32cb086d21a9fc732005777350c0683dac00b268" + "reference": "d4abf667628bdd980861fa286dcd544be34118ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/babenkoivan/elastic-scout-driver/zipball/32cb086d21a9fc732005777350c0683dac00b268", - "reference": "32cb086d21a9fc732005777350c0683dac00b268", + "url": "https://api.github.com/repos/babenkoivan/elastic-scout-driver/zipball/d4abf667628bdd980861fa286dcd544be34118ac", + "reference": "d4abf667628bdd980861fa286dcd544be34118ac", "shasum": "" }, "require": { @@ -430,9 +430,9 @@ ], "support": { "issues": "https://github.com/babenkoivan/elastic-scout-driver/issues", - "source": "https://github.com/babenkoivan/elastic-scout-driver/tree/v1.2.1" + "source": "https://github.com/babenkoivan/elastic-scout-driver/tree/v1.2.2" }, - "time": "2020-12-10T15:10:19+00:00" + "time": "2021-01-17T12:55:55+00:00" }, { "name": "bagisto/bagisto-package-generator", @@ -440,12 +440,12 @@ "source": { "type": "git", "url": "https://github.com/bagisto/bagisto-package-generator.git", - "reference": "0b545b26ab47941dbdd319e9222404603a9b8de6" + "reference": "ca87a75c5167d15c1c7bbc0136a2764ae53638d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bagisto/bagisto-package-generator/zipball/0b545b26ab47941dbdd319e9222404603a9b8de6", - "reference": "0b545b26ab47941dbdd319e9222404603a9b8de6", + "url": "https://api.github.com/repos/bagisto/bagisto-package-generator/zipball/ca87a75c5167d15c1c7bbc0136a2764ae53638d5", + "reference": "ca87a75c5167d15c1c7bbc0136a2764ae53638d5", "shasum": "" }, "default-branch": true, @@ -478,7 +478,7 @@ "issues": "https://github.com/bagisto/bagisto-package-generator/issues", "source": "https://github.com/bagisto/bagisto-package-generator/tree/master" }, - "time": "2020-08-24T08:41:44+00:00" + "time": "2021-01-12T08:08:37+00:00" }, { "name": "bagistobrasil/bagisto-product-social-share", @@ -526,16 +526,16 @@ }, { "name": "barryvdh/laravel-debugbar", - "version": "v3.5.1", + "version": "v3.5.2", "source": { "type": "git", "url": "https://github.com/barryvdh/laravel-debugbar.git", - "reference": "233c10688f4c1a6e66ed2ef123038b1363d1bedc" + "reference": "cae0a8d1cb89b0f0522f65e60465e16d738e069b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/233c10688f4c1a6e66ed2ef123038b1363d1bedc", - "reference": "233c10688f4c1a6e66ed2ef123038b1363d1bedc", + "url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/cae0a8d1cb89b0f0522f65e60465e16d738e069b", + "reference": "cae0a8d1cb89b0f0522f65e60465e16d738e069b", "shasum": "" }, "require": { @@ -548,6 +548,7 @@ "symfony/finder": "^4.3|^5" }, "require-dev": { + "mockery/mockery": "^1.3.3", "orchestra/testbench-dusk": "^4|^5|^6", "phpunit/phpunit": "^8.5|^9.0", "squizlabs/php_codesniffer": "^3.5" @@ -594,7 +595,7 @@ ], "support": { "issues": "https://github.com/barryvdh/laravel-debugbar/issues", - "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.5.1" + "source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.5.2" }, "funding": [ { @@ -602,7 +603,7 @@ "type": "github" } ], - "time": "2020-09-07T19:32:39+00:00" + "time": "2021-01-06T14:21:44+00:00" }, { "name": "barryvdh/laravel-dompdf", @@ -666,26 +667,26 @@ }, { "name": "brick/math", - "version": "0.9.1", + "version": "0.9.2", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "283a40c901101e66de7061bd359252c013dcc43c" + "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/283a40c901101e66de7061bd359252c013dcc43c", - "reference": "283a40c901101e66de7061bd359252c013dcc43c", + "url": "https://api.github.com/repos/brick/math/zipball/dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", + "reference": "dff976c2f3487d42c1db75a3b180e2b9f0e72ce0", "shasum": "" }, "require": { "ext-json": "*", - "php": "^7.1|^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^7.5.15|^8.5", - "vimeo/psalm": "^3.5" + "phpunit/phpunit": "^7.5.15 || ^8.5 || ^9.0", + "vimeo/psalm": "4.3.2" }, "type": "library", "autoload": { @@ -710,7 +711,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/master" + "source": "https://github.com/brick/math/tree/0.9.2" }, "funding": [ { @@ -718,7 +719,7 @@ "type": "tidelift" } ], - "time": "2020-08-18T23:57:15+00:00" + "time": "2021-01-20T22:51:39+00:00" }, { "name": "dnoegel/php-xdg-base-dir", @@ -2226,6 +2227,57 @@ }, "time": "2020-03-04T05:33:20+00:00" }, + { + "name": "khaled.alshamaa/ar-php", + "version": "v5.5.2", + "source": { + "type": "git", + "url": "https://github.com/khaled-alshamaa/ar-php.git", + "reference": "a25b31a9c862615a0f5da91b331936edab355127" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/khaled-alshamaa/ar-php/zipball/a25b31a9c862615a0f5da91b331936edab355127", + "reference": "a25b31a9c862615a0f5da91b331936edab355127", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=5.6.0" + }, + "require-dev": { + "phpunit/phpunit": "9.*" + }, + "type": "library", + "autoload": { + "psr-4": { + "ArPHP\\I18N\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Khaled Al-Sham'aa", + "email": "khaled@ar-php.org", + "homepage": "http://www.ar-php.org" + } + ], + "description": "Set of functionalities enable Arabic website developers to serve professional search, present and process Arabic content in PHP", + "homepage": "https://github.com/khaled-alshamaa/ar-php", + "keywords": [ + "arabic", + "hijri", + "islamic" + ], + "support": { + "issues": "https://github.com/khaled-alshamaa/ar-php/issues", + "source": "https://github.com/khaled-alshamaa/ar-php/tree/v5.5.2" + }, + "time": "2021-01-26T00:40:13+00:00" + }, { "name": "konekt/concord", "version": "1.10.0", @@ -2406,16 +2458,16 @@ }, { "name": "laravel/framework", - "version": "v7.30.1", + "version": "v7.30.4", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "e73855b18dcfc645c36d2474f437e4e73dd3c11d" + "reference": "9dd38140dc2924daa1a020a3d7a45f9ceff03df3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/e73855b18dcfc645c36d2474f437e4e73dd3c11d", - "reference": "e73855b18dcfc645c36d2474f437e4e73dd3c11d", + "url": "https://api.github.com/repos/laravel/framework/zipball/9dd38140dc2924daa1a020a3d7a45f9ceff03df3", + "reference": "9dd38140dc2924daa1a020a3d7a45f9ceff03df3", "shasum": "" }, "require": { @@ -2564,20 +2616,20 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2020-12-22T17:00:45+00:00" + "time": "2021-01-21T14:10:48+00:00" }, { "name": "laravel/scout", - "version": "v8.5.2", + "version": "v8.6.0", "source": { "type": "git", "url": "https://github.com/laravel/scout.git", - "reference": "ece6758b82c51ff7f5e011f243a7c6b33711a847" + "reference": "54070f7b68fed15f25e61e68884c4110496b8aa1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/scout/zipball/ece6758b82c51ff7f5e011f243a7c6b33711a847", - "reference": "ece6758b82c51ff7f5e011f243a7c6b33711a847", + "url": "https://api.github.com/repos/laravel/scout/zipball/54070f7b68fed15f25e61e68884c4110496b8aa1", + "reference": "54070f7b68fed15f25e61e68884c4110496b8aa1", "shasum": "" }, "require": { @@ -2633,7 +2685,7 @@ "issues": "https://github.com/laravel/scout/issues", "source": "https://github.com/laravel/scout" }, - "time": "2020-12-30T15:52:14+00:00" + "time": "2021-01-19T15:30:52+00:00" }, { "name": "laravel/socialite", @@ -2706,16 +2758,16 @@ }, { "name": "laravel/tinker", - "version": "v2.5.0", + "version": "v2.6.0", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "45884b526e10a88a1b179fa1a1a24d5468c668c2" + "reference": "daae1c43f1300fe88c05d83db6f3d8f76677ad88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/45884b526e10a88a1b179fa1a1a24d5468c668c2", - "reference": "45884b526e10a88a1b179fa1a1a24d5468c668c2", + "url": "https://api.github.com/repos/laravel/tinker/zipball/daae1c43f1300fe88c05d83db6f3d8f76677ad88", + "reference": "daae1c43f1300fe88c05d83db6f3d8f76677ad88", "shasum": "" }, "require": { @@ -2768,9 +2820,9 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.5.0" + "source": "https://github.com/laravel/tinker/tree/v2.6.0" }, - "time": "2020-10-29T13:07:12+00:00" + "time": "2021-01-26T20:35:18+00:00" }, { "name": "laravel/ui", @@ -3094,16 +3146,16 @@ }, { "name": "league/mime-type-detection", - "version": "1.5.1", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/thephpleague/mime-type-detection.git", - "reference": "353f66d7555d8a90781f6f5e7091932f9a4250aa" + "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/353f66d7555d8a90781f6f5e7091932f9a4250aa", - "reference": "353f66d7555d8a90781f6f5e7091932f9a4250aa", + "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", + "reference": "3b9dff8aaf7323590c1d2e443db701eb1f9aa0d3", "shasum": "" }, "require": { @@ -3111,8 +3163,9 @@ "php": "^7.2 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^0.12.36", - "phpunit/phpunit": "^8.5.8" + "friendsofphp/php-cs-fixer": "^2.18", + "phpstan/phpstan": "^0.12.68", + "phpunit/phpunit": "^8.5.8 || ^9.3" }, "type": "library", "autoload": { @@ -3133,7 +3186,7 @@ "description": "Mime-type detection for Flysystem", "support": { "issues": "https://github.com/thephpleague/mime-type-detection/issues", - "source": "https://github.com/thephpleague/mime-type-detection/tree/1.5.1" + "source": "https://github.com/thephpleague/mime-type-detection/tree/1.7.0" }, "funding": [ { @@ -3145,34 +3198,34 @@ "type": "tidelift" } ], - "time": "2020-10-18T11:50:25+00:00" + "time": "2021-01-18T20:58:21+00:00" }, { "name": "league/oauth1-client", - "version": "v1.8.2", + "version": "v1.9.0", "source": { "type": "git", "url": "https://github.com/thephpleague/oauth1-client.git", - "reference": "159c3d2bf27568f9af87d6c3f4bb616a251eb12b" + "reference": "1e7e6be2dc543bf466236fb171e5b20e1b06aee6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/oauth1-client/zipball/159c3d2bf27568f9af87d6c3f4bb616a251eb12b", - "reference": "159c3d2bf27568f9af87d6c3f4bb616a251eb12b", + "url": "https://api.github.com/repos/thephpleague/oauth1-client/zipball/1e7e6be2dc543bf466236fb171e5b20e1b06aee6", + "reference": "1e7e6be2dc543bf466236fb171e5b20e1b06aee6", "shasum": "" }, "require": { "ext-json": "*", "ext-openssl": "*", "guzzlehttp/guzzle": "^6.0|^7.0", - "php": ">=7.1" + "php": ">=7.1||>=8.0" }, "require-dev": { "ext-simplexml": "*", - "friendsofphp/php-cs-fixer": "^2.16.1", - "mockery/mockery": "^1.3", + "friendsofphp/php-cs-fixer": "^2.17", + "mockery/mockery": "^1.3.3", "phpstan/phpstan": "^0.12.42", - "phpunit/phpunit": "^7.5" + "phpunit/phpunit": "^7.5||9.5" }, "suggest": { "ext-simplexml": "For decoding XML-based responses." @@ -3218,35 +3271,32 @@ ], "support": { "issues": "https://github.com/thephpleague/oauth1-client/issues", - "source": "https://github.com/thephpleague/oauth1-client/tree/v1.8.2" + "source": "https://github.com/thephpleague/oauth1-client/tree/v1.9.0" }, - "time": "2020-09-28T09:39:08+00:00" + "time": "2021-01-20T01:40:53+00:00" }, { "name": "maatwebsite/excel", - "version": "3.1.19", + "version": "3.1.26", "source": { "type": "git", "url": "https://github.com/Maatwebsite/Laravel-Excel.git", - "reference": "96527a9ebc2e79e9a5fa7eaef7e23c9e9bcc587c" + "reference": "66f7c9584304ad0b6a267a5d8ffbfa2ff4272e85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Maatwebsite/Laravel-Excel/zipball/96527a9ebc2e79e9a5fa7eaef7e23c9e9bcc587c", - "reference": "96527a9ebc2e79e9a5fa7eaef7e23c9e9bcc587c", + "url": "https://api.github.com/repos/Maatwebsite/Laravel-Excel/zipball/66f7c9584304ad0b6a267a5d8ffbfa2ff4272e85", + "reference": "66f7c9584304ad0b6a267a5d8ffbfa2ff4272e85", "shasum": "" }, "require": { "ext-json": "*", - "illuminate/support": "5.5.*|5.6.*|5.7.*|5.8.*|^6.0|^7.0", - "php": "^7.0", - "phpoffice/phpspreadsheet": "^1.10" + "illuminate/support": "5.8.*|^6.0|^7.0|^8.0", + "php": "^7.0|^8.0", + "phpoffice/phpspreadsheet": "^1.15" }, "require-dev": { - "mockery/mockery": "^1.1", - "orchestra/database": "^4.0", - "orchestra/testbench": "^4.0", - "phpunit/phpunit": "^8.0", + "orchestra/testbench": "^6.0", "predis/predis": "^1.1" }, "type": "library", @@ -3289,7 +3339,7 @@ ], "support": { "issues": "https://github.com/Maatwebsite/Laravel-Excel/issues", - "source": "https://github.com/Maatwebsite/Laravel-Excel/tree/3.1" + "source": "https://github.com/Maatwebsite/Laravel-Excel/tree/3.1.26" }, "funding": [ { @@ -3301,7 +3351,7 @@ "type": "github" } ], - "time": "2020-02-28T15:47:45+00:00" + "time": "2020-11-27T16:17:38+00:00" }, { "name": "maennchen/zipstream-php", @@ -3475,20 +3525,20 @@ }, { "name": "markbaker/matrix", - "version": "2.0.0", + "version": "2.1.2", "source": { "type": "git", "url": "https://github.com/MarkBaker/PHPMatrix.git", - "reference": "9567d9c4c519fbe40de01dbd1e4469dbbb66f46a" + "reference": "361c0f545c3172ee26c3d596a0aa03f0cef65e6a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/9567d9c4c519fbe40de01dbd1e4469dbbb66f46a", - "reference": "9567d9c4c519fbe40de01dbd1e4469dbbb66f46a", + "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/361c0f545c3172ee26c3d596a0aa03f0cef65e6a", + "reference": "361c0f545c3172ee26c3d596a0aa03f0cef65e6a", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.1 || ^8.0" }, "require-dev": { "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", @@ -3506,22 +3556,22 @@ "Matrix\\": "classes/src/" }, "files": [ - "classes/src/functions/adjoint.php", - "classes/src/functions/antidiagonal.php", - "classes/src/functions/cofactors.php", - "classes/src/functions/determinant.php", - "classes/src/functions/diagonal.php", - "classes/src/functions/identity.php", - "classes/src/functions/inverse.php", - "classes/src/functions/minors.php", - "classes/src/functions/trace.php", - "classes/src/functions/transpose.php", - "classes/src/operations/add.php", - "classes/src/operations/directsum.php", - "classes/src/operations/subtract.php", - "classes/src/operations/multiply.php", - "classes/src/operations/divideby.php", - "classes/src/operations/divideinto.php" + "classes/src/Functions/adjoint.php", + "classes/src/Functions/antidiagonal.php", + "classes/src/Functions/cofactors.php", + "classes/src/Functions/determinant.php", + "classes/src/Functions/diagonal.php", + "classes/src/Functions/identity.php", + "classes/src/Functions/inverse.php", + "classes/src/Functions/minors.php", + "classes/src/Functions/trace.php", + "classes/src/Functions/transpose.php", + "classes/src/Operations/add.php", + "classes/src/Operations/directsum.php", + "classes/src/Operations/subtract.php", + "classes/src/Operations/multiply.php", + "classes/src/Operations/divideby.php", + "classes/src/Operations/divideinto.php" ] }, "notification-url": "https://packagist.org/downloads/", @@ -3543,22 +3593,22 @@ ], "support": { "issues": "https://github.com/MarkBaker/PHPMatrix/issues", - "source": "https://github.com/MarkBaker/PHPMatrix/tree/PHP8" + "source": "https://github.com/MarkBaker/PHPMatrix/tree/2.1.2" }, - "time": "2020-08-28T17:11:00+00:00" + "time": "2021-01-23T16:37:31+00:00" }, { "name": "maximebf/debugbar", - "version": "v1.16.4", + "version": "v1.16.5", "source": { "type": "git", "url": "https://github.com/maximebf/php-debugbar.git", - "reference": "c86c717e4bf3c6d98422da5c38bfa7b0f494b04c" + "reference": "6d51ee9e94cff14412783785e79a4e7ef97b9d62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/c86c717e4bf3c6d98422da5c38bfa7b0f494b04c", - "reference": "c86c717e4bf3c6d98422da5c38bfa7b0f494b04c", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/6d51ee9e94cff14412783785e79a4e7ef97b9d62", + "reference": "6d51ee9e94cff14412783785e79a4e7ef97b9d62", "shasum": "" }, "require": { @@ -3608,9 +3658,9 @@ ], "support": { "issues": "https://github.com/maximebf/php-debugbar/issues", - "source": "https://github.com/maximebf/php-debugbar/tree/v1.16.4" + "source": "https://github.com/maximebf/php-debugbar/tree/v1.16.5" }, - "time": "2020-12-07T10:48:48+00:00" + "time": "2020-12-07T11:07:24+00:00" }, { "name": "monolog/monolog", @@ -4204,7 +4254,6 @@ "issues": "https://github.com/paypal/paypalhttp_php/issues", "source": "https://github.com/paypal/paypalhttp_php/tree/1.0.0" }, - "abandoned": true, "time": "2019-11-06T21:27:12+00:00" }, { @@ -4294,7 +4343,7 @@ }, { "name": "phpoffice/phpspreadsheet", - "version": "1.16.1", + "version": "1.16.0", "source": { "type": "git", "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", @@ -4389,7 +4438,7 @@ ], "support": { "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", - "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.16.1" + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.16.0" }, "time": "2020-12-31T18:03:49+00:00" }, @@ -4464,16 +4513,16 @@ }, { "name": "prettus/l5-repository", - "version": "2.7.2", + "version": "2.7.4", "source": { "type": "git", "url": "https://github.com/andersao/l5-repository.git", - "reference": "ecb9a5db7a53b722c3b5c72fbc43ed3d40872de9" + "reference": "d4cd5afc91e5918d6dd1f2441be4a2b23d8f1507" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/andersao/l5-repository/zipball/ecb9a5db7a53b722c3b5c72fbc43ed3d40872de9", - "reference": "ecb9a5db7a53b722c3b5c72fbc43ed3d40872de9", + "url": "https://api.github.com/repos/andersao/l5-repository/zipball/d4cd5afc91e5918d6dd1f2441be4a2b23d8f1507", + "reference": "d4cd5afc91e5918d6dd1f2441be4a2b23d8f1507", "shasum": "" }, "require": { @@ -4533,7 +4582,7 @@ "source": "https://github.com/andersao/l5-repository", "wiki": "https://github.com/andersao/l5-repository" }, - "time": "2020-12-20T00:46:52+00:00" + "time": "2021-01-08T01:01:35+00:00" }, { "name": "prettus/laravel-validation", @@ -4951,16 +5000,16 @@ }, { "name": "psy/psysh", - "version": "v0.10.5", + "version": "v0.10.6", "source": { "type": "git", "url": "https://github.com/bobthecow/psysh.git", - "reference": "7c710551d4a2653afa259c544508dc18a9098956" + "reference": "6f990c19f91729de8b31e639d6e204ea59f19cf3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/bobthecow/psysh/zipball/7c710551d4a2653afa259c544508dc18a9098956", - "reference": "7c710551d4a2653afa259c544508dc18a9098956", + "url": "https://api.github.com/repos/bobthecow/psysh/zipball/6f990c19f91729de8b31e639d6e204ea59f19cf3", + "reference": "6f990c19f91729de8b31e639d6e204ea59f19cf3", "shasum": "" }, "require": { @@ -4989,7 +5038,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "0.10.x-dev" + "dev-main": "0.10.x-dev" } }, "autoload": { @@ -5021,9 +5070,9 @@ ], "support": { "issues": "https://github.com/bobthecow/psysh/issues", - "source": "https://github.com/bobthecow/psysh/tree/v0.10.5" + "source": "https://github.com/bobthecow/psysh/tree/v0.10.6" }, - "time": "2020-12-04T02:51:30+00:00" + "time": "2021-01-18T15:53:43+00:00" }, { "name": "ralouphie/getallheaders", @@ -5071,16 +5120,16 @@ }, { "name": "ramsey/collection", - "version": "1.1.1", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/ramsey/collection.git", - "reference": "24d93aefb2cd786b7edd9f45b554aea20b28b9b1" + "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/collection/zipball/24d93aefb2cd786b7edd9f45b554aea20b28b9b1", - "reference": "24d93aefb2cd786b7edd9f45b554aea20b28b9b1", + "url": "https://api.github.com/repos/ramsey/collection/zipball/28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", + "reference": "28a5c4ab2f5111db6a60b2b4ec84057e0f43b9c1", "shasum": "" }, "require": { @@ -5090,19 +5139,19 @@ "captainhook/captainhook": "^5.3", "dealerdirect/phpcodesniffer-composer-installer": "^0.7.0", "ergebnis/composer-normalize": "^2.6", - "fzaninotto/faker": "^1.5", + "fakerphp/faker": "^1.5", "hamcrest/hamcrest-php": "^2", - "jangregor/phpstan-prophecy": "^0.6", + "jangregor/phpstan-prophecy": "^0.8", "mockery/mockery": "^1.3", "phpstan/extension-installer": "^1", "phpstan/phpstan": "^0.12.32", "phpstan/phpstan-mockery": "^0.12.5", "phpstan/phpstan-phpunit": "^0.12.11", - "phpunit/phpunit": "^8.5", + "phpunit/phpunit": "^8.5 || ^9", "psy/psysh": "^0.10.4", "slevomat/coding-standard": "^6.3", "squizlabs/php_codesniffer": "^3.5", - "vimeo/psalm": "^3.12.2" + "vimeo/psalm": "^4.4" }, "type": "library", "autoload": { @@ -5132,15 +5181,19 @@ ], "support": { "issues": "https://github.com/ramsey/collection/issues", - "source": "https://github.com/ramsey/collection/tree/1.1.1" + "source": "https://github.com/ramsey/collection/tree/1.1.3" }, "funding": [ { "url": "https://github.com/ramsey", "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/ramsey/collection", + "type": "tidelift" } ], - "time": "2020-09-10T20:58:17+00:00" + "time": "2021-01-21T17:40:04+00:00" }, { "name": "ramsey/uuid", @@ -5335,16 +5388,16 @@ }, { "name": "swiftmailer/swiftmailer", - "version": "v6.2.4", + "version": "v6.2.5", "source": { "type": "git", "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "56f0ab23f54c4ccbb0d5dcc67ff8552e0c98d59e" + "reference": "698a6a9f54d7eb321274de3ad19863802c879fb7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/56f0ab23f54c4ccbb0d5dcc67ff8552e0c98d59e", - "reference": "56f0ab23f54c4ccbb0d5dcc67ff8552e0c98d59e", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/698a6a9f54d7eb321274de3ad19863802c879fb7", + "reference": "698a6a9f54d7eb321274de3ad19863802c879fb7", "shasum": "" }, "require": { @@ -5394,7 +5447,7 @@ ], "support": { "issues": "https://github.com/swiftmailer/swiftmailer/issues", - "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.2.4" + "source": "https://github.com/swiftmailer/swiftmailer/tree/v6.2.5" }, "funding": [ { @@ -5406,20 +5459,20 @@ "type": "tidelift" } ], - "time": "2020-12-08T18:02:06+00:00" + "time": "2021-01-12T09:35:59+00:00" }, { "name": "symfony/console", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "47c02526c532fb381374dab26df05e7313978976" + "reference": "d62ec79478b55036f65e2602e282822b8eaaff0a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/47c02526c532fb381374dab26df05e7313978976", - "reference": "47c02526c532fb381374dab26df05e7313978976", + "url": "https://api.github.com/repos/symfony/console/zipball/d62ec79478b55036f65e2602e282822b8eaaff0a", + "reference": "d62ec79478b55036f65e2602e282822b8eaaff0a", "shasum": "" }, "require": { @@ -5478,7 +5531,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Console Component", + "description": "Eases the creation of beautiful and testable command line interfaces", "homepage": "https://symfony.com", "keywords": [ "cli", @@ -5487,7 +5540,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v5.2.1" + "source": "https://github.com/symfony/console/tree/v5.2.2" }, "funding": [ { @@ -5503,20 +5556,20 @@ "type": "tidelift" } ], - "time": "2020-12-18T08:03:05+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/css-selector", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", - "reference": "f789e7ead4c79e04ca9a6d6162fc629c89bd8054" + "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/css-selector/zipball/f789e7ead4c79e04ca9a6d6162fc629c89bd8054", - "reference": "f789e7ead4c79e04ca9a6d6162fc629c89bd8054", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/f65f217b3314504a1ec99c2d6ef69016bb13490f", + "reference": "f65f217b3314504a1ec99c2d6ef69016bb13490f", "shasum": "" }, "require": { @@ -5549,10 +5602,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony CssSelector Component", + "description": "Converts CSS selectors to XPath expressions", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/css-selector/tree/v5.2.1" + "source": "https://github.com/symfony/css-selector/tree/v5.2.2" }, "funding": [ { @@ -5568,20 +5621,20 @@ "type": "tidelift" } ], - "time": "2020-12-08T17:02:38+00:00" + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/debug", - "version": "v4.4.18", + "version": "v4.4.19", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "5dfc7825f3bfe9bb74b23d8b8ce0e0894e32b544" + "reference": "af4987aa4a5630e9615be9d9c3ed1b0f24ca449c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/5dfc7825f3bfe9bb74b23d8b8ce0e0894e32b544", - "reference": "5dfc7825f3bfe9bb74b23d8b8ce0e0894e32b544", + "url": "https://api.github.com/repos/symfony/debug/zipball/af4987aa4a5630e9615be9d9c3ed1b0f24ca449c", + "reference": "af4987aa4a5630e9615be9d9c3ed1b0f24ca449c", "shasum": "" }, "require": { @@ -5618,10 +5671,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Debug Component", + "description": "Provides tools to ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/debug/tree/v4.4.18" + "source": "https://github.com/symfony/debug/tree/v4.4.19" }, "funding": [ { @@ -5637,7 +5690,7 @@ "type": "tidelift" } ], - "time": "2020-12-10T16:34:26+00:00" + "time": "2021-01-27T09:09:26+00:00" }, { "name": "symfony/deprecation-contracts", @@ -5708,16 +5761,16 @@ }, { "name": "symfony/error-handler", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "59b190ce16ddf32771a22087b60f6dafd3407147" + "reference": "4fd4a377f7b7ec7c3f3b40346a1411e0a83f9d40" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/59b190ce16ddf32771a22087b60f6dafd3407147", - "reference": "59b190ce16ddf32771a22087b60f6dafd3407147", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/4fd4a377f7b7ec7c3f3b40346a1411e0a83f9d40", + "reference": "4fd4a377f7b7ec7c3f3b40346a1411e0a83f9d40", "shasum": "" }, "require": { @@ -5754,10 +5807,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony ErrorHandler Component", + "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.2.1" + "source": "https://github.com/symfony/error-handler/tree/v5.2.2" }, "funding": [ { @@ -5773,20 +5826,20 @@ "type": "tidelift" } ], - "time": "2020-12-09T18:54:12+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "1c93f7a1dff592c252574c79a8635a8a80856042" + "reference": "4f9760f8074978ad82e2ce854dff79a71fe45367" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/1c93f7a1dff592c252574c79a8635a8a80856042", - "reference": "1c93f7a1dff592c252574c79a8635a8a80856042", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/4f9760f8074978ad82e2ce854dff79a71fe45367", + "reference": "4f9760f8074978ad82e2ce854dff79a71fe45367", "shasum": "" }, "require": { @@ -5839,10 +5892,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony EventDispatcher Component", + "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.2.1" + "source": "https://github.com/symfony/event-dispatcher/tree/v5.2.2" }, "funding": [ { @@ -5858,7 +5911,7 @@ "type": "tidelift" } ], - "time": "2020-12-18T08:03:05+00:00" + "time": "2021-01-27T10:36:42+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -5941,16 +5994,16 @@ }, { "name": "symfony/finder", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "0b9231a5922fd7287ba5b411893c0ecd2733e5ba" + "reference": "196f45723b5e618bf0e23b97e96d11652696ea9e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/0b9231a5922fd7287ba5b411893c0ecd2733e5ba", - "reference": "0b9231a5922fd7287ba5b411893c0ecd2733e5ba", + "url": "https://api.github.com/repos/symfony/finder/zipball/196f45723b5e618bf0e23b97e96d11652696ea9e", + "reference": "196f45723b5e618bf0e23b97e96d11652696ea9e", "shasum": "" }, "require": { @@ -5979,10 +6032,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Finder Component", + "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v5.2.1" + "source": "https://github.com/symfony/finder/tree/v5.2.2" }, "funding": [ { @@ -5998,7 +6051,7 @@ "type": "tidelift" } ], - "time": "2020-12-08T17:02:38+00:00" + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/http-client-contracts", @@ -6081,16 +6134,16 @@ }, { "name": "symfony/http-foundation", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "a1f6218b29897ab52acba58cfa905b83625bef8d" + "reference": "16dfa5acf8103f0394d447f8eea3ea49f9e50855" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/a1f6218b29897ab52acba58cfa905b83625bef8d", - "reference": "a1f6218b29897ab52acba58cfa905b83625bef8d", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/16dfa5acf8103f0394d447f8eea3ea49f9e50855", + "reference": "16dfa5acf8103f0394d447f8eea3ea49f9e50855", "shasum": "" }, "require": { @@ -6131,10 +6184,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony HttpFoundation Component", + "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v5.2.1" + "source": "https://github.com/symfony/http-foundation/tree/v5.2.2" }, "funding": [ { @@ -6150,20 +6203,20 @@ "type": "tidelift" } ], - "time": "2020-12-18T10:00:10+00:00" + "time": "2021-01-27T11:19:04+00:00" }, { "name": "symfony/http-kernel", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "1feb619286d819180f7b8bc0dc44f516d9c62647" + "reference": "831b51e9370ece0febd0950dd819c63f996721c7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/1feb619286d819180f7b8bc0dc44f516d9c62647", - "reference": "1feb619286d819180f7b8bc0dc44f516d9c62647", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/831b51e9370ece0febd0950dd819c63f996721c7", + "reference": "831b51e9370ece0febd0950dd819c63f996721c7", "shasum": "" }, "require": { @@ -6192,7 +6245,7 @@ "symfony/translation": "<5.0", "symfony/twig-bridge": "<5.0", "symfony/validator": "<5.0", - "twig/twig": "<2.4" + "twig/twig": "<2.13" }, "provide": { "psr/log-implementation": "1.0" @@ -6212,7 +6265,7 @@ "symfony/stopwatch": "^4.4|^5.0", "symfony/translation": "^4.4|^5.0", "symfony/translation-contracts": "^1.1|^2", - "twig/twig": "^2.4|^3.0" + "twig/twig": "^2.13|^3.0.4" }, "suggest": { "symfony/browser-kit": "", @@ -6243,10 +6296,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony HttpKernel Component", + "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.2.1" + "source": "https://github.com/symfony/http-kernel/tree/v5.2.2" }, "funding": [ { @@ -6262,20 +6315,20 @@ "type": "tidelift" } ], - "time": "2020-12-18T13:49:39+00:00" + "time": "2021-01-27T14:45:46+00:00" }, { "name": "symfony/mime", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "de97005aef7426ba008c46ba840fc301df577ada" + "reference": "37bade585ea100d235c031b258eff93b5b6bb9a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/de97005aef7426ba008c46ba840fc301df577ada", - "reference": "de97005aef7426ba008c46ba840fc301df577ada", + "url": "https://api.github.com/repos/symfony/mime/zipball/37bade585ea100d235c031b258eff93b5b6bb9a9", + "reference": "37bade585ea100d235c031b258eff93b5b6bb9a9", "shasum": "" }, "require": { @@ -6286,6 +6339,8 @@ "symfony/polyfill-php80": "^1.15" }, "conflict": { + "phpdocumentor/reflection-docblock": "<3.2.2", + "phpdocumentor/type-resolver": "<1.4.0", "symfony/mailer": "<4.4" }, "require-dev": { @@ -6319,14 +6374,14 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "A library to manipulate MIME messages", + "description": "Allows manipulating MIME messages", "homepage": "https://symfony.com", "keywords": [ "mime", "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v5.2.1" + "source": "https://github.com/symfony/mime/tree/v5.2.2" }, "funding": [ { @@ -6342,20 +6397,20 @@ "type": "tidelift" } ], - "time": "2020-12-09T18:54:12+00:00" + "time": "2021-01-25T14:08:25+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41" + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41", - "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/c6c942b1ac76c82448322025e084cadc56048b4e", + "reference": "c6c942b1ac76c82448322025e084cadc56048b4e", "shasum": "" }, "require": { @@ -6367,7 +6422,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6405,7 +6460,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.22.0" }, "funding": [ { @@ -6421,20 +6476,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-iconv", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-iconv.git", - "reference": "c536646fdb4f29104dd26effc2fdcb9a5b085024" + "reference": "b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/c536646fdb4f29104dd26effc2fdcb9a5b085024", - "reference": "c536646fdb4f29104dd26effc2fdcb9a5b085024", + "url": "https://api.github.com/repos/symfony/polyfill-iconv/zipball/b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6", + "reference": "b34bfb8c4c22650ac080d2662ae3502e5f2f4ae6", "shasum": "" }, "require": { @@ -6446,7 +6501,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6485,7 +6540,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-iconv/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-iconv/tree/v1.22.0" }, "funding": [ { @@ -6501,20 +6556,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c" + "reference": "267a9adeb8ecb8071040a740930e077cdfb987af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c", - "reference": "c7cf3f858ec7d70b89559d6e6eb1f7c2517d479c", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/267a9adeb8ecb8071040a740930e077cdfb987af", + "reference": "267a9adeb8ecb8071040a740930e077cdfb987af", "shasum": "" }, "require": { @@ -6526,7 +6581,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6566,7 +6621,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.22.0" }, "funding": [ { @@ -6582,20 +6637,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117" + "reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/3b75acd829741c768bc8b1f84eb33265e7cc5117", - "reference": "3b75acd829741c768bc8b1f84eb33265e7cc5117", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44", + "reference": "0eb8293dbbcd6ef6bf81404c9ce7d95bcdf34f44", "shasum": "" }, "require": { @@ -6609,7 +6664,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6653,7 +6708,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.22.0" }, "funding": [ { @@ -6669,20 +6724,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "727d1096295d807c309fb01a851577302394c897" + "reference": "6e971c891537eb617a00bb07a43d182a6915faba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/727d1096295d807c309fb01a851577302394c897", - "reference": "727d1096295d807c309fb01a851577302394c897", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/6e971c891537eb617a00bb07a43d182a6915faba", + "reference": "6e971c891537eb617a00bb07a43d182a6915faba", "shasum": "" }, "require": { @@ -6694,7 +6749,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6737,7 +6792,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.22.0" }, "funding": [ { @@ -6753,20 +6808,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T17:09:11+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "39d483bdf39be819deabf04ec872eb0b2410b531" + "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531", - "reference": "39d483bdf39be819deabf04ec872eb0b2410b531", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", + "reference": "f377a3dd1fde44d37b9831d68dc8dea3ffd28e13", "shasum": "" }, "require": { @@ -6778,7 +6833,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6817,7 +6872,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.22.0" }, "funding": [ { @@ -6833,7 +6888,7 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php56", @@ -6905,16 +6960,16 @@ }, { "name": "symfony/polyfill-php72", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930" + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cede45fcdfabdd6043b3592e83678e42ec69e930", - "reference": "cede45fcdfabdd6043b3592e83678e42ec69e930", + "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", + "reference": "cc6e6f9b39fe8075b3dabfbaf5b5f645ae1340c9", "shasum": "" }, "require": { @@ -6923,7 +6978,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -6961,7 +7016,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-php72/tree/v1.22.0" }, "funding": [ { @@ -6977,20 +7032,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed" + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/8ff431c517be11c78c48a39a66d37431e26a6bed", - "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", + "reference": "a678b42e92f86eca04b7fa4c0f6f19d097fb69e2", "shasum": "" }, "require": { @@ -6999,7 +7054,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -7040,7 +7095,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php73/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-php73/tree/v1.22.0" }, "funding": [ { @@ -7056,20 +7111,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/polyfill-php80", - "version": "v1.20.0", + "version": "v1.22.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", - "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dc3063ba22c2a1fd2f45ed856374d79114998f91", + "reference": "dc3063ba22c2a1fd2f45ed856374d79114998f91", "shasum": "" }, "require": { @@ -7078,7 +7133,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "1.20-dev" + "dev-main": "1.22-dev" }, "thanks": { "name": "symfony/polyfill", @@ -7123,7 +7178,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.22.0" }, "funding": [ { @@ -7139,20 +7194,20 @@ "type": "tidelift" } ], - "time": "2020-10-23T14:02:19+00:00" + "time": "2021-01-07T16:49:33+00:00" }, { "name": "symfony/process", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd" + "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/bd8815b8b6705298beaa384f04fabd459c10bedd", - "reference": "bd8815b8b6705298beaa384f04fabd459c10bedd", + "url": "https://api.github.com/repos/symfony/process/zipball/313a38f09c77fbcdc1d223e57d368cea76a2fd2f", + "reference": "313a38f09c77fbcdc1d223e57d368cea76a2fd2f", "shasum": "" }, "require": { @@ -7182,10 +7237,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Process Component", + "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v5.2.1" + "source": "https://github.com/symfony/process/tree/v5.2.2" }, "funding": [ { @@ -7201,20 +7256,20 @@ "type": "tidelift" } ], - "time": "2020-12-08T17:03:37+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/routing", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "934ac2720dcc878a47a45c986b483a7ee7193620" + "reference": "348b5917e56546c6d96adbf21d7f92c9ef563661" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/934ac2720dcc878a47a45c986b483a7ee7193620", - "reference": "934ac2720dcc878a47a45c986b483a7ee7193620", + "url": "https://api.github.com/repos/symfony/routing/zipball/348b5917e56546c6d96adbf21d7f92c9ef563661", + "reference": "348b5917e56546c6d96adbf21d7f92c9ef563661", "shasum": "" }, "require": { @@ -7228,7 +7283,7 @@ "symfony/yaml": "<4.4" }, "require-dev": { - "doctrine/annotations": "^1.7", + "doctrine/annotations": "^1.10.4", "psr/log": "~1.0", "symfony/config": "^5.0", "symfony/dependency-injection": "^4.4|^5.0", @@ -7266,7 +7321,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Routing Component", + "description": "Maps an HTTP request to a set of configuration variables", "homepage": "https://symfony.com", "keywords": [ "router", @@ -7275,7 +7330,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v5.2.1" + "source": "https://github.com/symfony/routing/tree/v5.2.2" }, "funding": [ { @@ -7291,7 +7346,7 @@ "type": "tidelift" } ], - "time": "2020-12-08T17:03:37+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/service-contracts", @@ -7374,16 +7429,16 @@ }, { "name": "symfony/string", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed" + "reference": "c95468897f408dd0aca2ff582074423dd0455122" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed", - "reference": "5bd67751d2e3f7d6f770c9154b8fbcb2aa05f7ed", + "url": "https://api.github.com/repos/symfony/string/zipball/c95468897f408dd0aca2ff582074423dd0455122", + "reference": "c95468897f408dd0aca2ff582074423dd0455122", "shasum": "" }, "require": { @@ -7426,7 +7481,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony String component", + "description": "Provides an object-oriented API to strings and deals with bytes, UTF-8 code points and grapheme clusters in a unified way", "homepage": "https://symfony.com", "keywords": [ "grapheme", @@ -7437,7 +7492,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v5.2.1" + "source": "https://github.com/symfony/string/tree/v5.2.2" }, "funding": [ { @@ -7453,20 +7508,20 @@ "type": "tidelift" } ], - "time": "2020-12-05T07:33:16+00:00" + "time": "2021-01-25T15:14:59+00:00" }, { "name": "symfony/translation", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "a04209ba0d1391c828e5b2373181dac63c52ee70" + "reference": "c021864d4354ee55160ddcfd31dc477a1bc77949" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/a04209ba0d1391c828e5b2373181dac63c52ee70", - "reference": "a04209ba0d1391c828e5b2373181dac63c52ee70", + "url": "https://api.github.com/repos/symfony/translation/zipball/c021864d4354ee55160ddcfd31dc477a1bc77949", + "reference": "c021864d4354ee55160ddcfd31dc477a1bc77949", "shasum": "" }, "require": { @@ -7527,10 +7582,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Translation Component", + "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v5.2.1" + "source": "https://github.com/symfony/translation/tree/v5.2.2" }, "funding": [ { @@ -7546,7 +7601,7 @@ "type": "tidelift" } ], - "time": "2020-12-08T17:03:37+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { "name": "symfony/translation-contracts", @@ -7628,16 +7683,16 @@ }, { "name": "symfony/var-dumper", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "13e7e882eaa55863faa7c4ad7c60f12f1a8b5089" + "reference": "72ca213014a92223a5d18651ce79ef441c12b694" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/13e7e882eaa55863faa7c4ad7c60f12f1a8b5089", - "reference": "13e7e882eaa55863faa7c4ad7c60f12f1a8b5089", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/72ca213014a92223a5d18651ce79ef441c12b694", + "reference": "72ca213014a92223a5d18651ce79ef441c12b694", "shasum": "" }, "require": { @@ -7653,7 +7708,7 @@ "ext-iconv": "*", "symfony/console": "^4.4|^5.0", "symfony/process": "^4.4|^5.0", - "twig/twig": "^2.4|^3.0" + "twig/twig": "^2.13|^3.0.4" }, "suggest": { "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", @@ -7689,14 +7744,14 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony mechanism for exploring and dumping PHP variables", + "description": "Provides mechanisms for walking through any arbitrary PHP variable", "homepage": "https://symfony.com", "keywords": [ "debug", "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v5.2.1" + "source": "https://github.com/symfony/var-dumper/tree/v5.2.2" }, "funding": [ { @@ -7712,7 +7767,7 @@ "type": "tidelift" } ], - "time": "2020-12-16T17:02:19+00:00" + "time": "2021-01-27T10:15:41+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -7853,16 +7908,16 @@ }, { "name": "vlucas/phpdotenv", - "version": "v4.1.8", + "version": "v4.2.0", "source": { "type": "git", "url": "https://github.com/vlucas/phpdotenv.git", - "reference": "572af79d913627a9d70374d27a6f5d689a35de32" + "reference": "da64796370fc4eb03cc277088f6fede9fde88482" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/572af79d913627a9d70374d27a6f5d689a35de32", - "reference": "572af79d913627a9d70374d27a6f5d689a35de32", + "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/da64796370fc4eb03cc277088f6fede9fde88482", + "reference": "da64796370fc4eb03cc277088f6fede9fde88482", "shasum": "" }, "require": { @@ -7874,7 +7929,7 @@ "bamarni/composer-bin-plugin": "^1.4.1", "ext-filter": "*", "ext-pcre": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7.27 || ^6.5.6 || ^7.0" + "phpunit/phpunit": "^4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20" }, "suggest": { "ext-filter": "Required to use the boolean validator.", @@ -7915,7 +7970,7 @@ ], "support": { "issues": "https://github.com/vlucas/phpdotenv/issues", - "source": "https://github.com/vlucas/phpdotenv/tree/4.1" + "source": "https://github.com/vlucas/phpdotenv/tree/v4.2.0" }, "funding": [ { @@ -7927,7 +7982,7 @@ "type": "tidelift" } ], - "time": "2020-07-14T19:22:52+00:00" + "time": "2021-01-20T15:11:48+00:00" }, { "name": "voku/portable-ascii", @@ -8007,23 +8062,23 @@ "packages-dev": [ { "name": "behat/gherkin", - "version": "v4.6.2", + "version": "v4.7.1", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", - "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31" + "reference": "987bcdc3d29ba433e6bd4b1db4ae59737ba3dacd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/51ac4500c4dc30cbaaabcd2f25694299df666a31", - "reference": "51ac4500c4dc30cbaaabcd2f25694299df666a31", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/987bcdc3d29ba433e6bd4b1db4ae59737ba3dacd", + "reference": "987bcdc3d29ba433e6bd4b1db4ae59737ba3dacd", "shasum": "" }, "require": { - "php": ">=5.3.1" + "php": ">=5.6" }, "require-dev": { - "phpunit/phpunit": "~4.5|~5", + "phpunit/phpunit": "~5.7|~6|~7", "symfony/phpunit-bridge": "~2.7|~3|~4", "symfony/yaml": "~2.3|~3|~4" }, @@ -8052,7 +8107,7 @@ "homepage": "http://everzet.com" } ], - "description": "Gherkin DSL parser for PHP 5.3", + "description": "Gherkin DSL parser for PHP", "homepage": "http://behat.org/", "keywords": [ "BDD", @@ -8064,9 +8119,9 @@ ], "support": { "issues": "https://github.com/Behat/Gherkin/issues", - "source": "https://github.com/Behat/Gherkin/tree/master" + "source": "https://github.com/Behat/Gherkin/tree/v4.7.1" }, - "time": "2020-03-17T14:03:26+00:00" + "time": "2021-01-26T16:24:32+00:00" }, { "name": "codeception/codeception", @@ -8213,16 +8268,16 @@ }, { "name": "codeception/lib-innerbrowser", - "version": "1.3.5", + "version": "1.3.6", "source": { "type": "git", "url": "https://github.com/Codeception/lib-innerbrowser.git", - "reference": "956101b060a0d898a1ed8c106fd4d81adf25fd87" + "reference": "41b79ba6761001bdb1f373a347400180693ad4e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/956101b060a0d898a1ed8c106fd4d81adf25fd87", - "reference": "956101b060a0d898a1ed8c106fd4d81adf25fd87", + "url": "https://api.github.com/repos/Codeception/lib-innerbrowser/zipball/41b79ba6761001bdb1f373a347400180693ad4e7", + "reference": "41b79ba6761001bdb1f373a347400180693ad4e7", "shasum": "" }, "require": { @@ -8267,9 +8322,9 @@ ], "support": { "issues": "https://github.com/Codeception/lib-innerbrowser/issues", - "source": "https://github.com/Codeception/lib-innerbrowser/tree/1.3.5" + "source": "https://github.com/Codeception/lib-innerbrowser/tree/1.3.6" }, - "time": "2021-01-02T18:59:34+00:00" + "time": "2021-01-17T11:21:09+00:00" }, { "name": "codeception/module-asserts", @@ -8435,22 +8490,22 @@ }, { "name": "codeception/module-webdriver", - "version": "1.1.4", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/Codeception/module-webdriver.git", - "reference": "f719edc1eca033e0dc5fd8d99db122070b1fb933" + "reference": "63ea08880a44df809bdfbca08597e1b68cee9f87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codeception/module-webdriver/zipball/f719edc1eca033e0dc5fd8d99db122070b1fb933", - "reference": "f719edc1eca033e0dc5fd8d99db122070b1fb933", + "url": "https://api.github.com/repos/Codeception/module-webdriver/zipball/63ea08880a44df809bdfbca08597e1b68cee9f87", + "reference": "63ea08880a44df809bdfbca08597e1b68cee9f87", "shasum": "" }, "require": { "codeception/codeception": "^4.0", "php": ">=5.6.0 <9.0", - "php-webdriver/webdriver": "^1.6.0" + "php-webdriver/webdriver": "^1.8.0" }, "suggest": { "codeception/phpbuiltinserver": "Start and stop PHP built-in web server for your tests" @@ -8485,9 +8540,9 @@ ], "support": { "issues": "https://github.com/Codeception/module-webdriver/issues", - "source": "https://github.com/Codeception/module-webdriver/tree/1.1.4" + "source": "https://github.com/Codeception/module-webdriver/tree/1.2.0" }, - "time": "2020-11-16T06:50:15+00:00" + "time": "2021-01-17T19:23:20+00:00" }, { "name": "codeception/phpunit-wrapper", @@ -8695,16 +8750,16 @@ }, { "name": "filp/whoops", - "version": "2.9.1", + "version": "2.9.2", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "307fb34a5ab697461ec4c9db865b20ff2fd40771" + "reference": "df7933820090489623ce0be5e85c7e693638e536" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/307fb34a5ab697461ec4c9db865b20ff2fd40771", - "reference": "307fb34a5ab697461ec4c9db865b20ff2fd40771", + "url": "https://api.github.com/repos/filp/whoops/zipball/df7933820090489623ce0be5e85c7e693638e536", + "reference": "df7933820090489623ce0be5e85c7e693638e536", "shasum": "" }, "require": { @@ -8754,9 +8809,15 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.9.1" + "source": "https://github.com/filp/whoops/tree/2.9.2" }, - "time": "2020-11-01T12:00:00+00:00" + "funding": [ + { + "url": "https://github.com/denis-sokolov", + "type": "github" + } + ], + "time": "2021-01-24T12:00:00+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -9733,16 +9794,16 @@ }, { "name": "phpunit/phpunit", - "version": "8.5.13", + "version": "8.5.14", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "8e86be391a58104ef86037ba8a846524528d784e" + "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e86be391a58104ef86037ba8a846524528d784e", - "reference": "8e86be391a58104ef86037ba8a846524528d784e", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c25f79895d27b6ecd5abfa63de1606b786a461a3", + "reference": "c25f79895d27b6ecd5abfa63de1606b786a461a3", "shasum": "" }, "require": { @@ -9814,7 +9875,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.13" + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.14" }, "funding": [ { @@ -9826,7 +9887,7 @@ "type": "github" } ], - "time": "2020-12-01T04:53:52+00:00" + "time": "2021-01-17T07:37:30+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", @@ -10559,16 +10620,16 @@ }, { "name": "symfony/browser-kit", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/browser-kit.git", - "reference": "87d6f0a7436b03a57d4cf9a6a9cd0c83a355c49a" + "reference": "b03b2057ed53ee4eab2e8f372084d7722b7b8ffd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/browser-kit/zipball/87d6f0a7436b03a57d4cf9a6a9cd0c83a355c49a", - "reference": "87d6f0a7436b03a57d4cf9a6a9cd0c83a355c49a", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/b03b2057ed53ee4eab2e8f372084d7722b7b8ffd", + "reference": "b03b2057ed53ee4eab2e8f372084d7722b7b8ffd", "shasum": "" }, "require": { @@ -10607,10 +10668,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony BrowserKit Component", + "description": "Simulates the behavior of a web browser, allowing you to make requests, click on links and submit forms programmatically", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/browser-kit/tree/v5.2.1" + "source": "https://github.com/symfony/browser-kit/tree/v5.2.2" }, "funding": [ { @@ -10626,20 +10687,20 @@ "type": "tidelift" } ], - "time": "2020-12-18T08:03:05+00:00" + "time": "2021-01-27T12:56:27+00:00" }, { "name": "symfony/dom-crawler", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "ee7cf316fb0de786cfe5ae32ee79502b290c81ea" + "reference": "5d89ceb53ec65e1973a555072fac8ed5ecad3384" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/ee7cf316fb0de786cfe5ae32ee79502b290c81ea", - "reference": "ee7cf316fb0de786cfe5ae32ee79502b290c81ea", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/5d89ceb53ec65e1973a555072fac8ed5ecad3384", + "reference": "5d89ceb53ec65e1973a555072fac8ed5ecad3384", "shasum": "" }, "require": { @@ -10681,10 +10742,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony DomCrawler Component", + "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v5.2.1" + "source": "https://github.com/symfony/dom-crawler/tree/v5.2.2" }, "funding": [ { @@ -10700,20 +10761,20 @@ "type": "tidelift" } ], - "time": "2020-12-18T08:02:46+00:00" + "time": "2021-01-27T10:01:46+00:00" }, { "name": "symfony/yaml", - "version": "v5.2.1", + "version": "v5.2.2", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "290ea5e03b8cf9b42c783163123f54441fb06939" + "reference": "6bb8b36c6dea8100268512bf46e858c8eb5c545e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/290ea5e03b8cf9b42c783163123f54441fb06939", - "reference": "290ea5e03b8cf9b42c783163123f54441fb06939", + "url": "https://api.github.com/repos/symfony/yaml/zipball/6bb8b36c6dea8100268512bf46e858c8eb5c545e", + "reference": "6bb8b36c6dea8100268512bf46e858c8eb5c545e", "shasum": "" }, "require": { @@ -10756,10 +10817,10 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Yaml Component", + "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v5.2.1" + "source": "https://github.com/symfony/yaml/tree/v5.2.2" }, "funding": [ { @@ -10775,7 +10836,7 @@ "type": "tidelift" } ], - "time": "2020-12-08T17:02:38+00:00" + "time": "2021-01-27T10:01:46+00:00" }, { "name": "theseer/tokenizer", @@ -10832,12 +10893,12 @@ "version": "1.9.1", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", + "url": "https://github.com/webmozarts/assert.git", "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", "shasum": "" }, @@ -10875,8 +10936,8 @@ "validate" ], "support": { - "issues": "https://github.com/webmozart/assert/issues", - "source": "https://github.com/webmozart/assert/tree/master" + "issues": "https://github.com/webmozarts/assert/issues", + "source": "https://github.com/webmozarts/assert/tree/1.9.1" }, "time": "2020-07-08T17:02:28+00:00" } diff --git a/config/debugbar.php b/config/debugbar.php index ada83c6d3..37c2f6891 100755 --- a/config/debugbar.php +++ b/config/debugbar.php @@ -34,10 +34,12 @@ return [ */ 'storage' => [ 'enabled' => true, - 'driver' => 'file', // redis, file, pdo, custom + 'driver' => 'file', // redis, file, pdo, socket, custom 'path' => storage_path('debugbar'), // For file driver 'connection' => null, // Leave null for default connection (Redis/PDO) 'provider' => '', // Instance of StorageInterface for custom driver + 'hostname' => '127.0.0.1', // Hostname to use with the "socket" driver + 'port' => 2304, // Port to use with the "socket" driver ], /* diff --git a/config/excel.php b/config/excel.php index fa3e12b28..c3199b925 100755 --- a/config/excel.php +++ b/config/excel.php @@ -3,7 +3,6 @@ use Maatwebsite\Excel\Excel; return [ - 'exports' => [ /* @@ -24,6 +23,16 @@ return [ */ 'pre_calculate_formulas' => false, + /* + |-------------------------------------------------------------------------- + | Enable strict null comparison + |-------------------------------------------------------------------------- + | + | When enabling strict null comparison empty cells ('') will + | be added to the sheet. + */ + 'strict_null_comparison' => false, + /* |-------------------------------------------------------------------------- | CSV Settings @@ -40,23 +49,66 @@ return [ 'include_separator_line' => false, 'excel_compatibility' => false, ], + + /* + |-------------------------------------------------------------------------- + | Worksheet properties + |-------------------------------------------------------------------------- + | + | Configure e.g. default title, creator, subject,... + | + */ + 'properties' => [ + 'creator' => '', + 'lastModifiedBy' => '', + 'title' => '', + 'description' => '', + 'subject' => '', + 'keywords' => '', + 'category' => '', + 'manager' => '', + 'company' => '', + ], ], 'imports' => [ + /* + |-------------------------------------------------------------------------- + | Read Only + |-------------------------------------------------------------------------- + | + | When dealing with imports, you might only be interested in the + | data that the sheet exists. By default we ignore all styles, + | however if you want to do some logic based on style data + | you can enable it by setting read_only to false. + | + */ 'read_only' => true, - 'heading_row' => [ + /* + |-------------------------------------------------------------------------- + | Ignore Empty + |-------------------------------------------------------------------------- + | + | When dealing with imports, you might be interested in ignoring + | rows that have null values or empty strings. By default rows + | containing empty strings or empty values are not ignored but can be + | ignored by enabling the setting ignore_empty to true. + | + */ + 'ignore_empty' => false, - /* - |-------------------------------------------------------------------------- - | Heading Row Formatter - |-------------------------------------------------------------------------- - | - | Configure the heading row formatter. - | Available options: none|slug|custom - | - */ + /* + |-------------------------------------------------------------------------- + | Heading Row Formatter + |-------------------------------------------------------------------------- + | + | Configure the heading row formatter. + | Available options: none|slug|custom + | + */ + 'heading_row' => [ 'formatter' => 'slug', ], @@ -69,12 +121,33 @@ return [ | */ 'csv' => [ - 'delimiter' => ',', - 'enclosure' => '"', - 'escape_character' => '\\', - 'contiguous' => false, - 'input_encoding' => 'UTF-8', + 'delimiter' => ',', + 'enclosure' => '"', + 'escape_character' => '\\', + 'contiguous' => false, + 'input_encoding' => 'UTF-8', ], + + /* + |-------------------------------------------------------------------------- + | Worksheet properties + |-------------------------------------------------------------------------- + | + | Configure e.g. default title, creator, subject,... + | + */ + 'properties' => [ + 'creator' => '', + 'lastModifiedBy' => '', + 'title' => '', + 'description' => '', + 'subject' => '', + 'keywords' => '', + 'category' => '', + 'manager' => '', + 'company' => '', + ], + ], /* @@ -82,9 +155,8 @@ return [ | Extension detector |-------------------------------------------------------------------------- | - | Configure here which writer type should be used when - | the package needs to guess the correct type - | based on the extension alone. + | Configure here which writer/reader type should be used when the package + | needs to guess the correct type based on the extension alone. | */ 'extension_detector' => [ @@ -116,39 +188,93 @@ return [ 'pdf' => Excel::DOMPDF, ], + /* + |-------------------------------------------------------------------------- + | Value Binder + |-------------------------------------------------------------------------- + | + | PhpSpreadsheet offers a way to hook into the process of a value being + | written to a cell. In there some assumptions are made on how the + | value should be formatted. If you want to change those defaults, + | you can implement your own default value binder. + | + | Possible value binders: + | + | [x] Maatwebsite\Excel\DefaultValueBinder::class + | [x] PhpOffice\PhpSpreadsheet\Cell\StringValueBinder::class + | [x] PhpOffice\PhpSpreadsheet\Cell\AdvancedValueBinder::class + | + */ 'value_binder' => [ - - /* - |-------------------------------------------------------------------------- - | Default Value Binder - |-------------------------------------------------------------------------- - | - | PhpSpreadsheet offers a way to hook into the process of a value being - | written to a cell. In there some assumptions are made on how the - | value should be formatted. If you want to change those defaults, - | you can implement your own default value binder. - | - */ 'default' => Maatwebsite\Excel\DefaultValueBinder::class, ], - 'transactions' => [ + 'cache' => [ + /* + |-------------------------------------------------------------------------- + | Default cell caching driver + |-------------------------------------------------------------------------- + | + | By default PhpSpreadsheet keeps all cell values in memory, however when + | dealing with large files, this might result into memory issues. If you + | want to mitigate that, you can configure a cell caching driver here. + | When using the illuminate driver, it will store each value in a the + | cache store. This can slow down the process, because it needs to + | store each value. You can use the "batch" store if you want to + | only persist to the store when the memory limit is reached. + | + | Drivers: memory|illuminate|batch + | + */ + 'driver' => 'memory', /* |-------------------------------------------------------------------------- - | Transaction Handler + | Batch memory caching |-------------------------------------------------------------------------- | - | By default the import is wrapped in a transaction. This is useful - | for when an import may fail and you want to retry it. With the - | transactions, the previous import gets rolled-back. - | - | You can disable the transaction handler by setting this to null. - | Or you can choose a custom made transaction handler here. - | - | Supported handlers: null|db + | When dealing with the "batch" caching driver, it will only + | persist to the store when the memory limit is reached. + | Here you can tweak the memory limit to your liking. | */ + 'batch' => [ + 'memory_limit' => 60000, + ], + + /* + |-------------------------------------------------------------------------- + | Illuminate cache + |-------------------------------------------------------------------------- + | + | When using the "illuminate" caching driver, it will automatically use + | your default cache store. However if you prefer to have the cell + | cache on a separate store, you can configure the store name here. + | You can use any store defined in your cache config. When leaving + | at "null" it will use the default store. + | + */ + 'illuminate' => [ + 'store' => null, + ], + ], + + /* + |-------------------------------------------------------------------------- + | Transaction Handler + |-------------------------------------------------------------------------- + | + | By default the import is wrapped in a transaction. This is useful + | for when an import may fail and you want to retry it. With the + | transactions, the previous import gets rolled-back. + | + | You can disable the transaction handler by setting this to null. + | Or you can choose a custom made transaction handler here. + | + | Supported handlers: null|db + | + */ + 'transactions' => [ 'handler' => 'db', ], @@ -163,7 +289,7 @@ return [ | storing reading or downloading. Here you can customize that path. | */ - 'local_path' => sys_get_temp_dir(), + 'local_path' => storage_path('framework/laravel-excel'), /* |-------------------------------------------------------------------------- @@ -179,8 +305,24 @@ return [ | in conjunction with queued imports and exports. | */ - 'remote_disk' => null, - 'remote_prefix' => null, + 'remote_disk' => null, + 'remote_prefix' => null, + /* + |-------------------------------------------------------------------------- + | Force Resync + |-------------------------------------------------------------------------- + | + | When dealing with a multi server setup as above, it's possible + | for the clean up that occurs after entire queue has been run to only + | cleanup the server that the last AfterImportJob runs on. The rest of the server + | would still have the local temporary file stored on it. In this case your + | local storage limits can be exceeded and future imports won't be processed. + | To mitigate this you can set this config value to be true, so that after every + | queued chunk is processed the local temporary file is deleted on the server that + | processed it. + | + */ + 'force_resync_remote' => null, ], ]; diff --git a/packages/Webkul/API/Http/Resources/Catalog/Product.php b/packages/Webkul/API/Http/Resources/Catalog/Product.php index b694f2ea9..79661f556 100644 --- a/packages/Webkul/API/Http/Resources/Catalog/Product.php +++ b/packages/Webkul/API/Http/Resources/Catalog/Product.php @@ -3,7 +3,6 @@ namespace Webkul\API\Http\Resources\Catalog; use Illuminate\Http\Resources\Json\JsonResource; -use Webkul\Product\Helpers\ProductType; class Product extends JsonResource { @@ -16,7 +15,7 @@ class Product extends JsonResource { $this->productReviewHelper = app('Webkul\Product\Helpers\Review'); - parent::__construct($resource); + $this->wishlistHelper = app('Webkul\Customer\Helpers\Wishlist'); } /** @@ -27,52 +26,264 @@ class Product extends JsonResource */ public function toArray($request) { + /* assign product */ $product = $this->product ? $this->product : $this; - $prices = $product->getTypeInstance()->getProductPrices(); + /* get type instance */ + $productTypeInstance = $product->getTypeInstance(); + /* generating resource */ return [ + /* product's information */ 'id' => $product->id, + 'sku' => $product->sku, 'type' => $product->type, - 'name' => $this->name, - 'url_key' => $this->url_key, - 'price' => $product->getTypeInstance()->getMinimalPrice(), - 'formated_price' => core()->currency($product->getTypeInstance()->getMinimalPrice()), - 'short_description' => $this->short_description, - 'description' => $this->description, - 'sku' => $this->sku, + 'name' => $product->name, + 'url_key' => $product->url_key, + 'price' => $productTypeInstance->getMinimalPrice(), + 'formated_price' => core()->currency($productTypeInstance->getMinimalPrice()), + 'short_description' => $product->short_description, + 'description' => $product->description, 'images' => ProductImage::collection($product->images), 'base_image' => app('Webkul\Product\ProductImage')->getProductBaseImage($product), - 'variants' => Self::collection($this->variants), - 'in_stock' => $product->haveSufficientQuantity(1), - $this->mergeWhen($product->getTypeInstance()->isComposite(), [ - 'super_attributes' => Attribute::collection($product->super_attributes), - ]), - 'special_price' => $this->when( - $product->getTypeInstance()->haveSpecialPrice(), - $product->getTypeInstance()->getSpecialPrice() - ), - 'formated_special_price' => $this->when( - $product->getTypeInstance()->haveSpecialPrice(), - core()->currency($product->getTypeInstance()->getSpecialPrice()) - ), - 'regular_price' => $this->when( - $product->getTypeInstance()->haveSpecialPrice(), - data_get($prices, 'regular_price.price') - ), - 'formated_regular_price' => $this->when( - $product->getTypeInstance()->haveSpecialPrice(), - data_get($prices, 'regular_price.formated_price') - ), + 'created_at' => $product->created_at, + 'updated_at' => $product->updated_at, + + /* product's reviews */ 'reviews' => [ 'total' => $total = $this->productReviewHelper->getTotalReviews($product), 'total_rating' => $total ? $this->productReviewHelper->getTotalRating($product) : 0, 'average_rating' => $total ? $this->productReviewHelper->getAverageRating($product) : 0, 'percentage' => $total ? json_encode($this->productReviewHelper->getPercentageRating($product)) : [], ], + + /* product's checks */ + 'in_stock' => $product->haveSufficientQuantity(1), 'is_saved' => false, - 'created_at' => $this->created_at, - 'updated_at' => $this->updated_at, + 'is_wishlisted' => $this->wishlistHelper->getWishlistProduct($product), + 'is_item_in_cart' => \Cart::hasProduct($product), + 'show_quantity_changer' => $this->when( + $product->type !== 'grouped', + $product->getTypeInstance()->showQuantityBox() + ), + + /* product's extra information */ + $this->merge($this->allProductExtraInfo()), + + /* special price cases */ + $this->merge($this->specialPriceInfo()), + + /* super attributes */ + $this->mergeWhen($productTypeInstance->isComposite(), [ + 'super_attributes' => Attribute::collection($product->super_attributes), + ]), ]; } + + /** + * Get special price information. + * + * @return array + */ + private function specialPriceInfo() + { + $product = $this->product ? $this->product : $this; + + $productTypeInstance = $product->getTypeInstance(); + + return [ + 'special_price' => $this->when( + $productTypeInstance->haveSpecialPrice(), + $productTypeInstance->getSpecialPrice() + ), + 'formated_special_price' => $this->when( + $productTypeInstance->haveSpecialPrice(), + core()->currency($productTypeInstance->getSpecialPrice()) + ), + 'regular_price' => $this->when( + $productTypeInstance->haveSpecialPrice(), + data_get($productTypeInstance->getProductPrices(), 'regular_price.price') + ), + 'formated_regular_price' => $this->when( + $productTypeInstance->haveSpecialPrice(), + data_get($productTypeInstance->getProductPrices(), 'regular_price.formated_price') + ), + ]; + } + + /** + * Get all product's extra information. + * + * @return array + */ + private function allProductExtraInfo() + { + $product = $this->product ? $this->product : $this; + + $productTypeInstance = $product->getTypeInstance(); + + return [ + /* grouped product */ + $this->mergeWhen( + $productTypeInstance instanceof \Webkul\Product\Type\Grouped, + $product->type == 'grouped' + ? $this->getGroupedProductInfo($product) + : null + ), + + /* bundle product */ + $this->mergeWhen( + $productTypeInstance instanceof \Webkul\Product\Type\Bundle, + $product->type == 'bundle' + ? $this->getBundleProductInfo($product) + : null + ), + + /* configurable product */ + $this->mergeWhen( + $productTypeInstance instanceof \Webkul\Product\Type\Configurable, + $product->type == 'configurable' + ? $this->getConfigurableProductInfo($product) + : null + ), + + /* downloadable product */ + $this->mergeWhen( + $productTypeInstance instanceof \Webkul\Product\Type\Downloadable, + $product->type == 'downloadable' + ? $this->getDownloadableProductInfo($product) + : null + ), + + /* booking product */ + $this->mergeWhen( + $product->type == 'booking', + $product->type == 'booking' + ? $this->getBookingProductInfo($product) + : null + ), + ]; + } + + /** + * Get grouped product's extra information. + * + * @param \Webkul\Product\Models\Product + * @return array + */ + private function getGroupedProductInfo($product) + { + return [ + 'grouped_products' => $product->grouped_products->map(function($groupedProduct) { + $associatedProduct = $groupedProduct->associated_product; + + $data = $associatedProduct->toArray(); + + return array_merge($data, [ + 'qty' => $groupedProduct->qty, + 'isSaleable' => $associatedProduct->getTypeInstance()->isSaleable(), + 'formated_price' => $associatedProduct->getTypeInstance()->getPriceHtml(), + 'show_quantity_changer' => $associatedProduct->getTypeInstance()->showQuantityBox(), + ]); + }) + ]; + } + + /** + * Get bundle product's extra information. + * + * @param \Webkul\Product\Models\Product + * @return array + */ + private function getBundleProductInfo($product) + { + return [ + 'currency_options' => core()->getAccountJsSymbols(), + 'bundle_options' => app('Webkul\Product\Helpers\BundleOption')->getBundleConfig($product) + ]; + } + + /** + * Get configurable product's extra information. + * + * @param \Webkul\Product\Models\Product + * @return array + */ + private function getConfigurableProductInfo($product) + { + return [ + 'variants' => $product->variants + ]; + } + + /** + * Get downloadable product's extra information. + * + * @param \Webkul\Product\Models\Product + * @return array + */ + private function getDownloadableProductInfo($product) + { + return [ + 'downloadable_links' => $product->downloadable_links->map(function ($downloadableLink) { + $data = $downloadableLink->toArray(); + + if (isset($data['sample_file'])) { + $data['price'] = core()->currency($downloadableLink->price); + $data['sample_download_url'] = route('shop.downloadable.download_sample', ['type' => 'link', 'id' => $downloadableLink['id']]); + } + + return $data; + }), + + 'downloadable_samples' => $product->downloadable_samples->map(function ($downloadableSample) { + $sample = $downloadableSample->toArray(); + $data = $sample; + $data['download_url'] = route('shop.downloadable.download_sample', ['type' => 'sample', 'id' => $sample['id']]); + return $data; + }) + ]; + } + + /** + * Get booking product's extra information. + * + * @param \Webkul\Product\Models\Product + * @return array + */ + private function getBookingProductInfo($product) + { + $bookingProduct = app('\Webkul\BookingProduct\Repositories\BookingProductRepository')->findOneByField('product_id', $product->id); + + $data['slot_index_route'] = route('booking_product.slots.index', $bookingProduct->id); + + if ($bookingProduct->type == 'appointment') { + $bookingSlotHelper = app('\Webkul\BookingProduct\Helpers\AppointmentSlot'); + + $data['today_slots_html'] = $bookingSlotHelper->getTodaySlotsHtml($bookingProduct); + $data['week_slot_durations'] = $bookingSlotHelper->getWeekSlotDurations($bookingProduct); + $data['appointment_slot'] = $bookingProduct->appointment_slot; + } + + if ($bookingProduct->type == 'event') { + $bookingSlotHelper = app('\Webkul\BookingProduct\Helpers\EventTicket'); + + $data['tickets'] = $bookingSlotHelper->getTickets($bookingProduct); + $data['event_date'] = $bookingSlotHelper->getEventDate($bookingProduct); + } + + if ($bookingProduct->type == 'rental') { + $data['renting_type'] = $bookingProduct->rental_slot->renting_type; + } + + if ($bookingProduct->type == 'table') { + $bookingSlotHelper = app('\Webkul\BookingProduct\Helpers\TableSlot'); + + $data['today_slots_html'] = $bookingSlotHelper->getTodaySlotsHtml($bookingProduct); + $data['week_slot_durations'] = $bookingSlotHelper->getWeekSlotDurations($bookingProduct); + $data['table_slot'] = $bookingProduct->table_slot; + } + + return $data; + } } diff --git a/packages/Webkul/Admin/src/Config/acl.php b/packages/Webkul/Admin/src/Config/acl.php index 0540e5125..1bfd025f4 100755 --- a/packages/Webkul/Admin/src/Config/acl.php +++ b/packages/Webkul/Admin/src/Config/acl.php @@ -1,12 +1,31 @@ 'dashboard', 'name' => 'admin::app.acl.dashboard', 'route' => 'admin.dashboard.index', 'sort' => 1, - ], [ + ], + + /* + |-------------------------------------------------------------------------- + | Sales + |-------------------------------------------------------------------------- + | + | All ACLs related to sales will be placed here. + | + */ + [ 'key' => 'sales', 'name' => 'admin::app.acl.sales', 'route' => 'admin.sales.orders.index', @@ -16,17 +35,72 @@ return [ 'name' => 'admin::app.acl.orders', 'route' => 'admin.sales.orders.index', 'sort' => 1, + ], [ + 'key' => 'sales.orders.view', + 'name' => 'admin::app.acl.view', + 'route' => 'admin.sales.orders.view', + 'sort' => 1, + ], [ + 'key' => 'sales.orders.cancel', + 'name' => 'admin::app.acl.cancel', + 'route' => 'admin.sales.orders.cancel', + 'sort' => 2, ], [ 'key' => 'sales.invoices', 'name' => 'admin::app.acl.invoices', 'route' => 'admin.sales.invoices.index', 'sort' => 2, + ], [ + 'key' => 'sales.invoices.view', + 'name' => 'admin::app.acl.view', + 'route' => 'admin.sales.invoices.view', + 'sort' => 1, + ], [ + 'key' => 'sales.invoices.create', + 'name' => 'admin::app.acl.create', + 'route' => 'admin.sales.invoices.create', + 'sort' => 2, ], [ 'key' => 'sales.shipments', 'name' => 'admin::app.acl.shipments', 'route' => 'admin.sales.shipments.index', 'sort' => 3, ], [ + 'key' => 'sales.shipments.view', + 'name' => 'admin::app.acl.view', + 'route' => 'admin.sales.shipments.view', + 'sort' => 1, + ], [ + 'key' => 'sales.shipments.create', + 'name' => 'admin::app.acl.create', + 'route' => 'admin.sales.shipments.create', + 'sort' => 2, + ], [ + 'key' => 'sales.refunds', + 'name' => 'admin::app.acl.refunds', + 'route' => 'admin.sales.refunds.index', + 'sort' => 4, + ], [ + 'key' => 'sales.refunds.view', + 'name' => 'admin::app.acl.view', + 'route' => 'admin.sales.refunds.view', + 'sort' => 1, + ], [ + 'key' => 'sales.refunds.create', + 'name' => 'admin::app.acl.create', + 'route' => 'admin.sales.refunds.create', + 'sort' => 2, + ], + + /* + |-------------------------------------------------------------------------- + | Catalog + |-------------------------------------------------------------------------- + | + | All ACLs related to catalog will be placed here. + | + */ + [ 'key' => 'catalog', 'name' => 'admin::app.acl.catalog', 'route' => 'admin.catalog.index', @@ -41,16 +115,31 @@ return [ 'name' => 'admin::app.acl.create', 'route' => 'admin.catalog.products.create', 'sort' => 1, + ], [ + 'key' => 'catalog.products.copy', + 'name' => 'admin::app.acl.copy', + 'route' => 'admin.catalog.products.copy', + 'sort' => 2, ], [ 'key' => 'catalog.products.edit', 'name' => 'admin::app.acl.edit', 'route' => 'admin.catalog.products.edit', - 'sort' => 2, + 'sort' => 3, ], [ 'key' => 'catalog.products.delete', 'name' => 'admin::app.acl.delete', 'route' => 'admin.catalog.products.delete', - 'sort' => 3, + 'sort' => 4, + ], [ + 'key' => 'catalog.products.mass-update', + 'name' => 'admin::app.acl.mass-update', + 'route' => 'admin.catalog.products.massupdate', + 'sort' => 5, + ], [ + 'key' => 'catalog.products.mass-delete', + 'name' => 'admin::app.acl.mass-delete', + 'route' => 'admin.catalog.products.massdelete', + 'sort' => 6, ], [ 'key' => 'catalog.categories', 'name' => 'admin::app.acl.categories', @@ -71,6 +160,11 @@ return [ 'name' => 'admin::app.acl.delete', 'route' => 'admin.catalog.categories.delete', 'sort' => 3, + ], [ + 'key' => 'catalog.categories.mass-delete', + 'name' => 'admin::app.acl.mass-delete', + 'route' => 'admin.catalog.categories.massdelete', + 'sort' => 4, ], [ 'key' => 'catalog.attributes', 'name' => 'admin::app.acl.attributes', @@ -91,6 +185,11 @@ return [ 'name' => 'admin::app.acl.delete', 'route' => 'admin.catalog.attributes.delete', 'sort' => 3, + ], [ + 'key' => 'catalog.attributes.mass-delete', + 'name' => 'admin::app.acl.mass-delete', + 'route' => 'admin.catalog.attributes.massdelete', + 'sort' => 4, ], [ 'key' => 'catalog.families', 'name' => 'admin::app.acl.attribute-families', @@ -111,7 +210,17 @@ return [ 'name' => 'admin::app.acl.delete', 'route' => 'admin.catalog.families.delete', 'sort' => 3, - ], [ + ], + + /* + |-------------------------------------------------------------------------- + | Customers + |-------------------------------------------------------------------------- + | + | All ACLs related to customers will be placed here. + | + */ + [ 'key' => 'customers', 'name' => 'admin::app.acl.customers', 'route' => 'admin.customer.index', @@ -136,11 +245,46 @@ return [ 'name' => 'admin::app.acl.delete', 'route' => 'admin.customer.delete', 'sort' => 3, + ], [ + 'key' => 'customers.customers.mass-update', + 'name' => 'admin::app.acl.mass-update', + 'route' => 'admin.customer.mass-update', + 'sort' => 4, + ], [ + 'key' => 'customers.customers.mass-delete', + 'name' => 'admin::app.acl.mass-delete', + 'route' => 'admin.customer.mass-delete', + 'sort' => 5, + ], [ + 'key' => 'customers.addresses', + 'name' => 'admin::app.acl.addresses', + 'route' => 'admin.customer.addresses.index', + 'sort' => 2, + ], [ + 'key' => 'customers.addresses.create', + 'name' => 'admin::app.acl.create', + 'route' => 'admin.customer.addresses.create', + 'sort' => 1, + ], [ + 'key' => 'customers.addresses.edit', + 'name' => 'admin::app.acl.edit', + 'route' => 'admin.customer.addresses.edit', + 'sort' => 2, + ], [ + 'key' => 'customers.addresses.delete', + 'name' => 'admin::app.acl.delete', + 'route' => 'admin.customer.addresses.delete', + 'sort' => 3, + ], [ + 'key' => 'customers.note', + 'name' => 'admin::app.acl.note', + 'route' => 'admin.customer.note.create', + 'sort' => 3, ], [ 'key' => 'customers.groups', 'name' => 'admin::app.acl.groups', 'route' => 'admin.groups.index', - 'sort' => 2, + 'sort' => 4, ], [ 'key' => 'customers.groups.create', 'name' => 'admin::app.acl.create', @@ -160,7 +304,7 @@ return [ 'key' => 'customers.reviews', 'name' => 'admin::app.acl.reviews', 'route' => 'admin.customer.review.index', - 'sort' => 3, + 'sort' => 5, ], [ 'key' => 'customers.reviews.edit', 'name' => 'admin::app.acl.edit', @@ -172,15 +316,215 @@ return [ 'route' => 'admin.customer.review.delete', 'sort' => 2, ], [ - 'key' => 'configuration', - 'name' => 'admin::app.acl.configure', - 'route' => 'admin.configuration.index', - 'sort' => 5, + 'key' => 'customers.reviews.mass-update', + 'name' => 'admin::app.acl.mass-update', + 'route' => 'admin.customer.review.massupdate', + 'sort' => 3, ], [ + 'key' => 'customers.reviews.mass-delete', + 'name' => 'admin::app.acl.mass-delete', + 'route' => 'admin.customer.review.massdelete', + 'sort' => 4, + ], + + /* + |-------------------------------------------------------------------------- + | Marketing + |-------------------------------------------------------------------------- + | + | All ACLs related to marketing will be placed here. + | + */ + [ + 'key' => 'marketing', + 'name' => 'admin::app.acl.marketing', + 'route' => 'admin.cart-rules.index', + 'sort' => 6, + ], [ + 'key' => 'marketing.promotions', + 'name' => 'admin::app.acl.promotions', + 'route' => 'admin.cart-rules.index', + 'sort' => 6, + ], [ + 'key' => 'marketing.promotions.cart-rules', + 'name' => 'admin::app.acl.cart-rules', + 'route' => 'admin.cart-rules.index', + 'sort' => 1, + ], [ + 'key' => 'marketing.promotions.cart-rules.create', + 'name' => 'admin::app.acl.create', + 'route' => 'admin.cart-rules.create', + 'sort' => 1, + ], [ + 'key' => 'marketing.promotions.cart-rules.copy', + 'name' => 'admin::app.acl.copy', + 'route' => 'admin.cart-rules.copy', + 'sort' => 1, + ], [ + 'key' => 'marketing.promotions.cart-rules.edit', + 'name' => 'admin::app.acl.edit', + 'route' => 'admin.cart-rules.edit', + 'sort' => 2, + ], [ + 'key' => 'marketing.promotions.cart-rules.delete', + 'name' => 'admin::app.acl.delete', + 'route' => 'admin.cart-rules.delete', + 'sort' => 3, + ], [ + 'key' => 'marketing.promotions.catalog-rules', + 'name' => 'admin::app.acl.catalog-rules', + 'route' => 'admin.catalog-rules.index', + 'sort' => 1, + ], [ + 'key' => 'marketing.promotions.catalog-rules.create', + 'name' => 'admin::app.acl.create', + 'route' => 'admin.catalog-rules.index', + 'sort' => 1, + ], [ + 'key' => 'marketing.promotions.catalog-rules.edit', + 'name' => 'admin::app.acl.edit', + 'route' => 'admin.catalog-rules.edit', + 'sort' => 2, + ], [ + 'key' => 'marketing.promotions.catalog-rules.delete', + 'name' => 'admin::app.acl.delete', + 'route' => 'admin.catalog-rules.delete', + 'sort' => 3, + ], [ + 'key' => 'marketing.email-marketing', + 'name' => 'admin::app.acl.email-marketing', + 'route' => 'admin.email-templates.index', + 'sort' => 7, + ], [ + 'key' => 'marketing.email-marketing.email-templates', + 'name' => 'admin::app.acl.email-templates', + 'route' => 'admin.email-templates.index', + 'sort' => 1, + ], [ + 'key' => 'marketing.email-marketing.email-templates.create', + 'name' => 'admin::app.acl.create', + 'route' => 'admin.email-templates.create', + 'sort' => 1, + ], [ + 'key' => 'marketing.email-marketing.email-templates.edit', + 'name' => 'admin::app.acl.edit', + 'route' => 'admin.email-templates.edit', + 'sort' => 2, + ], [ + 'key' => 'marketing.email-marketing.email-templates.delete', + 'name' => 'admin::app.acl.delete', + 'route' => 'admin.email-templates.delete', + 'sort' => 3, + ], [ + 'key' => 'marketing.email-marketing.events', + 'name' => 'admin::app.acl.events', + 'route' => 'admin.events.index', + 'sort' => 1, + ], [ + 'key' => 'marketing.email-marketing.events.create', + 'name' => 'admin::app.acl.create', + 'route' => 'admin.events.create', + 'sort' => 1, + ], [ + 'key' => 'marketing.email-marketing.events.edit', + 'name' => 'admin::app.acl.edit', + 'route' => 'admin.events.edit', + 'sort' => 2, + ], [ + 'key' => 'marketing.email-marketing.events.delete', + 'name' => 'admin::app.acl.delete', + 'route' => 'admin.events.delete', + 'sort' => 3, + ], [ + 'key' => 'marketing.email-marketing.campaigns', + 'name' => 'admin::app.acl.campaigns', + 'route' => 'admin.campaigns.index', + 'sort' => 1, + ], [ + 'key' => 'marketing.email-marketing.campaigns.create', + 'name' => 'admin::app.acl.create', + 'route' => 'admin.campaigns.create', + 'sort' => 1, + ], [ + 'key' => 'marketing.email-marketing.campaigns.edit', + 'name' => 'admin::app.acl.edit', + 'route' => 'admin.campaigns.edit', + 'sort' => 2, + ], [ + 'key' => 'marketing.email-marketing.campaigns.delete', + 'name' => 'admin::app.acl.delete', + 'route' => 'admin.campaigns.delete', + 'sort' => 3, + ], [ + 'key' => 'marketing.email-marketing.subscribers', + 'name' => 'admin::app.acl.subscribers', + 'route' => 'admin.customers.subscribers.index', + 'sort' => 1, + ], [ + 'key' => 'marketing.email-marketing.subscribers.edit', + 'name' => 'admin::app.acl.edit', + 'route' => 'admin.customers.subscribers.edit', + 'sort' => 2, + ], [ + 'key' => 'marketing.email-marketing.subscribers.delete', + 'name' => 'admin::app.acl.delete', + 'route' => 'admin.customers.subscribers.delete', + 'sort' => 3, + ], + + /* + |-------------------------------------------------------------------------- + | CMS + |-------------------------------------------------------------------------- + | + | All ACLs related to cms will be placed here. + | + */ + [ + 'key' => 'cms', + 'name' => 'admin::app.layouts.cms', + 'route' => 'admin.cms.index', + 'sort' => 7, + ], [ + 'key' => 'cms.pages', + 'name' => 'admin::app.cms.pages.pages', + 'route' => 'admin.cms.index', + 'sort' => 7, + ], [ + 'key' => 'cms.pages.create', + 'name' => 'admin::app.acl.create', + 'route' => 'admin.cms.create', + 'sort' => 1, + ], [ + 'key' => 'cms.pages.edit', + 'name' => 'admin::app.acl.edit', + 'route' => 'admin.cms.edit', + 'sort' => 2, + ], [ + 'key' => 'cms.pages.delete', + 'name' => 'admin::app.acl.delete', + 'route' => 'admin.cms.delete', + 'sort' => 3, + ], [ + 'key' => 'cms.pages.mass-delete', + 'name' => 'admin::app.acl.mass-delete', + 'route' => 'admin.cms.mass-delete', + 'sort' => 4, + ], + + /* + |-------------------------------------------------------------------------- + | Settings + |-------------------------------------------------------------------------- + | + | All ACLs related to settings will be placed here. + | + */ + [ 'key' => 'settings', 'name' => 'admin::app.acl.settings', 'route' => 'admin.users.index', - 'sort' => 6, + 'sort' => 8, ], [ 'key' => 'settings.locales', 'name' => 'admin::app.acl.locales', @@ -391,137 +735,20 @@ return [ 'name' => 'admin::app.acl.delete', 'route' => 'admin.tax-rates.delete', 'sort' => 3, - ], [ - 'key' => 'marketing', - 'name' => 'admin::app.acl.marketing', - 'route' => 'admin.cart-rules.index', - 'sort' => 7, - ], [ - 'key' => 'marketing.promotions', - 'name' => 'admin::app.acl.promotions', - 'route' => 'admin.cart-rules.index', - 'sort' => 7, - ], [ - 'key' => 'marketing.promotions.cart-rules', - 'name' => 'admin::app.acl.cart-rules', - 'route' => 'admin.cart-rules.index', - 'sort' => 1, - ], [ - 'key' => 'marketing.promotions.cart-rules.create', - 'name' => 'admin::app.acl.create', - 'route' => 'admin.cart-rules.create', - 'sort' => 1, - ], [ - 'key' => 'marketing.promotions.cart-rules.edit', - 'name' => 'admin::app.acl.edit', - 'route' => 'admin.cart-rules.edit', - 'sort' => 2, - ], [ - 'key' => 'marketing.promotions.cart-rules.delete', - 'name' => 'admin::app.acl.delete', - 'route' => 'admin.cart-rules.delete', - 'sort' => 3, - ], [ - 'key' => 'marketing.promotions.catalog-rules', - 'name' => 'admin::app.acl.catalog-rules', - 'route' => 'admin.catalog-rules.index', - 'sort' => 1, - ], [ - 'key' => 'marketing.promotions.catalog-rules.create', - 'name' => 'admin::app.acl.create', - 'route' => 'admin.catalog-rules.index', - 'sort' => 1, - ], [ - 'key' => 'marketing.promotions.catalog-rules.edit', - 'name' => 'admin::app.acl.edit', - 'route' => 'admin.catalog-rules.edit', - 'sort' => 2, - ], [ - 'key' => 'marketing.promotions.catalog-rules.delete', - 'name' => 'admin::app.acl.delete', - 'route' => 'admin.catalog-rules.delete', - 'sort' => 3, - ], [ - 'key' => 'marketing.email-marketing', - 'name' => 'admin::app.acl.email-marketing', - 'route' => 'admin.email-templates.index', - 'sort' => 7, - ], [ - 'key' => 'marketing.email-marketing.email-templates', - 'name' => 'admin::app.acl.email-templates', - 'route' => 'admin.email-templates.index', - 'sort' => 1, - ], [ - 'key' => 'marketing.email-marketing.email-templates.create', - 'name' => 'admin::app.acl.create', - 'route' => 'admin.email-templates.create', - 'sort' => 1, - ], [ - 'key' => 'marketing.email-marketing.email-templates.edit', - 'name' => 'admin::app.acl.edit', - 'route' => 'admin.email-templates.edit', - 'sort' => 2, - ], [ - 'key' => 'marketing.email-marketing.email-templates.delete', - 'name' => 'admin::app.acl.delete', - 'route' => 'admin.email-templates.delete', - 'sort' => 3, - ], [ - 'key' => 'marketing.email-marketing.events', - 'name' => 'admin::app.acl.events', - 'route' => 'admin.events.index', - 'sort' => 1, - ], [ - 'key' => 'marketing.email-marketing.events.create', - 'name' => 'admin::app.acl.create', - 'route' => 'admin.events.create', - 'sort' => 1, - ], [ - 'key' => 'marketing.email-marketing.events.edit', - 'name' => 'admin::app.acl.edit', - 'route' => 'admin.events.edit', - 'sort' => 2, - ], [ - 'key' => 'marketing.email-marketing.events.delete', - 'name' => 'admin::app.acl.delete', - 'route' => 'admin.events.delete', - 'sort' => 3, - ], [ - 'key' => 'marketing.email-marketing.campaigns', - 'name' => 'admin::app.acl.campaigns', - 'route' => 'admin.campaigns.index', - 'sort' => 1, - ], [ - 'key' => 'marketing.email-marketing.campaigns.create', - 'name' => 'admin::app.acl.create', - 'route' => 'admin.campaigns.create', - 'sort' => 1, - ], [ - 'key' => 'marketing.email-marketing.campaigns.edit', - 'name' => 'admin::app.acl.edit', - 'route' => 'admin.campaigns.edit', - 'sort' => 2, - ], [ - 'key' => 'marketing.email-marketing.campaigns.delete', - 'name' => 'admin::app.acl.delete', - 'route' => 'admin.campaigns.delete', - 'sort' => 3, - ], [ - 'key' => 'marketing.email-marketing.subscribers', - 'name' => 'admin::app.acl.subscribers', - 'route' => 'admin.subscribers.index', - 'sort' => 1, - ], [ - 'key' => 'marketing.email-marketing.subscribers.edit', - 'name' => 'admin::app.acl.edit', - 'route' => 'admin.subscribers.edit', - 'sort' => 2, - ], [ - 'key' => 'marketing.email-marketing.subscribers.delete', - 'name' => 'admin::app.acl.delete', - 'route' => 'admin.subscribers.delete', - 'sort' => 3, + ], + + /* + |-------------------------------------------------------------------------- + | Configuration + |-------------------------------------------------------------------------- + | + | All ACLs related to configuration will be placed here. + | + */ + [ + 'key' => 'configuration', + 'name' => 'admin::app.acl.configure', + 'route' => 'admin.configuration.index', + 'sort' => 9, ] ]; - -?> \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Config/system.php b/packages/Webkul/Admin/src/Config/system.php index e1e5bce54..964771e54 100644 --- a/packages/Webkul/Admin/src/Config/system.php +++ b/packages/Webkul/Admin/src/Config/system.php @@ -166,6 +166,11 @@ return [ 'type' => 'number', 'validation' => 'min:0', ], + [ + 'name' => 'out_of_stock_items', + 'title' => 'admin::app.admin.system.allow-out-of-stock-items', + 'type' => 'boolean', + ], ], ], [ 'key' => 'catalog.products.storefront', diff --git a/packages/Webkul/Admin/src/DataGrids/AddressDataGrid.php b/packages/Webkul/Admin/src/DataGrids/AddressDataGrid.php index bce3a7d5e..1b1de0ade 100644 --- a/packages/Webkul/Admin/src/DataGrids/AddressDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/AddressDataGrid.php @@ -98,7 +98,7 @@ class AddressDataGrid extends DataGrid 'sortable' => true, 'filterable' => true, ]); - + $this->addColumn([ 'index' => 'city', 'label' => trans('admin::app.customers.addresses.city'), @@ -167,7 +167,7 @@ class AddressDataGrid extends DataGrid 'type' => 'delete', 'label' => trans('admin::app.customers.addresses.delete'), 'action' => route('admin.customer.addresses.massdelete', request('id')), - 'method' => 'DELETE', + 'method' => 'POST', ]); } } diff --git a/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php b/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php index cf46f2b9b..9628508f3 100755 --- a/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php @@ -17,6 +17,10 @@ class AttributeDataGrid extends DataGrid ->select('id') ->addSelect('id', 'code', 'admin_name', 'type', 'is_required', 'is_unique', 'value_per_locale', 'value_per_channel'); + $this->addFilter('is_unique', 'is_unique'); + $this->addFilter('value_per_locale', 'value_per_locale'); + $this->addFilter('value_per_channel', 'value_per_channel'); + $this->setQueryBuilder($queryBuilder); } @@ -146,7 +150,7 @@ class AttributeDataGrid extends DataGrid 'action' => route('admin.catalog.attributes.massdelete'), 'label' => trans('admin::app.datagrid.delete'), 'index' => 'admin_name', - 'method' => 'DELETE', + 'method' => 'POST', ]); } } diff --git a/packages/Webkul/Admin/src/DataGrids/CMSPageDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CMSPageDataGrid.php index 9a33f9006..992b3596a 100644 --- a/packages/Webkul/Admin/src/DataGrids/CMSPageDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CMSPageDataGrid.php @@ -78,7 +78,7 @@ class CMSPageDataGrid extends DataGrid 'type' => 'delete', 'label' => trans('admin::app.datagrid.delete'), 'action' => route('admin.cms.mass-delete'), - 'method' => 'DELETE', + 'method' => 'POST', ]); } } \ No newline at end of file diff --git a/packages/Webkul/Admin/src/DataGrids/CartRuleCouponDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CartRuleCouponDataGrid.php index 2175ec7ab..d394ec615 100644 --- a/packages/Webkul/Admin/src/DataGrids/CartRuleCouponDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CartRuleCouponDataGrid.php @@ -12,7 +12,7 @@ class CartRuleCouponDataGrid extends DataGrid protected $sortOrder = 'desc'; public function prepareQueryBuilder() - { + { $route = request()->route() ? request()->route()->getName() : "" ; $cartRuleId = $route == 'admin.cart-rules.edit' ? collect(request()->segments())->last() : last(explode("/", url()->previous())); @@ -20,7 +20,7 @@ class CartRuleCouponDataGrid extends DataGrid $queryBuilder = DB::table('cart_rule_coupons') ->addSelect('id', 'code', 'created_at', 'expired_at', 'times_used') ->where('cart_rule_coupons.cart_rule_id', $cartRuleId); - + $this->setQueryBuilder($queryBuilder); } @@ -78,7 +78,7 @@ class CartRuleCouponDataGrid extends DataGrid 'type' => 'delete', 'action' => route('admin.cart-rule-coupons.mass-delete'), 'label' => trans('admin::app.datagrid.delete'), - 'method' => 'DELETE', + 'method' => 'POST', ]); } } diff --git a/packages/Webkul/Admin/src/DataGrids/CartRuleDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CartRuleDataGrid.php index 5abaa1544..59d52ed48 100644 --- a/packages/Webkul/Admin/src/DataGrids/CartRuleDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CartRuleDataGrid.php @@ -62,6 +62,8 @@ class CartRuleDataGrid extends DataGrid $queryBuilder->where('cart_rule_channels.channel_id', $this->channel); } + $this->addFilter('status', 'status'); + $this->setQueryBuilder($queryBuilder); } @@ -120,9 +122,9 @@ class CartRuleDataGrid extends DataGrid 'sortable' => true, 'filterable' => true, 'wrapper' => function ($value) { - if ($value->status == 'active') { + if ($value->status == 1) { return trans('admin::app.datagrid.active'); - } else if ($value->status == 'inactive') { + } else if ($value->status == 0) { return trans('admin::app.datagrid.inactive'); } else { return trans('admin::app.datagrid.draft'); diff --git a/packages/Webkul/Admin/src/DataGrids/CatalogRuleDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CatalogRuleDataGrid.php index 540afc637..4e79a0847 100644 --- a/packages/Webkul/Admin/src/DataGrids/CatalogRuleDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CatalogRuleDataGrid.php @@ -16,6 +16,9 @@ class CatalogRuleDataGrid extends DataGrid $queryBuilder = DB::table('catalog_rules') ->addSelect('catalog_rules.id', 'name', 'status', 'starts_from', 'ends_till', 'sort_order'); + + $this->addFilter('status', 'status'); + $this->setQueryBuilder($queryBuilder); } diff --git a/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php index b6e7237ab..cb2880f87 100755 --- a/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php @@ -24,6 +24,7 @@ class CategoryDataGrid extends DataGrid ->groupBy('cat.id'); + $this->addFilter('status', 'cat.status'); $this->addFilter('category_id', 'cat.id'); $this->setQueryBuilder($queryBuilder); @@ -106,7 +107,7 @@ class CategoryDataGrid extends DataGrid 'type' => 'delete', 'label' => trans('admin::app.datagrid.delete'), 'action' => route('admin.catalog.categories.massdelete'), - 'method' => 'DELETE', + 'method' => 'POST', ]); } } \ No newline at end of file diff --git a/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php index 2af7c38e7..098c10ff7 100755 --- a/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php @@ -2,8 +2,8 @@ namespace Webkul\Admin\DataGrids; -use Illuminate\Support\Facades\DB; use Webkul\Ui\DataGrid\DataGrid; +use Illuminate\Support\Facades\DB; class CustomerDataGrid extends DataGrid { @@ -17,13 +17,15 @@ class CustomerDataGrid extends DataGrid { $queryBuilder = DB::table('customers') ->leftJoin('customer_groups', 'customers.customer_group_id', '=', 'customer_groups.id') - ->addSelect('customers.id as customer_id', 'customers.email', 'customer_groups.name', 'customers.phone', 'customers.gender', 'status') + ->addSelect('customers.id as customer_id', 'customers.email', 'customer_groups.name as group', 'customers.phone', 'customers.gender', 'status') ->addSelect(DB::raw('CONCAT(' . DB::getTablePrefix() . 'customers.first_name, " ", ' . DB::getTablePrefix() . 'customers.last_name) as full_name')); $this->addFilter('customer_id', 'customers.id'); $this->addFilter('full_name', DB::raw('CONCAT(' . DB::getTablePrefix() . 'customers.first_name, " ", ' . DB::getTablePrefix() . 'customers.last_name)')); + $this->addFilter('group', 'customer_groups.name'); $this->addFilter('phone', 'customers.phone'); $this->addFilter('gender', 'customers.gender'); + $this->addFilter('status', 'status'); $this->setQueryBuilder($queryBuilder); } @@ -58,7 +60,7 @@ class CustomerDataGrid extends DataGrid ]); $this->addColumn([ - 'index' => 'name', + 'index' => 'group', 'label' => trans('admin::app.datagrid.group'), 'type' => 'string', 'searchable' => false, @@ -159,14 +161,14 @@ class CustomerDataGrid extends DataGrid 'type' => 'delete', 'label' => trans('admin::app.datagrid.delete'), 'action' => route('admin.customer.mass-delete'), - 'method' => 'PUT', + 'method' => 'POST', ]); $this->addMassAction([ 'type' => 'update', 'label' => trans('admin::app.datagrid.update-status'), 'action' => route('admin.customer.mass-update'), - 'method' => 'PUT', + 'method' => 'POST', 'options' => [ 'Active' => 1, 'Inactive' => 0, diff --git a/packages/Webkul/Admin/src/DataGrids/CustomerReviewDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CustomerReviewDataGrid.php index 3c66b9a11..33268f8dc 100755 --- a/packages/Webkul/Admin/src/DataGrids/CustomerReviewDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CustomerReviewDataGrid.php @@ -108,14 +108,14 @@ class CustomerReviewDataGrid extends DataGrid 'type' => 'delete', 'label' => trans('admin::app.datagrid.delete'), 'action' => route('admin.customer.review.massdelete'), - 'method' => 'DELETE', + 'method' => 'POST', ]); $this->addMassAction([ 'type' => 'update', 'label' => trans('admin::app.datagrid.update-status'), 'action' => route('admin.customer.review.massupdate'), - 'method' => 'PUT', + 'method' => 'POST', 'options' => [ trans('admin::app.customers.reviews.pending') => 0, trans('admin::app.customers.reviews.approved') => 1, diff --git a/packages/Webkul/Admin/src/DataGrids/EmailTemplateDataGrid.php b/packages/Webkul/Admin/src/DataGrids/EmailTemplateDataGrid.php index 833a8f424..da88abdac 100755 --- a/packages/Webkul/Admin/src/DataGrids/EmailTemplateDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/EmailTemplateDataGrid.php @@ -15,6 +15,8 @@ class EmailTemplateDataGrid extends DataGrid { $queryBuilder = DB::table('marketing_templates')->addSelect('id', 'name', 'status'); + $this->addFilter('status', 'status'); + $this->setQueryBuilder($queryBuilder); } diff --git a/packages/Webkul/Admin/src/DataGrids/InventorySourcesDataGrid.php b/packages/Webkul/Admin/src/DataGrids/InventorySourcesDataGrid.php index 5ec09313d..54bb1a728 100755 --- a/packages/Webkul/Admin/src/DataGrids/InventorySourcesDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/InventorySourcesDataGrid.php @@ -15,6 +15,8 @@ class InventorySourcesDataGrid extends DataGrid { $queryBuilder = DB::table('inventory_sources')->addSelect('id', 'code', 'name', 'priority', 'status'); + $this->addFilter('status', 'status'); + $this->setQueryBuilder($queryBuilder); } diff --git a/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php b/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php index b25a0f675..26ac28741 100644 --- a/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php @@ -223,14 +223,14 @@ class ProductDataGrid extends DataGrid 'type' => 'delete', 'label' => trans('admin::app.datagrid.delete'), 'action' => route('admin.catalog.products.massdelete'), - 'method' => 'DELETE', + 'method' => 'POST', ]); $this->addMassAction([ 'type' => 'update', 'label' => trans('admin::app.datagrid.update-status'), 'action' => route('admin.catalog.products.massupdate'), - 'method' => 'PUT', + 'method' => 'POST', 'options' => [ 'Active' => 1, 'Inactive' => 0, diff --git a/packages/Webkul/Admin/src/DataGrids/SliderDataGrid.php b/packages/Webkul/Admin/src/DataGrids/SliderDataGrid.php index b206ca1c1..bc36ab5c5 100755 --- a/packages/Webkul/Admin/src/DataGrids/SliderDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/SliderDataGrid.php @@ -30,10 +30,17 @@ class SliderDataGrid extends DataGrid { parent::__construct(); - $this->locale = request()->get('locale') ?? 'all'; - $this->channel = request()->get('channel') - ? Channel::find(request()->get('channel'))->code - : 'all'; + /* locale */ + $this->locale = request()->get('locale') ?? app()->getLocale(); + + /* channel */ + $this->channel = request()->get('channel') ?? (core()->getCurrentChannelCode() ?: core()->getDefaultChannelCode()); + + /* finding channel code */ + if ($this->channel !== 'all') { + $this->channel = Channel::query()->find($this->channel); + $this->channel = $this->channel ? $this->channel->code : 'all'; + } } public function prepareQueryBuilder() diff --git a/packages/Webkul/Admin/src/DataGrids/TaxRateDataGrid.php b/packages/Webkul/Admin/src/DataGrids/TaxRateDataGrid.php index 45f0a6c9b..daac5a7f9 100755 --- a/packages/Webkul/Admin/src/DataGrids/TaxRateDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/TaxRateDataGrid.php @@ -105,7 +105,7 @@ class TaxRateDataGrid extends DataGrid $this->addAction([ 'title' => trans('admin::app.datagrid.edit'), 'method' => 'GET', - 'route' => 'admin.tax-rates.store', + 'route' => 'admin.tax-rates.edit', 'icon' => 'icon pencil-lg-icon', ]); diff --git a/packages/Webkul/Admin/src/DataGrids/UserDataGrid.php b/packages/Webkul/Admin/src/DataGrids/UserDataGrid.php index 44601be07..59b4f57ff 100755 --- a/packages/Webkul/Admin/src/DataGrids/UserDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/UserDataGrid.php @@ -20,6 +20,7 @@ class UserDataGrid extends DataGrid $this->addFilter('user_id', 'u.id'); $this->addFilter('user_name', 'u.name'); $this->addFilter('role_name', 'ro.name'); + $this->addFilter('status', 'u.status'); $this->setQueryBuilder($queryBuilder); } diff --git a/packages/Webkul/Admin/src/Http/Controllers/Sales/InvoiceController.php b/packages/Webkul/Admin/src/Http/Controllers/Sales/InvoiceController.php index 792182101..a06b3706d 100755 --- a/packages/Webkul/Admin/src/Http/Controllers/Sales/InvoiceController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/Sales/InvoiceController.php @@ -2,10 +2,10 @@ namespace Webkul\Admin\Http\Controllers\Sales; +use PDF; use Webkul\Admin\Http\Controllers\Controller; use Webkul\Sales\Repositories\OrderRepository; use Webkul\Sales\Repositories\InvoiceRepository; -use PDF; class InvoiceController extends Controller { @@ -141,8 +141,30 @@ class InvoiceController extends Controller { $invoice = $this->invoiceRepository->findOrFail($id); - $pdf = PDF::loadView('admin::sales.invoices.pdf', compact('invoice'))->setPaper('a4'); + $html = view('admin::sales.invoices.pdf', compact('invoice'))->render(); - return $pdf->download('invoice-' . $invoice->created_at->format('d-m-Y') . '.pdf'); + return PDF::loadHTML($this->adjustArabicAndPersianContent($html)) + ->setPaper('a4') + ->download('invoice-' . $invoice->created_at->format('d-m-Y') . '.pdf'); + } + + /** + * Adjust arabic and persian content. + * + * @param string $html + * @return string + */ + private function adjustArabicAndPersianContent($html) + { + $arabic = new \ArPHP\I18N\Arabic(); + + $p = $arabic->arIdentify($html); + + for ($i = count($p)-1; $i >= 0; $i -= 2) { + $utf8ar = $arabic->utf8Glyphs(substr($html, $p[$i-1], $p[$i] - $p[$i-1])); + $html = substr_replace($html, $utf8ar, $p[$i-1], $p[$i] - $p[$i-1]); + } + + return $html; } } diff --git a/packages/Webkul/Admin/src/Http/routes.php b/packages/Webkul/Admin/src/Http/routes.php index 278c2d71e..b8b37e056 100755 --- a/packages/Webkul/Admin/src/Http/routes.php +++ b/packages/Webkul/Admin/src/Http/routes.php @@ -341,7 +341,7 @@ Route::group(['middleware' => ['web', 'admin_locale']], function () { ])->name('admin.catalog.categories.massdelete'); Route::post('/categories/product/count', 'Webkul\Category\Http\Controllers\CategoryController@categoryProductCount')->name('admin.catalog.categories.product.count'); - + // Catalog Attribute Routes Route::get('/attributes', 'Webkul\Attribute\Http\Controllers\AttributeController@index')->defaults('_config', [ @@ -620,11 +620,11 @@ Route::group(['middleware' => ['web', 'admin_locale']], function () { // tax category routes Route::get('/tax-categories/create', 'Webkul\Tax\Http\Controllers\TaxCategoryController@show')->defaults('_config', [ 'view' => 'admin::tax.tax-categories.create', - ])->name('admin.tax-categories.show'); + ])->name('admin.tax-categories.create'); Route::post('/tax-categories/create', 'Webkul\Tax\Http\Controllers\TaxCategoryController@create')->defaults('_config', [ 'redirect' => 'admin.tax-categories.index', - ])->name('admin.tax-categories.create'); + ])->name('admin.tax-categories.store'); Route::get('/tax-categories/edit/{id}', 'Webkul\Tax\Http\Controllers\TaxCategoryController@edit')->defaults('_config', [ 'view' => 'admin::tax.tax-categories.edit', @@ -645,15 +645,15 @@ Route::group(['middleware' => ['web', 'admin_locale']], function () { Route::get('tax-rates/create', 'Webkul\Tax\Http\Controllers\TaxRateController@show')->defaults('_config', [ 'view' => 'admin::tax.tax-rates.create', - ])->name('admin.tax-rates.show'); + ])->name('admin.tax-rates.create'); Route::post('tax-rates/create', 'Webkul\Tax\Http\Controllers\TaxRateController@create')->defaults('_config', [ 'redirect' => 'admin.tax-rates.index', - ])->name('admin.tax-rates.create'); + ])->name('admin.tax-rates.store'); Route::get('tax-rates/edit/{id}', 'Webkul\Tax\Http\Controllers\TaxRateController@edit')->defaults('_config', [ 'view' => 'admin::tax.tax-rates.edit', - ])->name('admin.tax-rates.store'); + ])->name('admin.tax-rates.edit'); Route::put('tax-rates/update/{id}', 'Webkul\Tax\Http\Controllers\TaxRateController@update')->defaults('_config', [ 'redirect' => 'admin.tax-rates.index', diff --git a/packages/Webkul/Admin/src/Resources/lang/ar/app.php b/packages/Webkul/Admin/src/Resources/lang/ar/app.php index 391f81f63..e187111af 100644 --- a/packages/Webkul/Admin/src/Resources/lang/ar/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/ar/app.php @@ -87,15 +87,20 @@ return [ 'acl' => [ 'dashboard' => 'لوحة التحكم', 'sales' => 'المبيعات', + 'cancel' => 'Cancel', 'orders' => 'الطلبات', 'shipments' => 'الشحنات', 'invoices' => 'الفواتير', + 'refunds' => 'Refunds', 'catalog' => 'فهرس', 'products' => 'المنتجات', + 'copy' => 'Copy', 'categories' => 'الفئات', 'attributes' => 'الصفات', 'attribute-families' => 'وصف الأسر', 'customers' => 'زبائن', + 'addresses' => 'Addresses', + 'note' => 'Note', 'groups' => 'المجموعات', 'reviews' => 'باء-الاستعراضات', 'newsletter-subscriptions' => 'الاشتراك في الرسالة الإخبارية', @@ -112,9 +117,12 @@ return [ 'taxes' => 'الضرائب', 'tax-categories' => 'فئات الضرائب', 'tax-rates' => 'المعدلات الضريبية', + 'view' => 'View', 'edit' => 'تعديل', 'create' => 'أضف', 'delete' => 'حذف', + 'mass-delete' => 'Mass Delete', + 'mass-update' => 'Mass Update', 'marketing' => 'Marketing', 'promotions' => 'الترقيات', 'cart-rules' => 'قواعد سلة التسوق', @@ -1329,6 +1337,10 @@ return [ ], 'system' => [ 'catalog' => 'فهرس', + 'homepage' => 'Homepage configuration', + 'allow-no-of-new-product-homepage' => 'Allowed No of New Product in Homepage', + 'allow-no-of-featured-product-homepage' => 'Allowed No of Featured Product in Homepage', + 'allow-out-of-stock-items' => 'Allow out of stock items', 'products' => 'منتجات', 'guest-checkout' => 'ضيف المحاسبة', 'allow-guest-checkout' => 'السماح للضيف بالخروج', diff --git a/packages/Webkul/Admin/src/Resources/lang/de/app.php b/packages/Webkul/Admin/src/Resources/lang/de/app.php index 7088d4541..cde357fa9 100755 --- a/packages/Webkul/Admin/src/Resources/lang/de/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/de/app.php @@ -86,15 +86,20 @@ return [ [ 'dashboard' => 'Dashboard', 'sales' => 'Vertrieb', + 'cancel' => 'Cancel', 'orders' => 'Bestellungen', 'shipments' => 'Sendungen', 'invoices' => 'Rechnungen', + 'refunds' => 'Refunds', 'catalog' => 'Katalog', 'products' => 'Produkte', + 'copy' => 'Copy', 'categories' => 'Kategorien', 'attributes' => 'Attribute', 'attribute-families' => 'Attributgruppen', 'customers' => 'Kunden', + 'addresses' => 'Addresses', + 'note' => 'Note', 'groups' => 'Gruppen', 'reviews' => 'Bewertungen', 'newsletter-subscriptions' => 'Newsletter-Abonnements', @@ -111,10 +116,13 @@ return [ 'taxes' => 'Steuern', 'tax-categories' => 'Steuerkategorien', 'tax-rates' => 'Steuersätze', + 'view' => 'View', 'edit' => 'Bearbeiten', 'create' => 'Hinzufügen', 'delete' => 'Löschen', - 'marketing' => 'Marketing', + 'mass-delete' => 'Mass Delete', + 'mass-update' => 'Mass Update', + 'marketing' => 'Marketing', 'promotions' => 'Promotions', 'cart-rules' => 'Warenkorbregeln', 'catalog-rules' => 'Katalogregeln', @@ -1197,7 +1205,7 @@ return [ 'edit-error' => 'Can not edit this event.' ] ], - + 'error' => [ 'go-to-home' => 'HOME ÖFFNEN', @@ -1337,6 +1345,10 @@ return [ 'system' => [ 'catalog' => 'Katalog', + 'homepage' => 'Homepage configuration', + 'allow-no-of-new-product-homepage' => 'Allowed No of New Product in Homepage', + 'allow-no-of-featured-product-homepage' => 'Allowed No of Featured Product in Homepage', + 'allow-out-of-stock-items' => 'Allow out of stock items', 'products' => 'Produkte', 'guest-checkout' => 'Gastbestellungen', 'allow-guest-checkout' => 'Gastbestellungen erlauben', diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index 2625e665e..1ae5dcec3 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -88,15 +88,20 @@ return [ 'acl' => [ 'dashboard' => 'Dashboard', 'sales' => 'Sales', + 'cancel' => 'Cancel', 'orders' => 'Orders', 'shipments' => 'Shipments', 'invoices' => 'Invoices', + 'refunds' => 'Refunds', 'catalog' => 'Catalog', 'products' => 'Products', + 'copy' => 'Copy', 'categories' => 'Categories', 'attributes' => 'Attributes', 'attribute-families' => 'Attribute Families', 'customers' => 'Customers', + 'addresses' => 'Addresses', + 'note' => 'Note', 'groups' => 'Groups', 'reviews' => 'Reviews', 'newsletter-subscriptions' => 'Newsletter Subscriptions', @@ -113,9 +118,12 @@ return [ 'taxes' => 'Taxes', 'tax-categories' => 'Tax Categories', 'tax-rates' => 'Tax Rates', + 'view' => 'View', 'edit' => 'Edit', 'create' => 'Add', 'delete' => 'Delete', + 'mass-delete' => 'Mass Delete', + 'mass-update' => 'Mass Update', 'marketing' => 'Marketing', 'promotions' => 'Promotions', 'cart-rules' => 'Cart Rules', @@ -1340,6 +1348,7 @@ return [ 'homepage' => 'Homepage configuration', 'allow-no-of-new-product-homepage' => 'Allowed No of New Product in Homepage', 'allow-no-of-featured-product-homepage' => 'Allowed No of Featured Product in Homepage', + 'allow-out-of-stock-items' => 'Allow out of stock items', 'products' => 'Products', 'guest-checkout' => 'Guest Checkout', 'allow-guest-checkout' => 'Allow Guest Checkout', diff --git a/packages/Webkul/Admin/src/Resources/lang/es/app.php b/packages/Webkul/Admin/src/Resources/lang/es/app.php index 6f4f46711..c3e1284ee 100644 --- a/packages/Webkul/Admin/src/Resources/lang/es/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/es/app.php @@ -85,15 +85,20 @@ return [ 'acl' => [ 'dashboard' => 'Tablero', 'sales' => 'Ventas', + 'cancel' => 'Cancel', 'orders' => 'Pedidos', 'shipments' => 'Envíos', 'invoices' => 'Facturas', + 'refunds' => 'Refunds', 'catalog' => 'Catálogo', 'products' => 'Productos', + 'copy' => 'Copy', 'categories' => 'Categorías', 'attributes' => 'Atributos', 'attribute-families' => 'Familias de atributos', 'customers' => 'Clientes', + 'addresses' => 'Addresses', + 'note' => 'Note', 'groups' => 'Grupos', 'reviews' => 'Opiniones', 'newsletter-subscriptions' => 'Suscripciones a newsletter por correo', @@ -110,9 +115,12 @@ return [ 'taxes' => 'Impuestos', 'tax-categories' => 'Categorías de impuestos', 'tax-rates' => 'Tasas de impuestos', + 'view' => 'View', 'edit' => 'Editar', 'create' => 'Agregar', 'delete' => 'Borrar', + 'mass-delete' => 'Mass Delete', + 'mass-update' => 'Mass Update', 'marketing' => 'Marketing', 'promotions' => 'Promociones', 'cart-rules' => 'Reglas del carrito', @@ -1318,6 +1326,10 @@ return [ ], 'system' => [ 'catalog' => 'Catálogo', + 'homepage' => 'Homepage configuration', + 'allow-no-of-new-product-homepage' => 'Allowed No of New Product in Homepage', + 'allow-no-of-featured-product-homepage' => 'Allowed No of Featured Product in Homepage', + 'allow-out-of-stock-items' => 'Allow out of stock items', 'products' => 'Productos', 'guest-checkout' => 'Compras como invitado', 'allow-guest-checkout' => 'Permitir compras como invitado', diff --git a/packages/Webkul/Admin/src/Resources/lang/fa/app.php b/packages/Webkul/Admin/src/Resources/lang/fa/app.php index ef58c897f..20e79e8c8 100644 --- a/packages/Webkul/Admin/src/Resources/lang/fa/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/fa/app.php @@ -86,15 +86,20 @@ return [ 'acl' => [ 'dashboard' => 'داشبورد', 'sales' => 'فروش', + 'cancel' => 'Cancel', 'orders' => 'سفارشات', 'shipments' => 'حمل و نقل', 'invoices' => 'صورت حساب', + 'refunds' => 'Refunds', 'catalog' => 'کاتالوگ', 'products' => 'محصولات', + 'copy' => 'Copy', 'categories' => 'دسته بندی ها', 'attributes' => 'ویژگی ها', 'attribute-families' => 'ویژگی خانواده', 'customers' => 'مشتریان', + 'addresses' => 'Addresses', + 'note' => 'Note', 'groups' => 'گروه ها', 'reviews' => 'بررسی ها', 'newsletter-subscriptions' => 'اشتراک های خبرنامه', @@ -111,9 +116,12 @@ return [ 'taxes' => 'مالیات', 'tax-categories' => 'دسته بندی مالیات', 'tax-rates' => 'نرخ مالیات', + 'view' => 'View', 'edit' => 'ویاریش', 'create' => 'افزودن', 'delete' => 'حذف', + 'mass-delete' => 'Mass Delete', + 'mass-update' => 'Mass Update', 'marketing' => 'Marketing', 'promotions' => 'تبلیغات', 'cart-rules' => 'قوانین سبد خرید', @@ -1326,6 +1334,10 @@ return [ ], 'system' => [ 'catalog' => 'کاتالوگ', + 'homepage' => 'Homepage configuration', + 'allow-no-of-new-product-homepage' => 'Allowed No of New Product in Homepage', + 'allow-no-of-featured-product-homepage' => 'Allowed No of Featured Product in Homepage', + 'allow-out-of-stock-items' => 'Allow out of stock items', 'products' => 'محصولات', 'guest-checkout' => 'وارسی میهمان', 'allow-guest-checkout' => 'مجاز به پرداخت مهمان', diff --git a/packages/Webkul/Admin/src/Resources/lang/it/app.php b/packages/Webkul/Admin/src/Resources/lang/it/app.php index 0ddf943ec..edcf670f1 100644 --- a/packages/Webkul/Admin/src/Resources/lang/it/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/it/app.php @@ -86,15 +86,20 @@ return [ 'acl' => [ 'dashboard' => 'Dashboard', 'sales' => 'Vendite', + 'cancel' => 'Cancel', 'orders' => 'Ordini', 'shipments' => 'Spedizioni', 'invoices' => 'Fatture', + 'refunds' => 'Refunds', 'catalog' => 'Catalogo', 'products' => 'Prodotti', + 'copy' => 'Copy', 'categories' => 'Categorie', 'attributes' => 'Attributi', 'attribute-families' => 'Famiglie Attributi', 'customers' => 'Clienti', + 'addresses' => 'Addresses', + 'note' => 'Note', 'groups' => 'Gruppi', 'reviews' => 'Recensioni', 'newsletter-subscriptions' => 'Iscrizioni Newsletter', @@ -111,9 +116,12 @@ return [ 'taxes' => 'IVA', 'tax-categories' => 'Categorie IVA', 'tax-rates' => 'Aliquote IVA', + 'view' => 'View', 'edit' => 'Modifica', 'create' => 'Aggiungi', 'delete' => 'Elimina', + 'mass-delete' => 'Mass Delete', + 'mass-update' => 'Mass Update', 'marketing' => 'Marketing', 'promotions' => 'Promozioni', 'cart-rules' => 'Regole Carrello', @@ -1329,6 +1337,10 @@ return [ ], 'system' => [ 'catalog' => 'Catalogo', + 'homepage' => 'Homepage configuration', + 'allow-no-of-new-product-homepage' => 'Allowed No of New Product in Homepage', + 'allow-no-of-featured-product-homepage' => 'Allowed No of Featured Product in Homepage', + 'allow-out-of-stock-items' => 'Allow out of stock items', 'products' => 'Prodotti', 'guest-checkout' => 'Checkout come Ospite', 'allow-guest-checkout' => 'Consenti Checkout come Ospite', diff --git a/packages/Webkul/Admin/src/Resources/lang/nl/app.php b/packages/Webkul/Admin/src/Resources/lang/nl/app.php index 421a2db49..f14010008 100644 --- a/packages/Webkul/Admin/src/Resources/lang/nl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/nl/app.php @@ -86,15 +86,20 @@ return [ 'acl' => [ 'dashboard' => 'Dashboard', 'sales' => 'Verkopen', + 'cancel' => 'Cancel', 'orders' => 'Bestellingen', 'shipments' => 'Verzendingen', 'invoices' => 'Facturen', + 'refunds' => 'Refunds', 'catalog' => 'Catalogus', 'products' => 'Producten', + 'copy' => 'Copy', 'categories' => 'Categorieën', 'attributes' => 'Attributes', 'attribute-families' => 'Attribute Families', 'customers' => 'Klanten', + 'addresses' => 'Addresses', + 'note' => 'Note', 'groups' => 'Groepen', 'reviews' => 'Reviews', 'newsletter-subscriptions' => 'Newsletter Subscriptions', @@ -111,9 +116,12 @@ return [ 'taxes' => 'Belastingen', 'tax-categories' => 'Belasting categorieën', 'tax-rates' => 'BTW-tarieven', + 'view' => 'View', 'edit' => 'Edit', 'create' => 'Add', 'delete' => 'Verwijder', + 'mass-delete' => 'Mass Delete', + 'mass-update' => 'Mass Update', 'marketing' => 'Marketing', 'promotions' => 'Promoties', 'cart-rules' => 'Cart Rules', @@ -454,7 +462,7 @@ return [ 'refunded' => 'Teruggestort', 'date' => 'Refund Date', 'customer-name' => 'klantnaam', - 'status' => 'Toestand', + 'status' => 'Status', 'action' => 'Actie', 'view-title' => 'Terugbetaling #:refund_id', 'invalid-refund-amount-error' => 'Het restitutiebedrag mag niet nul zijn.' @@ -695,7 +703,7 @@ return [ 'save-btn-title' => 'Opslaan', 'description' => 'Description', 'active' => 'Actief', - 'status' => 'Toestand' + 'status' => 'Status' ] ] ], @@ -969,7 +977,7 @@ return [ 'addresses' => 'Addresses', 'mass-destroy-success' => 'Klanten zijn succesvol verwijderd', 'mass-update-success' => 'Klanten succesvol bijgewerkt', - 'status' => 'Toestand', + 'status' => 'Status', 'active' => 'Actief', 'inactive' => 'Niet geactiveerd' ], @@ -978,7 +986,7 @@ return [ 'title' => 'Recensies', 'edit-title' => 'Review bewerken', 'rating' => 'Beoordeling', - 'status' => 'Toestand', + 'status' => 'Status', 'comment' => 'Commentaar', 'pending' => 'In afwachting', 'approved' => 'Goedkeuren', @@ -1007,7 +1015,7 @@ return [ 'rule-information' => 'Regelinformatie', 'name' => 'Naam', 'description' => 'Beschrijving', - 'status' => 'Toestand', + 'status' => 'Status', 'is-active' => 'Winkelwagenregel is actief', 'channels' => 'Kanalen', 'customer-groups' => 'Klantengroepen', @@ -1093,7 +1101,7 @@ return [ 'rule-information' => 'Regelinformatie', 'name' => 'Naam', 'description' => 'Beschrijving', - 'status' => 'Toestand', + 'status' => 'Status', 'is-active' => 'Catalogusregel is actief', 'channels' => 'Kanalen', 'customer-groups' => 'Klantengroepen', @@ -1325,6 +1333,10 @@ return [ ], 'system' => [ 'catalog' => 'Catalogus', + 'homepage' => 'Homepage configuration', + 'allow-no-of-new-product-homepage' => 'Allowed No of New Product in Homepage', + 'allow-no-of-featured-product-homepage' => 'Allowed No of Featured Product in Homepage', + 'allow-out-of-stock-items' => 'Allow out of stock items', 'products' => 'Producten', 'guest-checkout' => 'Gast afrekenen', 'allow-guest-checkout' => 'Gast afrekenen toestaan', @@ -1352,8 +1364,8 @@ return [ 'title' => 'Titel', 'description' => 'Omschrijving', 'rate' => 'Tarief', - 'status' => 'Toestand', - 'calculate-tax' => 'Beregn skat', + 'status' => 'Status', + 'calculate-tax' => 'BTW berekenen', 'type' => 'Type', 'payment-methods' => 'Betaalmethodes', 'cash-on-delivery' => 'Rembours', diff --git a/packages/Webkul/Admin/src/Resources/lang/pl/app.php b/packages/Webkul/Admin/src/Resources/lang/pl/app.php index 899d8ba2e..126bf6551 100644 --- a/packages/Webkul/Admin/src/Resources/lang/pl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/pl/app.php @@ -85,15 +85,20 @@ return [ 'acl' => [ 'dashboard' => 'Kokpit', 'sales' => 'Sprzedaż', + 'cancel' => 'Cancel', 'orders' => 'Zamówienia', 'shipments' => 'przesyłki', 'invoices' => 'Faktury', + 'refunds' => 'Refunds', 'catalog' => 'Katalog', 'products' => 'Produkty', + 'copy' => 'Copy', 'categories' => 'Kategorie', 'attributes' => 'Atrybuty', 'attribute-families' => 'Rodziny atrybutów', 'customers' => 'Klienci', + 'addresses' => 'Addresses', + 'note' => 'Note', 'groups' => 'Grupy', 'reviews' => 'Recenzje', 'newsletter-subscriptions' => 'Subskrypcje newslettera', @@ -110,9 +115,12 @@ return [ 'taxes' => 'Podatki', 'tax-categories' => 'Kategorie podatkowe', 'tax-rates' => 'Stawki podatkowe', + 'view' => 'View', 'edit' => 'Edytuj', 'create' => 'Dodaj', 'delete' => 'Usuń', + 'mass-delete' => 'Mass Delete', + 'mass-update' => 'Mass Update', 'marketing' => 'Marketing', 'promotions' => 'Promocje', 'cart-rules' => 'Zasady koszyka', @@ -1326,6 +1334,10 @@ return [ ], 'system' => [ 'catalog' => 'Katalog', + 'homepage' => 'Homepage configuration', + 'allow-no-of-new-product-homepage' => 'Allowed No of New Product in Homepage', + 'allow-no-of-featured-product-homepage' => 'Allowed No of Featured Product in Homepage', + 'allow-out-of-stock-items' => 'Allow out of stock items', 'products' => 'Produkty', 'guest-checkout' => 'Zamówienia gości', 'allow-guest-checkout' => 'Zezwalaj na zamówienia gości', diff --git a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php index 26b1473cd..dbef8c404 100755 --- a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php @@ -86,15 +86,20 @@ return [ 'acl' => [ 'dashboard' => 'Dashboard', 'sales' => 'Vendas', + 'cancel' => 'Cancel', 'orders' => 'Pedidos', 'shipments' => 'Envios', 'invoices' => 'Faturas', + 'refunds' => 'Refunds', 'catalog' => 'Catálogos', 'products' => 'Produtos', + 'copy' => 'Copy', 'categories' => 'Categorias', 'attributes' => 'Atributos', 'attribute-families' => 'Famílias de Atributos', 'customers' => 'Clientes', + 'addresses' => 'Addresses', + 'note' => 'Note', 'groups' => 'Grupos', 'reviews' => 'Avaliações', 'newsletter-subscriptions' => 'Inscrições de Newsletter', @@ -111,9 +116,12 @@ return [ 'taxes' => 'Impostos', 'tax-categories' => 'Categorias de Impostos', 'tax-rates' => 'Impostos de Impostos', + 'view' => 'View', 'edit' => 'Edit', 'create' => 'Add', 'delete' => 'Delete', + 'mass-delete' => 'Mass Delete', + 'mass-update' => 'Mass Update', 'marketing' => 'Marketing', 'promotions' => 'Promoções', 'cart-rules' => 'Regras do Carrinho', @@ -1325,6 +1333,10 @@ return [ ], 'system' => [ 'catalog' => 'Catálogo', + 'homepage' => 'Homepage configuration', + 'allow-no-of-new-product-homepage' => 'Allowed No of New Product in Homepage', + 'allow-no-of-featured-product-homepage' => 'Allowed No of Featured Product in Homepage', + 'allow-out-of-stock-items' => 'Allow out of stock items', 'products' => 'Produtos', 'guest-checkout' => 'Compras sem cadastro?', 'allow-guest-checkout' => 'Permitir compra para clientes sem cadastros?', diff --git a/packages/Webkul/Admin/src/Resources/lang/tr/app.php b/packages/Webkul/Admin/src/Resources/lang/tr/app.php index 16fef768b..815b9af33 100644 --- a/packages/Webkul/Admin/src/Resources/lang/tr/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/tr/app.php @@ -84,15 +84,20 @@ return [ 'acl' => [ 'dashboard' => 'Panel', 'sales' => 'Satışlar', + 'cancel' => 'Cancel', 'orders' => 'Siparişler', 'shipments' => 'Teslimatlar', 'invoices' => 'Faturalar', + 'refunds' => 'Refunds', 'catalog' => 'Katalog', 'products' => 'Ürünler', + 'copy' => 'Copy', 'categories' => 'Kategoriler', 'attributes' => 'Nitelikler', 'attribute-families' => 'Nitelik Grupları', 'customers' => 'Müşteriler', + 'addresses' => 'Addresses', + 'note' => 'Note', 'groups' => 'Gruplar', 'reviews' => 'İncelemeler', 'newsletter-subscriptions' => 'Bülten Üyelikleri', @@ -109,9 +114,12 @@ return [ 'taxes' => 'Vergi', 'tax-categories' => 'Vergi Grupları', 'tax-rates' => 'Vergi Oranları', + 'view' => 'View', 'edit' => 'Düzenle', 'create' => 'Oluştur', 'delete' => 'Sil', + 'mass-delete' => 'Mass Delete', + 'mass-update' => 'Mass Update', 'marketing' => 'Marketing', 'promotions' => 'Promosyonlar', 'cart-rules' => 'Alışveriş Sepeti Kuralları', @@ -1313,6 +1321,10 @@ return [ ], 'system' => [ 'catalog' => 'Katalog', + 'homepage' => 'Homepage configuration', + 'allow-no-of-new-product-homepage' => 'Allowed No of New Product in Homepage', + 'allow-no-of-featured-product-homepage' => 'Allowed No of Featured Product in Homepage', + 'allow-out-of-stock-items' => 'Allow out of stock items', 'products' => 'Ürünler', 'guest-checkout' => 'Ziyaretçi Satışı', 'allow-guest-checkout' => 'Ziyaretçi Alımına İzin Ver', diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/customer-group-price.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/customer-group-price.blade.php index 3544aa44b..41242e2f1 100644 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/customer-group-price.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/customer-group-price.blade.php @@ -85,7 +85,7 @@