diff --git a/assets/app.js b/assets/js/app.js similarity index 92% rename from assets/app.js rename to assets/js/app.js index 846da8c..34150a8 100644 --- a/assets/app.js +++ b/assets/js/app.js @@ -6,7 +6,7 @@ */ // any CSS you import will output into a single css file (app.scss in this case) -import './styles/app.scss'; +import '../styles/app.scss'; import 'bootstrap'; diff --git a/assets/js/book.js b/assets/js/book.js new file mode 100644 index 0000000..e9d166b --- /dev/null +++ b/assets/js/book.js @@ -0,0 +1,7 @@ +import Vue from 'vue'; +import Book from './pages/book' +import App from "./pages/files"; + +Vue.component('Book', Book); + +new Vue().$mount('#app'); \ No newline at end of file diff --git a/assets/bootstrap.js b/assets/js/bootstrap.js similarity index 83% rename from assets/bootstrap.js rename to assets/js/bootstrap.js index 4ab2df6..a1d8e69 100644 --- a/assets/bootstrap.js +++ b/assets/js/bootstrap.js @@ -2,7 +2,7 @@ import { startStimulusApp } from '@symfony/stimulus-bridge'; // Registers Stimulus controllers from controllers.json and in the controllers/ directory export const app = startStimulusApp(require.context( - '@symfony/stimulus-bridge/lazy-controller-loader!./controllers', + '@symfony/stimulus-bridge/lazy-controller-loader!../controllers', true, /\.[jt]sx?$/ )); diff --git a/assets/js/components/bookform.vue b/assets/js/components/bookform.vue new file mode 100644 index 0000000..7c71b32 --- /dev/null +++ b/assets/js/components/bookform.vue @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/assets/js/components/message.vue b/assets/js/components/message.vue new file mode 100644 index 0000000..240b41d --- /dev/null +++ b/assets/js/components/message.vue @@ -0,0 +1,11 @@ + + + \ No newline at end of file diff --git a/assets/files.js b/assets/js/files.js similarity index 52% rename from assets/files.js rename to assets/js/files.js index 137e63b..4bfbd44 100644 --- a/assets/files.js +++ b/assets/js/files.js @@ -2,6 +2,4 @@ import Vue from 'vue'; import App from './pages/files' -new Vue({ - render: h => h(App) -}).$mount('#app'); \ No newline at end of file +new Vue().$mount('#app'); \ No newline at end of file diff --git a/assets/js/pages/book.vue b/assets/js/pages/book.vue new file mode 100644 index 0000000..13e60f7 --- /dev/null +++ b/assets/js/pages/book.vue @@ -0,0 +1,75 @@ + + + \ No newline at end of file diff --git a/assets/js/pages/files.vue b/assets/js/pages/files.vue new file mode 100644 index 0000000..034d88e --- /dev/null +++ b/assets/js/pages/files.vue @@ -0,0 +1,24 @@ + + + \ No newline at end of file diff --git a/assets/pages/files.vue b/assets/pages/files.vue deleted file mode 100644 index 9a975c1..0000000 --- a/assets/pages/files.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - \ No newline at end of file diff --git a/assets/styles/app.scss b/assets/styles/app.scss index 124acc9..d266a63 100644 --- a/assets/styles/app.scss +++ b/assets/styles/app.scss @@ -1,5 +1,13 @@ @import "~bootstrap"; body { - background-color: lightblue !important; + //background-color: lightblue !important; } + +.cursor-pointer { + cursor: pointer; +} + +.book-search-item:hover { + background-color: $light; +} \ No newline at end of file diff --git a/composer.json b/composer.json index f42969b..7f2d052 100644 --- a/composer.json +++ b/composer.json @@ -44,6 +44,7 @@ "symfony/webapp-meta": "^1.0", "symfony/webpack-encore-bundle": "^1.14", "symfony/yaml": "6.0.*", + "techtube/bookinfo": "1.*", "twig/extra-bundle": "^2.12|^3.0", "twig/twig": "^2.12|^3.0" }, @@ -103,5 +104,9 @@ "symfony/maker-bundle": "^1.0", "symfony/stopwatch": "6.0.*", "symfony/web-profiler-bundle": "6.0.*" - } + }, + "repositories": [{ + "type": "composer", + "url": "https://satis.techtube.pl" + }] } diff --git a/composer.lock b/composer.lock index 975f64b..f18c8c9 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": "362ad2a1bf9eadbf721181c28c57b7cf", + "content-hash": "2eef8acf0a01cf89e1edb8087c4d2ac3", "packages": [ { "name": "doctrine/annotations", @@ -80,16 +80,16 @@ }, { "name": "doctrine/cache", - "version": "2.1.1", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce" + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/331b4d5dbaeab3827976273e9356b3b453c300ce", - "reference": "331b4d5dbaeab3827976273e9356b3b453c300ce", + "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", "shasum": "" }, "require": { @@ -99,18 +99,12 @@ "doctrine/common": ">2.2,<2.4" }, "require-dev": { - "alcaeus/mongo-php-adapter": "^1.1", "cache/integration-tests": "dev-master", - "doctrine/coding-standard": "^8.0", - "mongodb/mongodb": "^1.1", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "predis/predis": "~1.0", + "doctrine/coding-standard": "^9", + "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", "psr/cache": "^1.0 || ^2.0 || ^3.0", - "symfony/cache": "^4.4 || ^5.2 || ^6.0@dev", - "symfony/var-exporter": "^4.4 || ^5.2 || ^6.0@dev" - }, - "suggest": { - "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" + "symfony/cache": "^4.4 || ^5.4 || ^6", + "symfony/var-exporter": "^4.4 || ^5.4 || ^6" }, "type": "library", "autoload": { @@ -159,7 +153,7 @@ ], "support": { "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/2.1.1" + "source": "https://github.com/doctrine/cache/tree/2.2.0" }, "funding": [ { @@ -175,7 +169,7 @@ "type": "tidelift" } ], - "time": "2021-07-17T14:49:29+00:00" + "time": "2022-05-20T20:07:39+00:00" }, { "name": "doctrine/collections", @@ -1531,6 +1525,381 @@ ], "time": "2022-05-05T09:31:05+00:00" }, + { + "name": "guzzlehttp/guzzle", + "version": "7.4.3", + "source": { + "type": "git", + "url": "https://github.com/guzzle/guzzle.git", + "reference": "74a8602c6faec9ef74b7a9391ac82c5e65b1cdab" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/74a8602c6faec9ef74b7a9391ac82c5e65b1cdab", + "reference": "74a8602c6faec9ef74b7a9391ac82c5e65b1cdab", + "shasum": "" + }, + "require": { + "ext-json": "*", + "guzzlehttp/promises": "^1.5", + "guzzlehttp/psr7": "^1.8.3 || ^2.1", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0", + "symfony/deprecation-contracts": "^2.2 || ^3.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "ext-curl": "*", + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.5.5 || ^9.3.5", + "psr/log": "^1.1 || ^2.0 || ^3.0" + }, + "suggest": { + "ext-curl": "Required for CURL handler support", + "ext-intl": "Required for Internationalized Domain Name (IDN) support", + "psr/log": "Required for using the Log middleware" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "7.4-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Jeremy Lindblom", + "email": "jeremeamia@gmail.com", + "homepage": "https://github.com/jeremeamia" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle is a PHP HTTP client library", + "keywords": [ + "client", + "curl", + "framework", + "http", + "http client", + "psr-18", + "psr-7", + "rest", + "web service" + ], + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.4.3" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle", + "type": "tidelift" + } + ], + "time": "2022-05-25T13:24:33+00:00" + }, + { + "name": "guzzlehttp/promises", + "version": "1.5.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/promises.git", + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/promises/zipball/fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "reference": "fe752aedc9fd8fcca3fe7ad05d419d32998a06da", + "shasum": "" + }, + "require": { + "php": ">=5.5" + }, + "require-dev": { + "symfony/phpunit-bridge": "^4.4 || ^5.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.5-dev" + } + }, + "autoload": { + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + } + ], + "description": "Guzzle promises library", + "keywords": [ + "promise" + ], + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.5.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises", + "type": "tidelift" + } + ], + "time": "2021-10-22T20:56:57+00:00" + }, + { + "name": "guzzlehttp/psr7", + "version": "2.2.1", + "source": { + "type": "git", + "url": "https://github.com/guzzle/psr7.git", + "reference": "c94a94f120803a18554c1805ef2e539f8285f9a2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/c94a94f120803a18554c1805ef2e539f8285f9a2", + "reference": "c94a94f120803a18554c1805ef2e539f8285f9a2", + "shasum": "" + }, + "require": { + "php": "^7.2.5 || ^8.0", + "psr/http-factory": "^1.0", + "psr/http-message": "^1.0", + "ralouphie/getallheaders": "^3.0" + }, + "provide": { + "psr/http-factory-implementation": "1.0", + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", + "http-interop/http-factory-tests": "^0.9", + "phpunit/phpunit": "^8.5.8 || ^9.3.10" + }, + "suggest": { + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.2-dev" + } + }, + "autoload": { + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Graham Campbell", + "email": "hello@gjcampbell.co.uk", + "homepage": "https://github.com/GrahamCampbell" + }, + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + }, + { + "name": "George Mponos", + "email": "gmponos@gmail.com", + "homepage": "https://github.com/gmponos" + }, + { + "name": "Tobias Nyholm", + "email": "tobias.nyholm@gmail.com", + "homepage": "https://github.com/Nyholm" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://github.com/sagikazarmark" + }, + { + "name": "Tobias Schultze", + "email": "webmaster@tubo-world.de", + "homepage": "https://github.com/Tobion" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" + } + ], + "description": "PSR-7 message implementation that also provides common utility methods", + "keywords": [ + "http", + "message", + "psr-7", + "request", + "response", + "stream", + "uri", + "url" + ], + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/2.2.1" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7", + "type": "tidelift" + } + ], + "time": "2022-03-20T21:55:58+00:00" + }, + { + "name": "imangazaliev/didom", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/Imangazaliev/DiDOM.git", + "reference": "87f7089d95aef7fd09dc68826cfa245b90f3040b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Imangazaliev/DiDOM/zipball/87f7089d95aef7fd09dc68826cfa245b90f3040b", + "reference": "87f7089d95aef7fd09dc68826cfa245b90f3040b", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-iconv": "*", + "php": ">=7.2" + }, + "require-dev": { + "phpunit/phpunit": "^8.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "DiDom\\": "src/DiDom/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Imangazaliev Muhammad", + "email": "imangazalievm@gmail.com" + } + ], + "description": "Simple and fast HTML parser", + "homepage": "https://github.com/Imangazaliev/DiDOM", + "keywords": [ + "didom", + "html", + "parser", + "xml" + ], + "support": { + "issues": "https://github.com/Imangazaliev/DiDOM/issues", + "source": "https://github.com/Imangazaliev/DiDOM/tree/2.0" + }, + "time": "2022-05-08T01:48:13+00:00" + }, { "name": "laminas/laminas-code", "version": "4.5.1", @@ -2057,6 +2426,166 @@ }, "time": "2019-01-08T18:20:26+00:00" }, + { + "name": "psr/http-client", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client/tree/master" + }, + "time": "2020-06-29T06:28:15+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "reference": "12ac7fcd07e5b077433f5f2bee95b3a771bf61be", + "shasum": "" + }, + "require": { + "php": ">=7.0.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory/tree/master" + }, + "time": "2019-04-30T12:38:16+00:00" + }, + { + "name": "psr/http-message", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/f6561bf28d520154e4b0ec72be95418abe6d9363", + "reference": "f6561bf28d520154e4b0ec72be95418abe6d9363", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, + "time": "2016-08-06T14:39:51+00:00" + }, { "name": "psr/link", "version": "2.0.1", @@ -2163,6 +2692,50 @@ }, "time": "2021-07-14T16:46:02+00:00" }, + { + "name": "ralouphie/getallheaders", + "version": "3.0.3", + "source": { + "type": "git", + "url": "https://github.com/ralouphie/getallheaders.git", + "reference": "120b605dfeb996808c31b6477290a714d356e822" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822", + "reference": "120b605dfeb996808c31b6477290a714d356e822", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5 || ^6.5" + }, + "type": "library", + "autoload": { + "files": [ + "src/getallheaders.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ralph Khattar", + "email": "ralph.khattar@gmail.com" + } + ], + "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, + "time": "2019-03-08T08:55:37+00:00" + }, { "name": "sensio/framework-extra-bundle", "version": "v6.2.6", @@ -2341,16 +2914,16 @@ }, { "name": "symfony/cache", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "e9a4e9229f078d93f2c492ea30c3f010373312b7" + "reference": "6cc467d38eca15ab0efb4d927b00b6f9e9bd8c73" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/e9a4e9229f078d93f2c492ea30c3f010373312b7", - "reference": "e9a4e9229f078d93f2c492ea30c3f010373312b7", + "url": "https://api.github.com/repos/symfony/cache/zipball/6cc467d38eca15ab0efb4d927b00b6f9e9bd8c73", + "reference": "6cc467d38eca15ab0efb4d927b00b6f9e9bd8c73", "shasum": "" }, "require": { @@ -2414,7 +2987,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.0.8" + "source": "https://github.com/symfony/cache/tree/v6.0.9" }, "funding": [ { @@ -2430,7 +3003,7 @@ "type": "tidelift" } ], - "time": "2022-04-26T13:22:23+00:00" + "time": "2022-05-21T13:33:31+00:00" }, { "name": "symfony/cache-contracts", @@ -2513,16 +3086,16 @@ }, { "name": "symfony/config", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "6ac50d559aa64c8e7b5b17640c46241e4accb487" + "reference": "9c40f44bc38d91aeefbcdd1d42609033984ce062" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/6ac50d559aa64c8e7b5b17640c46241e4accb487", - "reference": "6ac50d559aa64c8e7b5b17640c46241e4accb487", + "url": "https://api.github.com/repos/symfony/config/zipball/9c40f44bc38d91aeefbcdd1d42609033984ce062", + "reference": "9c40f44bc38d91aeefbcdd1d42609033984ce062", "shasum": "" }, "require": { @@ -2571,7 +3144,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v6.0.8" + "source": "https://github.com/symfony/config/tree/v6.0.9" }, "funding": [ { @@ -2587,20 +3160,20 @@ "type": "tidelift" } ], - "time": "2022-04-12T16:11:42+00:00" + "time": "2022-05-17T12:08:13+00:00" }, { "name": "symfony/console", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "0d00aa289215353aa8746a31d101f8e60826285c" + "reference": "9b190bc7a19d19add1dbb3382721973836e59b50" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/0d00aa289215353aa8746a31d101f8e60826285c", - "reference": "0d00aa289215353aa8746a31d101f8e60826285c", + "url": "https://api.github.com/repos/symfony/console/zipball/9b190bc7a19d19add1dbb3382721973836e59b50", + "reference": "9b190bc7a19d19add1dbb3382721973836e59b50", "shasum": "" }, "require": { @@ -2666,7 +3239,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.0.8" + "source": "https://github.com/symfony/console/tree/v6.0.9" }, "funding": [ { @@ -2682,20 +3255,20 @@ "type": "tidelift" } ], - "time": "2022-04-20T15:01:42+00:00" + "time": "2022-05-27T06:40:13+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "571041cd7e765664cc527b461ee41be3013aa08e" + "reference": "eb0945f285285861a6a6b95b8e7f5881680c0d75" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/571041cd7e765664cc527b461ee41be3013aa08e", - "reference": "571041cd7e765664cc527b461ee41be3013aa08e", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/eb0945f285285861a6a6b95b8e7f5881680c0d75", + "reference": "eb0945f285285861a6a6b95b8e7f5881680c0d75", "shasum": "" }, "require": { @@ -2754,7 +3327,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.0.8" + "source": "https://github.com/symfony/dependency-injection/tree/v6.0.9" }, "funding": [ { @@ -2770,7 +3343,7 @@ "type": "tidelift" } ], - "time": "2022-04-26T13:22:23+00:00" + "time": "2022-05-27T06:40:13+00:00" }, { "name": "symfony/deprecation-contracts", @@ -2841,16 +3414,16 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "0f5320648511f7bdb65e3986dd8a0546144eefbb" + "reference": "34599e7deb63ec68ad72e206c2401a5448249783" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/0f5320648511f7bdb65e3986dd8a0546144eefbb", - "reference": "0f5320648511f7bdb65e3986dd8a0546144eefbb", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/34599e7deb63ec68ad72e206c2401a5448249783", + "reference": "34599e7deb63ec68ad72e206c2401a5448249783", "shasum": "" }, "require": { @@ -2889,7 +3462,7 @@ "symfony/dependency-injection": "^5.4|^6.0", "symfony/doctrine-messenger": "^5.4|^6.0", "symfony/expression-language": "^5.4|^6.0", - "symfony/form": "^5.4|^6.0", + "symfony/form": "^5.4.9|^6.0.9", "symfony/http-kernel": "^5.4|^6.0", "symfony/messenger": "^5.4|^6.0", "symfony/property-access": "^5.4|^6.0", @@ -2936,7 +3509,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v6.0.8" + "source": "https://github.com/symfony/doctrine-bridge/tree/v6.0.9" }, "funding": [ { @@ -2952,7 +3525,7 @@ "type": "tidelift" } ], - "time": "2022-04-22T08:18:02+00:00" + "time": "2022-05-27T06:30:15+00:00" }, { "name": "symfony/doctrine-messenger", @@ -3098,16 +3671,16 @@ }, { "name": "symfony/error-handler", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "5e2795163acbd13b3cd46835c9f8f6c5d0a3a280" + "reference": "732ca203b3222cde3378d5ddf5e2883211acc53e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/5e2795163acbd13b3cd46835c9f8f6c5d0a3a280", - "reference": "5e2795163acbd13b3cd46835c9f8f6c5d0a3a280", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/732ca203b3222cde3378d5ddf5e2883211acc53e", + "reference": "732ca203b3222cde3378d5ddf5e2883211acc53e", "shasum": "" }, "require": { @@ -3149,7 +3722,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v6.0.8" + "source": "https://github.com/symfony/error-handler/tree/v6.0.9" }, "funding": [ { @@ -3165,20 +3738,20 @@ "type": "tidelift" } ], - "time": "2022-04-12T16:11:42+00:00" + "time": "2022-05-23T10:32:42+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v6.0.3", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934" + "reference": "5c85b58422865d42c6eb46f7693339056db098a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/6472ea2dd415e925b90ca82be64b8bc6157f3934", - "reference": "6472ea2dd415e925b90ca82be64b8bc6157f3934", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/5c85b58422865d42c6eb46f7693339056db098a8", + "reference": "5c85b58422865d42c6eb46f7693339056db098a8", "shasum": "" }, "require": { @@ -3232,7 +3805,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.3" + "source": "https://github.com/symfony/event-dispatcher/tree/v6.0.9" }, "funding": [ { @@ -3248,7 +3821,7 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:55:41+00:00" + "time": "2022-05-05T16:45:52+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -3394,16 +3967,16 @@ }, { "name": "symfony/filesystem", - "version": "v6.0.7", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff" + "reference": "bf7b9d2ee692b6df2a41017d6023a2fe732d240c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff", - "reference": "6c9e4c41f2c51dfde3db298594ed9cba55dbf5ff", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/bf7b9d2ee692b6df2a41017d6023a2fe732d240c", + "reference": "bf7b9d2ee692b6df2a41017d6023a2fe732d240c", "shasum": "" }, "require": { @@ -3437,7 +4010,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.0.7" + "source": "https://github.com/symfony/filesystem/tree/v6.0.9" }, "funding": [ { @@ -3453,7 +4026,7 @@ "type": "tidelift" } ], - "time": "2022-04-01T12:54:51+00:00" + "time": "2022-05-21T13:33:31+00:00" }, { "name": "symfony/finder", @@ -3583,16 +4156,16 @@ }, { "name": "symfony/form", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "fcc661f2eef31f556306c74829c02d8ca724495f" + "reference": "1017571f33d85adf174652989723a12d96db889e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/fcc661f2eef31f556306c74829c02d8ca724495f", - "reference": "fcc661f2eef31f556306c74829c02d8ca724495f", + "url": "https://api.github.com/repos/symfony/form/zipball/1017571f33d85adf174652989723a12d96db889e", + "reference": "1017571f33d85adf174652989723a12d96db889e", "shasum": "" }, "require": { @@ -3665,7 +4238,7 @@ "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/form/tree/v6.0.8" + "source": "https://github.com/symfony/form/tree/v6.0.9" }, "funding": [ { @@ -3681,20 +4254,20 @@ "type": "tidelift" } ], - "time": "2022-04-23T15:25:26+00:00" + "time": "2022-05-21T21:15:40+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "94b0bde3cb679a683203864f02a3149e8c0cc54f" + "reference": "9fac94a31bcf79f9aa0e25074392c165844d66d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/94b0bde3cb679a683203864f02a3149e8c0cc54f", - "reference": "94b0bde3cb679a683203864f02a3149e8c0cc54f", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/9fac94a31bcf79f9aa0e25074392c165844d66d5", + "reference": "9fac94a31bcf79f9aa0e25074392c165844d66d5", "shasum": "" }, "require": { @@ -3749,7 +4322,7 @@ "phpdocumentor/reflection-docblock": "^3.0|^4.0|^5.0", "symfony/asset": "^5.4|^6.0", "symfony/browser-kit": "^5.4|^6.0", - "symfony/console": "^5.4|^6.0", + "symfony/console": "^5.4.9|^6.0.9", "symfony/css-selector": "^5.4|^6.0", "symfony/dom-crawler": "^5.4|^6.0", "symfony/dotenv": "^5.4|^6.0", @@ -3813,7 +4386,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v6.0.8" + "source": "https://github.com/symfony/framework-bundle/tree/v6.0.9" }, "funding": [ { @@ -3829,20 +4402,20 @@ "type": "tidelift" } ], - "time": "2022-04-26T13:36:14+00:00" + "time": "2022-05-27T06:30:15+00:00" }, { "name": "symfony/http-client", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "d347895193283e08b4c3ebf2f2974a1df3e1f670" + "reference": "3c6fc53a3deed2d3c1825d41ad8b3f23a6b038b5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/d347895193283e08b4c3ebf2f2974a1df3e1f670", - "reference": "d347895193283e08b4c3ebf2f2974a1df3e1f670", + "url": "https://api.github.com/repos/symfony/http-client/zipball/3c6fc53a3deed2d3c1825d41ad8b3f23a6b038b5", + "reference": "3c6fc53a3deed2d3c1825d41ad8b3f23a6b038b5", "shasum": "" }, "require": { @@ -3897,7 +4470,7 @@ "description": "Provides powerful methods to fetch HTTP resources synchronously or asynchronously", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-client/tree/v6.0.8" + "source": "https://github.com/symfony/http-client/tree/v6.0.9" }, "funding": [ { @@ -3913,7 +4486,7 @@ "type": "tidelift" } ], - "time": "2022-04-12T16:11:42+00:00" + "time": "2022-05-21T13:33:31+00:00" }, { "name": "symfony/http-client-contracts", @@ -3995,16 +4568,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "c9c86b02d7ef6f44f3154acc7de42831518afe7c" + "reference": "05abe9aab47decfd793632787d0c6a25268e2a5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/c9c86b02d7ef6f44f3154acc7de42831518afe7c", - "reference": "c9c86b02d7ef6f44f3154acc7de42831518afe7c", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/05abe9aab47decfd793632787d0c6a25268e2a5b", + "reference": "05abe9aab47decfd793632787d0c6a25268e2a5b", "shasum": "" }, "require": { @@ -4047,7 +4620,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v6.0.8" + "source": "https://github.com/symfony/http-foundation/tree/v6.0.9" }, "funding": [ { @@ -4063,20 +4636,20 @@ "type": "tidelift" } ], - "time": "2022-04-22T08:18:02+00:00" + "time": "2022-05-21T13:33:31+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "7aaf1cdc9cc2ad47e926f624efcb679883a39ca7" + "reference": "e78407f2a7b683fd1269057aa39355d77ddbcff9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/7aaf1cdc9cc2ad47e926f624efcb679883a39ca7", - "reference": "7aaf1cdc9cc2ad47e926f624efcb679883a39ca7", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/e78407f2a7b683fd1269057aa39355d77ddbcff9", + "reference": "e78407f2a7b683fd1269057aa39355d77ddbcff9", "shasum": "" }, "require": { @@ -4156,7 +4729,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v6.0.8" + "source": "https://github.com/symfony/http-kernel/tree/v6.0.9" }, "funding": [ { @@ -4172,7 +4745,7 @@ "type": "tidelift" } ], - "time": "2022-04-27T17:26:02+00:00" + "time": "2022-05-27T07:14:30+00:00" }, { "name": "symfony/intl", @@ -4415,16 +4988,16 @@ }, { "name": "symfony/mime", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "c1701e88ad0ca49fc6ad6cdf360bc0e1209fb5e1" + "reference": "e17bae63d437b3e21942dcc47ccca802d3573dd8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/c1701e88ad0ca49fc6ad6cdf360bc0e1209fb5e1", - "reference": "c1701e88ad0ca49fc6ad6cdf360bc0e1209fb5e1", + "url": "https://api.github.com/repos/symfony/mime/zipball/e17bae63d437b3e21942dcc47ccca802d3573dd8", + "reference": "e17bae63d437b3e21942dcc47ccca802d3573dd8", "shasum": "" }, "require": { @@ -4476,7 +5049,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.0.8" + "source": "https://github.com/symfony/mime/tree/v6.0.9" }, "funding": [ { @@ -4492,7 +5065,7 @@ "type": "tidelift" } ], - "time": "2022-04-12T16:11:42+00:00" + "time": "2022-05-21T13:33:31+00:00" }, { "name": "symfony/monolog-bridge", @@ -5515,16 +6088,16 @@ }, { "name": "symfony/property-info", - "version": "v6.0.7", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "0f26f0870f05d65d5c06681ecbf36e546204f4b5" + "reference": "f6ca518cee8cac7e1e1a3f922a5731ab866b9b0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/0f26f0870f05d65d5c06681ecbf36e546204f4b5", - "reference": "0f26f0870f05d65d5c06681ecbf36e546204f4b5", + "url": "https://api.github.com/repos/symfony/property-info/zipball/f6ca518cee8cac7e1e1a3f922a5731ab866b9b0b", + "reference": "f6ca518cee8cac7e1e1a3f922a5731ab866b9b0b", "shasum": "" }, "require": { @@ -5584,7 +6157,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v6.0.7" + "source": "https://github.com/symfony/property-info/tree/v6.0.9" }, "funding": [ { @@ -5600,7 +6173,7 @@ "type": "tidelift" } ], - "time": "2022-03-31T17:18:25+00:00" + "time": "2022-05-17T09:49:29+00:00" }, { "name": "symfony/proxy-manager-bridge", @@ -5834,16 +6407,16 @@ }, { "name": "symfony/security-bundle", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "56a9b0991479bef39bac12c69efe8c0fada91809" + "reference": "3910a5719d8a72634fef69699edcaf07aebe403c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/56a9b0991479bef39bac12c69efe8c0fada91809", - "reference": "56a9b0991479bef39bac12c69efe8c0fada91809", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/3910a5719d8a72634fef69699edcaf07aebe403c", + "reference": "3910a5719d8a72634fef69699edcaf07aebe403c", "shasum": "" }, "require": { @@ -5914,7 +6487,7 @@ "description": "Provides a tight integration of the Security component into the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-bundle/tree/v6.0.8" + "source": "https://github.com/symfony/security-bundle/tree/v6.0.9" }, "funding": [ { @@ -5930,7 +6503,7 @@ "type": "tidelift" } ], - "time": "2022-04-20T15:35:19+00:00" + "time": "2022-05-23T10:32:42+00:00" }, { "name": "symfony/security-core", @@ -6025,16 +6598,16 @@ }, { "name": "symfony/security-csrf", - "version": "v6.0.3", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/security-csrf.git", - "reference": "fcf01e56fba0e7843da3205b9d05e4e86d3ef1f9" + "reference": "5a48bfb3ba3a4e139d8184ca1005c00d8b8e4dc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-csrf/zipball/fcf01e56fba0e7843da3205b9d05e4e86d3ef1f9", - "reference": "fcf01e56fba0e7843da3205b9d05e4e86d3ef1f9", + "url": "https://api.github.com/repos/symfony/security-csrf/zipball/5a48bfb3ba3a4e139d8184ca1005c00d8b8e4dc0", + "reference": "5a48bfb3ba3a4e139d8184ca1005c00d8b8e4dc0", "shasum": "" }, "require": { @@ -6076,7 +6649,7 @@ "description": "Symfony Security Component - CSRF Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-csrf/tree/v6.0.3" + "source": "https://github.com/symfony/security-csrf/tree/v6.0.9" }, "funding": [ { @@ -6092,20 +6665,20 @@ "type": "tidelift" } ], - "time": "2022-01-02T09:55:41+00:00" + "time": "2022-05-14T12:52:12+00:00" }, { "name": "symfony/security-http", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "d45240c9acffb9562e9194ffaeac679b6c8af589" + "reference": "94c5f8da5ad5b823b2777926c093b56ae576f5fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/d45240c9acffb9562e9194ffaeac679b6c8af589", - "reference": "d45240c9acffb9562e9194ffaeac679b6c8af589", + "url": "https://api.github.com/repos/symfony/security-http/zipball/94c5f8da5ad5b823b2777926c093b56ae576f5fb", + "reference": "94c5f8da5ad5b823b2777926c093b56ae576f5fb", "shasum": "" }, "require": { @@ -6159,7 +6732,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v6.0.8" + "source": "https://github.com/symfony/security-http/tree/v6.0.9" }, "funding": [ { @@ -6175,20 +6748,20 @@ "type": "tidelift" } ], - "time": "2022-04-17T11:31:42+00:00" + "time": "2022-05-14T12:52:12+00:00" }, { "name": "symfony/serializer", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "76b9a43c4295ced6d5f43208ba858325d8f61f30" + "reference": "cd209717fce097ed002a218cbd9be9d56ed53e78" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/76b9a43c4295ced6d5f43208ba858325d8f61f30", - "reference": "76b9a43c4295ced6d5f43208ba858325d8f61f30", + "url": "https://api.github.com/repos/symfony/serializer/zipball/cd209717fce097ed002a218cbd9be9d56ed53e78", + "reference": "cd209717fce097ed002a218cbd9be9d56ed53e78", "shasum": "" }, "require": { @@ -6260,7 +6833,7 @@ "description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/serializer/tree/v6.0.8" + "source": "https://github.com/symfony/serializer/tree/v6.0.9" }, "funding": [ { @@ -6276,7 +6849,7 @@ "type": "tidelift" } ], - "time": "2022-04-12T16:11:42+00:00" + "time": "2022-05-10T09:19:38+00:00" }, { "name": "symfony/service-contracts", @@ -6424,16 +6997,16 @@ }, { "name": "symfony/string", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "ac0aa5c2282e0de624c175b68d13f2c8f2e2649d" + "reference": "df9f03d595aa2d446498ba92fe803a519b2c43cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/ac0aa5c2282e0de624c175b68d13f2c8f2e2649d", - "reference": "ac0aa5c2282e0de624c175b68d13f2c8f2e2649d", + "url": "https://api.github.com/repos/symfony/string/zipball/df9f03d595aa2d446498ba92fe803a519b2c43cc", + "reference": "df9f03d595aa2d446498ba92fe803a519b2c43cc", "shasum": "" }, "require": { @@ -6489,7 +7062,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.0.8" + "source": "https://github.com/symfony/string/tree/v6.0.9" }, "funding": [ { @@ -6509,16 +7082,16 @@ }, { "name": "symfony/translation", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "3d38cf8f8834148c4457681d539bc204de701501" + "reference": "9ba011309943955a3807b8236c17cff3b88f67b6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/3d38cf8f8834148c4457681d539bc204de701501", - "reference": "3d38cf8f8834148c4457681d539bc204de701501", + "url": "https://api.github.com/repos/symfony/translation/zipball/9ba011309943955a3807b8236c17cff3b88f67b6", + "reference": "9ba011309943955a3807b8236c17cff3b88f67b6", "shasum": "" }, "require": { @@ -6584,7 +7157,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.0.8" + "source": "https://github.com/symfony/translation/tree/v6.0.9" }, "funding": [ { @@ -6600,7 +7173,7 @@ "type": "tidelift" } ], - "time": "2022-04-22T08:18:02+00:00" + "time": "2022-05-06T14:27:17+00:00" }, { "name": "symfony/translation-contracts", @@ -6682,16 +7255,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "c0dc7766aaa59b9191930f722532454e5df4d203" + "reference": "5208e87aa1ad1405cd10e207b73f2f355cfbb123" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/c0dc7766aaa59b9191930f722532454e5df4d203", - "reference": "c0dc7766aaa59b9191930f722532454e5df4d203", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/5208e87aa1ad1405cd10e207b73f2f355cfbb123", + "reference": "5208e87aa1ad1405cd10e207b73f2f355cfbb123", "shasum": "" }, "require": { @@ -6782,7 +7355,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.0.8" + "source": "https://github.com/symfony/twig-bridge/tree/v6.0.9" }, "funding": [ { @@ -6798,7 +7371,7 @@ "type": "tidelift" } ], - "time": "2022-04-12T16:11:42+00:00" + "time": "2022-05-21T13:33:31+00:00" }, { "name": "symfony/twig-bundle", @@ -6997,16 +7570,16 @@ }, { "name": "symfony/var-dumper", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "fa61dfb4bd3068df2492013dc65f3190e9f550c0" + "reference": "ac81072464221e73ee994d12f0b8a2af4a9ed798" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/fa61dfb4bd3068df2492013dc65f3190e9f550c0", - "reference": "fa61dfb4bd3068df2492013dc65f3190e9f550c0", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/ac81072464221e73ee994d12f0b8a2af4a9ed798", + "reference": "ac81072464221e73ee994d12f0b8a2af4a9ed798", "shasum": "" }, "require": { @@ -7065,7 +7638,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.0.8" + "source": "https://github.com/symfony/var-dumper/tree/v6.0.9" }, "funding": [ { @@ -7081,20 +7654,20 @@ "type": "tidelift" } ], - "time": "2022-04-26T13:22:23+00:00" + "time": "2022-05-21T13:33:31+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.0.8", + "version": "v6.0.9", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "74b272979a490747c6775b0228d06cf246306a99" + "reference": "51c9947398d4f87f0b5a861999534a95afcd971e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/74b272979a490747c6775b0228d06cf246306a99", - "reference": "74b272979a490747c6775b0228d06cf246306a99", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/51c9947398d4f87f0b5a861999534a95afcd971e", + "reference": "51c9947398d4f87f0b5a861999534a95afcd971e", "shasum": "" }, "require": { @@ -7137,7 +7710,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.0.8" + "source": "https://github.com/symfony/var-exporter/tree/v6.0.9" }, "funding": [ { @@ -7153,7 +7726,7 @@ "type": "tidelift" } ], - "time": "2022-04-26T13:22:23+00:00" + "time": "2022-05-21T13:33:31+00:00" }, { "name": "symfony/web-link", @@ -7426,6 +7999,39 @@ ], "time": "2022-01-26T17:23:29+00:00" }, + { + "name": "techtube/bookinfo", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://git.techtube.pl/krzysiej/bookinfo", + "reference": "293a776d16070a46dd1637296d8d195049cf489e" + }, + "dist": { + "type": "zip", + "url": "https://satis.techtube.pl/dist/techtube/bookinfo/techtube-bookinfo-1.0.3-dc21bb.zip", + "reference": "293a776d16070a46dd1637296d8d195049cf489e", + "shasum": "3a9be8ef18ad44f658af43e4010a2ca9f2605659" + }, + "require": { + "guzzlehttp/guzzle": "^7.4", + "imangazaliev/didom": "^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Techtube\\Bookinfo\\": "src/" + } + }, + "authors": [ + { + "name": "kplaczek", + "email": "kplaczek@wi.ps.pl" + } + ], + "description": "Package to find a book and return a book info from lubimyczytac.pl", + "time": "2022-05-27T08:54:39+00:00" + }, { "name": "twig/extra-bundle", "version": "v3.4.0", diff --git a/migrations/Version20220527100258.php b/migrations/Version20220527100258.php new file mode 100644 index 0000000..6be3906 --- /dev/null +++ b/migrations/Version20220527100258.php @@ -0,0 +1,31 @@ +addSql('ALTER TABLE book ADD category LONGTEXT DEFAULT NULL'); + } + + public function down(Schema $schema): void + { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('ALTER TABLE book DROP category'); + } +} diff --git a/package.json b/package.json index 2ea2dc2..ea9f322 100644 --- a/package.json +++ b/package.json @@ -3,8 +3,10 @@ "@hotwired/stimulus": "^3.0.0", "@symfony/stimulus-bridge": "^3.0.0", "@symfony/webpack-encore": "^2.0.0", + "axios": "^0.27.2", "core-js": "^3.0.0", "popper.js": "^1.16.1", + "prettier": "^2.6.2", "regenerator-runtime": "^0.13.2", "sass": "^1.52.1", "sass-loader": "^12.0.0", diff --git a/src/Controller/BookController.php b/src/Controller/BookController.php index 6dcc09c..2f873e3 100644 --- a/src/Controller/BookController.php +++ b/src/Controller/BookController.php @@ -9,9 +9,12 @@ use App\Repository\BookRepository; use App\Repository\FileRepository; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\BinaryFileResponse; +use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Annotation\Route; +use Techtube\Bookinfo\BookFinder; +use Techtube\Bookinfo\DataParser; #[Route('/book')] class BookController extends AbstractController @@ -34,12 +37,20 @@ class BookController extends AbstractController if ($form->isSubmitted() && $form->isValid()) { $bookRepository->add($book, true); - $cover = $request->files->get('book')['cover']; - if ($cover) { - $cover->move( - $this->getParameter('book_covers'), - 'cover_' . $book->getId() . '.' . $cover->guessClientExtension() + $bookRequest = $request->request->all('book'); + if (!empty($bookRequest['cover_url'])) { + file_put_contents( + $this->getParameter('book_covers') . 'cover_' . $book->getId() . '.jpg', + file_get_contents($bookRequest['cover_url']) ); + } else { + $cover = $request->files->get('book')['cover']; + if ($cover) { + $cover->move( + $this->getParameter('book_covers'), + 'cover_' . $book->getId() . '.' . $cover->guessClientExtension() + ); + } } $ebook = $request->files->get('book')['ebook']; @@ -59,6 +70,20 @@ class BookController extends AbstractController ]); } + #[Route('/search/{phrase}', name: 'app_book_search', methods: ['GET'])] + public function search(string $phrase): JsonResponse + { + $bookFinder = new BookFinder(); + return new JsonResponse($bookFinder->search($phrase)); + } + + #[Route('/info/{urlInBase64}', name: 'app_book_info', methods: ['GET'])] + public function info(string $urlInBase64): JsonResponse + { + $bookFinder = new BookFinder(); + return new JsonResponse($bookFinder->byUrl(base64_decode($urlInBase64))); + } + #[Route('/{id}', name: 'app_book_show', methods: ['GET'])] public function show(Book $book): Response { diff --git a/src/Entity/Book.php b/src/Entity/Book.php index f972216..5e7f4b7 100644 --- a/src/Entity/Book.php +++ b/src/Entity/Book.php @@ -57,6 +57,9 @@ class Book #[ORM\Column(type: 'smallint', nullable: true)] private $rating; + #[ORM\Column(type: 'text', nullable: true)] + private $category; + public function __construct() { $this->files = new ArrayCollection(); @@ -252,4 +255,16 @@ class Book return $this; } + + public function getCategory(): ?string + { + return $this->category; + } + + public function setCategory(?string $category): self + { + $this->category = $category; + + return $this; + } } diff --git a/src/Form/BookType.php b/src/Form/BookType.php index 703dee4..7e2917b 100644 --- a/src/Form/BookType.php +++ b/src/Form/BookType.php @@ -17,9 +17,10 @@ class BookType extends AbstractType public function buildForm(FormBuilderInterface $builder, array $options): void { $builder - ->add('Title') + ->add('title') ->add('subtitle') ->add('author') + ->add('category', TextType::class, ['attr' => ['rows' => 1]]) ->add('isbn') ->add('pages') ->add('tags') @@ -51,7 +52,10 @@ class BookType extends AbstractType 'required' => false, 'attr' => ['accept' => ".pdf, .epub, .mobi"] ]) - ->add('cover', FileType::class, ['mapped' => false, 'data_class' => null, 'required' => false]); + ->add('cover', FileType::class, ['mapped' => false, 'data_class' => null, 'required' => false]) + ->add('cover_url', TextType::class, ['mapped' => false, 'help' => 'Fill in the field with a link to a cover image to use it as a cover for the book.', 'label'=> 'Cover url', 'required' => false]) + + ; } public function configureOptions(OptionsResolver $resolver): void diff --git a/symfony.lock b/symfony.lock index 62f7189..3f3df32 100644 --- a/symfony.lock +++ b/symfony.lock @@ -80,6 +80,18 @@ "friendsofphp/proxy-manager-lts": { "version": "v1.0.12" }, + "guzzlehttp/guzzle": { + "version": "7.4.3" + }, + "guzzlehttp/promises": { + "version": "1.5.1" + }, + "guzzlehttp/psr7": { + "version": "2.2.1" + }, + "imangazaliev/didom": { + "version": "2.0" + }, "laminas/laminas-code": { "version": "4.5.1" }, @@ -110,12 +122,24 @@ "psr/event-dispatcher": { "version": "1.0.0" }, + "psr/http-client": { + "version": "1.0.1" + }, + "psr/http-factory": { + "version": "1.0.1" + }, + "psr/http-message": { + "version": "1.0.1" + }, "psr/link": { "version": "2.0.1" }, "psr/log": { "version": "3.0.0" }, + "ralouphie/getallheaders": { + "version": "3.0.3" + }, "sensio/framework-extra-bundle": { "version": "6.2", "recipe": { @@ -506,6 +530,9 @@ "symfony/yaml": { "version": "v6.0.3" }, + "techtube/bookinfo": { + "version": "dev-master" + }, "twig/extra-bundle": { "version": "v3.4.0" }, diff --git a/templates/book/new.html.twig b/templates/book/new.html.twig index 44bc059..e08466d 100644 --- a/templates/book/new.html.twig +++ b/templates/book/new.html.twig @@ -4,8 +4,14 @@ {% block body %}

