diff --git a/.docker/docker-compose/docker-compose.local.yml b/.docker/docker-compose/docker-compose.local.yml index 3ca65ed2e..71731b5e5 100644 --- a/.docker/docker-compose/docker-compose.local.yml +++ b/.docker/docker-compose/docker-compose.local.yml @@ -56,7 +56,7 @@ services: networks: - network smtp4dev: - image: registry.thomas-peterson.de/smtp4dev + image: registry.thomas-peterson.de/smtp4dev:manifest-amd64 restart: always ports: # Change the number before : to the port the web interface should be accessible on diff --git a/.docker/images/php/base/Dockerfile b/.docker/images/php/base/Dockerfile index eef435e88..4d633a7d0 100644 --- a/.docker/images/php/base/Dockerfile +++ b/.docker/images/php/base/Dockerfile @@ -133,7 +133,7 @@ RUN --mount=type=cache,target=/tmp/.composer \ # on production, we don't want test dependencies COMPOSER_HOME=/tmp/.composer composer install --no-scripts --no-plugins --no-progress -o --no-dev; \ else \ - COMPOSER_HOME=/tmp/.composer composer install --no-scripts --no-plugins --no-progress -o; \ + COMPOSER_HOME=/tmp/.composer composer update --ignore-platform-reqs --no-scripts --no-plugins --no-progress -o; \ fi # copy the full codebase @@ -170,6 +170,6 @@ COPY --from=codebase --chown=$APP_USER_NAME:$APP_GROUP_NAME /codebase $APP_CODE_ RUN echo "root ALL=(ALL) NOPASSWD: ALL " | tee -a "/etc/sudoers.d/users" && \ echo "${APP_USER_NAME} ALL=(ALL) NOPASSWD: ALL " | tee -a "/etc/sudoers.d/users" -RUN pecl install xdebug +RUN pecl install https://xdebug.org/files/xdebug-3.4.2.tgz ENV APP_ENV=dev diff --git a/.docker/images/php/cron/bin/start-cron.sh b/.docker/images/php/cron/bin/start-cron.sh index 699b0c774..e155e9b9d 100644 --- a/.docker/images/php/cron/bin/start-cron.sh +++ b/.docker/images/php/cron/bin/start-cron.sh @@ -1,8 +1,12 @@ #!/bin/bash # start-cron.sh touch /var/log/cron.log +touch /var/log/cronD.log +touch /var/log/cronH.log rm -R /data/www/new/var/cache/* rm -R /data/www/new/var/log/* chmod -R 0777 /data/www/new/var/cache chmod -R 0777 /data/www/new/var/log chmod 0777 /var/log/cron.log +chmod 0777 /var/log/cronD.log +chmod 0777 /var/log/cronH.log diff --git a/.docker/images/php/cron/conf.d/psc b/.docker/images/php/cron/conf.d/psc index 1b9c5ab61..e7644acd6 100644 --- a/.docker/images/php/cron/conf.d/psc +++ b/.docker/images/php/cron/conf.d/psc @@ -5,5 +5,7 @@ BASH_ENV=/container.env * * * * * root chmod -R 0777 /data/www/old/market/steplayouter >> /var/log/cron.log 2>&1 * * * * * root chmod -R 0777 /data/www/new/web/uploads/media >> /var/log/cron.log 2>&1 * * * * * root chmod -R 0777 /data/www/new/web/media >> /var/log/cron.log 2>&1 -* * * * * www-data cd /data/www/new/web && /usr/local/bin/php /data/www/new/bin/console application:queue:do >> /var/log/cron.log 2>&1 +* * * * * www-data cd /data/www/new/web && /usr/local/bin/php /data/www/new/bin/console application:queue:doEveryMinute >> /var/log/cron.log 2>&1 +@daily www-data cd /data/www/new/web && /usr/local/bin/php /data/www/new/bin/console application:queue:doEveryDay >> /var/log/cronD.log 2>&1 +@hourly www-data cd /data/www/new/web && /usr/local/bin/php /data/www/new/bin/console application:queue:doEveryHour >> /var/log/cronH.log 2>&1 # diff --git a/.docker/images/php/fpm/php-fpm.d/www.conf b/.docker/images/php/fpm/php-fpm.d/www.conf index d7f9ff19c..0d3b99be4 100644 --- a/.docker/images/php/fpm/php-fpm.d/www.conf +++ b/.docker/images/php/fpm/php-fpm.d/www.conf @@ -4,7 +4,7 @@ error_log = /proc/self/fd/2 access.log = /proc/self/fd/1 access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" catch_workers_output = yes - +rlimit_core = unlimited user = __APP_USER_NAME group = __APP_GROUP_NAME listen = 0.0.0.0:9000 diff --git a/src/new/assets/controllers.json b/src/new/assets/controllers.json index c12f1c398..6d45fb171 100755 --- a/src/new/assets/controllers.json +++ b/src/new/assets/controllers.json @@ -26,16 +26,6 @@ } } }, - "@symfony/ux-turbo": { - "turbo-core": { - "enabled": true, - "fetch": "eager" - }, - "mercure-turbo-stream": { - "enabled": false, - "fetch": "eager" - } - }, "@symfony/ux-vue": { "vue": { "enabled": true, diff --git a/src/new/assets/controllers/modal_controller.js b/src/new/assets/controllers/modal_controller.js index 44db5598a..2b6e851f1 100644 --- a/src/new/assets/controllers/modal_controller.js +++ b/src/new/assets/controllers/modal_controller.js @@ -1,65 +1,50 @@ import { Controller } from '@hotwired/stimulus'; export default class extends Controller { - static targets = ['dialog', 'dynamicContent']; + static targets = ['dialog']; - observer = null; - - connect() { - if (this.hasDynamicContentTarget) { - // when the content changes, call this.open() - this.observer = new MutationObserver(() => { - const shouldOpen = this.dynamicContentTarget.innerHTML.trim().length > 0; - - if (shouldOpen && !this.dialogTarget.open) { - this.open(); - } else if (!shouldOpen && this.dialogTarget.open) { - this.close(); - } - }); - this.observer.observe(this.dynamicContentTarget, { - childList: true, - characterData: true, - subtree: true - }); - } - } - - disconnect() { - if (this.observer) { - this.observer.disconnect(); - } - if (this.dialogTarget.open) { - this.close(); - } - } - - open() { + open(e) { + this.element.getElementsByClassName('iframe')[0].innerHtml = ""; + var htmlId = e.target.dataset.html_id; + var iframe = document.createElement('iframe'); + iframe.classList.add("w-full"); + iframe.classList.add("h-full"); + iframe.src = e.target.dataset.href; + this.element.getElementsByClassName('iframe')[0].appendChild(iframe); this.dialogTarget.showModal(); - document.body.classList.add('overflow-hidden', 'blur-sm'); + + var $this = this; + window.addEventListener(htmlId, function(e) { + document.getElementById(htmlId).value = e.detail.id; + document.getElementById(htmlId + "-widget").classList.add('media-chooser--choosen'); + document.getElementById(htmlId + "__preview__title").innerHtml = e.detail.title; + + if (e.detail.thumbPath === "") { + } else { + document.getElementById(htmlId + "__preview__img").src = e.detail.thumbPath; + } + iframe.remove(); + $this.close(); + document.getElementById(htmlId).dispatchEvent(new Event('change', { bubbles: true })); + }, {once: true}); } + trash(e) { + var htmlId = e.target.dataset.html_id; + document.getElementById(htmlId).value = ""; + document.getElementById(htmlId + "__preview__title").innerHtml = ""; + document.getElementById(htmlId + "__preview__title").innerText = ""; + document.getElementById(htmlId + "__preview__img").removeAttribute('src'); + document.getElementById(htmlId + "__preview__img").removeAttribute('alt'); + document.getElementById(htmlId + "__preview__img").removeAttribute('srcset'); + document.getElementById(htmlId).dispatchEvent(new Event('change', { bubbles: true })); + } + close() { this.dialogTarget.close(); document.body.classList.remove('overflow-hidden', 'blur-sm'); } - useMedia(e) { - let dataset = e.target.dataset; - document.getElementById(e.target.dataset.htmlId).value = e.target.dataset.id; - // Update preview - document.getElementById(e.target.dataset.htmlId + "-widget").classList.add('media-chooser--choosen'); - document.getElementById(e.target.dataset.htmlId + "__preview__title").innerHtml = this.title; - - if (e.target.dataset.thumbPath === "") { - } else { - document.getElementById(e.target.dataset.htmlId + "__preview__img").src = e.target.dataset.thumbPath; - } - - // Close modal - this.close(); - } - clickOutside(event) { if (event.target === this.dialogTarget) { this.dialogTarget.close(); diff --git a/src/new/assets/tailwind/css/backend.css b/src/new/assets/tailwind/css/backend.css index e0a118505..f6c04a21b 100644 --- a/src/new/assets/tailwind/css/backend.css +++ b/src/new/assets/tailwind/css/backend.css @@ -71,7 +71,9 @@ @apply inline-flex items-center justify-center py-1 gap-1 font-medium rounded-sm px-4 text-sm text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2 min-h-[2.25rem]; } - +.psc-button-secondary { + @apply inline-flex items-center justify-center py-1 gap-1 font-medium rounded-sm px-4 text-xs text-white shadow-lg bg-psc-500 hover:bg-psc-600 hover:ring-2 hover:ring-psc-500 hover:ring-offset-2 min-h-[1.8rem]; +} .form-label { @apply block uppercase text-xs font-bold mb-2; diff --git a/src/new/composer.json b/src/new/composer.json index fff4499b7..b82ef5182 100755 --- a/src/new/composer.json +++ b/src/new/composer.json @@ -13,9 +13,10 @@ } }, "require": { - "php": "8.1.*", + "php": "8.2.*", "ext-ctype": "*", "ext-iconv": "*", + "ext-mongodb": "^2", "azuyalabs/yasumi": "^2.5", "behat/transliterator": "^1.2@dev", "bitandblack/colors": "^2.13", @@ -24,12 +25,11 @@ "cocur/slugify": "v3.1", "composer/package-versions-deprecated": "^1.8", "ddeboer/imap": "1.18.*", - "doctrine/annotations": "^1.0", - "doctrine/cache": "^1.11", - "doctrine/doctrine-bundle": "2.7.*", - "doctrine/mongodb-odm-bundle": "^4", + "doctrine/annotations": "^2", + "doctrine/cache": "^2", + "doctrine/doctrine-bundle": "^2", + "doctrine/mongodb-odm-bundle": "^5", "doctrine/orm": "^2.7", - "dunglas/doctrine-json-odm": "^1.4", "gabrielbull/ups-api": "dev-master", "gregwar/captcha-bundle": "^2.2", "guzzlehttp/guzzle": "^6", @@ -40,7 +40,7 @@ "knplabs/knp-menu-bundle": "^3", "knplabs/knp-paginator-bundle": "5.9.*", "lexik/form-filter-bundle": "^7", - "lexik/jwt-authentication-bundle": "2.16.*", + "lexik/jwt-authentication-bundle": "^3", "liip/imagine-bundle": "2.9.*", "mobiledetect/mobiledetectlib": "^2.8", "mpdf/mpdf": "dev-qrcode", @@ -93,7 +93,6 @@ "symfony/ux-autocomplete": "^2.14", "symfony/ux-chartjs": "^2.19", "symfony/ux-live-component": "^2.12", - "symfony/ux-turbo": "^2.24", "symfony/ux-twig-component": "^2.12", "symfony/ux-vue": "^2.23", "symfony/validator": "*", @@ -137,7 +136,7 @@ "sort-packages": true, "optimize-autoloader": true, "platform": { - "php": "8.1.12" + "php": "8.2.28" }, "allow-plugins": { "symfony/flex": true, diff --git a/src/new/composer.lock b/src/new/composer.lock index c6c750948..69a6fd44e 100755 --- a/src/new/composer.lock +++ b/src/new/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": "74118bc5e9236bf6ae9d7f1891c26692", + "content-hash": "99334202e137c912623234d7f71ca0ce", "packages": [ { "name": "azuyalabs/yasumi", @@ -85,12 +85,12 @@ "source": { "type": "git", "url": "https://github.com/Behat/Transliterator.git", - "reference": "baac5873bac3749887d28ab68e2f74db3a4408af" + "reference": "20b1c02b04b5f8cd40b999eda44921ca604dcca7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Transliterator/zipball/baac5873bac3749887d28ab68e2f74db3a4408af", - "reference": "baac5873bac3749887d28ab68e2f74db3a4408af", + "url": "https://api.github.com/repos/Behat/Transliterator/zipball/20b1c02b04b5f8cd40b999eda44921ca604dcca7", + "reference": "20b1c02b04b5f8cd40b999eda44921ca604dcca7", "shasum": "" }, "require": { @@ -125,9 +125,10 @@ ], "support": { "issues": "https://github.com/Behat/Transliterator/issues", - "source": "https://github.com/Behat/Transliterator/tree/v1.5.0" + "source": "https://github.com/Behat/Transliterator/tree/master" }, - "time": "2022-03-30T09:27:43+00:00" + "abandoned": true, + "time": "2025-05-07T16:20:04+00:00" }, { "name": "bitandblack/colors", @@ -209,25 +210,25 @@ }, { "name": "bitandblack/sentence-construction", - "version": "2.1.0", + "version": "2.2.0", "source": { "type": "git", "url": "https://bitbucket.org/wirbelwild/sentence-construction.git", - "reference": "a676cf6a7f6e3673b987f16995f82bbbba1e4600" + "reference": "1c1ca8fa2bef4597c5f486bf3d736f3ebd229f17" }, "dist": { "type": "zip", - "url": "https://bitbucket.org/wirbelwild/sentence-construction/get/a676cf6a7f6e3673b987f16995f82bbbba1e4600.zip", - "reference": "a676cf6a7f6e3673b987f16995f82bbbba1e4600", + "url": "https://bitbucket.org/wirbelwild/sentence-construction/get/1c1ca8fa2bef4597c5f486bf3d736f3ebd229f17.zip", + "reference": "1c1ca8fa2bef4597c5f486bf3d736f3ebd229f17", "shasum": "" }, "require": { "php": ">=8.0" }, "require-dev": { - "phpstan/phpstan": "^1.0", + "phpstan/phpstan": "^2.0", "phpunit/phpunit": "^10.0", - "rector/rector": "^1.0", + "rector/rector": "^2.0", "symplify/easy-coding-standard": "^12.0" }, "suggest": { @@ -250,7 +251,7 @@ "homepage": "https://www.bitandblack.com" } ], - "description": "Creates nice sentences", + "description": "Creates nice sentences out of arrays", "homepage": "https://www.bitandblack.com", "keywords": [ "grammar", @@ -259,7 +260,7 @@ "words" ], "support": { - "source": "https://bitbucket.org/wirbelwild/sentence-construction/src/a676cf6a7f6e3673b987f16995f82bbbba1e4600/?at=2.1.0" + "source": "https://bitbucket.org/wirbelwild/sentence-construction/src/1c1ca8fa2bef4597c5f486bf3d736f3ebd229f17/?at=2.2.0" }, "funding": [ { @@ -267,7 +268,7 @@ "type": "buymeacoffee" } ], - "time": "2024-12-09T08:20:53+00:00" + "time": "2025-04-14T06:21:22+00:00" }, { "name": "brick/math", @@ -931,30 +932,30 @@ }, { "name": "doctrine/annotations", - "version": "1.14.4", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "253dca476f70808a5aeed3a47cc2cc88c5cab915" + "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/253dca476f70808a5aeed3a47cc2cc88c5cab915", - "reference": "253dca476f70808a5aeed3a47cc2cc88c5cab915", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/901c2ee5d26eb64ff43c47976e114bf00843acf7", + "reference": "901c2ee5d26eb64ff43c47976e114bf00843acf7", "shasum": "" }, "require": { - "doctrine/lexer": "^1 || ^2", + "doctrine/lexer": "^2 || ^3", "ext-tokenizer": "*", - "php": "^7.1 || ^8.0", + "php": "^7.2 || ^8.0", "psr/cache": "^1 || ^2 || ^3" }, "require-dev": { - "doctrine/cache": "^1.11 || ^2.0", - "doctrine/coding-standard": "^9 || ^12", - "phpstan/phpstan": "~1.4.10 || ^1.10.28", + "doctrine/cache": "^2.0", + "doctrine/coding-standard": "^10", + "phpstan/phpstan": "^1.10.28", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7", + "symfony/cache": "^5.4 || ^6.4 || ^7", "vimeo/psalm": "^4.30 || ^5.14" }, "suggest": { @@ -1001,22 +1002,22 @@ ], "support": { "issues": "https://github.com/doctrine/annotations/issues", - "source": "https://github.com/doctrine/annotations/tree/1.14.4" + "source": "https://github.com/doctrine/annotations/tree/2.0.2" }, - "time": "2024-09-05T10:15:52+00:00" + "time": "2024-09-05T10:17:24+00:00" }, { "name": "doctrine/cache", - "version": "1.13.0", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "56cd022adb5514472cb144c087393c1821911d09" + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/56cd022adb5514472cb144c087393c1821911d09", - "reference": "56cd022adb5514472cb144c087393c1821911d09", + "url": "https://api.github.com/repos/doctrine/cache/zipball/1ca8f21980e770095a31456042471a57bc4c68fb", + "reference": "1ca8f21980e770095a31456042471a57bc4c68fb", "shasum": "" }, "require": { @@ -1026,19 +1027,13 @@ "doctrine/common": ">2.2,<2.4" }, "require-dev": { - "alcaeus/mongo-php-adapter": "^1.1", "cache/integration-tests": "dev-master", "doctrine/coding-standard": "^9", - "mongodb/mongodb": "^1.1", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5", - "predis/predis": "~1.0", "psr/cache": "^1.0 || ^2.0 || ^3.0", "symfony/cache": "^4.4 || ^5.4 || ^6", "symfony/var-exporter": "^4.4 || ^5.4 || ^6" }, - "suggest": { - "alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver" - }, "type": "library", "autoload": { "psr-4": { @@ -1086,7 +1081,7 @@ ], "support": { "issues": "https://github.com/doctrine/cache/issues", - "source": "https://github.com/doctrine/cache/tree/1.13.0" + "source": "https://github.com/doctrine/cache/tree/2.2.0" }, "funding": [ { @@ -1102,7 +1097,7 @@ "type": "tidelift" } ], - "time": "2022-05-20T20:06:54+00:00" + "time": "2022-05-20T20:07:39+00:00" }, { "name": "doctrine/collections", @@ -1442,56 +1437,64 @@ }, { "name": "doctrine/doctrine-bundle", - "version": "2.7.2", + "version": "2.14.0", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "22d53b2c5ad03929628fb4a928b01135585b7179" + "reference": "ca6a7350b421baf7fbdefbf9f4993292ed18effb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/22d53b2c5ad03929628fb4a928b01135585b7179", - "reference": "22d53b2c5ad03929628fb4a928b01135585b7179", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/ca6a7350b421baf7fbdefbf9f4993292ed18effb", + "reference": "ca6a7350b421baf7fbdefbf9f4993292ed18effb", "shasum": "" }, "require": { - "doctrine/annotations": "^1", - "doctrine/cache": "^1.11 || ^2.0", - "doctrine/dbal": "^2.13.1 || ^3.3.2", - "doctrine/persistence": "^2.2 || ^3", + "doctrine/dbal": "^3.7.0 || ^4.0", + "doctrine/persistence": "^3.1 || ^4", "doctrine/sql-formatter": "^1.0.1", - "php": "^7.1 || ^8.0", - "symfony/cache": "^4.4 || ^5.4 || ^6.0", - "symfony/config": "^4.4.3 || ^5.4 || ^6.0", - "symfony/console": "^4.4 || ^5.4 || ^6.0", - "symfony/dependency-injection": "^4.4.18 || ^5.4 || ^6.0", + "php": "^8.1", + "symfony/cache": "^6.4 || ^7.0", + "symfony/config": "^6.4 || ^7.0", + "symfony/console": "^6.4 || ^7.0", + "symfony/dependency-injection": "^6.4 || ^7.0", "symfony/deprecation-contracts": "^2.1 || ^3", - "symfony/doctrine-bridge": "^4.4.22 || ^5.4 || ^6.0", - "symfony/framework-bundle": "^4.4 || ^5.4 || ^6.0", - "symfony/service-contracts": "^1.1.1 || ^2.0 || ^3" + "symfony/doctrine-bridge": "^6.4.3 || ^7.0.3", + "symfony/framework-bundle": "^6.4 || ^7.0", + "symfony/service-contracts": "^2.5 || ^3" }, "conflict": { - "doctrine/orm": "<2.11 || >=3.0", - "twig/twig": "<1.34 || >=2.0,<2.4" + "doctrine/annotations": ">=3.0", + "doctrine/cache": "< 1.11", + "doctrine/orm": "<2.17 || >=4.0", + "symfony/var-exporter": "< 6.4.1 || 7.0.0", + "twig/twig": "<2.13 || >=3.0 <3.0.4" }, "require-dev": { - "doctrine/coding-standard": "^9.0", - "doctrine/orm": "^2.11 || ^3.0", + "doctrine/annotations": "^1 || ^2", + "doctrine/cache": "^1.11 || ^2.0", + "doctrine/coding-standard": "^12", + "doctrine/deprecations": "^1.0", + "doctrine/orm": "^2.17 || ^3.0", "friendsofphp/proxy-manager-lts": "^1.0", - "phpunit/phpunit": "^7.5 || ^8.0 || ^9.3 || ^10.0", - "psalm/plugin-phpunit": "^0.16.1", - "psalm/plugin-symfony": "^3", + "phpstan/phpstan": "2.1.1", + "phpstan/phpstan-phpunit": "2.0.3", + "phpstan/phpstan-strict-rules": "^2", + "phpunit/phpunit": "^9.6.22", "psr/log": "^1.1.4 || ^2.0 || ^3.0", - "symfony/phpunit-bridge": "^6.1", - "symfony/property-info": "^4.4 || ^5.4 || ^6.0", - "symfony/proxy-manager-bridge": "^4.4 || ^5.4 || ^6.0", - "symfony/security-bundle": "^4.4 || ^5.4 || ^6.0", - "symfony/twig-bridge": "^4.4 || ^5.4 || ^6.0", - "symfony/validator": "^4.4 || ^5.4 || ^6.0", - "symfony/web-profiler-bundle": "^4.4 || ^5.4 || ^6.0", - "symfony/yaml": "^4.4 || ^5.4 || ^6.0", - "twig/twig": "^1.34 || ^2.12 || ^3.0", - "vimeo/psalm": "^4.7" + "symfony/doctrine-messenger": "^6.4 || ^7.0", + "symfony/messenger": "^6.4 || ^7.0", + "symfony/phpunit-bridge": "^7.2", + "symfony/property-info": "^6.4 || ^7.0", + "symfony/security-bundle": "^6.4 || ^7.0", + "symfony/stopwatch": "^6.4 || ^7.0", + "symfony/string": "^6.4 || ^7.0", + "symfony/twig-bridge": "^6.4 || ^7.0", + "symfony/validator": "^6.4 || ^7.0", + "symfony/var-exporter": "^6.4.1 || ^7.0.1", + "symfony/web-profiler-bundle": "^6.4 || ^7.0", + "symfony/yaml": "^6.4 || ^7.0", + "twig/twig": "^2.13 || ^3.0.4" }, "suggest": { "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.", @@ -1501,7 +1504,7 @@ "type": "symfony-bundle", "autoload": { "psr-4": { - "Doctrine\\Bundle\\DoctrineBundle\\": "" + "Doctrine\\Bundle\\DoctrineBundle\\": "src" } }, "notification-url": "https://packagist.org/downloads/", @@ -1536,7 +1539,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.7.2" + "source": "https://github.com/doctrine/DoctrineBundle/tree/2.14.0" }, "funding": [ { @@ -1552,7 +1555,7 @@ "type": "tidelift" } ], - "time": "2022-12-07T12:07:11+00:00" + "time": "2025-03-22T17:28:21+00:00" }, { "name": "doctrine/event-manager", @@ -1808,28 +1811,27 @@ }, { "name": "doctrine/lexer", - "version": "2.1.1", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6" + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6", - "reference": "861c870e8b75f7c8f69c146c7f89cc1c0f1b49b6", + "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", + "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd", "shasum": "" }, "require": { - "doctrine/deprecations": "^1.0", - "php": "^7.1 || ^8.0" + "php": "^8.1" }, "require-dev": { - "doctrine/coding-standard": "^9 || ^12", - "phpstan/phpstan": "^1.3", - "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", + "doctrine/coding-standard": "^12", + "phpstan/phpstan": "^1.10", + "phpunit/phpunit": "^10.5", "psalm/plugin-phpunit": "^0.18.3", - "vimeo/psalm": "^4.11 || ^5.21" + "vimeo/psalm": "^5.21" }, "type": "library", "autoload": { @@ -1866,7 +1868,7 @@ ], "support": { "issues": "https://github.com/doctrine/lexer/issues", - "source": "https://github.com/doctrine/lexer/tree/2.1.1" + "source": "https://github.com/doctrine/lexer/tree/3.0.1" }, "funding": [ { @@ -1882,20 +1884,20 @@ "type": "tidelift" } ], - "time": "2024-02-05T11:35:39+00:00" + "time": "2024-02-05T11:56:58+00:00" }, { "name": "doctrine/mongodb-odm", - "version": "2.10.1", + "version": "2.11.1", "source": { "type": "git", "url": "https://github.com/doctrine/mongodb-odm.git", - "reference": "a33bf090401ed1138a289c5e866fcc7e70c88379" + "reference": "a07b9026769d23501a1603dbafa09145fca03abf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/mongodb-odm/zipball/a33bf090401ed1138a289c5e866fcc7e70c88379", - "reference": "a33bf090401ed1138a289c5e866fcc7e70c88379", + "url": "https://api.github.com/repos/doctrine/mongodb-odm/zipball/a07b9026769d23501a1603dbafa09145fca03abf", + "reference": "a07b9026769d23501a1603dbafa09145fca03abf", "shasum": "" }, "require": { @@ -1904,10 +1906,10 @@ "doctrine/event-manager": "^1.0 || ^2.0", "doctrine/instantiator": "^1.1 || ^2", "doctrine/persistence": "^3.2 || ^4", - "ext-mongodb": "^1.17", + "ext-mongodb": "^1.21 || ^2.0", "friendsofphp/proxy-manager-lts": "^1.0", "jean85/pretty-package-versions": "^1.3.0 || ^2.0.1", - "mongodb/mongodb": "^1.17.0", + "mongodb/mongodb": "^1.21 || ^2.0@dev", "php": "^8.1", "psr/cache": "^1.0 || ^2.0 || ^3.0", "symfony/console": "^5.4 || ^6.0 || ^7.0", @@ -1980,7 +1982,7 @@ ], "support": { "issues": "https://github.com/doctrine/mongodb-odm/issues", - "source": "https://github.com/doctrine/mongodb-odm/tree/2.10.1" + "source": "https://github.com/doctrine/mongodb-odm/tree/2.11.1" }, "funding": [ { @@ -1996,55 +1998,53 @@ "type": "tidelift" } ], - "time": "2025-02-07T12:32:31+00:00" + "time": "2025-04-28T11:19:17+00:00" }, { "name": "doctrine/mongodb-odm-bundle", - "version": "4.7.0", + "version": "5.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineMongoDBBundle.git", - "reference": "48c29009c24ff74c47782c0c9c2736f1f5fd9b0e" + "reference": "e0a1b4342fb5f82abceef0098302b398ec2f67d7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineMongoDBBundle/zipball/48c29009c24ff74c47782c0c9c2736f1f5fd9b0e", - "reference": "48c29009c24ff74c47782c0c9c2736f1f5fd9b0e", + "url": "https://api.github.com/repos/doctrine/DoctrineMongoDBBundle/zipball/e0a1b4342fb5f82abceef0098302b398ec2f67d7", + "reference": "e0a1b4342fb5f82abceef0098302b398ec2f67d7", "shasum": "" }, "require": { - "doctrine/annotations": "^1.13 || ^2.0", - "doctrine/mongodb-odm": "^2.3", - "doctrine/persistence": "^2.2 || ^3.0", - "ext-mongodb": "^1.5", - "jean85/pretty-package-versions": "^1.3.0 || ^2.0.1", + "composer-runtime-api": "^2.0", + "doctrine/mongodb-odm": "^2.6", + "doctrine/persistence": "^3.0 || ^4.0", + "ext-mongodb": "^1.16 || ^2", "php": "^8.1", "psr/log": "^1.0 || ^2.0 || ^3.0", - "symfony/config": "^5.4 || ^6.2", - "symfony/console": "^5.4 || ^6.2", - "symfony/dependency-injection": "^5.4 || ^6.2", - "symfony/deprecation-contracts": "^2.1 || ^3.0", - "symfony/doctrine-bridge": "^5.4.19 || ^6.2", - "symfony/framework-bundle": "^5.4 || ^6.2", - "symfony/http-kernel": "^5.4 || ^6.2", - "symfony/options-resolver": "^5.4 || ^6.2" + "symfony/config": "^6.4 || ^7.0", + "symfony/console": "^6.4 || ^7.0", + "symfony/dependency-injection": "^6.4 || ^7.0", + "symfony/doctrine-bridge": "^6.4 || ^7.0", + "symfony/framework-bundle": "^6.4 || ^7.0", + "symfony/http-kernel": "^6.4 || ^7.0", + "symfony/options-resolver": "^6.4 || ^7.0" }, "conflict": { - "doctrine/data-fixtures": "<1.3" + "doctrine/data-fixtures": "<1.8 || >=3" }, "require-dev": { + "composer/semver": "^3.4", "doctrine/coding-standard": "^11.0", - "doctrine/data-fixtures": "^1.3", + "doctrine/data-fixtures": "^1.8 || ^2.0", + "phpstan/phpstan": "^2.0", "phpunit/phpunit": "^9.5.5", - "psalm/plugin-symfony": "^5.0", - "symfony/browser-kit": "^5.4 || ^6.2", - "symfony/form": "^5.4 || ^6.2", - "symfony/phpunit-bridge": "^6.2", - "symfony/security-bundle": "^5.4 || ^6.2", - "symfony/stopwatch": "^5.4 || ^6.2", - "symfony/validator": "^5.4 || ^6.2", - "symfony/yaml": "^5.4 || ^6.2", - "vimeo/psalm": "^5.12" + "symfony/browser-kit": "^6.4 || ^7.0", + "symfony/form": "^6.4 || ^7.0", + "symfony/phpunit-bridge": "^6.4.1 || ^7.0.1", + "symfony/security-bundle": "^6.4 || ^7.0", + "symfony/stopwatch": "^6.4 || ^7.0", + "symfony/validator": "^6.4 || ^7.0", + "symfony/yaml": "^6.4 || ^7.0" }, "suggest": { "doctrine/data-fixtures": "Load data fixtures" @@ -2052,11 +2052,8 @@ "type": "symfony-bundle", "autoload": { "psr-4": { - "Doctrine\\Bundle\\MongoDBBundle\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] + "Doctrine\\Bundle\\MongoDBBundle\\": "src" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -2085,22 +2082,22 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineMongoDBBundle/issues", - "source": "https://github.com/doctrine/DoctrineMongoDBBundle/tree/4.7.0" + "source": "https://github.com/doctrine/DoctrineMongoDBBundle/tree/5.3.0" }, - "time": "2023-12-22T13:05:12+00:00" + "time": "2025-04-08T16:32:24+00:00" }, { "name": "doctrine/orm", - "version": "2.20.2", + "version": "2.20.3", "source": { "type": "git", "url": "https://github.com/doctrine/orm.git", - "reference": "19912de9270fa6abb3d25a1a37784af6b818d534" + "reference": "17d28b5c4cac212ca92730d9a26e32a0b1516126" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/orm/zipball/19912de9270fa6abb3d25a1a37784af6b818d534", - "reference": "19912de9270fa6abb3d25a1a37784af6b818d534", + "url": "https://api.github.com/repos/doctrine/orm/zipball/17d28b5c4cac212ca92730d9a26e32a0b1516126", + "reference": "17d28b5c4cac212ca92730d9a26e32a0b1516126", "shasum": "" }, "require": { @@ -2127,14 +2124,14 @@ }, "require-dev": { "doctrine/annotations": "^1.13 || ^2", - "doctrine/coding-standard": "^9.0.2 || ^12.0", + "doctrine/coding-standard": "^9.0.2 || ^13.0", "phpbench/phpbench": "^0.16.10 || ^1.0", "phpstan/extension-installer": "~1.1.0 || ^1.4", "phpstan/phpstan": "~1.4.10 || 2.0.3", "phpstan/phpstan-deprecation-rules": "^1 || ^2", "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6", "psr/log": "^1 || ^2 || ^3", - "squizlabs/php_codesniffer": "3.7.2", + "squizlabs/php_codesniffer": "3.12.0", "symfony/cache": "^4.4 || ^5.4 || ^6.4 || ^7.0", "symfony/var-exporter": "^4.4 || ^5.4 || ^6.2 || ^7.0", "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0 || ^7.0" @@ -2187,9 +2184,9 @@ ], "support": { "issues": "https://github.com/doctrine/orm/issues", - "source": "https://github.com/doctrine/orm/tree/2.20.2" + "source": "https://github.com/doctrine/orm/tree/2.20.3" }, - "time": "2025-02-04T19:17:01+00:00" + "time": "2025-05-02T17:07:53+00:00" }, { "name": "doctrine/persistence", @@ -2342,90 +2339,6 @@ }, "time": "2025-01-24T11:45:48+00:00" }, - { - "name": "dunglas/doctrine-json-odm", - "version": "v1.4.2", - "source": { - "type": "git", - "url": "https://github.com/dunglas/doctrine-json-odm.git", - "reference": "c76280318ffb60aecceaf7f178298727c3dc35a5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/dunglas/doctrine-json-odm/zipball/c76280318ffb60aecceaf7f178298727c3dc35a5", - "reference": "c76280318ffb60aecceaf7f178298727c3dc35a5", - "shasum": "" - }, - "require": { - "doctrine/orm": "^2.6.3 || ^3.0.0", - "php": ">=8.1", - "symfony/property-access": "^5.4 || ^6.0 || ^7.0", - "symfony/property-info": "^5.4 || ^6.0 || ^7.0", - "symfony/serializer": "^5.4 || ^6.0 || ^7.0" - }, - "require-dev": { - "doctrine/annotations": "^1.0 || ^2.0.0", - "doctrine/dbal": "^2.7 || ^3.3 || ^4.0.0", - "doctrine/doctrine-bundle": "^1.12.13 || ^2.2", - "symfony/finder": "^5.4 || ^6.0 || ^7.0", - "symfony/framework-bundle": "^5.4 || ^6.0 || ^7.0", - "symfony/phpunit-bridge": "^6.0 || ^7.0", - "symfony/uid": "^5.4 || ^6.0 || ^7.0", - "symfony/validator": "^5.4 || ^6.0 || ^7.0" - }, - "suggest": { - "scienta/doctrine-json-functions": "To add support for JSON functions in DQL.", - "symfony/framework-bundle": "To use the provided bundle." - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Dunglas\\DoctrineJsonOdm\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kévin Dunglas", - "email": "kevin@dunglas.fr", - "homepage": "https://dunglas.fr" - } - ], - "description": "An object document mapper for Doctrine ORM using JSON types of modern RDBMS.", - "homepage": "https://dunglas.fr", - "keywords": [ - "database", - "json", - "mysql", - "odm", - "orm", - "postgresql", - "rdbms" - ], - "support": { - "issues": "https://github.com/dunglas/doctrine-json-odm/issues", - "source": "https://github.com/dunglas/doctrine-json-odm/tree/v1.4.2" - }, - "funding": [ - { - "url": "https://github.com/dunglas", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/dunglas/doctrine-json-odm", - "type": "tidelift" - } - ], - "time": "2024-11-26T13:57:21+00:00" - }, { "name": "egulias/email-validator", "version": "4.0.4", @@ -3317,16 +3230,16 @@ }, { "name": "horstoeko/zugferd", - "version": "v1.0.112", + "version": "v1.0.114", "source": { "type": "git", "url": "https://github.com/horstoeko/zugferd.git", - "reference": "74e6f51aa4ec893ce88f37ba07206a1d39034393" + "reference": "e7869f79b28056add87a82d405e9153711af4436" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/horstoeko/zugferd/zipball/74e6f51aa4ec893ce88f37ba07206a1d39034393", - "reference": "74e6f51aa4ec893ce88f37ba07206a1d39034393", + "url": "https://api.github.com/repos/horstoeko/zugferd/zipball/e7869f79b28056add87a82d405e9153711af4436", + "reference": "e7869f79b28056add87a82d405e9153711af4436", "shasum": "" }, "require": { @@ -3385,9 +3298,9 @@ ], "support": { "issues": "https://github.com/horstoeko/zugferd/issues", - "source": "https://github.com/horstoeko/zugferd/tree/v1.0.112" + "source": "https://github.com/horstoeko/zugferd/tree/v1.0.114" }, - "time": "2025-03-30T08:55:45+00:00" + "time": "2025-04-29T15:50:06+00:00" }, { "name": "imagine/imagine", @@ -4319,34 +4232,34 @@ }, { "name": "lcobucci/clock", - "version": "3.0.0", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/lcobucci/clock.git", - "reference": "039ef98c6b57b101d10bd11d8fdfda12cbd996dc" + "reference": "db3713a61addfffd615b79bf0bc22f0ccc61b86b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/clock/zipball/039ef98c6b57b101d10bd11d8fdfda12cbd996dc", - "reference": "039ef98c6b57b101d10bd11d8fdfda12cbd996dc", + "url": "https://api.github.com/repos/lcobucci/clock/zipball/db3713a61addfffd615b79bf0bc22f0ccc61b86b", + "reference": "db3713a61addfffd615b79bf0bc22f0ccc61b86b", "shasum": "" }, "require": { - "php": "~8.1.0 || ~8.2.0", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0", "psr/clock": "^1.0" }, "provide": { "psr/clock-implementation": "1.0" }, "require-dev": { - "infection/infection": "^0.26", - "lcobucci/coding-standard": "^9.0", - "phpstan/extension-installer": "^1.2", - "phpstan/phpstan": "^1.9.4", - "phpstan/phpstan-deprecation-rules": "^1.1.1", - "phpstan/phpstan-phpunit": "^1.3.2", - "phpstan/phpstan-strict-rules": "^1.4.4", - "phpunit/phpunit": "^9.5.27" + "infection/infection": "^0.29", + "lcobucci/coding-standard": "^11.1.0", + "phpstan/extension-installer": "^1.3.1", + "phpstan/phpstan": "^1.10.25", + "phpstan/phpstan-deprecation-rules": "^1.1.3", + "phpstan/phpstan-phpunit": "^1.3.13", + "phpstan/phpstan-strict-rules": "^1.5.1", + "phpunit/phpunit": "^11.3.6" }, "type": "library", "autoload": { @@ -4367,7 +4280,7 @@ "description": "Yet another clock abstraction", "support": { "issues": "https://github.com/lcobucci/clock/issues", - "source": "https://github.com/lcobucci/clock/tree/3.0.0" + "source": "https://github.com/lcobucci/clock/tree/3.3.1" }, "funding": [ { @@ -4379,43 +4292,42 @@ "type": "patreon" } ], - "time": "2022-12-19T15:00:24+00:00" + "time": "2024-09-24T20:45:14+00:00" }, { "name": "lcobucci/jwt", - "version": "4.3.0", + "version": "5.5.0", "source": { "type": "git", "url": "https://github.com/lcobucci/jwt.git", - "reference": "4d7de2fe0d51a96418c0d04004986e410e87f6b4" + "reference": "a835af59b030d3f2967725697cf88300f579088e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/jwt/zipball/4d7de2fe0d51a96418c0d04004986e410e87f6b4", - "reference": "4d7de2fe0d51a96418c0d04004986e410e87f6b4", + "url": "https://api.github.com/repos/lcobucci/jwt/zipball/a835af59b030d3f2967725697cf88300f579088e", + "reference": "a835af59b030d3f2967725697cf88300f579088e", "shasum": "" }, "require": { - "ext-hash": "*", - "ext-json": "*", - "ext-mbstring": "*", "ext-openssl": "*", "ext-sodium": "*", - "lcobucci/clock": "^2.0 || ^3.0", - "php": "^7.4 || ^8.0" + "php": "~8.2.0 || ~8.3.0 || ~8.4.0", + "psr/clock": "^1.0" }, "require-dev": { - "infection/infection": "^0.21", - "lcobucci/coding-standard": "^6.0", - "mikey179/vfsstream": "^1.6.7", + "infection/infection": "^0.29", + "lcobucci/clock": "^3.2", + "lcobucci/coding-standard": "^11.0", "phpbench/phpbench": "^1.2", - "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-deprecation-rules": "^1.0", - "phpstan/phpstan-phpunit": "^1.0", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/php-invoker": "^3.1", - "phpunit/phpunit": "^9.5" + "phpstan/extension-installer": "^1.2", + "phpstan/phpstan": "^1.10.7", + "phpstan/phpstan-deprecation-rules": "^1.1.3", + "phpstan/phpstan-phpunit": "^1.3.10", + "phpstan/phpstan-strict-rules": "^1.5.0", + "phpunit/phpunit": "^11.1" + }, + "suggest": { + "lcobucci/clock": ">= 3.2" }, "type": "library", "autoload": { @@ -4441,7 +4353,7 @@ ], "support": { "issues": "https://github.com/lcobucci/jwt/issues", - "source": "https://github.com/lcobucci/jwt/tree/4.3.0" + "source": "https://github.com/lcobucci/jwt/tree/5.5.0" }, "funding": [ { @@ -4453,7 +4365,7 @@ "type": "patreon" } ], - "time": "2023-01-02T13:28:00+00:00" + "time": "2025-01-26T21:29:45+00:00" }, { "name": "lexik/form-filter-bundle", @@ -4522,48 +4434,44 @@ }, { "name": "lexik/jwt-authentication-bundle", - "version": "v2.16.0", + "version": "v3.1.1", "source": { "type": "git", "url": "https://github.com/lexik/LexikJWTAuthenticationBundle.git", - "reference": "0a0922a2442c52724c09deb099b263300cc12d54" + "reference": "ebe0e2c6a0ae17b4702feffc89e32e3aaba6cb61" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/zipball/0a0922a2442c52724c09deb099b263300cc12d54", - "reference": "0a0922a2442c52724c09deb099b263300cc12d54", + "url": "https://api.github.com/repos/lexik/LexikJWTAuthenticationBundle/zipball/ebe0e2c6a0ae17b4702feffc89e32e3aaba6cb61", + "reference": "ebe0e2c6a0ae17b4702feffc89e32e3aaba6cb61", "shasum": "" }, "require": { "ext-openssl": "*", - "lcobucci/jwt": "^3.4|^4.0", - "namshi/jose": "^7.2", - "php": ">=7.1", - "symfony/config": "^4.4|^5.3|^6.0", - "symfony/dependency-injection": "^4.4|^5.3|^6.0", + "lcobucci/clock": "^3.0", + "lcobucci/jwt": "^5.0", + "php": ">=8.2", + "symfony/config": "^6.4|^7.0", + "symfony/dependency-injection": "^6.4|^7.0", "symfony/deprecation-contracts": "^2.4|^3.0", - "symfony/event-dispatcher": "^4.4|^5.3|^6.0", - "symfony/http-foundation": "^4.4|^5.3|^6.0", - "symfony/http-kernel": "^4.4|^5.3|^6.0", - "symfony/property-access": "^4.4|^5.3|^6.0", - "symfony/security-bundle": "^4.4|^5.3|^6.0", - "symfony/security-core": "^4.4|^5.3|^6.0", - "symfony/security-http": "^4.4|^5.3|^6.0", + "symfony/event-dispatcher": "^6.4|^7.0", + "symfony/http-foundation": "^6.4|^7.0", + "symfony/http-kernel": "^6.4|^7.0", + "symfony/property-access": "^6.4|^7.0", + "symfony/security-bundle": "^6.4|^7.0", "symfony/translation-contracts": "^1.0|^2.0|^3.0" }, - "conflict": { - "symfony/console": "<4.4" - }, "require-dev": { - "symfony/browser-kit": "^4.4|^5.3|^6.0", - "symfony/console": "^4.4|^5.3|^6.0", - "symfony/dom-crawler": "^4.4|^5.3|^6.0", - "symfony/filesystem": "^4.4|^5.3|^6.0", - "symfony/framework-bundle": "^4.4|^5.3|^6.0", - "symfony/phpunit-bridge": "^4.4|^5.3|^6.0", - "symfony/security-guard": "^4.4|^5.3", - "symfony/var-dumper": "^4.4|^5.3|^6.0", - "symfony/yaml": "^4.4|^5.3|^6.0" + "api-platform/core": "^3.0|^4.0", + "rector/rector": "^1.2", + "symfony/browser-kit": "^6.4|^7.0", + "symfony/console": "^6.4|^7.0", + "symfony/dom-crawler": "^6.4|^7.0", + "symfony/filesystem": "^6.4|^7.0", + "symfony/framework-bundle": "^6.4|^7.0", + "symfony/phpunit-bridge": "^6.4|^7.0", + "symfony/var-dumper": "^6.4|^7.0", + "symfony/yaml": "^6.4|^7.0" }, "suggest": { "gesdinet/jwt-refresh-token-bundle": "Implements a refresh token system over Json Web Tokens in Symfony", @@ -4626,7 +4534,7 @@ ], "support": { "issues": "https://github.com/lexik/LexikJWTAuthenticationBundle/issues", - "source": "https://github.com/lexik/LexikJWTAuthenticationBundle/tree/v2.16.0" + "source": "https://github.com/lexik/LexikJWTAuthenticationBundle/tree/v3.1.1" }, "funding": [ { @@ -4638,7 +4546,7 @@ "type": "tidelift" } ], - "time": "2022-06-12T16:22:12+00:00" + "time": "2025-01-06T16:34:57+00:00" }, { "name": "liip/imagine-bundle", @@ -4744,31 +4652,32 @@ }, { "name": "maennchen/zipstream-php", - "version": "3.1.1", + "version": "3.1.2", "source": { "type": "git", "url": "https://github.com/maennchen/ZipStream-PHP.git", - "reference": "6187e9cc4493da94b9b63eb2315821552015fca9" + "reference": "aeadcf5c412332eb426c0f9b4485f6accba2a99f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/6187e9cc4493da94b9b63eb2315821552015fca9", - "reference": "6187e9cc4493da94b9b63eb2315821552015fca9", + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/aeadcf5c412332eb426c0f9b4485f6accba2a99f", + "reference": "aeadcf5c412332eb426c0f9b4485f6accba2a99f", "shasum": "" }, "require": { "ext-mbstring": "*", "ext-zlib": "*", - "php-64bit": "^8.1" + "php-64bit": "^8.2" }, "require-dev": { + "brianium/paratest": "^7.7", "ext-zip": "*", "friendsofphp/php-cs-fixer": "^3.16", "guzzlehttp/guzzle": "^7.5", "mikey179/vfsstream": "^1.6", "php-coveralls/php-coveralls": "^2.5", - "phpunit/phpunit": "^10.0", - "vimeo/psalm": "^5.0" + "phpunit/phpunit": "^11.0", + "vimeo/psalm": "^6.0" }, "suggest": { "guzzlehttp/psr7": "^2.4", @@ -4809,7 +4718,7 @@ ], "support": { "issues": "https://github.com/maennchen/ZipStream-PHP/issues", - "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.1" + "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.2" }, "funding": [ { @@ -4817,7 +4726,7 @@ "type": "github" } ], - "time": "2024-10-10T12:33:01+00:00" + "time": "2025-01-27T12:07:53+00:00" }, { "name": "markbaker/complex", @@ -4990,21 +4899,21 @@ }, { "name": "mongodb/mongodb", - "version": "1.21.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/mongodb/mongo-php-library.git", - "reference": "37bc8df3a67ddf8380704a5ba5dbd00e92ec1f6a" + "reference": "04cd7edc6a28950e3fab6eccb2869d72a0541232" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/37bc8df3a67ddf8380704a5ba5dbd00e92ec1f6a", - "reference": "37bc8df3a67ddf8380704a5ba5dbd00e92ec1f6a", + "url": "https://api.github.com/repos/mongodb/mongo-php-library/zipball/04cd7edc6a28950e3fab6eccb2869d72a0541232", + "reference": "04cd7edc6a28950e3fab6eccb2869d72a0541232", "shasum": "" }, "require": { "composer-runtime-api": "^2.0", - "ext-mongodb": "^1.21.0", + "ext-mongodb": "^2.0", "php": "^8.1", "psr/log": "^1.1.4|^2|^3" }, @@ -5060,9 +4969,9 @@ ], "support": { "issues": "https://github.com/mongodb/mongo-php-library/issues", - "source": "https://github.com/mongodb/mongo-php-library/tree/1.21.1" + "source": "https://github.com/mongodb/mongo-php-library/tree/2.0.0" }, - "time": "2025-02-28T17:24:20+00:00" + "time": "2025-04-10T08:34:11+00:00" }, { "name": "monolog/monolog", @@ -5430,16 +5339,16 @@ }, { "name": "myclabs/deep-copy", - "version": "1.13.0", + "version": "1.13.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "024473a478be9df5fdaca2c793f2232fe788e414" + "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/024473a478be9df5fdaca2c793f2232fe788e414", - "reference": "024473a478be9df5fdaca2c793f2232fe788e414", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/1720ddd719e16cf0db4eb1c6eca108031636d46c", + "reference": "1720ddd719e16cf0db4eb1c6eca108031636d46c", "shasum": "" }, "require": { @@ -5478,7 +5387,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.13.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.13.1" }, "funding": [ { @@ -5486,7 +5395,7 @@ "type": "tidelift" } ], - "time": "2025-02-12T12:17:51+00:00" + "time": "2025-04-29T12:36:36+00:00" }, { "name": "myclabs/php-enum", @@ -5551,73 +5460,6 @@ ], "time": "2025-01-14T11:49:03+00:00" }, - { - "name": "namshi/jose", - "version": "7.2.3", - "source": { - "type": "git", - "url": "https://github.com/namshi/jose.git", - "reference": "89a24d7eb3040e285dd5925fcad992378b82bcff" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/namshi/jose/zipball/89a24d7eb3040e285dd5925fcad992378b82bcff", - "reference": "89a24d7eb3040e285dd5925fcad992378b82bcff", - "shasum": "" - }, - "require": { - "ext-date": "*", - "ext-hash": "*", - "ext-json": "*", - "ext-pcre": "*", - "ext-spl": "*", - "php": ">=5.5", - "symfony/polyfill-php56": "^1.0" - }, - "require-dev": { - "phpseclib/phpseclib": "^2.0", - "phpunit/phpunit": "^4.5|^5.0", - "satooshi/php-coveralls": "^1.0" - }, - "suggest": { - "ext-openssl": "Allows to use OpenSSL as crypto engine.", - "phpseclib/phpseclib": "Allows to use Phpseclib as crypto engine, use version ^2.0." - }, - "type": "library", - "autoload": { - "psr-4": { - "Namshi\\JOSE\\": "src/Namshi/JOSE/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Alessandro Nadalin", - "email": "alessandro.nadalin@gmail.com" - }, - { - "name": "Alessandro Cinelli (cirpo)", - "email": "alessandro.cinelli@gmail.com" - } - ], - "description": "JSON Object Signing and Encryption library for PHP.", - "keywords": [ - "JSON Web Signature", - "JSON Web Token", - "JWS", - "json", - "jwt", - "token" - ], - "support": { - "issues": "https://github.com/namshi/jose/issues", - "source": "https://github.com/namshi/jose/tree/master" - }, - "time": "2016-12-05T07:27:31+00:00" - }, { "name": "nelmio/api-doc-bundle", "version": "v4.11.1", @@ -5794,16 +5636,16 @@ }, { "name": "nesbot/carbon", - "version": "3.9.0", + "version": "3.9.1", "source": { "type": "git", "url": "https://github.com/CarbonPHP/carbon.git", - "reference": "6d16a8a015166fe54e22c042e0805c5363aef50d" + "reference": "ced71f79398ece168e24f7f7710462f462310d4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/6d16a8a015166fe54e22c042e0805c5363aef50d", - "reference": "6d16a8a015166fe54e22c042e0805c5363aef50d", + "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/ced71f79398ece168e24f7f7710462f462310d4d", + "reference": "ced71f79398ece168e24f7f7710462f462310d4d", "shasum": "" }, "require": { @@ -5896,7 +5738,7 @@ "type": "tidelift" } ], - "time": "2025-03-27T12:57:33+00:00" + "time": "2025-05-01T19:51:51+00:00" }, { "name": "nicolab/php-ftp-client", @@ -6555,16 +6397,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.6.1", + "version": "5.6.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8" + "reference": "92dde6a5919e34835c506ac8c523ef095a95ed62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", - "reference": "e5e784149a09bd69d9a5e3b01c5cbd2e2bd653d8", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/92dde6a5919e34835c506ac8c523ef095a95ed62", + "reference": "92dde6a5919e34835c506ac8c523ef095a95ed62", "shasum": "" }, "require": { @@ -6613,9 +6455,9 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.1" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.2" }, - "time": "2024-12-07T09:39:29+00:00" + "time": "2025-04-13T19:20:35+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -8609,16 +8451,16 @@ }, { "name": "symfony/cache", - "version": "v6.4.20", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "95af448bb7c3d8db02f7b4f5cbf3cb7a6ff1e432" + "reference": "d1abcf763a7414f2e572f676f22da7a06c8cd9ee" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/95af448bb7c3d8db02f7b4f5cbf3cb7a6ff1e432", - "reference": "95af448bb7c3d8db02f7b4f5cbf3cb7a6ff1e432", + "url": "https://api.github.com/repos/symfony/cache/zipball/d1abcf763a7414f2e572f676f22da7a06c8cd9ee", + "reference": "d1abcf763a7414f2e572f676f22da7a06c8cd9ee", "shasum": "" }, "require": { @@ -8685,7 +8527,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v6.4.20" + "source": "https://github.com/symfony/cache/tree/v6.4.21" }, "funding": [ { @@ -8701,7 +8543,7 @@ "type": "tidelift" } ], - "time": "2025-03-08T15:51:34+00:00" + "time": "2025-04-08T08:21:20+00:00" }, { "name": "symfony/cache-contracts", @@ -8930,16 +8772,16 @@ }, { "name": "symfony/console", - "version": "v6.4.20", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "2e4af9c952617cc3f9559ff706aee420a8464c36" + "reference": "a3011c7b7adb58d89f6c0d822abb641d7a5f9719" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/2e4af9c952617cc3f9559ff706aee420a8464c36", - "reference": "2e4af9c952617cc3f9559ff706aee420a8464c36", + "url": "https://api.github.com/repos/symfony/console/zipball/a3011c7b7adb58d89f6c0d822abb641d7a5f9719", + "reference": "a3011c7b7adb58d89f6c0d822abb641d7a5f9719", "shasum": "" }, "require": { @@ -9004,7 +8846,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.4.20" + "source": "https://github.com/symfony/console/tree/v6.4.21" }, "funding": [ { @@ -9020,7 +8862,7 @@ "type": "tidelift" } ], - "time": "2025-03-03T17:16:38+00:00" + "time": "2025-04-07T15:42:41+00:00" }, { "name": "symfony/dependency-injection", @@ -9172,16 +9014,16 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v6.4.20", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "7205dbc642bac2ecbf108fadbf9a04aa08290a2a" + "reference": "fcce66ede41ca56100b91fd4a00131ba6cf89aba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/7205dbc642bac2ecbf108fadbf9a04aa08290a2a", - "reference": "7205dbc642bac2ecbf108fadbf9a04aa08290a2a", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/fcce66ede41ca56100b91fd4a00131ba6cf89aba", + "reference": "fcce66ede41ca56100b91fd4a00131ba6cf89aba", "shasum": "" }, "require": { @@ -9260,7 +9102,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v6.4.20" + "source": "https://github.com/symfony/doctrine-bridge/tree/v6.4.21" }, "funding": [ { @@ -9276,7 +9118,7 @@ "type": "tidelift" } ], - "time": "2025-02-28T20:55:44+00:00" + "time": "2025-04-27T15:22:02+00:00" }, { "name": "symfony/dotenv", @@ -9847,16 +9689,16 @@ }, { "name": "symfony/form", - "version": "v6.4.20", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/form.git", - "reference": "3929e2a60a828f39df6765fb49d224cc629fa529" + "reference": "44a0e253c16a3187299f07b8f80e23ecb000d360" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/form/zipball/3929e2a60a828f39df6765fb49d224cc629fa529", - "reference": "3929e2a60a828f39df6765fb49d224cc629fa529", + "url": "https://api.github.com/repos/symfony/form/zipball/44a0e253c16a3187299f07b8f80e23ecb000d360", + "reference": "44a0e253c16a3187299f07b8f80e23ecb000d360", "shasum": "" }, "require": { @@ -9924,7 +9766,7 @@ "description": "Allows to easily create, process and reuse HTML forms", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/form/tree/v6.4.20" + "source": "https://github.com/symfony/form/tree/v6.4.21" }, "funding": [ { @@ -9940,20 +9782,20 @@ "type": "tidelift" } ], - "time": "2025-03-27T10:21:45+00:00" + "time": "2025-04-27T15:22:02+00:00" }, { "name": "symfony/framework-bundle", - "version": "v6.4.20", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "51418a20079cb25af3fcb8fa8ae1ed82f7fdd1ce" + "reference": "d0b06133b00e4dd3df7f47a3188fb7baabcc6b2a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/51418a20079cb25af3fcb8fa8ae1ed82f7fdd1ce", - "reference": "51418a20079cb25af3fcb8fa8ae1ed82f7fdd1ce", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/d0b06133b00e4dd3df7f47a3188fb7baabcc6b2a", + "reference": "d0b06133b00e4dd3df7f47a3188fb7baabcc6b2a", "shasum": "" }, "require": { @@ -10073,7 +9915,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.4.20" + "source": "https://github.com/symfony/framework-bundle/tree/v6.4.21" }, "funding": [ { @@ -10089,7 +9931,7 @@ "type": "tidelift" } ], - "time": "2025-03-23T16:46:24+00:00" + "time": "2025-04-27T13:27:38+00:00" }, { "name": "symfony/http-client", @@ -10264,16 +10106,16 @@ }, { "name": "symfony/http-foundation", - "version": "v6.4.18", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "d0492d6217e5ab48f51fca76f64cf8e78919d0db" + "reference": "3f0c7ea41db479383b81d436b836d37168fd5b99" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/d0492d6217e5ab48f51fca76f64cf8e78919d0db", - "reference": "d0492d6217e5ab48f51fca76f64cf8e78919d0db", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3f0c7ea41db479383b81d436b836d37168fd5b99", + "reference": "3f0c7ea41db479383b81d436b836d37168fd5b99", "shasum": "" }, "require": { @@ -10321,7 +10163,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.4.18" + "source": "https://github.com/symfony/http-foundation/tree/v6.4.21" }, "funding": [ { @@ -10337,20 +10179,20 @@ "type": "tidelift" } ], - "time": "2025-01-09T15:48:56+00:00" + "time": "2025-04-27T13:27:38+00:00" }, { "name": "symfony/http-kernel", - "version": "v6.4.20", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "6be6db31bc74693ce5516e1fd5e5ff1171005e37" + "reference": "983ca05eec6623920d24ec0f1005f487d3734a0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6be6db31bc74693ce5516e1fd5e5ff1171005e37", - "reference": "6be6db31bc74693ce5516e1fd5e5ff1171005e37", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/983ca05eec6623920d24ec0f1005f487d3734a0c", + "reference": "983ca05eec6623920d24ec0f1005f487d3734a0c", "shasum": "" }, "require": { @@ -10435,7 +10277,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.4.20" + "source": "https://github.com/symfony/http-kernel/tree/v6.4.21" }, "funding": [ { @@ -10451,20 +10293,20 @@ "type": "tidelift" } ], - "time": "2025-03-28T13:27:10+00:00" + "time": "2025-05-02T08:46:38+00:00" }, { "name": "symfony/intl", - "version": "v6.4.15", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/intl.git", - "reference": "b1d5e8d82615b60f229216edfee0b59e2ef66da6" + "reference": "b248d227fa10fd6345efd4c1c74efaa1c1de6f76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/intl/zipball/b1d5e8d82615b60f229216edfee0b59e2ef66da6", - "reference": "b1d5e8d82615b60f229216edfee0b59e2ef66da6", + "url": "https://api.github.com/repos/symfony/intl/zipball/b248d227fa10fd6345efd4c1c74efaa1c1de6f76", + "reference": "b248d227fa10fd6345efd4c1c74efaa1c1de6f76", "shasum": "" }, "require": { @@ -10518,7 +10360,7 @@ "localization" ], "support": { - "source": "https://github.com/symfony/intl/tree/v6.4.15" + "source": "https://github.com/symfony/intl/tree/v6.4.21" }, "funding": [ { @@ -10534,7 +10376,7 @@ "type": "tidelift" } ], - "time": "2024-11-08T15:28:48+00:00" + "time": "2025-04-07T19:02:30+00:00" }, { "name": "symfony/lock", @@ -10617,16 +10459,16 @@ }, { "name": "symfony/mailer", - "version": "v6.4.18", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "e93a6ae2767d7f7578c2b7961d9d8e27580b2b11" + "reference": "ada2809ccd4ec27aba9fc344e3efdaec624c6438" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/e93a6ae2767d7f7578c2b7961d9d8e27580b2b11", - "reference": "e93a6ae2767d7f7578c2b7961d9d8e27580b2b11", + "url": "https://api.github.com/repos/symfony/mailer/zipball/ada2809ccd4ec27aba9fc344e3efdaec624c6438", + "reference": "ada2809ccd4ec27aba9fc344e3efdaec624c6438", "shasum": "" }, "require": { @@ -10677,7 +10519,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.18" + "source": "https://github.com/symfony/mailer/tree/v6.4.21" }, "funding": [ { @@ -10693,20 +10535,20 @@ "type": "tidelift" } ], - "time": "2025-01-24T15:27:15+00:00" + "time": "2025-04-26T23:47:35+00:00" }, { "name": "symfony/mime", - "version": "v6.4.19", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "ac537b6c55ccc2c749f3c979edfa9ec14aaed4f3" + "reference": "fec8aa5231f3904754955fad33c2db50594d22d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/ac537b6c55ccc2c749f3c979edfa9ec14aaed4f3", - "reference": "ac537b6c55ccc2c749f3c979edfa9ec14aaed4f3", + "url": "https://api.github.com/repos/symfony/mime/zipball/fec8aa5231f3904754955fad33c2db50594d22d1", + "reference": "fec8aa5231f3904754955fad33c2db50594d22d1", "shasum": "" }, "require": { @@ -10762,7 +10604,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v6.4.19" + "source": "https://github.com/symfony/mime/tree/v6.4.21" }, "funding": [ { @@ -10778,7 +10620,7 @@ "type": "tidelift" } ], - "time": "2025-02-17T21:23:52+00:00" + "time": "2025-04-27T13:27:38+00:00" }, { "name": "symfony/monolog-bridge", @@ -10942,16 +10784,16 @@ }, { "name": "symfony/notifier", - "version": "v6.4.13", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/notifier.git", - "reference": "c46321b53391088861bf627cd9e24873d216cf00" + "reference": "ece4caf82ee43b3f2ce543959272707c846011a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/notifier/zipball/c46321b53391088861bf627cd9e24873d216cf00", - "reference": "c46321b53391088861bf627cd9e24873d216cf00", + "url": "https://api.github.com/repos/symfony/notifier/zipball/ece4caf82ee43b3f2ce543959272707c846011a3", + "reference": "ece4caf82ee43b3f2ce543959272707c846011a3", "shasum": "" }, "require": { @@ -11000,7 +10842,7 @@ "notifier" ], "support": { - "source": "https://github.com/symfony/notifier/tree/v6.4.13" + "source": "https://github.com/symfony/notifier/tree/v6.4.21" }, "funding": [ { @@ -11016,7 +10858,7 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-04-27T13:58:34+00:00" }, { "name": "symfony/options-resolver", @@ -11159,7 +11001,7 @@ }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", @@ -11217,7 +11059,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0" }, "funding": [ { @@ -11237,16 +11079,16 @@ }, { "name": "symfony/polyfill-intl-icu", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78" + "reference": "763d2a91fea5681509ca01acbc1c5e450d127811" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78", - "reference": "d80a05e9904d2c2b9b95929f3e4b5d3a8f418d78", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/763d2a91fea5681509ca01acbc1c5e450d127811", + "reference": "763d2a91fea5681509ca01acbc1c5e450d127811", "shasum": "" }, "require": { @@ -11301,7 +11143,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-icu/tree/v1.32.0" }, "funding": [ { @@ -11317,20 +11159,20 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2024-12-21T18:38:29+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773" + "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773", - "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/9614ac4d8061dc257ecc64cba1b140873dce8ad3", + "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3", "shasum": "" }, "require": { @@ -11384,7 +11226,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.32.0" }, "funding": [ { @@ -11400,11 +11242,11 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2024-09-10T14:38:51+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", @@ -11465,7 +11307,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0" }, "funding": [ { @@ -11485,19 +11327,20 @@ }, { "name": "symfony/polyfill-mbstring", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493", + "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493", "shasum": "" }, "require": { + "ext-iconv": "*", "php": ">=7.2" }, "provide": { @@ -11545,7 +11388,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0" }, "funding": [ { @@ -11561,7 +11404,7 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2024-12-23T08:48:59+00:00" }, { "name": "symfony/polyfill-php72", @@ -11630,16 +11473,16 @@ }, { "name": "symfony/polyfill-php80", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", - "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608", + "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608", "shasum": "" }, "require": { @@ -11690,7 +11533,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0" }, "funding": [ { @@ -11706,11 +11549,11 @@ "type": "tidelift" } ], - "time": "2024-09-09T11:45:10+00:00" + "time": "2025-01-02T08:10:11+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", @@ -11766,7 +11609,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.32.0" }, "funding": [ { @@ -11786,7 +11629,7 @@ }, { "name": "symfony/polyfill-php83", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", @@ -11842,7 +11685,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.32.0" }, "funding": [ { @@ -11862,16 +11705,16 @@ }, { "name": "symfony/polyfill-php84", - "version": "v1.31.0", + "version": "v1.32.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php84.git", - "reference": "e5493eb51311ab0b1cc2243416613f06ed8f18bd" + "reference": "000df7860439609837bbe28670b0be15783b7fbf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/e5493eb51311ab0b1cc2243416613f06ed8f18bd", - "reference": "e5493eb51311ab0b1cc2243416613f06ed8f18bd", + "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/000df7860439609837bbe28670b0be15783b7fbf", + "reference": "000df7860439609837bbe28670b0be15783b7fbf", "shasum": "" }, "require": { @@ -11918,7 +11761,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php84/tree/v1.31.0" + "source": "https://github.com/symfony/polyfill-php84/tree/v1.32.0" }, "funding": [ { @@ -11934,7 +11777,7 @@ "type": "tidelift" } ], - "time": "2024-09-09T12:04:04+00:00" + "time": "2025-02-20T12:04:08+00:00" }, { "name": "symfony/process", @@ -12391,16 +12234,16 @@ }, { "name": "symfony/security-bundle", - "version": "v6.4.13", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/security-bundle.git", - "reference": "181d1fcf5f88ef8212ed7f6434e5ff51c9d7dff3" + "reference": "99b656ff6046ef217d4e3f852940de7e22489849" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-bundle/zipball/181d1fcf5f88ef8212ed7f6434e5ff51c9d7dff3", - "reference": "181d1fcf5f88ef8212ed7f6434e5ff51c9d7dff3", + "url": "https://api.github.com/repos/symfony/security-bundle/zipball/99b656ff6046ef217d4e3f852940de7e22489849", + "reference": "99b656ff6046ef217d4e3f852940de7e22489849", "shasum": "" }, "require": { @@ -12483,7 +12326,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.4.13" + "source": "https://github.com/symfony/security-bundle/tree/v6.4.21" }, "funding": [ { @@ -12499,20 +12342,20 @@ "type": "tidelift" } ], - "time": "2024-09-25T14:18:03+00:00" + "time": "2025-04-27T13:27:38+00:00" }, { "name": "symfony/security-core", - "version": "v6.4.18", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "0ae7ae716968e00287ab9b7768405e0dc9cad109" + "reference": "c6e70da38436a9a49ed39d9cbead1ecf760f0fbd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/0ae7ae716968e00287ab9b7768405e0dc9cad109", - "reference": "0ae7ae716968e00287ab9b7768405e0dc9cad109", + "url": "https://api.github.com/repos/symfony/security-core/zipball/c6e70da38436a9a49ed39d9cbead1ecf760f0fbd", + "reference": "c6e70da38436a9a49ed39d9cbead1ecf760f0fbd", "shasum": "" }, "require": { @@ -12569,7 +12412,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v6.4.18" + "source": "https://github.com/symfony/security-core/tree/v6.4.21" }, "funding": [ { @@ -12585,7 +12428,7 @@ "type": "tidelift" } ], - "time": "2025-01-22T20:59:03+00:00" + "time": "2025-04-17T07:43:34+00:00" }, { "name": "symfony/security-csrf", @@ -12657,16 +12500,16 @@ }, { "name": "symfony/security-http", - "version": "v6.4.19", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "a57bb00b01036865e6c08d0c8540df429534df19" + "reference": "67d0edaf6702c3192f27ad483df9a875c9a1f1a2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/a57bb00b01036865e6c08d0c8540df429534df19", - "reference": "a57bb00b01036865e6c08d0c8540df429534df19", + "url": "https://api.github.com/repos/symfony/security-http/zipball/67d0edaf6702c3192f27ad483df9a875c9a1f1a2", + "reference": "67d0edaf6702c3192f27ad483df9a875c9a1f1a2", "shasum": "" }, "require": { @@ -12725,7 +12568,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v6.4.19" + "source": "https://github.com/symfony/security-http/tree/v6.4.21" }, "funding": [ { @@ -12741,20 +12584,20 @@ "type": "tidelift" } ], - "time": "2025-01-28T19:24:43+00:00" + "time": "2025-04-27T13:58:34+00:00" }, { "name": "symfony/serializer", - "version": "v6.4.19", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "a221b2f6066af304d760cff7a26f201b4fab4aef" + "reference": "c45f8f7763afb11e85772c0c1debb8f272c17f51" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/a221b2f6066af304d760cff7a26f201b4fab4aef", - "reference": "a221b2f6066af304d760cff7a26f201b4fab4aef", + "url": "https://api.github.com/repos/symfony/serializer/zipball/c45f8f7763afb11e85772c0c1debb8f272c17f51", + "reference": "c45f8f7763afb11e85772c0c1debb8f272c17f51", "shasum": "" }, "require": { @@ -12823,7 +12666,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.4.19" + "source": "https://github.com/symfony/serializer/tree/v6.4.21" }, "funding": [ { @@ -12839,7 +12682,7 @@ "type": "tidelift" } ], - "time": "2025-02-24T08:42:36+00:00" + "time": "2025-04-27T13:27:38+00:00" }, { "name": "symfony/service-contracts", @@ -12995,16 +12838,16 @@ }, { "name": "symfony/string", - "version": "v6.4.15", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f" + "reference": "73e2c6966a5aef1d4892873ed5322245295370c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", - "reference": "73a5e66ea2e1677c98d4449177c5a9cf9d8b4c6f", + "url": "https://api.github.com/repos/symfony/string/zipball/73e2c6966a5aef1d4892873ed5322245295370c6", + "reference": "73e2c6966a5aef1d4892873ed5322245295370c6", "shasum": "" }, "require": { @@ -13061,7 +12904,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.4.15" + "source": "https://github.com/symfony/string/tree/v6.4.21" }, "funding": [ { @@ -13077,7 +12920,7 @@ "type": "tidelift" } ], - "time": "2024-11-13T13:31:12+00:00" + "time": "2025-04-18T15:23:29+00:00" }, { "name": "symfony/templating", @@ -13147,16 +12990,16 @@ }, { "name": "symfony/translation", - "version": "v6.4.19", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/translation.git", - "reference": "3b9bf9f33997c064885a7bfc126c14b9daa0e00e" + "reference": "bb92ea5588396b319ba43283a5a3087a034cb29c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/translation/zipball/3b9bf9f33997c064885a7bfc126c14b9daa0e00e", - "reference": "3b9bf9f33997c064885a7bfc126c14b9daa0e00e", + "url": "https://api.github.com/repos/symfony/translation/zipball/bb92ea5588396b319ba43283a5a3087a034cb29c", + "reference": "bb92ea5588396b319ba43283a5a3087a034cb29c", "shasum": "" }, "require": { @@ -13222,7 +13065,7 @@ "description": "Provides tools to internationalize your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/translation/tree/v6.4.19" + "source": "https://github.com/symfony/translation/tree/v6.4.21" }, "funding": [ { @@ -13238,7 +13081,7 @@ "type": "tidelift" } ], - "time": "2025-02-13T10:18:43+00:00" + "time": "2025-04-07T19:02:30+00:00" }, { "name": "symfony/translation-contracts", @@ -13320,16 +13163,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v6.4.20", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "bb423dfaa51b6d88b1d64197ae695a0c8ac73778" + "reference": "0457b7944bf1cc9c846c98d4923b5379ec6afc09" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/bb423dfaa51b6d88b1d64197ae695a0c8ac73778", - "reference": "bb423dfaa51b6d88b1d64197ae695a0c8ac73778", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/0457b7944bf1cc9c846c98d4923b5379ec6afc09", + "reference": "0457b7944bf1cc9c846c98d4923b5379ec6afc09", "shasum": "" }, "require": { @@ -13409,7 +13252,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v6.4.20" + "source": "https://github.com/symfony/twig-bridge/tree/v6.4.21" }, "funding": [ { @@ -13425,7 +13268,7 @@ "type": "tidelift" } ], - "time": "2025-03-28T13:08:36+00:00" + "time": "2025-04-27T13:27:38+00:00" }, { "name": "symfony/twig-bundle", @@ -13775,104 +13618,6 @@ ], "time": "2025-03-12T08:41:47+00:00" }, - { - "name": "symfony/ux-turbo", - "version": "v2.24.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/ux-turbo.git", - "reference": "22954300bd0b01ca46f17c7890ea15138d9cf67f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/ux-turbo/zipball/22954300bd0b01ca46f17c7890ea15138d9cf67f", - "reference": "22954300bd0b01ca46f17c7890ea15138d9cf67f", - "shasum": "" - }, - "require": { - "php": ">=8.1", - "symfony/stimulus-bundle": "^2.9.1" - }, - "conflict": { - "symfony/flex": "<1.13" - }, - "require-dev": { - "dbrekelmans/bdi": "dev-main", - "doctrine/doctrine-bundle": "^2.4.3", - "doctrine/orm": "^2.8 | 3.0", - "phpstan/phpstan": "^1.10", - "symfony/asset-mapper": "^6.4|^7.0", - "symfony/debug-bundle": "^5.4|^6.0|^7.0", - "symfony/expression-language": "^5.4|^6.0|^7.0", - "symfony/form": "^5.4|^6.0|^7.0", - "symfony/framework-bundle": "^6.4|^7.0", - "symfony/mercure-bundle": "^0.3.7", - "symfony/messenger": "^5.4|^6.0|^7.0", - "symfony/panther": "^2.1", - "symfony/phpunit-bridge": "^5.4|^6.0|^7.0", - "symfony/process": "^5.4|6.3.*|^7.0", - "symfony/property-access": "^5.4|^6.0|^7.0", - "symfony/security-core": "^5.4|^6.0|^7.0", - "symfony/stopwatch": "^5.4|^6.0|^7.0", - "symfony/twig-bundle": "^6.4|^7.0", - "symfony/ux-twig-component": "^2.21", - "symfony/web-profiler-bundle": "^5.4|^6.0|^7.0" - }, - "type": "symfony-bundle", - "extra": { - "thanks": { - "url": "https://github.com/symfony/ux", - "name": "symfony/ux" - } - }, - "autoload": { - "psr-4": { - "Symfony\\UX\\Turbo\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kévin Dunglas", - "email": "kevin@dunglas.fr" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Hotwire Turbo integration for Symfony", - "homepage": "https://symfony.com", - "keywords": [ - "hotwire", - "javascript", - "mercure", - "symfony-ux", - "turbo", - "turbo-stream" - ], - "support": { - "source": "https://github.com/symfony/ux-turbo/tree/v2.24.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2025-04-04T17:29:20+00:00" - }, { "name": "symfony/ux-twig-component", "version": "v2.24.0", @@ -14038,16 +13783,16 @@ }, { "name": "symfony/validator", - "version": "v6.4.20", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "9314555aceb8d8ce8abda81e1e47e439258d9309" + "reference": "47610116f476595b90c368ff2a22514050712785" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/9314555aceb8d8ce8abda81e1e47e439258d9309", - "reference": "9314555aceb8d8ce8abda81e1e47e439258d9309", + "url": "https://api.github.com/repos/symfony/validator/zipball/47610116f476595b90c368ff2a22514050712785", + "reference": "47610116f476595b90c368ff2a22514050712785", "shasum": "" }, "require": { @@ -14115,7 +13860,7 @@ "description": "Provides tools to validate values", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/validator/tree/v6.4.20" + "source": "https://github.com/symfony/validator/tree/v6.4.21" }, "funding": [ { @@ -14131,20 +13876,20 @@ "type": "tidelift" } ], - "time": "2025-03-14T14:22:58+00:00" + "time": "2025-04-30T18:50:04+00:00" }, { "name": "symfony/var-dumper", - "version": "v6.4.18", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "4ad10cf8b020e77ba665305bb7804389884b4837" + "reference": "22560f80c0c5cd58cc0bcaf73455ffd81eb380d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/4ad10cf8b020e77ba665305bb7804389884b4837", - "reference": "4ad10cf8b020e77ba665305bb7804389884b4837", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/22560f80c0c5cd58cc0bcaf73455ffd81eb380d5", + "reference": "22560f80c0c5cd58cc0bcaf73455ffd81eb380d5", "shasum": "" }, "require": { @@ -14200,7 +13945,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v6.4.18" + "source": "https://github.com/symfony/var-dumper/tree/v6.4.21" }, "funding": [ { @@ -14216,20 +13961,20 @@ "type": "tidelift" } ], - "time": "2025-01-17T11:26:11+00:00" + "time": "2025-04-09T07:34:50+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.4.20", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "998df255e9e6a15a36ae35e9c6cd818c17cf92a2" + "reference": "717e7544aa99752c54ecba5c0e17459c48317472" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/998df255e9e6a15a36ae35e9c6cd818c17cf92a2", - "reference": "998df255e9e6a15a36ae35e9c6cd818c17cf92a2", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/717e7544aa99752c54ecba5c0e17459c48317472", + "reference": "717e7544aa99752c54ecba5c0e17459c48317472", "shasum": "" }, "require": { @@ -14277,7 +14022,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.4.20" + "source": "https://github.com/symfony/var-exporter/tree/v6.4.21" }, "funding": [ { @@ -14293,7 +14038,7 @@ "type": "tidelift" } ], - "time": "2025-03-13T09:55:08+00:00" + "time": "2025-04-27T21:06:26+00:00" }, { "name": "symfony/web-link", @@ -14380,16 +14125,16 @@ }, { "name": "symfony/yaml", - "version": "v6.4.20", + "version": "v6.4.21", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "28ee818fce4a73ac1474346b94e4b966f665c53f" + "reference": "f01987f45676778b474468aa266fe2eda1f2bc7e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/28ee818fce4a73ac1474346b94e4b966f665c53f", - "reference": "28ee818fce4a73ac1474346b94e4b966f665c53f", + "url": "https://api.github.com/repos/symfony/yaml/zipball/f01987f45676778b474468aa266fe2eda1f2bc7e", + "reference": "f01987f45676778b474468aa266fe2eda1f2bc7e", "shasum": "" }, "require": { @@ -14432,7 +14177,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.4.20" + "source": "https://github.com/symfony/yaml/tree/v6.4.21" }, "funding": [ { @@ -14448,7 +14193,7 @@ "type": "tidelift" } ], - "time": "2025-02-27T20:15:30+00:00" + "time": "2025-04-04T09:48:44+00:00" }, { "name": "symfonycasts/dynamic-forms", @@ -14661,16 +14406,16 @@ }, { "name": "twig/extra-bundle", - "version": "v3.20.0", + "version": "v3.21.0", "source": { "type": "git", "url": "https://github.com/twigphp/twig-extra-bundle.git", - "reference": "9df5e1dbb6a68c0665ae5603f6f2c20815647876" + "reference": "62d1cf47a1aa009cbd07b21045b97d3d5cb79896" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/9df5e1dbb6a68c0665ae5603f6f2c20815647876", - "reference": "9df5e1dbb6a68c0665ae5603f6f2c20815647876", + "url": "https://api.github.com/repos/twigphp/twig-extra-bundle/zipball/62d1cf47a1aa009cbd07b21045b97d3d5cb79896", + "reference": "62d1cf47a1aa009cbd07b21045b97d3d5cb79896", "shasum": "" }, "require": { @@ -14719,7 +14464,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.20.0" + "source": "https://github.com/twigphp/twig-extra-bundle/tree/v3.21.0" }, "funding": [ { @@ -14731,11 +14476,11 @@ "type": "tidelift" } ], - "time": "2025-02-08T09:47:15+00:00" + "time": "2025-02-19T14:29:33+00:00" }, { "name": "twig/intl-extra", - "version": "v3.20.0", + "version": "v3.21.0", "source": { "type": "git", "url": "https://github.com/twigphp/intl-extra.git", @@ -14783,7 +14528,7 @@ "twig" ], "support": { - "source": "https://github.com/twigphp/intl-extra/tree/v3.20.0" + "source": "https://github.com/twigphp/intl-extra/tree/v3.21.0" }, "funding": [ { @@ -14799,7 +14544,7 @@ }, { "name": "twig/string-extra", - "version": "v3.20.0", + "version": "v3.21.0", "source": { "type": "git", "url": "https://github.com/twigphp/string-extra.git", @@ -14850,7 +14595,7 @@ "unicode" ], "support": { - "source": "https://github.com/twigphp/string-extra/tree/v3.20.0" + "source": "https://github.com/twigphp/string-extra/tree/v3.21.0" }, "funding": [ { @@ -14866,16 +14611,16 @@ }, { "name": "twig/twig", - "version": "v3.20.0", + "version": "v3.21.1", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "3468920399451a384bef53cf7996965f7cd40183" + "reference": "285123877d4dd97dd7c11842ac5fb7e86e60d81d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/3468920399451a384bef53cf7996965f7cd40183", - "reference": "3468920399451a384bef53cf7996965f7cd40183", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/285123877d4dd97dd7c11842ac5fb7e86e60d81d", + "reference": "285123877d4dd97dd7c11842ac5fb7e86e60d81d", "shasum": "" }, "require": { @@ -14929,7 +14674,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.20.0" + "source": "https://github.com/twigphp/Twig/tree/v3.21.1" }, "funding": [ { @@ -14941,7 +14686,7 @@ "type": "tidelift" } ], - "time": "2025-02-13T08:34:43+00:00" + "time": "2025-05-03T07:21:55+00:00" }, { "name": "webmozart/assert", @@ -15316,20 +15061,20 @@ }, { "name": "hamcrest/hamcrest-php", - "version": "v2.0.1", + "version": "v2.1.1", "source": { "type": "git", "url": "https://github.com/hamcrest/hamcrest-php.git", - "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3" + "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", - "reference": "8c3d0a3f6af734494ad8f6fbbee0ba92422859f3", + "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487", + "reference": "f8b1c0173b22fa6ec77a81fe63e5b01eba7e6487", "shasum": "" }, "require": { - "php": "^5.3|^7.0|^8.0" + "php": "^7.4|^8.0" }, "replace": { "cordoval/hamcrest-php": "*", @@ -15337,8 +15082,8 @@ "kodova/hamcrest-php": "*" }, "require-dev": { - "phpunit/php-file-iterator": "^1.4 || ^2.0", - "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0" + "phpunit/php-file-iterator": "^1.4 || ^2.0 || ^3.0", + "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0 || ^8.0 || ^9.0" }, "type": "library", "extra": { @@ -15361,22 +15106,22 @@ ], "support": { "issues": "https://github.com/hamcrest/hamcrest-php/issues", - "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.0.1" + "source": "https://github.com/hamcrest/hamcrest-php/tree/v2.1.1" }, - "time": "2020-07-09T08:09:16+00:00" + "time": "2025-04-30T06:54:44+00:00" }, { "name": "hautelook/alice-bundle", - "version": "2.12.2", + "version": "2.13.0", "source": { "type": "git", "url": "https://github.com/theofidry/AliceBundle.git", - "reference": "76485f14618725c3555e3c2737c68088d06104fb" + "reference": "7b8cf62973853ec406ecb27f3b90b91a1b525a05" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/AliceBundle/zipball/76485f14618725c3555e3c2737c68088d06104fb", - "reference": "76485f14618725c3555e3c2737c68088d06104fb", + "url": "https://api.github.com/repos/theofidry/AliceBundle/zipball/7b8cf62973853ec406ecb27f3b90b91a1b525a05", + "reference": "7b8cf62973853ec406ecb27f3b90b91a1b525a05", "shasum": "" }, "require": { @@ -15384,17 +15129,18 @@ "doctrine/doctrine-bundle": "^2.5", "doctrine/orm": "^2.10.0", "doctrine/persistence": "^2.2 || ^3.0", - "php": "^8.1", + "php": "^8.2", "psr/log": "^1.0 || ^2.0 || ^3.0", - "symfony/finder": "^5.4.2 || ^6.0", - "symfony/framework-bundle": "^5.4.2 || ^6.0", + "symfony/finder": "^6.4 || ^7.0", + "symfony/framework-bundle": "^6.4 || ^7.0", "theofidry/alice-data-fixtures": "^1.5" }, "require-dev": { + "monolog/monolog": "^3.5", "phpspec/prophecy": "^1.7", "phpspec/prophecy-phpunit": "^2.0", "phpunit/phpunit": "^9.5", - "symfony/phpunit-bridge": "^6.0" + "symfony/phpunit-bridge": "^6.4 || ^7.0" }, "type": "symfony-bundle", "extra": { @@ -15434,42 +15180,43 @@ ], "support": { "issues": "https://github.com/theofidry/AliceBundle/issues", - "source": "https://github.com/theofidry/AliceBundle/tree/2.12.2" + "source": "https://github.com/theofidry/AliceBundle/tree/2.13.0" }, - "time": "2023-11-22T23:06:15+00:00" + "time": "2023-12-03T23:53:29+00:00" }, { "name": "maglnet/composer-require-checker", - "version": "4.7.1", + "version": "4.16.1", "source": { "type": "git", "url": "https://github.com/maglnet/ComposerRequireChecker.git", - "reference": "e49c58b18fef21e37941a642c1a70d3962e86f28" + "reference": "2449a6298a0c39d940287d5d3afaf05a6f80fd0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/maglnet/ComposerRequireChecker/zipball/e49c58b18fef21e37941a642c1a70d3962e86f28", - "reference": "e49c58b18fef21e37941a642c1a70d3962e86f28", + "url": "https://api.github.com/repos/maglnet/ComposerRequireChecker/zipball/2449a6298a0c39d940287d5d3afaf05a6f80fd0c", + "reference": "2449a6298a0c39d940287d5d3afaf05a6f80fd0c", "shasum": "" }, "require": { "composer-runtime-api": "^2.0.0", "ext-phar": "*", - "nikic/php-parser": "^4.17.1", - "php": "~8.1.0 || ~8.2.0 || ~8.3.0", - "symfony/console": "^6.3.4", + "nikic/php-parser": "^5.4.0", + "php": "~8.2.0 || ~8.3.0 || ~8.4.0", + "symfony/console": "^6.4.1 || ^7.0.1", "webmozart/assert": "^1.11.0", - "webmozart/glob": "^4.6.0" + "webmozart/glob": "^4.7.0" }, "require-dev": { "doctrine/coding-standard": "^12.0.0", "ext-zend-opcache": "*", - "mikey179/vfsstream": "^1.6.11", - "phing/phing": "^2.17.4", - "phpstan/phpstan": "^1.10.34", - "phpunit/phpunit": "^10.3.4", - "roave/infection-static-analysis-plugin": "^1.33", - "vimeo/psalm": "^5.15" + "phing/phing": "^3.0.1", + "phpstan/phpstan": "^2.1.2", + "phpunit/phpunit": "^11.5.7", + "psalm/plugin-phpunit": "^0.19.2", + "roave/infection-static-analysis-plugin": "^1.36.0", + "spatie/temporary-directory": "^2.3.0", + "vimeo/psalm": "^6.4.0" }, "bin": [ "bin/composer-require-checker" @@ -15504,19 +15251,19 @@ "description": "CLI tool to analyze composer dependencies and verify that no unknown symbols are used in the sources of a package", "homepage": "https://github.com/maglnet/ComposerRequireChecker", "keywords": [ - "analysis", "cli", "composer", "dependency", "imports", "require", - "requirements" + "requirements", + "static analysis" ], "support": { "issues": "https://github.com/maglnet/ComposerRequireChecker/issues", - "source": "https://github.com/maglnet/ComposerRequireChecker/tree/4.7.1" + "source": "https://github.com/maglnet/ComposerRequireChecker/tree/4.16.1" }, - "time": "2023-09-27T14:57:19+00:00" + "time": "2025-02-07T09:09:45+00:00" }, { "name": "masterminds/html5", @@ -15766,25 +15513,27 @@ }, { "name": "nikic/php-parser", - "version": "v4.19.4", + "version": "v5.4.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2" + "reference": "447a020a1f875a434d62f2a401f53b82a396e494" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/715f4d25e225bc47b293a8b997fe6ce99bf987d2", - "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/447a020a1f875a434d62f2a401f53b82a396e494", + "reference": "447a020a1f875a434d62f2a401f53b82a396e494", "shasum": "" }, "require": { + "ext-ctype": "*", + "ext-json": "*", "ext-tokenizer": "*", - "php": ">=7.1" + "php": ">=7.4" }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^9.0" }, "bin": [ "bin/php-parse" @@ -15792,7 +15541,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.9-dev" + "dev-master": "5.0-dev" } }, "autoload": { @@ -15816,9 +15565,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.4" + "source": "https://github.com/nikic/PHP-Parser/tree/v5.4.0" }, - "time": "2024-09-29T15:01:53+00:00" + "time": "2024-12-30T11:07:19+00:00" }, { "name": "phar-io/manifest", @@ -15944,12 +15693,12 @@ "source": { "type": "git", "url": "https://github.com/php-parallel-lint/PHP-Parallel-Lint.git", - "reference": "adc351fa7c019b8d931b47923101596caa018a14" + "reference": "923d01fe578be8a389201282f1468032bf38ca03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/adc351fa7c019b8d931b47923101596caa018a14", - "reference": "adc351fa7c019b8d931b47923101596caa018a14", + "url": "https://api.github.com/repos/php-parallel-lint/PHP-Parallel-Lint/zipball/923d01fe578be8a389201282f1468032bf38ca03", + "reference": "923d01fe578be8a389201282f1468032bf38ca03", "shasum": "" }, "require": { @@ -16002,7 +15751,7 @@ "issues": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/issues", "source": "https://github.com/php-parallel-lint/PHP-Parallel-Lint/tree/develop" }, - "time": "2024-11-23T12:13:14+00:00" + "time": "2025-05-16T23:22:43+00:00" }, { "name": "php-webdriver/webdriver", @@ -16072,16 +15821,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.12.23", + "version": "1.12.26", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "29201e7a743a6ab36f91394eab51889a82631428" + "reference": "84cbf8f018e01834b9b1ac3dacf3b9780e209e53" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/29201e7a743a6ab36f91394eab51889a82631428", - "reference": "29201e7a743a6ab36f91394eab51889a82631428", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/84cbf8f018e01834b9b1ac3dacf3b9780e209e53", + "reference": "84cbf8f018e01834b9b1ac3dacf3b9780e209e53", "shasum": "" }, "require": { @@ -16126,7 +15875,7 @@ "type": "github" } ], - "time": "2025-03-23T14:57:32+00:00" + "time": "2025-05-14T11:08:32+00:00" }, { "name": "phpunit/php-code-coverage", @@ -17570,16 +17319,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.12.1", + "version": "3.13.0", "source": { "type": "git", "url": "https://github.com/PHPCSStandards/PHP_CodeSniffer.git", - "reference": "ea16a1f3719783345febd3aab41beb55c8c84bfd" + "reference": "65ff2489553b83b4597e89c3b8b721487011d186" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/ea16a1f3719783345febd3aab41beb55c8c84bfd", - "reference": "ea16a1f3719783345febd3aab41beb55c8c84bfd", + "url": "https://api.github.com/repos/PHPCSStandards/PHP_CodeSniffer/zipball/65ff2489553b83b4597e89c3b8b721487011d186", + "reference": "65ff2489553b83b4597e89c3b8b721487011d186", "shasum": "" }, "require": { @@ -17650,7 +17399,7 @@ "type": "thanks_dev" } ], - "time": "2025-04-04T12:57:55+00:00" + "time": "2025-05-11T03:36:00+00:00" }, { "name": "symfony/browser-kit", @@ -18291,30 +18040,31 @@ }, { "name": "theofidry/alice-data-fixtures", - "version": "1.6.0", + "version": "1.7.2", "source": { "type": "git", "url": "https://github.com/theofidry/AliceDataFixtures.git", - "reference": "798ea2b5b8c6b2b938470d5330dc4beee77f4aff" + "reference": "39a2fb2d83d683bec58e9fa0c1e22feceb17056e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/AliceDataFixtures/zipball/798ea2b5b8c6b2b938470d5330dc4beee77f4aff", - "reference": "798ea2b5b8c6b2b938470d5330dc4beee77f4aff", + "url": "https://api.github.com/repos/theofidry/AliceDataFixtures/zipball/39a2fb2d83d683bec58e9fa0c1e22feceb17056e", + "reference": "39a2fb2d83d683bec58e9fa0c1e22feceb17056e", "shasum": "" }, "require": { "nelmio/alice": "^3.10", - "php": "^8.1", + "php": "^8.2", "psr/log": "^1 || ^2 || ^3", "webmozart/assert": "^1.10" }, "conflict": { + "doctrine/dbal": "<3.0", "doctrine/orm": "<2.6.3", "doctrine/persistence": "<2.0", "illuminate/database": "<8.12", "ocramius/proxy-manager": "<2.1", - "symfony/framework-bundle": "<5.4", + "symfony/framework-bundle": "<5.4 || >=6.0 <6.4", "zendframework/zend-code": "<3.3.1" }, "require-dev": { @@ -18323,7 +18073,7 @@ "phpspec/prophecy": "^1.14.0", "phpspec/prophecy-phpunit": "^2.0.1", "phpunit/phpunit": "^9.5.10", - "symfony/phpunit-bridge": "^5.3.8 || ^6.0" + "symfony/phpunit-bridge": "^5.3.8 || ^6.4" }, "suggest": { "alcaeus/mongo-php-adapter": "To use Doctrine with the MongoDB flavour", @@ -18340,7 +18090,8 @@ "type": "library", "extra": { "bamarni-bin": { - "bin-links": false + "bin-links": false, + "forward-command": false }, "branch-alias": { "dev-master": "1.x-dev" @@ -18373,7 +18124,7 @@ ], "support": { "issues": "https://github.com/theofidry/AliceDataFixtures/issues", - "source": "https://github.com/theofidry/AliceDataFixtures/tree/1.6.0" + "source": "https://github.com/theofidry/AliceDataFixtures/tree/1.7.2" }, "funding": [ { @@ -18381,7 +18132,7 @@ "type": "github" } ], - "time": "2022-07-03T13:30:00+00:00" + "time": "2024-07-05T21:18:40+00:00" }, { "name": "theseer/tokenizer", @@ -18496,16 +18247,16 @@ }, { "name": "vincentlanglet/twig-cs-fixer", - "version": "3.5.1", + "version": "3.7.0", "source": { "type": "git", "url": "https://github.com/VincentLanglet/Twig-CS-Fixer.git", - "reference": "0ab7a8154f7b3a6a42cbe3a467074a47bc32dcf5" + "reference": "a71515e8d1b105e85602ecdafd550b0e17b2b48a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/VincentLanglet/Twig-CS-Fixer/zipball/0ab7a8154f7b3a6a42cbe3a467074a47bc32dcf5", - "reference": "0ab7a8154f7b3a6a42cbe3a467074a47bc32dcf5", + "url": "https://api.github.com/repos/VincentLanglet/Twig-CS-Fixer/zipball/a71515e8d1b105e85602ecdafd550b0e17b2b48a", + "reference": "a71515e8d1b105e85602ecdafd550b0e17b2b48a", "shasum": "" }, "require": { @@ -18525,13 +18276,13 @@ "dereuromark/composer-prefer-lowest": "^0.1.10", "ergebnis/composer-normalize": "^2.29", "friendsofphp/php-cs-fixer": "^3.13.0", - "infection/infection": "^0.26.16 || ^0.27.0", + "infection/infection": "^0.26.16 || ^0.29.14", "phpstan/phpstan": "^2.0", "phpstan/phpstan-phpunit": "^2.0", "phpstan/phpstan-strict-rules": "^2.0", "phpstan/phpstan-symfony": "^2.0", "phpstan/phpstan-webmozart-assert": "^2.0", - "phpunit/phpunit": "^9.5.26 || ^10.0.9", + "phpunit/phpunit": "^9.5.26 || ^11.5.18 || ^12.1.3", "rector/rector": "^2.0.0", "shipmonk/composer-dependency-analyser": "^1.6", "symfony/process": "^5.4 || ^6.4 || ^7.0", @@ -18561,7 +18312,7 @@ "homepage": "https://github.com/VincentLanglet/Twig-CS-Fixer", "support": { "issues": "https://github.com/VincentLanglet/Twig-CS-Fixer/issues", - "source": "https://github.com/VincentLanglet/Twig-CS-Fixer/tree/3.5.1" + "source": "https://github.com/VincentLanglet/Twig-CS-Fixer/tree/3.7.0" }, "funding": [ { @@ -18569,7 +18320,7 @@ "type": "github" } ], - "time": "2025-01-16T18:36:36+00:00" + "time": "2025-05-15T17:19:20+00:00" }, { "name": "webmozart/glob", @@ -18639,13 +18390,14 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "8.1.*", + "php": "8.2.*", "ext-ctype": "*", - "ext-iconv": "*" + "ext-iconv": "*", + "ext-mongodb": "^2" }, "platform-dev": [], "platform-overrides": { - "php": "8.1.12" + "php": "8.2.28" }, "plugin-api-version": "2.2.0" } diff --git a/src/new/config/bundles.php b/src/new/config/bundles.php index 175133c58..b5e772c28 100755 --- a/src/new/config/bundles.php +++ b/src/new/config/bundles.php @@ -62,7 +62,5 @@ return [ Symfony\UX\Chartjs\ChartjsBundle::class => ['all' => true], Symfonycasts\TailwindBundle\SymfonycastsTailwindBundle::class => ['all' => true], Symfonycasts\SassBundle\SymfonycastsSassBundle::class => ['all' => true], - Dunglas\DoctrineJsonOdm\Bundle\DunglasDoctrineJsonOdmBundle::class => ['all' => true], Symfony\UX\Vue\VueBundle::class => ['all' => true], - Symfony\UX\Turbo\TurboBundle::class => ['all' => true], ]; diff --git a/src/new/config/packages/dev/monolog.php b/src/new/config/packages/dev/monolog.php index a7988c481..5c0acd269 100755 --- a/src/new/config/packages/dev/monolog.php +++ b/src/new/config/packages/dev/monolog.php @@ -5,5 +5,28 @@ declare(strict_types=1); use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; return static function (ContainerConfigurator $containerConfigurator): void { - $containerConfigurator->extension('monolog', ['handlers' => ['main' => ['type' => 'stream', 'path' => '%kernel.logs_dir%/%kernel.environment%.log', 'level' => 'debug', 'channels' => ['!event']], 'console' => ['type' => 'console', 'process_psr_3_messages' => false, 'channels' => ['!event', '!doctrine', '!console']]]]); + $containerConfigurator->extension( + 'monolog', [ + 'handlers' => [ + 'main' => [ + 'type' => 'stream', + 'path' => '%kernel.logs_dir%/%kernel.environment%.log', + 'level' => 'debug', + 'channels' => [ + '!event', + '!php' + ] + ], + 'console' => [ + 'type' => 'console', + 'process_psr_3_messages' => false, + 'channels' => [ + '!event', + '!doctrine', + '!console' + ] + ] + ] + ] + ); }; diff --git a/src/new/config/packages/lexik_jwt_authentication.php b/src/new/config/packages/lexik_jwt_authentication.php index e935f45d9..98b4ec4c8 100755 --- a/src/new/config/packages/lexik_jwt_authentication.php +++ b/src/new/config/packages/lexik_jwt_authentication.php @@ -5,5 +5,10 @@ declare(strict_types=1); use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; return static function (ContainerConfigurator $containerConfigurator): void { - $containerConfigurator->extension('lexik_jwt_authentication', ['secret_key' => '%env(resolve:JWT_SECRET_KEY)%', 'public_key' => '%env(resolve:JWT_PUBLIC_KEY)%', 'pass_phrase' => '%env(JWT_PASSPHRASE)%']); + $containerConfigurator->extension('lexik_jwt_authentication', [ + 'secret_key' => '%env(resolve:JWT_SECRET_KEY)%', + 'public_key' => '%env(resolve:JWT_PUBLIC_KEY)%', + 'user_id_claim' => 'uid', + 'pass_phrase' => '%env(JWT_PASSPHRASE)%' + ]); }; diff --git a/src/new/config/packages/security.php b/src/new/config/packages/security.php index 5586fe9f5..ee98c44a0 100755 --- a/src/new/config/packages/security.php +++ b/src/new/config/packages/security.php @@ -15,11 +15,13 @@ use PSC\Shop\UserBundle\Security\ApiKey\ShopProvider; use PSC\Shop\UserBundle\Security\User\UserProvider; use PSC\Shop\UserBundle\Security\ZendAuthenticator; use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; +use Symfony\Component\Security\Http\Session\SessionAuthenticationStrategy; return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->extension( 'security', [ + 'session_fixation_strategy' => SessionAuthenticationStrategy::NONE, 'password_hashers' => [ Contact::class => @@ -84,10 +86,14 @@ return static function (ContainerConfigurator $containerConfigurator): void { ['user_provider', 'shop_provider', 'instance_provider'] ] ] - // 'database_token' => ['entity' => ['class' => Shop::class]], -// 'database_api_key' => ['entity' => ['class' => Instance::class]], + // 'database_token' => ['entity' => ['class' => Shop::class]], + // 'database_api_key' => ['entity' => ['class' => Instance::class]], ], 'firewalls' => [ + 'dev' => [ + 'security' => false, + 'pattern' => '^/(_(profiler|wdt)|css|images|js)/', + ], 'admin_secured_area' => [ 'pattern' => '^/backend', 'provider' => 'user_provider', @@ -100,6 +106,7 @@ return static function (ContainerConfigurator $containerConfigurator): void { 'password_parameter' => 'password' ], 'logout' => [ + 'invalidate_session' => false, 'path' => 'psc_backend_logout', 'target' => 'psc_backend_login' ] @@ -125,7 +132,7 @@ return static function (ContainerConfigurator $containerConfigurator): void { ], 'custom_authenticators' => [ ApiKeyAuthenticator::class, - ZendAuthenticator::class, + ZendAuthenticator::class, ] ], 'storefront' => [ diff --git a/src/new/config/packages/twig.php b/src/new/config/packages/twig.php index 5f09f821f..06cdc709d 100755 --- a/src/new/config/packages/twig.php +++ b/src/new/config/packages/twig.php @@ -2,6 +2,7 @@ declare(strict_types=1); +use PSC\Shop\MediaBundle\Service\MediaManager; use PSC\Shop\OrderBundle\Service\Order; use PSC\System\SettingsBundle\Service\Instance; use PSC\System\SettingsBundle\Service\Shop; @@ -19,7 +20,8 @@ return static function (ContainerConfigurator $containerConfigurator): void { 'instanceService' => service(Instance::class), 'shopService' => service(Shop::class), 'orderService' => service(Order::class), - 'tokenService' => service(Token::class) + 'tokenService' => service(Token::class), + 'mediaService' => service(MediaManager::class) ] ] ); diff --git a/src/new/src/PSC/Component/ApiBundle/Hydrate/Shop.php b/src/new/src/PSC/Component/ApiBundle/Hydrate/Shop.php index 954aab1a0..b269a4a56 100755 --- a/src/new/src/PSC/Component/ApiBundle/Hydrate/Shop.php +++ b/src/new/src/PSC/Component/ApiBundle/Hydrate/Shop.php @@ -20,7 +20,7 @@ class Shop $tmp->id = $shopEntity->getUID(); $tmp->name = $shopEntity->getTitle(); $tmp->uuid = $shopEntity->getUuid(); - $tmp->deleted = (bool)$shopEntity->isDeleted(); + $tmp->disabled = (bool)$shopEntity->isDeleted(); $tmp->private = (bool)$shopEntity->isPrivate(); $tmp->basketField1 = (string)$shopEntity->getBasketfield1(); $tmp->basketField2 = (string)$shopEntity->getBasketfield2(); @@ -33,7 +33,9 @@ class Shop $domains = $this->entityManager ->getRepository('PSC\Shop\EntityBundle\Entity\Domain')->getAllByShopId($shopEntity); $domainsTemp = []; -/** @var \PSC\Shop\EntityBundle\Entity\Domain $domain */ + /** + * @var \PSC\Shop\EntityBundle\Entity\Domain $domain +*/ foreach ($domains as $domain) { $domainsTemp[] = new Domain($domain->getUid(), $domain->getHost(), $domain->isLetsEncrypt()); } diff --git a/src/new/src/PSC/Component/ApiBundle/Model/Shop.php b/src/new/src/PSC/Component/ApiBundle/Model/Shop.php index 7c4558e0d..a7c0feb60 100755 --- a/src/new/src/PSC/Component/ApiBundle/Model/Shop.php +++ b/src/new/src/PSC/Component/ApiBundle/Model/Shop.php @@ -22,11 +22,11 @@ class Shop * @OA\Property(type="integer") */ public int $id = 0; -/** + /** * @OA\Property(type="string", maxLength=255) */ public string $uuid = ""; -/** + /** * @OA\Property(type="string", maxLength=255) */ public string $name = ""; @@ -58,15 +58,15 @@ class Shop * @OA\Property(type="string", maxLength=255) */ public string $basketPosField2 = ""; -/** + /** * @OA\Property(type="array", @OA\Items(ref=@Model(type=\PSC\Component\ApiBundle\Model\Shop\Domain::class))) */ public array $domains = []; -/** + /** * @OA\Property(type="boolean") */ - public bool $deleted = false; -/** + public bool $disabled = false; + /** * @OA\Property(type="boolean") */ public bool $private = false; diff --git a/src/new/src/PSC/Shop/AccountBundle/Form/Backend/General/AccountType.php b/src/new/src/PSC/Shop/AccountBundle/Form/Backend/General/AccountType.php index 91ed86b98..4c751aa75 100755 --- a/src/new/src/PSC/Shop/AccountBundle/Form/Backend/General/AccountType.php +++ b/src/new/src/PSC/Shop/AccountBundle/Form/Backend/General/AccountType.php @@ -34,9 +34,13 @@ use Symfony\Component\OptionsResolver\OptionsResolver; class AccountType extends AbstractType { - /** @var Field */ + /** + * @var Field + */ protected $fields; - /** @var General */ + /** + * @var General + */ protected $general; protected $shop = null; protected $formFactory; @@ -57,7 +61,8 @@ class AccountType extends AbstractType $builder ->add('title', TextType::class, ['label' => 'Name']) - ->add('payments', EntityType::class, array( + ->add( + 'payments', EntityType::class, array( 'class' => 'PSC\Shop\EntityBundle\Entity\Payment', 'choice_label' => 'title', 'choice_value' => 'uid', @@ -68,8 +73,10 @@ class AccountType extends AbstractType return $er->createQueryBuilder('u') ->where('u.shop = :shop')->andWhere('u.private = 1')->setParameter('shop', $this->shop->getSelectedShop()->getId()); } - )) - ->add('shippings', EntityType::class, array( + ) + ) + ->add( + 'shippings', EntityType::class, array( 'class' => 'PSC\Shop\EntityBundle\Entity\Shipping', 'choice_label' => 'title', 'choice_value' => 'uid', @@ -80,8 +87,10 @@ class AccountType extends AbstractType return $er->createQueryBuilder('u') ->where('u.shop = :shop')->andWhere('u.private = 1')->setParameter('shop', $this->shop->getSelectedShop()->getId()); } - )) - ->add('productGroups', EntityType::class, array( + ) + ) + ->add( + 'productGroups', EntityType::class, array( 'class' => 'PSC\Shop\EntityBundle\Entity\Productgroup', 'choice_label' => function (Productgroup $choice, $key, $value) { @@ -99,8 +108,10 @@ class AccountType extends AbstractType return $er->createQueryBuilder('u') ->where('u.shop = :shop')->andWhere('u.private = 1')->setParameter('shop', $this->shop->getSelectedShop()->getId()); } - )) - ->add('parent', EntityType::class, array( + ) + ) + ->add( + 'parent', EntityType::class, array( 'class' => 'PSC\Shop\EntityBundle\Entity\Account', 'choice_label' => 'title', 'choice_value' => 'uid', @@ -112,8 +123,10 @@ class AccountType extends AbstractType ->join('u.shops', 's') ->where('s.uid = :shop')->setParameter('shop', $this->shop->getSelectedShop()->getId()); } - )) - ->add('productsOrg', EntityType::class, array( + ) + ) + ->add( + 'productsOrg', EntityType::class, array( 'class' => 'PSC\Shop\EntityBundle\Entity\Product', 'choice_label' => 'nrTitle', 'multiple' => true, @@ -123,8 +136,10 @@ class AccountType extends AbstractType return $er->createQueryBuilder('u') ->where('u.shop = :shop')->andWhere('u.private = 1 AND u.originalProduct = 0')->setParameter('shop', $this->shop->getSelectedShop()->getId()); } - )) - ->add('productsSub', EntityType::class, array( + ) + ) + ->add( + 'productsSub', EntityType::class, array( 'class' => 'PSC\Shop\EntityBundle\Entity\Product', 'choice_label' => 'nrTitle', 'required' => false, @@ -134,8 +149,10 @@ class AccountType extends AbstractType return $er->createQueryBuilder('u') ->where('u.shop = :shop')->andWhere('u.private = 1 AND u.originalProduct != 0')->setParameter('shop', $this->shop->getSelectedShop()->getId()); } - )) - ->add('cms', EntityType::class, array( + ) + ) + ->add( + 'cms', EntityType::class, array( 'class' => 'PSC\Shop\EntityBundle\Entity\Cms', 'choice_label' => 'title', 'choice_value' => 'uid', @@ -146,7 +163,8 @@ class AccountType extends AbstractType return $er->createQueryBuilder('u') ->where('(u.shop = :shop OR u.uid in (' . implode(",", $tempCms) . '))')->andWhere('u.private = 1')->setParameter('shop', $this->shop->getSelectedShop()->getId()); } - )) + ) + ) ->add('appendix', TextType::class, ['required' => false, 'label' => 'additive']) ->add('locked', CheckboxType::class, ['required' => false, 'label' => 'Locked']) ->add('street', TextType::class, ['required' => false, 'label' => 'street']) @@ -165,12 +183,14 @@ class AccountType extends AbstractType ->add('phone', TextType::class, ['required' => false, 'label' => 'number']) ->add('phoneAppendix', TextType::class, ['required' => false, 'label' => 'extension']) - ->add('priceFactor', NumberType::class, array('required' => false, 'label' => 'factor', 'scale' => 2, 'html5' => true, + ->add( + 'priceFactor', NumberType::class, array('required' => false, 'label' => 'factor', 'scale' => 2, 'html5' => true, 'attr' => array( 'min' => -0.01, 'max' => 2.00, 'step' => 0.01, - ))) + )) + ) ->add('mobileAreaCode', TextType::class, ['required' => false, 'label' => 'Countrycode']) ->add('mobilePrefix', TextType::class, ['required' => false, 'label' => 'prefix']) @@ -220,7 +240,9 @@ class AccountType extends AbstractType ->add('lastname2', TextType::class, ['required' => false, 'label' => 'lastname2']) ->add('calcValue1', TextType::class, ['required' => false, 'label' => 'value1']) ->add('calcValue2', TextType::class, ['required' => false, 'label' => 'value2']); - /** @var \PSC\System\PluginBundle\Form\Interfaces\Field $field */ + /** + * @var \PSC\System\PluginBundle\Form\Interfaces\Field $field +*/ foreach ($this->fields->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::Account) as $field) { $builder->add($field->buildForm($this->formFactory->createNamedBuilder($field->getGroup()), $options)); } @@ -235,10 +257,12 @@ class AccountType extends AbstractType public function configureOptions(OptionsResolver $resolver) { - $resolver->setDefaults(array( + $resolver->setDefaults( + array( 'data_class' => 'PSC\Shop\EntityBundle\Entity\Account', 'cms' => [], 'translation_domain' => 'core_account_create_and_edit' - )); + ) + ); } } diff --git a/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactType.php b/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactType.php index 9cf6b0096..3faad39ef 100755 --- a/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactType.php +++ b/src/new/src/PSC/Shop/ContactBundle/Form/Backend/General/ContactType.php @@ -186,7 +186,7 @@ class ContactType extends AbstractType )) ->add('productsSub', EntityType::class, array( 'class' => 'PSC\Shop\EntityBundle\Entity\Product', - 'choice_label' => 'title', + 'choice_label' => 'nrTitle', 'choice_value' => 'uid', 'required' => false, 'multiple' => true, diff --git a/src/new/src/PSC/Shop/ContactBundle/Repository/ContactRepository.php b/src/new/src/PSC/Shop/ContactBundle/Repository/ContactRepository.php index 9ebccad28..2b8f67d63 100755 --- a/src/new/src/PSC/Shop/ContactBundle/Repository/ContactRepository.php +++ b/src/new/src/PSC/Shop/ContactBundle/Repository/ContactRepository.php @@ -30,6 +30,21 @@ class ContactRepository extends ServiceEntityRepository implements UserLoaderInt { parent::__construct($registry, Contact::class); } + + public function loadUserByUid($uuid) + { + $user = $this->createQueryBuilder('c') + ->where('c.uid = :uid AND c.enable = 1') + ->setParameter('uid', $uuid) + ->getQuery() + ->getOneOrNullResult(); + if (null === $user) { + $message = sprintf('Unable to find an Contact identified by "%s".', $uuid); + throw new UserNotFoundException($message); + } + + return $user; + } public function loadUserByUsername($username) { @@ -38,6 +53,10 @@ class ContactRepository extends ServiceEntityRepository implements UserLoaderInt ->setParameter('username', $username) ->getQuery() ->getOneOrNullResult(); + + if(null === $user) { + $user = $this->loadUserByUid($username); + } if (null === $user) { $message = sprintf('Unable to find an Contact identified by "%s".', $username); throw new UserNotFoundException($message); diff --git a/src/new/src/PSC/Shop/EntityBundle/Entity/Product.php b/src/new/src/PSC/Shop/EntityBundle/Entity/Product.php index 7c50e26a7..dd39e1b9c 100755 --- a/src/new/src/PSC/Shop/EntityBundle/Entity/Product.php +++ b/src/new/src/PSC/Shop/EntityBundle/Entity/Product.php @@ -985,6 +985,12 @@ class Product return $this->title; } + public function getTitleSubTitle(): ?string + { + return $this->title . ' ' . $this->subTitle; + } + + public function setTitle(?string $title): void { $this->title = $title; @@ -2871,7 +2877,7 @@ class Product public function getNrTitle() { - return $this->nrIntern . ' ' . $this->title; + return $this->nrIntern . ' ' . $this->title . ' ' . $this->subTitle; } /** diff --git a/src/new/src/PSC/Shop/EntityBundle/Entity/Shop.php b/src/new/src/PSC/Shop/EntityBundle/Entity/Shop.php index 8d51c00e9..e0a783145 100755 --- a/src/new/src/PSC/Shop/EntityBundle/Entity/Shop.php +++ b/src/new/src/PSC/Shop/EntityBundle/Entity/Shop.php @@ -4,6 +4,7 @@ namespace PSC\Shop\EntityBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Symfony\Component\Security\Core\User\UserInterface; +use Symfony\Component\Serializer\Attribute\Groups; #[ORM\Table(name: 'shop')] #[ORM\Entity(repositoryClass: 'PSC\Shop\EntityBundle\Repository\ShopRepository')] diff --git a/src/new/src/PSC/Shop/MediaBundle/Form/Type/TWMediaType.php b/src/new/src/PSC/Shop/MediaBundle/Form/Type/TWMediaType.php index e5f811164..d55b4a22c 100644 --- a/src/new/src/PSC/Shop/MediaBundle/Form/Type/TWMediaType.php +++ b/src/new/src/PSC/Shop/MediaBundle/Form/Type/TWMediaType.php @@ -8,6 +8,8 @@ use Doctrine\ORM\EntityManagerInterface; use PSC\Shop\MediaBundle\Helper\MediaManager; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\FormType; +use Symfony\Component\Form\Extension\Core\Type\HiddenType; +use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\FormView; @@ -18,71 +20,19 @@ use Symfony\Component\OptionsResolver\OptionsResolver; */ class TWMediaType extends AbstractType { - /** - * @var MediaManager - */ protected $mediaManager; - /** - * @var \Doctrine\ODM\MongoDB\DocumentManager - */ protected $mongoManager; - /** - * @param MediaManager $mediaManager The media manager - * @param EntityManagerInterface $objectManager The media manager - * @param DocumentManager $mongoManager The media manager - */ public function __construct(MediaManager $mediaManager, DocumentManager $mongoManager) { $this->mediaManager = $mediaManager; $this->mongoManager = $mongoManager; } - /** - * Builds the form. - * - * This method is called for each type in the hierarchy starting form the - * top most type. Type extensions can further modify the form. - * - * @param FormBuilderInterface $builder The form builder - * @param array $options The options - * - * @see FormTypeExtensionInterface::buildForm() - */ - public function buildForm(FormBuilderInterface $builder, array $options) - { - $builder->addViewTransformer( - new IdToMediaTransformer($this->mongoManager, $options['current_value_container']), - true - ); - $builder->setAttribute('chooser', $options['chooser']); - $builder->setAttribute('mediatype', $options['mediatype']); - } - - /** - * @return string - */ public function getParent() { - return FormType::class; - } - - /** - * Sets the default options for this type. - * - * @param OptionsResolver $resolver The resolver for the options. - */ - public function configureOptions(OptionsResolver $resolver) - { - $resolver->setDefaults( - array( - 'compound' => false, - 'chooser' => 'psc_shop_media_backend_folder_tw', - 'mediatype' => null, - 'current_value_container' => new CurrentValueContainer(), - ) - ); + return TextType::class; } /** @@ -95,9 +45,6 @@ class TWMediaType extends AbstractType return 'tw_media'; } - /** - * {@inheritdoc} - */ public function buildView(FormView $view, FormInterface $form, array $options) { $view->vars['chooser'] = $form->getConfig()->getAttribute('chooser'); diff --git a/src/new/src/PSC/Shop/MediaBundle/Model/MediaItem.php b/src/new/src/PSC/Shop/MediaBundle/Model/MediaItem.php index dddb363db..63f65d3cb 100644 --- a/src/new/src/PSC/Shop/MediaBundle/Model/MediaItem.php +++ b/src/new/src/PSC/Shop/MediaBundle/Model/MediaItem.php @@ -6,7 +6,7 @@ class MediaItem { public ?string $name; - public ?string $description; + public ?string $description = null; public ?string $media; diff --git a/src/new/src/PSC/Shop/MediaBundle/Resources/views/backend/folder/tw.html.twig b/src/new/src/PSC/Shop/MediaBundle/Resources/views/backend/folder/tw.html.twig index 7b34dd0c2..ab131bb1b 100644 --- a/src/new/src/PSC/Shop/MediaBundle/Resources/views/backend/folder/tw.html.twig +++ b/src/new/src/PSC/Shop/MediaBundle/Resources/views/backend/folder/tw.html.twig @@ -1,6 +1,6 @@ -{% extends 'modalFrame.html.twig' %} +{% extends 'backend_layout.html.twig' %} -{% block body %} +{% block appContent %}
{{ form_start(folderForm, { 'attr': {'class': ''}}) }} @@ -134,14 +134,13 @@ {% if modal %} {% if isImage %} - Einfügen + {% else %} Einfügen {% endif %} {% endif %} Tauschen Bearbeiten - {% endfor %} @@ -155,3 +154,16 @@
{% endblock %} +{% block scripts %} + +{% endblock %} diff --git a/src/new/src/PSC/Shop/MediaBundle/Resources/views/form/tw_media_widget.html.twig b/src/new/src/PSC/Shop/MediaBundle/Resources/views/form/tw_media_widget.html.twig index b6fb5414a..3880c6a67 100644 --- a/src/new/src/PSC/Shop/MediaBundle/Resources/views/form/tw_media_widget.html.twig +++ b/src/new/src/PSC/Shop/MediaBundle/Resources/views/form/tw_media_widget.html.twig @@ -2,13 +2,12 @@ {% apply spaceless %}
- - +
- {% if(value.ent is defined) %} - {% set media = value.ent %} + {% if(value is defined and value != "") %} + {% set media = mediaService.getMedia(value) %} {% set handler = mediamanager.getHandler(media) %} {% set imageurl = handler.getImageUrl(media, app.request.basePath) %} {% if imageurl is not empty and media.location == 'local' %} @@ -37,18 +36,33 @@
- Auswählen +
+ + + - + +
+
+
+
-
+ + {% endapply %} {% endblock %} diff --git a/src/new/src/PSC/Shop/MediaBundle/Resources/views/form/tw_media_widget_old.html.twig b/src/new/src/PSC/Shop/MediaBundle/Resources/views/form/tw_media_widget_old.html.twig new file mode 100644 index 000000000..0d271488f --- /dev/null +++ b/src/new/src/PSC/Shop/MediaBundle/Resources/views/form/tw_media_widget_old.html.twig @@ -0,0 +1,65 @@ +{% block tw_media_widget %} + {% apply spaceless %} +
+ + + + +
+
+ {% if(value.ent is defined) %} + {% set media = value.ent %} + {% set handler = mediamanager.getHandler(media) %} + {% set imageurl = handler.getImageUrl(media, app.request.basePath) %} + {% if imageurl is not empty and media.location == 'local' %} + {% if imageurl|lower|split('.')|last == 'svg' or 'image/svg' in media.contentType %} + {% set imageurlretina = imageurl %} + {% else %} + {% set imageurlretina = asset(imageurl | imagine_filter('media_list_thumbnail_retina')) %} + {% set imageurl = asset(imageurl | imagine_filter('media_list_thumbnail')) %} + {% endif %} + {% endif %} + {% if imageurl %} + {{ media.title }} +
+ {{ media.title }} +
+ {% else %} + +
+ {{ media.title }} +
+ {% endif %} + {% else %} + +
+ {% endif %} +
+ +
+
+ + + +
+
+
+
+ + +
+ + {% endapply %} +{% endblock %} diff --git a/src/new/src/PSC/Shop/NewsBundle/Controller/Backend/EditController.php b/src/new/src/PSC/Shop/NewsBundle/Controller/Backend/EditController.php index 8a3b15b3b..59e21d43b 100755 --- a/src/new/src/PSC/Shop/NewsBundle/Controller/Backend/EditController.php +++ b/src/new/src/PSC/Shop/NewsBundle/Controller/Backend/EditController.php @@ -57,12 +57,11 @@ class EditController extends AbstractController /** * Create * - * - * @param Request $request - * @param SessionInterface $session - * @param Field $field - * @param EntityManagerInterface $entityManager - * @param \PSC\System\SettingsBundle\Service\Shop $shopService + * @param Request $request + * @param SessionInterface $session + * @param Field $field + * @param EntityManagerInterface $entityManager + * @param \PSC\System\SettingsBundle\Service\Shop $shopService * @return array|\Symfony\Component\HttpFoundation\RedirectResponse * @throws \Doctrine\ORM\ORMException */ @@ -72,7 +71,9 @@ class EditController extends AbstractController { $customFields = $field->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::News); $customGroups = $field->getGroups(\PSC\System\PluginBundle\Form\Interfaces\Field::News); -/** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */ + /** + * @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop +*/ $selectedShop = $shopService->getSelectedShop(); $news = new News(); $news->setShop($selectedShop); @@ -97,13 +98,12 @@ class EditController extends AbstractController /** * edit * - * - * @param Request $request - * @param Field $field - * @param SessionInterface $session - * @param EntityManagerInterface $entityManager - * @param \PSC\System\SettingsBundle\Service\Shop $shopService - * @param $uid + * @param Request $request + * @param Field $field + * @param SessionInterface $session + * @param EntityManagerInterface $entityManager + * @param \PSC\System\SettingsBundle\Service\Shop $shopService + * @param $uid * @return array|\Symfony\Component\HttpFoundation\RedirectResponse * @throws \Doctrine\ORM\ORMException */ @@ -113,9 +113,13 @@ class EditController extends AbstractController { $customFields = $field->getFields(\PSC\System\PluginBundle\Form\Interfaces\Field::News); $customGroups = $field->getGroups(\PSC\System\PluginBundle\Form\Interfaces\Field::News); -/** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */ + /** + * @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop +*/ $selectedShop = $shopService->getSelectedShop(); -/** @var News $news */ + /** + * @var News $news +*/ $news = $entityManager ->getRepository('PSC\Shop\NewsBundle\Entity\News')->findOneBy(array('uid' => $uid, 'shop' => $selectedShop)); $form = $this->createForm(NewsType::class, $news); @@ -126,8 +130,11 @@ class EditController extends AbstractController $entityManager->flush(); $session->getFlashBag()->add('success', 'News Entry \'' . $news->getTitle() . '\' has been updated!'); $this->logService->createLogEntry($selectedShop, $this->getUser(), LogEntry::INFO, PSCShopNewsBundle::class, $news->getTitle(), "News Entry saved"); - return $this->redirectToRoute('psc_shop_news_backend_list'); + // return $this->redirectToRoute('psc_shop_news_backend_list'); + } + $customGroups = []; + $customFields = []; return array( 'news' => $news, 'form' => $form->createView(), @@ -140,11 +147,10 @@ class EditController extends AbstractController /** * remove * - * - * @param Request $request - * @param SessionInterface $session - * @param EntityManagerInterface $entityManager - * @param $uid + * @param Request $request + * @param SessionInterface $session + * @param EntityManagerInterface $entityManager + * @param $uid * @return array|\Symfony\Component\HttpFoundation\RedirectResponse */ #[Route(path: '/edit/delete/{uid}', name: 'psc_shop_news_backend_delete')] @@ -152,7 +158,9 @@ class EditController extends AbstractController public function deleteAction(Request $request, SessionInterface $session, EntityManagerInterface $entityManager, \PSC\System\SettingsBundle\Service\Shop $shopService, $uid) { $news = $entityManager->getRepository('PSC\Shop\NewsBundle\Entity\News')->findOneBy(['uid' => $uid]); -/** @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop */ + /** + * @var \PSC\Shop\EntityBundle\Entity\Shop $selectedShop +*/ $selectedShop = $shopService->getSelectedShop(); $form = $this->createForm(DeleteType::class); $form->handleRequest($request); diff --git a/src/new/src/PSC/Shop/NewsBundle/Entity/News.php b/src/new/src/PSC/Shop/NewsBundle/Entity/News.php index 59bc2650b..c60ae58d8 100755 --- a/src/new/src/PSC/Shop/NewsBundle/Entity/News.php +++ b/src/new/src/PSC/Shop/NewsBundle/Entity/News.php @@ -15,12 +15,18 @@ namespace PSC\Shop\NewsBundle\Entity; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM\Mapping as ORM; +use PSC\Shop\MediaBundle\Model\MediaItem; use Ramsey\Uuid\Uuid; +use Symfony\Component\Serializer\Attribute\Ignore; +use Symfony\Component\Serializer\Attribute\MaxDepth; +use Symfony\Component\Serializer\Encoder\JsonEncoder; +use Symfony\Component\Serializer\Normalizer\ArrayDenormalizer; +use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; +use Symfony\Component\Serializer\Serializer; /** * Cms * - * * @package PSC\Shop\News * @subpackage Entitys */ @@ -54,8 +60,8 @@ class News * * @var string */ - #[ORM\Column(name: 'einleitung', type: 'string', length: 255)] - protected $introduction; + #[ORM\Column(name: 'einleitung', type: 'string', length: 255, nullable: true)] + protected ?string $introduction; /** * Language * @@ -68,27 +74,28 @@ class News * * @var string */ - #[ORM\Column(name: 'text', type: 'string')] - protected $text; + #[ORM\Column(name: 'text', type: 'string', nullable: true)] + protected ?string $text; /** * Shop zu welcher die News gehört * * @var int */ #[ORM\ManyToOne(targetEntity: 'PSC\Shop\EntityBundle\Entity\Shop')] + #[Ignore] #[ORM\JoinColumn(name: 'shop_id', referencedColumnName: 'id')] protected $shop; - #[ORM\Column(name: 'sort_date', type: 'date')] + #[ORM\Column(name: 'sort_date', type: 'date', nullable: true)] protected $sortDate; - #[ORM\Column(name: 'from_date', type: 'datetime')] + #[ORM\Column(name: 'from_date', type: 'datetime', nullable: true)] protected ?\DateTime $fromDate; - #[ORM\Column(name: 'to_date', type: 'datetime')] + #[ORM\Column(name: 'to_date', type: 'datetime', nullable: true)] protected ?\DateTime $toDate; - #[ORM\Column(name: 'media', type: 'json_document', options: ['jsonb' => true])] - public $media = []; + #[ORM\Column(type: 'json')] + protected ?string $media = null; /** * enable * @@ -99,8 +106,8 @@ class News public function __construct() { - $this->media = new ArrayCollection(); } + public function getUid() { return $this->uid; @@ -261,4 +268,29 @@ class News { $this->toDate = $toDate; } + + public function setMedia(array $media): void + { + $encoders = [new JsonEncoder()]; + $normalizers = [new ObjectNormalizer(), new ArrayDenormalizer()]; + + $serializer = new Serializer($normalizers, $encoders); + + $this->media = $serializer->serialize($media, 'json'); + } + + public function getMedia(): array + { + if($this->media === null) { + return []; + } + + $encoders = [new JsonEncoder()]; + $normalizers = [new ObjectNormalizer(), new ArrayDenormalizer()]; + + $serializer = new Serializer($normalizers, $encoders); + + return $serializer->deserialize($this->media, MediaItem::class. '[]', 'json'); + + } } diff --git a/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/create.html.twig b/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/create.html.twig index efed86341..af327f8c5 100755 --- a/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/create.html.twig +++ b/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/create.html.twig @@ -1,130 +1,30 @@ -{% extends 'backend_base.html.twig' %} +{% extends 'backend_tailwind_base.html.twig' %} +{% form_theme form 'tailwind_formtheme.html.twig' %} +{% trans_default_domain 'core_news_edit' %} +{% block header %} +
+

+ + + + {{ 'News'|trans }} {{ 'create'|trans }}

+
+
+ + + + + {{ 'back'|trans }} +
+{% endblock %} {% block body %} +
+ {{ component('NewsForm', { + form: form, + initialFormData: news, + customGroups: customGroups + }) }} +
+{% endblock %} -
-
-
-

- - News > - erstellen -

-
- -
-
- -
- {{ form_start(form, { 'attr': {'class': ''}}) }} -
-
-

{{ news.title }}

-
-
-
-
- -
-
-
-
-
-
-
- -
- {{ form_widget(form.title) }} -
-
-
-
-
- -
- {{ form_widget(form.url) }} -
-
-
-
-
-
{{ form_widget(form.enable) }}
-
-
-
-
-
-
- -
- {{ form_widget(form.sortDate) }} -
-
-
-
-
- -
- {{ form_widget(form.language) }} -
-
-
-
-
-
-
- -
- {{ form_widget(form.introduction) }} -
-
-
-
-
-
- {{ form_widget(form.text, {attr: {'class': 'form-control summernote'}}) }} -
- {% for customGroup in customGroups %} -
- {% for customField in customFields %} - {% if customField.group == customGroup.id and customField.getTemplate %} - {{ include(customField.getTemplate, { 'form': form }) }} - {% endif %} - {% endfor %} -
- {% endfor %} -
-
-
-
-
- -
-
-
-
- {{ form_widget(form.save, {attr: {class: 'btn btn-primary btn-sm'}}) }} -
-
-
-
- {{ form_end(form) }} -
- - {{ summernote_mediabundle_init('default') }} - -{% endblock %} \ No newline at end of file diff --git a/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/edit.html.twig b/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/edit.html.twig index 34a4ce8fd..ee0570158 100755 --- a/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/edit.html.twig +++ b/src/new/src/PSC/Shop/NewsBundle/Resources/views/backend/edit/edit.html.twig @@ -21,10 +21,10 @@ {% block body %}
{{ component('NewsForm', { - form: form, - news: news, - customGroups: customGroups - }) }} + form: form, + initialFormData: news, + customGroups: customGroups + }) }}

