diff --git a/.agents/setup b/.agents/setup
new file mode 100755
index 00000000..c3cd2fef
--- /dev/null
+++ b/.agents/setup
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+# Prepares an Amp orb: PHP 8.5, Composer, and PHP dependencies. The workbench
+# (Craft on SQLite) builds itself when its service starts; see .amp/services.yaml.
+set -euo pipefail
+
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+export COMPOSER_NO_INTERACTION=1 COMPOSER_ALLOW_SUPERUSER=1
+
+scratch=$(mktemp -d)
+trap 'rm -rf -- "$scratch"' EXIT
+
+# Debian's PHP is too old for Craft 6, so use the Sury packages.
+if [[ ! -f /usr/share/keyrings/debsuryorg-archive-keyring.gpg ]]; then
+ curl -fsSL https://packages.sury.org/debsuryorg-archive-keyring.deb -o "$scratch/sury.deb"
+ sudo dpkg -i "$scratch/sury.deb"
+fi
+if [[ ! -f /etc/apt/sources.list.d/php.list ]]; then
+ . /etc/os-release
+ echo "deb [signed-by=/usr/share/keyrings/debsuryorg-archive-keyring.gpg] https://packages.sury.org/php/ $VERSION_CODENAME main" |
+ sudo tee /etc/apt/sources.list.d/php.list >/dev/null
+fi
+
+# The extensions CI installs, plus what Craft needs to serve the workbench.
+packages=(php8.5-cli php8.5-bcmath php8.5-curl php8.5-gd php8.5-intl php8.5-mbstring
+ php8.5-sqlite3 php8.5-xml php8.5-zip unzip)
+missing=()
+for package in "${packages[@]}"; do
+ if [[ $(dpkg-query -W -f='${Status}' "$package" 2>/dev/null || true) != 'install ok installed' ]]; then
+ missing+=("$package")
+ fi
+done
+if ((${#missing[@]})); then
+ sudo apt-get update -qq
+ sudo env DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends "${missing[@]}"
+fi
+sudo update-alternatives --set php /usr/bin/php8.5
+
+if ! command -v composer >/dev/null; then
+ curl -fsSL https://getcomposer.org/installer -o "$scratch/composer-setup.php"
+ expected=$(curl -fsSL https://composer.github.io/installer.sig)
+ actual=$(php -r 'echo hash_file("sha384", $argv[1]);' "$scratch/composer-setup.php")
+ [[ $actual == "$expected" ]] || { echo 'Composer installer checksum mismatch' >&2; exit 1; }
+ php "$scratch/composer-setup.php" --2 --install-dir="$scratch" --filename=composer
+ sudo install -m 755 "$scratch/composer" /usr/local/bin/composer
+fi
+
+composer install --prefer-dist --no-progress
diff --git a/.amp/services.yaml b/.amp/services.yaml
new file mode 100644
index 00000000..49ad7e9b
--- /dev/null
+++ b/.amp/services.yaml
@@ -0,0 +1,8 @@
+services:
+ workbench:
+ command: >-
+ composer build --no-interaction &&
+ APP_URL="$PUBLIC_URL" exec php vendor/bin/testbench serve --host=127.0.0.1 --port="$PORT" --no-reload --no-interaction
+ portal:
+ title: Craft Cloud workbench
+ description: Craft 6 with craftcms/cloud. Sign in as admin / password.
diff --git a/.gitattributes b/.gitattributes
index 78bdd415..c958a289 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -3,9 +3,15 @@
/.gitattributes export-ignore
/.gitignore export-ignore
+/.release-it.json export-ignore
/composer.lock export-ignore
/mago.toml export-ignore
/package-lock.json export-ignore
/package.json export-ignore
/phpunit.xml.dist export-ignore
/tests/ export-ignore
+/.agents/ export-ignore
+/.amp/ export-ignore
+/AGENTS.md export-ignore
+/testbench.yaml export-ignore
+/workbench/ export-ignore
diff --git a/.release-it.json b/.release-it.json
new file mode 100644
index 00000000..5fe6925b
--- /dev/null
+++ b/.release-it.json
@@ -0,0 +1,14 @@
+{
+ "npm": false,
+ "git": {
+ "commit": false,
+ "tag": false,
+ "push": false,
+ "requireBranch": ["5.x"]
+ },
+ "github": {
+ "release": true,
+ "autoGenerate": true,
+ "draft": true
+ }
+}
diff --git a/.releaserc.yaml b/.releaserc.yaml
deleted file mode 100644
index 2f51b28b..00000000
--- a/.releaserc.yaml
+++ /dev/null
@@ -1,8 +0,0 @@
-branches:
- - '5.x'
-tagFormat: '${version}'
-plugins:
- - '@semantic-release/commit-analyzer'
- - '@semantic-release/release-notes-generator'
- - '@semantic-release/changelog'
- - '@semantic-release/github'
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 00000000..76566d08
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,22 @@
+# craftcms/cloud
+
+Laravel package that runs Craft CMS 6 on Craft Cloud. Namespace `CraftCms\Cloud`, PHP 8.5.
+
+## Commands
+
+- `composer test`: Pest, with Orchestra Testbench booting Craft's and Cloud's providers (`tests/TestCase.php`).
+- `composer lint` / `composer fix`: Mago. CI runs `composer validate --strict`, lint, and tests.
+- `composer serve`: builds and serves the workbench on `127.0.0.1:8000`.
+
+## Workbench
+
+`testbench.yaml` plus `workbench/` make a Craft 6 site with this package installed, on SQLite, in Testbench's skeleton under `vendor/orchestra/testbench-core/laravel`. `composer build` creates the database and runs `craft:install` (admin / password); it's a no-op once Craft is installed.
+
+In an orb, run `amp orb services ensure` to start it behind a portal. `composer install` and `composer dump-autoload` purge the skeleton, including the database, so run `amp orb service restart workbench` afterwards.
+
+Craft Cloud is detected from `CRAFT_CLOUD` or `AWS_LAMBDA_RUNTIME_API`, so the workbench runs the off-Cloud code paths.
+
+## Constraints
+
+- `src/bref/handlers/*.php` are Lambda handler paths referenced by Cloud's infrastructure. Don't move or rename them.
+- Read `CRAFT_CLOUD_*` variables through `CraftCms\Cloud\Cloud::env()`.
diff --git a/README.md b/README.md
index 42b64b18..5a039344 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,40 @@
-# Craft Cloud Package
+# Craft Cloud
-Run Craft CMS on Craft Cloud.
+Runs Craft CMS 6 on [Craft Cloud](https://craftcms.com/cloud).
+
+```bash
+composer require craftcms/cloud
+```
+
+Laravel discovers `CraftCms\Cloud\CloudServiceProvider` automatically. Outside Craft Cloud it changes nothing, so the same project runs locally as usual.
+
+## What it configures on Craft Cloud
+
+Craft Cloud is detected from `CRAFT_CLOUD` or `AWS_LAMBDA_RUNTIME_API`. When either is set, the provider:
+
+- **Queue:** uses the environment's SQS queue (`CRAFT_CLOUD_SQS_URL`) as the default connection, dispatching after commit.
+- **Cache:** uses Laravel's `failover` store: Valkey (`CRAFT_CLOUD_REDIS_URL`, with 1-second timeouts), then the database, then memory. Valkey needs the `redis` PHP extension, which Craft Cloud's PHP configuration enables.
+- **Logging:** sends the default channel to stderr, which is all Lambda collects.
+- **Sessions:** replaces `file` or `cookie` sessions with `database` sessions. Other drivers are left alone.
+
+## Lambda handlers
+
+The Cloud platform runs these files as Lambda handlers, so their paths must not change:
+
+- `src/bref/handlers/job-sqs-cmd.php` runs queued jobs in-process with bref/laravel-bridge.
+- `src/bref/handlers/command-sqs-cmd.php` runs Craft console commands sent by the platform and posts their output back.
+
+## Development
+
+```bash
+composer install
+composer test # Pest, with Orchestra Testbench booting Craft
+composer lint # Mago
+composer fix
+```
+
+Releases are tagged by hand with [release-it](https://github.com/release-it/release-it), which drafts a GitHub release:
+
+```bash
+npx release-it 5.0.0-beta.1
+```
diff --git a/composer.json b/composer.json
index be6f1aa3..c1110849 100644
--- a/composer.json
+++ b/composer.json
@@ -5,16 +5,16 @@
"license": "proprietary",
"type": "library",
"require": {
- "ext-curl": "*",
"bref/bref": "^3",
- "bref/extra-php-extensions": "^3",
- "bref/laravel-bridge": "^3.0",
- "craftcms/cms": "^6",
- "symfony/process": "^7.4.5 || ^8.0.5"
+ "bref/laravel-bridge": "^3.1.7",
+ "craftcms/cms": "^6.0.0-beta.1",
+ "symfony/process": "^7.4.5 || ^8.0.5",
+ "guzzlehttp/guzzle": "^7.8"
},
"require-dev": {
"carthage-software/mago": "^1.1.0",
- "pestphp/pest": "^4.0"
+ "pestphp/pest": "^4.0",
+ "orchestra/testbench": "^11.0"
},
"scripts": {
"lint": "mago lint --minimum-fail-level=warning && mago format --check",
@@ -22,20 +22,32 @@
"test": [
"Composer\\Config::disableProcessTimeout",
"./vendor/bin/pest --compact"
+ ],
+ "post-autoload-dump": [
+ "@clear",
+ "@prepare"
+ ],
+ "clear": "@php vendor/bin/testbench package:purge-skeleton --ansi",
+ "prepare": "@php vendor/bin/testbench package:discover --ansi",
+ "build": [
+ "@php vendor/bin/testbench package:create-sqlite-db --ansi",
+ "@php vendor/bin/testbench workbench:build --ansi"
+ ],
+ "serve": [
+ "Composer\\Config::disableProcessTimeout",
+ "@build",
+ "@php vendor/bin/testbench serve --ansi"
]
},
"autoload": {
"psr-4": {
- "craft\\cloud\\": "src/"
+ "CraftCms\\Cloud\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
- "craft\\cloud\\tests\\": "tests/"
- },
- "files": [
- "tests/Support/functions.php"
- ]
+ "CraftCms\\Cloud\\Tests\\": "tests/"
+ }
},
"prefer-stable": true,
"config": {
@@ -48,7 +60,7 @@
"extra": {
"laravel": {
"providers": [
- "craft\\cloud\\CloudServiceProvider"
+ "CraftCms\\Cloud\\CloudServiceProvider"
]
}
}
diff --git a/composer.lock b/composer.lock
index a77b7c32..4c65647a 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": "ac3769b93490f33743c2d11be91ed70f",
+ "content-hash": "266e3bf0bf6cd0e71b2e4ea211461e59",
"packages": [
{
"name": "aws/aws-crt-php",
@@ -58,20 +58,21 @@
"issues": "https://github.com/awslabs/aws-crt-php/issues",
"source": "https://github.com/awslabs/aws-crt-php/tree/v1.2.7"
},
- "time": "2024-10-18T22:15:13+00:00"
+ "time": "2024-10-18T22:15:13+00:00",
+ "published-time": "2024-10-23T18:30:53+00:00"
},
{
"name": "aws/aws-sdk-php",
- "version": "3.380.3",
+ "version": "3.403.4",
"source": {
"type": "git",
"url": "https://github.com/aws/aws-sdk-php.git",
- "reference": "16fdf619fdcee1d58e0cb4eb642487041a144cba"
+ "reference": "2d01207539928fe943a3f8d8981952b3655e2fc1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/16fdf619fdcee1d58e0cb4eb642487041a144cba",
- "reference": "16fdf619fdcee1d58e0cb4eb642487041a144cba",
+ "url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/2d01207539928fe943a3f8d8981952b3655e2fc1",
+ "reference": "2d01207539928fe943a3f8d8981952b3655e2fc1",
"shasum": ""
},
"require": {
@@ -79,11 +80,11 @@
"ext-json": "*",
"ext-pcre": "*",
"ext-simplexml": "*",
- "guzzlehttp/guzzle": "^7.4.5",
- "guzzlehttp/promises": "^2.0",
- "guzzlehttp/psr7": "^2.4.5",
- "mtdowling/jmespath.php": "^2.8.0",
- "php": ">=8.1",
+ "guzzlehttp/guzzle": "^7.8.2 || ^8.0",
+ "guzzlehttp/promises": "^2.0.3 || ^3.0",
+ "guzzlehttp/psr7": "^2.6.3 || ^3.0",
+ "mtdowling/jmespath.php": "^2.9.1",
+ "php": ">=8.2",
"psr/http-message": "^1.0 || ^2.0",
"symfony/filesystem": "^v5.4.45 || ^v6.4.3 || ^v7.1.0 || ^v8.0.0"
},
@@ -153,34 +154,36 @@
"support": {
"forum": "https://github.com/aws/aws-sdk-php/discussions",
"issues": "https://github.com/aws/aws-sdk-php/issues",
- "source": "https://github.com/aws/aws-sdk-php/tree/3.380.3"
+ "source": "https://github.com/aws/aws-sdk-php/tree/3.403.4"
},
- "time": "2026-05-07T18:29:36+00:00"
+ "time": "2026-11-11T19:03:26+00:00",
+ "published-time": "2026-11-11T19:12:26+00:00"
},
{
"name": "bacon/bacon-qr-code",
- "version": "2.0.8",
+ "version": "v3.1.1",
"source": {
"type": "git",
"url": "https://github.com/Bacon/BaconQrCode.git",
- "reference": "8674e51bb65af933a5ffaf1c308a660387c35c22"
+ "reference": "4da2233e72eeecd9be3b62e0dc2cc9ed8e2e31c2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/8674e51bb65af933a5ffaf1c308a660387c35c22",
- "reference": "8674e51bb65af933a5ffaf1c308a660387c35c22",
+ "url": "https://api.github.com/repos/Bacon/BaconQrCode/zipball/4da2233e72eeecd9be3b62e0dc2cc9ed8e2e31c2",
+ "reference": "4da2233e72eeecd9be3b62e0dc2cc9ed8e2e31c2",
"shasum": ""
},
"require": {
"dasprid/enum": "^1.0.3",
"ext-iconv": "*",
- "php": "^7.1 || ^8.0"
+ "php": "^8.1"
},
"require-dev": {
- "phly/keep-a-changelog": "^2.1",
- "phpunit/phpunit": "^7 | ^8 | ^9",
- "spatie/phpunit-snapshot-assertions": "^4.2.9",
- "squizlabs/php_codesniffer": "^3.4"
+ "phly/keep-a-changelog": "^2.12",
+ "phpunit/phpunit": "^10.5.11 || ^11.0.4",
+ "spatie/phpunit-snapshot-assertions": "^5.1.5",
+ "spatie/pixelmatch-php": "^1.2.0",
+ "squizlabs/php_codesniffer": "^3.9"
},
"suggest": {
"ext-imagick": "to generate QR code images"
@@ -207,36 +210,36 @@
"homepage": "https://github.com/Bacon/BaconQrCode",
"support": {
"issues": "https://github.com/Bacon/BaconQrCode/issues",
- "source": "https://github.com/Bacon/BaconQrCode/tree/2.0.8"
+ "source": "https://github.com/Bacon/BaconQrCode/tree/v3.1.1"
},
- "time": "2022-12-07T17:46:57+00:00"
+ "time": "2026-04-05T21:06:35+00:00",
+ "published-time": "2026-04-05T21:07:28+00:00"
},
{
"name": "bref/bref",
- "version": "3.0.4",
+ "version": "3.0.16",
"source": {
"type": "git",
"url": "https://github.com/brefphp/bref.git",
- "reference": "08bd8cbd4f115a3ff17a9355abbcc72dc4e9c85a"
+ "reference": "f5c68987dfb29f46cf79540ac494a8f8e74783d4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brefphp/bref/zipball/08bd8cbd4f115a3ff17a9355abbcc72dc4e9c85a",
- "reference": "08bd8cbd4f115a3ff17a9355abbcc72dc4e9c85a",
+ "url": "https://api.github.com/repos/brefphp/bref/zipball/f5c68987dfb29f46cf79540ac494a8f8e74783d4",
+ "reference": "f5c68987dfb29f46cf79540ac494a8f8e74783d4",
"shasum": ""
},
"require": {
"crwlr/query-string": "^1.0.3",
"ext-curl": "*",
- "ext-json": "*",
- "hollodotme/fast-cgi-client": "^3.0.1",
+ "hollodotme/fast-cgi-client": "^4.0",
"nyholm/psr7": "^1.4.1",
"php": ">=8.2",
"psr/container": "^1.0|^2.0",
"psr/http-message": "^1.0|^2.0",
"psr/http-server-handler": "^1.0",
- "riverline/multipart-parser": "^2.1.2",
- "symfony/process": "^6.4|^7.0|^8.0"
+ "riverline/multipart-parser": "^2.3",
+ "symfony/process": "^5.4|^6.4|^7.0|^8.0"
},
"require-dev": {
"async-aws/core": "^1.0",
@@ -248,8 +251,8 @@
"guzzlehttp/guzzle": "^7.5",
"phpstan/phpstan": "^2",
"phpunit/phpunit": "^10.1",
- "symfony/console": "^6.4|^7.0|^8.0",
- "symfony/yaml": "^6.4|^7.0|^8.0"
+ "symfony/console": "^5.4|^6.4|^7.0|^8.0",
+ "symfony/yaml": "^5.4|^6.4|^7.0|^8.0"
},
"bin": [
"src/bref-local"
@@ -275,7 +278,7 @@
],
"support": {
"issues": "https://github.com/brefphp/bref/issues",
- "source": "https://github.com/brefphp/bref/tree/3.0.4"
+ "source": "https://github.com/brefphp/bref/tree/3.0.16"
},
"funding": [
{
@@ -287,87 +290,28 @@
"type": "github"
}
],
- "time": "2026-05-07T13:57:38+00:00"
- },
- {
- "name": "bref/extra-php-extensions",
- "version": "3.0.7",
- "source": {
- "type": "git",
- "url": "https://github.com/brefphp/extra-php-extensions.git",
- "reference": "4348efda77dbe502da94759eb03d6b34e1fd499e"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/brefphp/extra-php-extensions/zipball/4348efda77dbe502da94759eb03d6b34e1fd499e",
- "reference": "4348efda77dbe502da94759eb03d6b34e1fd499e",
- "shasum": ""
- },
- "conflict": {
- "bref/bref": "<3.0.0"
- },
- "require-dev": {
- "async-aws/core": "^1.7",
- "async-aws/lambda": "^1.1",
- "bref/logger": "^2.0",
- "mnapoli/silly": "^1.7",
- "mnapoli/silly-php-di": "^1.2",
- "php-di/php-di": "^6.3",
- "symfony/finder": "^5.4",
- "symfony/http-client": "^5.4",
- "symfony/process": "^5.4"
- },
- "type": "library",
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Tobias Nyholm",
- "email": "tobias.nyholm@gmail.com"
- }
- ],
- "description": "Extra PHP extensions for your lambda application.",
- "support": {
- "issues": "https://github.com/brefphp/extra-php-extensions/issues",
- "source": "https://github.com/brefphp/extra-php-extensions/tree/3.0.7"
- },
- "funding": [
- {
- "url": "https://bref.sh/#enterprise",
- "type": "custom"
- },
- {
- "url": "https://github.com/Nyholm",
- "type": "github"
- },
- {
- "url": "https://github.com/mnapoli",
- "type": "github"
- }
- ],
- "time": "2026-04-23T09:06:47+00:00"
+ "time": "2026-11-11T15:58:48+00:00",
+ "published-time": "2026-11-11T16:00:26+00:00"
},
{
"name": "bref/laravel-bridge",
- "version": "3.0.4",
+ "version": "3.1.7",
"source": {
"type": "git",
"url": "https://github.com/brefphp/laravel-bridge.git",
- "reference": "30569eabb2a07bb0444898d31b2230ad6426a6cb"
+ "reference": "c9841cfa7196cfb76dcb11adc401c90367f6084e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brefphp/laravel-bridge/zipball/30569eabb2a07bb0444898d31b2230ad6426a6cb",
- "reference": "30569eabb2a07bb0444898d31b2230ad6426a6cb",
+ "url": "https://api.github.com/repos/brefphp/laravel-bridge/zipball/c9841cfa7196cfb76dcb11adc401c90367f6084e",
+ "reference": "c9841cfa7196cfb76dcb11adc401c90367f6084e",
"shasum": ""
},
"require": {
"aws/aws-sdk-php": "^3.222",
- "bref/bref": "^3.0.2",
+ "bref/bref": "^3.0.16",
"bref/laravel-health-check": "^1",
- "bref/monolog-bridge": "^1.0",
+ "bref/monolog-bridge": "^1.0 || ^2.0",
"illuminate/container": "^10.0 || ^11.0 || ^12.0 || ^13.0",
"illuminate/contracts": "^10.0 || ^11.0 || ^12.0 || ^13.0",
"illuminate/http": "^10.0 || ^11.0 || ^12.0 || ^13.0",
@@ -376,10 +320,11 @@
"laravel/octane": "^1.2 || ^2.0",
"laravel/tinker": "^2.0 || ^3.0",
"php": "^8.2",
- "riverline/multipart-parser": "^2.0"
+ "riverline/multipart-parser": "^2.3"
},
"require-dev": {
"larastan/larastan": "^2.11 || ^3",
+ "league/flysystem-aws-s3-v3": "^3.0",
"orchestra/testbench": "^8.0 || ^9.0 || ^10.0 || ^11.0",
"php-parallel-lint/php-parallel-lint": "^1.3",
"phpunit/phpunit": "^9.5 || ^10 || ^11 || ^12.5.12",
@@ -416,9 +361,10 @@
],
"support": {
"issues": "https://github.com/brefphp/laravel-bridge/issues",
- "source": "https://github.com/brefphp/laravel-bridge/tree/3.0.4"
+ "source": "https://github.com/brefphp/laravel-bridge/tree/3.1.7"
},
- "time": "2026-04-21T17:52:19+00:00"
+ "time": "2026-11-12T13:20:53+00:00",
+ "published-time": "2026-11-12T13:23:19+00:00"
},
{
"name": "bref/laravel-health-check",
@@ -474,30 +420,31 @@
"type": "github"
}
],
- "time": "2026-02-26T14:43:26+00:00"
+ "time": "2026-02-26T14:43:26+00:00",
+ "published-time": "2026-02-26T14:43:51+00:00"
},
{
"name": "bref/monolog-bridge",
- "version": "1.0.1",
+ "version": "2.0.0",
"source": {
"type": "git",
"url": "https://github.com/brefphp/monolog-bridge.git",
- "reference": "0dd46623b4a298838ca103f93d8cb29db029cc30"
+ "reference": "ffde3460fe25cf1f94293ec29c0d4df626a0acc4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brefphp/monolog-bridge/zipball/0dd46623b4a298838ca103f93d8cb29db029cc30",
- "reference": "0dd46623b4a298838ca103f93d8cb29db029cc30",
+ "url": "https://api.github.com/repos/brefphp/monolog-bridge/zipball/ffde3460fe25cf1f94293ec29c0d4df626a0acc4",
+ "reference": "ffde3460fe25cf1f94293ec29c0d4df626a0acc4",
"shasum": ""
},
"require": {
"monolog/monolog": "^2.4|^3",
- "php": ">=8.0"
+ "php": ">=8.2"
},
"require-dev": {
"mnapoli/hard-mode": "^0.3",
- "phpstan/phpstan": "^1",
- "phpunit/phpunit": "^9.6|^10.5|^11|^12"
+ "phpstan/phpstan": "^2",
+ "phpunit/phpunit": "^11.5|^12|^13"
},
"type": "library",
"autoload": {
@@ -519,7 +466,7 @@
],
"support": {
"issues": "https://github.com/brefphp/monolog-bridge/issues",
- "source": "https://github.com/brefphp/monolog-bridge/tree/1.0.1"
+ "source": "https://github.com/brefphp/monolog-bridge/tree/2.0.0"
},
"funding": [
{
@@ -527,27 +474,29 @@
"type": "github"
}
],
- "time": "2025-06-14T15:06:36+00:00"
+ "time": "2026-09-26T19:17:27+00:00",
+ "published-time": "2026-09-26T19:18:43+00:00"
},
{
"name": "brick/math",
- "version": "0.17.0",
+ "version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/brick/math.git",
- "reference": "a62af7ab2e3cee9f9bf4cf77a5d1e6ba408a44ee"
+ "reference": "2effe05d2177c451b86c6a073196a4034c02f211"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/brick/math/zipball/a62af7ab2e3cee9f9bf4cf77a5d1e6ba408a44ee",
- "reference": "a62af7ab2e3cee9f9bf4cf77a5d1e6ba408a44ee",
+ "url": "https://api.github.com/repos/brick/math/zipball/2effe05d2177c451b86c6a073196a4034c02f211",
+ "reference": "2effe05d2177c451b86c6a073196a4034c02f211",
"shasum": ""
},
"require": {
"php": "^8.2"
},
"require-dev": {
- "phpstan/phpstan": "2.1.22",
+ "phpstan/phpstan": "2.2.13",
+ "phpstan/phpstan-phpunit": "2.0.18",
"phpunit/phpunit": "^11.5"
},
"type": "library",
@@ -578,7 +527,7 @@
],
"support": {
"issues": "https://github.com/brick/math/issues",
- "source": "https://github.com/brick/math/tree/0.17.0"
+ "source": "https://github.com/brick/math/tree/1.0.0"
},
"funding": [
{
@@ -586,20 +535,21 @@
"type": "github"
}
],
- "time": "2026-03-17T12:54:54+00:00"
+ "time": "2026-09-12T10:28:18+00:00",
+ "published-time": "2026-09-12T12:23:30+00:00"
},
{
"name": "carbonphp/carbon-doctrine-types",
- "version": "3.2.0",
+ "version": "3.2.1",
"source": {
"type": "git",
"url": "https://github.com/CarbonPHP/carbon-doctrine-types.git",
- "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d"
+ "reference": "5fa5eacafd9ef47c8c6ab9143fc901ba0194d3dc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
- "reference": "18ba5ddfec8976260ead6e866180bd5d2f71aa1d",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon-doctrine-types/zipball/5fa5eacafd9ef47c8c6ab9143fc901ba0194d3dc",
+ "reference": "5fa5eacafd9ef47c8c6ab9143fc901ba0194d3dc",
"shasum": ""
},
"require": {
@@ -614,6 +564,11 @@
"phpunit/phpunit": "^10.3"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "3.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
"Carbon\\Doctrine\\": "src/Carbon/Doctrine/"
@@ -639,7 +594,7 @@
],
"support": {
"issues": "https://github.com/CarbonPHP/carbon-doctrine-types/issues",
- "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.0"
+ "source": "https://github.com/CarbonPHP/carbon-doctrine-types/tree/3.2.1"
},
"funding": [
{
@@ -655,24 +610,25 @@
"type": "tidelift"
}
],
- "time": "2024-02-09T16:56:22+00:00"
+ "time": "2026-09-06T14:11:38+00:00",
+ "published-time": "2026-09-06T14:15:00+00:00"
},
{
"name": "commerceguys/addressing",
- "version": "v2.2.5",
+ "version": "v2.3.2",
"source": {
"type": "git",
"url": "https://github.com/commerceguys/addressing.git",
- "reference": "15b789e5e6ededaf803d23c56cdc300a94522a7c"
+ "reference": "e3ce66714cfa181b848533d926e8583261253c9e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/commerceguys/addressing/zipball/15b789e5e6ededaf803d23c56cdc300a94522a7c",
- "reference": "15b789e5e6ededaf803d23c56cdc300a94522a7c",
+ "url": "https://api.github.com/repos/commerceguys/addressing/zipball/e3ce66714cfa181b848533d926e8583261253c9e",
+ "reference": "e3ce66714cfa181b848533d926e8583261253c9e",
"shasum": ""
},
"require": {
- "doctrine/collections": "^1.6 || ^2.0",
+ "doctrine/collections": "^1.6 || ^2.0 || ^3.0",
"php": ">=8.0"
},
"require-dev": {
@@ -717,34 +673,36 @@
],
"support": {
"issues": "https://github.com/commerceguys/addressing/issues",
- "source": "https://github.com/commerceguys/addressing/tree/v2.2.5"
+ "source": "https://github.com/commerceguys/addressing/tree/v2.3.2"
},
- "time": "2026-01-05T13:00:32+00:00"
+ "time": "2026-10-09T10:50:35+00:00",
+ "published-time": "2026-10-09T10:52:01+00:00"
},
{
"name": "composer/pcre",
- "version": "3.3.2",
+ "version": "3.4.0",
"source": {
"type": "git",
"url": "https://github.com/composer/pcre.git",
- "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e"
+ "reference": "d5a341b3fb61f3001970940afb1d332968a183ed"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/pcre/zipball/b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
- "reference": "b2bed4734f0cc156ee1fe9c0da2550420d99a21e",
+ "url": "https://api.github.com/repos/composer/pcre/zipball/d5a341b3fb61f3001970940afb1d332968a183ed",
+ "reference": "d5a341b3fb61f3001970940afb1d332968a183ed",
"shasum": ""
},
"require": {
"php": "^7.4 || ^8.0"
},
"conflict": {
- "phpstan/phpstan": "<1.11.10"
+ "phpstan/phpstan": "<2.2.2"
},
"require-dev": {
- "phpstan/phpstan": "^1.12 || ^2",
- "phpstan/phpstan-strict-rules": "^1 || ^2",
- "phpunit/phpunit": "^8 || ^9"
+ "phpstan/phpstan": "^2",
+ "phpstan/phpstan-deprecation-rules": "^2",
+ "phpstan/phpstan-strict-rules": "^2",
+ "phpunit/phpunit": "^9"
},
"type": "library",
"extra": {
@@ -782,7 +740,7 @@
],
"support": {
"issues": "https://github.com/composer/pcre/issues",
- "source": "https://github.com/composer/pcre/tree/3.3.2"
+ "source": "https://github.com/composer/pcre/tree/3.4.0"
},
"funding": [
{
@@ -792,26 +750,23 @@
{
"url": "https://github.com/composer",
"type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/composer/composer",
- "type": "tidelift"
}
],
- "time": "2024-11-12T16:29:46+00:00"
+ "time": "2026-06-07T11:47:49+00:00",
+ "published-time": "2026-06-11T12:12:37+00:00"
},
{
"name": "composer/semver",
- "version": "3.4.4",
+ "version": "3.6.0",
"source": {
"type": "git",
"url": "https://github.com/composer/semver.git",
- "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95"
+ "reference": "d92543b7ede9c4ec6b59853cefb061e39866d2cf"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/composer/semver/zipball/198166618906cb2de69b95d7d47e5fa8aa1b2b95",
- "reference": "198166618906cb2de69b95d7d47e5fa8aa1b2b95",
+ "url": "https://api.github.com/repos/composer/semver/zipball/d92543b7ede9c4ec6b59853cefb061e39866d2cf",
+ "reference": "d92543b7ede9c4ec6b59853cefb061e39866d2cf",
"shasum": ""
},
"require": {
@@ -853,7 +808,7 @@
"homepage": "http://robbast.nl"
}
],
- "description": "Semver library that offers utilities, version constraint parsing and validation.",
+ "description": "Version comparison library that offers utilities, version constraint parsing and validation.",
"keywords": [
"semantic",
"semver",
@@ -863,7 +818,7 @@
"support": {
"irc": "ircs://irc.libera.chat:6697/composer",
"issues": "https://github.com/composer/semver/issues",
- "source": "https://github.com/composer/semver/tree/3.4.4"
+ "source": "https://github.com/composer/semver/tree/3.6.0"
},
"funding": [
{
@@ -875,33 +830,36 @@
"type": "github"
}
],
- "time": "2025-08-20T19:15:30+00:00"
+ "time": "2026-10-29T09:13:34+00:00",
+ "published-time": "2026-10-29T09:14:11+00:00"
},
{
"name": "craftcms/cms",
- "version": "6.0.0-alpha.1",
+ "version": "6.0.0-beta.1",
"source": {
"type": "git",
"url": "https://github.com/craftcms/cms.git",
- "reference": "799dd2cdd1991992010a67f18162860b60bfa3b1"
+ "reference": "05ce9b81be3704fb27da3a5a6670accfa49ec9a9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/craftcms/cms/zipball/799dd2cdd1991992010a67f18162860b60bfa3b1",
- "reference": "799dd2cdd1991992010a67f18162860b60bfa3b1",
+ "url": "https://api.github.com/repos/craftcms/cms/zipball/05ce9b81be3704fb27da3a5a6670accfa49ec9a9",
+ "reference": "05ce9b81be3704fb27da3a5a6670accfa49ec9a9",
"shasum": ""
},
"require": {
- "bacon/bacon-qr-code": "^2.0",
- "commerceguys/addressing": "^2.1.1",
+ "bacon/bacon-qr-code": "^3.0",
+ "commerceguys/addressing": "^2.3.0",
"composer/semver": "^3.3.2",
+ "craftcms/cms-assets": "self.version",
"craftcms/laravel-aliases": "^2.0",
"craftcms/laravel-dependency-aware-cache": "^1.2.3",
"craftcms/laravel-ruleset-validation": "^1.1",
"craftcms/plugin-installer": "~1.6.0",
"craftcms/server-check": "~6.0.0",
- "elvanto/litemoji": "~4.3.0",
- "enshrined/svg-sanitize": "~0.22.0",
+ "craftcms/url-validator": "^1.0",
+ "elvanto/litemoji": "^5.2.0",
+ "enshrined/svg-sanitize": "^1.0.0",
"ext-bcmath": "*",
"ext-curl": "*",
"ext-dom": "*",
@@ -914,61 +872,74 @@
"ext-zip": "*",
"guzzlehttp/guzzle": "^7.2.0",
"inertiajs/inertia-laravel": "^3.0",
- "laravel/framework": "^13.0.0",
- "laravel/wayfinder": "^0.1.12",
+ "intervention/image": "^4.2",
+ "laravel/ai": "^1.2",
+ "laravel/framework": "^13.38",
+ "laravel/passport": "^13.0",
+ "laravel/wayfinder": "^0.1.23",
"league/commonmark": "^2.8",
"league/flysystem-path-prefixing": "^3.31",
"league/uri": "^7.0",
+ "mcp/sdk": "~0.9.0",
"moneyphp/money": "^4.0",
"php": "^8.5",
- "phpdocumentor/reflection-docblock": "^5.3",
"phpoffice/phpspreadsheet": "^5.3",
- "pixelandtonic/graphql-php": "~14.11.10.1",
- "pixelandtonic/imagine": "~1.3.3.1",
- "pragmarx/google2fa": "^8.0",
+ "pragmarx/google2fa": "^9.0",
"pragmarx/recovery": "^0.2.1",
"symfony/css-selector": "^7.0|^8.0",
"symfony/dom-crawler": "^7.0|^8.0",
"symfony/filesystem": "^7.0|^8.0",
"symfony/html-sanitizer": "^7.0|^8.0",
- "symfony/property-access": "^7.0|^8.0",
- "symfony/property-info": "^7.0|^8.0",
+ "symfony/psr-http-message-bridge": "^7.4|^8.0",
"symfony/serializer": "^6.4|^7.0|^8.0",
"symfony/yaml": "^7.0|^8.0",
"theiconic/name-parser": "^1.2",
"tpetry/laravel-query-expressions": "^1.5",
- "twig/twig": "~3.21.1",
+ "twig/twig": "~3.30.0",
"voku/portable-ascii": "^2.0",
- "web-auth/webauthn-lib": "~5.2.4",
+ "web-auth/webauthn-lib": "~5.3.9",
+ "webonyx/graphql-php": "~15.33.1",
"yiisoft/arrays": "^3.2",
- "yiisoft/html": "^3.11",
+ "yiisoft/html": "^4.1",
"yiisoft/translator": "^3.2",
"yiisoft/translator-message-php": "^1.1"
},
"require-dev": {
+ "barryvdh/laravel-debugbar": "^4.2",
+ "craftcms/test-plugin": "1.0.1",
"dg/bypass-finals": "^1.9",
- "driftingly/rector-laravel": "^2.1",
+ "driftingly/rector-laravel": "^2.6.2",
"fakerphp/faker": "^1.19.0",
- "larastan/larastan": "^3.4",
+ "intervention/image-driver-vips": "^4.1",
+ "larastan/larastan": "^3.13",
+ "laravel/boost": "^2.10.3",
+ "laravel/pao": "^1.0",
"laravel/pint": "^1.22",
"laravel/socialite": "^5.23",
+ "league/flysystem-aws-s3-v3": "^3.35",
"orchestra/testbench": "^11.0",
- "pestphp/pest": "^4.0",
- "pestphp/pest-plugin-arch": "^4.0",
- "pestphp/pest-plugin-laravel": "^4.0",
+ "pestphp/pest": "^5.0",
+ "pestphp/pest-plugin-agent": "^5.0",
+ "pestphp/pest-plugin-arch": "^5.0",
+ "pestphp/pest-plugin-browser": "^5.2",
+ "pestphp/pest-plugin-laravel": "^5.0",
+ "phpbench/phpbench": "^1.7",
"phpstan/phpstan": "^2.1",
- "rector/rector": "^2.3"
+ "rector/rector": "^2.3",
+ "spatie/laravel-typescript-transformer": "^3.2"
},
"suggest": {
"ext-exif": "Adds support for parsing image EXIF data.",
"ext-iconv": "Adds support for more character encodings than PHP’s built-in mb_convert_encoding() function, which Craft will take advantage of when converting strings to UTF-8.",
"ext-imagick": "Adds support for more image processing formats and options.",
+ "intervention/image-driver-vips": "Adds support for image processing with libvips (requires ext-ffi and libvips).",
"laravel/socialite": "Adds OAuth login support for providers configured with `GeneralConfig::oauthProviders()`."
},
"type": "library",
"extra": {
"laravel": {
"aliases": {
+ "Ai": "CraftCms\\Cms\\Support\\Facades\\Ai",
"Gql": "CraftCms\\Cms\\Support\\Facades\\Gql",
"I18N": "CraftCms\\Cms\\Support\\Facades\\I18N",
"Path": "CraftCms\\Cms\\Support\\Facades\\Path",
@@ -981,6 +952,7 @@
"Fields": "CraftCms\\Cms\\Support\\Facades\\Fields",
"Images": "CraftCms\\Cms\\Support\\Facades\\Images",
"Search": "CraftCms\\Cms\\Support\\Facades\\Search",
+ "Anchors": "CraftCms\\Cms\\Support\\Facades\\Anchors",
"BulkOps": "CraftCms\\Cms\\Support\\Facades\\BulkOps",
"Entries": "CraftCms\\Cms\\Support\\Facades\\Entries",
"Folders": "CraftCms\\Cms\\Support\\Facades\\Folders",
@@ -991,9 +963,12 @@
"Markdown": "CraftCms\\Cms\\Support\\Facades\\Markdown",
"Sections": "CraftCms\\Cms\\Support\\Facades\\Sections",
"Security": "CraftCms\\Cms\\Support\\Facades\\Security",
+ "Template": "CraftCms\\Cms\\Support\\Facades\\Template",
"Addresses": "CraftCms\\Cms\\Support\\Facades\\Addresses",
"HtmlStack": "CraftCms\\Cms\\Support\\Facades\\HtmlStack",
"Revisions": "CraftCms\\Cms\\Support\\Facades\\Revisions",
+ "Workflows": "CraftCms\\Cms\\Support\\Facades\\Workflows",
+ "Activities": "CraftCms\\Cms\\Support\\Facades\\Activities",
"Conditions": "CraftCms\\Cms\\Support\\Facades\\Conditions",
"Deprecator": "CraftCms\\Cms\\Support\\Facades\\Deprecator",
"EntryTypes": "CraftCms\\Cms\\Support\\Facades\\EntryTypes",
@@ -1001,10 +976,8 @@
"Structures": "CraftCms\\Cms\\Support\\Facades\\Structures",
"UserGroups": "CraftCms\\Cms\\Support\\Facades\\UserGroups",
"AuthMethods": "CraftCms\\Cms\\Support\\Facades\\AuthMethods",
- "Filesystems": "CraftCms\\Cms\\Support\\Facades\\Filesystems",
"JobProgress": "CraftCms\\Cms\\Support\\Facades\\JobProgress",
"AssetIndexer": "CraftCms\\Cms\\Support\\Facades\\AssetIndexer",
- "Announcements": "CraftCms\\Cms\\Support\\Facades\\Announcements",
"DeltaRegistry": "CraftCms\\Cms\\Support\\Facades\\DeltaRegistry",
"ElementCaches": "CraftCms\\Cms\\Support\\Facades\\ElementCaches",
"ProjectConfig": "CraftCms\\Cms\\Support\\Facades\\ProjectConfig",
@@ -1015,6 +988,7 @@
"InputNamespace": "CraftCms\\Cms\\Support\\Facades\\InputNamespace",
"ElementActivity": "CraftCms\\Cms\\Support\\Facades\\ElementActivity",
"ImageTransforms": "CraftCms\\Cms\\Support\\Facades\\ImageTransforms",
+ "ResponseHeaders": "CraftCms\\Cms\\Support\\Facades\\ResponseHeaders",
"UserPermissions": "CraftCms\\Cms\\Support\\Facades\\UserPermissions",
"ElementExporters": "CraftCms\\Cms\\Support\\Facades\\ElementExporters"
},
@@ -1056,7 +1030,34 @@
"rss": "https://github.com/craftcms/cms/releases.atom",
"source": "https://github.com/craftcms/cms"
},
- "time": "2026-05-06T18:45:13+00:00"
+ "time": "2026-11-10T18:14:47+00:00",
+ "published-time": "2026-11-10T18:15:11+00:00"
+ },
+ {
+ "name": "craftcms/cms-assets",
+ "version": "6.0.0-beta.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/craftcms/cms-assets.git",
+ "reference": "87acafef481f17c12a10170211bbccda42588dbd"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/craftcms/cms-assets/zipball/87acafef481f17c12a10170211bbccda42588dbd",
+ "reference": "87acafef481f17c12a10170211bbccda42588dbd",
+ "shasum": ""
+ },
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "proprietary"
+ ],
+ "description": "Built assets for Craft CMS.",
+ "support": {
+ "source": "https://github.com/craftcms/cms-assets/tree/6.0.0-beta.1"
+ },
+ "time": "2026-11-10T18:11:32+00:00",
+ "published-time": "2026-11-10T18:17:49+00:00"
},
{
"name": "craftcms/laravel-aliases",
@@ -1128,7 +1129,8 @@
"issues": "https://github.com/craftcms/laravel-aliases/issues",
"source": "https://github.com/craftcms/laravel-aliases/tree/2.1.0"
},
- "time": "2026-03-17T14:59:00+00:00"
+ "time": "2026-03-17T14:59:00+00:00",
+ "published-time": "2026-03-17T15:00:47+00:00"
},
{
"name": "craftcms/laravel-dependency-aware-cache",
@@ -1198,7 +1200,8 @@
"issues": "https://github.com/craftcms/laravel-dependency-aware-cache/issues",
"source": "https://github.com/craftcms/laravel-dependency-aware-cache/tree/1.2.3"
},
- "time": "2026-05-01T12:08:11+00:00"
+ "time": "2026-05-01T12:08:11+00:00",
+ "published-time": "2026-05-01T12:08:33+00:00"
},
{
"name": "craftcms/laravel-ruleset-validation",
@@ -1262,7 +1265,8 @@
"issues": "https://github.com/craftcms/laravel-ruleset-validation/issues",
"source": "https://github.com/craftcms/laravel-ruleset-validation/tree/1.1.0"
},
- "time": "2026-04-22T11:01:37+00:00"
+ "time": "2026-04-22T11:01:37+00:00",
+ "published-time": "2026-04-22T11:02:13+00:00"
},
{
"name": "craftcms/plugin-installer",
@@ -1315,7 +1319,8 @@
"rss": "https://craftcms.com/changelog.rss",
"source": "https://github.com/craftcms/cms"
},
- "time": "2023-02-22T13:17:00+00:00"
+ "time": "2023-02-22T13:17:00+00:00",
+ "published-time": "2023-02-22T13:18:16+00:00"
},
{
"name": "craftcms/server-check",
@@ -1357,7 +1362,69 @@
"rss": "https://github.com/craftcms/server-check/releases.atom",
"source": "https://github.com/craftcms/server-check"
},
- "time": "2026-05-06T18:15:11+00:00"
+ "time": "2026-05-06T18:15:11+00:00",
+ "published-time": "2026-05-06T18:15:28+00:00"
+ },
+ {
+ "name": "craftcms/url-validator",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/craftcms/url-validator.git",
+ "reference": "1e6a935fff86171e3ca8086b5c547071e5ceb3c2"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/craftcms/url-validator/zipball/1e6a935fff86171e3ca8086b5c547071e5ceb3c2",
+ "reference": "1e6a935fff86171e3ca8086b5c547071e5ceb3c2",
+ "shasum": ""
+ },
+ "require": {
+ "ext-filter": "*",
+ "php": "^8.0.2"
+ },
+ "require-dev": {
+ "guzzlehttp/guzzle": "^7.0",
+ "laravel/pint": "^1.29",
+ "nunomaduro/collision": "^8.1",
+ "pestphp/pest": "^3.0",
+ "phpstan/phpstan": "^2.0"
+ },
+ "suggest": {
+ "guzzlehttp/guzzle": "Required to use GuzzleMiddleware"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "CraftCms\\UrlValidator\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Pixel & Tonic",
+ "homepage": "https://pixelandtonic.com/"
+ }
+ ],
+ "description": "Validate URLs and IP addresses against SSRF, DNS rebinding, and cloud-metadata attacks.",
+ "homepage": "https://github.com/craftcms/url-validator",
+ "keywords": [
+ "IP",
+ "craftcms",
+ "security",
+ "ssrf",
+ "url",
+ "validation"
+ ],
+ "support": {
+ "issues": "https://github.com/craftcms/url-validator/issues",
+ "source": "https://github.com/craftcms/url-validator/tree/1.2.0"
+ },
+ "time": "2026-10-09T22:39:23+00:00",
+ "published-time": "2026-10-09T22:40:36+00:00"
},
{
"name": "crwlr/query-string",
@@ -1414,7 +1481,8 @@
"issues": "https://github.com/crwlrsoft/query-string/issues",
"source": "https://github.com/crwlrsoft/query-string"
},
- "time": "2023-04-12T21:31:58+00:00"
+ "time": "2023-04-12T21:31:58+00:00",
+ "published-time": "2023-04-12T21:34:54+00:00"
},
{
"name": "dasprid/enum",
@@ -1464,7 +1532,76 @@
"issues": "https://github.com/DASPRiD/Enum/issues",
"source": "https://github.com/DASPRiD/Enum/tree/1.0.7"
},
- "time": "2025-09-16T12:23:56+00:00"
+ "time": "2025-09-16T12:23:56+00:00",
+ "published-time": "2025-09-16T12:25:04+00:00"
+ },
+ {
+ "name": "defuse/php-encryption",
+ "version": "v2.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/defuse/php-encryption.git",
+ "reference": "f53396c2d34225064647a05ca76c1da9d99e5828"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/defuse/php-encryption/zipball/f53396c2d34225064647a05ca76c1da9d99e5828",
+ "reference": "f53396c2d34225064647a05ca76c1da9d99e5828",
+ "shasum": ""
+ },
+ "require": {
+ "ext-openssl": "*",
+ "paragonie/random_compat": ">= 2",
+ "php": ">=5.6.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5|^6|^7|^8|^9|^10",
+ "yoast/phpunit-polyfills": "^2.0.0"
+ },
+ "bin": [
+ "bin/generate-defuse-key"
+ ],
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Defuse\\Crypto\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Hornby",
+ "email": "taylor@defuse.ca",
+ "homepage": "https://defuse.ca/"
+ },
+ {
+ "name": "Scott Arciszewski",
+ "email": "info@paragonie.com",
+ "homepage": "https://paragonie.com"
+ }
+ ],
+ "description": "Secure PHP Encryption Library",
+ "keywords": [
+ "aes",
+ "authenticated encryption",
+ "cipher",
+ "crypto",
+ "cryptography",
+ "encrypt",
+ "encryption",
+ "openssl",
+ "security",
+ "symmetric key cryptography"
+ ],
+ "support": {
+ "issues": "https://github.com/defuse/php-encryption/issues",
+ "source": "https://github.com/defuse/php-encryption/tree/v2.4.0"
+ },
+ "time": "2023-06-19T06:10:36+00:00",
+ "published-time": "2023-06-19T06:16:55+00:00"
},
{
"name": "dflydev/dot-access-data",
@@ -1539,33 +1676,34 @@
"issues": "https://github.com/dflydev/dflydev-dot-access-data/issues",
"source": "https://github.com/dflydev/dflydev-dot-access-data/tree/v3.0.3"
},
- "time": "2024-07-08T12:26:09+00:00"
+ "time": "2024-07-08T12:26:09+00:00",
+ "published-time": "2024-07-08T12:27:13+00:00"
},
{
"name": "doctrine/collections",
- "version": "2.6.0",
+ "version": "3.1.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/collections.git",
- "reference": "7713da39d8e237f28411d6a616a3dce5e20d5de2"
+ "reference": "7c2f25ed928553a3de389ccb99aa46c0eedb2d4d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/collections/zipball/7713da39d8e237f28411d6a616a3dce5e20d5de2",
- "reference": "7713da39d8e237f28411d6a616a3dce5e20d5de2",
+ "url": "https://api.github.com/repos/doctrine/collections/zipball/7c2f25ed928553a3de389ccb99aa46c0eedb2d4d",
+ "reference": "7c2f25ed928553a3de389ccb99aa46c0eedb2d4d",
"shasum": ""
},
"require": {
"doctrine/deprecations": "^1",
- "php": "^8.1",
- "symfony/polyfill-php84": "^1.30"
+ "php": "^8.4",
+ "symfony/polyfill-php86": "^1.36"
},
"require-dev": {
"doctrine/coding-standard": "^14",
"ext-json": "*",
"phpstan/phpstan": "^2.1.30",
"phpstan/phpstan-phpunit": "^2.0.7",
- "phpunit/phpunit": "^10.5.58 || ^11.5.42 || ^12.4"
+ "phpunit/phpunit": "^12.4"
},
"type": "library",
"autoload": {
@@ -1609,7 +1747,7 @@
],
"support": {
"issues": "https://github.com/doctrine/collections/issues",
- "source": "https://github.com/doctrine/collections/tree/2.6.0"
+ "source": "https://github.com/doctrine/collections/tree/3.1.0"
},
"funding": [
{
@@ -1625,24 +1763,25 @@
"type": "tidelift"
}
],
- "time": "2026-01-15T10:01:58+00:00"
+ "time": "2026-04-29T20:41:02+00:00",
+ "published-time": "2026-04-29T20:41:48+00:00"
},
{
"name": "doctrine/deprecations",
- "version": "1.1.6",
+ "version": "1.2.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/deprecations.git",
- "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca"
+ "reference": "d2e16653a734c8784c1851ad68b02f997b53ca82"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca",
- "reference": "d4fe3e6fd9bb9e72557a19674f44d8ac7db4c6ca",
+ "url": "https://api.github.com/repos/doctrine/deprecations/zipball/d2e16653a734c8784c1851ad68b02f997b53ca82",
+ "reference": "d2e16653a734c8784c1851ad68b02f997b53ca82",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^7.4 || ^8.0"
},
"conflict": {
"phpunit/phpunit": "<=7.5 || >=14"
@@ -1671,29 +1810,30 @@
"homepage": "https://www.doctrine-project.org/",
"support": {
"issues": "https://github.com/doctrine/deprecations/issues",
- "source": "https://github.com/doctrine/deprecations/tree/1.1.6"
+ "source": "https://github.com/doctrine/deprecations/tree/1.2.0"
},
- "time": "2026-02-07T07:09:04+00:00"
+ "time": "2026-11-11T10:04:49+00:00",
+ "published-time": "2026-11-11T10:12:24+00:00"
},
{
"name": "doctrine/inflector",
- "version": "2.1.0",
+ "version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
- "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b"
+ "reference": "46351b6812b7b6d52b82c3efa5dfb786a198ec88"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/inflector/zipball/6d6c96277ea252fc1304627204c3d5e6e15faa3b",
- "reference": "6d6c96277ea252fc1304627204c3d5e6e15faa3b",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/46351b6812b7b6d52b82c3efa5dfb786a198ec88",
+ "reference": "46351b6812b7b6d52b82c3efa5dfb786a198ec88",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
- "doctrine/coding-standard": "^12.0 || ^13.0",
+ "doctrine/coding-standard": "^12.0 || ^14.0",
"phpstan/phpstan": "^1.12 || ^2.0",
"phpstan/phpstan-phpunit": "^1.4 || ^2.0",
"phpstan/phpstan-strict-rules": "^1.6 || ^2.0",
@@ -1747,7 +1887,7 @@
],
"support": {
"issues": "https://github.com/doctrine/inflector/issues",
- "source": "https://github.com/doctrine/inflector/tree/2.1.0"
+ "source": "https://github.com/doctrine/inflector/tree/2.1.1"
},
"funding": [
{
@@ -1763,31 +1903,30 @@
"type": "tidelift"
}
],
- "time": "2025-08-10T19:31:58+00:00"
+ "time": "2026-10-26T08:14:14+00:00",
+ "published-time": "2026-10-26T20:06:59+00:00"
},
{
"name": "doctrine/lexer",
- "version": "3.0.1",
+ "version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
- "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd"
+ "reference": "71d305eaa6480d3d3460c7d053d1da7749fa9cca"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/lexer/zipball/31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
- "reference": "31ad66abc0fc9e1a1f2d9bc6a42668d2fbbcd6dd",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/71d305eaa6480d3d3460c7d053d1da7749fa9cca",
+ "reference": "71d305eaa6480d3d3460c7d053d1da7749fa9cca",
"shasum": ""
},
"require": {
"php": "^8.1"
},
"require-dev": {
- "doctrine/coding-standard": "^12",
- "phpstan/phpstan": "^1.10",
- "phpunit/phpunit": "^10.5",
- "psalm/plugin-phpunit": "^0.18.3",
- "vimeo/psalm": "^5.21"
+ "doctrine/coding-standard": "^14",
+ "phpstan/phpstan": "^2",
+ "phpunit/phpunit": "^10.5.58 || ^12.5.4"
},
"type": "library",
"autoload": {
@@ -1824,7 +1963,7 @@
],
"support": {
"issues": "https://github.com/doctrine/lexer/issues",
- "source": "https://github.com/doctrine/lexer/tree/3.0.1"
+ "source": "https://github.com/doctrine/lexer/tree/3.0.3"
},
"funding": [
{
@@ -1840,20 +1979,21 @@
"type": "tidelift"
}
],
- "time": "2024-02-05T11:56:58+00:00"
+ "time": "2026-10-01T06:59:29+00:00",
+ "published-time": "2026-10-01T07:01:28+00:00"
},
{
"name": "dragonmantank/cron-expression",
- "version": "v3.6.0",
+ "version": "v3.6.1",
"source": {
"type": "git",
"url": "https://github.com/dragonmantank/cron-expression.git",
- "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013"
+ "reference": "4189372ffeff09bf14f731f67a9de90c7b413ebe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/d61a8a9604ec1f8c3d150d09db6ce98b32675013",
- "reference": "d61a8a9604ec1f8c3d150d09db6ce98b32675013",
+ "url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/4189372ffeff09bf14f731f67a9de90c7b413ebe",
+ "reference": "4189372ffeff09bf14f731f67a9de90c7b413ebe",
"shasum": ""
},
"require": {
@@ -1864,8 +2004,8 @@
},
"require-dev": {
"phpstan/extension-installer": "^1.4.3",
- "phpstan/phpstan": "^1.12.32|^2.1.31",
- "phpunit/phpunit": "^8.5.48|^9.0"
+ "phpstan/phpstan": "^2.1.31",
+ "phpunit/phpunit": "^11.5.43 || ^12.4"
},
"type": "library",
"extra": {
@@ -1896,7 +2036,7 @@
],
"support": {
"issues": "https://github.com/dragonmantank/cron-expression/issues",
- "source": "https://github.com/dragonmantank/cron-expression/tree/v3.6.0"
+ "source": "https://github.com/dragonmantank/cron-expression/tree/v3.6.1"
},
"funding": [
{
@@ -1904,7 +2044,8 @@
"type": "github"
}
],
- "time": "2025-10-31T18:51:33+00:00"
+ "time": "2026-10-19T17:53:57+00:00",
+ "published-time": "2026-10-19T17:54:31+00:00"
},
{
"name": "egulias/email-validator",
@@ -1971,28 +2112,29 @@
"type": "github"
}
],
- "time": "2025-03-06T22:45:56+00:00"
+ "time": "2025-03-06T22:45:56+00:00",
+ "published-time": "2025-03-20T21:39:03+00:00"
},
{
"name": "elvanto/litemoji",
- "version": "4.3.0",
+ "version": "5.2.0",
"source": {
"type": "git",
"url": "https://github.com/elvanto/litemoji.git",
- "reference": "f13cf10686f7110a3b17d09de03050d0708840b8"
+ "reference": "859dbcaa31ac5eb99c0811a981ba9d9ca3dab1c1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/elvanto/litemoji/zipball/f13cf10686f7110a3b17d09de03050d0708840b8",
- "reference": "f13cf10686f7110a3b17d09de03050d0708840b8",
+ "url": "https://api.github.com/repos/elvanto/litemoji/zipball/859dbcaa31ac5eb99c0811a981ba9d9ca3dab1c1",
+ "reference": "859dbcaa31ac5eb99c0811a981ba9d9ca3dab1c1",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
- "php": ">=7.3"
+ "php": ">=7.4"
},
"require-dev": {
- "milesj/emojibase": "7.0.*",
+ "milesj/emojibase": "^16.0.3",
"phpunit/phpunit": "^9.0"
},
"type": "library",
@@ -2012,22 +2154,23 @@
],
"support": {
"issues": "https://github.com/elvanto/litemoji/issues",
- "source": "https://github.com/elvanto/litemoji/tree/4.3.0"
+ "source": "https://github.com/elvanto/litemoji/tree/5.2.0"
},
- "time": "2022-10-28T02:32:19+00:00"
+ "time": "2025-07-15T04:24:11+00:00",
+ "published-time": "2025-07-15T04:26:07+00:00"
},
{
"name": "enshrined/svg-sanitize",
- "version": "0.22.0",
+ "version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/darylldoyle/svg-sanitizer.git",
- "reference": "0afa95ea74be155a7bcd6c6fb60c276c39984500"
+ "reference": "1976ff93c8d8a234cdd3ff99626bd43ecf11bf49"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/darylldoyle/svg-sanitizer/zipball/0afa95ea74be155a7bcd6c6fb60c276c39984500",
- "reference": "0afa95ea74be155a7bcd6c6fb60c276c39984500",
+ "url": "https://api.github.com/repos/darylldoyle/svg-sanitizer/zipball/1976ff93c8d8a234cdd3ff99626bd43ecf11bf49",
+ "reference": "1976ff93c8d8a234cdd3ff99626bd43ecf11bf49",
"shasum": ""
},
"require": {
@@ -2057,9 +2200,85 @@
"description": "An SVG sanitizer for PHP",
"support": {
"issues": "https://github.com/darylldoyle/svg-sanitizer/issues",
- "source": "https://github.com/darylldoyle/svg-sanitizer/tree/0.22.0"
+ "source": "https://github.com/darylldoyle/svg-sanitizer/tree/1.1.1"
+ },
+ "time": "2026-10-20T09:45:10+00:00",
+ "published-time": "2026-10-20T09:46:58+00:00"
+ },
+ {
+ "name": "firebase/php-jwt",
+ "version": "v7.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/googleapis/php-jwt.git",
+ "reference": "0501f5729b9e2448516674aff07c7d1727869b8e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/googleapis/php-jwt/zipball/0501f5729b9e2448516674aff07c7d1727869b8e",
+ "reference": "0501f5729b9e2448516674aff07c7d1727869b8e",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8.0"
+ },
+ "require-dev": {
+ "guzzlehttp/guzzle": "^7.4||^8.0",
+ "phpfastcache/phpfastcache": "^9.2",
+ "phpseclib/phpseclib": "~3.0",
+ "phpspec/prophecy-phpunit": "^2.2",
+ "phpunit/phpunit": "^9.5",
+ "psr/cache": "^2.0||^3.0",
+ "psr/http-client": "^1.0",
+ "psr/http-factory": "^1.0"
+ },
+ "suggest": {
+ "ext-sodium": "Support EdDSA (Ed25519) signatures",
+ "paragonie/sodium_compat": "Support EdDSA (Ed25519) signatures when libsodium is not present",
+ "phpseclib/phpseclib": "Support PS256 (RSASSA-PSS) signatures"
},
- "time": "2025-08-12T10:13:48+00:00"
+ "type": "library",
+ "extra": {
+ "component": {
+ "id": "jwt",
+ "path": "Jwt",
+ "entry": "README.md",
+ "target": "googleapis/php-jwt.git"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Firebase\\JWT\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Neuman Vong",
+ "email": "neuman+pear@twilio.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Anant Narayanan",
+ "email": "anant@php.net",
+ "role": "Developer"
+ }
+ ],
+ "description": "A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.",
+ "homepage": "https://github.com/googleapis/php-jwt",
+ "keywords": [
+ "jwt",
+ "php"
+ ],
+ "support": {
+ "issues": "https://github.com/googleapis/php-jwt/issues",
+ "source": "https://github.com/googleapis/php-jwt/tree/v7.2.1"
+ },
+ "time": "2026-09-28T17:51:46+00:00",
+ "published-time": "2026-09-28T18:08:24+00:00"
},
{
"name": "fruitcake/php-cors",
@@ -2130,28 +2349,29 @@
"type": "github"
}
],
- "time": "2025-12-03T09:33:47+00:00"
+ "time": "2025-12-03T09:33:47+00:00",
+ "published-time": "2025-12-03T09:37:01+00:00"
},
{
"name": "graham-campbell/result-type",
- "version": "v1.1.4",
+ "version": "v1.2.0",
"source": {
"type": "git",
"url": "https://github.com/GrahamCampbell/Result-Type.git",
- "reference": "e01f4a821471308ba86aa202fed6698b6b695e3b"
+ "reference": "adccca3324eece92ca35463648c12b9e6293c05b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/e01f4a821471308ba86aa202fed6698b6b695e3b",
- "reference": "e01f4a821471308ba86aa202fed6698b6b695e3b",
+ "url": "https://api.github.com/repos/GrahamCampbell/Result-Type/zipball/adccca3324eece92ca35463648c12b9e6293c05b",
+ "reference": "adccca3324eece92ca35463648c12b9e6293c05b",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0",
- "phpoption/phpoption": "^1.9.5"
+ "phpoption/phpoption": "^1.10"
},
"require-dev": {
- "phpunit/phpunit": "^8.5.41 || ^9.6.22 || ^10.5.45 || ^11.5.7"
+ "phpunit/phpunit": "^8.5.52 || ^9.6.34 || ^10.5.63 || ^11.5.55 || ^12.5.14"
},
"type": "library",
"autoload": {
@@ -2180,7 +2400,7 @@
],
"support": {
"issues": "https://github.com/GrahamCampbell/Result-Type/issues",
- "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.1.4"
+ "source": "https://github.com/GrahamCampbell/Result-Type/tree/v1.2.0"
},
"funding": [
{
@@ -2192,29 +2412,31 @@
"type": "tidelift"
}
],
- "time": "2025-12-27T19:43:20+00:00"
+ "time": "2026-08-24T09:06:52+00:00",
+ "published-time": "2026-08-24T09:07:57+00:00"
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.10.0",
+ "version": "7.16.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4"
+ "reference": "81755d989b3007ca7f88a069857553cd08e7dc2e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/b51ac707cfa420b7bfd4e4d5e510ba8008e822b4",
- "reference": "b51ac707cfa420b7bfd4e4d5e510ba8008e822b4",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/81755d989b3007ca7f88a069857553cd08e7dc2e",
+ "reference": "81755d989b3007ca7f88a069857553cd08e7dc2e",
"shasum": ""
},
"require": {
"ext-json": "*",
- "guzzlehttp/promises": "^2.3",
- "guzzlehttp/psr7": "^2.8",
+ "guzzlehttp/promises": "^2.6",
+ "guzzlehttp/psr7": "^2.13.2",
"php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0",
- "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ "symfony/deprecation-contracts": "^2.5 || ^3.0",
+ "symfony/polyfill-php80": "^1.25"
},
"provide": {
"psr/http-client-implementation": "1.0"
@@ -2222,9 +2444,10 @@
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
"ext-curl": "*",
- "guzzle/client-integration-tests": "3.0.2",
+ "guzzle/client-integration-tests": "3.0.3",
+ "guzzlehttp/test-server": "^0.7",
"php-http/message-factory": "^1.1",
- "phpunit/phpunit": "^8.5.39 || ^9.6.20",
+ "phpunit/phpunit": "^8.5.52 || ^9.6.34",
"psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
@@ -2302,7 +2525,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.10.0"
+ "source": "https://github.com/guzzle/guzzle/tree/7.16.1"
},
"funding": [
{
@@ -2318,28 +2541,30 @@
"type": "tidelift"
}
],
- "time": "2025-08-23T22:36:01+00:00"
+ "time": "2026-10-25T21:35:21+00:00",
+ "published-time": "2026-10-25T21:37:23+00:00"
},
{
"name": "guzzlehttp/promises",
- "version": "2.3.0",
+ "version": "2.6.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "481557b130ef3790cf82b713667b43030dc9c957"
+ "reference": "3d88c829bd5f13d13847b39067dbf09a60af2154"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/481557b130ef3790cf82b713667b43030dc9c957",
- "reference": "481557b130ef3790cf82b713667b43030dc9c957",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/3d88c829bd5f13d13847b39067dbf09a60af2154",
+ "reference": "3d88c829bd5f13d13847b39067dbf09a60af2154",
"shasum": ""
},
"require": {
- "php": "^7.2.5 || ^8.0"
+ "php": "^7.2.5 || ^8.0",
+ "symfony/deprecation-contracts": "^2.5 || ^3.0"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
- "phpunit/phpunit": "^8.5.44 || ^9.6.25"
+ "phpunit/phpunit": "^8.5.52 || ^9.6.34"
},
"type": "library",
"extra": {
@@ -2385,7 +2610,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/2.3.0"
+ "source": "https://github.com/guzzle/promises/tree/2.6.0"
},
"funding": [
{
@@ -2401,27 +2626,30 @@
"type": "tidelift"
}
],
- "time": "2025-08-22T14:34:08+00:00"
+ "time": "2026-10-18T12:46:59+00:00",
+ "published-time": "2026-10-18T12:47:39+00:00"
},
{
"name": "guzzlehttp/psr7",
- "version": "2.9.0",
+ "version": "2.13.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "7d0ed42f28e42d61352a7a79de682e5e67fec884"
+ "reference": "adee536f95101929f262b8c59e8a61472f347d58"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/7d0ed42f28e42d61352a7a79de682e5e67fec884",
- "reference": "7d0ed42f28e42d61352a7a79de682e5e67fec884",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/adee536f95101929f262b8c59e8a61472f347d58",
+ "reference": "adee536f95101929f262b8c59e8a61472f347d58",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.1 || ^2.0",
- "ralouphie/getallheaders": "^3.0"
+ "ralouphie/getallheaders": "^3.0",
+ "symfony/deprecation-contracts": "^2.5 || ^3.0",
+ "symfony/polyfill-php80": "^1.25"
},
"provide": {
"psr/http-factory-implementation": "1.0",
@@ -2429,9 +2657,9 @@
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
- "http-interop/http-factory-tests": "0.9.0",
+ "http-interop/http-factory-tests": "1.1.0",
"jshttp/mime-db": "1.54.0.1",
- "phpunit/phpunit": "^8.5.44 || ^9.6.25"
+ "phpunit/phpunit": "^8.5.52 || ^9.6.34"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
@@ -2502,7 +2730,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.9.0"
+ "source": "https://github.com/guzzle/psr7/tree/2.13.2"
},
"funding": [
{
@@ -2518,30 +2746,31 @@
"type": "tidelift"
}
],
- "time": "2026-03-10T16:41:02+00:00"
+ "time": "2026-10-17T23:49:46+00:00",
+ "published-time": "2026-10-17T23:51:00+00:00"
},
{
"name": "guzzlehttp/uri-template",
- "version": "v1.0.5",
+ "version": "v2.0.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/uri-template.git",
- "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1"
+ "reference": "7a466ad606491eb6528c717482f7cca77f1851f3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/uri-template/zipball/4f4bbd4e7172148801e76e3decc1e559bdee34e1",
- "reference": "4f4bbd4e7172148801e76e3decc1e559bdee34e1",
+ "url": "https://api.github.com/repos/guzzle/uri-template/zipball/7a466ad606491eb6528c717482f7cca77f1851f3",
+ "reference": "7a466ad606491eb6528c717482f7cca77f1851f3",
"shasum": ""
},
"require": {
- "php": "^7.2.5 || ^8.0",
- "symfony/polyfill-php80": "^1.24"
+ "php": "^7.4 || ^8.0",
+ "symfony/polyfill-php80": "^1.25"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
- "phpunit/phpunit": "^8.5.44 || ^9.6.25",
- "uri-template/tests": "1.0.0"
+ "phpunit/phpunit": "^9.6.34",
+ "uri-template/tests": "1.0.2"
},
"type": "library",
"extra": {
@@ -2588,7 +2817,7 @@
],
"support": {
"issues": "https://github.com/guzzle/uri-template/issues",
- "source": "https://github.com/guzzle/uri-template/tree/v1.0.5"
+ "source": "https://github.com/guzzle/uri-template/tree/v2.0.1"
},
"funding": [
{
@@ -2604,28 +2833,33 @@
"type": "tidelift"
}
],
- "time": "2025-08-22T14:27:06+00:00"
+ "time": "2026-08-24T17:13:02+00:00",
+ "published-time": "2026-08-24T17:13:22+00:00"
},
{
"name": "hollodotme/fast-cgi-client",
- "version": "v3.1.7",
+ "version": "v4.0.0",
"source": {
"type": "git",
"url": "https://github.com/hollodotme/fast-cgi-client.git",
- "reference": "062182d4eda73c161cc2839783acc83096ec0f37"
+ "reference": "b65cb9ba2f12ad456478813fe1550022b171dc9f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/hollodotme/fast-cgi-client/zipball/062182d4eda73c161cc2839783acc83096ec0f37",
- "reference": "062182d4eda73c161cc2839783acc83096ec0f37",
+ "url": "https://api.github.com/repos/hollodotme/fast-cgi-client/zipball/b65cb9ba2f12ad456478813fe1550022b171dc9f",
+ "reference": "b65cb9ba2f12ad456478813fe1550022b171dc9f",
"shasum": ""
},
"require": {
+ "ext-fileinfo": "*",
"ext-json": "*",
- "php": ">=7.1"
+ "php": ">=8.0"
},
"require-dev": {
- "ext-xdebug": ">=2.6.0"
+ "ext-xdebug": ">=3.1",
+ "phpstan/phpstan": "^2.1",
+ "phpunit/phpunit": "^9",
+ "squizlabs/php_codesniffer": "^4.0"
},
"type": "library",
"autoload": {
@@ -2652,41 +2886,47 @@
],
"support": {
"issues": "https://github.com/hollodotme/fast-cgi-client/issues",
- "source": "https://github.com/hollodotme/fast-cgi-client/tree/v3.1.7"
+ "source": "https://github.com/hollodotme/fast-cgi-client/tree/v4.0.0"
},
- "time": "2021-12-07T10:10:20+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/hollodotme",
+ "type": "github"
+ }
+ ],
+ "time": "2026-10-05T12:05:19+00:00",
+ "published-time": "2026-10-05T12:05:43+00:00"
},
{
"name": "inertiajs/inertia-laravel",
- "version": "v3.1.0",
+ "version": "v3.7.0",
"source": {
"type": "git",
"url": "https://github.com/inertiajs/inertia-laravel.git",
- "reference": "f588ce4a5beb25d166f4e372bac0c7f46a4f52ac"
+ "reference": "9d3f9060c1614565eb4d3a3208015ed01de347bb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/inertiajs/inertia-laravel/zipball/f588ce4a5beb25d166f4e372bac0c7f46a4f52ac",
- "reference": "f588ce4a5beb25d166f4e372bac0c7f46a4f52ac",
+ "url": "https://api.github.com/repos/inertiajs/inertia-laravel/zipball/9d3f9060c1614565eb4d3a3208015ed01de347bb",
+ "reference": "9d3f9060c1614565eb4d3a3208015ed01de347bb",
"shasum": ""
},
"require": {
"ext-json": "*",
- "laravel/framework": "^11.0|^12.0|^13.0",
+ "laravel/framework": "^11.35|^12.0|^13.0",
"php": "^8.2.0",
"symfony/console": "^7.0|^8.0"
},
"conflict": {
- "laravel/boost": "<2.2.0"
+ "laravel/boost": "<2.5.0"
},
"require-dev": {
- "guzzlehttp/guzzle": "^7.2",
+ "guzzlehttp/guzzle": "^7.15.2|^8.0",
"larastan/larastan": "^3.0",
"laravel/pint": "^1.16",
"mockery/mockery": "^1.3.3",
"orchestra/testbench": "^9.2|^10.0|^11.0",
- "phpunit/phpunit": "^11.5|^12.0",
- "roave/security-advisories": "dev-master"
+ "phpunit/phpunit": "^11.5|^12.0"
},
"suggest": {
"ext-pcntl": "Recommended when running the Inertia SSR server via the `inertia:start-ssr` artisan command."
@@ -2725,41 +2965,189 @@
],
"support": {
"issues": "https://github.com/inertiajs/inertia-laravel/issues",
- "source": "https://github.com/inertiajs/inertia-laravel/tree/v3.1.0"
+ "source": "https://github.com/inertiajs/inertia-laravel/tree/v3.7.0"
},
- "time": "2026-04-30T15:30:29+00:00"
+ "time": "2026-11-02T10:29:10+00:00",
+ "published-time": "2026-11-02T10:45:07+00:00"
},
{
- "name": "laminas/laminas-diactoros",
- "version": "3.8.0",
+ "name": "intervention/gif",
+ "version": "5.0.1",
"source": {
"type": "git",
- "url": "https://github.com/laminas/laminas-diactoros.git",
- "reference": "60c182916b2749480895601649563970f3f12ec4"
+ "url": "https://github.com/Intervention/gif.git",
+ "reference": "bb395af960deffe64d70c976b4df9283f68e762d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/60c182916b2749480895601649563970f3f12ec4",
- "reference": "60c182916b2749480895601649563970f3f12ec4",
+ "url": "https://api.github.com/repos/Intervention/gif/zipball/bb395af960deffe64d70c976b4df9283f68e762d",
+ "reference": "bb395af960deffe64d70c976b4df9283f68e762d",
"shasum": ""
},
"require": {
- "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
- "psr/http-factory": "^1.1",
- "psr/http-message": "^1.1 || ^2.0"
- },
- "conflict": {
- "amphp/amp": "<2.6.4"
- },
- "provide": {
- "psr/http-factory-implementation": "^1.0",
- "psr/http-message-implementation": "^1.1 || ^2.0"
+ "php": "^8.3"
},
"require-dev": {
- "ext-curl": "*",
- "ext-dom": "*",
- "ext-gd": "*",
- "ext-libxml": "*",
+ "phpstan/phpstan": "^2.1",
+ "phpunit/phpunit": "^12.0",
+ "slevomat/coding-standard": "~8.0",
+ "squizlabs/php_codesniffer": "^4"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Intervention\\Gif\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Oliver Vogel",
+ "email": "oliver@intervention.io",
+ "homepage": "https://intervention.io/"
+ }
+ ],
+ "description": "PHP GIF Encoder/Decoder",
+ "homepage": "https://github.com/intervention/gif",
+ "keywords": [
+ "animation",
+ "gd",
+ "gif",
+ "image"
+ ],
+ "support": {
+ "issues": "https://github.com/Intervention/gif/issues",
+ "source": "https://github.com/Intervention/gif/tree/5.0.1"
+ },
+ "funding": [
+ {
+ "url": "https://paypal.me/interventionio",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/Intervention",
+ "type": "github"
+ },
+ {
+ "url": "https://ko-fi.com/interventionphp",
+ "type": "ko_fi"
+ }
+ ],
+ "time": "2026-05-03T06:04:47+00:00",
+ "published-time": "2026-05-09T08:25:31+00:00"
+ },
+ {
+ "name": "intervention/image",
+ "version": "4.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Intervention/image.git",
+ "reference": "3a47838f2e0f4ec6c8c9b43a5d73ac985b975830"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Intervention/image/zipball/3a47838f2e0f4ec6c8c9b43a5d73ac985b975830",
+ "reference": "3a47838f2e0f4ec6c8c9b43a5d73ac985b975830",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "intervention/gif": "^5",
+ "php": "^8.3"
+ },
+ "require-dev": {
+ "intervention/coding-standard": "^1",
+ "mockery/mockery": "^1.6",
+ "phpstan/phpstan": "^2.1",
+ "phpunit/phpunit": "^12.0",
+ "psr/http-message": "^2"
+ },
+ "suggest": {
+ "ext-exif": "Recommended to be able to read EXIF data properly."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Intervention\\Image\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Oliver Vogel",
+ "email": "oliver@intervention.io",
+ "homepage": "https://intervention.io"
+ }
+ ],
+ "description": "PHP Image Processing",
+ "homepage": "https://image.intervention.io",
+ "keywords": [
+ "gd",
+ "image",
+ "imagick",
+ "resize",
+ "thumbnail",
+ "watermark"
+ ],
+ "support": {
+ "issues": "https://github.com/Intervention/image/issues",
+ "source": "https://github.com/Intervention/image/tree/4.4.1"
+ },
+ "funding": [
+ {
+ "url": "https://paypal.me/interventionio",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/Intervention",
+ "type": "github"
+ },
+ {
+ "url": "https://ko-fi.com/interventionphp",
+ "type": "ko_fi"
+ }
+ ],
+ "time": "2026-10-30T13:38:01+00:00",
+ "published-time": "2026-10-30T13:41:47+00:00"
+ },
+ {
+ "name": "laminas/laminas-diactoros",
+ "version": "3.10.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laminas/laminas-diactoros.git",
+ "reference": "5939fbc03e9043e5d27050ed584de263b869c57f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laminas/laminas-diactoros/zipball/5939fbc03e9043e5d27050ed584de263b869c57f",
+ "reference": "5939fbc03e9043e5d27050ed584de263b869c57f",
+ "shasum": ""
+ },
+ "require": {
+ "php": "~8.3.0 || ~8.4.0 || ~8.5.0 || ~8.6.0",
+ "psr/http-factory": "^1.1",
+ "psr/http-message": "^1.1 || ^2.0"
+ },
+ "conflict": {
+ "amphp/amp": "<2.6.4"
+ },
+ "provide": {
+ "psr/http-factory-implementation": "^1.0",
+ "psr/http-message-implementation": "^1.1 || ^2.0"
+ },
+ "require-dev": {
+ "boundwize/structarmed": "^0.17.7",
+ "ext-curl": "*",
+ "ext-dom": "*",
+ "ext-gd": "*",
+ "ext-libxml": "*",
"http-interop/http-factory-tests": "^2.2.0",
"laminas/laminas-coding-standard": "~3.1.0",
"php-http/psr7-integration-tests": "^1.4.0",
@@ -2811,28 +3199,112 @@
},
"funding": [
{
- "url": "https://funding.communitybridge.org/projects/laminas-project",
- "type": "community_bridge"
+ "url": "https://crowdfunding.linuxfoundation.org/initiatives/laminas-project",
+ "type": "custom"
+ }
+ ],
+ "time": "2026-11-04T10:34:30+00:00",
+ "published-time": "2026-11-04T10:56:11+00:00"
+ },
+ {
+ "name": "laravel/ai",
+ "version": "v1.4.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/ai.git",
+ "reference": "307b218665592ab5532f682175e9dfa52e5647ee"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/ai/zipball/307b218665592ab5532f682175e9dfa52e5647ee",
+ "reference": "307b218665592ab5532f682175e9dfa52e5647ee",
+ "shasum": ""
+ },
+ "require": {
+ "illuminate/console": "^12.0|^13.0",
+ "illuminate/container": "^12.0|^13.0",
+ "illuminate/contracts": "^12.0|^13.0",
+ "illuminate/database": "^12.0|^13.0",
+ "illuminate/filesystem": "^12.0|^13.0",
+ "illuminate/json-schema": "^12.62|^13.15",
+ "illuminate/support": "^12.0|^13.0",
+ "laravel/prompts": "^0.3.6",
+ "laravel/serializable-closure": "^2.0",
+ "php": "^8.3",
+ "symfony/yaml": "^7.2|^8.0"
+ },
+ "conflict": {
+ "aws/aws-sdk-php": "<3.369.1",
+ "laravel/mcp": "<1.0"
+ },
+ "require-dev": {
+ "aws/aws-sdk-php": "^3.369.1",
+ "driftingly/rector-laravel": "^2.5",
+ "jasonmccreary/double": "^1.0",
+ "laravel/mcp": "^1.0",
+ "laravel/pint": "^1.26",
+ "orchestra/testbench": "^10.6|^11.0",
+ "pestphp/pest": "^3.0|^4.0",
+ "pestphp/pest-plugin-laravel": "^3.0|^4.0",
+ "phpstan/phpstan": "^2.1",
+ "rector/rector": "^2.5"
+ },
+ "suggest": {
+ "aws/aws-sdk-php": "Required to use the Bedrock provider.",
+ "laravel/mcp": "Required to use MCP client tools or MCP server tools with Laravel AI agents."
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Laravel\\Ai\\AiServiceProvider"
+ ]
+ },
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "functions.php"
+ ],
+ "psr-4": {
+ "Laravel\\Ai\\": "src/"
}
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "The official AI SDK for Laravel.",
+ "homepage": "https://github.com/laravel/ai",
+ "keywords": [
+ "ai",
+ "laravel"
],
- "time": "2025-10-12T15:31:36+00:00"
+ "support": {
+ "issues": "https://github.com/laravel/ai/issues",
+ "source": "https://github.com/laravel/ai"
+ },
+ "time": "2026-11-09T13:10:36+00:00",
+ "published-time": "2026-11-10T19:25:19+00:00"
},
{
"name": "laravel/framework",
- "version": "v13.8.0",
+ "version": "v13.42.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/framework.git",
- "reference": "e7db333a025a1e93ebca7744953069d7719f4bcf"
+ "reference": "f5c01f6b63803f16f38ebb31622c4fea412bd022"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/framework/zipball/e7db333a025a1e93ebca7744953069d7719f4bcf",
- "reference": "e7db333a025a1e93ebca7744953069d7719f4bcf",
+ "url": "https://api.github.com/repos/laravel/framework/zipball/f5c01f6b63803f16f38ebb31622c4fea412bd022",
+ "reference": "f5c01f6b63803f16f38ebb31622c4fea412bd022",
"shasum": ""
},
"require": {
- "brick/math": "^0.14.2 || ^0.15 || ^0.16 || ^0.17",
+ "brick/math": "^0.14.2 || ^0.15 || ^0.16 || ^0.17 || ^0.18 || ^0.19 || ^0.20 || ^1.0",
"composer-runtime-api": "^2.2",
"doctrine/inflector": "^2.0.5",
"dragonmantank/cron-expression": "^3.4",
@@ -2845,20 +3317,22 @@
"ext-session": "*",
"ext-tokenizer": "*",
"fruitcake/php-cors": "^1.3",
- "guzzlehttp/guzzle": "^7.8.2",
- "guzzlehttp/promises": "^2.0.3",
- "guzzlehttp/uri-template": "^1.0",
- "laravel/prompts": "^0.3.0",
+ "guzzlehttp/guzzle": "^7.8.2 || ^8.0",
+ "guzzlehttp/promises": "^2.0.3 || ^3.0",
+ "guzzlehttp/psr7": "^2.9 || ^3.0",
+ "guzzlehttp/uri-template": "^1.0 || ^2.0",
+ "laravel/prompts": "^0.3.25",
"laravel/serializable-closure": "^2.0.10",
"league/commonmark": "^2.8.1",
"league/flysystem": "^3.25.1",
"league/flysystem-local": "^3.25.1",
- "league/uri": "^7.5.1",
- "monolog/monolog": "^3.0",
+ "league/uri": "^7.6",
+ "monolog/monolog": "^3.10",
"nesbot/carbon": "^3.8.4",
"nunomaduro/termwind": "^2.0",
"php": "^8.3",
"psr/container": "^1.1.1 || ^2.0.1",
+ "psr/http-message": "^1.0 || ^2.0",
"psr/log": "^1.0 || ^2.0 || ^3.0",
"psr/simple-cache": "^1.0 || ^2.0 || ^3.0",
"ramsey/uuid": "^4.7",
@@ -2907,6 +3381,7 @@
"illuminate/filesystem": "self.version",
"illuminate/hashing": "self.version",
"illuminate/http": "self.version",
+ "illuminate/image": "self.version",
"illuminate/json-schema": "self.version",
"illuminate/log": "self.version",
"illuminate/macroable": "self.version",
@@ -2928,11 +3403,12 @@
"spatie/once": "*"
},
"require-dev": {
- "ably/ably-php": "^1.0",
+ "ably/pubsub-server": "^1.0|^2.0",
"aws/aws-sdk-php": "^3.322.9",
"ext-gmp": "*",
"fakerphp/faker": "^1.24",
- "guzzlehttp/psr7": "^2.4",
+ "intervention/image": "^4.2",
+ "jasonmccreary/double": "^1.1",
"laravel/pint": "^1.18",
"league/flysystem-aws-s3-v3": "^3.25.1",
"league/flysystem-ftp": "^3.25.1",
@@ -2941,21 +3417,23 @@
"league/flysystem-sftp-v3": "^3.25.1",
"mockery/mockery": "^1.6.10",
"opis/json-schema": "^2.4.1",
- "orchestra/testbench-core": "^11.0.0",
+ "orchestra/testbench-core": "^11.6.0",
"pda/pheanstalk": "^7.0.0 || ^8.0.0",
"php-http/discovery": "^1.15",
- "phpstan/phpstan": "^2.0",
+ "phpstan/phpstan": "2.3.5",
"phpunit/phpunit": "^11.5.50 || ^12.5.8 || ^13.0.3",
"predis/predis": "^2.3 || ^3.0",
- "rector/rector": "^2.3",
+ "rector/rector": "2.6.3",
"resend/resend-php": "^1.0",
"symfony/cache": "^7.4.0 || ^8.0.0",
"symfony/http-client": "^7.4.0 || ^8.0.0",
+ "symfony/mercure": "^0.8.0",
"symfony/psr-http-message-bridge": "^7.4.0 || ^8.0.0",
- "symfony/translation": "^7.4.0 || ^8.0.0"
+ "symfony/translation": "^7.4.0 || ^8.0.0",
+ "web-token/jwt-library": "^4.1"
},
"suggest": {
- "ably/ably-php": "Required to use the Ably broadcast driver (^1.0).",
+ "ably/pubsub-server": "Required to use the Ably broadcast driver (^1.0|^2.0).",
"aws/aws-sdk-php": "Required to use the SQS queue driver, DynamoDb failed job storage, and SES mail driver (^3.322.9).",
"brianium/paratest": "Required to run tests in parallel (^7.0 || ^8.0).",
"ext-apcu": "Required to use the APC cache driver.",
@@ -2969,6 +3447,7 @@
"ext-redis": "Required to use the Redis cache and queue drivers (^4.0 || ^5.0 || ^6.0).",
"fakerphp/faker": "Required to generate fake data using the fake() helper (^1.23).",
"filp/whoops": "Required for friendly error pages in development (^2.14.3).",
+ "intervention/image": "Required to use the image processing features (^4.2).",
"laravel/tinker": "Required to use the tinker console command (^2.0).",
"league/flysystem-aws-s3-v3": "Required to use the Flysystem S3 driver (^3.25.1).",
"league/flysystem-ftp": "Required to use the Flysystem FTP driver (^3.25.1).",
@@ -2980,7 +3459,6 @@
"php-http/discovery": "Required to use PSR-7 bridging features (^1.15).",
"phpunit/phpunit": "Required to use assertions and run tests (^11.5.50 || ^12.5.8 || ^13.0.3).",
"predis/predis": "Required to use the predis connector (^2.3 || ^3.0).",
- "psr/http-message": "Required to allow Storage::put to accept a StreamInterface (^1.0).",
"pusher/pusher-php-server": "Required to use the Pusher broadcast driver (^6.0 || ^7.0).",
"resend/resend-php": "Required to enable support for the Resend mail transport (^0.10.0 || ^1.0).",
"spatie/fork": "Required to use the 'fork' concurrency driver (^1.2).",
@@ -2988,8 +3466,10 @@
"symfony/filesystem": "Required to enable support for relative symbolic links (^7.4 || ^8.0).",
"symfony/http-client": "Required to enable support for the Symfony API mail transports (^7.4 || ^8.0).",
"symfony/mailgun-mailer": "Required to enable support for the Mailgun mail transport (^7.4 || ^8.0).",
+ "symfony/mercure": "Required to use the Mercure broadcast driver (^0.8).",
"symfony/postmark-mailer": "Required to enable support for the Postmark mail transport (^7.4 || ^8.0).",
- "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.4 || ^8.0)."
+ "symfony/psr-http-message-bridge": "Required to use PSR-7 bridging features (^7.4 || ^8.0).",
+ "web-token/jwt-library": "Required to sign Mercure JWTs and use end-to-end encrypted channels (^4.1)."
},
"type": "library",
"extra": {
@@ -3039,36 +3519,37 @@
"issues": "https://github.com/laravel/framework/issues",
"source": "https://github.com/laravel/framework"
},
- "time": "2026-05-05T21:01:14+00:00"
+ "time": "2026-11-10T15:54:30+00:00",
+ "published-time": "2026-11-10T15:55:04+00:00"
},
{
"name": "laravel/octane",
- "version": "v2.17.3",
+ "version": "v2.24.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/octane.git",
- "reference": "040bfbebfdf545a752376f4396d942cd6f7da036"
+ "reference": "d70840b9ae47a0003e814e15afcae83e016e5c16"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/octane/zipball/040bfbebfdf545a752376f4396d942cd6f7da036",
- "reference": "040bfbebfdf545a752376f4396d942cd6f7da036",
+ "url": "https://api.github.com/repos/laravel/octane/zipball/d70840b9ae47a0003e814e15afcae83e016e5c16",
+ "reference": "d70840b9ae47a0003e814e15afcae83e016e5c16",
"shasum": ""
},
"require": {
"laminas/laminas-diactoros": "^3.0",
- "laravel/framework": "^10.10.1|^11.0|^12.0|^13.0",
+ "laravel/framework": "^12.69.0|^13.30.0",
"laravel/prompts": "^0.1.24|^0.2.0|^0.3.0",
"laravel/serializable-closure": "^1.3|^2.0",
"nesbot/carbon": "^2.66.0|^3.0",
- "php": "^8.1.0",
+ "php": "^8.2.0",
"symfony/console": "^6.0|^7.0|^8.0",
"symfony/psr-http-message-bridge": "^2.2.0|^6.4|^7.0|^8.0"
},
"conflict": {
- "spiral/roadrunner": "<2023.1.0",
+ "spiral/roadrunner": ">=2020.1.0 <2023.1.0",
"spiral/roadrunner-cli": "<2.6.0",
- "spiral/roadrunner-http": "<3.3.0"
+ "spiral/roadrunner-http": "<3.4.0"
},
"require-dev": {
"guzzlehttp/guzzle": "^7.6.1",
@@ -3077,11 +3558,11 @@
"laravel/socialite": "^5.6.1",
"livewire/livewire": "^2.12.3|^3.0",
"nunomaduro/collision": "^6.4.0|^7.5.2|^8.0",
- "orchestra/testbench": "^8.21|^9.0|^10.0|^11.0",
+ "orchestra/testbench": "^10.0|^11.0",
"phpstan/phpstan": "^2.1.7",
"phpunit/phpunit": "^10.4|^11.5|^12.0|^13.0",
"spiral/roadrunner-cli": "^2.6.0",
- "spiral/roadrunner-http": "^3.3.0"
+ "spiral/roadrunner-http": "^4.2.0"
},
"bin": [
"bin/roadrunner-worker",
@@ -3128,20 +3609,98 @@
"issues": "https://github.com/laravel/octane/issues",
"source": "https://github.com/laravel/octane"
},
- "time": "2026-04-23T14:52:16+00:00"
+ "time": "2026-11-10T14:46:26+00:00",
+ "published-time": "2026-11-10T16:07:29+00:00"
+ },
+ {
+ "name": "laravel/passport",
+ "version": "v13.11.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/passport.git",
+ "reference": "cd4755d6b80b9eae0ae290909750e8e73e8a4752"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/passport/zipball/cd4755d6b80b9eae0ae290909750e8e73e8a4752",
+ "reference": "cd4755d6b80b9eae0ae290909750e8e73e8a4752",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-openssl": "*",
+ "firebase/php-jwt": "^6.4|^7.0",
+ "illuminate/auth": "^11.35|^12.0|^13.0",
+ "illuminate/console": "^11.35|^12.0|^13.0",
+ "illuminate/container": "^11.35|^12.0|^13.0",
+ "illuminate/contracts": "^11.35|^12.0|^13.0",
+ "illuminate/cookie": "^11.35|^12.0|^13.0",
+ "illuminate/database": "^11.35|^12.0|^13.0",
+ "illuminate/encryption": "^11.35|^12.0|^13.0",
+ "illuminate/http": "^11.35|^12.0|^13.0",
+ "illuminate/support": "^11.35|^12.0|^13.0",
+ "league/oauth2-server": "^9.2",
+ "php": "^8.2",
+ "php-http/discovery": "^1.20",
+ "phpseclib/phpseclib": "4.0.1",
+ "psr/http-factory-implementation": "*",
+ "symfony/console": "^7.1|^8.0",
+ "symfony/psr-http-message-bridge": "^7.1|^8.0"
+ },
+ "require-dev": {
+ "jasonmccreary/double": "^1.0",
+ "orchestra/testbench": "^9.15|^10.8|^11.0",
+ "phpstan/phpstan": "^2.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Laravel\\Passport\\PassportServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Passport\\": "src/",
+ "Laravel\\Passport\\Database\\Factories\\": "database/factories/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ }
+ ],
+ "description": "Laravel Passport provides OAuth2 server support to Laravel.",
+ "keywords": [
+ "laravel",
+ "oauth",
+ "passport"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/passport/issues",
+ "source": "https://github.com/laravel/passport"
+ },
+ "time": "2026-10-14T20:09:36+00:00",
+ "published-time": "2026-11-10T16:08:11+00:00"
},
{
"name": "laravel/prompts",
- "version": "v0.3.17",
+ "version": "v0.3.27",
"source": {
"type": "git",
"url": "https://github.com/laravel/prompts.git",
- "reference": "6a82ac19a28b916ae0885828795dbd4c59d9a818"
+ "reference": "abdfc75a1ae6c6f21522daed50da7124cbff09d2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/prompts/zipball/6a82ac19a28b916ae0885828795dbd4c59d9a818",
- "reference": "6a82ac19a28b916ae0885828795dbd4c59d9a818",
+ "url": "https://api.github.com/repos/laravel/prompts/zipball/abdfc75a1ae6c6f21522daed50da7124cbff09d2",
+ "reference": "abdfc75a1ae6c6f21522daed50da7124cbff09d2",
"shasum": ""
},
"require": {
@@ -3184,23 +3743,23 @@
],
"description": "Add beautiful and user-friendly forms to your command-line applications.",
"support": {
- "issues": "https://github.com/laravel/prompts/issues",
- "source": "https://github.com/laravel/prompts/tree/v0.3.17"
+ "source": "https://github.com/laravel/prompts/tree/v0.3.27"
},
- "time": "2026-04-20T16:07:33+00:00"
+ "time": "2026-11-09T16:07:10+00:00",
+ "published-time": "2026-11-09T16:09:07+00:00"
},
{
"name": "laravel/serializable-closure",
- "version": "v2.0.13",
+ "version": "v2.2.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/serializable-closure.git",
- "reference": "b566ee0dd251f3c4078bed003a7ce015f5ea6dce"
+ "reference": "2bfb44e8af009b553ed2c060c94b0bc3c67b4769"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/b566ee0dd251f3c4078bed003a7ce015f5ea6dce",
- "reference": "b566ee0dd251f3c4078bed003a7ce015f5ea6dce",
+ "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/2bfb44e8af009b553ed2c060c94b0bc3c67b4769",
+ "reference": "2bfb44e8af009b553ed2c060c94b0bc3c67b4769",
"shasum": ""
},
"require": {
@@ -3248,20 +3807,21 @@
"issues": "https://github.com/laravel/serializable-closure/issues",
"source": "https://github.com/laravel/serializable-closure"
},
- "time": "2026-04-16T14:03:50+00:00"
+ "time": "2026-10-14T21:20:29+00:00",
+ "published-time": "2026-11-10T16:11:08+00:00"
},
{
"name": "laravel/tinker",
- "version": "v3.0.2",
+ "version": "v3.1.0",
"source": {
"type": "git",
"url": "https://github.com/laravel/tinker.git",
- "reference": "4faba77764bd33411735936acdf30446d058c78b"
+ "reference": "5fab2518167975b302e10d1fdf9a8c8113849201"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/tinker/zipball/4faba77764bd33411735936acdf30446d058c78b",
- "reference": "4faba77764bd33411735936acdf30446d058c78b",
+ "url": "https://api.github.com/repos/laravel/tinker/zipball/5fab2518167975b302e10d1fdf9a8c8113849201",
+ "reference": "5fab2518167975b302e10d1fdf9a8c8113849201",
"shasum": ""
},
"require": {
@@ -3269,13 +3829,12 @@
"illuminate/contracts": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
"illuminate/support": "^8.0|^9.0|^10.0|^11.0|^12.0|^13.0",
"php": "^8.1",
- "psy/psysh": "^0.12.0",
+ "psy/psysh": "^0.12.19",
"symfony/var-dumper": "^5.4|^6.0|^7.0|^8.0"
},
"require-dev": {
- "mockery/mockery": "~1.3.3|^1.4.2",
"phpstan/phpstan": "^1.10",
- "phpunit/phpunit": "^10.5|^11.5"
+ "phpunit/phpunit": "^10.5|^11.5|^12.5|^13.4"
},
"suggest": {
"illuminate/database": "The Illuminate Database package (^8.0|^9.0|^10.0|^11.0|^12.0|^13.0)."
@@ -3315,22 +3874,23 @@
],
"support": {
"issues": "https://github.com/laravel/tinker/issues",
- "source": "https://github.com/laravel/tinker/tree/v3.0.2"
+ "source": "https://github.com/laravel/tinker/tree/v3.1.0"
},
- "time": "2026-03-17T14:54:13+00:00"
+ "time": "2026-10-16T11:13:33+00:00",
+ "published-time": "2026-11-10T16:12:15+00:00"
},
{
"name": "laravel/wayfinder",
- "version": "v0.1.18",
+ "version": "v0.1.23",
"source": {
"type": "git",
"url": "https://github.com/laravel/wayfinder.git",
- "reference": "29598f386cdeef2cf4144f32bdaefc7542ac38ce"
+ "reference": "e7b0914d194201e54ba320ef38137b47a7daca98"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/laravel/wayfinder/zipball/29598f386cdeef2cf4144f32bdaefc7542ac38ce",
- "reference": "29598f386cdeef2cf4144f32bdaefc7542ac38ce",
+ "url": "https://api.github.com/repos/laravel/wayfinder/zipball/e7b0914d194201e54ba320ef38137b47a7daca98",
+ "reference": "e7b0914d194201e54ba320ef38137b47a7daca98",
"shasum": ""
},
"require": {
@@ -3341,6 +3901,9 @@
"php": "^8.2",
"phpstan/phpdoc-parser": "^2.3"
},
+ "conflict": {
+ "laravel/boost": "<2.5.0"
+ },
"require-dev": {
"laravel/pint": "^1.21",
"orchestra/testbench": "^11.0|^10.1|^9.0"
@@ -3380,20 +3943,95 @@
"issues": "https://github.com/laravel/wayfinder/issues",
"source": "https://github.com/laravel/wayfinder"
},
- "time": "2026-05-08T14:41:03+00:00"
+ "time": "2026-10-16T14:24:32+00:00",
+ "published-time": "2026-10-16T14:28:53+00:00"
+ },
+ {
+ "name": "lcobucci/jwt",
+ "version": "5.6.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/lcobucci/jwt.git",
+ "reference": "482760068e5a55a9045feddb3e2fc3f878cbd577"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/lcobucci/jwt/zipball/482760068e5a55a9045feddb3e2fc3f878cbd577",
+ "reference": "482760068e5a55a9045feddb3e2fc3f878cbd577",
+ "shasum": ""
+ },
+ "require": {
+ "ext-openssl": "*",
+ "ext-sodium": "*",
+ "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
+ "psr/clock": "^1.0"
+ },
+ "require-dev": {
+ "infection/infection": "^0.29",
+ "lcobucci/clock": "^3.2",
+ "lcobucci/coding-standard": "^11.0",
+ "phpbench/phpbench": "^1.2",
+ "phpstan/extension-installer": "^1.2",
+ "phpstan/phpstan": "^1.10.7",
+ "phpstan/phpstan-deprecation-rules": "^1.1.3",
+ "phpstan/phpstan-phpunit": "^1.3.10",
+ "phpstan/phpstan-strict-rules": "^1.5.0",
+ "phpunit/phpunit": "^11.1"
+ },
+ "suggest": {
+ "lcobucci/clock": ">= 3.2"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Lcobucci\\JWT\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Luís Cobucci",
+ "email": "lcobucci@gmail.com",
+ "role": "Developer"
+ }
+ ],
+ "description": "A simple library to work with JSON Web Token and JSON Web Signature",
+ "keywords": [
+ "JWS",
+ "jwt"
+ ],
+ "support": {
+ "issues": "https://github.com/lcobucci/jwt/issues",
+ "source": "https://github.com/lcobucci/jwt/tree/5.6.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/lcobucci",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/lcobucci",
+ "type": "patreon"
+ }
+ ],
+ "time": "2026-10-10T09:42:14+00:00",
+ "published-time": "2026-10-10T09:43:25+00:00"
},
{
"name": "league/commonmark",
- "version": "2.8.2",
+ "version": "2.10.7",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/commonmark.git",
- "reference": "59fb075d2101740c337c7216e3f32b36c204218b"
+ "reference": "8eb53e906fd60c67038d22f1f1cab420ed58b8be"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/59fb075d2101740c337c7216e3f32b36c204218b",
- "reference": "59fb075d2101740c337c7216e3f32b36c204218b",
+ "url": "https://api.github.com/repos/thephpleague/commonmark/zipball/8eb53e906fd60c67038d22f1f1cab420ed58b8be",
+ "reference": "8eb53e906fd60c67038d22f1f1cab420ed58b8be",
"shasum": ""
},
"require": {
@@ -3415,8 +4053,8 @@
"github/gfm": "0.29.0",
"michelf/php-markdown": "^1.4 || ^2.0",
"nyholm/psr7": "^1.5",
- "phpstan/phpstan": "^1.8.2",
- "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0",
+ "phpstan/phpstan": "^2.0.0",
+ "phpunit/phpunit": "^9.5.21 || ^10.5.9 || ^11.0.0 || ^12.0.0 || ^13.0.0",
"scrutinizer/ocular": "^1.8.1",
"symfony/finder": "^5.3 | ^6.0 | ^7.0 || ^8.0",
"symfony/process": "^5.4 | ^6.0 | ^7.0 || ^8.0",
@@ -3430,7 +4068,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "2.9-dev"
+ "dev-main": "2.11-dev"
}
},
"autoload": {
@@ -3487,7 +4125,8 @@
"type": "tidelift"
}
],
- "time": "2026-03-19T13:16:38+00:00"
+ "time": "2026-10-31T13:35:37+00:00",
+ "published-time": "2026-10-31T13:35:57+00:00"
},
{
"name": "league/config",
@@ -3569,26 +4208,87 @@
"type": "github"
}
],
- "time": "2022-12-11T20:36:23+00:00"
+ "time": "2022-12-11T20:36:23+00:00",
+ "published-time": "2022-12-11T20:36:45+00:00"
},
{
- "name": "league/flysystem",
- "version": "3.33.0",
+ "name": "league/event",
+ "version": "3.0.3",
"source": {
"type": "git",
- "url": "https://github.com/thephpleague/flysystem.git",
- "reference": "570b8871e0ce693764434b29154c54b434905350"
+ "url": "https://github.com/thephpleague/event.git",
+ "reference": "ec38ff7ea10cad7d99a79ac937fbcffb9334c210"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/570b8871e0ce693764434b29154c54b434905350",
- "reference": "570b8871e0ce693764434b29154c54b434905350",
+ "url": "https://api.github.com/repos/thephpleague/event/zipball/ec38ff7ea10cad7d99a79ac937fbcffb9334c210",
+ "reference": "ec38ff7ea10cad7d99a79ac937fbcffb9334c210",
"shasum": ""
},
"require": {
- "league/flysystem-local": "^3.0.0",
- "league/mime-type-detection": "^1.0.0",
- "php": "^8.0.2"
+ "php": ">=7.2.0",
+ "psr/event-dispatcher": "^1.0"
+ },
+ "provide": {
+ "psr/event-dispatcher-implementation": "1.0"
+ },
+ "require-dev": {
+ "friendsofphp/php-cs-fixer": "^2.16",
+ "phpstan/phpstan": "^0.12.45",
+ "phpunit/phpunit": "^8.5"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "League\\Event\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Frank de Jonge",
+ "email": "info@frenky.net"
+ }
+ ],
+ "description": "Event package",
+ "keywords": [
+ "emitter",
+ "event",
+ "listener"
+ ],
+ "support": {
+ "issues": "https://github.com/thephpleague/event/issues",
+ "source": "https://github.com/thephpleague/event/tree/3.0.3"
+ },
+ "time": "2024-09-04T16:06:53+00:00",
+ "published-time": "2024-09-04T20:43:40+00:00"
+ },
+ {
+ "name": "league/flysystem",
+ "version": "3.36.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/flysystem.git",
+ "reference": "f7fb152932f30072d573510cbd4dd657d6475b25"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/flysystem/zipball/f7fb152932f30072d573510cbd4dd657d6475b25",
+ "reference": "f7fb152932f30072d573510cbd4dd657d6475b25",
+ "shasum": ""
+ },
+ "require": {
+ "league/flysystem-local": "^3.0.0",
+ "league/mime-type-detection": "^1.0.0",
+ "php": "^8.0.2"
},
"conflict": {
"async-aws/core": "<1.19.0",
@@ -3650,22 +4350,23 @@
],
"support": {
"issues": "https://github.com/thephpleague/flysystem/issues",
- "source": "https://github.com/thephpleague/flysystem/tree/3.33.0"
+ "source": "https://github.com/thephpleague/flysystem/tree/3.36.0"
},
- "time": "2026-03-25T07:59:30+00:00"
+ "time": "2026-09-02T08:00:27+00:00",
+ "published-time": "2026-09-02T08:01:40+00:00"
},
{
"name": "league/flysystem-local",
- "version": "3.31.0",
+ "version": "3.35.3",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/flysystem-local.git",
- "reference": "2f669db18a4c20c755c2bb7d3a7b0b2340488079"
+ "reference": "a099b24dce160f3b2239043d13d47c4a1a214ea4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/2f669db18a4c20c755c2bb7d3a7b0b2340488079",
- "reference": "2f669db18a4c20c755c2bb7d3a7b0b2340488079",
+ "url": "https://api.github.com/repos/thephpleague/flysystem-local/zipball/a099b24dce160f3b2239043d13d47c4a1a214ea4",
+ "reference": "a099b24dce160f3b2239043d13d47c4a1a214ea4",
"shasum": ""
},
"require": {
@@ -3699,9 +4400,10 @@
"local"
],
"support": {
- "source": "https://github.com/thephpleague/flysystem-local/tree/3.31.0"
+ "source": "https://github.com/thephpleague/flysystem-local/tree/3.35.3"
},
- "time": "2026-01-23T15:30:45+00:00"
+ "time": "2026-08-12T13:29:21+00:00",
+ "published-time": "2026-08-22T12:57:18+00:00"
},
{
"name": "league/flysystem-path-prefixing",
@@ -3747,20 +4449,21 @@
"support": {
"source": "https://github.com/thephpleague/flysystem-path-prefixing/tree/3.31.0"
},
- "time": "2026-01-23T15:30:45+00:00"
+ "time": "2026-01-23T15:30:45+00:00",
+ "published-time": "2026-01-23T15:44:49+00:00"
},
{
"name": "league/mime-type-detection",
- "version": "1.16.0",
+ "version": "1.17.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/mime-type-detection.git",
- "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9"
+ "reference": "f5f47eff7c48ed1003069a2ca67f316fb4021c76"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/2d6702ff215bf922936ccc1ad31007edc76451b9",
- "reference": "2d6702ff215bf922936ccc1ad31007edc76451b9",
+ "url": "https://api.github.com/repos/thephpleague/mime-type-detection/zipball/f5f47eff7c48ed1003069a2ca67f316fb4021c76",
+ "reference": "f5f47eff7c48ed1003069a2ca67f316fb4021c76",
"shasum": ""
},
"require": {
@@ -3770,7 +4473,7 @@
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.2",
"phpstan/phpstan": "^0.12.68",
- "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0"
+ "phpunit/phpunit": "^8.5.8 || ^9.3 || ^10.0 || ^11.0 || ^12.0"
},
"type": "library",
"autoload": {
@@ -3791,7 +4494,7 @@
"description": "Mime-type detection for Flysystem",
"support": {
"issues": "https://github.com/thephpleague/mime-type-detection/issues",
- "source": "https://github.com/thephpleague/mime-type-detection/tree/1.16.0"
+ "source": "https://github.com/thephpleague/mime-type-detection/tree/1.17.0"
},
"funding": [
{
@@ -3803,24 +4506,124 @@
"type": "tidelift"
}
],
- "time": "2024-09-21T08:32:55+00:00"
+ "time": "2026-07-09T11:49:27+00:00",
+ "published-time": "2026-07-09T11:50:09+00:00"
+ },
+ {
+ "name": "league/oauth2-server",
+ "version": "9.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/thephpleague/oauth2-server.git",
+ "reference": "9d2f6fc0a0b5aa1bb02506971d3a4ecff2c6526c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/thephpleague/oauth2-server/zipball/9d2f6fc0a0b5aa1bb02506971d3a4ecff2c6526c",
+ "reference": "9d2f6fc0a0b5aa1bb02506971d3a4ecff2c6526c",
+ "shasum": ""
+ },
+ "require": {
+ "defuse/php-encryption": "^2.4",
+ "ext-json": "*",
+ "ext-openssl": "*",
+ "lcobucci/jwt": "^5.6",
+ "league/event": "^3.0",
+ "league/uri": "^7.8",
+ "php": "~8.2.0 || ~8.3.0 || ~8.4.0 || ~8.5.0",
+ "psr/clock": "^1.0",
+ "psr/http-message": "^2.0",
+ "psr/http-server-middleware": "^1.0"
+ },
+ "replace": {
+ "league/oauth2server": "*",
+ "lncd/oauth2": "*"
+ },
+ "require-dev": {
+ "laminas/laminas-diactoros": "^3.8",
+ "paragonie/random_compat": "^9.99.100",
+ "php-parallel-lint/php-parallel-lint": "^1.4",
+ "phpstan/extension-installer": "^1.4.3",
+ "phpstan/phpstan": "^2.1.38",
+ "phpstan/phpstan-deprecation-rules": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0.12",
+ "phpstan/phpstan-strict-rules": "^2.0",
+ "phpunit/phpunit": "^11.5.50",
+ "roave/security-advisories": "dev-master",
+ "slevomat/coding-standard": "^8.27.1",
+ "squizlabs/php_codesniffer": "^4.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "League\\OAuth2\\Server\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Alex Bilbie",
+ "email": "hello@alexbilbie.com",
+ "homepage": "http://www.alexbilbie.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Andy Millington",
+ "email": "andrew@noexceptions.io",
+ "homepage": "https://www.noexceptions.io",
+ "role": "Developer"
+ }
+ ],
+ "description": "A lightweight and powerful OAuth 2.0 authorization and resource server library with support for all the core specification grants. This library will allow you to secure your API with OAuth and allow your applications users to approve apps that want to access their data from your API.",
+ "homepage": "https://oauth2.thephpleague.com/",
+ "keywords": [
+ "Authentication",
+ "api",
+ "auth",
+ "authorisation",
+ "authorization",
+ "oauth",
+ "oauth 2",
+ "oauth 2.0",
+ "oauth2",
+ "protect",
+ "resource",
+ "secure",
+ "server"
+ ],
+ "support": {
+ "issues": "https://github.com/thephpleague/oauth2-server/issues",
+ "source": "https://github.com/thephpleague/oauth2-server/tree/9.4.1"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/sephster",
+ "type": "github"
+ }
+ ],
+ "time": "2026-06-25T15:24:07+00:00",
+ "published-time": "2026-06-25T15:28:46+00:00"
},
{
"name": "league/uri",
- "version": "7.8.1",
+ "version": "7.10.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri.git",
- "reference": "08cf38e3924d4f56238125547b5720496fac8fd4"
+ "reference": "be89e2382e37acdef232259071ade5180821397b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri/zipball/08cf38e3924d4f56238125547b5720496fac8fd4",
- "reference": "08cf38e3924d4f56238125547b5720496fac8fd4",
+ "url": "https://api.github.com/repos/thephpleague/uri/zipball/be89e2382e37acdef232259071ade5180821397b",
+ "reference": "be89e2382e37acdef232259071ade5180821397b",
"shasum": ""
},
"require": {
- "league/uri-interfaces": "^7.8.1",
+ "ext-mbstring": "*",
+ "league/uri-interfaces": "^7.10.0",
"php": "^8.1",
"psr/http-factory": "^1"
},
@@ -3893,7 +4696,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.1"
+ "source": "https://github.com/thephpleague/uri/tree/7.10.0"
},
"funding": [
{
@@ -3901,20 +4704,21 @@
"type": "github"
}
],
- "time": "2026-03-15T20:22:25+00:00"
+ "time": "2026-11-04T12:45:07+00:00",
+ "published-time": "2026-11-04T13:02:21+00:00"
},
{
"name": "league/uri-interfaces",
- "version": "7.8.1",
+ "version": "7.10.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/uri-interfaces.git",
- "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928"
+ "reference": "ea66240cff4ae9a56ce85d577a04d038b771e51c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/85d5c77c5d6d3af6c54db4a78246364908f3c928",
- "reference": "85d5c77c5d6d3af6c54db4a78246364908f3c928",
+ "url": "https://api.github.com/repos/thephpleague/uri-interfaces/zipball/ea66240cff4ae9a56ce85d577a04d038b771e51c",
+ "reference": "ea66240cff4ae9a56ce85d577a04d038b771e51c",
"shasum": ""
},
"require": {
@@ -3977,7 +4781,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.1"
+ "source": "https://github.com/thephpleague/uri-interfaces/tree/7.10.0"
},
"funding": [
{
@@ -3985,7 +4789,8 @@
"type": "github"
}
],
- "time": "2026-03-08T20:05:35+00:00"
+ "time": "2026-11-04T12:45:07+00:00",
+ "published-time": "2026-11-04T13:02:27+00:00"
},
{
"name": "maennchen/zipstream-php",
@@ -4063,7 +4868,8 @@
"type": "github"
}
],
- "time": "2026-04-11T18:38:28+00:00"
+ "time": "2026-04-11T18:38:28+00:00",
+ "published-time": "2026-04-11T18:40:08+00:00"
},
{
"name": "markbaker/complex",
@@ -4114,7 +4920,8 @@
"issues": "https://github.com/MarkBaker/PHPComplex/issues",
"source": "https://github.com/MarkBaker/PHPComplex/tree/3.0.2"
},
- "time": "2022-12-06T16:21:08+00:00"
+ "time": "2022-12-06T16:21:08+00:00",
+ "published-time": "2022-12-06T16:27:52+00:00"
},
{
"name": "markbaker/matrix",
@@ -4170,7 +4977,102 @@
"issues": "https://github.com/MarkBaker/PHPMatrix/issues",
"source": "https://github.com/MarkBaker/PHPMatrix/tree/3.0.1"
},
- "time": "2022-12-02T22:17:43+00:00"
+ "time": "2022-12-02T22:17:43+00:00",
+ "published-time": "2022-12-02T22:55:17+00:00"
+ },
+ {
+ "name": "mcp/sdk",
+ "version": "v0.9.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/modelcontextprotocol/php-sdk.git",
+ "reference": "be71c78bc3bce25f50d6a7e592017b8af6a2120f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/modelcontextprotocol/php-sdk/zipball/be71c78bc3bce25f50d6a7e592017b8af6a2120f",
+ "reference": "be71c78bc3bce25f50d6a7e592017b8af6a2120f",
+ "shasum": ""
+ },
+ "require": {
+ "ext-fileinfo": "*",
+ "opis/json-schema": "^2.4",
+ "php": "^8.1",
+ "php-http/discovery": "^1.20",
+ "phpdocumentor/reflection-docblock": "^5.6 || ^6.0",
+ "psr/clock": "^1.0",
+ "psr/container": "^1.0 || ^2.0",
+ "psr/event-dispatcher": "^1.0",
+ "psr/http-client": "^1.0",
+ "psr/http-factory": "^1.1",
+ "psr/http-message": "^1.1 || ^2.0",
+ "psr/http-server-handler": "^1.0",
+ "psr/http-server-middleware": "^1.0",
+ "psr/log": "^1.0 || ^2.0 || ^3.0",
+ "symfony/deprecation-contracts": "^2.5 || ^3.0",
+ "symfony/uid": "^5.4 || ^6.4 || ^7.3 || ^8.0"
+ },
+ "conflict": {
+ "phpstan/phpstan": "2.3.0"
+ },
+ "require-dev": {
+ "composer/semver": "^3.0",
+ "ext-openssl": "*",
+ "firebase/php-jwt": "^6.10 || ^7.0",
+ "laminas/laminas-httphandlerrunner": "^2.12",
+ "nyholm/psr7": "^1.8",
+ "nyholm/psr7-server": "^1.1",
+ "phar-io/composer-distributor": "^1.0.2",
+ "php-cs-fixer/shim": "^3.91",
+ "phpdocumentor/shim": "^3",
+ "phpstan/phpstan": "^2.1",
+ "phpunit/phpunit": "^10.5",
+ "psr/cache": "^1.0 || ^2.0 || ^3.0",
+ "psr/simple-cache": "^2.0 || ^3.0",
+ "symfony/cache": "^5.4 || ^6.4 || ^7.3 || ^8.0",
+ "symfony/console": "^5.4 || ^6.4 || ^7.3 || ^8.0",
+ "symfony/finder": "^5.4 || ^6.4 || ^7.3 || ^8.0",
+ "symfony/http-client": "^5.4 || ^6.4 || ^7.3 || ^8.0",
+ "symfony/lock": "^5.4 || ^6.4 || ^7.3 || ^8.0",
+ "symfony/process": "^5.4 || ^6.4 || ^7.3 || ^8.0"
+ },
+ "suggest": {
+ "firebase/php-jwt": "Required for the JwtTokenValidator.",
+ "psr/cache-implementation": "Required for JwtTokenValidator::fromIssuer() to cache metadata and keys.",
+ "symfony/finder": "Required for file-based discovery.",
+ "symfony/lock": "Required for the SymfonyLockSessionLock."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Mcp\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Christopher Hertel",
+ "email": "mail@christopher-hertel.de"
+ },
+ {
+ "name": "Kyrian Obikwelu",
+ "email": "koshnawaza@gmail.com"
+ },
+ {
+ "name": "Tobias Nyholm",
+ "email": "tobias.nyholm@gmail.com"
+ }
+ ],
+ "description": "Model Context Protocol SDK for Client and Server applications in PHP",
+ "support": {
+ "issues": "https://github.com/modelcontextprotocol/php-sdk/issues",
+ "source": "https://github.com/modelcontextprotocol/php-sdk/tree/v0.9.0"
+ },
+ "time": "2026-10-18T14:29:29+00:00",
+ "published-time": "2026-10-18T14:45:02+00:00"
},
{
"name": "moneyphp/money",
@@ -4260,20 +5162,21 @@
"issues": "https://github.com/moneyphp/money/issues",
"source": "https://github.com/moneyphp/money/tree/v4.9.0"
},
- "time": "2026-05-04T20:23:15+00:00"
+ "time": "2026-05-04T20:23:15+00:00",
+ "published-time": "2026-05-04T20:25:20+00:00"
},
{
"name": "monolog/monolog",
- "version": "3.10.0",
+ "version": "3.12.1",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
- "reference": "b321dd6749f0bf7189444158a3ce785cc16d69b0"
+ "reference": "d7059e4c691d05ea1222b5124bed0f961be46e15"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Seldaek/monolog/zipball/b321dd6749f0bf7189444158a3ce785cc16d69b0",
- "reference": "b321dd6749f0bf7189444158a3ce785cc16d69b0",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/d7059e4c691d05ea1222b5124bed0f961be46e15",
+ "reference": "d7059e4c691d05ea1222b5124bed0f961be46e15",
"shasum": ""
},
"require": {
@@ -4299,6 +5202,7 @@
"phpstan/phpstan-strict-rules": "^2",
"phpunit/phpunit": "^10.5.17 || ^11.0.7",
"predis/predis": "^1.1 || ^2",
+ "psr/clock": "^1.0",
"rollbar/rollbar": "^4.0",
"ruflin/elastica": "^7 || ^8",
"symfony/mailer": "^5.4 || ^6",
@@ -4317,6 +5221,7 @@
"graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
"mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)",
"php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
+ "psr/clock": "Required to pass a clock to the Logger and control the timestamp of log records",
"rollbar/rollbar": "Allow sending log messages to Rollbar",
"ruflin/elastica": "Allow sending log messages to an Elastic Search server"
},
@@ -4351,7 +5256,7 @@
],
"support": {
"issues": "https://github.com/Seldaek/monolog/issues",
- "source": "https://github.com/Seldaek/monolog/tree/3.10.0"
+ "source": "https://github.com/Seldaek/monolog/tree/3.12.1"
},
"funding": [
{
@@ -4363,20 +5268,21 @@
"type": "tidelift"
}
],
- "time": "2026-01-02T08:56:05+00:00"
+ "time": "2026-09-29T19:21:12+00:00",
+ "published-time": "2026-09-29T19:21:44+00:00"
},
{
"name": "mtdowling/jmespath.php",
- "version": "2.8.0",
+ "version": "2.9.2",
"source": {
"type": "git",
"url": "https://github.com/jmespath/jmespath.php.git",
- "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc"
+ "reference": "2157c5e50e813ec6a96c1eed3be7f64a20fb32a8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/a2a865e05d5f420b50cc2f85bb78d565db12a6bc",
- "reference": "a2a865e05d5f420b50cc2f85bb78d565db12a6bc",
+ "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/2157c5e50e813ec6a96c1eed3be7f64a20fb32a8",
+ "reference": "2157c5e50e813ec6a96c1eed3be7f64a20fb32a8",
"shasum": ""
},
"require": {
@@ -4385,7 +5291,7 @@
},
"require-dev": {
"composer/xdebug-handler": "^3.0.3",
- "phpunit/phpunit": "^8.5.33"
+ "phpunit/phpunit": "^8.5.52"
},
"bin": [
"bin/jp.php"
@@ -4393,7 +5299,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.8-dev"
+ "dev-master": "2.9-dev"
}
},
"autoload": {
@@ -4427,22 +5333,23 @@
],
"support": {
"issues": "https://github.com/jmespath/jmespath.php/issues",
- "source": "https://github.com/jmespath/jmespath.php/tree/2.8.0"
+ "source": "https://github.com/jmespath/jmespath.php/tree/2.9.2"
},
- "time": "2024-09-04T18:46:31+00:00"
+ "time": "2026-07-06T18:56:19+00:00",
+ "published-time": "2026-07-06T18:56:41+00:00"
},
{
"name": "nesbot/carbon",
- "version": "3.11.4",
+ "version": "3.15.1",
"source": {
"type": "git",
"url": "https://github.com/CarbonPHP/carbon.git",
- "reference": "e890471a3494740f7d9326d72ce6a8c559ffee60"
+ "reference": "ce0e5636fae7d1e99856eb70cae4c719a284aa08"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/e890471a3494740f7d9326d72ce6a8c559ffee60",
- "reference": "e890471a3494740f7d9326d72ce6a8c559ffee60",
+ "url": "https://api.github.com/repos/CarbonPHP/carbon/zipball/ce0e5636fae7d1e99856eb70cae4c719a284aa08",
+ "reference": "ce0e5636fae7d1e99856eb70cae4c719a284aa08",
"shasum": ""
},
"require": {
@@ -4452,6 +5359,7 @@
"psr/clock": "^1.0",
"symfony/clock": "^6.3.12 || ^7.0 || ^8.0",
"symfony/polyfill-mbstring": "^1.0",
+ "symfony/polyfill-time": "^1.0",
"symfony/translation": "^4.4.18 || ^5.2.1 || ^6.0 || ^7.0 || ^8.0"
},
"provide": {
@@ -4462,7 +5370,7 @@
"doctrine/orm": "^2.15.2 || ^3.0",
"friendsofphp/php-cs-fixer": "^v3.87.1",
"kylekatarnls/multi-tester": "^2.5.3",
- "phpmd/phpmd": "^2.15.0",
+ "phpmd/phpmd": "^3.0@dev",
"phpstan/extension-installer": "^1.4.3",
"phpstan/phpstan": "^2.1.22",
"phpunit/phpunit": "^10.5.53",
@@ -4534,37 +5442,38 @@
"type": "tidelift"
}
],
- "time": "2026-04-07T09:57:54+00:00"
+ "time": "2026-10-25T14:32:48+00:00",
+ "published-time": "2026-10-25T14:41:05+00:00"
},
{
"name": "nette/schema",
- "version": "v1.3.5",
+ "version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/nette/schema.git",
- "reference": "f0ab1a3cda782dbc5da270d28545236aa80c4002"
+ "reference": "af9fa8a86bfca9b02b10346220db26e62ef942ec"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/schema/zipball/f0ab1a3cda782dbc5da270d28545236aa80c4002",
- "reference": "f0ab1a3cda782dbc5da270d28545236aa80c4002",
+ "url": "https://api.github.com/repos/nette/schema/zipball/af9fa8a86bfca9b02b10346220db26e62ef942ec",
+ "reference": "af9fa8a86bfca9b02b10346220db26e62ef942ec",
"shasum": ""
},
"require": {
"nette/utils": "^4.0",
- "php": "8.1 - 8.5"
+ "php": "8.1 - 8.6"
},
"require-dev": {
- "nette/phpstan-rules": "^1.0",
+ "nette/phpstan-rules": "^1.0.7",
"nette/tester": "^2.6",
"phpstan/extension-installer": "^1.4@stable",
- "phpstan/phpstan": "^2.1.39@stable",
+ "phpstan/phpstan": "^2.3@stable",
"tracy/tracy": "^2.8"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.3-dev"
+ "dev-master": "1.4-dev"
}
},
"autoload": {
@@ -4585,40 +5494,41 @@
{
"name": "David Grudl",
"homepage": "https://davidgrudl.com"
- },
- {
- "name": "Nette Community",
- "homepage": "https://nette.org/contributors"
}
],
- "description": "📐 Nette Schema: validating data structures against a given Schema.",
- "homepage": "https://nette.org",
+ "description": "📐 Nette Schema: validates and normalizes data such as configuration or API input against a schema described in a few readable lines of PHP, with precise error messages.",
+ "homepage": "https://doc.nette.org/schema",
"keywords": [
- "config",
- "nette"
+ "configuration",
+ "data validation",
+ "nette",
+ "normalization",
+ "schema",
+ "validation"
],
"support": {
"issues": "https://github.com/nette/schema/issues",
- "source": "https://github.com/nette/schema/tree/v1.3.5"
+ "source": "https://github.com/nette/schema/tree/v1.4.0"
},
- "time": "2026-02-23T03:47:12+00:00"
+ "time": "2026-10-22T02:12:50+00:00",
+ "published-time": "2026-10-22T02:14:45+00:00"
},
{
"name": "nette/utils",
- "version": "v4.1.3",
+ "version": "v4.1.6",
"source": {
"type": "git",
"url": "https://github.com/nette/utils.git",
- "reference": "bb3ea637e3d131d72acc033cfc2746ee893349fe"
+ "reference": "6bf24518accf32cf845bca305e0b92078700fd01"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nette/utils/zipball/bb3ea637e3d131d72acc033cfc2746ee893349fe",
- "reference": "bb3ea637e3d131d72acc033cfc2746ee893349fe",
+ "url": "https://api.github.com/repos/nette/utils/zipball/6bf24518accf32cf845bca305e0b92078700fd01",
+ "reference": "6bf24518accf32cf845bca305e0b92078700fd01",
"shasum": ""
},
"require": {
- "php": "8.2 - 8.5"
+ "php": "8.2 - 8.6"
},
"conflict": {
"nette/finder": "<3",
@@ -4634,7 +5544,7 @@
},
"suggest": {
"ext-gd": "to use Image",
- "ext-iconv": "to use Strings::webalize(), toAscii(), chr() and reverse()",
+ "ext-iconv": "to use Strings::chr(), ord() and reverse()",
"ext-intl": "to use Strings::webalize(), toAscii(), normalize() and compare()",
"ext-json": "to use Nette\\Utils\\Json",
"ext-mbstring": "to use Strings::lower() etc...",
@@ -4690,26 +5600,26 @@
],
"support": {
"issues": "https://github.com/nette/utils/issues",
- "source": "https://github.com/nette/utils/tree/v4.1.3"
+ "source": "https://github.com/nette/utils/tree/v4.1.6"
},
- "time": "2026-02-13T03:05:33+00:00"
+ "time": "2026-10-20T17:07:56+00:00",
+ "published-time": "2026-10-20T17:48:30+00:00"
},
{
"name": "nikic/php-parser",
- "version": "v5.7.0",
+ "version": "v5.9.0",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82"
+ "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dca41cd15c2ac9d055ad70dbfd011130757d1f82",
- "reference": "dca41cd15c2ac9d055ad70dbfd011130757d1f82",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9e33da9553fe7786f0962b35f4e4ecf01be89def",
+ "reference": "9e33da9553fe7786f0962b35f4e4ecf01be89def",
"shasum": ""
},
"require": {
- "ext-ctype": "*",
"ext-json": "*",
"ext-tokenizer": "*",
"php": ">=7.4"
@@ -4748,37 +5658,38 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v5.7.0"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v5.9.0"
},
- "time": "2025-12-06T11:56:16+00:00"
+ "time": "2026-09-13T18:51:52+00:00",
+ "published-time": "2026-09-13T18:53:16+00:00"
},
{
"name": "nunomaduro/termwind",
- "version": "v2.4.0",
+ "version": "v2.4.1",
"source": {
"type": "git",
"url": "https://github.com/nunomaduro/termwind.git",
- "reference": "712a31b768f5daea284c2169a7d227031001b9a8"
+ "reference": "9b85ae4d802403bfc004ea633ce542bc262ee5c3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/712a31b768f5daea284c2169a7d227031001b9a8",
- "reference": "712a31b768f5daea284c2169a7d227031001b9a8",
+ "url": "https://api.github.com/repos/nunomaduro/termwind/zipball/9b85ae4d802403bfc004ea633ce542bc262ee5c3",
+ "reference": "9b85ae4d802403bfc004ea633ce542bc262ee5c3",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"php": "^8.2",
- "symfony/console": "^7.4.4 || ^8.0.4"
+ "symfony/console": "^7.4.23 || ^8.1.11"
},
"require-dev": {
- "illuminate/console": "^11.47.0",
- "laravel/pint": "^1.27.1",
- "mockery/mockery": "^1.6.12",
- "pestphp/pest": "^2.36.0 || ^3.8.4 || ^4.3.2",
- "phpstan/phpstan": "^1.12.32",
+ "illuminate/console": "^11.51 || ^12.70 || ^13.40",
+ "laravel/pint": "^1.30.4",
+ "mockery/mockery": "^1.6.15",
+ "pestphp/pest": "^2.36.1 || ^3.8.7 || ^4.7.8 || ^5.3.5",
+ "phpstan/phpstan": "^1.12.34",
"phpstan/phpstan-strict-rules": "^1.6.2",
- "symfony/var-dumper": "^7.3.5 || ^8.0.4",
+ "symfony/var-dumper": "^7.4.22 || ^8.1.10",
"thecodingmachine/phpstan-strict-rules": "^1.0.0"
},
"type": "library",
@@ -4821,7 +5732,7 @@
],
"support": {
"issues": "https://github.com/nunomaduro/termwind/issues",
- "source": "https://github.com/nunomaduro/termwind/tree/v2.4.0"
+ "source": "https://github.com/nunomaduro/termwind/tree/v2.4.1"
},
"funding": [
{
@@ -4837,7 +5748,8 @@
"type": "github"
}
],
- "time": "2026-02-16T23:10:27+00:00"
+ "time": "2026-11-07T03:57:16+00:00",
+ "published-time": "2026-11-07T04:01:24+00:00"
},
{
"name": "nyholm/psr7",
@@ -4915,161 +5827,494 @@
"type": "github"
}
],
- "time": "2024-09-09T07:06:30+00:00"
+ "time": "2024-09-09T07:06:30+00:00",
+ "published-time": "2024-09-09T07:07:05+00:00"
},
{
- "name": "paragonie/constant_time_encoding",
- "version": "v3.1.3",
+ "name": "opis/json-schema",
+ "version": "2.6.1",
"source": {
"type": "git",
- "url": "https://github.com/paragonie/constant_time_encoding.git",
- "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77"
+ "url": "https://github.com/opis/json-schema.git",
+ "reference": "7d8685a78db131eb6a1571cc7b4db8f4b59e8628"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77",
- "reference": "d5b01a39b3415c2cd581d3bd3a3575c1ebbd8e77",
+ "url": "https://api.github.com/repos/opis/json-schema/zipball/7d8685a78db131eb6a1571cc7b4db8f4b59e8628",
+ "reference": "7d8685a78db131eb6a1571cc7b4db8f4b59e8628",
"shasum": ""
},
"require": {
- "php": "^8"
+ "ext-json": "*",
+ "opis/string": "^2.1",
+ "opis/uri": "^1.0",
+ "php": "^7.4 || ^8.0"
},
"require-dev": {
- "infection/infection": "^0",
- "nikic/php-fuzzer": "^0",
- "phpunit/phpunit": "^9|^10|^11",
- "vimeo/psalm": "^4|^5|^6"
+ "ext-bcmath": "*",
+ "ext-intl": "*",
+ "phpunit/phpunit": "^9.0"
},
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.x-dev"
+ }
+ },
"autoload": {
"psr-4": {
- "ParagonIE\\ConstantTime\\": "src/"
+ "Opis\\JsonSchema\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "Apache-2.0"
],
"authors": [
{
- "name": "Paragon Initiative Enterprises",
- "email": "security@paragonie.com",
- "homepage": "https://paragonie.com",
- "role": "Maintainer"
+ "name": "Sorin Sarca",
+ "email": "sarca_sorin@hotmail.com"
},
{
- "name": "Steve 'Sc00bz' Thomas",
- "email": "steve@tobtu.com",
- "homepage": "https://www.tobtu.com",
- "role": "Original Developer"
+ "name": "Marius Sarca",
+ "email": "marius.sarca@gmail.com"
}
],
- "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)",
+ "description": "Json Schema Validator for PHP",
+ "homepage": "https://opis.io/json-schema",
"keywords": [
- "base16",
- "base32",
- "base32_decode",
- "base32_encode",
- "base64",
- "base64_decode",
- "base64_encode",
- "bin2hex",
- "encoding",
- "hex",
- "hex2bin",
- "rfc4648"
+ "json",
+ "json-schema",
+ "schema",
+ "validation",
+ "validator"
],
"support": {
- "email": "info@paragonie.com",
- "issues": "https://github.com/paragonie/constant_time_encoding/issues",
- "source": "https://github.com/paragonie/constant_time_encoding"
+ "issues": "https://github.com/opis/json-schema/issues",
+ "source": "https://github.com/opis/json-schema/tree/2.6.1"
},
- "time": "2025-09-24T15:06:41+00:00"
+ "time": "2026-11-06T04:25:16+00:00",
+ "published-time": "2026-11-06T04:35:54+00:00"
},
{
- "name": "phpdocumentor/reflection-common",
- "version": "2.2.0",
+ "name": "opis/string",
+ "version": "2.1.0",
"source": {
"type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b"
+ "url": "https://github.com/opis/string.git",
+ "reference": "3e4d2aaff518ac518530b89bb26ed40f4503635e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b",
- "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b",
+ "url": "https://api.github.com/repos/opis/string/zipball/3e4d2aaff518ac518530b89bb26ed40f4503635e",
+ "reference": "3e4d2aaff518ac518530b89bb26ed40f4503635e",
"shasum": ""
},
"require": {
- "php": "^7.2 || ^8.0"
+ "ext-iconv": "*",
+ "ext-json": "*",
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.0"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-2.x": "2.x-dev"
+ "dev-master": "2.x-dev"
}
},
"autoload": {
"psr-4": {
- "phpDocumentor\\Reflection\\": "src/"
+ "Opis\\String\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
- "MIT"
+ "Apache-2.0"
],
"authors": [
{
- "name": "Jaap van Otterdijk",
- "email": "opensource@ijaap.nl"
+ "name": "Marius Sarca",
+ "email": "marius.sarca@gmail.com"
+ },
+ {
+ "name": "Sorin Sarca",
+ "email": "sarca_sorin@hotmail.com"
}
],
- "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
- "homepage": "http://www.phpdoc.org",
+ "description": "Multibyte strings as objects",
+ "homepage": "https://opis.io/string",
"keywords": [
- "FQSEN",
- "phpDocumentor",
- "phpdoc",
- "reflection",
- "static analysis"
+ "multi-byte",
+ "opis",
+ "string",
+ "string manipulation",
+ "utf-8"
],
"support": {
- "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
- "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x"
+ "issues": "https://github.com/opis/string/issues",
+ "source": "https://github.com/opis/string/tree/2.1.0"
},
- "time": "2020-06-27T09:03:43+00:00"
+ "time": "2025-10-17T12:38:41+00:00",
+ "published-time": "2025-10-17T12:40:48+00:00"
},
{
- "name": "phpdocumentor/reflection-docblock",
- "version": "5.6.7",
+ "name": "opis/uri",
+ "version": "1.1.0",
"source": {
"type": "git",
- "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
- "reference": "31a105931bc8ffa3a123383829772e832fd8d903"
+ "url": "https://github.com/opis/uri.git",
+ "reference": "0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/31a105931bc8ffa3a123383829772e832fd8d903",
- "reference": "31a105931bc8ffa3a123383829772e832fd8d903",
+ "url": "https://api.github.com/repos/opis/uri/zipball/0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a",
+ "reference": "0f3ca49ab1a5e4a6681c286e0b2cc081b93a7d5a",
"shasum": ""
},
"require": {
- "doctrine/deprecations": "^1.1",
- "ext-filter": "*",
- "php": "^7.4 || ^8.0",
- "phpdocumentor/reflection-common": "^2.2",
- "phpdocumentor/type-resolver": "^1.7",
- "phpstan/phpdoc-parser": "^1.7|^2.0",
- "webmozart/assert": "^1.9.1 || ^2"
+ "opis/string": "^2.0",
+ "php": "^7.4 || ^8.0"
},
"require-dev": {
- "mockery/mockery": "~1.3.5 || ~1.6.0",
- "phpstan/extension-installer": "^1.1",
- "phpstan/phpstan": "^1.8",
+ "phpunit/phpunit": "^9"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Opis\\Uri\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "Apache-2.0"
+ ],
+ "authors": [
+ {
+ "name": "Marius Sarca",
+ "email": "marius.sarca@gmail.com"
+ },
+ {
+ "name": "Sorin Sarca",
+ "email": "sarca_sorin@hotmail.com"
+ }
+ ],
+ "description": "Build, parse and validate URIs and URI-templates",
+ "homepage": "https://opis.io",
+ "keywords": [
+ "URI Template",
+ "parse url",
+ "punycode",
+ "uri",
+ "uri components",
+ "url",
+ "validate uri"
+ ],
+ "support": {
+ "issues": "https://github.com/opis/uri/issues",
+ "source": "https://github.com/opis/uri/tree/1.1.0"
+ },
+ "time": "2021-05-22T15:57:08+00:00",
+ "published-time": "2021-05-22T16:01:15+00:00"
+ },
+ {
+ "name": "paragonie/constant_time_encoding",
+ "version": "v3.1.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paragonie/constant_time_encoding.git",
+ "reference": "5efef6e6cb43e088ccab7d0c1e2f2ab25b9e8b54"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/5efef6e6cb43e088ccab7d0c1e2f2ab25b9e8b54",
+ "reference": "5efef6e6cb43e088ccab7d0c1e2f2ab25b9e8b54",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^8"
+ },
+ "require-dev": {
+ "infection/infection": "^0",
+ "nikic/php-fuzzer": "^0",
+ "phpunit/phpunit": "^9|^10|^11",
+ "vimeo/psalm": "^4|^5|^6"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "ParagonIE\\ConstantTime\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Paragon Initiative Enterprises",
+ "email": "security@paragonie.com",
+ "homepage": "https://paragonie.com",
+ "role": "Maintainer"
+ },
+ {
+ "name": "Steve 'Sc00bz' Thomas",
+ "email": "steve@tobtu.com",
+ "homepage": "https://www.tobtu.com",
+ "role": "Original Developer"
+ }
+ ],
+ "description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)",
+ "keywords": [
+ "base16",
+ "base32",
+ "base32_decode",
+ "base32_encode",
+ "base64",
+ "base64_decode",
+ "base64_encode",
+ "bin2hex",
+ "encoding",
+ "hex",
+ "hex2bin",
+ "rfc4648"
+ ],
+ "support": {
+ "email": "info@paragonie.com",
+ "issues": "https://github.com/paragonie/constant_time_encoding/issues",
+ "source": "https://github.com/paragonie/constant_time_encoding"
+ },
+ "time": "2026-11-06T20:31:19+00:00",
+ "published-time": "2026-11-06T20:39:39+00:00"
+ },
+ {
+ "name": "paragonie/random_compat",
+ "version": "v9.99.100",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paragonie/random_compat.git",
+ "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/paragonie/random_compat/zipball/996434e5492cb4c3edcb9168db6fbb1359ef965a",
+ "reference": "996434e5492cb4c3edcb9168db6fbb1359ef965a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">= 7"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "4.*|5.*",
+ "vimeo/psalm": "^1"
+ },
+ "suggest": {
+ "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
+ },
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Paragon Initiative Enterprises",
+ "email": "security@paragonie.com",
+ "homepage": "https://paragonie.com"
+ }
+ ],
+ "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
+ "keywords": [
+ "csprng",
+ "polyfill",
+ "pseudorandom",
+ "random"
+ ],
+ "support": {
+ "email": "info@paragonie.com",
+ "issues": "https://github.com/paragonie/random_compat/issues",
+ "source": "https://github.com/paragonie/random_compat"
+ },
+ "time": "2020-10-15T08:29:30+00:00",
+ "published-time": "2020-10-15T08:34:16+00:00"
+ },
+ {
+ "name": "php-http/discovery",
+ "version": "1.20.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-http/discovery.git",
+ "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-http/discovery/zipball/82fe4c73ef3363caed49ff8dd1539ba06044910d",
+ "reference": "82fe4c73ef3363caed49ff8dd1539ba06044910d",
+ "shasum": ""
+ },
+ "require": {
+ "composer-plugin-api": "^1.0|^2.0",
+ "php": "^7.1 || ^8.0"
+ },
+ "conflict": {
+ "nyholm/psr7": "<1.0",
+ "zendframework/zend-diactoros": "*"
+ },
+ "provide": {
+ "php-http/async-client-implementation": "*",
+ "php-http/client-implementation": "*",
+ "psr/http-client-implementation": "*",
+ "psr/http-factory-implementation": "*",
+ "psr/http-message-implementation": "*"
+ },
+ "require-dev": {
+ "composer/composer": "^1.0.2|^2.0",
+ "graham-campbell/phpspec-skip-example-extension": "^5.0",
+ "php-http/httplug": "^1.0 || ^2.0",
+ "php-http/message-factory": "^1.0",
+ "phpspec/phpspec": "^5.1 || ^6.1 || ^7.3",
+ "sebastian/comparator": "^3.0.5 || ^4.0.8",
+ "symfony/phpunit-bridge": "^6.4.4 || ^7.0.1"
+ },
+ "type": "composer-plugin",
+ "extra": {
+ "class": "Http\\Discovery\\Composer\\Plugin",
+ "plugin-optional": true
+ },
+ "autoload": {
+ "psr-4": {
+ "Http\\Discovery\\": "src/"
+ },
+ "exclude-from-classmap": [
+ "src/Composer/Plugin.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Márk Sági-Kazár",
+ "email": "mark.sagikazar@gmail.com"
+ }
+ ],
+ "description": "Finds and installs PSR-7, PSR-17, PSR-18 and HTTPlug implementations",
+ "homepage": "http://php-http.org",
+ "keywords": [
+ "adapter",
+ "client",
+ "discovery",
+ "factory",
+ "http",
+ "message",
+ "psr17",
+ "psr7"
+ ],
+ "support": {
+ "issues": "https://github.com/php-http/discovery/issues",
+ "source": "https://github.com/php-http/discovery/tree/1.20.0"
+ },
+ "time": "2024-10-02T11:20:13+00:00",
+ "published-time": "2024-10-02T11:21:00+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-common",
+ "version": "2.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionCommon.git",
+ "reference": "ee15a5a2022c8383906b225055e9496a6a5e6e3b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/ee15a5a2022c8383906b225055e9496a6a5e6e3b",
+ "reference": "ee15a5a2022c8383906b225055e9496a6a5e6e3b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^1.8",
+ "phpunit/phpunit": "^9.5",
+ "vimeo/psalm": "^4.25"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-2.x": "2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "phpDocumentor\\Reflection\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jaap van Otterdijk",
+ "email": "opensource@ijaap.nl"
+ }
+ ],
+ "description": "Common reflection classes used by phpdocumentor to reflect the code structure",
+ "homepage": "https://www.phpdoc.org",
+ "keywords": [
+ "FQSEN",
+ "phpDocumentor",
+ "phpdoc",
+ "reflection",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues",
+ "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.2.1"
+ },
+ "time": "2025-11-10T21:21:55+00:00",
+ "published-time": "2026-09-27T10:14:49+00:00"
+ },
+ {
+ "name": "phpdocumentor/reflection-docblock",
+ "version": "6.0.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "7bae67520aa9f5ecc506d646810bd40d9da54582"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/7bae67520aa9f5ecc506d646810bd40d9da54582",
+ "reference": "7bae67520aa9f5ecc506d646810bd40d9da54582",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/deprecations": "^1.1",
+ "ext-filter": "*",
+ "php": "^7.4 || ^8.0",
+ "phpdocumentor/reflection-common": "^2.2",
+ "phpdocumentor/type-resolver": "^2.0",
+ "phpstan/phpdoc-parser": "^2.0",
+ "webmozart/assert": "^1.9.1 || ^2"
+ },
+ "require-dev": {
+ "mockery/mockery": "~1.3.5 || ~1.6.0",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "^1.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": {
@@ -5099,44 +6344,45 @@
"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.7"
+ "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/6.0.3"
},
- "time": "2026-03-18T20:47:46+00:00"
+ "time": "2026-03-18T20:49:53+00:00",
+ "published-time": "2026-03-18T20:51:16+00:00"
},
{
"name": "phpdocumentor/type-resolver",
- "version": "1.12.0",
+ "version": "2.1.0",
"source": {
"type": "git",
"url": "https://github.com/phpDocumentor/TypeResolver.git",
- "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195"
+ "reference": "dbe2133bb23e2e33a6834f4ed417f24a1b167769"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/92a98ada2b93d9b201a613cb5a33584dde25f195",
- "reference": "92a98ada2b93d9b201a613cb5a33584dde25f195",
+ "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/dbe2133bb23e2e33a6834f4ed417f24a1b167769",
+ "reference": "dbe2133bb23e2e33a6834f4ed417f24a1b167769",
"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": {
@@ -5157,22 +6403,23 @@
"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.1.0"
},
- "time": "2025-11-21T15:09:14+00:00"
+ "time": "2026-09-27T19:32:54+00:00",
+ "published-time": "2026-09-28T18:39:55+00:00"
},
{
"name": "phpoffice/phpspreadsheet",
- "version": "5.7.0",
+ "version": "5.11.0",
"source": {
"type": "git",
"url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
- "reference": "9f55d3b9b7bcb1084fda8340e4b7ce4ed10cd0c8"
+ "reference": "3aa1f0d0f3c658b803c18050ac49244d07d96907"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/9f55d3b9b7bcb1084fda8340e4b7ce4ed10cd0c8",
- "reference": "9f55d3b9b7bcb1084fda8340e4b7ce4ed10cd0c8",
+ "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/3aa1f0d0f3c658b803c18050ac49244d07d96907",
+ "reference": "3aa1f0d0f3c658b803c18050ac49244d07d96907",
"shasum": ""
},
"require": {
@@ -5194,13 +6441,16 @@
"maennchen/zipstream-php": "^2.1 || ^3.0",
"markbaker/complex": "^3.0",
"markbaker/matrix": "^3.0",
- "php": "^8.1",
+ "php": "^8.2",
+ "phpoffice/wmf": "^0.2.1",
"psr/simple-cache": "^1.0 || ^2.0 || ^3.0"
},
"require-dev": {
+ "cyclonedx/cyclonedx-php-composer": "^6.2",
"dealerdirect/phpcodesniffer-composer-installer": "dev-main",
"dompdf/dompdf": "^2.0 || ^3.0",
"ext-intl": "*",
+ "ext-openssl": "*",
"friendsofphp/php-cs-fixer": "^3.2",
"mitoteam/jpgraph": "^10.5",
"mpdf/mpdf": "^8.1.1",
@@ -5208,13 +6458,14 @@
"phpstan/phpstan": "^1.1 || ^2.0",
"phpstan/phpstan-deprecation-rules": "^1.0 || ^2.0",
"phpstan/phpstan-phpunit": "^1.0 || ^2.0",
- "phpunit/phpunit": "^10.5",
+ "phpunit/phpunit": "^10.5 || ^11.0",
"squizlabs/php_codesniffer": "^3.7",
- "tecnickcom/tcpdf": "^6.5"
+ "tecnickcom/tcpdf": ">=6.8.0 <7.0.0"
},
"suggest": {
"dompdf/dompdf": "Option for rendering PDF with PDF Writer",
"ext-intl": "PHP Internationalization Functions, required for NumberFormat Wizard and StringHelper::setLocale()",
+ "ext-openssl": "Handline Agile-encrypted Xlsx spreadsheets",
"mitoteam/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers",
"mpdf/mpdf": "Option for rendering PDF with PDF Writer",
"tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer"
@@ -5266,22 +6517,76 @@
],
"support": {
"issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues",
- "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/5.7.0"
+ "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/5.11.0"
},
- "time": "2026-04-20T02:42:17+00:00"
+ "time": "2026-11-08T06:29:49+00:00",
+ "published-time": "2026-11-08T06:49:56+00:00"
+ },
+ {
+ "name": "phpoffice/wmf",
+ "version": "0.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPOffice/WMF.git",
+ "reference": "d1eafbab74509ee2adfcdda3888737cd8d349820"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPOffice/WMF/zipball/d1eafbab74509ee2adfcdda3888737cd8d349820",
+ "reference": "d1eafbab74509ee2adfcdda3888737cd8d349820",
+ "shasum": ""
+ },
+ "require": {
+ "ext-gd": "*",
+ "php": "^7.1|^8.0"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^0.12.88 || ^1.0.0",
+ "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "PhpOffice\\WMF\\": "src/WMF/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Progi1984",
+ "homepage": "https://lefevre.dev"
+ }
+ ],
+ "description": "WMF - Manipulate WMF Images",
+ "homepage": "https://phpoffice.github.io/WMF/",
+ "keywords": [
+ "emf",
+ "image",
+ "php",
+ "wmf"
+ ],
+ "support": {
+ "issues": "https://github.com/PHPOffice/WMF/issues",
+ "source": "https://github.com/PHPOffice/WMF/tree/0.2.1"
+ },
+ "time": "2026-10-08T19:34:28+00:00",
+ "published-time": "2026-10-08T19:36:12+00:00"
},
{
"name": "phpoption/phpoption",
- "version": "1.9.5",
+ "version": "1.10.0",
"source": {
"type": "git",
"url": "https://github.com/schmittjoh/php-option.git",
- "reference": "75365b91986c2405cf5e1e012c5595cd487a98be"
+ "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/75365b91986c2405cf5e1e012c5595cd487a98be",
- "reference": "75365b91986c2405cf5e1e012c5595cd487a98be",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/67b192b6a42ec03944b972d6e633ddec78ad2c6d",
+ "reference": "67b192b6a42ec03944b972d6e633ddec78ad2c6d",
"shasum": ""
},
"require": {
@@ -5289,7 +6594,7 @@
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
- "phpunit/phpunit": "^8.5.44 || ^9.6.25 || ^10.5.53 || ^11.5.34"
+ "phpunit/phpunit": "^8.5.54 || ^9.6.36 || ^10.5.64 || ^11.5.56 || ^12.5.33"
},
"type": "library",
"extra": {
@@ -5331,7 +6636,7 @@
],
"support": {
"issues": "https://github.com/schmittjoh/php-option/issues",
- "source": "https://github.com/schmittjoh/php-option/tree/1.9.5"
+ "source": "https://github.com/schmittjoh/php-option/tree/1.10.0"
},
"funding": [
{
@@ -5343,192 +6648,190 @@
"type": "tidelift"
}
],
- "time": "2025-12-27T19:41:33+00:00"
- },
- {
- "name": "phpstan/phpdoc-parser",
- "version": "2.3.2",
- "source": {
- "type": "git",
- "url": "https://github.com/phpstan/phpdoc-parser.git",
- "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/a004701b11273a26cd7955a61d67a7f1e525a45a",
- "reference": "a004701b11273a26cd7955a61d67a7f1e525a45a",
- "shasum": ""
- },
- "require": {
- "php": "^7.4 || ^8.0"
- },
- "require-dev": {
- "doctrine/annotations": "^2.0",
- "nikic/php-parser": "^5.3.0",
- "php-parallel-lint/php-parallel-lint": "^1.2",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "^2.0",
- "phpstan/phpstan-phpunit": "^2.0",
- "phpstan/phpstan-strict-rules": "^2.0",
- "phpunit/phpunit": "^9.6",
- "symfony/process": "^5.2"
- },
- "type": "library",
- "autoload": {
- "psr-4": {
- "PHPStan\\PhpDocParser\\": [
- "src/"
- ]
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "description": "PHPDoc parser with support for nullable, intersection and generic types",
- "support": {
- "issues": "https://github.com/phpstan/phpdoc-parser/issues",
- "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.2"
- },
- "time": "2026-01-25T14:56:51+00:00"
+ "time": "2026-08-24T00:54:40+00:00",
+ "published-time": "2026-08-24T01:09:05+00:00"
},
{
- "name": "pixelandtonic/graphql-php",
- "version": "v14.11.10.1",
+ "name": "phpseclib/phpseclib",
+ "version": "4.0.1",
"source": {
"type": "git",
- "url": "https://github.com/pixelandtonic/graphql-php.git",
- "reference": "fdb4a288878fc9ee449245e17209d676fc7c57fd"
+ "url": "https://github.com/phpseclib/phpseclib.git",
+ "reference": "bb7b959c8159957edae6f5084ebbac765d310e16"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pixelandtonic/graphql-php/zipball/fdb4a288878fc9ee449245e17209d676fc7c57fd",
- "reference": "fdb4a288878fc9ee449245e17209d676fc7c57fd",
+ "url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/bb7b959c8159957edae6f5084ebbac765d310e16",
+ "reference": "bb7b959c8159957edae6f5084ebbac765d310e16",
"shasum": ""
},
"require": {
- "ext-json": "*",
- "ext-mbstring": "*",
- "php": "^7.1 || ^8"
+ "paragonie/constant_time_encoding": "^2|^3",
+ "php": ">=8.1",
+ "symfony/polyfill-php82": "^1.26"
},
"require-dev": {
- "amphp/amp": "^2.3",
- "doctrine/coding-standard": "^6.0",
- "nyholm/psr7": "^1.2",
- "phpbench/phpbench": "^1.2",
- "phpstan/extension-installer": "^1.0",
- "phpstan/phpstan": "0.12.82",
- "phpstan/phpstan-phpunit": "0.12.18",
- "phpstan/phpstan-strict-rules": "0.12.9",
- "phpunit/phpunit": "^7.2 || ^8.5",
- "psr/http-message": "^1.0",
- "react/promise": "2.*",
- "simpod/php-coveralls-mirror": "^3.0"
+ "brianium/paratest": "^7.22",
+ "ext-xml": "*",
+ "php-parallel-lint/php-parallel-lint": "^1.3",
+ "phpunit/phpunit": "^13",
+ "squizlabs/php_codesniffer": "^3.7",
+ "vimeo/psalm": "*"
},
"suggest": {
- "psr/http-message": "To use standard GraphQL server",
- "react/promise": "To leverage async resolving on React PHP platform"
+ "ext-dom": "Install the DOM extension to load XML formatted public keys.",
+ "ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
+ "ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
+ "ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
},
"type": "library",
"autoload": {
+ "files": [
+ "phpseclib/bootstrap.php"
+ ],
"psr-4": {
- "GraphQL\\": "src/"
+ "phpseclib4\\": "phpseclib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "description": "A PHP port of GraphQL reference implementation",
- "homepage": "https://github.com/webonyx/graphql-php",
+ "authors": [
+ {
+ "name": "Jim Wigginton",
+ "email": "terrafrost@php.net",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Patrick Monnerat",
+ "email": "pm@datasphere.ch",
+ "role": "Developer"
+ },
+ {
+ "name": "Andreas Fischer",
+ "email": "bantu@phpbb.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Hans-Jürgen Petrich",
+ "email": "petrich@tronic-media.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Graham Campbell",
+ "email": "graham@alt-three.com",
+ "role": "Developer"
+ },
+ {
+ "name": "Jack Worman",
+ "email": "jack.worman@gmail.com",
+ "homepage": "https://jackworman.com",
+ "role": "Developer"
+ }
+ ],
+ "description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
+ "homepage": "https://phpseclib.com/",
"keywords": [
- "api",
- "graphql"
+ "BigInteger",
+ "aes",
+ "asn.1",
+ "asn1",
+ "blowfish",
+ "crypto",
+ "cryptography",
+ "encryption",
+ "rsa",
+ "security",
+ "sftp",
+ "signature",
+ "signing",
+ "ssh",
+ "twofish",
+ "x.509",
+ "x509"
],
"support": {
- "source": "https://github.com/pixelandtonic/graphql-php/tree/v14.11.10.1"
+ "issues": "https://github.com/phpseclib/phpseclib/issues",
+ "source": "https://github.com/phpseclib/phpseclib/tree/4.0.1"
},
"funding": [
{
- "url": "https://opencollective.com/webonyx-graphql-php",
- "type": "open_collective"
+ "url": "https://github.com/terrafrost",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/phpseclib",
+ "type": "patreon"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib",
+ "type": "tidelift"
}
],
- "time": "2026-04-14T15:27:52+00:00"
+ "time": "2026-08-26T12:15:13+00:00",
+ "published-time": "2026-08-26T12:17:11+00:00"
},
{
- "name": "pixelandtonic/imagine",
- "version": "1.3.3.1",
+ "name": "phpstan/phpdoc-parser",
+ "version": "2.4.1",
"source": {
"type": "git",
- "url": "https://github.com/pixelandtonic/Imagine.git",
- "reference": "4d9bb596ff60504e37ccf9103c0bb705dba7fec6"
+ "url": "https://github.com/phpstan/phpdoc-parser.git",
+ "reference": "af8e840551031d254cfdb3a18a62c3470a309c10"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pixelandtonic/Imagine/zipball/4d9bb596ff60504e37ccf9103c0bb705dba7fec6",
- "reference": "4d9bb596ff60504e37ccf9103c0bb705dba7fec6",
+ "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/af8e840551031d254cfdb3a18a62c3470a309c10",
+ "reference": "af8e840551031d254cfdb3a18a62c3470a309c10",
"shasum": ""
},
"require": {
- "php": ">=5.5"
+ "php": "^7.4 || ^8.0"
},
"require-dev": {
- "phpunit/phpunit": "^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.4 || ^9.3"
- },
- "suggest": {
- "ext-exif": "to read EXIF metadata",
- "ext-gd": "to use the GD implementation",
- "ext-gmagick": "to use the Gmagick implementation",
- "ext-imagick": "to use the Imagick implementation"
+ "doctrine/annotations": "^2.0",
+ "nikic/php-parser": "^5.3.0",
+ "php-parallel-lint/php-parallel-lint": "^1.2",
+ "phpstan/extension-installer": "^1.0",
+ "phpstan/phpstan": "^2.0",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpstan/phpstan-strict-rules": "^2.0",
+ "phpunit/phpunit": "^9.6",
+ "symfony/process": "^5.2"
},
"type": "library",
- "extra": {
- "branch-alias": {
- "dev-develop": "1.x-dev"
- }
- },
"autoload": {
"psr-4": {
- "Imagine\\": "src/"
+ "PHPStan\\PhpDocParser\\": [
+ "src/"
+ ]
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
- "authors": [
- {
- "name": "Bulat Shakirzyanov",
- "email": "mallluhuct@gmail.com",
- "homepage": "http://avalanche123.com"
- }
- ],
- "description": "Image processing for PHP 5.3",
- "homepage": "http://imagine.readthedocs.org/",
- "keywords": [
- "drawing",
- "graphics",
- "image manipulation",
- "image processing"
- ],
+ "description": "PHPDoc parser with support for nullable, intersection and generic types",
"support": {
- "source": "https://github.com/pixelandtonic/Imagine/tree/1.3.3.1"
+ "issues": "https://github.com/phpstan/phpdoc-parser/issues",
+ "source": "https://github.com/phpstan/phpdoc-parser/tree/2.4.1"
},
- "time": "2023-01-03T19:18:06+00:00"
+ "time": "2026-10-30T19:36:28+00:00",
+ "published-time": "2026-10-30T19:37:11+00:00"
},
{
"name": "pragmarx/google2fa",
- "version": "v8.0.3",
+ "version": "v9.1.0",
"source": {
"type": "git",
"url": "https://github.com/antonioribeiro/google2fa.git",
- "reference": "6f8d87ebd5afbf7790bde1ffc7579c7c705e0fad"
+ "reference": "f00bc788c555adfb6765c437ff3538e59cd88af1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/antonioribeiro/google2fa/zipball/6f8d87ebd5afbf7790bde1ffc7579c7c705e0fad",
- "reference": "6f8d87ebd5afbf7790bde1ffc7579c7c705e0fad",
+ "url": "https://api.github.com/repos/antonioribeiro/google2fa/zipball/f00bc788c555adfb6765c437ff3538e59cd88af1",
+ "reference": "f00bc788c555adfb6765c437ff3538e59cd88af1",
"shasum": ""
},
"require": {
@@ -5536,8 +6839,11 @@
"php": "^7.1|^8.0"
},
"require-dev": {
- "phpstan/phpstan": "^1.9",
- "phpunit/phpunit": "^7.5.15|^8.5|^9.0"
+ "phpstan/phpstan": "^1.0|^2.0",
+ "phpstan/phpstan-phpunit": "^1.0|^2.0",
+ "phpunit/phpunit": "~9|~10|~11|~12|~13",
+ "psalm/plugin-phpunit": "^0.19|^0.20",
+ "vimeo/psalm": "^5.26|^6.13"
},
"type": "library",
"autoload": {
@@ -5560,14 +6866,24 @@
"keywords": [
"2fa",
"Authentication",
+ "MFA",
"Two Factor Authentication",
- "google2fa"
+ "google-authenticator",
+ "google2fa",
+ "hotp",
+ "otp",
+ "rfc4226",
+ "rfc6238",
+ "totp"
],
"support": {
+ "docs": "https://github.com/antonioribeiro/google2fa#readme",
"issues": "https://github.com/antonioribeiro/google2fa/issues",
- "source": "https://github.com/antonioribeiro/google2fa/tree/v8.0.3"
+ "security": "https://github.com/antonioribeiro/google2fa/security/policy",
+ "source": "https://github.com/antonioribeiro/google2fa"
},
- "time": "2024-09-05T11:56:40+00:00"
+ "time": "2026-08-15T13:22:01+00:00",
+ "published-time": "2026-08-15T13:28:13+00:00"
},
{
"name": "pragmarx/random",
@@ -5634,7 +6950,8 @@
"issues": "https://github.com/antonioribeiro/random/issues",
"source": "https://github.com/antonioribeiro/random/tree/master"
},
- "time": "2017-11-21T05:26:22+00:00"
+ "time": "2017-11-21T05:26:22+00:00",
+ "published-time": "2017-11-21T05:30:14+00:00"
},
{
"name": "pragmarx/recovery",
@@ -5702,7 +7019,8 @@
"issues": "https://github.com/antonioribeiro/recovery/issues",
"source": "https://github.com/antonioribeiro/recovery/tree/v0.2.1"
},
- "time": "2021-08-15T12:26:51+00:00"
+ "time": "2021-08-15T12:26:51+00:00",
+ "published-time": "2021-08-15T12:28:29+00:00"
},
{
"name": "psr/clock",
@@ -5750,7 +7068,8 @@
"issues": "https://github.com/php-fig/clock/issues",
"source": "https://github.com/php-fig/clock/tree/1.0.0"
},
- "time": "2022-11-25T14:36:26+00:00"
+ "time": "2022-11-25T14:36:26+00:00",
+ "published-time": "2022-11-25T14:59:22+00:00"
},
{
"name": "psr/container",
@@ -5803,7 +7122,8 @@
"issues": "https://github.com/php-fig/container/issues",
"source": "https://github.com/php-fig/container/tree/2.0.2"
},
- "time": "2021-11-05T16:47:00+00:00"
+ "time": "2021-11-05T16:47:00+00:00",
+ "published-time": "2021-11-05T16:53:27+00:00"
},
{
"name": "psr/event-dispatcher",
@@ -5853,7 +7173,8 @@
"issues": "https://github.com/php-fig/event-dispatcher/issues",
"source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
},
- "time": "2019-01-08T18:20:26+00:00"
+ "time": "2019-01-08T18:20:26+00:00",
+ "published-time": "2019-03-25T15:31:44+00:00"
},
{
"name": "psr/http-client",
@@ -5905,7 +7226,8 @@
"support": {
"source": "https://github.com/php-fig/http-client"
},
- "time": "2023-09-23T14:17:50+00:00"
+ "time": "2023-09-23T14:17:50+00:00",
+ "published-time": "2023-09-23T14:18:12+00:00"
},
{
"name": "psr/http-factory",
@@ -5960,7 +7282,8 @@
"support": {
"source": "https://github.com/php-fig/http-factory"
},
- "time": "2024-04-15T12:06:14+00:00"
+ "time": "2024-04-15T12:06:14+00:00",
+ "published-time": "2024-05-10T07:32:19+00:00"
},
{
"name": "psr/http-message",
@@ -6013,7 +7336,8 @@
"support": {
"source": "https://github.com/php-fig/http-message/tree/2.0"
},
- "time": "2023-04-04T09:54:51+00:00"
+ "time": "2023-04-04T09:54:51+00:00",
+ "published-time": "2023-04-04T09:55:35+00:00"
},
{
"name": "psr/http-server-handler",
@@ -6069,7 +7393,66 @@
"support": {
"source": "https://github.com/php-fig/http-server-handler/tree/1.0.2"
},
- "time": "2023-04-10T20:06:20+00:00"
+ "time": "2023-04-10T20:06:20+00:00",
+ "published-time": "2023-04-10T20:07:30+00:00"
+ },
+ {
+ "name": "psr/http-server-middleware",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/http-server-middleware.git",
+ "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/http-server-middleware/zipball/c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
+ "reference": "c1481f747daaa6a0782775cd6a8c26a1bf4a3829",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.0",
+ "psr/http-message": "^1.0 || ^2.0",
+ "psr/http-server-handler": "^1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Http\\Server\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "https://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for HTTP server-side middleware",
+ "keywords": [
+ "http",
+ "http-interop",
+ "middleware",
+ "psr",
+ "psr-15",
+ "psr-7",
+ "request",
+ "response"
+ ],
+ "support": {
+ "issues": "https://github.com/php-fig/http-server-middleware/issues",
+ "source": "https://github.com/php-fig/http-server-middleware/tree/1.0.2"
+ },
+ "time": "2023-04-11T06:14:47+00:00",
+ "published-time": "2023-04-11T06:15:22+00:00"
},
{
"name": "psr/log",
@@ -6119,7 +7502,8 @@
"support": {
"source": "https://github.com/php-fig/log/tree/3.0.2"
},
- "time": "2024-09-11T13:17:53+00:00"
+ "time": "2024-09-11T13:17:53+00:00",
+ "published-time": "2024-09-11T13:21:14+00:00"
},
{
"name": "psr/simple-cache",
@@ -6170,20 +7554,21 @@
"support": {
"source": "https://github.com/php-fig/simple-cache/tree/3.0.0"
},
- "time": "2021-10-29T13:26:27+00:00"
+ "time": "2021-10-29T13:26:27+00:00",
+ "published-time": "2021-10-29T13:27:19+00:00"
},
{
"name": "psy/psysh",
- "version": "v0.12.22",
+ "version": "v0.12.24",
"source": {
"type": "git",
"url": "https://github.com/bobthecow/psysh.git",
- "reference": "3be75d5b9244936dd4ac62ade2bfb004d13acf0f"
+ "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/bobthecow/psysh/zipball/3be75d5b9244936dd4ac62ade2bfb004d13acf0f",
- "reference": "3be75d5b9244936dd4ac62ade2bfb004d13acf0f",
+ "url": "https://api.github.com/repos/bobthecow/psysh/zipball/ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1",
+ "reference": "ca0fdcf8a7617afa3adfdf1b5fef573dffb69ca1",
"shasum": ""
},
"require": {
@@ -6247,9 +7632,10 @@
],
"support": {
"issues": "https://github.com/bobthecow/psysh/issues",
- "source": "https://github.com/bobthecow/psysh/tree/v0.12.22"
+ "source": "https://github.com/bobthecow/psysh/tree/v0.12.24"
},
- "time": "2026-03-22T23:03:24+00:00"
+ "time": "2026-06-29T15:41:09+00:00",
+ "published-time": "2026-06-29T15:41:53+00:00"
},
{
"name": "ralouphie/getallheaders",
@@ -6293,7 +7679,8 @@
"issues": "https://github.com/ralouphie/getallheaders/issues",
"source": "https://github.com/ralouphie/getallheaders/tree/develop"
},
- "time": "2019-03-08T08:55:37+00:00"
+ "time": "2019-03-08T08:55:37+00:00",
+ "published-time": "2019-03-08T09:01:32+00:00"
},
{
"name": "ramsey/collection",
@@ -6369,24 +7756,25 @@
"issues": "https://github.com/ramsey/collection/issues",
"source": "https://github.com/ramsey/collection/tree/2.1.1"
},
- "time": "2025-03-22T05:38:12+00:00"
+ "time": "2025-03-22T05:38:12+00:00",
+ "published-time": "2025-03-22T05:39:22+00:00"
},
{
"name": "ramsey/uuid",
- "version": "4.x-dev",
+ "version": "4.9.4",
"source": {
"type": "git",
"url": "https://github.com/ramsey/uuid.git",
- "reference": "1a1f98b037d664d9093a620cfa85305c7e50b244"
+ "reference": "75d73f48d02797c2c285a7e9f348fadc0102ffe2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/ramsey/uuid/zipball/1a1f98b037d664d9093a620cfa85305c7e50b244",
- "reference": "1a1f98b037d664d9093a620cfa85305c7e50b244",
+ "url": "https://api.github.com/repos/ramsey/uuid/zipball/75d73f48d02797c2c285a7e9f348fadc0102ffe2",
+ "reference": "75d73f48d02797c2c285a7e9f348fadc0102ffe2",
"shasum": ""
},
"require": {
- "brick/math": ">=0.8.16 <=0.17",
+ "brick/math": "^0.8.16 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14 || ^0.15 || ^0.16 || ^0.17 || ^0.18 || ^0.19 || ^0.20 || ^1.0",
"php": "^8.0",
"ramsey/collection": "^1.2 || ^2.0"
},
@@ -6419,7 +7807,6 @@
"paragonie/random-lib": "Provides RandomLib for use with the RandomLibAdapter",
"ramsey/uuid-doctrine": "Allows the use of Ramsey\\Uuid\\Uuid as Doctrine field type."
},
- "default-branch": true,
"type": "library",
"extra": {
"captainhook": {
@@ -6446,22 +7833,23 @@
],
"support": {
"issues": "https://github.com/ramsey/uuid/issues",
- "source": "https://github.com/ramsey/uuid/tree/4.x"
+ "source": "https://github.com/ramsey/uuid/tree/4.9.4"
},
- "time": "2026-04-27T22:11:13+00:00"
+ "time": "2026-09-16T11:39:30+00:00",
+ "published-time": "2026-09-16T11:41:15+00:00"
},
{
"name": "riverline/multipart-parser",
- "version": "2.2.2",
+ "version": "2.3.0",
"source": {
"type": "git",
"url": "https://github.com/Riverline/multipart-parser.git",
- "reference": "fadbb1c1f8e66f96eaa36ab8ed13cbc451c6ded7"
+ "reference": "abec534bc0b17e5a5462f0705e2e331458405595"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Riverline/multipart-parser/zipball/fadbb1c1f8e66f96eaa36ab8ed13cbc451c6ded7",
- "reference": "fadbb1c1f8e66f96eaa36ab8ed13cbc451c6ded7",
+ "url": "https://api.github.com/repos/Riverline/multipart-parser/zipball/abec534bc0b17e5a5462f0705e2e331458405595",
+ "reference": "abec534bc0b17e5a5462f0705e2e331458405595",
"shasum": ""
},
"require": {
@@ -6502,28 +7890,30 @@
],
"support": {
"issues": "https://github.com/Riverline/multipart-parser/issues",
- "source": "https://github.com/Riverline/multipart-parser/tree/2.2.2"
+ "source": "https://github.com/Riverline/multipart-parser/tree/2.3.0"
},
- "time": "2026-01-15T11:08:16+00:00"
+ "time": "2026-11-05T15:12:49+00:00",
+ "published-time": "2026-11-05T15:16:23+00:00"
},
{
"name": "spomky-labs/cbor-php",
- "version": "3.2.3",
+ "version": "3.4.2",
"source": {
"type": "git",
"url": "https://github.com/Spomky-Labs/cbor-php.git",
- "reference": "dd6eb84e6d92f7b8bd0da56b4b4dd7235aed0c32"
+ "reference": "8f5ea00a07ad529d20886505cdbeb2b9ac7bb2d6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Spomky-Labs/cbor-php/zipball/dd6eb84e6d92f7b8bd0da56b4b4dd7235aed0c32",
- "reference": "dd6eb84e6d92f7b8bd0da56b4b4dd7235aed0c32",
+ "url": "https://api.github.com/repos/Spomky-Labs/cbor-php/zipball/8f5ea00a07ad529d20886505cdbeb2b9ac7bb2d6",
+ "reference": "8f5ea00a07ad529d20886505cdbeb2b9ac7bb2d6",
"shasum": ""
},
"require": {
- "brick/math": "^0.9|^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17",
+ "brick/math": "^0.9|^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17|^0.18|^0.19|^0.20|^1.0",
"ext-mbstring": "*",
- "php": ">=8.0"
+ "php": ">=8.0",
+ "symfony/polyfill-php81": "^1.32"
},
"require-dev": {
"ext-json": "*",
@@ -6532,8 +7922,8 @@
"symfony/var-dumper": "^6.4|^7.1|^8.0"
},
"suggest": {
- "ext-bcmath": "GMP or BCMath extensions will drastically improve the library performance. BCMath extension needed to handle the Big Float and Decimal Fraction Tags",
- "ext-gmp": "GMP or BCMath extensions will drastically improve the library performance"
+ "ext-bcmath": "Improves the library performance when ext-gmp is missing, and is required to handle the Big Float and Decimal Fraction Tags (4 and 5)",
+ "ext-gmp": "Strongly recommended when decoding untrusted input: without it, converting the byte string of a Big Number Tag (2 and 3) is quadratic in its length. Also improves the library performance overall"
},
"type": "library",
"autoload": {
@@ -6563,7 +7953,7 @@
],
"support": {
"issues": "https://github.com/Spomky-Labs/cbor-php/issues",
- "source": "https://github.com/Spomky-Labs/cbor-php/tree/3.2.3"
+ "source": "https://github.com/Spomky-Labs/cbor-php/tree/3.4.2"
},
"funding": [
{
@@ -6575,50 +7965,51 @@
"type": "patreon"
}
],
- "time": "2026-04-01T12:15:20+00:00"
+ "time": "2026-09-15T06:55:29+00:00",
+ "published-time": "2026-09-15T06:57:54+00:00"
},
{
"name": "spomky-labs/pki-framework",
- "version": "1.4.2",
+ "version": "1.6.3",
"source": {
"type": "git",
"url": "https://github.com/Spomky-Labs/pki-framework.git",
- "reference": "aa576cbd07128075bef97ac2f8af9854e67513d8"
+ "reference": "792e909d4e387adffe3c4f404451c7d57a3d2022"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Spomky-Labs/pki-framework/zipball/aa576cbd07128075bef97ac2f8af9854e67513d8",
- "reference": "aa576cbd07128075bef97ac2f8af9854e67513d8",
+ "url": "https://api.github.com/repos/Spomky-Labs/pki-framework/zipball/792e909d4e387adffe3c4f404451c7d57a3d2022",
+ "reference": "792e909d4e387adffe3c4f404451c7d57a3d2022",
"shasum": ""
},
"require": {
- "brick/math": "^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17",
+ "brick/math": "^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17|^0.18|^0.19|^0.20|^1.0",
"ext-mbstring": "*",
- "php": ">=8.1",
- "psr/clock": "^1.0"
+ "php": ">=8.1"
},
"require-dev": {
"ekino/phpstan-banned-code": "^1.0|^2.0|^3.0",
"ext-gmp": "*",
"ext-openssl": "*",
- "infection/infection": "^0.28|^0.29|^0.31|^0.32",
+ "infection/infection": "^0.28|^0.29|^0.31",
"php-parallel-lint/php-parallel-lint": "^1.3",
"phpstan/extension-installer": "^1.3|^2.0",
"phpstan/phpstan": "^1.8|^2.0",
"phpstan/phpstan-deprecation-rules": "^1.0|^2.0",
"phpstan/phpstan-phpunit": "^1.1|^2.0",
"phpstan/phpstan-strict-rules": "^1.3|^2.0",
- "phpunit/phpunit": "^10.1|^11.0|^12.0|^13.0",
+ "phpunit/phpunit": "^10.1|^11.0|^12.0",
"rector/rector": "^1.0|^2.0",
"roave/security-advisories": "dev-latest",
"symfony/string": "^6.4|^7.0|^8.0",
"symfony/var-dumper": "^6.4|^7.0|^8.0",
- "symplify/easy-coding-standard": "^12.0|^13.0"
+ "symplify/easy-coding-standard": "^12.0 || ^13.0"
},
"suggest": {
"ext-bcmath": "For better performance (or GMP)",
"ext-gmp": "For better performance (or BCMath)",
- "ext-openssl": "For OpenSSL based cyphering"
+ "ext-openssl": "For OpenSSL based cyphering",
+ "ext-sodium": "To verify Ed25519 signatures where the OpenSSL extension has no EdDSA"
},
"type": "library",
"autoload": {
@@ -6673,7 +8064,7 @@
],
"support": {
"issues": "https://github.com/Spomky-Labs/pki-framework/issues",
- "source": "https://github.com/Spomky-Labs/pki-framework/tree/1.4.2"
+ "source": "https://github.com/Spomky-Labs/pki-framework/tree/1.6.3"
},
"funding": [
{
@@ -6685,26 +8076,26 @@
"type": "patreon"
}
],
- "time": "2026-03-23T22:56:56+00:00"
+ "time": "2026-09-12T19:02:49+00:00",
+ "published-time": "2026-09-12T19:03:18+00:00"
},
{
"name": "symfony/clock",
- "version": "v7.4.8",
+ "version": "v8.1.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/clock.git",
- "reference": "674fa3b98e21531dd040e613479f5f6fa8f32111"
+ "reference": "945ea3b64d6da9c1c2c354fe5c07b27455df6442"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/clock/zipball/674fa3b98e21531dd040e613479f5f6fa8f32111",
- "reference": "674fa3b98e21531dd040e613479f5f6fa8f32111",
+ "url": "https://api.github.com/repos/symfony/clock/zipball/945ea3b64d6da9c1c2c354fe5c07b27455df6442",
+ "reference": "945ea3b64d6da9c1c2c354fe5c07b27455df6442",
"shasum": ""
},
"require": {
- "php": ">=8.2",
- "psr/clock": "^1.0",
- "symfony/polyfill-php83": "^1.28"
+ "php": ">=8.4.1",
+ "psr/clock": "^1.0"
},
"provide": {
"psr/clock-implementation": "1.0"
@@ -6743,7 +8134,7 @@
"time"
],
"support": {
- "source": "https://github.com/symfony/clock/tree/v7.4.8"
+ "source": "https://github.com/symfony/clock/tree/v8.1.9"
},
"funding": [
{
@@ -6763,27 +8154,34 @@
"type": "tidelift"
}
],
- "time": "2026-03-24T13:12:05+00:00"
+ "time": "2026-10-12T14:32:04+00:00",
+ "published-time": "2026-10-14T06:48:32+00:00"
},
{
"name": "symfony/console",
- "version": "v8.0.9",
+ "version": "v8.1.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
- "reference": "7113778e2e91f4709cb3194a75dfa9c0d028d94d"
+ "reference": "5a315b092b81f3e920e9daea1a2ae4c66ed298b9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/console/zipball/7113778e2e91f4709cb3194a75dfa9c0d028d94d",
- "reference": "7113778e2e91f4709cb3194a75dfa9c0d028d94d",
+ "url": "https://api.github.com/repos/symfony/console/zipball/5a315b092b81f3e920e9daea1a2ae4c66ed298b9",
+ "reference": "5a315b092b81f3e920e9daea1a2ae4c66ed298b9",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "^1.0",
+ "symfony/polyfill-php85": "^1.32",
"symfony/service-contracts": "^2.5|^3",
- "symfony/string": "^7.4|^8.0"
+ "symfony/string": "^7.4.6|^8.0.6"
+ },
+ "conflict": {
+ "symfony/dependency-injection": "<8.1",
+ "symfony/event-dispatcher": "<8.1"
},
"provide": {
"psr/log-implementation": "1.0|2.0|3.0"
@@ -6791,14 +8189,18 @@
"require-dev": {
"psr/log": "^1|^2|^3",
"symfony/config": "^7.4|^8.0",
- "symfony/dependency-injection": "^7.4|^8.0",
- "symfony/event-dispatcher": "^7.4|^8.0",
+ "symfony/dependency-injection": "^8.1",
+ "symfony/event-dispatcher": "^8.1",
+ "symfony/filesystem": "^7.4|^8.0",
"symfony/http-foundation": "^7.4|^8.0",
"symfony/http-kernel": "^7.4|^8.0",
"symfony/lock": "^7.4|^8.0",
"symfony/messenger": "^7.4|^8.0",
+ "symfony/mime": "^7.4|^8.0",
"symfony/process": "^7.4|^8.0",
"symfony/stopwatch": "^7.4|^8.0",
+ "symfony/uid": "^7.4|^8.0",
+ "symfony/validator": "^7.4|^8.0",
"symfony/var-dumper": "^7.4|^8.0"
},
"type": "library",
@@ -6833,7 +8235,7 @@
"terminal"
],
"support": {
- "source": "https://github.com/symfony/console/tree/v8.0.9"
+ "source": "https://github.com/symfony/console/tree/v8.1.11"
},
"funding": [
{
@@ -6853,24 +8255,25 @@
"type": "tidelift"
}
],
- "time": "2026-04-29T15:02:55+00:00"
+ "time": "2026-11-04T07:07:11+00:00",
+ "published-time": "2026-11-04T11:31:39+00:00"
},
{
"name": "symfony/css-selector",
- "version": "v8.0.9",
+ "version": "v8.1.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/css-selector.git",
- "reference": "3665cfade90565430909b906394c73c8739e57d0"
+ "reference": "9cfd588b8b07cf83e3426b030dbafd2291c132d9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/css-selector/zipball/3665cfade90565430909b906394c73c8739e57d0",
- "reference": "3665cfade90565430909b906394c73c8739e57d0",
+ "url": "https://api.github.com/repos/symfony/css-selector/zipball/9cfd588b8b07cf83e3426b030dbafd2291c132d9",
+ "reference": "9cfd588b8b07cf83e3426b030dbafd2291c132d9",
"shasum": ""
},
"require": {
- "php": ">=8.4"
+ "php": ">=8.4.1"
},
"type": "library",
"autoload": {
@@ -6902,7 +8305,7 @@
"description": "Converts CSS selectors to XPath expressions",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/css-selector/tree/v8.0.9"
+ "source": "https://github.com/symfony/css-selector/tree/v8.1.10"
},
"funding": [
{
@@ -6922,20 +8325,21 @@
"type": "tidelift"
}
],
- "time": "2026-04-18T13:51:42+00:00"
+ "time": "2026-10-18T14:56:39+00:00",
+ "published-time": "2026-10-28T18:24:46+00:00"
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.7.0",
+ "version": "v3.8.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b"
+ "reference": "feb1edf4e546af3b85c5caebe8359a20db230ca3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/50f59d1f3ca46d41ac911f97a78626b6756af35b",
- "reference": "50f59d1f3ca46d41ac911f97a78626b6756af35b",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/feb1edf4e546af3b85c5caebe8359a20db230ca3",
+ "reference": "feb1edf4e546af3b85c5caebe8359a20db230ca3",
"shasum": ""
},
"require": {
@@ -6948,7 +8352,7 @@
"name": "symfony/contracts"
},
"branch-alias": {
- "dev-main": "3.7-dev"
+ "dev-main": "3.8-dev"
}
},
"autoload": {
@@ -6973,7 +8377,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.7.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.8.1"
},
"funding": [
{
@@ -6993,24 +8397,25 @@
"type": "tidelift"
}
],
- "time": "2026-04-13T15:52:40+00:00"
+ "time": "2026-09-16T14:15:10+00:00",
+ "published-time": "2026-11-04T11:25:34+00:00"
},
{
"name": "symfony/dom-crawler",
- "version": "v8.0.8",
+ "version": "v8.1.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/dom-crawler.git",
- "reference": "284ace90732b445b027728b5e0eec6418a17a364"
+ "reference": "aa0674b52e1bd00502756fbaba8c982b446472e6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/284ace90732b445b027728b5e0eec6418a17a364",
- "reference": "284ace90732b445b027728b5e0eec6418a17a364",
+ "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/aa0674b52e1bd00502756fbaba8c982b446472e6",
+ "reference": "aa0674b52e1bd00502756fbaba8c982b446472e6",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/polyfill-ctype": "^1.8",
"symfony/polyfill-mbstring": "^1.0"
},
@@ -7043,7 +8448,7 @@
"description": "Eases DOM navigation for HTML and XML documents",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/dom-crawler/tree/v8.0.8"
+ "source": "https://github.com/symfony/dom-crawler/tree/v8.1.10"
},
"funding": [
{
@@ -7063,24 +8468,25 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-10-25T14:40:25+00:00",
+ "published-time": "2026-10-28T18:24:41+00:00"
},
{
"name": "symfony/error-handler",
- "version": "v8.0.8",
+ "version": "v8.1.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/error-handler.git",
- "reference": "c1119fe8dcfc3825ec74ec061b96ef0c8f281517"
+ "reference": "84c6d73f990ae22dbd45625c056d7ff99ca6810d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/error-handler/zipball/c1119fe8dcfc3825ec74ec061b96ef0c8f281517",
- "reference": "c1119fe8dcfc3825ec74ec061b96ef0c8f281517",
+ "url": "https://api.github.com/repos/symfony/error-handler/zipball/84c6d73f990ae22dbd45625c056d7ff99ca6810d",
+ "reference": "84c6d73f990ae22dbd45625c056d7ff99ca6810d",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"psr/log": "^1|^2|^3",
"symfony/polyfill-php85": "^1.32",
"symfony/var-dumper": "^7.4|^8.0"
@@ -7124,7 +8530,7 @@
"description": "Provides tools to manage errors and ease debugging PHP code",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/error-handler/tree/v8.0.8"
+ "source": "https://github.com/symfony/error-handler/tree/v8.1.10"
},
"funding": [
{
@@ -7144,24 +8550,26 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-10-25T14:40:25+00:00",
+ "published-time": "2026-10-28T18:24:13+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v8.0.9",
+ "version": "v8.1.5",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "0c3c1a17604c4dbbec4b93fe162c538482096e1f"
+ "reference": "7458da64220376b2e0dc2d8451bf43382c1ad297"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/0c3c1a17604c4dbbec4b93fe162c538482096e1f",
- "reference": "0c3c1a17604c4dbbec4b93fe162c538482096e1f",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/7458da64220376b2e0dc2d8451bf43382c1ad297",
+ "reference": "7458da64220376b2e0dc2d8451bf43382c1ad297",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/event-dispatcher-contracts": "^2.5|^3"
},
"conflict": {
@@ -7209,7 +8617,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v8.0.9"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v8.1.5"
},
"funding": [
{
@@ -7229,20 +8637,21 @@
"type": "tidelift"
}
],
- "time": "2026-04-18T13:51:42+00:00"
+ "time": "2026-08-21T17:47:34+00:00",
+ "published-time": "2026-08-22T13:46:58+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.7.0",
+ "version": "v3.8.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "ccba7060602b7fed0b03c85bf025257f76d9ef32"
+ "reference": "658e29751424da3ef4758c60f769e59d1b2981eb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/ccba7060602b7fed0b03c85bf025257f76d9ef32",
- "reference": "ccba7060602b7fed0b03c85bf025257f76d9ef32",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/658e29751424da3ef4758c60f769e59d1b2981eb",
+ "reference": "658e29751424da3ef4758c60f769e59d1b2981eb",
"shasum": ""
},
"require": {
@@ -7256,7 +8665,7 @@
"name": "symfony/contracts"
},
"branch-alias": {
- "dev-main": "3.7-dev"
+ "dev-main": "3.8-dev"
}
},
"autoload": {
@@ -7289,7 +8698,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.7.0"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.8.1"
},
"funding": [
{
@@ -7309,24 +8718,26 @@
"type": "tidelift"
}
],
- "time": "2026-01-05T13:30:16+00:00"
+ "time": "2026-09-16T14:15:10+00:00",
+ "published-time": "2026-11-04T11:25:36+00:00"
},
{
"name": "symfony/filesystem",
- "version": "v8.0.9",
+ "version": "v8.1.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/filesystem.git",
- "reference": "d1ec4543d5c6c2dac78503c2fae5ea0b3608ce40"
+ "reference": "58f57b6a33e3495f7f41e01258f1ae5ef76cccd2"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/filesystem/zipball/d1ec4543d5c6c2dac78503c2fae5ea0b3608ce40",
- "reference": "d1ec4543d5c6c2dac78503c2fae5ea0b3608ce40",
+ "url": "https://api.github.com/repos/symfony/filesystem/zipball/58f57b6a33e3495f7f41e01258f1ae5ef76cccd2",
+ "reference": "58f57b6a33e3495f7f41e01258f1ae5ef76cccd2",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-ctype": "~1.8",
"symfony/polyfill-mbstring": "~1.8"
},
@@ -7359,7 +8770,7 @@
"description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/filesystem/tree/v8.0.9"
+ "source": "https://github.com/symfony/filesystem/tree/v8.1.11"
},
"funding": [
{
@@ -7379,24 +8790,25 @@
"type": "tidelift"
}
],
- "time": "2026-04-18T13:51:42+00:00"
+ "time": "2026-11-04T08:39:20+00:00",
+ "published-time": "2026-11-04T11:32:01+00:00"
},
{
"name": "symfony/finder",
- "version": "v8.0.8",
+ "version": "v8.1.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
- "reference": "8da41214757b87d97f181e3d14a4179286151007"
+ "reference": "a2902e479ba5691d20d51d100a715ea19ad2c837"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/finder/zipball/8da41214757b87d97f181e3d14a4179286151007",
- "reference": "8da41214757b87d97f181e3d14a4179286151007",
+ "url": "https://api.github.com/repos/symfony/finder/zipball/a2902e479ba5691d20d51d100a715ea19ad2c837",
+ "reference": "a2902e479ba5691d20d51d100a715ea19ad2c837",
"shasum": ""
},
"require": {
- "php": ">=8.4"
+ "php": ">=8.4.1"
},
"require-dev": {
"symfony/filesystem": "^7.4|^8.0"
@@ -7427,7 +8839,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/finder/tree/v8.0.8"
+ "source": "https://github.com/symfony/finder/tree/v8.1.11"
},
"funding": [
{
@@ -7447,26 +8859,27 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-11-02T10:58:30+00:00",
+ "published-time": "2026-11-04T11:31:20+00:00"
},
{
"name": "symfony/html-sanitizer",
- "version": "v8.0.8",
+ "version": "v8.1.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/html-sanitizer.git",
- "reference": "b0e4a2d9a82ab6bdcc742a63398781f6dae64fe5"
+ "reference": "1ecf13d98b75f5d8a2dcc1ffecde7184d29506ef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/b0e4a2d9a82ab6bdcc742a63398781f6dae64fe5",
- "reference": "b0e4a2d9a82ab6bdcc742a63398781f6dae64fe5",
+ "url": "https://api.github.com/repos/symfony/html-sanitizer/zipball/1ecf13d98b75f5d8a2dcc1ffecde7184d29506ef",
+ "reference": "1ecf13d98b75f5d8a2dcc1ffecde7184d29506ef",
"shasum": ""
},
"require": {
"ext-dom": "*",
"league/uri": "^6.5|^7.0",
- "php": ">=8.4"
+ "php": ">=8.4.1"
},
"type": "library",
"autoload": {
@@ -7499,7 +8912,7 @@
"sanitizer"
],
"support": {
- "source": "https://github.com/symfony/html-sanitizer/tree/v8.0.8"
+ "source": "https://github.com/symfony/html-sanitizer/tree/v8.1.11"
},
"funding": [
{
@@ -7519,24 +8932,26 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-11-04T08:39:20+00:00",
+ "published-time": "2026-11-04T11:31:16+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v8.0.8",
+ "version": "v8.1.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "02656f7ebeae5c155d659e946f6b3a33df24051b"
+ "reference": "30fa3efe6e736b0d06f5331cc6abe813582c0a26"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/02656f7ebeae5c155d659e946f6b3a33df24051b",
- "reference": "02656f7ebeae5c155d659e946f6b3a33df24051b",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/30fa3efe6e736b0d06f5331cc6abe813582c0a26",
+ "reference": "30fa3efe6e736b0d06f5331cc6abe813582c0a26",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "^1.1"
},
"conflict": {
@@ -7579,7 +8994,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v8.0.8"
+ "source": "https://github.com/symfony/http-foundation/tree/v8.1.11"
},
"funding": [
{
@@ -7599,34 +9014,40 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-11-04T08:39:20+00:00",
+ "published-time": "2026-11-04T11:31:54+00:00"
},
{
"name": "symfony/http-kernel",
- "version": "v8.0.10",
+ "version": "v8.1.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-kernel.git",
- "reference": "fb3f65b3d4ca2dad31c80d323819a762ca31d6ac"
+ "reference": "460658504e26a2794aa614b4fbe6cf9bac2076fe"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-kernel/zipball/fb3f65b3d4ca2dad31c80d323819a762ca31d6ac",
- "reference": "fb3f65b3d4ca2dad31c80d323819a762ca31d6ac",
+ "url": "https://api.github.com/repos/symfony/http-kernel/zipball/460658504e26a2794aa614b4fbe6cf9bac2076fe",
+ "reference": "460658504e26a2794aa614b4fbe6cf9bac2076fe",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"psr/log": "^1|^2|^3",
+ "symfony/deprecation-contracts": "^2.5|^3",
"symfony/error-handler": "^7.4|^8.0",
"symfony/event-dispatcher": "^7.4|^8.0",
"symfony/http-foundation": "^7.4|^8.0",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
+ "symfony/dependency-injection": "<8.1",
"symfony/flex": "<2.10",
"symfony/http-client-contracts": "<2.5",
+ "symfony/serializer": "<7.4.15|>=8.0,<8.0.15|>=8.1,<8.1.2",
"symfony/translation-contracts": "<2.5",
+ "symfony/var-dumper": "<8.1",
+ "symfony/web-profiler-bundle": "<8.1",
"twig/twig": "<3.21"
},
"provide": {
@@ -7639,13 +9060,14 @@
"symfony/config": "^7.4|^8.0",
"symfony/console": "^7.4|^8.0",
"symfony/css-selector": "^7.4|^8.0",
- "symfony/dependency-injection": "^7.4|^8.0",
+ "symfony/dependency-injection": "^8.1",
"symfony/dom-crawler": "^7.4|^8.0",
"symfony/expression-language": "^7.4|^8.0",
"symfony/finder": "^7.4|^8.0",
"symfony/http-client-contracts": "^2.5|^3",
"symfony/process": "^7.4|^8.0",
"symfony/property-access": "^7.4|^8.0",
+ "symfony/rate-limiter": "^7.4|^8.0",
"symfony/routing": "^7.4|^8.0",
"symfony/serializer": "^7.4|^8.0",
"symfony/stopwatch": "^7.4|^8.0",
@@ -7653,9 +9075,9 @@
"symfony/translation-contracts": "^2.5|^3",
"symfony/uid": "^7.4|^8.0",
"symfony/validator": "^7.4|^8.0",
- "symfony/var-dumper": "^7.4|^8.0",
+ "symfony/var-dumper": "^8.1",
"symfony/var-exporter": "^7.4|^8.0",
- "twig/twig": "^3.21"
+ "twig/twig": "^3.21|^4.0"
},
"type": "library",
"autoload": {
@@ -7683,7 +9105,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/v8.0.10"
+ "source": "https://github.com/symfony/http-kernel/tree/v8.1.11"
},
"funding": [
{
@@ -7703,25 +9125,26 @@
"type": "tidelift"
}
],
- "time": "2026-05-06T12:27:31+00:00"
+ "time": "2026-11-04T11:29:46+00:00",
+ "published-time": "2026-11-04T11:32:19+00:00"
},
{
"name": "symfony/mailer",
- "version": "v8.0.8",
+ "version": "v8.1.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/mailer.git",
- "reference": "ca5f6edaf8780ece814404b58a4482b22b509c56"
+ "reference": "4ba81a8f04fbf0bb1691f7bff760b301f1956fd7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mailer/zipball/ca5f6edaf8780ece814404b58a4482b22b509c56",
- "reference": "ca5f6edaf8780ece814404b58a4482b22b509c56",
+ "url": "https://api.github.com/repos/symfony/mailer/zipball/4ba81a8f04fbf0bb1691f7bff760b301f1956fd7",
+ "reference": "4ba81a8f04fbf0bb1691f7bff760b301f1956fd7",
"shasum": ""
},
"require": {
"egulias/email-validator": "^2.1.10|^3|^4",
- "php": ">=8.4",
+ "php": ">=8.4.1",
"psr/event-dispatcher": "^1",
"psr/log": "^1|^2|^3",
"symfony/event-dispatcher": "^7.4|^8.0",
@@ -7763,7 +9186,7 @@
"description": "Helps sending emails",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/mailer/tree/v8.0.8"
+ "source": "https://github.com/symfony/mailer/tree/v8.1.10"
},
"funding": [
{
@@ -7783,24 +9206,25 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-10-23T17:06:53+00:00",
+ "published-time": "2026-10-28T18:23:52+00:00"
},
{
"name": "symfony/mime",
- "version": "v8.0.9",
+ "version": "v8.1.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/mime.git",
- "reference": "a9fcb293650c054b62a5b406f4e92e7b711ea333"
+ "reference": "8d1232052c9cdef170ed9608b3147bca4f61ff69"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/mime/zipball/a9fcb293650c054b62a5b406f4e92e7b711ea333",
- "reference": "a9fcb293650c054b62a5b406f4e92e7b711ea333",
+ "url": "https://api.github.com/repos/symfony/mime/zipball/8d1232052c9cdef170ed9608b3147bca4f61ff69",
+ "reference": "8d1232052c9cdef170ed9608b3147bca4f61ff69",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/polyfill-intl-idn": "^1.10",
"symfony/polyfill-mbstring": "^1.0"
},
@@ -7817,7 +9241,7 @@
"symfony/process": "^7.4|^8.0",
"symfony/property-access": "^7.4|^8.0",
"symfony/property-info": "^7.4|^8.0",
- "symfony/serializer": "^7.4|^8.0"
+ "symfony/serializer": "^7.4.17|^8.1.5"
},
"type": "library",
"autoload": {
@@ -7849,7 +9273,7 @@
"mime-type"
],
"support": {
- "source": "https://github.com/symfony/mime/tree/v8.0.9"
+ "source": "https://github.com/symfony/mime/tree/v8.1.10"
},
"funding": [
{
@@ -7869,7 +9293,8 @@
"type": "tidelift"
}
],
- "time": "2026-04-29T15:02:55+00:00"
+ "time": "2026-10-28T17:58:38+00:00",
+ "published-time": "2026-10-28T18:23:55+00:00"
},
{
"name": "symfony/polyfill-ctype",
@@ -7952,20 +9377,21 @@
"type": "tidelift"
}
],
- "time": "2026-04-10T16:19:22+00:00"
+ "time": "2026-04-10T16:19:22+00:00",
+ "published-time": "2026-04-26T14:44:50+00:00"
},
{
"name": "symfony/polyfill-intl-grapheme",
- "version": "v1.37.0",
+ "version": "v1.43.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git",
- "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e"
+ "reference": "5a8f33c87aeecffce24e721b5064fab05f4becf8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/4864388bfbd3001ce88e234fab652acd91fdc57e",
- "reference": "4864388bfbd3001ce88e234fab652acd91fdc57e",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-grapheme/zipball/5a8f33c87aeecffce24e721b5064fab05f4becf8",
+ "reference": "5a8f33c87aeecffce24e721b5064fab05f4becf8",
"shasum": ""
},
"require": {
@@ -8014,7 +9440,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.37.0"
+ "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.43.3"
},
"funding": [
{
@@ -8034,20 +9460,21 @@
"type": "tidelift"
}
],
- "time": "2026-04-26T13:13:48+00:00"
+ "time": "2026-10-15T09:18:53+00:00",
+ "published-time": "2026-10-28T10:07:44+00:00"
},
{
"name": "symfony/polyfill-intl-idn",
- "version": "v1.37.0",
+ "version": "v1.43.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-idn.git",
- "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3"
+ "reference": "533d68cf99c8f8ee2e8893c59ed59192e92cfd74"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/9614ac4d8061dc257ecc64cba1b140873dce8ad3",
- "reference": "9614ac4d8061dc257ecc64cba1b140873dce8ad3",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-idn/zipball/533d68cf99c8f8ee2e8893c59ed59192e92cfd74",
+ "reference": "533d68cf99c8f8ee2e8893c59ed59192e92cfd74",
"shasum": ""
},
"require": {
@@ -8101,7 +9528,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.37.0"
+ "source": "https://github.com/symfony/polyfill-intl-idn/tree/v1.43.0"
},
"funding": [
{
@@ -8121,20 +9548,21 @@
"type": "tidelift"
}
],
- "time": "2024-09-10T14:38:51+00:00"
+ "time": "2026-09-23T14:40:04+00:00",
+ "published-time": "2026-09-30T10:23:39+00:00"
},
{
"name": "symfony/polyfill-intl-normalizer",
- "version": "v1.37.0",
+ "version": "v1.43.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git",
- "reference": "3833d7255cc303546435cb650316bff708a1c75c"
+ "reference": "ebd57ccc7edb93d632e184efbe7693d2517bab3b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/3833d7255cc303546435cb650316bff708a1c75c",
- "reference": "3833d7255cc303546435cb650316bff708a1c75c",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-normalizer/zipball/ebd57ccc7edb93d632e184efbe7693d2517bab3b",
+ "reference": "ebd57ccc7edb93d632e184efbe7693d2517bab3b",
"shasum": ""
},
"require": {
@@ -8186,7 +9614,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.37.0"
+ "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.43.0"
},
"funding": [
{
@@ -8206,20 +9634,21 @@
"type": "tidelift"
}
],
- "time": "2024-09-09T11:45:10+00:00"
+ "time": "2026-09-23T22:02:09+00:00",
+ "published-time": "2026-09-30T10:23:47+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.37.0",
+ "version": "v1.43.3",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315"
+ "reference": "122889ed24dc000165bcbfd77ec412f15cbdfc6a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6a21eb99c6973357967f6ce3708cd55a6bec6315",
- "reference": "6a21eb99c6973357967f6ce3708cd55a6bec6315",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/122889ed24dc000165bcbfd77ec412f15cbdfc6a",
+ "reference": "122889ed24dc000165bcbfd77ec412f15cbdfc6a",
"shasum": ""
},
"require": {
@@ -8271,7 +9700,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.37.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.43.3"
},
"funding": [
{
@@ -8291,20 +9720,21 @@
"type": "tidelift"
}
],
- "time": "2026-04-10T17:25:58+00:00"
+ "time": "2026-10-28T09:35:49+00:00",
+ "published-time": "2026-10-28T10:07:45+00:00"
},
{
"name": "symfony/polyfill-php80",
- "version": "v1.37.0",
+ "version": "v1.43.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411"
+ "reference": "9c6a5d6b01ca51d486c813e9a9c0ed55f208bb74"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/dfb55726c3a76ea3b6459fcfda1ec2d80a682411",
- "reference": "dfb55726c3a76ea3b6459fcfda1ec2d80a682411",
+ "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/9c6a5d6b01ca51d486c813e9a9c0ed55f208bb74",
+ "reference": "9c6a5d6b01ca51d486c813e9a9c0ed55f208bb74",
"shasum": ""
},
"require": {
@@ -8355,7 +9785,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.37.0"
+ "source": "https://github.com/symfony/polyfill-php80/tree/v1.43.0"
},
"funding": [
{
@@ -8375,20 +9805,21 @@
"type": "tidelift"
}
],
- "time": "2026-04-10T16:19:22+00:00"
+ "time": "2026-09-25T15:50:05+00:00",
+ "published-time": "2026-09-30T10:23:35+00:00"
},
{
- "name": "symfony/polyfill-php83",
- "version": "v1.37.0",
+ "name": "symfony/polyfill-php81",
+ "version": "v1.38.1",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php83.git",
- "reference": "3600c2cb22399e25bb226e4a135ce91eeb2a6149"
+ "url": "https://github.com/symfony/polyfill-php81.git",
+ "reference": "6bfb9c766cacffbc8e118cb87217d08ed84e5cd7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/3600c2cb22399e25bb226e4a135ce91eeb2a6149",
- "reference": "3600c2cb22399e25bb226e4a135ce91eeb2a6149",
+ "url": "https://api.github.com/repos/symfony/polyfill-php81/zipball/6bfb9c766cacffbc8e118cb87217d08ed84e5cd7",
+ "reference": "6bfb9c766cacffbc8e118cb87217d08ed84e5cd7",
"shasum": ""
},
"require": {
@@ -8406,7 +9837,7 @@
"bootstrap.php"
],
"psr-4": {
- "Symfony\\Polyfill\\Php83\\": ""
+ "Symfony\\Polyfill\\Php81\\": ""
},
"classmap": [
"Resources/stubs"
@@ -8426,7 +9857,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
+ "description": "Symfony polyfill backporting some PHP 8.1+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
@@ -8435,7 +9866,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php83/tree/v1.37.0"
+ "source": "https://github.com/symfony/polyfill-php81/tree/v1.38.1"
},
"funding": [
{
@@ -8455,20 +9886,21 @@
"type": "tidelift"
}
],
- "time": "2026-04-10T17:25:58+00:00"
+ "time": "2026-05-26T12:45:58+00:00",
+ "published-time": "2026-05-26T13:40:34+00:00"
},
{
- "name": "symfony/polyfill-php84",
- "version": "v1.37.0",
+ "name": "symfony/polyfill-php82",
+ "version": "v1.43.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php84.git",
- "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06"
+ "url": "https://github.com/symfony/polyfill-php82.git",
+ "reference": "843bbe8b2a7934307b749751eede0f111f5d1cfc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/88486db2c389b290bf87ff1de7ebc1e13e42bb06",
- "reference": "88486db2c389b290bf87ff1de7ebc1e13e42bb06",
+ "url": "https://api.github.com/repos/symfony/polyfill-php82/zipball/843bbe8b2a7934307b749751eede0f111f5d1cfc",
+ "reference": "843bbe8b2a7934307b749751eede0f111f5d1cfc",
"shasum": ""
},
"require": {
@@ -8486,7 +9918,7 @@
"bootstrap.php"
],
"psr-4": {
- "Symfony\\Polyfill\\Php84\\": ""
+ "Symfony\\Polyfill\\Php82\\": ""
},
"classmap": [
"Resources/stubs"
@@ -8506,7 +9938,7 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions",
+ "description": "Symfony polyfill backporting some PHP 8.2+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
@@ -8515,7 +9947,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php84/tree/v1.37.0"
+ "source": "https://github.com/symfony/polyfill-php82/tree/v1.43.0"
},
"funding": [
{
@@ -8535,20 +9967,21 @@
"type": "tidelift"
}
],
- "time": "2026-04-10T18:47:49+00:00"
+ "time": "2026-09-25T15:50:05+00:00",
+ "published-time": "2026-09-30T10:23:32+00:00"
},
{
- "name": "symfony/polyfill-php85",
- "version": "v1.37.0",
+ "name": "symfony/polyfill-php84",
+ "version": "v1.43.0",
"source": {
"type": "git",
- "url": "https://github.com/symfony/polyfill-php85.git",
- "reference": "fcfa4973a9917cef23f2e38774da74a2b7d115ee"
+ "url": "https://github.com/symfony/polyfill-php84.git",
+ "reference": "22c6548499cbe5c5bb072fc0c42312dff062a015"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/fcfa4973a9917cef23f2e38774da74a2b7d115ee",
- "reference": "fcfa4973a9917cef23f2e38774da74a2b7d115ee",
+ "url": "https://api.github.com/repos/symfony/polyfill-php84/zipball/22c6548499cbe5c5bb072fc0c42312dff062a015",
+ "reference": "22c6548499cbe5c5bb072fc0c42312dff062a015",
"shasum": ""
},
"require": {
@@ -8566,7 +9999,7 @@
"bootstrap.php"
],
"psr-4": {
- "Symfony\\Polyfill\\Php85\\": ""
+ "Symfony\\Polyfill\\Php84\\": ""
},
"classmap": [
"Resources/stubs"
@@ -8586,7 +10019,88 @@
"homepage": "https://symfony.com/contributors"
}
],
- "description": "Symfony polyfill backporting some PHP 8.5+ features to lower PHP versions",
+ "description": "Symfony polyfill backporting some PHP 8.4+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php84/tree/v1.43.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2026-09-23T22:01:09+00:00",
+ "published-time": "2026-09-30T10:23:33+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php85",
+ "version": "v1.43.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php85.git",
+ "reference": "86a42cbcc07adc331481a5ab310a4024bfc227f6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php85/zipball/86a42cbcc07adc331481a5ab310a4024bfc227f6",
+ "reference": "86a42cbcc07adc331481a5ab310a4024bfc227f6",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php85\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.5+ features to lower PHP versions",
"homepage": "https://symfony.com",
"keywords": [
"compatibility",
@@ -8595,7 +10109,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php85/tree/v1.37.0"
+ "source": "https://github.com/symfony/polyfill-php85/tree/v1.43.0"
},
"funding": [
{
@@ -8615,20 +10129,21 @@
"type": "tidelift"
}
],
- "time": "2026-04-26T13:10:57+00:00"
+ "time": "2026-09-25T15:46:47+00:00",
+ "published-time": "2026-09-30T10:23:32+00:00"
},
{
"name": "symfony/polyfill-php86",
- "version": "v1.37.0",
+ "version": "v1.43.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php86.git",
- "reference": "33d8fc5a705481e21fe3a81212b26f9b1f61749c"
+ "reference": "8840df45b24f33a49dc419fa18dc0057231ae1d8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php86/zipball/33d8fc5a705481e21fe3a81212b26f9b1f61749c",
- "reference": "33d8fc5a705481e21fe3a81212b26f9b1f61749c",
+ "url": "https://api.github.com/repos/symfony/polyfill-php86/zipball/8840df45b24f33a49dc419fa18dc0057231ae1d8",
+ "reference": "8840df45b24f33a49dc419fa18dc0057231ae1d8",
"shasum": ""
},
"require": {
@@ -8675,7 +10190,91 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php86/tree/v1.37.0"
+ "source": "https://github.com/symfony/polyfill-php86/tree/v1.43.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2026-09-25T15:46:47+00:00",
+ "published-time": "2026-09-30T10:23:43+00:00"
+ },
+ {
+ "name": "symfony/polyfill-time",
+ "version": "v1.42.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-time.git",
+ "reference": "ac9f1ed802dd58f37e720388130c088434aa09fc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-time/zipball/ac9f1ed802dd58f37e720388130c088434aa09fc",
+ "reference": "ac9f1ed802dd58f37e720388130c088434aa09fc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Time\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Ignace Philippe Nyamagana Butera",
+ "email": "nyamsprod@gmail.com"
+ },
+ {
+ "name": "Tim Düsterhus",
+ "email": "tim@tideways-gmbh.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill for the Time API added to PHP 8.6",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "duration",
+ "polyfill",
+ "portable",
+ "shim",
+ "time"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-time/tree/v1.42.0"
},
"funding": [
{
@@ -8695,20 +10294,21 @@
"type": "tidelift"
}
],
- "time": "2026-04-26T13:13:48+00:00"
+ "time": "2026-08-07T13:08:13+00:00",
+ "published-time": "2026-08-24T11:45:15+00:00"
},
{
"name": "symfony/polyfill-uuid",
- "version": "v1.37.0",
+ "version": "v1.43.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-uuid.git",
- "reference": "26dfec253c4cf3e51b541b52ddf7e42cb0908e94"
+ "reference": "b23ff8245cc5c4479ea2be3d0132d2e6dd433993"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/26dfec253c4cf3e51b541b52ddf7e42cb0908e94",
- "reference": "26dfec253c4cf3e51b541b52ddf7e42cb0908e94",
+ "url": "https://api.github.com/repos/symfony/polyfill-uuid/zipball/b23ff8245cc5c4479ea2be3d0132d2e6dd433993",
+ "reference": "b23ff8245cc5c4479ea2be3d0132d2e6dd433993",
"shasum": ""
},
"require": {
@@ -8758,7 +10358,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/polyfill-uuid/tree/v1.37.0"
+ "source": "https://github.com/symfony/polyfill-uuid/tree/v1.43.0"
},
"funding": [
{
@@ -8778,24 +10378,25 @@
"type": "tidelift"
}
],
- "time": "2026-04-10T16:19:22+00:00"
+ "time": "2026-09-24T05:20:52+00:00",
+ "published-time": "2026-09-30T10:23:49+00:00"
},
{
"name": "symfony/process",
- "version": "v8.0.8",
+ "version": "v8.1.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
- "reference": "cb8939aff03470d1a9d1d1b66d08c6fa71b3bbdc"
+ "reference": "08aa69fa0998bb65a089f9e148a2c0f8b391398e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/process/zipball/cb8939aff03470d1a9d1d1b66d08c6fa71b3bbdc",
- "reference": "cb8939aff03470d1a9d1d1b66d08c6fa71b3bbdc",
+ "url": "https://api.github.com/repos/symfony/process/zipball/08aa69fa0998bb65a089f9e148a2c0f8b391398e",
+ "reference": "08aa69fa0998bb65a089f9e148a2c0f8b391398e",
"shasum": ""
},
"require": {
- "php": ">=8.4"
+ "php": ">=8.4.1"
},
"type": "library",
"autoload": {
@@ -8823,7 +10424,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/process/tree/v8.0.8"
+ "source": "https://github.com/symfony/process/tree/v8.1.10"
},
"funding": [
{
@@ -8843,29 +10444,30 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-10-25T14:40:25+00:00",
+ "published-time": "2026-10-28T18:25:20+00:00"
},
{
"name": "symfony/property-access",
- "version": "v7.4.8",
+ "version": "v8.1.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-access.git",
- "reference": "b7dad9dae8b8a47ef7ecc76c8569e7d8c7d90cfc"
+ "reference": "d080c2afa37114d46e4f950ed8593667f01f7cab"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/property-access/zipball/b7dad9dae8b8a47ef7ecc76c8569e7d8c7d90cfc",
- "reference": "b7dad9dae8b8a47ef7ecc76c8569e7d8c7d90cfc",
+ "url": "https://api.github.com/repos/symfony/property-access/zipball/d080c2afa37114d46e4f950ed8593667f01f7cab",
+ "reference": "d080c2afa37114d46e4f950ed8593667f01f7cab",
"shasum": ""
},
"require": {
- "php": ">=8.2",
- "symfony/property-info": "^6.4.32|~7.3.10|^7.4.4|^8.0.4"
+ "php": ">=8.4.1",
+ "symfony/property-info": "^7.4.4|^8.0.4"
},
"require-dev": {
- "symfony/cache": "^6.4|^7.0|^8.0",
- "symfony/var-exporter": "^6.4.1|^7.0.1|^8.0"
+ "symfony/cache": "^7.4|^8.0",
+ "symfony/var-exporter": "^7.4|^8.0"
},
"type": "library",
"autoload": {
@@ -8904,7 +10506,7 @@
"reflection"
],
"support": {
- "source": "https://github.com/symfony/property-access/tree/v7.4.8"
+ "source": "https://github.com/symfony/property-access/tree/v8.1.11"
},
"funding": [
{
@@ -8924,41 +10526,38 @@
"type": "tidelift"
}
],
- "time": "2026-03-24T13:12:05+00:00"
+ "time": "2026-11-01T19:30:44+00:00",
+ "published-time": "2026-11-04T11:32:16+00:00"
},
{
"name": "symfony/property-info",
- "version": "v7.4.8",
+ "version": "v8.1.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/property-info.git",
- "reference": "ac5e82528b986c4f7cfccbf7764b5d2e824d6175"
+ "reference": "b5afa379a5b54f15a594c1d45ceaa19969d38a16"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/property-info/zipball/ac5e82528b986c4f7cfccbf7764b5d2e824d6175",
- "reference": "ac5e82528b986c4f7cfccbf7764b5d2e824d6175",
+ "url": "https://api.github.com/repos/symfony/property-info/zipball/b5afa379a5b54f15a594c1d45ceaa19969d38a16",
+ "reference": "b5afa379a5b54f15a594c1d45ceaa19969d38a16",
"shasum": ""
},
"require": {
- "php": ">=8.2",
- "symfony/deprecation-contracts": "^2.5|^3",
- "symfony/string": "^6.4|^7.0|^8.0",
+ "php": ">=8.4.1",
+ "symfony/string": "^7.4|^8.0",
"symfony/type-info": "^7.4.7|^8.0.7"
},
"conflict": {
"phpdocumentor/reflection-docblock": "<5.2|>=7",
- "phpdocumentor/type-resolver": "<1.5.1",
- "symfony/cache": "<6.4",
- "symfony/dependency-injection": "<6.4",
- "symfony/serializer": "<6.4"
+ "phpdocumentor/type-resolver": "<1.5.1"
},
"require-dev": {
"phpdocumentor/reflection-docblock": "^5.2|^6.0",
"phpstan/phpdoc-parser": "^1.0|^2.0",
- "symfony/cache": "^6.4|^7.0|^8.0",
- "symfony/dependency-injection": "^6.4|^7.0|^8.0",
- "symfony/serializer": "^6.4|^7.0|^8.0"
+ "symfony/cache": "^7.4|^8.0",
+ "symfony/dependency-injection": "^7.4|^8.0",
+ "symfony/serializer": "^7.4|^8.0"
},
"type": "library",
"autoload": {
@@ -8994,7 +10593,7 @@
"validator"
],
"support": {
- "source": "https://github.com/symfony/property-info/tree/v7.4.8"
+ "source": "https://github.com/symfony/property-info/tree/v8.1.11"
},
"funding": [
{
@@ -9014,24 +10613,25 @@
"type": "tidelift"
}
],
- "time": "2026-03-24T13:12:05+00:00"
+ "time": "2026-11-02T10:58:30+00:00",
+ "published-time": "2026-11-04T11:32:11+00:00"
},
{
"name": "symfony/psr-http-message-bridge",
- "version": "v8.0.8",
+ "version": "v8.1.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/psr-http-message-bridge.git",
- "reference": "94facc221260c1d5f20e31ee43cd6c6a824b4a19"
+ "reference": "cfa8f3ac693fec234a91d8745b45ed9a81a0b799"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/94facc221260c1d5f20e31ee43cd6c6a824b4a19",
- "reference": "94facc221260c1d5f20e31ee43cd6c6a824b4a19",
+ "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/cfa8f3ac693fec234a91d8745b45ed9a81a0b799",
+ "reference": "cfa8f3ac693fec234a91d8745b45ed9a81a0b799",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"psr/http-message": "^1.0|^2.0",
"symfony/http-foundation": "^7.4|^8.0"
},
@@ -9081,7 +10681,7 @@
"psr-7"
],
"support": {
- "source": "https://github.com/symfony/psr-http-message-bridge/tree/v8.0.8"
+ "source": "https://github.com/symfony/psr-http-message-bridge/tree/v8.1.9"
},
"funding": [
{
@@ -9101,24 +10701,25 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-10-07T08:21:34+00:00",
+ "published-time": "2026-10-14T06:48:56+00:00"
},
{
"name": "symfony/routing",
- "version": "v8.0.9",
+ "version": "v8.1.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/routing.git",
- "reference": "75d1bd8e5da3424e4db2fc3ff0222cb4d0c73038"
+ "reference": "f3fefc6cad3748d538be970ca81b71f06d7aa8b3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/routing/zipball/75d1bd8e5da3424e4db2fc3ff0222cb4d0c73038",
- "reference": "75d1bd8e5da3424e4db2fc3ff0222cb4d0c73038",
+ "url": "https://api.github.com/repos/symfony/routing/zipball/f3fefc6cad3748d538be970ca81b71f06d7aa8b3",
+ "reference": "f3fefc6cad3748d538be970ca81b71f06d7aa8b3",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/deprecation-contracts": "^2.5|^3"
},
"require-dev": {
@@ -9161,7 +10762,7 @@
"url"
],
"support": {
- "source": "https://github.com/symfony/routing/tree/v8.0.9"
+ "source": "https://github.com/symfony/routing/tree/v8.1.11"
},
"funding": [
{
@@ -9181,63 +10782,59 @@
"type": "tidelift"
}
],
- "time": "2026-04-29T15:02:55+00:00"
+ "time": "2026-11-04T08:39:20+00:00",
+ "published-time": "2026-11-04T11:30:59+00:00"
},
{
"name": "symfony/serializer",
- "version": "v7.4.10",
+ "version": "v8.1.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/serializer.git",
- "reference": "268c5aa6c4bd675eddd89348e7ecac292a843ddd"
+ "reference": "05624c94507c3acf065b6486bb626f0d741af459"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/serializer/zipball/268c5aa6c4bd675eddd89348e7ecac292a843ddd",
- "reference": "268c5aa6c4bd675eddd89348e7ecac292a843ddd",
+ "url": "https://api.github.com/repos/symfony/serializer/zipball/05624c94507c3acf065b6486bb626f0d741af459",
+ "reference": "05624c94507c3acf065b6486bb626f0d741af459",
"shasum": ""
},
"require": {
- "php": ">=8.2",
+ "php": ">=8.4.1",
"symfony/deprecation-contracts": "^2.5|^3",
- "symfony/polyfill-ctype": "~1.8",
- "symfony/polyfill-php84": "^1.30"
+ "symfony/polyfill-ctype": "^1.8"
},
"conflict": {
"phpdocumentor/reflection-docblock": "<5.2|>=7",
"phpdocumentor/type-resolver": "<1.5.1",
- "symfony/dependency-injection": "<6.4",
- "symfony/property-access": "<6.4.31|>=7.0,<7.4.2|>=8.0,<8.0.2",
- "symfony/property-info": "<6.4",
- "symfony/type-info": "<7.2.5",
- "symfony/uid": "<6.4",
- "symfony/validator": "<6.4",
- "symfony/yaml": "<6.4"
+ "symfony/property-access": "<8.1",
+ "symfony/property-info": "<7.4.15",
+ "symfony/type-info": "<7.4"
},
"require-dev": {
"phpdocumentor/reflection-docblock": "^5.2|^6.0",
"phpstan/phpdoc-parser": "^1.0|^2.0",
"seld/jsonlint": "^1.10",
- "symfony/cache": "^6.4|^7.0|^8.0",
- "symfony/config": "^6.4|^7.0|^8.0",
- "symfony/console": "^6.4|^7.0|^8.0",
- "symfony/dependency-injection": "^7.2|^8.0",
- "symfony/error-handler": "^6.4|^7.0|^8.0",
- "symfony/filesystem": "^6.4|^7.0|^8.0",
- "symfony/form": "^6.4|^7.0|^8.0",
- "symfony/http-foundation": "^6.4|^7.0|^8.0",
- "symfony/http-kernel": "^6.4|^7.0|^8.0",
- "symfony/messenger": "^6.4|^7.0|^8.0",
- "symfony/mime": "^6.4|^7.0|^8.0",
- "symfony/property-access": "^6.4.31|^7.4.2|^8.0.2",
- "symfony/property-info": "^6.4|^7.0|^8.0",
+ "symfony/cache": "^7.4|^8.0",
+ "symfony/config": "^7.4|^8.0",
+ "symfony/console": "^7.4|^8.0",
+ "symfony/dependency-injection": "^7.4|^8.0",
+ "symfony/error-handler": "^7.4|^8.0",
+ "symfony/filesystem": "^7.4|^8.0",
+ "symfony/form": "^7.4|^8.0",
+ "symfony/http-foundation": "^7.4|^8.0",
+ "symfony/http-kernel": "^7.4|^8.0",
+ "symfony/messenger": "^7.4|^8.0",
+ "symfony/mime": "^7.4|^8.0",
+ "symfony/property-access": "^8.1",
+ "symfony/property-info": "^7.4.15|~8.0.15|^8.1.2",
"symfony/translation-contracts": "^2.5|^3",
- "symfony/type-info": "^7.2.5|^8.0",
- "symfony/uid": "^6.4|^7.0|^8.0",
- "symfony/validator": "^6.4|^7.0|^8.0",
- "symfony/var-dumper": "^6.4|^7.0|^8.0",
- "symfony/var-exporter": "^6.4|^7.0|^8.0",
- "symfony/yaml": "^6.4|^7.0|^8.0"
+ "symfony/type-info": "^7.4|^8.0",
+ "symfony/uid": "^7.4|^8.0",
+ "symfony/validator": "^7.4|^8.0",
+ "symfony/var-dumper": "^7.4|^8.0",
+ "symfony/var-exporter": "^7.4|^8.0",
+ "symfony/yaml": "^7.4|^8.0"
},
"type": "library",
"autoload": {
@@ -9265,7 +10862,7 @@
"description": "Handles serializing and deserializing data structures, including object graphs, into array structures or other formats like XML and JSON.",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/serializer/tree/v7.4.10"
+ "source": "https://github.com/symfony/serializer/tree/v8.1.11"
},
"funding": [
{
@@ -9285,20 +10882,21 @@
"type": "tidelift"
}
],
- "time": "2026-05-03T13:03:28+00:00"
+ "time": "2026-11-04T08:39:20+00:00",
+ "published-time": "2026-11-04T11:31:12+00:00"
},
{
"name": "symfony/service-contracts",
- "version": "v3.7.0",
+ "version": "v3.8.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/service-contracts.git",
- "reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a"
+ "reference": "052852a96fd5e5ebdb617dba22031e41a3300fb5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d25d82433a80eba6aa0e6c24b61d7370d99e444a",
- "reference": "d25d82433a80eba6aa0e6c24b61d7370d99e444a",
+ "url": "https://api.github.com/repos/symfony/service-contracts/zipball/052852a96fd5e5ebdb617dba22031e41a3300fb5",
+ "reference": "052852a96fd5e5ebdb617dba22031e41a3300fb5",
"shasum": ""
},
"require": {
@@ -9316,7 +10914,7 @@
"name": "symfony/contracts"
},
"branch-alias": {
- "dev-main": "3.7-dev"
+ "dev-main": "3.8-dev"
}
},
"autoload": {
@@ -9352,7 +10950,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/service-contracts/tree/v3.7.0"
+ "source": "https://github.com/symfony/service-contracts/tree/v3.8.1"
},
"funding": [
{
@@ -9372,24 +10970,25 @@
"type": "tidelift"
}
],
- "time": "2026-03-28T09:44:51+00:00"
+ "time": "2026-10-20T17:38:25+00:00",
+ "published-time": "2026-11-04T11:25:33+00:00"
},
{
"name": "symfony/string",
- "version": "v8.0.8",
+ "version": "v8.1.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
- "reference": "ae9488f874d7603f9d2dfbf120203882b645d963"
+ "reference": "6c6110979c0150393bbb336170e286d51ab4d76c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/string/zipball/ae9488f874d7603f9d2dfbf120203882b645d963",
- "reference": "ae9488f874d7603f9d2dfbf120203882b645d963",
+ "url": "https://api.github.com/repos/symfony/string/zipball/6c6110979c0150393bbb336170e286d51ab4d76c",
+ "reference": "6c6110979c0150393bbb336170e286d51ab4d76c",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/polyfill-ctype": "^1.8",
"symfony/polyfill-intl-grapheme": "^1.33",
"symfony/polyfill-intl-normalizer": "^1.0",
@@ -9442,7 +11041,7 @@
"utf8"
],
"support": {
- "source": "https://github.com/symfony/string/tree/v8.0.8"
+ "source": "https://github.com/symfony/string/tree/v8.1.10"
},
"funding": [
{
@@ -9462,24 +11061,25 @@
"type": "tidelift"
}
],
- "time": "2026-03-30T15:14:47+00:00"
+ "time": "2026-10-23T17:06:53+00:00",
+ "published-time": "2026-10-28T18:24:27+00:00"
},
{
"name": "symfony/translation",
- "version": "v8.0.10",
+ "version": "v8.1.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation.git",
- "reference": "f63e9342e12646a57c91ef8a366a4f9d8e557b67"
+ "reference": "d065adf56e5508293e80d7c140b0a9e043b63e9c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation/zipball/f63e9342e12646a57c91ef8a366a4f9d8e557b67",
- "reference": "f63e9342e12646a57c91ef8a366a4f9d8e557b67",
+ "url": "https://api.github.com/repos/symfony/translation/zipball/d065adf56e5508293e80d7c140b0a9e043b63e9c",
+ "reference": "d065adf56e5508293e80d7c140b0a9e043b63e9c",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/polyfill-mbstring": "^1.0",
"symfony/translation-contracts": "^3.6.1"
},
@@ -9535,7 +11135,7 @@
"description": "Provides tools to internationalize your application",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/translation/tree/v8.0.10"
+ "source": "https://github.com/symfony/translation/tree/v8.1.11"
},
"funding": [
{
@@ -9555,20 +11155,21 @@
"type": "tidelift"
}
],
- "time": "2026-05-06T11:30:54+00:00"
+ "time": "2026-11-01T22:27:46+00:00",
+ "published-time": "2026-11-04T11:31:54+00:00"
},
{
"name": "symfony/translation-contracts",
- "version": "v3.7.0",
+ "version": "v3.8.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/translation-contracts.git",
- "reference": "0ab302977a952b42fd51475c4ebac81f8da0a95d"
+ "reference": "0a3ae917402632fcba2aeddae9c98332f3d7dd05"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/0ab302977a952b42fd51475c4ebac81f8da0a95d",
- "reference": "0ab302977a952b42fd51475c4ebac81f8da0a95d",
+ "url": "https://api.github.com/repos/symfony/translation-contracts/zipball/0a3ae917402632fcba2aeddae9c98332f3d7dd05",
+ "reference": "0a3ae917402632fcba2aeddae9c98332f3d7dd05",
"shasum": ""
},
"require": {
@@ -9581,7 +11182,7 @@
"name": "symfony/contracts"
},
"branch-alias": {
- "dev-main": "3.7-dev"
+ "dev-main": "3.8-dev"
}
},
"autoload": {
@@ -9617,7 +11218,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/translation-contracts/tree/v3.7.0"
+ "source": "https://github.com/symfony/translation-contracts/tree/v3.8.1"
},
"funding": [
{
@@ -9637,24 +11238,25 @@
"type": "tidelift"
}
],
- "time": "2026-01-05T13:30:16+00:00"
+ "time": "2026-10-03T08:17:19+00:00",
+ "published-time": "2026-11-04T11:25:31+00:00"
},
{
"name": "symfony/type-info",
- "version": "v8.0.9",
+ "version": "v8.1.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/type-info.git",
- "reference": "08723aceb8c3271e8cb3db8b2565728b0c88e866"
+ "reference": "9fd1414061c4bbf953bcfc183b133cbfa0a73c73"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/type-info/zipball/08723aceb8c3271e8cb3db8b2565728b0c88e866",
- "reference": "08723aceb8c3271e8cb3db8b2565728b0c88e866",
+ "url": "https://api.github.com/repos/symfony/type-info/zipball/9fd1414061c4bbf953bcfc183b133cbfa0a73c73",
+ "reference": "9fd1414061c4bbf953bcfc183b133cbfa0a73c73",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"psr/container": "^1.1|^2.0"
},
"conflict": {
@@ -9699,7 +11301,7 @@
"type"
],
"support": {
- "source": "https://github.com/symfony/type-info/tree/v8.0.9"
+ "source": "https://github.com/symfony/type-info/tree/v8.1.11"
},
"funding": [
{
@@ -9719,28 +11321,29 @@
"type": "tidelift"
}
],
- "time": "2026-04-29T15:02:55+00:00"
+ "time": "2026-11-02T10:58:30+00:00",
+ "published-time": "2026-11-04T11:31:29+00:00"
},
{
"name": "symfony/uid",
- "version": "v7.4.9",
+ "version": "v8.1.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/uid.git",
- "reference": "2676b524340abcfe4d6151ec698463cebafee439"
+ "reference": "cb487cf30380f0b0b090973bb9c0588193c06685"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/uid/zipball/2676b524340abcfe4d6151ec698463cebafee439",
- "reference": "2676b524340abcfe4d6151ec698463cebafee439",
+ "url": "https://api.github.com/repos/symfony/uid/zipball/cb487cf30380f0b0b090973bb9c0588193c06685",
+ "reference": "cb487cf30380f0b0b090973bb9c0588193c06685",
"shasum": ""
},
"require": {
- "php": ">=8.2",
+ "php": ">=8.4.1",
"symfony/polyfill-uuid": "^1.15"
},
"require-dev": {
- "symfony/console": "^6.4|^7.0|^8.0"
+ "symfony/console": "^7.4|^8.0"
},
"type": "library",
"autoload": {
@@ -9777,7 +11380,7 @@
"uuid"
],
"support": {
- "source": "https://github.com/symfony/uid/tree/v7.4.9"
+ "source": "https://github.com/symfony/uid/tree/v8.1.9"
},
"funding": [
{
@@ -9797,24 +11400,25 @@
"type": "tidelift"
}
],
- "time": "2026-04-30T15:19:22+00:00"
+ "time": "2026-10-12T14:32:04+00:00",
+ "published-time": "2026-10-14T06:48:53+00:00"
},
{
"name": "symfony/var-dumper",
- "version": "v8.0.8",
+ "version": "v8.1.10",
"source": {
"type": "git",
"url": "https://github.com/symfony/var-dumper.git",
- "reference": "cfb7badd53bf4177f6e9416cfbbccc13c0e773a1"
+ "reference": "3412a5af7d34a19515a77890fc804fe8e50d1a4f"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/var-dumper/zipball/cfb7badd53bf4177f6e9416cfbbccc13c0e773a1",
- "reference": "cfb7badd53bf4177f6e9416cfbbccc13c0e773a1",
+ "url": "https://api.github.com/repos/symfony/var-dumper/zipball/3412a5af7d34a19515a77890fc804fe8e50d1a4f",
+ "reference": "3412a5af7d34a19515a77890fc804fe8e50d1a4f",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/polyfill-mbstring": "^1.0"
},
"conflict": {
@@ -9826,7 +11430,7 @@
"symfony/http-kernel": "^7.4|^8.0",
"symfony/process": "^7.4|^8.0",
"symfony/uid": "^7.4|^8.0",
- "twig/twig": "^3.12"
+ "twig/twig": "^3.12|^4.0"
},
"bin": [
"Resources/bin/var-dump-server"
@@ -9864,7 +11468,7 @@
"dump"
],
"support": {
- "source": "https://github.com/symfony/var-dumper/tree/v8.0.8"
+ "source": "https://github.com/symfony/var-dumper/tree/v8.1.10"
},
"funding": [
{
@@ -9884,31 +11488,33 @@
"type": "tidelift"
}
],
- "time": "2026-03-31T07:15:36+00:00"
+ "time": "2026-10-26T21:55:04+00:00",
+ "published-time": "2026-10-28T18:25:26+00:00"
},
{
"name": "symfony/yaml",
- "version": "v8.0.10",
+ "version": "v8.1.11",
"source": {
"type": "git",
"url": "https://github.com/symfony/yaml.git",
- "reference": "aa9ee60c41d9b20a2468c41ff0a32e2a7405ac05"
+ "reference": "e8266f55160f674f290a5f567cb55e11e21f921b"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/yaml/zipball/aa9ee60c41d9b20a2468c41ff0a32e2a7405ac05",
- "reference": "aa9ee60c41d9b20a2468c41ff0a32e2a7405ac05",
+ "url": "https://api.github.com/repos/symfony/yaml/zipball/e8266f55160f674f290a5f567cb55e11e21f921b",
+ "reference": "e8266f55160f674f290a5f567cb55e11e21f921b",
"shasum": ""
},
"require": {
- "php": ">=8.4",
+ "php": ">=8.4.1",
"symfony/polyfill-ctype": "^1.8"
},
"conflict": {
"symfony/console": "<7.4"
},
"require-dev": {
- "symfony/console": "^7.4|^8.0"
+ "symfony/console": "^7.4|^8.0",
+ "yaml/yaml-test-suite": "*"
},
"bin": [
"Resources/bin/yaml-lint"
@@ -9939,7 +11545,7 @@
"description": "Loads and dumps YAML files",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/yaml/tree/v8.0.10"
+ "source": "https://github.com/symfony/yaml/tree/v8.1.11"
},
"funding": [
{
@@ -9959,7 +11565,8 @@
"type": "tidelift"
}
],
- "time": "2026-05-05T08:10:04+00:00"
+ "time": "2026-11-04T08:39:20+00:00",
+ "published-time": "2026-11-04T11:31:03+00:00"
},
{
"name": "theiconic/name-parser",
@@ -10007,7 +11614,8 @@
"issues": "https://github.com/theiconic/name-parser/issues",
"source": "https://github.com/theiconic/name-parser/tree/v1.2.11"
},
- "time": "2019-11-14T14:08:48+00:00"
+ "time": "2019-11-14T14:08:48+00:00",
+ "published-time": "2019-11-14T14:13:55+00:00"
},
{
"name": "tijsverkoyen/css-to-inline-styles",
@@ -10062,7 +11670,8 @@
"issues": "https://github.com/tijsverkoyen/CssToInlineStyles/issues",
"source": "https://github.com/tijsverkoyen/CssToInlineStyles/tree/v2.4.0"
},
- "time": "2025-12-02T11:56:42+00:00"
+ "time": "2025-12-02T11:56:42+00:00",
+ "published-time": "2025-12-11T21:29:16+00:00"
},
{
"name": "tpetry/laravel-query-expressions",
@@ -10118,20 +11727,21 @@
"issues": "https://github.com/tpetry/laravel-query-expressions/issues",
"source": "https://github.com/tpetry/laravel-query-expressions/tree/1.6.0"
},
- "time": "2026-03-13T08:48:18+00:00"
+ "time": "2026-03-13T08:48:18+00:00",
+ "published-time": "2026-03-13T08:48:31+00:00"
},
{
"name": "twig/twig",
- "version": "v3.21.1",
+ "version": "v3.30.0",
"source": {
"type": "git",
"url": "https://github.com/twigphp/Twig.git",
- "reference": "285123877d4dd97dd7c11842ac5fb7e86e60d81d"
+ "reference": "8c737079b726af72ff8ef3c595be9f6a810ea1ef"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/twigphp/Twig/zipball/285123877d4dd97dd7c11842ac5fb7e86e60d81d",
- "reference": "285123877d4dd97dd7c11842ac5fb7e86e60d81d",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/8c737079b726af72ff8ef3c595be9f6a810ea1ef",
+ "reference": "8c737079b726af72ff8ef3c595be9f6a810ea1ef",
"shasum": ""
},
"require": {
@@ -10141,7 +11751,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"
},
@@ -10185,7 +11796,7 @@
],
"support": {
"issues": "https://github.com/twigphp/Twig/issues",
- "source": "https://github.com/twigphp/Twig/tree/v3.21.1"
+ "source": "https://github.com/twigphp/Twig/tree/v3.30.0"
},
"funding": [
{
@@ -10197,27 +11808,28 @@
"type": "tidelift"
}
],
- "time": "2025-05-03T07:21:55+00:00"
+ "time": "2026-09-25T13:20:01+00:00",
+ "published-time": "2026-09-25T13:20:14+00:00"
},
{
"name": "vlucas/phpdotenv",
- "version": "v5.6.3",
+ "version": "v5.8.0",
"source": {
"type": "git",
- "url": "https://github.com/vlucas/phpdotenv.git",
- "reference": "955e7815d677a3eaa7075231212f2110983adecc"
+ "url": "https://github.com/phpdotenv/phpdotenv.git",
+ "reference": "96149103e62ac67e915f6d2ef59b72dee2e011e0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/vlucas/phpdotenv/zipball/955e7815d677a3eaa7075231212f2110983adecc",
- "reference": "955e7815d677a3eaa7075231212f2110983adecc",
+ "url": "https://api.github.com/repos/phpdotenv/phpdotenv/zipball/96149103e62ac67e915f6d2ef59b72dee2e011e0",
+ "reference": "96149103e62ac67e915f6d2ef59b72dee2e011e0",
"shasum": ""
},
"require": {
"ext-pcre": "*",
- "graham-campbell/result-type": "^1.1.4",
+ "graham-campbell/result-type": "^1.2",
"php": "^7.2.5 || ^8.0",
- "phpoption/phpoption": "^1.9.5",
+ "phpoption/phpoption": "^1.10",
"symfony/polyfill-ctype": "^1.26",
"symfony/polyfill-mbstring": "^1.26",
"symfony/polyfill-php80": "^1.26"
@@ -10237,7 +11849,7 @@
"forward-command": false
},
"branch-alias": {
- "dev-master": "5.6-dev"
+ "dev-master": "5.8-dev"
}
},
"autoload": {
@@ -10261,15 +11873,15 @@
"homepage": "https://github.com/vlucas"
}
],
- "description": "Loads environment variables from `.env` to `getenv()`, `$_ENV` and `$_SERVER` automagically.",
+ "description": "Loads environment variables from `.env` to `$_ENV` and `$_SERVER` automagically, and optionally to `getenv()`.",
"keywords": [
"dotenv",
"env",
"environment"
],
"support": {
- "issues": "https://github.com/vlucas/phpdotenv/issues",
- "source": "https://github.com/vlucas/phpdotenv/tree/v5.6.3"
+ "issues": "https://github.com/phpdotenv/phpdotenv/issues",
+ "source": "https://github.com/phpdotenv/phpdotenv/tree/v5.8.0"
},
"funding": [
{
@@ -10281,7 +11893,8 @@
"type": "tidelift"
}
],
- "time": "2025-12-27T19:49:13+00:00"
+ "time": "2026-10-25T16:26:19+00:00",
+ "published-time": "2026-10-25T16:26:50+00:00"
},
{
"name": "voku/portable-ascii",
@@ -10355,36 +11968,41 @@
"type": "tidelift"
}
],
- "time": "2026-04-26T05:33:54+00:00"
+ "time": "2026-04-26T05:33:54+00:00",
+ "published-time": "2026-04-26T05:43:38+00:00"
},
{
"name": "web-auth/cose-lib",
- "version": "4.5.2",
+ "version": "4.8.2",
"source": {
"type": "git",
"url": "https://github.com/web-auth/cose-lib.git",
- "reference": "5b38660f90070a8e45f3dbc9528ade3b608dd77d"
+ "reference": "8849e8bf043a2d42d0bec5bda5db2469ad376148"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/web-auth/cose-lib/zipball/5b38660f90070a8e45f3dbc9528ade3b608dd77d",
- "reference": "5b38660f90070a8e45f3dbc9528ade3b608dd77d",
+ "url": "https://api.github.com/repos/web-auth/cose-lib/zipball/8849e8bf043a2d42d0bec5bda5db2469ad376148",
+ "reference": "8849e8bf043a2d42d0bec5bda5db2469ad376148",
"shasum": ""
},
"require": {
- "brick/math": "^0.9|^0.10|^0.11|^0.12|^0.13|^0.14|^0.15|^0.16|^0.17",
+ "brick/math": "^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14 || ^0.15 || ^0.16 || ^0.17 || ^0.18 || ^0.19 || ^0.20 || ^1.0",
"ext-json": "*",
"ext-openssl": "*",
"php": ">=8.1",
"spomky-labs/pki-framework": "^1.0"
},
+ "conflict": {
+ "spomky-labs/cbor-php": "<3.4.0"
+ },
"require-dev": {
- "spomky-labs/cbor-php": "^3.2.2"
+ "spomky-labs/cbor-php": "^3.4"
},
"suggest": {
- "ext-bcmath": "For better performance, please install either GMP (recommended) or BCMath extension",
- "ext-gmp": "For better performance, please install either GMP (recommended) or BCMath extension",
- "spomky-labs/cbor-php": "For COSE Signature support"
+ "ext-bcmath": "Recommended: without GMP or BCMath, signing with RSASSA-PSS (PS256/PS384/PS512) blinds its private exponentiation in pure PHP",
+ "ext-gmp": "Recommended: without GMP or BCMath, signing with RSASSA-PSS (PS256/PS384/PS512) blinds its private exponentiation in pure PHP",
+ "ext-sodium": "Required by the EdDSA/Ed25519 signature algorithms (-8, -19, -260, -261) and to recompute an OKP public key from its private key",
+ "spomky-labs/cbor-php": "Required by the RFC 9052 header reader and cryptographic structures. 3.4.0 or later: it ships the six COSE message classes (CBOR\\Tag\\CoseSign1Tag and its siblings) that replace the deprecated Cose\\...Tag classes, and its decoder is what enforces the RFC 9052 label uniqueness and nesting bounds this library relies on"
},
"type": "library",
"autoload": {
@@ -10414,7 +12032,7 @@
],
"support": {
"issues": "https://github.com/web-auth/cose-lib/issues",
- "source": "https://github.com/web-auth/cose-lib/tree/4.5.2"
+ "source": "https://github.com/web-auth/cose-lib/tree/4.8.2"
},
"funding": [
{
@@ -10426,20 +12044,21 @@
"type": "patreon"
}
],
- "time": "2026-05-03T09:49:50+00:00"
+ "time": "2026-09-15T17:30:33+00:00",
+ "published-time": "2026-09-15T17:39:51+00:00"
},
{
"name": "web-auth/webauthn-lib",
- "version": "5.2.6",
+ "version": "5.3.12",
"source": {
"type": "git",
"url": "https://github.com/web-auth/webauthn-lib.git",
- "reference": "0785f55f242c1cc026ec24a9c8653eac59fe3493"
+ "reference": "c7aeeb1d35e39b7d32ab5146cce4b668f271a68e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/web-auth/webauthn-lib/zipball/0785f55f242c1cc026ec24a9c8653eac59fe3493",
- "reference": "0785f55f242c1cc026ec24a9c8653eac59fe3493",
+ "url": "https://api.github.com/repos/web-auth/webauthn-lib/zipball/c7aeeb1d35e39b7d32ab5146cce4b668f271a68e",
+ "reference": "c7aeeb1d35e39b7d32ab5146cce4b668f271a68e",
"shasum": ""
},
"require": {
@@ -10447,19 +12066,19 @@
"ext-openssl": "*",
"paragonie/constant_time_encoding": "^2.6|^3.0",
"php": ">=8.2",
- "phpdocumentor/reflection-docblock": "^5.3",
+ "phpdocumentor/reflection-docblock": "^5.3|^6.0",
"psr/clock": "^1.0",
"psr/event-dispatcher": "^1.0",
"psr/log": "^1.0|^2.0|^3.0",
- "spomky-labs/cbor-php": "^3.0",
+ "spomky-labs/cbor-php": "^3.4",
"spomky-labs/pki-framework": "^1.0",
- "symfony/clock": "^6.4|^7.0",
+ "symfony/clock": "^6.4|^7.0|^8.0",
"symfony/deprecation-contracts": "^3.2",
- "symfony/property-access": "^6.4|^7.0",
- "symfony/property-info": "^6.4|^7.0",
- "symfony/serializer": "^6.4|^7.0",
- "symfony/uid": "^6.4|^7.0",
- "web-auth/cose-lib": "^4.2.3"
+ "symfony/property-access": "^6.4|^7.0|^8.0",
+ "symfony/property-info": "^6.4|^7.0|^8.0",
+ "symfony/serializer": "^6.4|^7.0|^8.0",
+ "symfony/uid": "^6.4|^7.0|^8.0",
+ "web-auth/cose-lib": "^4.8"
},
"suggest": {
"psr/log-implementation": "Recommended to receive logs from the library",
@@ -10500,7 +12119,7 @@
"webauthn"
],
"support": {
- "source": "https://github.com/web-auth/webauthn-lib/tree/5.2.6"
+ "source": "https://github.com/web-auth/webauthn-lib/tree/5.3.12"
},
"funding": [
{
@@ -10512,20 +12131,21 @@
"type": "patreon"
}
],
- "time": "2026-03-23T22:13:50+00:00"
+ "time": "2026-11-03T09:21:08+00:00",
+ "published-time": "2026-11-03T09:27:24+00:00"
},
{
"name": "webmozart/assert",
- "version": "2.3.0",
+ "version": "2.5.0",
"source": {
"type": "git",
"url": "https://github.com/webmozarts/assert.git",
- "reference": "eb0d790f735ba6cff25c683a85a1da0eadeff9e4"
+ "reference": "8a163706bbcac613733dba03f51e13b5eb1bb819"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/webmozarts/assert/zipball/eb0d790f735ba6cff25c683a85a1da0eadeff9e4",
- "reference": "eb0d790f735ba6cff25c683a85a1da0eadeff9e4",
+ "url": "https://api.github.com/repos/webmozarts/assert/zipball/8a163706bbcac613733dba03f51e13b5eb1bb819",
+ "reference": "8a163706bbcac613733dba03f51e13b5eb1bb819",
"shasum": ""
},
"require": {
@@ -10541,7 +12161,11 @@
},
"type": "library",
"extra": {
+ "psalm": {
+ "pluginClass": "Webmozart\\Assert\\PsalmPlugin"
+ },
"branch-alias": {
+ "dev-master": "2.0-dev",
"dev-feature/2-0": "2.0-dev"
}
},
@@ -10572,9 +12196,91 @@
],
"support": {
"issues": "https://github.com/webmozarts/assert/issues",
- "source": "https://github.com/webmozarts/assert/tree/2.3.0"
+ "source": "https://github.com/webmozarts/assert/tree/2.5.0"
+ },
+ "time": "2026-10-05T23:14:19+00:00",
+ "published-time": "2026-10-05T23:14:25+00:00"
+ },
+ {
+ "name": "webonyx/graphql-php",
+ "version": "v15.33.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/webonyx/graphql-php.git",
+ "reference": "e0f40ce40a527ee27413cceced4825aacbc7de5b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/webonyx/graphql-php/zipball/e0f40ce40a527ee27413cceced4825aacbc7de5b",
+ "reference": "e0f40ce40a527ee27413cceced4825aacbc7de5b",
+ "shasum": ""
+ },
+ "require": {
+ "ext-json": "*",
+ "ext-mbstring": "*",
+ "php": "^7.4 || ^8"
+ },
+ "require-dev": {
+ "amphp/amp": "^2.6 || ^3",
+ "amphp/http-server": "^2.1 || ^3",
+ "dms/phpunit-arraysubset-asserts": "dev-master",
+ "ergebnis/composer-normalize": "^2.28",
+ "friendsofphp/php-cs-fixer": "3.95.8",
+ "mll-lab/php-cs-fixer-config": "5.13.0",
+ "nyholm/psr7": "^1.5",
+ "phpbench/phpbench": "^1.2",
+ "phpstan/extension-installer": "^1.1",
+ "phpstan/phpstan": "2.2.2",
+ "phpstan/phpstan-phpunit": "2.0.16",
+ "phpstan/phpstan-strict-rules": "2.0.11",
+ "phpunit/phpunit": "^9.5 || ^10.5.21 || ^11",
+ "psr/http-message": "^1 || ^2",
+ "react/http": "^1.6",
+ "react/promise": "^2.0 || ^3.0",
+ "rector/rector": "^2.0",
+ "symfony/polyfill-php81": "^1.23",
+ "symfony/var-exporter": "^5 || ^6 || ^7 || ^8",
+ "thecodingmachine/safe": "^1.3 || ^2 || ^3",
+ "ticketswap/phpstan-error-formatter": "1.3.0"
+ },
+ "suggest": {
+ "amphp/amp": "To leverage async resolving on AMPHP platform (v3 with AmpFutureAdapter, v2 with AmpPromiseAdapter)",
+ "amphp/http-server": "To leverage async resolving with webserver on AMPHP platform",
+ "psr/http-message": "To use standard GraphQL server",
+ "react/promise": "To leverage async resolving on React PHP platform"
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "GraphQL\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "description": "A PHP port of GraphQL reference implementation",
+ "homepage": "https://github.com/webonyx/graphql-php",
+ "keywords": [
+ "api",
+ "graphql"
+ ],
+ "support": {
+ "issues": "https://github.com/webonyx/graphql-php/issues",
+ "source": "https://github.com/webonyx/graphql-php/tree/v15.33.1"
},
- "time": "2026-04-11T10:33:05+00:00"
+ "funding": [
+ {
+ "url": "https://github.com/spawnia",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/webonyx-graphql-php",
+ "type": "open_collective"
+ }
+ ],
+ "time": "2026-06-17T06:05:59+00:00",
+ "published-time": "2026-06-17T06:08:29+00:00"
},
{
"name": "yiisoft/aliases",
@@ -10651,7 +12357,8 @@
"type": "opencollective"
}
],
- "time": "2025-12-04T12:53:43+00:00"
+ "time": "2025-12-04T12:53:43+00:00",
+ "published-time": "2025-12-04T12:54:20+00:00"
},
{
"name": "yiisoft/arrays",
@@ -10720,32 +12427,35 @@
"type": "opencollective"
}
],
- "time": "2025-11-26T12:25:21+00:00"
+ "time": "2025-11-26T12:25:21+00:00",
+ "published-time": "2025-11-26T12:25:49+00:00"
},
{
"name": "yiisoft/files",
- "version": "2.1.0",
+ "version": "2.1.1",
"source": {
"type": "git",
"url": "https://github.com/yiisoft/files.git",
- "reference": "465650fd9e4295669f42ab7e9fec2386700540a7"
+ "reference": "6d1bd963afe514ec8be6e090e021659870bd2830"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/yiisoft/files/zipball/465650fd9e4295669f42ab7e9fec2386700540a7",
- "reference": "465650fd9e4295669f42ab7e9fec2386700540a7",
+ "url": "https://api.github.com/repos/yiisoft/files/zipball/6d1bd963afe514ec8be6e090e021659870bd2830",
+ "reference": "6d1bd963afe514ec8be6e090e021659870bd2830",
"shasum": ""
},
"require": {
- "php": "8.0 - 8.5",
+ "php": "8.0 - 8.6",
"yiisoft/strings": "^2.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.3",
+ "bamarni/composer-bin-plugin": "^1.9.1",
"ext-zlib": "*",
- "maglnet/composer-require-checker": "^4.4",
+ "friendsofphp/php-cs-fixer": "^3.66",
+ "phpstan/phpstan": "^2.3",
"phpunit/phpunit": "^9.6.22",
"rector/rector": "^2.0.10",
+ "shipmonk/composer-dependency-analyser": "^1.8",
"spatie/phpunit-watcher": "^1.23.6"
},
"type": "library",
@@ -10788,20 +12498,21 @@
"type": "opencollective"
}
],
- "time": "2025-12-01T06:30:27+00:00"
+ "time": "2026-10-30T07:44:19+00:00",
+ "published-time": "2026-10-30T07:45:26+00:00"
},
{
"name": "yiisoft/html",
- "version": "3.13.0",
+ "version": "4.2.0",
"source": {
"type": "git",
"url": "https://github.com/yiisoft/html.git",
- "reference": "d02c6bd9094d554afc0c4bffc291f8a2f57b3710"
+ "reference": "eeb0bea275c87c4ee0dbc444dbc24fbf44a5aa77"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/yiisoft/html/zipball/d02c6bd9094d554afc0c4bffc291f8a2f57b3710",
- "reference": "d02c6bd9094d554afc0c4bffc291f8a2f57b3710",
+ "url": "https://api.github.com/repos/yiisoft/html/zipball/eeb0bea275c87c4ee0dbc444dbc24fbf44a5aa77",
+ "reference": "eeb0bea275c87c4ee0dbc444dbc24fbf44a5aa77",
"shasum": ""
},
"require": {
@@ -10851,7 +12562,8 @@
"type": "opencollective"
}
],
- "time": "2026-03-13T13:07:22+00:00"
+ "time": "2026-06-05T07:38:14+00:00",
+ "published-time": "2026-06-05T07:38:35+00:00"
},
{
"name": "yiisoft/i18n",
@@ -10918,7 +12630,8 @@
"type": "opencollective"
}
],
- "time": "2025-11-29T15:57:19+00:00"
+ "time": "2025-11-29T15:57:19+00:00",
+ "published-time": "2025-11-29T15:57:38+00:00"
},
{
"name": "yiisoft/json",
@@ -10986,33 +12699,37 @@
"type": "opencollective"
}
],
- "time": "2025-11-21T19:39:36+00:00"
+ "time": "2025-11-21T19:39:36+00:00",
+ "published-time": "2025-11-21T19:41:06+00:00"
},
{
"name": "yiisoft/strings",
- "version": "2.7.0",
+ "version": "2.8.0",
"source": {
"type": "git",
"url": "https://github.com/yiisoft/strings.git",
- "reference": "9bc7fea56374619cccd4587848029fe97f98bb33"
+ "reference": "f11eb6562b09326602b02827d2f6f237154359a1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/yiisoft/strings/zipball/9bc7fea56374619cccd4587848029fe97f98bb33",
- "reference": "9bc7fea56374619cccd4587848029fe97f98bb33",
+ "url": "https://api.github.com/repos/yiisoft/strings/zipball/f11eb6562b09326602b02827d2f6f237154359a1",
+ "reference": "f11eb6562b09326602b02827d2f6f237154359a1",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
- "php": "8.1 - 8.5"
+ "php": "8.1 - 8.6"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
- "maglnet/composer-require-checker": "^4.7.1",
+ "friendsofphp/php-cs-fixer": "^3.95",
"phpbench/phpbench": "^1.4.1",
+ "phpstan/phpstan": "^2.3",
"phpunit/phpunit": "^10.5.48",
"rector/rector": "^2.1.2",
- "spatie/phpunit-watcher": "^1.24"
+ "shipmonk/composer-dependency-analyser": "^1.8",
+ "spatie/phpunit-watcher": "^1.24",
+ "yiisoft/code-style": "^1.0"
},
"type": "library",
"extra": {
@@ -11056,7 +12773,8 @@
"type": "opencollective"
}
],
- "time": "2025-11-23T18:00:58+00:00"
+ "time": "2026-10-30T06:57:22+00:00",
+ "published-time": "2026-10-30T06:57:49+00:00"
},
{
"name": "yiisoft/translator",
@@ -11140,7 +12858,8 @@
"type": "opencollective"
}
],
- "time": "2025-12-06T05:18:44+00:00"
+ "time": "2025-12-06T05:18:44+00:00",
+ "published-time": "2025-12-06T05:19:17+00:00"
},
{
"name": "yiisoft/translator-message-php",
@@ -11210,7 +12929,8 @@
"type": "opencollective"
}
],
- "time": "2025-12-06T14:38:12+00:00"
+ "time": "2025-12-06T14:38:12+00:00",
+ "published-time": "2025-12-06T14:38:39+00:00"
}
],
"packages-dev": [
@@ -11305,24 +13025,29 @@
"type": "paypal"
}
],
- "time": "2026-03-29T15:46:14+00:00"
+ "time": "2026-03-29T15:46:14+00:00",
+ "published-time": "2026-03-29T15:46:42+00:00"
},
{
"name": "carthage-software/mago",
- "version": "1.26.0",
+ "version": "1.59.0",
"source": {
"type": "git",
"url": "https://github.com/carthage-software/mago.git",
- "reference": "9ae2f7ad58ffeeaa2ff890e736a8658f8e397cdf"
+ "reference": "95a25d686a2b584c387326e466d6ead8c885465d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/carthage-software/mago/zipball/9ae2f7ad58ffeeaa2ff890e736a8658f8e397cdf",
- "reference": "9ae2f7ad58ffeeaa2ff890e736a8658f8e397cdf",
+ "url": "https://api.github.com/repos/carthage-software/mago/zipball/95a25d686a2b584c387326e466d6ead8c885465d",
+ "reference": "95a25d686a2b584c387326e466d6ead8c885465d",
"shasum": ""
},
"require": {
- "php": "~8.1 || ~8.2 || ~8.3 || ~8.4 || ~8.5 || ~8.6"
+ "php": "~8.1 || ~8.2 || ~8.3 || ~8.4 || ~8.5 || ~8.6",
+ "revolt/event-loop": "^1.0.9"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^10.5"
},
"suggest": {
"ext-curl": "To show binary download progress"
@@ -11333,9 +13058,12 @@
"type": "library",
"autoload": {
"files": [
- "composer/functions.php",
- "composer/internal.php"
- ]
+ "composer/src/functions.php",
+ "composer/src/internal.php"
+ ],
+ "psr-4": {
+ "Mago\\": "composer/src/"
+ }
},
"notification-url": "https://packagist.org/downloads/",
"license": [
@@ -11343,7 +13071,7 @@
],
"authors": [
{
- "name": "Saif Eddin Gmati",
+ "name": "Seifeddine Gmati",
"email": "azjezz@carthage.software"
}
],
@@ -11353,7 +13081,7 @@
],
"support": {
"issues": "https://github.com/carthage-software/mago/issues",
- "source": "https://github.com/carthage-software/mago/tree/1.26.0"
+ "source": "https://github.com/carthage-software/mago/tree/1.59.0"
},
"funding": [
{
@@ -11361,7 +13089,8 @@
"type": "github"
}
],
- "time": "2026-05-06T21:44:02+00:00"
+ "time": "2026-10-25T00:59:15+00:00",
+ "published-time": "2026-10-25T00:59:29+00:00"
},
{
"name": "composer/xdebug-handler",
@@ -11427,27 +13156,92 @@
"type": "tidelift"
}
],
- "time": "2024-05-06T16:37:16+00:00"
+ "time": "2024-05-06T16:37:16+00:00",
+ "published-time": "2024-05-06T17:01:42+00:00"
+ },
+ {
+ "name": "fakerphp/faker",
+ "version": "v1.24.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/FakerPHP/Faker.git",
+ "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/FakerPHP/Faker/zipball/e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5",
+ "reference": "e0ee18eb1e6dc3cda3ce9fd97e5a0689a88a64b5",
+ "shasum": ""
+ },
+ "require": {
+ "php": "^7.4 || ^8.0",
+ "psr/container": "^1.0 || ^2.0",
+ "symfony/deprecation-contracts": "^2.2 || ^3.0"
+ },
+ "conflict": {
+ "fzaninotto/faker": "*"
+ },
+ "require-dev": {
+ "bamarni/composer-bin-plugin": "^1.4.1",
+ "doctrine/persistence": "^1.3 || ^2.0",
+ "ext-intl": "*",
+ "phpunit/phpunit": "^9.5.26",
+ "symfony/phpunit-bridge": "^5.4.16"
+ },
+ "suggest": {
+ "doctrine/orm": "Required to use Faker\\ORM\\Doctrine",
+ "ext-curl": "Required by Faker\\Provider\\Image to download images.",
+ "ext-dom": "Required by Faker\\Provider\\HtmlLorem for generating random HTML.",
+ "ext-iconv": "Required by Faker\\Provider\\ru_RU\\Text::realText() for generating real Russian text.",
+ "ext-mbstring": "Required for multibyte Unicode string functionality."
+ },
+ "type": "library",
+ "autoload": {
+ "psr-4": {
+ "Faker\\": "src/Faker/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "François Zaninotto"
+ }
+ ],
+ "description": "Faker is a PHP library that generates fake data for you.",
+ "keywords": [
+ "data",
+ "faker",
+ "fixtures"
+ ],
+ "support": {
+ "issues": "https://github.com/FakerPHP/Faker/issues",
+ "source": "https://github.com/FakerPHP/Faker/tree/v1.24.1"
+ },
+ "time": "2024-11-21T13:46:39+00:00",
+ "published-time": "2024-11-21T13:47:18+00:00"
},
{
"name": "fidry/cpu-core-counter",
- "version": "1.3.0",
+ "version": "1.4.1",
"source": {
"type": "git",
"url": "https://github.com/theofidry/cpu-core-counter.git",
- "reference": "db9508f7b1474469d9d3c53b86f817e344732678"
+ "reference": "d384a7d0d6e67aa497327260ca95023e92dc2032"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/db9508f7b1474469d9d3c53b86f817e344732678",
- "reference": "db9508f7b1474469d9d3c53b86f817e344732678",
+ "url": "https://api.github.com/repos/theofidry/cpu-core-counter/zipball/d384a7d0d6e67aa497327260ca95023e92dc2032",
+ "reference": "d384a7d0d6e67aa497327260ca95023e92dc2032",
"shasum": ""
},
"require": {
"php": "^7.2 || ^8.0"
},
"require-dev": {
- "fidry/makefile": "^0.2.0",
+ "fidry/makefile": "^0.2.0 || ^1.1.2",
"fidry/php-cs-fixer-config": "^1.1.2",
"phpstan/extension-installer": "^1.2.0",
"phpstan/phpstan": "^2.0",
@@ -11455,6 +13249,7 @@
"phpstan/phpstan-phpunit": "^2.0",
"phpstan/phpstan-strict-rules": "^2.0",
"phpunit/phpunit": "^8.5.31 || ^9.5.26",
+ "symfony/polyfill-mbstring": "^1.33",
"webmozarts/strict-phpunit": "^7.5"
},
"type": "library",
@@ -11480,7 +13275,7 @@
],
"support": {
"issues": "https://github.com/theofidry/cpu-core-counter/issues",
- "source": "https://github.com/theofidry/cpu-core-counter/tree/1.3.0"
+ "source": "https://github.com/theofidry/cpu-core-counter/tree/1.4.1"
},
"funding": [
{
@@ -11488,20 +13283,21 @@
"type": "github"
}
],
- "time": "2025-08-14T07:29:31+00:00"
+ "time": "2026-09-29T22:11:39+00:00",
+ "published-time": "2026-09-29T22:12:43+00:00"
},
{
"name": "filp/whoops",
- "version": "2.18.4",
+ "version": "2.19.3",
"source": {
"type": "git",
"url": "https://github.com/filp/whoops.git",
- "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d"
+ "reference": "d5480d53f10069dc4620a39f87e38e8945d47322"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/filp/whoops/zipball/d2102955e48b9fd9ab24280a7ad12ed552752c4d",
- "reference": "d2102955e48b9fd9ab24280a7ad12ed552752c4d",
+ "url": "https://api.github.com/repos/filp/whoops/zipball/d5480d53f10069dc4620a39f87e38e8945d47322",
+ "reference": "d5480d53f10069dc4620a39f87e38e8945d47322",
"shasum": ""
},
"require": {
@@ -11510,8 +13306,8 @@
},
"require-dev": {
"mockery/mockery": "^1.0",
- "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.3.3",
- "symfony/var-dumper": "^4.0 || ^5.0"
+ "phpunit/phpunit": "^7.5.20 || ^8.5.8 || ^9.3.3 || ^10.5.58",
+ "symfony/var-dumper": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0"
},
"suggest": {
"symfony/var-dumper": "Pretty print complex values better with var-dumper available",
@@ -11551,7 +13347,7 @@
],
"support": {
"issues": "https://github.com/filp/whoops/issues",
- "source": "https://github.com/filp/whoops/tree/2.18.4"
+ "source": "https://github.com/filp/whoops/tree/2.19.3"
},
"funding": [
{
@@ -11559,7 +13355,64 @@
"type": "github"
}
],
- "time": "2025-08-08T12:00:00+00:00"
+ "time": "2026-11-09T23:30:17+00:00",
+ "published-time": "2026-11-09T23:32:45+00:00"
+ },
+ {
+ "name": "hamcrest/hamcrest-php",
+ "version": "v3.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/hamcrest/hamcrest-php.git",
+ "reference": "b61cd040da1a4925bc90a51c074f5297e7c0fa52"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/hamcrest/hamcrest-php/zipball/b61cd040da1a4925bc90a51c074f5297e7c0fa52",
+ "reference": "b61cd040da1a4925bc90a51c074f5297e7c0fa52",
+ "shasum": ""
+ },
+ "require": {
+ "ext-ctype": "*",
+ "ext-dom": "*",
+ "php": "^7.4|^8.0"
+ },
+ "replace": {
+ "cordoval/hamcrest-php": "*",
+ "davedevelopment/hamcrest-php": "*",
+ "kodova/hamcrest-php": "*"
+ },
+ "require-dev": {
+ "phpstan/phpstan": "^2.1",
+ "phpstan/phpstan-phpunit": "^2.0",
+ "phpunit/php-file-iterator": "^1.4 || ^2.0 || ^3.0",
+ "phpunit/phpunit": "^4.8.36 || ^5.7 || ^6.5 || ^7.0 || ^8.0 || ^9.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "hamcrest"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "description": "This is the PHP port of Hamcrest Matchers",
+ "keywords": [
+ "test"
+ ],
+ "support": {
+ "issues": "https://github.com/hamcrest/hamcrest-php/issues",
+ "source": "https://github.com/hamcrest/hamcrest-php/tree/v3.0.0"
+ },
+ "time": "2026-03-17T11:56:53+00:00",
+ "published-time": "2026-06-16T10:52:40+00:00"
},
{
"name": "jean85/pretty-package-versions",
@@ -11619,24 +13472,189 @@
"issues": "https://github.com/Jean85/pretty-package-versions/issues",
"source": "https://github.com/Jean85/pretty-package-versions/tree/2.1.1"
},
- "time": "2025-03-19T14:43:43+00:00"
+ "time": "2025-03-19T14:43:43+00:00",
+ "published-time": "2025-03-19T14:50:06+00:00"
+ },
+ {
+ "name": "laravel/pail",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/laravel/pail.git",
+ "reference": "72d615ff1104717c1317c6d5d7eab679e43a0408"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/laravel/pail/zipball/72d615ff1104717c1317c6d5d7eab679e43a0408",
+ "reference": "72d615ff1104717c1317c6d5d7eab679e43a0408",
+ "shasum": ""
+ },
+ "require": {
+ "ext-mbstring": "*",
+ "illuminate/console": "^12.0|^13.0",
+ "illuminate/contracts": "^12.0|^13.0",
+ "illuminate/log": "^12.0|^13.0",
+ "illuminate/process": "^12.0|^13.0",
+ "illuminate/support": "^12.0|^13.0",
+ "nunomaduro/termwind": "^2.0",
+ "php": "^8.2",
+ "symfony/console": "^7.0|^8.0"
+ },
+ "require-dev": {
+ "laravel/framework": "^12.69|^13.30",
+ "laravel/pint": "^1.13",
+ "orchestra/testbench-core": "^10.8|^11.0",
+ "pestphp/pest": "^3.0|^4.0",
+ "pestphp/pest-plugin-type-coverage": "^3.0|^4.0",
+ "phpstan/phpstan": "^1.12.27",
+ "symfony/var-dumper": "^7.0|^8.0",
+ "symfony/yaml": "^7.0|^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Laravel\\Pail\\PailServiceProvider"
+ ]
+ },
+ "branch-alias": {
+ "dev-main": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Laravel\\Pail\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ },
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "Easily delve into your Laravel application's log files directly from the command line.",
+ "homepage": "https://github.com/laravel/pail",
+ "keywords": [
+ "dev",
+ "laravel",
+ "logs",
+ "php",
+ "tail"
+ ],
+ "support": {
+ "issues": "https://github.com/laravel/pail/issues",
+ "source": "https://github.com/laravel/pail"
+ },
+ "time": "2026-11-09T14:56:19+00:00",
+ "published-time": "2026-11-10T16:07:50+00:00"
+ },
+ {
+ "name": "mockery/mockery",
+ "version": "1.6.15",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/mockery/mockery.git",
+ "reference": "967a801bd188989a5669bd280f252d51c0fdc9ee"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/mockery/mockery/zipball/967a801bd188989a5669bd280f252d51c0fdc9ee",
+ "reference": "967a801bd188989a5669bd280f252d51c0fdc9ee",
+ "shasum": ""
+ },
+ "require": {
+ "hamcrest/hamcrest-php": "^2.0 || ^3.0",
+ "php": ">=7.3"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<8.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^9.6.36",
+ "symplify/easy-coding-standard": "^13.2.17"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "library/helpers.php",
+ "library/Mockery.php"
+ ],
+ "psr-4": {
+ "Mockery\\": "library/Mockery"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Pádraic Brady",
+ "email": "padraic.brady@gmail.com",
+ "homepage": "https://github.com/padraic",
+ "role": "Author"
+ },
+ {
+ "name": "Dave Marshall",
+ "email": "dave.marshall@atstsolutions.co.uk",
+ "homepage": "https://davedevelopment.co.uk",
+ "role": "Developer"
+ },
+ {
+ "name": "Nathanael Esayeas",
+ "email": "nathanael.esayeas@protonmail.com",
+ "homepage": "https://github.com/ghostwriter",
+ "role": "Lead Developer"
+ }
+ ],
+ "description": "Mockery is a simple yet flexible PHP mock object framework",
+ "homepage": "https://github.com/mockery/mockery",
+ "keywords": [
+ "BDD",
+ "TDD",
+ "library",
+ "mock",
+ "mock objects",
+ "mockery",
+ "stub",
+ "test",
+ "test double",
+ "testing"
+ ],
+ "support": {
+ "docs": "https://docs.mockery.io/",
+ "issues": "https://github.com/mockery/mockery/issues",
+ "rss": "https://github.com/mockery/mockery/releases.atom",
+ "security": "https://github.com/mockery/mockery/security/advisories",
+ "source": "https://github.com/mockery/mockery"
+ },
+ "time": "2026-08-19T19:37:52+00:00",
+ "published-time": "2026-08-19T19:38:57+00:00"
},
{
"name": "myclabs/deep-copy",
- "version": "1.13.4",
+ "version": "1.14.0",
"source": {
"type": "git",
"url": "https://github.com/myclabs/DeepCopy.git",
- "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a"
+ "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/07d290f0c47959fd5eed98c95ee5602db07e0b6a",
- "reference": "07d290f0c47959fd5eed98c95ee5602db07e0b6a",
+ "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae",
+ "reference": "8680aa248f8e07bc8fb43f56f0f5fc77a0c96aae",
"shasum": ""
},
"require": {
- "php": "^7.1 || ^8.0"
+ "php": "^8.0"
},
"conflict": {
"doctrine/collections": "<1.6.8",
@@ -11669,68 +13687,507 @@
"object",
"object graph"
],
- "support": {
- "issues": "https://github.com/myclabs/DeepCopy/issues",
- "source": "https://github.com/myclabs/DeepCopy/tree/1.13.4"
- },
- "funding": [
+ "support": {
+ "issues": "https://github.com/myclabs/DeepCopy/issues",
+ "source": "https://github.com/myclabs/DeepCopy/tree/1.14.0"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/mnapoli",
+ "type": "github"
+ }
+ ],
+ "time": "2026-08-11T10:17:44+00:00",
+ "published-time": "2026-08-11T10:29:20+00:00"
+ },
+ {
+ "name": "nunomaduro/collision",
+ "version": "v8.9.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/nunomaduro/collision.git",
+ "reference": "68806f9257968f23775bee62970cb90925b79d51"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/nunomaduro/collision/zipball/68806f9257968f23775bee62970cb90925b79d51",
+ "reference": "68806f9257968f23775bee62970cb90925b79d51",
+ "shasum": ""
+ },
+ "require": {
+ "filp/whoops": "^2.19.3",
+ "nunomaduro/termwind": "^2.4.1",
+ "php": "^8.2.0",
+ "symfony/console": "^7.4.23 || ^8.1.11"
+ },
+ "conflict": {
+ "laravel/framework": "<11.48.0 || >=14.0.0",
+ "phpunit/phpunit": "<11.5.50 || >=14.0.0"
+ },
+ "require-dev": {
+ "brianium/paratest": "^7.8.6",
+ "larastan/larastan": "^3.14.0",
+ "laravel/framework": "^11.57.1 || ^12.72.0 || ^13.40.0",
+ "laravel/pint": "^1.30.4",
+ "orchestra/testbench-core": "^9.24.0 || ^10.16.0 || ^11.6.0",
+ "pestphp/pest": "^3.8.7 || ^4.7.8 || ^5.3.5",
+ "sebastian/environment": "^7.2.1 || ^8.1.2 || ^9.3.3"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"
+ ]
+ },
+ "branch-alias": {
+ "dev-8.x": "8.x-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "./src/Adapters/Phpunit/Autoload.php"
+ ],
+ "psr-4": {
+ "NunoMaduro\\Collision\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nuno Maduro",
+ "email": "enunomaduro@gmail.com"
+ }
+ ],
+ "description": "Cli error handling for console/command-line PHP applications.",
+ "keywords": [
+ "artisan",
+ "cli",
+ "command-line",
+ "console",
+ "dev",
+ "error",
+ "handling",
+ "laravel",
+ "laravel-zero",
+ "php",
+ "symfony"
+ ],
+ "support": {
+ "issues": "https://github.com/nunomaduro/collision/issues",
+ "source": "https://github.com/nunomaduro/collision"
+ },
+ "funding": [
+ {
+ "url": "https://www.paypal.com/paypalme/enunomaduro",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/nunomaduro",
+ "type": "github"
+ },
+ {
+ "url": "https://www.patreon.com/nunomaduro",
+ "type": "patreon"
+ }
+ ],
+ "time": "2026-11-10T17:06:52+00:00",
+ "published-time": "2026-11-10T17:23:22+00:00"
+ },
+ {
+ "name": "orchestra/canvas",
+ "version": "v11.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/orchestral/canvas.git",
+ "reference": "d13e6ec66cb1a285fcc7f092c804abaaf2e24ede"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/orchestral/canvas/zipball/d13e6ec66cb1a285fcc7f092c804abaaf2e24ede",
+ "reference": "d13e6ec66cb1a285fcc7f092c804abaaf2e24ede",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.2",
+ "composer/semver": "^3.0",
+ "illuminate/console": "^13.23.0",
+ "illuminate/database": "^13.23.0",
+ "illuminate/filesystem": "^13.23.0",
+ "illuminate/support": "^13.23.0",
+ "orchestra/canvas-core": "^11.0.0",
+ "orchestra/sidekick": "~1.1.23|~1.2.20",
+ "orchestra/testbench-core": "^11.0.0",
+ "php": "^8.3",
+ "symfony/yaml": "^7.4.0|^8.0.0"
+ },
+ "require-dev": {
+ "laravel/doctor": "^0.1.0",
+ "laravel/framework": "^13.23.0",
+ "laravel/pint": "^1.24",
+ "mockery/mockery": "^1.6.10",
+ "phpstan/phpstan": "^2.1.14",
+ "phpunit/phpunit": "^11.5.50|^12.5.8|^13.0.0"
+ },
+ "bin": [
+ "canvas"
+ ],
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Orchestra\\Canvas\\LaravelServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Orchestra\\Canvas\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ },
+ {
+ "name": "Mior Muhammad Zaki",
+ "email": "crynobone@gmail.com"
+ }
+ ],
+ "description": "Code Generators for Laravel Applications and Packages",
+ "support": {
+ "issues": "https://github.com/orchestral/canvas/issues",
+ "source": "https://github.com/orchestral/canvas/tree/v11.1.0"
+ },
+ "time": "2026-08-04T15:06:43+00:00",
+ "published-time": "2026-08-04T16:09:55+00:00"
+ },
+ {
+ "name": "orchestra/canvas-core",
+ "version": "v11.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/orchestral/canvas-core.git",
+ "reference": "88d091ff989748e2ca447bca0cd06ab14671ba82"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/orchestral/canvas-core/zipball/88d091ff989748e2ca447bca0cd06ab14671ba82",
+ "reference": "88d091ff989748e2ca447bca0cd06ab14671ba82",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.2",
+ "composer/semver": "^3.0",
+ "illuminate/console": "^13.0",
+ "illuminate/support": "^13.0",
+ "orchestra/sidekick": "~1.1.23|~1.2.20",
+ "php": "^8.3"
+ },
+ "require-dev": {
+ "laravel/framework": "^13.0",
+ "laravel/pint": "^1.24",
+ "mockery/mockery": "^1.6.10",
+ "orchestra/testbench-core": "^11.0",
+ "phpstan/phpstan": "^2.1.17",
+ "phpunit/phpunit": "^11.5.50|^12.5.8|^13.0.0",
+ "symfony/yaml": "^7.4|^8.0"
+ },
+ "type": "library",
+ "extra": {
+ "laravel": {
+ "providers": [
+ "Orchestra\\Canvas\\Core\\LaravelServiceProvider"
+ ]
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Orchestra\\Canvas\\Core\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Taylor Otwell",
+ "email": "taylor@laravel.com"
+ },
+ {
+ "name": "Mior Muhammad Zaki",
+ "email": "crynobone@gmail.com"
+ }
+ ],
+ "description": "Code Generators Builder for Laravel Applications and Packages",
+ "support": {
+ "issues": "https://github.com/orchestral/canvas/issues",
+ "source": "https://github.com/orchestral/canvas-core/tree/v11.0.0"
+ },
+ "time": "2026-03-16T15:10:50+00:00",
+ "published-time": "2026-03-16T15:13:51+00:00"
+ },
+ {
+ "name": "orchestra/sidekick",
+ "version": "v1.2.23",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/orchestral/sidekick.git",
+ "reference": "cbdfe583afc069be2ca6790489e9dda007d14d00"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/orchestral/sidekick/zipball/cbdfe583afc069be2ca6790489e9dda007d14d00",
+ "reference": "cbdfe583afc069be2ca6790489e9dda007d14d00",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.2",
+ "composer/semver": "^3.0",
+ "php": "^8.1",
+ "symfony/polyfill-php83": "^1.32"
+ },
+ "require-dev": {
+ "fakerphp/faker": "^1.21",
+ "laravel/framework": "^10.48.29|^11.44.7|^12.1.1|^13.0",
+ "laravel/pint": "^1.4",
+ "mockery/mockery": "^1.5.1",
+ "orchestra/testbench-core": "^8.37.0|^9.14.0|^10.2.0|^11.0",
+ "phpstan/phpstan": "2.2.14",
+ "phpunit/phpunit": "^10.0|^11.0|^12.0|^13.0",
+ "symfony/process": "^6.0|^7.0|^8.0"
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/Eloquent/functions.php",
+ "src/Filesystem/functions.php",
+ "src/Http/functions.php",
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Orchestra\\Sidekick\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mior Muhammad Zaki",
+ "email": "crynobone@gmail.com"
+ }
+ ],
+ "description": "Packages Toolkit Utilities and Helpers for Laravel",
+ "support": {
+ "issues": "https://github.com/orchestral/sidekick/issues",
+ "source": "https://github.com/orchestral/sidekick/tree/v1.2.23"
+ },
+ "time": "2026-09-29T13:27:26+00:00",
+ "published-time": "2026-09-29T13:36:25+00:00"
+ },
+ {
+ "name": "orchestra/testbench",
+ "version": "v11.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/orchestral/testbench.git",
+ "reference": "7081895e5bbbdf2fd333fdf34e8ddec6cd4db713"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/orchestral/testbench/zipball/7081895e5bbbdf2fd333fdf34e8ddec6cd4db713",
+ "reference": "7081895e5bbbdf2fd333fdf34e8ddec6cd4db713",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.2",
+ "fakerphp/faker": "^1.23",
+ "laravel/framework": "^13.32.0",
+ "mockery/mockery": "^1.6.10",
+ "orchestra/testbench-core": "^11.5.0",
+ "orchestra/workbench": "^11.3.0",
+ "php": "^8.3",
+ "phpunit/phpunit": "^11.5.50|^12.5.8|^13.0.0",
+ "symfony/process": "^7.4.5|^8.0.5",
+ "symfony/yaml": "^7.4|^8.0",
+ "vlucas/phpdotenv": "^5.6.1"
+ },
+ "type": "library",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mior Muhammad Zaki",
+ "email": "crynobone@gmail.com",
+ "homepage": "https://github.com/crynobone"
+ }
+ ],
+ "description": "Laravel Testing Helper for Packages Development",
+ "homepage": "https://packages.tools/testbench/",
+ "keywords": [
+ "BDD",
+ "TDD",
+ "dev",
+ "laravel",
+ "laravel-packages",
+ "testing"
+ ],
+ "support": {
+ "issues": "https://github.com/orchestral/testbench/issues",
+ "source": "https://github.com/orchestral/testbench/tree/v11.3.0"
+ },
+ "time": "2026-09-24T07:19:57+00:00",
+ "published-time": "2026-09-24T07:24:17+00:00"
+ },
+ {
+ "name": "orchestra/testbench-core",
+ "version": "v11.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/orchestral/testbench-core.git",
+ "reference": "f139a4ee74638dc24e0b6f657b47226c8ba5ab05"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/orchestral/testbench-core/zipball/f139a4ee74638dc24e0b6f657b47226c8ba5ab05",
+ "reference": "f139a4ee74638dc24e0b6f657b47226c8ba5ab05",
+ "shasum": ""
+ },
+ "require": {
+ "composer-runtime-api": "^2.2",
+ "orchestra/sidekick": "~1.1.25|~1.2.22",
+ "php": "^8.3",
+ "symfony/deprecation-contracts": "^2.5|^3.0",
+ "symfony/polyfill-php84": "^1.34.0"
+ },
+ "conflict": {
+ "brianium/paratest": "<7.3.0|>=8.0.0",
+ "laravel/framework": "<13.35.0|>=14.0.0",
+ "laravel/serializable-closure": ">=2.0.0 <2.0.10|>=3.0.0",
+ "nunomaduro/collision": "<8.9.0|>=9.0.0",
+ "phpunit/phpunit": "<11.5.50|>=12.0.0 <12.5.8|>=13.5.0"
+ },
+ "require-dev": {
+ "fakerphp/faker": "^1.24",
+ "laravel/framework": "^13.35.0",
+ "laravel/pint": "^1.24",
+ "laravel/serializable-closure": "^2.0.10",
+ "mockery/mockery": "^1.6.10",
+ "phpstan/phpstan": "2.2.16",
+ "phpunit/phpunit": "^11.5.50|^12.5.8|^13.0.0",
+ "spatie/laravel-ray": "^1.43.6",
+ "symfony/process": "^7.4.5|^8.0.5",
+ "symfony/yaml": "^7.4.0|^8.0.0",
+ "vlucas/phpdotenv": "^5.6.1"
+ },
+ "suggest": {
+ "brianium/paratest": "Allow using parallel testing (^7.3).",
+ "ext-pcntl": "Required to use all features of the console signal trapping.",
+ "fakerphp/faker": "Allow using Faker for testing (^1.23).",
+ "laravel/framework": "Required for testing (^13.35.0).",
+ "mockery/mockery": "Allow using Mockery for testing (^1.6).",
+ "nunomaduro/collision": "Allow using Laravel style tests output and parallel testing (^8.9).",
+ "orchestra/testbench-dusk": "Allow using Laravel Dusk for testing (^11.0).",
+ "phpunit/phpunit": "Allow using PHPUnit for testing (^11.5.50|^12.5.8|^13.0.0).",
+ "symfony/process": "Required to use Orchestra\\Testbench\\remote function (^7.4|^8.0).",
+ "symfony/yaml": "Required for Testbench CLI (^7.4|^8.0).",
+ "vlucas/phpdotenv": "Required for Testbench CLI (^5.6.1)."
+ },
+ "bin": [
+ "testbench"
+ ],
+ "type": "library",
+ "autoload": {
+ "files": [
+ "src/functions.php"
+ ],
+ "psr-4": {
+ "Orchestra\\Testbench\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
{
- "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy",
- "type": "tidelift"
+ "name": "Mior Muhammad Zaki",
+ "email": "crynobone@gmail.com",
+ "homepage": "https://github.com/crynobone"
}
],
- "time": "2025-08-01T08:46:24+00:00"
+ "description": "Testing Helper for Laravel Development",
+ "homepage": "https://packages.tools/testbench",
+ "keywords": [
+ "BDD",
+ "TDD",
+ "dev",
+ "laravel",
+ "laravel-packages",
+ "testing"
+ ],
+ "support": {
+ "issues": "https://github.com/orchestral/testbench/issues",
+ "source": "https://github.com/orchestral/testbench-core"
+ },
+ "time": "2026-10-07T23:31:28+00:00",
+ "published-time": "2026-10-08T23:27:14+00:00"
},
{
- "name": "nunomaduro/collision",
- "version": "v8.9.4",
+ "name": "orchestra/workbench",
+ "version": "v11.3.0",
"source": {
"type": "git",
- "url": "https://github.com/nunomaduro/collision.git",
- "reference": "716af8f95a470e9094cfca09ed897b023be191a5"
+ "url": "https://github.com/orchestral/workbench.git",
+ "reference": "660046639af4538d6c56373c9222ca4c93055c42"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nunomaduro/collision/zipball/716af8f95a470e9094cfca09ed897b023be191a5",
- "reference": "716af8f95a470e9094cfca09ed897b023be191a5",
+ "url": "https://api.github.com/repos/orchestral/workbench/zipball/660046639af4538d6c56373c9222ca4c93055c42",
+ "reference": "660046639af4538d6c56373c9222ca4c93055c42",
"shasum": ""
},
"require": {
- "filp/whoops": "^2.18.4",
- "nunomaduro/termwind": "^2.4.0",
- "php": "^8.2.0",
- "symfony/console": "^7.4.8 || ^8.0.8"
- },
- "conflict": {
- "laravel/framework": "<11.48.0 || >=14.0.0",
- "phpunit/phpunit": "<11.5.50 || >=14.0.0"
+ "composer-runtime-api": "^2.2",
+ "fakerphp/faker": "^1.23",
+ "laravel/framework": "^13.0.0",
+ "laravel/pail": "^1.2.5",
+ "laravel/tinker": "^3.0.0",
+ "nunomaduro/collision": "^8.9",
+ "orchestra/canvas": "^11.0.1",
+ "orchestra/sidekick": "~1.1.23|~1.2.20",
+ "orchestra/testbench-core": "^11.5.0",
+ "php": "^8.3",
+ "symfony/process": "^7.4|^8.0",
+ "symfony/yaml": "^7.4|^8.0"
},
"require-dev": {
- "brianium/paratest": "^7.8.5",
- "larastan/larastan": "^3.9.6",
- "laravel/framework": "^11.48.0 || ^12.56.0 || ^13.5.0",
- "laravel/pint": "^1.29.1",
- "orchestra/testbench-core": "^9.12.0 || ^10.12.1 || ^11.2.1",
- "pestphp/pest": "^3.8.5 || ^4.4.3 || ^5.0.0",
- "sebastian/environment": "^7.2.1 || ^8.0.4 || ^9.3.0"
+ "laravel/pint": "^1.22.0",
+ "mockery/mockery": "^1.6.12",
+ "phpstan/phpstan": "^2.1.33",
+ "phpunit/phpunit": "^11.5.50|^12.5.8|^13.0.0",
+ "spatie/laravel-ray": "^1.43.6"
},
- "type": "library",
- "extra": {
- "laravel": {
- "providers": [
- "NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider"
- ]
- },
- "branch-alias": {
- "dev-8.x": "8.x-dev"
- }
+ "suggest": {
+ "ext-pcntl": "Required to use all features of the console signal trapping."
},
+ "type": "library",
"autoload": {
- "files": [
- "./src/Adapters/Phpunit/Autoload.php"
- ],
"psr-4": {
- "NunoMaduro\\Collision\\": "src/"
+ "Orchestra\\Workbench\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -11739,83 +14196,63 @@
],
"authors": [
{
- "name": "Nuno Maduro",
- "email": "enunomaduro@gmail.com"
+ "name": "Mior Muhammad Zaki",
+ "email": "crynobone@gmail.com"
}
],
- "description": "Cli error handling for console/command-line PHP applications.",
+ "description": "Workbench Companion for Laravel Packages Development",
"keywords": [
- "artisan",
- "cli",
- "command-line",
- "console",
"dev",
- "error",
- "handling",
"laravel",
- "laravel-zero",
- "php",
- "symfony"
+ "laravel-packages",
+ "testing"
],
"support": {
- "issues": "https://github.com/nunomaduro/collision/issues",
- "source": "https://github.com/nunomaduro/collision"
+ "issues": "https://github.com/orchestral/workbench/issues",
+ "source": "https://github.com/orchestral/workbench/tree/v11.3.0"
},
- "funding": [
- {
- "url": "https://www.paypal.com/paypalme/enunomaduro",
- "type": "custom"
- },
- {
- "url": "https://github.com/nunomaduro",
- "type": "github"
- },
- {
- "url": "https://www.patreon.com/nunomaduro",
- "type": "patreon"
- }
- ],
- "time": "2026-04-21T14:04:20+00:00"
+ "time": "2026-09-23T23:52:50+00:00",
+ "published-time": "2026-09-23T23:55:19+00:00"
},
{
"name": "pestphp/pest",
- "version": "v4.7.0",
+ "version": "v4.7.8",
"source": {
"type": "git",
"url": "https://github.com/pestphp/pest.git",
- "reference": "2fc75cfcf03c041c804778fa894282234adc3c66"
+ "reference": "5b2293f67adcf1b2320b33f521b94a692d18f360"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/pestphp/pest/zipball/2fc75cfcf03c041c804778fa894282234adc3c66",
- "reference": "2fc75cfcf03c041c804778fa894282234adc3c66",
+ "url": "https://api.github.com/repos/pestphp/pest/zipball/5b2293f67adcf1b2320b33f521b94a692d18f360",
+ "reference": "5b2293f67adcf1b2320b33f521b94a692d18f360",
"shasum": ""
},
"require": {
"brianium/paratest": "^7.20.0",
"composer/xdebug-handler": "^3.0.5",
- "nunomaduro/collision": "^8.9.4",
+ "nunomaduro/collision": "^8.9.5",
"nunomaduro/termwind": "^2.4.0",
"pestphp/pest-plugin": "^4.0.0",
"pestphp/pest-plugin-arch": "^4.0.2",
"pestphp/pest-plugin-mutate": "^4.0.1",
"pestphp/pest-plugin-profanity": "^4.2.1",
"php": "^8.3.0",
- "phpunit/phpunit": "^12.5.24",
- "symfony/process": "^7.4.8|^8.0.8"
+ "phpunit/phpunit": "^12.5.33",
+ "symfony/process": "^7.4.13|^8.1.0"
},
"conflict": {
"filp/whoops": "<2.18.3",
- "phpunit/phpunit": ">12.5.24",
+ "phpunit/phpunit": ">12.5.33",
"sebastian/exporter": "<7.0.0",
"webmozart/assert": "<1.11.0"
},
"require-dev": {
- "mrpunyapal/peststan": "^0.2.9",
+ "mrpunyapal/peststan": "^0.2.12",
"pestphp/pest-dev-tools": "^4.1.0",
"pestphp/pest-plugin-browser": "^4.3.1",
"pestphp/pest-plugin-type-coverage": "^4.0.4",
- "psy/psysh": "^0.12.22"
+ "psy/psysh": "^0.12.24"
},
"bin": [
"bin/pest"
@@ -11842,7 +14279,6 @@
"Pest\\Plugins\\Verbose",
"Pest\\Plugins\\Version",
"Pest\\Plugins\\Shard",
- "Pest\\Plugins\\Tia",
"Pest\\Plugins\\Parallel"
]
},
@@ -11882,7 +14318,7 @@
],
"support": {
"issues": "https://github.com/pestphp/pest/issues",
- "source": "https://github.com/pestphp/pest/tree/v4.7.0"
+ "source": "https://github.com/pestphp/pest/tree/v4.7.8"
},
"funding": [
{
@@ -11894,7 +14330,8 @@
"type": "github"
}
],
- "time": "2026-05-03T16:09:32+00:00"
+ "time": "2026-08-03T20:49:44+00:00",
+ "published-time": "2026-08-03T20:50:30+00:00"
},
{
"name": "pestphp/pest-plugin",
@@ -11964,7 +14401,8 @@
"type": "patreon"
}
],
- "time": "2025-08-20T12:35:58+00:00"
+ "time": "2025-08-20T12:35:58+00:00",
+ "published-time": "2025-08-20T12:36:18+00:00"
},
{
"name": "pestphp/pest-plugin-arch",
@@ -12034,7 +14472,8 @@
"type": "github"
}
],
- "time": "2026-04-10T17:20:19+00:00"
+ "time": "2026-04-10T17:20:19+00:00",
+ "published-time": "2026-04-10T17:20:32+00:00"
},
{
"name": "pestphp/pest-plugin-mutate",
@@ -12110,7 +14549,8 @@
"type": "github"
}
],
- "time": "2025-08-21T20:19:25+00:00"
+ "time": "2025-08-21T20:19:25+00:00",
+ "published-time": "2025-08-21T20:29:53+00:00"
},
{
"name": "pestphp/pest-plugin-profanity",
@@ -12166,7 +14606,8 @@
"support": {
"source": "https://github.com/pestphp/pest-plugin-profanity/tree/v4.2.1"
},
- "time": "2025-12-08T00:13:17+00:00"
+ "time": "2025-12-08T00:13:17+00:00",
+ "published-time": "2025-12-08T00:14:31+00:00"
},
{
"name": "phar-io/manifest",
@@ -12233,7 +14674,8 @@
"type": "github"
}
],
- "time": "2024-03-03T12:33:53+00:00"
+ "time": "2024-03-03T12:33:53+00:00",
+ "published-time": "2024-03-03T12:39:44+00:00"
},
{
"name": "phar-io/version",
@@ -12284,37 +14726,38 @@
"issues": "https://github.com/phar-io/version/issues",
"source": "https://github.com/phar-io/version/tree/3.2.1"
},
- "time": "2022-02-21T01:04:05+00:00"
+ "time": "2022-02-21T01:04:05+00:00",
+ "published-time": "2022-02-21T01:04:30+00:00"
},
{
"name": "phpunit/php-code-coverage",
- "version": "12.5.6",
+ "version": "12.5.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
- "reference": "876099a072646c7745f673d7aeab5382c4439691"
+ "reference": "7440368d94738d54f2c1de24dbd3871793bbb0dd"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/876099a072646c7745f673d7aeab5382c4439691",
- "reference": "876099a072646c7745f673d7aeab5382c4439691",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/7440368d94738d54f2c1de24dbd3871793bbb0dd",
+ "reference": "7440368d94738d54f2c1de24dbd3871793bbb0dd",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"ext-xmlwriter": "*",
- "nikic/php-parser": "^5.7.0",
+ "nikic/php-parser": "^5.9.0",
"php": ">=8.3",
- "phpunit/php-text-template": "^5.0",
+ "phpunit/php-text-template": "^5.0.1",
"sebastian/complexity": "^5.0",
- "sebastian/environment": "^8.0.3",
- "sebastian/lines-of-code": "^4.0",
+ "sebastian/environment": "^8.1.2",
+ "sebastian/lines-of-code": "^4.0.1",
"sebastian/version": "^6.0",
"theseer/tokenizer": "^2.0.1"
},
"require-dev": {
- "phpunit/phpunit": "^12.5.1"
+ "phpunit/phpunit": "^12.5.37"
},
"suggest": {
"ext-pcov": "PHP extension that provides line coverage",
@@ -12352,7 +14795,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-code-coverage/issues",
"security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy",
- "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.6"
+ "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.5.8"
},
"funding": [
{
@@ -12372,27 +14815,28 @@
"type": "tidelift"
}
],
- "time": "2026-04-15T08:23:17+00:00"
+ "time": "2026-10-03T14:03:50+00:00",
+ "published-time": "2026-10-03T14:04:33+00:00"
},
{
"name": "phpunit/php-file-iterator",
- "version": "6.0.1",
+ "version": "6.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
- "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5"
+ "reference": "a248d1640ab059b075f53a2ef0f9856e864e06b5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5",
- "reference": "3d1cd096ef6bea4bf2762ba586e35dbd317cbfd5",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a248d1640ab059b075f53a2ef0f9856e864e06b5",
+ "reference": "a248d1640ab059b075f53a2ef0f9856e864e06b5",
"shasum": ""
},
"require": {
"php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^12.5.33"
},
"type": "library",
"extra": {
@@ -12425,7 +14869,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-file-iterator/issues",
"security": "https://github.com/sebastianbergmann/php-file-iterator/security/policy",
- "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.1"
+ "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/6.0.2"
},
"funding": [
{
@@ -12445,7 +14889,8 @@
"type": "tidelift"
}
],
- "time": "2026-02-02T14:04:18+00:00"
+ "time": "2026-08-25T14:40:53+00:00",
+ "published-time": "2026-08-25T14:41:57+00:00"
},
{
"name": "phpunit/php-invoker",
@@ -12509,27 +14954,28 @@
"type": "github"
}
],
- "time": "2025-02-07T04:58:58+00:00"
+ "time": "2025-02-07T04:58:58+00:00",
+ "published-time": "2025-02-07T04:59:09+00:00"
},
{
"name": "phpunit/php-text-template",
- "version": "5.0.0",
+ "version": "5.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53"
+ "reference": "babab73b7ef9fae406f2eb3ee11323a61caa63d5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/e1367a453f0eda562eedb4f659e13aa900d66c53",
- "reference": "e1367a453f0eda562eedb4f659e13aa900d66c53",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/babab73b7ef9fae406f2eb3ee11323a61caa63d5",
+ "reference": "babab73b7ef9fae406f2eb3ee11323a61caa63d5",
"shasum": ""
},
"require": {
"php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^12.5.37"
},
"type": "library",
"extra": {
@@ -12561,15 +15007,28 @@
"support": {
"issues": "https://github.com/sebastianbergmann/php-text-template/issues",
"security": "https://github.com/sebastianbergmann/php-text-template/security/policy",
- "source": "https://github.com/sebastianbergmann/php-text-template/tree/5.0.0"
+ "source": "https://github.com/sebastianbergmann/php-text-template/tree/5.0.1"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/phpunit/php-text-template",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T04:59:16+00:00"
+ "time": "2026-10-03T04:51:29+00:00",
+ "published-time": "2026-10-03T04:54:39+00:00"
},
{
"name": "phpunit/php-timer",
@@ -12629,47 +15088,48 @@
"type": "github"
}
],
- "time": "2025-02-07T04:59:38+00:00"
+ "time": "2025-02-07T04:59:38+00:00",
+ "published-time": "2025-02-07T04:59:52+00:00"
},
{
"name": "phpunit/phpunit",
- "version": "12.5.24",
+ "version": "12.5.33",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "d75dd30597caa80e72fad2ef7904601a30ef1046"
+ "reference": "b98e028a26c5c5ba7e4a54be96ccf35f2914d184"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d75dd30597caa80e72fad2ef7904601a30ef1046",
- "reference": "d75dd30597caa80e72fad2ef7904601a30ef1046",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b98e028a26c5c5ba7e4a54be96ccf35f2914d184",
+ "reference": "b98e028a26c5c5ba7e4a54be96ccf35f2914d184",
"shasum": ""
},
"require": {
"ext-dom": "*",
+ "ext-filter": "*",
"ext-json": "*",
"ext-libxml": "*",
"ext-mbstring": "*",
- "ext-xml": "*",
"ext-xmlwriter": "*",
"myclabs/deep-copy": "^1.13.4",
"phar-io/manifest": "^2.0.4",
"phar-io/version": "^3.2.1",
"php": ">=8.3",
- "phpunit/php-code-coverage": "^12.5.6",
+ "phpunit/php-code-coverage": "^12.5.7",
"phpunit/php-file-iterator": "^6.0.1",
"phpunit/php-invoker": "^6.0.0",
"phpunit/php-text-template": "^5.0.0",
"phpunit/php-timer": "^8.0.0",
- "sebastian/cli-parser": "^4.2.0",
- "sebastian/comparator": "^7.1.6",
+ "sebastian/cli-parser": "^4.2.1",
+ "sebastian/comparator": "^7.1.8",
"sebastian/diff": "^7.0.0",
- "sebastian/environment": "^8.1.0",
- "sebastian/exporter": "^7.0.2",
- "sebastian/global-state": "^8.0.2",
+ "sebastian/environment": "^8.1.2",
+ "sebastian/exporter": "^7.0.3",
+ "sebastian/global-state": "^8.0.3",
"sebastian/object-enumerator": "^7.0.0",
"sebastian/recursion-context": "^7.0.1",
- "sebastian/type": "^6.0.3",
+ "sebastian/type": "^6.0.4",
"sebastian/version": "^6.0.0",
"staabm/side-effects-detector": "^1.0.5"
},
@@ -12711,7 +15171,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.24"
+ "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.33"
},
"funding": [
{
@@ -12719,27 +15179,101 @@
"type": "other"
}
],
- "time": "2026-05-01T04:21:04+00:00"
+ "time": "2026-07-28T13:58:09+00:00",
+ "published-time": "2026-07-28T14:01:28+00:00"
+ },
+ {
+ "name": "revolt/event-loop",
+ "version": "v1.0.9",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/revoltphp/event-loop.git",
+ "reference": "44061cf513e53c6200372fc935ac42271566295d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/revoltphp/event-loop/zipball/44061cf513e53c6200372fc935ac42271566295d",
+ "reference": "44061cf513e53c6200372fc935ac42271566295d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=8.1"
+ },
+ "require-dev": {
+ "ext-json": "*",
+ "jetbrains/phpstorm-stubs": "^2019.3",
+ "phpunit/phpunit": "^9",
+ "psalm/phar": "6.16.*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-main": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Revolt\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Aaron Piotrowski",
+ "email": "aaron@trowski.com"
+ },
+ {
+ "name": "Cees-Jan Kiewiet",
+ "email": "ceesjank@gmail.com"
+ },
+ {
+ "name": "Christian Lück",
+ "email": "christian@clue.engineering"
+ },
+ {
+ "name": "Niklas Keller",
+ "email": "me@kelunik.com"
+ }
+ ],
+ "description": "Rock-solid event loop for concurrent PHP applications.",
+ "keywords": [
+ "async",
+ "asynchronous",
+ "concurrency",
+ "event",
+ "event-loop",
+ "non-blocking",
+ "scheduler"
+ ],
+ "support": {
+ "issues": "https://github.com/revoltphp/event-loop/issues",
+ "source": "https://github.com/revoltphp/event-loop/tree/v1.0.9"
+ },
+ "time": "2026-05-16T17:55:38+00:00",
+ "published-time": "2026-05-16T18:04:08+00:00"
},
{
"name": "sebastian/cli-parser",
- "version": "4.2.0",
+ "version": "4.2.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/cli-parser.git",
- "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04"
+ "reference": "7d05781b13f7dec9043a629a21d086ed74582a15"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/90f41072d220e5c40df6e8635f5dafba2d9d4d04",
- "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04",
+ "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/7d05781b13f7dec9043a629a21d086ed74582a15",
+ "reference": "7d05781b13f7dec9043a629a21d086ed74582a15",
"shasum": ""
},
"require": {
"php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^12.5.25"
},
"type": "library",
"extra": {
@@ -12768,7 +15302,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/cli-parser/issues",
"security": "https://github.com/sebastianbergmann/cli-parser/security/policy",
- "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.0"
+ "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.1"
},
"funding": [
{
@@ -12788,20 +15322,21 @@
"type": "tidelift"
}
],
- "time": "2025-09-14T09:36:45+00:00"
+ "time": "2026-05-17T05:29:34+00:00",
+ "published-time": "2026-05-17T05:30:34+00:00"
},
{
"name": "sebastian/comparator",
- "version": "7.1.6",
+ "version": "7.1.8",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/comparator.git",
- "reference": "c769009dee98f494e0edc3fd4f4087501688f11e"
+ "reference": "7c65c1e79836812819705b473a90c12399542485"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/c769009dee98f494e0edc3fd4f4087501688f11e",
- "reference": "c769009dee98f494e0edc3fd4f4087501688f11e",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/7c65c1e79836812819705b473a90c12399542485",
+ "reference": "7c65c1e79836812819705b473a90c12399542485",
"shasum": ""
},
"require": {
@@ -12809,10 +15344,10 @@
"ext-mbstring": "*",
"php": ">=8.3",
"sebastian/diff": "^7.0",
- "sebastian/exporter": "^7.0"
+ "sebastian/exporter": "^7.0.3"
},
"require-dev": {
- "phpunit/phpunit": "^12.2"
+ "phpunit/phpunit": "^12.5.25"
},
"suggest": {
"ext-bcmath": "For comparing BcMath\\Number objects"
@@ -12860,7 +15395,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/comparator/issues",
"security": "https://github.com/sebastianbergmann/comparator/security/policy",
- "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.6"
+ "source": "https://github.com/sebastianbergmann/comparator/tree/7.1.8"
},
"funding": [
{
@@ -12880,7 +15415,8 @@
"type": "tidelift"
}
],
- "time": "2026-04-14T08:23:15+00:00"
+ "time": "2026-05-21T04:45:25+00:00",
+ "published-time": "2026-05-21T04:45:36+00:00"
},
{
"name": "sebastian/complexity",
@@ -12938,28 +15474,29 @@
"type": "github"
}
],
- "time": "2025-02-07T04:55:25+00:00"
+ "time": "2025-02-07T04:55:25+00:00",
+ "published-time": "2025-02-07T04:55:36+00:00"
},
{
"name": "sebastian/diff",
- "version": "7.0.0",
+ "version": "7.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/diff.git",
- "reference": "7ab1ea946c012266ca32390913653d844ecd085f"
+ "reference": "cd4cabe39f8a4e8ee6818ba99f10a05561ea4ad6"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7ab1ea946c012266ca32390913653d844ecd085f",
- "reference": "7ab1ea946c012266ca32390913653d844ecd085f",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/cd4cabe39f8a4e8ee6818ba99f10a05561ea4ad6",
+ "reference": "cd4cabe39f8a4e8ee6818ba99f10a05561ea4ad6",
"shasum": ""
},
"require": {
"php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^12.0",
- "symfony/process": "^7.2"
+ "phpunit/phpunit": "^12.5.33",
+ "symfony/process": "^7.4.17"
},
"type": "library",
"extra": {
@@ -12997,35 +15534,48 @@
"support": {
"issues": "https://github.com/sebastianbergmann/diff/issues",
"security": "https://github.com/sebastianbergmann/diff/security/policy",
- "source": "https://github.com/sebastianbergmann/diff/tree/7.0.0"
+ "source": "https://github.com/sebastianbergmann/diff/tree/7.0.1"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/diff",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T04:55:46+00:00"
+ "time": "2026-08-25T15:35:54+00:00",
+ "published-time": "2026-08-25T15:37:16+00:00"
},
{
"name": "sebastian/environment",
- "version": "8.1.0",
+ "version": "8.1.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/environment.git",
- "reference": "b121608b28a13f721e76ffbbd386d08eff58f3f6"
+ "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/b121608b28a13f721e76ffbbd386d08eff58f3f6",
- "reference": "b121608b28a13f721e76ffbbd386d08eff58f3f6",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/9d32c685773823b1983e256ae4ecd48a10d6e439",
+ "reference": "9d32c685773823b1983e256ae4ecd48a10d6e439",
"shasum": ""
},
"require": {
"php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^12.5.26"
},
"suggest": {
"ext-posix": "*"
@@ -13061,7 +15611,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.1.0"
+ "source": "https://github.com/sebastianbergmann/environment/tree/8.1.2"
},
"funding": [
{
@@ -13081,29 +15631,30 @@
"type": "tidelift"
}
],
- "time": "2026-04-15T12:13:01+00:00"
+ "time": "2026-05-25T13:40:20+00:00",
+ "published-time": "2026-05-25T13:40:39+00:00"
},
{
"name": "sebastian/exporter",
- "version": "7.0.2",
+ "version": "7.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/exporter.git",
- "reference": "016951ae10980765e4e7aee491eb288c64e505b7"
+ "reference": "c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/016951ae10980765e4e7aee491eb288c64e505b7",
- "reference": "016951ae10980765e4e7aee491eb288c64e505b7",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23",
+ "reference": "c5e21b5de653ce0a769fb36f5cdfcb5e7a32cf23",
"shasum": ""
},
"require": {
"ext-mbstring": "*",
"php": ">=8.3",
- "sebastian/recursion-context": "^7.0"
+ "sebastian/recursion-context": "^7.0.1"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^12.5.25"
},
"type": "library",
"extra": {
@@ -13151,7 +15702,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/exporter/issues",
"security": "https://github.com/sebastianbergmann/exporter/security/policy",
- "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.2"
+ "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.3"
},
"funding": [
{
@@ -13171,30 +15722,31 @@
"type": "tidelift"
}
],
- "time": "2025-09-24T06:16:11+00:00"
+ "time": "2026-05-20T04:37:17+00:00",
+ "published-time": "2026-05-20T04:37:31+00:00"
},
{
"name": "sebastian/global-state",
- "version": "8.0.2",
+ "version": "8.0.3",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/global-state.git",
- "reference": "ef1377171613d09edd25b7816f05be8313f9115d"
+ "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/ef1377171613d09edd25b7816f05be8313f9115d",
- "reference": "ef1377171613d09edd25b7816f05be8313f9115d",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/b164d3274d6537ab462591c5755f76a8f5b1aae9",
+ "reference": "b164d3274d6537ab462591c5755f76a8f5b1aae9",
"shasum": ""
},
"require": {
"php": ">=8.3",
"sebastian/object-reflector": "^5.0",
- "sebastian/recursion-context": "^7.0"
+ "sebastian/recursion-context": "^7.0.1"
},
"require-dev": {
"ext-dom": "*",
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^12.5.28"
},
"type": "library",
"extra": {
@@ -13225,7 +15777,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/global-state/issues",
"security": "https://github.com/sebastianbergmann/global-state/security/policy",
- "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.2"
+ "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.3"
},
"funding": [
{
@@ -13245,28 +15797,29 @@
"type": "tidelift"
}
],
- "time": "2025-08-29T11:29:25+00:00"
+ "time": "2026-06-01T15:10:33+00:00",
+ "published-time": "2026-06-01T15:20:45+00:00"
},
{
"name": "sebastian/lines-of-code",
- "version": "4.0.0",
+ "version": "4.0.1",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/lines-of-code.git",
- "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f"
+ "reference": "d543b8ef219dcd8da262cbb958639a96bedba10e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/97ffee3bcfb5805568d6af7f0f893678fc076d2f",
- "reference": "97ffee3bcfb5805568d6af7f0f893678fc076d2f",
+ "url": "https://api.github.com/repos/sebastianbergmann/lines-of-code/zipball/d543b8ef219dcd8da262cbb958639a96bedba10e",
+ "reference": "d543b8ef219dcd8da262cbb958639a96bedba10e",
"shasum": ""
},
"require": {
- "nikic/php-parser": "^5.0",
+ "nikic/php-parser": "^5.7.0",
"php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^12.5.25"
},
"type": "library",
"extra": {
@@ -13295,15 +15848,28 @@
"support": {
"issues": "https://github.com/sebastianbergmann/lines-of-code/issues",
"security": "https://github.com/sebastianbergmann/lines-of-code/security/policy",
- "source": "https://github.com/sebastianbergmann/lines-of-code/tree/4.0.0"
+ "source": "https://github.com/sebastianbergmann/lines-of-code/tree/4.0.1"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/lines-of-code",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T04:57:28+00:00"
+ "time": "2026-05-19T16:22:07+00:00",
+ "published-time": "2026-05-19T16:22:47+00:00"
},
{
"name": "sebastian/object-enumerator",
@@ -13361,7 +15927,8 @@
"type": "github"
}
],
- "time": "2025-02-07T04:57:48+00:00"
+ "time": "2025-02-07T04:57:48+00:00",
+ "published-time": "2025-02-07T04:58:08+00:00"
},
{
"name": "sebastian/object-reflector",
@@ -13417,7 +15984,8 @@
"type": "github"
}
],
- "time": "2025-02-07T04:58:17+00:00"
+ "time": "2025-02-07T04:58:17+00:00",
+ "published-time": "2025-02-07T04:58:28+00:00"
},
{
"name": "sebastian/recursion-context",
@@ -13493,27 +16061,28 @@
"type": "tidelift"
}
],
- "time": "2025-08-13T04:44:59+00:00"
+ "time": "2025-08-13T04:44:59+00:00",
+ "published-time": "2025-08-13T04:45:10+00:00"
},
{
"name": "sebastian/type",
- "version": "6.0.3",
+ "version": "6.0.4",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/type.git",
- "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d"
+ "reference": "82ff822c2edc46724be9f7411d3163021f602773"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/e549163b9760b8f71f191651d22acf32d56d6d4d",
- "reference": "e549163b9760b8f71f191651d22acf32d56d6d4d",
+ "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/82ff822c2edc46724be9f7411d3163021f602773",
+ "reference": "82ff822c2edc46724be9f7411d3163021f602773",
"shasum": ""
},
"require": {
"php": ">=8.3"
},
"require-dev": {
- "phpunit/phpunit": "^12.0"
+ "phpunit/phpunit": "^12.5.25"
},
"type": "library",
"extra": {
@@ -13542,7 +16111,7 @@
"support": {
"issues": "https://github.com/sebastianbergmann/type/issues",
"security": "https://github.com/sebastianbergmann/type/security/policy",
- "source": "https://github.com/sebastianbergmann/type/tree/6.0.3"
+ "source": "https://github.com/sebastianbergmann/type/tree/6.0.4"
},
"funding": [
{
@@ -13562,20 +16131,21 @@
"type": "tidelift"
}
],
- "time": "2025-08-09T06:57:12+00:00"
+ "time": "2026-05-20T06:45:45+00:00",
+ "published-time": "2026-05-20T06:50:13+00:00"
},
{
"name": "sebastian/version",
- "version": "6.0.0",
+ "version": "6.0.2",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/version.git",
- "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c"
+ "reference": "a8b6643a19ba6c8125a473623e45fb8cbb0e4159"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/3e6ccf7657d4f0a59200564b08cead899313b53c",
- "reference": "3e6ccf7657d4f0a59200564b08cead899313b53c",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/a8b6643a19ba6c8125a473623e45fb8cbb0e4159",
+ "reference": "a8b6643a19ba6c8125a473623e45fb8cbb0e4159",
"shasum": ""
},
"require": {
@@ -13608,15 +16178,28 @@
"support": {
"issues": "https://github.com/sebastianbergmann/version/issues",
"security": "https://github.com/sebastianbergmann/version/security/policy",
- "source": "https://github.com/sebastianbergmann/version/tree/6.0.0"
+ "source": "https://github.com/sebastianbergmann/version/tree/6.0.2"
},
"funding": [
{
"url": "https://github.com/sebastianbergmann",
"type": "github"
+ },
+ {
+ "url": "https://liberapay.com/sebastianbergmann",
+ "type": "liberapay"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/sebastianbergmann",
+ "type": "thanks_dev"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/sebastian/version",
+ "type": "tidelift"
}
],
- "time": "2025-02-07T05:00:38+00:00"
+ "time": "2026-11-09T06:30:55+00:00",
+ "published-time": "2026-11-09T06:31:20+00:00"
},
{
"name": "staabm/side-effects-detector",
@@ -13668,7 +16251,89 @@
"type": "github"
}
],
- "time": "2024-10-20T05:08:20+00:00"
+ "time": "2024-10-20T05:08:20+00:00",
+ "published-time": "2024-10-20T05:09:39+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php83",
+ "version": "v1.43.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php83.git",
+ "reference": "80ccff923a8d61f73ebe9da0aa94e25232f004ce"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/80ccff923a8d61f73ebe9da0aa94e25232f004ce",
+ "reference": "80ccff923a8d61f73ebe9da0aa94e25232f004ce",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=7.2"
+ },
+ "type": "library",
+ "extra": {
+ "thanks": {
+ "url": "https://github.com/symfony/polyfill",
+ "name": "symfony/polyfill"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Polyfill\\Php83\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Nicolas Grekas",
+ "email": "p@tchwork.com"
+ },
+ {
+ "name": "Symfony Community",
+ "homepage": "https://symfony.com/contributors"
+ }
+ ],
+ "description": "Symfony polyfill backporting some PHP 8.3+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "support": {
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.43.0"
+ },
+ "funding": [
+ {
+ "url": "https://symfony.com/sponsor",
+ "type": "custom"
+ },
+ {
+ "url": "https://github.com/fabpot",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/nicolas-grekas",
+ "type": "github"
+ },
+ {
+ "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+ "type": "tidelift"
+ }
+ ],
+ "time": "2026-09-25T15:50:05+00:00",
+ "published-time": "2026-09-30T10:23:43+00:00"
},
{
"name": "ta-tikoma/phpunit-architecture-test",
@@ -13727,7 +16392,8 @@
"issues": "https://github.com/ta-tikoma/phpunit-architecture-test/issues",
"source": "https://github.com/ta-tikoma/phpunit-architecture-test/tree/0.8.7"
},
- "time": "2026-02-17T17:25:14+00:00"
+ "time": "2026-02-17T17:25:14+00:00",
+ "published-time": "2026-02-17T17:26:32+00:00"
},
{
"name": "theseer/tokenizer",
@@ -13777,7 +16443,8 @@
"type": "github"
}
],
- "time": "2025-12-08T11:19:18+00:00"
+ "time": "2025-12-08T11:19:18+00:00",
+ "published-time": "2025-12-08T11:19:39+00:00"
}
],
"aliases": [],
@@ -13785,9 +16452,7 @@
"stability-flags": {},
"prefer-stable": true,
"prefer-lowest": false,
- "platform": {
- "ext-curl": "*"
- },
+ "platform": {},
"platform-dev": {},
- "plugin-api-version": "2.9.0"
+ "plugin-api-version": "2.11.0"
}
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index 653f567c..a34f45eb 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -11,12 +11,6 @@
./tests/Feature
-
- ./tests/Unit
-
-
- ./tests/Arch
-
diff --git a/src/Cloud.php b/src/Cloud.php
new file mode 100644
index 00000000..cb5eabb0
--- /dev/null
+++ b/src/Cloud.php
@@ -0,0 +1,30 @@
+isCraftCloud()) {
+ if (!Cloud::isCraftCloud()) {
return;
}
$this->configureQueue();
$this->configureCache();
$this->configureLogging();
+ $this->configureSession();
}
+ /**
+ * Lambda only collects stderr. bref/laravel-bridge switches the default channel only when it's `stack`, so a
+ * project's `daily` or `single` channel would otherwise write to `/tmp` and be lost.
+ */
private function configureLogging(): void
{
Config::set('logging.default', 'stderr');
- Config::set('logging.channels.emergency.path', 'php://stderr');
+ }
+
+ /**
+ * Each Lambda container has its own `/tmp`, so `file` sessions don't work, and bref/laravel-bridge replaces them
+ * with `cookie` sessions, which are capped at 4 KB. Craft creates the `sessions` table, so use it.
+ */
+ private function configureSession(): void
+ {
+ if (in_array(Config::get('session.driver'), ['file', 'cookie'], strict: true)) {
+ Config::set('session.driver', 'database');
+ }
}
private function configureQueue(): void
{
- $queueUrl = $_SERVER['CRAFT_CLOUD_SQS_URL'] ?? null;
+ $queueUrl = Cloud::env('CRAFT_CLOUD_SQS_URL');
- if (!$queueUrl) {
+ if ($queueUrl === null) {
return;
}
+ // The SQS client gets its region and credentials from the function's AWS environment.
Config::set('queue.default', self::SQS_CONNECTION);
Config::set('queue.connections.' . self::SQS_CONNECTION, [
'driver' => 'sqs',
@@ -52,9 +73,9 @@ private function configureQueue(): void
private function configureCache(): void
{
$stores = ['database', 'array'];
- $redisUrl = $this->resolveRedisUrl();
+ $redisUrl = Cloud::env('CRAFT_CLOUD_REDIS_URL');
- if ($redisUrl) {
+ if ($redisUrl !== null) {
$this->configureRedisCache($redisUrl);
array_unshift($stores, self::CACHE_REDIS_STORE);
@@ -72,6 +93,8 @@ private function configureRedisCache(string $redisUrl): void
Config::set('database.redis.' . self::REDIS_CONNECTION, [
'url' => $redisUrl,
'database' => 0,
+ 'timeout' => self::REDIS_TIMEOUT_SECONDS,
+ 'read_timeout' => self::REDIS_TIMEOUT_SECONDS,
]);
Config::set('cache.stores.' . self::CACHE_REDIS_STORE, [
@@ -80,27 +103,4 @@ private function configureRedisCache(string $redisUrl): void
'lock_connection' => self::REDIS_CONNECTION,
]);
}
-
- private function resolveRedisUrl(): ?string
- {
- $srv = $_SERVER['CRAFT_CLOUD_CACHE_SRV'] ?? null;
-
- if ($srv) {
- $records = dns_get_record($srv, DNS_SRV);
-
- $target = is_array($records) ? $records[0]['target'] ?? null : null;
- $port = is_array($records) ? $records[0]['port'] ?? null : null;
-
- if ($target !== null && $port !== null) {
- return 'redis://' . $target . ':' . $port;
- }
- }
-
- return null;
- }
-
- private function isCraftCloud(): bool
- {
- return ($_SERVER['CRAFT_CLOUD'] ?? null) !== null || ($_SERVER['AWS_LAMBDA_RUNTIME_API'] ?? null) !== null;
- }
}
diff --git a/src/Lambda/CommandSqsHandler.php b/src/Lambda/CommandSqsHandler.php
new file mode 100644
index 00000000..ef4048a2
--- /dev/null
+++ b/src/Lambda/CommandSqsHandler.php
@@ -0,0 +1,138 @@
+getRecords() as $record) {
+ $message = $record->getBody();
+ $payload = json_decode($message, associative: true, flags: JSON_THROW_ON_ERROR);
+ $callback = $payload['callback'] ?? throw new RuntimeException(
+ "Callback URL not found. Message: [{$message}]",
+ );
+ $command = $payload['command'] ?? throw new RuntimeException('Command not found');
+
+ $this->sendResult($callback, $this->runCommand($command, $context));
+ }
+ }
+
+ /**
+ * @return array{exit_code: int|null, output: string, duration?: float}
+ */
+ private function runCommand(string $command, Context $context): array
+ {
+ try {
+ $process = Process::fromShellCommandline(
+ '"${:PHP_BINARY}" "${:CRAFT_PATH}" ' . $command,
+ env: [
+ 'PHP_BINARY' => PHP_BINARY,
+ 'CRAFT_PATH' => (Cloud::env('LAMBDA_TASK_ROOT') ?? '/var/task') . '/craft',
+ 'LAMBDA_INVOCATION_CONTEXT' => json_encode($context, JSON_THROW_ON_ERROR),
+ ],
+ timeout: max(1, ($context->getRemainingTimeInMillis() / 1000) - self::RESULT_BUFFER_SECONDS),
+ );
+
+ $process->run(static function (string $type, string $buffer): void {
+ echo $buffer;
+ });
+
+ return [
+ 'exit_code' => $process->getExitCode(),
+ 'output' => $process->getErrorOutput() . $process->getOutput(),
+ 'duration' => microtime(true) - $process->getStartTime(),
+ ];
+ } catch (Throwable $e) {
+ return [
+ 'exit_code' => 1,
+ 'output' => "Error running command [{$command}]: " . $e->getMessage(),
+ ];
+ }
+ }
+
+ /**
+ * Posts the result, falling back to posting the failure. It never throws, because the command has already run
+ * and a failed SQS record would be delivered again.
+ */
+ private function sendResult(string $url, array $result): void
+ {
+ $error = $this->post($url, $result);
+
+ if ($error === null) {
+ return;
+ }
+
+ fwrite(STDERR, self::encode($result) . "\n");
+ $error = $this->post($url, ['exit_code' => 255, 'output' => $error]);
+
+ if ($error !== null) {
+ fwrite(STDERR, $error . "\n");
+ }
+ }
+
+ /**
+ * @return string|null A description of the failure, or null if the callback accepted the body.
+ */
+ private function post(string $url, array $body): ?string
+ {
+ $project = Cloud::env('CRAFT_CLOUD_PROJECT_ID');
+ $environment = Cloud::env('CRAFT_CLOUD_ENVIRONMENT_ID');
+
+ try {
+ $response = $this->client->post($url, [
+ RequestOptions::BODY => self::encode($body),
+ RequestOptions::HTTP_ERRORS => false,
+ RequestOptions::HEADERS => [
+ 'Content-Type' => 'application/json',
+ 'User-Agent' => "Craft/Cloud/{$project}/{$environment}",
+ ],
+ ]);
+ } catch (GuzzleException $e) {
+ return 'Request failed: ' . $e->getMessage();
+ }
+
+ $status = $response->getStatusCode();
+
+ return $status >= 200 && $status < 300
+ ? null
+ : "Failed to send command output: [{$status}] [{$response->getBody()}]";
+ }
+
+ /**
+ * Command output can contain invalid UTF-8, which would otherwise make encoding fail and lose the output.
+ */
+ private static function encode(array $body): string
+ {
+ return json_encode($body, JSON_INVALID_UTF8_SUBSTITUTE | JSON_THROW_ON_ERROR);
+ }
+}
diff --git a/src/bref/craft/CraftCliEntrypoint.php b/src/bref/craft/CraftCliEntrypoint.php
deleted file mode 100644
index f9a02bbe..00000000
--- a/src/bref/craft/CraftCliEntrypoint.php
+++ /dev/null
@@ -1,61 +0,0 @@
- PHP_BINARY,
- ],
- null,
- $timeout,
- );
-
- $process->run(static function ($type, $buffer): void {
- echo $buffer;
- });
-
- return [
- 'exit_code' => $process->getExitCode(),
- 'output' => $process->getErrorOutput() . $process->getOutput(),
- 'duration' => microtime(true) - $process->getStartTime(),
- ];
- }
-
- public function lambdaCommand(string $command, Context $context): array
- {
- $environment = $this->invocationContext($context);
-
- return $this->command($command, $environment, self::PROCESS_TIMEOUT_SECONDS);
- }
-
- public function craftJob(string $jobId, Context $context): array
- {
- $environment = $this->invocationContext($context);
-
- return $this->command("cloud/queue/exec {$jobId}", $environment, self::PROCESS_TIMEOUT_SECONDS);
- }
-
- private function invocationContext(Context $context): array
- {
- return ['LAMBDA_INVOCATION_CONTEXT' => json_encode($context, JSON_THROW_ON_ERROR)];
- }
-}
diff --git a/src/bref/curl/CurlClient.php b/src/bref/curl/CurlClient.php
deleted file mode 100644
index 567ae7f5..00000000
--- a/src/bref/curl/CurlClient.php
+++ /dev/null
@@ -1,39 +0,0 @@
-statusCode >= 200 && $this->statusCode < 300;
- }
-}
diff --git a/src/bref/handlers/CommandHandler.php b/src/bref/handlers/CommandHandler.php
deleted file mode 100644
index 7041f171..00000000
--- a/src/bref/handlers/CommandHandler.php
+++ /dev/null
@@ -1,32 +0,0 @@
-lambdaCommand($command, $context);
- }
-}
diff --git a/src/bref/handlers/CommandSqsHandler.php b/src/bref/handlers/CommandSqsHandler.php
deleted file mode 100644
index 0acd4e3b..00000000
--- a/src/bref/handlers/CommandSqsHandler.php
+++ /dev/null
@@ -1,97 +0,0 @@
-entrypoint = new CraftCliEntrypoint();
- }
-
- public function handleSqs(SqsEvent $event, Context $context): void
- {
- foreach ($event->getRecords() as $record) {
- $message = $record->getBody();
-
- $payload = json_decode($message, associative: true, flags: JSON_THROW_ON_ERROR);
-
- $callback = $payload['callback'] ?? throw new RuntimeException(
- "Callback URL not found. Message: [{$message}]",
- );
-
- $command = $payload['command'] ?? throw new RuntimeException('Command not found');
-
- $result = $this->runCommand($command, $context);
-
- $this->sendResultBack($callback, $result);
- }
- }
-
- public function runCommand(string $command, Context $context): array
- {
- try {
- return $this->entrypoint->lambdaCommand($command, $context);
- } catch (Throwable $t) {
- return [
- 'exit_code' => 1,
- 'output' => "Error running command [{$command}]: " . $t->getMessage(),
- ];
- }
- }
-
- private function sendResultBack(string $url, array $body): void
- {
- $client = new CurlClient();
-
- $body = $this->encodeResult($body);
-
- $response = $client->post($url, $body);
-
- if ($response->curlError) {
- fwrite(STDERR, $body . "\n");
-
- $body = $this->encodeResult([
- 'exit_code' => 255,
- 'output' => "cURL request failed: {$response->curlError}",
- ]);
-
- $client->post($url, $body);
-
- return;
- }
-
- if (!$response->successful()) {
- fwrite(STDERR, $body . "\n");
-
- $body = $this->encodeResult([
- 'exit_code' => 255,
- 'output' => "Failed to send command output: [{$response->statusCode}] [{$response->body}]",
- ]);
-
- $client->post($url, $body);
-
- return;
- }
- }
-
- private function encodeResult(array $body): string
- {
- return json_encode($body, JSON_INVALID_UTF8_SUBSTITUTE | JSON_THROW_ON_ERROR);
- }
-}
diff --git a/src/bref/handlers/JobSqsHandler.php b/src/bref/handlers/JobSqsHandler.php
deleted file mode 100644
index 48a353aa..00000000
--- a/src/bref/handlers/JobSqsHandler.php
+++ /dev/null
@@ -1,37 +0,0 @@
-entrypoint = new CraftCliEntrypoint();
- }
-
- public function handleSqs(SqsEvent $event, Context $context): void
- {
- foreach ($event->getRecords() as $record) {
- $message = $record->getBody();
-
- $payload = json_decode($message, associative: true, flags: JSON_THROW_ON_ERROR);
-
- $jobId = $payload['jobId'] ?? throw new RuntimeException("Job ID not found. Message: [{$message}]");
-
- $this->entrypoint->craftJob($jobId, $context);
- }
- }
-}
diff --git a/src/bref/handlers/command-cmd.php b/src/bref/handlers/command-cmd.php
deleted file mode 100644
index e8670302..00000000
--- a/src/bref/handlers/command-cmd.php
+++ /dev/null
@@ -1,7 +0,0 @@
-get(QueueHandler::class);
diff --git a/testbench.yaml b/testbench.yaml
new file mode 100644
index 00000000..b5f0cc9b
--- /dev/null
+++ b/testbench.yaml
@@ -0,0 +1,26 @@
+laravel: '@testbench'
+
+# Craft's providers come from package discovery. This package is the root package, so list its own provider.
+providers:
+ - CraftCms\Cloud\CloudServiceProvider
+
+
+workbench:
+ start: /admin
+ install: false
+ user: 1
+ sync:
+ - from: vendor/craftcms/cms-assets/resources
+ to: public/vendor/craft
+ build:
+ - craft:install:
+ --username: admin
+ --password: password
+ --email: admin@example.test
+ --siteName: Craft Cloud workbench
+ --siteUrl: '$APP_URL'
+ --language: en-US
+ discovers:
+ web: false
+ commands: false
+ config: true
diff --git a/tests/Feature/CloudServiceProviderTest.php b/tests/Feature/CloudServiceProviderTest.php
index 3a20d06d..a5a48f7b 100644
--- a/tests/Feature/CloudServiceProviderTest.php
+++ b/tests/Feature/CloudServiceProviderTest.php
@@ -2,45 +2,59 @@
declare(strict_types=1);
-use craft\cloud\tests\Support\DnsRecords;
+it('leaves the app alone outside Craft Cloud', function (): void {
+ $this->boot(['SESSION_DRIVER' => 'file', 'LOG_CHANNEL' => 'stack']);
-it('does not configure cloud services outside Craft Cloud', function (): void {
- $this->registerProvider();
-
- expect($this->config->get('queue.default'))
- ->toBe('sync')
- ->and($this->config->get('cache.default'))
- ->toBe('array')
- ->and($this->config->get('logging.default'))
- ->toBe('stack')
- ->and($this->config->get('logging.channels.emergency.path'))
- ->toBe('/var/task/storage/logs/laravel.log')
- ->and($this->config->get('queue.connections.craft-cloud-sqs'))
+ expect(config('cache.default'))
+ ->not
+ ->toBe('craft-cloud-failover')
+ ->and(config('cache.stores.craft-cloud-failover'))
->toBeNull()
- ->and($this->config->get('cache.stores.craft-cloud-failover'))
- ->toBeNull();
+ ->and(config('queue.connections.craft-cloud-sqs'))
+ ->toBeNull()
+ ->and(config('logging.default'))
+ ->toBe('stack')
+ ->and(config('session.driver'))
+ ->toBe('file');
});
-it('configures Laravel logging to use stderr on Craft Cloud', function (): void {
- $this->server('CRAFT_CLOUD', '1');
+it('detects Craft Cloud from CRAFT_CLOUD or the Lambda runtime', function (array $env): void {
+ $this->boot($env);
+
+ expect(config('cache.default'))->toBe('craft-cloud-failover');
+})->with([
+ 'CRAFT_CLOUD' => [['CRAFT_CLOUD' => '1']],
+ 'AWS_LAMBDA_RUNTIME_API' => [['AWS_LAMBDA_RUNTIME_API' => '127.0.0.1:9001']],
+]);
- $this->registerProvider();
+it('sends logs to stderr on Craft Cloud, whatever the project chose', function (): void {
+ $this->boot(['CRAFT_CLOUD' => '1', 'LOG_CHANNEL' => 'daily']);
- expect($this->config->get('logging.default'))
- ->toBe('stderr')
- ->and($this->config->get('logging.channels.emergency.path'))
- ->toBe('php://stderr');
+ expect(config('logging.default'))->toBe('stderr');
});
-it('configures the Craft Cloud SQS queue connection', function (): void {
- $this->server('CRAFT_CLOUD', '1');
- $this->server('CRAFT_CLOUD_SQS_URL', 'https://sqs.us-east-1.amazonaws.com/123456789012/craft-cloud');
+it('uses database sessions instead of file or cookie sessions on Craft Cloud', function (
+ string $driver,
+ string $expected,
+): void {
+ $this->boot(['CRAFT_CLOUD' => '1', 'SESSION_DRIVER' => $driver]);
- $this->registerProvider();
+ expect(config('session.driver'))->toBe($expected);
+})->with([
+ 'file' => ['file', 'database'],
+ 'cookie' => ['cookie', 'database'],
+ 'redis is kept' => ['redis', 'redis'],
+]);
+
+it('configures the Craft Cloud SQS queue connection', function (): void {
+ $this->boot([
+ 'CRAFT_CLOUD' => '1',
+ 'CRAFT_CLOUD_SQS_URL' => 'https://sqs.us-east-1.amazonaws.com/123456789012/craft-cloud',
+ ]);
- expect($this->config->get('queue.default'))
+ expect(config('queue.default'))
->toBe('craft-cloud-sqs')
- ->and($this->config->get('queue.connections.craft-cloud-sqs'))
+ ->and(config('queue.connections.craft-cloud-sqs'))
->toBe([
'driver' => 'sqs',
'prefix' => '',
@@ -50,49 +64,40 @@
]);
});
-it('configures the fallback cache without Redis when no cache SRV record is available', function (): void {
- $this->server('CRAFT_CLOUD', '1');
+it('leaves the queue alone on Craft Cloud without an SQS URL', function (): void {
+ $this->boot(['CRAFT_CLOUD' => '1']);
- $this->registerProvider();
+ expect(config('queue.connections.craft-cloud-sqs'))->toBeNull();
+});
- expect($this->config->get('cache.default'))
- ->toBe('craft-cloud-failover')
- ->and($this->config->get('cache.stores.craft-cloud-failover'))
+it('falls back from the database to memory when the environment has no Valkey', function (): void {
+ $this->boot(['CRAFT_CLOUD' => '1']);
+
+ expect(config('cache.stores.craft-cloud-failover'))
->toBe([
'driver' => 'failover',
'stores' => ['database', 'array'],
])
- ->and($this->config->get('cache.stores.craft-cloud-redis'))
+ ->and(config('cache.stores.craft-cloud-redis'))
->toBeNull();
});
-it('prepends Redis to the fallback cache when the cache SRV record is available', function (): void {
- $this->server('CRAFT_CLOUD', '1');
- $this->server('CRAFT_CLOUD_CACHE_SRV', '_cache._tcp.example.test');
-
- DnsRecords::fake([
- [
- 'target' => 'redis.internal',
- 'port' => 6379,
- ],
- ]);
-
- $this->registerProvider();
+it('puts Valkey first, with short timeouts, when the environment has a Valkey URL', function (): void {
+ $this->boot(['CRAFT_CLOUD' => '1', 'CRAFT_CLOUD_REDIS_URL' => 'redis://valkey.internal:6380']);
- expect($this->config->get('database.redis.craft-cloud'))
+ expect(config('database.redis.craft-cloud'))
->toBe([
- 'url' => 'redis://redis.internal:6379',
+ 'url' => 'redis://valkey.internal:6380',
'database' => 0,
+ 'timeout' => 1,
+ 'read_timeout' => 1,
])
- ->and($this->config->get('cache.stores.craft-cloud-redis'))
+ ->and(config('cache.stores.craft-cloud-redis'))
->toBe([
'driver' => 'redis',
'connection' => 'craft-cloud',
'lock_connection' => 'craft-cloud',
])
- ->and($this->config->get('cache.stores.craft-cloud-failover'))
- ->toBe([
- 'driver' => 'failover',
- 'stores' => ['craft-cloud-redis', 'database', 'array'],
- ]);
+ ->and(config('cache.stores.craft-cloud-failover.stores'))
+ ->toBe(['craft-cloud-redis', 'database', 'array']);
});
diff --git a/tests/Feature/CommandSqsHandlerTest.php b/tests/Feature/CommandSqsHandlerTest.php
new file mode 100644
index 00000000..5ec63db5
--- /dev/null
+++ b/tests/Feature/CommandSqsHandlerTest.php
@@ -0,0 +1,123 @@
+ $responses
+ * @return list
+ */
+function run_command_handler(string $command, array $responses, string $script, int $secondsLeft = 60): array
+{
+ $root = sys_get_temp_dir() . '/cloud-task-' . bin2hex(random_bytes(4));
+ mkdir($root);
+ file_put_contents("{$root}/craft", $script);
+ test()->boot([
+ 'LAMBDA_TASK_ROOT' => $root,
+ 'CRAFT_CLOUD_PROJECT_ID' => 'project',
+ 'CRAFT_CLOUD_ENVIRONMENT_ID' => 'environment',
+ ]);
+
+ $history = [];
+ $stack = HandlerStack::create(new MockHandler($responses));
+ $stack->push(Middleware::history($history));
+
+ $event = new SqsEvent([
+ 'Records' => [[
+ 'eventSource' => 'aws:sqs',
+ 'messageId' => '1',
+ 'body' => json_encode(['callback' => 'https://api.test/callback', 'command' => $command]),
+ ]],
+ ]);
+
+ ob_start();
+ new CommandSqsHandler(new Client(['handler' => $stack]))->handleSqs(
+ $event,
+ new Context('request', intval(microtime(true) * 1000) + ($secondsLeft * 1000), 'arn', 'trace'),
+ );
+ ob_end_clean();
+
+ unlink("{$root}/craft");
+ rmdir($root);
+
+ return array_map(static fn(array $entry): array => [
+ 'url' => (string) $entry['request']->getUri(),
+ 'body' => json_decode((string) $entry['request']->getBody(), associative: true),
+ 'userAgent' => $entry['request']->getHeaderLine('User-Agent'),
+ ], $history);
+}
+
+it('runs the command and posts its exit code and output to the callback', function (): void {
+ $requests = run_command_handler(
+ "up --interactive=0 'quoted arg'",
+ [new Response(200)],
+ script: 'toHaveCount(1)
+ ->and($requests[0]['url'])
+ ->toBe('https://api.test/callback')
+ ->and($requests[0]['userAgent'])
+ ->toBe('Craft/Cloud/project/environment')
+ ->and($requests[0]['body']['exit_code'])
+ ->toBe(3)
+ ->and($requests[0]['body']['output'])
+ ->toBe('up|--interactive=0|quoted arg');
+});
+
+it('sends output that is not valid UTF-8', function (): void {
+ $requests = run_command_handler('help', [new Response(200)], script: 'toHaveCount(1)->and($requests[0]['body']['output'])->toBe("a\u{FFFD}b");
+});
+
+it('does not throw when the callback cannot be reached', function (): void {
+ $requests = run_command_handler(
+ 'help',
+ [
+ new ConnectException('down', new Request('POST', 'https://api.test/callback')),
+ new ConnectException('still down', new Request('POST', 'https://api.test/callback')),
+ ],
+ script: 'toHaveCount(2);
+});
+
+it('stops the command before the invocation runs out of time', function (): void {
+ $requests = run_command_handler('help', [new Response(200)], script: 'toBe(1)
+ ->and($requests[0]['body']['output'])
+ ->toContain('exceeded the timeout');
+});
+
+it('reports a failed callback to the callback URL', function (): void {
+ $requests = run_command_handler(
+ 'help',
+ [new Response(500, body: 'nope'), new Response(200)],
+ script: 'toHaveCount(2)
+ ->and($requests[1]['body'])
+ ->toBe([
+ 'exit_code' => 255,
+ 'output' => 'Failed to send command output: [500] [nope]',
+ ]);
+});
diff --git a/tests/Pest.php b/tests/Pest.php
index e8bbf65b..0f08ba0b 100644
--- a/tests/Pest.php
+++ b/tests/Pest.php
@@ -2,6 +2,6 @@
declare(strict_types=1);
-use craft\cloud\tests\TestCase;
+use CraftCms\Cloud\Tests\TestCase;
-uses(TestCase::class)->in('Feature', 'Unit');
+uses(TestCase::class)->in('Feature');
diff --git a/tests/Support/DnsRecords.php b/tests/Support/DnsRecords.php
deleted file mode 100644
index 704692b6..00000000
--- a/tests/Support/DnsRecords.php
+++ /dev/null
@@ -1,25 +0,0 @@
- */
+ private array $originalEnv = [];
protected function setUp(): void
{
- parent::setUp();
-
- $this->serverValues = [];
-
- foreach (self::SERVER_KEYS as $key) {
- if (array_key_exists($key, $_SERVER)) {
- $this->serverValues[$key] = $_SERVER[$key];
- }
-
- unset($_SERVER[$key]);
+ foreach (self::ENV_KEYS as $key) {
+ $this->originalEnv[$key] = getenv($key);
+ $this->unsetEnv($key);
}
- DnsRecords::reset();
-
- $this->app = new Container();
- $this->config = new Repository([
- 'cache' => [
- 'default' => 'array',
- 'stores' => [
- 'array' => [
- 'driver' => 'array',
- ],
- 'database' => [
- 'driver' => 'database',
- ],
- ],
- ],
- 'database' => [
- 'redis' => [],
- ],
- 'logging' => [
- 'default' => 'stack',
- 'channels' => [
- 'stack' => [
- 'driver' => 'stack',
- 'channels' => ['single'],
- ],
- 'stderr' => [
- 'driver' => 'monolog',
- ],
- 'emergency' => [
- 'path' => '/var/task/storage/logs/laravel.log',
- ],
- ],
- ],
- 'queue' => [
- 'default' => 'sync',
- 'connections' => [
- 'sync' => [
- 'driver' => 'sync',
- ],
- ],
- ],
- ]);
-
- $this->app->instance('config', $this->config);
-
- Facade::clearResolvedInstances();
- Facade::setFacadeApplication($this->app);
+ parent::setUp();
}
protected function tearDown(): void
{
- foreach (self::SERVER_KEYS as $key) {
- unset($_SERVER[$key]);
+ parent::tearDown();
+
+ foreach ($this->originalEnv as $key => $value) {
+ $value === false ? $this->unsetEnv($key) : $this->setEnv($key, $value);
}
+ }
- foreach ($this->serverValues as $key => $value) {
- $_SERVER[$key] = $value;
+ /**
+ * Sets environment variables and recreates the app, so providers register with them.
+ *
+ * @param array $env
+ */
+ protected function boot(array $env = []): void
+ {
+ foreach ($env as $key => $value) {
+ $this->setEnv($key, $value);
}
- DnsRecords::reset();
- Facade::clearResolvedInstances();
- Facade::setFacadeApplication(null);
+ $this->refreshApplication();
+ }
- parent::tearDown();
+ protected function defineEnvironment($app): void
+ {
+ // Craft logs that it isn't installed on every boot. Keep that out of test output, including on Craft Cloud,
+ // where the provider switches the default channel to stderr.
+ $app['config']->set('logging.channels.stderr', [
+ 'driver' => 'monolog',
+ 'handler' => \Monolog\Handler\NullHandler::class,
+ ]);
+ $app['config']->set('logging.channels.stack', [
+ 'driver' => 'monolog',
+ 'handler' => \Monolog\Handler\NullHandler::class,
+ ]);
}
- protected function registerProvider(): void
+ protected function getPackageProviders($app): array
{
- new CloudServiceProvider($this->app)->register();
+ return [
+ CraftServiceProvider::class,
+ CloudServiceProvider::class,
+ ];
}
- protected function server(string $key, string $value): void
+ private function setEnv(string $key, string $value): void
{
$_SERVER[$key] = $value;
+ $_ENV[$key] = $value;
+ putenv("{$key}={$value}");
+ }
+
+ private function unsetEnv(string $key): void
+ {
+ unset($_SERVER[$key], $_ENV[$key]);
+ putenv($key);
}
}
diff --git a/workbench/.env.example b/workbench/.env.example
new file mode 100644
index 00000000..b5cd02e7
--- /dev/null
+++ b/workbench/.env.example
@@ -0,0 +1,9 @@
+APP_NAME="Craft Cloud workbench"
+APP_ENV=local
+APP_DEBUG=true
+APP_KEY=base64:6BDzvwO4hrN7Twv6/gaQ6oZMB/CvpUArZXho189U75E=
+APP_URL=http://127.0.0.1:8000
+
+AUTH_MODEL=\CraftCms\Cms\User\Models\User
+DB_CONNECTION=sqlite
+SESSION_DRIVER=database
diff --git a/workbench/config/trustedproxy.php b/workbench/config/trustedproxy.php
new file mode 100644
index 00000000..6c7f7d9c
--- /dev/null
+++ b/workbench/config/trustedproxy.php
@@ -0,0 +1,8 @@
+ '*',
+];