Create new Book

- - {{ include('book/_form.html.twig') }} - +
+ + {{ include('book/_form.html.twig') }} + +
back to list {% endblock %} + +{% block javascripts %} + {{ encore_entry_script_tags('book') }} +{% endblock %} \ No newline at end of file diff --git a/templates/file/index.html.twig b/templates/file/index.html.twig index 7fb534c..e4142a6 100644 --- a/templates/file/index.html.twig +++ b/templates/file/index.html.twig @@ -7,6 +7,5 @@ {% endblock %} {% block javascripts %} - {{ parent() }} {{ encore_entry_script_tags('files') }} {% endblock %} \ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js index e00c3e4..068abb3 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -20,8 +20,9 @@ Encore * Each entry will result in one JavaScript file (e.g. app.js) * and one CSS file (e.g. app.scss) if your JavaScript imports CSS. */ - .addEntry('app', './assets/app.js') - .addEntry('files', './assets/files.js') + .addEntry('app', './assets/js/app.js') + .addEntry('files', './assets/js/files.js') + .addEntry('book', './assets/js/book.js') // enables the Symfony UX Stimulus bridge (used in assets/bootstrap.js) .enableStimulusBridge('./assets/controllers.json') @@ -47,9 +48,9 @@ Encore // enables hashed filenames (e.g. app.abc123.css) .enableVersioning(Encore.isProduction()) - .configureBabel((config) => { - config.plugins.push('@babel/plugin-proposal-class-properties'); - }) + // .configureBabel((config) => { + // config.plugins.push('@babel/plugin-proposal-class-properties'); + // }) // enables @babel/preset-env polyfills .configureBabelPresetEnv((config) => { diff --git a/yarn.lock b/yarn.lock index 6560e45..2cbf318 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1768,6 +1768,14 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== +axios@^0.27.2: + version "0.27.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" + integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== + dependencies: + follow-redirects "^1.14.9" + form-data "^4.0.0" + babel-loader@^8.2.2: version "8.2.5" resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.5.tgz#d45f585e654d5a5d90f5350a779d7647c5ed512e" @@ -2544,7 +2552,7 @@ combine-source-map@^0.8.0, combine-source-map@~0.8.0: lodash.memoize "~3.0.3" source-map "~0.5.3" -combined-stream@^1.0.6, combined-stream@~1.0.6: +combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -3634,7 +3642,7 @@ flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -follow-redirects@^1.0.0: +follow-redirects@^1.0.0, follow-redirects@^1.14.9: version "1.15.0" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.0.tgz#06441868281c86d0dda4ad8bdaead2d02dca89d4" integrity sha512-aExlJShTV4qOUOL7yF1U5tvLCB0xQuudbf6toyYA0E/acBNw71mvjFTnLaRp50aQaYocMR0a/RMMBIHeZnGyjQ== @@ -3656,6 +3664,15 @@ forever-agent@~0.6.1: resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + form-data@~2.3.2: version "2.3.3" resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" @@ -5894,7 +5911,7 @@ preserve@^0.2.0: resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" integrity sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks= -"prettier@^1.18.2 || ^2.0.0": +"prettier@^1.18.2 || ^2.0.0", prettier@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032" integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==