diff --git a/Dockerfile b/Dockerfile index c2f1402..2eab9ee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -49,6 +49,6 @@ RUN chmod +x /var/www/html/bin/psx RUN cd /var/www/html && ./bin/psx migration:migrate --no-interaction RUN cd /var/www/html && ./bin/psx app:fetch_adapter RUN cd /var/www/html && ./bin/psx app:fetch_release -RUN cd /var/www/html && ./bin/psx app:update_blog +RUN cd /var/www/html && ./bin/psx blog:update RUN chmod 777 -R /var/www/html/cache diff --git a/composer.json b/composer.json index ae9648a..892977d 100644 --- a/composer.json +++ b/composer.json @@ -5,7 +5,8 @@ "symfony/dotenv": "^6.0", "symfony/mailer": "^6.0", "symfony/sendgrid-mailer": "^6.0", - "fusio/marketplace": "^0.1.4" + "fusio/marketplace": "^0.1.4", + "chriskapp/blog": "^0.1.2" }, "require-dev": { "vimeo/psalm": "^5.9" diff --git a/composer.lock b/composer.lock index 55b00ac..75267b8 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,54 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "04ef135d0607bc1f604e6b7caaadf3f2", + "content-hash": "2d7f4eab81a16e78bd36ea291791f69f", "packages": [ + { + "name": "chriskapp/blog", + "version": "v0.1.5", + "source": { + "type": "git", + "url": "https://github.com/chriskapp/blog.git", + "reference": "6628063c1853287b752ac3d5f756d5ff227f53cc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/chriskapp/blog/zipball/6628063c1853287b752ac3d5f756d5ff227f53cc", + "reference": "6628063c1853287b752ac3d5f756d5ff227f53cc", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "php": ">=8.1", + "psx/framework": "^7.0" + }, + "require-dev": { + "vimeo/psalm": "^5.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Chriskapp\\Blog\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christoph Kappestein", + "email": "christoph.kappestein@gmail.com", + "homepage": "https://chrisk.app" + } + ], + "homepage": "https://chrisk.app", + "support": { + "issues": "https://github.com/chriskapp/blog/issues", + "source": "https://github.com/chriskapp/blog/tree/v0.1.5" + }, + "time": "2024-09-07T22:42:07+00:00" + }, { "name": "doctrine/cache", "version": "2.2.0", @@ -101,16 +147,16 @@ }, { "name": "doctrine/dbal", - "version": "3.9.0", + "version": "3.9.3", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "d8f68ea6cc00912e5313237130b8c8decf4d28c6" + "reference": "61446f07fcb522414d6cfd8b1c3e5f9e18c579ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/d8f68ea6cc00912e5313237130b8c8decf4d28c6", - "reference": "d8f68ea6cc00912e5313237130b8c8decf4d28c6", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/61446f07fcb522414d6cfd8b1c3e5f9e18c579ba", + "reference": "61446f07fcb522414d6cfd8b1c3e5f9e18c579ba", "shasum": "" }, "require": { @@ -126,7 +172,7 @@ "doctrine/coding-standard": "12.0.0", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.1", - "phpstan/phpstan": "1.11.7", + "phpstan/phpstan": "1.12.6", "phpstan/phpstan-strict-rules": "^1.6", "phpunit/phpunit": "9.6.20", "psalm/plugin-phpunit": "0.18.4", @@ -194,7 +240,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/3.9.0" + "source": "https://github.com/doctrine/dbal/tree/3.9.3" }, "funding": [ { @@ -210,7 +256,7 @@ "type": "tidelift" } ], - "time": "2024-08-15T07:34:42+00:00" + "time": "2024-10-10T17:56:43+00:00" }, { "name": "doctrine/deprecations", @@ -429,16 +475,16 @@ }, { "name": "doctrine/migrations", - "version": "3.8.0", + "version": "3.8.2", "source": { "type": "git", "url": "https://github.com/doctrine/migrations.git", - "reference": "535a70dcbd88b8c6ba945be050977457f4f4c06c" + "reference": "5007eb1168691225ac305fe16856755c20860842" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/migrations/zipball/535a70dcbd88b8c6ba945be050977457f4f4c06c", - "reference": "535a70dcbd88b8c6ba945be050977457f4f4c06c", + "url": "https://api.github.com/repos/doctrine/migrations/zipball/5007eb1168691225ac305fe16856755c20860842", + "reference": "5007eb1168691225ac305fe16856755c20860842", "shasum": "" }, "require": { @@ -461,6 +507,7 @@ "doctrine/persistence": "^2 || ^3", "doctrine/sql-formatter": "^1.0", "ext-pdo_sqlite": "*", + "fig/log-test": "^1", "phpstan/phpstan": "^1.10", "phpstan/phpstan-deprecation-rules": "^1.1", "phpstan/phpstan-phpunit": "^1.3", @@ -511,7 +558,7 @@ ], "support": { "issues": "https://github.com/doctrine/migrations/issues", - "source": "https://github.com/doctrine/migrations/tree/3.8.0" + "source": "https://github.com/doctrine/migrations/tree/3.8.2" }, "funding": [ { @@ -527,7 +574,7 @@ "type": "tidelift" } ], - "time": "2024-06-26T14:12:46+00:00" + "time": "2024-10-10T21:35:27+00:00" }, { "name": "egulias/email-validator", @@ -598,20 +645,20 @@ }, { "name": "fusio/marketplace", - "version": "v0.1.4", + "version": "v0.1.5", "source": { "type": "git", "url": "https://github.com/apioo/fusio-marketplace-sdk-php.git", - "reference": "f5aa16e653a62490956b71b2bc3a4b8a25f485ca" + "reference": "07db769bb48fc186c05ca3e815723201331c2893" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/apioo/fusio-marketplace-sdk-php/zipball/f5aa16e653a62490956b71b2bc3a4b8a25f485ca", - "reference": "f5aa16e653a62490956b71b2bc3a4b8a25f485ca", + "url": "https://api.github.com/repos/apioo/fusio-marketplace-sdk-php/zipball/07db769bb48fc186c05ca3e815723201331c2893", + "reference": "07db769bb48fc186c05ca3e815723201331c2893", "shasum": "" }, "require": { - "sdkgen/client": "^1.0" + "sdkgen/client": "^2.0" }, "require-dev": { "vimeo/psalm": "^5.0" @@ -630,7 +677,7 @@ "homepage": "https://www.fusio-project.org/", "support": { "issues": "https://github.com/apioo/fusio-marketplace-sdk-php/issues", - "source": "https://github.com/apioo/fusio-marketplace-sdk-php/tree/v0.1.4" + "source": "https://github.com/apioo/fusio-marketplace-sdk-php/tree/v0.1.5" }, "funding": [ { @@ -638,7 +685,7 @@ "type": "github" } ], - "time": "2024-07-12T20:03:04+00:00" + "time": "2024-11-01T21:07:30+00:00" }, { "name": "guzzlehttp/guzzle", @@ -768,16 +815,16 @@ }, { "name": "guzzlehttp/promises", - "version": "2.0.3", + "version": "2.0.4", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8" + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", - "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8", + "url": "https://api.github.com/repos/guzzle/promises/zipball/f9c436286ab2892c7db7be8c8da4ef61ccf7b455", + "reference": "f9c436286ab2892c7db7be8c8da4ef61ccf7b455", "shasum": "" }, "require": { @@ -831,7 +878,7 @@ ], "support": { "issues": "https://github.com/guzzle/promises/issues", - "source": "https://github.com/guzzle/promises/tree/2.0.3" + "source": "https://github.com/guzzle/promises/tree/2.0.4" }, "funding": [ { @@ -847,7 +894,7 @@ "type": "tidelift" } ], - "time": "2024-07-18T10:29:17+00:00" + "time": "2024-10-17T10:06:22+00:00" }, { "name": "guzzlehttp/psr7", @@ -1068,16 +1115,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.19.1", + "version": "v4.19.4", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b" + "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/4e1b88d21c69391150ace211e9eaf05810858d0b", - "reference": "4e1b88d21c69391150ace211e9eaf05810858d0b", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/715f4d25e225bc47b293a8b997fe6ce99bf987d2", + "reference": "715f4d25e225bc47b293a8b997fe6ce99bf987d2", "shasum": "" }, "require": { @@ -1086,7 +1133,7 @@ }, "require-dev": { "ircmaxell/php-yacc": "^0.0.7", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0 || ^9.0" + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "bin": [ "bin/php-parse" @@ -1118,9 +1165,9 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.1" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.19.4" }, - "time": "2024-03-17T08:10:35+00:00" + "time": "2024-09-29T15:01:53+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -1177,23 +1224,23 @@ }, { "name": "phpdocumentor/type-resolver", - "version": "1.8.2", + "version": "1.10.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "153ae662783729388a584b4361f2545e4d841e3c" + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/153ae662783729388a584b4361f2545e4d841e3c", - "reference": "153ae662783729388a584b4361f2545e4d841e3c", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/679e3ce485b99e84c775d28e2e96fade9a7fb50a", + "reference": "679e3ce485b99e84c775d28e2e96fade9a7fb50a", "shasum": "" }, "require": { "doctrine/deprecations": "^1.0", "php": "^7.3 || ^8.0", "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.13" + "phpstan/phpdoc-parser": "^1.18|^2.0" }, "require-dev": { "ext-tokenizer": "*", @@ -1229,36 +1276,36 @@ "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", "support": { "issues": "https://github.com/phpDocumentor/TypeResolver/issues", - "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.8.2" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.10.0" }, - "time": "2024-02-23T11:10:43+00:00" + "time": "2024-11-09T15:12:26+00:00" }, { "name": "phpstan/phpdoc-parser", - "version": "1.29.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4" + "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/fcaefacf2d5c417e928405b71b400d4ce10daaf4", - "reference": "fcaefacf2d5c417e928405b71b400d4ce10daaf4", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/c00d78fb6b29658347f9d37ebe104bffadf36299", + "reference": "c00d78fb6b29658347f9d37ebe104bffadf36299", "shasum": "" }, "require": { - "php": "^7.2 || ^8.0" + "php": "^7.4 || ^8.0" }, "require-dev": { "doctrine/annotations": "^2.0", - "nikic/php-parser": "^4.15", + "nikic/php-parser": "^5.3.0", "php-parallel-lint/php-parallel-lint": "^1.2", "phpstan/extension-installer": "^1.0", - "phpstan/phpstan": "^1.5", - "phpstan/phpstan-phpunit": "^1.1", - "phpstan/phpstan-strict-rules": "^1.0", - "phpunit/phpunit": "^9.5", + "phpstan/phpstan": "^2.0", + "phpstan/phpstan-phpunit": "^2.0", + "phpstan/phpstan-strict-rules": "^2.0", + "phpunit/phpunit": "^9.6", "symfony/process": "^5.2" }, "type": "library", @@ -1276,9 +1323,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/1.29.1" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.0.0" }, - "time": "2024-05-31T08:52:43+00:00" + "time": "2024-10-13T11:29:49+00:00" }, { "name": "psr/cache", @@ -1642,16 +1689,16 @@ }, { "name": "psr/log", - "version": "3.0.1", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "79dff0b268932c640297f5208d6298f71855c03e" + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/79dff0b268932c640297f5208d6298f71855c03e", - "reference": "79dff0b268932c640297f5208d6298f71855c03e", + "url": "https://api.github.com/repos/php-fig/log/zipball/f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", + "reference": "f16e1d5863e37f8d8c2a01719f5b34baa2b714d3", "shasum": "" }, "require": { @@ -1686,9 +1733,9 @@ "psr-3" ], "support": { - "source": "https://github.com/php-fig/log/tree/3.0.1" + "source": "https://github.com/php-fig/log/tree/3.0.2" }, - "time": "2024-08-21T13:31:24+00:00" + "time": "2024-09-11T13:17:53+00:00" }, { "name": "psr/simple-cache", @@ -1743,23 +1790,23 @@ }, { "name": "psx/api", - "version": "v7.0.5", + "version": "v7.2.4", "source": { "type": "git", "url": "https://github.com/apioo/psx-api.git", - "reference": "be8ef82a50176e0ace6d9e9c9b3f622569738771" + "reference": "48c952bbf937357063970e1620f097242b4fd1b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/apioo/psx-api/zipball/be8ef82a50176e0ace6d9e9c9b3f622569738771", - "reference": "be8ef82a50176e0ace6d9e9c9b3f622569738771", + "url": "https://api.github.com/repos/apioo/psx-api/zipball/48c952bbf937357063970e1620f097242b4fd1b7", + "reference": "48c952bbf937357063970e1620f097242b4fd1b7", "shasum": "" }, "require": { "php": ">=8.1", "psx/json": "^3.0", - "psx/openapi": "^0.1", - "psx/schema": "^6.0", + "psx/openapi": "^1.0", + "psx/schema": "^7.0", "symfony/cache": "^5.0|^6.0|^7.0", "symfony/console": "^5.0|^6.0|^7.0", "symfony/property-access": "^5.0|^6.0|^7.0", @@ -1798,7 +1845,7 @@ ], "support": { "issues": "https://github.com/apioo/psx-api/issues", - "source": "https://github.com/apioo/psx-api/tree/v7.0.5" + "source": "https://github.com/apioo/psx-api/tree/v7.2.4" }, "funding": [ { @@ -1814,20 +1861,20 @@ "type": "patreon" } ], - "time": "2024-08-23T17:59:40+00:00" + "time": "2024-11-03T22:24:53+00:00" }, { "name": "psx/data", - "version": "v6.0.2", + "version": "v7.0.1", "source": { "type": "git", "url": "https://github.com/apioo/psx-data.git", - "reference": "671f84e41ab50deb66b1e818ad001f43f19d4382" + "reference": "15b8e53099187254148ebee4ea41352177076b3c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/apioo/psx-data/zipball/671f84e41ab50deb66b1e818ad001f43f19d4382", - "reference": "671f84e41ab50deb66b1e818ad001f43f19d4382", + "url": "https://api.github.com/repos/apioo/psx-data/zipball/15b8e53099187254148ebee4ea41352177076b3c", + "reference": "15b8e53099187254148ebee4ea41352177076b3c", "shasum": "" }, "require": { @@ -1838,7 +1885,7 @@ "psx/json": "^3.0", "psx/model": "^5.0", "psx/record": "^3.0", - "psx/schema": "^6.0", + "psx/schema": "^7.0", "psx/validate": "^2.0" }, "require-dev": { @@ -1873,7 +1920,7 @@ ], "support": { "issues": "https://github.com/apioo/psx-data/issues", - "source": "https://github.com/apioo/psx-data/tree/v6.0.2" + "source": "https://github.com/apioo/psx-data/tree/v7.0.1" }, "funding": [ { @@ -1889,20 +1936,20 @@ "type": "patreon" } ], - "time": "2024-04-06T09:08:36+00:00" + "time": "2024-10-10T11:07:43+00:00" }, { "name": "psx/datetime", - "version": "v3.0.1", + "version": "v3.0.2", "source": { "type": "git", "url": "https://github.com/apioo/psx-datetime.git", - "reference": "5b763bcd09fdfda611a72d1a0dc6f34ec10f7b44" + "reference": "4c930aba1cce89a24de0740b6035d44de33585e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/apioo/psx-datetime/zipball/5b763bcd09fdfda611a72d1a0dc6f34ec10f7b44", - "reference": "5b763bcd09fdfda611a72d1a0dc6f34ec10f7b44", + "url": "https://api.github.com/repos/apioo/psx-datetime/zipball/4c930aba1cce89a24de0740b6035d44de33585e6", + "reference": "4c930aba1cce89a24de0740b6035d44de33585e6", "shasum": "" }, "require": { @@ -1941,7 +1988,7 @@ ], "support": { "issues": "https://github.com/apioo/psx-datetime/issues", - "source": "https://github.com/apioo/psx-datetime/tree/v3.0.1" + "source": "https://github.com/apioo/psx-datetime/tree/v3.0.2" }, "funding": [ { @@ -1957,7 +2004,7 @@ "type": "patreon" } ], - "time": "2024-05-10T17:04:35+00:00" + "time": "2024-09-22T08:37:24+00:00" }, { "name": "psx/engine", @@ -2026,16 +2073,16 @@ }, { "name": "psx/framework", - "version": "v7.8.4", + "version": "v7.9.1", "source": { "type": "git", "url": "https://github.com/apioo/psx-framework.git", - "reference": "a70251fd2968740acdeaa498af3e2be7b6a5d32d" + "reference": "3c30eef184d5b9531246df5f76dca31ba957799f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/apioo/psx-framework/zipball/a70251fd2968740acdeaa498af3e2be7b6a5d32d", - "reference": "a70251fd2968740acdeaa498af3e2be7b6a5d32d", + "url": "https://api.github.com/repos/apioo/psx-framework/zipball/3c30eef184d5b9531246df5f76dca31ba957799f", + "reference": "3c30eef184d5b9531246df5f76dca31ba957799f", "shasum": "" }, "require": { @@ -2045,13 +2092,13 @@ "psr/cache": "^1.0|^2.0|^3.0", "psr/container": "^1.0|^2.0", "psr/log": "^1.0|^2.0|^3.0", - "psx/api": "^6.0|^7.0", - "psx/data": "^6.0", + "psx/api": "^7.0", + "psx/data": "^7.0", "psx/engine": "^2.0", "psx/http": "^4.0", "psx/json": "^3.0", "psx/oauth2": "^4.0", - "psx/schema": "^6.0", + "psx/schema": "^7.0", "psx/sql": "^4.0", "psx/uri": "^3.0", "psx/validate": "^2.0", @@ -2099,7 +2146,7 @@ ], "support": { "issues": "https://github.com/apioo/psx-framework/issues", - "source": "https://github.com/apioo/psx-framework/tree/v7.8.4" + "source": "https://github.com/apioo/psx-framework/tree/v7.9.1" }, "funding": [ { @@ -2115,20 +2162,20 @@ "type": "patreon" } ], - "time": "2024-08-23T17:45:36+00:00" + "time": "2024-10-10T12:08:31+00:00" }, { "name": "psx/http", - "version": "v4.0.4", + "version": "v4.0.5", "source": { "type": "git", "url": "https://github.com/apioo/psx-http.git", - "reference": "de7fd38e5759697664e5ed3a1705a7cb4d91c99a" + "reference": "23da2fa4df2e09c9251369894fbe9c3cde6c5d92" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/apioo/psx-http/zipball/de7fd38e5759697664e5ed3a1705a7cb4d91c99a", - "reference": "de7fd38e5759697664e5ed3a1705a7cb4d91c99a", + "url": "https://api.github.com/repos/apioo/psx-http/zipball/23da2fa4df2e09c9251369894fbe9c3cde6c5d92", + "reference": "23da2fa4df2e09c9251369894fbe9c3cde6c5d92", "shasum": "" }, "require": { @@ -2166,7 +2213,7 @@ ], "support": { "issues": "https://github.com/apioo/psx-http/issues", - "source": "https://github.com/apioo/psx-http/tree/v4.0.4" + "source": "https://github.com/apioo/psx-http/tree/v4.0.5" }, "funding": [ { @@ -2182,7 +2229,7 @@ "type": "patreon" } ], - "time": "2024-05-10T17:22:46+00:00" + "time": "2024-09-15T10:25:21+00:00" }, { "name": "psx/json", @@ -2387,16 +2434,16 @@ }, { "name": "psx/openapi", - "version": "v0.1.2", + "version": "v1.0.0", "source": { "type": "git", "url": "https://github.com/apioo/psx-openapi.git", - "reference": "7f4bffb834b35f41679bb068e3990cd907d8c41e" + "reference": "b20b7fae9b1ae6f3c49bc0675ac2ed1ee9437c5d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/apioo/psx-openapi/zipball/7f4bffb834b35f41679bb068e3990cd907d8c41e", - "reference": "7f4bffb834b35f41679bb068e3990cd907d8c41e", + "url": "https://api.github.com/repos/apioo/psx-openapi/zipball/b20b7fae9b1ae6f3c49bc0675ac2ed1ee9437c5d", + "reference": "b20b7fae9b1ae6f3c49bc0675ac2ed1ee9437c5d", "shasum": "" }, "require": { @@ -2405,7 +2452,7 @@ }, "require-dev": { "phpunit/phpunit": "^9.0", - "psx/schema": "^6.0", + "psx/schema": "^7.0", "symfony/yaml": "^5.0|^6.0|^7.0", "vimeo/psalm": "^5.0" }, @@ -2435,7 +2482,7 @@ ], "support": { "issues": "https://github.com/apioo/psx-openapi/issues", - "source": "https://github.com/apioo/psx-openapi/tree/v0.1.2" + "source": "https://github.com/apioo/psx-openapi/tree/v1.0.0" }, "funding": [ { @@ -2451,7 +2498,7 @@ "type": "patreon" } ], - "time": "2024-05-10T17:34:39+00:00" + "time": "2024-10-09T18:33:41+00:00" }, { "name": "psx/record", @@ -2520,16 +2567,16 @@ }, { "name": "psx/schema", - "version": "v6.2.7", + "version": "v7.2.2", "source": { "type": "git", "url": "https://github.com/apioo/psx-schema.git", - "reference": "d87b25ac2f96cc90167b99a6dd7c0a646c3c80ac" + "reference": "c68c07b8295173d34a75c86fb3eb975a94847219" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/apioo/psx-schema/zipball/d87b25ac2f96cc90167b99a6dd7c0a646c3c80ac", - "reference": "d87b25ac2f96cc90167b99a6dd7c0a646c3c80ac", + "url": "https://api.github.com/repos/apioo/psx-schema/zipball/c68c07b8295173d34a75c86fb3eb975a94847219", + "reference": "c68c07b8295173d34a75c86fb3eb975a94847219", "shasum": "" }, "require": { @@ -2549,11 +2596,8 @@ "require-dev": { "phpunit/phpunit": "^9.0", "symfony/yaml": "^5.0|^6.0|^7.0", - "vimeo/psalm": "^4.0" + "vimeo/psalm": "^5.0" }, - "bin": [ - "bin/schema" - ], "type": "library", "autoload": { "psr-4": { @@ -2581,7 +2625,7 @@ ], "support": { "issues": "https://github.com/apioo/psx-schema/issues", - "source": "https://github.com/apioo/psx-schema/tree/v6.2.7" + "source": "https://github.com/apioo/psx-schema/tree/v7.2.2" }, "funding": [ { @@ -2597,7 +2641,7 @@ "type": "patreon" } ], - "time": "2024-08-18T10:20:13+00:00" + "time": "2024-11-09T10:44:50+00:00" }, { "name": "psx/sql", @@ -2844,16 +2888,16 @@ }, { "name": "sdkgen/client", - "version": "v1.1.0", + "version": "v2.0.2", "source": { "type": "git", "url": "https://github.com/apioo/sdkgen-php.git", - "reference": "3a3e8cb788972ea580eb9997bb4e468f1cf4e083" + "reference": "ebc36b65d7e88a88e7c55215e00676f7e58a2947" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/apioo/sdkgen-php/zipball/3a3e8cb788972ea580eb9997bb4e468f1cf4e083", - "reference": "3a3e8cb788972ea580eb9997bb4e468f1cf4e083", + "url": "https://api.github.com/repos/apioo/sdkgen-php/zipball/ebc36b65d7e88a88e7c55215e00676f7e58a2947", + "reference": "ebc36b65d7e88a88e7c55215e00676f7e58a2947", "shasum": "" }, "require": { @@ -2861,8 +2905,8 @@ "php": ">=8.1", "psr/simple-cache": "^3.0", "psx/json": "^3.0", - "psx/model": "^5.0", - "psx/schema": "^5.0|^6.0" + "psx/record": "^3.0", + "psx/schema": "^7.0" }, "require-dev": { "phpunit/phpunit": "^9.0", @@ -2895,7 +2939,7 @@ ], "support": { "issues": "https://github.com/apioo/sdkgen-php/issues", - "source": "https://github.com/apioo/sdkgen-php/tree/v1.1.0" + "source": "https://github.com/apioo/sdkgen-php/tree/v2.0.2" }, "funding": [ { @@ -2911,20 +2955,20 @@ "type": "patreon" } ], - "time": "2024-03-24T18:16:15+00:00" + "time": "2024-10-11T19:02:18+00:00" }, { "name": "symfony/cache", - "version": "v7.1.3", + "version": "v7.1.7", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "8ac37acee794372f9732fe8a61a8221f6762148e" + "reference": "23b61c9592ee72233c31625f0ae805dd1571e928" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/8ac37acee794372f9732fe8a61a8221f6762148e", - "reference": "8ac37acee794372f9732fe8a61a8221f6762148e", + "url": "https://api.github.com/repos/symfony/cache/zipball/23b61c9592ee72233c31625f0ae805dd1571e928", + "reference": "23b61c9592ee72233c31625f0ae805dd1571e928", "shasum": "" }, "require": { @@ -2992,7 +3036,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v7.1.3" + "source": "https://github.com/symfony/cache/tree/v7.1.7" }, "funding": [ { @@ -3008,7 +3052,7 @@ "type": "tidelift" } ], - "time": "2024-07-17T06:10:24+00:00" + "time": "2024-11-05T15:34:55+00:00" }, { "name": "symfony/cache-contracts", @@ -3088,16 +3132,16 @@ }, { "name": "symfony/clock", - "version": "v7.1.1", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/clock.git", - "reference": "3dfc8b084853586de51dd1441c6242c76a28cbe7" + "reference": "97bebc53548684c17ed696bc8af016880f0f098d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/clock/zipball/3dfc8b084853586de51dd1441c6242c76a28cbe7", - "reference": "3dfc8b084853586de51dd1441c6242c76a28cbe7", + "url": "https://api.github.com/repos/symfony/clock/zipball/97bebc53548684c17ed696bc8af016880f0f098d", + "reference": "97bebc53548684c17ed696bc8af016880f0f098d", "shasum": "" }, "require": { @@ -3142,7 +3186,7 @@ "time" ], "support": { - "source": "https://github.com/symfony/clock/tree/v7.1.1" + "source": "https://github.com/symfony/clock/tree/v7.1.6" }, "funding": [ { @@ -3158,20 +3202,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/config", - "version": "v7.1.1", + "version": "v7.1.7", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2" + "reference": "dc373a5cbd345354696f5dfd39c5c7a8ea23f4c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2", - "reference": "2210fc99fa42a259eb6c89d1f724ce0c4d62d5d2", + "url": "https://api.github.com/repos/symfony/config/zipball/dc373a5cbd345354696f5dfd39c5c7a8ea23f4c8", + "reference": "dc373a5cbd345354696f5dfd39c5c7a8ea23f4c8", "shasum": "" }, "require": { @@ -3217,7 +3261,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v7.1.1" + "source": "https://github.com/symfony/config/tree/v7.1.7" }, "funding": [ { @@ -3233,20 +3277,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-11-04T11:34:07+00:00" }, { "name": "symfony/console", - "version": "v7.1.3", + "version": "v7.1.7", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9" + "reference": "3284aafcac338b6e86fd955ee4d794cbe434151a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9", - "reference": "cb1dcb30ebc7005c29864ee78adb47b5fb7c3cd9", + "url": "https://api.github.com/repos/symfony/console/zipball/3284aafcac338b6e86fd955ee4d794cbe434151a", + "reference": "3284aafcac338b6e86fd955ee4d794cbe434151a", "shasum": "" }, "require": { @@ -3310,7 +3354,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.1.3" + "source": "https://github.com/symfony/console/tree/v7.1.7" }, "funding": [ { @@ -3326,20 +3370,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T12:41:01+00:00" + "time": "2024-11-05T15:34:55+00:00" }, { "name": "symfony/dependency-injection", - "version": "v7.1.3", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "8126f0be4ff984e4db0140e60917900a53facb49" + "reference": "1f12f9d580ef8dd09e3b756aa111cc2d5f311bfd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8126f0be4ff984e4db0140e60917900a53facb49", - "reference": "8126f0be4ff984e4db0140e60917900a53facb49", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/1f12f9d580ef8dd09e3b756aa111cc2d5f311bfd", + "reference": "1f12f9d580ef8dd09e3b756aa111cc2d5f311bfd", "shasum": "" }, "require": { @@ -3390,7 +3434,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v7.1.3" + "source": "https://github.com/symfony/dependency-injection/tree/v7.1.6" }, "funding": [ { @@ -3406,7 +3450,7 @@ "type": "tidelift" } ], - "time": "2024-07-26T07:35:39+00:00" + "time": "2024-10-25T15:11:02+00:00" }, { "name": "symfony/deprecation-contracts", @@ -3477,16 +3521,16 @@ }, { "name": "symfony/doctrine-messenger", - "version": "v7.1.2", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-messenger.git", - "reference": "64e2195442df86a7a0c85a77162d0247601e9da9" + "reference": "b2f548cdc9c85258493e022aefa53a44e5b9dfa3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/64e2195442df86a7a0c85a77162d0247601e9da9", - "reference": "64e2195442df86a7a0c85a77162d0247601e9da9", + "url": "https://api.github.com/repos/symfony/doctrine-messenger/zipball/b2f548cdc9c85258493e022aefa53a44e5b9dfa3", + "reference": "b2f548cdc9c85258493e022aefa53a44e5b9dfa3", "shasum": "" }, "require": { @@ -3529,7 +3573,7 @@ "description": "Symfony Doctrine Messenger Bridge", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-messenger/tree/v7.1.2" + "source": "https://github.com/symfony/doctrine-messenger/tree/v7.1.6" }, "funding": [ { @@ -3545,20 +3589,20 @@ "type": "tidelift" } ], - "time": "2024-06-20T15:47:37+00:00" + "time": "2024-10-18T09:46:03+00:00" }, { "name": "symfony/dotenv", - "version": "v6.4.10", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "2ae0c84cc9be0dc1eeb86016970b63c764d8472e" + "reference": "436ae2dd89360fea8c7d5ff3f48ecf523c80bfb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/2ae0c84cc9be0dc1eeb86016970b63c764d8472e", - "reference": "2ae0c84cc9be0dc1eeb86016970b63c764d8472e", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/436ae2dd89360fea8c7d5ff3f48ecf523c80bfb4", + "reference": "436ae2dd89360fea8c7d5ff3f48ecf523c80bfb4", "shasum": "" }, "require": { @@ -3603,7 +3647,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v6.4.10" + "source": "https://github.com/symfony/dotenv/tree/v6.4.13" }, "funding": [ { @@ -3619,20 +3663,20 @@ "type": "tidelift" } ], - "time": "2024-07-09T18:29:35+00:00" + "time": "2024-09-28T07:43:51+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.1.1", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7" + "reference": "87254c78dd50721cfd015b62277a8281c5589702" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", - "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/87254c78dd50721cfd015b62277a8281c5589702", + "reference": "87254c78dd50721cfd015b62277a8281c5589702", "shasum": "" }, "require": { @@ -3683,7 +3727,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.1" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.6" }, "funding": [ { @@ -3699,7 +3743,7 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -3779,16 +3823,16 @@ }, { "name": "symfony/filesystem", - "version": "v7.1.2", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "92a91985250c251de9b947a14bb2c9390b1a562c" + "reference": "c835867b3c62bb05c7fe3d637c871c7ae52024d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/92a91985250c251de9b947a14bb2c9390b1a562c", - "reference": "92a91985250c251de9b947a14bb2c9390b1a562c", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/c835867b3c62bb05c7fe3d637c871c7ae52024d4", + "reference": "c835867b3c62bb05c7fe3d637c871c7ae52024d4", "shasum": "" }, "require": { @@ -3825,7 +3869,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.1.2" + "source": "https://github.com/symfony/filesystem/tree/v7.1.6" }, "funding": [ { @@ -3841,20 +3885,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T10:03:55+00:00" + "time": "2024-10-25T15:11:02+00:00" }, { "name": "symfony/mailer", - "version": "v6.4.9", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45" + "reference": "c2f7e0d8d7ac8fe25faccf5d8cac462805db2663" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45", - "reference": "e2d56f180f5b8c5e7c0fbea872bb1f529b6d6d45", + "url": "https://api.github.com/repos/symfony/mailer/zipball/c2f7e0d8d7ac8fe25faccf5d8cac462805db2663", + "reference": "c2f7e0d8d7ac8fe25faccf5d8cac462805db2663", "shasum": "" }, "require": { @@ -3905,7 +3949,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v6.4.9" + "source": "https://github.com/symfony/mailer/tree/v6.4.13" }, "funding": [ { @@ -3921,20 +3965,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T07:59:05+00:00" + "time": "2024-09-25T14:18:03+00:00" }, { "name": "symfony/messenger", - "version": "v7.1.3", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/messenger.git", - "reference": "604e182a7758ceea35921a8ad5dd492a6e13bae4" + "reference": "a391d2cb2b15436c0e3fbdf983440e762a30f88b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/messenger/zipball/604e182a7758ceea35921a8ad5dd492a6e13bae4", - "reference": "604e182a7758ceea35921a8ad5dd492a6e13bae4", + "url": "https://api.github.com/repos/symfony/messenger/zipball/a391d2cb2b15436c0e3fbdf983440e762a30f88b", + "reference": "a391d2cb2b15436c0e3fbdf983440e762a30f88b", "shasum": "" }, "require": { @@ -3991,7 +4035,7 @@ "description": "Helps applications send and receive messages to/from other applications or via message queues", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/messenger/tree/v7.1.3" + "source": "https://github.com/symfony/messenger/tree/v7.1.6" }, "funding": [ { @@ -4007,20 +4051,20 @@ "type": "tidelift" } ], - "time": "2024-07-09T19:36:07+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/mime", - "version": "v7.1.2", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "26a00b85477e69a4bab63b66c5dce64f18b0cbfc" + "reference": "caa1e521edb2650b8470918dfe51708c237f0598" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/26a00b85477e69a4bab63b66c5dce64f18b0cbfc", - "reference": "26a00b85477e69a4bab63b66c5dce64f18b0cbfc", + "url": "https://api.github.com/repos/symfony/mime/zipball/caa1e521edb2650b8470918dfe51708c237f0598", + "reference": "caa1e521edb2650b8470918dfe51708c237f0598", "shasum": "" }, "require": { @@ -4075,7 +4119,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.1.2" + "source": "https://github.com/symfony/mime/tree/v7.1.6" }, "funding": [ { @@ -4091,20 +4135,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T10:03:55+00:00" + "time": "2024-10-25T15:11:02+00:00" }, { "name": "symfony/options-resolver", - "version": "v7.1.1", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "47aa818121ed3950acd2b58d1d37d08a94f9bf55" + "reference": "85e95eeede2d41cd146146e98c9c81d9214cae85" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/47aa818121ed3950acd2b58d1d37d08a94f9bf55", - "reference": "47aa818121ed3950acd2b58d1d37d08a94f9bf55", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/85e95eeede2d41cd146146e98c9c81d9214cae85", + "reference": "85e95eeede2d41cd146146e98c9c81d9214cae85", "shasum": "" }, "require": { @@ -4142,7 +4186,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.1.1" + "source": "https://github.com/symfony/options-resolver/tree/v7.1.6" }, "funding": [ { @@ -4158,24 +4202,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "0424dff1c58f028c451efff2045f5d92410bd540" + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/0424dff1c58f028c451efff2045f5d92410bd540", - "reference": "0424dff1c58f028c451efff2045f5d92410bd540", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", + "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-ctype": "*" @@ -4221,7 +4265,7 @@ "portable" ], "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" }, "funding": [ { @@ -4237,24 +4281,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-grapheme", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git", - "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a" + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/64647a7c30b2283f5d49b874d84a18fc22054b7a", - "reference": "64647a7c30b2283f5d49b874d84a18fc22054b7a", + "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", + "reference": "b9123926e3b7bc2f98c02ad54f6a4b02b91a8abe", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" @@ -4299,7 +4343,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" }, "funding": [ { @@ -4315,26 +4359,25 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-idn", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-idn.git", - "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c" + "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/a6e83bdeb3c84391d1dfe16f42e40727ce524a5c", - "reference": "a6e83bdeb3c84391d1dfe16f42e40727ce524a5c", + "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/c36586dcf89a12315939e00ec9b4474adcb1d773", + "reference": "c36586dcf89a12315939e00ec9b4474adcb1d773", "shasum": "" }, "require": { - "php": ">=7.1", - "symfony/polyfill-intl-normalizer": "^1.10", - "symfony/polyfill-php72": "^1.10" + "php": ">=7.2", + "symfony/polyfill-intl-normalizer": "^1.10" }, "suggest": { "ext-intl": "For best performance" @@ -4383,7 +4426,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.31.0" }, "funding": [ { @@ -4399,24 +4442,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-intl-normalizer", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git", - "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb" + "reference": "3833d7255cc303546435cb650316bff708a1c75c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/a95281b0be0d9ab48050ebd988b967875cdb9fdb", - "reference": "a95281b0be0d9ab48050ebd988b967875cdb9fdb", + "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c", + "reference": "3833d7255cc303546435cb650316bff708a1c75c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "suggest": { "ext-intl": "For best performance" @@ -4464,7 +4507,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" }, "funding": [ { @@ -4480,24 +4523,24 @@ "type": "tidelift" } ], - "time": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c" + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c", - "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", + "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "provide": { "ext-mbstring": "*" @@ -4544,80 +4587,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.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": "2024-06-19T12:30:46+00:00" - }, - { - "name": "symfony/polyfill-php72", - "version": "v1.30.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php72.git", - "reference": "10112722600777e02d2745716b70c5db4ca70442" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/10112722600777e02d2745716b70c5db4ca70442", - "reference": "10112722600777e02d2745716b70c5db4ca70442", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php72\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php72/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" }, "funding": [ { @@ -4633,104 +4603,24 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" - }, - { - "name": "symfony/polyfill-php80", - "version": "v1.30.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php80.git", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/77fa7995ac1b21ab60769b7323d600a991a90433", - "reference": "77fa7995ac1b21ab60769b7323d600a991a90433", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Php80\\": "" - }, - "classmap": [ - "Resources/stubs" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Ion Bazan", - "email": "ion.bazan@gmail.com" - }, - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-php80/tree/v1.30.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": "2024-05-31T15:07:36+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php81", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php81.git", - "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af" + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/3fb075789fb91f9ad9af537c4012d523085bd5af", - "reference": "3fb075789fb91f9ad9af537c4012d523085bd5af", + "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", + "reference": "4a4cfc2d253c21a5ad0e53071df248ed48c6ce5c", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { @@ -4773,7 +4663,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php81/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" }, "funding": [ { @@ -4789,24 +4679,24 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:30:46+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/polyfill-php83", - "version": "v1.30.0", + "version": "v1.31.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php83.git", - "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9" + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", - "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9", + "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/2fb86d65e2d424369ad2905e83b236a8805ba491", + "reference": "2fb86d65e2d424369ad2905e83b236a8805ba491", "shasum": "" }, "require": { - "php": ">=7.1" + "php": ">=7.2" }, "type": "library", "extra": { @@ -4849,7 +4739,7 @@ "shim" ], "support": { - "source": "https://github.com/symfony/polyfill-php83/tree/v1.30.0" + "source": "https://github.com/symfony/polyfill-php83/tree/v1.31.0" }, "funding": [ { @@ -4865,20 +4755,20 @@ "type": "tidelift" } ], - "time": "2024-06-19T12:35:24+00:00" + "time": "2024-09-09T11:45:10+00:00" }, { "name": "symfony/property-access", - "version": "v7.1.1", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/property-access.git", - "reference": "74e39e6a6276b8e384f34c6ddbc10a6c9a60193a" + "reference": "975d7f7fd8fcb952364c6badc46d01a580532bf9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-access/zipball/74e39e6a6276b8e384f34c6ddbc10a6c9a60193a", - "reference": "74e39e6a6276b8e384f34c6ddbc10a6c9a60193a", + "url": "https://api.github.com/repos/symfony/property-access/zipball/975d7f7fd8fcb952364c6badc46d01a580532bf9", + "reference": "975d7f7fd8fcb952364c6badc46d01a580532bf9", "shasum": "" }, "require": { @@ -4925,7 +4815,7 @@ "reflection" ], "support": { - "source": "https://github.com/symfony/property-access/tree/v7.1.1" + "source": "https://github.com/symfony/property-access/tree/v7.1.6" }, "funding": [ { @@ -4941,20 +4831,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/property-info", - "version": "v7.1.3", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/property-info.git", - "reference": "88a279df2db5b7919cac6f35d6a5d1d7147e6a9b" + "reference": "6b630ff585d9fdc72f50369885ad4364a849cf02" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/property-info/zipball/88a279df2db5b7919cac6f35d6a5d1d7147e6a9b", - "reference": "88a279df2db5b7919cac6f35d6a5d1d7147e6a9b", + "url": "https://api.github.com/repos/symfony/property-info/zipball/6b630ff585d9fdc72f50369885ad4364a849cf02", + "reference": "6b630ff585d9fdc72f50369885ad4364a849cf02", "shasum": "" }, "require": { @@ -5009,7 +4899,7 @@ "validator" ], "support": { - "source": "https://github.com/symfony/property-info/tree/v7.1.3" + "source": "https://github.com/symfony/property-info/tree/v7.1.6" }, "funding": [ { @@ -5025,20 +4915,20 @@ "type": "tidelift" } ], - "time": "2024-07-26T07:36:36+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/rate-limiter", - "version": "v7.1.1", + "version": "v7.1.7", "source": { "type": "git", "url": "https://github.com/symfony/rate-limiter.git", - "reference": "f1fbc60e7fed63f1c77bbf8601170cc80fddd95a" + "reference": "a664a5ad219a14dd71afe778cf6cced6411caa26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/rate-limiter/zipball/f1fbc60e7fed63f1c77bbf8601170cc80fddd95a", - "reference": "f1fbc60e7fed63f1c77bbf8601170cc80fddd95a", + "url": "https://api.github.com/repos/symfony/rate-limiter/zipball/a664a5ad219a14dd71afe778cf6cced6411caa26", + "reference": "a664a5ad219a14dd71afe778cf6cced6411caa26", "shasum": "" }, "require": { @@ -5079,7 +4969,7 @@ "rate-limiter" ], "support": { - "source": "https://github.com/symfony/rate-limiter/tree/v7.1.1" + "source": "https://github.com/symfony/rate-limiter/tree/v7.1.7" }, "funding": [ { @@ -5095,20 +4985,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-11-05T15:34:55+00:00" }, { "name": "symfony/sendgrid-mailer", - "version": "v6.4.8", + "version": "v6.4.13", "source": { "type": "git", "url": "https://github.com/symfony/sendgrid-mailer.git", - "reference": "de781810f7fbcef2d21a7e5b24cf4d85bac4bceb" + "reference": "389edd891a53f28e2687f71d94f1e2f3258e3441" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/sendgrid-mailer/zipball/de781810f7fbcef2d21a7e5b24cf4d85bac4bceb", - "reference": "de781810f7fbcef2d21a7e5b24cf4d85bac4bceb", + "url": "https://api.github.com/repos/symfony/sendgrid-mailer/zipball/389edd891a53f28e2687f71d94f1e2f3258e3441", + "reference": "389edd891a53f28e2687f71d94f1e2f3258e3441", "shasum": "" }, "require": { @@ -5149,7 +5039,7 @@ "description": "Symfony Sendgrid Mailer Bridge", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/sendgrid-mailer/tree/v6.4.8" + "source": "https://github.com/symfony/sendgrid-mailer/tree/v6.4.13" }, "funding": [ { @@ -5165,20 +5055,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:49:08+00:00" + "time": "2024-09-26T14:38:41+00:00" }, { "name": "symfony/serializer", - "version": "v7.1.3", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/serializer.git", - "reference": "0d5ddac365fbfffc30ca9bc944ad3eb9b3763c09" + "reference": "537f125ed7ddb8fffac34a83dfd6905e044ca76f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/serializer/zipball/0d5ddac365fbfffc30ca9bc944ad3eb9b3763c09", - "reference": "0d5ddac365fbfffc30ca9bc944ad3eb9b3763c09", + "url": "https://api.github.com/repos/symfony/serializer/zipball/537f125ed7ddb8fffac34a83dfd6905e044ca76f", + "reference": "537f125ed7ddb8fffac34a83dfd6905e044ca76f", "shasum": "" }, "require": { @@ -5192,12 +5082,14 @@ "symfony/dependency-injection": "<6.4", "symfony/property-access": "<6.4", "symfony/property-info": "<6.4", + "symfony/type-info": "<7.1.5", "symfony/uid": "<6.4", "symfony/validator": "<6.4", "symfony/yaml": "<6.4" }, "require-dev": { "phpdocumentor/reflection-docblock": "^3.2|^4.0|^5.0", + "phpstan/phpdoc-parser": "^1.0", "seld/jsonlint": "^1.10", "symfony/cache": "^6.4|^7.0", "symfony/config": "^6.4|^7.0", @@ -5213,7 +5105,7 @@ "symfony/property-access": "^6.4|^7.0", "symfony/property-info": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3", - "symfony/type-info": "^7.1", + "symfony/type-info": "^7.1.5", "symfony/uid": "^6.4|^7.0", "symfony/validator": "^6.4|^7.0", "symfony/var-dumper": "^6.4|^7.0", @@ -5246,7 +5138,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/v7.1.3" + "source": "https://github.com/symfony/serializer/tree/v7.1.6" }, "funding": [ { @@ -5262,7 +5154,7 @@ "type": "tidelift" } ], - "time": "2024-07-17T06:10:24+00:00" + "time": "2024-10-09T08:46:59+00:00" }, { "name": "symfony/service-contracts", @@ -5349,16 +5241,16 @@ }, { "name": "symfony/stopwatch", - "version": "v7.1.1", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d" + "reference": "8b4a434e6e7faf6adedffb48783a5c75409a1a05" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d", - "reference": "5b75bb1ac2ba1b9d05c47fc4b3046a625377d23d", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/8b4a434e6e7faf6adedffb48783a5c75409a1a05", + "reference": "8b4a434e6e7faf6adedffb48783a5c75409a1a05", "shasum": "" }, "require": { @@ -5391,7 +5283,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v7.1.1" + "source": "https://github.com/symfony/stopwatch/tree/v7.1.6" }, "funding": [ { @@ -5407,20 +5299,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/string", - "version": "v7.1.3", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "ea272a882be7f20cad58d5d78c215001617b7f07" + "reference": "61b72d66bf96c360a727ae6232df5ac83c71f626" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/ea272a882be7f20cad58d5d78c215001617b7f07", - "reference": "ea272a882be7f20cad58d5d78c215001617b7f07", + "url": "https://api.github.com/repos/symfony/string/zipball/61b72d66bf96c360a727ae6232df5ac83c71f626", + "reference": "61b72d66bf96c360a727ae6232df5ac83c71f626", "shasum": "" }, "require": { @@ -5478,7 +5370,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.1.3" + "source": "https://github.com/symfony/string/tree/v7.1.6" }, "funding": [ { @@ -5494,20 +5386,20 @@ "type": "tidelift" } ], - "time": "2024-07-22T10:25:37+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/type-info", - "version": "v7.1.1", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/type-info.git", - "reference": "60b28eb733f1453287f1263ed305b96091e0d1dc" + "reference": "a13032128c307470955c45c99201349b15cd7f4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/type-info/zipball/60b28eb733f1453287f1263ed305b96091e0d1dc", - "reference": "60b28eb733f1453287f1263ed305b96091e0d1dc", + "url": "https://api.github.com/repos/symfony/type-info/zipball/a13032128c307470955c45c99201349b15cd7f4a", + "reference": "a13032128c307470955c45c99201349b15cd7f4a", "shasum": "" }, "require": { @@ -5560,7 +5452,7 @@ "type" ], "support": { - "source": "https://github.com/symfony/type-info/tree/v7.1.1" + "source": "https://github.com/symfony/type-info/tree/v7.1.6" }, "funding": [ { @@ -5576,20 +5468,20 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:59:31+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/var-exporter", - "version": "v7.1.2", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "b80a669a2264609f07f1667f891dbfca25eba44c" + "reference": "90173ef89c40e7c8c616653241048705f84130ef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/b80a669a2264609f07f1667f891dbfca25eba44c", - "reference": "b80a669a2264609f07f1667f891dbfca25eba44c", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/90173ef89c40e7c8c616653241048705f84130ef", + "reference": "90173ef89c40e7c8c616653241048705f84130ef", "shasum": "" }, "require": { @@ -5636,7 +5528,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.1.2" + "source": "https://github.com/symfony/var-exporter/tree/v7.1.6" }, "funding": [ { @@ -5652,20 +5544,20 @@ "type": "tidelift" } ], - "time": "2024-06-28T08:00:31+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "symfony/yaml", - "version": "v7.1.1", + "version": "v7.1.6", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "fa34c77015aa6720469db7003567b9f772492bf2" + "reference": "3ced3f29e4f0d6bce2170ff26719f1fe9aacc671" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/fa34c77015aa6720469db7003567b9f772492bf2", - "reference": "fa34c77015aa6720469db7003567b9f772492bf2", + "url": "https://api.github.com/repos/symfony/yaml/zipball/3ced3f29e4f0d6bce2170ff26719f1fe9aacc671", + "reference": "3ced3f29e4f0d6bce2170ff26719f1fe9aacc671", "shasum": "" }, "require": { @@ -5707,7 +5599,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.1.1" + "source": "https://github.com/symfony/yaml/tree/v7.1.6" }, "funding": [ { @@ -5723,28 +5615,27 @@ "type": "tidelift" } ], - "time": "2024-05-31T14:57:53+00:00" + "time": "2024-09-25T14:20:29+00:00" }, { "name": "twig/twig", - "version": "v3.11.0", + "version": "v3.14.2", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "e80fb8ebba85c7341a97a9ebf825d7fd4b77708d" + "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/e80fb8ebba85c7341a97a9ebf825d7fd4b77708d", - "reference": "e80fb8ebba85c7341a97a9ebf825d7fd4b77708d", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", + "reference": "0b6f9d8370bb3b7f1ce5313ed8feb0fafd6e399a", "shasum": "" }, "require": { - "php": ">=7.2.5", + "php": ">=8.0.2", "symfony/deprecation-contracts": "^2.5|^3", "symfony/polyfill-ctype": "^1.8", "symfony/polyfill-mbstring": "^1.3", - "symfony/polyfill-php80": "^1.22", "symfony/polyfill-php81": "^1.29" }, "require-dev": { @@ -5791,7 +5682,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.11.0" + "source": "https://github.com/twigphp/Twig/tree/v3.14.2" }, "funding": [ { @@ -5803,7 +5694,7 @@ "type": "tidelift" } ], - "time": "2024-08-08T16:15:16+00:00" + "time": "2024-11-07T12:36:22+00:00" } ], "packages-dev": [ @@ -5969,16 +5860,16 @@ }, { "name": "composer/pcre", - "version": "3.3.0", + "version": "3.3.1", "source": { "type": "git", "url": "https://github.com/composer/pcre.git", - "reference": "1637e067347a0c40bbb1e3cd786b20dcab556a81" + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/pcre/zipball/1637e067347a0c40bbb1e3cd786b20dcab556a81", - "reference": "1637e067347a0c40bbb1e3cd786b20dcab556a81", + "url": "https://api.github.com/repos/composer/pcre/zipball/63aaeac21d7e775ff9bc9d45021e1745c97521c4", + "reference": "63aaeac21d7e775ff9bc9d45021e1745c97521c4", "shasum": "" }, "require": { @@ -6028,7 +5919,7 @@ ], "support": { "issues": "https://github.com/composer/pcre/issues", - "source": "https://github.com/composer/pcre/tree/3.3.0" + "source": "https://github.com/composer/pcre/tree/3.3.1" }, "funding": [ { @@ -6044,28 +5935,28 @@ "type": "tidelift" } ], - "time": "2024-08-19T19:43:53+00:00" + "time": "2024-08-27T18:44:43+00:00" }, { "name": "composer/semver", - "version": "3.4.2", + "version": "3.4.3", "source": { "type": "git", "url": "https://github.com/composer/semver.git", - "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6" + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/semver/zipball/c51258e759afdb17f1fd1fe83bc12baaef6309d6", - "reference": "c51258e759afdb17f1fd1fe83bc12baaef6309d6", + "url": "https://api.github.com/repos/composer/semver/zipball/4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", + "reference": "4313d26ada5e0c4edfbd1dc481a92ff7bff91f12", "shasum": "" }, "require": { "php": "^5.3.2 || ^7.0 || ^8.0" }, "require-dev": { - "phpstan/phpstan": "^1.4", - "symfony/phpunit-bridge": "^4.2 || ^5" + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^3 || ^7" }, "type": "library", "extra": { @@ -6109,7 +6000,7 @@ "support": { "irc": "ircs://irc.libera.chat:6697/composer", "issues": "https://github.com/composer/semver/issues", - "source": "https://github.com/composer/semver/tree/3.4.2" + "source": "https://github.com/composer/semver/tree/3.4.3" }, "funding": [ { @@ -6125,7 +6016,7 @@ "type": "tidelift" } ], - "time": "2024-07-12T11:35:52+00:00" + "time": "2024-09-19T14:15:21+00:00" }, { "name": "composer/xdebug-handler", @@ -6277,16 +6168,16 @@ }, { "name": "felixfbecker/language-server-protocol", - "version": "v1.5.2", + "version": "v1.5.3", "source": { "type": "git", "url": "https://github.com/felixfbecker/php-language-server-protocol.git", - "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842" + "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/6e82196ffd7c62f7794d778ca52b69feec9f2842", - "reference": "6e82196ffd7c62f7794d778ca52b69feec9f2842", + "url": "https://api.github.com/repos/felixfbecker/php-language-server-protocol/zipball/a9e113dbc7d849e35b8776da39edaf4313b7b6c9", + "reference": "a9e113dbc7d849e35b8776da39edaf4313b7b6c9", "shasum": "" }, "require": { @@ -6327,22 +6218,22 @@ ], "support": { "issues": "https://github.com/felixfbecker/php-language-server-protocol/issues", - "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.2" + "source": "https://github.com/felixfbecker/php-language-server-protocol/tree/v1.5.3" }, - "time": "2022-03-02T22:36:06+00:00" + "time": "2024-04-30T00:40:11+00:00" }, { "name": "fidry/cpu-core-counter", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/theofidry/cpu-core-counter.git", - "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42" + "reference": "8520451a140d3f46ac33042715115e290cf5785f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/f92996c4d5c1a696a6a970e20f7c4216200fcc42", - "reference": "f92996c4d5c1a696a6a970e20f7c4216200fcc42", + "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/8520451a140d3f46ac33042715115e290cf5785f", + "reference": "8520451a140d3f46ac33042715115e290cf5785f", "shasum": "" }, "require": { @@ -6382,7 +6273,7 @@ ], "support": { "issues": "https://github.com/theofidry/cpu-core-counter/issues", - "source": "https://github.com/theofidry/cpu-core-counter/tree/1.1.0" + "source": "https://github.com/theofidry/cpu-core-counter/tree/1.2.0" }, "funding": [ { @@ -6390,20 +6281,20 @@ "type": "github" } ], - "time": "2024-02-07T09:43:46+00:00" + "time": "2024-08-06T10:04:20+00:00" }, { "name": "netresearch/jsonmapper", - "version": "v4.4.1", + "version": "v4.5.0", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0" + "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/132c75c7dd83e45353ebb9c6c9f591952995bbf0", - "reference": "132c75c7dd83e45353ebb9c6c9f591952995bbf0", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8e76efb98ee8b6afc54687045e1b8dba55ac76e5", + "reference": "8e76efb98ee8b6afc54687045e1b8dba55ac76e5", "shasum": "" }, "require": { @@ -6439,41 +6330,34 @@ "support": { "email": "cweiske@cweiske.de", "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v4.4.1" + "source": "https://github.com/cweiske/jsonmapper/tree/v4.5.0" }, - "time": "2024-01-31T06:18:54+00:00" + "time": "2024-09-08T10:13:13+00:00" }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.4.1", + "version": "5.3.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c" + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", - "reference": "9d07b3f7fdcf5efec5d1609cba3c19c5ea2bdc9c", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/622548b623e81ca6d78b721c5e029f4ce664f170", + "reference": "622548b623e81ca6d78b721c5e029f4ce664f170", "shasum": "" }, "require": { - "doctrine/deprecations": "^1.1", "ext-filter": "*", - "php": "^7.4 || ^8.0", + "php": "^7.2 || ^8.0", "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.7", - "phpstan/phpdoc-parser": "^1.7", + "phpdocumentor/type-resolver": "^1.3", "webmozart/assert": "^1.9.1" }, "require-dev": { - "mockery/mockery": "~1.3.5", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-mockery": "^1.1", - "phpstan/phpstan-webmozart-assert": "^1.2", - "phpunit/phpunit": "^9.5", - "vimeo/psalm": "^5.13" + "mockery/mockery": "~1.3.2", + "psalm/phar": "^4.8" }, "type": "library", "extra": { @@ -6497,15 +6381,15 @@ }, { "name": "Jaap van Otterdijk", - "email": "opensource@ijaap.nl" + "email": "account@ijaap.nl" } ], "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.4.1" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.3.0" }, - "time": "2024-05-21T05:55:05+00:00" + "time": "2021-10-19T17:43:47+00:00" }, { "name": "sebastian/diff", @@ -6644,16 +6528,16 @@ }, { "name": "vimeo/psalm", - "version": "5.25.0", + "version": "5.26.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "01a8eb06b9e9cc6cfb6a320bf9fb14331919d505" + "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/01a8eb06b9e9cc6cfb6a320bf9fb14331919d505", - "reference": "01a8eb06b9e9cc6cfb6a320bf9fb14331919d505", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/d747f6500b38ac4f7dfc5edbcae6e4b637d7add0", + "reference": "d747f6500b38ac4f7dfc5edbcae6e4b637d7add0", "shasum": "" }, "require": { @@ -6674,7 +6558,7 @@ "felixfbecker/language-server-protocol": "^1.5.2", "fidry/cpu-core-counter": "^0.4.1 || ^0.5.1 || ^1.0.0", "netresearch/jsonmapper": "^1.0 || ^2.0 || ^3.0 || ^4.0", - "nikic/php-parser": "^4.16", + "nikic/php-parser": "^4.17", "php": "^7.4 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0", "sebastian/diff": "^4.0 || ^5.0 || ^6.0", "spatie/array-to-xml": "^2.17.0 || ^3.0", @@ -6750,7 +6634,7 @@ "issues": "https://github.com/vimeo/psalm/issues", "source": "https://github.com/vimeo/psalm" }, - "time": "2024-06-16T15:08:35+00:00" + "time": "2024-09-08T18:53:08+00:00" }, { "name": "webmozart/assert", diff --git a/configuration.php b/configuration.php index 821ef0e..e1b8669 100644 --- a/configuration.php +++ b/configuration.php @@ -8,8 +8,17 @@ 'recaptcha_key' => env('APP_RECAPTCHA_KEY')->string(), 'recaptcha_secret' => env('APP_RECAPTCHA_SECRET')->string(), - // File which contains an atom feed with blog entries + // the blog source xml file containing all posts 'blog_file' => __DIR__ . '/resources/blog.xml', + 'blog_title' => 'Fusio', + + // the default author of the blog posts + 'blog_author_name' => 'chriskapp', + 'blog_author_uri' => 'https://chrisk.app/', + + // the blog template files + 'blog_template_index' => 'blog.php', + 'blog_template_detail' => 'blog/detail.php', // GIT repo data 'git_api' => 'https://api.github.com', diff --git a/container.php b/container.php index d5f7ef5..5cb4133 100644 --- a/container.php +++ b/container.php @@ -4,5 +4,6 @@ __DIR__, true, __DIR__ . '/vendor/psx/framework/resources/container.php', + __DIR__ . '/vendor/chriskapp/blog/resources/container.php', __DIR__ . '/resources/container.php', ); diff --git a/resources/template/inc/header.php b/resources/template/inc/header.php index 700cf1a..b58f1bc 100644 --- a/resources/template/inc/header.php +++ b/resources/template/inc/header.php @@ -20,7 +20,7 @@ - + @@ -84,7 +84,7 @@ function gtag(){dataLayer.push(arguments);} Partner diff --git a/src/Command/ShowBlogCommand.php b/src/Command/ShowBlogCommand.php deleted file mode 100644 index 463e2f2..0000000 --- a/src/Command/ShowBlogCommand.php +++ /dev/null @@ -1,53 +0,0 @@ -blogTable = $blogTable; - } - - protected function configure(): void - { - $this - ->setName('app:show_blog') - ->setDescription('Shows all entries from the sqlite database'); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - $entries = $this->blogTable->findAll(sortBy: BlogTable::COLUMN_UPDATED, sortOrder: OrderBy::DESC); - $rows = []; - - foreach ($entries as $entry) { - $rows[] = [ - $entry->getId(), - $entry->getTitle(), - $entry->getUpdated()->toString() - ]; - } - - $table = new Table($output); - $table - ->setStyle('compact') - ->setRows($rows); - - $table->render(); - - return 0; - } -} diff --git a/src/Command/UpdateBlogCommand.php b/src/Command/UpdateBlogCommand.php deleted file mode 100644 index 57d993c..0000000 --- a/src/Command/UpdateBlogCommand.php +++ /dev/null @@ -1,38 +0,0 @@ -blogUpdater = $blogUpdater; - } - - protected function configure(): void - { - $this - ->setName('app:update_blog') - ->setDescription('Updates all entries from the blog xml feed into an sqlite database') - ->addOption('force', 'f', InputOption::VALUE_NONE, 'Forces the update of all entries'); - } - - protected function execute(InputInterface $input, OutputInterface $output): int - { - foreach ($this->blogUpdater->updateAll($input->getOption('force')) as $message) { - $output->writeln($message); - } - - return 0; - } -} diff --git a/src/Controller/Blog.php b/src/Controller/Blog.php deleted file mode 100644 index f99ae8d..0000000 --- a/src/Controller/Blog.php +++ /dev/null @@ -1,79 +0,0 @@ -blogTable = $blogTable; - $this->reverseRouter = $reverseRouter; - } - - #[Get] - #[Path('/blog')] - public function show(?int $startIndex): mixed - { - $totalResults = $this->blogTable->getCount(); - $selfUrl = $this->reverseRouter->getUrl([self::class, 'show']) ?? throw new \RuntimeException('Could not find controller'); - $startIndex = $this->getStartIndex($startIndex); - - $data = [ - 'title' => 'Blog | Fusio', - 'canonical' => $this->reverseRouter->getUrl([self::class, 'show']) . (($startIndex > 0) ? '?startIndex=' . $startIndex : ''), - 'totalResults' => $totalResults, - 'startIndex' => $startIndex, - 'entry' => $this->blogTable->findIndexEntries($startIndex), - 'links' => $this->getLinks($selfUrl, $startIndex, $totalResults), - ]; - - $templateFile = __DIR__ . '/../../resources/template/blog.php'; - return new Template($data, $templateFile, $this->reverseRouter); - } - - /** - * Returns the HATEOAS links for further navigation - */ - private function getLinks(string $selfUrl, ?int $startIndex, int $totalResults): array - { - $prev = $startIndex - self::ITEMS_PER_PAGE; - $prev = max($prev, 0); - $next = $startIndex + self::ITEMS_PER_PAGE; - $next = $next >= $totalResults ? $startIndex : $next; - - return [[ - 'rel' => 'self', - 'href' => $selfUrl, - ],[ - 'rel' => 'next', - 'href' => $selfUrl . '?startIndex=' . $next, - ],[ - 'rel' => 'prev', - 'href' => $selfUrl . '?startIndex=' . $prev, - ]]; - } - - /** - * Returns the startIndex GET parameter - */ - private function getStartIndex(?int $startIndex): int - { - $startIndex = max((int) $startIndex, 0); - $startIndex = $startIndex % self::ITEMS_PER_PAGE !== 0 ? $startIndex - ($startIndex % self::ITEMS_PER_PAGE) : $startIndex; - - return $startIndex; - } -} diff --git a/src/Controller/Blog/Detail.php b/src/Controller/Blog/Detail.php index d128863..cba3891 100644 --- a/src/Controller/Blog/Detail.php +++ b/src/Controller/Blog/Detail.php @@ -2,43 +2,15 @@ namespace App\Controller\Blog; -use App\Table; -use App\Table\Generated\BlogRow; use PSX\Api\Attribute\Get; use PSX\Api\Attribute\Path; -use PSX\Framework\Controller\ControllerAbstract; -use PSX\Framework\Http\Writer\Template; -use PSX\Framework\Loader\ReverseRouter; -use PSX\Http\Environment\HttpContextInterface; -use PSX\Http\Exception as StatusCode; -class Detail extends ControllerAbstract +class Detail extends \Chriskapp\Blog\Controller\Detail { - private Table\Blog $blogTable; - private ReverseRouter $reverseRouter; - - public function __construct(Table\Blog $blogTable, ReverseRouter $reverseRouter) - { - $this->blogTable = $blogTable; - $this->reverseRouter = $reverseRouter; - } - #[Get] #[Path('/blog/post/:title')] public function show(string $title): mixed { - $entry = $this->blogTable->findOneByTitleSlug($title); - if (!$entry instanceof BlogRow) { - throw new StatusCode\NotFoundException('Entry not found'); - } - - $data = [ - 'title' => $entry->getTitle() . ' | Fusio', - 'canonical' => $this->reverseRouter->getUrl([self::class, 'show'], [$entry->getTitleSlug()]), - 'entry' => $entry, - ]; - - $templateFile = __DIR__ . '/../../../resources/template/blog/detail.php'; - return new Template($data, $templateFile, $this->reverseRouter); + return parent::show($title); } } diff --git a/src/Controller/Blog/Feed.php b/src/Controller/Blog/Feed.php deleted file mode 100644 index 52a313e..0000000 --- a/src/Controller/Blog/Feed.php +++ /dev/null @@ -1,33 +0,0 @@ -config = $config; - } - - #[Get] - #[Path('/blog/feed')] - public function show(): mixed - { - return new HttpResponse( - 200, - ['Content-Type' => 'application/atom+xml'], - file_get_contents($this->config->get('blog_file')) - ); - } -} diff --git a/src/Migrations/Version20230513181334.php b/src/Migrations/Version20230513181334.php index 67c13a2..c57b7e1 100644 --- a/src/Migrations/Version20230513181334.php +++ b/src/Migrations/Version20230513181334.php @@ -4,6 +4,7 @@ namespace App\Migrations; +use Chriskapp\Blog\Service\BlogSchema; use Doctrine\DBAL\Schema\Schema; use Doctrine\Migrations\AbstractMigration; @@ -19,17 +20,7 @@ public function getDescription(): string public function up(Schema $schema): void { - $table = $schema->createTable('app_blog'); - $table->addColumn('id', 'string', ['length' => 64]); - $table->addColumn('title', 'string'); - $table->addColumn('title_slug', 'string'); - $table->addColumn('author_name', 'string', ['length' => 128]); - $table->addColumn('author_uri', 'string'); - $table->addColumn('updated', 'datetime'); - $table->addColumn('summary', 'text'); - $table->addColumn('category', 'string'); - $table->addColumn('content', 'text'); - $table->setPrimaryKey(['id']); + BlogSchema::build($schema); $table = $schema->createTable('app_release'); $table->addColumn('id', 'string', ['length' => 64]); diff --git a/src/Service/BlogUpdater.php b/src/Service/BlogUpdater.php deleted file mode 100644 index bb86104..0000000 --- a/src/Service/BlogUpdater.php +++ /dev/null @@ -1,119 +0,0 @@ -config = $config; - $this->slugify = $slugify; - $this->blogTable = $blogTable; - } - - public function updateAll(bool $force = false): \Generator - { - $dom = new \DOMDocument(); - $dom->load($this->config->get('blog_file')); - - foreach ($dom->getElementsByTagName('entry') as $entry) { - if (!$entry instanceof \DOMElement) { - continue; - } - - $id = $this->getChildElementByName($entry, 'id')?->textContent ?? throw new \RuntimeException('Provided no id'); - $title = $this->getChildElementByName($entry, 'title')?->textContent ?? throw new \RuntimeException('Provided no title'); - $updated = LocalDateTime::parse($this->getChildElementByName($entry, 'updated')?->textContent ?? throw new \RuntimeException('Provided no updated')); - $summary = $this->getChildElementByName($entry, 'summary')?->textContent ?? throw new \RuntimeException('Provided no summary'); - $content = $this->getChildElementByName($entry, 'content')?->textContent ?? throw new \RuntimeException('Provided no content'); - $categories = $this->getCategories($entry); - - $author = $this->getChildElementByName($entry, 'author') ?? throw new \RuntimeException('Provided no author'); - $authorName = $this->getChildElementByName($author, 'name')?->textContent ?? throw new \RuntimeException('Provided no author name'); - $authorUri = $this->getChildElementByName($author, 'uri')?->textContent ?? throw new \RuntimeException('Provided no author uri'); - - $row = $this->blogTable->findOneById($id); - if (!$row instanceof BlogRow) { - // the blog entry does not exist create it - $row = new BlogRow(); - $row->setId($id); - $row->setTitle($title); - $row->setTitleSlug($this->slugify->slugify($title)); - $row->setAuthorName($authorName); - $row->setAuthorUri($authorUri); - $row->setUpdated($updated); - $row->setSummary($summary); - $row->setCategory(implode(',', $categories)); - $row->setContent($content); - $this->blogTable->create($row); - - yield 'Created ' . $title; - } else { - if ($force || $updated > $row->getUpdated()) { - // if the update date has change update the entry - $row = new BlogRow(); - $row->setId($id); - $row->setTitle($title); - $row->setTitleSlug($this->slugify->slugify($title)); - $row->setAuthorName($authorName); - $row->setAuthorUri($authorUri); - $row->setUpdated($updated); - $row->setSummary($summary); - $row->setCategory(implode(',', $categories)); - $row->setContent($content); - $this->blogTable->update($row); - - yield 'Updated ' . $title; - } - } - } - } - - protected function getCategories(\DOMElement $element): array - { - $terms = []; - foreach ($element->childNodes as $childNode) { - if (!$childNode instanceof \DOMElement) { - continue; - } - - if ($childNode->nodeName !== 'category') { - continue; - } - - $term = trim($element->getAttribute('term')); - if (empty($term)) { - continue; - } - - $terms[] = $this->slugify->slugify($term); - } - - return $terms; - } - - private function getChildElementByName(\DOMElement $parent, string $name): ?\DOMElement - { - foreach ($parent->childNodes as $childNode) { - if (!$childNode instanceof \DOMElement) { - continue; - } - - if ($childNode->nodeName === $name) { - return $childNode; - } - } - - return null; - } -} diff --git a/src/Service/Slugify.php b/src/Service/Slugify.php deleted file mode 100644 index 562e9d5..0000000 --- a/src/Service/Slugify.php +++ /dev/null @@ -1,11 +0,0 @@ -connection->createQueryBuilder() - ->select(self::COLUMN_ID, self::COLUMN_TITLE, self::COLUMN_TITLE_SLUG, self::COLUMN_AUTHOR_NAME, self::COLUMN_AUTHOR_URI, self::COLUMN_UPDATED, self::COLUMN_SUMMARY, self::COLUMN_CATEGORY) - ->from(self::NAME) - ->orderBy(self::COLUMN_UPDATED, 'DESC') - ->setFirstResult($startIndex) - ->setMaxResults(8); - - return $this->project($builder->getSQL()); - } -} diff --git a/src/Table/Generated/BlogRow.php b/src/Table/Generated/BlogRow.php deleted file mode 100644 index 644dc2c..0000000 --- a/src/Table/Generated/BlogRow.php +++ /dev/null @@ -1,121 +0,0 @@ -id = $id; - } - public function getId() : string - { - return $this->id ?? throw new \PSX\Sql\Exception\NoValueAvailable('No value for required column "id" was provided'); - } - public function setTitle(string $title) : void - { - $this->title = $title; - } - public function getTitle() : string - { - return $this->title ?? throw new \PSX\Sql\Exception\NoValueAvailable('No value for required column "title" was provided'); - } - public function setTitleSlug(string $titleSlug) : void - { - $this->titleSlug = $titleSlug; - } - public function getTitleSlug() : string - { - return $this->titleSlug ?? throw new \PSX\Sql\Exception\NoValueAvailable('No value for required column "title_slug" was provided'); - } - public function setAuthorName(string $authorName) : void - { - $this->authorName = $authorName; - } - public function getAuthorName() : string - { - return $this->authorName ?? throw new \PSX\Sql\Exception\NoValueAvailable('No value for required column "author_name" was provided'); - } - public function setAuthorUri(string $authorUri) : void - { - $this->authorUri = $authorUri; - } - public function getAuthorUri() : string - { - return $this->authorUri ?? throw new \PSX\Sql\Exception\NoValueAvailable('No value for required column "author_uri" was provided'); - } - public function setUpdated(\PSX\DateTime\LocalDateTime $updated) : void - { - $this->updated = $updated; - } - public function getUpdated() : \PSX\DateTime\LocalDateTime - { - return $this->updated ?? throw new \PSX\Sql\Exception\NoValueAvailable('No value for required column "updated" was provided'); - } - public function setSummary(string $summary) : void - { - $this->summary = $summary; - } - public function getSummary() : string - { - return $this->summary ?? throw new \PSX\Sql\Exception\NoValueAvailable('No value for required column "summary" was provided'); - } - public function setCategory(string $category) : void - { - $this->category = $category; - } - public function getCategory() : string - { - return $this->category ?? throw new \PSX\Sql\Exception\NoValueAvailable('No value for required column "category" was provided'); - } - public function setContent(string $content) : void - { - $this->content = $content; - } - public function getContent() : string - { - return $this->content ?? throw new \PSX\Sql\Exception\NoValueAvailable('No value for required column "content" was provided'); - } - public function toRecord() : \PSX\Record\RecordInterface - { - /** @var \PSX\Record\Record $record */ - $record = new \PSX\Record\Record(); - $record->put('id', $this->id); - $record->put('title', $this->title); - $record->put('title_slug', $this->titleSlug); - $record->put('author_name', $this->authorName); - $record->put('author_uri', $this->authorUri); - $record->put('updated', $this->updated); - $record->put('summary', $this->summary); - $record->put('category', $this->category); - $record->put('content', $this->content); - return $record; - } - public function jsonSerialize() : object - { - return (object) $this->toRecord()->getAll(); - } - public static function from(array|\ArrayAccess $data) : self - { - $row = new self(); - $row->id = isset($data['id']) && is_string($data['id']) ? $data['id'] : null; - $row->title = isset($data['title']) && is_string($data['title']) ? $data['title'] : null; - $row->titleSlug = isset($data['title_slug']) && is_string($data['title_slug']) ? $data['title_slug'] : null; - $row->authorName = isset($data['author_name']) && is_string($data['author_name']) ? $data['author_name'] : null; - $row->authorUri = isset($data['author_uri']) && is_string($data['author_uri']) ? $data['author_uri'] : null; - $row->updated = isset($data['updated']) && $data['updated'] instanceof \DateTimeInterface ? \PSX\DateTime\LocalDateTime::from($data['updated']) : null; - $row->summary = isset($data['summary']) && is_string($data['summary']) ? $data['summary'] : null; - $row->category = isset($data['category']) && is_string($data['category']) ? $data['category'] : null; - $row->content = isset($data['content']) && is_string($data['content']) ? $data['content'] : null; - return $row; - } -} \ No newline at end of file diff --git a/src/Table/Generated/BlogTable.php b/src/Table/Generated/BlogTable.php deleted file mode 100644 index 26265c6..0000000 --- a/src/Table/Generated/BlogTable.php +++ /dev/null @@ -1,435 +0,0 @@ - - */ -class BlogTable extends \PSX\Sql\TableAbstract -{ - public const NAME = 'app_blog'; - public const COLUMN_ID = 'id'; - public const COLUMN_TITLE = 'title'; - public const COLUMN_TITLE_SLUG = 'title_slug'; - public const COLUMN_AUTHOR_NAME = 'author_name'; - public const COLUMN_AUTHOR_URI = 'author_uri'; - public const COLUMN_UPDATED = 'updated'; - public const COLUMN_SUMMARY = 'summary'; - public const COLUMN_CATEGORY = 'category'; - public const COLUMN_CONTENT = 'content'; - public function getName() : string - { - return self::NAME; - } - public function getColumns() : array - { - return array(self::COLUMN_ID => 0x10a00040, self::COLUMN_TITLE => 0xa000ff, self::COLUMN_TITLE_SLUG => 0xa000ff, self::COLUMN_AUTHOR_NAME => 0xa00080, self::COLUMN_AUTHOR_URI => 0xa000ff, self::COLUMN_UPDATED => 0x800000, self::COLUMN_SUMMARY => 0xb00000, self::COLUMN_CATEGORY => 0xa000ff, self::COLUMN_CONTENT => 0xb00000); - } - /** - * @return array<\App\Table\Generated\BlogRow> - * @throws \PSX\Sql\Exception\QueryException - */ - public function findAll(?\PSX\Sql\Condition $condition = null, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array - { - return $this->doFindAll($condition, $startIndex, $count, $sortBy, $sortOrder); - } - /** - * @return array<\App\Table\Generated\BlogRow> - * @throws \PSX\Sql\Exception\QueryException - */ - public function findBy(\PSX\Sql\Condition $condition, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array - { - return $this->doFindBy($condition, $startIndex, $count, $sortBy, $sortOrder); - } - /** - * @throws \PSX\Sql\Exception\QueryException - */ - public function findOneBy(\PSX\Sql\Condition $condition) : ?\App\Table\Generated\BlogRow - { - return $this->doFindOneBy($condition); - } - /** - * @throws \PSX\Sql\Exception\QueryException - */ - public function find(string $id) : ?\App\Table\Generated\BlogRow - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('id', $id); - return $this->doFindOneBy($condition); - } - /** - * @return array<\App\Table\Generated\BlogRow> - * @throws \PSX\Sql\Exception\QueryException - */ - public function findById(string $value, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('id', $value); - return $this->doFindBy($condition, $startIndex, $count, $sortBy, $sortOrder); - } - /** - * @throws \PSX\Sql\Exception\QueryException - */ - public function findOneById(string $value) : ?\App\Table\Generated\BlogRow - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('id', $value); - return $this->doFindOneBy($condition); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function updateById(string $value, \App\Table\Generated\BlogRow $record) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('id', $value); - return $this->doUpdateBy($condition, $record->toRecord()); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function deleteById(string $value) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('id', $value); - return $this->doDeleteBy($condition); - } - /** - * @return array<\App\Table\Generated\BlogRow> - * @throws \PSX\Sql\Exception\QueryException - */ - public function findByTitle(string $value, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('title', $value); - return $this->doFindBy($condition, $startIndex, $count, $sortBy, $sortOrder); - } - /** - * @throws \PSX\Sql\Exception\QueryException - */ - public function findOneByTitle(string $value) : ?\App\Table\Generated\BlogRow - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('title', $value); - return $this->doFindOneBy($condition); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function updateByTitle(string $value, \App\Table\Generated\BlogRow $record) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('title', $value); - return $this->doUpdateBy($condition, $record->toRecord()); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function deleteByTitle(string $value) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('title', $value); - return $this->doDeleteBy($condition); - } - /** - * @return array<\App\Table\Generated\BlogRow> - * @throws \PSX\Sql\Exception\QueryException - */ - public function findByTitleSlug(string $value, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('title_slug', $value); - return $this->doFindBy($condition, $startIndex, $count, $sortBy, $sortOrder); - } - /** - * @throws \PSX\Sql\Exception\QueryException - */ - public function findOneByTitleSlug(string $value) : ?\App\Table\Generated\BlogRow - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('title_slug', $value); - return $this->doFindOneBy($condition); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function updateByTitleSlug(string $value, \App\Table\Generated\BlogRow $record) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('title_slug', $value); - return $this->doUpdateBy($condition, $record->toRecord()); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function deleteByTitleSlug(string $value) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('title_slug', $value); - return $this->doDeleteBy($condition); - } - /** - * @return array<\App\Table\Generated\BlogRow> - * @throws \PSX\Sql\Exception\QueryException - */ - public function findByAuthorName(string $value, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('author_name', $value); - return $this->doFindBy($condition, $startIndex, $count, $sortBy, $sortOrder); - } - /** - * @throws \PSX\Sql\Exception\QueryException - */ - public function findOneByAuthorName(string $value) : ?\App\Table\Generated\BlogRow - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('author_name', $value); - return $this->doFindOneBy($condition); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function updateByAuthorName(string $value, \App\Table\Generated\BlogRow $record) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('author_name', $value); - return $this->doUpdateBy($condition, $record->toRecord()); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function deleteByAuthorName(string $value) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('author_name', $value); - return $this->doDeleteBy($condition); - } - /** - * @return array<\App\Table\Generated\BlogRow> - * @throws \PSX\Sql\Exception\QueryException - */ - public function findByAuthorUri(string $value, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('author_uri', $value); - return $this->doFindBy($condition, $startIndex, $count, $sortBy, $sortOrder); - } - /** - * @throws \PSX\Sql\Exception\QueryException - */ - public function findOneByAuthorUri(string $value) : ?\App\Table\Generated\BlogRow - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('author_uri', $value); - return $this->doFindOneBy($condition); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function updateByAuthorUri(string $value, \App\Table\Generated\BlogRow $record) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('author_uri', $value); - return $this->doUpdateBy($condition, $record->toRecord()); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function deleteByAuthorUri(string $value) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('author_uri', $value); - return $this->doDeleteBy($condition); - } - /** - * @return array<\App\Table\Generated\BlogRow> - * @throws \PSX\Sql\Exception\QueryException - */ - public function findByUpdated(\PSX\DateTime\LocalDateTime $value, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->equals('updated', $value); - return $this->doFindBy($condition, $startIndex, $count, $sortBy, $sortOrder); - } - /** - * @throws \PSX\Sql\Exception\QueryException - */ - public function findOneByUpdated(\PSX\DateTime\LocalDateTime $value) : ?\App\Table\Generated\BlogRow - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->equals('updated', $value); - return $this->doFindOneBy($condition); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function updateByUpdated(\PSX\DateTime\LocalDateTime $value, \App\Table\Generated\BlogRow $record) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->equals('updated', $value); - return $this->doUpdateBy($condition, $record->toRecord()); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function deleteByUpdated(\PSX\DateTime\LocalDateTime $value) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->equals('updated', $value); - return $this->doDeleteBy($condition); - } - /** - * @return array<\App\Table\Generated\BlogRow> - * @throws \PSX\Sql\Exception\QueryException - */ - public function findBySummary(string $value, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('summary', $value); - return $this->doFindBy($condition, $startIndex, $count, $sortBy, $sortOrder); - } - /** - * @throws \PSX\Sql\Exception\QueryException - */ - public function findOneBySummary(string $value) : ?\App\Table\Generated\BlogRow - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('summary', $value); - return $this->doFindOneBy($condition); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function updateBySummary(string $value, \App\Table\Generated\BlogRow $record) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('summary', $value); - return $this->doUpdateBy($condition, $record->toRecord()); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function deleteBySummary(string $value) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('summary', $value); - return $this->doDeleteBy($condition); - } - /** - * @return array<\App\Table\Generated\BlogRow> - * @throws \PSX\Sql\Exception\QueryException - */ - public function findByCategory(string $value, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('category', $value); - return $this->doFindBy($condition, $startIndex, $count, $sortBy, $sortOrder); - } - /** - * @throws \PSX\Sql\Exception\QueryException - */ - public function findOneByCategory(string $value) : ?\App\Table\Generated\BlogRow - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('category', $value); - return $this->doFindOneBy($condition); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function updateByCategory(string $value, \App\Table\Generated\BlogRow $record) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('category', $value); - return $this->doUpdateBy($condition, $record->toRecord()); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function deleteByCategory(string $value) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('category', $value); - return $this->doDeleteBy($condition); - } - /** - * @return array<\App\Table\Generated\BlogRow> - * @throws \PSX\Sql\Exception\QueryException - */ - public function findByContent(string $value, ?int $startIndex = null, ?int $count = null, ?string $sortBy = null, ?\PSX\Sql\OrderBy $sortOrder = null) : array - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('content', $value); - return $this->doFindBy($condition, $startIndex, $count, $sortBy, $sortOrder); - } - /** - * @throws \PSX\Sql\Exception\QueryException - */ - public function findOneByContent(string $value) : ?\App\Table\Generated\BlogRow - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('content', $value); - return $this->doFindOneBy($condition); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function updateByContent(string $value, \App\Table\Generated\BlogRow $record) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('content', $value); - return $this->doUpdateBy($condition, $record->toRecord()); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function deleteByContent(string $value) : int - { - $condition = \PSX\Sql\Condition::withAnd(); - $condition->like('content', $value); - return $this->doDeleteBy($condition); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function create(\App\Table\Generated\BlogRow $record) : int - { - return $this->doCreate($record->toRecord()); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function update(\App\Table\Generated\BlogRow $record) : int - { - return $this->doUpdate($record->toRecord()); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function updateBy(\PSX\Sql\Condition $condition, \App\Table\Generated\BlogRow $record) : int - { - return $this->doUpdateBy($condition, $record->toRecord()); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function delete(\App\Table\Generated\BlogRow $record) : int - { - return $this->doDelete($record->toRecord()); - } - /** - * @throws \PSX\Sql\Exception\ManipulationException - */ - public function deleteBy(\PSX\Sql\Condition $condition) : int - { - return $this->doDeleteBy($condition); - } - /** - * @param array $row - */ - protected function newRecord(array $row) : \App\Table\Generated\BlogRow - { - return \App\Table\Generated\BlogRow::from($row); - } -} \ No newline at end of file