From 04a2a44cde9e486495f846ed8c5dc714af2faad1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Klein?= Date: Sat, 21 Mar 2026 21:00:22 +0100 Subject: [PATCH 1/4] add taskfile.dev development environment into the API repository itself, closes #461 --- .env | 10 +- .env.test | 10 +- CHANGELOG.md | 7 +- composer.json | 6 +- composer.lock | 612 +++++++++--------- config/reference.php | 41 +- docker/Dockerfile | 8 +- .../NodeElementFragmentizeEventListener.php | 4 +- ...elationElementFragmentizeEventListener.php | 4 +- taskfile.yml | 19 + tests/.php-cs-fixer.dist.php | 1 + tools/docker-compose.yml | 100 +++ volumes/.gitignore | 3 + volumes/well-known-security.txt | 1 + 14 files changed, 482 insertions(+), 344 deletions(-) create mode 100644 taskfile.yml create mode 100644 tools/docker-compose.yml create mode 100644 volumes/.gitignore create mode 100644 volumes/well-known-security.txt diff --git a/.env b/.env index 1d2477d7..a2946345 100755 --- a/.env +++ b/.env @@ -22,10 +22,10 @@ APP_SECRET=f762ce98c98b7579d2d6a6c0e5eb1d39 VERSION=dev ANONYMOUS_USER_UUID=2d376349-c5e2-42c8-8ce0-d6f525256cf7 -CYPHER_AUTH=bolt://neo4j:password@ember-nexus-neo4j -MONGO_AUTH=mongodb://mongodb:password@ember-nexus-mongodb:27017 -ELASTIC_AUTH=ember-nexus-elasticsearch:9200 -REDIS_AUTH=tcp://ember-nexus-redis?password=redis-password -RABBITMQ_AUTH=amqp://user:password@ember-nexus-rabbitmq:5672 +CYPHER_AUTH=bolt://neo4j:password@neo4j +MONGO_AUTH=mongodb://mongodb:password@mongodb:27017 +ELASTIC_AUTH=elasticsearch:9200 +REDIS_AUTH=tcp://redis?password=redis-password +RABBITMQ_AUTH=amqp://user:password@rabbitmq:5672 REFERENCE_DATASET_VERSION=0.0.28 diff --git a/.env.test b/.env.test index 4b1a0bf5..5138e28b 100644 --- a/.env.test +++ b/.env.test @@ -5,9 +5,9 @@ SYMFONY_DEPRECATIONS_HELPER=999999 PANTHER_APP_ENV=panther PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots -API_DOMAIN=http://ember-nexus-api -CYPHER_AUTH=bolt://neo4j:password@ember-nexus-neo4j -ELASTIC_AUTH=ember-nexus-elasticsearch:9200 -MONGO_AUTH=mongodb://mongodb:password@ember-nexus-mongodb:27017 -REDIS_AUTH=tcp://ember-nexus-redis?password=redis-password +API_DOMAIN=http://api +CYPHER_AUTH=bolt://neo4j:password@neo4j +ELASTIC_AUTH=elasticsearch:9200 +MONGO_AUTH=mongodb://mongodb:password@mongodb:27017 +REDIS_AUTH=tcp://redis?password=redis-password ANONYMOUS_USER_UUID=2d376349-c5e2-42c8-8ce0-d6f525256cf7 diff --git a/CHANGELOG.md b/CHANGELOG.md index f39a3f12..feeab4fb 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,9 +5,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## Unreleased +### Added +- Add taskfile.dev development environment into the API repository itself, closes #461. + ### Changed -- Upgrade FrankenPHP to 1.11.2, closes #457. -- Upgrade PHP dependencies, related to #457. +- Upgrade FrankenPHP to 1.12.1, related to #457 and #461. +- Upgrade PHP dependencies, related to #457 and #461. ## 0.1.31 - 2026-02-10 ### Changed diff --git a/composer.json b/composer.json index 4b6b7217..3e494ad0 100644 --- a/composer.json +++ b/composer.json @@ -5,7 +5,7 @@ "minimum-stability": "dev", "prefer-stable": true, "require": { - "php": ">=8.3", + "php": ">=8.5", "ext-ctype": "*", "ext-iconv": "*", "antlr/antlr4-php-runtime": "^0.9.1", @@ -113,8 +113,8 @@ "test:coverage:xml": "export XDEBUG_MODE=coverage && php ./vendor/phpunit/phpunit/phpunit --configuration tests/phpunit.xml.dist --coverage-clover coverage.xml", "test:coverage:html": "export XDEBUG_MODE=coverage && php ./vendor/phpunit/phpunit/phpunit --configuration tests/phpunit.xml.dist --coverage-html ./tmp", "test:mutant": "export XDEBUG_MODE=coverage && php vendor/infection/infection/bin/infection --configuration=tests/infection.json5 --threads=4", - "cs:list": "PHP_CS_FIXER_IGNORE_ENV=1 php vendor/friendsofphp/php-cs-fixer/php-cs-fixer fix --config=tests/.php-cs-fixer.dist.php --allow-risky=yes --dry-run", - "cs:fix": "PHP_CS_FIXER_IGNORE_ENV=1 php vendor/friendsofphp/php-cs-fixer/php-cs-fixer fix --config=tests/.php-cs-fixer.dist.php --allow-risky=yes", + "cs:list": "php vendor/friendsofphp/php-cs-fixer/php-cs-fixer fix --config=tests/.php-cs-fixer.dist.php --allow-risky=yes --dry-run", + "cs:fix": "php vendor/friendsofphp/php-cs-fixer/php-cs-fixer fix --config=tests/.php-cs-fixer.dist.php --allow-risky=yes", "psalm": "php vendor/bin/psalm --config=tests/psalm.xml --show-info=true --no-cache", "psalm:fix-dry": "php vendor/bin/psalm --config=tests/psalm.xml --alter --issues=MissingParamType,MissingReturnType,InvalidReturnType,InvalidNullableReturnType,MismatchingDocblockParamType --dry-run", "psalm:fix-apply": "php vendor/bin/psalm --config=tests/psalm.xml --alter --issues=MissingParamType,MissingReturnType,InvalidReturnType,InvalidNullableReturnType,MismatchingDocblockParamType", diff --git a/composer.lock b/composer.lock index d62ac53e..4a81b3b7 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "131732a26ba48c5f5495ea6bdacb2328", + "content-hash": "6000e90ca0e3e3b88cefc3b93868eacd", "packages": [ { "name": "antlr/antlr4-php-runtime", @@ -63,21 +63,20 @@ }, { "name": "async-aws/core", - "version": "1.28.0", + "version": "1.28.1", "source": { "type": "git", "url": "https://github.com/async-aws/core.git", - "reference": "0d5f4d650b74a8366bca1fb400b6cfb694c3b217" + "reference": "e8b02ac30b17afaf1352cbd352dceb789d792d39" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/async-aws/core/zipball/0d5f4d650b74a8366bca1fb400b6cfb694c3b217", - "reference": "0d5f4d650b74a8366bca1fb400b6cfb694c3b217", + "url": "https://api.github.com/repos/async-aws/core/zipball/e8b02ac30b17afaf1352cbd352dceb789d792d39", + "reference": "e8b02ac30b17afaf1352cbd352dceb789d792d39", "shasum": "" }, "require": { "ext-hash": "*", - "ext-json": "*", "ext-simplexml": "*", "php": "^8.2", "psr/cache": "^1.0 || ^2.0 || ^3.0", @@ -120,7 +119,7 @@ "sts" ], "support": { - "source": "https://github.com/async-aws/core/tree/1.28.0" + "source": "https://github.com/async-aws/core/tree/1.28.1" }, "funding": [ { @@ -132,7 +131,7 @@ "type": "github" } ], - "time": "2026-01-16T22:28:05+00:00" + "time": "2026-02-16T10:24:54+00:00" }, { "name": "async-aws/s3", @@ -646,16 +645,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.8.0", + "version": "2.9.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "21dc724a0583619cd1652f673303492272778051" + "reference": "7d0ed42f28e42d61352a7a79de682e5e67fec884" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/21dc724a0583619cd1652f673303492272778051", - "reference": "21dc724a0583619cd1652f673303492272778051", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/7d0ed42f28e42d61352a7a79de682e5e67fec884", + "reference": "7d0ed42f28e42d61352a7a79de682e5e67fec884", "shasum": "" }, "require": { @@ -671,6 +670,7 @@ "require-dev": { "bamarni/composer-bin-plugin": "^1.8.2", "http-interop/http-factory-tests": "0.9.0", + "jshttp/mime-db": "1.54.0.1", "phpunit/phpunit": "^8.5.44 || ^9.6.25" }, "suggest": { @@ -742,7 +742,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.8.0" + "source": "https://github.com/guzzle/psr7/tree/2.9.0" }, "funding": [ { @@ -758,7 +758,7 @@ "type": "tidelift" } ], - "time": "2025-08-23T21:21:41+00:00" + "time": "2026-03-10T16:41:02+00:00" }, { "name": "laudis/neo4j-php-client", @@ -896,16 +896,16 @@ }, { "name": "league/flysystem", - "version": "3.31.0", + "version": "3.32.0", "source": { "type": "git", "url": "https://github.com/thephpleague/flysystem.git", - "reference": "1717e0b3642b0df65ecb0cc89cdd99fa840672ff" + "reference": "254b1595b16b22dbddaaef9ed6ca9fdac4956725" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/1717e0b3642b0df65ecb0cc89cdd99fa840672ff", - "reference": "1717e0b3642b0df65ecb0cc89cdd99fa840672ff", + "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/254b1595b16b22dbddaaef9ed6ca9fdac4956725", + "reference": "254b1595b16b22dbddaaef9ed6ca9fdac4956725", "shasum": "" }, "require": { @@ -973,9 +973,9 @@ ], "support": { "issues": "https://github.com/thephpleague/flysystem/issues", - "source": "https://github.com/thephpleague/flysystem/tree/3.31.0" + "source": "https://github.com/thephpleague/flysystem/tree/3.32.0" }, - "time": "2026-01-23T15:38:47+00:00" + "time": "2026-02-25T17:01:41+00:00" }, { "name": "league/flysystem-bundle", @@ -1969,16 +1969,16 @@ }, { "name": "phpseclib/phpseclib", - "version": "3.0.49", + "version": "3.0.50", "source": { "type": "git", "url": "https://github.com/phpseclib/phpseclib.git", - "reference": "6233a1e12584754e6b5daa69fe1289b47775c1b9" + "reference": "aa6ad8321ed103dc3624fb600a25b66ebf78ec7b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/6233a1e12584754e6b5daa69fe1289b47775c1b9", - "reference": "6233a1e12584754e6b5daa69fe1289b47775c1b9", + "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/aa6ad8321ed103dc3624fb600a25b66ebf78ec7b", + "reference": "aa6ad8321ed103dc3624fb600a25b66ebf78ec7b", "shasum": "" }, "require": { @@ -2059,7 +2059,7 @@ ], "support": { "issues": "https://github.com/phpseclib/phpseclib/issues", - "source": "https://github.com/phpseclib/phpseclib/tree/3.0.49" + "source": "https://github.com/phpseclib/phpseclib/tree/3.0.50" }, "funding": [ { @@ -2075,20 +2075,20 @@ "type": "tidelift" } ], - "time": "2026-01-27T09:17:28+00:00" + "time": "2026-03-19T02:57:58+00:00" }, { "name": "predis/predis", - "version": "v3.4.0", + "version": "v3.4.2", "source": { "type": "git", "url": "https://github.com/predis/predis.git", - "reference": "1183f5732e6b10efd33f64984a96726eaecb59aa" + "reference": "2033429520d8997a7815a2485f56abe6d2d0e075" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/predis/predis/zipball/1183f5732e6b10efd33f64984a96726eaecb59aa", - "reference": "1183f5732e6b10efd33f64984a96726eaecb59aa", + "url": "https://api.github.com/repos/predis/predis/zipball/2033429520d8997a7815a2485f56abe6d2d0e075", + "reference": "2033429520d8997a7815a2485f56abe6d2d0e075", "shasum": "" }, "require": { @@ -2130,7 +2130,7 @@ ], "support": { "issues": "https://github.com/predis/predis/issues", - "source": "https://github.com/predis/predis/tree/v3.4.0" + "source": "https://github.com/predis/predis/tree/v3.4.2" }, "funding": [ { @@ -2138,7 +2138,7 @@ "type": "github" } ], - "time": "2026-02-11T17:30:28+00:00" + "time": "2026-03-09T20:33:04+00:00" }, { "name": "psr/cache", @@ -2753,16 +2753,16 @@ }, { "name": "stefanak-michal/bolt", - "version": "v7.3.2", + "version": "v7.4.0", "source": { "type": "git", "url": "https://github.com/stefanak-michal/php-bolt-driver.git", - "reference": "5987bb327411a4966552299c06531b82212a1b56" + "reference": "17eb21312bad0a1d006d5e428acc01bdf4b6ed65" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stefanak-michal/php-bolt-driver/zipball/5987bb327411a4966552299c06531b82212a1b56", - "reference": "5987bb327411a4966552299c06531b82212a1b56", + "url": "https://api.github.com/repos/stefanak-michal/php-bolt-driver/zipball/17eb21312bad0a1d006d5e428acc01bdf4b6ed65", + "reference": "17eb21312bad0a1d006d5e428acc01bdf4b6ed65", "shasum": "" }, "require": { @@ -2776,9 +2776,7 @@ }, "suggest": { "ext-openssl": "Needed when using StreamSocket connection class with SSL", - "ext-sockets": "Needed when using Socket connection class", - "laudis/neo4j-php-client": "Neo4j-PHP-Client is the most advanced PHP Client for Neo4j", - "stefanak-michal/neo4j-bolt-wrapper": "Wrapper for Neo4j PHP Bolt library to simplify usage." + "ext-sockets": "Needed when using Socket connection class" }, "type": "library", "autoload": { @@ -2803,7 +2801,11 @@ "Socket", "bolt", "database", - "neo4j" + "driver", + "graph", + "memgraph", + "neo4j", + "tcp" ], "support": { "docs": "https://www.neo4j.com/docs/bolt/current/", @@ -2816,20 +2818,20 @@ "type": "ko-fi" } ], - "time": "2025-12-16T23:46:46+00:00" + "time": "2026-03-16T11:23:29+00:00" }, { "name": "symfony/asset", - "version": "v7.4.4", + "version": "v7.4.6", "source": { "type": "git", "url": "https://github.com/symfony/asset.git", - "reference": "a6f49cf087a1fcfe7130b9b604a8a2b878b06c40" + "reference": "d944ae87e4697af05aadeacfc5e603c3c18ef4fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/asset/zipball/a6f49cf087a1fcfe7130b9b604a8a2b878b06c40", - "reference": "a6f49cf087a1fcfe7130b9b604a8a2b878b06c40", + "url": "https://api.github.com/repos/symfony/asset/zipball/d944ae87e4697af05aadeacfc5e603c3c18ef4fb", + "reference": "d944ae87e4697af05aadeacfc5e603c3c18ef4fb", "shasum": "" }, "require": { @@ -2869,7 +2871,7 @@ "description": "Manages URL generation and versioning of web assets such as CSS stylesheets, JavaScript files and image files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/asset/tree/v7.4.4" + "source": "https://github.com/symfony/asset/tree/v7.4.6" }, "funding": [ { @@ -2889,20 +2891,20 @@ "type": "tidelift" } ], - "time": "2026-01-13T10:40:19+00:00" + "time": "2026-02-09T09:33:46+00:00" }, { "name": "symfony/cache", - "version": "v7.4.5", + "version": "v7.4.7", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "8dde98d5a4123b53877aca493f9be57b333f14bd" + "reference": "665522ec357540e66c294c08583b40ee576574f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/8dde98d5a4123b53877aca493f9be57b333f14bd", - "reference": "8dde98d5a4123b53877aca493f9be57b333f14bd", + "url": "https://api.github.com/repos/symfony/cache/zipball/665522ec357540e66c294c08583b40ee576574f0", + "reference": "665522ec357540e66c294c08583b40ee576574f0", "shasum": "" }, "require": { @@ -2973,7 +2975,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v7.4.5" + "source": "https://github.com/symfony/cache/tree/v7.4.7" }, "funding": [ { @@ -2993,7 +2995,7 @@ "type": "tidelift" } ], - "time": "2026-01-27T16:16:02+00:00" + "time": "2026-03-06T08:14:57+00:00" }, { "name": "symfony/cache-contracts", @@ -3073,16 +3075,16 @@ }, { "name": "symfony/config", - "version": "v7.4.4", + "version": "v7.4.7", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "4275b53b8ab0cf37f48bf273dc2285c8178efdfb" + "reference": "6c17162555bfb58957a55bb0e43e00035b6ae3d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/4275b53b8ab0cf37f48bf273dc2285c8178efdfb", - "reference": "4275b53b8ab0cf37f48bf273dc2285c8178efdfb", + "url": "https://api.github.com/repos/symfony/config/zipball/6c17162555bfb58957a55bb0e43e00035b6ae3d5", + "reference": "6c17162555bfb58957a55bb0e43e00035b6ae3d5", "shasum": "" }, "require": { @@ -3128,7 +3130,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.4.4" + "source": "https://github.com/symfony/config/tree/v7.4.7" }, "funding": [ { @@ -3148,20 +3150,20 @@ "type": "tidelift" } ], - "time": "2026-01-13T11:36:38+00:00" + "time": "2026-03-06T10:41:14+00:00" }, { "name": "symfony/console", - "version": "v7.4.4", + "version": "v7.4.7", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "41e38717ac1dd7a46b6bda7d6a82af2d98a78894" + "reference": "e1e6770440fb9c9b0cf725f81d1361ad1835329d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/41e38717ac1dd7a46b6bda7d6a82af2d98a78894", - "reference": "41e38717ac1dd7a46b6bda7d6a82af2d98a78894", + "url": "https://api.github.com/repos/symfony/console/zipball/e1e6770440fb9c9b0cf725f81d1361ad1835329d", + "reference": "e1e6770440fb9c9b0cf725f81d1361ad1835329d", "shasum": "" }, "require": { @@ -3226,7 +3228,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v7.4.4" + "source": "https://github.com/symfony/console/tree/v7.4.7" }, "funding": [ { @@ -3246,20 +3248,20 @@ "type": "tidelift" } ], - "time": "2026-01-13T11:36:38+00:00" + "time": "2026-03-06T14:06:20+00:00" }, { "name": "symfony/dependency-injection", - "version": "v7.4.5", + "version": "v7.4.7", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "76a02cddca45a5254479ad68f9fa274ead0a7ef2" + "reference": "0f651e58f4917fb0e2cd261ccbfe3d71e6e0f5db" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/76a02cddca45a5254479ad68f9fa274ead0a7ef2", - "reference": "76a02cddca45a5254479ad68f9fa274ead0a7ef2", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/0f651e58f4917fb0e2cd261ccbfe3d71e6e0f5db", + "reference": "0f651e58f4917fb0e2cd261ccbfe3d71e6e0f5db", "shasum": "" }, "require": { @@ -3310,7 +3312,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.4.5" + "source": "https://github.com/symfony/dependency-injection/tree/v7.4.7" }, "funding": [ { @@ -3330,7 +3332,7 @@ "type": "tidelift" } ], - "time": "2026-01-27T16:16:02+00:00" + "time": "2026-03-03T07:48:48+00:00" }, { "name": "symfony/deprecation-contracts", @@ -3401,16 +3403,16 @@ }, { "name": "symfony/dotenv", - "version": "v7.4.0", + "version": "v7.4.7", "source": { "type": "git", "url": "https://github.com/symfony/dotenv.git", - "reference": "1658a4d34df028f3d93bcdd8e81f04423925a364" + "reference": "7e5529a0b02395cb4614cdf507495a4cef3115c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dotenv/zipball/1658a4d34df028f3d93bcdd8e81f04423925a364", - "reference": "1658a4d34df028f3d93bcdd8e81f04423925a364", + "url": "https://api.github.com/repos/symfony/dotenv/zipball/7e5529a0b02395cb4614cdf507495a4cef3115c5", + "reference": "7e5529a0b02395cb4614cdf507495a4cef3115c5", "shasum": "" }, "require": { @@ -3455,7 +3457,7 @@ "environment" ], "support": { - "source": "https://github.com/symfony/dotenv/tree/v7.4.0" + "source": "https://github.com/symfony/dotenv/tree/v7.4.7" }, "funding": [ { @@ -3475,7 +3477,7 @@ "type": "tidelift" } ], - "time": "2025-11-16T10:14:42+00:00" + "time": "2026-03-03T07:48:48+00:00" }, { "name": "symfony/error-handler", @@ -3722,16 +3724,16 @@ }, { "name": "symfony/filesystem", - "version": "v7.4.0", + "version": "v7.4.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "d551b38811096d0be9c4691d406991b47c0c630a" + "reference": "3ebc794fa5315e59fd122561623c2e2e4280538e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/d551b38811096d0be9c4691d406991b47c0c630a", - "reference": "d551b38811096d0be9c4691d406991b47c0c630a", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/3ebc794fa5315e59fd122561623c2e2e4280538e", + "reference": "3ebc794fa5315e59fd122561623c2e2e4280538e", "shasum": "" }, "require": { @@ -3768,7 +3770,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v7.4.0" + "source": "https://github.com/symfony/filesystem/tree/v7.4.6" }, "funding": [ { @@ -3788,20 +3790,20 @@ "type": "tidelift" } ], - "time": "2025-11-27T13:27:24+00:00" + "time": "2026-02-25T16:50:00+00:00" }, { "name": "symfony/finder", - "version": "v7.4.5", + "version": "v7.4.6", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "ad4daa7c38668dcb031e63bc99ea9bd42196a2cb" + "reference": "8655bf1076b7a3a346cb11413ffdabff50c7ffcf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/ad4daa7c38668dcb031e63bc99ea9bd42196a2cb", - "reference": "ad4daa7c38668dcb031e63bc99ea9bd42196a2cb", + "url": "https://api.github.com/repos/symfony/finder/zipball/8655bf1076b7a3a346cb11413ffdabff50c7ffcf", + "reference": "8655bf1076b7a3a346cb11413ffdabff50c7ffcf", "shasum": "" }, "require": { @@ -3836,7 +3838,7 @@ "description": "Finds files and directories via an intuitive fluent interface", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/finder/tree/v7.4.5" + "source": "https://github.com/symfony/finder/tree/v7.4.6" }, "funding": [ { @@ -3856,7 +3858,7 @@ "type": "tidelift" } ], - "time": "2026-01-26T15:07:59+00:00" + "time": "2026-01-29T09:40:50+00:00" }, { "name": "symfony/flex", @@ -3933,16 +3935,16 @@ }, { "name": "symfony/framework-bundle", - "version": "v7.4.5", + "version": "v7.4.7", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "dcf89ca6712d9e1b5d3f14dea0e1c2685a05d1cd" + "reference": "c94bc78c85d76af67918404a95d44940f66a7c2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/dcf89ca6712d9e1b5d3f14dea0e1c2685a05d1cd", - "reference": "dcf89ca6712d9e1b5d3f14dea0e1c2685a05d1cd", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/c94bc78c85d76af67918404a95d44940f66a7c2f", + "reference": "c94bc78c85d76af67918404a95d44940f66a7c2f", "shasum": "" }, "require": { @@ -3965,7 +3967,7 @@ }, "conflict": { "doctrine/persistence": "<1.3", - "phpdocumentor/reflection-docblock": "<5.2|>=6", + "phpdocumentor/reflection-docblock": "<5.2|>=7", "phpdocumentor/type-resolver": "<1.5.1", "symfony/asset": "<6.4", "symfony/asset-mapper": "<6.4", @@ -3998,7 +4000,7 @@ "require-dev": { "doctrine/persistence": "^1.3|^2|^3", "dragonmantank/cron-expression": "^3.1", - "phpdocumentor/reflection-docblock": "^5.2", + "phpdocumentor/reflection-docblock": "^5.2|^6.0", "seld/jsonlint": "^1.10", "symfony/asset": "^6.4|^7.0|^8.0", "symfony/asset-mapper": "^6.4|^7.0|^8.0", @@ -4067,7 +4069,7 @@ "description": "Provides a tight integration between Symfony components and the Symfony full-stack framework", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/framework-bundle/tree/v7.4.5" + "source": "https://github.com/symfony/framework-bundle/tree/v7.4.7" }, "funding": [ { @@ -4087,20 +4089,20 @@ "type": "tidelift" } ], - "time": "2026-01-27T08:59:58+00:00" + "time": "2026-03-06T15:39:55+00:00" }, { "name": "symfony/http-client", - "version": "v7.4.5", + "version": "v7.4.7", "source": { "type": "git", "url": "https://github.com/symfony/http-client.git", - "reference": "84bb634857a893cc146cceb467e31b3f02c5fe9f" + "reference": "1010624285470eb60e88ed10035102c75b4ea6af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-client/zipball/84bb634857a893cc146cceb467e31b3f02c5fe9f", - "reference": "84bb634857a893cc146cceb467e31b3f02c5fe9f", + "url": "https://api.github.com/repos/symfony/http-client/zipball/1010624285470eb60e88ed10035102c75b4ea6af", + "reference": "1010624285470eb60e88ed10035102c75b4ea6af", "shasum": "" }, "require": { @@ -4168,7 +4170,7 @@ "http" ], "support": { - "source": "https://github.com/symfony/http-client/tree/v7.4.5" + "source": "https://github.com/symfony/http-client/tree/v7.4.7" }, "funding": [ { @@ -4188,7 +4190,7 @@ "type": "tidelift" } ], - "time": "2026-01-27T16:16:02+00:00" + "time": "2026-03-05T11:16:58+00:00" }, { "name": "symfony/http-client-contracts", @@ -4270,16 +4272,16 @@ }, { "name": "symfony/http-foundation", - "version": "v7.4.5", + "version": "v7.4.7", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "446d0db2b1f21575f1284b74533e425096abdfb6" + "reference": "f94b3e7b7dafd40e666f0c9ff2084133bae41e81" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/446d0db2b1f21575f1284b74533e425096abdfb6", - "reference": "446d0db2b1f21575f1284b74533e425096abdfb6", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/f94b3e7b7dafd40e666f0c9ff2084133bae41e81", + "reference": "f94b3e7b7dafd40e666f0c9ff2084133bae41e81", "shasum": "" }, "require": { @@ -4328,7 +4330,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.4.5" + "source": "https://github.com/symfony/http-foundation/tree/v7.4.7" }, "funding": [ { @@ -4348,20 +4350,20 @@ "type": "tidelift" } ], - "time": "2026-01-27T16:16:02+00:00" + "time": "2026-03-06T13:15:18+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.4.5", + "version": "v7.4.7", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "229eda477017f92bd2ce7615d06222ec0c19e82a" + "reference": "3b3fcf386c809be990c922e10e4c620d6367cab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/229eda477017f92bd2ce7615d06222ec0c19e82a", - "reference": "229eda477017f92bd2ce7615d06222ec0c19e82a", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/3b3fcf386c809be990c922e10e4c620d6367cab1", + "reference": "3b3fcf386c809be990c922e10e4c620d6367cab1", "shasum": "" }, "require": { @@ -4403,7 +4405,7 @@ "symfony/config": "^6.4|^7.0|^8.0", "symfony/console": "^6.4|^7.0|^8.0", "symfony/css-selector": "^6.4|^7.0|^8.0", - "symfony/dependency-injection": "^6.4|^7.0|^8.0", + "symfony/dependency-injection": "^6.4.1|^7.0.1|^8.0", "symfony/dom-crawler": "^6.4|^7.0|^8.0", "symfony/expression-language": "^6.4|^7.0|^8.0", "symfony/finder": "^6.4|^7.0|^8.0", @@ -4447,7 +4449,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.4.5" + "source": "https://github.com/symfony/http-kernel/tree/v7.4.7" }, "funding": [ { @@ -4467,20 +4469,20 @@ "type": "tidelift" } ], - "time": "2026-01-28T10:33:42+00:00" + "time": "2026-03-06T16:33:18+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v7.4.4", + "version": "v7.4.6", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "9c34e8170b09f062a9a38880a3cb58ee35cb7fd4" + "reference": "69e98e7e10dae3daa896ef0f20e17a3928362d88" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/9c34e8170b09f062a9a38880a3cb58ee35cb7fd4", - "reference": "9c34e8170b09f062a9a38880a3cb58ee35cb7fd4", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/69e98e7e10dae3daa896ef0f20e17a3928362d88", + "reference": "69e98e7e10dae3daa896ef0f20e17a3928362d88", "shasum": "" }, "require": { @@ -4530,7 +4532,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v7.4.4" + "source": "https://github.com/symfony/monolog-bridge/tree/v7.4.6" }, "funding": [ { @@ -4550,7 +4552,7 @@ "type": "tidelift" } ], - "time": "2026-01-07T11:35:36+00:00" + "time": "2026-02-17T07:53:42+00:00" }, { "name": "symfony/monolog-bundle", @@ -5342,16 +5344,16 @@ }, { "name": "symfony/routing", - "version": "v7.4.4", + "version": "v7.4.6", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "0798827fe2c79caeed41d70b680c2c3507d10147" + "reference": "238d749c56b804b31a9bf3e26519d93b65a60938" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/0798827fe2c79caeed41d70b680c2c3507d10147", - "reference": "0798827fe2c79caeed41d70b680c2c3507d10147", + "url": "https://api.github.com/repos/symfony/routing/zipball/238d749c56b804b31a9bf3e26519d93b65a60938", + "reference": "238d749c56b804b31a9bf3e26519d93b65a60938", "shasum": "" }, "require": { @@ -5403,7 +5405,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.4.4" + "source": "https://github.com/symfony/routing/tree/v7.4.6" }, "funding": [ { @@ -5423,7 +5425,7 @@ "type": "tidelift" } ], - "time": "2026-01-12T12:19:02+00:00" + "time": "2026-02-25T16:50:00+00:00" }, { "name": "symfony/runtime", @@ -5663,16 +5665,16 @@ }, { "name": "symfony/string", - "version": "v7.4.4", + "version": "v7.4.6", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "1c4b10461bf2ec27537b5f36105337262f5f5d6f" + "reference": "9f209231affa85aa930a5e46e6eb03381424b30b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/1c4b10461bf2ec27537b5f36105337262f5f5d6f", - "reference": "1c4b10461bf2ec27537b5f36105337262f5f5d6f", + "url": "https://api.github.com/repos/symfony/string/zipball/9f209231affa85aa930a5e46e6eb03381424b30b", + "reference": "9f209231affa85aa930a5e46e6eb03381424b30b", "shasum": "" }, "require": { @@ -5730,7 +5732,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.4.4" + "source": "https://github.com/symfony/string/tree/v7.4.6" }, "funding": [ { @@ -5750,20 +5752,20 @@ "type": "tidelift" } ], - "time": "2026-01-12T10:54:30+00:00" + "time": "2026-02-09T09:33:46+00:00" }, { "name": "symfony/var-dumper", - "version": "v7.4.4", + "version": "v7.4.6", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "0e4769b46a0c3c62390d124635ce59f66874b282" + "reference": "045321c440ac18347b136c63d2e9bf28a2dc0291" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/0e4769b46a0c3c62390d124635ce59f66874b282", - "reference": "0e4769b46a0c3c62390d124635ce59f66874b282", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/045321c440ac18347b136c63d2e9bf28a2dc0291", + "reference": "045321c440ac18347b136c63d2e9bf28a2dc0291", "shasum": "" }, "require": { @@ -5817,7 +5819,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.4.4" + "source": "https://github.com/symfony/var-dumper/tree/v7.4.6" }, "funding": [ { @@ -5837,7 +5839,7 @@ "type": "tidelift" } ], - "time": "2026-01-01T22:13:48+00:00" + "time": "2026-02-15T10:53:20+00:00" }, { "name": "symfony/var-exporter", @@ -5922,16 +5924,16 @@ }, { "name": "symfony/yaml", - "version": "v7.4.1", + "version": "v7.4.6", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "24dd4de28d2e3988b311751ac49e684d783e2345" + "reference": "58751048de17bae71c5aa0d13cb19d79bca26391" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/24dd4de28d2e3988b311751ac49e684d783e2345", - "reference": "24dd4de28d2e3988b311751ac49e684d783e2345", + "url": "https://api.github.com/repos/symfony/yaml/zipball/58751048de17bae71c5aa0d13cb19d79bca26391", + "reference": "58751048de17bae71c5aa0d13cb19d79bca26391", "shasum": "" }, "require": { @@ -5974,7 +5976,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.4.1" + "source": "https://github.com/symfony/yaml/tree/v7.4.6" }, "funding": [ { @@ -5994,7 +5996,7 @@ "type": "tidelift" } ], - "time": "2025-12-04T18:11:45+00:00" + "time": "2026-02-09T09:33:46+00:00" }, { "name": "syndesi/cypher-data-structures", @@ -6360,16 +6362,16 @@ }, { "name": "thecodingmachine/safe", - "version": "v3.3.0", + "version": "v3.4.0", "source": { "type": "git", "url": "https://github.com/thecodingmachine/safe.git", - "reference": "2cdd579eeaa2e78e51c7509b50cc9fb89a956236" + "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/2cdd579eeaa2e78e51c7509b50cc9fb89a956236", - "reference": "2cdd579eeaa2e78e51c7509b50cc9fb89a956236", + "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/705683a25bacf0d4860c7dea4d7947bfd09eea19", + "reference": "705683a25bacf0d4860c7dea4d7947bfd09eea19", "shasum": "" }, "require": { @@ -6479,7 +6481,7 @@ "description": "PHP core functions that throw exceptions instead of returning FALSE on error", "support": { "issues": "https://github.com/thecodingmachine/safe/issues", - "source": "https://github.com/thecodingmachine/safe/tree/v3.3.0" + "source": "https://github.com/thecodingmachine/safe/tree/v3.4.0" }, "funding": [ { @@ -6490,12 +6492,16 @@ "url": "https://github.com/shish", "type": "github" }, + { + "url": "https://github.com/silasjoisten", + "type": "github" + }, { "url": "https://github.com/staabm", "type": "github" } ], - "time": "2025-05-14T06:15:44+00:00" + "time": "2026-02-04T18:08:13+00:00" }, { "name": "tuupola/base58", @@ -7428,16 +7434,16 @@ }, { "name": "brianium/paratest", - "version": "v7.19.0", + "version": "v7.19.2", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "7c6c29af7c4b406b49ce0c6b0a3a81d3684474e6" + "reference": "66e4f7910cecf67736bccf2b8bd53a2e3eb98bd9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/7c6c29af7c4b406b49ce0c6b0a3a81d3684474e6", - "reference": "7c6c29af7c4b406b49ce0c6b0a3a81d3684474e6", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/66e4f7910cecf67736bccf2b8bd53a2e3eb98bd9", + "reference": "66e4f7910cecf67736bccf2b8bd53a2e3eb98bd9", "shasum": "" }, "require": { @@ -7451,9 +7457,9 @@ "phpunit/php-code-coverage": "^12.5.3 || ^13.0.1", "phpunit/php-file-iterator": "^6.0.1 || ^7", "phpunit/php-timer": "^8 || ^9", - "phpunit/phpunit": "^12.5.9 || ^13", + "phpunit/phpunit": "^12.5.14 || ^13.0.5", "sebastian/environment": "^8.0.3 || ^9", - "symfony/console": "^7.4.4 || ^8.0.4", + "symfony/console": "^7.4.7 || ^8.0.7", "symfony/process": "^7.4.5 || ^8.0.5" }, "require-dev": { @@ -7461,11 +7467,11 @@ "ext-pcntl": "*", "ext-pcov": "*", "ext-posix": "*", - "phpstan/phpstan": "^2.1.38", - "phpstan/phpstan-deprecation-rules": "^2.0.3", - "phpstan/phpstan-phpunit": "^2.0.12", - "phpstan/phpstan-strict-rules": "^2.0.8", - "symfony/filesystem": "^7.4.0 || ^8.0.1" + "phpstan/phpstan": "^2.1.40", + "phpstan/phpstan-deprecation-rules": "^2.0.4", + "phpstan/phpstan-phpunit": "^2.0.16", + "phpstan/phpstan-strict-rules": "^2.0.10", + "symfony/filesystem": "^7.4.6 || ^8.0.6" }, "bin": [ "bin/paratest", @@ -7505,7 +7511,7 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v7.19.0" + "source": "https://github.com/paratestphp/paratest/tree/v7.19.2" }, "funding": [ { @@ -7517,7 +7523,7 @@ "type": "paypal" } ], - "time": "2026-02-06T10:53:26+00:00" + "time": "2026-03-09T14:33:17+00:00" }, { "name": "clue/ndjson-react", @@ -8553,16 +8559,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.94.0", + "version": "v3.94.2", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "883b20fb38c7866de9844ab6d0a205c423bde2d4" + "reference": "7787ceff91365ba7d623ec410b8f429cdebb4f63" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/883b20fb38c7866de9844ab6d0a205c423bde2d4", - "reference": "883b20fb38c7866de9844ab6d0a205c423bde2d4", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/7787ceff91365ba7d623ec410b8f429cdebb4f63", + "reference": "7787ceff91365ba7d623ec410b8f429cdebb4f63", "shasum": "" }, "require": { @@ -8645,7 +8651,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.94.0" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.94.2" }, "funding": [ { @@ -8653,7 +8659,7 @@ "type": "github" } ], - "time": "2026-02-11T16:44:33+00:00" + "time": "2026-02-20T16:13:53+00:00" }, { "name": "infection/abstract-testframework-adapter", @@ -8834,16 +8840,16 @@ }, { "name": "infection/infection", - "version": "0.32.4", + "version": "0.32.6", "source": { "type": "git", "url": "https://github.com/infection/infection.git", - "reference": "a2b0a3e47b56bd2f27ca13caecae47baa7e5abe8" + "reference": "4ed769947eaf2ecf42203027301bad2bedf037e5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/infection/infection/zipball/a2b0a3e47b56bd2f27ca13caecae47baa7e5abe8", - "reference": "a2b0a3e47b56bd2f27ca13caecae47baa7e5abe8", + "url": "https://api.github.com/repos/infection/infection/zipball/4ed769947eaf2ecf42203027301bad2bedf037e5", + "reference": "4ed769947eaf2ecf42203027301bad2bedf037e5", "shasum": "" }, "require": { @@ -8954,7 +8960,7 @@ ], "support": { "issues": "https://github.com/infection/infection/issues", - "source": "https://github.com/infection/infection/tree/0.32.4" + "source": "https://github.com/infection/infection/tree/0.32.6" }, "funding": [ { @@ -8966,7 +8972,7 @@ "type": "open_collective" } ], - "time": "2026-02-09T13:24:18+00:00" + "time": "2026-02-26T14:34:26+00:00" }, { "name": "infection/mutator", @@ -9083,16 +9089,16 @@ }, { "name": "justinrainbow/json-schema", - "version": "v6.7.1", + "version": "v6.7.2", "source": { "type": "git", "url": "https://github.com/jsonrainbow/json-schema.git", - "reference": "cd3137ab4ad45033230f530ab7d5618d583c17be" + "reference": "6fea66c7204683af437864e7c4e7abf383d14bc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/cd3137ab4ad45033230f530ab7d5618d583c17be", - "reference": "cd3137ab4ad45033230f530ab7d5618d583c17be", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/6fea66c7204683af437864e7c4e7abf383d14bc0", + "reference": "6fea66c7204683af437864e7c4e7abf383d14bc0", "shasum": "" }, "require": { @@ -9152,9 +9158,9 @@ ], "support": { "issues": "https://github.com/jsonrainbow/json-schema/issues", - "source": "https://github.com/jsonrainbow/json-schema/tree/v6.7.1" + "source": "https://github.com/jsonrainbow/json-schema/tree/v6.7.2" }, - "time": "2026-02-13T16:16:54+00:00" + "time": "2026-02-15T15:06:22+00:00" }, { "name": "kelunik/certificate", @@ -9216,20 +9222,20 @@ }, { "name": "league/uri", - "version": "7.8.0", + "version": "7.8.1", "source": { "type": "git", "url": "https://github.com/thephpleague/uri.git", - "reference": "4436c6ec8d458e4244448b069cc572d088230b76" + "reference": "08cf38e3924d4f56238125547b5720496fac8fd4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri/zipball/4436c6ec8d458e4244448b069cc572d088230b76", - "reference": "4436c6ec8d458e4244448b069cc572d088230b76", + "url": "https://api.github.com/repos/thephpleague/uri/zipball/08cf38e3924d4f56238125547b5720496fac8fd4", + "reference": "08cf38e3924d4f56238125547b5720496fac8fd4", "shasum": "" }, "require": { - "league/uri-interfaces": "^7.8", + "league/uri-interfaces": "^7.8.1", "php": "^8.1", "psr/http-factory": "^1" }, @@ -9302,7 +9308,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri/tree/7.8.0" + "source": "https://github.com/thephpleague/uri/tree/7.8.1" }, "funding": [ { @@ -9310,20 +9316,20 @@ "type": "github" } ], - "time": "2026-01-14T17:24:56+00:00" + "time": "2026-03-15T20:22:25+00:00" }, { "name": "league/uri-interfaces", - "version": "7.8.0", + "version": "7.8.1", "source": { "type": "git", "url": "https://github.com/thephpleague/uri-interfaces.git", - "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4" + "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/c5c5cd056110fc8afaba29fa6b72a43ced42acd4", - "reference": "c5c5cd056110fc8afaba29fa6b72a43ced42acd4", + "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/85d5c77c5d6d3af6c54db4a78246364908f3c928", + "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928", "shasum": "" }, "require": { @@ -9386,7 +9392,7 @@ "docs": "https://uri.thephpleague.com", "forum": "https://thephpleague.slack.com", "issues": "https://github.com/thephpleague/uri-src/issues", - "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.0" + "source": "https://github.com/thephpleague/uri-interfaces/tree/7.8.1" }, "funding": [ { @@ -9394,7 +9400,7 @@ "type": "github" } ], - "time": "2026-01-15T06:54:53+00:00" + "time": "2026-03-08T20:05:35+00:00" }, { "name": "marc-mabe/php-enum", @@ -9531,16 +9537,16 @@ }, { "name": "netresearch/jsonmapper", - "version": "v5.0.0", + "version": "v5.0.1", "source": { "type": "git", "url": "https://github.com/cweiske/jsonmapper.git", - "reference": "8c64d8d444a5d764c641ebe97e0e3bc72b25bf6c" + "reference": "980674efdda65913492d29a8fd51c82270dd37bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/8c64d8d444a5d764c641ebe97e0e3bc72b25bf6c", - "reference": "8c64d8d444a5d764c641ebe97e0e3bc72b25bf6c", + "url": "https://api.github.com/repos/cweiske/jsonmapper/zipball/980674efdda65913492d29a8fd51c82270dd37bb", + "reference": "980674efdda65913492d29a8fd51c82270dd37bb", "shasum": "" }, "require": { @@ -9576,9 +9582,9 @@ "support": { "email": "cweiske@cweiske.de", "issues": "https://github.com/cweiske/jsonmapper/issues", - "source": "https://github.com/cweiske/jsonmapper/tree/v5.0.0" + "source": "https://github.com/cweiske/jsonmapper/tree/v5.0.1" }, - "time": "2024-09-08T10:20:00+00:00" + "time": "2026-02-22T16:28:03+00:00" }, { "name": "nikic/php-parser", @@ -9950,16 +9956,16 @@ }, { "name": "phpbench/phpbench", - "version": "1.4.3", + "version": "1.6.0", "source": { "type": "git", "url": "https://github.com/phpbench/phpbench.git", - "reference": "b641dde59d969ea42eed70a39f9b51950bc96878" + "reference": "fdeb35d0d277dd6b9e795df6cbbec9218f3b143e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpbench/phpbench/zipball/b641dde59d969ea42eed70a39f9b51950bc96878", - "reference": "b641dde59d969ea42eed70a39f9b51950bc96878", + "url": "https://api.github.com/repos/phpbench/phpbench/zipball/fdeb35d0d277dd6b9e795df6cbbec9218f3b143e", + "reference": "fdeb35d0d277dd6b9e795df6cbbec9218f3b143e", "shasum": "" }, "require": { @@ -9970,7 +9976,7 @@ "ext-reflection": "*", "ext-spl": "*", "ext-tokenizer": "*", - "php": "^8.1", + "php": "^8.2", "phpbench/container": "^2.2", "psr/log": "^1.1 || ^2.0 || ^3.0", "seld/jsonlint": "^1.1", @@ -9990,8 +9996,9 @@ "phpstan/extension-installer": "^1.1", "phpstan/phpstan": "^1.0", "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^10.4 || ^11.0", + "phpunit/phpunit": "^11.5", "rector/rector": "^1.2", + "sebastian/exporter": "^6.3.2", "symfony/error-handler": "^6.1 || ^7.0 || ^8.0", "symfony/var-dumper": "^6.1 || ^7.0 || ^8.0" }, @@ -10036,7 +10043,7 @@ ], "support": { "issues": "https://github.com/phpbench/phpbench/issues", - "source": "https://github.com/phpbench/phpbench/tree/1.4.3" + "source": "https://github.com/phpbench/phpbench/tree/1.6.0" }, "funding": [ { @@ -10044,7 +10051,7 @@ "type": "github" } ], - "time": "2025-11-06T19:07:31+00:00" + "time": "2026-03-21T18:08:17+00:00" }, { "name": "phpdocumentor/reflection-common", @@ -10101,16 +10108,16 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.6.6", + "version": "6.0.3", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "5cee1d3dfc2d2aa6599834520911d246f656bcb8" + "reference": "7bae67520aa9f5ecc506d646810bd40d9da54582" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/5cee1d3dfc2d2aa6599834520911d246f656bcb8", - "reference": "5cee1d3dfc2d2aa6599834520911d246f656bcb8", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/7bae67520aa9f5ecc506d646810bd40d9da54582", + "reference": "7bae67520aa9f5ecc506d646810bd40d9da54582", "shasum": "" }, "require": { @@ -10118,8 +10125,8 @@ "ext-filter": "*", "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.2", - "phpdocumentor/type-resolver": "^1.7", - "phpstan/phpdoc-parser": "^1.7|^2.0", + "phpdocumentor/type-resolver": "^2.0", + "phpstan/phpdoc-parser": "^2.0", "webmozart/assert": "^1.9.1 || ^2" }, "require-dev": { @@ -10129,7 +10136,8 @@ "phpstan/phpstan-mockery": "^1.1", "phpstan/phpstan-webmozart-assert": "^1.2", "phpunit/phpunit": "^9.5", - "psalm/phar": "^5.26" + "psalm/phar": "^5.26", + "shipmonk/dead-code-detector": "^0.5.1" }, "type": "library", "extra": { @@ -10159,44 +10167,44 @@ "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", "support": { "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", - "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/5.6.6" + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/6.0.3" }, - "time": "2025-12-22T21:13:58+00:00" + "time": "2026-03-18T20:49:53+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.12.0", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195" + "reference": "327a05bbee54120d4786a0dc67aad30226ad4cf9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/92a98ada2b93d9b201a613cb5a33584dde25f195", - "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/327a05bbee54120d4786a0dc67aad30226ad4cf9", + "reference": "327a05bbee54120d4786a0dc67aad30226ad4cf9", "shasum": "" }, "require": { "doctrine/deprecations": "^1.0", - "php": "^7.3 || ^8.0", + "php": "^7.4 || ^8.0", "phpdocumentor/reflection-common": "^2.0", - "phpstan/phpdoc-parser": "^1.18|^2.0" + "phpstan/phpdoc-parser": "^2.0" }, "require-dev": { "ext-tokenizer": "*", "phpbench/phpbench": "^1.2", - "phpstan/extension-installer": "^1.1", - "phpstan/phpstan": "^1.8", - "phpstan/phpstan-phpunit": "^1.1", + "phpstan/extension-installer": "^1.4", + "phpstan/phpstan": "^2.1", + "phpstan/phpstan-phpunit": "^2.0", "phpunit/phpunit": "^9.5", - "rector/rector": "^0.13.9", - "vimeo/psalm": "^4.25" + "psalm/phar": "^4" }, "type": "library", "extra": { "branch-alias": { - "dev-1.x": "1.x-dev" + "dev-1.x": "1.x-dev", + "dev-2.x": "2.x-dev" } }, "autoload": { @@ -10217,9 +10225,9 @@ "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.12.0" + "source": "https://github.com/phpDocumentor/TypeResolver/tree/2.0.0" }, - "time": "2025-11-21T15:09:14+00:00" + "time": "2026-01-06T21:53:42+00:00" }, { "name": "phpmd/phpmd", @@ -10306,22 +10314,22 @@ }, { "name": "phpspec/prophecy", - "version": "v1.25.0", + "version": "v1.26.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "7ab965042096282307992f1b9abff020095757f0" + "reference": "0da07c10d5fe64cd0c748f0523b47599400f2ed1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/7ab965042096282307992f1b9abff020095757f0", - "reference": "7ab965042096282307992f1b9abff020095757f0", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/0da07c10d5fe64cd0c748f0523b47599400f2ed1", + "reference": "0da07c10d5fe64cd0c748f0523b47599400f2ed1", "shasum": "" }, "require": { "doctrine/instantiator": "^1.2 || ^2.0", "php": "8.2.* || 8.3.* || 8.4.* || 8.5.*", - "phpdocumentor/reflection-docblock": "^5.2", + "phpdocumentor/reflection-docblock": "^5.2 || ^6.0", "sebastian/comparator": "^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0", "sebastian/recursion-context": "^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0", "symfony/deprecation-contracts": "^2.5 || ^3.1" @@ -10371,9 +10379,9 @@ ], "support": { "issues": "https://github.com/phpspec/prophecy/issues", - "source": "https://github.com/phpspec/prophecy/tree/v1.25.0" + "source": "https://github.com/phpspec/prophecy/tree/v1.26.0" }, - "time": "2026-02-09T11:58:00+00:00" + "time": "2026-02-24T15:40:48+00:00" }, { "name": "phpspec/prophecy-phpunit", @@ -10479,11 +10487,11 @@ }, { "name": "phpstan/phpstan", - "version": "2.1.39", + "version": "2.1.42", "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/c6f73a2af4cbcd99c931d0fb8f08548cc0fa8224", - "reference": "c6f73a2af4cbcd99c931d0fb8f08548cc0fa8224", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/1279e1ce86ba768f0780c9d889852b4e02ff40d0", + "reference": "1279e1ce86ba768f0780c9d889852b4e02ff40d0", "shasum": "" }, "require": { @@ -10528,7 +10536,7 @@ "type": "github" } ], - "time": "2026-02-11T14:48:56+00:00" + "time": "2026-03-17T14:58:32+00:00" }, { "name": "phpunit/php-code-coverage", @@ -10878,16 +10886,16 @@ }, { "name": "phpunit/phpunit", - "version": "12.5.11", + "version": "12.5.14", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "9b518cb40f9474572c9f0178e96ff3dc1cf02bf1" + "reference": "47283cfd98d553edcb1353591f4e255dc1bb61f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9b518cb40f9474572c9f0178e96ff3dc1cf02bf1", - "reference": "9b518cb40f9474572c9f0178e96ff3dc1cf02bf1", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/47283cfd98d553edcb1353591f4e255dc1bb61f0", + "reference": "47283cfd98d553edcb1353591f4e255dc1bb61f0", "shasum": "" }, "require": { @@ -10956,7 +10964,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.11" + "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.14" }, "funding": [ { @@ -10980,7 +10988,7 @@ "type": "tidelift" } ], - "time": "2026-02-10T12:32:02+00:00" + "time": "2026-02-18T12:38:40+00:00" }, { "name": "psr/clock", @@ -12190,16 +12198,16 @@ }, { "name": "sebastian/environment", - "version": "8.0.3", + "version": "8.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68" + "reference": "7b8842c2d8e85d0c3a5831236bf5869af6ab2a11" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/24a711b5c916efc6d6e62aa65aa2ec98fef77f68", - "reference": "24a711b5c916efc6d6e62aa65aa2ec98fef77f68", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/7b8842c2d8e85d0c3a5831236bf5869af6ab2a11", + "reference": "7b8842c2d8e85d0c3a5831236bf5869af6ab2a11", "shasum": "" }, "require": { @@ -12242,7 +12250,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/environment/issues", "security": "https://github.com/sebastianbergmann/environment/security/policy", - "source": "https://github.com/sebastianbergmann/environment/tree/8.0.3" + "source": "https://github.com/sebastianbergmann/environment/tree/8.0.4" }, "funding": [ { @@ -12262,7 +12270,7 @@ "type": "tidelift" } ], - "time": "2025-08-12T14:11:56+00:00" + "time": "2026-03-15T07:05:40+00:00" }, { "name": "sebastian/exporter", @@ -12985,19 +12993,20 @@ }, { "name": "symfony/maker-bundle", - "version": "v1.66.0", + "version": "v1.67.0", "source": { "type": "git", "url": "https://github.com/symfony/maker-bundle.git", - "reference": "b5b4afa2a570b926682e9f34615a6766dd560ff4" + "reference": "6ce8b313845f16bcf385ee3cb31d8b24e30d5516" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/b5b4afa2a570b926682e9f34615a6766dd560ff4", - "reference": "b5b4afa2a570b926682e9f34615a6766dd560ff4", + "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/6ce8b313845f16bcf385ee3cb31d8b24e30d5516", + "reference": "6ce8b313845f16bcf385ee3cb31d8b24e30d5516", "shasum": "" }, "require": { + "composer-runtime-api": "^2.1", "doctrine/inflector": "^2.0", "nikic/php-parser": "^5.0", "php": ">=8.1", @@ -13059,7 +13068,7 @@ ], "support": { "issues": "https://github.com/symfony/maker-bundle/issues", - "source": "https://github.com/symfony/maker-bundle/tree/v1.66.0" + "source": "https://github.com/symfony/maker-bundle/tree/v1.67.0" }, "funding": [ { @@ -13079,20 +13088,20 @@ "type": "tidelift" } ], - "time": "2026-02-09T08:55:54+00:00" + "time": "2026-03-18T13:39:06+00:00" }, { "name": "symfony/phpunit-bridge", - "version": "v7.4.3", + "version": "v7.4.7", "source": { "type": "git", "url": "https://github.com/symfony/phpunit-bridge.git", - "reference": "f933e68bb9df29d08077a37e1515a23fea8562ab" + "reference": "53c5a606cb4ae19c9466a5f8ffe60f61b0c93b5f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/f933e68bb9df29d08077a37e1515a23fea8562ab", - "reference": "f933e68bb9df29d08077a37e1515a23fea8562ab", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/53c5a606cb4ae19c9466a5f8ffe60f61b0c93b5f", + "reference": "53c5a606cb4ae19c9466a5f8ffe60f61b0c93b5f", "shasum": "" }, "require": { @@ -13144,7 +13153,7 @@ "testing" ], "support": { - "source": "https://github.com/symfony/phpunit-bridge/tree/v7.4.3" + "source": "https://github.com/symfony/phpunit-bridge/tree/v7.4.7" }, "funding": [ { @@ -13164,7 +13173,7 @@ "type": "tidelift" } ], - "time": "2025-12-09T15:33:45+00:00" + "time": "2026-03-04T13:54:41+00:00" }, { "name": "symfony/translation-contracts", @@ -13250,16 +13259,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v7.4.5", + "version": "v7.4.7", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "f2dd26b604e856476ef7e0efa4568bc07eb7ddc8" + "reference": "c67219ca6b79a57b64e36bbb2cd8ba741286587e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/f2dd26b604e856476ef7e0efa4568bc07eb7ddc8", - "reference": "f2dd26b604e856476ef7e0efa4568bc07eb7ddc8", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/c67219ca6b79a57b64e36bbb2cd8ba741286587e", + "reference": "c67219ca6b79a57b64e36bbb2cd8ba741286587e", "shasum": "" }, "require": { @@ -13269,7 +13278,7 @@ "twig/twig": "^3.21" }, "conflict": { - "phpdocumentor/reflection-docblock": "<5.2|>=6", + "phpdocumentor/reflection-docblock": "<5.2|>=7", "phpdocumentor/type-resolver": "<1.5.1", "symfony/console": "<6.4", "symfony/form": "<6.4.32|>7,<7.3.10|>7.4,<7.4.4|>8.0,<8.0.4", @@ -13283,7 +13292,7 @@ "require-dev": { "egulias/email-validator": "^2.1.10|^3|^4", "league/html-to-markdown": "^5.0", - "phpdocumentor/reflection-docblock": "^5.2", + "phpdocumentor/reflection-docblock": "^5.2|^6.0", "symfony/asset": "^6.4|^7.0|^8.0", "symfony/asset-mapper": "^6.4|^7.0|^8.0", "symfony/console": "^6.4|^7.0|^8.0", @@ -13341,7 +13350,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v7.4.5" + "source": "https://github.com/symfony/twig-bridge/tree/v7.4.7" }, "funding": [ { @@ -13361,7 +13370,7 @@ "type": "tidelift" } ], - "time": "2026-01-27T08:59:58+00:00" + "time": "2026-03-04T15:37:05+00:00" }, { "name": "symfony/twig-bundle", @@ -13455,16 +13464,16 @@ }, { "name": "symfony/web-profiler-bundle", - "version": "v7.4.4", + "version": "v7.4.7", "source": { "type": "git", "url": "https://github.com/symfony/web-profiler-bundle.git", - "reference": "be165e29e6109efb89bfaefe56e3deccf72a8643" + "reference": "da9e91746fc9c575be8b5ff466b7572d98e7e1ae" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/be165e29e6109efb89bfaefe56e3deccf72a8643", - "reference": "be165e29e6109efb89bfaefe56e3deccf72a8643", + "url": "https://api.github.com/repos/symfony/web-profiler-bundle/zipball/da9e91746fc9c575be8b5ff466b7572d98e7e1ae", + "reference": "da9e91746fc9c575be8b5ff466b7572d98e7e1ae", "shasum": "" }, "require": { @@ -13521,7 +13530,7 @@ "dev" ], "support": { - "source": "https://github.com/symfony/web-profiler-bundle/tree/v7.4.4" + "source": "https://github.com/symfony/web-profiler-bundle/tree/v7.4.7" }, "funding": [ { @@ -13541,7 +13550,7 @@ "type": "tidelift" } ], - "time": "2026-01-07T11:56:45+00:00" + "time": "2026-03-03T13:57:00+00:00" }, { "name": "thecodingmachine/phpstan-safe-rule", @@ -13653,16 +13662,16 @@ }, { "name": "twig/twig", - "version": "v3.23.0", + "version": "v3.24.0", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9" + "reference": "a6769aefb305efef849dc25c9fd1653358c148f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9", - "reference": "a64dc5d2cc7d6cafb9347f6cd802d0d06d0351c9", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/a6769aefb305efef849dc25c9fd1653358c148f0", + "reference": "a6769aefb305efef849dc25c9fd1653358c148f0", "shasum": "" }, "require": { @@ -13672,7 +13681,8 @@ "symfony/polyfill-mbstring": "^1.3" }, "require-dev": { - "phpstan/phpstan": "^2.0", + "php-cs-fixer/shim": "^3.0@stable", + "phpstan/phpstan": "^2.0@stable", "psr/container": "^1.0|^2.0", "symfony/phpunit-bridge": "^5.4.9|^6.4|^7.0" }, @@ -13716,7 +13726,7 @@ ], "support": { "issues": "https://github.com/twigphp/Twig/issues", - "source": "https://github.com/twigphp/Twig/tree/v3.23.0" + "source": "https://github.com/twigphp/Twig/tree/v3.24.0" }, "funding": [ { @@ -13728,20 +13738,20 @@ "type": "tidelift" } ], - "time": "2026-01-23T21:00:41+00:00" + "time": "2026-03-17T21:31:11+00:00" }, { "name": "vimeo/psalm", - "version": "6.15.1", + "version": "6.16.1", "source": { "type": "git", "url": "https://github.com/vimeo/psalm.git", - "reference": "28dc127af1b5aecd52314f6f645bafc10d0e11f9" + "reference": "f1f5de594dc76faf8784e02d3dc4716c91c6f6ac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/vimeo/psalm/zipball/28dc127af1b5aecd52314f6f645bafc10d0e11f9", - "reference": "28dc127af1b5aecd52314f6f645bafc10d0e11f9", + "url": "https://api.github.com/repos/vimeo/psalm/zipball/f1f5de594dc76faf8784e02d3dc4716c91c6f6ac", + "reference": "f1f5de594dc76faf8784e02d3dc4716c91c6f6ac", "shasum": "" }, "require": { @@ -13846,20 +13856,20 @@ "issues": "https://github.com/vimeo/psalm/issues", "source": "https://github.com/vimeo/psalm" }, - "time": "2026-02-07T19:27:16+00:00" + "time": "2026-03-19T10:56:09+00:00" }, { "name": "webmozart/assert", - "version": "2.1.3", + "version": "2.1.6", "source": { "type": "git", "url": "https://github.com/webmozarts/assert.git", - "reference": "6976757ba8dd70bf8cbaea0914ad84d8b51a9f46" + "reference": "ff31ad6efc62e66e518fbab1cde3453d389bcdc8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozarts/assert/zipball/6976757ba8dd70bf8cbaea0914ad84d8b51a9f46", - "reference": "6976757ba8dd70bf8cbaea0914ad84d8b51a9f46", + "url": "https://api.github.com/repos/webmozarts/assert/zipball/ff31ad6efc62e66e518fbab1cde3453d389bcdc8", + "reference": "ff31ad6efc62e66e518fbab1cde3453d389bcdc8", "shasum": "" }, "require": { @@ -13906,9 +13916,9 @@ ], "support": { "issues": "https://github.com/webmozarts/assert/issues", - "source": "https://github.com/webmozarts/assert/tree/2.1.3" + "source": "https://github.com/webmozarts/assert/tree/2.1.6" }, - "time": "2026-02-13T21:01:40+00:00" + "time": "2026-02-27T10:28:38+00:00" }, { "name": "webmozart/glob", @@ -13966,7 +13976,7 @@ "prefer-stable": true, "prefer-lowest": false, "platform": { - "php": ">=8.3", + "php": ">=8.5", "ext-ctype": "*", "ext-iconv": "*" }, diff --git a/config/reference.php b/config/reference.php index 1168443a..67538263 100644 --- a/config/reference.php +++ b/config/reference.php @@ -208,29 +208,29 @@ * initial_marking?: list, * events_to_dispatch?: list|null, * places?: list, + * name?: scalar|Param|null, + * metadata?: array, * }>, - * transitions: list, * to?: list, * weight?: int|Param, // Default: 1 - * metadata?: list, + * metadata?: array, * }>, - * metadata?: list, + * metadata?: array, * }>, * }, * router?: bool|array{ // Router configuration * enabled?: bool|Param, // Default: false - * resource: scalar|Param|null, + * resource?: scalar|Param|null, * type?: scalar|Param|null, * cache_dir?: scalar|Param|null, // Deprecated: Setting the "framework.router.cache_dir.cache_dir" configuration option is deprecated. It will be removed in version 8.0. // Default: "%kernel.build_dir%" * default_uri?: scalar|Param|null, // The default URI used to generate URLs in a non-HTTP context. // Default: null @@ -360,10 +360,10 @@ * mapping?: array{ * paths?: list, * }, - * default_context?: list, + * default_context?: array, * named_serializers?: array, + * default_context?: array, * include_built_in_normalizers?: bool|Param, // Whether to include the built-in normalizers // Default: true * include_built_in_encoders?: bool|Param, // Whether to include the built-in encoders // Default: true * }>, @@ -427,7 +427,7 @@ * }, * messenger?: bool|array{ // Messenger configuration * enabled?: bool|Param, // Default: false - * routing?: array, * }>, * serializer?: array{ @@ -440,7 +440,7 @@ * transports?: array, + * options?: array, * failure_transport?: scalar|Param|null, // Transport name to send failed messages to (after all retries have failed). // Default: null * retry_strategy?: string|array{ * service?: scalar|Param|null, // Service id to override the retry strategy entirely. // Default: null @@ -462,7 +462,7 @@ * allow_no_senders?: bool|Param, // Default: true * }, * middleware?: list, * }>, * }>, @@ -634,7 +634,7 @@ * lock_factory?: scalar|Param|null, // The service ID of the lock factory used by this limiter (or null to disable locking). // Default: "auto" * cache_pool?: scalar|Param|null, // The cache pool to use for storing the current limiter state. // Default: "cache.rate_limiter" * storage_service?: scalar|Param|null, // The service ID of a custom storage implementation, this precedes any configured "cache_pool". // Default: null - * policy: "fixed_window"|"token_bucket"|"sliding_window"|"compound"|"no_limit"|Param, // The algorithm to be used by this limiter. + * policy?: "fixed_window"|"token_bucket"|"sliding_window"|"compound"|"no_limit"|Param, // The algorithm to be used by this limiter. * limiters?: list, * limit?: int|Param, // The maximum allowed hits in a fixed interval or burst. * interval?: scalar|Param|null, // Configures the fixed interval if "policy" is set to "fixed_window" or "sliding_window". The value must be a number followed by "second", "minute", "hour", "day", "week" or "month" (or their plural equivalent). @@ -679,7 +679,7 @@ * enabled?: bool|Param, // Default: false * message_bus?: scalar|Param|null, // The message bus to use. // Default: "messenger.default_bus" * routing?: array, * }, @@ -694,7 +694,7 @@ * use_microseconds?: scalar|Param|null, // Default: true * channels?: list, * handlers?: array, * mailer?: scalar|Param|null, // Default: null * email_prototype?: string|array{ - * id: scalar|Param|null, + * id?: scalar|Param|null, * method?: scalar|Param|null, // Default: null * }, * lazy?: bool|Param, // Default: true @@ -1010,7 +1010,10 @@ final class App */ public static function config(array $config): array { - return AppReference::config($config); + /** @var ConfigType $config */ + $config = AppReference::config($config); + + return $config; } } diff --git a/docker/Dockerfile b/docker/Dockerfile index 9b09560b..9828b54f 100755 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,8 +1,10 @@ -ARG FRANKENPHP_VERSION='1.11.2' -ARG PHP_VERSION='8.5.2' +ARG FRANKENPHP_VERSION='1.12.1' +ARG PHP_VERSION='8.5.4' +ARG CADDY_BUILDER_VERSION='2.11' +FROM caddy:${CADDY_BUILDER_VERSION}-builder-alpine AS caddy_builder FROM dunglas/frankenphp:${FRANKENPHP_VERSION}-builder-php${PHP_VERSION}-alpine AS frankenphp_builder -COPY --from=caddy:2-builder-alpine /usr/bin/xcaddy /usr/bin/xcaddy +COPY --from=caddy_builder /usr/bin/xcaddy /usr/bin/xcaddy RUN CGO_ENABLED=1 \ XCADDY_SETCAP=1 \ XCADDY_GO_BUILD_FLAGS="-tags=nobadger,nomysql,nopgx -ldflags='-w -s -extldflags \'-Wl,-z,stack-size=0x80000\''" \ diff --git a/src/EventSystem/ElementFragmentize/EventListener/NodeElementFragmentizeEventListener.php b/src/EventSystem/ElementFragmentize/EventListener/NodeElementFragmentizeEventListener.php index 8caebbe9..4de61157 100644 --- a/src/EventSystem/ElementFragmentize/EventListener/NodeElementFragmentizeEventListener.php +++ b/src/EventSystem/ElementFragmentize/EventListener/NodeElementFragmentizeEventListener.php @@ -33,13 +33,11 @@ public function onNodeElementFragmentizeEvent(NodeElementFragmentizeEvent $event /** * @psalm-suppress UndefinedInterfaceMethod - * - * @phpstan-ignore-next-line */ $event->getCypherFragment() ->addLabel($nodeLabel) ->addProperty('id', $nodeElementIdentifier) - ->addIdentifier('id'); + ->addIdentifier('id'); // @phpstan-ignore-line $event->getMongoFragment() ->setCollection($nodeLabel) ->setIdentifier($nodeElementIdentifier); diff --git a/src/EventSystem/ElementFragmentize/EventListener/RelationElementFragmentizeEventListener.php b/src/EventSystem/ElementFragmentize/EventListener/RelationElementFragmentizeEventListener.php index 18cd944e..c9bb7dfe 100644 --- a/src/EventSystem/ElementFragmentize/EventListener/RelationElementFragmentizeEventListener.php +++ b/src/EventSystem/ElementFragmentize/EventListener/RelationElementFragmentizeEventListener.php @@ -46,8 +46,6 @@ public function onRelationElementFragmentizeEvent(RelationElementFragmentizeEven /** * @psalm-suppress UndefinedInterfaceMethod - * - * @phpstan-ignore-next-line */ $event->getCypherFragment() ->setType($relationElement->getType()) @@ -62,7 +60,7 @@ public function onRelationElementFragmentizeEvent(RelationElementFragmentizeEven ->addIdentifier('id') ) ->addProperty('id', $relationId) - ->addIdentifier('id'); + ->addIdentifier('id'); // @phpstan-ignore-line $event->getMongoFragment() ->setCollection($relationType) ->setIdentifier($relationId); diff --git a/taskfile.yml b/taskfile.yml new file mode 100644 index 00000000..c7d7dc63 --- /dev/null +++ b/taskfile.yml @@ -0,0 +1,19 @@ +version: '3' + +tasks: + + dev:build: + cmds: + - docker compose -f ./tools/docker-compose.yml build + + dev:up: + cmds: + - docker compose -f ./tools/docker-compose.yml up -d --remove-orphans + + dev:down: + cmds: + - docker compose -f ./tools/docker-compose.yml down + + dev:cli: + cmds: + - docker compose -f ./tools/docker-compose.yml exec api /bin/bash diff --git a/tests/.php-cs-fixer.dist.php b/tests/.php-cs-fixer.dist.php index f34dfe4b..096026fd 100644 --- a/tests/.php-cs-fixer.dist.php +++ b/tests/.php-cs-fixer.dist.php @@ -8,6 +8,7 @@ return (new PhpCsFixer\Config()) ->setParallelConfig(PhpCsFixer\Runner\Parallel\ParallelConfigFactory::detect()) + ->setUnsupportedPhpVersionAllowed(true) ->setRules([ '@Symfony' => true, 'phpdoc_to_comment' => false, diff --git a/tools/docker-compose.yml b/tools/docker-compose.yml new file mode 100644 index 00000000..8ad4120e --- /dev/null +++ b/tools/docker-compose.yml @@ -0,0 +1,100 @@ +name: dev + +services: + + api: + container_name: api + build: + context: .. + dockerfile: ./docker/Dockerfile + target: development + volumes: + - ..:/var/www/html + - ../volumes/well-known-security.txt:/well-known-security.txt + ports: + - "80:80" + + docs: + container_name: docs + image: sujaykumarh/docsify:latest + ports: + - "3000:3000" + volumes: + - ../docs:/docs + command: serve + + neo4j: + container_name: neo4j + image: neo4j:5.25 + environment: + - NEO4J_AUTH=neo4j/password + ports: + - "7474:7474" + - "7687:7687" + + mongodb: + container_name: mongodb + image: mongo:8.0 + ports: + - "27017:27017" + environment: + - MONGO_INITDB_ROOT_USERNAME=mongodb + - MONGO_INITDB_ROOT_PASSWORD=password + - GLIBC_TUNABLES="glibc.cpu.hwcaps=-SHSTK" # see https://github.com/docker-library/mongo/discussions/748#discussioncomment-15927486 + + elasticsearch: + container_name: elasticsearch + image: elasticsearch:8.16.1 + mem_limit: 4gb + ports: + - "9200:9200" + environment: + - discovery.type=single-node + - xpack.security.enabled=false + - xpack.security.enrollment.enabled=true + + kibana: + container_name: kibana + image: kibana:8.16.1 + ports: + - "5601:5601" + depends_on: + - elasticsearch + environment: + ELASTICSEARCH_HOSTS: '["http://elasticsearch:9200"]' + + redis: + container_name: redis + image: redis:8.0-M02 + ports: + - "6379:6379" + command: redis-server --save 20 1 --loglevel warning --requirepass redis-password + + redisinsight: + container_name: redisinsight + image: redislabs/redisinsight:latest + ports: + - "5540:5540" + + rabbitmq: + container_name: rabbitmq + image: rabbitmq:3-management + ports: + - "5672:5672" + - "15672:15672" + environment: + - RABBITMQ_DEFAULT_USER=user + - RABBITMQ_DEFAULT_PASS=password + + minio: + container_name: minio + image: quay.io/minio/minio:latest + ports: + - "9000:9000" + - "9001:9001" + volumes: + - ../volumes/minio:/data + environment: + - MINIO_ROOT_USER=ROOTNAME + - MINIO_ROOT_PASSWORD=CHANGEME123 + command: server /data --console-address ":9001" diff --git a/volumes/.gitignore b/volumes/.gitignore new file mode 100644 index 00000000..17860d7e --- /dev/null +++ b/volumes/.gitignore @@ -0,0 +1,3 @@ +* +!.gitignore +!well-known-security.txt diff --git a/volumes/well-known-security.txt b/volumes/well-known-security.txt new file mode 100644 index 00000000..f6c8d747 --- /dev/null +++ b/volumes/well-known-security.txt @@ -0,0 +1 @@ +hello world :D From 2598226c4cb51211b48e8db5df11526160d2ec0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Klein?= Date: Sat, 21 Mar 2026 23:27:57 +0100 Subject: [PATCH 2/4] upgrade GitHub Actions in CI/CD --- .../ci-check-upstream-dependency-alpine.yml | 2 +- .../ci-check-upstream-dependency-php.yml | 2 +- .github/workflows/ci-docker-image-build.yml | 12 +-- .github/workflows/ci-release-package.yml | 34 ++++---- .github/workflows/ci-test.yml | 80 +++++++++---------- CHANGELOG.md | 1 + .../docker-compose-neo4j-5.20.yml | 28 +++---- .../FeatureTests/docker-compose-neo4j-5.7.yml | 28 +++---- .../docker-compose-neo4j-latest.yml | 28 +++---- 9 files changed, 108 insertions(+), 107 deletions(-) diff --git a/.github/workflows/ci-check-upstream-dependency-alpine.yml b/.github/workflows/ci-check-upstream-dependency-alpine.yml index af8c0e18..8c3030a7 100644 --- a/.github/workflows/ci-check-upstream-dependency-alpine.yml +++ b/.github/workflows/ci-check-upstream-dependency-alpine.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Load latest Docker Hub tags for Alpine run: | diff --git a/.github/workflows/ci-check-upstream-dependency-php.yml b/.github/workflows/ci-check-upstream-dependency-php.yml index 3bad4929..66a241a4 100644 --- a/.github/workflows/ci-check-upstream-dependency-php.yml +++ b/.github/workflows/ci-check-upstream-dependency-php.yml @@ -12,7 +12,7 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v4 + uses: actions/checkout@v5 - name: Load latest PHP releases run: | diff --git a/.github/workflows/ci-docker-image-build.yml b/.github/workflows/ci-docker-image-build.yml index 650fe825..70a5c027 100644 --- a/.github/workflows/ci-docker-image-build.yml +++ b/.github/workflows/ci-docker-image-build.yml @@ -8,15 +8,15 @@ jobs: name: 'Build Docker Image' timeout-minutes: 20 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Expose GitHub Runtime - uses: crazy-max/ghaction-github-runtime@v3 + uses: crazy-max/ghaction-github-runtime@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 with: version: latest - name: Login to Docker Hub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -41,12 +41,12 @@ jobs: -f ./docker/Dockerfile \ . docker save api:prod-amd | gzip > api-prod-amd.tar.gz - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 with: name: docker-image-api-dev-amd path: api-dev-amd.tar.gz retention-days: 21 - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 with: name: docker-image-api-prod-amd path: api-prod-amd.tar.gz diff --git a/.github/workflows/ci-release-package.yml b/.github/workflows/ci-release-package.yml index 328ba677..28c809db 100644 --- a/.github/workflows/ci-release-package.yml +++ b/.github/workflows/ci-release-package.yml @@ -16,7 +16,7 @@ jobs: timeout-minutes: 10 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Bump version shell: bash @@ -54,13 +54,13 @@ jobs: cd /tmp/ci-env/ tar -czf /tmp/ci-env.tar.gz . - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 with: name: bumped-repo path: /tmp/bumped-repo.tar.gz retention-days: 7 - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 with: name: ci-env path: /tmp/ci-env.tar.gz @@ -74,12 +74,12 @@ jobs: needs: checkout-repo-and-bump-version steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: bumped-repo path: /tmp - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: ci-env path: /tmp @@ -106,7 +106,7 @@ jobs: echo $NEW_VERSION - name: Login to Docker Hub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -122,7 +122,7 @@ jobs: . docker save api:latest-amd | gzip > api-latest-amd.tar.gz - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 with: name: docker-image-api-latest-amd path: api-latest-amd.tar.gz @@ -136,12 +136,12 @@ jobs: needs: checkout-repo-and-bump-version steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: bumped-repo path: /tmp - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: ci-env path: /tmp @@ -168,7 +168,7 @@ jobs: echo $NEW_VERSION - name: Login to Docker Hub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -184,7 +184,7 @@ jobs: . docker save api:latest-arm | gzip > api-latest-arm.tar.gz - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 with: name: docker-image-api-latest-arm path: api-latest-arm.tar.gz @@ -203,7 +203,7 @@ jobs: pwd ls -la - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - shell: bash run: | @@ -211,12 +211,12 @@ jobs: ls -la git config -l | cat - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: bumped-repo path: /tmp - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: ci-env path: /tmp @@ -278,18 +278,18 @@ jobs: git commit -m "chore: release ${{ env.NEW_VERSION }}" git tag ${{ env.NEW_VERSION }} - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: docker-image-api-latest-amd path: /tmp/docker - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: docker-image-api-latest-arm path: /tmp/docker - name: Login to Docker Hub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} diff --git a/.github/workflows/ci-test.yml b/.github/workflows/ci-test.yml index ede19378..4be41961 100644 --- a/.github/workflows/ci-test.yml +++ b/.github/workflows/ci-test.yml @@ -10,7 +10,7 @@ jobs: name: 'YML lint' timeout-minutes: 3 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: docker pull cytopia/yamllint - run: docker run --rm -t -v $(pwd):/data cytopia/yamllint --config-file=tests/.yamllint . @@ -19,7 +19,7 @@ jobs: name: 'Markdown lint' timeout-minutes: 3 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: docker pull tmknom/markdownlint - run: docker run --rm -v $(pwd):/work tmknom/markdownlint '**/*.md' --config tests/.markdownlintrc --ignore vendor --ignore CHANGELOG.md --ignore var --ignore tmp @@ -31,15 +31,15 @@ jobs: - yml-lint - markdown-lint steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - name: Expose GitHub Runtime - uses: crazy-max/ghaction-github-runtime@v3 + uses: crazy-max/ghaction-github-runtime@v4 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 with: version: latest - name: Login to Docker Hub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -66,12 +66,12 @@ jobs: -f ./docker/Dockerfile \ . docker save api:prod-amd | gzip > api-prod-amd.tar.gz - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 with: name: docker-image-api-dev-amd path: api-dev-amd.tar.gz retention-days: 7 - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v6 with: name: docker-image-api-prod-amd path: api-prod-amd.tar.gz @@ -84,9 +84,9 @@ jobs: needs: - build-docker-image steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: mkdir -p /tmp/docker - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: docker-image-api-dev-amd path: /tmp/docker @@ -102,9 +102,9 @@ jobs: needs: - build-docker-image steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: mkdir -p /tmp/docker - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: docker-image-api-dev-amd path: /tmp/docker @@ -120,9 +120,9 @@ jobs: needs: - build-docker-image steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: mkdir -p /tmp/docker - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: docker-image-api-dev-amd path: /tmp/docker @@ -138,9 +138,9 @@ jobs: needs: - build-docker-image steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: mkdir -p /tmp/docker - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: docker-image-api-dev-amd path: /tmp/docker @@ -157,9 +157,9 @@ jobs: - build-docker-image continue-on-error: true steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: mkdir -p /tmp/docker - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: docker-image-api-dev-amd path: /tmp/docker @@ -176,9 +176,9 @@ jobs: - build-docker-image continue-on-error: true steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: mkdir -p /tmp/docker - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: docker-image-api-dev-amd path: /tmp/docker @@ -205,18 +205,18 @@ jobs: - "neo4j-5.20" - "neo4j-latest" steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: mkdir -p /tmp/docker - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: docker-image-api-dev-amd path: /tmp/docker - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: docker-image-api-prod-amd path: /tmp/docker - name: Login to Docker Hub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -230,11 +230,11 @@ jobs: sleep 10 echo "finished waiting" docker compose -f ./tests/FeatureTests/docker-compose-${{ matrix.dockerCompose }}.yml ps - docker exec --user "$(id -u):$(id -g)" ember-nexus-api-dev bash -c "composer install --ignore-platform-req=php --quiet" - docker exec --user "$(id -u):$(id -g)" ember-nexus-api-dev bash -c "php bin/console healthcheck" + docker exec --user "$(id -u):$(id -g)" api-dev bash -c "composer install --ignore-platform-req=php --quiet" + docker exec --user "$(id -u):$(id -g)" api-dev bash -c "php bin/console healthcheck" - name: Feature Test run: | - docker exec --user "$(id -u):$(id -g)" ember-nexus-api-dev bash -c "export API_DOMAIN=\"http://ember-nexus-api-prod\" && echo \$API_DOMAIN && composer test:feature && composer test:feature:deprecated" + docker exec --user "$(id -u):$(id -g)" api-dev bash -c "export API_DOMAIN=\"http://api-prod\" && echo \$API_DOMAIN && composer test:feature && composer test:feature:deprecated" test-example-generation-controller: runs-on: ubuntu-latest @@ -248,18 +248,18 @@ jobs: - test-mutant - test-mess-detector steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: mkdir -p /tmp/docker - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: docker-image-api-dev-amd path: /tmp/docker - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: docker-image-api-prod-amd path: /tmp/docker - name: Login to Docker Hub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -273,11 +273,11 @@ jobs: sleep 10 echo "finished waiting" docker compose -f ./tests/ExampleGenerationController/docker-compose.yml ps - docker exec --user "$(id -u):$(id -g)" ember-nexus-api-dev bash -c "composer install --ignore-platform-req=php --quiet" - docker exec --user "$(id -u):$(id -g)" ember-nexus-api-dev bash -c "php bin/console healthcheck" + docker exec --user "$(id -u):$(id -g)" api-dev bash -c "composer install --ignore-platform-req=php --quiet" + docker exec --user "$(id -u):$(id -g)" api-dev bash -c "php bin/console healthcheck" - name: Controller Example Generation Test run: | - docker exec --user "$(id -u):$(id -g)" ember-nexus-api-dev bash -c "export API_DOMAIN=\"http://ember-nexus-api\" && echo \$API_DOMAIN && composer test:example-generation-controller && composer test:example-generation-controller:with-different-configuration && composer test:example-generation-controller:deprecated" + docker exec --user "$(id -u):$(id -g)" api-dev bash -c "export API_DOMAIN=\"http://api\" && echo \$API_DOMAIN && composer test:example-generation-controller && composer test:example-generation-controller:with-different-configuration && composer test:example-generation-controller:deprecated" test-example-generation-command: @@ -292,14 +292,14 @@ jobs: - test-mutant - test-mess-detector steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: mkdir -p /tmp/docker - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: name: docker-image-api-dev-amd path: /tmp/docker - name: Login to Docker Hub - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} @@ -312,8 +312,8 @@ jobs: sleep 10 echo "finished waiting" docker compose -f ./tests/ExampleGenerationCommand/docker-compose.yml ps - docker exec --user "$(id -u):$(id -g)" ember-nexus-api bash -c "composer install --ignore-platform-req=php --quiet" - docker exec --user "$(id -u):$(id -g)" ember-nexus-api bash -c "php bin/console healthcheck" + docker exec --user "$(id -u):$(id -g)" api bash -c "composer install --ignore-platform-req=php --quiet" + docker exec --user "$(id -u):$(id -g)" api bash -c "php bin/console healthcheck" - name: Command Example Generation Test run: | - docker exec --user "$(id -u):$(id -g)" ember-nexus-api bash -c "BACKUP_FOLDER_CAN_BE_RESET=1 composer test:example-generation-command" + docker exec --user "$(id -u):$(id -g)" api bash -c "BACKUP_FOLDER_CAN_BE_RESET=1 composer test:example-generation-command" diff --git a/CHANGELOG.md b/CHANGELOG.md index feeab4fb..2a1d297a 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed - Upgrade FrankenPHP to 1.12.1, related to #457 and #461. - Upgrade PHP dependencies, related to #457 and #461. +- Upgrade GitHub Actions in CI/CD. ## 0.1.31 - 2026-02-10 ### Changed diff --git a/tests/FeatureTests/docker-compose-neo4j-5.20.yml b/tests/FeatureTests/docker-compose-neo4j-5.20.yml index 4dc6d582..e9c503c5 100644 --- a/tests/FeatureTests/docker-compose-neo4j-5.20.yml +++ b/tests/FeatureTests/docker-compose-neo4j-5.20.yml @@ -1,7 +1,7 @@ services: - ember-nexus-api-dev: - container_name: ember-nexus-api-dev + api-dev: + container_name: api-dev image: api:dev-amd expose: - "80" @@ -9,8 +9,8 @@ services: - ../../:/var/www/html - ./well-known-security.txt:/well-known-security.txt - ember-nexus-api-prod: - container_name: ember-nexus-api-prod + api-prod: + container_name: api-prod image: api:prod-amd expose: - "80" @@ -18,8 +18,8 @@ services: - ../../:/var/www/html - ./well-known-security.txt:/well-known-security.txt - ember-nexus-neo4j: - container_name: ember-nexus-neo4j + neo4j: + container_name: neo4j image: neo4j:5.20 expose: - "7474" @@ -27,8 +27,8 @@ services: environment: - NEO4J_AUTH=neo4j/password - ember-nexus-mongodb: - container_name: ember-nexus-mongodb + mongodb: + container_name: mongodb image: mongo:7 expose: - "27017" @@ -36,8 +36,8 @@ services: - MONGO_INITDB_ROOT_USERNAME=mongodb - MONGO_INITDB_ROOT_PASSWORD=password - ember-nexus-elasticsearch: - container_name: ember-nexus-elasticsearch + elasticsearch: + container_name: elasticsearch image: elasticsearch:8.8.1 expose: - "9200" @@ -46,15 +46,15 @@ services: - xpack.security.enabled=false - xpack.security.enrollment.enabled=true - ember-nexus-redis: - container_name: ember-nexus-redis + redis: + container_name: redis image: redis:7-alpine expose: - "6379" command: redis-server --save 20 1 --loglevel warning --requirepass redis-password - ember-nexus-rabbitmq: - container_name: ember-nexus-rabbitmq + rabbitmq: + container_name: rabbitmq image: rabbitmq:3-management expose: - "5672" diff --git a/tests/FeatureTests/docker-compose-neo4j-5.7.yml b/tests/FeatureTests/docker-compose-neo4j-5.7.yml index 396a6d6b..c8d66ba6 100644 --- a/tests/FeatureTests/docker-compose-neo4j-5.7.yml +++ b/tests/FeatureTests/docker-compose-neo4j-5.7.yml @@ -1,7 +1,7 @@ services: - ember-nexus-api-dev: - container_name: ember-nexus-api-dev + api-dev: + container_name: api-dev image: api:dev-amd expose: - "80" @@ -9,8 +9,8 @@ services: - ../../:/var/www/html - ./well-known-security.txt:/well-known-security.txt - ember-nexus-api-prod: - container_name: ember-nexus-api-prod + api-prod: + container_name: api-prod image: api:prod-amd expose: - "80" @@ -18,8 +18,8 @@ services: - ../../:/var/www/html - ./well-known-security.txt:/well-known-security.txt - ember-nexus-neo4j: - container_name: ember-nexus-neo4j + neo4j: + container_name: neo4j image: neo4j:5.7 expose: - "7474" @@ -27,8 +27,8 @@ services: environment: - NEO4J_AUTH=neo4j/password - ember-nexus-mongodb: - container_name: ember-nexus-mongodb + mongodb: + container_name: mongodb image: mongo:7 expose: - "27017" @@ -36,8 +36,8 @@ services: - MONGO_INITDB_ROOT_USERNAME=mongodb - MONGO_INITDB_ROOT_PASSWORD=password - ember-nexus-elasticsearch: - container_name: ember-nexus-elasticsearch + elasticsearch: + container_name: elasticsearch image: elasticsearch:8.8.1 expose: - "9200" @@ -46,15 +46,15 @@ services: - xpack.security.enabled=false - xpack.security.enrollment.enabled=true - ember-nexus-redis: - container_name: ember-nexus-redis + redis: + container_name: redis image: redis:7-alpine expose: - "6379" command: redis-server --save 20 1 --loglevel warning --requirepass redis-password - ember-nexus-rabbitmq: - container_name: ember-nexus-rabbitmq + rabbitmq: + container_name: rabbitmq image: rabbitmq:3-management expose: - "5672" diff --git a/tests/FeatureTests/docker-compose-neo4j-latest.yml b/tests/FeatureTests/docker-compose-neo4j-latest.yml index 5db7796f..2403c300 100644 --- a/tests/FeatureTests/docker-compose-neo4j-latest.yml +++ b/tests/FeatureTests/docker-compose-neo4j-latest.yml @@ -1,7 +1,7 @@ services: - ember-nexus-api-dev: - container_name: ember-nexus-api-dev + api-dev: + container_name: api-dev image: api:dev-amd expose: - "80" @@ -9,8 +9,8 @@ services: - ../../:/var/www/html - ./well-known-security.txt:/well-known-security.txt - ember-nexus-api-prod: - container_name: ember-nexus-api-prod + api-prod: + container_name: api-prod image: api:prod-amd expose: - "80" @@ -18,8 +18,8 @@ services: - ../../:/var/www/html - ./well-known-security.txt:/well-known-security.txt - ember-nexus-neo4j: - container_name: ember-nexus-neo4j + neo4j: + container_name: neo4j image: neo4j:latest expose: - "7474" @@ -27,8 +27,8 @@ services: environment: - NEO4J_AUTH=neo4j/password - ember-nexus-mongodb: - container_name: ember-nexus-mongodb + mongodb: + container_name: mongodb image: mongo:8 expose: - "27017" @@ -36,8 +36,8 @@ services: - MONGO_INITDB_ROOT_USERNAME=mongodb - MONGO_INITDB_ROOT_PASSWORD=password - ember-nexus-elasticsearch: - container_name: ember-nexus-elasticsearch + elasticsearch: + container_name: elasticsearch image: elasticsearch:8.17.2 expose: - "9200" @@ -46,15 +46,15 @@ services: - xpack.security.enabled=false - xpack.security.enrollment.enabled=true - ember-nexus-redis: - container_name: ember-nexus-redis + redis: + container_name: redis image: redis:7-alpine expose: - "6379" command: redis-server --save 20 1 --loglevel warning --requirepass redis-password - ember-nexus-rabbitmq: - container_name: ember-nexus-rabbitmq + rabbitmq: + container_name: rabbitmq image: rabbitmq:3-management expose: - "5672" From 862c52895a6b22dde7e67a3b9db100412f39f453 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Klein?= Date: Sat, 21 Mar 2026 23:38:41 +0100 Subject: [PATCH 3/4] fix ci --- .../docker-compose.yml | 24 ++++++++-------- .../docker-compose.yml | 28 +++++++++---------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/tests/ExampleGenerationCommand/docker-compose.yml b/tests/ExampleGenerationCommand/docker-compose.yml index 5552e327..1750be69 100644 --- a/tests/ExampleGenerationCommand/docker-compose.yml +++ b/tests/ExampleGenerationCommand/docker-compose.yml @@ -1,7 +1,7 @@ services: - ember-nexus-api: - container_name: ember-nexus-api + api: + container_name: api image: api:dev-amd expose: - "80" @@ -9,8 +9,8 @@ services: - ../../:/var/www/html - ./well-known-security.txt:/well-known-security.txt - ember-nexus-neo4j: - container_name: ember-nexus-neo4j + neo4j: + container_name: neo4j image: neo4j:5.11 expose: - "7474" @@ -18,8 +18,8 @@ services: environment: - NEO4J_AUTH=neo4j/password - ember-nexus-mongodb: - container_name: ember-nexus-mongodb + mongodb: + container_name: mongodb image: mongo:7 expose: - "27017" @@ -27,8 +27,8 @@ services: - MONGO_INITDB_ROOT_USERNAME=mongodb - MONGO_INITDB_ROOT_PASSWORD=password - ember-nexus-elasticsearch: - container_name: ember-nexus-elasticsearch + elasticsearch: + container_name: elasticsearch image: elasticsearch:8.8.1 expose: - "9200" @@ -37,15 +37,15 @@ services: - xpack.security.enabled=false - xpack.security.enrollment.enabled=true - ember-nexus-redis: - container_name: ember-nexus-redis + redis: + container_name: redis image: redis:7-alpine expose: - "6379" command: redis-server --save 20 1 --loglevel warning --requirepass redis-password - ember-nexus-rabbitmq: - container_name: ember-nexus-rabbitmq + rabbitmq: + container_name: rabbitmq image: rabbitmq:3-management expose: - "5672" diff --git a/tests/ExampleGenerationController/docker-compose.yml b/tests/ExampleGenerationController/docker-compose.yml index c0c1730f..7164d784 100644 --- a/tests/ExampleGenerationController/docker-compose.yml +++ b/tests/ExampleGenerationController/docker-compose.yml @@ -1,7 +1,7 @@ services: - ember-nexus-api-dev: - container_name: ember-nexus-api-dev + api-dev: + container_name: api-dev image: api:dev-amd expose: - "80" @@ -9,8 +9,8 @@ services: - ../../:/var/www/html - ./well-known-security.txt:/well-known-security.txt - ember-nexus-api: - container_name: ember-nexus-api + api: + container_name: api image: api:prod-amd expose: - "80" @@ -18,8 +18,8 @@ services: - ../../:/var/www/html - ./well-known-security.txt:/well-known-security.txt - ember-nexus-neo4j: - container_name: ember-nexus-neo4j + neo4j: + container_name: neo4j image: neo4j:5.11 expose: - "7474" @@ -27,8 +27,8 @@ services: environment: - NEO4J_AUTH=neo4j/password - ember-nexus-mongodb: - container_name: ember-nexus-mongodb + mongodb: + container_name: mongodb image: mongo:7 expose: - "27017" @@ -36,8 +36,8 @@ services: - MONGO_INITDB_ROOT_USERNAME=mongodb - MONGO_INITDB_ROOT_PASSWORD=password - ember-nexus-elasticsearch: - container_name: ember-nexus-elasticsearch + elasticsearch: + container_name: elasticsearch image: elasticsearch:8.8.1 expose: - "9200" @@ -46,15 +46,15 @@ services: - xpack.security.enabled=false - xpack.security.enrollment.enabled=true - ember-nexus-redis: - container_name: ember-nexus-redis + redis: + container_name: redis image: redis:7-alpine expose: - "6379" command: redis-server --save 20 1 --loglevel warning --requirepass redis-password - ember-nexus-rabbitmq: - container_name: ember-nexus-rabbitmq + rabbitmq: + container_name: rabbitmq image: rabbitmq:3-management expose: - "5672" From 723585364263f6f5a4991ee2126d1cc31525b375 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B6ren=20Klein?= Date: Tue, 31 Mar 2026 19:24:06 +0200 Subject: [PATCH 4/4] fix api endpoint name in documentation --- .../api-endpoints/element/delete-element/401-response-body.json | 2 +- .../api-endpoints/element/delete-element/404-response-body.json | 2 +- .../api-endpoints/element/delete-element/412-response-body.json | 2 +- docs/api-endpoints/element/get-children/401-response-body.json | 2 +- docs/api-endpoints/element/get-children/404-response-body.json | 2 +- docs/api-endpoints/element/get-children/412-response-body.json | 2 +- docs/api-endpoints/element/get-element/401-response-body.json | 2 +- docs/api-endpoints/element/get-element/404-response-body.json | 2 +- docs/api-endpoints/element/get-element/412-response-body.json | 2 +- docs/api-endpoints/element/get-index/401-response-body.json | 2 +- docs/api-endpoints/element/get-index/412-response-body.json | 2 +- docs/api-endpoints/element/get-parents/401-response-body.json | 2 +- docs/api-endpoints/element/get-parents/404-response-body.json | 2 +- docs/api-endpoints/element/get-parents/412-response-body.json | 2 +- docs/api-endpoints/element/get-related/401-response-body.json | 2 +- docs/api-endpoints/element/get-related/404-response-body.json | 2 +- docs/api-endpoints/element/get-related/412-response-body.json | 2 +- docs/api-endpoints/element/patch-element/401-response-body.json | 2 +- docs/api-endpoints/element/patch-element/404-response-body.json | 2 +- docs/api-endpoints/element/patch-element/412-response-body.json | 2 +- docs/api-endpoints/element/post-element/400-response-body.json | 2 +- docs/api-endpoints/element/post-element/401-response-body.json | 2 +- docs/api-endpoints/element/post-index/400-response-body.json | 2 +- docs/api-endpoints/element/post-index/401-response-body.json | 2 +- docs/api-endpoints/element/post-index/404-response-body.json | 2 +- docs/api-endpoints/element/put-element/401-response-body.json | 2 +- docs/api-endpoints/element/put-element/404-response-body.json | 2 +- docs/api-endpoints/element/put-element/412-response-body.json | 2 +- .../system/get-graph-structure/403-response-body.json | 2 +- .../system/get-instance-configuration/403-response-body.json | 2 +- docs/api-endpoints/user/delete-token/401-response-body.json | 2 +- docs/api-endpoints/user/get-me/401-response-body.json | 2 +- docs/api-endpoints/user/get-token/401-response-body.json | 2 +- docs/api-endpoints/user/get-token/403-response-body.json | 2 +- .../user/post-change-password-old/400-response-body.json | 2 +- .../user/post-change-password-old/401-response-body.json | 2 +- .../user/post-change-password-old/403-response-body.json | 2 +- .../user/post-change-password/400-response-body.json | 2 +- .../user/post-change-password/401-response-body.json | 2 +- .../user/post-change-password/403-response-body.json | 2 +- .../api-endpoints/user/post-register-old/400-response-body.json | 2 +- .../api-endpoints/user/post-register-old/403-response-body.json | 2 +- docs/api-endpoints/user/post-register/400-response-body.json | 2 +- docs/api-endpoints/user/post-register/403-response-body.json | 2 +- docs/api-endpoints/user/post-token-old/400-response-body.json | 2 +- docs/api-endpoints/user/post-token-old/401-response-body.json | 2 +- docs/api-endpoints/user/post-token/400-response-body.json | 2 +- docs/api-endpoints/user/post-token/401-response-body.json | 2 +- 48 files changed, 48 insertions(+), 48 deletions(-) diff --git a/docs/api-endpoints/element/delete-element/401-response-body.json b/docs/api-endpoints/element/delete-element/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/element/delete-element/401-response-body.json +++ b/docs/api-endpoints/element/delete-element/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/element/delete-element/404-response-body.json b/docs/api-endpoints/element/delete-element/404-response-body.json index 421bad76..d2abaadb 100644 --- a/docs/api-endpoints/element/delete-element/404-response-body.json +++ b/docs/api-endpoints/element/delete-element/404-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/404/not-found", + "type": "http://api/error/404/not-found", "title": "Not found", "status": 404, "detail": "Requested element was not found." diff --git a/docs/api-endpoints/element/delete-element/412-response-body.json b/docs/api-endpoints/element/delete-element/412-response-body.json index 34b89b52..4c3d4ecf 100644 --- a/docs/api-endpoints/element/delete-element/412-response-body.json +++ b/docs/api-endpoints/element/delete-element/412-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/412/precondition-failed", + "type": "http://api/error/412/precondition-failed", "title": "Precondition Failed", "status": 412, "detail": "Precondition does not match." diff --git a/docs/api-endpoints/element/get-children/401-response-body.json b/docs/api-endpoints/element/get-children/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/element/get-children/401-response-body.json +++ b/docs/api-endpoints/element/get-children/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/element/get-children/404-response-body.json b/docs/api-endpoints/element/get-children/404-response-body.json index 421bad76..d2abaadb 100644 --- a/docs/api-endpoints/element/get-children/404-response-body.json +++ b/docs/api-endpoints/element/get-children/404-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/404/not-found", + "type": "http://api/error/404/not-found", "title": "Not found", "status": 404, "detail": "Requested element was not found." diff --git a/docs/api-endpoints/element/get-children/412-response-body.json b/docs/api-endpoints/element/get-children/412-response-body.json index 34b89b52..4c3d4ecf 100644 --- a/docs/api-endpoints/element/get-children/412-response-body.json +++ b/docs/api-endpoints/element/get-children/412-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/412/precondition-failed", + "type": "http://api/error/412/precondition-failed", "title": "Precondition Failed", "status": 412, "detail": "Precondition does not match." diff --git a/docs/api-endpoints/element/get-element/401-response-body.json b/docs/api-endpoints/element/get-element/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/element/get-element/401-response-body.json +++ b/docs/api-endpoints/element/get-element/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/element/get-element/404-response-body.json b/docs/api-endpoints/element/get-element/404-response-body.json index 421bad76..d2abaadb 100644 --- a/docs/api-endpoints/element/get-element/404-response-body.json +++ b/docs/api-endpoints/element/get-element/404-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/404/not-found", + "type": "http://api/error/404/not-found", "title": "Not found", "status": 404, "detail": "Requested element was not found." diff --git a/docs/api-endpoints/element/get-element/412-response-body.json b/docs/api-endpoints/element/get-element/412-response-body.json index 34b89b52..4c3d4ecf 100644 --- a/docs/api-endpoints/element/get-element/412-response-body.json +++ b/docs/api-endpoints/element/get-element/412-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/412/precondition-failed", + "type": "http://api/error/412/precondition-failed", "title": "Precondition Failed", "status": 412, "detail": "Precondition does not match." diff --git a/docs/api-endpoints/element/get-index/401-response-body.json b/docs/api-endpoints/element/get-index/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/element/get-index/401-response-body.json +++ b/docs/api-endpoints/element/get-index/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/element/get-index/412-response-body.json b/docs/api-endpoints/element/get-index/412-response-body.json index 34b89b52..4c3d4ecf 100644 --- a/docs/api-endpoints/element/get-index/412-response-body.json +++ b/docs/api-endpoints/element/get-index/412-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/412/precondition-failed", + "type": "http://api/error/412/precondition-failed", "title": "Precondition Failed", "status": 412, "detail": "Precondition does not match." diff --git a/docs/api-endpoints/element/get-parents/401-response-body.json b/docs/api-endpoints/element/get-parents/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/element/get-parents/401-response-body.json +++ b/docs/api-endpoints/element/get-parents/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/element/get-parents/404-response-body.json b/docs/api-endpoints/element/get-parents/404-response-body.json index 421bad76..d2abaadb 100644 --- a/docs/api-endpoints/element/get-parents/404-response-body.json +++ b/docs/api-endpoints/element/get-parents/404-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/404/not-found", + "type": "http://api/error/404/not-found", "title": "Not found", "status": 404, "detail": "Requested element was not found." diff --git a/docs/api-endpoints/element/get-parents/412-response-body.json b/docs/api-endpoints/element/get-parents/412-response-body.json index 34b89b52..4c3d4ecf 100644 --- a/docs/api-endpoints/element/get-parents/412-response-body.json +++ b/docs/api-endpoints/element/get-parents/412-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/412/precondition-failed", + "type": "http://api/error/412/precondition-failed", "title": "Precondition Failed", "status": 412, "detail": "Precondition does not match." diff --git a/docs/api-endpoints/element/get-related/401-response-body.json b/docs/api-endpoints/element/get-related/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/element/get-related/401-response-body.json +++ b/docs/api-endpoints/element/get-related/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/element/get-related/404-response-body.json b/docs/api-endpoints/element/get-related/404-response-body.json index 421bad76..d2abaadb 100644 --- a/docs/api-endpoints/element/get-related/404-response-body.json +++ b/docs/api-endpoints/element/get-related/404-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/404/not-found", + "type": "http://api/error/404/not-found", "title": "Not found", "status": 404, "detail": "Requested element was not found." diff --git a/docs/api-endpoints/element/get-related/412-response-body.json b/docs/api-endpoints/element/get-related/412-response-body.json index 34b89b52..4c3d4ecf 100644 --- a/docs/api-endpoints/element/get-related/412-response-body.json +++ b/docs/api-endpoints/element/get-related/412-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/412/precondition-failed", + "type": "http://api/error/412/precondition-failed", "title": "Precondition Failed", "status": 412, "detail": "Precondition does not match." diff --git a/docs/api-endpoints/element/patch-element/401-response-body.json b/docs/api-endpoints/element/patch-element/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/element/patch-element/401-response-body.json +++ b/docs/api-endpoints/element/patch-element/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/element/patch-element/404-response-body.json b/docs/api-endpoints/element/patch-element/404-response-body.json index 421bad76..d2abaadb 100644 --- a/docs/api-endpoints/element/patch-element/404-response-body.json +++ b/docs/api-endpoints/element/patch-element/404-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/404/not-found", + "type": "http://api/error/404/not-found", "title": "Not found", "status": 404, "detail": "Requested element was not found." diff --git a/docs/api-endpoints/element/patch-element/412-response-body.json b/docs/api-endpoints/element/patch-element/412-response-body.json index 34b89b52..4c3d4ecf 100644 --- a/docs/api-endpoints/element/patch-element/412-response-body.json +++ b/docs/api-endpoints/element/patch-element/412-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/412/precondition-failed", + "type": "http://api/error/412/precondition-failed", "title": "Precondition Failed", "status": 412, "detail": "Precondition does not match." diff --git a/docs/api-endpoints/element/post-element/400-response-body.json b/docs/api-endpoints/element/post-element/400-response-body.json index 6d1d439e..e55923cb 100644 --- a/docs/api-endpoints/element/post-element/400-response-body.json +++ b/docs/api-endpoints/element/post-element/400-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/400/missing-property", + "type": "http://api/error/400/missing-property", "title": "Missing property", "status": 400, "detail": "Endpoint requires that the request contains property 'type' to be set to a valid type." diff --git a/docs/api-endpoints/element/post-element/401-response-body.json b/docs/api-endpoints/element/post-element/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/element/post-element/401-response-body.json +++ b/docs/api-endpoints/element/post-element/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/element/post-index/400-response-body.json b/docs/api-endpoints/element/post-index/400-response-body.json index 6d1d439e..e55923cb 100644 --- a/docs/api-endpoints/element/post-index/400-response-body.json +++ b/docs/api-endpoints/element/post-index/400-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/400/missing-property", + "type": "http://api/error/400/missing-property", "title": "Missing property", "status": 400, "detail": "Endpoint requires that the request contains property 'type' to be set to a valid type." diff --git a/docs/api-endpoints/element/post-index/401-response-body.json b/docs/api-endpoints/element/post-index/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/element/post-index/401-response-body.json +++ b/docs/api-endpoints/element/post-index/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/element/post-index/404-response-body.json b/docs/api-endpoints/element/post-index/404-response-body.json index 421bad76..d2abaadb 100644 --- a/docs/api-endpoints/element/post-index/404-response-body.json +++ b/docs/api-endpoints/element/post-index/404-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/404/not-found", + "type": "http://api/error/404/not-found", "title": "Not found", "status": 404, "detail": "Requested element was not found." diff --git a/docs/api-endpoints/element/put-element/401-response-body.json b/docs/api-endpoints/element/put-element/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/element/put-element/401-response-body.json +++ b/docs/api-endpoints/element/put-element/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/element/put-element/404-response-body.json b/docs/api-endpoints/element/put-element/404-response-body.json index 421bad76..d2abaadb 100644 --- a/docs/api-endpoints/element/put-element/404-response-body.json +++ b/docs/api-endpoints/element/put-element/404-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/404/not-found", + "type": "http://api/error/404/not-found", "title": "Not found", "status": 404, "detail": "Requested element was not found." diff --git a/docs/api-endpoints/element/put-element/412-response-body.json b/docs/api-endpoints/element/put-element/412-response-body.json index 34b89b52..4c3d4ecf 100644 --- a/docs/api-endpoints/element/put-element/412-response-body.json +++ b/docs/api-endpoints/element/put-element/412-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/412/precondition-failed", + "type": "http://api/error/412/precondition-failed", "title": "Precondition Failed", "status": 412, "detail": "Precondition does not match." diff --git a/docs/api-endpoints/system/get-graph-structure/403-response-body.json b/docs/api-endpoints/system/get-graph-structure/403-response-body.json index 7e8a60e1..ab91d2ac 100644 --- a/docs/api-endpoints/system/get-graph-structure/403-response-body.json +++ b/docs/api-endpoints/system/get-graph-structure/403-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/403/forbidden", + "type": "http://api/error/403/forbidden", "title": "Forbidden", "status": 403, "detail": "Requested endpoint, element or action is forbidden." diff --git a/docs/api-endpoints/system/get-instance-configuration/403-response-body.json b/docs/api-endpoints/system/get-instance-configuration/403-response-body.json index 7e8a60e1..ab91d2ac 100644 --- a/docs/api-endpoints/system/get-instance-configuration/403-response-body.json +++ b/docs/api-endpoints/system/get-instance-configuration/403-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/403/forbidden", + "type": "http://api/error/403/forbidden", "title": "Forbidden", "status": 403, "detail": "Requested endpoint, element or action is forbidden." diff --git a/docs/api-endpoints/user/delete-token/401-response-body.json b/docs/api-endpoints/user/delete-token/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/user/delete-token/401-response-body.json +++ b/docs/api-endpoints/user/delete-token/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/user/get-me/401-response-body.json b/docs/api-endpoints/user/get-me/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/user/get-me/401-response-body.json +++ b/docs/api-endpoints/user/get-me/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/user/get-token/401-response-body.json b/docs/api-endpoints/user/get-token/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/user/get-token/401-response-body.json +++ b/docs/api-endpoints/user/get-token/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/user/get-token/403-response-body.json b/docs/api-endpoints/user/get-token/403-response-body.json index 7e8a60e1..ab91d2ac 100644 --- a/docs/api-endpoints/user/get-token/403-response-body.json +++ b/docs/api-endpoints/user/get-token/403-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/403/forbidden", + "type": "http://api/error/403/forbidden", "title": "Forbidden", "status": 403, "detail": "Requested endpoint, element or action is forbidden." diff --git a/docs/api-endpoints/user/post-change-password-old/400-response-body.json b/docs/api-endpoints/user/post-change-password-old/400-response-body.json index f9716d0a..381871a3 100644 --- a/docs/api-endpoints/user/post-change-password-old/400-response-body.json +++ b/docs/api-endpoints/user/post-change-password-old/400-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/400/bad-content", + "type": "http://api/error/400/bad-content", "title": "Bad content", "status": 400, "detail": "Endpoint expects property 'type' to be ActionChangePassword, got 'NotActionChangePassword'." diff --git a/docs/api-endpoints/user/post-change-password-old/401-response-body.json b/docs/api-endpoints/user/post-change-password-old/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/user/post-change-password-old/401-response-body.json +++ b/docs/api-endpoints/user/post-change-password-old/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/user/post-change-password-old/403-response-body.json b/docs/api-endpoints/user/post-change-password-old/403-response-body.json index 7e8a60e1..ab91d2ac 100644 --- a/docs/api-endpoints/user/post-change-password-old/403-response-body.json +++ b/docs/api-endpoints/user/post-change-password-old/403-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/403/forbidden", + "type": "http://api/error/403/forbidden", "title": "Forbidden", "status": 403, "detail": "Requested endpoint, element or action is forbidden." diff --git a/docs/api-endpoints/user/post-change-password/400-response-body.json b/docs/api-endpoints/user/post-change-password/400-response-body.json index bfe842f3..d65e40af 100644 --- a/docs/api-endpoints/user/post-change-password/400-response-body.json +++ b/docs/api-endpoints/user/post-change-password/400-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/400/bad-content", + "type": "http://api/error/400/bad-content", "title": "Bad content", "status": 400, "detail": "Endpoint expects property 'type' to be ActionChangePassword, got string 'NotActionChangePassword'." diff --git a/docs/api-endpoints/user/post-change-password/401-response-body.json b/docs/api-endpoints/user/post-change-password/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/user/post-change-password/401-response-body.json +++ b/docs/api-endpoints/user/post-change-password/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/user/post-change-password/403-response-body.json b/docs/api-endpoints/user/post-change-password/403-response-body.json index 7e8a60e1..ab91d2ac 100644 --- a/docs/api-endpoints/user/post-change-password/403-response-body.json +++ b/docs/api-endpoints/user/post-change-password/403-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/403/forbidden", + "type": "http://api/error/403/forbidden", "title": "Forbidden", "status": 403, "detail": "Requested endpoint, element or action is forbidden." diff --git a/docs/api-endpoints/user/post-register-old/400-response-body.json b/docs/api-endpoints/user/post-register-old/400-response-body.json index 0efff269..ae00c917 100644 --- a/docs/api-endpoints/user/post-register-old/400-response-body.json +++ b/docs/api-endpoints/user/post-register-old/400-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/400/bad-content", + "type": "http://api/error/400/bad-content", "title": "Bad content", "status": 400, "detail": "Endpoint expects property 'type' to be User, got 'NotAUser'." diff --git a/docs/api-endpoints/user/post-register-old/403-response-body.json b/docs/api-endpoints/user/post-register-old/403-response-body.json index 7e8a60e1..ab91d2ac 100644 --- a/docs/api-endpoints/user/post-register-old/403-response-body.json +++ b/docs/api-endpoints/user/post-register-old/403-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/403/forbidden", + "type": "http://api/error/403/forbidden", "title": "Forbidden", "status": 403, "detail": "Requested endpoint, element or action is forbidden." diff --git a/docs/api-endpoints/user/post-register/400-response-body.json b/docs/api-endpoints/user/post-register/400-response-body.json index fc90af78..f4c0a215 100644 --- a/docs/api-endpoints/user/post-register/400-response-body.json +++ b/docs/api-endpoints/user/post-register/400-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/400/bad-content", + "type": "http://api/error/400/bad-content", "title": "Bad content", "status": 400, "detail": "Endpoint expects property 'type' to be User, got string 'NotAUser'." diff --git a/docs/api-endpoints/user/post-register/403-response-body.json b/docs/api-endpoints/user/post-register/403-response-body.json index 7e8a60e1..ab91d2ac 100644 --- a/docs/api-endpoints/user/post-register/403-response-body.json +++ b/docs/api-endpoints/user/post-register/403-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/403/forbidden", + "type": "http://api/error/403/forbidden", "title": "Forbidden", "status": 403, "detail": "Requested endpoint, element or action is forbidden." diff --git a/docs/api-endpoints/user/post-token-old/400-response-body.json b/docs/api-endpoints/user/post-token-old/400-response-body.json index a80ccec8..a59d70e2 100644 --- a/docs/api-endpoints/user/post-token-old/400-response-body.json +++ b/docs/api-endpoints/user/post-token-old/400-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/400/missing-property", + "type": "http://api/error/400/missing-property", "title": "Missing property", "status": 400, "detail": "Endpoint requires that the request contains property 'password' to be set to string." diff --git a/docs/api-endpoints/user/post-token-old/401-response-body.json b/docs/api-endpoints/user/post-token-old/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/user/post-token-old/401-response-body.json +++ b/docs/api-endpoints/user/post-token-old/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)." diff --git a/docs/api-endpoints/user/post-token/400-response-body.json b/docs/api-endpoints/user/post-token/400-response-body.json index a80ccec8..a59d70e2 100644 --- a/docs/api-endpoints/user/post-token/400-response-body.json +++ b/docs/api-endpoints/user/post-token/400-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/400/missing-property", + "type": "http://api/error/400/missing-property", "title": "Missing property", "status": 400, "detail": "Endpoint requires that the request contains property 'password' to be set to string." diff --git a/docs/api-endpoints/user/post-token/401-response-body.json b/docs/api-endpoints/user/post-token/401-response-body.json index 6f9e2f20..f91c5190 100644 --- a/docs/api-endpoints/user/post-token/401-response-body.json +++ b/docs/api-endpoints/user/post-token/401-response-body.json @@ -1,5 +1,5 @@ { - "type": "http://ember-nexus-api/error/401/unauthorized", + "type": "http://api/error/401/unauthorized", "title": "Unauthorized", "status": 401, "detail": "Authorization for the request failed due to possible problems with the token (incorrect or expired), password (incorrect or changed), the user's unique identifier, or the user's status (e.g., missing, blocked, or deleted)."