@@ -32,36 +32,37 @@ {{ 'Changes'|trans }}

-
-
-
+
+
+ {{ form_label(form.sendXInvoice) }} +
+ {{ form_widget(form.sendXInvoice) }} +
+
+
{{ form_label(form.sendDelivery) }} @@ -337,4 +345,4 @@ $newLinkLi.before($newFormLi); } -{% endverbatim %} \ No newline at end of file +{% endverbatim %} diff --git a/src/new/src/PSC/Shop/QueueBundle/Type/Mail.php b/src/new/src/PSC/Shop/QueueBundle/Type/Mail.php index 7f11b3278..9c089bf2d 100755 --- a/src/new/src/PSC/Shop/QueueBundle/Type/Mail.php +++ b/src/new/src/PSC/Shop/QueueBundle/Type/Mail.php @@ -2,7 +2,7 @@ namespace PSC\Shop\QueueBundle\Type; -require_once(__DIR__ . '/../../../Shop/EntityBundle/Lagacy/TP_Basket_Item.php'); +require_once __DIR__ . '/../../../Shop/EntityBundle/Lagacy/TP_Basket_Item.php'; use Doctrine\Bundle\MongoDBBundle\ManagerRegistry; use Doctrine\ODM\MongoDB\DocumentManager; use Doctrine\ORM\EntityManager; @@ -56,7 +56,9 @@ use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage; class Mail implements QueueInterface, ConfigurableElementInterface { - /** @var Form */ + /** + * @var Form + */ protected $_formFactory = null; protected $_entityManager = null; protected $_doctrine_mongodb = null; @@ -66,8 +68,8 @@ class Mail implements QueueInterface, ConfigurableElementInterface protected $_template = null; protected $_error = null; /** - * @var Log - */ + * @var Log + */ protected Log $_logService; public function __construct(TemplateVars $templateVars, Printing $printing, FormFactoryInterface $formFactory, EntityManagerInterface $entityManager, DocumentManager $doctrine_mongodb, MailerInterface $mailer, \Twig\Environment $template, Log $logService) { @@ -125,6 +127,7 @@ class Mail implements QueueInterface, ConfigurableElementInterface $builder->add("toName", TextType::class, array('label' => 'An Name', 'required' => false, 'attr' => array('class' => 'form-element'))); $builder->add("subject", TextType::class, array('label' => 'Betreff*', 'required' => false, 'attr' => array('class' => 'form-element'))); $builder->add("bcc", TextType::class, array('label' => 'BCC (info@..,prod@...)', 'required' => false, 'attr' => array('class' => 'form-element'))); + $builder->add("sendXInvoice", CheckboxType::class, array('label' => 'XRechnung anfügen?', 'required' => false, 'attr' => array('class' => 'form-element'))); $builder->add("sendInvoice", CheckboxType::class, array('label' => 'Rechnung anfügen?', 'required' => false, 'attr' => array('class' => 'form-element'))); $builder->add("sendDelivery", CheckboxType::class, array('label' => 'Lieferschein anfügen?', 'required' => false, 'attr' => array('class' => 'form-element'))); $builder->add("sendOrder", CheckboxType::class, array('label' => 'Auftrag anfügen?', 'required' => false, 'attr' => array('class' => 'form-element'))); @@ -139,13 +142,15 @@ class Mail implements QueueInterface, ConfigurableElementInterface $builder->add("sendPosJobticket", CheckboxType::class, array('label' => 'Jobticket anfügen?', 'required' => false, 'attr' => array('class' => 'form-element'))); $builder->add("sendPosLabel", CheckboxType::class, array('label' => 'Label anfügen?', 'required' => false, 'attr' => array('class' => 'form-element'))); $builder->add("sendPosStorno", CheckboxType::class, array('label' => 'Storno anfügen?', 'required' => false, 'attr' => array('class' => 'form-element'))); - $builder->add('files', CollectionType::class, array( + $builder->add( + 'files', CollectionType::class, array( 'entry_type' => FileType::class, 'entry_options' => array('label' => false), 'allow_add' => true, 'allow_delete' => true, 'label' => false - )); + ) + ); } } @@ -164,6 +169,7 @@ class Mail implements QueueInterface, ConfigurableElementInterface $mail->setSubject($form->get('subject')->getData()); $mail->setBcc($form->get('bcc')->getData()); $mail->setSendInvoice($form->get('sendInvoice')->getData()); + $mail->setSendXInvoice($form->get('sendXInvoice')->getData()); $mail->setSendDelivery($form->get('sendDelivery')->getData()); $mail->setSendOrder($form->get('sendOrder')->getData()); $mail->setSendOffer($form->get('sendOffer')->getData()); @@ -196,6 +202,7 @@ class Mail implements QueueInterface, ConfigurableElementInterface $form->get('subject')->setData($queueObj->getQueueDocument()->getSubject()); $form->get('bcc')->setData($queueObj->getQueueDocument()->getBcc()); $form->get('sendInvoice')->setData($queueObj->getQueueDocument()->isSendInvoice()); + $form->get('sendXInvoice')->setData($queueObj->getQueueDocument()->isSendXInvoice()); $form->get('sendDelivery')->setData($queueObj->getQueueDocument()->isSendDelivery()); $form->get('sendOrder')->setData($queueObj->getQueueDocument()->isSendOrder()); $form->get('sendOffer')->setData($queueObj->getQueueDocument()->isSendOffer()); @@ -219,8 +226,8 @@ class Mail implements QueueInterface, ConfigurableElementInterface } /** - * @param EventInterface $event - * @param Queue $queue + * @param EventInterface $event + * @param Queue $queue * @return bool * @throws \Doctrine\ORM\OptimisticLockException * @throws \MongoException @@ -229,12 +236,18 @@ class Mail implements QueueInterface, ConfigurableElementInterface public function execute(EventInterface $event, Queue $queue) { - /** @var \PSC\Shop\QueueBundle\Document\Queue\Mail $mailDoc */ + /** + * @var \PSC\Shop\QueueBundle\Document\Queue\Mail $mailDoc +*/ $mailDoc = $queue->getQueueDocument(); $eventDoc = $queue->getEventDocument(); - /** @var TemplateVars $templateVars */ + /** + * @var TemplateVars $templateVars +*/ $templateVars = $this->_templateVars; - /** @var Printing $printing */ + /** + * @var Printing $printing +*/ $printing = $this->_printing; if ($event->isOverwriteQueueHandling()) { try { @@ -265,10 +278,14 @@ class Mail implements QueueInterface, ConfigurableElementInterface if ($event instanceof Lock) { $contactRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Contact'); - /** @var Contact $contact */ + /** + * @var Contact $contact +*/ $contact = $contactRepo->findOneBy(array('uuid' => $event->getContact())); $shopRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Shop'); - /** @var Shop $shop */ + /** + * @var Shop $shop +*/ $shop = $shopRepo->findOneBy(array('uid' => $event->getShop())); $params = array( 'contact' => $contact, @@ -295,17 +312,21 @@ class Mail implements QueueInterface, ConfigurableElementInterface if ($html) { $message->html($html->render($params)); } - $this->_logService->createLogEntry($shop, new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Lock Mail send", [ + $this->_logService->createLogEntry( + $shop, new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Lock Mail send", [ 'message' => $message->getTextBody(), 'from' => $from->render($params), 'to' => $to->render($params), 'subject' => $subject->render($params) - ]); + ] + ); $this->_mailer->send($message); } catch (\Exception $e) { - $this->_logService->createLogEntry($shop, new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "Lock Mail error", [ + $this->_logService->createLogEntry( + $shop, new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "Lock Mail error", [ 'error' => $e->getMessage() - ]); + ] + ); $this->_error = $e->getMessage(); return false; } @@ -314,14 +335,20 @@ class Mail implements QueueInterface, ConfigurableElementInterface } if ($event instanceof UnLock || $event instanceof \PSC\Shop\QueueBundle\Event\Contact\Create || $event instanceof \PSC\Shop\QueueBundle\Event\Contact\Login) { $contactRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Contact'); - /** @var Contact $contact */ + /** + * @var Contact $contact +*/ $contact = $contactRepo->findOneBy(array('uuid' => $event->getContact())); - /** @var \PSC\Shop\EntityBundle\Document\Contact $contactObj */ + /** + * @var \PSC\Shop\EntityBundle\Document\Contact $contactObj +*/ $contactObj = $this->_doctrine_mongodb ->getRepository('PSC\Shop\EntityBundle\Document\Contact') ->findOneBy(array('uid' => (string) $contact->getId())); $shopRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Shop'); - /** @var Shop $shop */ + /** + * @var Shop $shop +*/ $shop = $shopRepo->findOneBy(array('uid' => $event->getShop())); $params = array( 'contact' => $contact, @@ -349,17 +376,21 @@ class Mail implements QueueInterface, ConfigurableElementInterface if ($html) { $message->html($html->render($params)); } - $this->_logService->createLogEntry($shop, new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Login Mail send", [ + $this->_logService->createLogEntry( + $shop, new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Login Mail send", [ 'message' => $message->getTextBody(), 'from' => $from->render($params), 'to' => $to->render($params), 'subject' => $subject->render($params) - ]); + ] + ); $this->_mailer->send($message); } catch (\Exception $e) { - $this->_logService->createLogEntry($shop, new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "Login Mail error", [ + $this->_logService->createLogEntry( + $shop, new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "Login Mail error", [ 'error' => $e->getMessage() - ]); + ] + ); $this->_error = $e->getMessage(); return false; } @@ -368,10 +399,14 @@ class Mail implements QueueInterface, ConfigurableElementInterface } if ($event instanceof Start) { $contactRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Contact'); - /** @var Contact $contact */ + /** + * @var Contact $contact +*/ $contact = $contactRepo->findOneBy(array('uuid' => $event->getContact())); $shopRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Shop'); - /** @var Shop $shop */ + /** + * @var Shop $shop +*/ $shop = $shopRepo->findOneBy(array('uid' => $event->getShop())); $contact->setPasswordResetUuid(Uuid::uuid4()); $contact->setPasswordResetDate(time()); @@ -402,18 +437,22 @@ class Mail implements QueueInterface, ConfigurableElementInterface if ($html) { $message->html($html->render($params)); } - $this->_logService->createLogEntry($shop, new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Mail send", [ + $this->_logService->createLogEntry( + $shop, new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Mail send", [ 'message' => $message->getTextBody(), 'from' => $from->render($params), 'to' => $to->render($params), 'subject' => $subject->render($params) - ]); + ] + ); $this->_mailer->send($message); } catch (\Exception $e) { - $this->_logService->createLogEntry($shop, new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "Request Mail error", [ + $this->_logService->createLogEntry( + $shop, new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "Request Mail error", [ 'error' => $e->getMessage() - ]); + ] + ); $this->_error = $e->getMessage(); return false; } @@ -422,10 +461,14 @@ class Mail implements QueueInterface, ConfigurableElementInterface } if ($event instanceof Finish) { $contactRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Contact'); - /** @var Contact $contact */ + /** + * @var Contact $contact +*/ $contact = $contactRepo->findOneBy(array('uuid' => $event->getContact())); $shopRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Shop'); - /** @var Shop $shop */ + /** + * @var Shop $shop +*/ $shop = $shopRepo->findOneBy(array('uid' => $event->getShop())); $password = $this->generatePassword(10); $contact->setPassword(password_hash($password, PASSWORD_DEFAULT)); @@ -458,17 +501,21 @@ class Mail implements QueueInterface, ConfigurableElementInterface $message->html($html->render($params)); } - $this->_logService->createLogEntry($shop, new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Mail send", [ + $this->_logService->createLogEntry( + $shop, new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Mail send", [ 'message' => "Nicht verfügbar da Passwort enhalten", 'from' => $from->render($params), 'to' => $to->render($params), 'subject' => $subject->render($params) - ]); + ] + ); $this->_mailer->send($message); } catch (\Exception $e) { - $this->_logService->createLogEntry($shop, new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "Request Mail error", [ + $this->_logService->createLogEntry( + $shop, new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "Request Mail error", [ 'error' => $e->getMessage() - ]); + ] + ); $this->_error = $e->getMessage(); return false; } @@ -477,11 +524,15 @@ class Mail implements QueueInterface, ConfigurableElementInterface } if ($event instanceof Notify) { $positionRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Orderpos'); - /** @var Orderpos $position */ + /** + * @var Orderpos $position +*/ $position = $positionRepo->findOneBy(array('uuid' => $event->getPosition())); $templateVars->loadOrder($position->getOrder()->getUuid()); $params = $templateVars->getPosTwigVars($event->getPosition()); - /** @var Position $objDoc */ + /** + * @var Position $objDoc +*/ $objDoc = $this->_doctrine_mongodb ->getRepository(Position::class) ->findOneBy(['uid' => (string)$position->getId()]); @@ -525,7 +576,9 @@ class Mail implements QueueInterface, ConfigurableElementInterface } if ($event instanceof Change) { $positionRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Orderpos'); - /** @var Orderpos $position */ + /** + * @var Orderpos $position +*/ $position = $positionRepo->findOneBy(array('uuid' => $event->getPosition())); $templateVars->loadOrder($position->getOrder()->getUuid()); try { @@ -653,17 +706,21 @@ class Mail implements QueueInterface, ConfigurableElementInterface $message->attach($fileContent->render($templateVars->getTwigVars()), $fileName->render($templateVars->getTwigVars())); } } - $this->_logService->createLogEntry($templateVars->getOrder()->getShop(), new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Mail send", [ + $this->_logService->createLogEntry( + $templateVars->getOrder()->getShop(), new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Mail send", [ 'message' => $message->getTextBody(), 'from' => $from->render($templateVars->getPosTwigVars($position->getUuid())), 'to' => $to->render($templateVars->getPosTwigVars($position->getUuid())), 'subject' => $subject->render($templateVars->getPosTwigVars($position->getUuid())) - ]); + ] + ); $this->_mailer->send($message); } catch (\Exception $e) { - $this->_logService->createLogEntry($templateVars->getOrder()->getShop(), new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "Request Mail error", [ + $this->_logService->createLogEntry( + $templateVars->getOrder()->getShop(), new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "Request Mail error", [ 'error' => $e->getMessage() - ]); + ] + ); $this->_error = $e->getMessage(); return false; } @@ -696,9 +753,14 @@ class Mail implements QueueInterface, ConfigurableElementInterface if ($mailDoc->isSendInvoice()) { $content = $printing->generateOrder($templateVars->getOrder(), Printing::INVOICE); - $contentXRechnung = $printing->generateXRechnung($templateVars->getOrder()); if ($content) { $message->attach($content, $printing->getFileName(), 'application/pdf'); + } + } + + if ($mailDoc->isSendXInvoice()) { + $contentXRechnung = $printing->generateXRechnung($templateVars->getOrder()); + if ($contentXRechnung) { $message->attach($contentXRechnung, "xrechnung.xml", 'application/pdf'); } } @@ -753,16 +815,20 @@ class Mail implements QueueInterface, ConfigurableElementInterface $message->attach($fileContent->render($templateVars->getTwigVars()), $fileName->render($templateVars->getTwigVars())); } } - $this->_logService->createLogEntry($templateVars->getOrder()->getShop(), new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Mail send", [ + $this->_logService->createLogEntry( + $templateVars->getOrder()->getShop(), new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Mail send", [ 'message' => $message->getTextBody(), 'from' => $from->render($templateVars->getTwigVars()), 'to' => trim($to->render($templateVars->getTwigVars())) - ]); + ] + ); $this->_mailer->send($message); } catch (\Exception $e) { - $this->_logService->createLogEntry($templateVars->getOrder()->getShop(), new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "error", [ + $this->_logService->createLogEntry( + $templateVars->getOrder()->getShop(), new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "error", [ 'error' => $e->getMessage() - ]); + ] + ); $this->_error = $e->getMessage(); return false; } @@ -770,7 +836,9 @@ class Mail implements QueueInterface, ConfigurableElementInterface return true; } if ($event instanceof \Plugin\System\PSC\Upload\Event\Create) { - /** @var Upload $upload */ + /** + * @var Upload $upload +*/ $upload = $this->_doctrine_mongodb ->getRepository(Upload::class) ->findOneBy(['id' => new ObjectId($event->getUpload())]); @@ -798,16 +866,20 @@ class Mail implements QueueInterface, ConfigurableElementInterface if ($html) { $message->html($html->render($params)); } - $this->_logService->createLogEntry(new Shop(), new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "\Plugin\System\PSC\Upload\Event\Create Mail send", [ + $this->_logService->createLogEntry( + new Shop(), new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "\Plugin\System\PSC\Upload\Event\Create Mail send", [ 'message' => $message->getTextBody(), 'from' => $message->getFrom(), 'to' => $message->getTo() - ]); + ] + ); $this->_mailer->send($message); } catch (\Exception $e) { - $this->_logService->createLogEntry(new Shop(), new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "\Plugin\System\PSC\Upload\Event\Create Mail error", [ + $this->_logService->createLogEntry( + new Shop(), new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "\Plugin\System\PSC\Upload\Event\Create Mail error", [ 'error' => $e->getMessage() - ]); + ] + ); $this->_error = $e->getMessage(); return false; } @@ -816,10 +888,14 @@ class Mail implements QueueInterface, ConfigurableElementInterface } if ($event instanceof StockMin || $event instanceof BuyMax) { $productRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Product'); - /** @var Product $product */ + /** + * @var Product $product +*/ $product = $productRepo->findOneBy(array('uuid' => $event->getProduct())); $shopRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Shop'); - /** @var Shop $shop */ + /** + * @var Shop $shop +*/ $shop = $shopRepo->findOneBy(array('uid' => $event->getShop())); $params = array( 'product' => $product, @@ -846,17 +922,21 @@ class Mail implements QueueInterface, ConfigurableElementInterface if ($html) { $message->html($html->render($params)); } - $this->_logService->createLogEntry($shop, new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "StockMin BuyMax Mail send", [ + $this->_logService->createLogEntry( + $shop, new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "StockMin BuyMax Mail send", [ 'message' => $message->getTextBody(), 'from' => $from->render($params), 'to' => $to->render($params), 'subject' => $subject->render($params) - ]); + ] + ); $this->_mailer->send($message); } catch (\Exception $e) { - $this->_logService->createLogEntry($shop, new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "StockMin BuyMax Mail error", [ + $this->_logService->createLogEntry( + $shop, new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "StockMin BuyMax Mail error", [ 'error' => $e->getMessage() - ]); + ] + ); $this->_error = $e->getMessage(); return false; } @@ -867,7 +947,9 @@ class Mail implements QueueInterface, ConfigurableElementInterface $templateVars->loadOrder($event->getOrder()); $vars = $templateVars->getPosTwigVars($event->getPosition()); $contactRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Contact'); - /** @var Contact $contact */ + /** + * @var Contact $contact +*/ $contact = $contactRepo->findOneBy(array('uuid' => $event->getContact())); $vars['approvalContact'] = $contact; try { @@ -947,17 +1029,21 @@ class Mail implements QueueInterface, ConfigurableElementInterface $message->attach($fileContent->render($vars), $fileName->render($vars)); } } - $this->_logService->createLogEntry($templateVars->getOrder()->getShop(), new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Request Mail send", [ + $this->_logService->createLogEntry( + $templateVars->getOrder()->getShop(), new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Request Mail send", [ 'message' => $message->getTextBody(), 'from' => $from->render($vars), 'to' => $to->render($vars), 'subject' => $subject->render($vars) - ]); + ] + ); $this->_mailer->send($message); } catch (\Exception $e) { - $this->_logService->createLogEntry($templateVars->getOrder()->getShop(), new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "Request Mail error", [ + $this->_logService->createLogEntry( + $templateVars->getOrder()->getShop(), new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "Request Mail error", [ 'error' => $e->getMessage() - ]); + ] + ); $this->_error = $e->getMessage(); return false; } @@ -968,7 +1054,9 @@ class Mail implements QueueInterface, ConfigurableElementInterface $templateVars->loadOrder($event->getOrder()); $vars = $templateVars->getPosTwigVars($event->getPosition()); $contactRepo = $this->_entityManager->getRepository('PSC\Shop\EntityBundle\Entity\Contact'); - /** @var Contact $contact */ + /** + * @var Contact $contact +*/ $contact = $contactRepo->findOneBy(array('uuid' => $event->getContact())); $vars['approvalContact'] = $contact; $vars['message'] = $event->getMessage(); @@ -1049,17 +1137,21 @@ class Mail implements QueueInterface, ConfigurableElementInterface $message->attach($fileContent->render($vars), $fileName->render($vars)); } } - $this->_logService->createLogEntry($templateVars->getOrder()->getShop(), new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Accept Declined Mail send", [ + $this->_logService->createLogEntry( + $templateVars->getOrder()->getShop(), new Contact(), LogEntry::INFO, PSCShopQueueBundle::class, $queue->getName(), "Accept Declined Mail send", [ 'message' => $message->getTextBody(), 'from' => $from->render($vars), 'to' => $to->render($vars), 'subject' => $subject->render($vars) - ]); + ] + ); $this->_mailer->send($message); } catch (\Exception $e) { - $this->_logService->createLogEntry($templateVars->getOrder()->getShop(), new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "Accept Declined Mail error", [ + $this->_logService->createLogEntry( + $templateVars->getOrder()->getShop(), new Contact(), LogEntry::ERROR, PSCShopQueueBundle::class, $queue->getName(), "Accept Declined Mail error", [ 'error' => $e->getMessage() - ]); + ] + ); $this->_error = $e->getMessage(); return false; } diff --git a/src/new/src/PSC/Shop/UserBundle/Security/ApiKey/InstanceProvider.php b/src/new/src/PSC/Shop/UserBundle/Security/ApiKey/InstanceProvider.php index 3fb48e555..f9ec6357c 100644 --- a/src/new/src/PSC/Shop/UserBundle/Security/ApiKey/InstanceProvider.php +++ b/src/new/src/PSC/Shop/UserBundle/Security/ApiKey/InstanceProvider.php @@ -4,6 +4,7 @@ namespace PSC\Shop\UserBundle\Security\ApiKey; use Doctrine\ODM\MongoDB\DocumentManager; use PSC\Shop\EntityBundle\Document\Instance; +use Symfony\Component\Security\Core\Exception\UserNotFoundException; use Symfony\Component\Security\Core\User\UserProviderInterface; use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Core\Exception\UnsupportedUserException; @@ -40,7 +41,7 @@ class InstanceProvider implements UserProviderInterface if (null === $instance) { - throw new \Symfony\Component\Security\Core\Exception\UsernameNotFoundException(sprintf('Instance "%s" not found.', $identifier)); + throw new UserNotFoundException(sprintf('Instance "%s" not found.', $identifier)); } return $instance; diff --git a/src/new/src/PSC/Shop/UserBundle/Security/ApiKey/ShopProvider.php b/src/new/src/PSC/Shop/UserBundle/Security/ApiKey/ShopProvider.php index 89dc4d48f..a6a9431f9 100644 --- a/src/new/src/PSC/Shop/UserBundle/Security/ApiKey/ShopProvider.php +++ b/src/new/src/PSC/Shop/UserBundle/Security/ApiKey/ShopProvider.php @@ -4,9 +4,9 @@ namespace PSC\Shop\UserBundle\Security\ApiKey; use PSC\Shop\EntityBundle\Entity\Shop; use PSC\Shop\EntityBundle\Repository\ShopRepository; +use Symfony\Component\Security\Core\Exception\UserNotFoundException; use Symfony\Component\Security\Core\User\UserProviderInterface; use Symfony\Component\Security\Core\User\UserInterface; -use Symfony\Component\Security\Core\Exception\UsernameNotFoundException; use Symfony\Component\Security\Core\Exception\UnsupportedUserException; class ShopProvider implements UserProviderInterface @@ -42,7 +42,7 @@ class ShopProvider implements UserProviderInterface if (null === $user) { - throw new \Symfony\Component\Security\Core\Exception\UsernameNotFoundException(sprintf('Shop "%s" not found.', $identifier)); + throw new UserNotFoundException(sprintf('User "%s" not found.', $identifier)); } return $user; diff --git a/src/new/src/PSC/Shop/UserBundle/Security/User/UserProvider.php b/src/new/src/PSC/Shop/UserBundle/Security/User/UserProvider.php index 21259b298..d083cd728 100644 --- a/src/new/src/PSC/Shop/UserBundle/Security/User/UserProvider.php +++ b/src/new/src/PSC/Shop/UserBundle/Security/User/UserProvider.php @@ -4,9 +4,9 @@ namespace PSC\Shop\UserBundle\Security\User; use PSC\Shop\ContactBundle\Repository\ContactRepository; use PSC\Shop\EntityBundle\Entity\Contact; +use Symfony\Component\Security\Core\Exception\UserNotFoundException; use Symfony\Component\Security\Core\User\UserProviderInterface; use Symfony\Component\Security\Core\User\UserInterface; -use Symfony\Component\Security\Core\Exception\UsernameNotFoundException; use Symfony\Component\Security\Core\Exception\UnsupportedUserException; class UserProvider implements UserProviderInterface @@ -42,12 +42,9 @@ class UserProvider implements UserProviderInterface public function loadUserByIdentifier(string $identifier): UserInterface { - $user = $this->repository->loadUserByUsername($identifier); - if (null === $user) { - - throw new \Symfony\Component\Security\Core\Exception\UsernameNotFoundException(sprintf('User "%s" not found.', $identifier)); + throw new UserNotFoundException(sprintf('User "%s" not found.', $identifier)); } return $user; diff --git a/src/new/src/PSC/Shop/UserBundle/Security/ZendAuthenticator.php b/src/new/src/PSC/Shop/UserBundle/Security/ZendAuthenticator.php index b14160332..103681ffd 100755 --- a/src/new/src/PSC/Shop/UserBundle/Security/ZendAuthenticator.php +++ b/src/new/src/PSC/Shop/UserBundle/Security/ZendAuthenticator.php @@ -59,9 +59,11 @@ class ZendAuthenticator extends AbstractAuthenticator if ($contact) { return new SelfValidatingPassport( - new UserBadge($contactUuid, function () use ($contact) { - return $contact; - }) + new UserBadge( + $contactUuid, function () use ($contact) { + return $contact; + } + ) ); } diff --git a/src/new/src/PSC/System/PluginBundle/Compiler/PluginCompiler.php b/src/new/src/PSC/System/PluginBundle/Compiler/PluginCompiler.php index b9143cdae..14d55f7b0 100755 --- a/src/new/src/PSC/System/PluginBundle/Compiler/PluginCompiler.php +++ b/src/new/src/PSC/System/PluginBundle/Compiler/PluginCompiler.php @@ -20,9 +20,11 @@ class PluginCompiler implements CompilerPassInterface try { $collection = (new \MongoDB\Client('mongodb://mongodb/'))->psc->Plugin; $plugins = $collection->find(array('installed' => true)); -/** @var Plugin $plugin */ + /** + * @var Plugin $plugin +*/ foreach ($plugins as $plugin) { - $container->get('doctrine_mongodb.odm.metadata.chain')->addDriver(new AnnotationDriver(new AnnotationReader(), $container->getParameter('kernel.project_dir') . '/var/plugins/' . $plugin['path'] . '/Document'), $plugin['path']); + $container->get('doctrine_mongodb.odm.default_metadata_driver')->addDriver(new AnnotationDriver(new AnnotationReader(), $container->getParameter('kernel.project_dir') . '/var/plugins/' . $plugin['path'] . '/Document'), $plugin['path']); } } catch (\Exception $e) { var_dump($e->getMessage()); diff --git a/src/new/src/PSC/System/PluginBundle/Event/EveryDay.php b/src/new/src/PSC/System/PluginBundle/Event/EveryDay.php new file mode 100644 index 000000000..7d2aa5c3f --- /dev/null +++ b/src/new/src/PSC/System/PluginBundle/Event/EveryDay.php @@ -0,0 +1,26 @@ + -
- -
-
- -
-
-
-